/*! For license information please see dash.all.min.js.LICENSE.txt */
var t = { 7267: function(t3, e2) {
  e2.byteLength = function(t4) {
    var e3 = o2(t4), n3 = e3[0], a3 = e3[1];
    return 3 * (n3 + a3) / 4 - a3;
  }, e2.toByteArray = function(t4) {
    var e3, n3, i3 = o2(t4), l3 = i3[0], s3 = i3[1], u2 = new r2(function(t5, e4, n4) {
      return 3 * (e4 + n4) / 4 - n4;
    }(0, l3, s3)), d2 = 0, c2 = s3 > 0 ? l3 - 4 : l3;
    for (n3 = 0; n3 < c2; n3 += 4)
      e3 = a2[t4.charCodeAt(n3)] << 18 | a2[t4.charCodeAt(n3 + 1)] << 12 | a2[t4.charCodeAt(n3 + 2)] << 6 | a2[t4.charCodeAt(n3 + 3)], u2[d2++] = e3 >> 16 & 255, u2[d2++] = e3 >> 8 & 255, u2[d2++] = 255 & e3;
    return 2 === s3 && (e3 = a2[t4.charCodeAt(n3)] << 2 | a2[t4.charCodeAt(n3 + 1)] >> 4, u2[d2++] = 255 & e3), 1 === s3 && (e3 = a2[t4.charCodeAt(n3)] << 10 | a2[t4.charCodeAt(n3 + 1)] << 4 | a2[t4.charCodeAt(n3 + 2)] >> 2, u2[d2++] = e3 >> 8 & 255, u2[d2++] = 255 & e3), u2;
  }, e2.fromByteArray = function(t4) {
    for (var e3, a3 = t4.length, r3 = a3 % 3, i3 = [], l3 = 16383, o3 = 0, u2 = a3 - r3; o3 < u2; o3 += l3)
      i3.push(s2(t4, o3, o3 + l3 > u2 ? u2 : o3 + l3));
    return 1 === r3 ? (e3 = t4[a3 - 1], i3.push(n2[e3 >> 2] + n2[e3 << 4 & 63] + "==")) : 2 === r3 && (e3 = (t4[a3 - 2] << 8) + t4[a3 - 1], i3.push(n2[e3 >> 10] + n2[e3 >> 4 & 63] + n2[e3 << 2 & 63] + "=")), i3.join("");
  };
  for (var n2 = [], a2 = [], r2 = "undefined" != typeof Uint8Array ? Uint8Array : Array, i2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", l2 = 0; l2 < 64; ++l2)
    n2[l2] = i2[l2], a2[i2.charCodeAt(l2)] = l2;
  function o2(t4) {
    var e3 = t4.length;
    if (e3 % 4 > 0)
      throw new Error("Invalid string. Length must be a multiple of 4");
    var n3 = t4.indexOf("=");
    return -1 === n3 && (n3 = e3), [n3, n3 === e3 ? 0 : 4 - n3 % 4];
  }
  function s2(t4, e3, a3) {
    for (var r3, i3, l3 = [], o3 = e3; o3 < a3; o3 += 3)
      r3 = (t4[o3] << 16 & 16711680) + (t4[o3 + 1] << 8 & 65280) + (255 & t4[o3 + 2]), l3.push(n2[(i3 = r3) >> 18 & 63] + n2[i3 >> 12 & 63] + n2[i3 >> 6 & 63] + n2[63 & i3]);
    return l3.join("");
  }
  a2["-".charCodeAt(0)] = 62, a2["_".charCodeAt(0)] = 63;
}, 44: function(t3, e2, n2) {
  var a2 = n2(7267), r2 = n2(7986), i2 = "function" == typeof Symbol && "function" == typeof Symbol.for ? Symbol.for("nodejs.util.inspect.custom") : null;
  e2.Buffer = s2, e2.SlowBuffer = function(t4) {
    return +t4 != t4 && (t4 = 0), s2.alloc(+t4);
  }, e2.INSPECT_MAX_BYTES = 50;
  var l2 = 2147483647;
  function o2(t4) {
    if (t4 > l2)
      throw new RangeError('The value "' + t4 + '" is invalid for option "size"');
    var e3 = new Uint8Array(t4);
    return Object.setPrototypeOf(e3, s2.prototype), e3;
  }
  function s2(t4, e3, n3) {
    if ("number" == typeof t4) {
      if ("string" == typeof e3)
        throw new TypeError('The "string" argument must be of type string. Received type number');
      return c2(t4);
    }
    return u2(t4, e3, n3);
  }
  function u2(t4, e3, n3) {
    if ("string" == typeof t4)
      return function(t5, e4) {
        if ("string" == typeof e4 && "" !== e4 || (e4 = "utf8"), !s2.isEncoding(e4))
          throw new TypeError("Unknown encoding: " + e4);
        var n4 = 0 | h2(t5, e4), a4 = o2(n4), r4 = a4.write(t5, e4);
        return r4 !== n4 && (a4 = a4.slice(0, r4)), a4;
      }(t4, e3);
    if (ArrayBuffer.isView(t4))
      return function(t5) {
        if (q(t5, Uint8Array)) {
          var e4 = new Uint8Array(t5);
          return g2(e4.buffer, e4.byteOffset, e4.byteLength);
        }
        return f2(t5);
      }(t4);
    if (null == t4)
      throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t4);
    if (q(t4, ArrayBuffer) || t4 && q(t4.buffer, ArrayBuffer))
      return g2(t4, e3, n3);
    if ("undefined" != typeof SharedArrayBuffer && (q(t4, SharedArrayBuffer) || t4 && q(t4.buffer, SharedArrayBuffer)))
      return g2(t4, e3, n3);
    if ("number" == typeof t4)
      throw new TypeError('The "value" argument must not be of type number. Received type number');
    var a3 = t4.valueOf && t4.valueOf();
    if (null != a3 && a3 !== t4)
      return s2.from(a3, e3, n3);
    var r3 = function(t5) {
      if (s2.isBuffer(t5)) {
        var e4 = 0 | m2(t5.length), n4 = o2(e4);
        return 0 === n4.length || t5.copy(n4, 0, 0, e4), n4;
      }
      return void 0 !== t5.length ? "number" != typeof t5.length || B(t5.length) ? o2(0) : f2(t5) : "Buffer" === t5.type && Array.isArray(t5.data) ? f2(t5.data) : void 0;
    }(t4);
    if (r3)
      return r3;
    if ("undefined" != typeof Symbol && null != Symbol.toPrimitive && "function" == typeof t4[Symbol.toPrimitive])
      return s2.from(t4[Symbol.toPrimitive]("string"), e3, n3);
    throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof t4);
  }
  function d2(t4) {
    if ("number" != typeof t4)
      throw new TypeError('"size" argument must be of type number');
    if (t4 < 0)
      throw new RangeError('The value "' + t4 + '" is invalid for option "size"');
  }
  function c2(t4) {
    return d2(t4), o2(t4 < 0 ? 0 : 0 | m2(t4));
  }
  function f2(t4) {
    for (var e3 = t4.length < 0 ? 0 : 0 | m2(t4.length), n3 = o2(e3), a3 = 0; a3 < e3; a3 += 1)
      n3[a3] = 255 & t4[a3];
    return n3;
  }
  function g2(t4, e3, n3) {
    if (e3 < 0 || t4.byteLength < e3)
      throw new RangeError('"offset" is outside of buffer bounds');
    if (t4.byteLength < e3 + (n3 || 0))
      throw new RangeError('"length" is outside of buffer bounds');
    var a3;
    return a3 = void 0 === e3 && void 0 === n3 ? new Uint8Array(t4) : void 0 === n3 ? new Uint8Array(t4, e3) : new Uint8Array(t4, e3, n3), Object.setPrototypeOf(a3, s2.prototype), a3;
  }
  function m2(t4) {
    if (t4 >= l2)
      throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + l2.toString(16) + " bytes");
    return 0 | t4;
  }
  function h2(t4, e3) {
    if (s2.isBuffer(t4))
      return t4.length;
    if (ArrayBuffer.isView(t4) || q(t4, ArrayBuffer))
      return t4.byteLength;
    if ("string" != typeof t4)
      throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof t4);
    var n3 = t4.length, a3 = arguments.length > 2 && true === arguments[2];
    if (!a3 && 0 === n3)
      return 0;
    for (var r3 = false; ; )
      switch (e3) {
        case "ascii":
        case "latin1":
        case "binary":
          return n3;
        case "utf8":
        case "utf-8":
          return F(t4).length;
        case "ucs2":
        case "ucs-2":
        case "utf16le":
        case "utf-16le":
          return 2 * n3;
        case "hex":
          return n3 >>> 1;
        case "base64":
          return U(t4).length;
        default:
          if (r3)
            return a3 ? -1 : F(t4).length;
          e3 = ("" + e3).toLowerCase(), r3 = true;
      }
  }
  function p2(t4, e3, n3) {
    var a3 = false;
    if ((void 0 === e3 || e3 < 0) && (e3 = 0), e3 > this.length)
      return "";
    if ((void 0 === n3 || n3 > this.length) && (n3 = this.length), n3 <= 0)
      return "";
    if ((n3 >>>= 0) <= (e3 >>>= 0))
      return "";
    for (t4 || (t4 = "utf8"); ; )
      switch (t4) {
        case "hex":
          return C(this, e3, n3);
        case "utf8":
        case "utf-8":
          return k(this, e3, n3);
        case "ascii":
          return R(this, e3, n3);
        case "latin1":
        case "binary":
          return N(this, e3, n3);
        case "base64":
          return I(this, e3, n3);
        case "ucs2":
        case "ucs-2":
        case "utf16le":
        case "utf-16le":
          return D(this, e3, n3);
        default:
          if (a3)
            throw new TypeError("Unknown encoding: " + t4);
          t4 = (t4 + "").toLowerCase(), a3 = true;
      }
  }
  function b2(t4, e3, n3) {
    var a3 = t4[e3];
    t4[e3] = t4[n3], t4[n3] = a3;
  }
  function y2(t4, e3, n3, a3, r3) {
    if (0 === t4.length)
      return -1;
    if ("string" == typeof n3 ? (a3 = n3, n3 = 0) : n3 > 2147483647 ? n3 = 2147483647 : n3 < -2147483648 && (n3 = -2147483648), B(n3 = +n3) && (n3 = r3 ? 0 : t4.length - 1), n3 < 0 && (n3 = t4.length + n3), n3 >= t4.length) {
      if (r3)
        return -1;
      n3 = t4.length - 1;
    } else if (n3 < 0) {
      if (!r3)
        return -1;
      n3 = 0;
    }
    if ("string" == typeof e3 && (e3 = s2.from(e3, a3)), s2.isBuffer(e3))
      return 0 === e3.length ? -1 : E2(t4, e3, n3, a3, r3);
    if ("number" == typeof e3)
      return e3 &= 255, "function" == typeof Uint8Array.prototype.indexOf ? r3 ? Uint8Array.prototype.indexOf.call(t4, e3, n3) : Uint8Array.prototype.lastIndexOf.call(t4, e3, n3) : E2(t4, [e3], n3, a3, r3);
    throw new TypeError("val must be string, number or Buffer");
  }
  function E2(t4, e3, n3, a3, r3) {
    var i3, l3 = 1, o3 = t4.length, s3 = e3.length;
    if (void 0 !== a3 && ("ucs2" === (a3 = String(a3).toLowerCase()) || "ucs-2" === a3 || "utf16le" === a3 || "utf-16le" === a3)) {
      if (t4.length < 2 || e3.length < 2)
        return -1;
      l3 = 2, o3 /= 2, s3 /= 2, n3 /= 2;
    }
    function u3(t5, e4) {
      return 1 === l3 ? t5[e4] : t5.readUInt16BE(e4 * l3);
    }
    if (r3) {
      var d3 = -1;
      for (i3 = n3; i3 < o3; i3++)
        if (u3(t4, i3) === u3(e3, -1 === d3 ? 0 : i3 - d3)) {
          if (-1 === d3 && (d3 = i3), i3 - d3 + 1 === s3)
            return d3 * l3;
        } else
          -1 !== d3 && (i3 -= i3 - d3), d3 = -1;
    } else
      for (n3 + s3 > o3 && (n3 = o3 - s3), i3 = n3; i3 >= 0; i3--) {
        for (var c3 = true, f3 = 0; f3 < s3; f3++)
          if (u3(t4, i3 + f3) !== u3(e3, f3)) {
            c3 = false;
            break;
          }
        if (c3)
          return i3;
      }
    return -1;
  }
  function _2(t4, e3, n3, a3) {
    n3 = Number(n3) || 0;
    var r3 = t4.length - n3;
    a3 ? (a3 = Number(a3)) > r3 && (a3 = r3) : a3 = r3;
    var i3 = e3.length;
    a3 > i3 / 2 && (a3 = i3 / 2);
    for (var l3 = 0; l3 < a3; ++l3) {
      var o3 = parseInt(e3.substr(2 * l3, 2), 16);
      if (B(o3))
        return l3;
      t4[n3 + l3] = o3;
    }
    return l3;
  }
  function T2(t4, e3, n3, a3) {
    return j(F(e3, t4.length - n3), t4, n3, a3);
  }
  function v2(t4, e3, n3, a3) {
    return j(function(t5) {
      for (var e4 = [], n4 = 0; n4 < t5.length; ++n4)
        e4.push(255 & t5.charCodeAt(n4));
      return e4;
    }(e3), t4, n3, a3);
  }
  function w2(t4, e3, n3, a3) {
    return j(U(e3), t4, n3, a3);
  }
  function S2(t4, e3, n3, a3) {
    return j(function(t5, e4) {
      for (var n4, a4, r3, i3 = [], l3 = 0; l3 < t5.length && !((e4 -= 2) < 0); ++l3)
        a4 = (n4 = t5.charCodeAt(l3)) >> 8, r3 = n4 % 256, i3.push(r3), i3.push(a4);
      return i3;
    }(e3, t4.length - n3), t4, n3, a3);
  }
  function I(t4, e3, n3) {
    return 0 === e3 && n3 === t4.length ? a2.fromByteArray(t4) : a2.fromByteArray(t4.slice(e3, n3));
  }
  function k(t4, e3, n3) {
    n3 = Math.min(t4.length, n3);
    for (var a3 = [], r3 = e3; r3 < n3; ) {
      var i3, l3, o3, s3, u3 = t4[r3], d3 = null, c3 = u3 > 239 ? 4 : u3 > 223 ? 3 : u3 > 191 ? 2 : 1;
      if (r3 + c3 <= n3)
        switch (c3) {
          case 1:
            u3 < 128 && (d3 = u3);
            break;
          case 2:
            128 == (192 & (i3 = t4[r3 + 1])) && (s3 = (31 & u3) << 6 | 63 & i3) > 127 && (d3 = s3);
            break;
          case 3:
            i3 = t4[r3 + 1], l3 = t4[r3 + 2], 128 == (192 & i3) && 128 == (192 & l3) && (s3 = (15 & u3) << 12 | (63 & i3) << 6 | 63 & l3) > 2047 && (s3 < 55296 || s3 > 57343) && (d3 = s3);
            break;
          case 4:
            i3 = t4[r3 + 1], l3 = t4[r3 + 2], o3 = t4[r3 + 3], 128 == (192 & i3) && 128 == (192 & l3) && 128 == (192 & o3) && (s3 = (15 & u3) << 18 | (63 & i3) << 12 | (63 & l3) << 6 | 63 & o3) > 65535 && s3 < 1114112 && (d3 = s3);
        }
      null === d3 ? (d3 = 65533, c3 = 1) : d3 > 65535 && (d3 -= 65536, a3.push(d3 >>> 10 & 1023 | 55296), d3 = 56320 | 1023 & d3), a3.push(d3), r3 += c3;
    }
    return function(t5) {
      var e4 = t5.length;
      if (e4 <= A)
        return String.fromCharCode.apply(String, t5);
      for (var n4 = "", a4 = 0; a4 < e4; )
        n4 += String.fromCharCode.apply(String, t5.slice(a4, a4 += A));
      return n4;
    }(a3);
  }
  e2.kMaxLength = l2, s2.TYPED_ARRAY_SUPPORT = function() {
    try {
      var t4 = new Uint8Array(1), e3 = { foo: function() {
        return 42;
      } };
      return Object.setPrototypeOf(e3, Uint8Array.prototype), Object.setPrototypeOf(t4, e3), 42 === t4.foo();
    } catch (t5) {
      return false;
    }
  }(), s2.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), Object.defineProperty(s2.prototype, "parent", { enumerable: true, get: function() {
    if (s2.isBuffer(this))
      return this.buffer;
  } }), Object.defineProperty(s2.prototype, "offset", { enumerable: true, get: function() {
    if (s2.isBuffer(this))
      return this.byteOffset;
  } }), s2.poolSize = 8192, s2.from = function(t4, e3, n3) {
    return u2(t4, e3, n3);
  }, Object.setPrototypeOf(s2.prototype, Uint8Array.prototype), Object.setPrototypeOf(s2, Uint8Array), s2.alloc = function(t4, e3, n3) {
    return function(t5, e4, n4) {
      return d2(t5), t5 <= 0 ? o2(t5) : void 0 !== e4 ? "string" == typeof n4 ? o2(t5).fill(e4, n4) : o2(t5).fill(e4) : o2(t5);
    }(t4, e3, n3);
  }, s2.allocUnsafe = function(t4) {
    return c2(t4);
  }, s2.allocUnsafeSlow = function(t4) {
    return c2(t4);
  }, s2.isBuffer = function(t4) {
    return null != t4 && true === t4._isBuffer && t4 !== s2.prototype;
  }, s2.compare = function(t4, e3) {
    if (q(t4, Uint8Array) && (t4 = s2.from(t4, t4.offset, t4.byteLength)), q(e3, Uint8Array) && (e3 = s2.from(e3, e3.offset, e3.byteLength)), !s2.isBuffer(t4) || !s2.isBuffer(e3))
      throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');
    if (t4 === e3)
      return 0;
    for (var n3 = t4.length, a3 = e3.length, r3 = 0, i3 = Math.min(n3, a3); r3 < i3; ++r3)
      if (t4[r3] !== e3[r3]) {
        n3 = t4[r3], a3 = e3[r3];
        break;
      }
    return n3 < a3 ? -1 : a3 < n3 ? 1 : 0;
  }, s2.isEncoding = function(t4) {
    switch (String(t4).toLowerCase()) {
      case "hex":
      case "utf8":
      case "utf-8":
      case "ascii":
      case "latin1":
      case "binary":
      case "base64":
      case "ucs2":
      case "ucs-2":
      case "utf16le":
      case "utf-16le":
        return true;
      default:
        return false;
    }
  }, s2.concat = function(t4, e3) {
    if (!Array.isArray(t4))
      throw new TypeError('"list" argument must be an Array of Buffers');
    if (0 === t4.length)
      return s2.alloc(0);
    var n3;
    if (void 0 === e3)
      for (e3 = 0, n3 = 0; n3 < t4.length; ++n3)
        e3 += t4[n3].length;
    var a3 = s2.allocUnsafe(e3), r3 = 0;
    for (n3 = 0; n3 < t4.length; ++n3) {
      var i3 = t4[n3];
      if (q(i3, Uint8Array))
        r3 + i3.length > a3.length ? s2.from(i3).copy(a3, r3) : Uint8Array.prototype.set.call(a3, i3, r3);
      else {
        if (!s2.isBuffer(i3))
          throw new TypeError('"list" argument must be an Array of Buffers');
        i3.copy(a3, r3);
      }
      r3 += i3.length;
    }
    return a3;
  }, s2.byteLength = h2, s2.prototype._isBuffer = true, s2.prototype.swap16 = function() {
    var t4 = this.length;
    if (t4 % 2 != 0)
      throw new RangeError("Buffer size must be a multiple of 16-bits");
    for (var e3 = 0; e3 < t4; e3 += 2)
      b2(this, e3, e3 + 1);
    return this;
  }, s2.prototype.swap32 = function() {
    var t4 = this.length;
    if (t4 % 4 != 0)
      throw new RangeError("Buffer size must be a multiple of 32-bits");
    for (var e3 = 0; e3 < t4; e3 += 4)
      b2(this, e3, e3 + 3), b2(this, e3 + 1, e3 + 2);
    return this;
  }, s2.prototype.swap64 = function() {
    var t4 = this.length;
    if (t4 % 8 != 0)
      throw new RangeError("Buffer size must be a multiple of 64-bits");
    for (var e3 = 0; e3 < t4; e3 += 8)
      b2(this, e3, e3 + 7), b2(this, e3 + 1, e3 + 6), b2(this, e3 + 2, e3 + 5), b2(this, e3 + 3, e3 + 4);
    return this;
  }, s2.prototype.toString = function() {
    var t4 = this.length;
    return 0 === t4 ? "" : 0 === arguments.length ? k(this, 0, t4) : p2.apply(this, arguments);
  }, s2.prototype.toLocaleString = s2.prototype.toString, s2.prototype.equals = function(t4) {
    if (!s2.isBuffer(t4))
      throw new TypeError("Argument must be a Buffer");
    return this === t4 || 0 === s2.compare(this, t4);
  }, s2.prototype.inspect = function() {
    var t4 = "", n3 = e2.INSPECT_MAX_BYTES;
    return t4 = this.toString("hex", 0, n3).replace(/(.{2})/g, "$1 ").trim(), this.length > n3 && (t4 += " ... "), "<Buffer " + t4 + ">";
  }, i2 && (s2.prototype[i2] = s2.prototype.inspect), s2.prototype.compare = function(t4, e3, n3, a3, r3) {
    if (q(t4, Uint8Array) && (t4 = s2.from(t4, t4.offset, t4.byteLength)), !s2.isBuffer(t4))
      throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof t4);
    if (void 0 === e3 && (e3 = 0), void 0 === n3 && (n3 = t4 ? t4.length : 0), void 0 === a3 && (a3 = 0), void 0 === r3 && (r3 = this.length), e3 < 0 || n3 > t4.length || a3 < 0 || r3 > this.length)
      throw new RangeError("out of range index");
    if (a3 >= r3 && e3 >= n3)
      return 0;
    if (a3 >= r3)
      return -1;
    if (e3 >= n3)
      return 1;
    if (this === t4)
      return 0;
    for (var i3 = (r3 >>>= 0) - (a3 >>>= 0), l3 = (n3 >>>= 0) - (e3 >>>= 0), o3 = Math.min(i3, l3), u3 = this.slice(a3, r3), d3 = t4.slice(e3, n3), c3 = 0; c3 < o3; ++c3)
      if (u3[c3] !== d3[c3]) {
        i3 = u3[c3], l3 = d3[c3];
        break;
      }
    return i3 < l3 ? -1 : l3 < i3 ? 1 : 0;
  }, s2.prototype.includes = function(t4, e3, n3) {
    return -1 !== this.indexOf(t4, e3, n3);
  }, s2.prototype.indexOf = function(t4, e3, n3) {
    return y2(this, t4, e3, n3, true);
  }, s2.prototype.lastIndexOf = function(t4, e3, n3) {
    return y2(this, t4, e3, n3, false);
  }, s2.prototype.write = function(t4, e3, n3, a3) {
    if (void 0 === e3)
      a3 = "utf8", n3 = this.length, e3 = 0;
    else if (void 0 === n3 && "string" == typeof e3)
      a3 = e3, n3 = this.length, e3 = 0;
    else {
      if (!isFinite(e3))
        throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");
      e3 >>>= 0, isFinite(n3) ? (n3 >>>= 0, void 0 === a3 && (a3 = "utf8")) : (a3 = n3, n3 = void 0);
    }
    var r3 = this.length - e3;
    if ((void 0 === n3 || n3 > r3) && (n3 = r3), t4.length > 0 && (n3 < 0 || e3 < 0) || e3 > this.length)
      throw new RangeError("Attempt to write outside buffer bounds");
    a3 || (a3 = "utf8");
    for (var i3 = false; ; )
      switch (a3) {
        case "hex":
          return _2(this, t4, e3, n3);
        case "utf8":
        case "utf-8":
          return T2(this, t4, e3, n3);
        case "ascii":
        case "latin1":
        case "binary":
          return v2(this, t4, e3, n3);
        case "base64":
          return w2(this, t4, e3, n3);
        case "ucs2":
        case "ucs-2":
        case "utf16le":
        case "utf-16le":
          return S2(this, t4, e3, n3);
        default:
          if (i3)
            throw new TypeError("Unknown encoding: " + a3);
          a3 = ("" + a3).toLowerCase(), i3 = true;
      }
  }, s2.prototype.toJSON = function() {
    return { type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0) };
  };
  var A = 4096;
  function R(t4, e3, n3) {
    var a3 = "";
    n3 = Math.min(t4.length, n3);
    for (var r3 = e3; r3 < n3; ++r3)
      a3 += String.fromCharCode(127 & t4[r3]);
    return a3;
  }
  function N(t4, e3, n3) {
    var a3 = "";
    n3 = Math.min(t4.length, n3);
    for (var r3 = e3; r3 < n3; ++r3)
      a3 += String.fromCharCode(t4[r3]);
    return a3;
  }
  function C(t4, e3, n3) {
    var a3 = t4.length;
    (!e3 || e3 < 0) && (e3 = 0), (!n3 || n3 < 0 || n3 > a3) && (n3 = a3);
    for (var r3 = "", i3 = e3; i3 < n3; ++i3)
      r3 += G[t4[i3]];
    return r3;
  }
  function D(t4, e3, n3) {
    for (var a3 = t4.slice(e3, n3), r3 = "", i3 = 0; i3 < a3.length - 1; i3 += 2)
      r3 += String.fromCharCode(a3[i3] + 256 * a3[i3 + 1]);
    return r3;
  }
  function x(t4, e3, n3) {
    if (t4 % 1 != 0 || t4 < 0)
      throw new RangeError("offset is not uint");
    if (t4 + e3 > n3)
      throw new RangeError("Trying to access beyond buffer length");
  }
  function M(t4, e3, n3, a3, r3, i3) {
    if (!s2.isBuffer(t4))
      throw new TypeError('"buffer" argument must be a Buffer instance');
    if (e3 > r3 || e3 < i3)
      throw new RangeError('"value" argument is out of bounds');
    if (n3 + a3 > t4.length)
      throw new RangeError("Index out of range");
  }
  function z(t4, e3, n3, a3, r3, i3) {
    if (n3 + a3 > t4.length)
      throw new RangeError("Index out of range");
    if (n3 < 0)
      throw new RangeError("Index out of range");
  }
  function O(t4, e3, n3, a3, i3) {
    return e3 = +e3, n3 >>>= 0, i3 || z(t4, 0, n3, 4), r2.write(t4, e3, n3, a3, 23, 4), n3 + 4;
  }
  function P(t4, e3, n3, a3, i3) {
    return e3 = +e3, n3 >>>= 0, i3 || z(t4, 0, n3, 8), r2.write(t4, e3, n3, a3, 52, 8), n3 + 8;
  }
  s2.prototype.slice = function(t4, e3) {
    var n3 = this.length;
    (t4 = ~~t4) < 0 ? (t4 += n3) < 0 && (t4 = 0) : t4 > n3 && (t4 = n3), (e3 = void 0 === e3 ? n3 : ~~e3) < 0 ? (e3 += n3) < 0 && (e3 = 0) : e3 > n3 && (e3 = n3), e3 < t4 && (e3 = t4);
    var a3 = this.subarray(t4, e3);
    return Object.setPrototypeOf(a3, s2.prototype), a3;
  }, s2.prototype.readUintLE = s2.prototype.readUIntLE = function(t4, e3, n3) {
    t4 >>>= 0, e3 >>>= 0, n3 || x(t4, e3, this.length);
    for (var a3 = this[t4], r3 = 1, i3 = 0; ++i3 < e3 && (r3 *= 256); )
      a3 += this[t4 + i3] * r3;
    return a3;
  }, s2.prototype.readUintBE = s2.prototype.readUIntBE = function(t4, e3, n3) {
    t4 >>>= 0, e3 >>>= 0, n3 || x(t4, e3, this.length);
    for (var a3 = this[t4 + --e3], r3 = 1; e3 > 0 && (r3 *= 256); )
      a3 += this[t4 + --e3] * r3;
    return a3;
  }, s2.prototype.readUint8 = s2.prototype.readUInt8 = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 1, this.length), this[t4];
  }, s2.prototype.readUint16LE = s2.prototype.readUInt16LE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 2, this.length), this[t4] | this[t4 + 1] << 8;
  }, s2.prototype.readUint16BE = s2.prototype.readUInt16BE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 2, this.length), this[t4] << 8 | this[t4 + 1];
  }, s2.prototype.readUint32LE = s2.prototype.readUInt32LE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), (this[t4] | this[t4 + 1] << 8 | this[t4 + 2] << 16) + 16777216 * this[t4 + 3];
  }, s2.prototype.readUint32BE = s2.prototype.readUInt32BE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), 16777216 * this[t4] + (this[t4 + 1] << 16 | this[t4 + 2] << 8 | this[t4 + 3]);
  }, s2.prototype.readIntLE = function(t4, e3, n3) {
    t4 >>>= 0, e3 >>>= 0, n3 || x(t4, e3, this.length);
    for (var a3 = this[t4], r3 = 1, i3 = 0; ++i3 < e3 && (r3 *= 256); )
      a3 += this[t4 + i3] * r3;
    return a3 >= (r3 *= 128) && (a3 -= Math.pow(2, 8 * e3)), a3;
  }, s2.prototype.readIntBE = function(t4, e3, n3) {
    t4 >>>= 0, e3 >>>= 0, n3 || x(t4, e3, this.length);
    for (var a3 = e3, r3 = 1, i3 = this[t4 + --a3]; a3 > 0 && (r3 *= 256); )
      i3 += this[t4 + --a3] * r3;
    return i3 >= (r3 *= 128) && (i3 -= Math.pow(2, 8 * e3)), i3;
  }, s2.prototype.readInt8 = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 1, this.length), 128 & this[t4] ? -1 * (255 - this[t4] + 1) : this[t4];
  }, s2.prototype.readInt16LE = function(t4, e3) {
    t4 >>>= 0, e3 || x(t4, 2, this.length);
    var n3 = this[t4] | this[t4 + 1] << 8;
    return 32768 & n3 ? 4294901760 | n3 : n3;
  }, s2.prototype.readInt16BE = function(t4, e3) {
    t4 >>>= 0, e3 || x(t4, 2, this.length);
    var n3 = this[t4 + 1] | this[t4] << 8;
    return 32768 & n3 ? 4294901760 | n3 : n3;
  }, s2.prototype.readInt32LE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), this[t4] | this[t4 + 1] << 8 | this[t4 + 2] << 16 | this[t4 + 3] << 24;
  }, s2.prototype.readInt32BE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), this[t4] << 24 | this[t4 + 1] << 16 | this[t4 + 2] << 8 | this[t4 + 3];
  }, s2.prototype.readFloatLE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), r2.read(this, t4, true, 23, 4);
  }, s2.prototype.readFloatBE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 4, this.length), r2.read(this, t4, false, 23, 4);
  }, s2.prototype.readDoubleLE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 8, this.length), r2.read(this, t4, true, 52, 8);
  }, s2.prototype.readDoubleBE = function(t4, e3) {
    return t4 >>>= 0, e3 || x(t4, 8, this.length), r2.read(this, t4, false, 52, 8);
  }, s2.prototype.writeUintLE = s2.prototype.writeUIntLE = function(t4, e3, n3, a3) {
    t4 = +t4, e3 >>>= 0, n3 >>>= 0, a3 || M(this, t4, e3, n3, Math.pow(2, 8 * n3) - 1, 0);
    var r3 = 1, i3 = 0;
    for (this[e3] = 255 & t4; ++i3 < n3 && (r3 *= 256); )
      this[e3 + i3] = t4 / r3 & 255;
    return e3 + n3;
  }, s2.prototype.writeUintBE = s2.prototype.writeUIntBE = function(t4, e3, n3, a3) {
    t4 = +t4, e3 >>>= 0, n3 >>>= 0, a3 || M(this, t4, e3, n3, Math.pow(2, 8 * n3) - 1, 0);
    var r3 = n3 - 1, i3 = 1;
    for (this[e3 + r3] = 255 & t4; --r3 >= 0 && (i3 *= 256); )
      this[e3 + r3] = t4 / i3 & 255;
    return e3 + n3;
  }, s2.prototype.writeUint8 = s2.prototype.writeUInt8 = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 1, 255, 0), this[e3] = 255 & t4, e3 + 1;
  }, s2.prototype.writeUint16LE = s2.prototype.writeUInt16LE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 2, 65535, 0), this[e3] = 255 & t4, this[e3 + 1] = t4 >>> 8, e3 + 2;
  }, s2.prototype.writeUint16BE = s2.prototype.writeUInt16BE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 2, 65535, 0), this[e3] = t4 >>> 8, this[e3 + 1] = 255 & t4, e3 + 2;
  }, s2.prototype.writeUint32LE = s2.prototype.writeUInt32LE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 4, 4294967295, 0), this[e3 + 3] = t4 >>> 24, this[e3 + 2] = t4 >>> 16, this[e3 + 1] = t4 >>> 8, this[e3] = 255 & t4, e3 + 4;
  }, s2.prototype.writeUint32BE = s2.prototype.writeUInt32BE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 4, 4294967295, 0), this[e3] = t4 >>> 24, this[e3 + 1] = t4 >>> 16, this[e3 + 2] = t4 >>> 8, this[e3 + 3] = 255 & t4, e3 + 4;
  }, s2.prototype.writeIntLE = function(t4, e3, n3, a3) {
    if (t4 = +t4, e3 >>>= 0, !a3) {
      var r3 = Math.pow(2, 8 * n3 - 1);
      M(this, t4, e3, n3, r3 - 1, -r3);
    }
    var i3 = 0, l3 = 1, o3 = 0;
    for (this[e3] = 255 & t4; ++i3 < n3 && (l3 *= 256); )
      t4 < 0 && 0 === o3 && 0 !== this[e3 + i3 - 1] && (o3 = 1), this[e3 + i3] = (t4 / l3 | 0) - o3 & 255;
    return e3 + n3;
  }, s2.prototype.writeIntBE = function(t4, e3, n3, a3) {
    if (t4 = +t4, e3 >>>= 0, !a3) {
      var r3 = Math.pow(2, 8 * n3 - 1);
      M(this, t4, e3, n3, r3 - 1, -r3);
    }
    var i3 = n3 - 1, l3 = 1, o3 = 0;
    for (this[e3 + i3] = 255 & t4; --i3 >= 0 && (l3 *= 256); )
      t4 < 0 && 0 === o3 && 0 !== this[e3 + i3 + 1] && (o3 = 1), this[e3 + i3] = (t4 / l3 | 0) - o3 & 255;
    return e3 + n3;
  }, s2.prototype.writeInt8 = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 1, 127, -128), t4 < 0 && (t4 = 255 + t4 + 1), this[e3] = 255 & t4, e3 + 1;
  }, s2.prototype.writeInt16LE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 2, 32767, -32768), this[e3] = 255 & t4, this[e3 + 1] = t4 >>> 8, e3 + 2;
  }, s2.prototype.writeInt16BE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 2, 32767, -32768), this[e3] = t4 >>> 8, this[e3 + 1] = 255 & t4, e3 + 2;
  }, s2.prototype.writeInt32LE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 4, 2147483647, -2147483648), this[e3] = 255 & t4, this[e3 + 1] = t4 >>> 8, this[e3 + 2] = t4 >>> 16, this[e3 + 3] = t4 >>> 24, e3 + 4;
  }, s2.prototype.writeInt32BE = function(t4, e3, n3) {
    return t4 = +t4, e3 >>>= 0, n3 || M(this, t4, e3, 4, 2147483647, -2147483648), t4 < 0 && (t4 = 4294967295 + t4 + 1), this[e3] = t4 >>> 24, this[e3 + 1] = t4 >>> 16, this[e3 + 2] = t4 >>> 8, this[e3 + 3] = 255 & t4, e3 + 4;
  }, s2.prototype.writeFloatLE = function(t4, e3, n3) {
    return O(this, t4, e3, true, n3);
  }, s2.prototype.writeFloatBE = function(t4, e3, n3) {
    return O(this, t4, e3, false, n3);
  }, s2.prototype.writeDoubleLE = function(t4, e3, n3) {
    return P(this, t4, e3, true, n3);
  }, s2.prototype.writeDoubleBE = function(t4, e3, n3) {
    return P(this, t4, e3, false, n3);
  }, s2.prototype.copy = function(t4, e3, n3, a3) {
    if (!s2.isBuffer(t4))
      throw new TypeError("argument should be a Buffer");
    if (n3 || (n3 = 0), a3 || 0 === a3 || (a3 = this.length), e3 >= t4.length && (e3 = t4.length), e3 || (e3 = 0), a3 > 0 && a3 < n3 && (a3 = n3), a3 === n3)
      return 0;
    if (0 === t4.length || 0 === this.length)
      return 0;
    if (e3 < 0)
      throw new RangeError("targetStart out of bounds");
    if (n3 < 0 || n3 >= this.length)
      throw new RangeError("Index out of range");
    if (a3 < 0)
      throw new RangeError("sourceEnd out of bounds");
    a3 > this.length && (a3 = this.length), t4.length - e3 < a3 - n3 && (a3 = t4.length - e3 + n3);
    var r3 = a3 - n3;
    return this === t4 && "function" == typeof Uint8Array.prototype.copyWithin ? this.copyWithin(e3, n3, a3) : Uint8Array.prototype.set.call(t4, this.subarray(n3, a3), e3), r3;
  }, s2.prototype.fill = function(t4, e3, n3, a3) {
    if ("string" == typeof t4) {
      if ("string" == typeof e3 ? (a3 = e3, e3 = 0, n3 = this.length) : "string" == typeof n3 && (a3 = n3, n3 = this.length), void 0 !== a3 && "string" != typeof a3)
        throw new TypeError("encoding must be a string");
      if ("string" == typeof a3 && !s2.isEncoding(a3))
        throw new TypeError("Unknown encoding: " + a3);
      if (1 === t4.length) {
        var r3 = t4.charCodeAt(0);
        ("utf8" === a3 && r3 < 128 || "latin1" === a3) && (t4 = r3);
      }
    } else
      "number" == typeof t4 ? t4 &= 255 : "boolean" == typeof t4 && (t4 = Number(t4));
    if (e3 < 0 || this.length < e3 || this.length < n3)
      throw new RangeError("Out of range index");
    if (n3 <= e3)
      return this;
    var i3;
    if (e3 >>>= 0, n3 = void 0 === n3 ? this.length : n3 >>> 0, t4 || (t4 = 0), "number" == typeof t4)
      for (i3 = e3; i3 < n3; ++i3)
        this[i3] = t4;
    else {
      var l3 = s2.isBuffer(t4) ? t4 : s2.from(t4, a3), o3 = l3.length;
      if (0 === o3)
        throw new TypeError('The value "' + t4 + '" is invalid for argument "value"');
      for (i3 = 0; i3 < n3 - e3; ++i3)
        this[i3 + e3] = l3[i3 % o3];
    }
    return this;
  };
  var L = /[^+/0-9A-Za-z-_]/g;
  function F(t4, e3) {
    var n3;
    e3 = e3 || 1 / 0;
    for (var a3 = t4.length, r3 = null, i3 = [], l3 = 0; l3 < a3; ++l3) {
      if ((n3 = t4.charCodeAt(l3)) > 55295 && n3 < 57344) {
        if (!r3) {
          if (n3 > 56319) {
            (e3 -= 3) > -1 && i3.push(239, 191, 189);
            continue;
          }
          if (l3 + 1 === a3) {
            (e3 -= 3) > -1 && i3.push(239, 191, 189);
            continue;
          }
          r3 = n3;
          continue;
        }
        if (n3 < 56320) {
          (e3 -= 3) > -1 && i3.push(239, 191, 189), r3 = n3;
          continue;
        }
        n3 = 65536 + (r3 - 55296 << 10 | n3 - 56320);
      } else
        r3 && (e3 -= 3) > -1 && i3.push(239, 191, 189);
      if (r3 = null, n3 < 128) {
        if ((e3 -= 1) < 0)
          break;
        i3.push(n3);
      } else if (n3 < 2048) {
        if ((e3 -= 2) < 0)
          break;
        i3.push(n3 >> 6 | 192, 63 & n3 | 128);
      } else if (n3 < 65536) {
        if ((e3 -= 3) < 0)
          break;
        i3.push(n3 >> 12 | 224, n3 >> 6 & 63 | 128, 63 & n3 | 128);
      } else {
        if (!(n3 < 1114112))
          throw new Error("Invalid code point");
        if ((e3 -= 4) < 0)
          break;
        i3.push(n3 >> 18 | 240, n3 >> 12 & 63 | 128, n3 >> 6 & 63 | 128, 63 & n3 | 128);
      }
    }
    return i3;
  }
  function U(t4) {
    return a2.toByteArray(function(t5) {
      if ((t5 = (t5 = t5.split("=")[0]).trim().replace(L, "")).length < 2)
        return "";
      for (; t5.length % 4 != 0; )
        t5 += "=";
      return t5;
    }(t4));
  }
  function j(t4, e3, n3, a3) {
    for (var r3 = 0; r3 < a3 && !(r3 + n3 >= e3.length || r3 >= t4.length); ++r3)
      e3[r3 + n3] = t4[r3];
    return r3;
  }
  function q(t4, e3) {
    return t4 instanceof e3 || null != t4 && null != t4.constructor && null != t4.constructor.name && t4.constructor.name === e3.name;
  }
  function B(t4) {
    return t4 != t4;
  }
  var G = function() {
    for (var t4 = "0123456789abcdef", e3 = new Array(256), n3 = 0; n3 < 16; ++n3)
      for (var a3 = 16 * n3, r3 = 0; r3 < 16; ++r3)
        e3[a3 + r3] = t4[n3] + t4[r3];
    return e3;
  }();
}, 6877: function(t3, e2) {
  var n2 = { parseBuffer: function(t4) {
    return new a2(t4).parse();
  }, addBoxProcessor: function(t4, e3) {
    "string" == typeof t4 && "function" == typeof e3 && (r2.prototype._boxProcessors[t4] = e3);
  }, createFile: function() {
    return new a2();
  }, createBox: function(t4, e3, n3) {
    var a3 = r2.create(t4);
    return e3 && e3.append(a3, n3), a3;
  }, createFullBox: function(t4, e3, a3) {
    var r3 = n2.createBox(t4, e3, a3);
    return r3.version = 0, r3.flags = 0, r3;
  }, Utils: {} };
  n2.Utils.dataViewToString = function(t4, e3) {
    var n3 = e3 || "utf-8";
    if ("undefined" != typeof TextDecoder)
      return new TextDecoder(n3).decode(t4);
    var a3 = [], r3 = 0;
    if ("utf-8" === n3)
      for (; r3 < t4.byteLength; ) {
        var i2 = t4.getUint8(r3++);
        i2 < 128 || (i2 < 224 ? (i2 = (31 & i2) << 6, i2 |= 63 & t4.getUint8(r3++)) : i2 < 240 ? (i2 = (15 & i2) << 12, i2 |= (63 & t4.getUint8(r3++)) << 6, i2 |= 63 & t4.getUint8(r3++)) : (i2 = (7 & i2) << 18, i2 |= (63 & t4.getUint8(r3++)) << 12, i2 |= (63 & t4.getUint8(r3++)) << 6, i2 |= 63 & t4.getUint8(r3++))), a3.push(String.fromCharCode(i2));
      }
    else
      for (; r3 < t4.byteLength; )
        a3.push(String.fromCharCode(t4.getUint8(r3++)));
    return a3.join("");
  }, n2.Utils.utf8ToByteArray = function(t4) {
    var e3, n3;
    if ("undefined" != typeof TextEncoder)
      e3 = new TextEncoder().encode(t4);
    else
      for (e3 = [], n3 = 0; n3 < t4.length; ++n3) {
        var a3 = t4.charCodeAt(n3);
        a3 < 128 ? e3.push(a3) : a3 < 2048 ? (e3.push(192 | a3 >> 6), e3.push(128 | 63 & a3)) : a3 < 65536 ? (e3.push(224 | a3 >> 12), e3.push(128 | 63 & a3 >> 6), e3.push(128 | 63 & a3)) : (e3.push(240 | a3 >> 18), e3.push(128 | 63 & a3 >> 12), e3.push(128 | 63 & a3 >> 6), e3.push(128 | 63 & a3));
      }
    return e3;
  }, n2.Utils.appendBox = function(t4, e3, n3) {
    if (e3._offset = t4._cursor.offset, e3._root = t4._root ? t4._root : t4, e3._raw = t4._raw, e3._parent = t4, -1 !== n3)
      if (null != n3) {
        var a3, r3 = -1;
        if ("number" == typeof n3)
          r3 = n3;
        else {
          if ("string" == typeof n3)
            a3 = n3;
          else {
            if ("object" != typeof n3 || !n3.type)
              return void t4.boxes.push(e3);
            a3 = n3.type;
          }
          for (var i2 = 0; i2 < t4.boxes.length; i2++)
            if (a3 === t4.boxes[i2].type) {
              r3 = i2 + 1;
              break;
            }
        }
        t4.boxes.splice(r3, 0, e3);
      } else
        t4.boxes.push(e3);
  }, e2.parseBuffer = n2.parseBuffer, e2.addBoxProcessor = n2.addBoxProcessor, e2.createFile = n2.createFile, e2.createBox = n2.createBox, e2.createFullBox = n2.createFullBox, e2.Utils = n2.Utils, n2.Cursor = function(t4) {
    this.offset = void 0 === t4 ? 0 : t4;
  };
  var a2 = function(t4) {
    this._cursor = new n2.Cursor(), this.boxes = [], t4 && (this._raw = new DataView(t4));
  };
  a2.prototype.fetch = function(t4) {
    var e3 = this.fetchAll(t4, true);
    return e3.length ? e3[0] : null;
  }, a2.prototype.fetchAll = function(t4, e3) {
    var n3 = [];
    return a2._sweep.call(this, t4, n3, e3), n3;
  }, a2.prototype.parse = function() {
    for (this._cursor.offset = 0, this.boxes = []; this._cursor.offset < this._raw.byteLength; ) {
      var t4 = r2.parse(this);
      if (void 0 === t4.type)
        break;
      this.boxes.push(t4);
    }
    return this;
  }, a2._sweep = function(t4, e3, n3) {
    for (var r3 in this.type && this.type == t4 && e3.push(this), this.boxes) {
      if (e3.length && n3)
        return;
      a2._sweep.call(this.boxes[r3], t4, e3, n3);
    }
  }, a2.prototype.write = function() {
    var t4, e3 = 0;
    for (t4 = 0; t4 < this.boxes.length; t4++)
      e3 += this.boxes[t4].getLength(false);
    var n3 = new Uint8Array(e3);
    for (this._rawo = new DataView(n3.buffer), this.bytes = n3, this._cursor.offset = 0, t4 = 0; t4 < this.boxes.length; t4++)
      this.boxes[t4].write();
    return n3.buffer;
  }, a2.prototype.append = function(t4, e3) {
    n2.Utils.appendBox(this, t4, e3);
  };
  var r2 = function() {
    this._cursor = new n2.Cursor();
  };
  r2.parse = function(t4) {
    var e3 = new r2();
    return e3._offset = t4._cursor.offset, e3._root = t4._root ? t4._root : t4, e3._raw = t4._raw, e3._parent = t4, e3._parseBox(), t4._cursor.offset = e3._raw.byteOffset + e3._raw.byteLength, e3;
  }, r2.create = function(t4) {
    var e3 = new r2();
    return e3.type = t4, e3.boxes = [], e3;
  }, r2.prototype._boxContainers = ["dinf", "edts", "mdia", "meco", "mfra", "minf", "moof", "moov", "mvex", "stbl", "strk", "traf", "trak", "tref", "udta", "vttc", "sinf", "schi", "encv", "enca", "meta", "grpl", "prsl"], r2.prototype._boxProcessors = {}, r2.prototype._procField = function(t4, e3, n3) {
    this._parsing ? this[t4] = this._readField(e3, n3) : this._writeField(e3, n3, this[t4]);
  }, r2.prototype._procFieldArray = function(t4, e3, n3, a3) {
    var r3;
    if (this._parsing)
      for (this[t4] = [], r3 = 0; r3 < e3; r3++)
        this[t4][r3] = this._readField(n3, a3);
    else
      for (r3 = 0; r3 < this[t4].length; r3++)
        this._writeField(n3, a3, this[t4][r3]);
  }, r2.prototype._procFullBox = function() {
    this._procField("version", "uint", 8), this._procField("flags", "uint", 24);
  }, r2.prototype._procEntries = function(t4, e3, n3) {
    var a3;
    if (this._parsing)
      for (this[t4] = [], a3 = 0; a3 < e3; a3++)
        this[t4].push({}), n3.call(this, this[t4][a3]);
    else
      for (a3 = 0; a3 < e3; a3++)
        n3.call(this, this[t4][a3]);
  }, r2.prototype._procSubEntries = function(t4, e3, n3, a3) {
    var r3;
    if (this._parsing)
      for (t4[e3] = [], r3 = 0; r3 < n3; r3++)
        t4[e3].push({}), a3.call(this, t4[e3][r3]);
    else
      for (r3 = 0; r3 < n3; r3++)
        a3.call(this, t4[e3][r3]);
  }, r2.prototype._procEntryField = function(t4, e3, n3, a3) {
    this._parsing ? t4[e3] = this._readField(n3, a3) : this._writeField(n3, a3, t4[e3]);
  }, r2.prototype._procSubBoxes = function(t4, e3) {
    var n3;
    if (this._parsing)
      for (this[t4] = [], n3 = 0; n3 < e3; n3++)
        this[t4].push(r2.parse(this));
    else
      for (n3 = 0; n3 < e3; n3++)
        this._rawo ? this[t4][n3].write() : this.size += this[t4][n3].getLength();
  }, r2.prototype._readField = function(t4, e3) {
    switch (t4) {
      case "uint":
        return this._readUint(e3);
      case "int":
        return this._readInt(e3);
      case "template":
        return this._readTemplate(e3);
      case "string":
        return -1 === e3 ? this._readTerminatedString() : this._readString(e3);
      case "data":
        return this._readData(e3);
      case "utf8":
        return this._readUTF8String();
      case "utf8string":
        return this._readUTF8TerminatedString();
      default:
        return -1;
    }
  }, r2.prototype._readInt = function(t4) {
    var e3 = null, n3 = this._cursor.offset - this._raw.byteOffset;
    switch (t4) {
      case 8:
        e3 = this._raw.getInt8(n3);
        break;
      case 16:
        e3 = this._raw.getInt16(n3);
        break;
      case 32:
        e3 = this._raw.getInt32(n3);
        break;
      case 64:
        var a3 = this._raw.getInt32(n3), r3 = this._raw.getInt32(n3 + 4);
        e3 = a3 * Math.pow(2, 32) + r3;
    }
    return this._cursor.offset += t4 >> 3, e3;
  }, r2.prototype._readUint = function(t4) {
    var e3, n3, a3 = null, r3 = this._cursor.offset - this._raw.byteOffset;
    switch (t4) {
      case 8:
        a3 = this._raw.getUint8(r3);
        break;
      case 16:
        a3 = this._raw.getUint16(r3);
        break;
      case 24:
        a3 = ((e3 = this._raw.getUint16(r3)) << 8) + (n3 = this._raw.getUint8(r3 + 2));
        break;
      case 32:
        a3 = this._raw.getUint32(r3);
        break;
      case 64:
        e3 = this._raw.getUint32(r3), n3 = this._raw.getUint32(r3 + 4), a3 = e3 * Math.pow(2, 32) + n3;
    }
    return this._cursor.offset += t4 >> 3, a3;
  }, r2.prototype._readString = function(t4) {
    for (var e3 = "", n3 = 0; n3 < t4; n3++) {
      var a3 = this._readUint(8);
      e3 += String.fromCharCode(a3);
    }
    return e3;
  }, r2.prototype._readTemplate = function(t4) {
    return this._readUint(t4 / 2) + this._readUint(t4 / 2) / Math.pow(2, t4 / 2);
  }, r2.prototype._readTerminatedString = function() {
    for (var t4 = ""; this._cursor.offset - this._offset < this._raw.byteLength; ) {
      var e3 = this._readUint(8);
      if (0 === e3)
        break;
      t4 += String.fromCharCode(e3);
    }
    return t4;
  }, r2.prototype._readData = function(t4) {
    var e3 = t4 > 0 ? t4 : this._raw.byteLength - (this._cursor.offset - this._offset);
    if (e3 > 0) {
      var n3 = new Uint8Array(this._raw.buffer, this._cursor.offset, e3);
      return this._cursor.offset += e3, n3;
    }
    return null;
  }, r2.prototype._readUTF8String = function() {
    var t4 = this._raw.byteLength - (this._cursor.offset - this._offset), e3 = null;
    return t4 > 0 && (e3 = new DataView(this._raw.buffer, this._cursor.offset, t4), this._cursor.offset += t4), e3 ? n2.Utils.dataViewToString(e3) : e3;
  }, r2.prototype._readUTF8TerminatedString = function() {
    var t4 = this._raw.byteLength - (this._cursor.offset - this._offset), e3 = null;
    if (t4 > 0) {
      var a3;
      for (e3 = new DataView(this._raw.buffer, this._cursor.offset, t4), a3 = 0; a3 < t4 && 0 !== e3.getUint8(a3); a3++)
        ;
      e3 = new DataView(this._raw.buffer, this._cursor.offset, a3), this._cursor.offset += Math.min(a3 + 1, t4);
    }
    return e3 ? n2.Utils.dataViewToString(e3) : e3;
  }, r2.prototype._parseBox = function() {
    if (this._parsing = true, this._cursor.offset = this._offset, this._offset + 8 > this._raw.buffer.byteLength)
      this._root._incomplete = true;
    else {
      switch (this._procField("size", "uint", 32), this._procField("type", "string", 4), 1 === this.size && this._procField("largesize", "uint", 64), "uuid" === this.type && this._procFieldArray("usertype", 16, "uint", 8), this.size) {
        case 0:
          this._raw = new DataView(this._raw.buffer, this._offset);
          break;
        case 1:
          this._offset + this.size > this._raw.buffer.byteLength ? (this._incomplete = true, this._root._incomplete = true) : this._raw = new DataView(this._raw.buffer, this._offset, this.largesize);
          break;
        default:
          this._offset + this.size > this._raw.buffer.byteLength ? (this._incomplete = true, this._root._incomplete = true) : this._raw = new DataView(this._raw.buffer, this._offset, this.size);
      }
      this._incomplete || (this._boxProcessors[this.type] && this._boxProcessors[this.type].call(this), -1 !== this._boxContainers.indexOf(this.type) ? this._parseContainerBox() : this._data = this._readData());
    }
  }, r2.prototype._parseFullBox = function() {
    this.version = this._readUint(8), this.flags = this._readUint(24);
  }, r2.prototype._parseContainerBox = function() {
    for (this.boxes = []; this._cursor.offset - this._raw.byteOffset < this._raw.byteLength; )
      this.boxes.push(r2.parse(this));
  }, r2.prototype.append = function(t4, e3) {
    n2.Utils.appendBox(this, t4, e3);
  }, r2.prototype.getLength = function() {
    if (this._parsing = false, this._rawo = null, this.size = 0, this._procField("size", "uint", 32), this._procField("type", "string", 4), 1 === this.size && this._procField("largesize", "uint", 64), "uuid" === this.type && this._procFieldArray("usertype", 16, "uint", 8), this._boxProcessors[this.type] && this._boxProcessors[this.type].call(this), -1 !== this._boxContainers.indexOf(this.type))
      for (var t4 = 0; t4 < this.boxes.length; t4++)
        this.size += this.boxes[t4].getLength();
    return this._data && this._writeData(this._data), this.size;
  }, r2.prototype.write = function() {
    switch (this._parsing = false, this._cursor.offset = this._parent._cursor.offset, this.size) {
      case 0:
        this._rawo = new DataView(this._parent._rawo.buffer, this._cursor.offset, this.parent._rawo.byteLength - this._cursor.offset);
        break;
      case 1:
        this._rawo = new DataView(this._parent._rawo.buffer, this._cursor.offset, this.largesize);
        break;
      default:
        this._rawo = new DataView(this._parent._rawo.buffer, this._cursor.offset, this.size);
    }
    if (this._procField("size", "uint", 32), this._procField("type", "string", 4), 1 === this.size && this._procField("largesize", "uint", 64), "uuid" === this.type && this._procFieldArray("usertype", 16, "uint", 8), this._boxProcessors[this.type] && this._boxProcessors[this.type].call(this), -1 !== this._boxContainers.indexOf(this.type))
      for (var t4 = 0; t4 < this.boxes.length; t4++)
        this.boxes[t4].write();
    return this._data && this._writeData(this._data), this._parent._cursor.offset += this.size, this.size;
  }, r2.prototype._writeInt = function(t4, e3) {
    if (this._rawo) {
      var n3 = this._cursor.offset - this._rawo.byteOffset;
      switch (t4) {
        case 8:
          this._rawo.setInt8(n3, e3);
          break;
        case 16:
          this._rawo.setInt16(n3, e3);
          break;
        case 32:
          this._rawo.setInt32(n3, e3);
          break;
        case 64:
          var a3 = Math.floor(e3 / Math.pow(2, 32)), r3 = e3 - a3 * Math.pow(2, 32);
          this._rawo.setUint32(n3, a3), this._rawo.setUint32(n3 + 4, r3);
      }
      this._cursor.offset += t4 >> 3;
    } else
      this.size += t4 >> 3;
  }, r2.prototype._writeUint = function(t4, e3) {
    if (this._rawo) {
      var n3, a3, r3 = this._cursor.offset - this._rawo.byteOffset;
      switch (t4) {
        case 8:
          this._rawo.setUint8(r3, e3);
          break;
        case 16:
          this._rawo.setUint16(r3, e3);
          break;
        case 24:
          n3 = (16776960 & e3) >> 8, a3 = 255 & e3, this._rawo.setUint16(r3, n3), this._rawo.setUint8(r3 + 2, a3);
          break;
        case 32:
          this._rawo.setUint32(r3, e3);
          break;
        case 64:
          a3 = e3 - (n3 = Math.floor(e3 / Math.pow(2, 32))) * Math.pow(2, 32), this._rawo.setUint32(r3, n3), this._rawo.setUint32(r3 + 4, a3);
      }
      this._cursor.offset += t4 >> 3;
    } else
      this.size += t4 >> 3;
  }, r2.prototype._writeString = function(t4, e3) {
    for (var n3 = 0; n3 < t4; n3++)
      this._writeUint(8, e3.charCodeAt(n3));
  }, r2.prototype._writeTerminatedString = function(t4) {
    if (0 !== t4.length) {
      for (var e3 = 0; e3 < t4.length; e3++)
        this._writeUint(8, t4.charCodeAt(e3));
      this._writeUint(8, 0);
    }
  }, r2.prototype._writeTemplate = function(t4, e3) {
    var n3 = Math.floor(e3), a3 = (e3 - n3) * Math.pow(2, t4 / 2);
    this._writeUint(t4 / 2, n3), this._writeUint(t4 / 2, a3);
  }, r2.prototype._writeData = function(t4) {
    if (t4)
      if (this._rawo) {
        if (t4 instanceof Array) {
          for (var e3 = this._cursor.offset - this._rawo.byteOffset, n3 = 0; n3 < t4.length; n3++)
            this._rawo.setInt8(e3 + n3, t4[n3]);
          this._cursor.offset += t4.length;
        }
        t4 instanceof Uint8Array && (this._root.bytes.set(t4, this._cursor.offset), this._cursor.offset += t4.length);
      } else
        this.size += t4.length;
  }, r2.prototype._writeUTF8String = function(t4) {
    var e3 = n2.Utils.utf8ToByteArray(t4);
    if (this._rawo)
      for (var a3 = new DataView(this._rawo.buffer, this._cursor.offset, e3.length), r3 = 0; r3 < e3.length; r3++)
        a3.setUint8(r3, e3[r3]);
    else
      this.size += e3.length;
  }, r2.prototype._writeField = function(t4, e3, n3) {
    switch (t4) {
      case "uint":
        this._writeUint(e3, n3);
        break;
      case "int":
        this._writeInt(e3, n3);
        break;
      case "template":
        this._writeTemplate(e3, n3);
        break;
      case "string":
        -1 == e3 ? this._writeTerminatedString(n3) : this._writeString(e3, n3);
        break;
      case "data":
        this._writeData(n3);
        break;
      case "utf8":
        this._writeUTF8String(n3);
    }
  }, r2.prototype._boxProcessors.ardi = function() {
    this._procFullBox(), this._procField("audio_rendering_indication", "uint", 8);
  }, r2.prototype._boxProcessors.avc1 = r2.prototype._boxProcessors.avc2 = r2.prototype._boxProcessors.avc3 = r2.prototype._boxProcessors.avc4 = r2.prototype._boxProcessors.hvc1 = r2.prototype._boxProcessors.hev1 = r2.prototype._boxProcessors.encv = function() {
    this._procFieldArray("reserved1", 6, "uint", 8), this._procField("data_reference_index", "uint", 16), this._procField("pre_defined1", "uint", 16), this._procField("reserved2", "uint", 16), this._procFieldArray("pre_defined2", 3, "uint", 32), this._procField("width", "uint", 16), this._procField("height", "uint", 16), this._procField("horizresolution", "template", 32), this._procField("vertresolution", "template", 32), this._procField("reserved3", "uint", 32), this._procField("frame_count", "uint", 16), this._procFieldArray("compressorname", 32, "uint", 8), this._procField("depth", "uint", 16), this._procField("pre_defined3", "int", 16), this._procField("config", "data", -1);
  }, r2.prototype._boxProcessors.ctts = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procEntries("entries", this.entry_count, function(t4) {
      this._procEntryField(t4, "sample_count", "uint", 32), this._procEntryField(t4, "sample_offset", 1 === this.version ? "int" : "uint", 32);
    });
  }, r2.prototype._boxProcessors.dref = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procSubBoxes("entries", this.entry_count);
  }, r2.prototype._boxProcessors.elng = function() {
    this._procFullBox(), this._procField("extended_language", "utf8string");
  }, r2.prototype._boxProcessors.elst = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procEntries("entries", this.entry_count, function(t4) {
      this._procEntryField(t4, "segment_duration", "uint", 1 === this.version ? 64 : 32), this._procEntryField(t4, "media_time", "int", 1 === this.version ? 64 : 32), this._procEntryField(t4, "media_rate_integer", "int", 16), this._procEntryField(t4, "media_rate_fraction", "int", 16);
    });
  }, r2.prototype._boxProcessors.emsg = function() {
    this._procFullBox(), 1 == this.version ? (this._procField("timescale", "uint", 32), this._procField("presentation_time", "uint", 64), this._procField("event_duration", "uint", 32), this._procField("id", "uint", 32), this._procField("scheme_id_uri", "string", -1), this._procField("value", "string", -1)) : (this._procField("scheme_id_uri", "string", -1), this._procField("value", "string", -1), this._procField("timescale", "uint", 32), this._procField("presentation_time_delta", "uint", 32), this._procField("event_duration", "uint", 32), this._procField("id", "uint", 32)), this._procField("message_data", "data", -1);
  }, r2.prototype._boxProcessors.free = r2.prototype._boxProcessors.skip = function() {
    this._procField("data", "data", -1);
  }, r2.prototype._boxProcessors.frma = function() {
    this._procField("data_format", "uint", 32);
  }, r2.prototype._boxProcessors.ftyp = r2.prototype._boxProcessors.styp = function() {
    this._procField("major_brand", "string", 4), this._procField("minor_version", "uint", 32);
    var t4 = -1;
    this._parsing && (t4 = (this._raw.byteLength - (this._cursor.offset - this._raw.byteOffset)) / 4), this._procFieldArray("compatible_brands", t4, "string", 4);
  }, r2.prototype._boxProcessors.hdlr = function() {
    this._procFullBox(), this._procField("pre_defined", "uint", 32), this._procField("handler_type", "string", 4), this._procFieldArray("reserved", 3, "uint", 32), this._procField("name", "string", -1);
  }, r2.prototype._boxProcessors.imda = function() {
    this._procField("imda_identifier", "uint", 32), this._procField("data", "data", -1);
  }, r2.prototype._boxProcessors.kind = function() {
    this._procFullBox(), this._procField("schemeURI", "utf8string"), this._procField("value", "utf8string");
  }, r2.prototype._boxProcessors.labl = function() {
    this._procFullBox(), this.is_group_label = !!(1 & this.flags), this._procField("label_id", "uint", 16), this._procField("language", "utf8string"), this._procField("label", "utf8string");
  }, r2.prototype._boxProcessors.mdat = function() {
    this._procField("data", "data", -1);
  }, r2.prototype._boxProcessors.mdhd = function() {
    this._procFullBox(), this._procField("creation_time", "uint", 1 == this.version ? 64 : 32), this._procField("modification_time", "uint", 1 == this.version ? 64 : 32), this._procField("timescale", "uint", 32), this._procField("duration", "uint", 1 == this.version ? 64 : 32), this._parsing || "string" != typeof this.language || (this.language = this.language.charCodeAt(0) - 96 << 10 | this.language.charCodeAt(1) - 96 << 5 | this.language.charCodeAt(2) - 96), this._procField("language", "uint", 16), this._parsing && (this.language = String.fromCharCode(96 + (this.language >> 10 & 31), 96 + (this.language >> 5 & 31), 96 + (31 & this.language))), this._procField("pre_defined", "uint", 16);
  }, r2.prototype._boxProcessors.mehd = function() {
    this._procFullBox(), this._procField("fragment_duration", "uint", 1 == this.version ? 64 : 32);
  }, r2.prototype._boxProcessors.meta = function() {
    this._procFullBox();
  }, r2.prototype._boxProcessors.mfhd = function() {
    this._procFullBox(), this._procField("sequence_number", "uint", 32);
  }, r2.prototype._boxProcessors.mfro = function() {
    this._procFullBox(), this._procField("mfra_size", "uint", 32);
  }, r2.prototype._boxProcessors.mp4a = r2.prototype._boxProcessors.enca = function() {
    this._procFieldArray("reserved1", 6, "uint", 8), this._procField("data_reference_index", "uint", 16), this._procFieldArray("reserved2", 2, "uint", 32), this._procField("channelcount", "uint", 16), this._procField("samplesize", "uint", 16), this._procField("pre_defined", "uint", 16), this._procField("reserved3", "uint", 16), this._procField("samplerate", "template", 32), this._procField("esds", "data", -1);
  }, r2.prototype._boxProcessors.mvhd = function() {
    this._procFullBox(), this._procField("creation_time", "uint", 1 == this.version ? 64 : 32), this._procField("modification_time", "uint", 1 == this.version ? 64 : 32), this._procField("timescale", "uint", 32), this._procField("duration", "uint", 1 == this.version ? 64 : 32), this._procField("rate", "template", 32), this._procField("volume", "template", 16), this._procField("reserved1", "uint", 16), this._procFieldArray("reserved2", 2, "uint", 32), this._procFieldArray("matrix", 9, "template", 32), this._procFieldArray("pre_defined", 6, "uint", 32), this._procField("next_track_ID", "uint", 32);
  }, r2.prototype._boxProcessors.payl = function() {
    this._procField("cue_text", "utf8");
  }, r2.prototype._boxProcessors.prft = function() {
    this._procFullBox(), this._procField("reference_track_ID", "uint", 32), this._procField("ntp_timestamp_sec", "uint", 32), this._procField("ntp_timestamp_frac", "uint", 32), this._procField("media_time", "uint", 1 == this.version ? 64 : 32);
  }, r2.prototype._boxProcessors.prsl = function() {
    this._procFullBox(), this._procField("group_id", "uint", 32), this._procField("num_entities_in_group", "uint", 32), this._procEntries("entities", this.num_entities_in_group, function(t4) {
      this._procEntryField(t4, "entity_id", "uint", 32);
    }), 4096 & this.flags && this._procField("preselection_tag", "utf8string"), 8192 & this.flags && this._procField("selection_priority", "uint", 8), 16384 & this.flags && this._procField("interleaving_tag", "utf8string");
  }, r2.prototype._boxProcessors.pssh = function() {
    this._procFullBox(), this._procFieldArray("SystemID", 16, "uint", 8), this._procField("DataSize", "uint", 32), this._procFieldArray("Data", this.DataSize, "uint", 8);
  }, r2.prototype._boxProcessors.schm = function() {
    this._procFullBox(), this._procField("scheme_type", "uint", 32), this._procField("scheme_version", "uint", 32), 1 & this.flags && this._procField("scheme_uri", "string", -1);
  }, r2.prototype._boxProcessors.sdtp = function() {
    this._procFullBox();
    var t4 = -1;
    this._parsing && (t4 = this._raw.byteLength - (this._cursor.offset - this._raw.byteOffset)), this._procFieldArray("sample_dependency_table", t4, "uint", 8);
  }, r2.prototype._boxProcessors.sidx = function() {
    this._procFullBox(), this._procField("reference_ID", "uint", 32), this._procField("timescale", "uint", 32), this._procField("earliest_presentation_time", "uint", 1 == this.version ? 64 : 32), this._procField("first_offset", "uint", 1 == this.version ? 64 : 32), this._procField("reserved", "uint", 16), this._procField("reference_count", "uint", 16), this._procEntries("references", this.reference_count, function(t4) {
      this._parsing || (t4.reference = (1 & t4.reference_type) << 31, t4.reference |= 2147483647 & t4.referenced_size, t4.sap = (1 & t4.starts_with_SAP) << 31, t4.sap |= (3 & t4.SAP_type) << 28, t4.sap |= 268435455 & t4.SAP_delta_time), this._procEntryField(t4, "reference", "uint", 32), this._procEntryField(t4, "subsegment_duration", "uint", 32), this._procEntryField(t4, "sap", "uint", 32), this._parsing && (t4.reference_type = t4.reference >> 31 & 1, t4.referenced_size = 2147483647 & t4.reference, t4.starts_with_SAP = t4.sap >> 31 & 1, t4.SAP_type = t4.sap >> 28 & 7, t4.SAP_delta_time = 268435455 & t4.sap);
    });
  }, r2.prototype._boxProcessors.smhd = function() {
    this._procFullBox(), this._procField("balance", "uint", 16), this._procField("reserved", "uint", 16);
  }, r2.prototype._boxProcessors.ssix = function() {
    this._procFullBox(), this._procField("subsegment_count", "uint", 32), this._procEntries("subsegments", this.subsegment_count, function(t4) {
      this._procEntryField(t4, "ranges_count", "uint", 32), this._procSubEntries(t4, "ranges", t4.ranges_count, function(t5) {
        this._procEntryField(t5, "level", "uint", 8), this._procEntryField(t5, "range_size", "uint", 24);
      });
    });
  }, r2.prototype._boxProcessors.stsd = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procSubBoxes("entries", this.entry_count);
  }, r2.prototype._boxProcessors.sttg = function() {
    this._procField("settings", "utf8");
  }, r2.prototype._boxProcessors.stts = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procEntries("entries", this.entry_count, function(t4) {
      this._procEntryField(t4, "sample_count", "uint", 32), this._procEntryField(t4, "sample_delta", "uint", 32);
    });
  }, r2.prototype._boxProcessors.subs = function() {
    this._procFullBox(), this._procField("entry_count", "uint", 32), this._procEntries("entries", this.entry_count, function(t4) {
      this._procEntryField(t4, "sample_delta", "uint", 32), this._procEntryField(t4, "subsample_count", "uint", 16), this._procSubEntries(t4, "subsamples", t4.subsample_count, function(t5) {
        this._procEntryField(t5, "subsample_size", "uint", 1 === this.version ? 32 : 16), this._procEntryField(t5, "subsample_priority", "uint", 8), this._procEntryField(t5, "discardable", "uint", 8), this._procEntryField(t5, "codec_specific_parameters", "uint", 32);
      });
    });
  }, r2.prototype._boxProcessors.tenc = function() {
    this._procFullBox(), this._procField("default_IsEncrypted", "uint", 24), this._procField("default_IV_size", "uint", 8), this._procFieldArray("default_KID", 16, "uint", 8);
  }, r2.prototype._boxProcessors.tfdt = function() {
    this._procFullBox(), this._procField("baseMediaDecodeTime", "uint", 1 == this.version ? 64 : 32);
  }, r2.prototype._boxProcessors.tfhd = function() {
    this._procFullBox(), this._procField("track_ID", "uint", 32), 1 & this.flags && this._procField("base_data_offset", "uint", 64), 2 & this.flags && this._procField("sample_description_offset", "uint", 32), 8 & this.flags && this._procField("default_sample_duration", "uint", 32), 16 & this.flags && this._procField("default_sample_size", "uint", 32), 32 & this.flags && this._procField("default_sample_flags", "uint", 32);
  }, r2.prototype._boxProcessors.tfra = function() {
    this._procFullBox(), this._procField("track_ID", "uint", 32), this._parsing || (this.reserved = 0, this.reserved |= (48 & this.length_size_of_traf_num) << 4, this.reserved |= (12 & this.length_size_of_trun_num) << 2, this.reserved |= 3 & this.length_size_of_sample_num), this._procField("reserved", "uint", 32), this._parsing && (this.length_size_of_traf_num = (48 & this.reserved) >> 4, this.length_size_of_trun_num = (12 & this.reserved) >> 2, this.length_size_of_sample_num = 3 & this.reserved), this._procField("number_of_entry", "uint", 32), this._procEntries("entries", this.number_of_entry, function(t4) {
      this._procEntryField(t4, "time", "uint", 1 === this.version ? 64 : 32), this._procEntryField(t4, "moof_offset", "uint", 1 === this.version ? 64 : 32), this._procEntryField(t4, "traf_number", "uint", 8 * (this.length_size_of_traf_num + 1)), this._procEntryField(t4, "trun_number", "uint", 8 * (this.length_size_of_trun_num + 1)), this._procEntryField(t4, "sample_number", "uint", 8 * (this.length_size_of_sample_num + 1));
    });
  }, r2.prototype._boxProcessors.tkhd = function() {
    this._procFullBox(), this._procField("creation_time", "uint", 1 == this.version ? 64 : 32), this._procField("modification_time", "uint", 1 == this.version ? 64 : 32), this._procField("track_ID", "uint", 32), this._procField("reserved1", "uint", 32), this._procField("duration", "uint", 1 == this.version ? 64 : 32), this._procFieldArray("reserved2", 2, "uint", 32), this._procField("layer", "uint", 16), this._procField("alternate_group", "uint", 16), this._procField("volume", "template", 16), this._procField("reserved3", "uint", 16), this._procFieldArray("matrix", 9, "template", 32), this._procField("width", "template", 32), this._procField("height", "template", 32);
  }, r2.prototype._boxProcessors.trex = function() {
    this._procFullBox(), this._procField("track_ID", "uint", 32), this._procField("default_sample_description_index", "uint", 32), this._procField("default_sample_duration", "uint", 32), this._procField("default_sample_size", "uint", 32), this._procField("default_sample_flags", "uint", 32);
  }, r2.prototype._boxProcessors.trun = function() {
    this._procFullBox(), this._procField("sample_count", "uint", 32), 1 & this.flags && this._procField("data_offset", "int", 32), 4 & this.flags && this._procField("first_sample_flags", "uint", 32), this._procEntries("samples", this.sample_count, function(t4) {
      256 & this.flags && this._procEntryField(t4, "sample_duration", "uint", 32), 512 & this.flags && this._procEntryField(t4, "sample_size", "uint", 32), 1024 & this.flags && this._procEntryField(t4, "sample_flags", "uint", 32), 2048 & this.flags && this._procEntryField(t4, "sample_composition_time_offset", 1 === this.version ? "int" : "uint", 32);
    });
  }, r2.prototype._boxProcessors["url "] = r2.prototype._boxProcessors["urn "] = function() {
    this._procFullBox(), "urn " === this.type && this._procField("name", "string", -1), this._procField("location", "string", -1);
  }, r2.prototype._boxProcessors.vlab = function() {
    this._procField("source_label", "utf8");
  }, r2.prototype._boxProcessors.vmhd = function() {
    this._procFullBox(), this._procField("graphicsmode", "uint", 16), this._procFieldArray("opcolor", 3, "uint", 16);
  }, r2.prototype._boxProcessors.vttC = function() {
    this._procField("config", "utf8");
  }, r2.prototype._boxProcessors.vtte = function() {
  };
}, 9826: function(t3) {
  var e2, n2 = "object" == typeof Reflect ? Reflect : null, a2 = n2 && "function" == typeof n2.apply ? n2.apply : function(t4, e3, n3) {
    return Function.prototype.apply.call(t4, e3, n3);
  };
  e2 = n2 && "function" == typeof n2.ownKeys ? n2.ownKeys : Object.getOwnPropertySymbols ? function(t4) {
    return Object.getOwnPropertyNames(t4).concat(Object.getOwnPropertySymbols(t4));
  } : function(t4) {
    return Object.getOwnPropertyNames(t4);
  };
  var r2 = Number.isNaN || function(t4) {
    return t4 != t4;
  };
  function i2() {
    i2.init.call(this);
  }
  t3.exports = i2, t3.exports.once = function(t4, e3) {
    return new Promise(function(n3, a3) {
      function r3(n4) {
        t4.removeListener(e3, i3), a3(n4);
      }
      function i3() {
        "function" == typeof t4.removeListener && t4.removeListener("error", r3), n3([].slice.call(arguments));
      }
      h2(t4, e3, i3, { once: true }), "error" !== e3 && function(t5, e4) {
        "function" == typeof t5.on && h2(t5, "error", e4, { once: true });
      }(t4, r3);
    });
  }, i2.EventEmitter = i2, i2.prototype._events = void 0, i2.prototype._eventsCount = 0, i2.prototype._maxListeners = void 0;
  var l2 = 10;
  function o2(t4) {
    if ("function" != typeof t4)
      throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof t4);
  }
  function s2(t4) {
    return void 0 === t4._maxListeners ? i2.defaultMaxListeners : t4._maxListeners;
  }
  function u2(t4, e3, n3, a3) {
    var r3, i3, l3, u3;
    if (o2(n3), void 0 === (i3 = t4._events) ? (i3 = t4._events = /* @__PURE__ */ Object.create(null), t4._eventsCount = 0) : (void 0 !== i3.newListener && (t4.emit("newListener", e3, n3.listener ? n3.listener : n3), i3 = t4._events), l3 = i3[e3]), void 0 === l3)
      l3 = i3[e3] = n3, ++t4._eventsCount;
    else if ("function" == typeof l3 ? l3 = i3[e3] = a3 ? [n3, l3] : [l3, n3] : a3 ? l3.unshift(n3) : l3.push(n3), (r3 = s2(t4)) > 0 && l3.length > r3 && !l3.warned) {
      l3.warned = true;
      var d3 = new Error("Possible EventEmitter memory leak detected. " + l3.length + " " + String(e3) + " listeners added. Use emitter.setMaxListeners() to increase limit");
      d3.name = "MaxListenersExceededWarning", d3.emitter = t4, d3.type = e3, d3.count = l3.length, u3 = d3, console && console.warn && console.warn(u3);
    }
    return t4;
  }
  function d2() {
    if (!this.fired)
      return this.target.removeListener(this.type, this.wrapFn), this.fired = true, 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);
  }
  function c2(t4, e3, n3) {
    var a3 = { fired: false, wrapFn: void 0, target: t4, type: e3, listener: n3 }, r3 = d2.bind(a3);
    return r3.listener = n3, a3.wrapFn = r3, r3;
  }
  function f2(t4, e3, n3) {
    var a3 = t4._events;
    if (void 0 === a3)
      return [];
    var r3 = a3[e3];
    return void 0 === r3 ? [] : "function" == typeof r3 ? n3 ? [r3.listener || r3] : [r3] : n3 ? function(t5) {
      for (var e4 = new Array(t5.length), n4 = 0; n4 < e4.length; ++n4)
        e4[n4] = t5[n4].listener || t5[n4];
      return e4;
    }(r3) : m2(r3, r3.length);
  }
  function g2(t4) {
    var e3 = this._events;
    if (void 0 !== e3) {
      var n3 = e3[t4];
      if ("function" == typeof n3)
        return 1;
      if (void 0 !== n3)
        return n3.length;
    }
    return 0;
  }
  function m2(t4, e3) {
    for (var n3 = new Array(e3), a3 = 0; a3 < e3; ++a3)
      n3[a3] = t4[a3];
    return n3;
  }
  function h2(t4, e3, n3, a3) {
    if ("function" == typeof t4.on)
      a3.once ? t4.once(e3, n3) : t4.on(e3, n3);
    else {
      if ("function" != typeof t4.addEventListener)
        throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof t4);
      t4.addEventListener(e3, function r3(i3) {
        a3.once && t4.removeEventListener(e3, r3), n3(i3);
      });
    }
  }
  Object.defineProperty(i2, "defaultMaxListeners", { enumerable: true, get: function() {
    return l2;
  }, set: function(t4) {
    if ("number" != typeof t4 || t4 < 0 || r2(t4))
      throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + t4 + ".");
    l2 = t4;
  } }), i2.init = function() {
    void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;
  }, i2.prototype.setMaxListeners = function(t4) {
    if ("number" != typeof t4 || t4 < 0 || r2(t4))
      throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + t4 + ".");
    return this._maxListeners = t4, this;
  }, i2.prototype.getMaxListeners = function() {
    return s2(this);
  }, i2.prototype.emit = function(t4) {
    for (var e3 = [], n3 = 1; n3 < arguments.length; n3++)
      e3.push(arguments[n3]);
    var r3 = "error" === t4, i3 = this._events;
    if (void 0 !== i3)
      r3 = r3 && void 0 === i3.error;
    else if (!r3)
      return false;
    if (r3) {
      var l3;
      if (e3.length > 0 && (l3 = e3[0]), l3 instanceof Error)
        throw l3;
      var o3 = new Error("Unhandled error." + (l3 ? " (" + l3.message + ")" : ""));
      throw o3.context = l3, o3;
    }
    var s3 = i3[t4];
    if (void 0 === s3)
      return false;
    if ("function" == typeof s3)
      a2(s3, this, e3);
    else {
      var u3 = s3.length, d3 = m2(s3, u3);
      for (n3 = 0; n3 < u3; ++n3)
        a2(d3[n3], this, e3);
    }
    return true;
  }, i2.prototype.addListener = function(t4, e3) {
    return u2(this, t4, e3, false);
  }, i2.prototype.on = i2.prototype.addListener, i2.prototype.prependListener = function(t4, e3) {
    return u2(this, t4, e3, true);
  }, i2.prototype.once = function(t4, e3) {
    return o2(e3), this.on(t4, c2(this, t4, e3)), this;
  }, i2.prototype.prependOnceListener = function(t4, e3) {
    return o2(e3), this.prependListener(t4, c2(this, t4, e3)), this;
  }, i2.prototype.removeListener = function(t4, e3) {
    var n3, a3, r3, i3, l3;
    if (o2(e3), void 0 === (a3 = this._events))
      return this;
    if (void 0 === (n3 = a3[t4]))
      return this;
    if (n3 === e3 || n3.listener === e3)
      0 == --this._eventsCount ? this._events = /* @__PURE__ */ Object.create(null) : (delete a3[t4], a3.removeListener && this.emit("removeListener", t4, n3.listener || e3));
    else if ("function" != typeof n3) {
      for (r3 = -1, i3 = n3.length - 1; i3 >= 0; i3--)
        if (n3[i3] === e3 || n3[i3].listener === e3) {
          l3 = n3[i3].listener, r3 = i3;
          break;
        }
      if (r3 < 0)
        return this;
      0 === r3 ? n3.shift() : function(t5, e4) {
        for (; e4 + 1 < t5.length; e4++)
          t5[e4] = t5[e4 + 1];
        t5.pop();
      }(n3, r3), 1 === n3.length && (a3[t4] = n3[0]), void 0 !== a3.removeListener && this.emit("removeListener", t4, l3 || e3);
    }
    return this;
  }, i2.prototype.off = i2.prototype.removeListener, i2.prototype.removeAllListeners = function(t4) {
    var e3, n3, a3;
    if (void 0 === (n3 = this._events))
      return this;
    if (void 0 === n3.removeListener)
      return 0 === arguments.length ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : void 0 !== n3[t4] && (0 == --this._eventsCount ? this._events = /* @__PURE__ */ Object.create(null) : delete n3[t4]), this;
    if (0 === arguments.length) {
      var r3, i3 = Object.keys(n3);
      for (a3 = 0; a3 < i3.length; ++a3)
        "removeListener" !== (r3 = i3[a3]) && this.removeAllListeners(r3);
      return this.removeAllListeners("removeListener"), this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0, this;
    }
    if ("function" == typeof (e3 = n3[t4]))
      this.removeListener(t4, e3);
    else if (void 0 !== e3)
      for (a3 = e3.length - 1; a3 >= 0; a3--)
        this.removeListener(t4, e3[a3]);
    return this;
  }, i2.prototype.listeners = function(t4) {
    return f2(this, t4, true);
  }, i2.prototype.rawListeners = function(t4) {
    return f2(this, t4, false);
  }, i2.listenerCount = function(t4, e3) {
    return "function" == typeof t4.listenerCount ? t4.listenerCount(e3) : g2.call(t4, e3);
  }, i2.prototype.listenerCount = g2, i2.prototype.eventNames = function() {
    return this._eventsCount > 0 ? e2(this._events) : [];
  };
}, 7316: function(t3) {
  t3.exports = function t4(e2, n2) {
    if (e2 === n2)
      return true;
    if (e2 && n2 && "object" == typeof e2 && "object" == typeof n2) {
      if (e2.constructor !== n2.constructor)
        return false;
      var a2, r2, i2;
      if (Array.isArray(e2)) {
        if ((a2 = e2.length) != n2.length)
          return false;
        for (r2 = a2; 0 != r2--; )
          if (!t4(e2[r2], n2[r2]))
            return false;
        return true;
      }
      if (e2.constructor === RegExp)
        return e2.source === n2.source && e2.flags === n2.flags;
      if (e2.valueOf !== Object.prototype.valueOf)
        return e2.valueOf() === n2.valueOf();
      if (e2.toString !== Object.prototype.toString)
        return e2.toString() === n2.toString();
      if ((a2 = (i2 = Object.keys(e2)).length) !== Object.keys(n2).length)
        return false;
      for (r2 = a2; 0 != r2--; )
        if (!Object.prototype.hasOwnProperty.call(n2, i2[r2]))
          return false;
      for (r2 = a2; 0 != r2--; ) {
        var l2 = i2[r2];
        if (!t4(e2[l2], n2[l2]))
          return false;
      }
      return true;
    }
    return e2 != e2 && n2 != n2;
  };
}, 7986: function(t3, e2) {
  e2.read = function(t4, e3, n2, a2, r2) {
    var i2, l2, o2 = 8 * r2 - a2 - 1, s2 = (1 << o2) - 1, u2 = s2 >> 1, d2 = -7, c2 = n2 ? r2 - 1 : 0, f2 = n2 ? -1 : 1, g2 = t4[e3 + c2];
    for (c2 += f2, i2 = g2 & (1 << -d2) - 1, g2 >>= -d2, d2 += o2; d2 > 0; i2 = 256 * i2 + t4[e3 + c2], c2 += f2, d2 -= 8)
      ;
    for (l2 = i2 & (1 << -d2) - 1, i2 >>= -d2, d2 += a2; d2 > 0; l2 = 256 * l2 + t4[e3 + c2], c2 += f2, d2 -= 8)
      ;
    if (0 === i2)
      i2 = 1 - u2;
    else {
      if (i2 === s2)
        return l2 ? NaN : 1 / 0 * (g2 ? -1 : 1);
      l2 += Math.pow(2, a2), i2 -= u2;
    }
    return (g2 ? -1 : 1) * l2 * Math.pow(2, i2 - a2);
  }, e2.write = function(t4, e3, n2, a2, r2, i2) {
    var l2, o2, s2, u2 = 8 * i2 - r2 - 1, d2 = (1 << u2) - 1, c2 = d2 >> 1, f2 = 23 === r2 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, g2 = a2 ? 0 : i2 - 1, m2 = a2 ? 1 : -1, h2 = e3 < 0 || 0 === e3 && 1 / e3 < 0 ? 1 : 0;
    for (e3 = Math.abs(e3), isNaN(e3) || e3 === 1 / 0 ? (o2 = isNaN(e3) ? 1 : 0, l2 = d2) : (l2 = Math.floor(Math.log(e3) / Math.LN2), e3 * (s2 = Math.pow(2, -l2)) < 1 && (l2--, s2 *= 2), (e3 += l2 + c2 >= 1 ? f2 / s2 : f2 * Math.pow(2, 1 - c2)) * s2 >= 2 && (l2++, s2 /= 2), l2 + c2 >= d2 ? (o2 = 0, l2 = d2) : l2 + c2 >= 1 ? (o2 = (e3 * s2 - 1) * Math.pow(2, r2), l2 += c2) : (o2 = e3 * Math.pow(2, c2 - 1) * Math.pow(2, r2), l2 = 0)); r2 >= 8; t4[n2 + g2] = 255 & o2, g2 += m2, o2 /= 256, r2 -= 8)
      ;
    for (l2 = l2 << r2 | o2, u2 += r2; u2 > 0; t4[n2 + g2] = 255 & l2, g2 += m2, l2 /= 256, u2 -= 8)
      ;
    t4[n2 + g2 - m2] |= 128 * h2;
  };
}, 5474: function(t3, e2, n2) {
  !function(t4) {
    t4.parser = function(t5, e4) {
      return new r2(t5, e4);
    }, t4.SAXParser = r2, t4.SAXStream = l2, t4.createStream = function(t5, e4) {
      return new l2(t5, e4);
    }, t4.MAX_BUFFER_LENGTH = 65536;
    var e3, a2 = ["comment", "sgmlDecl", "textNode", "tagName", "doctype", "procInstName", "procInstBody", "entity", "attribName", "attribValue", "cdata", "script"];
    function r2(e4, n3) {
      if (!(this instanceof r2))
        return new r2(e4, n3);
      var i3 = this;
      !function(t5) {
        for (var e5 = 0, n4 = a2.length; e5 < n4; e5++)
          t5[a2[e5]] = "";
      }(i3), i3.q = i3.c = "", i3.bufferCheckPosition = t4.MAX_BUFFER_LENGTH, i3.opt = n3 || {}, i3.opt.lowercase = i3.opt.lowercase || i3.opt.lowercasetags, i3.looseCase = i3.opt.lowercase ? "toLowerCase" : "toUpperCase", i3.tags = [], i3.closed = i3.closedRoot = i3.sawRoot = false, i3.tag = i3.error = null, i3.strict = !!e4, i3.noscript = !(!e4 && !i3.opt.noscript), i3.state = A.BEGIN, i3.strictEntities = i3.opt.strictEntities, i3.ENTITIES = i3.strictEntities ? Object.create(t4.XML_ENTITIES) : Object.create(t4.ENTITIES), i3.attribList = [], i3.opt.xmlns && (i3.ns = Object.create(p2)), i3.trackPosition = false !== i3.opt.position, i3.trackPosition && (i3.position = i3.line = i3.column = 0), N(i3, "onready");
    }
    t4.EVENTS = ["text", "processinginstruction", "sgmldeclaration", "doctype", "comment", "opentagstart", "attribute", "opentag", "closetag", "opencdata", "cdata", "closecdata", "error", "end", "ready", "script", "opennamespace", "closenamespace"], Object.create || (Object.create = function(t5) {
      function e4() {
      }
      return e4.prototype = t5, new e4();
    }), Object.keys || (Object.keys = function(t5) {
      var e4 = [];
      for (var n3 in t5)
        t5.hasOwnProperty(n3) && e4.push(n3);
      return e4;
    }), r2.prototype = { end: function() {
      z(this);
    }, write: function(e4) {
      var n3 = this;
      if (this.error)
        throw this.error;
      if (n3.closed)
        return M(n3, "Cannot write after close. Assign an onready handler.");
      if (null === e4)
        return z(n3);
      "object" == typeof e4 && (e4 = e4.toString());
      for (var r3 = 0, i3 = ""; i3 = G(e4, r3++), n3.c = i3, i3; )
        switch (n3.trackPosition && (n3.position++, "\n" === i3 ? (n3.line++, n3.column = 0) : n3.column++), n3.state) {
          case A.BEGIN:
            if (n3.state = A.BEGIN_WHITESPACE, "\uFEFF" === i3)
              continue;
            B(n3, i3);
            continue;
          case A.BEGIN_WHITESPACE:
            B(n3, i3);
            continue;
          case A.TEXT:
            if (n3.sawRoot && !n3.closedRoot) {
              for (var l3 = r3 - 1; i3 && "<" !== i3 && "&" !== i3; )
                (i3 = G(e4, r3++)) && n3.trackPosition && (n3.position++, "\n" === i3 ? (n3.line++, n3.column = 0) : n3.column++);
              n3.textNode += e4.substring(l3, r3 - 1);
            }
            "<" !== i3 || n3.sawRoot && n3.closedRoot && !n3.strict ? (!w2(o2, i3) || n3.sawRoot && !n3.closedRoot || O(n3, "Text data outside of root node."), "&" === i3 ? n3.state = A.TEXT_ENTITY : n3.textNode += i3) : (n3.state = A.OPEN_WAKA, n3.startTagPosition = n3.position);
            continue;
          case A.SCRIPT:
            "<" === i3 ? n3.state = A.SCRIPT_ENDING : n3.script += i3;
            continue;
          case A.SCRIPT_ENDING:
            "/" === i3 ? n3.state = A.CLOSE_TAG : (n3.script += "<" + i3, n3.state = A.SCRIPT);
            continue;
          case A.OPEN_WAKA:
            if ("!" === i3)
              n3.state = A.SGML_DECL, n3.sgmlDecl = "";
            else if (v2(o2, i3))
              ;
            else if (v2(b2, i3))
              n3.state = A.OPEN_TAG, n3.tagName = i3;
            else if ("/" === i3)
              n3.state = A.CLOSE_TAG, n3.tagName = "";
            else if ("?" === i3)
              n3.state = A.PROC_INST, n3.procInstName = n3.procInstBody = "";
            else {
              if (O(n3, "Unencoded <"), n3.startTagPosition + 1 < n3.position) {
                var s3 = n3.position - n3.startTagPosition;
                i3 = new Array(s3).join(" ") + i3;
              }
              n3.textNode += "<" + i3, n3.state = A.TEXT;
            }
            continue;
          case A.SGML_DECL:
            (n3.sgmlDecl + i3).toUpperCase() === f2 ? (C(n3, "onopencdata"), n3.state = A.CDATA, n3.sgmlDecl = "", n3.cdata = "") : n3.sgmlDecl + i3 === "--" ? (n3.state = A.COMMENT, n3.comment = "", n3.sgmlDecl = "") : (n3.sgmlDecl + i3).toUpperCase() === g2 ? (n3.state = A.DOCTYPE, (n3.doctype || n3.sawRoot) && O(n3, "Inappropriately located doctype declaration"), n3.doctype = "", n3.sgmlDecl = "") : ">" === i3 ? (C(n3, "onsgmldeclaration", n3.sgmlDecl), n3.sgmlDecl = "", n3.state = A.TEXT) : v2(d2, i3) ? (n3.state = A.SGML_DECL_QUOTED, n3.sgmlDecl += i3) : n3.sgmlDecl += i3;
            continue;
          case A.SGML_DECL_QUOTED:
            i3 === n3.q && (n3.state = A.SGML_DECL, n3.q = ""), n3.sgmlDecl += i3;
            continue;
          case A.DOCTYPE:
            ">" === i3 ? (n3.state = A.TEXT, C(n3, "ondoctype", n3.doctype), n3.doctype = true) : (n3.doctype += i3, "[" === i3 ? n3.state = A.DOCTYPE_DTD : v2(d2, i3) && (n3.state = A.DOCTYPE_QUOTED, n3.q = i3));
            continue;
          case A.DOCTYPE_QUOTED:
            n3.doctype += i3, i3 === n3.q && (n3.q = "", n3.state = A.DOCTYPE);
            continue;
          case A.DOCTYPE_DTD:
            n3.doctype += i3, "]" === i3 ? n3.state = A.DOCTYPE : v2(d2, i3) && (n3.state = A.DOCTYPE_DTD_QUOTED, n3.q = i3);
            continue;
          case A.DOCTYPE_DTD_QUOTED:
            n3.doctype += i3, i3 === n3.q && (n3.state = A.DOCTYPE_DTD, n3.q = "");
            continue;
          case A.COMMENT:
            "-" === i3 ? n3.state = A.COMMENT_ENDING : n3.comment += i3;
            continue;
          case A.COMMENT_ENDING:
            "-" === i3 ? (n3.state = A.COMMENT_ENDED, n3.comment = x(n3.opt, n3.comment), n3.comment && C(n3, "oncomment", n3.comment), n3.comment = "") : (n3.comment += "-" + i3, n3.state = A.COMMENT);
            continue;
          case A.COMMENT_ENDED:
            ">" !== i3 ? (O(n3, "Malformed comment"), n3.comment += "--" + i3, n3.state = A.COMMENT) : n3.state = A.TEXT;
            continue;
          case A.CDATA:
            "]" === i3 ? n3.state = A.CDATA_ENDING : n3.cdata += i3;
            continue;
          case A.CDATA_ENDING:
            "]" === i3 ? n3.state = A.CDATA_ENDING_2 : (n3.cdata += "]" + i3, n3.state = A.CDATA);
            continue;
          case A.CDATA_ENDING_2:
            ">" === i3 ? (n3.cdata && C(n3, "oncdata", n3.cdata), C(n3, "onclosecdata"), n3.cdata = "", n3.state = A.TEXT) : "]" === i3 ? n3.cdata += "]" : (n3.cdata += "]]" + i3, n3.state = A.CDATA);
            continue;
          case A.PROC_INST:
            "?" === i3 ? n3.state = A.PROC_INST_ENDING : v2(o2, i3) ? n3.state = A.PROC_INST_BODY : n3.procInstName += i3;
            continue;
          case A.PROC_INST_BODY:
            if (!n3.procInstBody && v2(o2, i3))
              continue;
            "?" === i3 ? n3.state = A.PROC_INST_ENDING : n3.procInstBody += i3;
            continue;
          case A.PROC_INST_ENDING:
            ">" === i3 ? (C(n3, "onprocessinginstruction", { name: n3.procInstName, body: n3.procInstBody }), n3.procInstName = n3.procInstBody = "", n3.state = A.TEXT) : (n3.procInstBody += "?" + i3, n3.state = A.PROC_INST_BODY);
            continue;
          case A.OPEN_TAG:
            v2(y2, i3) ? n3.tagName += i3 : (P(n3), ">" === i3 ? U(n3) : "/" === i3 ? n3.state = A.OPEN_TAG_SLASH : (w2(o2, i3) && O(n3, "Invalid character in tag name"), n3.state = A.ATTRIB));
            continue;
          case A.OPEN_TAG_SLASH:
            ">" === i3 ? (U(n3, true), j(n3)) : (O(n3, "Forward-slash in opening tag not followed by >"), n3.state = A.ATTRIB);
            continue;
          case A.ATTRIB:
            if (v2(o2, i3))
              continue;
            ">" === i3 ? U(n3) : "/" === i3 ? n3.state = A.OPEN_TAG_SLASH : v2(b2, i3) ? (n3.attribName = i3, n3.attribValue = "", n3.state = A.ATTRIB_NAME) : O(n3, "Invalid attribute name");
            continue;
          case A.ATTRIB_NAME:
            "=" === i3 ? n3.state = A.ATTRIB_VALUE : ">" === i3 ? (O(n3, "Attribute without value"), n3.attribValue = n3.attribName, F(n3), U(n3)) : v2(o2, i3) ? n3.state = A.ATTRIB_NAME_SAW_WHITE : v2(y2, i3) ? n3.attribName += i3 : O(n3, "Invalid attribute name");
            continue;
          case A.ATTRIB_NAME_SAW_WHITE:
            if ("=" === i3)
              n3.state = A.ATTRIB_VALUE;
            else {
              if (v2(o2, i3))
                continue;
              O(n3, "Attribute without value"), n3.tag.attributes[n3.attribName] = "", n3.attribValue = "", C(n3, "onattribute", { name: n3.attribName, value: "" }), n3.attribName = "", ">" === i3 ? U(n3) : v2(b2, i3) ? (n3.attribName = i3, n3.state = A.ATTRIB_NAME) : (O(n3, "Invalid attribute name"), n3.state = A.ATTRIB);
            }
            continue;
          case A.ATTRIB_VALUE:
            if (v2(o2, i3))
              continue;
            v2(d2, i3) ? (n3.q = i3, n3.state = A.ATTRIB_VALUE_QUOTED) : (O(n3, "Unquoted attribute value"), n3.state = A.ATTRIB_VALUE_UNQUOTED, n3.attribValue = i3);
            continue;
          case A.ATTRIB_VALUE_QUOTED:
            if (i3 !== n3.q) {
              "&" === i3 ? n3.state = A.ATTRIB_VALUE_ENTITY_Q : n3.attribValue += i3;
              continue;
            }
            F(n3), n3.q = "", n3.state = A.ATTRIB_VALUE_CLOSED;
            continue;
          case A.ATTRIB_VALUE_CLOSED:
            v2(o2, i3) ? n3.state = A.ATTRIB : ">" === i3 ? U(n3) : "/" === i3 ? n3.state = A.OPEN_TAG_SLASH : v2(b2, i3) ? (O(n3, "No whitespace between attributes"), n3.attribName = i3, n3.attribValue = "", n3.state = A.ATTRIB_NAME) : O(n3, "Invalid attribute name");
            continue;
          case A.ATTRIB_VALUE_UNQUOTED:
            if (w2(c2, i3)) {
              "&" === i3 ? n3.state = A.ATTRIB_VALUE_ENTITY_U : n3.attribValue += i3;
              continue;
            }
            F(n3), ">" === i3 ? U(n3) : n3.state = A.ATTRIB;
            continue;
          case A.CLOSE_TAG:
            if (n3.tagName)
              ">" === i3 ? j(n3) : v2(y2, i3) ? n3.tagName += i3 : n3.script ? (n3.script += "</" + n3.tagName, n3.tagName = "", n3.state = A.SCRIPT) : (w2(o2, i3) && O(n3, "Invalid tagname in closing tag"), n3.state = A.CLOSE_TAG_SAW_WHITE);
            else {
              if (v2(o2, i3))
                continue;
              w2(b2, i3) ? n3.script ? (n3.script += "</" + i3, n3.state = A.SCRIPT) : O(n3, "Invalid tagname in closing tag.") : n3.tagName = i3;
            }
            continue;
          case A.CLOSE_TAG_SAW_WHITE:
            if (v2(o2, i3))
              continue;
            ">" === i3 ? j(n3) : O(n3, "Invalid characters in closing tag");
            continue;
          case A.TEXT_ENTITY:
          case A.ATTRIB_VALUE_ENTITY_Q:
          case A.ATTRIB_VALUE_ENTITY_U:
            var u3, m3;
            switch (n3.state) {
              case A.TEXT_ENTITY:
                u3 = A.TEXT, m3 = "textNode";
                break;
              case A.ATTRIB_VALUE_ENTITY_Q:
                u3 = A.ATTRIB_VALUE_QUOTED, m3 = "attribValue";
                break;
              case A.ATTRIB_VALUE_ENTITY_U:
                u3 = A.ATTRIB_VALUE_UNQUOTED, m3 = "attribValue";
            }
            ";" === i3 ? (n3[m3] += q(n3), n3.entity = "", n3.state = u3) : v2(n3.entity.length ? _2 : E2, i3) ? n3.entity += i3 : (O(n3, "Invalid character in entity name"), n3[m3] += "&" + n3.entity + i3, n3.entity = "", n3.state = u3);
            continue;
          default:
            throw new Error(n3, "Unknown state: " + n3.state);
        }
      return n3.position >= n3.bufferCheckPosition && function(e5) {
        for (var n4 = Math.max(t4.MAX_BUFFER_LENGTH, 10), r4 = 0, i4 = 0, l4 = a2.length; i4 < l4; i4++) {
          var o3 = e5[a2[i4]].length;
          if (o3 > n4)
            switch (a2[i4]) {
              case "textNode":
                D(e5);
                break;
              case "cdata":
                C(e5, "oncdata", e5.cdata), e5.cdata = "";
                break;
              case "script":
                C(e5, "onscript", e5.script), e5.script = "";
                break;
              default:
                M(e5, "Max buffer length exceeded: " + a2[i4]);
            }
          r4 = Math.max(r4, o3);
        }
        var s4 = t4.MAX_BUFFER_LENGTH - r4;
        e5.bufferCheckPosition = s4 + e5.position;
      }(n3), n3;
    }, resume: function() {
      return this.error = null, this;
    }, close: function() {
      return this.write(null);
    }, flush: function() {
      var t5;
      D(t5 = this), "" !== t5.cdata && (C(t5, "oncdata", t5.cdata), t5.cdata = ""), "" !== t5.script && (C(t5, "onscript", t5.script), t5.script = "");
    } };
    try {
      e3 = n2(3515).Stream;
    } catch (t5) {
      e3 = function() {
      };
    }
    var i2 = t4.EVENTS.filter(function(t5) {
      return "error" !== t5 && "end" !== t5;
    });
    function l2(t5, n3) {
      if (!(this instanceof l2))
        return new l2(t5, n3);
      e3.apply(this), this._parser = new r2(t5, n3), this.writable = true, this.readable = true;
      var a3 = this;
      this._parser.onend = function() {
        a3.emit("end");
      }, this._parser.onerror = function(t6) {
        a3.emit("error", t6), a3._parser.error = null;
      }, this._decoder = null, i2.forEach(function(t6) {
        Object.defineProperty(a3, "on" + t6, { get: function() {
          return a3._parser["on" + t6];
        }, set: function(e4) {
          if (!e4)
            return a3.removeAllListeners(t6), a3._parser["on" + t6] = e4, e4;
          a3.on(t6, e4);
        }, enumerable: true, configurable: false });
      });
    }
    l2.prototype = Object.create(e3.prototype, { constructor: { value: l2 } }), l2.prototype.write = function(t5) {
      if ("function" == typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(t5)) {
        if (!this._decoder) {
          var e4 = n2(748).StringDecoder;
          this._decoder = new e4("utf8");
        }
        t5 = this._decoder.write(t5);
      }
      return this._parser.write(t5.toString()), this.emit("data", t5), true;
    }, l2.prototype.end = function(t5) {
      return t5 && t5.length && this.write(t5), this._parser.end(), true;
    }, l2.prototype.on = function(t5, n3) {
      var a3 = this;
      return a3._parser["on" + t5] || -1 === i2.indexOf(t5) || (a3._parser["on" + t5] = function() {
        var e4 = 1 === arguments.length ? [arguments[0]] : Array.apply(null, arguments);
        e4.splice(0, 0, t5), a3.emit.apply(a3, e4);
      }), e3.prototype.on.call(a3, t5, n3);
    };
    var o2 = "\r\n	 ", s2 = "0124356789", u2 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", d2 = `'"`, c2 = o2 + ">", f2 = "[CDATA[", g2 = "DOCTYPE", m2 = "http://www.w3.org/XML/1998/namespace", h2 = "http://www.w3.org/2000/xmlns/", p2 = { xml: m2, xmlns: h2 };
    o2 = T2(o2), s2 = T2(s2), u2 = T2(u2);
    var b2 = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, y2 = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/, E2 = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, _2 = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/;
    function T2(t5) {
      return t5.split("").reduce(function(t6, e4) {
        return t6[e4] = true, t6;
      }, {});
    }
    function v2(t5, e4) {
      return function(t6) {
        return "[object RegExp]" === Object.prototype.toString.call(t6);
      }(t5) ? !!e4.match(t5) : t5[e4];
    }
    function w2(t5, e4) {
      return !v2(t5, e4);
    }
    d2 = T2(d2), c2 = T2(c2);
    var S2, I, k, A = 0;
    for (var R in t4.STATE = { BEGIN: A++, BEGIN_WHITESPACE: A++, TEXT: A++, TEXT_ENTITY: A++, OPEN_WAKA: A++, SGML_DECL: A++, SGML_DECL_QUOTED: A++, DOCTYPE: A++, DOCTYPE_QUOTED: A++, DOCTYPE_DTD: A++, DOCTYPE_DTD_QUOTED: A++, COMMENT_STARTING: A++, COMMENT: A++, COMMENT_ENDING: A++, COMMENT_ENDED: A++, CDATA: A++, CDATA_ENDING: A++, CDATA_ENDING_2: A++, PROC_INST: A++, PROC_INST_BODY: A++, PROC_INST_ENDING: A++, OPEN_TAG: A++, OPEN_TAG_SLASH: A++, ATTRIB: A++, ATTRIB_NAME: A++, ATTRIB_NAME_SAW_WHITE: A++, ATTRIB_VALUE: A++, ATTRIB_VALUE_QUOTED: A++, ATTRIB_VALUE_CLOSED: A++, ATTRIB_VALUE_UNQUOTED: A++, ATTRIB_VALUE_ENTITY_Q: A++, ATTRIB_VALUE_ENTITY_U: A++, CLOSE_TAG: A++, CLOSE_TAG_SAW_WHITE: A++, SCRIPT: A++, SCRIPT_ENDING: A++ }, t4.XML_ENTITIES = { amp: "&", gt: ">", lt: "<", quot: '"', apos: "'" }, t4.ENTITIES = { amp: "&", gt: ">", lt: "<", quot: '"', apos: "'", AElig: 198, Aacute: 193, Acirc: 194, Agrave: 192, Aring: 197, Atilde: 195, Auml: 196, Ccedil: 199, ETH: 208, Eacute: 201, Ecirc: 202, Egrave: 200, Euml: 203, Iacute: 205, Icirc: 206, Igrave: 204, Iuml: 207, Ntilde: 209, Oacute: 211, Ocirc: 212, Ograve: 210, Oslash: 216, Otilde: 213, Ouml: 214, THORN: 222, Uacute: 218, Ucirc: 219, Ugrave: 217, Uuml: 220, Yacute: 221, aacute: 225, acirc: 226, aelig: 230, agrave: 224, aring: 229, atilde: 227, auml: 228, ccedil: 231, eacute: 233, ecirc: 234, egrave: 232, eth: 240, euml: 235, iacute: 237, icirc: 238, igrave: 236, iuml: 239, ntilde: 241, oacute: 243, ocirc: 244, ograve: 242, oslash: 248, otilde: 245, ouml: 246, szlig: 223, thorn: 254, uacute: 250, ucirc: 251, ugrave: 249, uuml: 252, yacute: 253, yuml: 255, copy: 169, reg: 174, nbsp: 160, iexcl: 161, cent: 162, pound: 163, curren: 164, yen: 165, brvbar: 166, sect: 167, uml: 168, ordf: 170, laquo: 171, not: 172, shy: 173, macr: 175, deg: 176, plusmn: 177, sup1: 185, sup2: 178, sup3: 179, acute: 180, micro: 181, para: 182, middot: 183, cedil: 184, ordm: 186, raquo: 187, frac14: 188, frac12: 189, frac34: 190, iquest: 191, times: 215, divide: 247, OElig: 338, oelig: 339, Scaron: 352, scaron: 353, Yuml: 376, fnof: 402, circ: 710, tilde: 732, Alpha: 913, Beta: 914, Gamma: 915, Delta: 916, Epsilon: 917, Zeta: 918, Eta: 919, Theta: 920, Iota: 921, Kappa: 922, Lambda: 923, Mu: 924, Nu: 925, Xi: 926, Omicron: 927, Pi: 928, Rho: 929, Sigma: 931, Tau: 932, Upsilon: 933, Phi: 934, Chi: 935, Psi: 936, Omega: 937, alpha: 945, beta: 946, gamma: 947, delta: 948, epsilon: 949, zeta: 950, eta: 951, theta: 952, iota: 953, kappa: 954, lambda: 955, mu: 956, nu: 957, xi: 958, omicron: 959, pi: 960, rho: 961, sigmaf: 962, sigma: 963, tau: 964, upsilon: 965, phi: 966, chi: 967, psi: 968, omega: 969, thetasym: 977, upsih: 978, piv: 982, ensp: 8194, emsp: 8195, thinsp: 8201, zwnj: 8204, zwj: 8205, lrm: 8206, rlm: 8207, ndash: 8211, mdash: 8212, lsquo: 8216, rsquo: 8217, sbquo: 8218, ldquo: 8220, rdquo: 8221, bdquo: 8222, dagger: 8224, Dagger: 8225, bull: 8226, hellip: 8230, permil: 8240, prime: 8242, Prime: 8243, lsaquo: 8249, rsaquo: 8250, oline: 8254, frasl: 8260, euro: 8364, image: 8465, weierp: 8472, real: 8476, trade: 8482, alefsym: 8501, larr: 8592, uarr: 8593, rarr: 8594, darr: 8595, harr: 8596, crarr: 8629, lArr: 8656, uArr: 8657, rArr: 8658, dArr: 8659, hArr: 8660, forall: 8704, part: 8706, exist: 8707, empty: 8709, nabla: 8711, isin: 8712, notin: 8713, ni: 8715, prod: 8719, sum: 8721, minus: 8722, lowast: 8727, radic: 8730, prop: 8733, infin: 8734, ang: 8736, and: 8743, or: 8744, cap: 8745, cup: 8746, int: 8747, there4: 8756, sim: 8764, cong: 8773, asymp: 8776, ne: 8800, equiv: 8801, le: 8804, ge: 8805, sub: 8834, sup: 8835, nsub: 8836, sube: 8838, supe: 8839, oplus: 8853, otimes: 8855, perp: 8869, sdot: 8901, lceil: 8968, rceil: 8969, lfloor: 8970, rfloor: 8971, lang: 9001, rang: 9002, loz: 9674, spades: 9824, clubs: 9827, hearts: 9829, diams: 9830 }, Object.keys(t4.ENTITIES).forEach(function(e4) {
      var n3 = t4.ENTITIES[e4], a3 = "number" == typeof n3 ? String.fromCharCode(n3) : n3;
      t4.ENTITIES[e4] = a3;
    }), t4.STATE)
      t4.STATE[t4.STATE[R]] = R;
    function N(t5, e4, n3) {
      t5[e4] && t5[e4](n3);
    }
    function C(t5, e4, n3) {
      t5.textNode && D(t5), N(t5, e4, n3);
    }
    function D(t5) {
      t5.textNode = x(t5.opt, t5.textNode), t5.textNode && N(t5, "ontext", t5.textNode), t5.textNode = "";
    }
    function x(t5, e4) {
      return t5.trim && (e4 = e4.trim()), t5.normalize && (e4 = e4.replace(/\s+/g, " ")), e4;
    }
    function M(t5, e4) {
      return D(t5), t5.trackPosition && (e4 += "\nLine: " + t5.line + "\nColumn: " + t5.column + "\nChar: " + t5.c), e4 = new Error(e4), t5.error = e4, N(t5, "onerror", e4), t5;
    }
    function z(t5) {
      return t5.sawRoot && !t5.closedRoot && O(t5, "Unclosed root tag"), t5.state !== A.BEGIN && t5.state !== A.BEGIN_WHITESPACE && t5.state !== A.TEXT && M(t5, "Unexpected end"), D(t5), t5.c = "", t5.closed = true, N(t5, "onend"), r2.call(t5, t5.strict, t5.opt), t5;
    }
    function O(t5, e4) {
      if ("object" != typeof t5 || !(t5 instanceof r2))
        throw new Error("bad call to strictFail");
      t5.strict && M(t5, e4);
    }
    function P(t5) {
      t5.strict || (t5.tagName = t5.tagName[t5.looseCase]());
      var e4 = t5.tags[t5.tags.length - 1] || t5, n3 = t5.tag = { name: t5.tagName, attributes: {} };
      t5.opt.xmlns && (n3.ns = e4.ns), t5.attribList.length = 0, C(t5, "onopentagstart", n3);
    }
    function L(t5, e4) {
      var n3 = t5.indexOf(":") < 0 ? ["", t5] : t5.split(":"), a3 = n3[0], r3 = n3[1];
      return e4 && "xmlns" === t5 && (a3 = "xmlns", r3 = ""), { prefix: a3, local: r3 };
    }
    function F(t5) {
      if (t5.strict || (t5.attribName = t5.attribName[t5.looseCase]()), -1 !== t5.attribList.indexOf(t5.attribName) || t5.tag.attributes.hasOwnProperty(t5.attribName))
        t5.attribName = t5.attribValue = "";
      else {
        if (t5.opt.xmlns) {
          var e4 = L(t5.attribName, true), n3 = e4.prefix, a3 = e4.local;
          if ("xmlns" === n3)
            if ("xml" === a3 && t5.attribValue !== m2)
              O(t5, "xml: prefix must be bound to " + m2 + "\nActual: " + t5.attribValue);
            else if ("xmlns" === a3 && t5.attribValue !== h2)
              O(t5, "xmlns: prefix must be bound to " + h2 + "\nActual: " + t5.attribValue);
            else {
              var r3 = t5.tag, i3 = t5.tags[t5.tags.length - 1] || t5;
              r3.ns === i3.ns && (r3.ns = Object.create(i3.ns)), r3.ns[a3] = t5.attribValue;
            }
          t5.attribList.push([t5.attribName, t5.attribValue]);
        } else
          t5.tag.attributes[t5.attribName] = t5.attribValue, C(t5, "onattribute", { name: t5.attribName, value: t5.attribValue });
        t5.attribName = t5.attribValue = "";
      }
    }
    function U(t5, e4) {
      if (t5.opt.xmlns) {
        var n3 = t5.tag, a3 = L(t5.tagName);
        n3.prefix = a3.prefix, n3.local = a3.local, n3.uri = n3.ns[a3.prefix] || "", n3.prefix && !n3.uri && (O(t5, "Unbound namespace prefix: " + JSON.stringify(t5.tagName)), n3.uri = a3.prefix);
        var r3 = t5.tags[t5.tags.length - 1] || t5;
        n3.ns && r3.ns !== n3.ns && Object.keys(n3.ns).forEach(function(e5) {
          C(t5, "onopennamespace", { prefix: e5, uri: n3.ns[e5] });
        });
        for (var i3 = 0, l3 = t5.attribList.length; i3 < l3; i3++) {
          var o3 = t5.attribList[i3], s3 = o3[0], u3 = o3[1], d3 = L(s3, true), c3 = d3.prefix, f3 = d3.local, g3 = "" === c3 ? "" : n3.ns[c3] || "", m3 = { name: s3, value: u3, prefix: c3, local: f3, uri: g3 };
          c3 && "xmlns" !== c3 && !g3 && (O(t5, "Unbound namespace prefix: " + JSON.stringify(c3)), m3.uri = c3), t5.tag.attributes[s3] = m3, C(t5, "onattribute", m3);
        }
        t5.attribList.length = 0;
      }
      t5.tag.isSelfClosing = !!e4, t5.sawRoot = true, t5.tags.push(t5.tag), C(t5, "onopentag", t5.tag), e4 || (t5.noscript || "script" !== t5.tagName.toLowerCase() ? t5.state = A.TEXT : t5.state = A.SCRIPT, t5.tag = null, t5.tagName = ""), t5.attribName = t5.attribValue = "", t5.attribList.length = 0;
    }
    function j(t5) {
      if (!t5.tagName)
        return O(t5, "Weird empty close tag."), t5.textNode += "</>", void (t5.state = A.TEXT);
      if (t5.script) {
        if ("script" !== t5.tagName)
          return t5.script += "</" + t5.tagName + ">", t5.tagName = "", void (t5.state = A.SCRIPT);
        C(t5, "onscript", t5.script), t5.script = "";
      }
      var e4 = t5.tags.length, n3 = t5.tagName;
      t5.strict || (n3 = n3[t5.looseCase]());
      for (var a3 = n3; e4-- && t5.tags[e4].name !== a3; )
        O(t5, "Unexpected close tag");
      if (e4 < 0)
        return O(t5, "Unmatched closing tag: " + t5.tagName), t5.textNode += "</" + t5.tagName + ">", void (t5.state = A.TEXT);
      t5.tagName = n3;
      for (var r3 = t5.tags.length; r3-- > e4; ) {
        var i3 = t5.tag = t5.tags.pop();
        t5.tagName = t5.tag.name, C(t5, "onclosetag", t5.tagName);
        var l3 = {};
        for (var o3 in i3.ns)
          l3[o3] = i3.ns[o3];
        var s3 = t5.tags[t5.tags.length - 1] || t5;
        t5.opt.xmlns && i3.ns !== s3.ns && Object.keys(i3.ns).forEach(function(e5) {
          var n4 = i3.ns[e5];
          C(t5, "onclosenamespace", { prefix: e5, uri: n4 });
        });
      }
      0 === e4 && (t5.closedRoot = true), t5.tagName = t5.attribValue = t5.attribName = "", t5.attribList.length = 0, t5.state = A.TEXT;
    }
    function q(t5) {
      var e4, n3 = t5.entity, a3 = n3.toLowerCase(), r3 = "";
      return t5.ENTITIES[n3] ? t5.ENTITIES[n3] : t5.ENTITIES[a3] ? t5.ENTITIES[a3] : ("#" === (n3 = a3).charAt(0) && ("x" === n3.charAt(1) ? (n3 = n3.slice(2), r3 = (e4 = parseInt(n3, 16)).toString(16)) : (n3 = n3.slice(1), r3 = (e4 = parseInt(n3, 10)).toString(10))), n3 = n3.replace(/^0+/, ""), r3.toLowerCase() !== n3 ? (O(t5, "Invalid character entity"), "&" + t5.entity + ";") : String.fromCodePoint(e4));
    }
    function B(t5, e4) {
      "<" === e4 ? (t5.state = A.OPEN_WAKA, t5.startTagPosition = t5.position) : w2(o2, e4) && (O(t5, "Non-whitespace before first tag."), t5.textNode = e4, t5.state = A.TEXT);
    }
    function G(t5, e4) {
      var n3 = "";
      return e4 < t5.length && (n3 = t5.charAt(e4)), n3;
    }
    A = t4.STATE, String.fromCodePoint || (S2 = String.fromCharCode, I = Math.floor, k = function() {
      var t5, e4, n3 = [], a3 = -1, r3 = arguments.length;
      if (!r3)
        return "";
      for (var i3 = ""; ++a3 < r3; ) {
        var l3 = Number(arguments[a3]);
        if (!isFinite(l3) || l3 < 0 || l3 > 1114111 || I(l3) !== l3)
          throw RangeError("Invalid code point: " + l3);
        l3 <= 65535 ? n3.push(l3) : (t5 = 55296 + ((l3 -= 65536) >> 10), e4 = l3 % 1024 + 56320, n3.push(t5, e4)), (a3 + 1 === r3 || n3.length > 16384) && (i3 += S2.apply(null, n3), n3.length = 0);
      }
      return i3;
    }, Object.defineProperty ? Object.defineProperty(String, "fromCodePoint", { value: k, configurable: true, writable: true }) : String.fromCodePoint = k);
  }(e2);
}, 6739: function(t3, e2, n2) {
  !function(t4, e3, n3, a2, r2) {
    function i2(t5) {
      if ("contents" in t5)
        for (var e4 = ("styleAttrs" in t5) ? t5.styleAttrs[a2.byName.ruby.qname] : null, n4 = "span" === t5.kind && ("container" === e4 || "textContainer" === e4 || "baseContainer" === e4), r3 = t5.contents.length - 1; r3 >= 0; r3--)
          !n4 || "styleAttrs" in t5.contents[r3] && a2.byName.ruby.qname in t5.contents[r3].styleAttrs ? i2(t5.contents[r3]) : delete t5.contents[r3];
    }
    function l2(t5, e4, n4, a3) {
      var r3 = a3 && "seq" === a3.timeContainer, i3 = 0;
      a3 && (i3 = r3 && n4 ? n4.end : a3.begin), e4.begin = e4.explicit_begin ? e4.explicit_begin + i3 : i3;
      var o3 = e4.begin, s3 = null;
      if ("sets" in e4)
        for (var u3 = 0; u3 < e4.sets.length; u3++)
          l2(t5, e4.sets[u3], s3, e4), o3 = "seq" === e4.timeContainer ? e4.sets[u3].end : Math.max(o3, e4.sets[u3].end), s3 = e4.sets[u3];
      if ("contents" in e4) {
        if ("contents" in e4)
          for (var d3 = 0; d3 < e4.contents.length; d3++)
            l2(t5, e4.contents[d3], s3, e4), o3 = "seq" === e4.timeContainer ? e4.contents[d3].end : Math.max(o3, e4.contents[d3].end), s3 = e4.contents[d3];
      } else
        o3 = r3 ? e4.begin : Number.POSITIVE_INFINITY;
      null !== e4.explicit_end && null !== e4.explicit_dur ? e4.end = Math.min(e4.begin + e4.explicit_dur, i3 + e4.explicit_end) : null === e4.explicit_end && null !== e4.explicit_dur ? e4.end = e4.begin + e4.explicit_dur : null !== e4.explicit_end && null === e4.explicit_dur ? e4.end = i3 + e4.explicit_end : e4.end = o3, delete e4.explicit_begin, delete e4.explicit_dur, delete e4.explicit_end, t5._registerEvent(e4);
    }
    function o2(t5) {
      this.node = t5;
    }
    function s2() {
      this.events = [], this.head = new u2(), this.body = null;
    }
    function u2() {
      this.styling = new d2(), this.layout = new g2();
    }
    function d2() {
      this.styles = {}, this.initials = {};
    }
    function c2() {
      this.id = null, this.styleAttrs = null, this.styleRefs = null;
    }
    function f2() {
      this.styleAttrs = null;
    }
    function g2() {
      this.regions = {};
    }
    function m2(t5, e4) {
      h2.call(this, "image"), this.src = t5, this.type = e4;
    }
    function h2(t5) {
      this.kind = t5;
    }
    function p2(t5) {
      this.id = t5;
    }
    function b2(t5) {
      this.regionID = t5;
    }
    function y2(t5) {
      this.styleAttrs = t5;
    }
    function E2(t5) {
      this.sets = t5;
    }
    function _2(t5) {
      this.contents = t5;
    }
    function T2(t5, e4, n4) {
      this.explicit_begin = t5, this.explicit_end = e4, this.explicit_dur = n4;
    }
    function v2() {
      h2.call(this, "body");
    }
    function w2() {
      h2.call(this, "div");
    }
    function S2() {
      h2.call(this, "p");
    }
    function I() {
      h2.call(this, "span");
    }
    function k() {
      h2.call(this, "span");
    }
    function A() {
      h2.call(this, "br");
    }
    function R() {
    }
    function N() {
    }
    function C(t5) {
      return t5 && "xml:id" in t5.attributes && t5.attributes["xml:id"].value || null;
    }
    function D(t5) {
      return t5 && "style" in t5.attributes ? t5.attributes.style.value.split(" ") : [];
    }
    function x(t5, e4) {
      var n4 = {};
      if (null !== t5)
        for (var r3 in t5.attributes) {
          var i3 = t5.attributes[r3].uri + " " + t5.attributes[r3].local, l3 = a2.byQName[i3];
          if (void 0 !== l3) {
            var o3 = l3.parse(t5.attributes[r3].value);
            null !== o3 ? (n4[i3] = o3, l3 === a2.byName.zIndex && F(e4, "zIndex attribute present but not used by IMSC1 since regions do not overlap")) : U(e4, "Cannot parse styling attribute " + i3 + " --> " + t5.attributes[r3].value);
          }
        }
      return n4;
    }
    function M(t5, e4, n4) {
      for (var a3 in t5.attributes)
        if (t5.attributes[a3].uri === e4 && t5.attributes[a3].local === n4)
          return t5.attributes[a3].value;
      return null;
    }
    function z(t5, e4, n4) {
      var a3, r3 = null;
      return null !== (a3 = /^(\d+(?:\.\d+)?)f$/.exec(n4)) ? null !== e4 && (r3 = parseFloat(a3[1]) / e4) : null !== (a3 = /^(\d+(?:\.\d+)?)t$/.exec(n4)) ? null !== t5 && (r3 = parseFloat(a3[1]) / t5) : null !== (a3 = /^(\d+(?:\.\d+)?)ms$/.exec(n4)) ? r3 = parseFloat(a3[1]) / 1e3 : null !== (a3 = /^(\d+(?:\.\d+)?)s$/.exec(n4)) ? r3 = parseFloat(a3[1]) : null !== (a3 = /^(\d+(?:\.\d+)?)h$/.exec(n4)) ? r3 = 3600 * parseFloat(a3[1]) : null !== (a3 = /^(\d+(?:\.\d+)?)m$/.exec(n4)) ? r3 = 60 * parseFloat(a3[1]) : null !== (a3 = /^(\d{2,}):(\d\d):(\d\d(?:\.\d+)?)$/.exec(n4)) ? r3 = 3600 * parseInt(a3[1]) + 60 * parseInt(a3[2]) + parseFloat(a3[3]) : null !== (a3 = /^(\d{2,}):(\d\d):(\d\d)\:(\d{2,})$/.exec(n4)) && null !== e4 && (r3 = 3600 * parseInt(a3[1]) + 60 * parseInt(a3[2]) + parseInt(a3[3]) + (null === a3[4] ? 0 : parseInt(a3[4]) / e4)), r3;
    }
    function O(t5, e4, n4) {
      for (; e4.styleRefs.length > 0; ) {
        var a3 = e4.styleRefs.pop();
        a3 in t5.styles ? (O(t5, t5.styles[a3], n4), L(t5.styles[a3].styleAttrs, e4.styleAttrs)) : U(n4, "Non-existant style id referenced");
      }
    }
    function P(t5, e4, n4, a3) {
      for (var r3 = e4.length - 1; r3 >= 0; r3--) {
        var i3 = e4[r3];
        i3 in t5.styles ? L(t5.styles[i3].styleAttrs, n4) : U(a3, "Non-existant style id referenced");
      }
    }
    function L(t5, e4) {
      for (var n4 in t5)
        t5.hasOwnProperty(n4) && (n4 in e4 || (e4[n4] = t5[n4]));
    }
    function F(t5, e4) {
      if (t5 && t5.warn && t5.warn(e4))
        throw e4;
    }
    function U(t5, e4) {
      if (t5 && t5.error && t5.error(e4))
        throw e4;
    }
    function j(t5, e4) {
      throw t5 && t5.fatal && t5.fatal(e4), e4;
    }
    function q(t5, e4) {
      for (var n4, a3 = 0, r3 = t5.length - 1; a3 <= r3; ) {
        var i3 = t5[n4 = Math.floor((a3 + r3) / 2)];
        if (i3 < e4)
          a3 = n4 + 1;
        else {
          if (!(i3 > e4))
            return { found: true, index: n4 };
          r3 = n4 - 1;
        }
      }
      return { found: false, index: a3 };
    }
    t4.fromXML = function(t5, r3, h3) {
      var p3 = e3.parser(true, { xmlns: true }), b3 = [], y3 = [], E3 = [], _3 = 0, T3 = null;
      p3.onclosetag = function(t6) {
        if (b3[0] instanceof R)
          null !== T3.head && null !== T3.head.styling && P(T3.head.styling, b3[0].styleRefs, b3[0].styleAttrs, r3), delete b3[0].styleRefs;
        else if (b3[0] instanceof d2)
          for (var e4 in b3[0].styles)
            b3[0].styles.hasOwnProperty(e4) && O(b3[0], b3[0].styles[e4], r3);
        else if (b3[0] instanceof S2 || b3[0] instanceof I) {
          if (b3[0].contents.length > 1) {
            var a3, i3 = [b3[0].contents[0]];
            for (a3 = 1; a3 < b3[0].contents.length; a3++)
              b3[0].contents[a3] instanceof k && i3[i3.length - 1] instanceof k ? i3[i3.length - 1].text += b3[0].contents[a3].text : i3.push(b3[0].contents[a3]);
            b3[0].contents = i3;
          }
          b3[0] instanceof I && 1 === b3[0].contents.length && b3[0].contents[0] instanceof k && (b3[0].text = b3[0].contents[0].text, delete b3[0].contents);
        } else
          b3[0] instanceof o2 && (b3[0].node.uri === n3.ns_tt && "metadata" === b3[0].node.local ? _3-- : _3 > 0 && h3 && "onCloseTag" in h3 && h3.onCloseTag());
        E3.shift(), y3.shift(), b3.shift();
      }, p3.ontext = function(t6) {
        if (void 0 === b3[0])
          ;
        else if (b3[0] instanceof I || b3[0] instanceof S2) {
          if (b3[0] instanceof I) {
            var e4 = b3[0].styleAttrs[a2.byName.ruby.qname];
            if ("container" === e4 || "textContainer" === e4 || "baseContainer" === e4)
              return;
          }
          var n4 = new k();
          n4.initFromText(T3, b3[0], t6, y3[0], E3[0], r3), b3[0].contents.push(n4);
        } else
          b3[0] instanceof o2 && _3 > 0 && h3 && "onText" in h3 && h3.onText(t6);
      }, p3.onopentag = function(t6) {
        var e4 = t6.attributes["xml:space"];
        e4 ? E3.unshift(e4.value) : 0 === E3.length ? E3.unshift("default") : E3.unshift(E3[0]);
        var i3 = t6.attributes["xml:lang"];
        if (i3 ? y3.unshift(i3.value) : 0 === y3.length ? y3.unshift("") : y3.unshift(y3[0]), t6.uri === n3.ns_tt)
          if ("tt" === t6.local)
            null !== T3 && j(r3, "Two <tt> elements at (" + this.line + "," + this.column + ")"), (T3 = new s2()).initFromNode(t6, y3[0], r3), b3.unshift(T3);
          else if ("head" === t6.local)
            b3[0] instanceof s2 || j(r3, "Parent of <head> element is not <tt> at (" + this.line + "," + this.column + ")"), b3.unshift(T3.head);
          else if ("styling" === t6.local)
            b3[0] instanceof u2 || j(r3, "Parent of <styling> element is not <head> at (" + this.line + "," + this.column + ")"), b3.unshift(T3.head.styling);
          else if ("style" === t6.local) {
            var l3;
            b3[0] instanceof d2 ? ((l3 = new c2()).initFromNode(t6, r3), l3.id ? T3.head.styling.styles[l3.id] = l3 : U(r3, "<style> element missing @id attribute"), b3.unshift(l3)) : b3[0] instanceof R ? ((l3 = new c2()).initFromNode(t6, r3), L(l3.styleAttrs, b3[0].styleAttrs), b3.unshift(l3)) : j(r3, "Parent of <style> element is not <styling> or <region> at (" + this.line + "," + this.column + ")");
          } else if ("initial" === t6.local) {
            var p4;
            if (b3[0] instanceof d2) {
              for (var k2 in (p4 = new f2()).initFromNode(t6, r3), p4.styleAttrs)
                p4.styleAttrs.hasOwnProperty(k2) && (T3.head.styling.initials[k2] = p4.styleAttrs[k2]);
              b3.unshift(p4);
            } else
              j(r3, "Parent of <initial> element is not <styling> at (" + this.line + "," + this.column + ")");
          } else if ("layout" === t6.local)
            b3[0] instanceof u2 || j(r3, "Parent of <layout> element is not <head> at " + this.line + "," + this.column + ")"), b3.unshift(T3.head.layout);
          else if ("region" === t6.local) {
            b3[0] instanceof g2 || j(r3, "Parent of <region> element is not <layout> at " + this.line + "," + this.column + ")");
            var C3 = new R();
            C3.initFromNode(T3, t6, y3[0], r3), !C3.id || C3.id in T3.head.layout.regions ? U(r3, "Ignoring <region> with duplicate or missing @id at " + this.line + "," + this.column + ")") : T3.head.layout.regions[C3.id] = C3, b3.unshift(C3);
          } else if ("body" === t6.local) {
            b3[0] instanceof s2 || j(r3, "Parent of <body> element is not <tt> at " + this.line + "," + this.column + ")"), null !== T3.body && j(r3, "Second <body> element at " + this.line + "," + this.column + ")");
            var D3 = new v2();
            D3.initFromNode(T3, t6, y3[0], r3), T3.body = D3, b3.unshift(D3);
          } else if ("div" === t6.local) {
            b3[0] instanceof w2 || b3[0] instanceof v2 || j(r3, "Parent of <div> element is not <body> or <div> at " + this.line + "," + this.column + ")");
            var x3 = new w2();
            x3.initFromNode(T3, b3[0], t6, y3[0], r3);
            var M3 = x3.styleAttrs[a2.byName.backgroundImage.qname];
            M3 && (x3.contents.push(new m2(M3)), delete x3.styleAttrs[a2.byName.backgroundImage.qname]), b3[0].contents.push(x3), b3.unshift(x3);
          } else if ("image" === t6.local) {
            b3[0] instanceof w2 || j(r3, "Parent of <image> element is not <div> at " + this.line + "," + this.column + ")");
            var z2 = new m2();
            z2.initFromNode(T3, b3[0], t6, y3[0], r3), b3[0].contents.push(z2), b3.unshift(z2);
          } else if ("p" === t6.local) {
            b3[0] instanceof w2 || j(r3, "Parent of <p> element is not <div> at " + this.line + "," + this.column + ")");
            var O2 = new S2();
            O2.initFromNode(T3, b3[0], t6, y3[0], r3), b3[0].contents.push(O2), b3.unshift(O2);
          } else if ("span" === t6.local) {
            b3[0] instanceof I || b3[0] instanceof S2 || j(r3, "Parent of <span> element is not <span> or <p> at " + this.line + "," + this.column + ")");
            var P2 = new I();
            P2.initFromNode(T3, b3[0], t6, y3[0], E3[0], r3), b3[0].contents.push(P2), b3.unshift(P2);
          } else if ("br" === t6.local) {
            b3[0] instanceof I || b3[0] instanceof S2 || j(r3, "Parent of <br> element is not <span> or <p> at " + this.line + "," + this.column + ")");
            var F2 = new A();
            F2.initFromNode(T3, b3[0], t6, y3[0], r3), b3[0].contents.push(F2), b3.unshift(F2);
          } else if ("set" === t6.local) {
            b3[0] instanceof I || b3[0] instanceof S2 || b3[0] instanceof w2 || b3[0] instanceof v2 || b3[0] instanceof R || b3[0] instanceof A || j(r3, "Parent of <set> element is not a content element or a region at " + this.line + "," + this.column + ")");
            var q2 = new N();
            q2.initFromNode(T3, b3[0], t6, r3), b3[0].sets.push(q2), b3.unshift(q2);
          } else
            b3.unshift(new o2(t6));
        else
          b3.unshift(new o2(t6));
        if (b3[0] instanceof o2) {
          if (t6.uri === n3.ns_tt && "metadata" === t6.local)
            _3++;
          else if (_3 > 0 && h3 && "onOpenTag" in h3) {
            var B = [];
            for (var G in t6.attributes)
              B[t6.attributes[G].uri + " " + t6.attributes[G].local] = { uri: t6.attributes[G].uri, local: t6.attributes[G].local, value: t6.attributes[G].value };
            h3.onOpenTag(t6.uri, t6.local, B);
          }
        }
      }, p3.write(t5).close(), delete T3.head.styling.styles;
      var C2 = false;
      for (var D2 in T3.head.layout.regions)
        if (T3.head.layout.regions.hasOwnProperty(D2)) {
          C2 = true;
          break;
        }
      if (!C2) {
        var x2 = R.prototype.createDefaultRegion(T3.lang);
        T3.head.layout.regions[x2.id] = x2;
      }
      for (var M2 in T3.head.layout.regions)
        T3.head.layout.regions.hasOwnProperty(M2) && l2(T3, T3.head.layout.regions[M2], null, null);
      return T3.body && l2(T3, T3.body, null, null), T3.body && i2(T3.body), T3;
    }, s2.prototype.initFromNode = function(t5, e4, a3) {
      var i3 = function(t6, e5) {
        var a4 = M(t6, n3.ns_ttp, "cellResolution"), r3 = 15, i4 = 32;
        if (null !== a4) {
          var l4 = /(\d+) (\d+)/.exec(a4);
          null !== l4 ? (i4 = parseInt(l4[1]), r3 = parseInt(l4[2])) : F(e5, "Malformed cellResolution value (using initial value instead)");
        }
        return { w: i4, h: r3 };
      }(t5, a3);
      this.cellLength = { h: new r2.ComputedLength(0, 1 / i3.h), w: new r2.ComputedLength(1 / i3.w, 0) };
      var l3 = function(t6, e5) {
        var a4, r3 = M(t6, n3.ns_ttp, "frameRate"), i4 = 30;
        null !== r3 && (null !== (a4 = /(\d+)/.exec(r3)) ? i4 = parseInt(a4[1]) : F(e5, "Malformed frame rate attribute (using initial value instead)"));
        var l4 = M(t6, n3.ns_ttp, "frameRateMultiplier"), o4 = 1;
        null !== l4 && (null !== (a4 = /(\d+) (\d+)/.exec(l4)) ? o4 = parseInt(a4[1]) / parseInt(a4[2]) : F(e5, "Malformed frame rate multiplier attribute (using initial value instead)"));
        var s4 = o4 * i4, u3 = 1, d3 = M(t6, n3.ns_ttp, "tickRate");
        return null === d3 ? null !== r3 && (u3 = s4) : null !== (a4 = /(\d+)/.exec(d3)) ? u3 = parseInt(a4[1]) : F(e5, "Malformed tick rate attribute (using initial value instead)"), { effectiveFrameRate: s4, tickRate: u3 };
      }(t5, a3);
      this.effectiveFrameRate = l3.effectiveFrameRate, this.tickRate = l3.tickRate, this.aspectRatio = function(t6, e5) {
        var a4 = M(t6, n3.ns_ittp, "aspectRatio");
        null === a4 && (a4 = M(t6, n3.ns_ttp, "displayAspectRatio"));
        var r3 = null;
        if (null !== a4) {
          var i4 = /(\d+)\s+(\d+)/.exec(a4);
          if (null !== i4) {
            var l4 = parseInt(i4[1]), o4 = parseInt(i4[2]);
            0 !== l4 && 0 !== o4 ? r3 = l4 / o4 : U(e5, "Illegal aspectRatio values (ignoring)");
          } else
            U(e5, "Malformed aspectRatio attribute (ignoring)");
        }
        return r3;
      }(t5, a3);
      var o3 = M(t5, n3.ns_ttp, "timeBase");
      null !== o3 && "media" !== o3 && j(a3, "Unsupported time base");
      var s3 = function(t6, e5) {
        var a4 = M(t6, n3.ns_tts, "extent");
        if (null === a4)
          return null;
        var i4 = a4.split(" ");
        if (2 !== i4.length)
          return F(e5, "Malformed extent (ignoring)"), null;
        var l4 = r2.parseLength(i4[0]), o4 = r2.parseLength(i4[1]);
        return o4 && l4 ? { h: o4, w: l4 } : (F(e5, "Malformed extent values (ignoring)"), null);
      }(t5, a3);
      null === s3 ? this.pxLength = { h: null, w: null } : ("px" === s3.h.unit && "px" === s3.w.unit || j(a3, "Extent on TT must be in px or absent"), this.pxLength = { h: new r2.ComputedLength(0, 1 / s3.h.value), w: new r2.ComputedLength(1 / s3.w.value, 0) }), this.dimensions = { h: new r2.ComputedLength(0, 1), w: new r2.ComputedLength(1, 0) }, this.lang = e4;
    }, s2.prototype._registerEvent = function(t5) {
      if (!(t5.end <= t5.begin)) {
        var e4 = q(this.events, t5.begin);
        if (e4.found || this.events.splice(e4.index, 0, t5.begin), t5.end !== Number.POSITIVE_INFINITY) {
          var n4 = q(this.events, t5.end);
          n4.found || this.events.splice(n4.index, 0, t5.end);
        }
      }
    }, s2.prototype.getMediaTimeRange = function() {
      return [this.events[0], this.events[this.events.length - 1]];
    }, s2.prototype.getMediaTimeEvents = function() {
      return this.events;
    }, c2.prototype.initFromNode = function(t5, e4) {
      this.id = C(t5), this.styleAttrs = x(t5, e4), this.styleRefs = D(t5);
    }, f2.prototype.initFromNode = function(t5, e4) {
      for (var a3 in this.styleAttrs = {}, t5.attributes)
        if (t5.attributes[a3].uri === n3.ns_itts || t5.attributes[a3].uri === n3.ns_ebutts || t5.attributes[a3].uri === n3.ns_tts) {
          var r3 = t5.attributes[a3].uri + " " + t5.attributes[a3].local;
          this.styleAttrs[r3] = t5.attributes[a3].value;
        }
    }, m2.prototype.initFromNode = function(t5, e4, n4, a3, r3) {
      this.src = "src" in n4.attributes ? n4.attributes.src.value : null, this.src || U(r3, "Invalid image@src attribute"), this.type = "type" in n4.attributes ? n4.attributes.type.value : null, this.type || U(r3, "Invalid image@type attribute"), y2.prototype.initFromNode.call(this, t5, e4, n4, r3), T2.prototype.initFromNode.call(this, t5, e4, n4, r3), E2.prototype.initFromNode.call(this, t5, e4, n4, r3), b2.prototype.initFromNode.call(this, t5, e4, n4, r3), this.lang = a3;
    }, p2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.id = C(n4);
    }, b2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.regionID = function(t6) {
        return t6 && "region" in t6.attributes ? t6.attributes.region.value : "";
      }(n4);
    }, y2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.styleAttrs = x(n4, a3), null !== t5.head && null !== t5.head.styling && P(t5.head.styling, D(n4), this.styleAttrs, a3);
    }, E2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.sets = [];
    }, _2.prototype.initFromNode = function(t5, e4, n4, a3) {
      this.contents = [];
    }, T2.prototype.initFromNode = function(t5, e4, n4, a3) {
      var r3 = function(t6, e5, n5, a4) {
        var r4 = null;
        n5 && "begin" in n5.attributes && null === (r4 = z(t6.tickRate, t6.effectiveFrameRate, n5.attributes.begin.value)) && F(a4, "Malformed begin value " + n5.attributes.begin.value + " (using 0)");
        var i3 = null;
        n5 && "dur" in n5.attributes && null === (i3 = z(t6.tickRate, t6.effectiveFrameRate, n5.attributes.dur.value)) && F(a4, "Malformed dur value " + n5.attributes.dur.value + " (ignoring)");
        var l3 = null;
        return n5 && "end" in n5.attributes && null === (l3 = z(t6.tickRate, t6.effectiveFrameRate, n5.attributes.end.value)) && F(a4, "Malformed end value (ignoring)"), { explicit_begin: r4, explicit_end: l3, explicit_dur: i3 };
      }(t5, 0, n4, a3);
      this.explicit_begin = r3.explicit_begin, this.explicit_end = r3.explicit_end, this.explicit_dur = r3.explicit_dur, this.timeContainer = function(t6, e5) {
        var n5 = t6 && "timeContainer" in t6.attributes ? t6.attributes.timeContainer.value : null;
        return n5 && "par" !== n5 ? "seq" === n5 ? "seq" : (U(e5, "Illegal value of timeContainer (assuming 'par')"), "par") : "par";
      }(n4, a3);
    }, v2.prototype.initFromNode = function(t5, e4, n4, a3) {
      y2.prototype.initFromNode.call(this, t5, null, e4, a3), T2.prototype.initFromNode.call(this, t5, null, e4, a3), E2.prototype.initFromNode.call(this, t5, null, e4, a3), b2.prototype.initFromNode.call(this, t5, null, e4, a3), _2.prototype.initFromNode.call(this, t5, null, e4, a3), this.lang = n4;
    }, w2.prototype.initFromNode = function(t5, e4, n4, a3, r3) {
      y2.prototype.initFromNode.call(this, t5, e4, n4, r3), T2.prototype.initFromNode.call(this, t5, e4, n4, r3), E2.prototype.initFromNode.call(this, t5, e4, n4, r3), b2.prototype.initFromNode.call(this, t5, e4, n4, r3), _2.prototype.initFromNode.call(this, t5, e4, n4, r3), this.lang = a3;
    }, S2.prototype.initFromNode = function(t5, e4, n4, a3, r3) {
      y2.prototype.initFromNode.call(this, t5, e4, n4, r3), T2.prototype.initFromNode.call(this, t5, e4, n4, r3), E2.prototype.initFromNode.call(this, t5, e4, n4, r3), b2.prototype.initFromNode.call(this, t5, e4, n4, r3), _2.prototype.initFromNode.call(this, t5, e4, n4, r3), this.lang = a3;
    }, I.prototype.initFromNode = function(t5, e4, n4, a3, r3, i3) {
      y2.prototype.initFromNode.call(this, t5, e4, n4, i3), T2.prototype.initFromNode.call(this, t5, e4, n4, i3), E2.prototype.initFromNode.call(this, t5, e4, n4, i3), b2.prototype.initFromNode.call(this, t5, e4, n4, i3), _2.prototype.initFromNode.call(this, t5, e4, n4, i3), this.space = r3, this.lang = a3;
    }, k.prototype.initFromText = function(t5, e4, n4, a3, r3, i3) {
      T2.prototype.initFromNode.call(this, t5, e4, null, i3), this.text = n4, this.space = r3, this.lang = a3;
    }, A.prototype.initFromNode = function(t5, e4, n4, a3, r3) {
      b2.prototype.initFromNode.call(this, t5, e4, n4, r3), T2.prototype.initFromNode.call(this, t5, e4, n4, r3), this.lang = a3;
    }, R.prototype.createDefaultRegion = function(t5) {
      var e4 = new R();
      return p2.call(e4, ""), y2.call(e4, {}), E2.call(e4, []), T2.call(e4, 0, Number.POSITIVE_INFINITY, null), this.lang = t5, e4;
    }, R.prototype.initFromNode = function(t5, e4, n4, a3) {
      p2.prototype.initFromNode.call(this, t5, null, e4, a3), T2.prototype.initFromNode.call(this, t5, null, e4, a3), E2.prototype.initFromNode.call(this, t5, null, e4, a3), this.styleAttrs = x(e4, a3), this.styleRefs = D(e4), this.lang = n4;
    }, N.prototype.initFromNode = function(t5, e4, n4, a3) {
      T2.prototype.initFromNode.call(this, t5, e4, n4, a3);
      var r3 = x(n4, a3);
      for (var i3 in this.qname = null, this.value = null, r3)
        if (r3.hasOwnProperty(i3)) {
          if (this.qname) {
            U(a3, "More than one style specified on set");
            break;
          }
          this.qname = i3, this.value = r3[i3];
        }
    };
  }(e2, "undefined" == typeof sax ? n2(5474) : sax, "undefined" == typeof imscNames ? n2(977) : imscNames, "undefined" == typeof imscStyles ? n2(1219) : imscStyles, "undefined" == typeof imscUtils ? n2(6404) : imscUtils);
}, 1612: function(t3, e2, n2) {
  var a2 = /firefox/i.test(navigator.userAgent);
  !function(t4, e3, n3) {
    function r2(t5, e4, c3, g3) {
      var m3;
      if ("region" === c3.kind)
        (m3 = document.createElement("div")).style.position = "absolute";
      else if ("body" === c3.kind)
        m3 = document.createElement("div");
      else if ("div" === c3.kind)
        m3 = document.createElement("div");
      else if ("image" === c3.kind) {
        if (m3 = document.createElement("img"), null !== t5.imgResolver && null !== c3.src) {
          var b3 = t5.imgResolver(c3.src, m3);
          b3 && (m3.src = b3), m3.height = t5.regionH, m3.width = t5.regionW;
        }
      } else if ("p" === c3.kind)
        m3 = document.createElement("p");
      else if ("span" === c3.kind)
        if ("container" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("ruby"), t5.ruby = true;
        else if ("base" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("span");
        else if ("text" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("rt");
        else if ("baseContainer" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("rbc");
        else if ("textContainer" === c3.styleAttrs[n3.byName.ruby.qname])
          m3 = document.createElement("rtc");
        else {
          if ("delimiter" === c3.styleAttrs[n3.byName.ruby.qname])
            return;
          m3 = document.createElement("span");
        }
      else
        "br" === c3.kind && (m3 = document.createElement("br"));
      if (m3) {
        if (c3.lang && ("region" !== c3.kind && c3.lang === g3.lang || (m3.lang = c3.lang)), e4.appendChild(m3), m3.style.margin = "0", "region" === c3.kind) {
          var _2 = c3.styleAttrs[n3.byName.writingMode.qname];
          "lrtb" === _2 || "lr" === _2 ? (t5.ipd = "lr", t5.bpd = "tb") : "rltb" === _2 || "rl" === _2 ? (t5.ipd = "rl", t5.bpd = "tb") : "tblr" === _2 ? (t5.ipd = "tb", t5.bpd = "lr") : "tbrl" !== _2 && "tb" !== _2 || (t5.ipd = "tb", t5.bpd = "rl");
        } else if ("p" === c3.kind && "tb" === t5.bpd) {
          var T2 = c3.styleAttrs[n3.byName.direction.qname];
          t5.ipd = "ltr" === T2 ? "lr" : "rl";
        }
        for (var v2 = 0; v2 < f2.length; v2++) {
          var w2 = f2[v2], S2 = c3.styleAttrs[w2.qname];
          void 0 !== S2 && null !== w2.map && w2.map(t5, m3, c3, S2);
        }
        var I = m3, k = c3.styleAttrs[n3.byName.linePadding.qname];
        if (k && !k.isZero()) {
          var A = k.toUsedLength(t5.w, t5.h);
          if (A > 0) {
            var R = Math.ceil(A) + "px";
            "tb" === t5.bpd ? (I.style.paddingLeft = R, I.style.paddingRight = R) : (I.style.paddingTop = R, I.style.paddingBottom = R), t5.lp = k;
          }
        }
        var N = c3.styleAttrs[n3.byName.multiRowAlign.qname];
        if (N && "auto" !== N) {
          var C = document.createElement("span");
          C.style.display = "inline-block", C.style.textAlign = N, m3.appendChild(C), I = C, t5.mra = N;
        }
        var D = c3.styleAttrs[n3.byName.rubyReserve.qname];
        if (D && "none" !== D[0] && (t5.rubyReserve = D), c3.styleAttrs[n3.byName.fillLineGap.qname] && (t5.flg = true), "span" === c3.kind && c3.text) {
          var x = c3.styleAttrs[n3.byName.textEmphasis.qname];
          if (x && "none" !== x.style && (t5.textEmphasis = true), n3.byName.textCombine.qname in c3.styleAttrs && "all" === c3.styleAttrs[n3.byName.textCombine.qname])
            m3.textContent = c3.text, m3._isd_element = c3, x && d2(t5, m3, 0, x);
          else
            for (var M = "", z = 0; z < c3.text.length; z++) {
              M += c3.text.charAt(z);
              var O = c3.text.charCodeAt(z);
              if (O < 55296 || O > 56319 || z === c3.text.length - 1) {
                var P = document.createElement("span");
                P.textContent = M, x && d2(t5, P, 0, x), m3.appendChild(P), M = "", P._isd_element = c3;
              }
            }
        }
        if ("contents" in c3)
          for (var L = 0; L < c3.contents.length; L++)
            r2(t5, I, c3.contents[L], c3);
        var F = [];
        if ("p" === c3.kind && (u2(t5, I, F, null), t5.rubyReserve && (function(t6, e5) {
          for (var n4 = 0; n4 < t6.length; n4++) {
            var a3, r3, i3 = document.createElement("ruby"), l3 = document.createElement("span");
            l3.textContent = "​", i3.appendChild(l3);
            var o3, s3 = e5.rubyReserve[1].toUsedLength(e5.w, e5.h) + "px";
            "both" === e5.rubyReserve[0] || "outside" === e5.rubyReserve[0] && 1 == t6.length ? ((a3 = document.createElement("rtc")).style[p2] = h2 ? "after" : "under", a3.textContent = "​", a3.style.fontSize = s3, (r3 = document.createElement("rtc")).style[p2] = h2 ? "before" : "over", r3.textContent = "​", r3.style.fontSize = s3, i3.appendChild(a3), i3.appendChild(r3)) : ((a3 = document.createElement("rtc")).textContent = "​", a3.style.fontSize = s3, o3 = "after" === e5.rubyReserve[0] || "outside" === e5.rubyReserve[0] && n4 > 0 ? h2 ? "after" : "tb" === e5.bpd || "rl" === e5.bpd ? "under" : "over" : h2 ? "before" : "tb" === e5.bpd || "rl" === e5.bpd ? "over" : "under", a3.style[p2] = o3, i3.appendChild(a3));
            for (var u3 = null, d3 = 0; d3 < t6[n4].rbc.length; d3++)
              if ("ruby" === t6[n4].rbc[d3].localName) {
                u3 = t6[n4].rbc[d3];
                for (var c4 = 0; c4 < u3.style.length; c4++)
                  i3.style.setProperty(u3.style.item(c4), u3.style.getPropertyValue(u3.style.item(c4)));
                break;
              }
            (u3 = u3 || t6[n4].elements[0].node).parentElement.insertBefore(i3, u3);
          }
        }(F, t5), t5.rubyReserve = null), (t5.ruby || t5.rubyReserve) && (function(t6, e5) {
          for (var n4 = 0; n4 < t6.length; n4++)
            for (var a3 = 0; a3 < t6[n4].rbc.length; a3++) {
              var r3;
              t6[n4].rbc[a3].style[p2] || (r3 = h2 ? 0 === n4 ? "before" : "after" : "tb" === e5.bpd || "rl" === e5.bpd ? 0 === n4 ? "over" : "under" : 0 === n4 ? "under" : "over", t6[n4].rbc[a3].style[p2] = r3);
            }
        }(F, t5), t5.ruby = null), t5.textEmphasis && (function(t6, e5) {
          for (var n4 = 0; n4 < t6.length; n4++)
            for (var a3 = 0; a3 < t6[n4].te.length; a3++) {
              var r3;
              t6[n4].te[a3].style[y2] && "none" !== t6[n4].te[a3].style[y2] || (r3 = "tb" === e5.bpd ? 0 === n4 ? "left over" : "left under" : "rl" === e5.bpd ? 0 === n4 ? "right under" : "left under" : 0 === n4 ? "left under" : "right under", t6[n4].te[a3].style[y2] = r3);
            }
        }(F, t5), t5.textEmphasis = null), t5.mra && (function(t6) {
          for (var e5 = 0; e5 < t6.length - 1; e5++) {
            var n4 = t6[e5].elements.length;
            if (0 !== n4 && false === t6[e5].br) {
              var a3 = document.createElement("br"), r3 = t6[e5].elements[n4 - 1].node;
              r3.parentElement.insertBefore(a3, r3.nextSibling);
            }
          }
        }(F), t5.mra = null), t5.lp && (function(t6, e5, n4) {
          if (null !== t6)
            for (var r3 = 0; r3 < t6.length; r3++) {
              var i3 = t6[r3].elements.length, l3 = Math.ceil(e5) + "px", o3 = "-" + Math.ceil(e5) + "px";
              if (0 !== i3) {
                var s3 = t6[r3].elements[t6[r3].start_elem], u3 = t6[r3].elements[t6[r3].end_elem];
                if (s3 === u3) {
                  var d3 = s3.node.getBoundingClientRect();
                  if (0 == d3.width || 0 == d3.height)
                    continue;
                }
                "lr" === n4.ipd ? (s3.node.style.marginLeft = o3, s3.node.style.paddingLeft = l3) : "rl" === n4.ipd ? (s3.node.style.paddingRight = l3, s3.node.style.marginRight = o3) : "tb" === n4.ipd && (s3.node.style.paddingTop = l3, s3.node.style.marginTop = o3), "lr" === n4.ipd ? (a2 || (u3.node.style.marginRight = o3), u3.node.style.paddingRight = l3) : "rl" === n4.ipd ? (u3.node.style.paddingLeft = l3, a2 || (u3.node.style.marginLeft = o3)) : "tb" === n4.ipd && (u3.node.style.paddingBottom = l3, u3.node.style.marginBottom = o3);
              }
            }
        }(F, t5.lp.toUsedLength(t5.w, t5.h), t5), t5.lp = null), function(t6, e5) {
          for (var n4 = 0; n4 < t6.length; n4++)
            for (var a3 = t6[n4], r3 = 1; r3 < a3.elements.length; ) {
              var o3 = a3.elements[r3 - 1], s3 = a3.elements[r3];
              l2(o3.node, s3.node, e5) ? a3.elements.splice(r3, 1) : r3++;
            }
          for (var u3, d3, c4 = [], f3 = 0; f3 < t6.length; f3++)
            for (var g4 = 0; g4 < t6[f3].elements.length; g4++)
              (d3 = i2(u3 = t6[f3].elements[g4].node, c4, false)) && (u3.style.backgroundColor = d3);
          for (var m4 = 0; m4 < c4.length; m4++)
            c4[m4].style.backgroundColor = "";
        }(F, t5), t5.flg)) {
          var U = s2(I.getBoundingClientRect(), t5);
          !function(t6, e5, n4, a3) {
            for (var r3 = Math.sign(n4 - e5), i3 = 0; i3 <= t6.length; i3++) {
              var l3, o3, s3, u3;
              if (l3 = 0 === i3 ? Math.round(e5) : i3 === t6.length ? Math.round(n4) : Math.round((t6[i3 - 1].after + t6[i3].before) / 2), i3 > 0 && t6[i3 - 1])
                for (s3 = 0; s3 < t6[i3 - 1].elements.length; s3++)
                  o3 = r3 * (l3 - (u3 = t6[i3 - 1].elements[s3]).after) + "px", "lr" === a3.bpd ? u3.node.style.paddingRight = o3 : "rl" === a3.bpd ? u3.node.style.paddingLeft = o3 : "tb" === a3.bpd && (u3.node.style.paddingBottom = o3);
              if (i3 < t6.length)
                for (s3 = 0; s3 < t6[i3].elements.length; s3++)
                  o3 = r3 * ((u3 = t6[i3].elements[s3]).before - l3) + "px", "lr" === a3.bpd ? u3.node.style.paddingLeft = o3 : "rl" === a3.bpd ? u3.node.style.paddingRight = o3 : "tb" === a3.bpd && (u3.node.style.paddingTop = o3);
            }
          }(F, U.before, U.after, t5), t5.flg = null;
        }
        if ("region" === c3.kind && "tb" === t5.bpd && t5.enableRollUp && c3.contents.length > 0 && "after" === c3.styleAttrs[n3.byName.displayAlign.qname]) {
          u2(t5, I, F, null);
          var j = new o2("" === c3.id ? "_" : c3.id, F);
          if (t5.currentISDState[j.id] = j, t5.previousISDState && j.id in t5.previousISDState && t5.previousISDState[j.id].plist.length > 0 && j.plist.length > 1 && j.plist[j.plist.length - 2].text === t5.previousISDState[j.id].plist[t5.previousISDState[j.id].plist.length - 1].text) {
            var q = m3.firstElementChild, B = j.plist[j.plist.length - 1].after - j.plist[j.plist.length - 1].before;
            q.style.bottom = "-" + B + "px", q.style.transition = "transform 0.4s", q.style.position = "relative", q.style.transform = "translateY(-" + B + "px)";
          }
        }
      } else
        E2(t5.errorHandler, "Error processing ISD element kind: " + c3.kind);
    }
    function i2(t5, e4, n4) {
      return t5.style.backgroundColor ? (n4 && !e4.includes(t5) && e4.push(t5), t5.style.backgroundColor) : "SPAN" === t5.parentElement.nodeName || "RUBY" === t5.parentElement.nodeName || "RBC" === t5.parentElement.nodeName || "RTC" === t5.parentElement.nodeName || "RT" === t5.parentElement.nodeName ? i2(t5.parentElement, e4, true) : void 0;
    }
    function l2(t5, e4, n4) {
      if ("SPAN" === t5.tagName && "SPAN" === e4.tagName && t5._isd_element === e4._isd_element) {
        if (!t5._isd_element)
          return E2(n4.errorHandler, "Internal error: HTML span is not linked to a source element; cannot merge spans."), false;
        t5.textContent += e4.textContent;
        for (var a3 = 0; a3 < e4.style.length; a3++) {
          var r3 = e4.style[a3];
          (r3.indexOf("border") >= 0 || r3.indexOf("padding") >= 0 || r3.indexOf("margin") >= 0) && (t5.style[r3] = e4.style[r3]);
        }
        return e4.parentElement.removeChild(e4), true;
      }
      return false;
    }
    function o2(t5, e4) {
      this.id = t5, this.plist = e4;
    }
    function s2(t5, e4) {
      var n4 = { before: null, after: null, start: null, end: null };
      return "tb" === e4.bpd ? (n4.before = t5.top, n4.after = t5.bottom, "lr" === e4.ipd ? (n4.start = t5.left, n4.end = t5.right) : (n4.start = t5.right, n4.end = t5.left)) : "lr" === e4.bpd ? (n4.before = t5.left, n4.after = t5.right, n4.start = t5.top, n4.end = t5.bottom) : "rl" === e4.bpd && (n4.before = t5.right, n4.after = t5.left, n4.start = t5.top, n4.end = t5.bottom), n4;
    }
    function u2(t5, e4, n4, a3) {
      if ("rt" !== e4.localName && "rtc" !== e4.localName) {
        var r3, i3, l3, o3, d3 = e4.style.backgroundColor || a3;
        if (0 === e4.childElementCount)
          if ("span" === e4.localName || "rb" === e4.localName) {
            var c3 = s2(e4.getBoundingClientRect(), t5);
            if (0 !== n4.length && (r3 = c3.before, i3 = c3.after, l3 = n4[n4.length - 1].before, i3 < (o3 = n4[n4.length - 1].after) && r3 > l3 || o3 <= i3 && l3 >= r3)) {
              var f3 = Math.sign(c3.after - c3.before), g3 = Math.sign(c3.end - c3.start);
              f3 * (c3.before - n4[n4.length - 1].before) < 0 && (n4[n4.length - 1].before = c3.before), f3 * (c3.after - n4[n4.length - 1].after) > 0 && (n4[n4.length - 1].after = c3.after), g3 * (c3.start - n4[n4.length - 1].start) < 0 && (n4[n4.length - 1].start = c3.start, n4[n4.length - 1].start_elem = n4[n4.length - 1].elements.length), g3 * (c3.end - n4[n4.length - 1].end) > 0 && (n4[n4.length - 1].end = c3.end, n4[n4.length - 1].end_elem = n4[n4.length - 1].elements.length);
            } else
              n4.push({ before: c3.before, after: c3.after, start: c3.start, end: c3.end, start_elem: 0, end_elem: 0, elements: [], rbc: [], te: [], text: "", br: false });
            n4[n4.length - 1].text += e4.textContent, n4[n4.length - 1].elements.push({ node: e4, bgcolor: d3, before: c3.before, after: c3.after });
          } else
            "br" === e4.localName && 0 !== n4.length && (n4[n4.length - 1].br = true);
        else
          for (var m3 = e4.firstChild; m3; )
            m3.nodeType === Node.ELEMENT_NODE && (u2(t5, m3, n4, d3), "ruby" === m3.localName || "rtc" === m3.localName ? n4.length > 0 && n4[n4.length - 1].rbc.push(m3) : "span" === m3.localName && m3.style[b2] && "none" !== m3.style[b2] && n4.length > 0 && n4[n4.length - 1].te.push(m3)), m3 = m3.nextSibling;
      }
    }
    function d2(t5, e4, n4, a3) {
      var r3;
      "none" !== a3.style && ("auto" === a3.style ? e4.style[b2] = "filled" : e4.style[b2] = a3.style + " " + a3.symbol, ("before" === a3.position || "after" === a3.position) && (r3 = "tb" === t5.bpd ? "before" === a3.position ? "left over" : "left under" : "rl" === t5.bpd ? "before" === a3.position ? "right under" : "left under" : "before" === a3.position ? "left under" : "right under", e4.style[y2] = r3));
    }
    function c2(t5, e4) {
      this.qname = t5, this.map = e4;
    }
    t4.render = function(t5, e4, n4, a3, i3, l3, o3, s3, u3) {
      var d3 = a3 || e4.clientHeight, c3 = i3 || e4.clientWidth;
      if (null !== t5.aspectRatio) {
        var f3 = d3 * t5.aspectRatio;
        f3 > c3 ? d3 = Math.round(c3 / t5.aspectRatio) : c3 = f3;
      }
      var g3 = document.createElement("div");
      g3.style.position = "relative", g3.style.width = c3 + "px", g3.style.height = d3 + "px", g3.style.margin = "auto", g3.style.top = 0, g3.style.bottom = 0, g3.style.left = 0, g3.style.right = 0, g3.style.zIndex = 0;
      var m3 = { h: d3, w: c3, regionH: null, regionW: null, imgResolver: n4, displayForcedOnlyMode: l3 || false, isd: t5, errorHandler: o3, previousISDState: s3, enableRollUp: u3 || false, currentISDState: {}, flg: null, lp: null, mra: null, ipd: null, bpd: null, ruby: null, textEmphasis: null, rubyReserve: null };
      if (e4.appendChild(g3), "contents" in t5)
        for (var h3 = 0; h3 < t5.contents.length; h3++)
          r2(m3, g3, t5.contents[h3], t5);
      return m3.currentISDState;
    };
    for (var f2 = [new c2("http://www.w3.org/ns/ttml#styling backgroundColor", function(t5, e4, n4, a3) {
      0 !== a3[3] && (e4.style.backgroundColor = "rgba(" + a3[0].toString() + "," + a3[1].toString() + "," + a3[2].toString() + "," + (a3[3] / 255).toString() + ")");
    }), new c2("http://www.w3.org/ns/ttml#styling color", function(t5, e4, n4, a3) {
      e4.style.color = "rgba(" + a3[0].toString() + "," + a3[1].toString() + "," + a3[2].toString() + "," + (a3[3] / 255).toString() + ")";
    }), new c2("http://www.w3.org/ns/ttml#styling direction", function(t5, e4, n4, a3) {
      e4.style.direction = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling display", function(t5, e4, n4, a3) {
    }), new c2("http://www.w3.org/ns/ttml#styling displayAlign", function(t5, e4, n4, a3) {
      e4.style.display = "flex", e4.style.flexDirection = "column", "before" === a3 ? e4.style.justifyContent = "flex-start" : "center" === a3 ? e4.style.justifyContent = "center" : "after" === a3 && (e4.style.justifyContent = "flex-end");
    }), new c2("http://www.w3.org/ns/ttml#styling extent", function(t5, e4, n4, a3) {
      t5.regionH = a3.h.toUsedLength(t5.w, t5.h), t5.regionW = a3.w.toUsedLength(t5.w, t5.h);
      var r3 = 0, i3 = 0, l3 = n4.styleAttrs["http://www.w3.org/ns/ttml#styling padding"];
      l3 && (r3 = l3[0].toUsedLength(t5.w, t5.h) + l3[2].toUsedLength(t5.w, t5.h), i3 = l3[1].toUsedLength(t5.w, t5.h) + l3[3].toUsedLength(t5.w, t5.h)), e4.style.height = t5.regionH - r3 + "px", e4.style.width = t5.regionW - i3 + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling fontFamily", function(t5, e4, n4, a3) {
      for (var r3 = [], i3 = 0; i3 < a3.length; i3++)
        a3[i3] = a3[i3].trim(), "monospaceSerif" === a3[i3] ? (r3.push("Courier New"), r3.push('"Liberation Mono"'), r3.push("Courier"), r3.push("monospace")) : "proportionalSansSerif" === a3[i3] ? (r3.push("Arial"), r3.push("Helvetica"), r3.push('"Liberation Sans"'), r3.push("sans-serif")) : "monospace" === a3[i3] ? r3.push("monospace") : "sansSerif" === a3[i3] ? r3.push("sans-serif") : "serif" === a3[i3] ? r3.push("serif") : "monospaceSansSerif" === a3[i3] ? (r3.push("Consolas"), r3.push("monospace")) : "proportionalSerif" === a3[i3] ? r3.push("serif") : r3.push(a3[i3]);
      if (r3.length > 0) {
        for (var l3 = [r3[0]], o3 = 1; o3 < r3.length; o3++)
          -1 == l3.indexOf(r3[o3]) && l3.push(r3[o3]);
        r3 = l3;
      }
      e4.style.fontFamily = r3.join(",");
    }), new c2("http://www.w3.org/ns/ttml#styling shear", function(t5, e4, n4, a3) {
      if (0 !== a3) {
        var r3 = -0.9 * a3;
        "tb" === t5.bpd ? e4.style.transform = "skewX(" + r3 + "deg)" : e4.style.transform = "skewY(" + r3 + "deg)";
      }
    }), new c2("http://www.w3.org/ns/ttml#styling fontSize", function(t5, e4, n4, a3) {
      e4.style.fontSize = a3.toUsedLength(t5.w, t5.h) + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling fontStyle", function(t5, e4, n4, a3) {
      e4.style.fontStyle = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling fontWeight", function(t5, e4, n4, a3) {
      e4.style.fontWeight = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling lineHeight", function(t5, e4, n4, a3) {
      e4.style.lineHeight = "normal" === a3 ? "normal" : a3.toUsedLength(t5.w, t5.h) + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling opacity", function(t5, e4, n4, a3) {
      e4.style.opacity = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling origin", function(t5, e4, n4, a3) {
      e4.style.top = a3.h.toUsedLength(t5.w, t5.h) + "px", e4.style.left = a3.w.toUsedLength(t5.w, t5.h) + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling overflow", function(t5, e4, n4, a3) {
      e4.style.overflow = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling padding", function(t5, e4, n4, a3) {
      var r3 = [];
      r3[0] = a3[0].toUsedLength(t5.w, t5.h) + "px", r3[1] = a3[3].toUsedLength(t5.w, t5.h) + "px", r3[2] = a3[2].toUsedLength(t5.w, t5.h) + "px", r3[3] = a3[1].toUsedLength(t5.w, t5.h) + "px", e4.style.padding = r3.join(" ");
    }), new c2("http://www.w3.org/ns/ttml#styling position", function(t5, e4, n4, a3) {
      e4.style.top = a3.h.toUsedLength(t5.w, t5.h) + "px", e4.style.left = a3.w.toUsedLength(t5.w, t5.h) + "px";
    }), new c2("http://www.w3.org/ns/ttml#styling rubyAlign", function(t5, e4, n4, a3) {
      e4.style.rubyAlign = "spaceAround" === a3 ? "space-around" : "center";
    }), new c2("http://www.w3.org/ns/ttml#styling rubyPosition", function(t5, e4, n4, a3) {
      var r3;
      "before" !== a3 && "after" !== a3 || (r3 = h2 ? a3 : "tb" === t5.bpd || "rl" === t5.bpd ? "before" === a3 ? "over" : "under" : "before" === a3 ? "under" : "over", e4.parentElement.style[p2] = r3);
    }), new c2("http://www.w3.org/ns/ttml#styling showBackground", null), new c2("http://www.w3.org/ns/ttml#styling textAlign", function(t5, e4, n4, a3) {
      var r3;
      r3 = "start" === a3 ? "rl" === t5.ipd ? "right" : "left" : "end" === a3 ? "rl" === t5.ipd ? "left" : "right" : a3, e4.style.textAlign = r3;
    }), new c2("http://www.w3.org/ns/ttml#styling textDecoration", function(t5, e4, n4, a3) {
      e4.style.textDecoration = a3.join(" ").replace("lineThrough", "line-through");
    }), new c2("http://www.w3.org/ns/ttml#styling textOutline", function(t5, e4, n4, a3) {
    }), new c2("http://www.w3.org/ns/ttml#styling textShadow", function(t5, e4, a3, r3) {
      var i3 = a3.styleAttrs[n3.byName.textOutline.qname];
      if ("none" === r3 && "none" === i3)
        e4.style.textShadow = "";
      else {
        var l3 = [];
        if ("none" !== i3) {
          var o3 = "rgba(" + i3.color[0].toString() + "," + i3.color[1].toString() + "," + i3.color[2].toString() + "," + (i3.color[3] / 255).toString() + ")";
          l3.push("1px 1px 1px " + o3), l3.push("-1px 1px 1px " + o3), l3.push("1px -1px 1px " + o3), l3.push("-1px -1px 1px " + o3);
        }
        if ("none" !== r3)
          for (var s3 = 0; s3 < r3.length; s3++)
            l3.push(r3[s3].x_off.toUsedLength(t5.w, t5.h) + "px " + r3[s3].y_off.toUsedLength(t5.w, t5.h) + "px " + r3[s3].b_radius.toUsedLength(t5.w, t5.h) + "px rgba(" + r3[s3].color[0].toString() + "," + r3[s3].color[1].toString() + "," + r3[s3].color[2].toString() + "," + (r3[s3].color[3] / 255).toString() + ")");
        e4.style.textShadow = l3.join(",");
      }
    }), new c2("http://www.w3.org/ns/ttml#styling textCombine", function(t5, e4, n4, a3) {
      e4.style.textCombineUpright = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling textEmphasis", function(t5, e4, n4, a3) {
    }), new c2("http://www.w3.org/ns/ttml#styling unicodeBidi", function(t5, e4, n4, a3) {
      var r3;
      r3 = "bidiOverride" === a3 ? "bidi-override" : a3, e4.style.unicodeBidi = r3;
    }), new c2("http://www.w3.org/ns/ttml#styling visibility", function(t5, e4, n4, a3) {
      e4.style.visibility = a3;
    }), new c2("http://www.w3.org/ns/ttml#styling wrapOption", function(t5, e4, n4, a3) {
      "wrap" === a3 ? "preserve" === n4.space ? e4.style.whiteSpace = "pre-wrap" : e4.style.whiteSpace = "normal" : "preserve" === n4.space ? e4.style.whiteSpace = "pre" : e4.style.whiteSpace = "noWrap";
    }), new c2("http://www.w3.org/ns/ttml#styling writingMode", function(t5, e4, n4, a3) {
      "lrtb" === a3 || "lr" === a3 || "rltb" === a3 || "rl" === a3 ? e4.style.writingMode = "horizontal-tb" : "tblr" === a3 ? e4.style.writingMode = "vertical-lr" : "tbrl" !== a3 && "tb" !== a3 || (e4.style.writingMode = "vertical-rl");
    }), new c2("http://www.w3.org/ns/ttml#styling zIndex", function(t5, e4, n4, a3) {
      e4.style.zIndex = a3;
    }), new c2("http://www.w3.org/ns/ttml/profile/imsc1#styling forcedDisplay", function(t5, e4, n4, a3) {
      t5.displayForcedOnlyMode && false === a3 && (e4.style.visibility = "hidden");
    })], g2 = {}, m2 = 0; m2 < f2.length; m2++)
      g2[f2[m2].qname] = f2[m2];
    var h2 = "webkitRubyPosition" in window.getComputedStyle(document.documentElement), p2 = h2 ? "webkitRubyPosition" : "rubyPosition", b2 = "webkitTextEmphasisStyle" in window.getComputedStyle(document.documentElement) ? "webkitTextEmphasisStyle" : "textEmphasisStyle", y2 = "webkitTextEmphasisPosition" in window.getComputedStyle(document.documentElement) ? "webkitTextEmphasisPosition" : "textEmphasisPosition";
    function E2(t5, e4) {
      if (t5 && t5.error && t5.error(e4))
        throw e4;
    }
  }(e2, "undefined" == typeof imscNames ? n2(977) : imscNames, "undefined" == typeof imscStyles ? n2(1219) : imscStyles, "undefined" == typeof imscUtils ? n2(6404) : imscUtils);
}, 8905: function(t3, e2, n2) {
  !function(t4, e3, n3, a2) {
    t4.generateISD = function(t5, e4, a3) {
      var r3, l3 = new s2(t5), o3 = {}, u3 = {}, d3 = t5.head.styling.initials[n3.byName.showBackground.qname], c2 = t5.head.styling.initials[n3.byName.backgroundColor.qname];
      for (var f2 in t5.head.layout.regions)
        if (t5.head.layout.regions.hasOwnProperty(f2)) {
          var g2 = t5.head.layout.regions[f2], m2 = g2.styleAttrs[n3.byName.showBackground.qname] || d3, h2 = g2.styleAttrs[n3.byName.backgroundColor.qname] || c2;
          u3[g2.id] = ("always" === m2 || void 0 === m2) && void 0 !== h2 && !(e4 < g2.begin || e4 >= g2.end);
        }
      for (var p2 in t5.body && t5.body.regionID && (u3[t5.body.regionID] = true), r3 = null !== t5.body ? function t6(e5, n4) {
        if (n4.contents) {
          var a4 = {};
          for (var r4 in n4)
            n4.hasOwnProperty(r4) && (a4[r4] = n4[r4]);
          return a4.contents = [], n4.contents.filter(function(t7) {
            return !(e5 < t7.begin || e5 >= t7.end);
          }).forEach(function(n5) {
            var r5 = t6(e5, n5);
            r5.regionID && (u3[r5.regionID] = true), null !== r5 && a4.contents.push(r5);
          }), a4;
        }
        return n4;
      }(e4, t5.body) : null, void 0 !== u3[""] && (u3[""] = true), u3)
        if (u3[p2]) {
          var b2 = i2(t5, e4, t5.head.layout.regions[p2], r3, null, "", t5.head.layout.regions[p2], a3, o3);
          null !== b2 && l3.contents.push(b2.element);
        }
      return l3;
    };
    var r2 = [n3.byName.color.qname, n3.byName.textCombine.qname, n3.byName.textDecoration.qname, n3.byName.textEmphasis.qname, n3.byName.textOutline.qname, n3.byName.textShadow.qname];
    function i2(t5, e4, s3, c2, f2, g2, m2, h2, p2) {
      if (e4 < m2.begin || e4 >= m2.end)
        return null;
      var b2 = "regionID" in m2 && "" !== m2.regionID ? m2.regionID : g2;
      if (null !== f2 && b2 !== s3.id && (!("contents" in m2) || "contents" in m2 && 0 === m2.contents.length || "" !== b2))
        return null;
      var y2 = new u2(m2);
      if ("sets" in m2)
        for (var E2 = 0; E2 < m2.sets.length; E2++)
          e4 < m2.sets[E2].begin || e4 >= m2.sets[E2].end || (y2.styleAttrs[m2.sets[E2].qname] = m2.sets[E2].value);
      var _2 = {};
      for (var T2 in y2.styleAttrs)
        if (y2.styleAttrs.hasOwnProperty(T2) && (_2[T2] = true, "region" === y2.kind && T2 === n3.byName.writingMode.qname && !(n3.byName.direction.qname in y2.styleAttrs))) {
          var v2 = y2.styleAttrs[T2];
          "lrtb" === v2 || "lr" === v2 ? y2.styleAttrs[n3.byName.direction.qname] = "ltr" : "rltb" !== v2 && "rl" !== v2 || (y2.styleAttrs[n3.byName.direction.qname] = "rtl");
        }
      if (null !== f2)
        for (var w2 = 0; w2 < n3.all.length; w2++) {
          var S2 = n3.all[w2];
          if (S2.qname === n3.byName.textDecoration.qname) {
            var I = f2.styleAttrs[S2.qname], k = y2.styleAttrs[S2.qname], A = [];
            void 0 === k ? A = I : -1 === k.indexOf("none") ? ((-1 === k.indexOf("noUnderline") && -1 !== I.indexOf("underline") || -1 !== k.indexOf("underline")) && A.push("underline"), (-1 === k.indexOf("noLineThrough") && -1 !== I.indexOf("lineThrough") || -1 !== k.indexOf("lineThrough")) && A.push("lineThrough"), (-1 === k.indexOf("noOverline") && -1 !== I.indexOf("overline") || -1 !== k.indexOf("overline")) && A.push("overline")) : A.push("none"), y2.styleAttrs[S2.qname] = A;
          } else if (S2.qname !== n3.byName.fontSize.qname || S2.qname in y2.styleAttrs || "span" !== y2.kind || "textContainer" !== y2.styleAttrs[n3.byName.ruby.qname])
            if (S2.qname !== n3.byName.fontSize.qname || S2.qname in y2.styleAttrs || "span" !== y2.kind || "text" !== y2.styleAttrs[n3.byName.ruby.qname])
              S2.inherit && S2.qname in f2.styleAttrs && !(S2.qname in y2.styleAttrs) && (y2.styleAttrs[S2.qname] = f2.styleAttrs[S2.qname]);
            else {
              var R = f2.styleAttrs[n3.byName.fontSize.qname];
              "textContainer" === f2.styleAttrs[n3.byName.ruby.qname] ? y2.styleAttrs[S2.qname] = R : y2.styleAttrs[S2.qname] = new a2.ComputedLength(0.5 * R.rw, 0.5 * R.rh);
            }
          else {
            var N = f2.styleAttrs[n3.byName.fontSize.qname];
            y2.styleAttrs[S2.qname] = new a2.ComputedLength(0.5 * N.rw, 0.5 * N.rh);
          }
        }
      for (var C = 0; C < n3.all.length; C++) {
        var D = n3.all[C];
        if (!(D.qname in y2.styleAttrs) && !(D.qname === n3.byName.position.qname && n3.byName.origin.qname in y2.styleAttrs || D.qname === n3.byName.origin.qname && n3.byName.position.qname in y2.styleAttrs)) {
          var x = t5.head.styling.initials[D.qname] || D.initial;
          if (null !== x && ("region" === y2.kind || false === D.inherit && null !== x)) {
            var M = D.parse(x);
            null !== M ? (y2.styleAttrs[D.qname] = M, _2[D.qname] = true) : d2(h2, "Invalid initial value for '" + D.qname + "' on element '" + y2.kind);
          }
        }
      }
      for (var z = 0; z < n3.all.length; z++) {
        var O = n3.all[z];
        if (O.qname in _2 && null !== O.compute) {
          var P = O.compute(t5, f2, y2, y2.styleAttrs[O.qname], p2);
          null !== P ? y2.styleAttrs[O.qname] = P : (y2.styleAttrs[O.qname] = O.compute(t5, f2, y2, O.parse(O.initial), p2), d2(h2, "Style '" + O.qname + "' on element '" + y2.kind + "' cannot be computed"));
        }
      }
      if ("none" === y2.styleAttrs[n3.byName.display.qname])
        return null;
      var L = null;
      null === f2 ? L = null === c2 ? [] : [c2] : "contents" in m2 && (L = m2.contents);
      for (var F = 0; null !== L && F < L.length; F++) {
        var U = i2(t5, e4, s3, c2, y2, b2, L[F], h2, p2);
        null !== U && y2.contents.push(U.element);
      }
      for (var j in y2.styleAttrs)
        if (y2.styleAttrs.hasOwnProperty(j)) {
          var q = false;
          if ("span" === y2.kind) {
            var B = y2.styleAttrs[n3.byName.ruby.qname];
            (q = ("container" === B || "textContainer" === B || "baseContainer" === B) && -1 !== r2.indexOf(j)) || (q = "container" !== B && j === n3.byName.rubyAlign.qname), q || (q = !("textContainer" === B || "text" === B) && j === n3.byName.rubyPosition.qname);
          }
          if (!q) {
            var G = n3.byQName[j];
            "applies" in G && (q = -1 === G.applies.indexOf(y2.kind));
          }
          q && delete y2.styleAttrs[j];
        }
      var H = y2.styleAttrs[n3.byName.ruby.qname];
      if ("p" === y2.kind || "span" === y2.kind && ("textContainer" === H || "text" === H)) {
        var Y = [];
        l2(y2, Y), function(t6) {
          for (var e5, n4 = 0; n4 < t6.length; )
            if ("br" !== (e5 = t6[n4]).kind && "preserve" !== e5.space) {
              var a3 = e5.text.replace(/[\t\r\n ]+/g, " ");
              /^[ ]/.test(a3) && (0 === n4 || ("br" === (r3 = t6[n4 - 1]).kind || /[\r\n\t ]$/.test(r3.text))) && (a3 = a3.substring(1)), e5.text = a3, 0 === a3.length ? t6.splice(n4, 1) : n4++;
            } else
              n4++;
          var r3, i3;
          for (n4 = 0; n4 < t6.length; n4++)
            "br" !== (e5 = t6[n4]).kind && "preserve" !== e5.space ? /[ ]$/.test(e5.text) && (n4 === t6.length - 1 || ("br" === (i3 = t6[n4 + 1]).kind || "preserve" === i3.space && /^[\r\n]/.test(i3.text))) && (e5.text = e5.text.slice(0, -1)) : n4++;
        }(Y), o2(y2);
      }
      return "div" === y2.kind && n3.byName.backgroundImage.qname in y2.styleAttrs || "br" === y2.kind || "image" === y2.kind || "contents" in y2 && y2.contents.length > 0 || "span" === y2.kind && null !== y2.text || "region" === y2.kind && "always" === y2.styleAttrs[n3.byName.showBackground.qname] ? { region_id: b2, element: y2 } : null;
    }
    function l2(t5, e4) {
      if ("contents" in t5)
        for (var a3 = 0; a3 < t5.contents.length; a3++) {
          var r3 = t5.contents[a3], i3 = r3.styleAttrs[n3.byName.ruby.qname];
          ("span" !== r3.kind || "textContainer" !== i3 && "text" !== i3) && ("contents" in r3 ? l2(r3, e4) : ("span" === r3.kind && 0 !== r3.text.length || "br" === r3.kind) && e4.push(r3));
        }
    }
    function o2(t5) {
      if ("br" === t5.kind)
        return false;
      if ("text" in t5)
        return 0 === t5.text.length;
      if ("contents" in t5) {
        for (var e4 = t5.contents.length; e4--; )
          o2(t5.contents[e4]) && t5.contents.splice(e4, 1);
        return 0 === t5.contents.length;
      }
    }
    function s2(t5) {
      this.contents = [], this.aspectRatio = t5.aspectRatio, this.lang = t5.lang;
    }
    function u2(t5) {
      for (var e4 in this.kind = t5.kind || "region", this.lang = t5.lang, t5.id && (this.id = t5.id), this.styleAttrs = {}, t5.styleAttrs)
        t5.styleAttrs.hasOwnProperty(e4) && (this.styleAttrs[e4] = t5.styleAttrs[e4]);
      "src" in t5 && (this.src = t5.src), "type" in t5 && (this.type = t5.type), "text" in t5 ? this.text = t5.text : ("region" === this.kind || "contents" in t5) && (this.contents = []), "space" in t5 && (this.space = t5.space);
    }
    function d2(t5, e4) {
      if (t5 && t5.error && t5.error(e4))
        throw e4;
    }
  }(e2, "undefined" == typeof imscNames ? n2(977) : imscNames, "undefined" == typeof imscStyles ? n2(1219) : imscStyles, "undefined" == typeof imscUtils ? n2(6404) : imscUtils);
}, 7640: function(t3, e2, n2) {
  e2.generateISD = n2(8905).generateISD, e2.fromXML = n2(6739).fromXML, e2.renderHTML = n2(1612).render;
}, 977: function(t3, e2) {
  !function(t4) {
    t4.ns_tt = "http://www.w3.org/ns/ttml", t4.ns_tts = "http://www.w3.org/ns/ttml#styling", t4.ns_ttp = "http://www.w3.org/ns/ttml#parameter", t4.ns_xml = "http://www.w3.org/XML/1998/namespace", t4.ns_itts = "http://www.w3.org/ns/ttml/profile/imsc1#styling", t4.ns_ittp = "http://www.w3.org/ns/ttml/profile/imsc1#parameter", t4.ns_smpte = "http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt", t4.ns_ebutts = "urn:ebu:tt:style";
  }(e2);
}, 1219: function(t3, e2, n2) {
  !function(t4, e3, n3) {
    function a2(t5, e4, n4, a3, r3, i3, l2, o2) {
      this.name = e4, this.ns = t5, this.qname = t5 + " " + e4, this.inherit = r3, this.animatable = i3, this.initial = n4, this.applies = a3, this.parse = l2, this.compute = o2;
    }
    for (var r2 in t4.all = [new a2(e3.ns_tts, "backgroundColor", "transparent", ["body", "div", "p", "region", "span"], false, true, n3.parseColor, null), new a2(e3.ns_tts, "color", "white", ["span"], true, true, n3.parseColor, null), new a2(e3.ns_tts, "direction", "ltr", ["p", "span"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "display", "auto", ["body", "div", "p", "region", "span"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "displayAlign", "before", ["region"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "extent", "auto", ["tt", "region"], false, true, function(t5) {
      if ("auto" === t5)
        return t5;
      var e4 = t5.split(" ");
      if (2 !== e4.length)
        return null;
      var a3 = n3.parseLength(e4[0]), r3 = n3.parseLength(e4[1]);
      return r3 && a3 ? { h: r3, w: a3 } : null;
    }, function(t5, e4, a3, r3, i3) {
      var l2, o2;
      if ("auto" === r3)
        l2 = new n3.ComputedLength(0, 1);
      else if (null === (l2 = n3.toComputedLength(r3.h.value, r3.h.unit, null, t5.dimensions.h, null, t5.pxLength.h)))
        return null;
      if ("auto" === r3)
        o2 = new n3.ComputedLength(1, 0);
      else if (null === (o2 = n3.toComputedLength(r3.w.value, r3.w.unit, null, t5.dimensions.w, null, t5.pxLength.w)))
        return null;
      return { h: l2, w: o2 };
    }), new a2(e3.ns_tts, "fontFamily", "default", ["span", "p"], true, true, function(t5) {
      for (var e4 = t5.split(","), n4 = [], a3 = 0; a3 < e4.length; a3++)
        e4[a3] = e4[a3].trim(), "'" !== e4[a3].charAt(0) && '"' !== e4[a3].charAt(0) && "default" === e4[a3] ? n4.push("monospaceSerif") : n4.push(e4[a3]);
      return n4;
    }, null), new a2(e3.ns_tts, "shear", "0%", ["p"], true, true, n3.parseLength, function(t5, e4, n4, a3) {
      return "%" !== a3.unit ? null : Math.abs(a3.value) > 100 ? 100 * Math.sign(a3.value) : a3.value;
    }), new a2(e3.ns_tts, "fontSize", "1c", ["span", "p"], true, true, n3.parseLength, function(e4, a3, r3, i3, l2) {
      return n3.toComputedLength(i3.value, i3.unit, null !== a3 ? a3.styleAttrs[t4.byName.fontSize.qname] : e4.cellLength.h, null !== a3 ? a3.styleAttrs[t4.byName.fontSize.qname] : e4.cellLength.h, e4.cellLength.h, e4.pxLength.h);
    }), new a2(e3.ns_tts, "fontStyle", "normal", ["span", "p"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "fontWeight", "normal", ["span", "p"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "lineHeight", "normal", ["p"], true, true, function(t5) {
      return "normal" === t5 ? t5 : n3.parseLength(t5);
    }, function(e4, a3, r3, i3, l2) {
      var o2;
      if ("normal" === i3)
        o2 = i3;
      else if (null === (o2 = n3.toComputedLength(i3.value, i3.unit, r3.styleAttrs[t4.byName.fontSize.qname], r3.styleAttrs[t4.byName.fontSize.qname], e4.cellLength.h, e4.pxLength.h)))
        return null;
      return o2;
    }), new a2(e3.ns_tts, "opacity", 1, ["region"], false, true, parseFloat, null), new a2(e3.ns_tts, "origin", "auto", ["region"], false, true, function(t5) {
      if ("auto" === t5)
        return t5;
      var e4 = t5.split(" ");
      if (2 !== e4.length)
        return null;
      var a3 = n3.parseLength(e4[0]), r3 = n3.parseLength(e4[1]);
      return r3 && a3 ? { h: r3, w: a3 } : null;
    }, function(t5, e4, a3, r3, i3) {
      var l2, o2;
      if ("auto" === r3)
        l2 = new n3.ComputedLength(0, 0);
      else if (null === (l2 = n3.toComputedLength(r3.h.value, r3.h.unit, null, t5.dimensions.h, null, t5.pxLength.h)))
        return null;
      if ("auto" === r3)
        o2 = new n3.ComputedLength(0, 0);
      else if (null === (o2 = n3.toComputedLength(r3.w.value, r3.w.unit, null, t5.dimensions.w, null, t5.pxLength.w)))
        return null;
      return { h: l2, w: o2 };
    }), new a2(e3.ns_tts, "overflow", "hidden", ["region"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "padding", "0px", ["region"], false, true, function(t5) {
      var e4 = t5.split(" ");
      if (e4.length > 4)
        return null;
      for (var a3 = [], r3 = 0; r3 < e4.length; r3++) {
        var i3 = n3.parseLength(e4[r3]);
        if (!i3)
          return null;
        a3.push(i3);
      }
      return a3;
    }, function(e4, a3, r3, i3, l2) {
      var o2;
      if (1 === i3.length)
        o2 = [i3[0], i3[0], i3[0], i3[0]];
      else if (2 === i3.length)
        o2 = [i3[0], i3[1], i3[0], i3[1]];
      else if (3 === i3.length)
        o2 = [i3[0], i3[1], i3[2], i3[1]];
      else {
        if (4 !== i3.length)
          return null;
        o2 = [i3[0], i3[1], i3[2], i3[3]];
      }
      var s2 = r3.styleAttrs[t4.byName.writingMode.qname];
      if ("lrtb" === s2 || "lr" === s2)
        o2 = [o2[0], o2[3], o2[2], o2[1]];
      else if ("rltb" === s2 || "rl" === s2)
        o2 = [o2[0], o2[1], o2[2], o2[3]];
      else if ("tblr" === s2)
        o2 = [o2[3], o2[0], o2[1], o2[2]];
      else {
        if ("tbrl" !== s2 && "tb" !== s2)
          return null;
        o2 = [o2[3], o2[2], o2[1], o2[0]];
      }
      for (var u2 = [], d2 = 0; d2 < o2.length; d2++)
        if (0 === o2[d2].value)
          u2[d2] = new n3.ComputedLength(0, 0);
        else if (u2[d2] = n3.toComputedLength(o2[d2].value, o2[d2].unit, r3.styleAttrs[t4.byName.fontSize.qname], 0 === d2 || 2 === d2 ? r3.styleAttrs[t4.byName.extent.qname].h : r3.styleAttrs[t4.byName.extent.qname].w, 0 === d2 || 2 === d2 ? e4.cellLength.h : e4.cellLength.w, 0 === d2 || 2 === d2 ? e4.pxLength.h : e4.pxLength.w), null === u2[d2])
          return null;
      return u2;
    }), new a2(e3.ns_tts, "position", "top left", ["region"], false, true, function(t5) {
      return n3.parsePosition(t5);
    }, function(e4, a3, r3, i3) {
      var l2, o2;
      return null === (l2 = n3.toComputedLength(i3.v.offset.value, i3.v.offset.unit, null, new n3.ComputedLength(-r3.styleAttrs[t4.byName.extent.qname].h.rw, e4.dimensions.h.rh - r3.styleAttrs[t4.byName.extent.qname].h.rh), null, e4.pxLength.h)) ? null : ("bottom" === i3.v.edge && (l2 = new n3.ComputedLength(-l2.rw - r3.styleAttrs[t4.byName.extent.qname].h.rw, e4.dimensions.h.rh - l2.rh - r3.styleAttrs[t4.byName.extent.qname].h.rh)), o2 = n3.toComputedLength(i3.h.offset.value, i3.h.offset.unit, null, new n3.ComputedLength(e4.dimensions.w.rw - r3.styleAttrs[t4.byName.extent.qname].w.rw, -r3.styleAttrs[t4.byName.extent.qname].w.rh), null, e4.pxLength.w), null === l2 ? null : ("right" === i3.h.edge && (o2 = new n3.ComputedLength(e4.dimensions.w.rw - o2.rw - r3.styleAttrs[t4.byName.extent.qname].w.rw, -o2.rh - r3.styleAttrs[t4.byName.extent.qname].w.rh)), { h: l2, w: o2 }));
    }), new a2(e3.ns_tts, "ruby", "none", ["span"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "rubyAlign", "center", ["span"], true, true, function(t5) {
      return "center" !== t5 && "spaceAround" !== t5 ? null : t5;
    }, null), new a2(e3.ns_tts, "rubyPosition", "outside", ["span"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "rubyReserve", "none", ["p"], true, true, function(t5) {
      var e4 = t5.split(" "), a3 = [null, null];
      if (0 === e4.length || e4.length > 2)
        return null;
      if ("none" !== e4[0] && "both" !== e4[0] && "after" !== e4[0] && "before" !== e4[0] && "outside" !== e4[0])
        return null;
      if (a3[0] = e4[0], 2 === e4.length && "none" !== e4[0]) {
        var r3 = n3.parseLength(e4[1]);
        if (!r3)
          return null;
        a3[1] = r3;
      }
      return a3;
    }, function(e4, a3, r3, i3, l2) {
      if ("none" === i3[0])
        return i3;
      var o2;
      return null === (o2 = null === i3[1] ? new n3.ComputedLength(0.5 * r3.styleAttrs[t4.byName.fontSize.qname].rw, 0.5 * r3.styleAttrs[t4.byName.fontSize.qname].rh) : n3.toComputedLength(i3[1].value, i3[1].unit, r3.styleAttrs[t4.byName.fontSize.qname], r3.styleAttrs[t4.byName.fontSize.qname], e4.cellLength.h, e4.pxLength.h)) ? null : [i3[0], o2];
    }), new a2(e3.ns_tts, "showBackground", "always", ["region"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "textAlign", "start", ["p"], true, true, function(t5) {
      return t5;
    }, function(t5, e4, n4, a3, r3) {
      return "left" === a3 ? "start" : "right" === a3 ? "end" : a3;
    }), new a2(e3.ns_tts, "textCombine", "none", ["span"], true, true, function(t5) {
      return "none" === t5 || "all" === t5 ? t5 : null;
    }, null), new a2(e3.ns_tts, "textDecoration", "none", ["span"], true, true, function(t5) {
      return t5.split(" ");
    }, null), new a2(e3.ns_tts, "textEmphasis", "none", ["span"], true, true, function(t5) {
      for (var e4 = t5.split(" "), a3 = { style: null, symbol: null, color: null, position: null }, r3 = 0; r3 < e4.length; r3++)
        if ("none" === e4[r3] || "auto" === e4[r3])
          a3.style = e4[r3];
        else if ("filled" === e4[r3] || "open" === e4[r3])
          a3.style = e4[r3];
        else if ("circle" === e4[r3] || "dot" === e4[r3] || "sesame" === e4[r3])
          a3.symbol = e4[r3];
        else if ("current" === e4[r3])
          a3.color = e4[r3];
        else if ("outside" === e4[r3] || "before" === e4[r3] || "after" === e4[r3])
          a3.position = e4[r3];
        else if (a3.color = n3.parseColor(e4[r3]), null === a3.color)
          return null;
      return null == a3.style && null == a3.symbol ? a3.style = "auto" : (a3.symbol = a3.symbol || "circle", a3.style = a3.style || "filled"), a3.position = a3.position || "outside", a3.color = a3.color || "current", a3;
    }, null), new a2(e3.ns_tts, "textOutline", "none", ["span"], true, true, function(t5) {
      if ("none" === t5)
        return t5;
      var e4 = {}, a3 = t5.split(" ");
      if (0 === a3.length || a3.length > 2)
        return null;
      var r3 = n3.parseColor(a3[0]);
      if (e4.color = r3, null !== r3 && a3.shift(), 1 !== a3.length)
        return null;
      var i3 = n3.parseLength(a3[0]);
      return i3 ? (e4.thickness = i3, e4) : null;
    }, function(e4, a3, r3, i3, l2) {
      if ("none" === i3)
        return i3;
      var o2 = {};
      return null === i3.color ? o2.color = r3.styleAttrs[t4.byName.color.qname] : o2.color = i3.color, o2.thickness = n3.toComputedLength(i3.thickness.value, i3.thickness.unit, r3.styleAttrs[t4.byName.fontSize.qname], r3.styleAttrs[t4.byName.fontSize.qname], e4.cellLength.h, e4.pxLength.h), null === o2.thickness ? null : o2;
    }), new a2(e3.ns_tts, "textShadow", "none", ["span"], true, true, n3.parseTextShadow, function(e4, a3, r3, i3) {
      if ("none" === i3)
        return i3;
      for (var l2 = [], o2 = 0; o2 < i3.length; o2++) {
        var s2 = {};
        if (s2.x_off = n3.toComputedLength(i3[o2][0].value, i3[o2][0].unit, null, r3.styleAttrs[t4.byName.fontSize.qname], null, e4.pxLength.w), null === s2.x_off)
          return null;
        if (s2.y_off = n3.toComputedLength(i3[o2][1].value, i3[o2][1].unit, null, r3.styleAttrs[t4.byName.fontSize.qname], null, e4.pxLength.h), null === s2.y_off)
          return null;
        if (null === i3[o2][2])
          s2.b_radius = 0;
        else if (s2.b_radius = n3.toComputedLength(i3[o2][2].value, i3[o2][2].unit, null, r3.styleAttrs[t4.byName.fontSize.qname], null, e4.pxLength.h), null === s2.b_radius)
          return null;
        null === i3[o2][3] ? s2.color = r3.styleAttrs[t4.byName.color.qname] : s2.color = i3[o2][3], l2.push(s2);
      }
      return l2;
    }), new a2(e3.ns_tts, "unicodeBidi", "normal", ["span", "p"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "visibility", "visible", ["body", "div", "p", "region", "span"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "wrapOption", "wrap", ["span"], true, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "writingMode", "lrtb", ["region"], false, true, function(t5) {
      return t5;
    }, null), new a2(e3.ns_tts, "zIndex", "auto", ["region"], false, true, function(t5) {
      var e4;
      return "auto" === t5 ? e4 = t5 : (e4 = parseInt(t5), isNaN(e4) && (e4 = null)), e4;
    }, null), new a2(e3.ns_ebutts, "linePadding", "0c", ["p"], true, false, n3.parseLength, function(t5, e4, a3, r3, i3) {
      return n3.toComputedLength(r3.value, r3.unit, null, null, t5.cellLength.w, null);
    }), new a2(e3.ns_ebutts, "multiRowAlign", "auto", ["p"], true, false, function(t5) {
      return t5;
    }, null), new a2(e3.ns_smpte, "backgroundImage", null, ["div"], false, false, function(t5) {
      return t5;
    }, null), new a2(e3.ns_itts, "forcedDisplay", "false", ["body", "div", "p", "region", "span"], true, true, function(t5) {
      return "true" === t5;
    }, null), new a2(e3.ns_itts, "fillLineGap", "false", ["p"], true, true, function(t5) {
      return "true" === t5;
    }, null)], t4.byQName = {}, t4.all)
      t4.byQName[t4.all[r2].qname] = t4.all[r2];
    for (var i2 in t4.byName = {}, t4.all)
      t4.byName[t4.all[i2].name] = t4.all[i2];
  }(e2, "undefined" == typeof imscNames ? n2(977) : imscNames, "undefined" == typeof imscUtils ? n2(6404) : imscUtils);
}, 6404: function(t3, e2) {
  !function(t4) {
    var e3 = /#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?/, n2 = /rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/, a2 = /rgba\(\s*(\d+),\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/, r2 = { transparent: [0, 0, 0, 0], black: [0, 0, 0, 255], silver: [192, 192, 192, 255], gray: [128, 128, 128, 255], white: [255, 255, 255, 255], maroon: [128, 0, 0, 255], red: [255, 0, 0, 255], purple: [128, 0, 128, 255], fuchsia: [255, 0, 255, 255], magenta: [255, 0, 255, 255], green: [0, 128, 0, 255], lime: [0, 255, 0, 255], olive: [128, 128, 0, 255], yellow: [255, 255, 0, 255], navy: [0, 0, 128, 255], blue: [0, 0, 255, 255], teal: [0, 128, 128, 255], aqua: [0, 255, 255, 255], cyan: [0, 255, 255, 255] };
    t4.parseColor = function(t5) {
      var i3, l2 = null, o2 = r2[t5.toLowerCase()];
      return void 0 !== o2 ? l2 = o2 : null !== (i3 = e3.exec(t5)) ? l2 = [parseInt(i3[1], 16), parseInt(i3[2], 16), parseInt(i3[3], 16), void 0 !== i3[4] ? parseInt(i3[4], 16) : 255] : null !== (i3 = n2.exec(t5)) ? l2 = [parseInt(i3[1]), parseInt(i3[2]), parseInt(i3[3]), 255] : null !== (i3 = a2.exec(t5)) && (l2 = [parseInt(i3[1]), parseInt(i3[2]), parseInt(i3[3]), parseInt(i3[4])]), l2;
    };
    var i2 = /^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/;
    t4.parseLength = function(t5) {
      var e4, n3 = null;
      return null !== (e4 = i2.exec(t5)) && (n3 = { value: parseFloat(e4[1]), unit: e4[2] }), n3;
    }, t4.parseTextShadow = function(e4) {
      for (var n3 = e4.match(/([^\(,\)]|\([^\)]+\))+/g), a3 = [], r3 = 0; r3 < n3.length; r3++) {
        var i3 = n3[r3].split(" ");
        if (1 === i3.length && "none" === i3[0])
          return "none";
        if (i3.length > 1 && i3.length < 5) {
          var l2 = [null, null, null, null], o2 = t4.parseLength(i3.shift());
          if (null === o2)
            return null;
          if (l2[0] = o2, null === (o2 = t4.parseLength(i3.shift())))
            return null;
          if (l2[1] = o2, 0 === i3.length) {
            a3.push(l2);
            continue;
          }
          if (null !== (o2 = t4.parseLength(i3[0])) && (l2[2] = o2, i3.shift()), 0 === i3.length) {
            a3.push(l2);
            continue;
          }
          var s2 = t4.parseColor(i3[0]);
          if (null === s2)
            return null;
          l2[3] = s2, a3.push(l2);
        }
      }
      return a3;
    }, t4.parsePosition = function(e4) {
      var n3 = e4.split(" "), a3 = function(t5) {
        return "center" === t5 || "left" === t5 || "top" === t5 || "bottom" === t5 || "right" === t5;
      };
      if (n3.length > 4)
        return null;
      for (var r3 = 0; r3 < n3.length; r3++)
        if (!a3(n3[r3])) {
          var i3 = t4.parseLength(n3[r3]);
          if (null === i3)
            return null;
          n3[r3] = i3;
        }
      for (var l2 = { h: { edge: "left", offset: { value: 50, unit: "%" } }, v: { edge: "top", offset: { value: 50, unit: "%" } } }, o2 = 0; o2 < n3.length; ) {
        var s2 = n3[o2++];
        if (a3(s2)) {
          var u2 = { value: 0, unit: "%" };
          2 !== n3.length && o2 < n3.length && !a3(n3[o2]) && (u2 = n3[o2++]), "right" === s2 ? (l2.h.edge = s2, l2.h.offset = u2) : "bottom" === s2 ? (l2.v.edge = s2, l2.v.offset = u2) : "left" === s2 ? l2.h.offset = u2 : "top" === s2 && (l2.v.offset = u2);
        } else {
          if (1 !== n3.length && 2 !== n3.length)
            return null;
          1 === o2 ? l2.h.offset = s2 : l2.v.offset = s2;
        }
      }
      return l2;
    }, t4.ComputedLength = function(t5, e4) {
      this.rw = t5, this.rh = e4;
    }, t4.ComputedLength.prototype.toUsedLength = function(t5, e4) {
      return t5 * this.rw + e4 * this.rh;
    }, t4.ComputedLength.prototype.isZero = function() {
      return 0 === this.rw && 0 === this.rh;
    }, t4.toComputedLength = function(e4, n3, a3, r3, i3, l2) {
      return "%" === n3 && r3 ? new t4.ComputedLength(r3.rw * e4 / 100, r3.rh * e4 / 100) : "em" === n3 && a3 ? new t4.ComputedLength(a3.rw * e4, a3.rh * e4) : "c" === n3 && i3 ? new t4.ComputedLength(e4 * i3.rw, e4 * i3.rh) : "px" === n3 && l2 ? new t4.ComputedLength(e4 * l2.rw, e4 * l2.rh) : "rh" === n3 ? new t4.ComputedLength(0, e4 / 100) : "rw" === n3 ? new t4.ComputedLength(e4 / 100, 0) : null;
    };
  }(e2);
}, 7523: function(t3) {
  "function" == typeof Object.create ? t3.exports = function(t4, e2) {
    e2 && (t4.super_ = e2, t4.prototype = Object.create(e2.prototype, { constructor: { value: t4, enumerable: false, writable: true, configurable: true } }));
  } : t3.exports = function(t4, e2) {
    if (e2) {
      t4.super_ = e2;
      var n2 = function() {
      };
      n2.prototype = e2.prototype, t4.prototype = new n2(), t4.prototype.constructor = t4;
    }
  };
}, 3282: function(t3) {
  function e2(t4) {
    if ("string" != typeof t4)
      throw new TypeError("Path must be a string. Received " + JSON.stringify(t4));
  }
  function n2(t4, e3) {
    for (var n3, a3 = "", r2 = 0, i2 = -1, l2 = 0, o2 = 0; o2 <= t4.length; ++o2) {
      if (o2 < t4.length)
        n3 = t4.charCodeAt(o2);
      else {
        if (47 === n3)
          break;
        n3 = 47;
      }
      if (47 === n3) {
        if (i2 === o2 - 1 || 1 === l2)
          ;
        else if (i2 !== o2 - 1 && 2 === l2) {
          if (a3.length < 2 || 2 !== r2 || 46 !== a3.charCodeAt(a3.length - 1) || 46 !== a3.charCodeAt(a3.length - 2)) {
            if (a3.length > 2) {
              var s2 = a3.lastIndexOf("/");
              if (s2 !== a3.length - 1) {
                -1 === s2 ? (a3 = "", r2 = 0) : r2 = (a3 = a3.slice(0, s2)).length - 1 - a3.lastIndexOf("/"), i2 = o2, l2 = 0;
                continue;
              }
            } else if (2 === a3.length || 1 === a3.length) {
              a3 = "", r2 = 0, i2 = o2, l2 = 0;
              continue;
            }
          }
          e3 && (a3.length > 0 ? a3 += "/.." : a3 = "..", r2 = 2);
        } else
          a3.length > 0 ? a3 += "/" + t4.slice(i2 + 1, o2) : a3 = t4.slice(i2 + 1, o2), r2 = o2 - i2 - 1;
        i2 = o2, l2 = 0;
      } else
        46 === n3 && -1 !== l2 ? ++l2 : l2 = -1;
    }
    return a3;
  }
  var a2 = { resolve: function() {
    for (var t4, a3 = "", r2 = false, i2 = arguments.length - 1; i2 >= -1 && !r2; i2--) {
      var l2;
      i2 >= 0 ? l2 = arguments[i2] : (void 0 === t4 && (t4 = process.cwd()), l2 = t4), e2(l2), 0 !== l2.length && (a3 = l2 + "/" + a3, r2 = 47 === l2.charCodeAt(0));
    }
    return a3 = n2(a3, !r2), r2 ? a3.length > 0 ? "/" + a3 : "/" : a3.length > 0 ? a3 : ".";
  }, normalize: function(t4) {
    if (e2(t4), 0 === t4.length)
      return ".";
    var a3 = 47 === t4.charCodeAt(0), r2 = 47 === t4.charCodeAt(t4.length - 1);
    return 0 !== (t4 = n2(t4, !a3)).length || a3 || (t4 = "."), t4.length > 0 && r2 && (t4 += "/"), a3 ? "/" + t4 : t4;
  }, isAbsolute: function(t4) {
    return e2(t4), t4.length > 0 && 47 === t4.charCodeAt(0);
  }, join: function() {
    if (0 === arguments.length)
      return ".";
    for (var t4, n3 = 0; n3 < arguments.length; ++n3) {
      var r2 = arguments[n3];
      e2(r2), r2.length > 0 && (void 0 === t4 ? t4 = r2 : t4 += "/" + r2);
    }
    return void 0 === t4 ? "." : a2.normalize(t4);
  }, relative: function(t4, n3) {
    if (e2(t4), e2(n3), t4 === n3)
      return "";
    if ((t4 = a2.resolve(t4)) === (n3 = a2.resolve(n3)))
      return "";
    for (var r2 = 1; r2 < t4.length && 47 === t4.charCodeAt(r2); ++r2)
      ;
    for (var i2 = t4.length, l2 = i2 - r2, o2 = 1; o2 < n3.length && 47 === n3.charCodeAt(o2); ++o2)
      ;
    for (var s2 = n3.length - o2, u2 = l2 < s2 ? l2 : s2, d2 = -1, c2 = 0; c2 <= u2; ++c2) {
      if (c2 === u2) {
        if (s2 > u2) {
          if (47 === n3.charCodeAt(o2 + c2))
            return n3.slice(o2 + c2 + 1);
          if (0 === c2)
            return n3.slice(o2 + c2);
        } else
          l2 > u2 && (47 === t4.charCodeAt(r2 + c2) ? d2 = c2 : 0 === c2 && (d2 = 0));
        break;
      }
      var f2 = t4.charCodeAt(r2 + c2);
      if (f2 !== n3.charCodeAt(o2 + c2))
        break;
      47 === f2 && (d2 = c2);
    }
    var g2 = "";
    for (c2 = r2 + d2 + 1; c2 <= i2; ++c2)
      c2 !== i2 && 47 !== t4.charCodeAt(c2) || (0 === g2.length ? g2 += ".." : g2 += "/..");
    return g2.length > 0 ? g2 + n3.slice(o2 + d2) : (o2 += d2, 47 === n3.charCodeAt(o2) && ++o2, n3.slice(o2));
  }, _makeLong: function(t4) {
    return t4;
  }, dirname: function(t4) {
    if (e2(t4), 0 === t4.length)
      return ".";
    for (var n3 = t4.charCodeAt(0), a3 = 47 === n3, r2 = -1, i2 = true, l2 = t4.length - 1; l2 >= 1; --l2)
      if (47 === (n3 = t4.charCodeAt(l2))) {
        if (!i2) {
          r2 = l2;
          break;
        }
      } else
        i2 = false;
    return -1 === r2 ? a3 ? "/" : "." : a3 && 1 === r2 ? "//" : t4.slice(0, r2);
  }, basename: function(t4, n3) {
    if (void 0 !== n3 && "string" != typeof n3)
      throw new TypeError('"ext" argument must be a string');
    e2(t4);
    var a3, r2 = 0, i2 = -1, l2 = true;
    if (void 0 !== n3 && n3.length > 0 && n3.length <= t4.length) {
      if (n3.length === t4.length && n3 === t4)
        return "";
      var o2 = n3.length - 1, s2 = -1;
      for (a3 = t4.length - 1; a3 >= 0; --a3) {
        var u2 = t4.charCodeAt(a3);
        if (47 === u2) {
          if (!l2) {
            r2 = a3 + 1;
            break;
          }
        } else
          -1 === s2 && (l2 = false, s2 = a3 + 1), o2 >= 0 && (u2 === n3.charCodeAt(o2) ? -1 == --o2 && (i2 = a3) : (o2 = -1, i2 = s2));
      }
      return r2 === i2 ? i2 = s2 : -1 === i2 && (i2 = t4.length), t4.slice(r2, i2);
    }
    for (a3 = t4.length - 1; a3 >= 0; --a3)
      if (47 === t4.charCodeAt(a3)) {
        if (!l2) {
          r2 = a3 + 1;
          break;
        }
      } else
        -1 === i2 && (l2 = false, i2 = a3 + 1);
    return -1 === i2 ? "" : t4.slice(r2, i2);
  }, extname: function(t4) {
    e2(t4);
    for (var n3 = -1, a3 = 0, r2 = -1, i2 = true, l2 = 0, o2 = t4.length - 1; o2 >= 0; --o2) {
      var s2 = t4.charCodeAt(o2);
      if (47 !== s2)
        -1 === r2 && (i2 = false, r2 = o2 + 1), 46 === s2 ? -1 === n3 ? n3 = o2 : 1 !== l2 && (l2 = 1) : -1 !== n3 && (l2 = -1);
      else if (!i2) {
        a3 = o2 + 1;
        break;
      }
    }
    return -1 === n3 || -1 === r2 || 0 === l2 || 1 === l2 && n3 === r2 - 1 && n3 === a3 + 1 ? "" : t4.slice(n3, r2);
  }, format: function(t4) {
    if (null === t4 || "object" != typeof t4)
      throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t4);
    return function(t5, e3) {
      var n3 = e3.dir || e3.root, a3 = e3.base || (e3.name || "") + (e3.ext || "");
      return n3 ? n3 === e3.root ? n3 + a3 : n3 + "/" + a3 : a3;
    }(0, t4);
  }, parse: function(t4) {
    e2(t4);
    var n3 = { root: "", dir: "", base: "", ext: "", name: "" };
    if (0 === t4.length)
      return n3;
    var a3, r2 = t4.charCodeAt(0), i2 = 47 === r2;
    i2 ? (n3.root = "/", a3 = 1) : a3 = 0;
    for (var l2 = -1, o2 = 0, s2 = -1, u2 = true, d2 = t4.length - 1, c2 = 0; d2 >= a3; --d2)
      if (47 !== (r2 = t4.charCodeAt(d2)))
        -1 === s2 && (u2 = false, s2 = d2 + 1), 46 === r2 ? -1 === l2 ? l2 = d2 : 1 !== c2 && (c2 = 1) : -1 !== l2 && (c2 = -1);
      else if (!u2) {
        o2 = d2 + 1;
        break;
      }
    return -1 === l2 || -1 === s2 || 0 === c2 || 1 === c2 && l2 === s2 - 1 && l2 === o2 + 1 ? -1 !== s2 && (n3.base = n3.name = 0 === o2 && i2 ? t4.slice(1, s2) : t4.slice(o2, s2)) : (0 === o2 && i2 ? (n3.name = t4.slice(1, l2), n3.base = t4.slice(1, s2)) : (n3.name = t4.slice(o2, l2), n3.base = t4.slice(o2, s2)), n3.ext = t4.slice(l2, s2)), o2 > 0 ? n3.dir = t4.slice(0, o2 - 1) : i2 && (n3.dir = "/"), n3;
  }, sep: "/", delimiter: ":", win32: null, posix: null };
  a2.posix = a2, t3.exports = a2;
}, 3515: function(t3, e2, n2) {
  t3.exports = r2;
  var a2 = n2(9826).EventEmitter;
  function r2() {
    a2.call(this);
  }
  n2(7523)(r2, a2), r2.Readable = n2(2762), r2.Writable = n2(3726), r2.Duplex = n2(884), r2.Transform = n2(6756), r2.PassThrough = n2(1390), r2.finished = n2(2896), r2.pipeline = n2(8460), r2.Stream = r2, r2.prototype.pipe = function(t4, e3) {
    var n3 = this;
    function r3(e4) {
      t4.writable && false === t4.write(e4) && n3.pause && n3.pause();
    }
    function i2() {
      n3.readable && n3.resume && n3.resume();
    }
    n3.on("data", r3), t4.on("drain", i2), t4._isStdio || e3 && false === e3.end || (n3.on("end", o2), n3.on("close", s2));
    var l2 = false;
    function o2() {
      l2 || (l2 = true, t4.end());
    }
    function s2() {
      l2 || (l2 = true, "function" == typeof t4.destroy && t4.destroy());
    }
    function u2(t5) {
      if (d2(), 0 === a2.listenerCount(this, "error"))
        throw t5;
    }
    function d2() {
      n3.removeListener("data", r3), t4.removeListener("drain", i2), n3.removeListener("end", o2), n3.removeListener("close", s2), n3.removeListener("error", u2), t4.removeListener("error", u2), n3.removeListener("end", d2), n3.removeListener("close", d2), t4.removeListener("close", d2);
    }
    return n3.on("error", u2), t4.on("error", u2), n3.on("end", d2), n3.on("close", d2), t4.on("close", d2), t4.emit("pipe", n3), t4;
  };
}, 1602: function(t3) {
  var e2 = {};
  function n2(t4, n3, a3) {
    a3 || (a3 = Error);
    var r2 = function(t5) {
      var e3, a4;
      function r3(e4, a5, r4) {
        return t5.call(this, function(t6, e5, a6) {
          return "string" == typeof n3 ? n3 : n3(t6, e5, a6);
        }(e4, a5, r4)) || this;
      }
      return a4 = t5, (e3 = r3).prototype = Object.create(a4.prototype), e3.prototype.constructor = e3, e3.__proto__ = a4, r3;
    }(a3);
    r2.prototype.name = a3.name, r2.prototype.code = t4, e2[t4] = r2;
  }
  function a2(t4, e3) {
    if (Array.isArray(t4)) {
      var n3 = t4.length;
      return t4 = t4.map(function(t5) {
        return String(t5);
      }), n3 > 2 ? "one of ".concat(e3, " ").concat(t4.slice(0, n3 - 1).join(", "), ", or ") + t4[n3 - 1] : 2 === n3 ? "one of ".concat(e3, " ").concat(t4[0], " or ").concat(t4[1]) : "of ".concat(e3, " ").concat(t4[0]);
    }
    return "of ".concat(e3, " ").concat(String(t4));
  }
  n2("ERR_INVALID_OPT_VALUE", function(t4, e3) {
    return 'The value "' + e3 + '" is invalid for option "' + t4 + '"';
  }, TypeError), n2("ERR_INVALID_ARG_TYPE", function(t4, e3, n3) {
    var r2, i2, l2, o2, s2;
    if ("string" == typeof e3 && (i2 = "not ", e3.substr(0, 4) === i2) ? (r2 = "must not be", e3 = e3.replace(/^not /, "")) : r2 = "must be", function(t5, e4, n4) {
      return (void 0 === n4 || n4 > t5.length) && (n4 = t5.length), t5.substring(n4 - 9, n4) === e4;
    }(t4, " argument"))
      l2 = "The ".concat(t4, " ").concat(r2, " ").concat(a2(e3, "type"));
    else {
      var u2 = ("number" != typeof s2 && (s2 = 0), s2 + 1 > (o2 = t4).length || -1 === o2.indexOf(".", s2) ? "argument" : "property");
      l2 = 'The "'.concat(t4, '" ').concat(u2, " ").concat(r2, " ").concat(a2(e3, "type"));
    }
    return l2 + ". Received type ".concat(typeof n3);
  }, TypeError), n2("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"), n2("ERR_METHOD_NOT_IMPLEMENTED", function(t4) {
    return "The " + t4 + " method is not implemented";
  }), n2("ERR_STREAM_PREMATURE_CLOSE", "Premature close"), n2("ERR_STREAM_DESTROYED", function(t4) {
    return "Cannot call " + t4 + " after a stream was destroyed";
  }), n2("ERR_MULTIPLE_CALLBACK", "Callback called multiple times"), n2("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable"), n2("ERR_STREAM_WRITE_AFTER_END", "write after end"), n2("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError), n2("ERR_UNKNOWN_ENCODING", function(t4) {
    return "Unknown encoding: " + t4;
  }, TypeError), n2("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event"), t3.exports.codes = e2;
}, 884: function(t3, e2, n2) {
  var a2 = Object.keys || function(t4) {
    var e3 = [];
    for (var n3 in t4)
      e3.push(n3);
    return e3;
  };
  t3.exports = u2;
  var r2 = n2(2762), i2 = n2(3726);
  n2(7523)(u2, r2);
  for (var l2 = a2(i2.prototype), o2 = 0; o2 < l2.length; o2++) {
    var s2 = l2[o2];
    u2.prototype[s2] || (u2.prototype[s2] = i2.prototype[s2]);
  }
  function u2(t4) {
    if (!(this instanceof u2))
      return new u2(t4);
    r2.call(this, t4), i2.call(this, t4), this.allowHalfOpen = true, t4 && (false === t4.readable && (this.readable = false), false === t4.writable && (this.writable = false), false === t4.allowHalfOpen && (this.allowHalfOpen = false, this.once("end", d2)));
  }
  function d2() {
    this._writableState.ended || process.nextTick(c2, this);
  }
  function c2(t4) {
    t4.end();
  }
  Object.defineProperty(u2.prototype, "writableHighWaterMark", { enumerable: false, get: function() {
    return this._writableState.highWaterMark;
  } }), Object.defineProperty(u2.prototype, "writableBuffer", { enumerable: false, get: function() {
    return this._writableState && this._writableState.getBuffer();
  } }), Object.defineProperty(u2.prototype, "writableLength", { enumerable: false, get: function() {
    return this._writableState.length;
  } }), Object.defineProperty(u2.prototype, "destroyed", { enumerable: false, get: function() {
    return void 0 !== this._readableState && void 0 !== this._writableState && this._readableState.destroyed && this._writableState.destroyed;
  }, set: function(t4) {
    void 0 !== this._readableState && void 0 !== this._writableState && (this._readableState.destroyed = t4, this._writableState.destroyed = t4);
  } });
}, 1390: function(t3, e2, n2) {
  t3.exports = r2;
  var a2 = n2(6756);
  function r2(t4) {
    if (!(this instanceof r2))
      return new r2(t4);
    a2.call(this, t4);
  }
  n2(7523)(r2, a2), r2.prototype._transform = function(t4, e3, n3) {
    n3(null, t4);
  };
}, 2762: function(t3, e2, n2) {
  var a2;
  t3.exports = S2, S2.ReadableState = w2, n2(9826).EventEmitter;
  var r2, i2 = function(t4, e3) {
    return t4.listeners(e3).length;
  }, l2 = n2(2611), o2 = n2(44).Buffer, s2 = (void 0 !== n2.g ? n2.g : "undefined" != typeof window ? window : "undefined" != typeof self ? self : {}).Uint8Array || function() {
  }, u2 = n2(7199);
  r2 = u2 && u2.debuglog ? u2.debuglog("stream") : function() {
  };
  var d2, c2, f2, g2 = n2(3791), m2 = n2(2410), h2 = n2(1749).getHighWaterMark, p2 = n2(1602).codes, b2 = p2.ERR_INVALID_ARG_TYPE, y2 = p2.ERR_STREAM_PUSH_AFTER_EOF, E2 = p2.ERR_METHOD_NOT_IMPLEMENTED, _2 = p2.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;
  n2(7523)(S2, l2);
  var T2 = m2.errorOrDestroy, v2 = ["error", "close", "destroy", "pause", "resume"];
  function w2(t4, e3, r3) {
    a2 = a2 || n2(884), t4 = t4 || {}, "boolean" != typeof r3 && (r3 = e3 instanceof a2), this.objectMode = !!t4.objectMode, r3 && (this.objectMode = this.objectMode || !!t4.readableObjectMode), this.highWaterMark = h2(this, t4, "readableHighWaterMark", r3), this.buffer = new g2(), this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = false, this.endEmitted = false, this.reading = false, this.sync = true, this.needReadable = false, this.emittedReadable = false, this.readableListening = false, this.resumeScheduled = false, this.paused = true, this.emitClose = false !== t4.emitClose, this.autoDestroy = !!t4.autoDestroy, this.destroyed = false, this.defaultEncoding = t4.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = false, this.decoder = null, this.encoding = null, t4.encoding && (d2 || (d2 = n2(748).StringDecoder), this.decoder = new d2(t4.encoding), this.encoding = t4.encoding);
  }
  function S2(t4) {
    if (a2 = a2 || n2(884), !(this instanceof S2))
      return new S2(t4);
    var e3 = this instanceof a2;
    this._readableState = new w2(t4, this, e3), this.readable = true, t4 && ("function" == typeof t4.read && (this._read = t4.read), "function" == typeof t4.destroy && (this._destroy = t4.destroy)), l2.call(this);
  }
  function I(t4, e3, n3, a3, i3) {
    r2("readableAddChunk", e3);
    var l3, u3 = t4._readableState;
    if (null === e3)
      u3.reading = false, function(t5, e4) {
        if (r2("onEofChunk"), !e4.ended) {
          if (e4.decoder) {
            var n4 = e4.decoder.end();
            n4 && n4.length && (e4.buffer.push(n4), e4.length += e4.objectMode ? 1 : n4.length);
          }
          e4.ended = true, e4.sync ? N(t5) : (e4.needReadable = false, e4.emittedReadable || (e4.emittedReadable = true, C(t5)));
        }
      }(t4, u3);
    else if (i3 || (l3 = function(t5, e4) {
      var n4, a4;
      return a4 = e4, o2.isBuffer(a4) || a4 instanceof s2 || "string" == typeof e4 || void 0 === e4 || t5.objectMode || (n4 = new b2("chunk", ["string", "Buffer", "Uint8Array"], e4)), n4;
    }(u3, e3)), l3)
      T2(t4, l3);
    else if (u3.objectMode || e3 && e3.length > 0)
      if ("string" == typeof e3 || u3.objectMode || Object.getPrototypeOf(e3) === o2.prototype || (e3 = function(t5) {
        return o2.from(t5);
      }(e3)), a3)
        u3.endEmitted ? T2(t4, new _2()) : k(t4, u3, e3, true);
      else if (u3.ended)
        T2(t4, new y2());
      else {
        if (u3.destroyed)
          return false;
        u3.reading = false, u3.decoder && !n3 ? (e3 = u3.decoder.write(e3), u3.objectMode || 0 !== e3.length ? k(t4, u3, e3, false) : D(t4, u3)) : k(t4, u3, e3, false);
      }
    else
      a3 || (u3.reading = false, D(t4, u3));
    return !u3.ended && (u3.length < u3.highWaterMark || 0 === u3.length);
  }
  function k(t4, e3, n3, a3) {
    e3.flowing && 0 === e3.length && !e3.sync ? (e3.awaitDrain = 0, t4.emit("data", n3)) : (e3.length += e3.objectMode ? 1 : n3.length, a3 ? e3.buffer.unshift(n3) : e3.buffer.push(n3), e3.needReadable && N(t4)), D(t4, e3);
  }
  Object.defineProperty(S2.prototype, "destroyed", { enumerable: false, get: function() {
    return void 0 !== this._readableState && this._readableState.destroyed;
  }, set: function(t4) {
    this._readableState && (this._readableState.destroyed = t4);
  } }), S2.prototype.destroy = m2.destroy, S2.prototype._undestroy = m2.undestroy, S2.prototype._destroy = function(t4, e3) {
    e3(t4);
  }, S2.prototype.push = function(t4, e3) {
    var n3, a3 = this._readableState;
    return a3.objectMode ? n3 = true : "string" == typeof t4 && ((e3 = e3 || a3.defaultEncoding) !== a3.encoding && (t4 = o2.from(t4, e3), e3 = ""), n3 = true), I(this, t4, e3, false, n3);
  }, S2.prototype.unshift = function(t4) {
    return I(this, t4, null, true, false);
  }, S2.prototype.isPaused = function() {
    return false === this._readableState.flowing;
  }, S2.prototype.setEncoding = function(t4) {
    d2 || (d2 = n2(748).StringDecoder);
    var e3 = new d2(t4);
    this._readableState.decoder = e3, this._readableState.encoding = this._readableState.decoder.encoding;
    for (var a3 = this._readableState.buffer.head, r3 = ""; null !== a3; )
      r3 += e3.write(a3.data), a3 = a3.next;
    return this._readableState.buffer.clear(), "" !== r3 && this._readableState.buffer.push(r3), this._readableState.length = r3.length, this;
  };
  var A = 1073741824;
  function R(t4, e3) {
    return t4 <= 0 || 0 === e3.length && e3.ended ? 0 : e3.objectMode ? 1 : t4 != t4 ? e3.flowing && e3.length ? e3.buffer.head.data.length : e3.length : (t4 > e3.highWaterMark && (e3.highWaterMark = function(t5) {
      return t5 >= A ? t5 = A : (t5--, t5 |= t5 >>> 1, t5 |= t5 >>> 2, t5 |= t5 >>> 4, t5 |= t5 >>> 8, t5 |= t5 >>> 16, t5++), t5;
    }(t4)), t4 <= e3.length ? t4 : e3.ended ? e3.length : (e3.needReadable = true, 0));
  }
  function N(t4) {
    var e3 = t4._readableState;
    r2("emitReadable", e3.needReadable, e3.emittedReadable), e3.needReadable = false, e3.emittedReadable || (r2("emitReadable", e3.flowing), e3.emittedReadable = true, process.nextTick(C, t4));
  }
  function C(t4) {
    var e3 = t4._readableState;
    r2("emitReadable_", e3.destroyed, e3.length, e3.ended), e3.destroyed || !e3.length && !e3.ended || (t4.emit("readable"), e3.emittedReadable = false), e3.needReadable = !e3.flowing && !e3.ended && e3.length <= e3.highWaterMark, P(t4);
  }
  function D(t4, e3) {
    e3.readingMore || (e3.readingMore = true, process.nextTick(x, t4, e3));
  }
  function x(t4, e3) {
    for (; !e3.reading && !e3.ended && (e3.length < e3.highWaterMark || e3.flowing && 0 === e3.length); ) {
      var n3 = e3.length;
      if (r2("maybeReadMore read 0"), t4.read(0), n3 === e3.length)
        break;
    }
    e3.readingMore = false;
  }
  function M(t4) {
    var e3 = t4._readableState;
    e3.readableListening = t4.listenerCount("readable") > 0, e3.resumeScheduled && !e3.paused ? e3.flowing = true : t4.listenerCount("data") > 0 && t4.resume();
  }
  function z(t4) {
    r2("readable nexttick read 0"), t4.read(0);
  }
  function O(t4, e3) {
    r2("resume", e3.reading), e3.reading || t4.read(0), e3.resumeScheduled = false, t4.emit("resume"), P(t4), e3.flowing && !e3.reading && t4.read(0);
  }
  function P(t4) {
    var e3 = t4._readableState;
    for (r2("flow", e3.flowing); e3.flowing && null !== t4.read(); )
      ;
  }
  function L(t4, e3) {
    return 0 === e3.length ? null : (e3.objectMode ? n3 = e3.buffer.shift() : !t4 || t4 >= e3.length ? (n3 = e3.decoder ? e3.buffer.join("") : 1 === e3.buffer.length ? e3.buffer.first() : e3.buffer.concat(e3.length), e3.buffer.clear()) : n3 = e3.buffer.consume(t4, e3.decoder), n3);
    var n3;
  }
  function F(t4) {
    var e3 = t4._readableState;
    r2("endReadable", e3.endEmitted), e3.endEmitted || (e3.ended = true, process.nextTick(U, e3, t4));
  }
  function U(t4, e3) {
    if (r2("endReadableNT", t4.endEmitted, t4.length), !t4.endEmitted && 0 === t4.length && (t4.endEmitted = true, e3.readable = false, e3.emit("end"), t4.autoDestroy)) {
      var n3 = e3._writableState;
      (!n3 || n3.autoDestroy && n3.finished) && e3.destroy();
    }
  }
  function j(t4, e3) {
    for (var n3 = 0, a3 = t4.length; n3 < a3; n3++)
      if (t4[n3] === e3)
        return n3;
    return -1;
  }
  S2.prototype.read = function(t4) {
    r2("read", t4), t4 = parseInt(t4, 10);
    var e3 = this._readableState, n3 = t4;
    if (0 !== t4 && (e3.emittedReadable = false), 0 === t4 && e3.needReadable && ((0 !== e3.highWaterMark ? e3.length >= e3.highWaterMark : e3.length > 0) || e3.ended))
      return r2("read: emitReadable", e3.length, e3.ended), 0 === e3.length && e3.ended ? F(this) : N(this), null;
    if (0 === (t4 = R(t4, e3)) && e3.ended)
      return 0 === e3.length && F(this), null;
    var a3, i3 = e3.needReadable;
    return r2("need readable", i3), (0 === e3.length || e3.length - t4 < e3.highWaterMark) && r2("length less than watermark", i3 = true), e3.ended || e3.reading ? r2("reading or ended", i3 = false) : i3 && (r2("do read"), e3.reading = true, e3.sync = true, 0 === e3.length && (e3.needReadable = true), this._read(e3.highWaterMark), e3.sync = false, e3.reading || (t4 = R(n3, e3))), null === (a3 = t4 > 0 ? L(t4, e3) : null) ? (e3.needReadable = e3.length <= e3.highWaterMark, t4 = 0) : (e3.length -= t4, e3.awaitDrain = 0), 0 === e3.length && (e3.ended || (e3.needReadable = true), n3 !== t4 && e3.ended && F(this)), null !== a3 && this.emit("data", a3), a3;
  }, S2.prototype._read = function(t4) {
    T2(this, new E2("_read()"));
  }, S2.prototype.pipe = function(t4, e3) {
    var n3 = this, a3 = this._readableState;
    switch (a3.pipesCount) {
      case 0:
        a3.pipes = t4;
        break;
      case 1:
        a3.pipes = [a3.pipes, t4];
        break;
      default:
        a3.pipes.push(t4);
    }
    a3.pipesCount += 1, r2("pipe count=%d opts=%j", a3.pipesCount, e3);
    var l3 = e3 && false === e3.end || t4 === process.stdout || t4 === process.stderr ? m3 : o3;
    function o3() {
      r2("onend"), t4.end();
    }
    a3.endEmitted ? process.nextTick(l3) : n3.once("end", l3), t4.on("unpipe", function e4(i3, l4) {
      r2("onunpipe"), i3 === n3 && l4 && false === l4.hasUnpiped && (l4.hasUnpiped = true, r2("cleanup"), t4.removeListener("close", f3), t4.removeListener("finish", g3), t4.removeListener("drain", s3), t4.removeListener("error", c3), t4.removeListener("unpipe", e4), n3.removeListener("end", o3), n3.removeListener("end", m3), n3.removeListener("data", d3), u3 = true, !a3.awaitDrain || t4._writableState && !t4._writableState.needDrain || s3());
    });
    var s3 = /* @__PURE__ */ function(t5) {
      return function() {
        var e4 = t5._readableState;
        r2("pipeOnDrain", e4.awaitDrain), e4.awaitDrain && e4.awaitDrain--, 0 === e4.awaitDrain && i2(t5, "data") && (e4.flowing = true, P(t5));
      };
    }(n3);
    t4.on("drain", s3);
    var u3 = false;
    function d3(e4) {
      r2("ondata");
      var i3 = t4.write(e4);
      r2("dest.write", i3), false === i3 && ((1 === a3.pipesCount && a3.pipes === t4 || a3.pipesCount > 1 && -1 !== j(a3.pipes, t4)) && !u3 && (r2("false write response, pause", a3.awaitDrain), a3.awaitDrain++), n3.pause());
    }
    function c3(e4) {
      r2("onerror", e4), m3(), t4.removeListener("error", c3), 0 === i2(t4, "error") && T2(t4, e4);
    }
    function f3() {
      t4.removeListener("finish", g3), m3();
    }
    function g3() {
      r2("onfinish"), t4.removeListener("close", f3), m3();
    }
    function m3() {
      r2("unpipe"), n3.unpipe(t4);
    }
    return n3.on("data", d3), function(t5, e4, n4) {
      if ("function" == typeof t5.prependListener)
        return t5.prependListener(e4, n4);
      t5._events && t5._events[e4] ? Array.isArray(t5._events[e4]) ? t5._events[e4].unshift(n4) : t5._events[e4] = [n4, t5._events[e4]] : t5.on(e4, n4);
    }(t4, "error", c3), t4.once("close", f3), t4.once("finish", g3), t4.emit("pipe", n3), a3.flowing || (r2("pipe resume"), n3.resume()), t4;
  }, S2.prototype.unpipe = function(t4) {
    var e3 = this._readableState, n3 = { hasUnpiped: false };
    if (0 === e3.pipesCount)
      return this;
    if (1 === e3.pipesCount)
      return t4 && t4 !== e3.pipes || (t4 || (t4 = e3.pipes), e3.pipes = null, e3.pipesCount = 0, e3.flowing = false, t4 && t4.emit("unpipe", this, n3)), this;
    if (!t4) {
      var a3 = e3.pipes, r3 = e3.pipesCount;
      e3.pipes = null, e3.pipesCount = 0, e3.flowing = false;
      for (var i3 = 0; i3 < r3; i3++)
        a3[i3].emit("unpipe", this, { hasUnpiped: false });
      return this;
    }
    var l3 = j(e3.pipes, t4);
    return -1 === l3 || (e3.pipes.splice(l3, 1), e3.pipesCount -= 1, 1 === e3.pipesCount && (e3.pipes = e3.pipes[0]), t4.emit("unpipe", this, n3)), this;
  }, S2.prototype.on = function(t4, e3) {
    var n3 = l2.prototype.on.call(this, t4, e3), a3 = this._readableState;
    return "data" === t4 ? (a3.readableListening = this.listenerCount("readable") > 0, false !== a3.flowing && this.resume()) : "readable" === t4 && (a3.endEmitted || a3.readableListening || (a3.readableListening = a3.needReadable = true, a3.flowing = false, a3.emittedReadable = false, r2("on readable", a3.length, a3.reading), a3.length ? N(this) : a3.reading || process.nextTick(z, this))), n3;
  }, S2.prototype.addListener = S2.prototype.on, S2.prototype.removeListener = function(t4, e3) {
    var n3 = l2.prototype.removeListener.call(this, t4, e3);
    return "readable" === t4 && process.nextTick(M, this), n3;
  }, S2.prototype.removeAllListeners = function(t4) {
    var e3 = l2.prototype.removeAllListeners.apply(this, arguments);
    return "readable" !== t4 && void 0 !== t4 || process.nextTick(M, this), e3;
  }, S2.prototype.resume = function() {
    var t4 = this._readableState;
    return t4.flowing || (r2("resume"), t4.flowing = !t4.readableListening, function(t5, e3) {
      e3.resumeScheduled || (e3.resumeScheduled = true, process.nextTick(O, t5, e3));
    }(this, t4)), t4.paused = false, this;
  }, S2.prototype.pause = function() {
    return r2("call pause flowing=%j", this._readableState.flowing), false !== this._readableState.flowing && (r2("pause"), this._readableState.flowing = false, this.emit("pause")), this._readableState.paused = true, this;
  }, S2.prototype.wrap = function(t4) {
    var e3 = this, n3 = this._readableState, a3 = false;
    for (var i3 in t4.on("end", function() {
      if (r2("wrapped end"), n3.decoder && !n3.ended) {
        var t5 = n3.decoder.end();
        t5 && t5.length && e3.push(t5);
      }
      e3.push(null);
    }), t4.on("data", function(i4) {
      r2("wrapped data"), n3.decoder && (i4 = n3.decoder.write(i4)), n3.objectMode && null == i4 || (n3.objectMode || i4 && i4.length) && (e3.push(i4) || (a3 = true, t4.pause()));
    }), t4)
      void 0 === this[i3] && "function" == typeof t4[i3] && (this[i3] = /* @__PURE__ */ function(e4) {
        return function() {
          return t4[e4].apply(t4, arguments);
        };
      }(i3));
    for (var l3 = 0; l3 < v2.length; l3++)
      t4.on(v2[l3], this.emit.bind(this, v2[l3]));
    return this._read = function(e4) {
      r2("wrapped _read", e4), a3 && (a3 = false, t4.resume());
    }, this;
  }, "function" == typeof Symbol && (S2.prototype[Symbol.asyncIterator] = function() {
    return void 0 === c2 && (c2 = n2(5857)), c2(this);
  }), Object.defineProperty(S2.prototype, "readableHighWaterMark", { enumerable: false, get: function() {
    return this._readableState.highWaterMark;
  } }), Object.defineProperty(S2.prototype, "readableBuffer", { enumerable: false, get: function() {
    return this._readableState && this._readableState.buffer;
  } }), Object.defineProperty(S2.prototype, "readableFlowing", { enumerable: false, get: function() {
    return this._readableState.flowing;
  }, set: function(t4) {
    this._readableState && (this._readableState.flowing = t4);
  } }), S2._fromList = L, Object.defineProperty(S2.prototype, "readableLength", { enumerable: false, get: function() {
    return this._readableState.length;
  } }), "function" == typeof Symbol && (S2.from = function(t4, e3) {
    return void 0 === f2 && (f2 = n2(3411)), f2(S2, t4, e3);
  });
}, 6756: function(t3, e2, n2) {
  t3.exports = d2;
  var a2 = n2(1602).codes, r2 = a2.ERR_METHOD_NOT_IMPLEMENTED, i2 = a2.ERR_MULTIPLE_CALLBACK, l2 = a2.ERR_TRANSFORM_ALREADY_TRANSFORMING, o2 = a2.ERR_TRANSFORM_WITH_LENGTH_0, s2 = n2(884);
  function u2(t4, e3) {
    var n3 = this._transformState;
    n3.transforming = false;
    var a3 = n3.writecb;
    if (null === a3)
      return this.emit("error", new i2());
    n3.writechunk = null, n3.writecb = null, null != e3 && this.push(e3), a3(t4);
    var r3 = this._readableState;
    r3.reading = false, (r3.needReadable || r3.length < r3.highWaterMark) && this._read(r3.highWaterMark);
  }
  function d2(t4) {
    if (!(this instanceof d2))
      return new d2(t4);
    s2.call(this, t4), this._transformState = { afterTransform: u2.bind(this), needTransform: false, transforming: false, writecb: null, writechunk: null, writeencoding: null }, this._readableState.needReadable = true, this._readableState.sync = false, t4 && ("function" == typeof t4.transform && (this._transform = t4.transform), "function" == typeof t4.flush && (this._flush = t4.flush)), this.on("prefinish", c2);
  }
  function c2() {
    var t4 = this;
    "function" != typeof this._flush || this._readableState.destroyed ? f2(this, null, null) : this._flush(function(e3, n3) {
      f2(t4, e3, n3);
    });
  }
  function f2(t4, e3, n3) {
    if (e3)
      return t4.emit("error", e3);
    if (null != n3 && t4.push(n3), t4._writableState.length)
      throw new o2();
    if (t4._transformState.transforming)
      throw new l2();
    return t4.push(null);
  }
  n2(7523)(d2, s2), d2.prototype.push = function(t4, e3) {
    return this._transformState.needTransform = false, s2.prototype.push.call(this, t4, e3);
  }, d2.prototype._transform = function(t4, e3, n3) {
    n3(new r2("_transform()"));
  }, d2.prototype._write = function(t4, e3, n3) {
    var a3 = this._transformState;
    if (a3.writecb = n3, a3.writechunk = t4, a3.writeencoding = e3, !a3.transforming) {
      var r3 = this._readableState;
      (a3.needTransform || r3.needReadable || r3.length < r3.highWaterMark) && this._read(r3.highWaterMark);
    }
  }, d2.prototype._read = function(t4) {
    var e3 = this._transformState;
    null === e3.writechunk || e3.transforming ? e3.needTransform = true : (e3.transforming = true, this._transform(e3.writechunk, e3.writeencoding, e3.afterTransform));
  }, d2.prototype._destroy = function(t4, e3) {
    s2.prototype._destroy.call(this, t4, function(t5) {
      e3(t5);
    });
  };
}, 3726: function(t3, e2, n2) {
  function a2(t4) {
    var e3 = this;
    this.next = null, this.entry = null, this.finish = function() {
      !function(t5, e4) {
        var n3 = t5.entry;
        for (t5.entry = null; n3; ) {
          var a3 = n3.callback;
          e4.pendingcb--, a3(void 0), n3 = n3.next;
        }
        e4.corkedRequestsFree.next = t5;
      }(e3, t4);
    };
  }
  var r2;
  t3.exports = S2, S2.WritableState = w2;
  var i2, l2 = { deprecate: n2(9e3) }, o2 = n2(2611), s2 = n2(44).Buffer, u2 = (void 0 !== n2.g ? n2.g : "undefined" != typeof window ? window : "undefined" != typeof self ? self : {}).Uint8Array || function() {
  }, d2 = n2(2410), c2 = n2(1749).getHighWaterMark, f2 = n2(1602).codes, g2 = f2.ERR_INVALID_ARG_TYPE, m2 = f2.ERR_METHOD_NOT_IMPLEMENTED, h2 = f2.ERR_MULTIPLE_CALLBACK, p2 = f2.ERR_STREAM_CANNOT_PIPE, b2 = f2.ERR_STREAM_DESTROYED, y2 = f2.ERR_STREAM_NULL_VALUES, E2 = f2.ERR_STREAM_WRITE_AFTER_END, _2 = f2.ERR_UNKNOWN_ENCODING, T2 = d2.errorOrDestroy;
  function v2() {
  }
  function w2(t4, e3, i3) {
    r2 = r2 || n2(884), t4 = t4 || {}, "boolean" != typeof i3 && (i3 = e3 instanceof r2), this.objectMode = !!t4.objectMode, i3 && (this.objectMode = this.objectMode || !!t4.writableObjectMode), this.highWaterMark = c2(this, t4, "writableHighWaterMark", i3), this.finalCalled = false, this.needDrain = false, this.ending = false, this.ended = false, this.finished = false, this.destroyed = false;
    var l3 = false === t4.decodeStrings;
    this.decodeStrings = !l3, this.defaultEncoding = t4.defaultEncoding || "utf8", this.length = 0, this.writing = false, this.corked = 0, this.sync = true, this.bufferProcessing = false, this.onwrite = function(t5) {
      !function(t6, e4) {
        var n3 = t6._writableState, a3 = n3.sync, r3 = n3.writecb;
        if ("function" != typeof r3)
          throw new h2();
        if (function(t7) {
          t7.writing = false, t7.writecb = null, t7.length -= t7.writelen, t7.writelen = 0;
        }(n3), e4)
          !function(t7, e5, n4, a4, r4) {
            --e5.pendingcb, n4 ? (process.nextTick(r4, a4), process.nextTick(C, t7, e5), t7._writableState.errorEmitted = true, T2(t7, a4)) : (r4(a4), t7._writableState.errorEmitted = true, T2(t7, a4), C(t7, e5));
          }(t6, n3, a3, e4, r3);
        else {
          var i4 = R(n3) || t6.destroyed;
          i4 || n3.corked || n3.bufferProcessing || !n3.bufferedRequest || A(t6, n3), a3 ? process.nextTick(k, t6, n3, i4, r3) : k(t6, n3, i4, r3);
        }
      }(e3, t5);
    }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = false, this.errorEmitted = false, this.emitClose = false !== t4.emitClose, this.autoDestroy = !!t4.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new a2(this);
  }
  function S2(t4) {
    var e3 = this instanceof (r2 = r2 || n2(884));
    if (!e3 && !i2.call(S2, this))
      return new S2(t4);
    this._writableState = new w2(t4, this, e3), this.writable = true, t4 && ("function" == typeof t4.write && (this._write = t4.write), "function" == typeof t4.writev && (this._writev = t4.writev), "function" == typeof t4.destroy && (this._destroy = t4.destroy), "function" == typeof t4.final && (this._final = t4.final)), o2.call(this);
  }
  function I(t4, e3, n3, a3, r3, i3, l3) {
    e3.writelen = a3, e3.writecb = l3, e3.writing = true, e3.sync = true, e3.destroyed ? e3.onwrite(new b2("write")) : n3 ? t4._writev(r3, e3.onwrite) : t4._write(r3, i3, e3.onwrite), e3.sync = false;
  }
  function k(t4, e3, n3, a3) {
    n3 || function(t5, e4) {
      0 === e4.length && e4.needDrain && (e4.needDrain = false, t5.emit("drain"));
    }(t4, e3), e3.pendingcb--, a3(), C(t4, e3);
  }
  function A(t4, e3) {
    e3.bufferProcessing = true;
    var n3 = e3.bufferedRequest;
    if (t4._writev && n3 && n3.next) {
      var r3 = e3.bufferedRequestCount, i3 = new Array(r3), l3 = e3.corkedRequestsFree;
      l3.entry = n3;
      for (var o3 = 0, s3 = true; n3; )
        i3[o3] = n3, n3.isBuf || (s3 = false), n3 = n3.next, o3 += 1;
      i3.allBuffers = s3, I(t4, e3, true, e3.length, i3, "", l3.finish), e3.pendingcb++, e3.lastBufferedRequest = null, l3.next ? (e3.corkedRequestsFree = l3.next, l3.next = null) : e3.corkedRequestsFree = new a2(e3), e3.bufferedRequestCount = 0;
    } else {
      for (; n3; ) {
        var u3 = n3.chunk, d3 = n3.encoding, c3 = n3.callback;
        if (I(t4, e3, false, e3.objectMode ? 1 : u3.length, u3, d3, c3), n3 = n3.next, e3.bufferedRequestCount--, e3.writing)
          break;
      }
      null === n3 && (e3.lastBufferedRequest = null);
    }
    e3.bufferedRequest = n3, e3.bufferProcessing = false;
  }
  function R(t4) {
    return t4.ending && 0 === t4.length && null === t4.bufferedRequest && !t4.finished && !t4.writing;
  }
  function N(t4, e3) {
    t4._final(function(n3) {
      e3.pendingcb--, n3 && T2(t4, n3), e3.prefinished = true, t4.emit("prefinish"), C(t4, e3);
    });
  }
  function C(t4, e3) {
    var n3 = R(e3);
    if (n3 && (function(t5, e4) {
      e4.prefinished || e4.finalCalled || ("function" != typeof t5._final || e4.destroyed ? (e4.prefinished = true, t5.emit("prefinish")) : (e4.pendingcb++, e4.finalCalled = true, process.nextTick(N, t5, e4)));
    }(t4, e3), 0 === e3.pendingcb && (e3.finished = true, t4.emit("finish"), e3.autoDestroy))) {
      var a3 = t4._readableState;
      (!a3 || a3.autoDestroy && a3.endEmitted) && t4.destroy();
    }
    return n3;
  }
  n2(7523)(S2, o2), w2.prototype.getBuffer = function() {
    for (var t4 = this.bufferedRequest, e3 = []; t4; )
      e3.push(t4), t4 = t4.next;
    return e3;
  }, function() {
    try {
      Object.defineProperty(w2.prototype, "buffer", { get: l2.deprecate(function() {
        return this.getBuffer();
      }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003") });
    } catch (t4) {
    }
  }(), "function" == typeof Symbol && Symbol.hasInstance && "function" == typeof Function.prototype[Symbol.hasInstance] ? (i2 = Function.prototype[Symbol.hasInstance], Object.defineProperty(S2, Symbol.hasInstance, { value: function(t4) {
    return !!i2.call(this, t4) || this === S2 && t4 && t4._writableState instanceof w2;
  } })) : i2 = function(t4) {
    return t4 instanceof this;
  }, S2.prototype.pipe = function() {
    T2(this, new p2());
  }, S2.prototype.write = function(t4, e3, n3) {
    var a3, r3 = this._writableState, i3 = false, l3 = !r3.objectMode && (a3 = t4, s2.isBuffer(a3) || a3 instanceof u2);
    return l3 && !s2.isBuffer(t4) && (t4 = function(t5) {
      return s2.from(t5);
    }(t4)), "function" == typeof e3 && (n3 = e3, e3 = null), l3 ? e3 = "buffer" : e3 || (e3 = r3.defaultEncoding), "function" != typeof n3 && (n3 = v2), r3.ending ? function(t5, e4) {
      var n4 = new E2();
      T2(t5, n4), process.nextTick(e4, n4);
    }(this, n3) : (l3 || function(t5, e4, n4, a4) {
      var r4;
      return null === n4 ? r4 = new y2() : "string" == typeof n4 || e4.objectMode || (r4 = new g2("chunk", ["string", "Buffer"], n4)), !r4 || (T2(t5, r4), process.nextTick(a4, r4), false);
    }(this, r3, t4, n3)) && (r3.pendingcb++, i3 = function(t5, e4, n4, a4, r4, i4) {
      if (!n4) {
        var l4 = function(t6, e5, n5) {
          return t6.objectMode || false === t6.decodeStrings || "string" != typeof e5 || (e5 = s2.from(e5, n5)), e5;
        }(e4, a4, r4);
        a4 !== l4 && (n4 = true, r4 = "buffer", a4 = l4);
      }
      var o3 = e4.objectMode ? 1 : a4.length;
      e4.length += o3;
      var u3 = e4.length < e4.highWaterMark;
      if (u3 || (e4.needDrain = true), e4.writing || e4.corked) {
        var d3 = e4.lastBufferedRequest;
        e4.lastBufferedRequest = { chunk: a4, encoding: r4, isBuf: n4, callback: i4, next: null }, d3 ? d3.next = e4.lastBufferedRequest : e4.bufferedRequest = e4.lastBufferedRequest, e4.bufferedRequestCount += 1;
      } else
        I(t5, e4, false, o3, a4, r4, i4);
      return u3;
    }(this, r3, l3, t4, e3, n3)), i3;
  }, S2.prototype.cork = function() {
    this._writableState.corked++;
  }, S2.prototype.uncork = function() {
    var t4 = this._writableState;
    t4.corked && (t4.corked--, t4.writing || t4.corked || t4.bufferProcessing || !t4.bufferedRequest || A(this, t4));
  }, S2.prototype.setDefaultEncoding = function(t4) {
    if ("string" == typeof t4 && (t4 = t4.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((t4 + "").toLowerCase()) > -1))
      throw new _2(t4);
    return this._writableState.defaultEncoding = t4, this;
  }, Object.defineProperty(S2.prototype, "writableBuffer", { enumerable: false, get: function() {
    return this._writableState && this._writableState.getBuffer();
  } }), Object.defineProperty(S2.prototype, "writableHighWaterMark", { enumerable: false, get: function() {
    return this._writableState.highWaterMark;
  } }), S2.prototype._write = function(t4, e3, n3) {
    n3(new m2("_write()"));
  }, S2.prototype._writev = null, S2.prototype.end = function(t4, e3, n3) {
    var a3 = this._writableState;
    return "function" == typeof t4 ? (n3 = t4, t4 = null, e3 = null) : "function" == typeof e3 && (n3 = e3, e3 = null), null != t4 && this.write(t4, e3), a3.corked && (a3.corked = 1, this.uncork()), a3.ending || function(t5, e4, n4) {
      e4.ending = true, C(t5, e4), n4 && (e4.finished ? process.nextTick(n4) : t5.once("finish", n4)), e4.ended = true, t5.writable = false;
    }(this, a3, n3), this;
  }, Object.defineProperty(S2.prototype, "writableLength", { enumerable: false, get: function() {
    return this._writableState.length;
  } }), Object.defineProperty(S2.prototype, "destroyed", { enumerable: false, get: function() {
    return void 0 !== this._writableState && this._writableState.destroyed;
  }, set: function(t4) {
    this._writableState && (this._writableState.destroyed = t4);
  } }), S2.prototype.destroy = d2.destroy, S2.prototype._undestroy = d2.undestroy, S2.prototype._destroy = function(t4, e3) {
    e3(t4);
  };
}, 5857: function(t3, e2, n2) {
  var a2;
  function r2(t4, e3, n3) {
    return (e3 = function(t5) {
      var e4 = function(t6) {
        if ("object" != typeof t6 || null === t6)
          return t6;
        var e5 = t6[Symbol.toPrimitive];
        if (void 0 !== e5) {
          var n4 = e5.call(t6, "string");
          if ("object" != typeof n4)
            return n4;
          throw new TypeError("@@toPrimitive must return a primitive value.");
        }
        return String(t6);
      }(t5);
      return "symbol" == typeof e4 ? e4 : String(e4);
    }(e3)) in t4 ? Object.defineProperty(t4, e3, { value: n3, enumerable: true, configurable: true, writable: true }) : t4[e3] = n3, t4;
  }
  var i2 = n2(2896), l2 = Symbol("lastResolve"), o2 = Symbol("lastReject"), s2 = Symbol("error"), u2 = Symbol("ended"), d2 = Symbol("lastPromise"), c2 = Symbol("handlePromise"), f2 = Symbol("stream");
  function g2(t4, e3) {
    return { value: t4, done: e3 };
  }
  function m2(t4) {
    var e3 = t4[l2];
    if (null !== e3) {
      var n3 = t4[f2].read();
      null !== n3 && (t4[d2] = null, t4[l2] = null, t4[o2] = null, e3(g2(n3, false)));
    }
  }
  function h2(t4) {
    process.nextTick(m2, t4);
  }
  var p2 = Object.getPrototypeOf(function() {
  }), b2 = Object.setPrototypeOf((r2(a2 = { get stream() {
    return this[f2];
  }, next: function() {
    var t4 = this, e3 = this[s2];
    if (null !== e3)
      return Promise.reject(e3);
    if (this[u2])
      return Promise.resolve(g2(void 0, true));
    if (this[f2].destroyed)
      return new Promise(function(e4, n4) {
        process.nextTick(function() {
          t4[s2] ? n4(t4[s2]) : e4(g2(void 0, true));
        });
      });
    var n3, a3 = this[d2];
    if (a3)
      n3 = new Promise(/* @__PURE__ */ function(t5, e4) {
        return function(n4, a4) {
          t5.then(function() {
            e4[u2] ? n4(g2(void 0, true)) : e4[c2](n4, a4);
          }, a4);
        };
      }(a3, this));
    else {
      var r3 = this[f2].read();
      if (null !== r3)
        return Promise.resolve(g2(r3, false));
      n3 = new Promise(this[c2]);
    }
    return this[d2] = n3, n3;
  } }, Symbol.asyncIterator, function() {
    return this;
  }), r2(a2, "return", function() {
    var t4 = this;
    return new Promise(function(e3, n3) {
      t4[f2].destroy(null, function(t5) {
        t5 ? n3(t5) : e3(g2(void 0, true));
      });
    });
  }), a2), p2);
  t3.exports = function(t4) {
    var e3, n3 = Object.create(b2, (r2(e3 = {}, f2, { value: t4, writable: true }), r2(e3, l2, { value: null, writable: true }), r2(e3, o2, { value: null, writable: true }), r2(e3, s2, { value: null, writable: true }), r2(e3, u2, { value: t4._readableState.endEmitted, writable: true }), r2(e3, c2, { value: function(t5, e4) {
      var a3 = n3[f2].read();
      a3 ? (n3[d2] = null, n3[l2] = null, n3[o2] = null, t5(g2(a3, false))) : (n3[l2] = t5, n3[o2] = e4);
    }, writable: true }), e3));
    return n3[d2] = null, i2(t4, function(t5) {
      if (t5 && "ERR_STREAM_PREMATURE_CLOSE" !== t5.code) {
        var e4 = n3[o2];
        return null !== e4 && (n3[d2] = null, n3[l2] = null, n3[o2] = null, e4(t5)), void (n3[s2] = t5);
      }
      var a3 = n3[l2];
      null !== a3 && (n3[d2] = null, n3[l2] = null, n3[o2] = null, a3(g2(void 0, true))), n3[u2] = true;
    }), t4.on("readable", h2.bind(null, n3)), n3;
  };
}, 3791: function(t3, e2, n2) {
  function a2(t4, e3) {
    var n3 = Object.keys(t4);
    if (Object.getOwnPropertySymbols) {
      var a3 = Object.getOwnPropertySymbols(t4);
      e3 && (a3 = a3.filter(function(e4) {
        return Object.getOwnPropertyDescriptor(t4, e4).enumerable;
      })), n3.push.apply(n3, a3);
    }
    return n3;
  }
  function r2(t4) {
    for (var e3 = 1; e3 < arguments.length; e3++) {
      var n3 = null != arguments[e3] ? arguments[e3] : {};
      e3 % 2 ? a2(Object(n3), true).forEach(function(e4) {
        i2(t4, e4, n3[e4]);
      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t4, Object.getOwnPropertyDescriptors(n3)) : a2(Object(n3)).forEach(function(e4) {
        Object.defineProperty(t4, e4, Object.getOwnPropertyDescriptor(n3, e4));
      });
    }
    return t4;
  }
  function i2(t4, e3, n3) {
    return (e3 = o2(e3)) in t4 ? Object.defineProperty(t4, e3, { value: n3, enumerable: true, configurable: true, writable: true }) : t4[e3] = n3, t4;
  }
  function l2(t4, e3) {
    for (var n3 = 0; n3 < e3.length; n3++) {
      var a3 = e3[n3];
      a3.enumerable = a3.enumerable || false, a3.configurable = true, "value" in a3 && (a3.writable = true), Object.defineProperty(t4, o2(a3.key), a3);
    }
  }
  function o2(t4) {
    var e3 = function(t5) {
      if ("object" != typeof t5 || null === t5)
        return t5;
      var e4 = t5[Symbol.toPrimitive];
      if (void 0 !== e4) {
        var n3 = e4.call(t5, "string");
        if ("object" != typeof n3)
          return n3;
        throw new TypeError("@@toPrimitive must return a primitive value.");
      }
      return String(t5);
    }(t4);
    return "symbol" == typeof e3 ? e3 : String(e3);
  }
  var s2 = n2(44).Buffer, u2 = n2(3779).inspect, d2 = u2 && u2.custom || "inspect";
  t3.exports = function() {
    function t4() {
      !function(t5, e4) {
        if (!(t5 instanceof e4))
          throw new TypeError("Cannot call a class as a function");
      }(this, t4), this.head = null, this.tail = null, this.length = 0;
    }
    var e3, n3;
    return e3 = t4, (n3 = [{ key: "push", value: function(t5) {
      var e4 = { data: t5, next: null };
      this.length > 0 ? this.tail.next = e4 : this.head = e4, this.tail = e4, ++this.length;
    } }, { key: "unshift", value: function(t5) {
      var e4 = { data: t5, next: this.head };
      0 === this.length && (this.tail = e4), this.head = e4, ++this.length;
    } }, { key: "shift", value: function() {
      if (0 !== this.length) {
        var t5 = this.head.data;
        return 1 === this.length ? this.head = this.tail = null : this.head = this.head.next, --this.length, t5;
      }
    } }, { key: "clear", value: function() {
      this.head = this.tail = null, this.length = 0;
    } }, { key: "join", value: function(t5) {
      if (0 === this.length)
        return "";
      for (var e4 = this.head, n4 = "" + e4.data; e4 = e4.next; )
        n4 += t5 + e4.data;
      return n4;
    } }, { key: "concat", value: function(t5) {
      if (0 === this.length)
        return s2.alloc(0);
      for (var e4, n4, a3, r3 = s2.allocUnsafe(t5 >>> 0), i3 = this.head, l3 = 0; i3; )
        e4 = i3.data, n4 = r3, a3 = l3, s2.prototype.copy.call(e4, n4, a3), l3 += i3.data.length, i3 = i3.next;
      return r3;
    } }, { key: "consume", value: function(t5, e4) {
      var n4;
      return t5 < this.head.data.length ? (n4 = this.head.data.slice(0, t5), this.head.data = this.head.data.slice(t5)) : n4 = t5 === this.head.data.length ? this.shift() : e4 ? this._getString(t5) : this._getBuffer(t5), n4;
    } }, { key: "first", value: function() {
      return this.head.data;
    } }, { key: "_getString", value: function(t5) {
      var e4 = this.head, n4 = 1, a3 = e4.data;
      for (t5 -= a3.length; e4 = e4.next; ) {
        var r3 = e4.data, i3 = t5 > r3.length ? r3.length : t5;
        if (i3 === r3.length ? a3 += r3 : a3 += r3.slice(0, t5), 0 == (t5 -= i3)) {
          i3 === r3.length ? (++n4, e4.next ? this.head = e4.next : this.head = this.tail = null) : (this.head = e4, e4.data = r3.slice(i3));
          break;
        }
        ++n4;
      }
      return this.length -= n4, a3;
    } }, { key: "_getBuffer", value: function(t5) {
      var e4 = s2.allocUnsafe(t5), n4 = this.head, a3 = 1;
      for (n4.data.copy(e4), t5 -= n4.data.length; n4 = n4.next; ) {
        var r3 = n4.data, i3 = t5 > r3.length ? r3.length : t5;
        if (r3.copy(e4, e4.length - t5, 0, i3), 0 == (t5 -= i3)) {
          i3 === r3.length ? (++a3, n4.next ? this.head = n4.next : this.head = this.tail = null) : (this.head = n4, n4.data = r3.slice(i3));
          break;
        }
        ++a3;
      }
      return this.length -= a3, e4;
    } }, { key: d2, value: function(t5, e4) {
      return u2(this, r2(r2({}, e4), {}, { depth: 0, customInspect: false }));
    } }]) && l2(e3.prototype, n3), Object.defineProperty(e3, "prototype", { writable: false }), t4;
  }();
}, 2410: function(t3) {
  function e2(t4, e3) {
    a2(t4, e3), n2(t4);
  }
  function n2(t4) {
    t4._writableState && !t4._writableState.emitClose || t4._readableState && !t4._readableState.emitClose || t4.emit("close");
  }
  function a2(t4, e3) {
    t4.emit("error", e3);
  }
  t3.exports = { destroy: function(t4, r2) {
    var i2 = this, l2 = this._readableState && this._readableState.destroyed, o2 = this._writableState && this._writableState.destroyed;
    return l2 || o2 ? (r2 ? r2(t4) : t4 && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = true, process.nextTick(a2, this, t4)) : process.nextTick(a2, this, t4)), this) : (this._readableState && (this._readableState.destroyed = true), this._writableState && (this._writableState.destroyed = true), this._destroy(t4 || null, function(t5) {
      !r2 && t5 ? i2._writableState ? i2._writableState.errorEmitted ? process.nextTick(n2, i2) : (i2._writableState.errorEmitted = true, process.nextTick(e2, i2, t5)) : process.nextTick(e2, i2, t5) : r2 ? (process.nextTick(n2, i2), r2(t5)) : process.nextTick(n2, i2);
    }), this);
  }, undestroy: function() {
    this._readableState && (this._readableState.destroyed = false, this._readableState.reading = false, this._readableState.ended = false, this._readableState.endEmitted = false), this._writableState && (this._writableState.destroyed = false, this._writableState.ended = false, this._writableState.ending = false, this._writableState.finalCalled = false, this._writableState.prefinished = false, this._writableState.finished = false, this._writableState.errorEmitted = false);
  }, errorOrDestroy: function(t4, e3) {
    var n3 = t4._readableState, a3 = t4._writableState;
    n3 && n3.autoDestroy || a3 && a3.autoDestroy ? t4.destroy(e3) : t4.emit("error", e3);
  } };
}, 2896: function(t3, e2, n2) {
  var a2 = n2(1602).codes.ERR_STREAM_PREMATURE_CLOSE;
  function r2() {
  }
  t3.exports = function t4(e3, n3, i2) {
    if ("function" == typeof n3)
      return t4(e3, null, n3);
    n3 || (n3 = {}), i2 = /* @__PURE__ */ function(t5) {
      var e4 = false;
      return function() {
        if (!e4) {
          e4 = true;
          for (var n4 = arguments.length, a3 = new Array(n4), r3 = 0; r3 < n4; r3++)
            a3[r3] = arguments[r3];
          t5.apply(this, a3);
        }
      };
    }(i2 || r2);
    var l2 = n3.readable || false !== n3.readable && e3.readable, o2 = n3.writable || false !== n3.writable && e3.writable, s2 = function() {
      e3.writable || d2();
    }, u2 = e3._writableState && e3._writableState.finished, d2 = function() {
      o2 = false, u2 = true, l2 || i2.call(e3);
    }, c2 = e3._readableState && e3._readableState.endEmitted, f2 = function() {
      l2 = false, c2 = true, o2 || i2.call(e3);
    }, g2 = function(t5) {
      i2.call(e3, t5);
    }, m2 = function() {
      var t5;
      return l2 && !c2 ? (e3._readableState && e3._readableState.ended || (t5 = new a2()), i2.call(e3, t5)) : o2 && !u2 ? (e3._writableState && e3._writableState.ended || (t5 = new a2()), i2.call(e3, t5)) : void 0;
    }, h2 = function() {
      e3.req.on("finish", d2);
    };
    return function(t5) {
      return t5.setHeader && "function" == typeof t5.abort;
    }(e3) ? (e3.on("complete", d2), e3.on("abort", m2), e3.req ? h2() : e3.on("request", h2)) : o2 && !e3._writableState && (e3.on("end", s2), e3.on("close", s2)), e3.on("end", f2), e3.on("finish", d2), false !== n3.error && e3.on("error", g2), e3.on("close", m2), function() {
      e3.removeListener("complete", d2), e3.removeListener("abort", m2), e3.removeListener("request", h2), e3.req && e3.req.removeListener("finish", d2), e3.removeListener("end", s2), e3.removeListener("close", s2), e3.removeListener("finish", d2), e3.removeListener("end", f2), e3.removeListener("error", g2), e3.removeListener("close", m2);
    };
  };
}, 3411: function(t3) {
  t3.exports = function() {
    throw new Error("Readable.from is not available in the browser");
  };
}, 8460: function(t3, e2, n2) {
  var a2, r2 = n2(1602).codes, i2 = r2.ERR_MISSING_ARGS, l2 = r2.ERR_STREAM_DESTROYED;
  function o2(t4) {
    if (t4)
      throw t4;
  }
  function s2(t4) {
    t4();
  }
  function u2(t4, e3) {
    return t4.pipe(e3);
  }
  t3.exports = function() {
    for (var t4 = arguments.length, e3 = new Array(t4), r3 = 0; r3 < t4; r3++)
      e3[r3] = arguments[r3];
    var d2, c2 = function(t5) {
      return t5.length ? "function" != typeof t5[t5.length - 1] ? o2 : t5.pop() : o2;
    }(e3);
    if (Array.isArray(e3[0]) && (e3 = e3[0]), e3.length < 2)
      throw new i2("streams");
    var f2 = e3.map(function(t5, r4) {
      var i3 = r4 < e3.length - 1;
      return function(t6, e4, r5, i4) {
        i4 = /* @__PURE__ */ function(t7) {
          var e5 = false;
          return function() {
            e5 || (e5 = true, t7.apply(void 0, arguments));
          };
        }(i4);
        var o3 = false;
        t6.on("close", function() {
          o3 = true;
        }), void 0 === a2 && (a2 = n2(2896)), a2(t6, { readable: e4, writable: r5 }, function(t7) {
          if (t7)
            return i4(t7);
          o3 = true, i4();
        });
        var s3 = false;
        return function(e5) {
          if (!o3 && !s3)
            return s3 = true, function(t7) {
              return t7.setHeader && "function" == typeof t7.abort;
            }(t6) ? t6.abort() : "function" == typeof t6.destroy ? t6.destroy() : void i4(e5 || new l2("pipe"));
        };
      }(t5, i3, r4 > 0, function(t6) {
        d2 || (d2 = t6), t6 && f2.forEach(s2), i3 || (f2.forEach(s2), c2(d2));
      });
    });
    return e3.reduce(u2);
  };
}, 1749: function(t3, e2, n2) {
  var a2 = n2(1602).codes.ERR_INVALID_OPT_VALUE;
  t3.exports = { getHighWaterMark: function(t4, e3, n3, r2) {
    var i2 = function(t5, e4, n4) {
      return null != t5.highWaterMark ? t5.highWaterMark : e4 ? t5[n4] : null;
    }(e3, r2, n3);
    if (null != i2) {
      if (!isFinite(i2) || Math.floor(i2) !== i2 || i2 < 0)
        throw new a2(r2 ? n3 : "highWaterMark", i2);
      return Math.floor(i2);
    }
    return t4.objectMode ? 16 : 16384;
  } };
}, 2611: function(t3, e2, n2) {
  t3.exports = n2(9826).EventEmitter;
}, 748: function(t3, e2, n2) {
  var a2 = n2(4598).Buffer, r2 = a2.isEncoding || function(t4) {
    switch ((t4 = "" + t4) && t4.toLowerCase()) {
      case "hex":
      case "utf8":
      case "utf-8":
      case "ascii":
      case "binary":
      case "base64":
      case "ucs2":
      case "ucs-2":
      case "utf16le":
      case "utf-16le":
      case "raw":
        return true;
      default:
        return false;
    }
  };
  function i2(t4) {
    var e3;
    switch (this.encoding = function(t5) {
      var e4 = function(t6) {
        if (!t6)
          return "utf8";
        for (var e5; ; )
          switch (t6) {
            case "utf8":
            case "utf-8":
              return "utf8";
            case "ucs2":
            case "ucs-2":
            case "utf16le":
            case "utf-16le":
              return "utf16le";
            case "latin1":
            case "binary":
              return "latin1";
            case "base64":
            case "ascii":
            case "hex":
              return t6;
            default:
              if (e5)
                return;
              t6 = ("" + t6).toLowerCase(), e5 = true;
          }
      }(t5);
      if ("string" != typeof e4 && (a2.isEncoding === r2 || !r2(t5)))
        throw new Error("Unknown encoding: " + t5);
      return e4 || t5;
    }(t4), this.encoding) {
      case "utf16le":
        this.text = s2, this.end = u2, e3 = 4;
        break;
      case "utf8":
        this.fillLast = o2, e3 = 4;
        break;
      case "base64":
        this.text = d2, this.end = c2, e3 = 3;
        break;
      default:
        return this.write = f2, void (this.end = g2);
    }
    this.lastNeed = 0, this.lastTotal = 0, this.lastChar = a2.allocUnsafe(e3);
  }
  function l2(t4) {
    return t4 <= 127 ? 0 : t4 >> 5 == 6 ? 2 : t4 >> 4 == 14 ? 3 : t4 >> 3 == 30 ? 4 : t4 >> 6 == 2 ? -1 : -2;
  }
  function o2(t4) {
    var e3 = this.lastTotal - this.lastNeed, n3 = function(t5, e4) {
      if (128 != (192 & e4[0]))
        return t5.lastNeed = 0, "�";
      if (t5.lastNeed > 1 && e4.length > 1) {
        if (128 != (192 & e4[1]))
          return t5.lastNeed = 1, "�";
        if (t5.lastNeed > 2 && e4.length > 2 && 128 != (192 & e4[2]))
          return t5.lastNeed = 2, "�";
      }
    }(this, t4);
    return void 0 !== n3 ? n3 : this.lastNeed <= t4.length ? (t4.copy(this.lastChar, e3, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal)) : (t4.copy(this.lastChar, e3, 0, t4.length), void (this.lastNeed -= t4.length));
  }
  function s2(t4, e3) {
    if ((t4.length - e3) % 2 == 0) {
      var n3 = t4.toString("utf16le", e3);
      if (n3) {
        var a3 = n3.charCodeAt(n3.length - 1);
        if (a3 >= 55296 && a3 <= 56319)
          return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = t4[t4.length - 2], this.lastChar[1] = t4[t4.length - 1], n3.slice(0, -1);
      }
      return n3;
    }
    return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = t4[t4.length - 1], t4.toString("utf16le", e3, t4.length - 1);
  }
  function u2(t4) {
    var e3 = t4 && t4.length ? this.write(t4) : "";
    if (this.lastNeed) {
      var n3 = this.lastTotal - this.lastNeed;
      return e3 + this.lastChar.toString("utf16le", 0, n3);
    }
    return e3;
  }
  function d2(t4, e3) {
    var n3 = (t4.length - e3) % 3;
    return 0 === n3 ? t4.toString("base64", e3) : (this.lastNeed = 3 - n3, this.lastTotal = 3, 1 === n3 ? this.lastChar[0] = t4[t4.length - 1] : (this.lastChar[0] = t4[t4.length - 2], this.lastChar[1] = t4[t4.length - 1]), t4.toString("base64", e3, t4.length - n3));
  }
  function c2(t4) {
    var e3 = t4 && t4.length ? this.write(t4) : "";
    return this.lastNeed ? e3 + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : e3;
  }
  function f2(t4) {
    return t4.toString(this.encoding);
  }
  function g2(t4) {
    return t4 && t4.length ? this.write(t4) : "";
  }
  e2.StringDecoder = i2, i2.prototype.write = function(t4) {
    if (0 === t4.length)
      return "";
    var e3, n3;
    if (this.lastNeed) {
      if (void 0 === (e3 = this.fillLast(t4)))
        return "";
      n3 = this.lastNeed, this.lastNeed = 0;
    } else
      n3 = 0;
    return n3 < t4.length ? e3 ? e3 + this.text(t4, n3) : this.text(t4, n3) : e3 || "";
  }, i2.prototype.end = function(t4) {
    var e3 = t4 && t4.length ? this.write(t4) : "";
    return this.lastNeed ? e3 + "�" : e3;
  }, i2.prototype.text = function(t4, e3) {
    var n3 = function(t5, e4, n4) {
      var a4 = e4.length - 1;
      if (a4 < n4)
        return 0;
      var r3 = l2(e4[a4]);
      return r3 >= 0 ? (r3 > 0 && (t5.lastNeed = r3 - 1), r3) : --a4 < n4 || -2 === r3 ? 0 : (r3 = l2(e4[a4])) >= 0 ? (r3 > 0 && (t5.lastNeed = r3 - 2), r3) : --a4 < n4 || -2 === r3 ? 0 : (r3 = l2(e4[a4])) >= 0 ? (r3 > 0 && (2 === r3 ? r3 = 0 : t5.lastNeed = r3 - 3), r3) : 0;
    }(this, t4, e3);
    if (!this.lastNeed)
      return t4.toString("utf8", e3);
    this.lastTotal = n3;
    var a3 = t4.length - (n3 - this.lastNeed);
    return t4.copy(this.lastChar, 0, a3), t4.toString("utf8", e3, a3);
  }, i2.prototype.fillLast = function(t4) {
    if (this.lastNeed <= t4.length)
      return t4.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
    t4.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t4.length), this.lastNeed -= t4.length;
  };
}, 4598: function(t3, e2, n2) {
  var a2 = n2(44), r2 = a2.Buffer;
  function i2(t4, e3) {
    for (var n3 in t4)
      e3[n3] = t4[n3];
  }
  function l2(t4, e3, n3) {
    return r2(t4, e3, n3);
  }
  r2.from && r2.alloc && r2.allocUnsafe && r2.allocUnsafeSlow ? t3.exports = a2 : (i2(a2, e2), e2.Buffer = l2), i2(r2, l2), l2.from = function(t4, e3, n3) {
    if ("number" == typeof t4)
      throw new TypeError("Argument must not be a number");
    return r2(t4, e3, n3);
  }, l2.alloc = function(t4, e3, n3) {
    if ("number" != typeof t4)
      throw new TypeError("Argument must be a number");
    var a3 = r2(t4);
    return void 0 !== e3 ? "string" == typeof n3 ? a3.fill(e3, n3) : a3.fill(e3) : a3.fill(0), a3;
  }, l2.allocUnsafe = function(t4) {
    if ("number" != typeof t4)
      throw new TypeError("Argument must be a number");
    return r2(t4);
  }, l2.allocUnsafeSlow = function(t4) {
    if ("number" != typeof t4)
      throw new TypeError("Argument must be a number");
    return a2.SlowBuffer(t4);
  };
}, 8571: function(t3, e2, n2) {
  var a2;
  !function(r2, i2) {
    var l2 = "function", o2 = "undefined", s2 = "object", u2 = "string", d2 = "major", c2 = "model", f2 = "name", g2 = "type", m2 = "vendor", h2 = "version", p2 = "architecture", b2 = "console", y2 = "mobile", E2 = "tablet", _2 = "smarttv", T2 = "wearable", v2 = "embedded", w2 = "Amazon", S2 = "Apple", I = "ASUS", k = "BlackBerry", A = "Browser", R = "Chrome", N = "Firefox", C = "Google", D = "Huawei", x = "LG", M = "Microsoft", z = "Motorola", O = "Opera", P = "Samsung", L = "Sharp", F = "Sony", U = "Xiaomi", j = "Zebra", q = "Facebook", B = "Chromium OS", G = "Mac OS", H = function(t4) {
      for (var e3 = {}, n3 = 0; n3 < t4.length; n3++)
        e3[t4[n3].toUpperCase()] = t4[n3];
      return e3;
    }, Y = function(t4, e3) {
      return typeof t4 === u2 && -1 !== V(e3).indexOf(V(t4));
    }, V = function(t4) {
      return t4.toLowerCase();
    }, K = function(t4, e3) {
      if (typeof t4 === u2)
        return t4 = t4.replace(/^\s\s*/, ""), typeof e3 === o2 ? t4 : t4.substring(0, 500);
    }, W = function(t4, e3) {
      for (var n3, a3, r3, o3, u3, d3, c3 = 0; c3 < e3.length && !u3; ) {
        var f3 = e3[c3], g3 = e3[c3 + 1];
        for (n3 = a3 = 0; n3 < f3.length && !u3 && f3[n3]; )
          if (u3 = f3[n3++].exec(t4))
            for (r3 = 0; r3 < g3.length; r3++)
              d3 = u3[++a3], typeof (o3 = g3[r3]) === s2 && o3.length > 0 ? 2 === o3.length ? typeof o3[1] == l2 ? this[o3[0]] = o3[1].call(this, d3) : this[o3[0]] = o3[1] : 3 === o3.length ? typeof o3[1] !== l2 || o3[1].exec && o3[1].test ? this[o3[0]] = d3 ? d3.replace(o3[1], o3[2]) : i2 : this[o3[0]] = d3 ? o3[1].call(this, d3, o3[2]) : i2 : 4 === o3.length && (this[o3[0]] = d3 ? o3[3].call(this, d3.replace(o3[1], o3[2])) : i2) : this[o3] = d3 || i2;
        c3 += 2;
      }
    }, $ = function(t4, e3) {
      for (var n3 in e3)
        if (typeof e3[n3] === s2 && e3[n3].length > 0) {
          for (var a3 = 0; a3 < e3[n3].length; a3++)
            if (Y(e3[n3][a3], t4))
              return "?" === n3 ? i2 : n3;
        } else if (Y(e3[n3], t4))
          return "?" === n3 ? i2 : n3;
      return t4;
    }, X = { ME: "4.90", "NT 3.11": "NT3.51", "NT 4.0": "NT4.0", 2e3: "NT 5.0", XP: ["NT 5.1", "NT 5.2"], Vista: "NT 6.0", 7: "NT 6.1", 8: "NT 6.2", 8.1: "NT 6.3", 10: ["NT 6.4", "NT 10.0"], RT: "ARM" }, Q = { browser: [[/\b(?:crmo|crios)\/([\w\.]+)/i], [h2, [f2, "Chrome"]], [/edg(?:e|ios|a)?\/([\w\.]+)/i], [h2, [f2, "Edge"]], [/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i], [f2, h2], [/opios[\/ ]+([\w\.]+)/i], [h2, [f2, O + " Mini"]], [/\bop(?:rg)?x\/([\w\.]+)/i], [h2, [f2, O + " GX"]], [/\bopr\/([\w\.]+)/i], [h2, [f2, O]], [/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i], [h2, [f2, "Baidu"]], [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, /(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i, /(?:ms|\()(ie) ([\w\.]+)/i, /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i, /(heytap|ovi)browser\/([\d\.]+)/i, /(weibo)__([\d\.]+)/i], [f2, h2], [/\bddg\/([\w\.]+)/i], [h2, [f2, "DuckDuckGo"]], [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], [h2, [f2, "UC" + A]], [/microm.+\bqbcore\/([\w\.]+)/i, /\bqbcore\/([\w\.]+).+microm/i, /micromessenger\/([\w\.]+)/i], [h2, [f2, "WeChat"]], [/konqueror\/([\w\.]+)/i], [h2, [f2, "Konqueror"]], [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], [h2, [f2, "IE"]], [/ya(?:search)?browser\/([\w\.]+)/i], [h2, [f2, "Yandex"]], [/slbrowser\/([\w\.]+)/i], [h2, [f2, "Smart Lenovo " + A]], [/(avast|avg)\/([\w\.]+)/i], [[f2, /(.+)/, "$1 Secure " + A], h2], [/\bfocus\/([\w\.]+)/i], [h2, [f2, N + " Focus"]], [/\bopt\/([\w\.]+)/i], [h2, [f2, O + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [h2, [f2, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [h2, [f2, "Dolphin"]], [/coast\/([\w\.]+)/i], [h2, [f2, O + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [h2, [f2, "MIUI " + A]], [/fxios\/([-\w\.]+)/i], [h2, [f2, N]], [/\bqihu|(qi?ho?o?|360)browser/i], [[f2, "360 " + A]], [/(oculus|sailfish|huawei|vivo)browser\/([\w\.]+)/i], [[f2, /(.+)/, "$1 " + A], h2], [/samsungbrowser\/([\w\.]+)/i], [h2, [f2, P + " Internet"]], [/(comodo_dragon)\/([\w\.]+)/i], [[f2, /_/g, " "], h2], [/metasr[\/ ]?([\d\.]+)/i], [h2, [f2, "Sogou Explorer"]], [/(sogou)mo\w+\/([\d\.]+)/i], [[f2, "Sogou Mobile"], h2], [/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i], [f2, h2], [/(lbbrowser)/i, /\[(linkedin)app\]/i], [f2], [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], [[f2, q], h2], [/(Klarna)\/([\w\.]+)/i, /(kakao(?:talk|story))[\/ ]([\w\.]+)/i, /(naver)\(.*?(\d+\.[\w\.]+).*\)/i, /safari (line)\/([\w\.]+)/i, /\b(line)\/([\w\.]+)\/iab/i, /(alipay)client\/([\w\.]+)/i, /(twitter)(?:and| f.+e\/([\w\.]+))/i, /(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i], [f2, h2], [/\bgsa\/([\w\.]+) .*safari\//i], [h2, [f2, "GSA"]], [/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i], [h2, [f2, "TikTok"]], [/headlesschrome(?:\/([\w\.]+)| )/i], [h2, [f2, R + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[f2, R + " WebView"], h2], [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], [h2, [f2, "Android " + A]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], [f2, h2], [/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i], [h2, [f2, "Mobile Safari"]], [/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i], [h2, f2], [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], [f2, [h2, $, { "1.0": "/8", 1.2: "/1", 1.3: "/3", "2.0": "/412", "2.0.2": "/416", "2.0.3": "/417", "2.0.4": "/419", "?": "/" }]], [/(webkit|khtml)\/([\w\.]+)/i], [f2, h2], [/(navigator|netscape\d?)\/([-\w\.]+)/i], [[f2, "Netscape"], h2], [/mobile vr; rv:([\w\.]+)\).+firefox/i], [h2, [f2, N + " Reality"]], [/ekiohf.+(flow)\/([\w\.]+)/i, /(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, /(firefox)\/([\w\.]+)/i, /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, /(links) \(([\w\.]+)/i, /panasonic;(viera)/i], [f2, h2], [/(cobalt)\/([\w\.]+)/i], [f2, [h2, /master.|lts./, ""]]], cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i], [[p2, "amd64"]], [/(ia32(?=;))/i], [[p2, V]], [/((?:i[346]|x)86)[;\)]/i], [[p2, "ia32"]], [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], [[p2, "arm64"]], [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i], [[p2, "armhf"]], [/windows (ce|mobile); ppc;/i], [[p2, "arm"]], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], [[p2, /ower/, "", V]], [/(sun4\w)[;\)]/i], [[p2, "sparc"]], [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i], [[p2, V]]], device: [[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i], [c2, [m2, P], [g2, E2]], [/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i], [c2, [m2, P], [g2, y2]], [/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i], [c2, [m2, S2], [g2, y2]], [/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [c2, [m2, S2], [g2, E2]], [/(macintosh);/i], [c2, [m2, S2]], [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [c2, [m2, L], [g2, y2]], [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], [c2, [m2, D], [g2, E2]], [/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i], [c2, [m2, D], [g2, y2]], [/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i], [[c2, /_/g, " "], [m2, U], [g2, y2]], [/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, /\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i], [[c2, /_/g, " "], [m2, U], [g2, E2]], [/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i], [c2, [m2, "OPPO"], [g2, y2]], [/\b(opd2\d{3}a?) bui/i], [c2, [m2, "OPPO"], [g2, E2]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [c2, [m2, "Vivo"], [g2, y2]], [/\b(rmx[1-3]\d{3})(?: bui|;|\))/i], [c2, [m2, "Realme"], [g2, y2]], [/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, /\bmot(?:orola)?[- ](\w*)/i, /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i], [c2, [m2, z], [g2, y2]], [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], [c2, [m2, z], [g2, E2]], [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], [c2, [m2, x], [g2, E2]], [/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, /\blg-?([\d\w]+) bui/i], [c2, [m2, x], [g2, y2]], [/(ideatab[-\w ]+)/i, /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i], [c2, [m2, "Lenovo"], [g2, E2]], [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i], [[c2, /_/g, " "], [m2, "Nokia"], [g2, y2]], [/(pixel c)\b/i], [c2, [m2, C], [g2, E2]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [c2, [m2, C], [g2, y2]], [/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], [c2, [m2, F], [g2, y2]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[c2, "Xperia Tablet"], [m2, F], [g2, E2]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [c2, [m2, "OnePlus"], [g2, y2]], [/(alexa)webm/i, /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], [c2, [m2, w2], [g2, E2]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], [[c2, /(.+)/g, "Fire Phone $1"], [m2, w2], [g2, y2]], [/(playbook);[-\w\),; ]+(rim)/i], [c2, m2, [g2, E2]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [c2, [m2, k], [g2, y2]], [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], [c2, [m2, I], [g2, E2]], [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], [c2, [m2, I], [g2, y2]], [/(nexus 9)/i], [c2, [m2, "HTC"], [g2, E2]], [/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i], [m2, [c2, /_/g, " "], [g2, y2]], [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [c2, [m2, "Acer"], [g2, E2]], [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [c2, [m2, "Meizu"], [g2, y2]], [/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i], [c2, [m2, "Ulefone"], [g2, y2]], [/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i, /(hp) ([\w ]+\w)/i, /(asus)-?(\w+)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w]+)/i, /(jolla)/i, /(oppo) ?([\w ]+) bui/i], [m2, c2, [g2, y2]], [/(kobo)\s(ereader|touch)/i, /(archos) (gamepad2?)/i, /(hp).+(touchpad(?!.+tablet)|tablet)/i, /(kindle)\/([\w\.]+)/i, /(nook)[\w ]+build\/(\w+)/i, /(dell) (strea[kpr\d ]*[\dko])/i, /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, /(trinity)[- ]*(t\d{3}) bui/i, /(gigaset)[- ]+(q\w{1,9}) bui/i, /(vodafone) ([\w ]+)(?:\)| bui)/i], [m2, c2, [g2, E2]], [/(surface duo)/i], [c2, [m2, M], [g2, E2]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [c2, [m2, "Fairphone"], [g2, y2]], [/(u304aa)/i], [c2, [m2, "AT&T"], [g2, y2]], [/\bsie-(\w*)/i], [c2, [m2, "Siemens"], [g2, y2]], [/\b(rct\w+) b/i], [c2, [m2, "RCA"], [g2, E2]], [/\b(venue[\d ]{2,7}) b/i], [c2, [m2, "Dell"], [g2, E2]], [/\b(q(?:mv|ta)\w+) b/i], [c2, [m2, "Verizon"], [g2, E2]], [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], [c2, [m2, "Barnes & Noble"], [g2, E2]], [/\b(tm\d{3}\w+) b/i], [c2, [m2, "NuVision"], [g2, E2]], [/\b(k88) b/i], [c2, [m2, "ZTE"], [g2, E2]], [/\b(nx\d{3}j) b/i], [c2, [m2, "ZTE"], [g2, y2]], [/\b(gen\d{3}) b.+49h/i], [c2, [m2, "Swiss"], [g2, y2]], [/\b(zur\d{3}) b/i], [c2, [m2, "Swiss"], [g2, E2]], [/\b((zeki)?tb.*\b) b/i], [c2, [m2, "Zeki"], [g2, E2]], [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], [[m2, "Dragon Touch"], c2, [g2, E2]], [/\b(ns-?\w{0,9}) b/i], [c2, [m2, "Insignia"], [g2, E2]], [/\b((nxa|next)-?\w{0,9}) b/i], [c2, [m2, "NextBook"], [g2, E2]], [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], [[m2, "Voice"], c2, [g2, y2]], [/\b(lvtel\-)?(v1[12]) b/i], [[m2, "LvTel"], c2, [g2, y2]], [/\b(ph-1) /i], [c2, [m2, "Essential"], [g2, y2]], [/\b(v(100md|700na|7011|917g).*\b) b/i], [c2, [m2, "Envizen"], [g2, E2]], [/\b(trio[-\w\. ]+) b/i], [c2, [m2, "MachSpeed"], [g2, E2]], [/\btu_(1491) b/i], [c2, [m2, "Rotor"], [g2, E2]], [/(shield[\w ]+) b/i], [c2, [m2, "Nvidia"], [g2, E2]], [/(sprint) (\w+)/i], [m2, c2, [g2, y2]], [/(kin\.[onetw]{3})/i], [[c2, /\./g, " "], [m2, M], [g2, y2]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [c2, [m2, j], [g2, E2]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [c2, [m2, j], [g2, y2]], [/smart-tv.+(samsung)/i], [m2, [g2, _2]], [/hbbtv.+maple;(\d+)/i], [[c2, /^/, "SmartTV"], [m2, P], [g2, _2]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[m2, x], [g2, _2]], [/(apple) ?tv/i], [m2, [c2, S2 + " TV"], [g2, _2]], [/crkey/i], [[c2, R + "cast"], [m2, C], [g2, _2]], [/droid.+aft(\w+)( bui|\))/i], [c2, [m2, w2], [g2, _2]], [/\(dtv[\);].+(aquos)/i, /(aquos-tv[\w ]+)\)/i], [c2, [m2, L], [g2, _2]], [/(bravia[\w ]+)( bui|\))/i], [c2, [m2, F], [g2, _2]], [/(mitv-\w{5}) bui/i], [c2, [m2, U], [g2, _2]], [/Hbbtv.*(technisat) (.*);/i], [m2, c2, [g2, _2]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i], [[m2, K], [c2, K], [g2, _2]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[g2, _2]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [m2, c2, [g2, b2]], [/droid.+; (shield) bui/i], [c2, [m2, "Nvidia"], [g2, b2]], [/(playstation [345portablevi]+)/i], [c2, [m2, F], [g2, b2]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [c2, [m2, M], [g2, b2]], [/((pebble))app/i], [m2, c2, [g2, T2]], [/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i], [c2, [m2, S2], [g2, T2]], [/droid.+; (glass) \d/i], [c2, [m2, C], [g2, T2]], [/droid.+; (wt63?0{2,3})\)/i], [c2, [m2, j], [g2, T2]], [/(quest( \d| pro)?)/i], [c2, [m2, q], [g2, T2]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [m2, [g2, v2]], [/(aeobc)\b/i], [c2, [m2, w2], [g2, v2]], [/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i], [c2, [g2, y2]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], [c2, [g2, E2]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], [[g2, E2]], [/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i], [[g2, y2]], [/(android[-\w\. ]{0,9});.+buil/i], [c2, [m2, "Generic"]]], engine: [[/windows.+ edge\/([\w\.]+)/i], [h2, [f2, "EdgeHTML"]], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [h2, [f2, "Blink"]], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /ekioh(flow)\/([\w\.]+)/i, /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, /(icab)[\/ ]([23]\.[\d\.]+)/i, /\b(libweb)/i], [f2, h2], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [h2, f2]], os: [[/microsoft (windows) (vista|xp)/i], [f2, h2], [/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i], [f2, [h2, $, X]], [/windows nt 6\.2; (arm)/i, /windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i, /(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i], [[h2, $, X], [f2, "Windows"]], [/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i, /cfnetwork\/.+darwin/i], [[h2, /_/g, "."], [f2, "iOS"]], [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], [[f2, G], [h2, /_/g, "."]], [/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i], [h2, f2], [/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, /(tizen|kaios)[\/ ]([\w\.]+)/i, /\((series40);/i], [f2, h2], [/\(bb(10);/i], [h2, [f2, k]], [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i], [h2, [f2, "Symbian"]], [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], [h2, [f2, N + " OS"]], [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i], [h2, [f2, "webOS"]], [/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i], [h2, [f2, "watchOS"]], [/crkey\/([\d\.]+)/i], [h2, [f2, R + "cast"]], [/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i], [[f2, B], h2], [/panasonic;(viera)/i, /(netrange)mmh/i, /(nettv)\/(\d+\.[\w\.]+)/i, /(nintendo|playstation) ([wids345portablevuch]+)/i, /(xbox); +xbox ([^\);]+)/i, /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, /(mint)[\/\(\) ]?(\w*)/i, /(mageia|vectorlinux)[; ]/i, /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, /(hurd|linux) ?([\w\.]*)/i, /(gnu) ?([\w\.]*)/i, /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, /(haiku) (\w+)/i], [f2, h2], [/(sunos) ?([\w\.\d]*)/i], [[f2, "Solaris"], h2], [/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, /(unix) ?([\w\.]*)/i], [f2, h2]] }, Z = function(t4, e3) {
      if (typeof t4 === s2 && (e3 = t4, t4 = i2), !(this instanceof Z))
        return new Z(t4, e3).getResult();
      var n3 = typeof r2 !== o2 && r2.navigator ? r2.navigator : i2, a3 = t4 || (n3 && n3.userAgent ? n3.userAgent : ""), b3 = n3 && n3.userAgentData ? n3.userAgentData : i2, _3 = e3 ? function(t5, e4) {
        var n4 = {};
        for (var a4 in t5)
          e4[a4] && e4[a4].length % 2 == 0 ? n4[a4] = e4[a4].concat(t5[a4]) : n4[a4] = t5[a4];
        return n4;
      }(Q, e3) : Q, T3 = n3 && n3.userAgent == a3;
      return this.getBrowser = function() {
        var t5, e4 = {};
        return e4[f2] = i2, e4[h2] = i2, W.call(e4, a3, _3.browser), e4[d2] = typeof (t5 = e4[h2]) === u2 ? t5.replace(/[^\d\.]/g, "").split(".")[0] : i2, T3 && n3 && n3.brave && typeof n3.brave.isBrave == l2 && (e4[f2] = "Brave"), e4;
      }, this.getCPU = function() {
        var t5 = {};
        return t5[p2] = i2, W.call(t5, a3, _3.cpu), t5;
      }, this.getDevice = function() {
        var t5 = {};
        return t5[m2] = i2, t5[c2] = i2, t5[g2] = i2, W.call(t5, a3, _3.device), T3 && !t5[g2] && b3 && b3.mobile && (t5[g2] = y2), T3 && "Macintosh" == t5[c2] && n3 && typeof n3.standalone !== o2 && n3.maxTouchPoints && n3.maxTouchPoints > 2 && (t5[c2] = "iPad", t5[g2] = E2), t5;
      }, this.getEngine = function() {
        var t5 = {};
        return t5[f2] = i2, t5[h2] = i2, W.call(t5, a3, _3.engine), t5;
      }, this.getOS = function() {
        var t5 = {};
        return t5[f2] = i2, t5[h2] = i2, W.call(t5, a3, _3.os), T3 && !t5[f2] && b3 && b3.platform && "Unknown" != b3.platform && (t5[f2] = b3.platform.replace(/chrome os/i, B).replace(/macos/i, G)), t5;
      }, this.getResult = function() {
        return { ua: this.getUA(), browser: this.getBrowser(), engine: this.getEngine(), os: this.getOS(), device: this.getDevice(), cpu: this.getCPU() };
      }, this.getUA = function() {
        return a3;
      }, this.setUA = function(t5) {
        return a3 = typeof t5 === u2 && t5.length > 500 ? K(t5, 500) : t5, this;
      }, this.setUA(a3), this;
    };
    Z.VERSION = "1.0.38", Z.BROWSER = H([f2, h2, d2]), Z.CPU = H([p2]), Z.DEVICE = H([c2, m2, g2, b2, y2, _2, E2, T2, v2]), Z.ENGINE = Z.OS = H([f2, h2]), typeof e2 !== o2 ? (t3.exports && (e2 = t3.exports = Z), e2.UAParser = Z) : n2.amdO ? (a2 = (function() {
      return Z;
    }).call(e2, n2, e2, t3)) === i2 || (t3.exports = a2) : typeof r2 !== o2 && (r2.UAParser = Z);
    var J = typeof r2 !== o2 && (r2.jQuery || r2.Zepto);
    if (J && !J.ua) {
      var tt = new Z();
      J.ua = tt.getResult(), J.ua.get = function() {
        return tt.getUA();
      }, J.ua.set = function(t4) {
        tt.setUA(t4);
        var e3 = tt.getResult();
        for (var n3 in e3)
          J.ua[n3] = e3[n3];
      };
    }
  }("object" == typeof window ? window : this);
}, 9e3: function(t3, e2, n2) {
  function a2(t4) {
    try {
      if (!n2.g.localStorage)
        return false;
    } catch (t5) {
      return false;
    }
    var e3 = n2.g.localStorage[t4];
    return null != e3 && "true" === String(e3).toLowerCase();
  }
  t3.exports = function(t4, e3) {
    if (a2("noDeprecation"))
      return t4;
    var n3 = false;
    return function() {
      if (!n3) {
        if (a2("throwDeprecation"))
          throw new Error(e3);
        a2("traceDeprecation") ? console.trace(e3) : console.warn(e3), n3 = true;
      }
      return t4.apply(this, arguments);
    };
  };
}, 3779: function() {
}, 7199: function() {
}, 5393: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { Debug: function() {
    return i2.default;
  }, FactoryMaker: function() {
    return r2.default;
  }, MediaPlayer: function() {
    return a2.default;
  } });
  var a2 = n2(255), r2 = n2(138), i2 = n2(649), l2 = n2(8986), o2 = "undefined" != typeof window && window || global, s2 = o2.dashjs;
  s2 || (s2 = o2.dashjs = {}), s2.MediaPlayer = a2.default, s2.FactoryMaker = r2.default, s2.Debug = i2.default, s2.Version = (0, l2.getVersionString)(), e2.default = s2;
}, 649: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(8850), r2 = n2(3621), i2 = n2(138);
  function l2(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, a2.default)(e3).getInstance(), i3 = t4.settings, l3 = [];
    let o3, s2, u2, d2;
    function c2(t5) {
      return t5 && t5.bind ? t5.bind(window.console) : window.console.log.bind(window.console);
    }
    function f2() {
      for (var t5 = arguments.length, e4 = new Array(t5), n4 = 0; n4 < t5; n4++)
        e4[n4] = arguments[n4];
      b2(1, this, ...e4);
    }
    function g2() {
      for (var t5 = arguments.length, e4 = new Array(t5), n4 = 0; n4 < t5; n4++)
        e4[n4] = arguments[n4];
      b2(2, this, ...e4);
    }
    function m2() {
      for (var t5 = arguments.length, e4 = new Array(t5), n4 = 0; n4 < t5; n4++)
        e4[n4] = arguments[n4];
      b2(3, this, ...e4);
    }
    function h2() {
      for (var t5 = arguments.length, e4 = new Array(t5), n4 = 0; n4 < t5; n4++)
        e4[n4] = arguments[n4];
      b2(4, this, ...e4);
    }
    function p2() {
      for (var t5 = arguments.length, e4 = new Array(t5), n4 = 0; n4 < t5; n4++)
        e4[n4] = arguments[n4];
      b2(5, this, ...e4);
    }
    function b2(t5, e4) {
      let a3 = "", o4 = null;
      s2 && (o4 = (/* @__PURE__ */ new Date()).getTime(), a3 += "[" + (o4 - d2) + "]"), u2 && e4 && e4.getClassName && (a3 += "[" + e4.getClassName() + "]", e4.getType && (a3 += "[" + e4.getType() + "]")), a3.length > 0 && (a3 += " ");
      for (var c3 = arguments.length, f3 = new Array(c3 > 2 ? c3 - 2 : 0), g3 = 2; g3 < c3; g3++)
        f3[g3 - 2] = arguments[g3];
      Array.apply(null, f3).forEach(function(t6) {
        a3 += t6 + " ";
      }), l3[t5] && i3 && i3.get().debug.logLevel >= t5 && l3[t5](a3), i3 && i3.get().debug.dispatchEvent && n3.trigger(r2.default.LOG, { message: a3, level: t5 });
    }
    return o3 = { getLogger: function(t5) {
      return { fatal: f2.bind(t5), error: g2.bind(t5), warn: m2.bind(t5), info: h2.bind(t5), debug: p2.bind(t5) };
    }, setLogTimestampVisible: function(t5) {
      s2 = t5;
    }, setCalleeNameVisible: function(t5) {
      u2 = t5;
    } }, s2 = true, u2 = true, d2 = (/* @__PURE__ */ new Date()).getTime(), "undefined" != typeof window && window.console && (l3[1] = c2(window.console.error), l3[2] = c2(window.console.error), l3[3] = c2(window.console.warn), l3[4] = c2(window.console.info), l3[5] = c2(window.console.debug)), o3;
  }
  l2.__dashjs_factory_name = "Debug";
  const o2 = i2.default.getSingletonFactory(l2);
  o2.LOG_LEVEL_NONE = 0, o2.LOG_LEVEL_FATAL = 1, o2.LOG_LEVEL_ERROR = 2, o2.LOG_LEVEL_WARNING = 3, o2.LOG_LEVEL_INFO = 4, o2.LOG_LEVEL_DEBUG = 5, i2.default.updateSingletonFactory(l2.__dashjs_factory_name, o2), e2.default = o2;
}, 8850: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138), r2 = n2(1191);
  function i2() {
    let t4 = {};
    function e3(e4, n4, r3) {
      let i4 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, l3 = arguments.length > 4 && void 0 !== arguments[4] && arguments[4];
      if (!e4)
        throw new Error("event type cannot be null or undefined");
      if (!n4 || "function" != typeof n4)
        throw new Error("listener must be a function: " + n4);
      let o2 = i4.priority || 0;
      if (a3(e4, n4, r3) >= 0)
        return;
      t4[e4] = t4[e4] || [];
      const s2 = { callback: n4, scope: r3, priority: o2, executeOnlyOnce: l3 };
      r3 && r3.getStreamId && (s2.streamId = r3.getStreamId()), r3 && r3.getType && (s2.mediaType = r3.getType()), i4 && i4.mode && (s2.mode = i4.mode), t4[e4].some((n5, a4) => {
        if (n5 && o2 > n5.priority)
          return t4[e4].splice(a4, 0, s2), true;
      }) || t4[e4].push(s2);
    }
    function n3(e4, n4, r3) {
      if (!e4 || !n4 || !t4[e4])
        return;
      const i4 = a3(e4, n4, r3);
      i4 < 0 || (t4[e4][i4] = null);
    }
    function a3(e4, n4, a4) {
      let r3 = -1;
      return t4[e4] ? (t4[e4].some((t5, e5) => {
        if (t5 && t5.callback === n4 && (!a4 || a4 === t5.scope))
          return r3 = e5, true;
      }), r3) : r3;
    }
    const i3 = { on: function(t5, n4, a4) {
      e3(t5, n4, a4, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {});
    }, once: function(t5, n4, a4) {
      e3(t5, n4, a4, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, true);
    }, off: n3, trigger: function(e4) {
      let a4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, i4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};
      if (!e4 || !t4[e4])
        return;
      if (a4 = a4 || {}, a4.hasOwnProperty("type"))
        throw new Error("'type' is a reserved word for event dispatching");
      a4.type = e4, i4.streamId && (a4.streamId = i4.streamId), i4.mediaType && (a4.mediaType = i4.mediaType);
      const l3 = [];
      t4[e4].filter((t5) => !(!t5 || i4.streamId && t5.streamId && t5.streamId !== i4.streamId || i4.mediaType && t5.mediaType && t5.mediaType !== i4.mediaType || i4.mode && t5.mode && t5.mode !== i4.mode || !t5.mode && i4.mode && i4.mode === r2.default.EVENT_MODE_ON_RECEIVE)).forEach((t5) => {
        t5 && t5.callback.call(t5.scope, a4), t5.executeOnlyOnce && l3.push(t5);
      }), l3.forEach((t5) => {
        n3(e4, t5.callback, t5.scope);
      });
    }, reset: function() {
      t4 = {};
    } };
    return i3;
  }
  i2.__dashjs_factory_name = "EventBus";
  const l2 = a2.default.getSingletonFactory(i2);
  l2.EVENT_PRIORITY_LOW = 0, l2.EVENT_PRIORITY_HIGH = 5e3, a2.default.updateSingletonFactory(i2.__dashjs_factory_name, l2), e2.default = l2;
}, 138: function(t3, e2, n2) {
  n2.r(e2);
  const a2 = function() {
    let t4, e3 = [];
    const n3 = {}, a3 = {};
    function r2(t5, n4) {
      for (const a4 in e3) {
        const r3 = e3[a4];
        if (r3.context === t5 && r3.name === n4)
          return r3.instance;
      }
      return null;
    }
    function i2(t5, e4) {
      return e4[t5];
    }
    function l2(t5, e4, n4) {
      t5 in n4 && (n4[t5] = e4);
    }
    function o2(e4, n4, a4) {
      let r3;
      const i3 = e4.__dashjs_factory_name, l3 = n4[i3];
      if (l3) {
        let i4 = l3.instance;
        if (!l3.override)
          return i4.apply({ context: n4, factory: t4 }, a4);
        r3 = e4.apply({ context: n4 }, a4), i4 = i4.apply({ context: n4, factory: t4, parent: r3 }, a4);
        for (const t5 in i4)
          r3.hasOwnProperty(t5) && (r3[t5] = i4[t5]);
      } else
        r3 = e4.apply({ context: n4 }, a4);
      return r3.getClassName = function() {
        return i3;
      }, r3;
    }
    return t4 = { extend: function(t5, e4, n4, a4) {
      !a4[t5] && e4 && (a4[t5] = { instance: e4, override: n4 });
    }, getSingletonInstance: r2, setSingletonInstance: function(t5, n4, a4) {
      for (const r3 in e3) {
        const i3 = e3[r3];
        if (i3.context === t5 && i3.name === n4)
          return void (e3[r3].instance = a4);
      }
      e3.push({ name: n4, context: t5, instance: a4 });
    }, deleteSingletonInstances: function(t5) {
      e3 = e3.filter((e4) => e4.context !== t5);
    }, getSingletonFactory: function(t5) {
      let a4 = i2(t5.__dashjs_factory_name, n3);
      return a4 || (a4 = function(n4) {
        let a5;
        return void 0 === n4 && (n4 = {}), { getInstance: function() {
          return a5 || (a5 = r2(n4, t5.__dashjs_factory_name)), a5 || (a5 = o2(t5, n4, arguments), e3.push({ name: t5.__dashjs_factory_name, context: n4, instance: a5 })), a5;
        } };
      }, n3[t5.__dashjs_factory_name] = a4), a4;
    }, getSingletonFactoryByName: function(t5) {
      return i2(t5, n3);
    }, updateSingletonFactory: function(t5, e4) {
      l2(t5, e4, n3);
    }, getClassFactory: function(t5) {
      let e4 = i2(t5.__dashjs_factory_name, a3);
      return e4 || (e4 = function(e5) {
        return void 0 === e5 && (e5 = {}), { create: function() {
          return o2(t5, e5, arguments);
        } };
      }, a3[t5.__dashjs_factory_name] = e4), e4;
    }, getClassFactoryByName: function(t5) {
      return i2(t5, a3);
    }, updateClassFactory: function(t5, e4) {
      l2(t5, e4, a3);
    } }, t4;
  }();
  e2.default = a2;
}, 8261: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138), r2 = n2(7263), i2 = n2(649), l2 = n2(5212), o2 = n2(7568), s2 = n2(8850), u2 = n2(3621);
  function d2() {
    let t4;
    const e3 = this.context, n3 = (0, s2.default)(e3).getInstance(), a3 = { "streaming.delay.liveDelay": u2.default.SETTING_UPDATED_LIVE_DELAY, "streaming.delay.liveDelayFragmentCount": u2.default.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT, "streaming.liveCatchup.enabled": u2.default.SETTING_UPDATED_CATCHUP_ENABLED, "streaming.liveCatchup.playbackRate.min": u2.default.SETTING_UPDATED_PLAYBACK_RATE_MIN, "streaming.liveCatchup.playbackRate.max": u2.default.SETTING_UPDATED_PLAYBACK_RATE_MAX, "streaming.abr.rules.throughputRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.bolaRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.insufficientBufferRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.switchHistoryRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.droppedFramesRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.abandonRequestsRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.l2ARule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.rules.loLPRule.active": u2.default.SETTING_UPDATED_ABR_ACTIVE_RULES, "streaming.abr.maxBitrate.video": u2.default.SETTING_UPDATED_MAX_BITRATE, "streaming.abr.maxBitrate.audio": u2.default.SETTING_UPDATED_MAX_BITRATE, "streaming.abr.minBitrate.video": u2.default.SETTING_UPDATED_MIN_BITRATE, "streaming.abr.minBitrate.audio": u2.default.SETTING_UPDATED_MIN_BITRATE }, d3 = { debug: { logLevel: i2.default.LOG_LEVEL_WARNING, dispatchEvent: false }, streaming: { abandonLoadTimeout: 1e4, wallclockTimeUpdateInterval: 100, manifestUpdateRetryInterval: 100, liveUpdateTimeThresholdInMilliseconds: 0, cacheInitSegments: false, applyServiceDescription: true, applyProducerReferenceTime: true, applyContentSteering: true, enableManifestDurationMismatchFix: true, parseInbandPrft: false, enableManifestTimescaleMismatchFix: false, capabilities: { filterUnsupportedEssentialProperties: true, supportedEssentialProperties: [{ schemeIdUri: l2.default.FONT_DOWNLOAD_DVB_SCHEME }, { schemeIdUri: l2.default.COLOUR_PRIMARIES_SCHEME_ID_URI, value: /1|5|6|7/ }, { schemeIdUri: l2.default.URL_QUERY_INFO_SCHEME }, { schemeIdUri: l2.default.EXT_URL_QUERY_INFO_SCHEME }, { schemeIdUri: l2.default.MATRIX_COEFFICIENTS_SCHEME_ID_URI, value: /0|1|5|6/ }, { schemeIdUri: l2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI, value: /1|6|13|14|15/ }, ...l2.default.THUMBNAILS_SCHEME_ID_URIS.map((t5) => ({ schemeIdUri: t5 }))], useMediaCapabilitiesApi: true, filterVideoColorimetryEssentialProperties: false, filterHDRMetadataFormatEssentialProperties: false }, events: { eventControllerRefreshDelay: 100, deleteEventMessageDataTimeout: 1e4 }, timeShiftBuffer: { calcFromSegmentTimeline: false, fallbackToSegmentTimeline: true }, metrics: { maxListDepth: 100 }, delay: { liveDelayFragmentCount: NaN, liveDelay: NaN, useSuggestedPresentationDelay: true }, protection: { keepProtectionMediaKeys: false, ignoreEmeEncryptedEvent: false, detectPlayreadyMessageFormat: true, ignoreKeyStatuses: false }, buffer: { enableSeekDecorrelationFix: false, fastSwitchEnabled: null, flushBufferAtTrackSwitch: false, reuseExistingSourceBuffers: true, bufferPruningInterval: 10, bufferToKeep: 20, bufferTimeAtTopQuality: 30, bufferTimeAtTopQualityLongForm: 60, initialBufferLevel: NaN, bufferTimeDefault: 18, longFormContentDurationThreshold: 600, stallThreshold: 0.3, lowLatencyStallThreshold: 0.3, useAppendWindow: true, setStallState: true, avoidCurrentTimeRangePruning: false, useChangeType: true, mediaSourceDurationInfinity: true, resetSourceBuffersForTrackSwitch: false, syntheticStallEvents: { enabled: false, ignoreReadyState: false } }, gaps: { jumpGaps: true, jumpLargeGaps: true, smallGapLimit: 1.5, threshold: 0.3, enableSeekFix: true, enableStallFix: false, stallSeek: 0.1 }, utcSynchronization: { enabled: true, useManifestDateHeaderTimeSource: true, backgroundAttempts: 2, timeBetweenSyncAttempts: 30, maximumTimeBetweenSyncAttempts: 600, minimumTimeBetweenSyncAttempts: 2, timeBetweenSyncAttemptsAdjustmentFactor: 2, maximumAllowedDrift: 100, enableBackgroundSyncAfterSegmentDownloadError: true, defaultTimingSource: { scheme: "urn:mpeg:dash:utc:http-xsdate:2014", value: "https://time.akamai.com/?iso&ms" } }, scheduling: { defaultTimeout: 500, lowLatencyTimeout: 0, scheduleWhilePaused: true }, text: { defaultEnabled: true, dispatchForManualRendering: false, extendSegmentedCues: true, imsc: { displayForcedOnlyMode: false, enableRollUp: true }, webvtt: { customRenderingEnabled: false } }, liveCatchup: { maxDrift: NaN, playbackRate: { min: NaN, max: NaN }, playbackBufferMin: 0.5, enabled: null, mode: l2.default.LIVE_CATCHUP_MODE_DEFAULT }, lastBitrateCachingInfo: { enabled: true, ttl: 36e4 }, lastMediaSettingsCachingInfo: { enabled: true, ttl: 36e4 }, saveLastMediaSettingsForCurrentStreamingSession: true, cacheLoadThresholds: { video: 10, audio: 5 }, trackSwitchMode: { audio: l2.default.TRACK_SWITCH_MODE_ALWAYS_REPLACE, video: l2.default.TRACK_SWITCH_MODE_NEVER_REPLACE }, ignoreSelectionPriority: false, prioritizeRoleMain: true, assumeDefaultRoleAsMain: true, selectionModeForInitialTrack: l2.default.TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY, fragmentRequestTimeout: 2e4, fragmentRequestProgressTimeout: -1, manifestRequestTimeout: 1e4, retryIntervals: { [o2.HTTPRequest.MPD_TYPE]: 500, [o2.HTTPRequest.XLINK_EXPANSION_TYPE]: 500, [o2.HTTPRequest.MEDIA_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.INIT_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.INDEX_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.MSS_FRAGMENT_INFO_SEGMENT_TYPE]: 1e3, [o2.HTTPRequest.LICENSE]: 1e3, [o2.HTTPRequest.OTHER_TYPE]: 1e3, lowLatencyReductionFactor: 10 }, retryAttempts: { [o2.HTTPRequest.MPD_TYPE]: 3, [o2.HTTPRequest.XLINK_EXPANSION_TYPE]: 1, [o2.HTTPRequest.MEDIA_SEGMENT_TYPE]: 3, [o2.HTTPRequest.INIT_SEGMENT_TYPE]: 3, [o2.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE]: 3, [o2.HTTPRequest.INDEX_SEGMENT_TYPE]: 3, [o2.HTTPRequest.MSS_FRAGMENT_INFO_SEGMENT_TYPE]: 3, [o2.HTTPRequest.LICENSE]: 3, [o2.HTTPRequest.OTHER_TYPE]: 3, lowLatencyMultiplyFactor: 5 }, abr: { limitBitrateByPortal: false, usePixelRatioInLimitBitrateByPortal: false, enableSupplementalPropertyAdaptationSetSwitching: true, rules: { throughputRule: { active: true }, bolaRule: { active: true }, insufficientBufferRule: { active: true, parameters: { throughputSafetyFactor: 0.7, segmentIgnoreCount: 2 } }, switchHistoryRule: { active: true, parameters: { sampleSize: 8, switchPercentageThreshold: 0.075 } }, droppedFramesRule: { active: false, parameters: { minimumSampleSize: 375, droppedFramesPercentageThreshold: 0.15 } }, abandonRequestsRule: { active: true, parameters: { abandonDurationMultiplier: 1.8, minSegmentDownloadTimeThresholdInMs: 500, minThroughputSamplesThreshold: 6 } }, l2ARule: { active: false }, loLPRule: { active: false } }, throughput: { averageCalculationMode: l2.default.THROUGHPUT_CALCULATION_MODES.EWMA, lowLatencyDownloadTimeCalculationMode: l2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.MOOF_PARSING, useResourceTimingApi: true, useNetworkInformationApi: { xhr: false, fetch: false }, useDeadTimeLatency: true, bandwidthSafetyFactor: 0.9, sampleSettings: { live: 3, vod: 4, enableSampleSizeAdjustment: true, decreaseScale: 0.7, increaseScale: 1.3, maxMeasurementsToKeep: 20, averageLatencySampleAmount: 4 }, ewma: { throughputSlowHalfLifeSeconds: 8, throughputFastHalfLifeSeconds: 3, latencySlowHalfLifeCount: 2, latencyFastHalfLifeCount: 1, weightDownloadTimeMultiplicationFactor: 15e-4 } }, maxBitrate: { audio: -1, video: -1 }, minBitrate: { audio: -1, video: -1 }, initialBitrate: { audio: -1, video: -1 }, autoSwitchBitrate: { audio: true, video: true } }, cmcd: { applyParametersFromMpd: true, enabled: false, sid: null, cid: null, rtp: null, rtpSafetyFactor: 5, mode: l2.default.CMCD_MODE_QUERY, enabledKeys: l2.default.CMCD_AVAILABLE_KEYS, includeInRequests: ["segment", "mpd"], version: 1 }, cmsd: { enabled: false, abr: { applyMb: false, etpWeightRatio: 0 } }, defaultSchemeIdUri: { viewpoint: "", audioChannelConfiguration: "urn:mpeg:mpegB:cicp:ChannelConfiguration", role: "urn:mpeg:dash:role:2011", accessibility: "urn:mpeg:dash:role:2011" } }, errors: { recoverAttempts: { mediaErrorDecode: 5 } } };
    let c3 = r2.default.clone(d3);
    function f2(t5, e4, i3) {
      for (let l3 in t5)
        t5.hasOwnProperty(l3) && (e4.hasOwnProperty(l3) ? "object" != typeof t5[l3] || t5[l3] instanceof RegExp || t5[l3] instanceof Array || null === t5[l3] ? (e4[l3] = r2.default.clone(t5[l3]), a3[i3 + l3] && n3.trigger(a3[i3 + l3])) : f2(t5[l3], e4[l3], i3.slice() + l3 + ".") : console.error("Settings parameter " + i3 + l3 + " is not supported"));
    }
    return t4 = { get: function() {
      return c3;
    }, update: function(t5) {
      "object" == typeof t5 && f2(t5, c3, "");
    }, reset: function() {
      c3 = r2.default.clone(d3);
    } }, t4;
  }
  d2.__dashjs_factory_name = "Settings";
  let c2 = a2.default.getSingletonFactory(d2);
  e2.default = c2;
}, 7263: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(3282), r2 = n2(8571), i2 = n2(5212);
  class l2 {
    static mixin(t4, e3, n3) {
      let a3, r3 = {};
      if (t4)
        for (let i3 in e3)
          e3.hasOwnProperty(i3) && (a3 = e3[i3], i3 in t4 && (t4[i3] === a3 || i3 in r3 && r3[i3] === a3) || ("object" == typeof t4[i3] && null !== t4[i3] ? t4[i3] = l2.mixin(t4[i3], a3, n3) : t4[i3] = n3(a3)));
      return t4;
    }
    static clone(t4) {
      if (!t4 || "object" != typeof t4)
        return t4;
      if (t4 instanceof RegExp)
        return new RegExp(t4);
      let e3;
      if (t4 instanceof Array) {
        e3 = [];
        for (let n3 = 0, a3 = t4.length; n3 < a3; ++n3)
          n3 in t4 && e3.push(l2.clone(t4[n3]));
      } else
        e3 = {};
      return l2.mixin(e3, t4, l2.clone);
    }
    static addAdditionalQueryParameterToUrl(t4, e3) {
      try {
        if (!e3 || 0 === e3.length)
          return t4;
        let n3 = t4;
        return e3.forEach((t5) => {
          let { key: e4, value: a3 } = t5;
          const r3 = n3.includes("?") ? "&" : "?";
          n3 += `${r3}${encodeURIComponent(e4)}=${encodeURIComponent(a3)}`;
        }), n3;
      } catch (e4) {
        return t4;
      }
    }
    static removeQueryParameterFromUrl(t4, e3) {
      if (!t4 || !e3)
        return t4;
      const n3 = new URL(t4), a3 = new URLSearchParams(n3.search);
      if (!a3 || 0 === a3.size || !a3.has(e3))
        return t4;
      a3.delete(e3);
      const r3 = Array.from(a3.entries()).map((t5) => {
        let [e4, n4] = t5;
        return `${e4}=${n4}`;
      }).join("&"), i3 = `${n3.origin}${n3.pathname}`;
      return r3 ? `${i3}?${r3}` : i3;
    }
    static parseHttpHeaders(t4) {
      let e3 = {};
      if (!t4)
        return e3;
      let n3 = t4.trim().split("\r\n");
      for (let t5 = 0, a3 = n3.length; t5 < a3; t5++) {
        let a4 = n3[t5], r3 = a4.indexOf(": ");
        r3 > 0 && (e3[a4.substring(0, r3)] = a4.substring(r3 + 2));
      }
      return e3;
    }
    static parseQueryParams(t4) {
      const e3 = [], n3 = new URLSearchParams(t4);
      for (const [t5, a3] of n3.entries())
        e3.push({ key: decodeURIComponent(t5), value: decodeURIComponent(a3) });
      return e3;
    }
    static generateUuid() {
      let t4 = (/* @__PURE__ */ new Date()).getTime();
      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e3) {
        const n3 = (t4 + 16 * Math.random()) % 16 | 0;
        return t4 = Math.floor(t4 / 16), ("x" == e3 ? n3 : 3 & n3 | 8).toString(16);
      });
    }
    static generateHashCode(t4) {
      let e3 = 0;
      if (0 === t4.length)
        return e3;
      for (let n3 = 0; n3 < t4.length; n3++)
        e3 = (e3 << 5) - e3 + t4.charCodeAt(n3), e3 |= 0;
      return e3;
    }
    static getRelativeUrl(t4, e3) {
      try {
        const n3 = new URL(t4), r3 = new URL(e3);
        if (n3.protocol = r3.protocol, n3.origin !== r3.origin)
          return e3;
        let i3 = a2.relative(n3.pathname.substr(0, n3.pathname.lastIndexOf("/")), r3.pathname.substr(0, r3.pathname.lastIndexOf("/")));
        const l3 = 0 === i3.length ? 1 : 0;
        return i3 += r3.pathname.substr(r3.pathname.lastIndexOf("/") + l3, r3.pathname.length - 1), r3.pathname.length < i3.length ? r3.pathname : i3;
      } catch (t5) {
        return e3;
      }
    }
    static getHostFromUrl(t4) {
      try {
        return new URL(t4).host;
      } catch (t5) {
        return null;
      }
    }
    static parseUserAgent() {
      let t4 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
      try {
        const e3 = null === t4 && "undefined" != typeof navigator ? navigator.userAgent.toLowerCase() : "";
        return (0, r2.UAParser)(e3);
      } catch (t5) {
        return {};
      }
    }
    static stringHasProtocol(t4) {
      return /(http(s?)):\/\//i.test(t4);
    }
    static bufferSourceToDataView(t4) {
      return l2.toDataView(t4, DataView);
    }
    static bufferSourceToInt8(t4) {
      return l2.toDataView(t4, Uint8Array);
    }
    static uint8ArrayToString(t4) {
      return new TextDecoder("utf-8").decode(t4);
    }
    static bufferSourceToHex(t4) {
      const e3 = l2.bufferSourceToInt8(t4);
      let n3 = "";
      for (let t5 of e3)
        t5 = t5.toString(16), 1 === t5.length && (t5 = "0" + t5), n3 += t5;
      return n3;
    }
    static toDataView(t4, e3) {
      const n3 = l2.getArrayBuffer(t4);
      let a3 = 1;
      "BYTES_PER_ELEMENT" in DataView && (a3 = DataView.BYTES_PER_ELEMENT);
      const r3 = ((t4.byteOffset || 0) + t4.byteLength) / a3, i3 = (t4.byteOffset || 0) / a3, o2 = Math.floor(Math.max(0, Math.min(i3, r3)));
      return new e3(n3, o2, Math.floor(Math.min(o2 + Math.max(1 / 0, 0), r3)) - o2);
    }
    static getArrayBuffer(t4) {
      return t4 instanceof ArrayBuffer ? t4 : t4.buffer;
    }
    static getCodecFamily(t4) {
      const { base: e3, profile: n3 } = l2._getCodecParts(t4);
      switch (e3) {
        case "mp4a":
          switch (n3) {
            case "69":
            case "6b":
            case "40.34":
              return i2.default.CODEC_FAMILIES.MP3;
            case "66":
            case "67":
            case "68":
            case "40.2":
            case "40.02":
            case "40.5":
            case "40.05":
            case "40.29":
            case "40.42":
              return i2.default.CODEC_FAMILIES.AAC;
            case "a5":
              return i2.default.CODEC_FAMILIES.AC3;
            case "e6":
              return i2.default.CODEC_FAMILIES.EC3;
            case "b2":
              return i2.default.CODEC_FAMILIES.DTSX;
            case "a9":
              return i2.default.CODEC_FAMILIES.DTSC;
          }
          break;
        case "avc1":
        case "avc3":
          return i2.default.CODEC_FAMILIES.AVC;
        case "hvc1":
        case "hvc3":
          return i2.default.CODEC_FAMILIES.HEVC;
        default:
          return e3;
      }
      return e3;
    }
    static _getCodecParts(t4) {
      const [e3, ...n3] = t4.split(".");
      return { base: e3, profile: n3.join(".") };
    }
  }
  e2.default = l2;
}, 8986: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { getVersionString: function() {
    return r2;
  } });
  const a2 = "5.0.3";
  function r2() {
    return a2;
  }
}, 8748: function(t3, e2, n2) {
  n2.r(e2), e2.default = class {
    extend(t4, e3) {
      if (!t4)
        return;
      let n3 = !!e3 && e3.override, a2 = !!e3 && e3.publicOnly;
      for (const e4 in t4)
        !t4.hasOwnProperty(e4) || this[e4] && !n3 || a2 && -1 === t4[e4].indexOf("public_") || (this[e4] = t4[e4]);
    }
  };
}, 5734: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(7252);
  class r2 extends a2.default {
    constructor() {
      super(), this.ATTEMPT_BACKGROUND_SYNC = "attemptBackgroundSync", this.BUFFERING_COMPLETED = "bufferingCompleted", this.BUFFER_CLEARED = "bufferCleared", this.BYTES_APPENDED_END_FRAGMENT = "bytesAppendedEndFragment", this.BUFFER_REPLACEMENT_STARTED = "bufferReplacementStarted", this.CHECK_FOR_EXISTENCE_COMPLETED = "checkForExistenceCompleted", this.CMSD_STATIC_HEADER = "cmsdStaticHeader", this.CURRENT_TRACK_CHANGED = "currentTrackChanged", this.DATA_UPDATE_COMPLETED = "dataUpdateCompleted", this.INBAND_EVENTS = "inbandEvents", this.INITIAL_STREAM_SWITCH = "initialStreamSwitch", this.INIT_FRAGMENT_LOADED = "initFragmentLoaded", this.INIT_FRAGMENT_NEEDED = "initFragmentNeeded", this.INTERNAL_MANIFEST_LOADED = "internalManifestLoaded", this.ORIGINAL_MANIFEST_LOADED = "originalManifestLoaded", this.LOADING_COMPLETED = "loadingCompleted", this.LOADING_PROGRESS = "loadingProgress", this.LOADING_DATA_PROGRESS = "loadingDataProgress", this.LOADING_ABANDONED = "loadingAborted", this.MANIFEST_UPDATED = "manifestUpdated", this.MEDIA_FRAGMENT_LOADED = "mediaFragmentLoaded", this.MEDIA_FRAGMENT_NEEDED = "mediaFragmentNeeded", this.MEDIAINFO_UPDATED = "mediaInfoUpdated", this.QUOTA_EXCEEDED = "quotaExceeded", this.SEGMENT_LOCATION_BLACKLIST_ADD = "segmentLocationBlacklistAdd", this.SEGMENT_LOCATION_BLACKLIST_CHANGED = "segmentLocationBlacklistChanged", this.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD = "serviceLocationBlacklistAdd", this.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED = "serviceLocationBlacklistChanged", this.SERVICE_LOCATION_LOCATION_BLACKLIST_ADD = "serviceLocationLocationBlacklistAdd", this.SERVICE_LOCATION_LOCATION_BLACKLIST_CHANGED = "serviceLocationLocationBlacklistChanged", this.SET_FRAGMENTED_TEXT_AFTER_DISABLED = "setFragmentedTextAfterDisabled", this.SET_NON_FRAGMENTED_TEXT = "setNonFragmentedText", this.SOURCE_BUFFER_ERROR = "sourceBufferError", this.STREAMS_COMPOSED = "streamsComposed", this.STREAM_BUFFERING_COMPLETED = "streamBufferingCompleted", this.STREAM_REQUESTING_COMPLETED = "streamRequestingCompleted", this.TEXT_TRACKS_QUEUE_INITIALIZED = "textTracksQueueInitialized", this.TIME_SYNCHRONIZATION_COMPLETED = "timeSynchronizationComplete", this.UPDATE_TIME_SYNC_OFFSET = "updateTimeSyncOffset", this.URL_RESOLUTION_FAILED = "urlResolutionFailed", this.VIDEO_CHUNK_RECEIVED = "videoChunkReceived", this.WALLCLOCK_TIME_UPDATED = "wallclockTimeUpdated", this.XLINK_ELEMENT_LOADED = "xlinkElementLoaded", this.XLINK_READY = "xlinkReady", this.SEEK_TARGET = "seekTarget", this.SETTING_UPDATED_LIVE_DELAY = "settingUpdatedLiveDelay", this.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT = "settingUpdatedLiveDelayFragmentCount", this.SETTING_UPDATED_CATCHUP_ENABLED = "settingUpdatedCatchupEnabled", this.SETTING_UPDATED_PLAYBACK_RATE_MIN = "settingUpdatedPlaybackRateMin", this.SETTING_UPDATED_PLAYBACK_RATE_MAX = "settingUpdatedPlaybackRateMax", this.SETTING_UPDATED_ABR_ACTIVE_RULES = "settingUpdatedAbrActiveRules", this.SETTING_UPDATED_MAX_BITRATE = "settingUpdatedMaxBitrate", this.SETTING_UPDATED_MIN_BITRATE = "settingUpdatedMinBitrate";
    }
  }
  e2.default = r2;
}, 3621: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(5734);
  class r2 extends a2.default {
  }
  let i2 = new r2();
  e2.default = i2;
}, 7252: function(t3, e2, n2) {
  n2.r(e2), e2.default = class {
    extend(t4, e3) {
      if (!t4)
        return;
      let n3 = !!e3 && e3.override, a2 = !!e3 && e3.publicOnly;
      for (const e4 in t4)
        !t4.hasOwnProperty(e4) || this[e4] && !n3 || a2 && -1 === t4[e4].indexOf("public_") || (this[e4] = t4[e4]);
    }
  };
}, 8854: function(t3, e2, n2) {
  n2.r(e2), e2.default = { ACCESSIBILITY: "Accessibility", ADAPTATION_SET: "AdaptationSet", ADAPTATION_SETS: "adaptationSets", ADAPTATION_SET_SWITCHING_SCHEME_ID_URI: "urn:mpeg:dash:adaptation-set-switching:2016", ADD: "add", ASSET_IDENTIFIER: "AssetIdentifier", AUDIO_CHANNEL_CONFIGURATION: "AudioChannelConfiguration", AUDIO_SAMPLING_RATE: "audioSamplingRate", AVAILABILITY_END_TIME: "availabilityEndTime", AVAILABILITY_START_TIME: "availabilityStartTime", AVAILABILITY_TIME_COMPLETE: "availabilityTimeComplete", AVAILABILITY_TIME_OFFSET: "availabilityTimeOffset", BANDWITH: "bandwidth", BASE_URL: "BaseURL", BITSTREAM_SWITCHING: "BitstreamSwitching", BITSTREAM_SWITCHING_MINUS: "bitstreamSwitching", BYTE_RANGE: "byteRange", CAPTION: "caption", CENC_DEFAULT_KID: "cenc:default_KID", CLIENT_DATA_REPORTING: "ClientDataReporting", CLIENT_REQUIREMENT: "clientRequirement", CMCD_PARAMETERS: "CMCDParameters", CODECS: "codecs", CODEC_PRIVATE_DATA: "codecPrivateData", CODING_DEPENDENCY: "codingDependency", CONTENT_COMPONENT: "ContentComponent", CONTENT_PROTECTION: "ContentProtection", CONTENT_STEERING: "ContentSteering", CONTENT_STEERING_RESPONSE: { VERSION: "VERSION", TTL: "TTL", RELOAD_URI: "RELOAD-URI", PATHWAY_PRIORITY: "PATHWAY-PRIORITY", PATHWAY_CLONES: "PATHWAY-CLONES", BASE_ID: "BASE-ID", ID: "ID", URI_REPLACEMENT: "URI-REPLACEMENT", HOST: "HOST", PARAMS: "PARAMS" }, CONTENT_TYPE: "contentType", DEFAULT_SERVICE_LOCATION: "defaultServiceLocation", DEPENDENCY_ID: "dependencyId", DURATION: "duration", DVB_PRIORITY: "dvb:priority", DVB_WEIGHT: "dvb:weight", DVB_URL: "dvb:url", DVB_MIMETYPE: "dvb:mimeType", DVB_FONTFAMILY: "dvb:fontFamily", DYNAMIC: "dynamic", END_NUMBER: "endNumber", ESSENTIAL_PROPERTY: "EssentialProperty", EVENT: "Event", EVENT_STREAM: "EventStream", FORCED_SUBTITLE: "forced-subtitle", FRAMERATE: "frameRate", FRAME_PACKING: "FramePacking", GROUP_LABEL: "GroupLabel", HEIGHT: "height", ID: "id", INBAND: "inband", INBAND_EVENT_STREAM: "InbandEventStream", INDEX: "index", INDEX_RANGE: "indexRange", INITIALIZATION: "Initialization", INITIALIZATION_MINUS: "initialization", LA_URL: "Laurl", LA_URL_LOWER_CASE: "laurl", LABEL: "Label", LANG: "lang", LOCATION: "Location", MAIN: "main", MAXIMUM_SAP_PERIOD: "maximumSAPPeriod", MAX_PLAYOUT_RATE: "maxPlayoutRate", MAX_SEGMENT_DURATION: "maxSegmentDuration", MAX_SUBSEGMENT_DURATION: "maxSubsegmentDuration", MEDIA: "media", MEDIA_PRESENTATION_DURATION: "mediaPresentationDuration", MEDIA_RANGE: "mediaRange", MEDIA_STREAM_STRUCTURE_ID: "mediaStreamStructureId", METRICS: "Metrics", METRICS_MINUS: "metrics", MIME_TYPE: "mimeType", MINIMUM_UPDATE_PERIOD: "minimumUpdatePeriod", MIN_BUFFER_TIME: "minBufferTime", MP4_PROTECTION_SCHEME: "urn:mpeg:dash:mp4protection:2011", MPD: "MPD", MPD_TYPE: "mpd", MPD_PATCH_TYPE: "mpdpatch", ORIGINAL_MPD_ID: "mpdId", ORIGINAL_PUBLISH_TIME: "originalPublishTime", PATCH_LOCATION: "PatchLocation", PERIOD: "Period", PRESENTATION_TIME: "presentationTime", PRESENTATION_TIME_OFFSET: "presentationTimeOffset", PRO: "pro", PRODUCER_REFERENCE_TIME: "ProducerReferenceTime", PRODUCER_REFERENCE_TIME_TYPE: { ENCODER: "encoder", CAPTURED: "captured", APPLICATION: "application" }, PROFILES: "profiles", PSSH: "pssh", PUBLISH_TIME: "publishTime", QUALITY_RANKING: "qualityRanking", QUERY_BEFORE_START: "queryBeforeStart", QUERY_PART: "$querypart$", RANGE: "range", RATING: "Rating", REF: "ref", REF_ID: "refId", REMOVE: "remove", REPLACE: "replace", REPORTING: "Reporting", REPRESENTATION: "Representation", REPRESENTATION_INDEX: "RepresentationIndex", ROBUSTNESS: "robustness", ROLE: "Role", S: "S", SAR: "sar", SCAN_TYPE: "scanType", SEGMENT_ALIGNMENT: "segmentAlignment", SEGMENT_BASE: "SegmentBase", SEGMENT_LIST: "SegmentList", SEGMENT_PROFILES: "segmentProfiles", SEGMENT_TEMPLATE: "SegmentTemplate", SEGMENT_TIMELINE: "SegmentTimeline", SEGMENT_TYPE: "segment", SEGMENT_URL: "SegmentURL", SERVICE_DESCRIPTION: "ServiceDescription", SERVICE_DESCRIPTION_LATENCY: "Latency", SERVICE_DESCRIPTION_OPERATING_BANDWIDTH: "OperatingBandwidth", SERVICE_DESCRIPTION_OPERATING_QUALITY: "OperatingQuality", SERVICE_DESCRIPTION_PLAYBACK_RATE: "PlaybackRate", SERVICE_DESCRIPTION_SCOPE: "Scope", SERVICE_LOCATION: "serviceLocation", SERVICE_LOCATIONS: "serviceLocations", SOURCE_URL: "sourceURL", START: "start", START_NUMBER: "startNumber", START_WITH_SAP: "startWithSAP", STATIC: "static", STEERING_TYPE: "steering", SUBSET: "Subset", SUBTITLE: "subtitle", SUB_REPRESENTATION: "SubRepresentation", SUB_SEGMENT_ALIGNMENT: "subsegmentAlignment", SUGGESTED_PRESENTATION_DELAY: "suggestedPresentationDelay", SUPPLEMENTAL_PROPERTY: "SupplementalProperty", SUPPLEMENTAL_CODECS: "scte214:supplementalCodecs", TIMESCALE: "timescale", TIMESHIFT_BUFFER_DEPTH: "timeShiftBufferDepth", TTL: "ttl", TYPE: "type", UTC_TIMING: "UTCTiming", VALUE: "value", VIEWPOINT: "Viewpoint", WALL_CLOCK_TIME: "wallClockTime", WIDTH: "width" };
}, 5717: function(t3, e2, n2) {
  n2.r(e2), e2.default = class {
    constructor() {
      this.schemeIdUri = "", this.value = "";
    }
  };
}, 255: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { default: function() {
    return Jo;
  } });
  class r2 {
    constructor() {
      this.time = null, this.verboseLevel = 0;
    }
    log(t4, e3) {
      if (this.verboseLevel >= t4) {
        const n3 = "function" == typeof e3 ? e3() : e3;
        console.log(`${this.time} [${t4}] ${n3}`);
      }
    }
  }
  class i2 {
    constructor() {
      this.foreground = "white", this.underline = false, this.italics = false, this.background = "black", this.flash = false;
    }
    reset() {
      this.foreground = "white", this.underline = false, this.italics = false, this.background = "black", this.flash = false;
    }
    setStyles(t4) {
      const e3 = ["foreground", "underline", "italics", "background", "flash"];
      for (let n3 = 0; n3 < e3.length; n3++) {
        const a2 = e3[n3];
        Object.prototype.hasOwnProperty.call(t4, a2) && (this[a2] = t4[a2]);
      }
    }
    isDefault() {
      return "white" === this.foreground && !this.underline && !this.italics && "black" === this.background && !this.flash;
    }
    equals(t4) {
      return this.foreground === t4.foreground && this.underline === t4.underline && this.italics === t4.italics && this.background === t4.background && this.flash === t4.flash;
    }
    copy(t4) {
      this.foreground = t4.foreground, this.underline = t4.underline, this.italics = t4.italics, this.background = t4.background, this.flash = t4.flash;
    }
  }
  class l2 {
    constructor() {
      this.uchar = " ", this.penState = new i2();
    }
    reset() {
      this.uchar = " ", this.penState.reset();
    }
    setChar(t4, e3) {
      this.uchar = t4, this.penState.copy(e3);
    }
    setPenState(t4) {
      this.penState.copy(t4);
    }
    equals(t4) {
      return this.uchar === t4.uchar && this.penState.equals(t4.penState);
    }
    copy(t4) {
      this.uchar = t4.uchar, this.penState.copy(t4.penState);
    }
    isEmpty() {
      return " " === this.uchar && this.penState.isDefault();
    }
  }
  const o2 = 100, u2 = { 42: 225, 92: 233, 94: 237, 95: 243, 96: 250, 123: 231, 124: 247, 125: 209, 126: 241, 127: 9608, 128: 174, 129: 176, 130: 189, 131: 191, 132: 8482, 133: 162, 134: 163, 135: 9834, 136: 224, 137: 32, 138: 232, 139: 226, 140: 234, 141: 238, 142: 244, 143: 251, 144: 193, 145: 201, 146: 211, 147: 218, 148: 220, 149: 252, 150: 8216, 151: 161, 152: 42, 153: 8217, 154: 9473, 155: 169, 156: 8480, 157: 8226, 158: 8220, 159: 8221, 160: 192, 161: 194, 162: 199, 163: 200, 164: 202, 165: 203, 166: 235, 167: 206, 168: 207, 169: 239, 170: 212, 171: 217, 172: 249, 173: 219, 174: 171, 175: 187, 176: 195, 177: 227, 178: 205, 179: 204, 180: 236, 181: 210, 182: 242, 183: 213, 184: 245, 185: 123, 186: 125, 187: 92, 188: 94, 189: 95, 190: 124, 191: 8764, 192: 196, 193: 228, 194: 214, 195: 246, 196: 223, 197: 165, 198: 164, 199: 9475, 200: 197, 201: 229, 202: 216, 203: 248, 204: 9487, 205: 9491, 206: 9495, 207: 9499 }, d2 = function(t4) {
    return String.fromCharCode(u2[t4] || t4);
  };
  class c2 {
    constructor() {
      let t4 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new r2();
      this.chars = [], this.cueStartTime = null, this.pos = 0, this.currPenState = new i2();
      for (let t5 = 0; t5 < o2; t5++)
        this.chars.push(new l2());
      this.logger = t4;
    }
    equals(t4) {
      for (let e3 = 0; e3 < o2; e3++)
        if (!this.chars[e3].equals(t4.chars[e3]))
          return false;
      return true;
    }
    copy(t4) {
      for (let e3 = 0; e3 < o2; e3++)
        this.chars[e3].copy(t4.chars[e3]);
    }
    isEmpty() {
      let t4 = true;
      for (let e3 = 0; e3 < o2; e3++)
        if (!this.chars[e3].isEmpty()) {
          t4 = false;
          break;
        }
      return t4;
    }
    setCursor(t4) {
      this.pos !== t4 && (this.pos = t4), this.pos < 0 ? (this.logger.log(3, "Negative cursor position " + this.pos), this.pos = 0) : this.pos > o2 && (this.logger.log(3, "Too large cursor position " + this.pos), this.pos = o2);
    }
    moveCursor(t4) {
      const e3 = this.pos + t4;
      if (t4 > 1)
        for (let t5 = this.pos + 1; t5 < e3 + 1; t5++)
          this.chars[t5].setPenState(this.currPenState);
      this.setCursor(e3);
    }
    backSpace() {
      this.moveCursor(-1), this.chars[this.pos].setChar(" ", this.currPenState);
    }
    insertChar(t4) {
      t4 >= 144 && this.backSpace();
      const e3 = d2(t4);
      this.pos >= o2 ? this.logger.log(0, () => "Cannot insert " + t4.toString(16) + " (" + e3 + ") at position " + this.pos + ". Skipping it!") : (this.chars[this.pos].setChar(e3, this.currPenState), this.moveCursor(1));
    }
    clearFromPos(t4) {
      let e3;
      for (e3 = t4; e3 < o2; e3++)
        this.chars[e3].reset();
    }
    clear() {
      this.clearFromPos(0), this.pos = 0, this.currPenState.reset();
    }
    clearToEndOfRow() {
      this.clearFromPos(this.pos);
    }
    getTextString() {
      const t4 = [];
      let e3 = true;
      for (let n3 = 0; n3 < o2; n3++) {
        const a2 = this.chars[n3].uchar;
        " " !== a2 && (e3 = false), t4.push(a2);
      }
      return e3 ? "" : t4.join("");
    }
    setPenStyles(t4) {
      this.currPenState.setStyles(t4), this.chars[this.pos].setPenState(this.currPenState);
    }
  }
  const f2 = 15;
  class g2 {
    constructor() {
      let t4 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new r2();
      this.rows = [], this.currRow = 14, this.nrRollUpRows = null, this.lastOutputScreen = null;
      for (let e3 = 0; e3 < f2; e3++)
        this.rows.push(new c2(t4));
      this.logger = t4;
    }
    reset() {
      for (let t4 = 0; t4 < f2; t4++)
        this.rows[t4].clear();
      this.currRow = 14;
    }
    equals(t4) {
      let e3 = true;
      for (let n3 = 0; n3 < f2; n3++)
        if (!this.rows[n3].equals(t4.rows[n3])) {
          e3 = false;
          break;
        }
      return e3;
    }
    copy(t4) {
      for (let e3 = 0; e3 < f2; e3++)
        this.rows[e3].copy(t4.rows[e3]);
    }
    isEmpty() {
      let t4 = true;
      for (let e3 = 0; e3 < f2; e3++)
        if (!this.rows[e3].isEmpty()) {
          t4 = false;
          break;
        }
      return t4;
    }
    backSpace() {
      this.rows[this.currRow].backSpace();
    }
    clearToEndOfRow() {
      this.rows[this.currRow].clearToEndOfRow();
    }
    insertChar(t4) {
      this.rows[this.currRow].insertChar(t4);
    }
    setPen(t4) {
      this.rows[this.currRow].setPenStyles(t4);
    }
    moveCursor(t4) {
      this.rows[this.currRow].moveCursor(t4);
    }
    setCursor(t4) {
      this.logger.log(2, "setCursor: " + t4), this.rows[this.currRow].setCursor(t4);
    }
    setPAC(t4) {
      this.logger.log(2, () => "pacData = " + JSON.stringify(t4));
      let e3 = t4.row - 1;
      if (this.nrRollUpRows && e3 < this.nrRollUpRows - 1 && (e3 = this.nrRollUpRows - 1), this.nrRollUpRows && this.currRow !== e3) {
        for (let t6 = 0; t6 < f2; t6++)
          this.rows[t6].clear();
        const t5 = this.currRow + 1 - this.nrRollUpRows, n4 = this.lastOutputScreen;
        if (n4) {
          const a3 = n4.rows[t5].cueStartTime, r3 = this.logger.time;
          if (null !== a3 && null !== r3 && a3 < r3)
            for (let a4 = 0; a4 < this.nrRollUpRows; a4++)
              this.rows[e3 - this.nrRollUpRows + a4 + 1].copy(n4.rows[t5 + a4]);
        }
      }
      this.currRow = e3;
      const n3 = this.rows[this.currRow];
      if (null !== t4.indent) {
        const e4 = t4.indent, a3 = Math.max(e4 - 1, 0);
        n3.setCursor(t4.indent), t4.color = n3.chars[a3].penState.foreground;
      }
      const a2 = { foreground: t4.color, underline: t4.underline, italics: t4.italics, background: "black", flash: false };
      this.setPen(a2);
    }
    setBkgData(t4) {
      this.logger.log(2, () => "bkgData = " + JSON.stringify(t4)), this.backSpace(), this.setPen(t4), this.insertChar(32);
    }
    setRollUpRows(t4) {
      this.nrRollUpRows = t4;
    }
    rollUp() {
      if (null === this.nrRollUpRows)
        return void this.logger.log(3, "roll_up but nrRollUpRows not set yet");
      this.logger.log(1, () => this.getDisplayText());
      const t4 = this.currRow + 1 - this.nrRollUpRows, e3 = this.rows.splice(t4, 1)[0];
      e3.clear(), this.rows.splice(this.currRow, 0, e3), this.logger.log(2, "Rolling up");
    }
    getDisplayText(t4) {
      t4 = t4 || false;
      const e3 = [];
      let n3 = "", a2 = -1;
      for (let n4 = 0; n4 < f2; n4++) {
        const r3 = this.rows[n4].getTextString();
        r3 && (a2 = n4 + 1, t4 ? e3.push("Row " + a2 + ": '" + r3 + "'") : e3.push(r3.trim()));
      }
      return e3.length > 0 && (n3 = t4 ? "[" + e3.join(" | ") + "]" : e3.join("\n")), n3;
    }
    getTextAndFormat() {
      return this.rows;
    }
  }
  class m2 {
    constructor(t4, e3) {
      let n3 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new r2();
      this.chNr = t4, this.outputFilter = e3, this.mode = null, this.displayedMemory = new g2(n3), this.nonDisplayedMemory = new g2(n3), this.lastOutputScreen = new g2(n3), this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null, this.logger = n3, this.logger.log(2, "new Cea608Channel(" + this.chNr + ")");
    }
    reset() {
      var t4, e3;
      this.mode = null, this.displayedMemory.reset(), this.nonDisplayedMemory.reset(), this.lastOutputScreen.reset(), null === (e3 = null === (t4 = this.outputFilter) || void 0 === t4 ? void 0 : t4.reset) || void 0 === e3 || e3.call(t4), this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null;
    }
    setPAC(t4) {
      this.writeScreen.setPAC(t4);
    }
    setBkgData(t4) {
      this.writeScreen.setBkgData(t4);
    }
    setMode(t4) {
      t4 !== this.mode && (this.mode = t4, this.logger.log(2, () => "MODE=" + t4), "MODE_POP-ON" === this.mode ? this.writeScreen = this.nonDisplayedMemory : (this.writeScreen = this.displayedMemory, this.writeScreen.reset()), "MODE_ROLL-UP" !== this.mode && (this.displayedMemory.setRollUpRows(null), this.nonDisplayedMemory.setRollUpRows(null)), this.mode = t4);
    }
    insertChars(t4) {
      for (let e4 = 0; e4 < t4.length; e4++)
        this.writeScreen.insertChar(t4[e4]);
      const e3 = this.writeScreen === this.displayedMemory ? "DISP" : "NON_DISP";
      this.logger.log(2, () => e3 + ": " + this.writeScreen.getDisplayText(true)), "MODE_PAINT-ON" !== this.mode && "MODE_ROLL-UP" !== this.mode || (this.logger.log(1, () => "DISPLAYED: " + this.displayedMemory.getDisplayText(true)), this.outputDataUpdate());
    }
    ccRCL() {
      this.logger.log(2, "RCL - Resume Caption Loading"), this.setMode("MODE_POP-ON");
    }
    ccBS() {
      this.logger.log(2, "BS - BackSpace"), "MODE_TEXT" !== this.mode && (this.writeScreen.backSpace(), this.writeScreen === this.displayedMemory && this.outputDataUpdate());
    }
    ccAOF() {
    }
    ccAON() {
    }
    ccDER() {
      this.logger.log(2, "DER- Delete to End of Row"), this.writeScreen.clearToEndOfRow(), this.outputDataUpdate();
    }
    ccRU(t4) {
      this.logger.log(2, "RU(" + t4 + ") - Roll Up"), this.writeScreen = this.displayedMemory, this.setMode("MODE_ROLL-UP"), this.writeScreen.setRollUpRows(t4);
    }
    ccFON() {
      this.logger.log(2, "FON - Flash On"), this.writeScreen.setPen({ flash: true });
    }
    ccRDC() {
      this.logger.log(2, "RDC - Resume Direct Captioning"), this.setMode("MODE_PAINT-ON");
    }
    ccTR() {
      this.logger.log(2, "TR"), this.setMode("MODE_TEXT");
    }
    ccRTD() {
      this.logger.log(2, "RTD"), this.setMode("MODE_TEXT");
    }
    ccEDM() {
      this.logger.log(2, "EDM - Erase Displayed Memory"), this.displayedMemory.reset(), this.outputDataUpdate(true);
    }
    ccCR() {
      this.logger.log(2, "CR - Carriage Return"), this.writeScreen.rollUp(), this.outputDataUpdate(true);
    }
    ccENM() {
      this.logger.log(2, "ENM - Erase Non-displayed Memory"), this.nonDisplayedMemory.reset();
    }
    ccEOC() {
      if (this.logger.log(2, "EOC - End Of Caption"), "MODE_POP-ON" === this.mode) {
        const t4 = this.displayedMemory;
        this.displayedMemory = this.nonDisplayedMemory, this.nonDisplayedMemory = t4, this.writeScreen = this.nonDisplayedMemory, this.logger.log(1, () => "DISP: " + this.displayedMemory.getDisplayText());
      }
      this.outputDataUpdate(true);
    }
    ccTO(t4) {
      this.logger.log(2, "TO(" + t4 + ") - Tab Offset"), this.writeScreen.moveCursor(t4);
    }
    ccMIDROW(t4) {
      const e3 = { flash: false };
      if (e3.underline = t4 % 2 == 1, e3.italics = t4 >= 46, e3.italics)
        e3.foreground = "white";
      else {
        const n3 = Math.floor(t4 / 2) - 16, a2 = ["white", "green", "blue", "cyan", "red", "yellow", "magenta"];
        e3.foreground = a2[n3];
      }
      this.logger.log(2, "MIDROW: " + JSON.stringify(e3)), this.writeScreen.setPen(e3);
    }
    outputDataUpdate() {
      let t4 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
      const e3 = this.logger.time;
      null !== e3 && this.outputFilter && (null !== this.cueStartTime || this.displayedMemory.isEmpty() ? this.displayedMemory.equals(this.lastOutputScreen) || (this.outputFilter.newCue(this.cueStartTime, e3, this.lastOutputScreen), t4 && this.outputFilter.dispatchCue && this.outputFilter.dispatchCue(), this.cueStartTime = this.displayedMemory.isEmpty() ? null : e3) : this.cueStartTime = e3, this.lastOutputScreen.copy(this.displayedMemory));
    }
    cueSplitAtTime(t4) {
      this.outputFilter && (this.displayedMemory.isEmpty() || (this.outputFilter.newCue && this.outputFilter.newCue(this.cueStartTime, t4, this.displayedMemory), this.cueStartTime = t4));
    }
  }
  const h2 = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "black", "transparent"];
  function p2(t4, e3, n3) {
    return n3.a === t4 && n3.b === e3;
  }
  const b2 = function(t4) {
    const e3 = [];
    for (let n3 = 0; n3 < t4.length; n3++)
      e3.push(t4[n3].toString(16));
    return e3;
  }, y2 = { 17: 2, 18: 4, 21: 6, 22: 8, 23: 10, 19: 13, 20: 15 }, E2 = { 25: 2, 26: 4, 29: 6, 30: 8, 31: 10, 27: 13, 28: 15 }, _2 = { 17: 1, 18: 3, 21: 5, 22: 7, 23: 9, 16: 11, 19: 12, 20: 14 }, T2 = { 25: 1, 26: 3, 29: 5, 30: 7, 31: 9, 24: 11, 27: 12, 28: 14 };
  function v2(t4, e3, n3) {
    n3.a = t4, n3.b = e3;
  }
  class w2 {
    constructor(t4, e3, n3) {
      this.currentChannel = 0, this.cmdHistory = { a: null, b: null }, this.lastTime = null;
      const a2 = this.logger = new r2();
      this.channels = [null, new m2(t4, e3, a2), new m2(t4 + 1, n3, a2)];
    }
    addData(t4, e3) {
      this.lastTime = t4, this.logger.time = t4;
      for (let n3 = 0; n3 < e3.length; n3 += 2) {
        const a2 = 127 & e3[n3], r3 = 127 & e3[n3 + 1];
        let i3 = false, l3 = null;
        if (null !== this.lastTime && (t4 = this.lastTime + 0.5 * n3 * 1001 / 3e4, this.logger.time = t4), 0 === a2 && 0 === r3)
          continue;
        this.logger.log(3, () => "[" + b2([e3[n3], e3[n3 + 1]]) + "] -> (" + b2([a2, r3]) + ")");
        const o3 = this.cmdHistory;
        if (a2 >= 16 && a2 <= 31) {
          if (p2(a2, r3, o3)) {
            v2(null, null, o3), this.logger.log(3, () => "Repeated command (" + b2([a2, r3]) + ") is dropped");
            continue;
          }
          v2(a2, r3, this.cmdHistory), i3 = this.parseCmd(a2, r3), i3 || (i3 = this.parseMidrow(a2, r3)), i3 || (i3 = this.parsePAC(a2, r3)), i3 || (i3 = this.parseBackgroundAttributes(a2, r3));
        } else
          v2(null, null, o3);
        if (!i3 && (l3 = this.parseChars(a2, r3), l3.length)) {
          const t5 = this.currentChannel;
          t5 && t5 > 0 ? this.channels[t5].insertChars(l3) : this.logger.log(2, "No channel found yet. TEXT-MODE?");
        }
        i3 || l3 || this.logger.log(2, () => "Couldn't parse cleaned data " + b2([a2, r3]) + " orig: " + b2([e3[n3], e3[n3 + 1]]));
      }
    }
    parseCmd(t4, e3) {
      if (!((20 === t4 || 28 === t4 || 21 === t4 || 29 === t4) && e3 >= 32 && e3 <= 47 || (23 === t4 || 31 === t4) && e3 >= 33 && e3 <= 35))
        return false;
      const n3 = 20 === t4 || 21 === t4 || 23 === t4 ? 1 : 2, a2 = this.channels[n3];
      return 20 === t4 || 21 === t4 || 28 === t4 || 29 === t4 ? 32 === e3 ? a2.ccRCL() : 33 === e3 ? a2.ccBS() : 34 === e3 ? a2.ccAOF() : 35 === e3 ? a2.ccAON() : 36 === e3 ? a2.ccDER() : 37 === e3 ? a2.ccRU(2) : 38 === e3 ? a2.ccRU(3) : 39 === e3 ? a2.ccRU(4) : 40 === e3 ? a2.ccFON() : 41 === e3 ? a2.ccRDC() : 42 === e3 ? a2.ccTR() : 43 === e3 ? a2.ccRTD() : 44 === e3 ? a2.ccEDM() : 45 === e3 ? a2.ccCR() : 46 === e3 ? a2.ccENM() : 47 === e3 && a2.ccEOC() : a2.ccTO(e3 - 32), this.currentChannel = n3, true;
    }
    parseMidrow(t4, e3) {
      let n3 = 0;
      if ((17 === t4 || 25 === t4) && e3 >= 32 && e3 <= 47) {
        if (n3 = 17 === t4 ? 1 : 2, n3 !== this.currentChannel)
          return this.logger.log(0, "Mismatch channel in midrow parsing"), false;
        const a2 = this.channels[n3];
        return !!a2 && (a2.ccMIDROW(e3), this.logger.log(3, () => "MIDROW (" + b2([t4, e3]) + ")"), true);
      }
      return false;
    }
    parsePAC(t4, e3) {
      let n3;
      if (!((t4 >= 17 && t4 <= 23 || t4 >= 25 && t4 <= 31) && e3 >= 64 && e3 <= 127 || (16 === t4 || 24 === t4) && e3 >= 64 && e3 <= 95))
        return false;
      const a2 = t4 <= 23 ? 1 : 2;
      n3 = e3 >= 64 && e3 <= 95 ? 1 === a2 ? _2[t4] : T2[t4] : 1 === a2 ? y2[t4] : E2[t4];
      const r3 = this.channels[a2];
      return !!r3 && (r3.setPAC(this.interpretPAC(n3, e3)), this.currentChannel = a2, true);
    }
    interpretPAC(t4, e3) {
      let n3;
      const a2 = { color: null, italics: false, indent: null, underline: false, row: t4 };
      return n3 = e3 > 95 ? e3 - 96 : e3 - 64, a2.underline = !(1 & ~n3), n3 <= 13 ? a2.color = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "white"][Math.floor(n3 / 2)] : n3 <= 15 ? (a2.italics = true, a2.color = "white") : a2.indent = 4 * Math.floor((n3 - 16) / 2), a2;
    }
    parseChars(t4, e3) {
      let n3, a2 = [], r3 = null;
      if (t4 >= 25 ? (n3 = 2, r3 = t4 - 8) : (n3 = 1, r3 = t4), r3 >= 17 && r3 <= 19) {
        let t5;
        t5 = 17 === r3 ? e3 + 80 : 18 === r3 ? e3 + 112 : e3 + 144, this.logger.log(2, () => "Special char '" + d2(t5) + "' in channel " + n3), a2 = [t5];
      } else
        t4 >= 32 && t4 <= 127 && (a2 = 0 === e3 ? [t4] : [t4, e3]);
      return a2 && this.logger.log(3, () => "Char codes =  " + b2(a2).join(",")), a2;
    }
    parseBackgroundAttributes(t4, e3) {
      if (!((16 === t4 || 24 === t4) && e3 >= 32 && e3 <= 47 || (23 === t4 || 31 === t4) && e3 >= 45 && e3 <= 47))
        return false;
      let n3;
      const a2 = {};
      16 === t4 || 24 === t4 ? (n3 = Math.floor((e3 - 32) / 2), a2.background = h2[n3], e3 % 2 == 1 && (a2.background = a2.background + "_semi")) : 45 === e3 ? a2.background = "transparent" : (a2.foreground = "black", 47 === e3 && (a2.underline = true));
      const r3 = t4 <= 23 ? 1 : 2;
      return this.channels[r3].setBkgData(a2), true;
    }
    reset() {
      for (let t4 = 0; t4 < Object.keys(this.channels).length; t4++) {
        const e3 = this.channels[t4];
        e3 && e3.reset();
      }
      v2(null, null, this.cmdHistory);
    }
    cueSplitAtTime(t4) {
      for (let e3 = 0; e3 < this.channels.length; e3++) {
        const n3 = this.channels[e3];
        n3 && n3.cueSplitAtTime(t4);
      }
    }
  }
  var S2 = n2(5212), I = n2(8854), k = { TCP_CONNECTION: "TcpList", HTTP_REQUEST: "HttpList", TRACK_SWITCH: "RepSwitchList", BUFFER_LEVEL: "BufferLevel", BUFFER_LOADED: "bufferLoaded", ABANDON_LOAD: "abandonload", ALLOW_LOAD: "allowload", BUFFER_EMPTY: "bufferStalled", BUFFER_STATE: "BufferState", DVR_INFO: "DVRInfo", DROPPED_FRAMES: "DroppedFrames", SCHEDULING_INFO: "SchedulingInfo", REQUESTS_QUEUE: "RequestsQueue", MANIFEST_UPDATE: "ManifestUpdate", MANIFEST_UPDATE_STREAM_INFO: "ManifestUpdatePeriodInfo", MANIFEST_UPDATE_TRACK_INFO: "ManifestUpdateRepresentationInfo", PLAY_LIST: "PlayList", DVB_ERRORS: "DVBErrors", HTTP_REQUEST_DVB_REPORTING_TYPE: "DVBReporting" }, A = n2(8850), R = n2(3621), N = n2(138), C = n2(649), D = n2(1191);
  function x() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, w3, I2, N2, x2;
    function M2() {
      L2(), h3 = false, c3 = 0, f3 = 0, y3 = 0, I2 = false, E3 = true, _3 = false, N2 = false, T3 = NaN, b3 = NaN, s2 && (e3.off(R.default.DATA_UPDATE_COMPLETED, Q2, n3), e3.off(R.default.MANIFEST_UPDATED, _t2, n3), e3.off(R.default.STREAMS_COMPOSED, Tt2, n3), e3.off(D.default.PLAYBACK_ENDED, mt2, n3), e3.off(D.default.STREAM_INITIALIZING, yt2, n3), e3.off(D.default.REPRESENTATION_SWITCH, Et2, n3), e3.off(D.default.BUFFER_LEVEL_STATE_CHANGED, tt2, n3), X2(), s2.removeEventListener("canplay", Z2), s2.removeEventListener("canplaythrough", J2), s2.removeEventListener("play", et2), s2.removeEventListener("waiting", nt2), s2.removeEventListener("playing", at2), s2.removeEventListener("pause", rt2), s2.removeEventListener("error", ht2), s2.removeEventListener("seeking", it2), s2.removeEventListener("seeked", lt2), s2.removeEventListener("timeupdate", ot2), s2.removeEventListener("progress", st2), s2.removeEventListener("ratechange", ut2), s2.removeEventListener("loadedmetadata", dt2), s2.removeEventListener("loadeddata", ct2), s2.removeEventListener("stalled", bt2), s2.removeEventListener("ended", ft2), s2.removeEventListener("volumechange", gt2)), d3 = null, s2 = null, g3 = null, m3 = null;
    }
    function z2() {
      return parseFloat((O2(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null) - q2()).toFixed(5));
    }
    function O2(t5) {
      const e4 = t5 || g3;
      return e4.start + e4.duration;
    }
    function P2() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
      g3 && s2 && s2.getElement() ? (t5 && m3 && j2(q2()), s2.play()) : h3 = true;
    }
    function L2() {
      g3 && s2 && s2.pause();
    }
    function F2(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n4 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r4 = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
      g3 && s2 && s2.getElement() && t5 !== (isNaN(T3) ? s2.getTime() : T3) && (v3 = true === n4, v3 || (T3 = t5), a2.info("Requesting seek to time: " + t5 + (v3 ? " (internal)" : "")), m3 && r4 && j2(t5), s2.setCurrentTime(t5, e4));
    }
    function U2() {
      if (!g3 || !s2 || !m3)
        return;
      const t5 = r3 && r3.hasVideoTrack() ? S2.default.VIDEO : S2.default.AUDIO, e4 = l3.getCurrentDVRInfo(t5);
      return e4 && e4.range ? e4.range.end : 0;
    }
    function j2(t5) {
      const e4 = new Date(u3.getClientReferenceTime()), n4 = o3.getRegularPeriods()[0], a3 = u3.calcPresentationTimeFromWallTime(e4, n4);
      c3 = a3 - t5;
    }
    function q2() {
      return g3 && s2 ? s2.getTime() : null;
    }
    function B2() {
      return g3 && s2 ? s2.isPaused() : null;
    }
    function G2() {
      return g3 && s2 ? s2.isSeeking() : null;
    }
    function H2() {
      return g3 && s2 ? s2.isStalled() : null;
    }
    function Y2() {
      return g3 && s2 ? s2.getPlaybackRate() : null;
    }
    function V2() {
      return g3 && s2 ? s2.getEnded() : null;
    }
    function K2() {
      return m3;
    }
    function W2() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
      if (B2() || !m3 || 0 === s2.getReadyState() || G2() || I2)
        return;
      t5 || (t5 = r3.hasVideoTrack() ? S2.default.VIDEO : S2.default.AUDIO);
      const e4 = q2(), n4 = function(t6, e5) {
        const n5 = l3.getCurrentDVRInfo(e5), a3 = n5 ? n5.range : null;
        let r4;
        return a3 ? (r4 = t6 > a3.end ? Math.max(a3.end - c3, a3.start) : t6 > 0 && t6 + 0.25 < a3.start && Math.abs(t6 - a3.start) < 31536e4 ? _3 ? Math.max(a3.end - c3, a3.start) : a3.start : t6, r4) : NaN;
      }(e4, t5);
      !isNaN(n4) && n4 !== e4 && !G2() && (H2() || w3 || 1 === s2.getReadyState()) && (a2.debug(`UpdateCurrentTime: Seek to actual time: ${n4} from currentTime: ${e4}`), F2(n4, false, false));
    }
    function $2() {
      null === d3 && (d3 = setInterval(() => {
        !function() {
          if (e3.trigger(R.default.WALLCLOCK_TIME_UPDATED, { isDynamic: m3, time: /* @__PURE__ */ new Date() }), K2()) {
            const t5 = Date.now();
            (isNaN(b3) || t5 > b3 + x2.get().streaming.liveUpdateTimeThresholdInMilliseconds) && (r3.addDVRMetric(), B2() ? function() {
              const t6 = Date.now();
              (!p3 || t6 > p3 + 500) && (p3 = t6, ot2());
            }() : W2(), b3 = t5);
          }
        }();
      }, x2.get().streaming.wallclockTimeUpdateInterval));
    }
    function X2() {
      clearInterval(d3), d3 = null;
    }
    function Q2(t5) {
      const e4 = t5.currentRepresentation, n4 = e4 ? e4.mediaInfo.streamInfo : null;
      null !== n4 && g3.id === n4.id && (g3 = n4);
    }
    function Z2() {
      e3.trigger(R.default.CAN_PLAY);
    }
    function J2() {
      e3.trigger(R.default.CAN_PLAY_THROUGH);
    }
    function tt2(t5) {
      t5.streamId === r3.getActiveStreamInfo().id && (w3 = t5.state === k.BUFFER_EMPTY, x2.get().streaming.buffer.setStallState && s2.setStallState(t5.mediaType, t5.state === k.BUFFER_EMPTY));
    }
    function et2() {
      a2.info("Native video element event: play"), W2(), $2(), e3.trigger(R.default.PLAYBACK_STARTED, { startTime: q2() });
    }
    function nt2() {
      a2.info("Native video element event: waiting"), e3.trigger(R.default.PLAYBACK_WAITING, { playingTime: q2() });
    }
    function at2() {
      a2.info("Native video element event: playing"), v3 = false, e3.trigger(R.default.PLAYBACK_PLAYING, { playingTime: q2() });
    }
    function rt2() {
      a2.info("Native video element event: pause"), e3.trigger(R.default.PLAYBACK_PAUSED, { ended: V2() });
    }
    function it2() {
      if (v3)
        return;
      let t5 = q2();
      isNaN(T3) || T3 === t5 || (t5 = T3), T3 = NaN, a2.info("Seeking to: " + t5), $2(), e3.trigger(R.default.PLAYBACK_SEEKING, { seekTime: t5, streamId: g3.id });
    }
    function lt2() {
      a2.info("Native video element event: seeked"), v3 = false, e3.trigger(R.default.PLAYBACK_SEEKED);
    }
    function ot2() {
      g3 && e3.trigger(R.default.PLAYBACK_TIME_UPDATED, { timeToEnd: z2(), time: q2(), streamId: g3.id });
    }
    function st2() {
      e3.trigger(R.default.PLAYBACK_PROGRESS, { streamId: g3.id });
    }
    function ut2() {
      const t5 = Y2();
      a2.info("Native video element event: ratechange: ", t5), e3.trigger(R.default.PLAYBACK_RATE_CHANGED, { playbackRate: t5 });
    }
    function dt2() {
      a2.info("Native video element event: loadedmetadata"), e3.trigger(R.default.PLAYBACK_METADATA_LOADED), $2();
    }
    function ct2() {
      a2.info("Native video element event: loadeddata"), e3.trigger(R.default.PLAYBACK_LOADED_DATA);
    }
    function ft2() {
      a2.info("Native video element event: ended"), L2(), X2();
      const t5 = r3 ? r3.getActiveStreamInfo() : null;
      t5 && e3.trigger(R.default.PLAYBACK_ENDED, { isLast: t5.isLast });
    }
    function gt2() {
      e3.trigger(R.default.PLAYBACK_VOLUME_CHANGED);
    }
    function mt2(t5) {
      if (d3 && t5.isLast) {
        a2.info("onPlaybackEnded -- PLAYBACK_ENDED but native video element didn't fire ended");
        const e4 = t5.seekTime ? t5.seekTime : O2();
        s2.setCurrentTime(e4), L2(), X2();
      }
    }
    function ht2(t5) {
      const n4 = t5.target || t5.srcElement;
      e3.trigger(R.default.PLAYBACK_ERROR, { error: n4.error });
    }
    function pt2() {
      m3 = false;
    }
    function bt2(t5) {
      e3.trigger(R.default.PLAYBACK_STALLED, { e: t5 });
    }
    function yt2(t5) {
      var e4;
      (e4 = t5.mediaInfo) && e4.supplementalProperties && e4.supplementalProperties.find((t6) => t6.schemeIdUri === S2.default.SUPPLEMENTAL_PROPERTY_DVB_LL_SCHEME) && (a2.debug("Low Latency critical SupplementalProperty set: Enabling low Latency"), _3 = true);
    }
    function Et2(t5) {
      const e4 = r3.getActiveStreamInfo();
      t5 && e4 && t5.currentRepresentation && t5.streamId && t5.streamId === e4.id && t5.mediaType && (t5.mediaType === S2.default.VIDEO || t5.mediaType === S2.default.AUDIO) && (E3 = t5.currentRepresentation.availabilityTimeComplete, _3 = !E3, _3 && !N2 && (N2 = true));
    }
    function _t2() {
      I2 = true;
    }
    function Tt2() {
      I2 = false;
    }
    return n3 = { computeAndSetLiveDelay: function(t5, e4) {
      let n4, a3, r4;
      const l4 = !isNaN(t5) && isFinite(t5) ? t5 : NaN;
      let s3 = o3.getSuggestedPresentationDelay();
      const u4 = i3.getServiceDescriptionSettings();
      return n4 = isNaN(x2.get().streaming.delay.liveDelay) ? null === x2.get().streaming.delay.liveDelayFragmentCount || isNaN(x2.get().streaming.delay.liveDelayFragmentCount) || isNaN(l4) ? u4 && !isNaN(u4.liveDelay) && u4.liveDelay > 0 ? u4.liveDelay : true === x2.get().streaming.delay.useSuggestedPresentationDelay && null !== s3 && !isNaN(s3) && s3 > 0 ? s3 : isNaN(l4) ? e4 && !isNaN(e4.minBufferTime) ? 4 * e4.minBufferTime : 4 * g3.manifestInfo.minBufferTime : 4 * l4 : l4 * x2.get().streaming.delay.liveDelayFragmentCount : x2.get().streaming.delay.liveDelay, r4 = o3.getAvailabilityStartTime(), null !== r4 && (y3 = r4), a3 = e4 && e4.dvrWindowSize > 0 ? Math.min(n4, e4.dvrWindowSize) : n4, c3 = a3, f3 = a3, a3;
    }, getAvailabilityStartTime: function() {
      return y3;
    }, getBufferLevel: function() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, e4 = null;
      return r3.getActiveStreamProcessors().forEach((n4) => {
        if (!t5 || 0 === t5.length || -1 === t5.indexOf(n4.getType())) {
          const t6 = n4.getBufferLevel();
          e4 = null === e4 ? t6 : Math.min(e4, t6);
        }
      }), e4;
    }, getCurrentLiveLatency: function() {
      if (!m3 || isNaN(y3))
        return NaN;
      let t5 = q2();
      if (isNaN(t5) || 0 === t5)
        return 0;
      const e4 = (/* @__PURE__ */ new Date()).getTime() + 1e3 * u3.getClientTimeOffset();
      return Math.max(((e4 - y3 - 1e3 * t5) / 1e3).toFixed(3), 0);
    }, getEnded: V2, getInitialCatchupModeActivated: function() {
      return N2;
    }, getIsDynamic: K2, getIsManifestUpdateInProgress: function() {
      return I2;
    }, getLiveDelay: function() {
      return c3;
    }, getLowLatencyModeEnabled: function() {
      return _3;
    }, getOriginalLiveDelay: function() {
      return f3;
    }, getPlaybackRate: Y2, getPlaybackStalled: function() {
      return w3;
    }, getPlayedRanges: function() {
      return g3 && s2 ? s2.getPlayedRanges() : null;
    }, getStreamController: function() {
      return r3;
    }, getStreamEndTime: O2, getTime: q2, getTimeToStreamEnd: z2, initialize: function(t5, a3) {
      g3 = t5, true !== a3 && (s2.addEventListener("canplay", Z2), s2.addEventListener("canplaythrough", J2), s2.addEventListener("play", et2), s2.addEventListener("waiting", nt2), s2.addEventListener("playing", at2), s2.addEventListener("pause", rt2), s2.addEventListener("error", ht2), s2.addEventListener("seeking", it2), s2.addEventListener("seeked", lt2), s2.addEventListener("timeupdate", ot2), s2.addEventListener("progress", st2), s2.addEventListener("ratechange", ut2), s2.addEventListener("loadedmetadata", dt2), s2.addEventListener("loadeddata", ct2), s2.addEventListener("stalled", bt2), s2.addEventListener("ended", ft2), s2.addEventListener("volumechange", gt2), m3 = g3.manifestInfo.isDynamic, w3 = false, v3 = false, e3.on(R.default.DATA_UPDATE_COMPLETED, Q2, n3), e3.on(R.default.MANIFEST_UPDATED, _t2, n3), e3.on(R.default.STREAMS_COMPOSED, Tt2, n3), e3.on(D.default.PLAYBACK_ENDED, mt2, n3, { priority: A.default.EVENT_PRIORITY_HIGH }), e3.on(D.default.STREAM_INITIALIZING, yt2, n3), e3.on(D.default.REPRESENTATION_SWITCH, Et2, n3), e3.on(D.default.BUFFER_LEVEL_STATE_CHANGED, tt2, n3), e3.on(D.default.DYNAMIC_TO_STATIC, pt2, n3), h3 && (h3 = false, P2()));
    }, isPaused: B2, isProgressing: function() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 500;
      return new Promise((a3) => {
        let r4 = -1, i4 = null;
        const l4 = (t6) => {
          clearTimeout(i4), i4 = null, e3.off(D.default.PLAYBACK_TIME_UPDATED, o4, n3), a3(t6);
        }, o4 = (t6) => {
          r4 < 0 ? r4 = t6.time : t6.time > r4 + 0.1 && l4(true);
        };
        i4 = setTimeout(() => {
          l4(false);
        }, t5), e3.on(D.default.PLAYBACK_TIME_UPDATED, o4, n3);
      });
    }, isSeeking: G2, isStalled: H2, pause: L2, play: P2, reset: M2, seek: F2, seekToCurrentLive: function() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], e4 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n4 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
      const a3 = U2();
      0 !== a3 && F2(a3 - c3, t5, e4, n4);
    }, seekToOriginalLive: function() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], e4 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n4 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
      const a3 = U2();
      0 !== a3 && (c3 = f3, F2(a3 - c3, t5, e4, n4));
    }, setConfig: function(t5) {
      t5 && (t5.streamController && (r3 = t5.streamController), t5.serviceDescriptionController && (i3 = t5.serviceDescriptionController), t5.dashMetrics && (l3 = t5.dashMetrics), t5.adapter && (o3 = t5.adapter), t5.videoModel && (s2 = t5.videoModel), t5.timelineConverter && (u3 = t5.timelineConverter), t5.settings && (x2 = t5.settings));
    }, updateCurrentTime: W2 }, a2 = (0, C.default)(t4).getInstance().getLogger(n3), M2(), n3;
  }
  x.__dashjs_factory_name = "PlaybackController";
  var M = N.default.getSingletonFactory(x), z = n2(7568);
  class O {
    constructor(t4) {
      this.action = O.ACTION_DOWNLOAD, this.availabilityEndTime = null, this.availabilityStartTime = null, this.bandwidth = NaN, this.bytesLoaded = NaN, this.bytesTotal = NaN, this.delayLoadingTime = NaN, this.duration = NaN, this.endDate = null, this.firstByteDate = null, this.index = NaN, this.mediaStartTime = NaN, this.mediaType = null, this.range = null, this.representation = null, this.responseType = "arraybuffer", this.retryAttempts = 0, this.serviceLocation = null, this.startDate = null, this.startTime = NaN, this.timescale = NaN, this.type = null, this.url = t4 || null, this.wallStartTime = null;
    }
    isInitializationRequest() {
      return this.type && this.type === z.HTTPRequest.INIT_SEGMENT_TYPE;
    }
    setInfo(t4) {
      this.type = t4 && t4.init ? z.HTTPRequest.INIT_SEGMENT_TYPE : z.HTTPRequest.MEDIA_SEGMENT_TYPE, this.url = t4 && t4.url ? t4.url : null, this.range = t4 && t4.range ? t4.range.start + "-" + t4.range.end : null, this.mediaType = t4 && t4.mediaType ? t4.mediaType : null, this.representation = t4 && t4.representation ? t4.representation : null;
    }
  }
  O.ACTION_DOWNLOAD = "download", O.ACTION_COMPLETE = "complete";
  var P = O;
  const L = "loading", F = "executed", U = "failed";
  function j(t4) {
    const e3 = (t4 = t4 || {}).eventBus, n3 = t4.events, a2 = t4.dashMetrics, r3 = t4.fragmentLoader, i3 = t4.debug, l3 = t4.streamInfo, o3 = t4.type;
    let s2, u3, d3, c3;
    function f3(t5) {
      return !!t5 && function(e4) {
        let n4 = false;
        return e4.some((e5) => {
          if (a3 = t5, r4 = e5, !isNaN(a3.index) && a3.startTime === r4.startTime && a3.adaptationIndex === r4.adaptationIndex && a3.type === r4.type || function(t6, e6) {
            return t6.representation.id === e6.representation.id;
          }(t5, e5) || function(t6, e6) {
            return t6.action === P.ACTION_COMPLETE && t6.action === e6.action;
          }(t5, e5))
            return n4 = true, n4;
          var a3, r4;
        }), n4;
      }(d3);
    }
    function g3(t5) {
      return isNaN(t5.duration) ? 0.25 : Math.min(t5.duration / 8, 0.5);
    }
    function m3(t5) {
      d3 = d3.filter((e4) => {
        const n4 = g3(e4);
        return isNaN(e4.startTime) || void 0 !== t5 && e4.startTime >= t5 - n4;
      });
    }
    function h3(t5, e4) {
      e4 <= t5 + 0.5 || (d3 = d3.filter((n4) => {
        const a3 = g3(n4);
        return isNaN(n4.startTime) || n4.startTime >= e4 - a3 || isNaN(n4.duration) || n4.startTime + n4.duration <= t5 + a3;
      }));
    }
    function p3(t5, e4, n4) {
      for (let a3 = t5.length - 1; a3 >= 0; a3--) {
        const r4 = t5[a3], i4 = r4.startTime, l4 = i4 + r4.duration;
        if (n4 = isNaN(n4) ? g3(r4) : n4, !isNaN(i4) && !isNaN(l4) && e4 + n4 >= i4 && e4 - n4 < l4 || isNaN(i4) && isNaN(e4))
          return r4;
      }
      return null;
    }
    function b3(t5, e4) {
      a2.addSchedulingInfo(t5, e4), a2.addRequestsQueue(t5.mediaType, c3, d3);
    }
    function y3(t5) {
      t5.sender === r3 && (c3.splice(c3.indexOf(t5.request), 1), t5.response && !t5.error && d3.push(t5.request), b3(t5.request, t5.error ? U : F), e3.trigger(n3.FRAGMENT_LOADING_COMPLETED, { request: t5.request, response: t5.response, error: t5.error, sender: this }, { streamId: l3.id, mediaType: o3 }));
    }
    function E3(t5) {
      t5.sender === r3 && e3.trigger(n3.FRAGMENT_LOADING_PROGRESS, { request: t5.request, response: t5.response, error: t5.error, sender: this }, { streamId: l3.id, mediaType: o3 });
    }
    function _3(t5) {
      t5.sender === r3 && e3.trigger(n3.FRAGMENT_LOADING_ABANDONED, { request: t5.request }, { streamId: l3.id, mediaType: o3 });
    }
    function T3() {
      d3 = [], c3 = [], r3 && r3.resetInitialSettings();
    }
    return s2 = { abortRequests: function() {
      u3.debug("abort requests"), r3.abort(), c3 = [];
    }, executeRequest: function(t5) {
      t5.action === P.ACTION_DOWNLOAD ? (b3(t5, L), c3.push(t5), function(t6) {
        e3.trigger(n3.FRAGMENT_LOADING_STARTED, { request: t6 }, { streamId: l3.id, mediaType: o3 }), r3.load(t6);
      }(t5)) : u3.warn("Unknown request action.");
    }, getRequests: function(t5) {
      const e4 = t5 ? t5.state instanceof Array ? t5.state : [t5.state] : [];
      let n4 = [];
      return e4.forEach((e5) => {
        const a3 = function(t6) {
          let e6;
          switch (t6) {
            case L:
              e6 = c3;
              break;
            case F:
              e6 = d3;
              break;
            default:
              e6 = [];
          }
          return e6;
        }(e5);
        n4 = n4.concat(function(t6, e6) {
          return e6.hasOwnProperty("time") ? [p3(t6, e6.time, e6.threshold)] : t6.filter((t7) => {
            for (const n5 in e6)
              if ("state" !== n5 && e6.hasOwnProperty(n5) && t7[n5] != e6[n5])
                return false;
            return true;
          });
        }(a3, t5));
      }), n4;
    }, getStreamId: function() {
      return l3.id;
    }, getType: function() {
      return o3;
    }, isFragmentLoaded: f3, isFragmentLoadedOrPending: function(t5) {
      let e4, n4 = false, a3 = 0;
      if (n4 = f3(t5), !n4)
        for (a3 = 0; a3 < c3.length; a3++)
          e4 = c3[a3], t5.url === e4.url && t5.startTime === e4.startTime && (n4 = true);
      return n4;
    }, removeExecutedRequestsAfterTime: function(t5) {
      d3 = d3.filter((e4) => isNaN(e4.startTime) || void 0 !== t5 && e4.startTime < t5);
    }, removeExecutedRequestsBeforeTime: m3, reset: function() {
      e3.off(n3.LOADING_COMPLETED, y3, this), e3.off(n3.LOADING_DATA_PROGRESS, E3, this), e3.off(n3.LOADING_ABANDONED, _3, this), r3 && r3.reset(), T3();
    }, resetInitialSettings: T3, syncExecutedRequestsWithBufferedRange: function(t5, e4) {
      if (!t5 || 0 === t5.length)
        return void m3();
      let n4 = 0;
      for (let e5 = 0, a3 = t5.length; e5 < a3; e5++)
        h3(n4, t5.start(e5)), n4 = t5.end(e5);
      e4 > 0 && h3(n4, e4);
    } }, u3 = i3.getLogger(s2), T3(), e3.on(n3.LOADING_COMPLETED, y3, s2), e3.on(n3.LOADING_DATA_PROGRESS, E3, s2), e3.on(n3.LOADING_ABANDONED, _3, s2), s2;
  }
  j.__dashjs_factory_name = "FragmentModel";
  const q = N.default.getClassFactory(j);
  q.FRAGMENT_MODEL_LOADING = L, q.FRAGMENT_MODEL_EXECUTED = F, q.FRAGMENT_MODEL_CANCELED = "canceled", q.FRAGMENT_MODEL_FAILED = U, N.default.updateClassFactory(j.__dashjs_factory_name, q);
  var B = q, G = n2(1944), H = n2(8748);
  class Y extends H.default {
    constructor() {
      super(), this.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE = 10, this.MANIFEST_LOADER_LOADING_FAILURE_ERROR_CODE = 11, this.XLINK_LOADER_LOADING_FAILURE_ERROR_CODE = 12, this.SEGMENT_BASE_LOADER_ERROR_CODE = 15, this.TIME_SYNC_FAILED_ERROR_CODE = 16, this.FRAGMENT_LOADER_LOADING_FAILURE_ERROR_CODE = 17, this.FRAGMENT_LOADER_NULL_REQUEST_ERROR_CODE = 18, this.URL_RESOLUTION_FAILED_GENERIC_ERROR_CODE = 19, this.APPEND_ERROR_CODE = 20, this.REMOVE_ERROR_CODE = 21, this.DATA_UPDATE_FAILED_ERROR_CODE = 22, this.CAPABILITY_MEDIASOURCE_ERROR_CODE = 23, this.CAPABILITY_MEDIAKEYS_ERROR_CODE = 24, this.DOWNLOAD_ERROR_ID_MANIFEST_CODE = 25, this.DOWNLOAD_ERROR_ID_SIDX_CODE = 26, this.DOWNLOAD_ERROR_ID_CONTENT_CODE = 27, this.DOWNLOAD_ERROR_ID_INITIALIZATION_CODE = 28, this.DOWNLOAD_ERROR_ID_XLINK_CODE = 29, this.MANIFEST_ERROR_ID_PARSE_CODE = 31, this.MANIFEST_ERROR_ID_NOSTREAMS_CODE = 32, this.TIMED_TEXT_ERROR_ID_PARSE_CODE = 33, this.MANIFEST_ERROR_ID_MULTIPLEXED_CODE = 34, this.MEDIASOURCE_TYPE_UNSUPPORTED_CODE = 35, this.NO_SUPPORTED_KEY_IDS = 36, this.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE = "parsing failed for ", this.MANIFEST_LOADER_LOADING_FAILURE_ERROR_MESSAGE = "Failed loading manifest: ", this.XLINK_LOADER_LOADING_FAILURE_ERROR_MESSAGE = "Failed loading Xlink element: ", this.SEGMENTS_UPDATE_FAILED_ERROR_MESSAGE = "Segments update failed", this.SEGMENTS_UNAVAILABLE_ERROR_MESSAGE = "no segments are available yet", this.SEGMENT_BASE_LOADER_ERROR_MESSAGE = "error loading segment ranges from sidx", this.TIME_SYNC_FAILED_ERROR_MESSAGE = "Failed to synchronize client and server time", this.FRAGMENT_LOADER_NULL_REQUEST_ERROR_MESSAGE = "request is null", this.URL_RESOLUTION_FAILED_GENERIC_ERROR_MESSAGE = "Failed to resolve a valid URL", this.APPEND_ERROR_MESSAGE = "chunk is not defined", this.REMOVE_ERROR_MESSAGE = "Removing data from the SourceBuffer", this.DATA_UPDATE_FAILED_ERROR_MESSAGE = "Data update failed", this.CAPABILITY_MEDIASOURCE_ERROR_MESSAGE = "mediasource is not supported", this.CAPABILITY_MEDIAKEYS_ERROR_MESSAGE = "mediakeys is not supported", this.TIMED_TEXT_ERROR_MESSAGE_PARSE = "parsing error :", this.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE = "Error creating source buffer of type : ", this.NO_SUPPORTED_KEY_IDS_MESSAGE = "All possible Adaptation Sets have an invalid key status";
    }
  }
  var V = new Y(), K = n2(8261);
  function W(t4) {
    const e3 = this.context, n3 = (0, K.default)(e3).getInstance(), a2 = t4.textController, r3 = t4.eventBus;
    let i3, l3, o3, s2, u3, d3, c3 = [], f3 = [], g3 = false, m3 = t4.mediaSource, h3 = null;
    function p3(t5) {
      return t5.mimeType + ';codecs="' + t5.codecs + '"';
    }
    function b3(t5) {
      return s2 = a2.getTextSourceBuffer(t5), Promise.resolve();
    }
    function y3() {
      if ("function" == typeof s2.addEventListener)
        try {
          s2.addEventListener("updateend", I2, false), s2.addEventListener("error", k2, false), s2.addEventListener("abort", k2, false);
        } catch (t5) {
          d3 = setInterval(I2, 50);
        }
      else
        d3 = setInterval(I2, 50);
    }
    function E3() {
      try {
        "function" == typeof s2.removeEventListener && (s2.removeEventListener("updateend", I2, false), s2.removeEventListener("error", k2, false), s2.removeEventListener("abort", k2, false)), clearInterval(d3);
      } catch (t5) {
        o3.error(t5);
      }
    }
    function _3(t5) {
      return new Promise((e4) => {
        s2 && n3.get().streaming.buffer.useAppendWindow ? A2(() => {
          try {
            if (!s2)
              return void e4();
            let n4 = m3.duration, a3 = 0;
            t5 && !isNaN(t5.start) && !isNaN(t5.duration) && isFinite(t5.duration) && (n4 = t5.start + t5.duration), t5 && !isNaN(t5.start) && (a3 = t5.start), s2.appendWindowEnd === n4 && s2.appendWindowStart === a3 || (s2.appendWindowStart = 0, s2.appendWindowEnd = n4 + 0.01, s2.appendWindowStart = Math.max(a3 - 0.1, 0), o3.debug(`Updated append window for ${u3.type}. Set start to ${s2.appendWindowStart} and end to ${s2.appendWindowEnd}`)), e4();
          } catch (t6) {
            o3.warn("Failed to set append window"), e4();
          }
        }) : e4();
      });
    }
    function T3(t5) {
      return new Promise((e4) => {
        s2 ? A2(() => {
          try {
            s2.timestampOffset === t5 || isNaN(t5) || (s2.timestampOffset = t5, o3.debug(`Set MSE timestamp offset to ${t5}`)), e4();
          } catch (t6) {
            e4();
          }
        }) : e4();
      });
    }
    function v3() {
      if (!g3 && f3.length > 0) {
        g3 = true;
        const t5 = f3[0];
        f3.splice(0, 1);
        const e4 = function() {
          g3 = false, f3.length > 0 && v3.call(this), t5 && t5.data && t5.data.segmentType && t5.data.segmentType !== z.HTTPRequest.INIT_SEGMENT_TYPE && delete t5.data.bytes, t5.promise.resolve({ chunk: t5.data });
        };
        try {
          if (h3 = t5.request, 0 === t5.data.bytes.byteLength)
            e4.call(this);
          else {
            try {
              o3.debug(`Appending ${t5.data.segmentType} from period ${t5.data.streamId} to buffer. Request URL: ${t5.request.url}, Representation: ID: ${t5.data.representation.id}, bitrate: ${t5.data.representation.bitrateInKbit}`);
            } catch (t6) {
            }
            s2.appendBuffer ? s2.appendBuffer(t5.data.bytes) : s2.append(t5.data.bytes, t5.data), A2(e4.bind(this));
          }
        } catch (e5) {
          o3.fatal('SourceBuffer append failed "' + e5 + '"'), f3.length > 0 ? v3() : g3 = false, delete t5.data.bytes, t5.promise.reject({ chunk: t5.data, error: new G.default(e5.code, e5.message) });
        }
      }
    }
    function w3() {
      c3.length > 0 && !s2.updating && (c3.shift()(), w3());
    }
    function I2() {
      s2.updating || w3();
    }
    function k2(t5) {
      const e4 = t5.target || {};
      !function(t6, e5) {
        let n4 = e5 || {};
        r3.trigger(t6, n4, { streamId: u3.streamInfo.id, mediaType: l3 });
      }(R.default.SOURCE_BUFFER_ERROR, { error: e4, lastRequestAppended: h3 });
    }
    function A2(t5) {
      try {
        c3.push(t5), s2.updating || w3();
      } catch (t6) {
        o3.error(t6);
      }
    }
    return i3 = { abort: function() {
      return new Promise((t5) => {
        try {
          f3 = [], "open" === m3.readyState ? A2(() => {
            try {
              s2 && s2.abort(), t5();
            } catch (e4) {
              t5();
            }
          }) : s2 && s2.setTextTrack && "ended" === m3.readyState ? (s2.abort(), t5()) : t5();
        } catch (e4) {
          t5();
        }
      });
    }, abortBeforeAppend: function() {
      return new Promise((t5) => {
        A2(() => {
          const e4 = s2.appendWindowStart, n4 = s2.appendWindowEnd;
          s2 && (s2.abort(), s2.appendWindowStart = e4, s2.appendWindowEnd = n4), t5();
        });
      });
    }, append: function(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
      return new Promise((n4, a3) => {
        t5 ? (f3.push({ data: t5, promise: { resolve: n4, reject: a3 }, request: e4 }), A2(v3.bind(this))) : a3({ chunk: t5, error: new G.default(V.APPEND_ERROR_CODE, V.APPEND_ERROR_MESSAGE) });
      });
    }, changeType: function(t5) {
      const e4 = p3(t5);
      return new Promise((t6) => {
        A2(() => {
          s2.changeType && (o3.debug(`Changing SourceBuffer codec to ${e4}`), s2.changeType(e4)), t6();
        });
      });
    }, getAllBufferRanges: function() {
      try {
        return s2.buffered;
      } catch (t5) {
        return o3.error("getAllBufferRanges exception: " + t5.message), null;
      }
    }, getBuffer: function() {
      return s2;
    }, getType: function() {
      return l3;
    }, initializeForFirstUse: function(t5, e4) {
      u3 = t5;
      const n4 = t5.streamInfo;
      l3 = u3.type;
      const a3 = e4 ? p3(e4) : t5.codec;
      try {
        if (a3.match(/application\/mp4;\s*codecs="(stpp|wvtt).*"/i))
          return b3(n4);
        s2 = m3.addSourceBuffer(a3), y3();
        const t6 = [];
        return t6.push(_3(u3.streamInfo)), e4 && void 0 !== e4.mseTimeOffset && t6.push(T3(e4.mseTimeOffset)), Promise.all(t6);
      } catch (t6) {
        return u3.type == S2.default.TEXT && !u3.isFragmented || -1 !== a3.indexOf('codecs="stpp') || -1 !== a3.indexOf('codecs="vtt') || -1 !== a3.indexOf("text/vtt") ? b3(n4) : Promise.reject(t6);
      }
    }, initializeForStreamSwitch: function(t5, e4, n4) {
      u3 = t5, l3 = u3.type, function(t6) {
        s2 = t6.getBuffer();
      }(n4), y3();
    }, remove: function(t5) {
      return new Promise((e4, n4) => {
        const a3 = t5.start, r4 = t5.end;
        a3 >= 0 && r4 > a3 ? A2(function() {
          try {
            s2.remove(a3, r4), A2(function() {
              e4({ from: a3, to: r4, unintended: false }), t5.resolve && t5.resolve();
            });
          } catch (e5) {
            n4({ from: a3, to: r4, unintended: false, error: new G.default(V.REMOVE_ERROR_CODE, V.REMOVE_ERROR_MESSAGE) }), t5.reject && t5.reject(e5);
          }
        }) : e4();
      });
    }, removeEventListeners: E3, reset: function() {
      if (s2) {
        try {
          c3 = [], E3(), g3 = false, f3 = [], s2.getClassName && "TextSourceBuffer" === s2.getClassName() || (o3.debug("Removing sourcebuffer from media source"), m3.removeSourceBuffer(s2));
        } catch (t5) {
        }
        s2 = null;
      }
      h3 = null;
    }, updateAppendWindow: _3, updateTimestampOffset: T3 }, o3 = (0, C.default)(e3).getInstance().getLogger(i3), i3;
  }
  W.__dashjs_factory_name = "SourceBufferSink";
  var $ = N.default.getClassFactory(W);
  function X(t4) {
    const e3 = this.context;
    let n3, a2, r3, i3 = [], l3 = t4;
    function o3(t5, e4) {
      return i3 = i3.filter((n4) => !((isNaN(e4) || n4.start < e4) && (isNaN(t5) || n4.end > t5))), Promise.resolve();
    }
    return n3 = { getAllBufferRanges: function() {
      let t5 = [];
      for (let e5 = 0; e5 < i3.length; e5++) {
        let n4 = i3[e5];
        0 === t5.length || n4.start > t5[t5.length - 1].end ? t5.push({ start: n4.start, end: n4.end }) : t5[t5.length - 1].end = n4.end;
      }
      const e4 = { start: function(e5) {
        return t5[e5].start;
      }, end: function(e5) {
        return t5[e5].end;
      } };
      return Object.defineProperty(e4, "length", { get: function() {
        return t5.length;
      } }), e4;
    }, append: function(t5) {
      return "InitializationSegment" !== t5.segmentType ? (i3.push(t5), i3.sort(function(t6, e4) {
        return t6.start - e4.start;
      }), r3 = null) : r3 = t5, a2.debug("PreBufferSink appended chunk s: " + t5.start + "; e: " + t5.end), l3 && l3({ chunk: t5 }), Promise.resolve();
    }, remove: o3, abort: function() {
      return Promise.resolve();
    }, discharge: function(t5, e4) {
      const n4 = function(t6, e5) {
        return i3.filter((n5) => (isNaN(e5) || n5.start < e5) && (isNaN(t6) || n5.end > t6));
      }(t5, e4);
      return r3 && (n4.push(r3), r3 = null), o3(t5, e4), n4;
    }, reset: function() {
      i3 = [], r3 = null, l3 = null;
    }, updateTimestampOffset: function() {
      return Promise.resolve();
    }, waitForUpdateEnd: function(t5) {
      t5();
    }, getBuffer: function() {
      return this;
    } }, a2 = (0, C.default)(e3).getInstance().getLogger(n3), n3;
  }
  X.__dashjs_factory_name = "PreBufferSink";
  var Q = N.default.getClassFactory(X);
  function Z() {
    let t4 = {};
    return { save: function(e3) {
      const n3 = e3.streamId, a2 = e3.representation.id;
      t4[n3] = t4[n3] || {}, t4[n3][a2] = e3;
    }, extract: function(e3, n3) {
      return t4 && t4[e3] && t4[e3][n3] ? t4[e3][n3] : null;
    }, reset: function() {
      t4 = {};
    } };
  }
  Z.__dashjs_factory_name = "InitCache";
  var J = N.default.getSingletonFactory(Z);
  const tt = 0.01, et = "BufferController";
  function nt(t4) {
    const e3 = (t4 = t4 || {}).capabilities, n3 = this.context, a2 = (0, A.default)(n3).getInstance(), r3 = t4.fragmentModel, i3 = t4.playbackController, l3 = t4.representationController, o3 = t4.settings, s2 = t4.streamInfo, u3 = t4.textController, d3 = t4.type;
    let c3, f3, g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, w3, I2, N2, x2, M2, O2, P2, L2, F2;
    function U2(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
      return new Promise((n4, a3) => {
        p3 = t5, E3 && e4 && "function" == typeof E3.discharge ? (_3 = E3, j2(e4).then(() => {
          n4();
        }).catch((t6) => {
          a3(t6);
        })) : n4();
      });
    }
    function j2(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], r4 = arguments.length > 2 ? arguments[2] : void 0;
      return new Promise((i4, o4) => {
        O2 && t5 ? p3 ? (T3 = false, function(t6, e5, r5) {
          return new Promise((i5) => {
            E3 = $(n3).create({ mediaSource: p3, textController: u3, eventBus: a2 }), function(t7, e6, n4) {
              const a3 = l3.getCurrentRepresentation();
              return e6 && e6[d3] && (d3 === S2.default.VIDEO || d3 === S2.default.AUDIO) ? function(t8, e7, n5, a4) {
                E3.initializeForStreamSwitch(t8, e7, n5[d3]);
                const r6 = [];
                return r6.push(E3.abortBeforeAppend()), r6.push(pt2()), r6.push(W2(e7, a4)), e7 && void 0 !== e7.mseTimeOffset && r6.push(ht2(e7)), Promise.allSettled(r6);
              }(t7, a3, e6, n4) : function(t8, e7) {
                return E3.initializeForFirstUse(t8, e7);
              }(t7, a3);
            }(t6, e5, r5).then(() => ht2(l3.getCurrentRepresentation())).then(() => {
              i5(E3);
            }).catch((t7) => {
              f3.warn("Caught error on create SourceBuffer: " + t7), i5(E3);
            });
          });
        }(t5, e4, r4).then((t6) => {
          i4(t6);
        }).catch((t6) => {
          o4(t6);
        })) : (T3 = true, function() {
          return new Promise((t6, e5) => {
            E3 = Q(n3).create(V2.bind(this)), ht2(l3.getCurrentRepresentation()).then(() => {
              t6(E3);
            }).catch(() => {
              e5();
            });
          });
        }().then((t6) => {
          i4(t6);
        }).catch((t6) => {
          o4(t6);
        })) : i4(null);
      });
    }
    function q2(t5) {
      o3.get().streaming.cacheInitSegments && (f3.info("Init fragment finished loading saving to", d3 + "'s init cache"), O2.save(t5.chunk)), f3.debug(`Appending init fragment for type ${d3}, representationId ${t5.chunk.representation.id} and bandwidth ${t5.chunk.representation.bandwidth}`), H2(t5.chunk);
    }
    function G2(t5) {
      H2(t5.chunk, t5.request);
    }
    function H2(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
      E3 && (E3.append(t5, e4).then((t6) => {
        V2(t6);
      }).catch((t6) => {
        V2(t6);
      }), t5.representation.mediaInfo.type === S2.default.VIDEO && wt2(R.default.VIDEO_CHUNK_RECEIVED, { chunk: t5 }));
    }
    function Y2(t5) {
      if (t5 && t5.length > 0)
        for (let e4 = 0, n4 = t5.length; e4 < n4; e4++)
          f3.debug("Buffered range: " + t5.start(e4) + " - " + t5.end(e4) + ", currentTime = ", i3.getTime());
    }
    function V2(t5) {
      if (t5.error)
        return 22 === t5.error.code && function() {
          if (M2 = true, h3 = 0.8 * _t2(), f3.warn("Quota exceeded, Critical Buffer: " + h3), h3 > 0) {
            const t6 = Math.max(0.2 * h3, 1), e5 = h3 - t6, n5 = Math.min(o3.get().streaming.buffer.bufferTimeAtTopQuality, 0.9 * e5), a3 = Math.min(o3.get().streaming.buffer.bufferTimeAtTopQualityLongForm, 0.9 * e5), r4 = { streaming: { buffer: { bufferToKeep: parseFloat(t6.toFixed(5)), bufferTimeAtTopQuality: parseFloat(n5.toFixed(5)), bufferTimeAtTopQualityLongForm: parseFloat(a3.toFixed(5)) } } };
            o3.update(r4);
          }
        }(), void (22 !== t5.error.code && vt2() || (f3.warn("Clearing playback buffer to overcome quota exceed situation"), wt2(R.default.QUOTA_EXCEEDED, { criticalBufferLevel: h3, quotaExceededTime: t5.chunk.start }), ft2(ct2())));
      if (!E3)
        return;
      if (lt2(), M2 = false, I2 = t5.chunk, !I2 || !I2.endFragment)
        return;
      I2 && !isNaN(I2.index) && (b3 = Math.max(I2.index, b3), ot2());
      const e4 = E3.getAllBufferRanges();
      I2.segmentType === z.HTTPRequest.MEDIA_SEGMENT_TYPE && (Y2(e4), nt2(), function() {
        if (isNaN(F2) || T3)
          return;
        if (d3 !== S2.default.AUDIO && d3 !== S2.default.VIDEO)
          return void (F2 = NaN);
        const t6 = i3.getTime(), e5 = it2(t6, 0), n5 = it2(F2, 0);
        if (e5 && n5 && e5.start === n5.start)
          return void (F2 = NaN);
        const a3 = l3.getCurrentRepresentation().segmentDuration, r4 = it2(F2, a3);
        r4 && (o3.get().streaming.buffer.enableSeekDecorrelationFix && Math.abs(t6 - F2) > a3 ? F2 <= r4.end && i3.seek(Math.max(F2, r4.start), false, true) : t6 < r4.start && i3.seek(r4.start, false, true));
      }());
      let n4 = false;
      v3 && (v3.indexOf(I2) > 0 && (n4 = true), v3 = null), I2 && !n4 && wt2(R.default.BYTES_APPENDED_END_FRAGMENT, { startTime: I2.start, index: I2.index, bufferedRanges: e4, segmentType: I2.segmentType, mediaType: d3, representationId: I2.representation.id });
    }
    function K2(t5, e4) {
      const n4 = [];
      return n4.push(ht2(t5)), n4.push(E3 ? E3.abort() : Promise.resolve()), n4.push(W2(t5, e4)), Promise.allSettled(n4);
    }
    function W2(t5, n4) {
      return t5 && n4 ? t5 && n4 && t5.mimeType === n4.mimeType && t5.codecFamily === n4.codecFamily ? (f3.debug(`Switching to new codec ${t5.codecs} without changeType as previous codec ${n4.codecs} is compatible.`), Promise.resolve()) : o3.get().streaming.buffer.useChangeType && e3.supportsChangeType() ? (f3.debug(`Using changeType() to switch from codec ${n4.codecs} to ${t5.codecs}`), E3.changeType(t5)) : (f3.debug("changeType() not available"), Promise.resolve()) : (f3.warn("BufferController._changeCodec() is missing the information about the Representations. Doing nothing"), Promise.resolve());
    }
    function X2() {
      return new Promise((t5, e4) => {
        let n4 = Z2();
        if (!n4 || 0 === n4.length)
          return nt2(), void t5();
        ft2(n4).then(() => {
          t5();
        }).catch((t6) => {
          e4(t6);
        });
      });
    }
    function Z2(t5) {
      const e4 = [], n4 = E3.getAllBufferRanges();
      if (!n4 || 0 === n4.length)
        return e4;
      if (!t5 && 0 !== t5 || isNaN(t5))
        e4.push({ start: n4.start(0), end: n4.end(n4.length - 1) + 0.5 });
      else {
        const a3 = function(t6, e5) {
          const n5 = o3.get().streaming.buffer.bufferToKeep, a4 = e5.start(0);
          if (t6 - a4 > n5) {
            let e6 = Math.max(0, t6 - n5);
            const i5 = r3.getRequests({ state: B.FRAGMENT_MODEL_EXECUTED, time: t6, threshold: tt })[0];
            if (i5 && (e6 = Math.min(i5.startTime, e6)), e6 > 0)
              return { start: a4, end: e6 };
          }
          return null;
        }(t5, n4), i4 = function(t6, e5) {
          const n5 = e5.end(e5.length - 1) + 0.5, a4 = Tt2(t6), i5 = s2.manifestInfo.duration >= o3.get().streaming.buffer.longFormContentDurationThreshold ? o3.get().streaming.buffer.bufferTimeAtTopQualityLongForm : o3.get().streaming.buffer.bufferTimeAtTopQuality;
          let l4 = isNaN(a4) ? t6 : Math.min(a4, t6 + i5);
          if (l4 >= e5.end(e5.length - 1))
            return null;
          const u4 = r3.getRequests({ state: B.FRAGMENT_MODEL_EXECUTED, time: t6, threshold: tt })[0];
          if (u4 && (l4 = Math.max(u4.startTime + u4.duration, l4)), o3.get().streaming.buffer.avoidCurrentTimeRangePruning) {
            for (let a5 = 0; a5 < e5.length; a5++)
              if (e5.start(a5) <= t6 && t6 <= e5.end(a5) && e5.start(a5) <= l4 && l4 <= e5.end(a5)) {
                let r4 = l4;
                l4 = a5 + 1 < e5.length ? e5.start(a5 + 1) : e5.end(a5) + 1, f3.debug("Buffered range [" + e5.start(a5) + ", " + e5.end(a5) + "] overlaps with targetTime " + t6 + " and range to be pruned [" + r4 + ", " + n5 + "], using [" + l4 + ", " + n5 + "] instead" + (l4 < n5 ? "" : " (no actual pruning)"));
                break;
              }
          }
          return l4 < e5.end(e5.length - 1) ? { start: l4, end: n5 } : null;
        }(t5, n4);
        a3 && e4.push(a3), i4 && e4.push(i4);
      }
      return e4;
    }
    function nt2() {
      (!L2 || d3 === S2.default.TEXT && u3.isTextEnabled()) && lt2();
    }
    function at2() {
      st2();
    }
    function rt2() {
      st2(), F2 = NaN;
    }
    function it2(t5, e4) {
      if (!E3)
        return null;
      const n4 = E3.getAllBufferRanges();
      let a3, r4, i4 = 0, l4 = 0, o4 = null, s3 = null, u4 = 0;
      const d4 = isNaN(e4) ? 0.15 : e4;
      if (null != n4) {
        for (r4 = 0, a3 = n4.length; r4 < a3; r4++)
          if (i4 = n4.start(r4), l4 = n4.end(r4), null === o4)
            u4 = Math.abs(i4 - t5), (t5 >= i4 && t5 < l4 || u4 <= d4) && (o4 = i4, s3 = l4);
          else {
            if (u4 = i4 - s3, !(u4 <= d4))
              break;
            s3 = l4;
          }
        if (null !== o4)
          return { start: o4, end: s3 };
      }
      return null;
    }
    function lt2() {
      if (i3) {
        let t5 = i3.getTime() || 0;
        T3 && (t5 = isNaN(F2) ? 0 : F2);
        const e4 = o3.get().streaming.gaps.jumpGaps && !isNaN(o3.get().streaming.gaps.smallGapLimit) ? o3.get().streaming.gaps.smallGapLimit : NaN;
        m3 = Math.max(function(t6, e5) {
          let n4, a3;
          return o3.get().streaming.gaps.jumpGaps && (e5 = o3.get().streaming.gaps.smallGapLimit), n4 = it2(t6, e5), a3 = null === n4 ? 0 : n4.end - t6, a3;
        }(t5, e4), 0), wt2(R.default.BUFFER_LEVEL_UPDATED, { mediaType: d3, bufferLevel: m3 }), st2();
      }
    }
    function ot2() {
      const t5 = b3 >= y3 - 1, e4 = i3.getTimeToStreamEnd(s2) - m3 < 1e-5;
      !t5 && !e4 || g3 || (Et2(true), f3.debug(`checkIfBufferingCompleted trigger BUFFERING_COMPLETED for stream id ${s2.id} and type ${d3}`));
    }
    function st2() {
      if (d3 !== S2.default.AUDIO && d3 !== S2.default.VIDEO)
        return;
      const t5 = i3.getLowLatencyModeEnabled() ? o3.get().streaming.buffer.lowLatencyStallThreshold : o3.get().streaming.buffer.stallThreshold;
      m3 <= t5 && !g3 ? ut2(k.BUFFER_EMPTY) : (g3 || m3 > t5) && ut2(k.BUFFER_LOADED);
    }
    function ut2(t5) {
      w3 === t5 || t5 === k.BUFFER_EMPTY && 0 === i3.getTime() || d3 === S2.default.TEXT && !u3.isTextEnabled() || (w3 = t5, wt2(R.default.BUFFER_LEVEL_STATE_CHANGED, { state: t5 }), wt2(t5 === k.BUFFER_LOADED ? R.default.BUFFER_LOADED : R.default.BUFFER_EMPTY), f3.debug(t5 === k.BUFFER_LOADED ? "Got enough buffer to start" : "Waiting for more buffer before starting playback"));
    }
    function dt2() {
      E3 && d3 !== S2.default.TEXT && (g3 || ft2(ct2()));
    }
    function ct2() {
      const t5 = [], e4 = E3.getAllBufferRanges();
      if (!e4 || 0 === e4.length)
        return t5;
      const n4 = i3.getTime();
      let a3 = Math.max(0, n4 - o3.get().streaming.buffer.bufferToKeep);
      const l4 = r3.getRequests({ state: B.FRAGMENT_MODEL_EXECUTED, time: n4, threshold: tt })[0];
      if (l4)
        a3 = Math.min(l4.startTime, a3);
      else if (0 === n4 && i3.getIsDynamic())
        return [];
      if (e4.start(0) <= a3) {
        const n5 = { start: 0, end: a3 };
        for (let t6 = 0; t6 < e4.length && e4.end(t6) <= a3; t6++)
          n5.end = e4.end(t6);
        n5.start < n5.end && t5.push(n5);
      }
      return t5;
    }
    function ft2(t5) {
      return new Promise((e4, n4) => {
        if (!t5 || !E3 || 0 === t5.length)
          return lt2(), void e4();
        const a3 = [];
        t5.forEach((t6) => {
          a3.push(function(t7) {
            return new Promise((e5, n5) => {
              t7.resolve = e5, t7.reject = n5, P2.push(t7);
            });
          }(t6));
        }), x2 || gt2(), Promise.all(a3).then(() => {
          e4();
        }).catch((t6) => {
          n4(t6);
        });
      });
    }
    function gt2() {
      try {
        if (0 === P2.length || !E3)
          return f3.debug("Nothing to prune, halt pruning"), P2 = [], void (x2 = false);
        const t5 = E3.getBuffer();
        if (!t5 || !t5.buffered || 0 === t5.buffered.length)
          return f3.debug("SourceBuffer is empty (or does not exist), halt pruning"), P2 = [], void (x2 = false);
        const e4 = P2.shift();
        f3.debug(`${d3}: Removing buffer from: ${e4.start} to ${e4.end}`), x2 = true, i3.getTime() < e4.end && Et2(false), E3.remove(e4).then((t6) => {
          mt2(t6);
        }).catch((t6) => {
          mt2(t6);
        });
      } catch (t5) {
        x2 = false;
      }
    }
    function mt2(t5) {
      f3.debug("onRemoved buffer from:", t5.from, "to", t5.to), E3 && (Y2(E3.getAllBufferRanges()), 0 === P2.length && (x2 = false, lt2()), t5.unintended && (f3.warn("Detected unintended removal from:", t5.from, "to", t5.to, "setting streamprocessor time to", t5.from), wt2(R.default.SEEK_TARGET, { time: t5.from })), x2 ? gt2() : (L2 ? L2 = false : lt2(), wt2(R.default.BUFFER_CLEARED, { from: t5.from, to: t5.to, unintended: t5.unintended, hasEnoughSpaceToAppend: vt2(), quotaExceeded: M2 })));
    }
    function ht2(t5) {
      return new Promise((e4) => {
        t5 && void 0 !== t5.mseTimeOffset && E3 && E3.updateTimestampOffset ? E3.updateTimestampOffset(t5.mseTimeOffset).then(() => {
          e4();
        }).catch(() => {
          e4();
        }) : e4();
      });
    }
    function pt2() {
      return E3 && !g3 ? E3.updateAppendWindow(s2) : Promise.resolve();
    }
    function bt2() {
      N2++, N2 * (o3.get().streaming.wallclockTimeUpdateInterval / 1e3) >= o3.get().streaming.buffer.bufferPruningInterval && (N2 = 0, dt2());
    }
    function yt2() {
      st2();
    }
    function Et2(t5) {
      g3 = t5, g3 ? wt2(R.default.BUFFERING_COMPLETED) : y3 = Number.POSITIVE_INFINITY;
    }
    function _t2() {
      try {
        const t5 = E3.getAllBufferRanges();
        let e4, n4, a3 = 0;
        if (!t5)
          return a3;
        for (n4 = 0, e4 = t5.length; n4 < e4; n4++)
          a3 += t5.end(n4) - t5.start(n4);
        return a3;
      } catch (t5) {
        return 0;
      }
    }
    function Tt2(t5) {
      try {
        let e4 = t5;
        const n4 = E3.getAllBufferRanges();
        if (!n4 || 0 === n4.length)
          return NaN;
        let a3 = 0;
        for (; e4 === t5 && a3 < n4.length; ) {
          const t6 = n4.start(a3), r4 = n4.end(a3);
          e4 >= t6 && e4 <= r4 && (e4 = r4), a3 += 1;
        }
        return e4 === t5 ? NaN : e4;
      } catch (t6) {
        return NaN;
      }
    }
    function vt2() {
      const t5 = _t2();
      return isNaN(t5) || t5 < h3;
    }
    function wt2(t5, e4) {
      let n4 = e4 || {};
      a2.trigger(t5, n4, { streamId: s2.id, mediaType: d3 });
    }
    function St2(t5, e4) {
      if (h3 = Number.POSITIVE_INFINITY, w3 = void 0, y3 = Number.POSITIVE_INFINITY, b3 = 0, I2 = null, g3 = false, x2 = false, M2 = false, m3 = 0, N2 = 0, P2 = [], F2 = NaN, T3 = false, E3) {
        let n4 = E3;
        E3 = null, t5 || (e4 ? n4.removeEventListeners() : n4.abort().then(() => {
          n4.reset(e4), n4 = null;
        }));
      }
      L2 = false;
    }
    return c3 = { appendInitSegmentFromCache: function(t5) {
      const e4 = O2.extract(s2.id, t5);
      return !!e4 && (f3.debug(`Appending init fragment for type ${d3}, representationId ${e4.representation.id} and bandwidth ${e4.representation.bandwidth}`), H2(e4), true);
    }, clearBuffers: ft2, createBufferSink: j2, dischargePreBuffer: function() {
      if (E3 && _3 && "function" == typeof _3.discharge) {
        const t5 = _3.getAllBufferRanges();
        if (t5.length > 0) {
          let e5 = "Beginning " + d3 + "PreBuffer discharge, adding buffer for:";
          for (let n5 = 0; n5 < t5.length; n5++)
            e5 += " start: " + t5.start(n5) + ", end: " + t5.end(n5) + ";";
          f3.debug(e5);
        } else
          f3.debug("PreBuffer discharge requested, but there were no media segments in the PreBuffer.");
        v3 = [];
        let e4 = _3.discharge(), n4 = null;
        for (let t6 = 0; t6 < e4.length; t6++) {
          const a3 = e4[t6];
          if (a3.segmentType !== z.HTTPRequest.INIT_SEGMENT_TYPE) {
            const t7 = O2.extract(a3.streamId, a3.representation.id);
            t7 && n4 !== t7 && (v3.push(t7), E3.append(t7), n4 = t7);
          }
          v3.push(a3), E3.append(a3);
        }
        _3.reset(), _3 = null;
      }
    }, getAllRangesWithSafetyFactor: Z2, getBuffer: function() {
      return E3;
    }, getBufferControllerType: function() {
      return et;
    }, getBufferLevel: function() {
      return m3;
    }, getContinuousBufferTimeForTargetTime: Tt2, getIsBufferingCompleted: function() {
      return g3;
    }, getIsPruningInProgress: function() {
      return x2;
    }, getMediaSource: function() {
      return p3;
    }, getRangeAt: it2, getStreamId: function() {
      return s2.id;
    }, getType: function() {
      return d3;
    }, hasBufferAtTime: function(t5) {
      try {
        const e4 = E3.getAllBufferRanges();
        if (!e4 || 0 === e4.length)
          return false;
        let n4 = 0;
        for (; n4 < e4.length; ) {
          const a3 = e4.start(n4), r4 = e4.end(n4);
          if (t5 >= a3 && t5 <= r4)
            return true;
          n4 += 1;
        }
        return false;
      } catch (t6) {
        return f3.error(t6), false;
      }
    }, initialize: function(t5) {
      U2(t5), a2.on(R.default.INIT_FRAGMENT_LOADED, q2, c3), a2.on(R.default.MEDIA_FRAGMENT_LOADED, G2, c3), a2.on(R.default.WALLCLOCK_TIME_UPDATED, bt2, c3), a2.on(D.default.PLAYBACK_PLAYING, rt2, c3), a2.on(D.default.PLAYBACK_PROGRESS, nt2, c3), a2.on(D.default.PLAYBACK_TIME_UPDATED, nt2, c3), a2.on(D.default.PLAYBACK_RATE_CHANGED, yt2, c3), a2.on(D.default.PLAYBACK_STALLED, at2, c3);
    }, prepareForAbandonQualitySwitch: function(t5, e4) {
      return K2(t5, e4);
    }, prepareForDefaultQualitySwitch: function(t5, e4) {
      return K2(t5, e4);
    }, prepareForFastQualitySwitch: function(t5, e4) {
      return K2(t5, e4);
    }, prepareForForceReplacementQualitySwitch: function(t5, e4) {
      return new Promise((n4) => {
        const a3 = [];
        a3.push(E3.abort()), a3.push(pt2()), a3.push(X2()), a3.push(ht2(t5)), a3.push(W2(t5, e4)), Promise.allSettled(a3).then(() => {
          Et2(false), n4();
        });
      });
    }, prepareForNonReplacementTrackSwitch: function(t5, e4) {
      return new Promise((n4) => {
        const a3 = [];
        a3.push(pt2()), a3.push(W2(t5, e4)), Promise.allSettled(a3).then(() => {
          n4();
        });
      });
    }, prepareForPlaybackSeek: function() {
      return g3 && Et2(false), E3.abort();
    }, prepareForReplacementTrackSwitch: function(t5, e4) {
      return new Promise((n4) => {
        const a3 = [];
        a3.push(E3.abort()), a3.push(pt2()), a3.push(W2(t5, e4)), a3.push(X2()), a3.push(ht2(t5)), Promise.allSettled(a3).then(() => {
          Et2(false), n4();
        });
      });
    }, pruneAllSafely: X2, pruneBuffer: dt2, reset: function(t5, e4) {
      a2.off(R.default.INIT_FRAGMENT_LOADED, q2, this), a2.off(R.default.MEDIA_FRAGMENT_LOADED, G2, this), a2.off(R.default.WALLCLOCK_TIME_UPDATED, bt2, this), a2.off(D.default.PLAYBACK_PLAYING, rt2, this), a2.off(D.default.PLAYBACK_PROGRESS, nt2, this), a2.off(D.default.PLAYBACK_TIME_UPDATED, nt2, this), a2.off(D.default.PLAYBACK_RATE_CHANGED, yt2, this), a2.off(D.default.PLAYBACK_STALLED, at2, this), St2(t5, e4);
    }, segmentRequestingCompleted: function(t5) {
      isNaN(t5) || (y3 = t5, ot2());
    }, setIsBufferingCompleted: Et2, setMediaSource: U2, setSeekTarget: function(t5) {
      F2 = t5;
    }, updateAppendWindow: pt2, updateBufferTimestampOffset: ht2 }, f3 = (0, C.default)(n3).getInstance().getLogger(c3), O2 = J(n3).getInstance(), St2(), c3;
  }
  nt.__dashjs_factory_name = et;
  var at = N.default.getClassFactory(nt);
  const rt = "NotFragmentedTextBufferController";
  function it(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, A.default)(e3).getInstance(), a2 = t4.textController, r3 = t4.errHandler, i3 = t4.streamInfo, l3 = t4.type;
    let o3, s2, u3, d3, c3, f3;
    function g3(t5) {
      d3 = t5;
    }
    function m3(t5) {
      s2 !== t5 && (s2 = t5, s2 && function(t6) {
        let e4 = {};
        n3.trigger(t6, e4, { streamId: i3.id, mediaType: l3 });
      }(R.default.BUFFERING_COMPLETED));
    }
    function h3(t5) {
      t5.chunk.bytes && !s2 && (f3.save(t5.chunk), c3.append(t5.chunk), m3(true));
    }
    return o3 = { initialize: function(t5) {
      g3(t5);
    }, getStreamId: function() {
      return i3.id;
    }, getType: function() {
      return l3;
    }, getBufferControllerType: function() {
      return rt;
    }, createBufferSink: function(t5) {
      return new Promise((i4, o4) => {
        try {
          c3 = $(e3).create({ mediaSource: d3, textController: a2, eventBus: n3 }), c3.initializeForFirstUse(t5), u3 || (c3.getBuffer() && "function" == typeof c3.getBuffer().initialize && c3.getBuffer().initialize(), u3 = true), i4(c3);
        } catch (t6) {
          r3.error(new G.default(V.MEDIASOURCE_TYPE_UNSUPPORTED_CODE, V.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE + l3)), o4(t6);
        }
      });
    }, dischargePreBuffer: function() {
    }, getBuffer: function() {
      return c3;
    }, getBufferLevel: function() {
      return 0;
    }, getRangeAt: function() {
      return null;
    }, pruneBuffer: function() {
    }, hasBufferAtTime: function() {
      return true;
    }, getAllRangesWithSafetyFactor: function() {
      return [];
    }, getContinuousBufferTimeForTargetTime: function() {
      return Number.POSITIVE_INFINITY;
    }, setMediaSource: g3, getMediaSource: function() {
      return d3;
    }, appendInitSegmentFromCache: function(t5) {
      return null !== f3.extract(i3.id, t5);
    }, getIsBufferingCompleted: function() {
      return s2;
    }, setIsBufferingCompleted: m3, getIsPruningInProgress: function() {
      return false;
    }, reset: function(t5) {
      n3.off(R.default.INIT_FRAGMENT_LOADED, h3, o3), !t5 && c3 && (c3.abort(), c3.reset(), c3 = null);
    }, clearBuffers: function() {
      return Promise.resolve();
    }, prepareForPlaybackSeek: function() {
      return Promise.resolve();
    }, prepareForReplacementTrackSwitch: function() {
      return s2 = false, Promise.resolve();
    }, setSeekTarget: function() {
    }, updateAppendWindow: function() {
      return Promise.resolve();
    }, pruneAllSafely: function() {
      return Promise.resolve();
    }, updateBufferTimestampOffset: function() {
      return Promise.resolve();
    }, segmentRequestingCompleted: function() {
    } }, u3 = false, d3 = null, s2 = false, f3 = J(e3).getInstance(), n3.on(R.default.INIT_FRAGMENT_LOADED, h3, o3), o3;
  }
  it.__dashjs_factory_name = rt;
  var lt = N.default.getClassFactory(it);
  function ot(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, A.default)(e3).getInstance(), a2 = t4.dashMetrics, r3 = t4.mediaPlayerModel, i3 = t4.fragmentModel, l3 = t4.abrController, o3 = t4.playbackController, s2 = t4.textController, u3 = t4.type, d3 = t4.bufferController, c3 = t4.representationController, f3 = t4.settings;
    let g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, w3, I2;
    function N2() {
      w3 = true;
    }
    function x2() {
      w3 = false;
    }
    function M2(t5) {
      if (d3.getIsBufferingCompleted())
        return;
      z2();
      const e4 = isNaN(t5) ? 0 : t5;
      b3 = setTimeout(O2, e4);
    }
    function z2() {
      b3 && (clearTimeout(b3), b3 = null);
    }
    function O2() {
      try {
        if (function() {
          try {
            return u3 === S2.default.TEXT && !s2.isTextEnabled() || o3.isPaused() && (!o3.getStreamController().getInitialPlayback() || !o3.getStreamController().getAutoPlay()) && !f3.get().streaming.scheduling.scheduleWhilePaused;
          } catch (t5) {
            return false;
          }
        }())
          return void z2();
        if (function() {
          try {
            return !!w3 && (c3.getCurrentRepresentation() && (null == _3 || T3 || function() {
              const t5 = c3.getCurrentRepresentation();
              if (!u3 || !t5)
                return true;
              let e4 = t5 && t5.segmentDuration && !isNaN(t5.segmentDuration) ? t5.segmentDuration : 0;
              const n4 = a2.getCurrentBufferLevel(u3), r4 = P2();
              return (r4 <= e4 || o3.getLowLatencyModeEnabled() || u3 === S2.default.AUDIO && y3) && (e4 = 0), n4 + e4 < r4;
            }()));
          } catch (t5) {
            return false;
          }
        }()) {
          let t5 = false;
          I2 && (t5 = l3.checkPlaybackQuality(u3, m3.id)), t5 || function() {
            const t6 = c3.getCurrentRepresentation();
            v3 || t6.id !== _3 || T3 ? (T3 ? (h3.debug("Switch track for " + u3 + ", representation id = " + t6.id), T3 = false) : h3.debug("Quality has changed, get init request for representationid = " + t6.id), n3.trigger(R.default.INIT_FRAGMENT_NEEDED, { representationId: t6.id, sender: g3 }, { streamId: m3.id, mediaType: u3 }), I2 = false, v3 = false) : (h3.debug(`Media segment needed for ${u3} and stream id ${m3.id}`), n3.trigger(R.default.MEDIA_FRAGMENT_NEEDED, {}, { streamId: m3.id, mediaType: u3 }), I2 = true);
          }();
        } else
          M2(o3.getLowLatencyModeEnabled() ? f3.get().streaming.scheduling.lowLatencyTimeout : f3.get().streaming.scheduling.defaultTimeout);
      } catch (t5) {
        M2(o3.getLowLatencyModeEnabled() ? f3.get().streaming.scheduling.lowLatencyTimeout : f3.get().streaming.scheduling.defaultTimeout);
      }
    }
    function P2() {
      let t5 = NaN;
      const e4 = c3.getCurrentRepresentation();
      return u3 && e4 ? (t5 = u3 === S2.default.TEXT ? function() {
        try {
          if (s2.isTextEnabled()) {
            const t6 = c3.getCurrentRepresentation();
            if (isNaN(t6.fragmentDuration)) {
              const t7 = a2.getCurrentSchedulingInfo(k.SCHEDULING_INFO);
              return t7 ? t7.duration : 0;
            }
            return t6.fragmentDuration;
          }
          return 0;
        } catch (t6) {
          return 0;
        }
      }() : u3 === S2.default.AUDIO && y3 ? function() {
        try {
          const t6 = a2.getCurrentBufferLevel(S2.default.VIDEO), e5 = c3.getCurrentRepresentation();
          return isNaN(e5.fragmentDuration) ? t6 + 1 : Math.max(t6 + 1, e5.fragmentDuration);
        } catch (t6) {
          return 0;
        }
      }() : function() {
        try {
          const t6 = c3.getCurrentRepresentation(), e5 = t6.mediaInfo.streamInfo;
          return l3.isPlayingAtTopQuality(t6) ? e5.manifestInfo.duration >= f3.get().streaming.buffer.longFormContentDurationThreshold ? f3.get().streaming.buffer.bufferTimeAtTopQualityLongForm : f3.get().streaming.buffer.bufferTimeAtTopQuality : r3.getBufferTimeDefaultUnadjusted();
        } catch (t6) {
          return r3.getBufferTimeDefaultUnadjusted();
        }
      }(), t5) : t5;
    }
    function L2() {
      F2(true);
    }
    function F2(t5) {
      if (o3 && i3) {
        const e4 = i3.getRequests({ state: B.FRAGMENT_MODEL_EXECUTED, time: o3.getTime(), threshold: 0 })[0];
        e4 && o3.getTime() >= e4.startTime && ((!E3.representation || e4.representation.mediaInfo.type === E3.representation.mediaInfo.type && e4.representation.mediaInfo.index !== E3.representation.mediaInfo.index) && t5 && (h3.debug(`Track change rendered for streamId ${m3.id} and type ${u3}`), n3.trigger(R.default.TRACK_CHANGE_RENDERED, { mediaType: u3, oldMediaInfo: E3 && E3.representation && E3.representation.mediaInfo ? E3.representation.mediaInfo : null, newMediaInfo: e4.representation.mediaInfo, streamId: m3.id })), E3.representation && e4.representation.id === E3.representation.id || !t5 || (h3.debug(`Quality change rendered for streamId ${m3.id} and type ${u3}`), n3.trigger(R.default.QUALITY_CHANGE_RENDERED, { mediaType: u3, oldRepresentation: E3.representation ? E3.representation : null, newRepresentation: e4.representation, streamId: m3.id })), E3.representation = e4.representation);
      }
    }
    function U2() {
      i3.abortRequests(), z2();
    }
    function j2() {
      f3.get().streaming.scheduling.scheduleWhilePaused || M2();
    }
    function q2(t5) {
      a2.updatePlayListTraceMetrics({ playbackspeed: t5.playbackRate.toString() });
    }
    function G2() {
      I2 = true, p3 = 0, _3 = null, E3 = { representation: null }, T3 = false, v3 = false, w3 = true;
    }
    return g3 = { clearScheduleTimer: z2, getBufferTarget: P2, getPlaybackController: function() {
      return o3;
    }, getStreamId: function() {
      return m3.id;
    }, getSwitchTrack: function() {
      return T3;
    }, getTimeToLoadDelay: function() {
      return p3;
    }, getType: function() {
      return u3;
    }, initialize: function(t5) {
      y3 = t5, n3.on(R.default.URL_RESOLUTION_FAILED, U2, g3), n3.on(D.default.PLAYBACK_STARTED, j2, g3), n3.on(D.default.PLAYBACK_RATE_CHANGED, q2, g3), n3.on(D.default.PLAYBACK_TIME_UPDATED, L2, g3), n3.on(D.default.MANAGED_MEDIA_SOURCE_START_STREAMING, N2, g3), n3.on(D.default.MANAGED_MEDIA_SOURCE_END_STREAMING, x2, g3);
    }, reset: function() {
      n3.off(R.default.URL_RESOLUTION_FAILED, U2, g3), n3.off(D.default.PLAYBACK_STARTED, j2, g3), n3.off(D.default.PLAYBACK_RATE_CHANGED, q2, g3), n3.off(D.default.PLAYBACK_TIME_UPDATED, L2, g3), n3.off(D.default.MANAGED_MEDIA_SOURCE_START_STREAMING, N2, g3), n3.off(D.default.MANAGED_MEDIA_SOURCE_END_STREAMING, x2, g3), z2(), F2(false), G2(), m3 = null;
    }, setCheckPlaybackQuality: function(t5) {
      I2 = t5;
    }, setInitSegmentRequired: function(t5) {
      v3 = t5;
    }, setLastInitializedRepresentationId: function(t5) {
      _3 = t5;
    }, setSwitchTrack: function(t5) {
      T3 = t5;
    }, setTimeToLoadDelay: function(t5) {
      p3 = t5;
    }, startScheduleTimer: M2 }, h3 = (0, C.default)(e3).getInstance().getLogger(g3), G2(), m3 = t4.streamInfo, g3;
  }
  ot.__dashjs_factory_name = "ScheduleController";
  var st = N.default.getClassFactory(ot);
  const ut = /\$(RepresentationID|Number|SubNumber|Bandwidth|Time)?(?:%0([0-9]+)([diouxX]))?\$/g;
  var dt = class {
    constructor() {
      this.availabilityEndTime = NaN, this.availabilityStartTime = NaN, this.duration = NaN, this.index = null, this.indexRange = null, this.media = null, this.mediaRange = null, this.mediaStartTime = NaN, this.presentationStartTime = NaN, this.replacementNumber = NaN, this.replacementTime = null, this.representation = null, this.wallStartTime = NaN;
    }
  };
  function ct(t4, e3, n3, a2, r3, i3, l3, o3) {
    let s2 = new dt();
    var u3;
    return s2.representation = t4, s2.duration = e3, s2.presentationStartTime = n3, s2.mediaStartTime = a2, s2.availabilityStartTime = r3.calcAvailabilityStartTimeFromPresentationTime(i3, t4, l3), s2.availabilityEndTime = r3.calcAvailabilityEndTimeFromPresentationTime(i3 + e3, t4, l3), s2.wallStartTime = r3.calcWallTimeForSegment(s2, l3), s2.replacementNumber = (u3 = o3, s2.representation.startNumber + u3), s2.index = o3, s2;
  }
  function ft(t4, e3, n3, a2) {
    const r3 = e3.adaptation.period;
    if (isFinite(r3.duration) && r3.start + r3.duration <= n3.presentationStartTime)
      return false;
    if (a2) {
      if ("INF" === e3.availabilityTimeOffset)
        return true;
      const a3 = t4.getClientReferenceTime();
      return n3.availabilityStartTime.getTime() <= a3 && (!isFinite(n3.availabilityEndTime) || n3.availabilityEndTime.getTime() >= a3);
    }
    return true;
  }
  function gt(t4, e3, n3, a2, r3, i3) {
    return t4 ? function(t5, e4, n4, a3, r4, i4) {
      return t5.replace(ut, (t6, l3, o3, s2) => {
        let u3, d3;
        switch (l3) {
          case void 0:
            return "$";
          case "RepresentationID":
            u3 = e4;
            break;
          case "Number":
            u3 = n4;
            break;
          case "SubNumber":
            u3 = a3;
            break;
          case "Bandwidth":
            u3 = r4;
            break;
          case "Time":
            if ("string" == typeof i4)
              return i4;
            u3 = i4 ? Math.round(i4) : i4;
            break;
          default:
            u3 = null;
        }
        if (null == u3)
          return t6;
        switch (s2) {
          case void 0:
          case "d":
          case "i":
          case "u":
            d3 = u3.toString();
            break;
          case "o":
            d3 = u3.toString(8);
            break;
          case "x":
            d3 = u3.toString(16);
            break;
          case "X":
            d3 = u3.toString(16).toUpperCase();
            break;
          default:
            d3 = u3.toString();
        }
        const c3 = parseInt(o3, 10) || 1;
        return d3.padStart(c3, "0");
      });
    }(t4, e3, n3, a2, r3, i3) : t4;
  }
  function mt(t4, e3, n3, a2) {
    let r3, i3, l3;
    r3 = n3.segmentDuration, isNaN(r3) && (r3 = n3.adaptation.period.duration), i3 = parseFloat((n3.adaptation.period.start + a2 * r3).toFixed(5)), l3 = parseFloat((i3 + r3).toFixed(5));
    const o3 = ct(n3, r3, i3, t4.calcMediaTimeFromPresentationTime(i3, n3), t4, l3, e3, a2);
    return ft(t4, n3, o3, e3) ? o3 : null;
  }
  function ht(t4, e3, n3, a2, r3, i3, l3, o3, s2, u3) {
    const d3 = a2 / i3, c3 = r3 / i3;
    let f3, g3, m3;
    return f3 = t4.calcPresentationTimeFromMediaTime(d3, n3), g3 = f3 + c3, m3 = ct(n3, c3, f3, d3, t4, g3, e3, s2), ft(t4, n3, m3, e3) ? (m3.replacementTime = u3 || a2, m3.media = gt(l3, void 0, m3.replacementNumber, void 0, void 0, m3.replacementTime), m3.mediaRange = o3, m3) : null;
  }
  function pt(t4) {
    const e3 = (t4 = t4 || {}).eventBus, n3 = t4.events, a2 = t4.abrController, r3 = t4.dashMetrics, i3 = t4.playbackController, l3 = t4.timelineConverter, o3 = t4.type, s2 = t4.streamInfo, u3 = t4.segmentsController, d3 = t4.isDynamic;
    let c3, f3, g3;
    function m3() {
      return o3;
    }
    function h3() {
      return g3;
    }
    function p3() {
      g3 = null, f3 = [];
    }
    function b3(t5) {
      return new Promise((e4, n4) => {
        const a3 = t5.hasInitialization(), i4 = t5.hasSegments(), o4 = [];
        o4.push(u3.updateInitData(t5, a3)), o4.push(u3.updateSegmentData(t5, i4)), Promise.all(o4).then((n5) => {
          var a4;
          n5[0] && !n5[0].error && (t5 = function(t6, e5) {
            return e5 && !e5.error && e5.representation ? e5.representation : t6;
          }(t5, n5[0])), n5[1] && !n5[1].error && (t5 = function(t6, e5) {
            if (!e5 || e5.error)
              return;
            const n6 = e5.segments, a5 = [];
            let r4, i5, o5, s3, u4 = 0;
            for (r4 = 0, i5 = n6 ? n6.length : 0; r4 < i5; r4++)
              o5 = n6[r4], s3 = ht(l3, d3, t6, o5.startTime, o5.duration, o5.timescale, o5.media, o5.mediaRange, u4), s3 && (a5.push(s3), s3 = null, u4++);
            return a5.length > 0 && (t6.segments = a5), t6;
          }(t5, n5[1])), t5.fragmentDuration = t5.segmentDuration ? t5.segmentDuration : t5.segments && t5.segments.length > 0 ? t5.segments[0].duration : NaN, (a4 = t5).mediaFinishedInformation = u3.getMediaFinishedInformation(a4), function(t6) {
            let e5, n6 = r3.getCurrentManifestUpdate(), a5 = false;
            if (n6) {
              for (let r4 = 0; r4 < n6.representationInfo.length; r4++)
                if (e5 = n6.representationInfo[r4], e5.index === t6.index && e5.mediaType === m3()) {
                  a5 = true;
                  break;
                }
              a5 || r3.addManifestUpdateRepresentationInfo(t6, m3());
            }
          }(t5), e4();
        }).catch((t6) => {
          n4(t6);
        });
      });
    }
    function y3(t5) {
      if (!f3 || 0 === f3.length)
        return null;
      const e4 = f3.filter((e5) => e5.id === t5);
      return e4.length > 0 ? e4[0] : null;
    }
    function E3(t5) {
      e3.trigger(n3.DATA_UPDATE_COMPLETED, { currentRepresentation: g3, error: t5 }, { streamId: s2.id, mediaType: o3 });
    }
    function _3(t5) {
      g3 && g3.id === t5.id || function(t6) {
        !function() {
          if (!(a2 && r3 && i3 && l3))
            throw new Error(S2.default.MISSING_CONFIG_ERROR);
        }();
        const n4 = /* @__PURE__ */ new Date(), u4 = 1e3 * i3.getTime();
        t6 && r3.addRepresentationSwitch(t6.adaptation.type, n4, u4, t6.id), e3.trigger(D.default.REPRESENTATION_SWITCH, { mediaType: o3, streamId: s2.id, currentRepresentation: t6 }, { streamId: s2.id, mediaType: o3 });
      }(t5), g3 = t5;
    }
    function T3(t5) {
      if (t5.newDuration) {
        const e4 = h3();
        e4 && e4.adaptation.period && (e4.adaptation.period.duration = t5.newDuration);
      }
    }
    return c3 = { getCurrentRepresentation: h3, getRepresentationById: y3, getStreamId: function() {
      return s2.id;
    }, getType: m3, prepareQualityChange: function(t5) {
      const e4 = f3.filter((e5) => e5.id === t5.id);
      e4.length > 0 && _3(e4[0]);
    }, reset: function() {
      e3.off(D.default.MANIFEST_VALIDITY_CHANGED, T3, c3), p3();
    }, updateData: function(t5, e4, n4) {
      return new Promise((l4, u4) => {
        if (f3 = t5, _3(y3(n4)), o3 !== S2.default.VIDEO && o3 !== S2.default.AUDIO && (o3 !== S2.default.TEXT || !e4))
          return E3(), void l4();
        const d4 = [];
        for (let t6 = 0, e5 = f3.length; t6 < e5; t6++) {
          const e6 = f3[t6];
          d4.push(b3(e6));
        }
        Promise.all(d4).then(() => {
          !function() {
            a2.setPlaybackQuality(o3, s2, g3);
            const t6 = r3.getCurrentDVRInfo(o3);
            t6 && r3.updateManifestUpdateInfo({ latency: t6.range.end - i3.getTime() }), E3();
          }(), l4();
        }).catch((t6) => {
          u4(t6);
        });
      });
    } }, p3(), e3.on(D.default.MANIFEST_VALIDITY_CHANGED, T3, c3), c3;
  }
  pt.__dashjs_factory_name = "RepresentationController";
  var bt = N.default.getClassFactory(pt), yt = n2(656);
  function Et(t4) {
    const e3 = (t4 = t4 || {}).eventBus, n3 = t4.debug, a2 = t4.urlUtils, r3 = t4.type, i3 = t4.streamInfo, l3 = t4.segmentsController, o3 = t4.timelineConverter, s2 = t4.baseURLController;
    let u3, d3, c3, f3, g3;
    function m3() {
      return r3;
    }
    function h3() {
      c3 = null;
    }
    function p3(t5, e4, n4) {
      const r4 = s2.resolve(n4.path);
      let i4, l4, o4 = {};
      return r4 && e4 !== r4.url && a2.isRelative(e4) ? (i4 = r4.url, l4 = r4.serviceLocation, o4 = r4.queryParams, e4 && (i4 = a2.resolve(e4, i4))) : i4 = e4, !a2.isRelative(i4) && (t5.url = i4, t5.serviceLocation = l4, t5.queryParams = o4, true);
    }
    function b3(t5, e4) {
      if (null == e4)
        return null;
      const n4 = new P(), a3 = e4.representation, r4 = a3.bandwidth, i4 = gt(e4.media, a3.id, e4.replacementNumber, void 0, r4, e4.replacementTime);
      return n4.mediaType = m3(), n4.bandwidth = a3.bandwidth, n4.type = z.HTTPRequest.MEDIA_SEGMENT_TYPE, n4.range = e4.mediaRange, n4.startTime = e4.presentationStartTime, n4.mediaStartTime = e4.mediaStartTime, n4.duration = e4.duration, n4.timescale = a3.timescale, n4.availabilityStartTime = e4.availabilityStartTime, n4.availabilityEndTime = e4.availabilityEndTime, n4.availabilityTimeComplete = a3.availabilityTimeComplete, n4.wallStartTime = e4.wallStartTime, n4.index = e4.index, n4.adaptationIndex = a3.adaptation.index, n4.representation = a3, p3(n4, i4, a3) ? n4 : void 0;
    }
    function y3(t5, e4, n4) {
      let a3 = null;
      if (!e4 || !e4.segmentInfoType)
        return a3;
      const r4 = l3.getSegmentByTime(e4, n4);
      return r4 && (c3 = r4, d3.debug("Index for time " + n4 + " is " + r4.index), a3 = b3(0, r4)), a3;
    }
    function E3(t5, e4, n4) {
      let a3 = null;
      const r4 = l3.getSegmentByIndex(e4, n4, c3 ? c3.mediaStartTime : -1);
      if (r4)
        a3 = b3(0, r4), c3 = r4;
      else {
        if (f3 && !g3)
          return d3.debug(m3() + " No segment found at index: " + n4 + ". Wait for next loop"), null;
        g3 = true;
      }
      return a3;
    }
    function _3() {
      d3.debug("Dynamic stream complete"), g3 = true;
    }
    return u3 = { getCurrentIndex: function() {
      return c3 ? c3.index : -1;
    }, getInitRequest: function(t5, e4) {
      return e4 ? function(t6, e5, n4) {
        const a3 = new P(), r4 = e5.adaptation.period, i4 = r4.start;
        if (a3.mediaType = n4, a3.type = z.HTTPRequest.INIT_SEGMENT_TYPE, a3.range = e5.range, a3.availabilityStartTime = o3.calcAvailabilityStartTimeFromPresentationTime(i4, e5, f3), a3.availabilityEndTime = o3.calcAvailabilityEndTimeFromPresentationTime(i4 + r4.duration, e5, f3), a3.representation = e5, p3(a3, e5.initialization, e5))
          return a3.url = gt(a3.url, void 0, void 0, void 0, e5.bandwidth), a3;
      }(0, e4, m3()) : null;
    }, getNextSegmentRequest: function(t5, e4) {
      if (!e4 || !e4.segmentInfoType)
        return null;
      let n4 = c3 ? c3.index + 1 : 0;
      return e4 && c3 && e4.endNumber && c3.replacementNumber && c3.replacementNumber >= e4.endNumber ? (g3 = true, null) : E3(0, e4, n4);
    }, getNextSegmentRequestIdempotent: function(t5, e4) {
      let n4 = null, a3 = c3 ? c3.index + 1 : 0;
      const r4 = l3.getSegmentByIndex(e4, a3, c3 ? c3.mediaStartTime : -1);
      return r4 ? (n4 = b3(0, r4), n4) : null;
    }, getSegmentRequestForTime: y3, getStreamId: function() {
      return i3.id;
    }, getStreamInfo: function() {
      return i3;
    }, getType: m3, getValidTimeAheadOfTargetTime: function(t5, e4, n4, a3) {
      try {
        if (isNaN(t5) || !e4 || !n4)
          return NaN;
        if (t5 < 0 && (t5 = 0), isNaN(a3) && (a3 = 0.5), y3(0, n4, t5))
          return t5;
        if (n4.adaptation.period.start + n4.adaptation.period.duration < t5)
          return NaN;
        const r4 = isFinite(n4.adaptation.period.duration) ? n4.adaptation.period.start + n4.adaptation.period.duration : t5 + 30;
        let i4 = Math.min(t5 + a3, r4), l4 = NaN, o4 = null;
        for (; i4 <= r4; ) {
          let t6 = null;
          if (i4 <= r4 && (t6 = y3(0, n4, i4)), t6) {
            l4 = i4, o4 = t6;
            break;
          }
          i4 += a3;
        }
        if (o4) {
          const e5 = o4.startTime + o4.duration;
          return t5 > o4.startTime && e5 - t5 > a3 ? t5 : !isNaN(o4.startTime) && t5 < o4.startTime && l4 > o4.startTime ? o4.startTime + 1e-3 : Math.min(e5 - a3, l4);
        }
        return l4;
      } catch (t6) {
        return NaN;
      }
    }, initialize: function(t5) {
      f3 = t5, g3 = false, l3.initialize(t5);
    }, isLastSegmentRequested: function(t5, e4) {
      if (!t5 || !c3)
        return false;
      if (g3)
        return true;
      if (!isFinite(t5.adaptation.period.duration))
        return false;
      if (c3.presentationStartTime + c3.duration > e4)
        return false;
      if (t5.mediaFinishedInformation && !isNaN(t5.mediaFinishedInformation.numberOfSegments) && !isNaN(c3.index) && c3.index >= t5.mediaFinishedInformation.numberOfSegments - 1) {
        if (!f3 || t5.segmentInfoType === I.default.SEGMENT_TEMPLATE)
          return true;
        if (f3 && t5.segmentInfoType === I.default.SEGMENT_LIST && t5.adaptation.period.nextPeriodId)
          return true;
      }
      return !!(f3 && t5.adaptation.period.nextPeriodId && t5.segmentInfoType === I.default.SEGMENT_TIMELINE && t5.mediaFinishedInformation && !isNaN(t5.mediaFinishedInformation.mediaTimeOfLastSignaledSegment) && c3 && !isNaN(c3.mediaStartTime) && !isNaN(c3.duration) && c3.mediaStartTime + c3.duration >= t5.mediaFinishedInformation.mediaTimeOfLastSignaledSegment - 0.05);
    }, repeatSegmentRequest: function(t5, e4) {
      return e4 && e4.segmentInfoType ? E3(0, e4, c3 ? c3.index : 0) : null;
    }, reset: function() {
      h3(), e3.off(D.default.DYNAMIC_TO_STATIC, _3, u3);
    } }, d3 = n3.getLogger(u3), h3(), e3.on(D.default.DYNAMIC_TO_STATIC, _3, u3), u3;
  }
  Et.__dashjs_factory_name = "DashHandler";
  var _t = N.default.getClassFactory(Et);
  function Tt() {
    let t4;
    const e3 = /^[a-z][a-z0-9+\-_.]*:/i, n3 = /^https?:\/\//i, a2 = /^https:\/\//i, r3 = /^([a-z][a-z0-9+\-_.]*:\/\/[^\/]+)\/?/i, i3 = (t5, e4) => {
      try {
        return new window.URL(t5, e4).toString();
      } catch (e5) {
        return t5;
      }
    }, l3 = (t5, e4) => {
      let n4 = o3;
      if (!e4)
        return t5;
      if (!d3(t5))
        return t5;
      c3(t5) && (n4 = s2), f3(t5) && (n4 = u3);
      const a3 = n4(e4), r4 = "/" !== a3.charAt(a3.length - 1) && "/" !== t5.charAt(0) ? "/" : "";
      return [a3, t5].join(r4);
    };
    function o3(t5) {
      const e4 = t5.indexOf("/"), n4 = t5.lastIndexOf("/");
      return -1 !== e4 ? n4 === e4 + 1 ? t5 : (-1 !== t5.indexOf("?") && (t5 = t5.substring(0, t5.indexOf("?"))), t5.substring(0, n4 + 1)) : "";
    }
    function s2(t5) {
      const e4 = t5.match(r3);
      return e4 ? e4[1] : "";
    }
    function u3(t5) {
      const n4 = t5.match(e3);
      return n4 ? n4[0] : "";
    }
    function d3(t5) {
      return !e3.test(t5);
    }
    function c3(t5) {
      return d3(t5) && "/" === t5.charAt(0);
    }
    function f3(t5) {
      return 0 === t5.indexOf("//");
    }
    return function() {
      try {
        new window.URL("x", "http://y"), t4 = i3;
      } catch (t5) {
      } finally {
        t4 = t4 || l3;
      }
    }(), { parseBaseUrl: o3, parseOrigin: s2, parseScheme: u3, isRelative: d3, isPathAbsolute: c3, isSchemeRelative: f3, isHTTPURL: function(t5) {
      return n3.test(t5);
    }, isHTTPS: function(t5) {
      return a2.test(t5);
    }, removeHostname: function(t5) {
      return /^(?:\w+\:\/\/)?([^\/]+)(.*)$/.exec(t5)[2].substring(1);
    }, resolve: function(e4, n4) {
      return t4(e4, n4);
    } };
  }
  Tt.__dashjs_factory_name = "DefaultURLUtils";
  var vt = N.default.getSingletonFactory(Tt);
  function wt() {
    let t4, e3, n3 = [];
    const a2 = this.context;
    function r3(t5, a3, r4) {
      let i3 = function(t6) {
        let a4;
        for (a4 = 0; a4 < n3.length; a4++)
          if (n3[a4].regex.test(t6))
            return n3[a4].utils;
        return e3;
      }(r4 || a3);
      return i3 && "function" == typeof i3[t5] ? i3[t5](a3, r4) : e3[t5](a3, r4);
    }
    return e3 = vt(a2).getInstance(), t4 = { registerUrlRegex: function(t5, e4) {
      n3.push({ regex: t5, utils: e4 });
    }, parseBaseUrl: function(t5) {
      return r3("parseBaseUrl", t5);
    }, parseOrigin: function(t5) {
      return r3("parseOrigin", t5);
    }, parseScheme: function(t5) {
      return r3("parseScheme", t5);
    }, isRelative: function(t5) {
      return r3("isRelative", t5);
    }, isPathAbsolute: function(t5) {
      return r3("isPathAbsolute", t5);
    }, isSchemeRelative: function(t5) {
      return r3("isSchemeRelative", t5);
    }, isHTTPURL: function(t5) {
      return r3("isHTTPURL", t5);
    }, isHTTPS: function(t5) {
      return r3("isHTTPS", t5);
    }, removeHostname: function(t5) {
      return r3("removeHostname", t5);
    }, resolve: function(t5, e4) {
      return r3("resolve", t5, e4);
    } }, t4;
  }
  wt.__dashjs_factory_name = "URLUtils";
  var St = N.default.getSingletonFactory(wt);
  class It {
    constructor() {
      this.start = null, this.mstart = null, this.starttype = null, this.trace = [];
    }
  }
  It.INITIAL_PLAYOUT_START_REASON = "initial_playout", It.SEEK_START_REASON = "seek", It.RESUME_FROM_PAUSE_START_REASON = "resume", It.METRICS_COLLECTION_START_REASON = "metrics_collection_start";
  class kt {
    constructor() {
      this.representationid = null, this.subreplevel = null, this.start = null, this.mstart = null, this.duration = null, this.playbackspeed = null, this.stopreason = null;
    }
  }
  function At(t4, e3) {
    const n3 = (t4 = t4 || {}).timelineConverter, a2 = t4.dashMetrics;
    let r3;
    function i3() {
      if (!n3)
        throw new Error(S2.default.MISSING_CONFIG_ERROR);
    }
    function l3(t5, e4) {
      const n4 = t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentTemplate || t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentList, a3 = n4.SegmentTimeline, r4 = n4.SegmentURL;
      let i4, l4, s2, u3, d3, c3, f3, g3 = 0, m3 = -1;
      f3 = t5.timescale, i4 = a3.S;
      let h3 = false;
      for (s2 = 0, u3 = i4.length; s2 < u3 && !h3; s2++)
        for (l4 = i4[s2], c3 = 0, l4.hasOwnProperty("r") && (c3 = l4.r), l4.hasOwnProperty("t") && (g3 = l4.t), c3 < 0 && (c3 = o3(t5, i4[s2 + 1], l4, f3, g3 / f3)), d3 = 0; d3 <= c3 && !h3; d3++)
          m3++, h3 = e4(g3, n4, r4, l4, f3, m3, s2), h3 && (t5.segmentDuration = l4.d / f3), g3 += l4.d;
    }
    function o3(t5, e4, r4, i4, l4) {
      let o4;
      if (e4 && e4.hasOwnProperty("t"))
        o4 = e4.t / i4;
      else
        try {
          let e5 = 0;
          if (isNaN(t5.adaptation.period.start) || isNaN(t5.adaptation.period.duration) || !isFinite(t5.adaptation.period.duration)) {
            const t6 = a2.getCurrentDVRInfo();
            e5 = isNaN(t6.end) ? 0 : t6.end;
          } else
            e5 = t5.adaptation.period.start + t5.adaptation.period.duration;
          o4 = n3.calcMediaTimeFromPresentationTime(e5, t5), t5.segmentDuration = r4.d / i4;
        } catch (t6) {
          o4 = 0;
        }
      return Math.max(Math.ceil((o4 - l4) / (r4.d / i4)) - 1, 0);
    }
    return r3 = { getSegmentByIndex: function(t5, a3, r4) {
      if (i3(), !t5)
        return null;
      let o4 = null, s2 = false;
      return l3(t5, function(a4, i4, l4, u3, d3, c3, f3) {
        if (s2 || r4 < 0) {
          let r5 = i4.media, s3 = u3.mediaRange;
          return l4 && (r5 = l4[f3].media || "", s3 = l4[f3].mediaRange), o4 = ht(n3, e3, t5, a4, u3.d, d3, r5, s3, c3, u3.tManifest), true;
        }
        return a4 >= r4 * d3 - 0.5 * u3.d && (s2 = true), false;
      }), o4;
    }, getSegmentByTime: function(t5, a3) {
      if (i3(), !t5)
        return null;
      void 0 === a3 && (a3 = null);
      let r4 = null;
      const o4 = n3.calcMediaTimeFromPresentationTime(a3, t5);
      return l3(t5, function(a4, i4, l4, s2, u3, d3, c3) {
        const f3 = parseFloat((o4 * u3).toPrecision(15));
        if (f3 < a4 + s2.d && f3 >= a4) {
          let o5 = i4.media, f4 = s2.mediaRange;
          return l4 && (o5 = l4[c3].media || "", f4 = l4[c3].mediaRange), r4 = ht(n3, e3, t5, a4, s2.d, u3, o5, f4, d3, s2.tManifest), true;
        }
        return false;
      }), r4;
    }, getMediaFinishedInformation: function(t5) {
      if (!t5)
        return 0;
      const e4 = (t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentTemplate || t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentList).SegmentTimeline;
      let n4, a3, r4, i4, l4, s2, u3, d3 = 0, c3 = 0, f3 = 0;
      for (u3 = t5.timescale, n4 = e4.S, i4 = n4.length, r4 = 0; r4 < i4; r4++)
        for (a3 = n4[r4], s2 = 0, a3.hasOwnProperty("r") && (s2 = a3.r), a3.hasOwnProperty("t") && (d3 = a3.t, c3 = d3 / u3), s2 < 0 && (s2 = o3(t5, n4[r4 + 1], a3, u3, c3)), l4 = 0; l4 <= s2; l4++)
          f3++, d3 += a3.d, c3 = d3 / u3;
      return { numberOfSegments: f3, mediaTimeOfLastSignaledSegment: c3 };
    } }, r3;
  }
  kt.REPRESENTATION_SWITCH_STOP_REASON = "representation_switch", kt.REBUFFERING_REASON = "rebuffering", kt.USER_REQUEST_STOP_REASON = "user_request", kt.END_OF_PERIOD_STOP_REASON = "end_of_period", kt.END_OF_CONTENT_STOP_REASON = "end_of_content", kt.METRICS_COLLECTION_STOP_REASON = "metrics_collection_end", kt.FAILURE_STOP_REASON = "failure", At.__dashjs_factory_name = "TimelineSegmentsGetter";
  var Rt = N.default.getClassFactory(At);
  function Nt(t4, e3) {
    const n3 = (t4 = t4 || {}).timelineConverter;
    let a2;
    function r3() {
      if (!n3 || !n3.hasOwnProperty("calcPeriodRelativeTimeFromMpdRelativeTime"))
        throw new Error(S2.default.MISSING_CONFIG_ERROR);
    }
    function i3(t5, a3) {
      if (r3(), !t5)
        return null;
      const i4 = t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentTemplate;
      a3 = Math.max(a3, 0);
      const l3 = mt(n3, e3, t5, a3);
      if (l3) {
        if (t5.endNumber && l3.replacementNumber > t5.endNumber)
          return null;
        l3.replacementTime = Math.round(a3 * t5.segmentDuration * t5.timescale, 10), l3.media = gt(i4.media, void 0, l3.replacementNumber, void 0, void 0, l3.replacementTime);
      }
      return l3;
    }
    return a2 = { getSegmentByIndex: i3, getSegmentByTime: function(t5, e4) {
      if (r3(), !t5)
        return null;
      const a3 = t5.segmentDuration;
      if (isNaN(a3))
        return null;
      let l3 = n3.calcPeriodRelativeTimeFromMpdRelativeTime(t5, e4);
      return i3(t5, Math.floor(l3 / a3));
    }, getMediaFinishedInformation: function(t5) {
      const e4 = { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN };
      if (!t5)
        return e4;
      const n4 = t5.segmentDuration;
      return isNaN(n4) ? e4.numberOfSegments = 1 : e4.numberOfSegments = Math.ceil(t5.adaptation.period.duration / n4), e4;
    } }, a2;
  }
  Nt.__dashjs_factory_name = "TemplateSegmentsGetter";
  var Ct = N.default.getClassFactory(Nt);
  function Dt(t4, e3) {
    const n3 = (t4 = t4 || {}).timelineConverter;
    let a2;
    function r3() {
      if (!n3 || !n3.hasOwnProperty("calcPeriodRelativeTimeFromMpdRelativeTime"))
        throw new Error(S2.default.MISSING_CONFIG_ERROR);
    }
    function i3(t5, a3) {
      if (r3(), !t5)
        return null;
      const i4 = t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentList, l3 = i4.SegmentURL.length, o3 = t5 && !isNaN(t5.startNumber) ? t5.startNumber : 1, s2 = Math.max(o3 - 1, 0), u3 = Math.max(a3 - s2, 0);
      let d3 = null;
      if (u3 < l3) {
        const r4 = i4.SegmentURL[u3];
        d3 = mt(n3, e3, t5, a3), d3 && (d3.replacementTime = (o3 + a3 - 1) * t5.segmentDuration, d3.media = r4.media ? r4.media : "", d3.mediaRange = r4.mediaRange, d3.indexRange = r4.indexRange);
      }
      return d3;
    }
    return a2 = { getSegmentByIndex: i3, getSegmentByTime: function(t5, e4) {
      if (r3(), !t5)
        return null;
      const a3 = t5.segmentDuration;
      if (isNaN(a3))
        return null;
      const l3 = n3.calcPeriodRelativeTimeFromMpdRelativeTime(t5, e4);
      return i3(t5, Math.floor(l3 / a3));
    }, getMediaFinishedInformation: function(t5) {
      const e4 = { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN };
      if (!t5)
        return e4;
      const n4 = t5.adaptation.period.mpd.manifest.Period[t5.adaptation.period.index].AdaptationSet[t5.adaptation.index].Representation[t5.index].SegmentList, a3 = t5 && !isNaN(t5.startNumber) ? t5.startNumber : 1, r4 = Math.max(a3 - 1, 0);
      return e4.numberOfSegments = r4 + n4.SegmentURL.length, e4;
    } }, a2;
  }
  Dt.__dashjs_factory_name = "ListSegmentsGetter";
  var xt = N.default.getClassFactory(Dt);
  function Mt(t4) {
    const e3 = (t4 = t4 || {}).timelineConverter;
    let n3;
    function a2() {
      if (!e3 || !e3.hasOwnProperty("calcPeriodRelativeTimeFromMpdRelativeTime"))
        throw new Error(S2.default.MISSING_CONFIG_ERROR);
    }
    function r3(t5, e4) {
      if (a2(), !t5)
        return null;
      const n4 = t5.segments ? t5.segments.length : -1;
      let r4;
      if (e4 < n4 && (r4 = t5.segments[e4], r4 && r4.index === e4))
        return r4;
      for (let a3 = 0; a3 < n4; a3++)
        if (r4 = t5.segments[a3], r4 && r4.index === e4)
          return r4;
      return null;
    }
    return n3 = { getSegmentByIndex: r3, getSegmentByTime: function(t5, e4) {
      a2();
      const n4 = function(t6, e5) {
        if (!t6)
          return -1;
        const n5 = t6.segments, a3 = n5 ? n5.length : null;
        let r4, i3, l3, o3, s2, u3 = -1;
        if (n5 && a3 > 0) {
          for (s2 = 0; s2 < a3; s2++)
            if (i3 = n5[s2], l3 = i3.presentationStartTime, o3 = i3.duration, r4 = o3 / 2, e5 + r4 >= l3 && e5 - r4 < l3 + o3) {
              u3 = i3.index;
              break;
            }
        }
        return u3;
      }(t5, e4);
      return r3(t5, n4);
    }, getMediaFinishedInformation: function(t5) {
      const e4 = { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN };
      return t5 && t5.segments ? (e4.numberOfSegments = t5.segments.length, e4) : e4;
    } }, n3;
  }
  Mt.__dashjs_factory_name = "SegmentBaseGetter";
  var zt = N.default.getClassFactory(Mt);
  function Ot(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.dashConstants, a2 = t4.type, r3 = t4.segmentBaseController;
    let i3, l3;
    function o3(t5) {
      return t5 ? t5.segments ? l3[n3.SEGMENT_BASE] : l3[t5.segmentInfoType] : null;
    }
    return i3 = { initialize: function(a3) {
      l3[n3.SEGMENT_TIMELINE] = Rt(e3).create(t4, a3), l3[n3.SEGMENT_TEMPLATE] = Ct(e3).create(t4, a3), l3[n3.SEGMENT_LIST] = xt(e3).create(t4, a3), l3[n3.SEGMENT_BASE] = zt(e3).create(t4, a3);
    }, updateInitData: function(t5, e4) {
      return e4 ? Promise.resolve() : r3.getSegmentBaseInitSegment({ representation: t5, mediaType: a2 });
    }, updateSegmentData: function(t5, e4) {
      return e4 ? Promise.resolve() : r3.getSegmentList({ mimeType: t5.mimeType, representation: t5, mediaType: a2 });
    }, getSegmentByIndex: function(t5, e4, n4) {
      const a3 = o3(t5);
      return a3 ? a3.getSegmentByIndex(t5, e4, n4) : null;
    }, getSegmentByTime: function(t5, e4) {
      const n4 = o3(t5);
      return n4 ? n4.getSegmentByTime(t5, e4) : null;
    }, getMediaFinishedInformation: function(t5) {
      const e4 = o3(t5);
      return e4 ? e4.getMediaFinishedInformation(t5) : { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN };
    } }, l3 = {}, i3;
  }
  Ot.__dashjs_factory_name = "SegmentsController";
  var Pt = N.default.getClassFactory(Ot);
  function Lt() {
    let t4;
    return t4 = { ntpToUTC: function(t5) {
      const e3 = new Date(Date.UTC(1900, 0, 1, 0, 0, 0));
      return new Date(e3.getTime() + t5).getTime();
    } }, t4;
  }
  Lt.__dashjs_factory_name = "TimeUtils";
  var Ft = N.default.getSingletonFactory(Lt), Ut = class {
    constructor(t4) {
      this.newMediaInfo = t4.newMediaInfo, this.previouslySelectedRepresentation = t4.previouslySelectedRepresentation, this.newRepresentation = t4.newRepresentation;
    }
  };
  function jt(t4) {
    t4 = t4 || {};
    let e3, n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3, b3 = this.context, y3 = (0, A.default)(b3).getInstance(), E3 = t4.abrController, _3 = t4.adapter, T3 = t4.boxParser, v3 = t4.capabilities, w3 = t4.dashMetrics, N2 = t4.errHandler, x2 = t4.fragmentModel, M2 = t4.manifestModel, O2 = t4.mediaController, P2 = t4.mediaPlayerModel, L2 = t4.mimeType, F2 = t4.playbackController, U2 = t4.segmentBlacklistController, j2 = t4.settings, q2 = t4.streamInfo, H2 = t4.textController, Y2 = t4.timelineConverter, K2 = t4.type;
    function W2() {
      return q2.id;
    }
    function $2() {
      return K2;
    }
    function X2() {
      s2 = [], a2 = null, n3 = 0, h3 = false, m3 = false, d3 = false, p3 = false, ut2();
    }
    function Q2(t5) {
      return !isNaN(t5) && !isNaN(q2.duration) && isFinite(q2.duration) && t5 >= q2.start + q2.duration;
    }
    function Z2(t5) {
      let n4 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];
      if (t5.sender) {
        if (F2.getIsManifestUpdateInProgress())
          et2();
        else if ((!a2.isText || H2.isTextEnabled()) && e3 && t5.representationId && !e3.appendInitSegmentFromCache(t5.representationId)) {
          const t6 = c3.getCurrentRepresentation();
          if (0 === t6.range)
            return void J2();
          const e4 = r3 ? r3.getInitRequest(a2, t6) : null;
          e4 ? x2.executeRequest(e4) : n4 && (f3.setInitSegmentRequired(true), et2());
        }
      }
    }
    function J2(t5) {
      let i4 = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];
      if (F2.getIsManifestUpdateInProgress() || e3.getIsPruningInProgress())
        return void et2();
      let s3 = function() {
        let t6;
        if (isNaN(n3) || $2() === S2.default.TEXT && !H2.isTextEnabled())
          return null;
        if (r3) {
          const e4 = Dt2();
          t6 = h3 ? r3.getSegmentRequestForTime(a2, e4, n3) : m3 ? r3.repeatSegmentRequest(a2, e4) : r3.getNextSegmentRequest(a2, e4);
        }
        return t6;
      }();
      s3 ? (h3 = false, m3 = false, function(t6) {
        isNaN(t6.startTime + t6.duration) || (n3 = t6.startTime + t6.duration), t6.delayLoadingTime = (/* @__PURE__ */ new Date()).getTime() + f3.getTimeToLoadDelay(), f3.setTimeToLoadDelay(0), function(t7) {
          let e4 = t7.url;
          return t7.range && (e4 = e4.concat("_", t7.range)), U2.contains(e4);
        }(t6) ? (o3.warn(`Fragment request url ${t6.url} for stream id ${q2.id} and media type ${K2} is on the ignore list and will be skipped`), et2()) : (o3.debug(`Next fragment request url for stream id ${q2.id} and media type ${K2} is ${t6.url} with request range ${t6.range}`), x2.executeRequest(t6));
      }(s3)) : function(t6) {
        const e4 = c3.getCurrentRepresentation();
        try {
          if (j2.get().streaming.gaps.enableSeekFix && (h3 || 0 === F2.getTime())) {
            let i5;
            if (l3 ? l3 && e4.segmentInfoType === I.default.SEGMENT_TIMELINE && (i5 = r3.getValidTimeAheadOfTargetTime(n3, a2, e4, j2.get().streaming.gaps.threshold)) : (i5 = r3.getValidTimeAheadOfTargetTime(n3, a2, e4, j2.get().streaming.gaps.threshold), isNaN(i5) && n3 >= e4.adaptation.period.mpd.mediaPresentationDuration - e4.segmentDuration && (i5 = n3 - 0.1)), !isNaN(i5) && i5 !== n3)
              return void (F2.isSeeking() || 0 === F2.getTime() ? (o3.warn(`Adjusting playback time ${i5} because of gap in the manifest. Seeking by ${i5 - n3}`), F2.seek(i5, false, false)) : (o3.warn(`Adjusting buffering time ${i5} because of gap in the manifest. Adjusting time by ${i5 - n3}`), qt2(i5), t6 && et2()));
          }
        } catch (t7) {
          o3.error(t7);
        }
        tt2() || t6 && et2();
      }(i4);
    }
    function tt2() {
      const t5 = c3.getCurrentRepresentation(), a3 = r3.isLastSegmentRequested(t5, n3);
      if (a3) {
        const t6 = r3.getCurrentIndex();
        o3.debug(`Segment requesting for stream ${q2.id} has finished`), y3.trigger(R.default.STREAM_REQUESTING_COMPLETED, { segmentIndex: t6 }, { streamId: q2.id, mediaType: K2 }), e3.segmentRequestingCompleted(t6), Ct2();
      }
      return a3;
    }
    function et2() {
      f3.startScheduleTimer(F2.getLowLatencyModeEnabled() ? j2.get().streaming.scheduling.lowLatencyTimeout : j2.get().streaming.scheduling.defaultTimeout);
    }
    function nt2(t5) {
      w3.addBufferState(K2, t5.state, f3.getBufferTarget()), t5.state !== k.BUFFER_EMPTY || F2.isSeeking() || (o3.info("Buffer is empty! Stalling!"), w3.pushPlayListTraceMetrics(/* @__PURE__ */ new Date(), kt.REBUFFERING_REASON));
    }
    function rt2(t5) {
      x2.syncExecutedRequestsWithBufferedRange(e3.getBuffer().getAllBufferRanges(), q2.duration), t5.quotaExceeded && t5.from > F2.getTime() && qt2(t5.from), t5.hasEnoughSpaceToAppend && t5.quotaExceeded && f3.startScheduleTimer();
    }
    function it2(t5) {
      if (!t5 || !t5.lastRequestAppended || !t5.lastRequestAppended.url)
        return;
      let e4 = t5.lastRequestAppended.url;
      t5.lastRequestAppended.range && (e4 = e4.concat("_", t5.lastRequestAppended.range)), o3.warn(`Blacklisting segment with url ${e4}`), U2.add(e4);
    }
    function ot2(t5) {
      if (o3.debug(`Appended bytes for ${t5.mediaType} and stream id ${t5.streamId}`), t5.segmentType === z.HTTPRequest.INIT_SEGMENT_TYPE) {
        const e4 = t5.representationId;
        f3.setLastInitializedRepresentationId(e4), o3.info("[" + K2 + "] lastInitializedRepresentationId changed to " + e4);
      }
      u3 && u3.enabled ? pt2(u3.newRepresentation, u3.oldRepresentation) : p3 || f3.startScheduleTimer(0);
    }
    function ut2() {
      u3 = { newRepresentation: null, oldRepresentation: null, enabled: false };
    }
    function dt2(t5) {
      return new Promise((n4) => {
        if (!c3)
          return Promise.resolve();
        let r4 = null;
        var i4;
        r4 = t5.newRepresentation ? { selectedRepresentation: (i4 = t5).newRepresentation, currentMediaInfo: i4.newMediaInfo } : null !== a2 && _3.areMediaInfosEqual(a2, t5.newMediaInfo) ? function(t6) {
          return { currentMediaInfo: t6.newMediaInfo, selectedRepresentation: c3.getCurrentRepresentation() };
        }(t5) : function(t6) {
          let e4 = NaN;
          e4 = !j2.get().streaming.abr.autoSwitchBitrate[t6.newMediaInfo.type] && t6.previouslySelectedRepresentation ? t6.previouslySelectedRepresentation.bitrateInKbit : E3.getInitialBitrateFor(K2);
          return { selectedRepresentation: E3.getOptimalRepresentationForBitrate(t6.newMediaInfo, e4, false), currentMediaInfo: t6.newMediaInfo };
        }(t5), ct2(r4.currentMediaInfo), y3.trigger();
        const l4 = E3.getPossibleVoRepresentations(a2, false);
        return c3.updateData(l4, a2.isFragmented, r4.selectedRepresentation.id).then(() => {
          !function() {
            const t6 = c3.getCurrentRepresentation();
            e3.getIsBufferingCompleted() || e3.updateBufferTimestampOffset(t6);
          }(), n4();
        }).catch((t6) => {
          o3.error(t6), n4();
        });
      });
    }
    function ct2(t5) {
      _3.areMediaInfosEqual(a2, t5) || y3.trigger(D.default.NEW_TRACK_SELECTED, { value: t5 }), a2 = t5, E3.handleNewMediaInfo(a2), y3.trigger(R.default.MEDIAINFO_UPDATED, { mediaType: K2, streamId: q2.id, currentMediaInfo: a2 });
    }
    function ft2(t5) {
      const n4 = t5.newRepresentation, r4 = t5.oldRepresentation;
      n4 && r4 || o3.warn("_handleDifferentSwitchTypes() is missing the target representations"), t5.reason && t5.reason.forceReplace ? function(t6, n5) {
        x2.abortRequests(), y3.trigger(R.default.BUFFER_REPLACEMENT_STARTED, { mediaType: K2, streamId: q2.id }, { mediaType: K2, streamId: q2.id }), f3.setCheckPlaybackQuality(false), e3.prepareForForceReplacementQualitySwitch(t6, n5).then(() => {
          gt2();
        }).catch(() => {
          gt2();
        });
      }(n4, r4) : t5 && t5.reason && t5.reason.forceAbandon ? function(t6, n5) {
        e3.prepareForAbandonQualitySwitch(t6, n5).then(() => {
          mt2();
        }).catch(() => {
          mt2();
        });
      }(n4, r4) : P2.getFastSwitchEnabled() ? function(t6, n5) {
        const r5 = F2.getTime();
        let i4 = 1.5 * (isNaN(t6.fragmentDuration) ? 1 : t6.fragmentDuration);
        const l4 = x2.getRequests({ state: B.FRAGMENT_MODEL_EXECUTED, time: r5 + i4, threshold: 0 })[0];
        if (l4 && !a2.isText) {
          const a3 = e3.getBufferLevel(), o4 = E3.getAbandonmentStateFor(q2.id, K2);
          l4.bandwidth < t6.bandwidth && a3 >= i4 && o4 === k.ALLOW_LOAD ? e3.prepareForFastQualitySwitch(t6, n5).then(() => {
            ht2(r5, i4);
          }).catch(() => {
            ht2(r5, i4);
          }) : pt2(t6, n5);
        } else
          pt2(t6, n5);
      }(n4, r4) : pt2(n4, r4), w3.pushPlayListTraceMetrics(/* @__PURE__ */ new Date(), kt.REPRESENTATION_SWITCH_STOP_REASON), w3.createPlaylistTraceMetrics(n4.id, 1e3 * F2.getTime(), F2.getPlaybackRate());
    }
    function gt2() {
      Ot2(), ut2(), d3 = false;
    }
    function mt2() {
      x2.abortRequests(), m3 = true, f3.setCheckPlaybackQuality(false), f3.startScheduleTimer(), d3 = false;
    }
    function ht2(t5, e4) {
      x2.abortRequests(), qt2(t5 + e4), f3.setCheckPlaybackQuality(false), f3.startScheduleTimer(), d3 = false;
    }
    function pt2(t5, n4) {
      const a3 = x2.getRequests({ state: B.FRAGMENT_MODEL_LOADING });
      if (a3 && a3.length > 0)
        return o3.debug("Preparing for default quality switch: Waiting for ongoing segment request to be finished before applying switch."), u3.newRepresentation = t5, u3.oldRepresentation = n4, void (u3.enabled = true);
      e3.prepareForDefaultQualitySwitch(t5, n4).then(() => {
        Et2();
      }).catch(() => {
        Et2();
      });
    }
    function Et2() {
      f3.setCheckPlaybackQuality(false), a2.segmentAlignment || a2.subSegmentAlignment ? f3.startScheduleTimer() : Lt2(), ut2(), d3 = false;
    }
    function Tt2(t5) {
      o3.info("onFragmentLoadingAbandoned request: " + t5.request.url + " has been aborted"), F2.isSeeking() || f3.getSwitchTrack() || d3 || (o3.info("onFragmentLoadingAbandoned request: " + t5.request.url + " has to be downloaded again, origin is not seeking process or switch track call"), t5.request && t5.request.isInitializationRequest() ? f3.setInitSegmentRequired(true) : qt2(t5.request.startTime + t5.request.duration / 2), f3.startScheduleTimer(0));
    }
    function vt2(t5) {
      o3.info("OnFragmentLoadingCompleted for stream id " + q2.id + " and media type " + K2 + " - Url:", t5.request ? t5.request.url : "undefined", t5.request.range ? ", Range:" + t5.request.range : ""), a2.isText && f3.startScheduleTimer(0), t5.error && t5.request.serviceLocation && function(t6) {
        o3.info("Fragment loading completed with an error"), t6 && t6.request && t6.request.type && (t6.request.type === z.HTTPRequest.INIT_SEGMENT_TYPE ? Z2({ representationId: t6.request.representation.id, sender: {} }, false) : t6.request.type === z.HTTPRequest.MEDIA_SEGMENT_TYPE && (qt2(t6.request.startTime + t6.request.duration / 2), J2({}, false)));
      }(t5);
    }
    function wt2() {
      qt2(F2.getTime()), Nt2().startScheduleTimer();
    }
    function It2(t5) {
      const n4 = t5.currentTrackInfo;
      if (!n4)
        return;
      const a3 = s2.find((t6) => t6.index === n4.index && t6.lang === n4.lang);
      a3 && dt2(new Ut({ newMediaInfo: a3 })).then(() => {
        e3.setIsBufferingCompleted(false), qt2(F2.getTime()), f3.setInitSegmentRequired(true), f3.startScheduleTimer();
      });
    }
    function At2(t5) {
      qt2(t5.quotaExceededTime), Ct2();
    }
    function Rt2() {
      return e3 ? e3.getBuffer() : null;
    }
    function Nt2() {
      return f3;
    }
    function Ct2() {
      f3 && f3.clearScheduleTimer();
    }
    function Dt2() {
      let t5, e4 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : NaN;
      return isNaN(e4) ? t5 = c3 ? c3.getCurrentRepresentation() : null : ((0, yt.checkInteger)(e4), t5 = c3 ? c3.getRepresentationById(e4) : null), t5;
    }
    function xt2() {
      return !!e3 && e3.getIsBufferingCompleted();
    }
    function Mt2(t5) {
      if (!j2.get().streaming.enableManifestTimescaleMismatchFix)
        return;
      const e4 = t5.chunk, n4 = e4.bytes, a3 = Dt2(e4.representation.id);
      a3 && (a3.timescale = T3.getMediaTimescaleFromMoov(n4));
    }
    function zt2(t5) {
      const e4 = t5.chunk, n4 = e4.bytes, a3 = Dt2(e4.representation.id);
      if (a3) {
        let e5;
        if (j2.get().streaming.parseInbandPrft && t5.request.type === z.HTTPRequest.MEDIA_SEGMENT_TYPE) {
          e5 = e5 || T3.parse(n4);
          const t6 = function(t7, e6) {
            const n5 = t7.getBoxes("prft"), a4 = [];
            return n5.forEach((t8) => {
              a4.push(function(t9, e7) {
                let n6 = "unknown";
                switch (t9.flags) {
                  case 0:
                    n6 = I.default.PRODUCER_REFERENCE_TIME_TYPE.ENCODER;
                    break;
                  case 16:
                    n6 = I.default.PRODUCER_REFERENCE_TIME_TYPE.APPLICATION;
                    break;
                  case 24:
                    n6 = I.default.PRODUCER_REFERENCE_TIME_TYPE.CAPTURED;
                }
                let a5 = 1e3 * t9.ntp_timestamp_sec + t9.ntp_timestamp_frac / 2 ** 32 * 1e3;
                a5 = Ft(b3).getInstance().ntpToUTC(a5);
                return { type: n6, ntpTimestamp: a5, mediaTime: t9.media_time / e7 };
              }(t8, e6));
            }), a4;
          }(e5, a3.timescale);
          t6 && t6.length && y3.trigger(D.default.INBAND_PRFT, { data: t6 }, { streamId: q2.id, mediaType: K2 });
        }
        const r4 = _3.getEventsFor(a3.mediaInfo, null, q2), i4 = _3.getEventsFor(a3, a3, q2);
        if (r4 && r4.length > 0 || i4 && i4.length > 0) {
          const a4 = t5.request;
          e5 = e5 || T3.parse(n4);
          const l4 = function(t6, e6, n5, a5) {
            try {
              const r5 = {}, i5 = [], l5 = n5.concat(a5);
              for (let t7 = 0, e7 = l5.length; t7 < e7; t7++)
                r5[l5[t7].schemeIdUri + "/" + l5[t7].value] = l5[t7];
              const o4 = t6.getBoxes("emsg");
              if (!o4 || 0 === o4.length)
                return i5;
              const s3 = t6.getBox("sidx"), u4 = !s3 || isNaN(s3.earliest_presentation_time) || isNaN(s3.timescale) ? e6 && !isNaN(e6.mediaStartTime) ? e6.mediaStartTime : 0 : s3.earliest_presentation_time / s3.timescale, d4 = Math.max(u4, 0), f4 = c3.getCurrentRepresentation();
              for (let t7 = 0, e7 = o4.length; t7 < e7; t7++) {
                const e8 = _3.getEvent(o4[t7], r5, d4, f4);
                e8 && i5.push(e8);
              }
              return i5;
            } catch (t7) {
              return [];
            }
          }(e5, a4, r4, i4);
          y3.trigger(R.default.INBAND_EVENTS, { events: l4 }, { streamId: q2.id });
        }
      }
    }
    function Ot2() {
      const t5 = F2.getTime();
      j2.get().streaming.buffer.flushBufferAtTrackSwitch && F2.seek(t5 + 1e-3, false, true), qt2(t5), e3.setSeekTarget(t5), f3.startScheduleTimer();
    }
    function Lt2() {
      const t5 = F2.getTime(), n4 = e3.getContinuousBufferTimeForTargetTime(t5);
      qt2(isNaN(n4) ? t5 : n4), f3.startScheduleTimer();
    }
    function jt2(t5) {
      t5 && !isNaN(t5.time) && (qt2(t5.time), e3.setSeekTarget(t5.time));
    }
    function qt2(t5) {
      n3 = t5, h3 = true;
    }
    return i3 = { checkAndHandleCompletedBuffering: tt2, clearScheduleTimer: Ct2, createBufferSinks: function(t5, n4) {
      const r4 = Rt2();
      return r4 ? Promise.resolve(r4) : e3 ? e3.createBufferSink(a2, t5, n4) : Promise.resolve(null);
    }, dischargePreBuffer: function() {
      e3.dischargePreBuffer();
    }, finalisePlayList: function(t5, e4) {
      w3.pushPlayListTraceMetrics(t5, e4);
    }, getAllMediaInfos: function() {
      return s2;
    }, getBuffer: Rt2, getBufferController: function() {
      return e3;
    }, getBufferLevel: function() {
      return e3 ? e3.getBufferLevel() : 0;
    }, getFragmentModel: function() {
      return x2;
    }, getMediaInfo: function() {
      return a2;
    }, getMediaSource: function() {
      return e3.getMediaSource();
    }, getRepresentation: Dt2, getRepresentationController: function() {
      return c3;
    }, getScheduleController: Nt2, getStreamId: W2, getStreamInfo: function() {
      return q2;
    }, getType: $2, initialize: function(a3, o4, s3) {
      g3 = Pt(b3).create({ events: R.default, eventBus: y3, streamInfo: q2, timelineConverter: Y2, dashConstants: I.default, segmentBaseController: t4.segmentBaseController, type: K2 }), r3 = _t(b3).create({ streamInfo: q2, type: K2, timelineConverter: Y2, dashMetrics: w3, mediaPlayerModel: P2, baseURLController: t4.baseURLController, errHandler: N2, segmentsController: g3, settings: j2, boxParser: T3, events: R.default, eventBus: y3, errors: V, debug: (0, C.default)(b3).getInstance(), dashConstants: I.default, constants: S2.default, urlUtils: St(b3).getInstance() }), l3 = q2.manifestInfo.isDynamic, r3.initialize(l3), E3.registerStreamType(K2, i3), c3 = bt(b3).create({ streamInfo: q2, type: K2, abrController: E3, dashMetrics: w3, playbackController: F2, timelineConverter: Y2, dashConstants: I.default, events: R.default, eventBus: y3, errors: V, isDynamic: l3, adapter: _3, segmentsController: g3 }), e3 = function(t5, e4) {
        let n4 = null;
        return t5 ? (n4 = t5 !== S2.default.TEXT || e4 ? at(b3).create({ abrController: E3, capabilities: v3, errHandler: N2, fragmentModel: x2, manifestModel: M2, mediaController: O2, mediaPlayerModel: P2, playbackController: F2, representationController: c3, settings: j2, streamInfo: q2, textController: H2, type: t5 }) : lt(b3).create({ errHandler: N2, fragmentModel: x2, mimeType: L2, settings: j2, streamInfo: q2, textController: H2, type: t5 }), n4) : (N2.error(new G.default(V.MEDIASOURCE_TYPE_UNSUPPORTED_CODE, V.MEDIASOURCE_TYPE_UNSUPPORTED_MESSAGE + "not properly defined")), null);
      }(K2, s3), e3 && e3.initialize(a3), f3 = st(b3).create({ streamInfo: q2, type: K2, mimeType: L2, adapter: _3, dashMetrics: w3, mediaPlayerModel: P2, fragmentModel: x2, abrController: E3, playbackController: F2, textController: H2, mediaController: O2, bufferController: e3, representationController: c3, settings: j2 }), f3.initialize(o4), n3 = 0, h3 = false, m3 = false;
    }, isBufferingCompleted: xt2, prepareInnerPeriodPlaybackSeeking: function(t5) {
      return new Promise((n4) => {
        if (e3.hasBufferAtTime(t5.seekTime))
          return e3.pruneBuffer(), Q2(e3.getContinuousBufferTimeForTargetTime(t5.seekTime)) && e3.setIsBufferingCompleted(true), void n4();
        Ct2(), x2.abortRequests(), e3.prepareForPlaybackSeek().then(() => {
          const n5 = e3.getAllRangesWithSafetyFactor(t5.seekTime);
          return e3.clearBuffers(n5);
        }).then(() => {
          const a3 = e3.getContinuousBufferTimeForTargetTime(t5.seekTime);
          if (Q2(a3))
            e3.setIsBufferingCompleted(true), n4();
          else {
            const r4 = isNaN(a3) ? t5.seekTime : a3;
            qt2(r4), e3.setSeekTarget(r4);
            const i4 = [];
            i4.push(e3.updateAppendWindow());
            const l4 = Dt2();
            i4.push(e3.updateBufferTimestampOffset(l4)), Promise.all(i4).then(() => {
              f3.setInitSegmentRequired(true), f3.setCheckPlaybackQuality(false), f3.startScheduleTimer(), n4();
            });
          }
        }).catch((t6) => {
          o3.error(t6);
        });
      });
    }, prepareOuterPeriodPlaybackSeeking: function() {
      return new Promise((t5, n4) => {
        try {
          Ct2(), x2.abortRequests(), e3.prepareForPlaybackSeek().then(() => e3.pruneAllSafely()).then(() => {
            t5();
          });
        } catch (t6) {
          n4(t6);
        }
      });
    }, prepareQualityChange: function(t5) {
      t5.newRepresentation && (u3 && u3.enabled && o3.warn(`Canceling queued representation switch to ${u3.newRepresentation.id} for ${K2}`), t5.isAdaptationSetSwitch ? (o3.debug(`Preparing quality switch to different AdaptationSet for type ${K2}`), function(t6) {
        const e4 = t6.newRepresentation;
        d3 = true, Ct2(), f3.setSwitchTrack(true);
        const n4 = e4.mediaInfo;
        ct2(n4), dt2(new Ut({ newMediaInfo: n4, newRepresentation: e4 })).then(() => {
          ft2(t6);
        });
      }(t5)) : (o3.debug(`Preparing quality within the same AdaptationSet for type ${K2}`), function(t6) {
        const e4 = t6.newRepresentation;
        d3 = true, Ct2(), c3.prepareQualityChange(e4), ft2(t6);
      }(t5)));
    }, prepareTrackSwitch: function(t5) {
      let n4 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
      return new Promise((a3) => {
        o3.debug(`Preparing track switch for type ${K2}`);
        const r4 = K2 === S2.default.TEXT || n4 || j2.get().streaming.trackSwitchMode[K2] === S2.default.TRACK_SWITCH_MODE_ALWAYS_REPLACE && F2.getTimeToStreamEnd(q2) > j2.get().streaming.buffer.stallThreshold;
        e3.getIsBufferingCompleted() && !r4 ? function(t6) {
          return new Promise((n5) => {
            const a4 = c3.getCurrentRepresentation();
            e3.prepareForNonReplacementTrackSwitch(a4, t6).then(() => {
              y3.trigger(R.default.BUFFERING_COMPLETED, {}, { streamId: q2.id, mediaType: K2 }), n5();
            }).catch(() => {
              y3.trigger(R.default.BUFFERING_COMPLETED, {}, { streamId: q2.id, mediaType: K2 }), n5();
            });
          });
        }(t5).then(() => {
          a3();
        }) : (f3.setSwitchTrack(true), r4 ? function(t6) {
          return new Promise((n5) => {
            y3.trigger(R.default.BUFFER_REPLACEMENT_STARTED, { mediaType: K2, streamId: q2.id }, { mediaType: K2, streamId: q2.id }), x2.abortRequests();
            const a4 = Dt2();
            e3.prepareForReplacementTrackSwitch(a4, t6).then(() => {
              Ot2(), n5();
            }).catch(() => {
              Ot2(), n5();
            });
          });
        }(t5).then(() => {
          a3();
        }) : function(t6) {
          return new Promise((n5) => {
            const a4 = () => {
              const r5 = x2.getRequests({ state: B.FRAGMENT_MODEL_LOADING });
              if (r5 && 0 !== r5.length)
                y3.once(D.default.FRAGMENT_LOADING_COMPLETED, a4, i3);
              else {
                const a5 = Dt2();
                e3.prepareForNonReplacementTrackSwitch(a5, t6).then(() => {
                  Lt2(), n5();
                }).catch((t7) => {
                  o3.error(t7), Lt2(), n5();
                });
              }
            };
            a4();
          });
        }(t5).then(() => {
          a3();
        }));
      });
    }, probeNextRequest: function() {
      const t5 = Dt2();
      return r3.getNextSegmentRequestIdempotent(a2, t5);
    }, reset: function(t5, n4) {
      r3 && r3.reset(), e3 && (e3.reset(t5, n4), e3 = null), f3 && (f3.reset(), f3 = null), c3 && (c3.reset(), c3 = null), g3 && (g3 = null), E3 && E3.unRegisterStreamType(W2(), K2), y3.off(R.default.INIT_FRAGMENT_NEEDED, Z2, i3), y3.off(R.default.MEDIA_FRAGMENT_NEEDED, J2, i3), y3.off(R.default.INIT_FRAGMENT_LOADED, Mt2, i3), y3.off(R.default.MEDIA_FRAGMENT_LOADED, zt2, i3), y3.off(R.default.BUFFER_LEVEL_STATE_CHANGED, nt2, i3), y3.off(R.default.BUFFER_CLEARED, rt2, i3), y3.off(R.default.SEEK_TARGET, jt2, i3), y3.off(R.default.FRAGMENT_LOADING_ABANDONED, Tt2, i3), y3.off(R.default.FRAGMENT_LOADING_COMPLETED, vt2, i3), y3.off(R.default.SET_FRAGMENTED_TEXT_AFTER_DISABLED, wt2, i3), y3.off(R.default.SET_NON_FRAGMENTED_TEXT, It2, i3), y3.off(R.default.QUOTA_EXCEEDED, At2, i3), y3.off(R.default.SOURCE_BUFFER_ERROR, it2, i3), y3.off(R.default.BYTES_APPENDED_END_FRAGMENT, ot2, i3), X2(), K2 = null, q2 = null;
    }, selectMediaInfo: dt2, setExplicitBufferingTime: qt2, setMediaInfoArray: function(t5) {
      s2 = t5;
    }, setMediaSource: function(t5) {
      return e3.setMediaSource(t5, a2);
    }, setTrackSwitchInProgress: function(t5) {
      p3 = t5;
    }, updateStreamInfo: function(t5) {
      return q2 = t5, xt2() ? Promise.resolve() : e3.updateAppendWindow();
    } }, o3 = (0, C.default)(b3).getInstance().getLogger(i3), X2(), y3.on(R.default.INIT_FRAGMENT_NEEDED, Z2, i3), y3.on(R.default.MEDIA_FRAGMENT_NEEDED, J2, i3), y3.on(R.default.INIT_FRAGMENT_LOADED, Mt2, i3), y3.on(R.default.MEDIA_FRAGMENT_LOADED, zt2, i3), y3.on(R.default.BUFFER_LEVEL_STATE_CHANGED, nt2, i3), y3.on(R.default.BUFFER_CLEARED, rt2, i3), y3.on(R.default.SEEK_TARGET, jt2, i3), y3.on(R.default.FRAGMENT_LOADING_ABANDONED, Tt2, i3), y3.on(R.default.FRAGMENT_LOADING_COMPLETED, vt2, i3), y3.on(R.default.QUOTA_EXCEEDED, At2, i3), y3.on(R.default.SET_FRAGMENTED_TEXT_AFTER_DISABLED, wt2, i3), y3.on(R.default.SET_NON_FRAGMENTED_TEXT, It2, i3), y3.on(R.default.SOURCE_BUFFER_ERROR, it2, i3), y3.on(R.default.BYTES_APPENDED_END_FRAGMENT, ot2, i3), i3;
  }
  jt.__dashjs_factory_name = "StreamProcessor";
  var qt = N.default.getClassFactory(jt), Bt = class {
    constructor() {
      this.streamId = null, this.segmentType = null, this.index = NaN, this.bytes = null, this.start = NaN, this.end = NaN, this.duration = NaN, this.representation = null, this.endFragment = null;
    }
  }, Gt = n2(7263);
  function Ht() {
    let t4, e3;
    function n3() {
      e3 && (e3.onloadend = e3.onerror = e3.onprogress = e3.onload = null, e3.abort(), e3 = null);
    }
    return t4 = { load: function(t5, a2) {
      if (e3 = null, e3 = new XMLHttpRequest(), e3.open(t5.method, t5.url, true), t5.responseType && (e3.responseType = t5.responseType), t5.headers)
        for (let n4 in t5.headers) {
          let a3 = t5.headers[n4];
          a3 && e3.setRequestHeader(n4, a3);
        }
      return e3.withCredentials = "include" === t5.credentials, e3.timeout = t5.timeout, e3.onload = function() {
        a2.url = this.responseURL, a2.status = this.status, a2.statusText = this.statusText, a2.headers = Gt.default.parseHttpHeaders(this.getAllResponseHeaders()), a2.data = this.response;
      }, t5.customData && (e3.onloadend = t5.customData.onloadend, e3.onprogress = t5.customData.onprogress, e3.onabort = t5.customData.onabort, e3.ontimeout = t5.customData.ontimeout), e3.send(), t5.customData.abort = n3.bind(this), true;
    }, abort: n3, getXhr: function() {
      return e3;
    }, reset: function() {
      n3(), t4 = null;
    }, resetInitialSettings: function() {
      n3();
    } }, t4;
  }
  Ht.__dashjs_factory_name = "XHRLoader";
  var Yt = N.default.getClassFactory(Ht);
  function Vt() {
    const t4 = this.context, e3 = (0, K.default)(t4).getInstance();
    let n3, a2, r3;
    function i3(t5, e4, n4) {
      t5.customData.reader.read().then(n4).catch(function() {
        l3(t5);
      });
    }
    function l3(t5) {
      t5.customData.onloadend && t5.customData.onloadend();
    }
    function o3() {
      return "undefined" != typeof performance && "function" == typeof performance.now ? performance.now() : Date.now();
    }
    function s2() {
      if (this.customData.abortController)
        this.customData.abortController.abort();
      else if (this.customData.reader)
        try {
          this.customData.reader.cancel(), this.onabort();
        } catch (t5) {
        }
    }
    function u3(t5, e4) {
      try {
        if ((t5 = t5.filter((n4) => n4.bytes > e4 / 4 / t5.length)).length > 1) {
          let e5 = 0;
          const n4 = (t5[t5.length - 1].timestamp - t5[0].timestamp) / t5.length;
          return t5.forEach((a3, r4) => {
            const i4 = t5[r4 + 1];
            if (i4) {
              const t6 = i4.timestamp - a3.timestamp;
              e5 += t6 < n4 ? t6 : 0;
            }
          }), e5;
        }
        return null;
      } catch (t6) {
        return null;
      }
    }
    function d3(t5, e4) {
      return 8 * t5 / e4;
    }
    return r3 = (0, C.default)(t4).getInstance().getLogger(n3), n3 = { abort: s2, calculateDownloadedTime: u3, load: function(t5, n4) {
      const c3 = function(t6) {
        const e4 = new Headers();
        if (t6.headers)
          for (let n5 in t6.headers) {
            let a3 = t6.headers[n5];
            a3 && e4.append(n5, a3);
          }
        return e4;
      }(t5), f3 = function(t6) {
        let e4;
        return "function" == typeof window.AbortController && (e4 = new AbortController(), t6.customData.abortController = e4, e4.signal.onabort = t6.customData.onabort), t6.customData.abort = s2.bind(t6), e4;
      }(t5), g3 = function(t6, e4, n5) {
        return new Request(t6.url, { method: t6.method, headers: e4, credentials: t6.credentials, signal: n5 ? n5.signal : void 0 });
      }(t5, c3, f3);
      fetch(g3).then((l4) => {
        !function(t6, n5, l5) {
          (function(t7, e4) {
            t7.status = e4.status, t7.statusText = e4.statusText, t7.url = e4.url;
            const n6 = {};
            for (const t8 of e4.headers.keys())
              n6[t8] = e4.headers.get(t8);
            t7.headers = n6;
          })(l5, t6), t6.ok || n5.customData.onloadend();
          let s3 = 0, c4 = false, f4 = new Uint8Array(), g4 = 0;
          n5.customData.reader = t6.body.getReader();
          let m3 = [], h3 = [], p3 = [], b3 = true;
          const y3 = e3.get().streaming.abr.throughput.lowLatencyDownloadTimeCalculationMode, E3 = (t7) => {
            let { value: e4, done: _3 } = t7;
            _3 ? function() {
              if (f4) {
                const t8 = function() {
                  let t9 = null;
                  return y3 === S2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.MOOF_PARSING ? t9 = function() {
                    const t10 = function(t11, e5) {
                      try {
                        let n6, a3;
                        if (n6 = t11.slice(0, -1), a3 = e5.slice(0, -1), n6.length !== a3.length && r3.warn(`[FetchLoader] Moof and Mdat data arrays have different lengths. Moof: ${n6.length}, Mdat: ${a3.length}`), n6.length <= 1)
                          return null;
                        let i4 = [], l6 = 0, o4 = 0;
                        for (let t12 = 0; t12 < n6.length; t12++)
                          if (n6[t12] && a3[t12]) {
                            let e6 = a3[t12].timestamp - n6[t12].timestamp;
                            if (e6 > 1) {
                              const n7 = d3(a3[t12].bytes, e6);
                              i4.push(n7), o4 = 0;
                            } else {
                              0 === o4 && (o4 = n6[t12].timestamp, l6 = 0);
                              let e7 = a3[t12].timestamp - o4;
                              if (e7 > 1) {
                                l6 += a3[t12].bytes;
                                const n7 = d3(l6, e7);
                                i4.push(n7), o4 = 0;
                              } else
                                l6 += a3[t12].bytes;
                            }
                          }
                        return i4.length > 0 ? i4.reduce((t12, e6) => t12 + e6, 0) / i4.length : null;
                      } catch (t12) {
                        return null;
                      }
                    }(h3, p3);
                    return t10 ? 8 * s3 / t10 : null;
                  }() : y3 === S2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.DOWNLOADED_DATA && (t9 = u3(m3, s3)), t9;
                }();
                n5.customData.onprogress({ loaded: s3, total: s3, lengthComputable: true, time: t8 }), l5.data = f4.buffer;
              }
              n5.customData.onloadend();
            }() : (e4 && e4.length > 0 && function(t8) {
              f4 = function(t9, e6) {
                if (0 === t9.length)
                  return e6;
                const n6 = new Uint8Array(t9.length + e6.length);
                return n6.set(t9), n6.set(e6, t9.length), n6;
              }(f4, t8), s3 += t8.length, m3.push({ timestamp: o3(), bytes: t8.length }), y3 === S2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.MOOF_PARSING && b3 && a2.findLastTopIsoBoxCompleted(["moof"], f4, g4).found && (b3 = false, h3.push({ timestamp: o3() }));
              const e5 = a2.findLastTopIsoBoxCompleted(["moov", "mdat"], f4, g4);
              e5.found ? function(t9) {
                const e6 = function(t10) {
                  let e7;
                  return t10 === f4.length ? (e7 = f4, f4 = new Uint8Array()) : (e7 = new Uint8Array(f4.subarray(0, t10)), f4 = f4.subarray(t10)), e7;
                }(t9.startOffsetOfLastFoundTargetBox + t9.sizeOfLastFoundTargetBox);
                y3 !== S2.default.LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE.MOOF_PARSING || b3 || (b3 = true, p3.push({ timestamp: o3(), bytes: e6.length })), n5.customData.onprogress({ data: e6.buffer, lengthComputable: false, noTrace: true }), g4 = 0;
              }(e5) : function(t9) {
                g4 = t9.startOffsetOfLastCompletedBox + t9.sizeOfLastCompletedBox, c4 || (n5.customData.onprogress({ lengthComputable: false, noTrace: true }), c4 = true);
              }(e5);
            }(e4), i3(n5, 0, E3));
          };
          i3(n5, 0, E3);
        }(l4, t5, n4);
      }).catch(() => {
        l3(t5);
      });
    }, reset: function() {
    }, setConfig: function(t5) {
      a2 = t5.boxParser;
    } }, n3;
  }
  Vt.__dashjs_factory_name = "FetchLoader";
  var Kt = N.default.getClassFactory(Vt), Wt = n2(913), $t = class {
    constructor() {
      this.period = null, this.index = -1, this.type = null;
    }
  };
  class Xt {
    constructor(t4, e3, n3, a2) {
      this.url = t4 || "", this.serviceLocation = e3 || t4 || "", this.dvbPriority = n3 || 1, this.dvbWeight = a2 || 1, this.availabilityTimeOffset = 0, this.availabilityTimeComplete = true, this.queryParams = {};
    }
  }
  Xt.DEFAULT_DVB_PRIORITY = 1, Xt.DEFAULT_DVB_WEIGHT = 1;
  var Qt = Xt, Zt = class {
    constructor() {
      this.schemeIdUri = null, this.value = null, this.id = null;
    }
    init(t4) {
      t4 && (this.schemeIdUri = t4.schemeIdUri ? t4.schemeIdUri : null, this.value = null !== t4.value && void 0 !== t4.value ? t4.value.toString() : null, this.id = t4.id ? t4.id : null, t4[I.default.DVB_URL] && (this.dvbUrl = t4[I.default.DVB_URL]), t4[I.default.DVB_MIMETYPE] && (this.dvbMimeType = t4[I.default.DVB_MIMETYPE]), t4[I.default.DVB_FONTFAMILY] && (this.dvbFontFamily = t4[I.default.DVB_FONTFAMILY]));
    }
    inArray(t4) {
      return !!t4 && t4.some((t5) => this.schemeIdUri === t5.schemeIdUri && (this.value ? this.value.toString().match(t5.value) : "".match(t5.value)));
    }
  }, Jt = class extends Zt {
    constructor() {
      super(), this.version = null, this.sessionID = null, this.contentID = null, this.mode = null, this.keys = null, this.includeInRequests = null;
    }
    init(t4) {
      super.init(t4), t4 && (this.version = t4.version, this.sessionID = t4.sessionID, this.contentID = t4.contentID, this.mode = t4.mode ?? "query", this.keys = t4.keys ? t4.keys.split(" ") : null, this.includeInRequests = t4.includeInRequests ? t4.includeInRequests.split(" ") : ["segment"], this.schemeIdUri = t4.schemeIdUri);
    }
  }, te = class {
    constructor() {
      this.adaptationSets = null, this.adaptationSetsArray = [], this.cmcdParameters = null, this.serviceLocations = null, this.serviceLocationsArray = [];
    }
  }, ee = class extends Zt {
    constructor() {
      super(), this.ref = null, this.refId = null, this.robustness = null, this.keyId = null, this.cencDefaultKid = null, this.pssh = null, this.pro = null, this.laUrl = null;
    }
    init(t4) {
      super.init(t4), t4 && (this.ref = t4.hasOwnProperty(I.default.REF) ? t4[I.default.REF] : null, this.refId = t4.hasOwnProperty(I.default.REF_ID) ? t4[I.default.REF_ID] : null, this.robustness = t4.hasOwnProperty(I.default.ROBUSTNESS) ? t4[I.default.ROBUSTNESS] : null, this.cencDefaultKid = t4.hasOwnProperty(I.default.CENC_DEFAULT_KID) ? t4[I.default.CENC_DEFAULT_KID] : null, this.pssh = t4.hasOwnProperty(I.default.PSSH) ? t4[I.default.PSSH] : null, this.pro = t4.hasOwnProperty(I.default.PRO) ? t4[I.default.PRO] : null, this.laUrl = t4.hasOwnProperty(I.default.LA_URL) ? t4[I.default.LA_URL] : t4.hasOwnProperty(I.default.LA_URL_LOWER_CASE) ? t4[I.default.LA_URL_LOWER_CASE] : null);
    }
    mergeAttributesFromReference(t4) {
      ["schemeIdUri", "value", "id", "robustness", "cencDefaultKid", "pro", "pssh", "laUrl"].forEach((e3) => {
        null === this[e3] && (this[e3] = t4[e3]);
      });
    }
  }, ne = class {
    constructor() {
      this.defaultServiceLocation = null, this.defaultServiceLocationArray = [], this.queryBeforeStart = false, this.serverUrl = null, this.clientRequirement = true;
    }
  }, ae = class {
    constructor() {
      this.type = "", this.duration = NaN, this.presentationTime = NaN, this.id = NaN, this.messageData = "", this.eventStream = null, this.presentationTimeDelta = NaN, this.parsedMessageData = null;
    }
  }, re = class {
    constructor() {
      this.adaptionSet = null, this.representation = null, this.period = null, this.timescale = 1, this.value = "", this.schemeIdUri = "", this.presentationTimeOffset = 0;
    }
  }, ie = class {
    constructor() {
      this.availabilityEndTime = Number.POSITIVE_INFINITY, this.availabilityStartTime = null, this.manifest = null, this.maxSegmentDuration = Number.POSITIVE_INFINITY, this.mediaPresentationDuration = NaN, this.minimumUpdatePeriod = NaN, this.publishTime = null, this.suggestedPresentationDelay = 0, this.timeShiftBufferDepth = Number.POSITIVE_INFINITY;
    }
  }, le = class {
    constructor(t4, e3) {
      this.url = t4 || "", this.serviceLocation = e3 || null, this.queryParams = {};
    }
  }, oe = n2(7393), se = class {
    constructor(t4, e3, n3) {
      this.url = t4 || "", this.serviceLocation = e3 || null, this.ttl = n3 || NaN, this.queryParams = {};
    }
  };
  class ue {
    constructor() {
      this.id = null, this.index = -1, this.duration = NaN, this.start = NaN, this.mpd = null, this.nextPeriodId = null, this.isEncrypted = false;
    }
  }
  ue.DEFAULT_ID = "defaultId";
  var de = ue, ce = class {
    constructor() {
      this.id = null, this.inband = false, this.type = "encoder", this.applicationScheme = null, this.wallClockTime = null, this.presentationTime = NaN, this.UTCTiming = null;
    }
  }, fe = class {
    constructor() {
      this.absoluteIndex = NaN, this.adaptation = null, this.availabilityTimeComplete = true, this.availabilityTimeOffset = 0, this.bandwidth = NaN, this.bitrateInKbit = NaN, this.bitsPerPixel = NaN, this.codecFamily = null, this.codecPrivateData = null, this.codecs = null, this.essentialProperties = [], this.fragmentDuration = null, this.frameRate = null, this.height = NaN, this.id = null, this.indexRange = null, this.initialization = null, this.maxPlayoutRate = NaN, this.mediaFinishedInformation = { numberOfSegments: 0, mediaTimeOfLastSignaledSegment: NaN }, this.mediaInfo = null, this.mimeType = null, this.mseTimeOffset = NaN, this.pixelsPerSecond = NaN, this.presentationTimeOffset = 0, this.qualityRanking = NaN, this.range = null, this.scanType = null, this.segments = null, this.segmentDuration = NaN, this.segmentInfoType = null, this.supplementalProperties = [], this.startNumber = 1, this.timescale = 1, this.width = NaN, this.endNumber = null;
    }
    hasInitialization() {
      return null !== this.initialization || null !== this.range;
    }
    hasSegments() {
      return this.segmentInfoType !== I.default.BASE_URL && this.segmentInfoType !== I.default.SEGMENT_BASE && !this.indexRange;
    }
  }, ge = n2(5717);
  function me() {
    let t4, e3, n3, a2;
    const r3 = this.context, i3 = St(r3).getInstance(), l3 = Number.isInteger || function(t5) {
      return "number" == typeof t5 && isFinite(t5) && Math.floor(t5) === t5;
    };
    function o3(t5, e4) {
      if (!t5)
        throw new Error("adaptation is not defined");
      if (!e4)
        throw new Error("type is not defined");
      if (t5.Representation && t5.Representation.length) {
        const n5 = v3(t5.Representation[0]);
        if (n5 && n5.some((t6) => S2.default.THUMBNAILS_SCHEME_ID_URIS.indexOf(t6.schemeIdUri) >= 0))
          return e4 === S2.default.IMAGE;
      }
      if (t5.ContentComponent && t5.ContentComponent.length > 0) {
        if (t5.ContentComponent.length > 1)
          return e4 === S2.default.MUXED;
        if (t5.ContentComponent[0].contentType === e4)
          return true;
      }
      const n4 = e4 === S2.default.TEXT ? new RegExp("(ttml|vtt|wvtt|stpp)") : new RegExp(e4);
      if (t5.Representation && t5.Representation.length) {
        const e5 = t5.Representation[0].codecs;
        if (n4.test(e5))
          return true;
      }
      if (t5.hasOwnProperty(I.default.MIME_TYPE))
        return n4.test(t5.mimeType);
      if (t5.Representation) {
        let e5;
        for (let a3 = 0; a3 < t5.Representation.length; a3++)
          if (e5 = t5.Representation[a3], e5.hasOwnProperty(I.default.MIME_TYPE))
            return n4.test(e5.mimeType);
      }
      return false;
    }
    function s2(t5) {
      if (!t5)
        throw new Error("adaptation is not defined");
      if (t5.hasOwnProperty(I.default.SEGMENT_TEMPLATE) || t5.hasOwnProperty(I.default.SEGMENT_TIMELINE) || t5.hasOwnProperty(I.default.SEGMENT_LIST) || t5.hasOwnProperty(I.default.SEGMENT_BASE))
        return true;
      if (t5.Representation && t5.Representation.length > 0) {
        const e4 = t5.Representation[0];
        if (e4.hasOwnProperty(I.default.SEGMENT_TEMPLATE) || e4.hasOwnProperty(I.default.SEGMENT_TIMELINE) || e4.hasOwnProperty(I.default.SEGMENT_LIST) || e4.hasOwnProperty(I.default.SEGMENT_BASE))
          return true;
      }
      return false;
    }
    function u3(t5) {
      return o3(t5, S2.default.VIDEO);
    }
    function d3(t5) {
      return o3(t5, S2.default.TEXT);
    }
    function c3(t5) {
      return o3(t5, S2.default.IMAGE);
    }
    function f3(t5) {
      return t5 && t5.Representation && t5.Representation.sort((t6, e4) => t6.bandwidth - e4.bandwidth), t5;
    }
    function g3(t5, e4) {
      return t5 && t5.Period && l3(e4) && t5.Period[e4] ? t5.Period[e4].AdaptationSet : [];
    }
    function m3(t5) {
      return t5 && t5.Period ? t5.Period : [];
    }
    function h3(t5) {
      const e4 = p3(t5);
      return e4 && e4.length > 0;
    }
    function p3(t5) {
      let e4 = [];
      if (!t5)
        return e4;
      const n4 = b3(t5);
      return e4 = e4.concat(n4), t5.hasOwnProperty(I.default.ADAPTATION_SET) && t5[I.default.ADAPTATION_SET].length > 0 && t5[I.default.ADAPTATION_SET].forEach((t6) => {
        const n5 = b3(t6);
        e4 = e4.concat(n5);
      }), e4;
    }
    function b3(t5) {
      return t5 && t5.hasOwnProperty(I.default.CONTENT_PROTECTION) && 0 !== t5.ContentProtection.length ? t5[I.default.CONTENT_PROTECTION].map((t6) => {
        const e4 = new ee();
        return e4.init(t6), e4;
      }) : [];
    }
    function y3(t5) {
      let e4 = false;
      return t5 && t5.hasOwnProperty("type") && (e4 = t5.type === I.default.DYNAMIC), e4;
    }
    function E3(t5) {
      if (!t5)
        return null;
      const e4 = t5[I.default.FRAMERATE];
      if (!e4)
        return null;
      if ("string" == typeof e4 && e4.includes("/")) {
        const [t6, n4] = e4.split("/").map((t7) => parseInt(t7, 10));
        if (!isNaN(t6) && !isNaN(n4) && 0 !== n4)
          return t6 / n4;
      }
      return parseInt(e4);
    }
    function _3(t5, e4) {
      return e4 && e4.hasOwnProperty(t5) && e4[t5].length ? e4[t5].map((t6) => {
        const e5 = new Zt();
        return e5.init(t6), e5;
      }) : [];
    }
    function T3(t5, e4) {
      if (!e4)
        return [];
      let n4 = function(t6, e5) {
        if (!e5 || !e5.length)
          return [];
        let n5 = e5[0][t6] || [];
        return 0 === n5.length ? [] : 1 === e5.length ? n5 : n5.filter((n6) => e5.slice(1).every((e6) => e6.hasOwnProperty(t6) && e6[t6].some((t7) => t7.schemeIdUri === n6.schemeIdUri && t7.value === n6.value)));
      }(t5, e4[I.default.REPRESENTATION]);
      return e4.hasOwnProperty(t5) && e4[t5].length && n4.push(...e4[t5]), n4.map((t6) => {
        const e5 = new Zt();
        return e5.init(t6), e5;
      });
    }
    function v3(t5) {
      return _3(I.default.ESSENTIAL_PROPERTY, t5);
    }
    function w3(t5) {
      return _3(I.default.SUPPLEMENTAL_PROPERTY, t5);
    }
    function k2(t5) {
      if (!t5 || !t5.S)
        return NaN;
      let e4 = t5.S[0], n4 = t5.S[1];
      return e4.hasOwnProperty("d") ? e4.d : n4.t - e4.t;
    }
    function A2(t5) {
      const e4 = t5.presentationTimeOffset;
      return t5.adaptation.period.start - e4;
    }
    function R2(t5, e4) {
      if (!t5)
        throw new Error("Period cannot be null or undefined");
      let n4 = de.DEFAULT_ID + "_" + e4;
      return t5.hasOwnProperty(I.default.ID) && t5.id.toString().length > 0 && "__proto__" !== t5.id && (n4 = t5.id.toString()), n4;
    }
    function N2(t5, e4, n4) {
      const a3 = [];
      let r4;
      if (!t5)
        return a3;
      for (r4 = 0; r4 < t5.length; r4++) {
        const i4 = new re();
        if (i4.timescale = 1, i4.representation = e4, !t5[r4].hasOwnProperty(S2.default.SCHEME_ID_URI))
          throw new Error("Invalid EventStream. SchemeIdUri has to be set");
        i4.schemeIdUri = t5[r4].schemeIdUri, t5[r4].hasOwnProperty(I.default.TIMESCALE) && (i4.timescale = t5[r4].timescale), t5[r4].hasOwnProperty(I.default.VALUE) && (i4.value = t5[r4].value), a3.push(i4), i4.period = n4;
      }
      return a3;
    }
    function D2(t5) {
      const e4 = [], n4 = t5.BaseURL || [t5.baseUri];
      let a3 = false;
      return n4.some((n5) => {
        if (n5) {
          const r4 = new Qt();
          let l4 = n5.__text || n5;
          return i3.isRelative(l4) && (a3 = true, t5.baseUri && (l4 = i3.resolve(l4, t5.baseUri))), r4.url = l4, n5.hasOwnProperty(I.default.SERVICE_LOCATION) && n5.serviceLocation.length ? r4.serviceLocation = n5.serviceLocation : r4.serviceLocation = l4, n5.hasOwnProperty(I.default.DVB_PRIORITY) && (r4.dvbPriority = n5[I.default.DVB_PRIORITY]), n5.hasOwnProperty(I.default.DVB_WEIGHT) && (r4.dvbWeight = n5[I.default.DVB_WEIGHT]), n5.hasOwnProperty(I.default.AVAILABILITY_TIME_OFFSET) && (r4.availabilityTimeOffset = n5[I.default.AVAILABILITY_TIME_OFFSET]), n5.hasOwnProperty(I.default.AVAILABILITY_TIME_COMPLETE) && (r4.availabilityTimeComplete = "false" !== n5[I.default.AVAILABILITY_TIME_COMPLETE]), e4.push(r4), a3;
        }
      }), e4;
    }
    function x2(t5) {
      const e4 = new ne();
      return e4.serverUrl = t5.__text, t5.hasOwnProperty(I.default.DEFAULT_SERVICE_LOCATION) && (e4.defaultServiceLocation = t5[I.default.DEFAULT_SERVICE_LOCATION], e4.defaultServiceLocationArray = e4.defaultServiceLocation.split(" ")), t5.hasOwnProperty(I.default.QUERY_BEFORE_START) && (e4.queryBeforeStart = "true" === t5[I.default.QUERY_BEFORE_START].toLowerCase()), t5.hasOwnProperty(I.default.CLIENT_REQUIREMENT) && (e4.clientRequirement = "false" !== t5[I.default.CLIENT_REQUIREMENT].toLowerCase()), e4;
    }
    function M2(t5) {
      const e4 = new te();
      return t5.hasOwnProperty(I.default.CMCD_PARAMETERS) && t5[I.default.CMCD_PARAMETERS].schemeIdUri === S2.default.CTA_5004_2023_SCHEME && (e4.cmcdParameters = new Jt(), e4.cmcdParameters.init(t5[I.default.CMCD_PARAMETERS])), t5.hasOwnProperty(I.default.SERVICE_LOCATIONS) && "" !== t5[I.default.SERVICE_LOCATIONS] && (e4.serviceLocations = t5[I.default.SERVICE_LOCATIONS], e4.serviceLocationsArray = e4.serviceLocations.toString().split(" ")), t5.hasOwnProperty(I.default.ADAPTATION_SETS) && "" !== t5[I.default.ADAPTATION_SETS] && (e4.adaptationSets = t5[I.default.ADAPTATION_SETS], e4.adaptationSetsArray = e4.adaptationSets.toString().split(" ")), e4;
    }
    return t4 = { getAccessibilityForAdaptation: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.ACCESSIBILITY) && t5[I.default.ACCESSIBILITY].length ? t5[I.default.ACCESSIBILITY].map((t6) => {
        const e4 = new Zt();
        return e4.init(t6), e4;
      }) : [];
    }, getAdaptationForId: function(t5, e4, n4) {
      const a3 = g3(e4, n4);
      let r4, i4;
      for (r4 = 0, i4 = a3.length; r4 < i4; r4++)
        if (a3[r4].hasOwnProperty(I.default.ID) && a3[r4].id === t5)
          return a3[r4];
      return null;
    }, getAdaptationForIndex: function(t5, e4, n4) {
      const a3 = g3(e4, n4);
      return a3.length > 0 && l3(t5) ? a3[t5] : null;
    }, getAdaptationsForPeriod: function(t5) {
      const n4 = t5 && l3(t5.index) ? t5.mpd.manifest.Period[t5.index] : null, a3 = [];
      let r4, i4, s3;
      if (n4 && n4.AdaptationSet)
        for (s3 = 0; s3 < n4.AdaptationSet.length; s3++)
          i4 = n4.AdaptationSet[s3], r4 = new $t(), i4.hasOwnProperty(I.default.ID) && (r4.id = i4.id), r4.index = s3, r4.period = t5, o3(i4, S2.default.MUXED) ? r4.type = S2.default.MUXED : o3(i4, S2.default.AUDIO) ? r4.type = S2.default.AUDIO : u3(i4) ? r4.type = S2.default.VIDEO : d3(i4) ? r4.type = S2.default.TEXT : c3(i4) ? r4.type = S2.default.IMAGE : e3.warn("Unknown Adaptation stream type"), a3.push(r4);
      return a3;
    }, getAdaptationsForType: function(t5, e4, n4) {
      const a3 = g3(t5, e4);
      let r4, i4;
      const l4 = [];
      for (r4 = 0, i4 = a3.length; r4 < i4; r4++)
        o3(a3[r4], n4) && l4.push(f3(a3[r4]));
      return l4;
    }, getAudioChannelConfigurationForAdaptation: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.AUDIO_CHANNEL_CONFIGURATION) && t5[I.default.AUDIO_CHANNEL_CONFIGURATION].length ? t5[I.default.AUDIO_CHANNEL_CONFIGURATION].map((t6) => {
        const e4 = new Zt();
        return e4.init(t6), e4;
      }) : [];
    }, getAudioChannelConfigurationForRepresentation: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.AUDIO_CHANNEL_CONFIGURATION) && t5[I.default.AUDIO_CHANNEL_CONFIGURATION].length ? t5[I.default.AUDIO_CHANNEL_CONFIGURATION].map((t6) => {
        const e4 = new Zt();
        return e4.init(t6), e4;
      }) : [];
    }, getAvailabilityStartTime: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.AVAILABILITY_START_TIME) && null !== t5.availabilityStartTime ? t5.availabilityStartTime.getTime() : null;
    }, getBandwidth: function(t5) {
      return t5 && t5.bandwidth ? t5.bandwidth : NaN;
    }, getBaseURLsFromElement: D2, getBitrateListForAdaptation: function(t5) {
      const e4 = f3(t5);
      return (e4 && e4.Representation ? e4.Representation : []).map((t6) => ({ bandwidth: t6.bandwidth, width: t6.width || 0, height: t6.height || 0, scanType: t6.scanType || null, id: t6.id || null }));
    }, getCodec: function(t5, e4, n4) {
      let a3 = null;
      if (t5 && t5.Representation && t5.Representation.length > 0) {
        const r4 = l3(e4) && e4 >= 0 && e4 < t5.Representation.length ? t5.Representation[e4] : t5.Representation[0];
        r4 && (a3 = r4.mimeType + ';codecs="' + r4.codecs + '"', n4 && void 0 !== r4.width && (a3 += ';width="' + r4.width + '";height="' + r4.height + '"'));
      }
      return a3 && (a3 = a3.replace(/\sprofiles=[^;]*/g, "")), a3;
    }, getCombinedEssentialPropertiesForAdaptationSet: function(t5) {
      return T3(I.default.ESSENTIAL_PROPERTY, t5);
    }, getCombinedSupplementalPropertiesForAdaptationSet: function(t5) {
      return T3(I.default.SUPPLEMENTAL_PROPERTY, t5);
    }, getContentProtectionByAdaptation: function(t5) {
      return b3(t5);
    }, getContentProtectionByManifest: function(t5) {
      let e4 = [];
      if (!t5)
        return e4;
      const n4 = b3(t5);
      return e4 = e4.concat(n4), t5.hasOwnProperty(I.default.PERIOD) && t5[I.default.PERIOD].length > 0 && t5[I.default.PERIOD].forEach((t6) => {
        const n5 = p3(t6);
        e4 = e4.concat(n5);
      }), e4;
    }, getContentProtectionByPeriod: p3, getContentSteering: function(t5) {
      if (t5 && t5.hasOwnProperty(I.default.CONTENT_STEERING))
        return x2(t5[I.default.CONTENT_STEERING][0]);
    }, getDuration: function(t5) {
      let e4;
      return e4 = t5 && t5.hasOwnProperty(I.default.MEDIA_PRESENTATION_DURATION) ? t5.mediaPresentationDuration : t5 && "dynamic" == t5.type ? Number.POSITIVE_INFINITY : Number.MAX_SAFE_INTEGER || Number.MAX_VALUE, e4;
    }, getEssentialPropertiesForAdaptationSet: function(t5) {
      return _3(I.default.ESSENTIAL_PROPERTY, t5);
    }, getEssentialPropertiesForRepresentation: v3, getEventStreamForAdaptationSet: function(t5, e4, n4) {
      let a3, r4, i4;
      return t5 && t5.Period && e4 && e4.period && l3(e4.period.index) && (r4 = t5.Period[e4.period.index], r4 && r4.AdaptationSet && l3(e4.index) && (i4 = r4.AdaptationSet[e4.index], i4 && (a3 = i4.InbandEventStream))), N2(a3, null, n4);
    }, getEventStreamForRepresentation: function(t5, e4, n4) {
      let a3, r4, i4, o4;
      return t5 && t5.Period && e4 && e4.adaptation && e4.adaptation.period && l3(e4.adaptation.period.index) && (r4 = t5.Period[e4.adaptation.period.index], r4 && r4.AdaptationSet && l3(e4.adaptation.index) && (i4 = r4.AdaptationSet[e4.adaptation.index], i4 && i4.Representation && l3(e4.index) && (o4 = i4.Representation[e4.index], o4 && (a3 = o4.InbandEventStream)))), N2(a3, e4, n4);
    }, getEventsForPeriod: function(t5) {
      const e4 = t5 && t5.mpd && t5.mpd.manifest ? t5.mpd.manifest : null, n4 = e4 ? e4.Period : null, r4 = n4 && t5 && l3(t5.index) ? n4[t5.index].EventStream : null, i4 = [];
      let o4, s3;
      if (r4)
        for (o4 = 0; o4 < r4.length; o4++) {
          const e5 = new re();
          if (e5.period = t5, e5.timescale = 1, !r4[o4].hasOwnProperty(S2.default.SCHEME_ID_URI))
            throw new Error("Invalid EventStream. SchemeIdUri has to be set");
          for (e5.schemeIdUri = r4[o4][S2.default.SCHEME_ID_URI], r4[o4].hasOwnProperty(I.default.TIMESCALE) && (e5.timescale = r4[o4][I.default.TIMESCALE]), r4[o4].hasOwnProperty(I.default.VALUE) && (e5.value = r4[o4][I.default.VALUE]), r4[o4].hasOwnProperty(I.default.PRESENTATION_TIME_OFFSET) && (e5.presentationTimeOffset = r4[o4][I.default.PRESENTATION_TIME_OFFSET]), s3 = 0; r4[o4].Event && s3 < r4[o4].Event.length; s3++) {
            const n5 = r4[o4].Event[s3], l4 = new ae();
            l4.presentationTime = 0, l4.eventStream = e5, n5.hasOwnProperty(I.default.PRESENTATION_TIME) && (l4.presentationTime = n5.presentationTime);
            const u4 = e5.presentationTimeOffset ? e5.presentationTimeOffset / e5.timescale : 0;
            l4.calculatedPresentationTime = l4.presentationTime / e5.timescale + t5.start - u4, n5.hasOwnProperty(I.default.DURATION) && (l4.duration = n5.duration / e5.timescale), n5.hasOwnProperty(I.default.ID) ? l4.id = parseInt(n5.id) : l4.id = null, n5.Signal && n5.Signal.Binary ? l4.messageData = a2.decodeArray(n5.Signal.Binary.toString()) : l4.messageData = n5.messageData || n5.__cdata || n5.__text, i4.push(l4);
          }
        }
      return i4;
    }, getFramerate: E3, getId: function(t5) {
      return t5 && t5[I.default.ID] || null;
    }, getIndexForAdaptation: function(t5, e4, n4) {
      if (!t5)
        return -1;
      const a3 = g3(e4, n4);
      for (let e5 = 0; e5 < a3.length; e5++)
        if ((0, oe.default)(r3).getInstance().areEqual(a3[e5], t5))
          return e5;
      return -1;
    }, getIsDynamic: y3, getIsFragmented: s2, getIsText: d3, getIsTypeOf: o3, getLabelsForAdaptation: function(t5) {
      if (!t5 || !t5.Label)
        return [];
      const e4 = [];
      for (let n4 = 0; n4 < t5.Label.length; n4++)
        e4.push({ lang: t5.Label[n4].lang, text: t5.Label[n4].__text || t5.Label[n4] });
      return e4;
    }, getLanguageForAdaptation: function(t5) {
      let e4 = "";
      return t5 && t5.hasOwnProperty(I.default.LANG) && (e4 = t5.lang), e4;
    }, getLocation: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.LOCATION) ? t5[I.default.LOCATION].map((t6) => {
        const e4 = t6.__text || t6, n4 = t6.hasOwnProperty(I.default.SERVICE_LOCATION) ? t6[I.default.SERVICE_LOCATION] : null;
        return new le(e4, n4);
      }) : [];
    }, getManifestUpdatePeriod: function(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, n4 = NaN;
      return t5 && t5.hasOwnProperty(I.default.MINIMUM_UPDATE_PERIOD) && (n4 = t5.minimumUpdatePeriod), isNaN(n4) ? n4 : Math.max(n4 - e4, 1);
    }, getMimeType: function(t5) {
      return t5 && t5.Representation && t5.Representation.length > 0 ? t5.Representation[0].mimeType : null;
    }, getMpd: function(t5) {
      const e4 = new ie();
      return t5 && (e4.manifest = t5, t5.hasOwnProperty(I.default.AVAILABILITY_START_TIME) ? e4.availabilityStartTime = new Date(t5.availabilityStartTime.getTime()) : t5.loadedTime && (e4.availabilityStartTime = new Date(t5.loadedTime.getTime())), t5.hasOwnProperty(I.default.AVAILABILITY_END_TIME) && (e4.availabilityEndTime = new Date(t5.availabilityEndTime.getTime())), t5.hasOwnProperty(I.default.MINIMUM_UPDATE_PERIOD) && (e4.minimumUpdatePeriod = t5.minimumUpdatePeriod), t5.hasOwnProperty(I.default.MEDIA_PRESENTATION_DURATION) && (e4.mediaPresentationDuration = t5.mediaPresentationDuration), t5.hasOwnProperty(I.default.SUGGESTED_PRESENTATION_DELAY) && (e4.suggestedPresentationDelay = t5.suggestedPresentationDelay), t5.hasOwnProperty(I.default.TIMESHIFT_BUFFER_DEPTH) && (e4.timeShiftBufferDepth = t5.timeShiftBufferDepth), t5.hasOwnProperty(I.default.MAX_SEGMENT_DURATION) && (e4.maxSegmentDuration = t5.maxSegmentDuration), t5.hasOwnProperty(I.default.PUBLISH_TIME) && (e4.publishTime = new Date(t5.publishTime))), e4;
    }, getPatchLocation: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.PATCH_LOCATION) ? t5[I.default.PATCH_LOCATION].map((t6) => {
        const e4 = t6.__text || t6, n4 = t6.hasOwnProperty(I.default.SERVICE_LOCATION) ? t6[I.default.SERVICE_LOCATION] : null;
        let a3 = t6.hasOwnProperty(I.default.TTL) ? 1e3 * parseFloat(t6[I.default.TTL]) : NaN;
        return new se(e4, n4, a3);
      }) : [];
    }, getProducerReferenceTimesForAdaptation: function(t5) {
      const e4 = t5 && t5.hasOwnProperty(I.default.PRODUCER_REFERENCE_TIME) ? t5[I.default.PRODUCER_REFERENCE_TIME] : [];
      (t5 && t5.hasOwnProperty(I.default.REPRESENTATION) ? t5[I.default.REPRESENTATION] : []).forEach((t6) => {
        t6.hasOwnProperty(I.default.PRODUCER_REFERENCE_TIME) && e4.push(...t6[I.default.PRODUCER_REFERENCE_TIME]);
      });
      const n4 = [];
      return e4.forEach((t6) => {
        const e5 = new ce();
        t6.hasOwnProperty(I.default.ID) && (e5[I.default.ID] = parseInt(t6[I.default.ID]), t6.hasOwnProperty(I.default.WALL_CLOCK_TIME) && (e5[I.default.WALL_CLOCK_TIME] = t6[I.default.WALL_CLOCK_TIME], t6.hasOwnProperty(I.default.PRESENTATION_TIME) && (e5[I.default.PRESENTATION_TIME] = t6[I.default.PRESENTATION_TIME], t6.hasOwnProperty(I.default.INBAND) && (e5[I.default.INBAND] = "false" !== t6[I.default.INBAND]), t6.hasOwnProperty(I.default.TYPE) && (e5[I.default.TYPE] = t6[I.default.TYPE]), n4.push(e5))));
      }), n4;
    }, getPublishTime: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.PUBLISH_TIME) ? new Date(t5[I.default.PUBLISH_TIME]) : null;
    }, getRealPeriodForIndex: function(t5, e4) {
      const n4 = m3(e4);
      return n4.length > 0 && l3(t5) ? n4[t5] : null;
    }, getRealPeriods: m3, getRegularPeriods: function(t5) {
      const a3 = !!t5 && y3(t5.manifest), r4 = [];
      let i4, l4, o4 = null, s3 = null, u4 = null, d4 = null;
      for (l4 = 0, i4 = t5 && t5.manifest && t5.manifest.Period ? t5.manifest.Period.length : 0; l4 < i4; l4++)
        s3 = t5.manifest.Period[l4], s3.hasOwnProperty(I.default.START) ? (d4 = new de(), d4.start = s3.start) : null !== o4 && o4.hasOwnProperty(I.default.DURATION) && null !== u4 ? (d4 = new de(), d4.start = parseFloat((u4.start + u4.duration).toFixed(5))) : 0 !== l4 || a3 || (d4 = new de(), d4.start = 0), null !== u4 && isNaN(u4.duration) && (null !== d4 ? u4.duration = parseFloat((d4.start - u4.start).toFixed(5)) : e3.warn("First period duration could not be calculated because lack of start and duration period properties. This will cause timing issues during playback")), null !== d4 && (d4.id = R2(s3, l4), d4.index = l4, d4.mpd = t5, d4.isEncrypted = h3(s3), s3.hasOwnProperty(I.default.DURATION) && (d4.duration = s3.duration), u4 && (u4.nextPeriodId = d4.id), r4.push(d4), o4 = s3, u4 = d4), s3 = null, d4 = null;
      return 0 === r4.length || null !== u4 && isNaN(u4.duration) && (u4.duration = parseFloat((function(t6) {
        !function() {
          if (!n3 || !n3.hasOwnProperty("error"))
            throw new Error(S2.default.MISSING_CONFIG_ERROR);
        }();
        const e4 = y3(t6.mpd.manifest);
        let a4;
        return t6.mpd.manifest.mediaPresentationDuration ? a4 = t6.mpd.manifest.mediaPresentationDuration : t6.duration ? a4 = t6.duration : e4 ? a4 = Number.POSITIVE_INFINITY : n3.error(new G.default(V.MANIFEST_ERROR_ID_PARSE_CODE, "Must have @mediaPresentationDuration on MPD or an explicit @duration on the last period.", t6)), a4;
      }(u4) - u4.start).toFixed(5))), r4;
    }, getRepresentationCount: function(t5) {
      return t5 && t5.Representation ? t5.Representation.length : 0;
    }, getRepresentationFor: function(t5, e4) {
      return e4 && e4.Representation && e4.Representation.length > 0 && l3(t5) ? e4.Representation[t5] : null;
    }, getRepresentationSortFunction: function() {
      return (t5, e4) => t5.bandwidth - e4.bandwidth;
    }, getRepresentationsForAdaptation: function(t5, e4) {
      const n4 = [], a3 = function(t6) {
        if (t6 && t6.period && l3(t6.period.index)) {
          const e5 = t6.period.mpd.manifest.Period[t6.period.index];
          if (e5 && e5.AdaptationSet && l3(t6.index))
            return f3(e5.AdaptationSet[t6.index]);
        }
      }(t5);
      let r4, i4;
      if (a3 && a3.Representation) {
        if (t5 && t5.period && l3(t5.period.index)) {
          const e5 = D2(t5.period.mpd.manifest);
          e5 && (i4 = e5[0]);
        }
        for (let l4 = 0, o4 = a3.Representation.length; l4 < o4; ++l4) {
          const o5 = a3.Representation[l4], u4 = new fe();
          if (u4.index = l4, u4.adaptation = t5, u4.mediaInfo = e4, o5.hasOwnProperty(I.default.ID) && (u4.id = o5.id), o5.hasOwnProperty(I.default.CODECS) && (u4.codecs = o5.codecs, u4.codecFamily = Gt.default.getCodecFamily(u4.codecs)), o5.hasOwnProperty(I.default.MIME_TYPE) && (u4.mimeType = o5[I.default.MIME_TYPE]), o5.hasOwnProperty(I.default.CODEC_PRIVATE_DATA) && (u4.codecPrivateData = o5.codecPrivateData), o5.hasOwnProperty(I.default.BANDWITH) && (u4.bandwidth = o5.bandwidth, u4.bitrateInKbit = o5.bandwidth / 1e3), o5.hasOwnProperty(I.default.WIDTH) && (u4.width = o5.width), o5.hasOwnProperty(I.default.HEIGHT) && (u4.height = o5.height), o5.hasOwnProperty(I.default.SCAN_TYPE) && (u4.scanType = o5.scanType), o5.hasOwnProperty(I.default.FRAMERATE) && (u4.frameRate = E3(o5)), o5.hasOwnProperty(I.default.QUALITY_RANKING) && (u4.qualityRanking = o5[I.default.QUALITY_RANKING]), o5.hasOwnProperty(I.default.MAX_PLAYOUT_RATE) && (u4.maxPlayoutRate = o5.maxPlayoutRate), o5.hasOwnProperty(I.default.SEGMENT_BASE) ? (r4 = o5.SegmentBase, u4.segmentInfoType = I.default.SEGMENT_BASE) : o5.hasOwnProperty(I.default.SEGMENT_LIST) ? (r4 = o5.SegmentList, r4.hasOwnProperty(I.default.SEGMENT_TIMELINE) ? u4.segmentInfoType = I.default.SEGMENT_TIMELINE : u4.segmentInfoType = I.default.SEGMENT_LIST) : o5.hasOwnProperty(I.default.SEGMENT_TEMPLATE) ? (r4 = o5.SegmentTemplate, r4.hasOwnProperty(I.default.SEGMENT_TIMELINE) ? u4.segmentInfoType = I.default.SEGMENT_TIMELINE : u4.segmentInfoType = I.default.SEGMENT_TEMPLATE, r4.hasOwnProperty(I.default.INITIALIZATION_MINUS) && (u4.initialization = r4.initialization.split("$Bandwidth$").join(o5.bandwidth).split("$RepresentationID$").join(o5.id))) : u4.segmentInfoType = I.default.BASE_URL, u4.essentialProperties = v3(o5), u4.supplementalProperties = w3(o5), r4) {
            if (r4.hasOwnProperty(I.default.INITIALIZATION)) {
              const t6 = r4.Initialization;
              t6.hasOwnProperty(I.default.SOURCE_URL) && (u4.initialization = t6.sourceURL), t6.hasOwnProperty(I.default.RANGE) && (u4.range = t6.range);
            } else
              d3(a3) && s2(a3) && a3.mimeType && -1 === a3.mimeType.indexOf("application/mp4") && (u4.range = 0);
            r4.hasOwnProperty(I.default.TIMESCALE) && (u4.timescale = r4.timescale), r4.hasOwnProperty(I.default.DURATION) ? u4.segmentDuration = r4.duration / u4.timescale : o5.hasOwnProperty(I.default.SEGMENT_TEMPLATE) && (r4 = o5.SegmentTemplate, r4.hasOwnProperty(I.default.SEGMENT_TIMELINE) && (u4.segmentDuration = k2(r4.SegmentTimeline) / u4.timescale)), r4.hasOwnProperty(I.default.MEDIA) && (u4.media = r4.media), r4.hasOwnProperty(I.default.START_NUMBER) && (u4.startNumber = parseInt(r4.startNumber)), r4.hasOwnProperty(I.default.INDEX_RANGE) && (u4.indexRange = r4.indexRange), r4.hasOwnProperty(I.default.PRESENTATION_TIME_OFFSET) && (u4.presentationTimeOffset = r4.presentationTimeOffset / u4.timescale), r4.hasOwnProperty(I.default.AVAILABILITY_TIME_OFFSET) ? u4.availabilityTimeOffset = r4.availabilityTimeOffset : i4 && void 0 !== i4.availabilityTimeOffset && (u4.availabilityTimeOffset = i4.availabilityTimeOffset), r4.hasOwnProperty(I.default.AVAILABILITY_TIME_COMPLETE) ? u4.availabilityTimeComplete = "false" !== r4.availabilityTimeComplete : i4 && void 0 !== i4.availabilityTimeComplete && (u4.availabilityTimeComplete = i4.availabilityTimeComplete), r4.hasOwnProperty(I.default.END_NUMBER) && (u4.endNumber = r4[I.default.END_NUMBER]);
          }
          u4.mseTimeOffset = A2(u4), u4.path = [t5.period.index, t5.index, l4], isNaN(u4.width) || isNaN(u4.height) || isNaN(u4.frameRate) || (u4.pixelsPerSecond = Math.max(1, u4.width * u4.height * u4.frameRate), isNaN(u4.bandwidth) || (u4.bitsPerPixel = u4.bandwidth / u4.pixelsPerSecond)), n4.push(u4);
        }
      }
      return n4;
    }, getRolesForAdaptation: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.ROLE) && t5[I.default.ROLE].length ? t5[I.default.ROLE].map((t6) => {
        t6.schemeIdUri === S2.default.DASH_ROLE_SCHEME_ID && "Main" === t6.value && (t6.value = I.default.MAIN);
        const e4 = new Zt();
        return e4.init(t6), e4;
      }) : [];
    }, getSegmentAlignment: function(t5) {
      return !(!t5 || !t5.hasOwnProperty(I.default.SEGMENT_ALIGNMENT)) && "true" === t5[I.default.SEGMENT_ALIGNMENT];
    }, getSelectionPriority: function(t5) {
      try {
        const e4 = t5 && void 0 !== t5.selectionPriority ? parseInt(t5.selectionPriority) : 1;
        return isNaN(e4) ? 1 : e4;
      } catch (t6) {
        return 1;
      }
    }, getServiceDescriptions: function(t5) {
      const e4 = [];
      if (t5 && t5.hasOwnProperty(I.default.SERVICE_DESCRIPTION))
        for (const n4 of t5.ServiceDescription) {
          let t6 = null, a3 = null, r4 = null, i4 = null, l4 = null, o4 = null, s3 = null, u4 = null;
          for (const e5 in n4)
            if (n4.hasOwnProperty(e5))
              if (e5 === I.default.ID)
                t6 = n4[e5];
              else if (e5 === I.default.SERVICE_DESCRIPTION_SCOPE)
                a3 = n4[e5].schemeIdUri;
              else if (e5 === I.default.SERVICE_DESCRIPTION_LATENCY)
                r4 = { target: parseInt(n4[e5].target), max: parseInt(n4[e5].max), min: parseInt(n4[e5].min), referenceId: parseInt(n4[e5].referenceId) };
              else if (e5 === I.default.SERVICE_DESCRIPTION_PLAYBACK_RATE)
                i4 = { max: parseFloat(n4[e5].max), min: parseFloat(n4[e5].min) };
              else if (e5 === I.default.SERVICE_DESCRIPTION_OPERATING_QUALITY)
                l4 = { mediaType: n4[e5].mediaType, max: parseInt(n4[e5].max), min: parseInt(n4[e5].min), target: parseInt(n4[e5].target), type: n4[e5].type, maxQualityDifference: parseInt(n4[e5].maxQualityDifference) };
              else if (e5 === I.default.SERVICE_DESCRIPTION_OPERATING_BANDWIDTH)
                o4 = { mediaType: n4[e5].mediaType, max: parseInt(n4[e5].max), min: parseInt(n4[e5].min), target: parseInt(n4[e5].target) };
              else if (e5 === I.default.CONTENT_STEERING) {
                let t7 = n4[e5];
                t7 = Array.isArray(t7) ? t7.at(t7.length - 1) : t7, s3 = x2(t7);
              } else
                e5 === I.default.CLIENT_DATA_REPORTING && (u4 = M2(n4[e5]));
          e4.push({ id: t6, schemeIdUri: a3, latency: r4, playbackRate: i4, operatingQuality: l4, operatingBandwidth: o4, contentSteering: s3, clientDataReporting: u4 });
        }
      return e4;
    }, getSubSegmentAlignment: function(t5) {
      return !(!t5 || !t5.hasOwnProperty(I.default.SUB_SEGMENT_ALIGNMENT)) && "true" === t5[I.default.SUB_SEGMENT_ALIGNMENT];
    }, getSuggestedPresentationDelay: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.SUGGESTED_PRESENTATION_DELAY) ? t5.suggestedPresentationDelay : null;
    }, getSupplementalPropertiesForAdaptationSet: function(t5) {
      return _3(I.default.SUPPLEMENTAL_PROPERTY, t5);
    }, getSupplementalPropertiesForRepresentation: w3, getUTCTimingSources: function(t5) {
      const e4 = y3(t5), n4 = !!t5 && t5.hasOwnProperty(I.default.AVAILABILITY_START_TIME), a3 = t5 ? t5.UTCTiming : null, r4 = [];
      return (e4 || n4) && a3 && a3.forEach(function(t6) {
        const e5 = new ge.default();
        t6.hasOwnProperty(S2.default.SCHEME_ID_URI) && (e5.schemeIdUri = t6.schemeIdUri, t6.hasOwnProperty(I.default.VALUE) && (e5.value = t6.value.toString(), r4.push(e5)));
      }), r4;
    }, getViewpointForAdaptation: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.VIEWPOINT) && t5[I.default.VIEWPOINT].length ? t5[I.default.VIEWPOINT].map((t6) => {
        const e4 = new Zt();
        return e4.init(t6), e4;
      }) : [];
    }, hasProfile: function(t5, e4) {
      let n4 = false;
      return t5 && t5.profiles && t5.profiles.length > 0 && (n4 = -1 !== t5.profiles.indexOf(e4)), n4;
    }, isPeriodEncrypted: h3, setConfig: function(t5) {
      t5 && (t5.errHandler && (n3 = t5.errHandler), t5.BASE64 && (a2 = t5.BASE64));
    } }, e3 = (0, C.default)(r3).getInstance().getLogger(t4), t4;
  }
  me.__dashjs_factory_name = "DashManifestModel";
  var he = N.default.getSingletonFactory(me);
  const pe = { MANIFEST: "m", AUDIO: "a", VIDEO: "v", MUXED: "av", INIT: "i", CAPTION: "c", TIMED_TEXT: "tt", KEY: "k", OTHER: "o" }, be = pe, ye = "v", Ee = "l", _e = "d", Te = "s";
  class ve {
    constructor(t4, e3) {
      Array.isArray(t4) && (t4 = t4.map((t5) => t5 instanceof ve ? t5 : new ve(t5))), this.value = t4, this.params = e3;
    }
  }
  const we = "Dict";
  function Se(t4, e3, n3, a2) {
    return new Error(`failed to ${t4} "${r3 = e3, Array.isArray(r3) ? JSON.stringify(r3) : r3 instanceof Map ? "Map{}" : r3 instanceof Set ? "Set{}" : "object" == typeof r3 ? JSON.stringify(r3) : String(r3)}" as ${n3}`, { cause: a2 });
    var r3;
  }
  function Ie(t4, e3, n3) {
    return Se("serialize", t4, e3, n3);
  }
  class ke {
    constructor(t4) {
      this.description = t4;
    }
  }
  const Ae = "Bare Item", Re = "Boolean", Ne = "Byte Sequence";
  const Ce = "Integer";
  function De(t4) {
    return t4 < -999999999999999 || 999999999999999 < t4;
  }
  function xe(t4) {
    if (De(t4))
      throw Ie(t4, Ce);
    return t4.toString();
  }
  function Me(t4, e3) {
    if (t4 < 0)
      return -Me(-t4, e3);
    const n3 = Math.pow(10, e3);
    if (Math.abs(t4 * n3 % 1 - 0.5) < Number.EPSILON) {
      const e4 = Math.floor(t4 * n3);
      return (e4 % 2 == 0 ? e4 : e4 + 1) / n3;
    }
    return Math.round(t4 * n3) / n3;
  }
  const ze = "Decimal";
  function Oe(t4) {
    const e3 = Me(t4, 3);
    if (Math.floor(Math.abs(e3)).toString().length > 12)
      throw Ie(t4, ze);
    const n3 = e3.toString();
    return n3.includes(".") ? n3 : `${n3}.0`;
  }
  const Pe = "String", Le = /[\x00-\x1f\x7f]+/;
  function Fe(t4) {
    return t4.description || t4.toString().slice(7, -1);
  }
  const Ue = "Token";
  function je(t4) {
    const e3 = Fe(t4);
    if (false === /^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e3))
      throw Ie(e3, Ue);
    return e3;
  }
  function qe(t4) {
    switch (typeof t4) {
      case "number":
        if (!Number.isFinite(t4))
          throw Ie(t4, Ae);
        return Number.isInteger(t4) ? xe(t4) : Oe(t4);
      case "string":
        return function(t5) {
          if (Le.test(t5))
            throw Ie(t5, Pe);
          return `"${t5.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
        }(t4);
      case "symbol":
        return je(t4);
      case "boolean":
        return function(t5) {
          if ("boolean" != typeof t5)
            throw Ie(t5, Re);
          return t5 ? "?1" : "?0";
        }(t4);
      case "object":
        if (t4 instanceof Date)
          return function(t5) {
            return `@${xe(t5.getTime() / 1e3)}`;
          }(t4);
        if (t4 instanceof Uint8Array)
          return function(t5) {
            if (false === ArrayBuffer.isView(t5))
              throw Ie(t5, Ne);
            return `:${e3 = t5, btoa(String.fromCharCode(...e3))}:`;
            var e3;
          }(t4);
        if (t4 instanceof ke)
          return je(t4);
      default:
        throw Ie(t4, Ae);
    }
  }
  const Be = "Key";
  function Ge(t4) {
    if (false === /^[a-z*][a-z0-9\-_.*]*$/.test(t4))
      throw Ie(t4, Be);
    return t4;
  }
  function He(t4) {
    return null == t4 ? "" : Object.entries(t4).map((t5) => {
      let [e3, n3] = t5;
      return true === n3 ? `;${Ge(e3)}` : `;${Ge(e3)}=${qe(n3)}`;
    }).join("");
  }
  function Ye(t4) {
    return t4 instanceof ve ? `${qe(t4.value)}${He(t4.params)}` : qe(t4);
  }
  const Ve = (t4) => Math.round(t4), Ke = (t4) => 100 * Ve(t4 / 100), We = { br: Ve, d: Ve, bl: Ke, dl: Ke, mtp: Ke, nor: (t4, e3) => ((null == e3 ? void 0 : e3.baseUrl) && (t4 = function(t5, e4) {
    const n3 = new URL(t5), a2 = new URL(e4);
    if (n3.origin !== a2.origin)
      return t5;
    const r3 = n3.pathname.split("/").slice(1), i3 = a2.pathname.split("/").slice(1, -1);
    for (; r3[0] === i3[0]; )
      r3.shift(), i3.shift();
    for (; i3.length; )
      i3.shift(), r3.unshift("..");
    return r3.join("/");
  }(t4, e3.baseUrl)), encodeURIComponent(t4)), rtp: Ke, tb: Ve };
  function $e(t4) {
    let e3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
    return t4 ? function(t5, e4) {
      return function(t6) {
        let e5 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : { whitespace: true };
        if ("object" != typeof t6)
          throw Ie(t6, we);
        const n3 = t6 instanceof Map ? t6.entries() : Object.entries(t6), a2 = (null == e5 ? void 0 : e5.whitespace) ? " " : "";
        return Array.from(n3).map((t7) => {
          let [e6, n4] = t7;
          n4 instanceof ve == 0 && (n4 = new ve(n4));
          let a3 = Ge(e6);
          var r3;
          return true === n4.value ? a3 += He(n4.params) : (a3 += "=", Array.isArray(n4.value) ? a3 += `(${(r3 = n4).value.map(Ye).join(" ")})${He(r3.params)}` : a3 += Ye(n4)), a3;
        }).join(`,${a2}`);
      }(t5, e4);
    }(function(t5, e4) {
      const n3 = {};
      if (null == t5 || "object" != typeof t5)
        return n3;
      const a2 = Object.keys(t5).sort(), r3 = Object.assign({}, We, null == e4 ? void 0 : e4.formatters), i3 = null == e4 ? void 0 : e4.filter;
      return a2.forEach((a3) => {
        if (null == i3 ? void 0 : i3(a3))
          return;
        let l3 = t5[a3];
        const o3 = r3[a3];
        o3 && (l3 = o3(l3, e4)), "v" === a3 && 1 === l3 || "pr" == a3 && 1 === l3 || function(t6) {
          return "number" == typeof t6 ? Number.isFinite(t6) : null != t6 && "" !== t6 && false !== t6;
        }(l3) && (/* @__PURE__ */ function(t6) {
          return "ot" === t6 || "sf" === t6 || "st" === t6;
        }(a3) && "string" == typeof l3 && (l3 = new ke(l3)), n3[a3] = l3);
      }), n3;
    }(t4, e3), Object.assign({ whitespace: false }, e3)) : "";
  }
  const Xe = "CMCD-Object", Qe = "CMCD-Request", Ze = "CMCD-Session", Je = "CMCD-Status", tn = { [Xe]: ["br", "d", "ot", "tb"], [Qe]: ["bl", "dl", "mtp", "nor", "nrr", "su"], [Ze]: ["cid", "pr", "sf", "sid", "st", "v"], [Je]: ["bs", "rtp"] }, en = "segment";
  function nn() {
    let t4, e3, n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3 = this.context, b3 = (0, A.default)(p3).getInstance(), y3 = (0, K.default)(p3).getInstance(), E3 = (0, C.default)(p3).getInstance();
    function _3() {
      a2 = { pr: 1, nor: null, st: null, sf: null, sid: `${Gt.default.generateUuid()}`, cid: null }, f3 = {}, c3 = {}, g3 = {}, d3 = void 0, m3 = void 0, h3 = false, I2();
    }
    function T3() {
      I2();
    }
    function v3() {
      m3 || (m3 = Date.now());
    }
    function w3() {
      m3 && !a2.msd && (a2.msd = Date.now() - m3);
    }
    function I2() {
      if (!l3)
        return;
      const t5 = l3.getStreamController();
      if (!t5)
        return;
      if ("function" != typeof t5.getActiveStream)
        return;
      const e4 = t5.getActiveStream();
      e4 && (u3 = e4.getStreamProcessors());
    }
    function k2(t5) {
      try {
        const e4 = N2(), n4 = e4.version ? e4.keys : y3.get().streaming.cmcd.enabledKeys;
        return Object.keys(t5).filter((t6) => n4.includes(t6)).reduce((e5, n5) => (e5[n5] = t5[n5], e5), {});
      } catch (e4) {
        return t5;
      }
    }
    function R2() {
      const t5 = N2();
      return function(t6) {
        if (Object.keys(t6).length) {
          if (1 !== parseInt(t6.version))
            return n3.error("version parameter must be defined in 1."), false;
          if (!t6.keys)
            return n3.error("keys parameter must be defined."), false;
        }
        const e4 = t6.version, a3 = y3.get().streaming.cmcd && y3.get().streaming.cmcd.enabled;
        return e4 || a3;
      }(t5) && function(t6) {
        let e4 = y3.get().streaming.cmcd.includeInRequests;
        t6.version && (e4 = t6.includeInRequests ?? [en]);
        const a3 = S2.default.CMCD_AVAILABLE_REQUESTS, r4 = e4.filter((t7) => !a3.includes(t7));
        return r4.length === e4.length ? (n3.error("None of the request types are supported."), false) : (r4.map((t7) => {
          n3.warn(`request type ${t7} is not supported.`);
        }), true);
      }(t5) && function(t6) {
        const e4 = S2.default.CMCD_AVAILABLE_KEYS, a3 = S2.default.CMCD_V2_AVAILABLE_KEYS, r4 = t6.version ? t6.keys : y3.get().streaming.cmcd.enabledKeys, i4 = y3.get().streaming.cmcd.version, l4 = r4.filter((t7) => !(e4.includes(t7) || 2 === i4 && a3.includes(t7)));
        return l4.length === r4.length && r4.length > 0 ? (n3.error(`None of the keys are implemented for CMCD version ${i4}.`), false) : (l4.map((t7) => {
          n3.warn(`key parameter ${t7} is not implemented for CMCD version ${i4}.`);
        }), true);
      }(t5);
    }
    function N2() {
      let t5 = {};
      if (o3) {
        const e4 = o3.getServiceDescriptionSettings();
        y3.get().streaming.cmcd.applyParametersFromMpd && e4.clientDataReporting && e4.clientDataReporting.cmcdParameters && (t5 = e4.clientDataReporting.cmcdParameters);
      }
      return t5;
    }
    function x2(t5) {
      try {
        let n4 = null;
        if (t5.type, (e4 = t5.mediaType) !== S2.default.VIDEO && e4 !== S2.default.AUDIO || d3 && d3 != S2.default.AUDIO || (d3 = e4), function(t6) {
          const e5 = N2();
          let n5 = y3.get().streaming.cmcd.includeInRequests;
          e5.version && (n5 = e5.includeInRequests ? e5.includeInRequests : [en]);
          const a3 = { [z.HTTPRequest.INIT_SEGMENT_TYPE]: "segment", [z.HTTPRequest.MEDIA_SEGMENT_TYPE]: "segment", [z.HTTPRequest.XLINK_EXPANSION_TYPE]: "xlink", [z.HTTPRequest.MPD_TYPE]: "mpd", [z.HTTPRequest.CONTENT_STEERING_TYPE]: "steering", [z.HTTPRequest.OTHER_TYPE]: "other" };
          return n5.some((e6) => a3[t6] === e6);
        }(t5.type)) {
          if (t5.type === z.HTTPRequest.MPD_TYPE)
            return function() {
              const t6 = P2();
              return t6.ot = be.MANIFEST, t6;
            }();
          if (t5.type === z.HTTPRequest.MEDIA_SEGMENT_TYPE)
            return O2(t5.mediaType), M2(t5, t5.mediaType);
          if (t5.type === z.HTTPRequest.INIT_SEGMENT_TYPE)
            return function() {
              const t6 = P2();
              return t6.ot = be.INIT, t6.su = true, t6;
            }();
          if (t5.type === z.HTTPRequest.OTHER_TYPE || t5.type === z.HTTPRequest.XLINK_EXPANSION_TYPE)
            return function() {
              const t6 = P2();
              return t6.ot = be.OTHER, t6;
            }();
          if (t5.type === z.HTTPRequest.LICENSE)
            return function() {
              const t6 = P2();
              return t6.ot = be.KEY, t6;
            }();
          if (t5.type === z.HTTPRequest.CONTENT_STEERING_TYPE)
            return function(t6) {
              const e5 = d3 ? M2(t6, d3) : P2();
              return e5.ot = be.OTHER, e5;
            }(t5);
        }
        return n4;
      } catch (t6) {
        return null;
      }
      var e4;
    }
    function M2(t5, e4) {
      var _a2;
      O2(e4);
      const n4 = P2(), o4 = function(t6) {
        try {
          return parseInt(t6.bandwidth / 1e3);
        } catch (t7) {
          return null;
        }
      }(t5), d4 = function(t6) {
        try {
          return isNaN(t6.duration) ? NaN : Math.round(1e3 * t6.duration);
        } catch (t7) {
          return null;
        }
      }(t5), m4 = function(t6) {
        try {
          return 100 * parseInt(s2.getSafeAverageThroughput(t6) / 100);
        } catch (t7) {
          return null;
        }
      }(e4), h4 = function(t6) {
        try {
          const e5 = a2.pr, n5 = i3.getCurrentBufferLevel(t6);
          return isNaN(e5) || isNaN(n5) ? null : 100 * parseInt(n5 / e5 * 10);
        } catch (t7) {
          return null;
        }
      }(e4), p4 = L2(e4), b4 = function(t6) {
        try {
          const e5 = r3.getPossibleVoRepresentationsFilteredBySettings(t6).map((t7) => t7.bitrateInKbit);
          return Math.max(...e5);
        } catch (t7) {
          return null;
        }
      }((_a2 = t5.representation) == null ? void 0 : _a2.mediaInfo), E4 = a2.pr, _4 = function(t6) {
        if (u3 && 0 !== u3.length) {
          for (let e5 of u3)
            if (e5.getType() === t6)
              return e5.probeNextRequest();
        }
      }(e4);
      let T4;
      e4 === S2.default.VIDEO && (T4 = be.VIDEO), e4 === S2.default.AUDIO && (T4 = be.AUDIO), e4 === S2.default.TEXT && (T4 = "application/mp4" === t5.representation.mediaInfo.mimeType ? be.TIMED_TEXT : be.CAPTION);
      let v4 = y3.get().streaming.cmcd.rtp;
      return v4 || (v4 = function(t6) {
        try {
          let e5 = l3.getPlaybackRate();
          e5 || (e5 = 1);
          let { bandwidth: n5, mediaType: a3, representation: r4, duration: i4 } = t6;
          if (!r4.mediaInfo)
            return NaN;
          let o5 = L2(a3);
          0 === o5 && (o5 = 500);
          let s3 = n5 * i4 / 1e3 / (o5 / e5 / 1e3), u4 = y3.get().streaming.cmcd.rtpSafetyFactor && !isNaN(y3.get().streaming.cmcd.rtpSafetyFactor) ? y3.get().streaming.cmcd.rtpSafetyFactor : 5;
          return 100 * (parseInt(s3 * u4 / 100) + 1);
        } catch (t7) {
          return NaN;
        }
      }(t5)), isNaN(v4) || (n4.rtp = v4), _4 && (t5.url !== _4.url ? n4.nor = encodeURIComponent(Gt.default.getRelativeUrl(t5.url, _4.url)) : _4.range && (n4.nrr = _4.range)), o4 && (n4.br = o4), T4 && (n4.ot = T4), isNaN(d4) || (n4.d = d4), isNaN(m4) || (n4.mtp = m4), isNaN(h4) || (n4.dl = h4), isNaN(p4) || (n4.bl = p4), isNaN(b4) || (n4.tb = b4), isNaN(E4) || 1 === E4 || (n4.pr = E4), f3[e4] && (n4.bs = true, f3[e4] = false), !c3[e4] && g3[e4] || (n4.su = true, c3[e4] = false, g3[e4] = true), n4;
    }
    function O2(t5) {
      g3.hasOwnProperty(t5) || (g3[t5] = false), c3.hasOwnProperty(t5) || (c3[t5] = false), f3.hasOwnProperty(t5) || (f3[t5] = false);
    }
    function P2() {
      const t5 = N2(), e4 = {};
      let n4 = y3.get().streaming.cmcd.cid ? y3.get().streaming.cmcd.cid : a2.cid;
      if (n4 = t5.contentID ? t5.contentID : n4, e4.v = y3.get().streaming.cmcd.version ?? 1, e4.sid = y3.get().streaming.cmcd.sid ? y3.get().streaming.cmcd.sid : a2.sid, e4.sid = t5.sessionID ? t5.sessionID : e4.sid, e4.sid = `${e4.sid}`, n4 && (e4.cid = `${n4}`), isNaN(a2.pr) || 1 === a2.pr || null === a2.pr || (e4.pr = a2.pr), a2.st && (e4.st = a2.st), a2.sf && (e4.sf = a2.sf), 2 === e4.v) {
        let t6 = 1e3 * l3.getCurrentLiveLatency();
        isNaN(t6) || (e4.ltc = t6);
        const n5 = a2.msd;
        h3 || isNaN(n5) || (e4.msd = n5, h3 = true);
      }
      return e4;
    }
    function L2(t5) {
      try {
        const e4 = i3.getCurrentBufferLevel(t5);
        return isNaN(e4) ? null : 100 * parseInt(10 * e4);
      } catch (t6) {
        return null;
      }
    }
    function F2(t5) {
      try {
        a2.pr = t5.playbackRate;
      } catch (t6) {
      }
    }
    function U2(e4) {
      try {
        const n4 = t4.getIsDynamic(e4.data) ? Ee : ye, r4 = e4.protocol && "MSS" === e4.protocol ? Te : _e;
        a2.st = `${n4}`, a2.sf = `${r4}`;
      } catch (t5) {
      }
    }
    function j2(t5) {
      try {
        t5.state && t5.mediaType && t5.state === D.default.BUFFER_EMPTY && (f3[t5.mediaType] || (f3[t5.mediaType] = true), c3[t5.mediaType] || (c3[t5.mediaType] = true));
      } catch (t6) {
      }
    }
    function q2() {
      for (let t5 in f3)
        f3.hasOwnProperty(t5) && (f3[t5] = true);
      for (let t5 in c3)
        c3.hasOwnProperty(t5) && (c3[t5] = true);
    }
    return e3 = { getCmcdData: x2, getQueryParameter: function(t5) {
      try {
        if (R2()) {
          const e4 = x2(t5), n4 = $e(k2(e4));
          return b3.trigger(Wt.default.CMCD_DATA_GENERATED, { url: t5.url, mediaType: t5.mediaType, cmcdData: e4, cmcdString: n4 }), { key: "CMCD", value: n4 };
        }
        return null;
      } catch (t6) {
        return null;
      }
    }, getHeaderParameters: function(t5) {
      try {
        if (R2()) {
          const e4 = x2(t5), n4 = function(t6) {
            let e5 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
            const n5 = {};
            if (!t6)
              return n5;
            const a3 = Object.entries(t6), r4 = Object.entries(tn).concat(Object.entries((null == e5 ? void 0 : e5.customHeaderMap) || {})), i4 = a3.reduce((t7, e6) => {
              var n6, a4;
              const [i5, l4] = e6, o4 = (null === (n6 = r4.find((t8) => t8[1].includes(i5))) || void 0 === n6 ? void 0 : n6[0]) || Qe;
              return null !== (a4 = t7[o4]) && void 0 !== a4 || (t7[o4] = {}), t7[o4][i5] = l4, t7;
            }, {});
            return Object.entries(i4).reduce((t7, n6) => {
              let [a4, r5] = n6;
              return t7[a4] = $e(r5, e5), t7;
            }, n5);
          }(k2(e4), 1 === y3.get().streaming.cmcd.version ? {} : { customHeaderMap: { [Qe]: ["ltc"], [Ze]: ["msd"] } });
          return b3.trigger(Wt.default.CMCD_DATA_GENERATED, { url: t5.url, mediaType: t5.mediaType, cmcdData: e4, headers: n4 }), n4;
        }
        return null;
      } catch (t6) {
        return null;
      }
    }, getCmcdParametersFromManifest: N2, setConfig: function(t5) {
      t5 && (t5.abrController && (r3 = t5.abrController), t5.dashMetrics && (i3 = t5.dashMetrics), t5.throughputController && (s2 = t5.throughputController), t5.playbackController && (l3 = t5.playbackController), t5.serviceDescriptionController && (o3 = t5.serviceDescriptionController));
    }, reset: function() {
      b3.off(D.default.PLAYBACK_RATE_CHANGED, F2, this), b3.off(D.default.MANIFEST_LOADED, U2, this), b3.off(D.default.BUFFER_LEVEL_STATE_CHANGED, j2, e3), b3.off(D.default.PLAYBACK_SEEKED, q2, e3), b3.off(D.default.PLAYBACK_STARTED, v3, e3), b3.off(D.default.PLAYBACK_PLAYING, w3, e3), _3();
    }, initialize: function(t5) {
      b3.on(D.default.PLAYBACK_RATE_CHANGED, F2, e3), b3.on(D.default.MANIFEST_LOADED, U2, e3), b3.on(D.default.BUFFER_LEVEL_STATE_CHANGED, j2, e3), b3.on(D.default.PLAYBACK_SEEKED, q2, e3), b3.on(D.default.PERIOD_SWITCH_COMPLETED, T3, e3), t5 ? b3.on(D.default.MANIFEST_LOADING_STARTED, v3, e3) : b3.on(D.default.PLAYBACK_STARTED, v3, e3), b3.on(D.default.PLAYBACK_PLAYING, w3, e3);
    }, isCmcdEnabled: R2 }, t4 = he(p3).getInstance(), n3 = E3.getLogger(e3), _3(), e3;
  }
  nn.__dashjs_factory_name = "CmcdModel";
  var an = N.default.getSingletonFactory(nn);
  const rn = "CMSD-Dynamic", ln = "CMSD-Static", on = pe;
  function sn(t4, e3, n3) {
    return Se("parse", t4, e3, n3);
  }
  const un = "List";
  function dn(t4, e3) {
    return { value: t4, src: e3 };
  }
  const cn = "Inner List";
  const fn = "Date", gn = `${Ce} or ${ze}`;
  function mn(t4) {
    let e3, n3 = 1, a2 = "";
    const r3 = sn(t4, gn);
    if ("-" === t4[0] && (n3 = -1, t4 = t4.substring(1)), t4.length <= 0)
      throw r3;
    const i3 = /^(\d+)?/g, l3 = i3.exec(t4);
    if (0 === l3[0].length)
      throw r3;
    if (a2 += l3[1], "." === (t4 = t4.substring(i3.lastIndex))[0]) {
      if (a2.length > 12)
        throw r3;
      const i4 = /^(\.\d+)?/g, l4 = i4.exec(t4);
      if (t4 = t4.substring(i4.lastIndex), 0 === l4[0].length || l4[1].length > 4)
        throw r3;
      if (a2 += l4[1], a2.length > 16)
        throw r3;
      e3 = parseFloat(a2) * n3;
    } else {
      if (a2.length > 15)
        throw r3;
      if (e3 = parseInt(a2) * n3, De(e3))
        throw sn(a2, gn);
    }
    return dn(e3, t4);
  }
  function hn(t4, e3) {
    const n3 = t4[0];
    if ('"' === n3)
      return function(t5) {
        let e4 = "", n4 = 0;
        if ('"' !== t5[n4])
          throw sn(t5, Pe);
        for (n4++; t5.length > n4; ) {
          if ("\\" === t5[n4]) {
            if (t5.length <= n4 + 1)
              throw sn(t5, Pe);
            if (n4++, '"' !== t5[n4] && "\\" !== t5[n4])
              throw sn(t5, Pe);
            e4 += t5[n4];
          } else {
            if ('"' === t5[n4])
              return dn(e4, t5.substring(++n4));
            if (Le.test(t5[n4]))
              throw sn(t5, Pe);
            e4 += t5[n4];
          }
          n4++;
        }
        throw sn(t5, Pe);
      }(t4);
    if (/^[-0-9]/.test(n3))
      return mn(t4);
    if ("?" === n3)
      return function(t5) {
        let e4 = 0;
        if ("?" !== t5[e4])
          throw sn(t5, Re);
        if (e4++, "1" === t5[e4])
          return dn(true, t5.substring(++e4));
        if ("0" === t5[e4])
          return dn(false, t5.substring(++e4));
        throw sn(t5, Re);
      }(t4);
    if (":" === n3)
      return function(t5) {
        if (":" !== t5[0])
          throw sn(t5, Ne);
        if (false === (t5 = t5.substring(1)).includes(":"))
          throw sn(t5, Ne);
        const e4 = /(^.*?)(:)/g, n4 = e4.exec(t5)[1];
        return t5 = t5.substring(e4.lastIndex), dn(new Uint8Array([...atob(n4)].map((t6) => t6.charCodeAt(0))), t5);
      }(t4);
    if (/^[a-zA-Z*]/.test(n3))
      return function(t5, e4) {
        if (false === /^[a-zA-Z*]$/.test(t5[0]))
          throw sn(t5, Ue);
        const n4 = /^([!#$%&'*+\-.^_`|~\w:/]+)/g, a2 = n4.exec(t5)[1];
        return t5 = t5.substring(n4.lastIndex), dn(Symbol.for(a2), t5);
      }(t4);
    if ("@" === n3)
      return function(t5) {
        let e4 = 0;
        if ("@" !== t5[e4])
          throw sn(t5, fn);
        e4++;
        const n4 = mn(t5.substring(e4));
        if (false === Number.isInteger(n4.value))
          throw sn(t5, fn);
        return dn(new Date(1e3 * n4.value), n4.src);
      }(t4);
    throw sn(t4, Ae);
  }
  function pn(t4) {
    let e3 = 0;
    if (false === /^[a-z*]$/.test(t4[e3]))
      throw sn(t4, Be);
    let n3 = "";
    for (; t4.length > e3; ) {
      if (false === /^[a-z0-9_\-.*]$/.test(t4[e3]))
        return dn(n3, t4.substring(e3));
      n3 += t4[e3], e3++;
    }
    return dn(n3, t4.substring(e3));
  }
  function bn(t4, e3) {
    let n3;
    for (; t4.length > 0 && ";" === t4[0]; ) {
      const a2 = pn(t4 = t4.substring(1).trim()), r3 = a2.value;
      let i3 = true;
      if ("=" === (t4 = a2.src)[0]) {
        const n4 = hn(t4 = t4.substring(1));
        i3 = n4.value, t4 = n4.src;
      }
      null == n3 && (n3 = {}), n3[r3] = i3;
    }
    return dn(n3, t4);
  }
  function yn(t4, e3) {
    const n3 = hn(t4), a2 = bn(t4 = n3.src);
    return t4 = a2.src, dn(new ve(n3.value, a2.value), t4);
  }
  function En(t4, e3) {
    return "(" === t4[0] ? function(t5, e4) {
      if ("(" !== t5[0])
        throw sn(t5, cn);
      t5 = t5.substring(1);
      const n3 = [];
      for (; t5.length > 0; ) {
        if (")" === (t5 = t5.trim())[0]) {
          const a3 = bn(t5 = t5.substring(1));
          return dn(new ve(n3, a3.value), a3.src);
        }
        const a2 = yn(t5);
        if (n3.push(a2.value), " " !== (t5 = a2.src)[0] && ")" !== t5[0])
          throw sn(t5, cn);
      }
      throw sn(t5, cn);
    }(t4) : yn(t4);
  }
  const _n = ln.toLowerCase(), Tn = rn.toLowerCase(), vn = ["mb", "st", "sf", "v"], wn = "stream", Sn = { video: on.VIDEO, audio: on.AUDIO, text: on.TIMED_TEXT, stream: wn };
  function In() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3, i3;
    function l3() {
      r3 = {}, i3 = {};
    }
    function o3(t5) {
      t5 && Object.keys(t5).forEach((e4) => {
        vn.includes(e4) || delete t5[e4];
      });
    }
    function s2(t5) {
      try {
        return (e4 = t5) ? Object.entries(function(t6, e5) {
          try {
            const { src: n4, value: a3 } = function(t7, e6) {
              const n5 = {};
              for (; t7.length > 0; ) {
                let a4;
                const r4 = pn(t7), i4 = r4.value;
                if ("=" === (t7 = r4.src)[0]) {
                  const n6 = En(t7.substring(1), e6);
                  a4 = n6.value, t7 = n6.src;
                } else {
                  const n6 = bn(t7, e6);
                  a4 = new ve(true, n6.value), t7 = n6.src;
                }
                if (n5[i4] = a4, 0 === (t7 = t7.trim()).length)
                  return dn(n5, t7);
                if ("," !== t7[0])
                  throw sn(t7, we);
                if (0 === (t7 = t7.substring(1).trim()).length || "," === t7[0])
                  throw sn(t7, we);
              }
              return dn(n5, t7);
            }(t6.trim(), e5);
            if ("" !== n4)
              throw sn(n4, we);
            return a3;
          } catch (e6) {
            throw sn(t6, we, e6);
          }
        }(e4)).reduce((t6, e5) => {
          let [n4, a3] = e5;
          const { value: r4 } = a3;
          return t6[n4] = "symbol" == typeof r4 ? Fe(r4) : r4, t6;
        }, {}) : {};
      } catch (t6) {
        a2.error("Failed to parse CMSD-Static response header value:", t6);
      }
      var e4;
    }
    function u3(t5) {
      try {
        const n4 = (e4 = t5) ? function(t6, e5) {
          try {
            const { src: n5, value: a4 } = function(t7, e6) {
              const n6 = [];
              for (; t7.length > 0; ) {
                const a5 = En(t7, e6);
                if (n6.push(a5.value), 0 === (t7 = a5.src.trim()).length)
                  return dn(n6, t7);
                if ("," !== t7[0])
                  throw sn(t7, un);
                if (0 === (t7 = t7.substring(1).trim()).length || "," === t7[0])
                  throw sn(t7, un);
              }
              return dn(n6, t7);
            }(t6.trim(), e5);
            if ("" !== n5)
              throw sn(n5, un);
            return a4;
          } catch (e6) {
            throw sn(t6, un, e6);
          }
        }(e4) : [], a3 = n4[n4.length - 1];
        return (a3 == null ? void 0 : a3.params) || {};
      } catch (t6) {
        return a2.error("Failed to parse CMSD-Dynamic response header value:", t6), {};
      }
      var e4;
    }
    function d3(t5) {
      return Sn[t5] || on.OTHER;
    }
    function c3(t5, e4, n4) {
      const a3 = t5 === ln ? r3 : i3, l4 = a3[e4] || {}, o4 = a3[wn] || {};
      return l4[n4] || o4[n4];
    }
    return n3 = { setConfig: function() {
    }, initialize: function() {
    }, reset: function() {
      l3();
    }, parseResponseHeaders: function(t5, n4) {
      let a3 = null, l4 = null;
      for (const n5 in t5) {
        const r4 = t5[n5];
        switch (n5) {
          case _n:
            a3 = s2(r4), e3.trigger(R.default.CMSD_STATIC_HEADER, a3);
            break;
          case Tn:
            l4 || (l4 = u3(r4));
        }
      }
      let c4 = wn;
      return a3 && a3.ot ? c4 = a3.ot : n4 && (c4 = d3(n4)), o3(r3[c4]), o3(i3[c4]), a3 && (r3[c4] = Object.assign(r3[c4] || {}, a3)), l4 && (i3[c4] = Object.assign(i3[c4] || {}, l4)), { static: a3, dynamic: l4 };
    }, getMaxBitrate: function(t5) {
      let e4 = d3(t5);
      return c3(rn, e4, "mb") || -1;
    }, getEstimatedThroughput: function(t5) {
      let e4 = d3(t5);
      return c3(rn, e4, "etp") || null;
    }, getResponseDelay: function(t5) {
      let e4 = d3(t5);
      return c3(rn, e4, "rd") || null;
    }, getRoundTripTime: function(t5) {
      let e4 = d3(t5);
      return c3(rn, e4, "rtt") || null;
    } }, a2 = (0, C.default)(t4).getInstance().getLogger(n3), l3(), n3;
  }
  In.__dashjs_factory_name = "CmsdModel";
  var kn = N.default.getSingletonFactory(In), An = n2(1926);
  function Rn() {
    let t4, e3;
    function n3() {
      e3 = {};
    }
    return t4 = { reset: function() {
      n3();
    }, processResponseHeaders: function(t5) {
      if (!(t5 && t5.headers && t5.request && t5.request.url))
        return;
      const n4 = t5.headers[S2.default.COMMON_ACCESS_TOKEN_HEADER];
      if (n4) {
        const a2 = Gt.default.getHostFromUrl(t5.request.url);
        a2 && (e3[a2] = n4);
      }
    }, getCommonAccessTokenForUrl: function(t5) {
      if (!t5)
        return null;
      const n4 = Gt.default.getHostFromUrl(t5);
      return n4 ? e3[n4] ? e3[n4] : null : void 0;
    } }, n3(), t4;
  }
  Rn.__dashjs_factory_name = "CommonAccessTokenController";
  var Nn = N.default.getSingletonFactory(Rn);
  function Cn() {
    let t4, e3;
    return t4 = { setConfig: function(t5) {
      t5 && t5.serviceDescriptionController && (e3 = t5.serviceDescriptionController);
    }, isAdaptationsIncluded: function(t5) {
      var _a2;
      const { adaptationSetsArray: n3 } = ((_a2 = e3 == null ? void 0 : e3.getServiceDescriptionSettings()) == null ? void 0 : _a2.clientDataReporting) ?? {};
      return !n3 || 0 === (n3 == null ? void 0 : n3.length) || n3.includes(t5);
    }, isServiceLocationIncluded: function(t5, n3) {
      var _a2;
      if (t5 === z.HTTPRequest.CONTENT_STEERING_TYPE)
        return true;
      const { serviceLocationsArray: a2 } = ((_a2 = e3 == null ? void 0 : e3.getServiceDescriptionSettings()) == null ? void 0 : _a2.clientDataReporting) ?? {};
      return !a2 || 0 === (a2 == null ? void 0 : a2.length) || a2.includes(n3);
    } }, t4;
  }
  Cn.__dashjs_factory_name = "ClientDataReportingController";
  var Dn = N.default.getSingletonFactory(Cn);
  function xn() {
    let t4, e3, n3;
    const a2 = this.context;
    function r3(t5, e4, n4, a3, r4) {
      var _a2;
      const i3 = function(t6, e5) {
        let n5 = [];
        return n5 = e5 === I.default.PERIOD ? t6[I.default.SUPPLEMENTAL_PROPERTY] || [] : [...t6[I.default.ESSENTIAL_PROPERTY] || [], ...t6[I.default.SUPPLEMENTAL_PROPERTY] || []], n5.find((t7) => t7.schemeIdUri === S2.default.URL_QUERY_INFO_SCHEME && t7.UrlQueryInfo || t7.schemeIdUri === S2.default.EXT_URL_QUERY_INFO_SCHEME && t7.ExtUrlQueryInfo);
      }(e4, r4);
      !function(t6, e5, n5, a4) {
        n5.initialQueryString = "";
        let r5 = "";
        const i4 = (t6 == null ? void 0 : t6.ExtUrlQueryInfo) || (t6 == null ? void 0 : t6.UrlQueryInfo);
        r5 = i4 && i4.queryString ? e5 && e5.length > 0 ? e5 + "&" + i4.queryString : i4.queryString : e5, "true" === (i4 == null ? void 0 : i4.useMPDUrlQuery) && a4 && (r5 = r5 ? r5 + "&" + a4 : a4), n5.initialQueryString = r5;
      }(i3, a3.initialQueryString, t5, n4), function(t6, e5, n5) {
        var _a3, _b;
        if (!t6)
          return void (e5.finalQueryString = n5);
        const a4 = ((_a3 = t6 == null ? void 0 : t6.ExtUrlQueryInfo) == null ? void 0 : _a3.queryTemplate) || ((_b = t6 == null ? void 0 : t6.UrlQueryInfo) == null ? void 0 : _b.queryTemplate) || "";
        e5.finalQueryString = a4 === I.default.QUERY_PART ? e5 == null ? void 0 : e5.initialQueryString : "";
      }(i3, t5, a3.finalQueryString), t5.sameOriginOnly = (_a2 = i3 == null ? void 0 : i3.ExtUrlQueryInfo) == null ? void 0 : _a2.sameOriginOnly, t5.queryParams = Gt.default.parseQueryParams(t5 == null ? void 0 : t5.finalQueryString), t5.includeInRequests = function(t6, e5) {
        var _a3;
        return t6 ? ((_a3 = t6.ExtUrlQueryInfo) == null ? void 0 : _a3.includeInRequests) ? t6.ExtUrlQueryInfo.includeInRequests.split(" ") : [I.default.SEGMENT_TYPE] : e5;
      }(i3, a3.includeInRequests);
    }
    return e3 = (0, C.default)(a2).getInstance().getLogger(t4), t4 = { getFinalQueryString: function(t5) {
      try {
        if (!n3)
          return null;
        if (t5.type === z.HTTPRequest.MEDIA_SEGMENT_TYPE || t5.type === z.HTTPRequest.INIT_SEGMENT_TYPE) {
          const e4 = t5.representation;
          if (!e4)
            return null;
          const a3 = e4.adaptation, r4 = a3.period, i3 = n3.period[r4.index].adaptation[a3.index].representation[e4.index], l3 = new URL(t5.url), o3 = !i3.sameOriginOnly || n3.origin === l3.origin;
          if (i3.includeInRequests.includes(I.default.SEGMENT_TYPE) && o3)
            return i3.queryParams;
        } else if (t5.type === z.HTTPRequest.MPD_TYPE) {
          if ([I.default.MPD_TYPE, I.default.MPD_PATCH_TYPE].some((t6) => n3.includeInRequests.includes(t6)))
            return n3.queryParams;
        } else if (t5.type === z.HTTPRequest.CONTENT_STEERING_TYPE && n3.includeInRequests.includes(I.default.STEERING_TYPE))
          return n3.queryParams;
      } catch (t6) {
        return e3.error(t6), null;
      }
    }, createFinalQueryStrings: function(t5) {
      n3 = { origin: new URL(t5.url).origin, period: [] };
      const e4 = t5.url.split("?")[1];
      r3(n3, t5, e4, { initialQueryString: "", includeInRequests: [] }, I.default.MPD), t5.Period.forEach((t6) => {
        const a3 = { adaptation: [] };
        r3(a3, t6, e4, n3, I.default.PERIOD), t6.AdaptationSet.forEach((t7) => {
          const n4 = { representation: [] };
          r3(n4, t7, e4, a3, I.default.ADAPTATION_SET), t7.Representation.forEach((t8) => {
            const a4 = {};
            r3(a4, t8, e4, n4, I.default.REPRESENTATION), n4.representation.push(a4);
          }), a3.adaptation.push(n4);
        }), n3.period.push(a3);
      });
    } }, t4;
  }
  xn.__dashjs_factory_name = "ExtUrlQueryInfoController";
  var Mn = N.default.getSingletonFactory(xn), zn = class {
    constructor(t4) {
      this.url = t4.url, this.method = t4.method, this.responseType = void 0 !== t4.responseType ? t4.responseType : null, this.headers = void 0 !== t4.headers ? t4.headers : {}, this.credentials = void 0 !== t4.credentials ? t4.credentials : null, this.mode = void 0 !== t4.mode ? t4.mode : null, this.timeout = void 0 !== t4.timeout ? t4.timeout : 0, this.cmcd = void 0 !== t4.cmcd ? t4.cmcd : null, this.customData = void 0 !== t4.customData ? t4.customData : null;
    }
  }, On = class {
    constructor(t4) {
      this.request = t4.request, this.url = void 0 !== t4.url ? t4.url : null, this.redirected = void 0 !== t4.redirected && t4.redirected, this.status = void 0 !== t4.status ? t4.status : null, this.statusText = void 0 !== t4.statusText ? t4.statusText : "", this.type = void 0 !== t4.type ? t4.type : "", this.headers = void 0 !== t4.headers ? t4.headers : {}, this.data = void 0 !== t4.data ? t4.data : null, this.resourceTiming = void 0 !== t4.resourceTiming ? t4.resourceTiming : null;
    }
  };
  function Pn(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.errHandler, a2 = t4.dashMetrics, r3 = t4.mediaPlayerModel, i3 = t4.boxParser, l3 = t4.errors, o3 = t4.requestTimeout || 0, s2 = (0, A.default)(e3).getInstance(), u3 = (0, K.default)(e3).getInstance();
    let d3, c3, f3, g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, w3;
    function I2(t5, l4) {
      const d4 = function() {
        C2();
      }, k2 = function(e4) {
        const n4 = /* @__PURE__ */ new Date();
        F2 && (F2 = false, (!e4.lengthComputable || e4.lengthComputable && e4.total !== e4.loaded) && (P2.firstByteDate = n4, Y2.resourceTiming.responseStart = n4.getTime())), e4.lengthComputable && (P2.bytesLoaded = Y2.length = e4.loaded, P2.bytesTotal = Y2.resourceTiming.encodedBodySize = e4.total, Y2.length = e4.total, Y2.resourceTiming.encodedBodySize = e4.loaded), e4.noTrace || (L2.push({ s: j2, d: e4.time ? e4.time : n4.getTime() - j2.getTime(), b: [e4.loaded ? e4.loaded - q2 : 0], t: e4.throughput }), P2.traces = L2, j2 = n4, q2 = e4.loaded), B2 && (clearTimeout(B2), B2 = null), u3.get().streaming.fragmentRequestProgressTimeout > 0 && (B2 = setTimeout(function() {
          w3.warn("Abort request " + H2.url + " due to progress timeout"), K2.abort(H2), d4();
        }, u3.get().streaming.fragmentRequestProgressTimeout)), t5.progress && e4 && t5.progress(e4);
      }, A2 = function() {
        C2(true);
      }, N2 = function(t6) {
        let e4;
        if (t6.lengthComputable) {
          let n4 = t6.loaded / t6.total * 100;
          e4 = "Request timeout: loaded: " + t6.loaded + ", out of: " + t6.total + " : " + n4.toFixed(3) + "% Completed";
        } else
          e4 = "Request timeout: non-computable download size";
        w3.warn(e4);
      }, C2 = function() {
        let e4 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
        -1 !== c3.indexOf(H2) && c3.splice(c3.indexOf(H2), 1), B2 && (clearTimeout(B2), B2 = null), _3.processResponseHeaders(Y2), D2(), x2(), function(t6) {
          const e5 = E3.getResponseInterceptors();
          return e5 ? e5.reduce((t7, e6) => t7.then((t8) => e6(t8)), Promise.resolve(t6)) : Promise.resolve(t6);
        }(Y2).then((n4) => {
          if (Y2 = n4, function(t6, e5, n5) {
            const r4 = t6.customData.request, i4 = u3.get().streaming.cmsd && u3.get().streaming.cmsd.enabled ? p3.parseResponseHeaders(e5.headers, r4.mediaType) : null;
            a2.addHttpRequest(r4, e5.url, e5.status, e5.headers, n5, i4);
          }(H2, Y2, L2), e4)
            t5.abort && t5.abort(P2);
          else if (P2.type === z.HTTPRequest.MPD_TYPE && (a2.addManifestUpdate(P2), s2.trigger(R.default.MANIFEST_LOADING_FINISHED, { requestObject: P2 })), Y2.status >= 200 && Y2.status <= 299 && Y2.data)
            t5.success && t5.success(Y2.data, Y2.statusText, Y2.url), t5.complete && t5.complete(P2, Y2.statusText);
          else {
            try {
              404 === Y2.status && u3.get().streaming.utcSynchronization.enableBackgroundSyncAfterSegmentDownloadError && P2.type === z.HTTPRequest.MEDIA_SEGMENT_TYPE && r3.getRetryAttemptsForType(z.HTTPRequest.MEDIA_SEGMENT_TYPE) === l4 && s2.trigger(R.default.ATTEMPT_BACKGROUND_SYNC);
            } catch (t6) {
            }
            O2();
          }
        });
      }, D2 = function() {
        P2.startDate = U2, P2.endDate = /* @__PURE__ */ new Date(), P2.firstByteDate = P2.firstByteDate || U2;
      }, x2 = function() {
        Y2.resourceTiming.responseEnd = Date.now(), function(t6, e4) {
          if (!u3.get().streaming.abr.throughput.useResourceTimingApi)
            return;
          if ("undefined" == typeof performance || t6.range)
            return;
          const n4 = performance.getEntriesByType("resource");
          if (void 0 === n4 || n4.length <= 0)
            return;
          let a3 = 0, r4 = null;
          for (; a3 < n4.length; ) {
            if (n4[a3].name === t6.url) {
              r4 = n4[a3];
              break;
            }
            a3 += 1;
          }
          (function(t7) {
            return t7 && !isNaN(t7.responseStart) && t7.responseStart > 0 && !isNaN(t7.responseEnd) && t7.responseEnd > 0 && !isNaN(t7.transferSize) && t7.transferSize > 0;
          })(r4) && (t6.customData.request.resourceTimingValues = r4, e4.resourceTiming.startTime = r4.startTime, e4.resourceTiming.encodedBodySize = r4.encodedBodySize, e4.resourceTiming.responseStart = r4.startTime, e4.resourceTiming.responseEnd = r4.responseEnd, e4.resourceTiming.duration = r4.duration);
        }(H2, Y2);
      }, M2 = function(t6, e4, n4) {
        return new Promise((a3) => {
          (function(t7) {
            const e5 = E3.getRequestInterceptors();
            return e5 ? e5.reduce((t8, e6) => t8.then((t9) => e6(t9)), Promise.resolve(t7)) : Promise.resolve(t7);
          })(e4).then((r4) => {
            (e4 = r4).customData.onloadend = d4, e4.customData.onprogress = k2, e4.customData.onabort = A2, e4.customData.ontimeout = N2, n4.resourceTiming.startTime = Date.now(), t6.load(e4, n4), a3();
          });
        });
      }, O2 = function() {
        if (l4 > 0) {
          l4--, t5 && t5.request && (t5.request.retryAttempts += 1);
          let e4 = { config: t5 };
          g3.push(e4), e4.timeout = setTimeout(function() {
            -1 !== g3.indexOf(e4) && (g3.splice(g3.indexOf(e4), 1), I2(t5, l4));
          }, r3.getRetryIntervalsForType(P2.type));
        } else {
          if (P2.type === z.HTTPRequest.MSS_FRAGMENT_INFO_SEGMENT_TYPE)
            return;
          n3.error(new G.default(m3[P2.type], P2.url + " is not available", { request: P2, response: Y2 })), t5.error && t5.error(P2, "error", Y2.statusText, Y2), t5.complete && t5.complete(P2, Y2.statusText);
        }
      }, P2 = t5.request, L2 = [];
      let F2, U2, j2, q2, B2, H2, Y2;
      if (P2.bytesLoaded = NaN, P2.bytesTotal = NaN, P2.firstByteDate = null, P2.traces = [], F2 = true, U2 = /* @__PURE__ */ new Date(), j2 = U2, q2 = 0, B2 = null, !a2 || !n3)
        throw new Error("config object is not correct or missing");
      const V2 = function(t6) {
        let n4, r4;
        return t6.hasOwnProperty("availabilityTimeComplete") && false === t6.availabilityTimeComplete && window.fetch && "arraybuffer" === t6.responseType && t6.type === z.HTTPRequest.MEDIA_SEGMENT_TYPE ? (y3 || (y3 = Kt(e3).create(), y3.setConfig({ dashMetrics: a2, boxParser: i3 })), n4 = y3, r4 = S2.default.FILE_LOADER_TYPES.FETCH) : (b3 || (b3 = Yt(e3).create()), n4 = b3, r4 = S2.default.FILE_LOADER_TYPES.XHR), { loader: n4, fileLoaderType: r4 };
      }(P2), K2 = V2.loader;
      var W2;
      P2.fileLoaderType = V2.fileLoaderType, P2.headers = {}, function(t6) {
        var _a2, _b;
        const e4 = t6 == null ? void 0 : t6.serviceLocation, n4 = (_b = (_a2 = t6 == null ? void 0 : t6.mediaInfo) == null ? void 0 : _a2.id) == null ? void 0 : _b.toString();
        if (T3.isServiceLocationIncluded(t6.type, e4) && T3.isAdaptationsIncluded(n4) && h3.isCmcdEnabled()) {
          const e5 = h3.getCmcdParametersFromManifest(), n5 = e5.mode ? e5.mode : u3.get().streaming.cmcd.mode;
          if (n5 === S2.default.CMCD_MODE_QUERY) {
            t6.url = Gt.default.removeQueryParameterFromUrl(t6.url, S2.default.CMCD_QUERY_KEY);
            const e6 = function(t7) {
              try {
                const e7 = [], n6 = h3.getQueryParameter(t7);
                return n6 && e7.push(n6), e7;
              } catch (t8) {
                return [];
              }
            }(t6);
            t6.url = Gt.default.addAdditionalQueryParameterToUrl(t6.url, e6);
          } else
            n5 === S2.default.CMCD_MODE_HEADER && (t6.headers = Object.assign(t6.headers, h3.getHeaderParameters(t6)));
        }
      }(W2 = P2), 0 === W2.retryAttempts && function(t6) {
        let e4 = v3.getFinalQueryString(t6);
        e4 && (t6.url = Gt.default.addAdditionalQueryParameterToUrl(t6.url, e4));
      }(W2), function(t6) {
        if (t6.queryParams) {
          const e4 = Object.keys(t6.queryParams).map((e5) => ({ key: e5, value: t6.queryParams[e5] }));
          t6.url = Gt.default.addAdditionalQueryParameterToUrl(t6.url, e4);
        }
      }(W2), function(t6) {
        const e4 = _3.getCommonAccessTokenForUrl(t6.url);
        e4 && (t6.headers[S2.default.COMMON_ACCESS_TOKEN_HEADER] = e4);
      }(W2), P2.range && (P2.headers.Range = "bytes=" + P2.range);
      const $2 = E3.getXHRWithCredentialsForType(P2.type);
      H2 = new zn({ url: P2.url, method: z.HTTPRequest.GET, responseType: P2.responseType, headers: P2.headers, credentials: $2 ? "include" : "omit", timeout: o3, cmcd: h3.getCmcdData(P2), customData: { request: P2 } }), Y2 = new On({ request: H2, resourceTiming: { startTime: Date.now(), encodedBodySize: 0 }, status: 0 });
      let X2 = (/* @__PURE__ */ new Date()).getTime();
      if (isNaN(P2.delayLoadingTime) || X2 >= P2.delayLoadingTime)
        return c3.push(H2), M2(K2, H2, Y2);
      {
        let t6 = { httpRequest: H2, httpResponse: Y2 };
        return f3.push(t6), t6.delayTimeout = setTimeout(function() {
          if (-1 !== f3.indexOf(t6)) {
            f3.splice(f3.indexOf(t6), 1);
            try {
              U2 = /* @__PURE__ */ new Date(), j2 = U2, c3.push(t6.httpRequest), M2(K2, t6.httpRequest, t6.httpResponse);
            } catch (e4) {
              t6.httpRequest.onloadend();
            }
          }
        }, P2.delayLoadingTime - X2), Promise.resolve();
      }
    }
    return d3 = { abort: function() {
      g3.forEach((t5) => {
        clearTimeout(t5.timeout), t5.config.request && t5.config.abort && t5.config.abort(t5.config.request);
      }), g3 = [], f3.forEach((t5) => clearTimeout(t5.delayTimeout)), f3 = [], c3.forEach((t5) => {
        const e4 = t5.customData;
        e4 && (e4.request && e4.request.type === z.HTTPRequest.MSS_FRAGMENT_INFO_SEGMENT_TYPE || (e4.onloadend = e4.onprogress = void 0, e4.abort && e4.abort()));
      }), c3 = [];
    }, load: function(t5) {
      return t5.request ? I2(t5, r3.getRetryAttemptsForType(t5.request.type)) : (t5.error && t5.error(t5.request, "error"), Promise.resolve());
    }, reset: function() {
      c3 = [], f3 = [], g3 = [], b3 && b3.reset(), y3 && y3.reset(), b3 = null, y3 = null;
    }, resetInitialSettings: function() {
      b3 && b3.resetInitialSettings();
    }, setConfig: function(t5) {
      t5 && (t5.commonAccessTokenController && (_3 = t5.commonAccessTokenController), t5.extUrlQueryInfoController && (v3 = t5.extUrlQueryInfoController));
    } }, w3 = (0, C.default)(e3).getInstance().getLogger(d3), c3 = [], f3 = [], g3 = [], h3 = an(e3).getInstance(), T3 = Dn(e3).getInstance(), p3 = kn(e3).getInstance(), E3 = (0, An.default)(e3).getInstance(), _3 = Nn(e3).getInstance(), v3 = Mn(e3).getInstance(), m3 = { [z.HTTPRequest.MPD_TYPE]: l3.DOWNLOAD_ERROR_ID_MANIFEST_CODE, [z.HTTPRequest.XLINK_EXPANSION_TYPE]: l3.DOWNLOAD_ERROR_ID_XLINK_CODE, [z.HTTPRequest.INIT_SEGMENT_TYPE]: l3.DOWNLOAD_ERROR_ID_INITIALIZATION_CODE, [z.HTTPRequest.MEDIA_SEGMENT_TYPE]: l3.DOWNLOAD_ERROR_ID_CONTENT_CODE, [z.HTTPRequest.INDEX_SEGMENT_TYPE]: l3.DOWNLOAD_ERROR_ID_CONTENT_CODE, [z.HTTPRequest.BITSTREAM_SWITCHING_SEGMENT_TYPE]: l3.DOWNLOAD_ERROR_ID_CONTENT_CODE, [z.HTTPRequest.OTHER_TYPE]: l3.DOWNLOAD_ERROR_ID_CONTENT_CODE }, d3;
  }
  Pn.__dashjs_factory_name = "HTTPLoader";
  var Ln = N.default.getClassFactory(Pn);
  function Fn() {
    let t4, e3;
    function n3() {
      e3 = {};
    }
    function a2() {
      n3();
    }
    return a2(), t4 = { getLoader: function(t5) {
      for (var n4 in e3)
        if (e3.hasOwnProperty(n4) && t5.startsWith(n4))
          return e3[n4];
      return Ln;
    }, registerLoader: function(t5, n4) {
      e3[t5] = n4;
    }, unregisterLoader: function(t5) {
      e3[t5] && delete e3[t5];
    }, unregisterAllLoader: n3, reset: a2 }, t4;
  }
  Fn.__dashjs_factory_name = "SchemeLoaderFactory";
  var Un = N.default.getSingletonFactory(Fn);
  function jn(t4) {
    t4 = t4 || {};
    const e3 = this.context;
    let n3, a2, r3;
    return a2 = Un(e3).getInstance(), n3 = { abort: function() {
      r3 && r3.abort();
    }, load: function(n4) {
      if (!r3) {
        let i3 = a2.getLoader(n4 && n4.request ? n4.request.url : null);
        r3 = i3(e3).create({ errHandler: t4.errHandler, mediaPlayerModel: t4.mediaPlayerModel, dashMetrics: t4.dashMetrics, boxParser: t4.boxParser ? t4.boxParser : null, constants: t4.constants ? t4.constants : null, dashConstants: t4.dashConstants ? t4.dashConstants : null, urlUtils: t4.urlUtils ? t4.urlUtils : null, requestTimeout: isNaN(t4.requestTimeout) ? 0 : t4.requestTimeout, errors: t4.errors });
      }
      r3.load(n4);
    }, reset: function() {
      a2 && (a2.reset(), a2 = null), r3 && "function" == typeof r3.reset && r3.reset(), r3 = null;
    }, resetInitialSettings: function() {
      r3 && "function" == typeof r3.resetInitialSettings && r3.resetInitialSettings();
    } }, n3;
  }
  jn.__dashjs_factory_name = "URLLoader";
  var qn = N.default.getClassFactory(jn), Bn = class extends P {
    constructor(t4) {
      super(t4), this.checkForExistenceOnly = true;
    }
  };
  function Gn(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a2 = t4.events, r3 = t4.urlUtils, i3 = t4.errors, l3 = t4.streamId;
    let o3, s2;
    return o3 = { abort: function() {
      s2 && s2.abort();
    }, checkForExistence: function(t5) {
      const e4 = function(e5) {
        n3.trigger(a2.CHECK_FOR_EXISTENCE_COMPLETED, { request: t5, exists: e5 });
      };
      if (t5) {
        let n4 = new Bn(t5.url);
        s2.load({ request: n4, success: function() {
          e4(true);
        }, error: function() {
          e4(false);
        } });
      } else
        e4(false);
    }, load: function(t5) {
      const e4 = function(e5, r4) {
        n3.trigger(a2.LOADING_COMPLETED, { request: t5, response: e5 || null, error: r4 || null, sender: o3 });
      };
      t5 ? s2.load({ request: t5, progress: function(e5) {
        n3.trigger(a2.LOADING_PROGRESS, { request: t5, stream: e5.stream, streamId: l3 }), e5.data && n3.trigger(a2.LOADING_DATA_PROGRESS, { request: t5, response: e5.data || null, error: null, sender: o3 });
      }, success: function(t6) {
        e4(t6);
      }, error: function(t6, n4, a3) {
        e4(void 0, new G.default(i3.FRAGMENT_LOADER_LOADING_FAILURE_ERROR_CODE, a3, n4));
      }, abort: function(t6) {
        t6 && n3.trigger(a2.LOADING_ABANDONED, { mediaType: t6.mediaType, request: t6, sender: o3 });
      } }) : e4(void 0, new G.default(i3.FRAGMENT_LOADER_NULL_REQUEST_ERROR_CODE, i3.FRAGMENT_LOADER_NULL_REQUEST_ERROR_MESSAGE));
    }, reset: function() {
      s2 && (s2.abort(), s2.reset(), s2 = null);
    }, resetInitialSettings: function() {
      s2 && s2.resetInitialSettings();
    } }, s2 = qn(e3).create({ errHandler: t4.errHandler, errors: i3, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, urlUtils: r3, constants: S2.default, boxParser: t4.boxParser, dashConstants: t4.dashConstants, requestTimeout: t4.settings.get().streaming.fragmentRequestTimeout }), o3;
  }
  Gn.__dashjs_factory_name = "FragmentLoader";
  var Hn = N.default.getClassFactory(Gn);
  function Yn(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, A.default)(e3).getInstance(), a2 = t4.errHandler, r3 = t4.mediaPlayerModel, i3 = t4.dashMetrics, l3 = (0, C.default)(e3).getInstance(), o3 = t4.streamInfo;
    let s2, u3, d3;
    function c3() {
      return o3.id;
    }
    function f3() {
      for (let t5 in d3)
        d3[t5].reset();
      d3 = {};
    }
    function g3(t5) {
      if (!t5.sender)
        return;
      const e4 = t5.request, a3 = t5.response, r4 = e4.isInitializationRequest(), i4 = e4.representation.mediaInfo.streamInfo;
      if (t5.error && (e4.mediaType === S2.default.AUDIO || e4.mediaType === S2.default.VIDEO || e4.mediaType === S2.default.TEXT && e4.representation.mediaInfo.isFragmented) && n3.trigger(R.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD, { entry: t5.request.serviceLocation }), !a3 || !i4)
        return void u3.warn("No " + e4.mediaType + " bytes to push or stream is inactive.");
      const l4 = function(t6, e5, n4, a4) {
        const r5 = new Bt();
        return r5.streamId = n4, r5.segmentType = e5.type, r5.start = e5.startTime, r5.duration = e5.duration, r5.end = r5.start + r5.duration, r5.bytes = t6, r5.index = e5.index, r5.representation = e5.representation, r5.endFragment = a4, r5;
      }(a3, e4, o3.id, t5.type !== R.default.FRAGMENT_LOADING_PROGRESS);
      n3.trigger(r4 ? R.default.INIT_FRAGMENT_LOADED : R.default.MEDIA_FRAGMENT_LOADED, { chunk: l4, request: e4 }, { streamId: i4.id, mediaType: e4.mediaType });
    }
    return s2 = { getStreamId: c3, getModel: function(s3) {
      let u4 = d3[s3];
      return u4 || (u4 = B(e3).create({ streamInfo: o3, type: s3, dashMetrics: i3, fragmentLoader: Hn(e3).create({ dashMetrics: i3, mediaPlayerModel: r3, errHandler: a2, settings: t4.settings, boxParser: t4.boxParser, eventBus: n3, events: R.default, errors: V, dashConstants: t4.dashConstants, urlUtils: t4.urlUtils, streamId: c3() }), debug: l3, eventBus: n3, events: R.default }), d3[s3] = u4), u4;
    }, reset: function() {
      n3.off(D.default.FRAGMENT_LOADING_COMPLETED, g3, this), n3.off(D.default.FRAGMENT_LOADING_PROGRESS, g3, this), f3();
    } }, u3 = l3.getLogger(s2), f3(), n3.on(D.default.FRAGMENT_LOADING_COMPLETED, g3, s2), n3.on(D.default.FRAGMENT_LOADING_PROGRESS, g3, s2), s2;
  }
  Yn.__dashjs_factory_name = "FragmentController";
  var Vn = N.default.getClassFactory(Yn), Kn = class {
    constructor() {
      this.url = null, this.width = null, this.height = null, this.x = null, this.y = null;
    }
  }, Wn = class {
    constructor() {
      this.bitrate = 0, this.width = 0, this.height = 0, this.tilesHor = 0, this.tilesVert = 0, this.widthPerTile = 0, this.heightPerTile = 0, this.startNumber = 0, this.segmentDuration = 0, this.timescale = 0, this.templateUrl = "", this.id = "";
    }
  };
  class $n {
    constructor(t4) {
      if (this.offset = t4._offset, this.type = t4.type, this.size = t4.size, this.boxes = [], t4.boxes)
        for (let e3 = 0; e3 < t4.boxes.length; e3++)
          this.boxes.push(new $n(t4.boxes[e3]));
      switch (this.isComplete = true, t4.type) {
        case "sidx":
          if (this.timescale = t4.timescale, this.earliest_presentation_time = t4.earliest_presentation_time, this.first_offset = t4.first_offset, this.references = t4.references, t4.references) {
            this.references = [];
            for (let e3 = 0; e3 < t4.references.length; e3++) {
              let n3 = { reference_type: t4.references[e3].reference_type, referenced_size: t4.references[e3].referenced_size, subsegment_duration: t4.references[e3].subsegment_duration };
              this.references.push(n3);
            }
          }
          break;
        case "emsg":
          this.id = t4.id, this.version = 1 === t4.version ? 1 : 0, this.value = t4.value, this.timescale = t4.timescale, this.scheme_id_uri = t4.scheme_id_uri, this.presentation_time_delta = 1 === t4.version ? t4.presentation_time : t4.presentation_time_delta, this.event_duration = t4.event_duration, this.message_data = t4.message_data;
          break;
        case "mdhd":
          this.timescale = t4.timescale;
          break;
        case "mfhd":
          this.sequence_number = t4.sequence_number;
          break;
        case "subs":
          this.entry_count = t4.entry_count, this.entries = t4.entries;
          break;
        case "tfhd":
          this.base_data_offset = t4.base_data_offset, this.sample_description_index = t4.sample_description_index, this.default_sample_duration = t4.default_sample_duration, this.default_sample_size = t4.default_sample_size, this.default_sample_flags = t4.default_sample_flags, this.flags = t4.flags;
          break;
        case "tfdt":
          this.version = t4.version, this.baseMediaDecodeTime = t4.baseMediaDecodeTime, this.flags = t4.flags;
          break;
        case "trun":
          if (this.sample_count = t4.sample_count, this.first_sample_flags = t4.first_sample_flags, this.data_offset = t4.data_offset, this.flags = t4.flags, this.samples = t4.samples, t4.samples) {
            this.samples = [];
            for (let e3 = 0, n3 = t4.samples.length; e3 < n3; e3++) {
              let n4 = { sample_size: t4.samples[e3].sample_size, sample_duration: t4.samples[e3].sample_duration, sample_composition_time_offset: t4.samples[e3].sample_composition_time_offset };
              this.samples.push(n4);
            }
          }
          break;
        case "prft":
          this.version = t4.version, this.reference_track_ID = t4.reference_track_ID, this.ntp_timestamp_sec = t4.ntp_timestamp_sec, this.ntp_timestamp_frac = t4.ntp_timestamp_frac, this.media_time = t4.media_time, this.flags = t4.flags;
      }
    }
    getChildBox(t4) {
      for (let e3 = 0; e3 < this.boxes.length; e3++)
        if (this.boxes[e3].type === t4)
          return this.boxes[e3];
    }
    getChildBoxes(t4) {
      let e3 = [];
      for (let n3 = 0; n3 < this.boxes.length; n3++)
        this.boxes[n3].type === t4 && e3.push(this.boxes[n3]);
      return e3;
    }
  }
  var Xn = $n;
  function Qn() {
    let t4, e3;
    function n3(t5) {
      let n4 = [];
      if (!t5 || !e3 || "function" != typeof e3.fetchAll)
        return n4;
      let r3, i3 = e3.fetchAll(t5);
      for (let t6 = 0, e4 = i3.length; t6 < e4; t6++)
        r3 = a2(i3[t6]), r3 && n4.push(r3);
      return n4;
    }
    function a2(t5) {
      if (!t5)
        return null;
      let e4 = new Xn(t5);
      return t5.hasOwnProperty("_incomplete") && (e4.isComplete = !t5._incomplete), e4;
    }
    return t4 = { getBox: function(t5) {
      return t5 && e3 && e3.boxes && 0 !== e3.boxes.length && "function" == typeof e3.fetch ? a2(e3.fetch(t5)) : null;
    }, getBoxes: n3, setData: function(t5) {
      e3 = t5;
    }, getLastBox: function() {
      if (!e3 || !e3.boxes || !e3.boxes.length)
        return null;
      let t5 = n3(e3.boxes[e3.boxes.length - 1].type);
      return t5.length > 0 ? t5[t5.length - 1] : null;
    } }, t4;
  }
  Qn.__dashjs_factory_name = "IsoFile";
  var Zn = N.default.getClassFactory(Qn), Jn = n2(6877), ta = class {
    constructor(t4) {
      let { found: e3, sizeOfLastCompletedBox: n3, sizeOfLastFoundTargetBox: a2, startOffsetOfLastCompletedBox: r3, startOffsetOfLastFoundTargetBox: i3, typeOfLastCompletedBox: l3, typeOfLastTargetBox: o3 } = t4;
      this.found = void 0 !== e3 && e3, this.sizeOfLastCompletedBox = void 0 !== n3 ? n3 : 0, this.sizeOfLastFoundTargetBox = void 0 !== a2 ? a2 : 0, this.startOffsetOfLastCompletedBox = void 0 !== r3 ? r3 : 0, this.startOffsetOfLastFoundTargetBox = void 0 !== i3 ? i3 : 0, this.typeOfLastCompletedBox = void 0 !== l3 ? l3 : null, this.typeOfLastTargetBox = void 0 !== o3 ? o3 : null;
    }
  };
  function ea() {
    let t4, e3, n3 = this.context;
    function a2(t5) {
      if (!t5)
        return null;
      void 0 === t5.fileStart && (t5.fileStart = 0);
      let e4 = Jn.parseBuffer(t5), a3 = Zn(n3).create();
      return a3.setData(e4), a3;
    }
    function r3(t5, e4) {
      return t5[e4 + 3] >>> 0 | t5[e4 + 2] << 8 >>> 0 | t5[e4 + 1] << 16 >>> 0 | t5[e4] << 24 >>> 0;
    }
    function i3(t5, e4) {
      return String.fromCharCode(t5[e4++]) + String.fromCharCode(t5[e4++]) + String.fromCharCode(t5[e4++]) + String.fromCharCode(t5[e4]);
    }
    return e3 = { findInitRange: function(e4) {
      let n4, r4, i4 = null;
      const l3 = a2(e4);
      if (!l3)
        return i4;
      const o3 = l3.getBox("ftyp"), s2 = l3.getBox("moov");
      return t4.debug("Searching for initialization."), s2 && s2.isComplete && (n4 = o3 ? o3.offset : s2.offset, r4 = s2.offset + s2.size - 1, i4 = n4 + "-" + r4, t4.debug("Found the initialization.  Range: " + i4)), i4;
    }, findLastTopIsoBoxCompleted: function(t5, e4, n4) {
      if (void 0 === n4 && (n4 = 0), !e4 || n4 + 8 >= e4.byteLength)
        return new ta({ found: false });
      const a3 = e4 instanceof ArrayBuffer ? new Uint8Array(e4) : e4;
      let l3, o3 = 0, s2 = 0, u3 = null;
      for (; n4 < a3.byteLength; ) {
        const e5 = r3(a3, n4), d3 = i3(a3, n4 + 4);
        if (0 === e5)
          break;
        n4 + e5 <= a3.byteLength && (t5.indexOf(d3) >= 0 ? l3 = new ta({ found: true, startOffsetOfLastFoundTargetBox: n4, sizeOfLastFoundTargetBox: e5, typeOfLastTargetBox: d3 }) : (o3 = n4, s2 = e5, u3 = d3)), n4 += e5;
      }
      return l3 || new ta({ found: false, startOffsetOfLastCompletedBox: o3, sizeOfLastCompletedBox: s2, typeOfLastCompletedBox: u3 });
    }, getMediaTimescaleFromMoov: function(t5) {
      let e4 = a2(t5), n4 = e4 ? e4.getBox("mdhd") : void 0;
      return n4 ? n4.timescale : NaN;
    }, getSamplesInfo: function(t5) {
      if (!t5 || 0 === t5.byteLength)
        return { sampleList: [], lastSequenceNumber: NaN, totalDuration: NaN, numSequences: NaN };
      let e4, n4, r4, i4, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3, b3, y3, E3 = a2(t5), _3 = E3.getBoxes("moof"), T3 = E3.getBoxes("mfhd");
      b3 = E3.getBoxes("moof").length, p3 = T3[T3.length - 1].sequence_number, r4 = 0, o3 = [];
      let v3 = -1, w3 = -1;
      for (f3 = 0; f3 < _3.length; f3++) {
        let t6 = _3[f3], a3 = t6.getChildBoxes("traf");
        for (d3 = 0; d3 < a3.length; d3++) {
          let f4 = a3[d3], p4 = f4.getChildBox("tfhd"), b4 = f4.getChildBox("tfdt");
          l3 = b4.baseMediaDecodeTime;
          let E4 = f4.getChildBoxes("trun"), _4 = f4.getChildBoxes("subs");
          for (c3 = 0; c3 < E4.length; c3++) {
            let a4 = E4[c3];
            for (r4 = a4.sample_count, h3 = (p4.base_data_offset || 0) + (a4.data_offset || 0), u3 = 0; u3 < r4; u3++) {
              s2 = a4.samples[u3], e4 = void 0 !== s2.sample_duration ? s2.sample_duration : p4.default_sample_duration, i4 = void 0 !== s2.sample_size ? s2.sample_size : p4.default_sample_size, n4 = void 0 !== s2.sample_composition_time_offset ? s2.sample_composition_time_offset : 0;
              let r5 = { dts: l3, cts: l3 + n4, duration: e4, offset: t6.offset + h3, size: i4, subSizes: [i4] };
              if (_4)
                for (g3 = 0; g3 < _4.length; g3++) {
                  let t7 = _4[g3];
                  if (v3 < t7.entry_count - 1 && u3 > w3 && (v3++, w3 += t7.entries[v3].sample_delta), u3 == w3) {
                    r5.subSizes = [];
                    let e5 = t7.entries[v3];
                    for (m3 = 0; m3 < e5.subsample_count; m3++)
                      r5.subSizes.push(e5.subsamples[m3].subsample_size);
                  }
                }
              o3.push(r5), h3 += i4, l3 += e4;
            }
          }
          y3 = l3 - b4.baseMediaDecodeTime;
        }
      }
      return { sampleList: o3, lastSequenceNumber: p3, totalDuration: y3, numSequences: b3 };
    }, parse: a2 }, t4 = (0, C.default)(n3).getInstance().getLogger(e3), e3;
  }
  ea.__dashjs_factory_name = "BoxParser";
  var na = N.default.getSingletonFactory(ea);
  function aa(t4) {
    const e3 = this.context, n3 = t4.adapter, a2 = t4.baseURLController, r3 = t4.streamInfo, i3 = t4.timelineConverter, l3 = t4.debug, o3 = t4.eventBus, s2 = t4.events, u3 = t4.dashConstants, d3 = St(e3).getInstance();
    let c3, f3, g3, m3, h3, p3, b3, y3, E3;
    function _3(t5, e4) {
      const r4 = new Wn();
      r4.id = t5.id, r4.bitrate = t5.bandwidth, r4.width = t5.width, r4.height = t5.height, r4.tilesHor = 1, r4.tilesVert = 1, t5.essentialProperties && t5.essentialProperties.forEach((t6) => {
        if (S2.default.THUMBNAILS_SCHEME_ID_URIS.indexOf(t6.schemeIdUri) >= 0 && t6.value) {
          const e5 = t6.value.split("x");
          2 !== e5.length || isNaN(e5[0]) || isNaN(e5[1]) || (r4.tilesHor = parseInt(e5[0], 10), r4.tilesVert = parseInt(e5[1], 10));
        }
      }), e4 ? b3.updateSegmentData(t5).then((e5) => {
        !function(t6, e6, r5) {
          let l4 = [];
          const o4 = function(t7, e7) {
            const a3 = [];
            let r6, l5, o5, s3, u4 = 0;
            for (r6 = 0, l5 = t7.segments.length; r6 < l5; r6++)
              o5 = t7.segments[r6], s3 = ht(i3, n3.getIsDynamic(), e7, o5.startTime, o5.duration, o5.timescale, o5.media, o5.mediaRange, u4), s3 && (a3.push(s3), s3 = null, u4++);
            return a3;
          }(r5, e6);
          e6.segments = o4, e6.fragmentDuration = e6.segmentDuration || (e6.segments && e6.segments.length > 0 ? e6.segments[0].duration : NaN), t6.segmentDuration = e6.segments[0].duration, t6.readThumbnail = function(t7, n4) {
            let r6 = null;
            l4.some((e7) => {
              if (e7.start <= t7 && e7.end > t7)
                return r6 = e7.url, true;
            }), r6 ? n4(r6) : e6.segments.some((r7) => {
              if (r7.mediaStartTime <= t7 && r7.mediaStartTime + r7.duration > t7) {
                const t8 = a2.resolve(e6.path), i4 = new zn({ method: "get", url: t8.url, responseType: "arraybuffer", customData: { request: { range: r7.mediaRange }, onloadend: function(t9) {
                  let e7 = E3.getSamplesInfo(t9.target.response), a3 = new Blob([t9.target.response.slice(e7.sampleList[0].offset, e7.sampleList[0].offset + e7.sampleList[0].size)], { type: "image/jpeg" }), i5 = window.URL.createObjectURL(a3);
                  l4.push({ start: r7.mediaStartTime, end: r7.mediaStartTime + r7.duration, url: i5 }), n4 && n4(i5);
                } } }), o5 = new On({ request: i4 });
                return y3.load(i4, o5), true;
              }
            });
          };
        }(r4, t5, e5);
      }) : (r4.startNumber = t5.startNumber, r4.segmentDuration = t5.segmentDuration, r4.timescale = t5.timescale, r4.templateUrl = function(t6) {
        const e5 = d3.isRelative(t6.media) ? d3.resolve(t6.media, a2.resolve(t6.path).url) : t6.media;
        return e5 ? gt(e5, t6.id) : "";
      }(t5)), r4.tilesHor > 0 && r4.tilesVert > 0 && (r4.widthPerTile = r4.width / r4.tilesHor, r4.heightPerTile = r4.height / r4.tilesVert, f3.push(r4));
    }
    function T3() {
      f3 = [], g3 = [], h3 = -1, p3 = null, m3 && (m3.reset(), m3 = null);
    }
    return c3 = { addTracks: function() {
      if (!r3 || !n3)
        return;
      if (p3 = n3.getMediaInfoForType(r3, S2.default.IMAGE), !p3)
        return;
      const t5 = n3.getVoRepresentations(p3);
      t5 && t5.length > 0 && t5.forEach((t6) => {
        (t6.segmentInfoType === I.default.SEGMENT_TEMPLATE && t6.segmentDuration > 0 && t6.media || t6.segmentInfoType === I.default.SEGMENT_TIMELINE) && _3(t6), t6.segmentInfoType === I.default.SEGMENT_BASE && _3(t6, true), g3.push(t6);
      }), f3.length > 0 && f3.sort((t6, e4) => t6.bitrate - e4.bitrate);
    }, getCurrentTrack: function() {
      return h3 < 0 ? null : f3[h3];
    }, getCurrentTrackIndex: function() {
      return h3;
    }, getRepresentations: function() {
      return g3;
    }, getThumbnailRequestForTime: function(t5) {
      let e4;
      const a3 = n3.getVoRepresentations(p3);
      for (let t6 = 0; t6 < a3.length; t6++)
        if (f3[h3].id === a3[t6].id) {
          e4 = a3[t6];
          break;
        }
      return m3.getSegmentRequestForTime(p3, e4, t5);
    }, getTracks: function() {
      return f3;
    }, reset: T3, setTrackById: function(t5) {
      if (!f3 || 0 === f3.length)
        return;
      const e4 = f3.findIndex((e5) => e5.id === t5);
      -1 !== e4 && (h3 = e4);
    }, setTrackByIndex: function(t5) {
      f3 && 0 !== f3.length && (t5 >= f3.length && (t5 = f3.length - 1), h3 = t5);
    } }, T3(), y3 = Yt(e3).create({}), E3 = na(e3).getInstance(), b3 = Pt(e3).create({ events: s2, eventBus: o3, streamInfo: r3, timelineConverter: i3, dashConstants: u3, dashMetrics: t4.dashMetrics, segmentBaseController: t4.segmentBaseController, type: S2.default.IMAGE }), m3 = _t(e3).create({ streamInfo: r3, type: S2.default.IMAGE, timelineConverter: i3, segmentsController: b3, baseURLController: a2, debug: l3, eventBus: o3, events: s2, dashConstants: u3, urlUtils: d3 }), m3.initialize(!!n3 && n3.getIsDynamic()), c3;
  }
  aa.__dashjs_factory_name = "ThumbnailTracks";
  var ra = N.default.getClassFactory(aa);
  function ia(t4) {
    const e3 = this.context, n3 = t4.streamInfo;
    let a2, r3;
    function i3(t5) {
      r3.setTrackByIndex(t5);
    }
    function l3() {
      r3 && r3.reset();
    }
    return a2 = { getCurrentTrack: function() {
      return r3.getCurrentTrack();
    }, getCurrentTrackIndex: function() {
      return r3.getCurrentTrackIndex();
    }, getPossibleVoRepresentations: function() {
      return r3.getRepresentations();
    }, getStreamId: function() {
      return n3.id;
    }, initialize: function() {
      r3.addTracks();
      const t5 = r3.getTracks();
      t5 && t5.length > 0 && i3(0);
    }, provide: function(t5, e4) {
      if ("function" != typeof e4)
        return;
      const n4 = r3.getCurrentTrack();
      let a3, i4;
      if (!n4 || n4.segmentDuration <= 0 || null == t5)
        return void e4(null);
      i4 = r3.getThumbnailRequestForTime(t5), i4 && (n4.segmentDuration = i4.duration), a3 = t5 % n4.segmentDuration;
      const l4 = Math.floor(a3 * n4.tilesHor * n4.tilesVert / n4.segmentDuration), o3 = new Kn();
      if (o3.width = Math.floor(n4.widthPerTile), o3.height = Math.floor(n4.heightPerTile), o3.x = Math.floor(l4 % n4.tilesHor) * n4.widthPerTile, o3.y = Math.floor(l4 / n4.tilesHor) * n4.heightPerTile, "readThumbnail" in n4)
        return n4.readThumbnail(t5, (t6) => {
          o3.url = t6, e4(o3);
        });
      if (i4)
        o3.url = i4.url, n4.segmentDuration = NaN;
      else {
        const e5 = Math.floor(t5 / n4.segmentDuration);
        o3.url = function(t6, e6) {
          const n5 = e6 + t6.startNumber;
          return gt(t6.templateUrl, void 0, n5, void 0, t6.bandwidth, (n5 - 1) * t6.segmentDuration * t6.timescale);
        }(n4, e5);
      }
      e4(o3);
    }, reset: l3, setTrackByIndex: i3, setTrackById: function(t5) {
      r3.setTrackById(t5);
    } }, l3(), r3 = ra(e3).create({ streamInfo: n3, adapter: t4.adapter, baseURLController: t4.baseURLController, timelineConverter: t4.timelineConverter, debug: t4.debug, eventBus: t4.eventBus, events: t4.events, dashConstants: t4.dashConstants, dashMetrics: t4.dashMetrics, segmentBaseController: t4.segmentBaseController }), a2;
  }
  ia.__dashjs_factory_name = "ThumbnailController";
  var la = N.default.getClassFactory(ia);
  function oa(t4) {
    let e3;
    t4 = t4 || {};
    let n3 = [];
    const a2 = (0, A.default)(this.context).getInstance(), r3 = t4.updateEventName, i3 = t4.addBlacklistEventName;
    function l3(t5) {
      -1 === n3.indexOf(t5) && (n3.push(t5), a2.trigger(r3, { entry: t5 }));
    }
    function o3(t5) {
      l3(t5.entry);
    }
    return e3 = { add: l3, remove: function(t5) {
      const e4 = n3.indexOf(t5);
      -1 !== e4 && n3.splice(e4, 1);
    }, contains: function(t5) {
      return !!(n3.length && t5 && t5.length) && -1 !== n3.indexOf(t5);
    }, reset: function() {
      i3 && a2.off(i3, o3, e3), n3 = [];
    } }, i3 && a2.on(i3, o3, e3), e3;
  }
  oa.__dashjs_factory_name = "BlackListController";
  var sa = N.default.getClassFactory(oa);
  const ua = [S2.default.VIDEO, S2.default.AUDIO, S2.default.TEXT, S2.default.MUXED, S2.default.IMAGE];
  function da(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, A.default)(e3).getInstance(), a2 = St(e3).getInstance(), r3 = t4.manifestModel, i3 = t4.mediaPlayerModel, l3 = t4.dashMetrics, o3 = t4.manifestUpdater, s2 = t4.adapter, u3 = t4.timelineConverter, d3 = t4.capabilities, c3 = t4.errHandler, f3 = t4.abrController, g3 = t4.playbackController, m3 = t4.throughputController, h3 = t4.eventController, p3 = t4.mediaController, b3 = t4.protectionController, y3 = t4.textController, E3 = t4.videoModel;
    let _3 = t4.streamInfo;
    const T3 = t4.settings;
    let v3, w3, k2, N2, D2, x2, M2, z2, O2, P2, L2, F2, U2, j2, q2, B2;
    function H2(t5, e4, n4) {
      return new Promise((a3, i4) => {
        J2(), et2();
        let l4 = E3.getElement();
        const o4 = [];
        ua.forEach((e5) => {
          if ((e5 !== S2.default.TEXT || t5) && (e5 !== S2.default.VIDEO || !l4 || l4 && /^VIDEO$/i.test(l4.nodeName))) {
            const a4 = n4.find((t6) => t6.mediaInfo.type === e5);
            o4.push(Y2(e5, t5, a4));
          }
        }), Promise.all(o4).then(() => {
          return t6 = e4, new Promise((e5) => {
            const n5 = {}, a4 = k2.map((e6) => {
              const n6 = e6.getRepresentation();
              return e6.createBufferSinks(t6, n6);
            });
            Promise.all(a4).then((t7) => {
              t7.forEach((t8) => {
                t8 && (n5[t8.getType()] = t8);
              }), e5(n5);
            }).catch(() => {
              e5(n5);
            });
          });
          var t6;
        }).then((e5) => {
          if (0 === k2.length) {
            const t6 = "No streams to play.";
            c3.error(new G.default(V.MANIFEST_ERROR_ID_NOSTREAMS_CODE, t6, r3.getValue())), w3.fatal(t6);
          } else
            ct2();
          t5 && y3.createTracks(_3), a3(e5);
        }).catch((t6) => {
          i4(t6);
        });
      });
    }
    function Y2(a3, l4, o4) {
      let h4, b4 = s2.getAllMediaInfoForType(_3, a3), E4 = [], v4 = null;
      if (!b4 || 0 === b4.length)
        return w3.info("No " + a3 + " data."), Promise.resolve();
      a3 === S2.default.VIDEO && (M2 = true), a3 === S2.default.AUDIO && (z2 = true);
      for (let t5 = 0, e4 = b4.length; t5 < e4; t5++)
        v4 = b4[t5], a3 === S2.default.TEXT && v4.isEmbedded && (y3.addEmbeddedTrack(_3, v4), E4.push(v4)), K2(v4) && p3.addTrack(v4);
      if (E4.length > 0 && (p3.setInitialMediaSettingsForType(a3, _3), y3.addMediaInfosToBuffer(_3, a3, E4)), b4 = b4.filter((t5) => !t5.isEmbedded), 0 === b4.length)
        return Promise.resolve();
      if (a3 === S2.default.IMAGE)
        return P2 = la(e3).create({ streamInfo: _3, adapter: s2, baseURLController: t4.baseURLController, timelineConverter: t4.timelineConverter, debug: j2, eventBus: n3, events: R.default, dashConstants: I.default, dashMetrics: t4.dashMetrics, segmentBaseController: t4.segmentBaseController }), P2.initialize(), Promise.resolve();
      n3.trigger(R.default.STREAM_INITIALIZING, { streamInfo: _3, mediaInfo: v4 }), p3.setInitialMediaSettingsForType(a3, _3);
      let A2 = function(n4, a4) {
        const l5 = n4 && n4.length > 0 ? n4[0] : null;
        let o5 = O2.getModel(l5 ? l5.type : null);
        const h5 = l5 ? l5.type : null, b5 = l5 ? l5.mimeType : null, E5 = l5 ? l5.isFragmented : null;
        let v5 = qt(e3).create({ abrController: f3, adapter: s2, baseURLController: t4.baseURLController, boxParser: U2, capabilities: d3, dashMetrics: t4.dashMetrics, errHandler: c3, fragmentModel: o5, manifestModel: r3, mediaController: p3, mediaPlayerModel: i3, mimeType: b5, playbackController: g3, segmentBaseController: t4.segmentBaseController, segmentBlacklistController: L2, settings: T3, streamInfo: _3, textController: y3, throughputController: m3, timelineConverter: u3, type: h5 });
        return v5.initialize(a4, M2, E5), k2.push(v5), v5.setMediaInfoArray(n4), h5 === S2.default.TEXT && y3.addMediaInfosToBuffer(_3, h5, n4, o5), v5;
      }(b4, l4);
      if (h4 = p3.getCurrentTrackFor(a3, _3.id), h4) {
        const t5 = a3 === S2.default.TEXT && h4.isEmbedded ? b4[0] : h4, e4 = new Ut({ newMediaInfo: t5, previouslySelectedRepresentation: o4 });
        return A2.selectMediaInfo(e4);
      }
      return Promise.resolve();
    }
    function K2(t5) {
      const e4 = t5 ? t5.type : null;
      let n4;
      return e4 === S2.default.MUXED ? (n4 = "Multiplexed representations are intentionally not supported, as they are not compliant with the DASH-AVC/264 guidelines", w3.fatal(n4), c3.error(new G.default(V.MANIFEST_ERROR_ID_MULTIPLEXED_CODE, n4, r3.getValue())), false) : !(e4 !== S2.default.TEXT && e4 !== S2.default.IMAGE && t5.contentProtection && t5.contentProtection.length > 0 && !d3.supportsEncryptedMedia() && (c3.error(new G.default(V.CAPABILITY_MEDIAKEYS_ERROR_CODE, V.CAPABILITY_MEDIAKEYS_ERROR_MESSAGE)), 1));
    }
    function W2(t5) {
      let e4 = k2 ? k2.length : 0;
      for (let n4 = 0; n4 < e4; n4++) {
        let e5 = k2[n4].getFragmentModel();
        e5.abortRequests(), e5.resetInitialSettings(), k2[n4].reset(false, t5);
      }
      y3 && y3.deactivateStream(_3), P2 && (P2.reset(), P2 = null), k2 = [], D2 = false, x2 = false, ft2(false), X2(false), n3.trigger(R.default.STREAM_DEACTIVATED, { streamInfo: _3 });
    }
    function $2(t5) {
      W2(t5), N2 = false, M2 = false, z2 = false, q2 = false, B2 = [];
    }
    function X2(t5) {
      q2 = t5;
    }
    function Q2() {
      return _3 ? _3.start : NaN;
    }
    function Z2() {
      return _3 ? _3.id : null;
    }
    function J2() {
      if (!E3 || !f3)
        throw new Error(S2.default.MISSING_CONFIG_ERROR);
    }
    function tt2(t5) {
      t5.error && (c3.error(t5.error), w3.fatal(t5.error.message));
    }
    function et2() {
      if (h3) {
        const t5 = s2.getEventsFor(_3);
        t5 && t5.length > 0 && h3.addInlineEvents(t5, _3.id);
      }
    }
    function nt2(t5) {
      let e4 = at2(t5);
      return e4 ? e4.getMediaInfo() : null;
    }
    function at2(t5) {
      return t5 ? k2.find((e4) => e4.getType() === t5) : null;
    }
    function rt2() {
      let t5 = ut2();
      const e4 = t5.length;
      if (0 !== e4) {
        for (let n4 = 0; n4 < e4; n4++)
          if (!t5[n4].isBufferingCompleted() && (t5[n4].getType() === S2.default.AUDIO || t5[n4].getType() === S2.default.VIDEO))
            return void w3.debug("onBufferingCompleted - One streamProcessor has finished but", t5[n4].getType(), "one is not buffering completed");
        w3.debug("onBufferingCompleted - trigger STREAM_BUFFERING_COMPLETED"), x2 = true, n3.trigger(R.default.STREAM_BUFFERING_COMPLETED, { streamInfo: _3 }, { streamInfo: _3 });
      } else
        w3.warn("onBufferingCompleted - can't trigger STREAM_BUFFERING_COMPLETED because no streamProcessor is defined");
    }
    function it2(t5) {
      h3 && h3.addInbandEvents(t5.events, _3.id);
    }
    function lt2() {
      ct2();
    }
    function ot2(t5) {
      return t5 && t5.type ? st2(t5.type) : null;
    }
    function st2(t5) {
      return t5 ? ut2().filter(function(e4) {
        return e4.getType() === t5;
      })[0] : null;
    }
    function ut2() {
      let t5, e4, n4 = [];
      for (let a3 = 0; a3 < k2.length; a3++)
        e4 = k2[a3], t5 = e4.getType(), t5 !== S2.default.AUDIO && t5 !== S2.default.VIDEO && t5 !== S2.default.TEXT || n4.push(e4);
      return n4;
    }
    function dt2() {
      const t5 = k2.length;
      for (let e4 = 0; e4 < t5 && k2[e4]; e4++)
        k2[e4].getScheduleController().startScheduleTimer();
    }
    function ct2() {
      const t5 = k2.length;
      if (b3) {
        b3.clearMediaInfoArray();
        for (let e4 = 0; e4 < t5 && k2[e4]; e4++) {
          const t6 = k2[e4].getType(), n4 = k2[e4].getMediaInfo();
          if (t6 === S2.default.AUDIO || t6 === S2.default.VIDEO || t6 === S2.default.TEXT && n4 && n4.isFragmented) {
            let t7 = k2[e4].getMediaInfo();
            t7 && b3.initializeForMedia(t7);
          }
        }
        b3.handleKeySystemFromManifest();
      }
      N2 || (N2 = true, E3.waitForReadyState(S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_METADATA, () => {
        n3.trigger(R.default.STREAM_INITIALIZED, { streamInfo: _3 });
      }));
    }
    function ft2(t5) {
      F2 = t5;
    }
    function gt2() {
      return F2;
    }
    return v3 = { activate: function(t5, e4) {
      let a3 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];
      return new Promise((r4, i4) => {
        if (!D2)
          return gt2() ? (D2 = true, n3.trigger(R.default.STREAM_ACTIVATED, { streamInfo: _3 }), void r4(e4)) : void function(t6, e5) {
            return H2(t6, e5, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : []);
          }(t5, e4, a3).then((t6) => {
            D2 = true, a3 && a3.length > 0 && dt2(), n3.trigger(R.default.STREAM_ACTIVATED, { streamInfo: _3 }), r4(t6);
          }).catch((t6) => {
            i4(t6);
          });
        r4(e4);
      });
    }, checkAndHandleCompletedBuffering: function() {
      x2 || k2.forEach((t5) => {
        t5.checkAndHandleCompletedBuffering();
      });
    }, deactivate: W2, getAdapter: function() {
      return s2;
    }, getCurrentMediaInfoForType: function(t5) {
      const e4 = st2(t5);
      return e4 ? e4.getMediaInfo() : null;
    }, getCurrentRepresentationForType: function(t5) {
      const e4 = st2(t5);
      return e4 ? e4.getRepresentation() : null;
    }, getDuration: function() {
      return _3 ? _3.duration : NaN;
    }, getHasAudioTrack: function() {
      return z2;
    }, getHasFinishedBuffering: function() {
      return x2;
    }, getHasVideoTrack: function() {
      return M2;
    }, getId: Z2, getIsActive: function() {
      return D2;
    }, getIsEndedEventSignaled: function() {
      return q2;
    }, getPreloaded: gt2, getRepresentationForTypeById: function(t5, e4) {
      let n4;
      if (t5 === S2.default.IMAGE) {
        if (!P2)
          return null;
        n4 = P2.getPossibleVoRepresentations();
      } else {
        const e5 = function(t6) {
          let e6 = at2(t6);
          return e6 ? e6.getAllMediaInfos() : [];
        }(t5);
        n4 = e5.flatMap((t6) => f3.getPossibleVoRepresentationsFilteredBySettings(t6, true));
      }
      if (!n4 || 0 === n4.length)
        return null;
      const a3 = n4.filter((t6) => t6.id === e4);
      return a3 && a3.length > 0 ? a3[0] : null;
    }, getRepresentationForTypeByIndex: function(t5, e4) {
      let n4;
      if (t5 === S2.default.IMAGE) {
        if (!P2)
          return null;
        n4 = P2.getPossibleVoRepresentations();
      } else {
        const e5 = nt2(t5);
        n4 = f3.getPossibleVoRepresentationsFilteredBySettings(e5, true);
      }
      return n4[e4 = Math.max(Math.min(e4, n4.length - 1), 0)];
    }, getRepresentationsByType: function(t5) {
      if (J2(), t5 === S2.default.IMAGE)
        return P2 ? P2.getPossibleVoRepresentations() : [];
      const e4 = nt2(t5);
      return f3.getPossibleVoRepresentationsFilteredBySettings(e4, true);
    }, getStartTime: Q2, getStreamId: function() {
      return _3 ? _3.id : null;
    }, getStreamInfo: function() {
      return _3;
    }, getStreamProcessors: ut2, getThumbnailController: function() {
      return P2;
    }, initialize: function() {
      n3.on(R.default.BUFFERING_COMPLETED, rt2, v3), n3.on(R.default.INBAND_EVENTS, it2, v3), n3.on(R.default.DATA_UPDATE_COMPLETED, lt2, v3), b3 && (n3.on(R.default.KEY_ERROR, tt2, v3), n3.on(R.default.SERVER_CERTIFICATE_UPDATED, tt2, v3), n3.on(R.default.LICENSE_REQUEST_COMPLETE, tt2, v3), n3.on(R.default.KEY_SYSTEM_SELECTED, tt2, v3), n3.on(R.default.KEY_SESSION_CREATED, tt2, v3)), y3.initializeForStream(_3), n3.trigger(R.default.STREAM_UPDATED, { streamInfo: _3 });
    }, initializeForTextWithMediaSource: function(t5) {
      return new Promise((e4, n4) => {
        Y2(S2.default.TEXT, t5, null).then(() => function() {
          const t6 = st2(S2.default.TEXT);
          return t6 ? t6.createBufferSinks() : Promise.resolve();
        }()).then(() => {
          y3.createTracks(_3), e4();
        }).catch((t6) => {
          n4(t6);
        });
      });
    }, prepareQualityChange: function(t5) {
      const e4 = st2(t5.mediaType);
      e4 && e4.prepareQualityChange(t5);
    }, prepareTrackChange: function(t5) {
      if (!D2 || !_3)
        return;
      x2 = false;
      let e4 = t5.newMediaInfo, n4 = r3.getValue(), a3 = ot2(e4);
      if (!a3)
        return;
      let i4 = g3.getTime();
      if (w3.info("Stream -  Process track changed at current time " + i4), n4.refreshManifestOnSwitchTrack)
        B2.push(t5), o3.getIsUpdating() || (w3.debug("Stream -  Refreshing manifest for switch track"), o3.refreshManifest());
      else {
        a3.clearScheduleTimer(), a3.setTrackSwitchInProgress(true);
        const n5 = a3.getRepresentation();
        a3.selectMediaInfo(new Ut({ newMediaInfo: e4 })).then(() => {
          const e5 = !!(t5 && t5.options && t5.options.hasOwnProperty("replaceBuffer")) && t5.options.replaceBuffer;
          return a3.prepareTrackSwitch(n5, e5);
        }).then(() => {
          a3.setTrackSwitchInProgress(false);
        });
      }
    }, reset: function(t5) {
      O2 && (O2.reset(), O2 = null), f3 && _3 && f3.clearDataForStream(_3.id), L2 && (L2.reset(), L2 = null), y3 && _3 && y3.clearDataForStream(_3.id), p3 && _3 && p3.clearDataForStream(_3.id), $2(t5), _3 = null, n3.off(R.default.BUFFERING_COMPLETED, rt2, v3), n3.off(R.default.INBAND_EVENTS, it2, v3), n3.off(R.default.DATA_UPDATE_COMPLETED, lt2, v3), b3 && (n3.off(R.default.KEY_ERROR, tt2, v3), n3.off(R.default.SERVER_CERTIFICATE_UPDATED, tt2, v3), n3.off(R.default.LICENSE_REQUEST_COMPLETE, tt2, v3), n3.off(R.default.KEY_SYSTEM_SELECTED, tt2, v3), n3.off(R.default.KEY_SESSION_CREATED, tt2, v3));
    }, setIsEndedEventSignaled: X2, setMediaSource: function(t5) {
      return new Promise((e4, n4) => {
        const a3 = [];
        for (let e5 = 0; e5 < k2.length; )
          K2(k2[e5].getMediaInfo()) ? (a3.push(k2[e5].setMediaSource(t5)), e5++) : (k2[e5].reset(), k2.splice(e5, 1));
        Promise.all(a3).then(() => {
          for (let t6 = 0; t6 < k2.length; t6++)
            k2[t6].dischargePreBuffer();
          if (0 === k2.length) {
            const t6 = "No streams to play.";
            c3.error(new G.default(V.MANIFEST_ERROR_ID_NOSTREAMS_CODE, t6 + "nostreams", r3.getValue())), w3.fatal(t6);
          }
          e4();
        }).catch((t6) => {
          w3.error(t6), n4(t6);
        });
      });
    }, startPreloading: function(t5, e4) {
      let n4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [];
      return new Promise((a3, r4) => {
        gt2() ? r4() : (w3.info(`[startPreloading] Preloading next stream with id ${Z2()}`), ft2(true), H2(t5, e4, n4).then(() => {
          for (let t6 = 0; t6 < k2.length && k2[t6]; t6++)
            k2[t6].setExplicitBufferingTime(Q2()), k2[t6].getScheduleController().startScheduleTimer();
          a3();
        }).catch(() => {
          ft2(false), r4();
        }));
      });
    }, startScheduleControllers: dt2, triggerProtectionError: function(t5) {
      tt2(t5);
    }, updateData: function(t5) {
      return new Promise((e4) => {
        _3 = t5, h3 && et2();
        let a3, r4 = [];
        for (let t6 = 0, e5 = k2.length; t6 < e5; t6++) {
          let e6 = k2[t6];
          const n4 = e6.getMediaInfo();
          r4.push(e6.updateStreamInfo(_3));
          let a4 = s2.getAllMediaInfoForType(_3, e6.getType());
          if (a4 = a4.filter((t7) => !t7.isEmbedded), e6.setMediaInfoArray(a4), a4)
            for (let t7 = 0; t7 < a4.length; t7++)
              s2.areMediaInfosEqual(n4, a4[t7]) && r4.push(e6.selectMediaInfo(new Ut({ newMediaInfo: a4[t7] })));
        }
        Promise.all(r4).then(() => {
          let t6 = [];
          for (; B2.length > 0; ) {
            let e5 = B2.pop(), n4 = e5.newMediaInfo;
            if (a3 = ot2(e5.oldMediaInfo), !a3)
              return;
            const r5 = a3.getRepresentation();
            a3.setTrackSwitchInProgress(true), t6.push(a3.prepareTrackSwitch(r5)), t6.push(a3.selectMediaInfo(new Ut({ newMediaInfo: n4 })));
          }
          return Promise.all(t6);
        }).then(() => {
          ct2(), a3 && a3.setTrackSwitchInProgress(false), n3.trigger(R.default.STREAM_UPDATED, { streamInfo: _3 }), e4();
        }).catch((t6) => {
          c3.error(t6);
        });
      });
    } }, function() {
      try {
        j2 = (0, C.default)(e3).getInstance(), w3 = j2.getLogger(v3), $2(), U2 = na(e3).getInstance(), L2 = sa(e3).create({ updateEventName: R.default.SEGMENT_LOCATION_BLACKLIST_CHANGED, addBlacklistEventName: R.default.SEGMENT_LOCATION_BLACKLIST_ADD }), O2 = Vn(e3).create({ streamInfo: _3, mediaPlayerModel: i3, dashMetrics: l3, errHandler: c3, settings: T3, boxParser: U2, dashConstants: I.default, urlUtils: a2 });
      } catch (t5) {
        throw t5;
      }
    }(), v3;
  }
  da.__dashjs_factory_name = "Stream";
  var ca = N.default.getClassFactory(da), fa = class {
    constructor(t4) {
      this.url = t4 || null, this.type = z.HTTPRequest.CONTENT_STEERING_TYPE, this.responseType = "json";
    }
  }, ga = class {
    constructor() {
      this.version = null, this.ttl = 300, this.reloadUri = null, this.pathwayPriority = [], this.pathwayClones = [];
    }
  };
  function ma() {
    const t4 = this.context, e3 = St(t4).getInstance();
    let n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3;
    function b3(t5) {
      _3(t5, "baseUrl");
    }
    function y3(t5) {
      _3(t5, "location");
    }
    function E3(t5) {
      var e4, n4;
      t5 && t5.throughputValues && t5.throughputValues.serviceLocation && (e4 = t5.throughputValues.serviceLocation, n4 = t5.throughputValues, l3[e4] || (l3[e4] = []), l3[e4].push(n4), l3[e4].length > 4 && l3[e4].shift());
    }
    function _3(t5, e4) {
      if (t5 && t5.request && t5.request.serviceLocation) {
        const n4 = t5.request.serviceLocation;
        -1 === i3[e4].all.indexOf(n4) && i3[e4].all.push(n4), i3[e4].current = n4;
      }
    }
    function T3() {
      const t5 = f3.getValue();
      let e4 = p3.getContentSteering(t5);
      return e4 || (e4 = g3.getServiceDescriptionSettings().contentSteering), e4;
    }
    function v3() {
      return new Promise((t5) => {
        try {
          const n4 = T3();
          if (!n4 || !n4.serverUrl)
            return void t5();
          const o4 = function(t6) {
            let n5 = t6.serverUrl;
            r3 && r3.reloadUri && (n5 = e3.isRelative(r3.reloadUri) ? e3.resolve(r3.reloadUri, t6.serverUrl) : r3.reloadUri);
            const a3 = [], o5 = i3.baseUrl.all.concat(i3.location.all);
            if (o5.length > 0) {
              const t7 = o5.map((t8) => {
                const e5 = function(t9) {
                  if (!t9 || !l3[t9] || 0 === l3[t9].length)
                    return -1;
                  const e6 = m3.getArithmeticMean(l3[t9], l3[t9].length, true);
                  return parseInt(1e3 * e6);
                }(t8);
                return { serviceLocation: t8, throughput: e5 };
              });
              let e4 = "", n6 = "";
              t7.forEach((t8, a4) => {
                0 !== a4 && (e4 += ",", n6 += ","), e4 += t8.serviceLocation, n6 += t8.throughput > -1 ? t8.throughput : "";
              }), a3.push({ key: "_DASH_pathway", value: `"${e4}"` }), a3.push({ key: "_DASH_throughput", value: n6 });
            }
            return n5 = Gt.default.addAdditionalQueryParameterToUrl(n5, a3), n5;
          }(n4), u4 = new fa(o4);
          s2.load({ request: u4, success: (e4) => {
            !function(t6) {
              t6 && t6[I.default.CONTENT_STEERING_RESPONSE.VERSION] && 1 === parseInt(t6[I.default.CONTENT_STEERING_RESPONSE.VERSION]) && (r3 = new ga(), r3.version = t6[I.default.CONTENT_STEERING_RESPONSE.VERSION], t6[I.default.CONTENT_STEERING_RESPONSE.TTL] && !isNaN(t6[I.default.CONTENT_STEERING_RESPONSE.TTL]) && (r3.ttl = t6[I.default.CONTENT_STEERING_RESPONSE.TTL]), t6[I.default.CONTENT_STEERING_RESPONSE.RELOAD_URI] && (r3.reloadUri = t6[I.default.CONTENT_STEERING_RESPONSE.RELOAD_URI]), t6[I.default.CONTENT_STEERING_RESPONSE.PATHWAY_PRIORITY] && (r3.pathwayPriority = t6[I.default.CONTENT_STEERING_RESPONSE.PATHWAY_PRIORITY]), t6[I.default.CONTENT_STEERING_RESPONSE.PATHWAY_CLONES] && (r3.pathwayClones = t6[I.default.CONTENT_STEERING_RESPONSE.PATHWAY_CLONES], r3.pathwayClones = r3.pathwayClones.filter((t7) => function(t8) {
                return t8[I.default.CONTENT_STEERING_RESPONSE.BASE_ID] && t8[I.default.CONTENT_STEERING_RESPONSE.ID] && t8[I.default.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT] && t8[I.default.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][I.default.CONTENT_STEERING_RESPONSE.HOST];
              }(t7))), k2());
            }(e4), h3.trigger(D.default.CONTENT_STEERING_REQUEST_COMPLETED, { currentSteeringResponseData: r3, url: o4 }), t5();
          }, error: (e4, n5, i4, l4) => {
            !function(t6, e5) {
              try {
                switch (a2.warn("Error fetching data from content steering server", t6), e5.status) {
                  case 410:
                    break;
                  case 429:
                    const t7 = e5 && e5.getResponseHeader ? e5.getResponseHeader("retry-after") : null;
                    null !== t7 && (r3 || (r3 = {}), r3.ttl = parseInt(t7)), k2();
                    break;
                  default:
                    k2();
                }
              } catch (t7) {
                a2.error(t7);
              }
            }(e4, l4), t5(e4);
          }, complete: () => {
            i3.baseUrl.all = w3(i3.baseUrl), i3.location.all = w3(i3.location);
          } });
        } catch (e4) {
          t5(e4);
        }
      });
    }
    function w3(t5) {
      return t5.all && 0 !== t5.all.length && t5.current ? t5.all.filter((e4) => e4 === t5.current) : [];
    }
    function S3(t5) {
      try {
        const e4 = [];
        return t5 && 0 !== t5.length && r3 && r3.pathwayClones && 0 !== r3.pathwayClones.length ? (r3.pathwayClones.forEach((n4) => {
          let a3 = t5.filter((t6) => n4[I.default.CONTENT_STEERING_RESPONSE.BASE_ID] === t6.serviceLocation), r4 = null;
          if (a3 && a3.length > 0 && (r4 = a3[0]), r4) {
            const t6 = new URL(r4.url);
            let a4 = n4[I.default.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][I.default.CONTENT_STEERING_RESPONSE.HOST];
            a4 = Gt.default.stringHasProtocol(a4) ? a4 : `${t6.protocol}//${a4}`;
            const i4 = { synthesizedUrl: `${a4}${t6.pathname}`, serviceLocation: n4[I.default.CONTENT_STEERING_RESPONSE.ID], queryParams: n4[I.default.CONTENT_STEERING_RESPONSE.URI_REPLACEMENT][I.default.CONTENT_STEERING_RESPONSE.PARAMS], reference: r4 };
            e4.push(i4);
          }
        }), e4) : e4;
      } catch (t6) {
        return a2.error(t6), [];
      }
    }
    function k2() {
      r3 && r3.ttl && !isNaN(r3.ttl) && (o3 && clearTimeout(o3), o3 = setTimeout(() => {
        v3();
      }, 1e3 * r3.ttl));
    }
    function A2() {
      o3 && clearTimeout(o3), o3 = null;
    }
    function R2() {
      r3 = null, l3 = {}, i3 = { baseUrl: { current: null, all: [] }, location: { current: null, all: [] } }, A2();
    }
    return n3 = { reset: function() {
      R2(), h3.off(D.default.FRAGMENT_LOADING_STARTED, b3, n3), h3.off(D.default.MANIFEST_LOADING_STARTED, y3, n3), h3.off(D.default.THROUGHPUT_MEASUREMENT_STORED, E3, n3);
    }, setConfig: function(t5) {
      t5 && (t5.adapter && (p3 = t5.adapter), t5.errHandler && (u3 = t5.errHandler), t5.dashMetrics && (d3 = t5.dashMetrics), t5.mediaPlayerModel && (c3 = t5.mediaPlayerModel), t5.manifestModel && (f3 = t5.manifestModel), t5.serviceDescriptionController && (g3 = t5.serviceDescriptionController), t5.throughputController && (m3 = t5.throughputController), t5.eventBus && (h3 = t5.eventBus));
    }, loadSteeringData: v3, getCurrentSteeringResponseData: function() {
      return r3;
    }, shouldQueryBeforeStart: function() {
      const t5 = T3();
      return !!t5 && t5.queryBeforeStart;
    }, getSteeringDataFromManifest: T3, stopSteeringRequestTimer: A2, getSynthesizedBaseUrlElements: function(t5) {
      try {
        return S3(t5).map((t6) => {
          const e4 = new Qt(t6.synthesizedUrl, t6.serviceLocation);
          return e4.queryParams = t6.queryParams, e4.dvbPriority = t6.reference.dvbPriority, e4.dvbWeight = t6.reference.dvbWeight, e4.availabilityTimeOffset = t6.reference.availabilityTimeOffset, e4.availabilityTimeComplete = t6.reference.availabilityTimeComplete, e4;
        });
      } catch (t6) {
        return a2.error(t6), [];
      }
    }, getSynthesizedLocationElements: function(t5) {
      try {
        return S3(t5).map((t6) => {
          const e4 = new le(t6.synthesizedUrl, t6.serviceLocation);
          return e4.queryParams = t6.queryParams, e4;
        });
      } catch (t6) {
        return a2.error(t6), [];
      }
    }, initialize: function() {
      s2 = qn(t4).create({ errHandler: u3, dashMetrics: d3, mediaPlayerModel: c3, errors: V }), h3.on(D.default.FRAGMENT_LOADING_STARTED, b3, n3), h3.on(D.default.MANIFEST_LOADING_STARTED, y3, n3), h3.on(D.default.THROUGHPUT_MEASUREMENT_STORED, E3, n3);
    } }, a2 = (0, C.default)(t4).getInstance().getLogger(n3), R2(), n3;
  }
  ma.__dashjs_factory_name = "ContentSteeringController";
  var ha = N.default.getSingletonFactory(ma);
  function pa() {
    const t4 = this.context, e3 = (0, K.default)(t4).getInstance();
    let n3, a2, r3;
    return n3 = { select: function(t5) {
      if (!t5 || 0 === t5.length)
        return null;
      let n4 = null;
      return e3.get().streaming.applyContentSteering && (n4 = function(t6) {
        const e4 = r3.getCurrentSteeringResponseData();
        return e4 && e4.pathwayPriority && e4.pathwayPriority.length > 0 ? function() {
          let t7 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], e5 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], n5 = 0, r4 = null;
          for (; n5 < t7.length; ) {
            const i3 = t7[n5], l3 = e5.findIndex((t8) => t8.serviceLocation && t8.serviceLocation === i3);
            if (-1 !== l3 && !a2.contains(e5[l3].serviceLocation)) {
              r4 = e5[l3];
              break;
            }
            n5 += 1;
          }
          return r4;
        }(e4.pathwayPriority, t6) : null;
      }(t5)), n4 || (n4 = function(t6) {
        return t6[0];
      }(t5)), n4;
    }, setConfig: function(t5) {
      t5.blacklistController && (a2 = t5.blacklistController), t5.contentSteeringController && (r3 = t5.contentSteeringController);
    }, reset: function() {
      a2.reset();
    } }, a2 = sa(t4).create({ updateEventName: R.default.SERVICE_LOCATION_LOCATION_BLACKLIST_CHANGED, addBlacklistEventName: R.default.SERVICE_LOCATION_LOCATION_BLACKLIST_ADD }), r3 = ha(t4).getInstance(), n3;
  }
  pa.__dashjs_factory_name = "LocationSelector";
  var ba = N.default.getClassFactory(pa);
  function ya() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance(), n3 = St(t4).getInstance();
    let a2, r3, i3, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3;
    function b3() {
      i3 = NaN, u3 = false, o3 = true, s2 = false, y3();
    }
    function y3() {
      null !== l3 && (clearTimeout(l3), l3 = null);
    }
    function E3(t5) {
      y3(), s2 || (isNaN(t5) && !isNaN(i3) && (t5 = 1e3 * i3), isNaN(t5) || (r3.debug("Refresh manifest in " + t5 + " milliseconds."), l3 = setTimeout(v3, t5)));
    }
    function _3() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
      u3 = true;
      const e4 = c3.getValue();
      let a3 = e4.url;
      a3 && (a3 = Gt.default.removeQueryParameterFromUrl(a3, S2.default.CMCD_QUERY_KEY));
      let r4 = null;
      const i4 = g3.getPatchLocation(e4), l4 = f3.select(i4);
      let o4 = null;
      if (l4 && !t5)
        a3 = l4.url, r4 = l4.serviceLocation, o4 = l4.queryParams;
      else {
        const t6 = function(t7) {
          const e5 = g3.getLocation(t7), n5 = h3.getSynthesizedLocationElements(e5);
          return e5.concat(n5);
        }(e4), n4 = f3.select(t6);
        n4 && (a3 = n4.url, r4 = n4.serviceLocation, o4 = n4.queryParams);
      }
      n3.isRelative(a3) && (a3 = n3.resolve(a3, e4.url)), d3.load(a3, r4, o4);
    }
    function T3(t5) {
      if (t5) {
        if (g3.getIsPatch(t5)) {
          let e4 = t5;
          t5 = c3.getValue();
          let n5 = g3.isPatchValid(t5, e4), a4 = n5;
          if (n5) {
            let n6 = g3.getPublishTime(t5);
            g3.applyPatchToManifest(t5, e4);
            let r4 = g3.getPublishTime(t5);
            a4 = n6.getTime() !== r4.getTime();
          }
          if (!a4)
            return r3.debug("Patch provided is invalid, performing full manifest refresh"), void _3(true);
          t5.loadedTime = /* @__PURE__ */ new Date();
        }
      } else
        (t5 = c3.getValue()).loadedTime = /* @__PURE__ */ new Date();
      if (c3.getValue() && c3.getValue().type === I.default.DYNAMIC && t5.type === I.default.STATIC)
        return e3.trigger(R.default.DYNAMIC_TO_STATIC), u3 = false, void (s2 = true);
      c3.setValue(t5);
      const n4 = /* @__PURE__ */ new Date(), a3 = (n4.getTime() - t5.loadedTime.getTime()) / 1e3;
      i3 = g3.getManifestUpdatePeriod(t5, a3), 1e3 * i3 > 2147483647 && (i3 = 2147483647e-3), e3.trigger(R.default.MANIFEST_UPDATED, { manifest: t5 }), r3.info("Manifest has been refreshed at " + n4 + "[" + n4.getTime() / 1e3 + "] "), o3 || E3();
    }
    function v3() {
      o3 || (u3 ? E3(p3.get().streaming.manifestUpdateRetryInterval) : _3());
    }
    function w3(t5) {
      t5.error ? t5.error.code === V.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE && m3.error(t5.error) : T3(t5.manifest);
    }
    function k2() {
      o3 = false, E3();
    }
    function N2() {
      o3 = !p3.get().streaming.scheduling.scheduleWhilePaused, o3 && y3();
    }
    function x2() {
      u3 = false;
    }
    return a2 = { initialize: function() {
      b3(), e3.on(R.default.STREAMS_COMPOSED, x2, this), e3.on(D.default.PLAYBACK_STARTED, k2, this), e3.on(D.default.PLAYBACK_PAUSED, N2, this), e3.on(R.default.INTERNAL_MANIFEST_LOADED, w3, this);
    }, setManifest: function(t5) {
      T3(t5);
    }, refreshManifest: _3, getIsUpdating: function() {
      return u3;
    }, setConfig: function(t5) {
      t5 && (t5.manifestModel && (c3 = t5.manifestModel), t5.adapter && (g3 = t5.adapter), t5.manifestLoader && (d3 = t5.manifestLoader), t5.errHandler && (m3 = t5.errHandler), t5.locationSelector && (f3 = t5.locationSelector), t5.settings && (p3 = t5.settings), t5.contentSteeringController && (h3 = t5.contentSteeringController));
    }, reset: function() {
      e3.off(D.default.PLAYBACK_STARTED, k2, this), e3.off(D.default.PLAYBACK_PAUSED, N2, this), e3.off(R.default.STREAMS_COMPOSED, x2, this), e3.off(R.default.INTERNAL_MANIFEST_LOADED, w3, this), b3();
    } }, r3 = (0, C.default)(t4).getInstance().getLogger(a2), f3 = ba(t4).create(), a2;
  }
  ya.__dashjs_factory_name = "ManifestUpdater";
  var Ea = N.default.getClassFactory(ya);
  function _a() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance(), n3 = St(t4).getInstance();
    let a2, r3, i3, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3, b3, y3;
    function E3() {
      d3 = [], c3 = [], f3 = null, g3 = null, h3 = null, m3 = NaN, i3 = false, l3 = false, p3 = o3.get().streaming.utcSynchronization.timeBetweenSyncAttempts;
    }
    function _3() {
      o3.get().streaming.utcSynchronization.enabled && !i3 && !l3 && h3 && h3.value && h3.schemeIdUri && !isNaN(m3) && !isNaN(o3.get().streaming.utcSynchronization.backgroundAttempts) && (g3 && (Date.now() - g3) / 1e3 < 30 || (d3 = [], l3 = true, T3(isNaN(o3.get().streaming.utcSynchronization.backgroundAttempts) ? 2 : o3.get().streaming.utcSynchronization.backgroundAttempts)));
    }
    function T3(t5) {
      try {
        if (t5 <= 0)
          return void L2();
        const e4 = Date.now();
        s2[h3.schemeIdUri](h3.value, function(n4) {
          const a3 = Date.now(), r4 = w3(e4, a3, n4);
          d3.push(r4), T3(t5 - 1);
        }, function() {
          L2();
        });
      } catch (t6) {
        L2();
      }
    }
    function v3() {
      let t5 = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null) || 0;
      if (!c3 || 0 === c3.length || t5 >= c3.length)
        return void S3();
      let e4 = c3[t5];
      if (e4)
        if (s2.hasOwnProperty(e4.schemeIdUri)) {
          const n4 = (/* @__PURE__ */ new Date()).getTime();
          s2[e4.schemeIdUri](e4.value, function(t6) {
            const a3 = (/* @__PURE__ */ new Date()).getTime(), r4 = w3(n4, a3, t6);
            h3 = e4, S3(r4);
          }, function() {
            v3(t5 + 1);
          });
        } else
          v3(t5 + 1);
      else
        S3();
    }
    function w3(t5, e4, n4) {
      return n4 - (e4 - (e4 - t5) / 2);
    }
    function S3() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : NaN, e4 = isNaN(t5);
      e4 && o3.get().streaming.utcSynchronization.useManifestDateHeaderTimeSource ? function() {
        let t6 = u3.getLatestMPDRequestHeaderValueByID("Date"), e5 = null !== t6 ? new Date(t6).getTime() : Number.NaN;
        isNaN(e5) ? P2(true) : P2(false, e5 - Date.now());
      }() : P2(e4, t5);
    }
    function I2(t5) {
      let e4 = Date.parse(t5);
      return isNaN(e4) && (e4 = function(t6) {
        let e5, n4, a3 = /^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})(?::([0-9]*)(\.[0-9]*)?)?(?:([+\-])([0-9]{2})([0-9]{2}))?/.exec(t6);
        return e5 = Date.UTC(parseInt(a3[1], 10), parseInt(a3[2], 10) - 1, parseInt(a3[3], 10), parseInt(a3[4], 10), parseInt(a3[5], 10), a3[6] && (parseInt(a3[6], 10) || 0), a3[7] && 1e3 * parseFloat(a3[7]) || 0), a3[9] && a3[10] && (n4 = 60 * parseInt(a3[9], 10) + parseInt(a3[10], 10), e5 += ("+" === a3[8] ? -1 : 1) * n4 * 60 * 1e3), new Date(e5).getTime();
      }(t5)), e4;
    }
    function k2(t5) {
      return Date.parse(t5);
    }
    function N2(t5) {
      return Date.parse(t5);
    }
    function D2(t5, e4, n4) {
      n4();
    }
    function x2(t5, e4, n4) {
      let a3 = I2(t5);
      isNaN(a3) ? n4() : e4(a3);
    }
    function M2(t5, e4, a3, r4, i4) {
      let l4, o4, s3 = false, u4 = new XMLHttpRequest(), d4 = i4 ? z.HTTPRequest.HEAD : z.HTTPRequest.GET, c4 = e4.match(/\S+/g);
      if (e4 = c4.shift(), l4 = function() {
        s3 || (s3 = true, c4.length ? M2(t5, c4.join(" "), a3, r4, i4) : r4());
      }, o4 = function() {
        let e5, n4;
        200 === u4.status && (e5 = i4 ? u4.getResponseHeader("Date") : u4.response, n4 = t5(e5), isNaN(n4) || (a3(n4), s3 = true));
      }, n3.isRelative(e4)) {
        const t6 = y3.resolve();
        t6 && (e4 = n3.resolve(e4, t6.url));
      }
      u4.open(d4, e4), u4.timeout = 5e3, u4.onload = o4, u4.onloadend = l4, u4.send();
    }
    function O2(t5, e4, n4) {
      M2(N2, t5, e4, n4, true);
    }
    function P2(t5, n4) {
      if (isNaN(m3) || isNaN(n4) || t5 || function(t6) {
        try {
          const e4 = F2(t6), n5 = isNaN(p3) ? 30 : p3, a3 = isNaN(o3.get().streaming.utcSynchronization.timeBetweenSyncAttemptsAdjustmentFactor) ? 2 : o3.get().streaming.utcSynchronization.timeBetweenSyncAttemptsAdjustmentFactor, i4 = isNaN(o3.get().streaming.utcSynchronization.maximumTimeBetweenSyncAttempts) ? 600 : o3.get().streaming.utcSynchronization.maximumTimeBetweenSyncAttempts, l4 = isNaN(o3.get().streaming.utcSynchronization.minimumTimeBetweenSyncAttempts) ? 2 : o3.get().streaming.utcSynchronization.minimumTimeBetweenSyncAttempts;
          let s3;
          e4 ? (s3 = Math.min(n5 * a3, i4), r3.debug(`Increasing timeBetweenSyncAttempts to ${s3}`)) : (s3 = Math.max(n5 / a3, l4), r3.debug(`Decreasing timeBetweenSyncAttempts to ${s3}`)), p3 = s3;
        } catch (t7) {
        }
      }(n4), !t5 && !isNaN(n4)) {
        f3 = Date.now(), i3 = false;
        const t6 = isNaN(m3);
        m3 = n4, t6 && _3(), r3.debug(`Completed UTC sync. Setting client - server offset to ${n4}`);
      }
      t5 && (h3 = null, i3 = false, b3.error(new G.default(V.TIME_SYNC_FAILED_ERROR_CODE, V.TIME_SYNC_FAILED_ERROR_MESSAGE))), e3.trigger(R.default.UPDATE_TIME_SYNC_OFFSET, { offset: n4 }), e3.trigger(R.default.TIME_SYNCHRONIZATION_COMPLETED);
    }
    function L2() {
      if (!d3 || 0 === d3.length)
        return;
      const t5 = d3.reduce((t6, e4) => t6 + e4, 0) / d3.length;
      F2(t5) ? r3.debug("Completed background UTC sync. Offset is within allowed threshold and is not adjusted.") : (r3.debug(`Completed background UTC sync. Setting client - server offset to ${t5}`), m3 = t5, e3.trigger(R.default.UPDATE_TIME_SYNC_OFFSET, { offset: m3 })), l3 = false, g3 = Date.now();
    }
    function F2(t5) {
      try {
        if (isNaN(m3))
          return true;
        const e4 = o3.get().streaming.utcSynchronization.maximumAllowedDrift && !isNaN(o3.get().streaming.utcSynchronization.maximumAllowedDrift) ? o3.get().streaming.utcSynchronization.maximumAllowedDrift : 100;
        return t5 >= m3 - e4 && t5 <= m3 + e4;
      } catch (t6) {
        return true;
      }
    }
    return a2 = { initialize: function() {
      E3(), s2 = { "urn:mpeg:dash:utc:http-head:2014": O2, "urn:mpeg:dash:utc:http-xsdate:2014": M2.bind(null, I2), "urn:mpeg:dash:utc:http-iso:2014": M2.bind(null, k2), "urn:mpeg:dash:utc:direct:2014": x2, "urn:mpeg:dash:utc:http-head:2012": O2, "urn:mpeg:dash:utc:http-xsdate:2012": M2.bind(null, I2), "urn:mpeg:dash:utc:http-iso:2012": M2.bind(null, k2), "urn:mpeg:dash:utc:direct:2012": x2, "urn:mpeg:dash:utc:http-ntp:2014": D2, "urn:mpeg:dash:utc:ntp:2014": D2, "urn:mpeg:dash:utc:sntp:2014": D2 };
    }, attemptSync: function(t5, n4) {
      c3 = t5, i3 || (function(t6) {
        try {
          if (!t6 || !o3.get().streaming.utcSynchronization.enabled)
            return false;
          const e4 = isNaN(p3) ? 30 : p3;
          return !(f3 && e4 && !isNaN(e4)) || (Date.now() - f3) / 1e3 >= e4;
        } catch (t7) {
          return true;
        }
      }(n4) ? (i3 = true, v3()) : e3.trigger(R.default.TIME_SYNCHRONIZATION_COMPLETED));
    }, setConfig: function(t5) {
      t5 && (t5.dashMetrics && (u3 = t5.dashMetrics), t5.baseURLController && (y3 = t5.baseURLController), t5.errHandler && (b3 = t5.errHandler), t5.settings && (o3 = t5.settings));
    }, reset: function() {
      E3(), e3.off(R.default.ATTEMPT_BACKGROUND_SYNC, _3, a2);
    } }, r3 = (0, C.default)(t4).getInstance().getLogger(a2), e3.on(R.default.ATTEMPT_BACKGROUND_SYNC, _3, a2), a2;
  }
  _a.__dashjs_factory_name = "TimeSyncController";
  const Ta = N.default.getSingletonFactory(_a);
  Ta.HTTP_TIMEOUT_MS = 5e3, N.default.updateSingletonFactory(_a.__dashjs_factory_name, Ta);
  var va = Ta;
  function wa() {
    let t4, e3, n3, a2, r3;
    const i3 = this.context, l3 = (0, A.default)(i3).getInstance();
    return t4 = { attachMediaSource: function(t5) {
      let n4 = window.URL.createObjectURL(e3);
      return t5.setSource(n4), "managedMediaSource" === a2 && (t5.setDisableRemotePlayback(true), e3.addEventListener("startstreaming", () => {
        l3.trigger(D.default.MANAGED_MEDIA_SOURCE_START_STREAMING);
      }), e3.addEventListener("endstreaming", () => {
        l3.trigger(D.default.MANAGED_MEDIA_SOURCE_END_STREAMING);
      })), n4;
    }, createMediaSource: function() {
      let t5 = "WebKitMediaSource" in window, n4 = "MediaSource" in window;
      return "ManagedMediaSource" in window ? (e3 = new ManagedMediaSource(), a2 = "managedMediaSource", r3.info("Created ManagedMediaSource")) : n4 ? (e3 = new MediaSource(), a2 = "mediaSource", r3.info("Created MediaSource")) : t5 && (e3 = new WebKitMediaSource(), r3.info("Created WebkitMediaSource")), e3;
    }, detachMediaSource: function(t5) {
      t5.setSource(null);
    }, setConfig: function(t5) {
      t5 && t5.settings && (n3 = t5.settings);
    }, setDuration: function t5(a3) {
      e3 && "open" === e3.readyState && (null === a3 && isNaN(a3) || e3.duration !== a3 && (a3 !== 1 / 0 || n3.get().streaming.buffer.mediaSourceDurationInfinity || (a3 = Math.pow(2, 32)), function(t6) {
        let e4 = t6.sourceBuffers;
        for (let t7 = 0; t7 < e4.length; t7++)
          if (e4[t7].updating)
            return true;
        return false;
      }(e3) ? setTimeout(t5.bind(null, a3), 50) : (r3.info("Set MediaSource duration:" + a3), e3.duration = a3)));
    }, setSeekable: function(t5, n4) {
      e3 && "function" == typeof e3.setLiveSeekableRange && "function" == typeof e3.clearLiveSeekableRange && "open" === e3.readyState && t5 >= 0 && t5 < n4 && (e3.clearLiveSeekableRange(), e3.setLiveSeekableRange(t5, n4));
    }, signalEndOfStream: function(t5) {
      if (!t5 || "open" !== t5.readyState)
        return;
      let e4 = t5.sourceBuffers;
      for (let t6 = 0; t6 < e4.length; t6++) {
        if (e4[t6].updating)
          return;
        if (0 === e4[t6].buffered.length)
          return;
      }
      r3.info("call to mediaSource endOfStream"), t5.endOfStream();
    } }, r3 = (0, C.default)(i3).getInstance().getLogger(t4), t4;
  }
  wa.__dashjs_factory_name = "MediaSourceController";
  var Sa = N.default.getSingletonFactory(wa);
  function Ia() {
    const t4 = "urn:mpeg:dash:event:2012", e3 = 1, n3 = "urn:mpeg:dash:event:callback:2015", a2 = 1, r3 = 300, i3 = "discarded", l3 = "updated", o3 = "added", s2 = this.context, u3 = (0, A.default)(s2).getInstance();
    let d3, c3, f3, g3, m3, h3, p3, b3, y3, E3, _3;
    function T3() {
      if (!p3 || !b3)
        throw new Error("setConfig function has to be called previously");
    }
    function v3() {
      _3 = false, f3 = {}, g3 = {}, m3 = null, E3 = false, h3 = Date.now() / 1e3;
    }
    function w3() {
      try {
        if (!E3) {
          E3 = true;
          const t5 = b3.getTime();
          let e4 = t5 - h3;
          e4 = h3 > 0 ? Math.max(0, e4) : 0, S3(g3, e4, t5), S3(f3, e4, t5), I2(g3), I2(f3), h3 = t5, E3 = false;
        }
      } catch (t5) {
        E3 = false, c3.error(t5);
      }
    }
    function S3(t5, e4, n4) {
      try {
        const a3 = function(a4) {
          if (void 0 !== a4) {
            const r4 = isNaN(a4.duration) ? 0 : a4.duration;
            a4.calculatedPresentationTime <= n4 && a4.calculatedPresentationTime + e4 + r4 >= n4 ? z2(a4, D.default.EVENT_MODE_ON_START) : (M2(n4, r4 + e4, a4.calculatedPresentationTime) || function(t6) {
              try {
                const e5 = t6.eventStream.period.start + t6.eventStream.period.duration;
                return t6.calculatedPresentationTime > e5;
              } catch (t7) {
                return c3.error(t7), false;
              }
            }(a4)) && (c3.debug(`Removing event ${a4.id} from period ${a4.eventStream.period.id} as it is expired or invalid`), function(t6, e5) {
              try {
                const n5 = e5.eventStream.schemeIdUri, a5 = e5.eventStream.period.id, r5 = e5.eventStream.value, i4 = e5.id;
                t6[a5][n5] = t6[a5][n5].filter((t7) => r5 && t7.eventStream.value && t7.eventStream.value !== r5 || t7.id !== i4), 0 === t6[a5][n5].length && delete t6[a5][n5];
              } catch (t7) {
                c3.error(t7);
              }
            }(t5, a4));
          }
        };
        x2(t5, a3);
      } catch (t6) {
        c3.error(t6);
      }
    }
    function I2(t5) {
      try {
        for (const e4 in t5)
          t5.hasOwnProperty(e4) && 0 === Object.keys(t5[e4]).length && delete t5[e4];
      } catch (t6) {
        c3.error(t6);
      }
    }
    function k2(t5, e4) {
      let n4 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
      const a3 = t5.eventStream.schemeIdUri, r4 = t5.eventStream.value, s3 = t5.id;
      let u4 = i3;
      e4[a3] || (e4[a3] = []);
      const d4 = e4[a3].findIndex((t6) => (!r4 || t6.eventStream.value && t6.eventStream.value === r4) && t6.id === s3);
      if (-1 === d4)
        e4[a3].push(t5), t5.triggeredReceivedEvent = false, t5.triggeredStartEvent = false, u4 = o3;
      else if (n4) {
        const n5 = e4[a3][d4];
        t5.triggeredReceivedEvent = n5.triggeredReceivedEvent, t5.triggeredStartEvent = n5.triggeredStartEvent, e4[a3][d4] = t5, u4 = l3;
      }
      return u4;
    }
    function R2(t5) {
      try {
        if (t5.eventStream.value == e3) {
          const e4 = t5.calculatedPresentationTime;
          let n4;
          n4 = 4294967295 == t5.calculatedPresentationTime ? NaN : t5.calculatedPresentationTime + t5.duration, u3.trigger(D.default.MANIFEST_VALIDITY_CHANGED, { id: t5.id, validUntil: e4, newDuration: n4, newManifestValidAfter: NaN }, { mode: D.default.EVENT_MODE_ON_START });
        }
      } catch (t6) {
        c3.error(t6);
      }
    }
    function N2(t5) {
      try {
        const e4 = b3.getTime();
        x2(t5, function(t6) {
          const n4 = t6.eventStream && t6.eventStream.period && !isNaN(t6.eventStream.period.duration) ? t6.eventStream.period.duration : NaN, a3 = t6.eventStream && t6.eventStream.period && !isNaN(t6.eventStream.period.start) ? t6.eventStream.period.start : NaN;
          if (isNaN(n4) || isNaN(a3))
            return;
          const i4 = t6.calculatedPresentationTime;
          Math.abs(i4 - e4) < r3 && z2(t6, D.default.EVENT_MODE_ON_START);
        });
      } catch (t6) {
        c3.error(t6);
      }
    }
    function x2(t5, e4) {
      try {
        if (t5) {
          const n4 = Object.keys(t5);
          for (let a3 = 0; a3 < n4.length; a3++) {
            const r4 = t5[n4[a3]], i4 = Object.keys(r4);
            for (let t6 = 0; t6 < i4.length; t6++)
              r4[i4[t6]].forEach((t7) => {
                void 0 !== t7 && e4(t7);
              });
          }
        }
      } catch (t6) {
        c3.error(t6);
      }
    }
    function M2(t5, e4, n4) {
      try {
        return t5 - e4 > n4;
      } catch (t6) {
        return c3.error(t6), false;
      }
    }
    function z2(r4, i4) {
      try {
        const l4 = b3.getTime(), o4 = r4.id;
        if (i4 === D.default.EVENT_MODE_ON_RECEIVE && !r4.triggeredReceivedEvent)
          return c3.debug(`Received event ${o4}`), r4.triggeredReceivedEvent = true, void u3.trigger(r4.eventStream.schemeIdUri, { event: r4 }, { mode: i4 });
        r4.triggeredStartEvent || (r4.eventStream.schemeIdUri === t4 && r4.eventStream.value == e3 ? 0 === r4.duration && 0 === r4.presentationTimeDelta || (c3.debug(`Starting manifest refresh event ${o4} at ${l4}`), function() {
          try {
            T3(), p3.refreshManifest();
          } catch (t5) {
            c3.error(t5);
          }
        }()) : r4.eventStream.schemeIdUri === n3 && r4.eventStream.value == a2 ? (c3.debug(`Starting callback event ${o4} at ${l4}`), function(t5) {
          try {
            let e4 = Yt(s2).create({});
            const n4 = new zn({ method: "get", url: t5, responseType: "arraybuffer", customData: {} }), a3 = new On({ request: n4 });
            e4.load(n4, a3);
          } catch (t6) {
            c3.error(t6);
          }
        }(r4.messageData instanceof Uint8Array ? Gt.default.uint8ArrayToString(r4.messageData) : r4.messageData)) : (c3.debug(`Starting event ${o4} from period ${r4.eventStream.period.id} at ${l4}`), u3.trigger(r4.eventStream.schemeIdUri, { event: r4 }, { mode: i4 }), y3.get().streaming.events.deleteEventMessageDataTimeout > -1 && setTimeout(() => {
          delete r4.messageData, delete r4.parsedMessageData;
        }, y3.get().streaming.events.deleteEventMessageDataTimeout)), r4.triggeredStartEvent = true);
      } catch (t5) {
        c3.error(t5);
      }
    }
    return d3 = { addInlineEvents: function(t5, e4) {
      try {
        if (T3(), f3[e4] || (f3[e4] = {}), t5)
          for (let n4 = 0; n4 < t5.length; n4++) {
            let a3 = t5[n4];
            if (!M2(b3.getTime(), isNaN(a3.duration) ? 0 : a3.duration, a3.calculatedPresentationTime)) {
              let t6 = k2(a3, f3[e4], true);
              t6 === o3 ? (c3.debug(`Added inline event with id ${a3.id} from period ${e4}`), z2(a3, D.default.EVENT_MODE_ON_RECEIVE)) : t6 === l3 && c3.debug(`Updated inline event with id ${a3.id} from period ${e4}`);
            }
          }
      } catch (t6) {
        throw t6;
      }
    }, addInbandEvents: function(e4, n4) {
      try {
        T3(), g3[n4] || (g3[n4] = {});
        for (let a3 = 0; a3 < e4.length; a3++) {
          let r4 = e4[a3];
          M2(b3.getTime(), isNaN(r4.duration) ? 0 : r4.duration, r4.calculatedPresentationTime) || (k2(r4, g3[n4], false) === o3 ? (r4.eventStream.schemeIdUri === t4 && R2(r4), c3.debug(`Added inband event with id ${r4.id} from period ${n4}`), z2(r4, D.default.EVENT_MODE_ON_RECEIVE)) : c3.debug(`Inband event with scheme_id_uri ${r4.eventStream.schemeIdUri}, value ${r4.eventStream.value}, period id ${n4} and event id ${r4.id} was ignored because it has been added before.`));
        }
        w3();
      } catch (t5) {
        throw t5;
      }
    }, getInbandEvents: function() {
      return g3;
    }, getInlineEvents: function() {
      return f3;
    }, start: function() {
      try {
        T3(), c3.debug("Start Event Controller");
        const t5 = y3.get().streaming.events.eventControllerRefreshDelay;
        _3 || isNaN(t5) || (_3 = true, m3 = setInterval(w3, t5));
      } catch (t5) {
        throw t5;
      }
    }, setConfig: function(t5) {
      try {
        if (!t5)
          return;
        t5.manifestUpdater && (p3 = t5.manifestUpdater), t5.playbackController && (b3 = t5.playbackController), t5.settings && (y3 = t5.settings);
      } catch (t6) {
        throw t6;
      }
    }, reset: function() {
      (function() {
        try {
          null !== m3 && _3 && (clearInterval(m3), m3 = null, _3 = false, function() {
            try {
              N2(g3), N2(f3);
            } catch (t5) {
              c3.error(t5);
            }
          }());
        } catch (t5) {
          throw t5;
        }
      })(), v3();
    } }, c3 = (0, C.default)(s2).getInstance().getLogger(d3), v3(), d3;
  }
  Ia.__dashjs_factory_name = "EventController";
  var ka = N.default.getSingletonFactory(Ia), Aa = { LEVELS: { WARNING: "Warning", ERROR: "Error" }, EVENTS: { NO_UTC_TIMING_ELEMENT: { key: "NO_UTC_TIMING_ELEMENT", message: "No UTCTiming element is present in the manifest. You may experience playback failures. For a detailed validation use https://conformance.dashif.org/" }, NON_COMPLIANT_SMPTE_IMAGE_ATTRIBUTE: { key: "NON_COMPLIANT_SMPTE_IMAGE_ATTRIBUTE", message: 'SMPTE 2052-1:2013 defines the attribute name as "imageType" and does not define "imagetype"' }, INVALID_DVR_WINDOW: { key: "INVALID_DVR_WINDOW", message: "No valid segment found when applying a specification compliant DVR window calculation. Using SegmentTimeline entries as a fallback." } } }, Ra = n2(445), Na = n2(1923);
  function Ca() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, w3, I2, N2, x2, M2, z2, O2, P2, L2, F2, U2, j2, q2, B2, H2, Y2, K2, W2, $2, X2, Q2, Z2, tt2, et2, nt2, at2, rt2, it2;
    function lt2() {
      if (!(o3 && o3.hasOwnProperty("load") && w3 && w3.hasOwnProperty("initialize") && w3.hasOwnProperty("reset") && w3.hasOwnProperty("getClientTimeOffset") && s2 && v3 && d3 && B2))
        throw new Error(S2.default.MISSING_CONFIG_ERROR);
    }
    function ot2() {
      !function() {
        try {
          const t5 = u3.getStreamsInfo();
          if (!N2 && 0 === t5.length)
            throw new Error("There are no periods in the MPD");
          N2 && t5.length > 0 && d3.updateManifestUpdateInfo({ currentTime: B2.getTime(), buffered: q2.getBufferRange(), presentationStartTime: t5[0].start, clientTimeOffset: w3.getClientTimeOffset() }), I2.length > 0 && function(t6) {
            0 !== t6.length ? I2 = I2.filter((e4) => {
              const n5 = t6.filter((t7) => t7.id === e4.getId()).length > 0 || e4.getId() === N2.getId();
              return n5 || (a2.debug(`Removing stream ${e4.getId()}`), e4.reset(true), e4 = null), n5;
            }) : a2.warn("No periods included in the current manifest. Skipping the filtering of outdated stream objects.");
          }(t5);
          const n4 = [];
          for (let e4 = 0, a3 = t5.length; e4 < a3; e4++) {
            const a4 = t5[e4];
            n4.push(ut2(a4)), d3.addManifestUpdateStreamInfo(a4);
          }
          Promise.all(n4).then(() => new Promise((e4, n5) => {
            N2 ? e4() : dt2(t5, e4, n5);
          })).then(() => {
            e3.trigger(R.default.STREAMS_COMPOSED), Mt2();
          }).catch((t6) => {
            throw t6;
          });
        } catch (t5) {
          v3.error(new G.default(V.MANIFEST_ERROR_ID_NOSTREAMS_CODE, t5.message + " nostreamscomposed", s2.getValue())), U2 = true, ee2();
        }
      }();
    }
    function st2() {
      nt2 = true;
    }
    function ut2(e4) {
      let n4 = Zt2(e4.id);
      return n4 ? n4.updateData(e4) : (n4 = ca(t4).create({ manifestModel: s2, mediaPlayerModel: Y2, dashMetrics: d3, manifestUpdater: l3, adapter: u3, timelineConverter: w3, capabilities: r3, capabilitiesFilter: i3, errHandler: v3, baseURLController: m3, segmentBaseController: h3, textController: M2, abrController: b3, playbackController: B2, throughputController: y3, eventController: _3, mediaController: E3, protectionController: x2, videoModel: q2, streamInfo: e4, settings: et2 }), I2.push(n4), n4.initialize(), Promise.resolve());
    }
    function dt2(t5, n4, r4) {
      try {
        wt2();
        const i4 = d3.getCurrentDVRInfo().range;
        if (i4.end < i4.start) {
          at2 && clearTimeout(at2);
          const l5 = Math.min(1e3 * (-1 * (i4.end - i4.start) + 2), 2147483647);
          return a2.debug(`Waiting for ${l5} ms before playback can start`), e3.trigger(R.default.AST_IN_FUTURE, { delay: l5 }), void (at2 = setTimeout(() => {
            dt2(t5, n4, r4);
          }, l5));
        }
        et2.get().streaming.applyProducerReferenceTime && H2.calculateProducerReferenceTimeOffsets(t5);
        const l4 = t5[0].manifestInfo;
        if (et2.get().streaming.applyServiceDescription && H2.applyServiceDescription(l4), u3.getIsDynamic()) {
          const t6 = qt2(0, l4);
          B2.computeAndSetLiveDelay(t6, l4);
        }
        (et2.get().streaming.applyContentSteering && g3.shouldQueryBeforeStart() ? g3.loadSteeringData() : Promise.resolve()).then(() => {
          const t6 = s2.getValue();
          t6 && m3.update(t6), ct2(), n4();
        }).catch((t6) => {
          a2.error(t6), ct2(), n4();
        });
      } catch (t6) {
        r4(t6);
      }
    }
    function ct2() {
      const t5 = function() {
        let t6;
        if (u3.getIsDynamic()) {
          const e4 = d3.getCurrentDVRInfo();
          t6 = (e4 && e4.range ? e4.range.end : 0) - B2.getOriginalLiveDelay();
          const n5 = e4 ? e4.range : null;
          if (n5) {
            if (isNaN(rt2) && -1 === rt2.toString().indexOf("posix:")) {
              const e6 = Ft2(true);
              isNaN(e6) || (a2.info(`Start time from URI parameters: ${e6}`), t6 = Math.min(t6, e6));
            } else {
              a2.info(`Start time provided by the app: ${rt2}`);
              const e6 = Ut2(true, rt2);
              isNaN(e6) || (t6 = Math.min(t6, e6));
            }
            const e5 = et2.get().streaming.timeShiftBuffer.calcFromSegmentTimeline ? 0.1 : 0;
            t6 = Math.max(t6, n5.start + e5);
          }
        } else if (t6 = ae2()[0].getStreamInfo().start, isNaN(rt2)) {
          const e4 = Ft2(false);
          isNaN(e4) || (a2.info(`Start time from URI parameters: ${e4}`), t6 = Math.max(t6, e4));
        } else {
          a2.info(`Start time provided by the app: ${rt2}`);
          const e4 = Ut2(false, rt2);
          isNaN(e4) || (t6 = Math.max(t6, e4));
        }
        return t6;
      }();
      let n4 = vt2(t5);
      const r4 = null !== n4 ? n4 : I2[0];
      e3.trigger(R.default.INITIAL_STREAM_SWITCH, { startTime: t5 }), ft2(r4, null, t5), Q2 || (Q2 = setInterval(function() {
        !L2 && B2.getTimeToStreamEnd() <= 0 && !B2.isSeeking() && e3.trigger(R.default.PLAYBACK_ENDED, { isLast: Qt2().isLast });
      }, 200));
    }
    function ft2(t5, n4, r4) {
      try {
        if (L2 || !t5 || n4 === t5 && t5.getIsActive())
          return;
        L2 = true, e3.trigger(R.default.PERIOD_SWITCH_STARTED, { fromStreamInfo: n4 ? n4.getStreamInfo() : null, toStreamInfo: t5.getStreamInfo() });
        let i4 = false, l4 = [];
        N2 = t5, n4 && (i4 = _t2(t5, n4), l4 = ht2(n4), n4.deactivate(i4)), r4 = isNaN(r4) ? !i4 && n4 ? t5.getStreamInfo().start : NaN : r4, a2.info(`Switch to stream ${t5.getId()}. Seektime is ${r4}, current playback time is ${B2.getTime()}. Seamless period switch is set to ${i4}`), tt2 = tt2.filter((t6) => t6.getId() !== N2.getId()), B2.initialize(Qt2(), !!n4), q2.getElement() ? gt2({ seekTime: r4, keepBuffers: i4, streamActivated: false, representationsFromPreviousPeriod: l4 }) : mt2({ seekTime: r4, keepBuffers: i4 });
      } catch (t6) {
        L2 = false;
      }
    }
    function gt2(t5) {
      let e4;
      function n4() {
        if (!j2 || "open" !== j2.readyState)
          return;
        a2.debug("MediaSource is open!"), window.URL.revokeObjectURL(e4), j2.removeEventListener("sourceopen", n4), j2.removeEventListener("webkitsourceopen", n4), Lt2();
        const r5 = d3.getCurrentDVRInfo();
        c3.setSeekable(r5.range.start, r5.range.end), t5.streamActivated ? (isNaN(t5.seekTime) || B2.seek(t5.seekTime, true, true), N2.setMediaSource(j2).then(() => {
          N2.initializeForTextWithMediaSource(j2);
        })) : mt2(t5);
      }
      function r4() {
        j2.addEventListener("sourceopen", n4, false), j2.addEventListener("webkitsourceopen", n4, false), e4 = c3.attachMediaSource(q2), a2.debug("MediaSource attached to element.  Waiting on open...");
      }
      j2 ? t5.keepBuffers ? mt2(t5) : (c3.detachMediaSource(q2), r4()) : (j2 = c3.createMediaSource(), r4());
    }
    function mt2(t5) {
      const n4 = t5.representationsFromPreviousPeriod || [];
      N2.activate(j2, t5.keepBuffers ? Z2 : void 0, n4).then((n5) => {
        n5 && (Z2 = n5), isNaN(t5.seekTime) || (e3.trigger(R.default.SEEK_TARGET, { time: t5.seekTime }, { streamId: N2.getId() }), B2.seek(t5.seekTime, false, true), N2.startScheduleControllers()), L2 = false, e3.trigger(R.default.PERIOD_SWITCH_COMPLETED, { toStreamInfo: Qt2() });
      });
    }
    function ht2(t5) {
      return (t5 ? t5.getStreamProcessors() : []).map((t6) => t6.getRepresentation());
    }
    function pt2(t5) {
      const e4 = vt2(t5.seekTime);
      e4 && e4 !== N2 ? e4 && e4 !== N2 && (bt2(), function(t6, e5) {
        const n4 = t6 && !isNaN(t6.seekTime) ? t6.seekTime : NaN, a3 = N2.getStreamProcessors().map((e6) => e6.prepareOuterPeriodPlaybackSeeking(t6));
        Promise.all(a3).then(() => {
          ft2(e5, N2, n4);
        }).catch((t7) => {
          v3.error(t7);
        });
      }(t5, e4)) : (bt2(), function(t6) {
        N2.getStreamProcessors().forEach((e5) => e5.prepareInnerPeriodPlaybackSeeking(t6)), Vt2(kt.USER_REQUEST_STOP_REASON);
      }(t5)), Kt2(It.SEEK_START_REASON);
    }
    function bt2() {
      yt2();
    }
    function yt2() {
      tt2 && tt2.length > 0 && (tt2.forEach((t5) => {
        t5.deactivate(true);
      }), tt2 = []);
    }
    function Et2(t5) {
      if (t5.newMediaInfo.streamInfo.id === N2.getId()) {
        if (yt2(), et2.get().streaming.buffer.resetSourceBuffersForTrackSwitch && t5.oldMediaInfo && t5.oldMediaInfo.codec !== t5.newMediaInfo.codec) {
          const t6 = B2.getTime();
          return N2.deactivate(false), void gt2({ seekTime: t6, keepBuffers: false, streamActivated: false });
        }
        N2.prepareTrackChange(t5);
      }
    }
    function _t2(t5, e4) {
      try {
        return et2.get().streaming.buffer.reuseExistingSourceBuffers && (r3.isProtectionCompatible(e4.getStreamInfo(), t5.getStreamInfo()) || nt2) && r3.supportsChangeType() && et2.get().streaming.buffer.useChangeType;
      } catch (t6) {
        return false;
      }
    }
    function Tt2(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
      if (j2 && !t5.getPreloaded() && _t2(t5, e4)) {
        const n4 = ht2(e4);
        t5.startPreloading(j2, Z2, n4).then(() => {
          tt2.push(t5);
        });
      }
    }
    function vt2(t5) {
      if (isNaN(t5))
        return null;
      const e4 = I2.length;
      for (let n4 = 0; n4 < e4; n4++) {
        const e5 = I2[n4];
        if (t5 < parseFloat((e5.getStartTime() + e5.getDuration()).toFixed(5)))
          return e5;
      }
      return null;
    }
    function wt2() {
      try {
        const t5 = u3.getIsDynamic(), e4 = u3.getStreamsInfo()[0].manifestInfo, n4 = B2.getTime(), a3 = w3.calcTimeShiftBufferWindow(I2, t5), r4 = Ot2();
        if (void 0 === a3.start || void 0 === a3.end)
          return;
        r4 && 0 !== r4.length ? r4.forEach((t6) => {
          d3.addDVRInfo(t6.getType(), n4, e4, a3);
        }) : d3.addDVRInfo(S2.default.VIDEO, n4, e4, a3);
      } catch (t5) {
      }
    }
    function St2(t5) {
      if ($2 && P2) {
        const t6 = Y2.getInitialBufferLevel(), e4 = [S2.default.TEXT];
        (isNaN(t6) || t6 <= B2.getBufferLevel(e4) || u3.getIsDynamic() && t6 > B2.getLiveDelay()) && ($2 = false, Kt2(It.INITIAL_PLAYOUT_START_REASON), B2.play());
      }
      t5 && t5.mediaType && d3.addBufferLevel(t5.mediaType, /* @__PURE__ */ new Date(), 1e3 * t5.bufferLevel);
    }
    function At2(t5) {
      t5.streamInfo.id === N2.getId() && yt2(), Zt2(t5.streamInfo.id).prepareQualityChange(t5);
    }
    function Rt2() {
      if (u3.getIsDynamic() && 0 !== B2.getOriginalLiveDelay() && N2) {
        const t5 = u3.getStreamsInfo();
        if (t5.length > 0) {
          const e4 = t5[0].manifestInfo, n4 = qt2(0, e4);
          B2.computeAndSetLiveDelay(n4, e4);
        }
      }
    }
    function Nt2() {
      if (Ht2()) {
        const t5 = q2.getPlaybackQuality();
        t5 && d3.addDroppedFrames(t5);
      }
    }
    function Ct2() {
      a2.debug("[onPlaybackStarted]"), !$2 && W2 && Kt2(It.RESUME_FROM_PAUSE_START_REASON), $2 && ($2 = false), X2 && (X2 = false, et2.get().streaming.applyContentSteering && !g3.shouldQueryBeforeStart() && g3.loadSteeringData()), W2 = false;
    }
    function Dt2(t5) {
      a2.debug("[onPlaybackPaused]"), t5.ended || (W2 = true, Vt2(kt.USER_REQUEST_STOP_REASON));
    }
    function xt2(t5) {
      a2.debug(`Stream with id ${t5.streamInfo.id} finished buffering`);
      const e4 = t5.streamInfo.isLast;
      j2 && e4 ? (a2.info("[onStreamBufferingCompleted] calls signalEndOfStream of mediaSourceController."), c3.signalEndOfStream(j2)) : Mt2();
    }
    function Mt2() {
      if (!N2)
        return;
      if (!N2.getHasFinishedBuffering())
        return void N2.checkAndHandleCompletedBuffering();
      const t5 = function() {
        let t6 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
        try {
          const e5 = t6 || N2 || null;
          if (e5) {
            const t7 = e5.getStreamInfo();
            return I2.filter(function(e6) {
              const n4 = e6.getStreamInfo();
              return n4.start > t7.start && t7.id !== n4.id;
            });
          }
        } catch (t7) {
          return [];
        }
      }(N2);
      let e4 = 0;
      for (; e4 < t5.length; ) {
        const n4 = t5[e4], a3 = 0 === e4 ? N2 : t5[e4 - 1];
        !n4.getPreloaded() && a3.getHasFinishedBuffering() && j2 && Tt2(n4, a3), e4 += 1;
      }
    }
    function zt2() {
      Q2 && (clearInterval(Q2), Q2 = null);
    }
    function Ot2() {
      return N2 ? N2.getStreamProcessors() : [];
    }
    function Pt2(t5) {
      if (N2 && !N2.getIsEndedEventSignaled()) {
        N2.setIsEndedEventSignaled(true);
        const t6 = function() {
          const t7 = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null) || N2 || null;
          if (!t7)
            return null;
          const e4 = t7.getStreamInfo(), n4 = e4.start;
          let a3 = 0, r4 = -1, i4 = NaN;
          for (; a3 < I2.length; ) {
            const t8 = I2[a3].getStreamInfo(), l4 = t8.start - n4;
            l4 > 0 && (isNaN(i4) || l4 < i4) && e4.id !== t8.id && (i4 = l4, r4 = a3), a3 += 1;
          }
          return r4 >= 0 ? I2[r4] : null;
        }();
        t6 ? (a2.debug(`StreamController onEnded, found next stream with id ${t6.getStreamInfo().id}. Switching from ${N2.getStreamInfo().id} to ${t6.getStreamInfo().id}`), ft2(t6, N2, NaN)) : (a2.debug("StreamController no next stream found"), N2.setIsEndedEventSignaled(false)), Vt2(t6 ? kt.END_OF_PERIOD_STOP_REASON : kt.END_OF_CONTENT_STOP_REASON);
      }
      t5 && t5.isLast && (zt2(), g3.stopSteeringRequestTimer());
    }
    function Lt2(t5) {
      const e4 = t5 || Qt2().manifestInfo.duration;
      c3.setDuration(e4);
    }
    function Ft2(t5) {
      const e4 = p3.getURIFragmentData();
      if (!e4 || !e4.t)
        return NaN;
      const n4 = ae2()[0].getStreamInfo().start;
      return e4.t = e4.t.split(",")[0], jt2(t5, e4.t, n4);
    }
    function Ut2(t5, e4) {
      let n4 = 0;
      return t5 || (n4 = ae2()[0].getStreamInfo().start), jt2(t5, e4, n4);
    }
    function jt2(t5, e4, n4) {
      const a3 = u3.getRegularPeriods()[0], r4 = e4.toString(), i4 = -1 !== r4.indexOf("posix:") ? "now" === r4.substring(6) ? Date.now() / 1e3 : parseFloat(r4.substring(6)) : NaN;
      return t5 && !isNaN(i4) ? w3.calcPresentationTimeFromWallTime(new Date(1e3 * i4), a3) : parseFloat(r4) + n4;
    }
    function qt2(t5, e4) {
      try {
        let t6 = NaN;
        return e4 && !isNaN(e4.maxFragmentDuration) && isFinite(e4.maxFragmentDuration) ? e4.maxFragmentDuration : isFinite(t6) ? t6 : NaN;
      } catch (t6) {
        return NaN;
      }
    }
    function Bt2() {
      const t5 = s2.getValue();
      m3.initialize(t5);
    }
    function Gt2(t5) {
      if (t5.error)
        U2 = true, ee2();
      else {
        a2.info("Manifest updated... updating data system wide.");
        const n4 = t5.manifest;
        u3.updatePeriods(n4), i3.filterUnsupportedFeatures(n4).then(() => {
          m3.initialize(n4);
          let t6 = u3.getUTCTimingSources();
          !u3.getIsDynamic() || t6 && 0 !== t6.length || e3.trigger(D.default.CONFORMANCE_VIOLATION, { level: Aa.LEVELS.WARNING, event: Aa.EVENTS.NO_UTC_TIMING_ELEMENT });
          let a3 = u3.getIsDynamic() ? t6.concat(K2.getUTCTimingSources()) : t6;
          f3.attemptSync(a3, u3.getIsDynamic()), O2.createFinalQueryStrings(n4);
        });
      }
    }
    function Ht2() {
      return !!N2 && N2.getHasVideoTrack();
    }
    function Yt2() {
      return !!N2 && N2.getHasAudioTrack();
    }
    function Vt2(t5, e4) {
      e4 = e4 || /* @__PURE__ */ new Date(), Ot2().forEach((n4) => {
        n4.finalisePlayList(e4, t5);
      }), d3.addPlayList();
    }
    function Kt2(t5) {
      d3.createPlaylistMetrics(1e3 * B2.getTime(), t5);
    }
    function Wt2(t5) {
      x2.updateKeyStatusesMap(t5), function() {
        const t6 = Ot2();
        let a3 = false;
        t6.forEach((t7) => {
          const e4 = t7.getMediaInfo();
          !e4 || r3.areKeyIdsUsable(e4) ? e4 && r3.areKeyIdsExpired(e4) && function(t8) {
            const e5 = Zt2(t8.getStreamId());
            e5 && e5.triggerProtectionError({ error: new G.default(Na.default.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE, Na.default.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE) });
          }(t7) : (a3 = true, function(t8) {
            const e5 = t8.getAllMediaInfos().filter((t9) => r3.areKeyIdsUsable(t9));
            if (e5 && 0 !== e5.length)
              E3.setTrack(e5[0], { replaceBuffer: true });
            else {
              const e6 = t8.getType();
              v3.error(new G.default(V.NO_SUPPORTED_KEY_IDS, `Type: ${e6}: ${V.NO_SUPPORTED_KEY_IDS_MESSAGE}`));
            }
          }(t7));
        }), a3 && (0 === B2.getTime() ? e3.once(D.default.FRAGMENT_LOADING_COMPLETED, () => {
          $t2();
        }, n3) : B2.isProgressing(500).then((t7) => {
          t7 || $t2();
        }));
      }();
    }
    function $t2() {
      const t5 = B2.getTime();
      B2.seek(t5 + 0.01, false, false);
    }
    function Xt2(t5) {
      if (!t5.error)
        return;
      let e4;
      switch (t5.error.code) {
        case 1:
          e4 = "MEDIA_ERR_ABORTED";
          break;
        case 2:
          e4 = "MEDIA_ERR_NETWORK";
          break;
        case 3:
          e4 = "MEDIA_ERR_DECODE", it2.counts.mediaErrorDecode += 1;
          break;
        case 4:
          e4 = "MEDIA_ERR_SRC_NOT_SUPPORTED";
          break;
        case 5:
          e4 = "MEDIA_ERR_ENCRYPTED";
          break;
        default:
          e4 = "UNKNOWN";
      }
      "MEDIA_ERR_DECODE" === e4 && et2.get().errors.recoverAttempts.mediaErrorDecode >= it2.counts.mediaErrorDecode ? function() {
        a2.error("A MEDIA_ERR_DECODE occured: Resetting the MediaSource");
        const t6 = B2.getTime();
        N2.deactivate(false), a2.info(`MediaSource has been resetted. Resuming playback from time ${t6}`), gt2({ seekTime: t6, keepBuffers: false, streamActivated: false });
      }() : (F2 = true, t5.error.message && (e4 += " (" + t5.error.message + ")"), t5.error.msExtendedCode && (e4 += " (0x" + (t5.error.msExtendedCode >>> 0).toString(16).toUpperCase() + ")"), a2.fatal("Video Element Error: " + e4), t5.error && a2.fatal(t5.error), v3.error(new G.default(t5.error.code, e4)), ee2());
    }
    function Qt2() {
      return N2 ? N2.getStreamInfo() : null;
    }
    function Zt2(t5) {
      for (let e4 = 0, n4 = I2.length; e4 < n4; e4++)
        if (I2[e4].getId() === t5)
          return I2[e4];
      return null;
    }
    function Jt2(t5) {
      isNaN(t5.newDuration) || Lt2(t5.newDuration);
    }
    function te2() {
      I2 = [], rt2 = NaN, x2 = null, L2 = false, N2 = null, F2 = false, U2 = false, $2 = true, X2 = true, W2 = false, P2 = true, Q2 = null, nt2 = false, tt2 = [], at2 = null, it2 = { counts: { mediaErrorDecode: 0 } };
    }
    function ee2() {
      lt2(), f3.reset(), Vt2(F2 || U2 ? kt.FAILURE_STOP_REASON : kt.USER_REQUEST_STOP_REASON);
      for (let t5 = 0, e4 = I2 ? I2.length : 0; t5 < e4; t5++)
        I2[t5].reset(F2);
      e3.off(D.default.PLAYBACK_TIME_UPDATED, Nt2, n3), e3.off(D.default.PLAYBACK_SEEKING, pt2, n3), e3.off(D.default.PLAYBACK_ERROR, Xt2, n3), e3.off(D.default.PLAYBACK_STARTED, Ct2, n3), e3.off(D.default.PLAYBACK_PAUSED, Dt2, n3), e3.off(D.default.PLAYBACK_ENDED, Pt2, n3), e3.off(D.default.METRIC_ADDED, ne2, n3), e3.off(D.default.MANIFEST_VALIDITY_CHANGED, Jt2, n3), e3.off(D.default.BUFFER_LEVEL_UPDATED, St2, n3), e3.off(D.default.QUALITY_CHANGE_REQUESTED, At2, n3), e3.off(D.default.CONTENT_STEERING_REQUEST_COMPLETED, Bt2, n3), R.default.KEY_SESSION_UPDATED && e3.off(R.default.KEY_SESSION_UPDATED, st2, n3), e3.off(R.default.MANIFEST_UPDATED, Gt2, n3), e3.off(R.default.STREAM_BUFFERING_COMPLETED, xt2, n3), e3.off(R.default.TIME_SYNCHRONIZATION_COMPLETED, ot2, n3), e3.off(R.default.CURRENT_TRACK_CHANGED, Et2, n3), e3.off(R.default.SETTING_UPDATED_LIVE_DELAY, Rt2, n3), e3.off(R.default.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT, Rt2, n3), e3.off(Ra.default.INTERNAL_KEY_STATUSES_CHANGED, Wt2, n3), m3.reset(), l3.reset(), _3.reset(), d3.clearAllCurrentMetrics(), s2.setValue(null), o3.reset(), w3.reset(), T3.reset(), j2 && (c3.detachMediaSource(q2), j2 = null), q2 = null, x2 && (x2 = null, z2 = null, s2.getValue() && e3.trigger(R.default.PROTECTION_DESTROYED, { data: s2.getValue().url })), zt2(), e3.trigger(R.default.STREAM_TEARDOWN_COMPLETE), te2();
    }
    function ne2(t5) {
      if (t5.metric === k.DVR_INFO) {
        const e4 = Yt2() ? S2.default.AUDIO : S2.default.VIDEO;
        t5.mediaType === e4 && c3.setSeekable(t5.value.range.start, t5.value.range.end);
      }
    }
    function ae2() {
      return I2;
    }
    return n3 = { addDVRMetric: wt2, getActiveStream: function() {
      return N2;
    }, getActiveStreamInfo: Qt2, getActiveStreamProcessors: Ot2, getAutoPlay: function() {
      return P2;
    }, getHasMediaOrInitialisationError: function() {
      return F2 || U2;
    }, getInitialPlayback: function() {
      return $2;
    }, getIsStreamSwitchInProgress: function() {
      return L2;
    }, getStreamById: Zt2, getStreamForTime: vt2, getStreams: ae2, getTimeRelativeToStreamId: function(t5, e4) {
      let n4 = null, a3 = 0, r4 = 0, i4 = null;
      for (let l4 = 0; l4 < I2.length; l4++) {
        if (n4 = I2[l4], r4 = n4.getStartTime(), i4 = n4.getDuration(), Number.isFinite(r4) && (a3 = r4), n4.getId() === e4)
          return t5 - a3;
        Number.isFinite(i4) && (a3 += i4);
      }
      return null;
    }, hasAudioTrack: Yt2, hasVideoTrack: Ht2, initialize: function(a3, r4) {
      lt2(), P2 = a3, z2 = r4, w3.initialize(), l3 = Ea(t4).create(), l3.setConfig({ manifestModel: s2, adapter: u3, manifestLoader: o3, errHandler: v3, settings: et2, contentSteeringController: g3 }), l3.initialize(), _3 = ka(t4).getInstance(), _3.setConfig({ manifestUpdater: l3, playbackController: B2, settings: et2 }), _3.start(), O2 = Mn(t4).getInstance(), f3.setConfig({ dashMetrics: d3, baseURLController: m3, errHandler: v3, settings: et2 }), f3.initialize(), c3.setConfig({ settings: et2 }), x2 && (e3.trigger(R.default.PROTECTION_CREATED, { controller: x2 }), x2.setMediaElement(q2.getElement()), z2 && x2.setProtectionData(z2)), e3.on(D.default.PLAYBACK_TIME_UPDATED, Nt2, n3), e3.on(D.default.PLAYBACK_SEEKING, pt2, n3), e3.on(D.default.PLAYBACK_ERROR, Xt2, n3), e3.on(D.default.PLAYBACK_STARTED, Ct2, n3), e3.on(D.default.PLAYBACK_PAUSED, Dt2, n3), e3.on(D.default.PLAYBACK_ENDED, Pt2, n3), e3.on(D.default.METRIC_ADDED, ne2, n3), e3.on(D.default.MANIFEST_VALIDITY_CHANGED, Jt2, n3), e3.on(D.default.BUFFER_LEVEL_UPDATED, St2, n3), e3.on(D.default.QUALITY_CHANGE_REQUESTED, At2, n3), e3.on(D.default.CONTENT_STEERING_REQUEST_COMPLETED, Bt2, n3), R.default.KEY_SESSION_UPDATED && e3.on(R.default.KEY_SESSION_UPDATED, st2, n3), e3.on(R.default.MANIFEST_UPDATED, Gt2, n3), e3.on(R.default.STREAM_BUFFERING_COMPLETED, xt2, n3), e3.on(R.default.TIME_SYNCHRONIZATION_COMPLETED, ot2, n3), e3.on(R.default.CURRENT_TRACK_CHANGED, Et2, n3), e3.on(R.default.SETTING_UPDATED_LIVE_DELAY, Rt2, n3), e3.on(R.default.SETTING_UPDATED_LIVE_DELAY_FRAGMENT_COUNT, Rt2, n3), e3.on(Ra.default.INTERNAL_KEY_STATUSES_CHANGED, Wt2, n3);
    }, load: function(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : NaN;
      lt2(), rt2 = e4, o3.load(t5);
    }, loadWithManifest: function(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : NaN;
      !function() {
        if (!l3 || !l3.hasOwnProperty("setManifest"))
          throw new Error("initialize function has to be called previously");
      }(), rt2 = e4, l3.setManifest(t5);
    }, refreshManifest: function() {
      l3.getIsUpdating() || l3.refreshManifest();
    }, reset: ee2, setConfig: function(t5) {
      t5 && (t5.capabilities && (r3 = t5.capabilities), t5.capabilitiesFilter && (i3 = t5.capabilitiesFilter), t5.manifestLoader && (o3 = t5.manifestLoader), t5.manifestModel && (s2 = t5.manifestModel), t5.mediaPlayerModel && (Y2 = t5.mediaPlayerModel), t5.customParametersModel && (K2 = t5.customParametersModel), t5.protectionController && (x2 = t5.protectionController), t5.adapter && (u3 = t5.adapter), t5.dashMetrics && (d3 = t5.dashMetrics), t5.errHandler && (v3 = t5.errHandler), t5.timelineConverter && (w3 = t5.timelineConverter), t5.videoModel && (q2 = t5.videoModel), t5.playbackController && (B2 = t5.playbackController), t5.throughputController && (y3 = t5.throughputController), t5.serviceDescriptionController && (H2 = t5.serviceDescriptionController), t5.contentSteeringController && (g3 = t5.contentSteeringController), t5.textController && (M2 = t5.textController), t5.abrController && (b3 = t5.abrController), t5.mediaController && (E3 = t5.mediaController), t5.settings && (et2 = t5.settings), t5.baseURLController && (m3 = t5.baseURLController), t5.uriFragmentModel && (p3 = t5.uriFragmentModel), t5.segmentBaseController && (h3 = t5.segmentBaseController), t5.manifestUpdater && (l3 = t5.manifestUpdater));
    }, setProtectionData: function(t5) {
      z2 = t5, x2 && x2.setProtectionData(z2);
    }, switchToVideoElement: function(t5) {
      N2 && (B2.initialize(Qt2()), gt2({ seekTime: t5, keepBuffers: false, streamActivated: true }));
    } }, a2 = (0, C.default)(t4).getInstance().getLogger(n3), f3 = va(t4).getInstance(), c3 = Sa(t4).getInstance(), T3 = J(t4).getInstance(), te2(), n3;
  }
  Ca.__dashjs_factory_name = "StreamController";
  var Da = N.default.getSingletonFactory(Ca);
  function xa() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3, g3;
    function m3() {
      g3.debug("Stopping the gap controller"), l3 && (clearInterval(l3), l3 = null), function() {
        e3.off(R.default.WALLCLOCK_TIME_UPDATED, E3, this), e3.off(R.default.INITIAL_STREAM_SWITCH, y3, this), e3.off(R.default.PLAYBACK_SEEKING, h3, this), e3.off(R.default.BUFFER_REPLACEMENT_STARTED, p3, n3), e3.off(R.default.TRACK_CHANGE_RENDERED, b3, n3);
      }(), l3 = null, o3 = NaN, i3 = 0, c3 = null, f3 = {};
    }
    function h3() {
      c3 && (clearTimeout(c3), c3 = null);
    }
    function p3(t5) {
      try {
        if (t5.streamId !== u3.getActiveStreamInfo().id || t5.mediaType !== S2.default.VIDEO && t5.mediaType !== S2.default.AUDIO)
          return;
        t5.streamId === u3.getActiveStreamInfo().id && (f3[t5.mediaType] = true);
      } catch (t6) {
        g3.error(t6);
      }
    }
    function b3(t5) {
      t5 && t5.mediaType && (f3[t5.mediaType] = false);
    }
    function y3() {
      l3 || function() {
        try {
          l3 || (g3.debug("Starting the gap controller"), l3 = setInterval(() => {
            _3() && T3(s2.getTime());
          }, 100));
        } catch (t5) {
        }
      }();
    }
    function E3() {
      if (_3(r3.get().streaming.gaps.enableSeekFix) && (i3++, i3 >= 10)) {
        const t5 = s2.getTime();
        a2 === t5 ? T3(t5, true) : (a2 = t5, o3 = NaN), i3 = 0;
      }
    }
    function _3() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
      if (!u3.getActiveStream())
        return false;
      const e4 = Object.keys(f3).some((t6) => f3[t6]), n4 = !!t5 && function() {
        const t6 = u3.getActiveStream(), e5 = parseFloat((t6.getStartTime() + t6.getDuration()).toFixed(5));
        return s2.getTime() + r3.get().streaming.gaps.threshold >= e5;
      }();
      return !e4 && r3.get().streaming.gaps.jumpGaps && u3.getActiveStreamProcessors().length > 0 && (!s2.isSeeking() || n4) && !s2.isPaused() && !u3.getIsStreamSwitchInProgress() && !u3.getHasMediaOrInitialisationError();
    }
    function T3(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
      const n4 = r3.get().streaming.gaps.enableStallFix, a3 = r3.get().streaming.gaps.stallSeek, i4 = r3.get().streaming.gaps.smallGapLimit, l4 = r3.get().streaming.gaps.jumpLargeGaps, f4 = d3.getBufferRange();
      let m4, h4 = NaN, p4 = false;
      if (m4 = function(t6, e5) {
        try {
          if (!t6 || t6.length <= 1 && e5 > 0)
            return NaN;
          let n5 = NaN, a4 = 0;
          for (; isNaN(n5) && a4 < t6.length; ) {
            const i5 = a4 > 0 ? t6.end(a4 - 1) : 0;
            e5 < t6.start(a4) && i5 - e5 < r3.get().streaming.gaps.threshold && (n5 = a4), a4 += 1;
          }
          return n5;
        } catch (t7) {
          return null;
        }
      }(f4, t5), !isNaN(m4)) {
        const e5 = f4.start(m4), n5 = e5 - t5;
        n5 > 0 && (n5 <= i4 || l4) && (h4 = e5);
      }
      const b4 = s2.getTimeToStreamEnd();
      if (isNaN(h4) && e4 && isFinite(b4) && !isNaN(b4) && b4 < i4 && (h4 = parseFloat(s2.getStreamEndTime().toFixed(5)), p4 = true), n4 && isNaN(h4) && e4 && isNaN(m4) && function(t6, e5) {
        for (let n5 = 0, a4 = t6.length; n5 < a4; n5++)
          if (e5 >= t6.start(n5) && e5 <= t6.end(n5))
            return true;
        return false;
      }(f4, t5) && (0 === a3 ? (g3.warn("Toggle play pause to break stall"), d3.pause(), d3.play()) : (g3.warn(`Jumping ${a3}s to break stall`), h4 = t5 + a3)), h4 > 0 && o3 !== h4 && h4 > t5 && !c3) {
        const e5 = h4 - t5;
        if (p4) {
          const n5 = u3.getStreamForTime(h4), a4 = n5 && !!n5.getPreloaded();
          g3.warn(`Jumping to end of stream because of gap from ${t5} to ${h4}. Gap duration: ${e5}`), s2.seek(h4, true, a4);
        } else {
          const n5 = s2.getIsDynamic(), a4 = m4 > 0 ? f4.end(m4 - 1) : t5, r4 = n5 ? 1e3 * Math.max(0, e5 - 0.1) : 0;
          c3 = window.setTimeout(() => {
            s2.seek(h4, true, true), g3.warn(`Jumping gap occuring in period ${u3.getActiveStream().getStreamId()} starting at ${a4} and ending at ${h4}. Jumping by: ${h4 - a4}`), c3 = null;
          }, r4);
        }
        o3 = h4;
      }
    }
    return n3 = { reset: m3, setConfig: function(t5) {
      t5 && (t5.settings && (r3 = t5.settings), t5.playbackController && (s2 = t5.playbackController), t5.streamController && (u3 = t5.streamController), t5.videoModel && (d3 = t5.videoModel));
    }, initialize: function() {
      !function() {
        e3.on(R.default.WALLCLOCK_TIME_UPDATED, E3, this), e3.on(R.default.INITIAL_STREAM_SWITCH, y3, this), e3.on(R.default.PLAYBACK_SEEKING, h3, this), e3.on(R.default.BUFFER_REPLACEMENT_STARTED, p3, n3), e3.on(R.default.TRACK_CHANGE_RENDERED, b3, n3);
      }();
    } }, g3 = (0, C.default)(t4).getInstance().getLogger(n3), m3(), n3;
  }
  xa.__dashjs_factory_name = "GapController";
  var Ma = N.default.getSingletonFactory(xa);
  function za() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, o3, s2, u3, d3, c3;
    function f3() {
      a2 = false;
      const t5 = Gt.default.parseUserAgent();
      r3 = t5 && t5.browser && t5.browser.name && "safari" === t5.browser.name.toLowerCase();
    }
    function g3() {
      a2 = false;
    }
    function m3(t5) {
      if (t5.streamId !== o3.getActiveStreamInfo().id || !d3)
        return;
      const e4 = s2.getLiveDelay();
      s2.getBufferLevel() > e4 / 2 && (d3 = false);
    }
    function h3(t5) {
      t5.streamId === o3.getActiveStreamInfo().id && (d3 = t5.state === k.BUFFER_EMPTY);
    }
    function p3() {
      u3.getCatchupModeEnabled() || i3.setPlaybackRate(1);
    }
    function b3() {
      s2.getIsDynamic() && u3.getCatchupModeEnabled() && (u3.getCatchupPlaybackRates().max > 0 || u3.getCatchupPlaybackRates().min < 0) && !s2.isPaused() && !s2.isSeeking() && function() {
        try {
          if (!s2.getTime() > 0 || a2)
            return false;
          if (E3() === S2.default.LIVE_CATCHUP_MODE_LOLP) {
            return function(t5, e4) {
              try {
                return Math.abs(y3()) > 0 || t5 < e4;
              } catch (t6) {
                return false;
              }
            }(s2.getBufferLevel(), l3.get().streaming.liveCatchup.playbackBufferMin);
          }
          return function() {
            try {
              return Math.abs(y3()) > 0;
            } catch (t5) {
              return false;
            }
          }();
        } catch (t5) {
          return false;
        }
      }() && function() {
        if (!a2 && i3) {
          let t5;
          const e4 = i3.getPlaybackRate(), n4 = u3.getCatchupPlaybackRates(), o4 = s2.getBufferLevel(), f4 = y3(), g4 = u3.getCatchupMaxDrift();
          if (!isNaN(g4) && g4 > 0 && f4 > g4)
            c3.info("[CatchupController]: Low Latency catchup mechanism. Latency too high, doing a seek to live point"), a2 = true, s2.seekToCurrentLive(true, false);
          else {
            const a3 = s2.getCurrentLiveLatency(), u4 = s2.getLiveDelay();
            t5 = E3() === S2.default.LIVE_CATCHUP_MODE_LOLP ? function(t6, e5, n5, a4, r4) {
              let i4;
              if (r4 < a4) {
                const e6 = Math.abs(t6.min), n6 = 5 * (r4 - a4);
                i4 = 1 - e6 + 2 * e6 / (1 + Math.pow(Math.E, -n6)), c3.debug("[LoL+ playback control_buffer-based] bufferLevel: " + r4 + ", newRate: " + i4);
              } else {
                const a5 = 0.02;
                if (Math.abs(e5 - n5) <= a5 * n5)
                  i4 = 1;
                else {
                  const a6 = e5 - n5, r5 = a6 < 0 ? Math.abs(t6.min) : t6.max, l4 = 5 * a6;
                  i4 = 1 - r5 + 2 * r5 / (1 + Math.pow(Math.E, -l4));
                }
                c3.debug("[LoL+ playback control_latency-based] latency: " + e5 + ", newRate: " + i4);
              }
              return i4;
            }(n4, a3, u4, l3.get().streaming.liveCatchup.playbackBufferMin, o4) : function(t6, e5, n5, a4) {
              if (d3)
                return 1;
              const r4 = e5 - n5, i4 = r4 < 0 ? Math.abs(t6.min) : t6.max, l4 = 5 * r4;
              let o5 = 1 - i4 + 2 * i4 / (1 + Math.pow(Math.E, -l4));
              return s2.getPlaybackStalled() && a4 <= n5 / 2 && r4 > 0 && (o5 = 1), o5;
            }(n4, a3, u4, o4);
            const f5 = r3 ? 0.25 : 0.02 / (0.5 / n4.max);
            (t5 && Math.abs(e4 - t5) >= f5 || 1 == t5) && (c3.debug(`[CatchupController]: Setting playback rate to ${t5}`), i3.setPlaybackRate(t5));
          }
        }
      }();
    }
    function y3() {
      return s2.getCurrentLiveLatency() - s2.getLiveDelay();
    }
    function E3() {
      const t5 = l3.get().streaming.liveCatchup.playbackBufferMin;
      return l3.get().streaming.liveCatchup.mode !== S2.default.LIVE_CATCHUP_MODE_LOLP || null === t5 || isNaN(t5) ? S2.default.LIVE_CATCHUP_MODE_DEFAULT : S2.default.LIVE_CATCHUP_MODE_LOLP;
    }
    function _3() {
      u3.getCatchupPlaybackRates(true);
    }
    return n3 = { reset: function() {
      e3.off(D.default.BUFFER_LEVEL_UPDATED, m3, n3), e3.off(D.default.BUFFER_LEVEL_STATE_CHANGED, h3, n3), e3.off(D.default.PLAYBACK_PROGRESS, b3, n3), e3.off(D.default.PLAYBACK_TIME_UPDATED, b3, n3), e3.off(D.default.PLAYBACK_SEEKED, g3, n3), e3.off(R.default.SETTING_UPDATED_CATCHUP_ENABLED, p3, n3), e3.off(R.default.SETTING_UPDATED_PLAYBACK_RATE_MIN, _3, n3), e3.off(R.default.SETTING_UPDATED_PLAYBACK_RATE_MAX, _3, n3), e3.off(D.default.STREAM_INITIALIZED, _3, n3), f3(), i3.setPlaybackRate(1, true);
    }, setConfig: function(t5) {
      t5 && (t5.settings && (l3 = t5.settings), t5.videoModel && (i3 = t5.videoModel), t5.streamController && (o3 = t5.streamController), t5.playbackController && (s2 = t5.playbackController), t5.mediaPlayerModel && (u3 = t5.mediaPlayerModel));
    }, initialize: function() {
      e3.on(D.default.BUFFER_LEVEL_UPDATED, m3, n3), e3.on(D.default.BUFFER_LEVEL_STATE_CHANGED, h3, n3), e3.on(D.default.PLAYBACK_PROGRESS, b3, n3), e3.on(D.default.PLAYBACK_TIME_UPDATED, b3, n3), e3.on(D.default.PLAYBACK_SEEKED, g3, n3), e3.on(R.default.SETTING_UPDATED_CATCHUP_ENABLED, p3, n3), e3.on(R.default.SETTING_UPDATED_PLAYBACK_RATE_MIN, _3, n3), e3.on(R.default.SETTING_UPDATED_PLAYBACK_RATE_MAX, _3, n3), e3.on(D.default.STREAM_INITIALIZED, _3, n3), _3();
    } }, c3 = (0, C.default)(t4).getInstance().getLogger(n3), f3(), n3;
  }
  za.__dashjs_factory_name = "CatchupController";
  var Oa = N.default.getSingletonFactory(za);
  const Pa = [S2.default.SERVICE_DESCRIPTION_DVB_LL_SCHEME], La = "video", Fa = "audio";
  function Ua() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3;
    function l3() {
      n3 = { liveDelay: NaN, liveCatchup: { maxDrift: NaN, playbackRate: { min: NaN, max: NaN } }, minBitrate: {}, maxBitrate: {}, initialBitrate: {}, contentSteering: null, clientDataReporting: null }, a2 = [];
    }
    function o3(t5, e4, a3) {
      try {
        n3[t5][e4] = a3 / 1e3;
      } catch (t6) {
        r3.error(t6);
      }
    }
    return e3 = { getServiceDescriptionSettings: function() {
      return n3;
    }, getProducerReferenceTimeOffsets: function() {
      return a2;
    }, calculateProducerReferenceTimeOffsets: function(t5) {
      try {
        let e4 = [];
        if (t5 && t5.length > 0) {
          const n4 = [S2.default.VIDEO, S2.default.AUDIO, S2.default.TEXT], a3 = i3.getAvailabilityStartTime() / 1e3;
          t5.forEach((t6) => {
            const r4 = n4.reduce((e5, n5) => e5.concat(i3.getAllMediaInfoForType(t6, n5)), []).reduce((e5, n5) => (i3.getProducerReferenceTimes(t6, n5).forEach((r5) => {
              const l4 = i3.getVoRepresentations(n5);
              if (l4 && l4.length > 0 && l4[0].adaptation && l4[0].segmentInfoType === I.default.SEGMENT_TEMPLATE) {
                const n6 = l4[0], i4 = new Date(r5[I.default.WALL_CLOCK_TIME]).getTime() / 1e3 - (r5[I.default.PRESENTATION_TIME] / n6[I.default.TIMESCALE] - n6[I.default.PRESENTATION_TIME_OFFSET] + t6.start), o4 = a3 - i4;
                e5.push({ id: r5[I.default.ID], to: o4 });
              }
            }), e5), []);
            e4 = e4.concat(r4);
          });
        }
        a2 = e4;
      } catch (t6) {
        r3.error(t6), a2 = [];
      }
    }, applyServiceDescription: function(t5) {
      if (!t5 || !t5.serviceDescriptions)
        return;
      const e4 = t5.serviceDescriptions.filter((t6) => Pa.includes(t6.schemeIdUri)), i4 = t5.serviceDescriptions.filter((t6) => null == t6.schemeIdUri);
      let l4 = e4.length > 0 ? e4[e4.length - 1] : i4[i4.length - 1];
      l4 && (l4.latency && l4.latency.target > 0 && function(t6) {
        let e5;
        if (t6.schemeIdUri, S2.default.SERVICE_DESCRIPTION_DVB_LL_SCHEME, e5 = function(t7) {
          return { liveDelay: t7.latency.target / 1e3, maxDrift: !isNaN(t7.latency.max) && t7.latency.max > t7.latency.target ? (t7.latency.max - t7.latency.target + 500) / 1e3 : NaN, referenceId: t7.latency.referenceId || NaN };
        }(t6), a2.length > 0) {
          let { to: t7, id: i5 } = function(t8) {
            let e6, n4 = 0, r4 = a2.filter((e7) => e7.id === t8.referenceId);
            return 0 === r4.length ? (n4 = a2.length > 0 ? a2[0].to : 0, e6 = a2[0].id || NaN) : (n4 = r4[0].to || 0, e6 = r4[0].id || NaN), { to: n4, id: e6 };
          }(e5);
          n3.liveDelay = e5.liveDelay - t7, n3.liveCatchup.maxDrift = e5.maxDrift, r3.debug(`
                Found latency properties coming from service description. Applied time offset of ${t7} from ProducerReferenceTime element with id ${i5}.
                Live Delay: ${e5.liveDelay - t7}, Live catchup max drift: ${e5.maxDrift}
            `);
        } else
          n3.liveDelay = e5.liveDelay, n3.liveCatchup.maxDrift = e5.maxDrift, r3.debug(`Found latency properties coming from service description: Live Delay: ${e5.liveDelay}, Live catchup max drift: ${e5.maxDrift}`);
      }(l4), l4.playbackRate && function(t6) {
        const e5 = t6.playbackRate.min ? Math.round(1e3 * (t6.playbackRate.min - 1)) / 1e3 : NaN, a3 = t6.playbackRate.max ? Math.round(1e3 * (t6.playbackRate.max - 1)) / 1e3 : NaN;
        n3.liveCatchup.playbackRate.min = e5, n3.liveCatchup.playbackRate.max = a3, r3.debug(`Found latency properties coming from service description: Live catchup min playback rate: ${e5}`), r3.debug(`Found latency properties coming from service description: Live catchup max playback rate: ${a3}`);
      }(l4), l4.operatingQuality, l4.operatingBandwidth && function(t6) {
        if (!t6 || !t6.operatingBandwidth || !t6.operatingBandwidth.mediaType || "all" === t6.operatingBandwidth.mediaType)
          return;
        const e5 = {};
        e5.minBandwidth = t6.operatingBandwidth.min, e5.maxBandwidth = t6.operatingBandwidth.max, e5.targetBandwidth = t6.operatingBandwidth.target;
        const n4 = [];
        t6.operatingBandwidth.mediaType === La || t6.operatingBandwidth.mediaType === Fa ? n4.push(t6.operatingBandwidth.mediaType) : "any" === t6.operatingBandwidth.mediaType && (n4.push(Fa), n4.push(La)), n4.forEach((t7) => {
          isNaN(e5.minBandwidth) || o3("minBitrate", t7, e5.minBandwidth), isNaN(e5.maxBandwidth) || o3("maxBitrate", t7, e5.maxBandwidth), isNaN(e5.targetBandwidth) || o3("initialBitrate", t7, e5.targetBandwidth);
        });
      }(l4), l4.contentSteering && function(t6) {
        n3.contentSteering = t6.contentSteering;
      }(l4), l4.clientDataReporting && function(t6) {
        n3.clientDataReporting = t6.clientDataReporting;
      }(l4));
    }, reset: function() {
      l3();
    }, setConfig: function(t5) {
      t5 && t5.adapter && (i3 = t5.adapter);
    } }, r3 = (0, C.default)(t4).getInstance().getLogger(e3), l3(), e3;
  }
  Ua.__dashjs_factory_name = "ServiceDescriptionController";
  var ja = N.default.getSingletonFactory(Ua);
  function qa() {
    let t4 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, e3 = [];
    if (t4.irregular)
      return t4.irregular;
    if (t4.regular)
      return t4.regular;
    if (t4.language) {
      e3 = e3.concat(t4.language, t4.extendedLanguageSubtags || [], t4.script || [], t4.region || [], t4.variants || []);
      const n3 = t4.extensions || [];
      let a2 = -1;
      for (; ++a2 < n3.length; ) {
        const t5 = n3[a2];
        t5.singleton && t5.extensions && t5.extensions.length > 0 && e3.push(t5.singleton, ...t5.extensions);
      }
    }
    return t4.privateuse && t4.privateuse.length > 0 && e3.push("x", ...t4.privateuse), e3.join("-");
  }
  function Ba(t4) {
    const e3 = "string" == typeof t4 ? t4.charCodeAt(0) : t4;
    return e3 >= 97 && e3 <= 122 || e3 >= 65 && e3 <= 90;
  }
  function Ga(t4) {
    const e3 = "string" == typeof t4 ? t4.charCodeAt(0) : t4;
    return e3 >= 48 && e3 <= 57;
  }
  function Ha(t4) {
    return Ba(t4) || Ga(t4);
  }
  const Ya = ["art-lojban", "cel-gaulish", "no-bok", "no-nyn", "zh-guoyu", "zh-hakka", "zh-min", "zh-min-nan", "zh-xiang"], Va = { "en-gb-oed": "en-GB-oxendict", "i-ami": "ami", "i-bnn": "bnn", "i-default": null, "i-enochian": null, "i-hak": "hak", "i-klingon": "tlh", "i-lux": "lb", "i-mingo": null, "i-navajo": "nv", "i-pwn": "pwn", "i-tao": "tao", "i-tay": "tay", "i-tsu": "tsu", "sgn-be-fr": "sfb", "sgn-be-nl": "vgt", "sgn-ch-de": "sgg", "art-lojban": "jbo", "cel-gaulish": null, "no-bok": "nb", "no-nyn": "nn", "zh-guoyu": "cmn", "zh-hakka": "hak", "zh-min": null, "zh-min-nan": "nan", "zh-xiang": "hsn" }, Ka = {}.hasOwnProperty;
  function Wa(t4) {
    let e3 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
    const n3 = { language: null, extendedLanguageSubtags: [], script: null, region: null, variants: [], extensions: [], privateuse: [], irregular: null, regular: null }, a2 = String(t4), r3 = a2.toLowerCase();
    let i3 = 0;
    if (null == t4)
      throw new Error("Expected string, got `" + t4 + "`");
    if (Ka.call(Va, r3)) {
      const t5 = Va[r3];
      return void 0 !== e3.normalize && null !== e3.normalize && !e3.normalize || "string" != typeof t5 ? (n3[Ya.includes(r3) ? "regular" : "irregular"] = a2, n3) : Wa(t5);
    }
    for (; Ba(r3.charCodeAt(i3)) && i3 < 9; )
      i3++;
    if (i3 > 1 && i3 < 9) {
      if (n3.language = a2.slice(0, i3), i3 < 4) {
        let t5 = 0;
        for (; 45 === r3.charCodeAt(i3) && Ba(r3.charCodeAt(i3 + 1)) && Ba(r3.charCodeAt(i3 + 2)) && Ba(r3.charCodeAt(i3 + 3)) && !Ba(r3.charCodeAt(i3 + 4)); ) {
          if (t5 > 2)
            return l3(i3, 3, "Too many extended language subtags, expected at most 3 subtags");
          n3.extendedLanguageSubtags.push(a2.slice(i3 + 1, i3 + 4)), i3 += 4, t5++;
        }
      }
      for (45 === r3.charCodeAt(i3) && Ba(r3.charCodeAt(i3 + 1)) && Ba(r3.charCodeAt(i3 + 2)) && Ba(r3.charCodeAt(i3 + 3)) && Ba(r3.charCodeAt(i3 + 4)) && !Ba(r3.charCodeAt(i3 + 5)) && (n3.script = a2.slice(i3 + 1, i3 + 5), i3 += 5), 45 === r3.charCodeAt(i3) && (Ba(r3.charCodeAt(i3 + 1)) && Ba(r3.charCodeAt(i3 + 2)) && !Ba(r3.charCodeAt(i3 + 3)) ? (n3.region = a2.slice(i3 + 1, i3 + 3), i3 += 3) : Ga(r3.charCodeAt(i3 + 1)) && Ga(r3.charCodeAt(i3 + 2)) && Ga(r3.charCodeAt(i3 + 3)) && !Ga(r3.charCodeAt(i3 + 4)) && (n3.region = a2.slice(i3 + 1, i3 + 4), i3 += 4)); 45 === r3.charCodeAt(i3); ) {
        const t5 = i3 + 1;
        let e4 = t5;
        for (; Ha(r3.charCodeAt(e4)); ) {
          if (e4 - t5 > 7)
            return l3(e4, 1, "Too long variant, expected at most 8 characters");
          e4++;
        }
        if (!(e4 - t5 > 4 || e4 - t5 > 3 && Ga(r3.charCodeAt(t5))))
          break;
        n3.variants.push(a2.slice(t5, e4)), i3 = e4;
      }
      for (; 45 === r3.charCodeAt(i3) && 120 !== r3.charCodeAt(i3 + 1) && Ha(r3.charCodeAt(i3 + 1)) && 45 === r3.charCodeAt(i3 + 2) && Ha(r3.charCodeAt(i3 + 3)); ) {
        let t5 = i3 + 2, e4 = 0;
        for (; 45 === r3.charCodeAt(t5) && Ha(r3.charCodeAt(t5 + 1)) && Ha(r3.charCodeAt(t5 + 2)); ) {
          const n4 = t5 + 1;
          for (t5 = n4 + 2, e4++; Ha(r3.charCodeAt(t5)); ) {
            if (t5 - n4 > 7)
              return l3(t5, 2, "Too long extension, expected at most 8 characters");
            t5++;
          }
        }
        if (!e4)
          return l3(t5, 4, "Empty extension, extensions must have at least 2 characters of content");
        n3.extensions.push({ singleton: a2.charAt(i3 + 1), extensions: a2.slice(i3 + 3, t5).split("-") }), i3 = t5;
      }
    } else
      i3 = 0;
    if (0 === i3 && 120 === r3.charCodeAt(i3) || 45 === r3.charCodeAt(i3) && 120 === r3.charCodeAt(i3 + 1)) {
      i3 = i3 ? i3 + 2 : 1;
      let t5 = i3;
      for (; 45 === r3.charCodeAt(t5) && Ha(r3.charCodeAt(t5 + 1)); ) {
        const e4 = i3 + 1;
        for (t5 = e4; Ha(r3.charCodeAt(t5)); ) {
          if (t5 - e4 > 7)
            return l3(t5, 5, "Too long private-use area, expected at most 8 characters");
          t5++;
        }
        n3.privateuse.push(a2.slice(i3 + 1, t5)), i3 = t5;
      }
    }
    return i3 !== a2.length ? l3(i3, 6, "Found superfluous content after tag") : n3;
    function l3(t5, a3, r4) {
      return e3.warning && e3.warning(r4, a3, t5), e3.forgiving ? n3 : { language: null, extendedLanguageSubtags: [], script: null, region: null, variants: [], extensions: [], privateuse: [], irregular: null, regular: null };
    }
  }
  function $a(t4, e3) {
    return function(n3, a2) {
      let r3 = Qa(n3, "tag");
      const i3 = Qa(null == a2 ? "*" : a2, "range"), l3 = [];
      let o3 = -1;
      for (; ++o3 < i3.length; ) {
        const n4 = i3[o3].toLowerCase();
        if (!e3 && "*" === n4)
          continue;
        let a3 = -1;
        const s2 = [];
        for (; ++a3 < r3.length; )
          if (t4(r3[a3].toLowerCase(), n4)) {
            if (!e3)
              return r3[a3];
            l3.push(r3[a3]);
          } else
            s2.push(r3[a3]);
        r3 = s2;
      }
      return e3 ? l3 : void 0;
    };
  }
  const Xa = $a(function(t4, e3) {
    const n3 = t4.split("-"), a2 = e3.split("-");
    let r3 = 0, i3 = 0;
    if ("*" !== a2[i3] && n3[r3] !== a2[i3])
      return false;
    for (r3++, i3++; i3 < a2.length; )
      if ("*" !== a2[i3]) {
        if (!n3[r3])
          return false;
        if (n3[r3] !== a2[i3]) {
          if (1 === n3[r3].length)
            return false;
          r3++;
        } else
          r3++, i3++;
      } else
        i3++;
    return true;
  }, true);
  function Qa(t4, e3) {
    const n3 = t4 && "string" == typeof t4 ? [t4] : t4;
    if (!n3 || "object" != typeof n3 || !("length" in n3))
      throw new Error("Invalid " + e3 + " `" + n3 + "`, expected non-empty string");
    return n3;
  }
  const Za = [{ from: "in", to: "id" }, { from: "iw", to: "he" }, { from: "ji", to: "yi" }, { from: "jw", to: "jv" }, { from: "mo", to: "ro" }, { from: "scc", to: "sr" }, { from: "scr", to: "hr" }, { from: "aam", to: "aas" }, { from: "adp", to: "dz" }, { from: "aue", to: "ktz" }, { from: "ayx", to: "nun" }, { from: "bgm", to: "bcg" }, { from: "bjd", to: "drl" }, { from: "ccq", to: "rki" }, { from: "cjr", to: "mom" }, { from: "cka", to: "cmr" }, { from: "cmk", to: "xch" }, { from: "coy", to: "pij" }, { from: "cqu", to: "quh" }, { from: "drh", to: "mn" }, { from: "drw", to: "fa-af" }, { from: "gav", to: "dev" }, { from: "gfx", to: "vaj" }, { from: "ggn", to: "gvr" }, { from: "gti", to: "nyc" }, { from: "guv", to: "duz" }, { from: "hrr", to: "jal" }, { from: "ibi", to: "opa" }, { from: "ilw", to: "gal" }, { from: "jeg", to: "oyb" }, { from: "kgc", to: "tdf" }, { from: "kgh", to: "kml" }, { from: "koj", to: "kwv" }, { from: "krm", to: "bmf" }, { from: "ktr", to: "dtp" }, { from: "kvs", to: "gdj" }, { from: "kwq", to: "yam" }, { from: "kxe", to: "tvd" }, { from: "kzj", to: "dtp" }, { from: "kzt", to: "dtp" }, { from: "lii", to: "raq" }, { from: "lmm", to: "rmx" }, { from: "meg", to: "cir" }, { from: "mst", to: "mry" }, { from: "mwj", to: "vaj" }, { from: "myt", to: "mry" }, { from: "nad", to: "xny" }, { from: "ncp", to: "kdz" }, { from: "nnx", to: "ngv" }, { from: "nts", to: "pij" }, { from: "oun", to: "vaj" }, { from: "pcr", to: "adx" }, { from: "pmc", to: "huw" }, { from: "pmu", to: "phr" }, { from: "ppa", to: "bfy" }, { from: "ppr", to: "lcq" }, { from: "pry", to: "prt" }, { from: "puz", to: "pub" }, { from: "sca", to: "hle" }, { from: "skk", to: "oyb" }, { from: "tdu", to: "dtp" }, { from: "thc", to: "tpo" }, { from: "thx", to: "oyb" }, { from: "tie", to: "ras" }, { from: "tkk", to: "twm" }, { from: "tlw", to: "weo" }, { from: "tmp", to: "tyj" }, { from: "tne", to: "kak" }, { from: "tnf", to: "fa-af" }, { from: "tsf", to: "taj" }, { from: "uok", to: "ema" }, { from: "xba", to: "cax" }, { from: "xia", to: "acn" }, { from: "xkh", to: "waw" }, { from: "xsj", to: "suj" }, { from: "ybd", to: "rki" }, { from: "yma", to: "lrr" }, { from: "ymt", to: "mtm" }, { from: "yos", to: "zom" }, { from: "yuu", to: "yug" }, { from: "asd", to: "snz" }, { from: "dit", to: "dif" }, { from: "llo", to: "ngt" }, { from: "myd", to: "aog" }, { from: "nns", to: "nbr" }, { from: "agp", to: "apf" }, { from: "ais", to: "ami" }, { from: "ajt", to: "aeb" }, { from: "baz", to: "nvo" }, { from: "bhk", to: "fbl" }, { from: "bic", to: "bir" }, { from: "bjq", to: "bzc" }, { from: "bkb", to: "ebk" }, { from: "blg", to: "iba" }, { from: "btb", to: "beb" }, { from: "daf", to: "dnj" }, { from: "dap", to: "njz" }, { from: "djl", to: "dze" }, { from: "dkl", to: "aqd" }, { from: "drr", to: "kzk" }, { from: "dud", to: "uth" }, { from: "duj", to: "dwu" }, { from: "dwl", to: "dbt" }, { from: "elp", to: "amq" }, { from: "gbc", to: "wny" }, { from: "ggo", to: "esg" }, { from: "ggr", to: "gtu" }, { from: "gio", to: "aou" }, { from: "gli", to: "kzk" }, { from: "ill", to: "ilm" }, { from: "izi", to: "eza" }, { from: "jar", to: "jgk" }, { from: "kdv", to: "zkd" }, { from: "kgd", to: "ncq" }, { from: "kpp", to: "jkm" }, { from: "kxl", to: "kru" }, { from: "kzh", to: "dgl" }, { from: "lak", to: "ksp" }, { from: "leg", to: "enl" }, { from: "mgx", to: "jbk" }, { from: "mnt", to: "wnn" }, { from: "mof", to: "xnt" }, { from: "mwd", to: "dmw" }, { from: "nbf", to: "nru" }, { from: "nbx", to: "ekc" }, { from: "nln", to: "azd" }, { from: "nlr", to: "nrk" }, { from: "noo", to: "dtd" }, { from: "nxu", to: "bpp" }, { from: "pat", to: "kxr" }, { from: "rmr", to: "emx" }, { from: "sap", to: "aqt" }, { from: "sgl", to: "isk" }, { from: "smd", to: "kmb" }, { from: "snb", to: "iba" }, { from: "sul", to: "sgd" }, { from: "sum", to: "ulw" }, { from: "tgg", to: "bjp" }, { from: "thw", to: "ola" }, { from: "tid", to: "itd" }, { from: "unp", to: "wro" }, { from: "wgw", to: "wgb" }, { from: "wit", to: "nol" }, { from: "wiw", to: "nwo" }, { from: "xrq", to: "dmw" }, { from: "yen", to: "ynq" }, { from: "yiy", to: "yrm" }, { from: "zir", to: "scv" }, { from: "sgn-br", to: "bzs" }, { from: "sgn-co", to: "csn" }, { from: "sgn-de", to: "gsg" }, { from: "sgn-dk", to: "dsl" }, { from: "sgn-fr", to: "fsl" }, { from: "sgn-gb", to: "bfi" }, { from: "sgn-gr", to: "gss" }, { from: "sgn-ie", to: "isg" }, { from: "sgn-it", to: "ise" }, { from: "sgn-jp", to: "jsl" }, { from: "sgn-mx", to: "mfs" }, { from: "sgn-ni", to: "ncs" }, { from: "sgn-nl", to: "dse" }, { from: "sgn-no", to: "nsi" }, { from: "sgn-pt", to: "psr" }, { from: "sgn-se", to: "swl" }, { from: "sgn-us", to: "ase" }, { from: "sgn-za", to: "sfs" }, { from: "sgn-es", to: "ssp" }, { from: "zh-cmn", to: "zh" }, { from: "zh-cmn-hans", to: "zh-hans" }, { from: "zh-cmn-hant", to: "zh-hant" }, { from: "zh-gan", to: "gan" }, { from: "zh-wuu", to: "wuu" }, { from: "zh-yue", to: "yue" }, { from: "no-bokmal", to: "nb" }, { from: "no-nynorsk", to: "nn" }, { from: "aa-saaho", to: "ssy" }, { from: "sh", to: "sr-latn" }, { from: "cnr", to: "sr-me" }, { from: "tl", to: "fil" }, { from: "aju", to: "jrb" }, { from: "als", to: "sq" }, { from: "arb", to: "ar" }, { from: "ayr", to: "ay" }, { from: "azj", to: "az" }, { from: "bcc", to: "bal" }, { from: "bcl", to: "bik" }, { from: "bxk", to: "luy" }, { from: "bxr", to: "bua" }, { from: "cld", to: "syr" }, { from: "cmn", to: "zh" }, { from: "cwd", to: "cr" }, { from: "dgo", to: "doi" }, { from: "dhd", to: "mwr" }, { from: "dik", to: "din" }, { from: "diq", to: "zza" }, { from: "lbk", to: "bnc" }, { from: "ekk", to: "et" }, { from: "emk", to: "man" }, { from: "esk", to: "ik" }, { from: "fat", to: "ak" }, { from: "fuc", to: "ff" }, { from: "gaz", to: "om" }, { from: "gbo", to: "grb" }, { from: "gno", to: "gon" }, { from: "gug", to: "gn" }, { from: "gya", to: "gba" }, { from: "hdn", to: "hai" }, { from: "hea", to: "hmn" }, { from: "ike", to: "iu" }, { from: "kmr", to: "ku" }, { from: "knc", to: "kr" }, { from: "kng", to: "kg" }, { from: "knn", to: "kok" }, { from: "kpv", to: "kv" }, { from: "lvs", to: "lv" }, { from: "mhr", to: "chm" }, { from: "mup", to: "raj" }, { from: "khk", to: "mn" }, { from: "npi", to: "ne" }, { from: "ojg", to: "oj" }, { from: "ory", to: "or" }, { from: "pbu", to: "ps" }, { from: "pes", to: "fa" }, { from: "plt", to: "mg" }, { from: "pnb", to: "lah" }, { from: "quz", to: "qu" }, { from: "rmy", to: "rom" }, { from: "spy", to: "kln" }, { from: "src", to: "sc" }, { from: "swh", to: "sw" }, { from: "ttq", to: "tmh" }, { from: "tw", to: "ak" }, { from: "umu", to: "del" }, { from: "uzn", to: "uz" }, { from: "xpe", to: "kpe" }, { from: "xsl", to: "den" }, { from: "ydd", to: "yi" }, { from: "zai", to: "zap" }, { from: "zsm", to: "ms" }, { from: "zyb", to: "za" }, { from: "him", to: "srx" }, { from: "mnk", to: "man" }, { from: "bh", to: "bho" }, { from: "prs", to: "fa-af" }, { from: "swc", to: "sw-cd" }, { from: "aar", to: "aa" }, { from: "abk", to: "ab" }, { from: "ave", to: "ae" }, { from: "afr", to: "af" }, { from: "aka", to: "ak" }, { from: "amh", to: "am" }, { from: "arg", to: "an" }, { from: "ara", to: "ar" }, { from: "asm", to: "as" }, { from: "ava", to: "av" }, { from: "aym", to: "ay" }, { from: "aze", to: "az" }, { from: "bak", to: "ba" }, { from: "bel", to: "be" }, { from: "bul", to: "bg" }, { from: "bih", to: "bho" }, { from: "bis", to: "bi" }, { from: "bam", to: "bm" }, { from: "ben", to: "bn" }, { from: "bod", to: "bo" }, { from: "bre", to: "br" }, { from: "bos", to: "bs" }, { from: "cat", to: "ca" }, { from: "che", to: "ce" }, { from: "cha", to: "ch" }, { from: "cos", to: "co" }, { from: "cre", to: "cr" }, { from: "ces", to: "cs" }, { from: "chu", to: "cu" }, { from: "chv", to: "cv" }, { from: "cym", to: "cy" }, { from: "dan", to: "da" }, { from: "deu", to: "de" }, { from: "div", to: "dv" }, { from: "dzo", to: "dz" }, { from: "ewe", to: "ee" }, { from: "ell", to: "el" }, { from: "eng", to: "en" }, { from: "epo", to: "eo" }, { from: "spa", to: "es" }, { from: "est", to: "et" }, { from: "eus", to: "eu" }, { from: "fas", to: "fa" }, { from: "ful", to: "ff" }, { from: "fin", to: "fi" }, { from: "fij", to: "fj" }, { from: "fao", to: "fo" }, { from: "fra", to: "fr" }, { from: "fry", to: "fy" }, { from: "gle", to: "ga" }, { from: "gla", to: "gd" }, { from: "glg", to: "gl" }, { from: "grn", to: "gn" }, { from: "guj", to: "gu" }, { from: "glv", to: "gv" }, { from: "hau", to: "ha" }, { from: "heb", to: "he" }, { from: "hin", to: "hi" }, { from: "hmo", to: "ho" }, { from: "hrv", to: "hr" }, { from: "hat", to: "ht" }, { from: "hun", to: "hu" }, { from: "hye", to: "hy" }, { from: "her", to: "hz" }, { from: "ina", to: "ia" }, { from: "ind", to: "id" }, { from: "ile", to: "ie" }, { from: "ibo", to: "ig" }, { from: "iii", to: "ii" }, { from: "ipk", to: "ik" }, { from: "ido", to: "io" }, { from: "isl", to: "is" }, { from: "ita", to: "it" }, { from: "iku", to: "iu" }, { from: "jpn", to: "ja" }, { from: "jav", to: "jv" }, { from: "kat", to: "ka" }, { from: "kon", to: "kg" }, { from: "kik", to: "ki" }, { from: "kua", to: "kj" }, { from: "kaz", to: "kk" }, { from: "kal", to: "kl" }, { from: "khm", to: "km" }, { from: "kan", to: "kn" }, { from: "kor", to: "ko" }, { from: "kau", to: "kr" }, { from: "kas", to: "ks" }, { from: "kur", to: "ku" }, { from: "kom", to: "kv" }, { from: "cor", to: "kw" }, { from: "kir", to: "ky" }, { from: "lat", to: "la" }, { from: "ltz", to: "lb" }, { from: "lug", to: "lg" }, { from: "lim", to: "li" }, { from: "lin", to: "ln" }, { from: "lao", to: "lo" }, { from: "lit", to: "lt" }, { from: "lub", to: "lu" }, { from: "lav", to: "lv" }, { from: "mlg", to: "mg" }, { from: "mah", to: "mh" }, { from: "mri", to: "mi" }, { from: "mkd", to: "mk" }, { from: "mal", to: "ml" }, { from: "mon", to: "mn" }, { from: "mol", to: "ro" }, { from: "mar", to: "mr" }, { from: "msa", to: "ms" }, { from: "mlt", to: "mt" }, { from: "mya", to: "my" }, { from: "nau", to: "na" }, { from: "nob", to: "nb" }, { from: "nde", to: "nd" }, { from: "nep", to: "ne" }, { from: "ndo", to: "ng" }, { from: "nld", to: "nl" }, { from: "nno", to: "nn" }, { from: "nor", to: "no" }, { from: "nbl", to: "nr" }, { from: "nav", to: "nv" }, { from: "nya", to: "ny" }, { from: "oci", to: "oc" }, { from: "oji", to: "oj" }, { from: "orm", to: "om" }, { from: "ori", to: "or" }, { from: "oss", to: "os" }, { from: "pan", to: "pa" }, { from: "pli", to: "pi" }, { from: "pol", to: "pl" }, { from: "pus", to: "ps" }, { from: "por", to: "pt" }, { from: "que", to: "qu" }, { from: "roh", to: "rm" }, { from: "run", to: "rn" }, { from: "ron", to: "ro" }, { from: "rus", to: "ru" }, { from: "kin", to: "rw" }, { from: "san", to: "sa" }, { from: "srd", to: "sc" }, { from: "snd", to: "sd" }, { from: "sme", to: "se" }, { from: "sag", to: "sg" }, { from: "hbs", to: "sr-latn" }, { from: "sin", to: "si" }, { from: "slk", to: "sk" }, { from: "slv", to: "sl" }, { from: "smo", to: "sm" }, { from: "sna", to: "sn" }, { from: "som", to: "so" }, { from: "sqi", to: "sq" }, { from: "srp", to: "sr" }, { from: "ssw", to: "ss" }, { from: "sot", to: "st" }, { from: "sun", to: "su" }, { from: "swe", to: "sv" }, { from: "swa", to: "sw" }, { from: "tam", to: "ta" }, { from: "tel", to: "te" }, { from: "tgk", to: "tg" }, { from: "tha", to: "th" }, { from: "tir", to: "ti" }, { from: "tuk", to: "tk" }, { from: "tgl", to: "fil" }, { from: "tsn", to: "tn" }, { from: "ton", to: "to" }, { from: "tur", to: "tr" }, { from: "tso", to: "ts" }, { from: "tat", to: "tt" }, { from: "twi", to: "ak" }, { from: "tah", to: "ty" }, { from: "uig", to: "ug" }, { from: "ukr", to: "uk" }, { from: "urd", to: "ur" }, { from: "uzb", to: "uz" }, { from: "ven", to: "ve" }, { from: "vie", to: "vi" }, { from: "vol", to: "vo" }, { from: "wln", to: "wa" }, { from: "wol", to: "wo" }, { from: "xho", to: "xh" }, { from: "yid", to: "yi" }, { from: "yor", to: "yo" }, { from: "zha", to: "za" }, { from: "zho", to: "zh" }, { from: "zul", to: "zu" }, { from: "alb", to: "sq" }, { from: "arm", to: "hy" }, { from: "baq", to: "eu" }, { from: "bur", to: "my" }, { from: "chi", to: "zh" }, { from: "cze", to: "cs" }, { from: "dut", to: "nl" }, { from: "fre", to: "fr" }, { from: "geo", to: "ka" }, { from: "ger", to: "de" }, { from: "gre", to: "el" }, { from: "ice", to: "is" }, { from: "mac", to: "mk" }, { from: "mao", to: "mi" }, { from: "may", to: "ms" }, { from: "per", to: "fa" }, { from: "rum", to: "ro" }, { from: "slo", to: "sk" }, { from: "tib", to: "bo" }, { from: "wel", to: "cy" }, { from: "und-aaland", to: "und-ax" }, { from: "hy-arevmda", to: "hyw" }, { from: "und-arevmda", to: "und" }, { from: "und-arevela", to: "und" }, { from: "und-lojban", to: "und" }, { from: "und-saaho", to: "und" }, { from: "und-bokmal", to: "und" }, { from: "und-nynorsk", to: "und" }, { from: "und-hakka", to: "und" }, { from: "und-xiang", to: "und" }, { from: "und-hepburn-heploc", to: "und-alalc97" }], Ja = [{ from: { field: "script", value: "qaai" }, to: { field: "script", value: "zinh" } }, { from: { field: "region", value: "bu" }, to: { field: "region", value: "mm" } }, { from: { field: "region", value: "ct" }, to: { field: "region", value: "ki" } }, { from: { field: "region", value: "dd" }, to: { field: "region", value: "de" } }, { from: { field: "region", value: "dy" }, to: { field: "region", value: "bj" } }, { from: { field: "region", value: "fx" }, to: { field: "region", value: "fr" } }, { from: { field: "region", value: "hv" }, to: { field: "region", value: "bf" } }, { from: { field: "region", value: "jt" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "mi" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "nh" }, to: { field: "region", value: "vu" } }, { from: { field: "region", value: "nq" }, to: { field: "region", value: "aq" } }, { from: { field: "region", value: "pu" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "pz" }, to: { field: "region", value: "pa" } }, { from: { field: "region", value: "qu" }, to: { field: "region", value: "eu" } }, { from: { field: "region", value: "rh" }, to: { field: "region", value: "zw" } }, { from: { field: "region", value: "tp" }, to: { field: "region", value: "tl" } }, { from: { field: "region", value: "uk" }, to: { field: "region", value: "gb" } }, { from: { field: "region", value: "vd" }, to: { field: "region", value: "vn" } }, { from: { field: "region", value: "wk" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "yd" }, to: { field: "region", value: "ye" } }, { from: { field: "region", value: "zr" }, to: { field: "region", value: "cd" } }, { from: { field: "region", value: "230" }, to: { field: "region", value: "et" } }, { from: { field: "region", value: "280" }, to: { field: "region", value: "de" } }, { from: { field: "region", value: "736" }, to: { field: "region", value: "sd" } }, { from: { field: "region", value: "886" }, to: { field: "region", value: "ye" } }, { from: { field: "region", value: "958" }, to: { field: "region", value: "aa" } }, { from: { field: "region", value: "020" }, to: { field: "region", value: "ad" } }, { from: { field: "region", value: "784" }, to: { field: "region", value: "ae" } }, { from: { field: "region", value: "004" }, to: { field: "region", value: "af" } }, { from: { field: "region", value: "028" }, to: { field: "region", value: "ag" } }, { from: { field: "region", value: "660" }, to: { field: "region", value: "ai" } }, { from: { field: "region", value: "008" }, to: { field: "region", value: "al" } }, { from: { field: "region", value: "051" }, to: { field: "region", value: "am" } }, { from: { field: "region", value: "024" }, to: { field: "region", value: "ao" } }, { from: { field: "region", value: "010" }, to: { field: "region", value: "aq" } }, { from: { field: "region", value: "032" }, to: { field: "region", value: "ar" } }, { from: { field: "region", value: "016" }, to: { field: "region", value: "as" } }, { from: { field: "region", value: "040" }, to: { field: "region", value: "at" } }, { from: { field: "region", value: "036" }, to: { field: "region", value: "au" } }, { from: { field: "region", value: "533" }, to: { field: "region", value: "aw" } }, { from: { field: "region", value: "248" }, to: { field: "region", value: "ax" } }, { from: { field: "region", value: "031" }, to: { field: "region", value: "az" } }, { from: { field: "region", value: "070" }, to: { field: "region", value: "ba" } }, { from: { field: "region", value: "052" }, to: { field: "region", value: "bb" } }, { from: { field: "region", value: "050" }, to: { field: "region", value: "bd" } }, { from: { field: "region", value: "056" }, to: { field: "region", value: "be" } }, { from: { field: "region", value: "854" }, to: { field: "region", value: "bf" } }, { from: { field: "region", value: "100" }, to: { field: "region", value: "bg" } }, { from: { field: "region", value: "048" }, to: { field: "region", value: "bh" } }, { from: { field: "region", value: "108" }, to: { field: "region", value: "bi" } }, { from: { field: "region", value: "204" }, to: { field: "region", value: "bj" } }, { from: { field: "region", value: "652" }, to: { field: "region", value: "bl" } }, { from: { field: "region", value: "060" }, to: { field: "region", value: "bm" } }, { from: { field: "region", value: "096" }, to: { field: "region", value: "bn" } }, { from: { field: "region", value: "068" }, to: { field: "region", value: "bo" } }, { from: { field: "region", value: "535" }, to: { field: "region", value: "bq" } }, { from: { field: "region", value: "076" }, to: { field: "region", value: "br" } }, { from: { field: "region", value: "044" }, to: { field: "region", value: "bs" } }, { from: { field: "region", value: "064" }, to: { field: "region", value: "bt" } }, { from: { field: "region", value: "104" }, to: { field: "region", value: "mm" } }, { from: { field: "region", value: "074" }, to: { field: "region", value: "bv" } }, { from: { field: "region", value: "072" }, to: { field: "region", value: "bw" } }, { from: { field: "region", value: "112" }, to: { field: "region", value: "by" } }, { from: { field: "region", value: "084" }, to: { field: "region", value: "bz" } }, { from: { field: "region", value: "124" }, to: { field: "region", value: "ca" } }, { from: { field: "region", value: "166" }, to: { field: "region", value: "cc" } }, { from: { field: "region", value: "180" }, to: { field: "region", value: "cd" } }, { from: { field: "region", value: "140" }, to: { field: "region", value: "cf" } }, { from: { field: "region", value: "178" }, to: { field: "region", value: "cg" } }, { from: { field: "region", value: "756" }, to: { field: "region", value: "ch" } }, { from: { field: "region", value: "384" }, to: { field: "region", value: "ci" } }, { from: { field: "region", value: "184" }, to: { field: "region", value: "ck" } }, { from: { field: "region", value: "152" }, to: { field: "region", value: "cl" } }, { from: { field: "region", value: "120" }, to: { field: "region", value: "cm" } }, { from: { field: "region", value: "156" }, to: { field: "region", value: "cn" } }, { from: { field: "region", value: "170" }, to: { field: "region", value: "co" } }, { from: { field: "region", value: "188" }, to: { field: "region", value: "cr" } }, { from: { field: "region", value: "192" }, to: { field: "region", value: "cu" } }, { from: { field: "region", value: "132" }, to: { field: "region", value: "cv" } }, { from: { field: "region", value: "531" }, to: { field: "region", value: "cw" } }, { from: { field: "region", value: "162" }, to: { field: "region", value: "cx" } }, { from: { field: "region", value: "196" }, to: { field: "region", value: "cy" } }, { from: { field: "region", value: "203" }, to: { field: "region", value: "cz" } }, { from: { field: "region", value: "278" }, to: { field: "region", value: "de" } }, { from: { field: "region", value: "276" }, to: { field: "region", value: "de" } }, { from: { field: "region", value: "262" }, to: { field: "region", value: "dj" } }, { from: { field: "region", value: "208" }, to: { field: "region", value: "dk" } }, { from: { field: "region", value: "212" }, to: { field: "region", value: "dm" } }, { from: { field: "region", value: "214" }, to: { field: "region", value: "do" } }, { from: { field: "region", value: "012" }, to: { field: "region", value: "dz" } }, { from: { field: "region", value: "218" }, to: { field: "region", value: "ec" } }, { from: { field: "region", value: "233" }, to: { field: "region", value: "ee" } }, { from: { field: "region", value: "818" }, to: { field: "region", value: "eg" } }, { from: { field: "region", value: "732" }, to: { field: "region", value: "eh" } }, { from: { field: "region", value: "232" }, to: { field: "region", value: "er" } }, { from: { field: "region", value: "724" }, to: { field: "region", value: "es" } }, { from: { field: "region", value: "231" }, to: { field: "region", value: "et" } }, { from: { field: "region", value: "246" }, to: { field: "region", value: "fi" } }, { from: { field: "region", value: "242" }, to: { field: "region", value: "fj" } }, { from: { field: "region", value: "238" }, to: { field: "region", value: "fk" } }, { from: { field: "region", value: "583" }, to: { field: "region", value: "fm" } }, { from: { field: "region", value: "234" }, to: { field: "region", value: "fo" } }, { from: { field: "region", value: "250" }, to: { field: "region", value: "fr" } }, { from: { field: "region", value: "249" }, to: { field: "region", value: "fr" } }, { from: { field: "region", value: "266" }, to: { field: "region", value: "ga" } }, { from: { field: "region", value: "826" }, to: { field: "region", value: "gb" } }, { from: { field: "region", value: "308" }, to: { field: "region", value: "gd" } }, { from: { field: "region", value: "268" }, to: { field: "region", value: "ge" } }, { from: { field: "region", value: "254" }, to: { field: "region", value: "gf" } }, { from: { field: "region", value: "831" }, to: { field: "region", value: "gg" } }, { from: { field: "region", value: "288" }, to: { field: "region", value: "gh" } }, { from: { field: "region", value: "292" }, to: { field: "region", value: "gi" } }, { from: { field: "region", value: "304" }, to: { field: "region", value: "gl" } }, { from: { field: "region", value: "270" }, to: { field: "region", value: "gm" } }, { from: { field: "region", value: "324" }, to: { field: "region", value: "gn" } }, { from: { field: "region", value: "312" }, to: { field: "region", value: "gp" } }, { from: { field: "region", value: "226" }, to: { field: "region", value: "gq" } }, { from: { field: "region", value: "300" }, to: { field: "region", value: "gr" } }, { from: { field: "region", value: "239" }, to: { field: "region", value: "gs" } }, { from: { field: "region", value: "320" }, to: { field: "region", value: "gt" } }, { from: { field: "region", value: "316" }, to: { field: "region", value: "gu" } }, { from: { field: "region", value: "624" }, to: { field: "region", value: "gw" } }, { from: { field: "region", value: "328" }, to: { field: "region", value: "gy" } }, { from: { field: "region", value: "344" }, to: { field: "region", value: "hk" } }, { from: { field: "region", value: "334" }, to: { field: "region", value: "hm" } }, { from: { field: "region", value: "340" }, to: { field: "region", value: "hn" } }, { from: { field: "region", value: "191" }, to: { field: "region", value: "hr" } }, { from: { field: "region", value: "332" }, to: { field: "region", value: "ht" } }, { from: { field: "region", value: "348" }, to: { field: "region", value: "hu" } }, { from: { field: "region", value: "360" }, to: { field: "region", value: "id" } }, { from: { field: "region", value: "372" }, to: { field: "region", value: "ie" } }, { from: { field: "region", value: "376" }, to: { field: "region", value: "il" } }, { from: { field: "region", value: "833" }, to: { field: "region", value: "im" } }, { from: { field: "region", value: "356" }, to: { field: "region", value: "in" } }, { from: { field: "region", value: "086" }, to: { field: "region", value: "io" } }, { from: { field: "region", value: "368" }, to: { field: "region", value: "iq" } }, { from: { field: "region", value: "364" }, to: { field: "region", value: "ir" } }, { from: { field: "region", value: "352" }, to: { field: "region", value: "is" } }, { from: { field: "region", value: "380" }, to: { field: "region", value: "it" } }, { from: { field: "region", value: "832" }, to: { field: "region", value: "je" } }, { from: { field: "region", value: "388" }, to: { field: "region", value: "jm" } }, { from: { field: "region", value: "400" }, to: { field: "region", value: "jo" } }, { from: { field: "region", value: "392" }, to: { field: "region", value: "jp" } }, { from: { field: "region", value: "404" }, to: { field: "region", value: "ke" } }, { from: { field: "region", value: "417" }, to: { field: "region", value: "kg" } }, { from: { field: "region", value: "116" }, to: { field: "region", value: "kh" } }, { from: { field: "region", value: "296" }, to: { field: "region", value: "ki" } }, { from: { field: "region", value: "174" }, to: { field: "region", value: "km" } }, { from: { field: "region", value: "659" }, to: { field: "region", value: "kn" } }, { from: { field: "region", value: "408" }, to: { field: "region", value: "kp" } }, { from: { field: "region", value: "410" }, to: { field: "region", value: "kr" } }, { from: { field: "region", value: "414" }, to: { field: "region", value: "kw" } }, { from: { field: "region", value: "136" }, to: { field: "region", value: "ky" } }, { from: { field: "region", value: "398" }, to: { field: "region", value: "kz" } }, { from: { field: "region", value: "418" }, to: { field: "region", value: "la" } }, { from: { field: "region", value: "422" }, to: { field: "region", value: "lb" } }, { from: { field: "region", value: "662" }, to: { field: "region", value: "lc" } }, { from: { field: "region", value: "438" }, to: { field: "region", value: "li" } }, { from: { field: "region", value: "144" }, to: { field: "region", value: "lk" } }, { from: { field: "region", value: "430" }, to: { field: "region", value: "lr" } }, { from: { field: "region", value: "426" }, to: { field: "region", value: "ls" } }, { from: { field: "region", value: "440" }, to: { field: "region", value: "lt" } }, { from: { field: "region", value: "442" }, to: { field: "region", value: "lu" } }, { from: { field: "region", value: "428" }, to: { field: "region", value: "lv" } }, { from: { field: "region", value: "434" }, to: { field: "region", value: "ly" } }, { from: { field: "region", value: "504" }, to: { field: "region", value: "ma" } }, { from: { field: "region", value: "492" }, to: { field: "region", value: "mc" } }, { from: { field: "region", value: "498" }, to: { field: "region", value: "md" } }, { from: { field: "region", value: "499" }, to: { field: "region", value: "me" } }, { from: { field: "region", value: "663" }, to: { field: "region", value: "mf" } }, { from: { field: "region", value: "450" }, to: { field: "region", value: "mg" } }, { from: { field: "region", value: "584" }, to: { field: "region", value: "mh" } }, { from: { field: "region", value: "807" }, to: { field: "region", value: "mk" } }, { from: { field: "region", value: "466" }, to: { field: "region", value: "ml" } }, { from: { field: "region", value: "496" }, to: { field: "region", value: "mn" } }, { from: { field: "region", value: "446" }, to: { field: "region", value: "mo" } }, { from: { field: "region", value: "580" }, to: { field: "region", value: "mp" } }, { from: { field: "region", value: "474" }, to: { field: "region", value: "mq" } }, { from: { field: "region", value: "478" }, to: { field: "region", value: "mr" } }, { from: { field: "region", value: "500" }, to: { field: "region", value: "ms" } }, { from: { field: "region", value: "470" }, to: { field: "region", value: "mt" } }, { from: { field: "region", value: "480" }, to: { field: "region", value: "mu" } }, { from: { field: "region", value: "462" }, to: { field: "region", value: "mv" } }, { from: { field: "region", value: "454" }, to: { field: "region", value: "mw" } }, { from: { field: "region", value: "484" }, to: { field: "region", value: "mx" } }, { from: { field: "region", value: "458" }, to: { field: "region", value: "my" } }, { from: { field: "region", value: "508" }, to: { field: "region", value: "mz" } }, { from: { field: "region", value: "516" }, to: { field: "region", value: "na" } }, { from: { field: "region", value: "540" }, to: { field: "region", value: "nc" } }, { from: { field: "region", value: "562" }, to: { field: "region", value: "ne" } }, { from: { field: "region", value: "574" }, to: { field: "region", value: "nf" } }, { from: { field: "region", value: "566" }, to: { field: "region", value: "ng" } }, { from: { field: "region", value: "558" }, to: { field: "region", value: "ni" } }, { from: { field: "region", value: "528" }, to: { field: "region", value: "nl" } }, { from: { field: "region", value: "578" }, to: { field: "region", value: "no" } }, { from: { field: "region", value: "524" }, to: { field: "region", value: "np" } }, { from: { field: "region", value: "520" }, to: { field: "region", value: "nr" } }, { from: { field: "region", value: "570" }, to: { field: "region", value: "nu" } }, { from: { field: "region", value: "554" }, to: { field: "region", value: "nz" } }, { from: { field: "region", value: "512" }, to: { field: "region", value: "om" } }, { from: { field: "region", value: "591" }, to: { field: "region", value: "pa" } }, { from: { field: "region", value: "604" }, to: { field: "region", value: "pe" } }, { from: { field: "region", value: "258" }, to: { field: "region", value: "pf" } }, { from: { field: "region", value: "598" }, to: { field: "region", value: "pg" } }, { from: { field: "region", value: "608" }, to: { field: "region", value: "ph" } }, { from: { field: "region", value: "586" }, to: { field: "region", value: "pk" } }, { from: { field: "region", value: "616" }, to: { field: "region", value: "pl" } }, { from: { field: "region", value: "666" }, to: { field: "region", value: "pm" } }, { from: { field: "region", value: "612" }, to: { field: "region", value: "pn" } }, { from: { field: "region", value: "630" }, to: { field: "region", value: "pr" } }, { from: { field: "region", value: "275" }, to: { field: "region", value: "ps" } }, { from: { field: "region", value: "620" }, to: { field: "region", value: "pt" } }, { from: { field: "region", value: "585" }, to: { field: "region", value: "pw" } }, { from: { field: "region", value: "600" }, to: { field: "region", value: "py" } }, { from: { field: "region", value: "634" }, to: { field: "region", value: "qa" } }, { from: { field: "region", value: "959" }, to: { field: "region", value: "qm" } }, { from: { field: "region", value: "960" }, to: { field: "region", value: "qn" } }, { from: { field: "region", value: "962" }, to: { field: "region", value: "qp" } }, { from: { field: "region", value: "963" }, to: { field: "region", value: "qq" } }, { from: { field: "region", value: "964" }, to: { field: "region", value: "qr" } }, { from: { field: "region", value: "965" }, to: { field: "region", value: "qs" } }, { from: { field: "region", value: "966" }, to: { field: "region", value: "qt" } }, { from: { field: "region", value: "967" }, to: { field: "region", value: "eu" } }, { from: { field: "region", value: "968" }, to: { field: "region", value: "qv" } }, { from: { field: "region", value: "969" }, to: { field: "region", value: "qw" } }, { from: { field: "region", value: "970" }, to: { field: "region", value: "qx" } }, { from: { field: "region", value: "971" }, to: { field: "region", value: "qy" } }, { from: { field: "region", value: "972" }, to: { field: "region", value: "qz" } }, { from: { field: "region", value: "638" }, to: { field: "region", value: "re" } }, { from: { field: "region", value: "642" }, to: { field: "region", value: "ro" } }, { from: { field: "region", value: "688" }, to: { field: "region", value: "rs" } }, { from: { field: "region", value: "643" }, to: { field: "region", value: "ru" } }, { from: { field: "region", value: "646" }, to: { field: "region", value: "rw" } }, { from: { field: "region", value: "682" }, to: { field: "region", value: "sa" } }, { from: { field: "region", value: "090" }, to: { field: "region", value: "sb" } }, { from: { field: "region", value: "690" }, to: { field: "region", value: "sc" } }, { from: { field: "region", value: "729" }, to: { field: "region", value: "sd" } }, { from: { field: "region", value: "752" }, to: { field: "region", value: "se" } }, { from: { field: "region", value: "702" }, to: { field: "region", value: "sg" } }, { from: { field: "region", value: "654" }, to: { field: "region", value: "sh" } }, { from: { field: "region", value: "705" }, to: { field: "region", value: "si" } }, { from: { field: "region", value: "744" }, to: { field: "region", value: "sj" } }, { from: { field: "region", value: "703" }, to: { field: "region", value: "sk" } }, { from: { field: "region", value: "694" }, to: { field: "region", value: "sl" } }, { from: { field: "region", value: "674" }, to: { field: "region", value: "sm" } }, { from: { field: "region", value: "686" }, to: { field: "region", value: "sn" } }, { from: { field: "region", value: "706" }, to: { field: "region", value: "so" } }, { from: { field: "region", value: "740" }, to: { field: "region", value: "sr" } }, { from: { field: "region", value: "728" }, to: { field: "region", value: "ss" } }, { from: { field: "region", value: "678" }, to: { field: "region", value: "st" } }, { from: { field: "region", value: "222" }, to: { field: "region", value: "sv" } }, { from: { field: "region", value: "534" }, to: { field: "region", value: "sx" } }, { from: { field: "region", value: "760" }, to: { field: "region", value: "sy" } }, { from: { field: "region", value: "748" }, to: { field: "region", value: "sz" } }, { from: { field: "region", value: "796" }, to: { field: "region", value: "tc" } }, { from: { field: "region", value: "148" }, to: { field: "region", value: "td" } }, { from: { field: "region", value: "260" }, to: { field: "region", value: "tf" } }, { from: { field: "region", value: "768" }, to: { field: "region", value: "tg" } }, { from: { field: "region", value: "764" }, to: { field: "region", value: "th" } }, { from: { field: "region", value: "762" }, to: { field: "region", value: "tj" } }, { from: { field: "region", value: "772" }, to: { field: "region", value: "tk" } }, { from: { field: "region", value: "626" }, to: { field: "region", value: "tl" } }, { from: { field: "region", value: "795" }, to: { field: "region", value: "tm" } }, { from: { field: "region", value: "788" }, to: { field: "region", value: "tn" } }, { from: { field: "region", value: "776" }, to: { field: "region", value: "to" } }, { from: { field: "region", value: "792" }, to: { field: "region", value: "tr" } }, { from: { field: "region", value: "780" }, to: { field: "region", value: "tt" } }, { from: { field: "region", value: "798" }, to: { field: "region", value: "tv" } }, { from: { field: "region", value: "158" }, to: { field: "region", value: "tw" } }, { from: { field: "region", value: "834" }, to: { field: "region", value: "tz" } }, { from: { field: "region", value: "804" }, to: { field: "region", value: "ua" } }, { from: { field: "region", value: "800" }, to: { field: "region", value: "ug" } }, { from: { field: "region", value: "581" }, to: { field: "region", value: "um" } }, { from: { field: "region", value: "840" }, to: { field: "region", value: "us" } }, { from: { field: "region", value: "858" }, to: { field: "region", value: "uy" } }, { from: { field: "region", value: "860" }, to: { field: "region", value: "uz" } }, { from: { field: "region", value: "336" }, to: { field: "region", value: "va" } }, { from: { field: "region", value: "670" }, to: { field: "region", value: "vc" } }, { from: { field: "region", value: "862" }, to: { field: "region", value: "ve" } }, { from: { field: "region", value: "092" }, to: { field: "region", value: "vg" } }, { from: { field: "region", value: "850" }, to: { field: "region", value: "vi" } }, { from: { field: "region", value: "704" }, to: { field: "region", value: "vn" } }, { from: { field: "region", value: "548" }, to: { field: "region", value: "vu" } }, { from: { field: "region", value: "876" }, to: { field: "region", value: "wf" } }, { from: { field: "region", value: "882" }, to: { field: "region", value: "ws" } }, { from: { field: "region", value: "973" }, to: { field: "region", value: "xa" } }, { from: { field: "region", value: "974" }, to: { field: "region", value: "xb" } }, { from: { field: "region", value: "975" }, to: { field: "region", value: "xc" } }, { from: { field: "region", value: "976" }, to: { field: "region", value: "xd" } }, { from: { field: "region", value: "977" }, to: { field: "region", value: "xe" } }, { from: { field: "region", value: "978" }, to: { field: "region", value: "xf" } }, { from: { field: "region", value: "979" }, to: { field: "region", value: "xg" } }, { from: { field: "region", value: "980" }, to: { field: "region", value: "xh" } }, { from: { field: "region", value: "981" }, to: { field: "region", value: "xi" } }, { from: { field: "region", value: "982" }, to: { field: "region", value: "xj" } }, { from: { field: "region", value: "983" }, to: { field: "region", value: "xk" } }, { from: { field: "region", value: "984" }, to: { field: "region", value: "xl" } }, { from: { field: "region", value: "985" }, to: { field: "region", value: "xm" } }, { from: { field: "region", value: "986" }, to: { field: "region", value: "xn" } }, { from: { field: "region", value: "987" }, to: { field: "region", value: "xo" } }, { from: { field: "region", value: "988" }, to: { field: "region", value: "xp" } }, { from: { field: "region", value: "989" }, to: { field: "region", value: "xq" } }, { from: { field: "region", value: "990" }, to: { field: "region", value: "xr" } }, { from: { field: "region", value: "991" }, to: { field: "region", value: "xs" } }, { from: { field: "region", value: "992" }, to: { field: "region", value: "xt" } }, { from: { field: "region", value: "993" }, to: { field: "region", value: "xu" } }, { from: { field: "region", value: "994" }, to: { field: "region", value: "xv" } }, { from: { field: "region", value: "995" }, to: { field: "region", value: "xw" } }, { from: { field: "region", value: "996" }, to: { field: "region", value: "xx" } }, { from: { field: "region", value: "997" }, to: { field: "region", value: "xy" } }, { from: { field: "region", value: "998" }, to: { field: "region", value: "xz" } }, { from: { field: "region", value: "720" }, to: { field: "region", value: "ye" } }, { from: { field: "region", value: "887" }, to: { field: "region", value: "ye" } }, { from: { field: "region", value: "175" }, to: { field: "region", value: "yt" } }, { from: { field: "region", value: "710" }, to: { field: "region", value: "za" } }, { from: { field: "region", value: "894" }, to: { field: "region", value: "zm" } }, { from: { field: "region", value: "716" }, to: { field: "region", value: "zw" } }, { from: { field: "region", value: "999" }, to: { field: "region", value: "zz" } }, { from: { field: "variants", value: "polytoni" }, to: { field: "variants", value: "polyton" } }, { from: { field: "variants", value: "heploc" }, to: { field: "variants", value: "alalc97" } }], tr = { region: { 172: ["ru", "am", "az", "by", "ge", "kg", "kz", "md", "tj", "tm", "ua", "uz"], 200: ["cz", "sk"], 530: ["cw", "sx", "bq"], 532: ["cw", "sx", "bq"], 536: ["sa", "iq"], 582: ["fm", "mh", "mp", "pw"], 810: ["ru", "am", "az", "by", "ee", "ge", "kz", "kg", "lv", "lt", "md", "tj", "tm", "ua", "uz"], 830: ["je", "gg"], 890: ["rs", "me", "si", "hr", "mk", "ba"], 891: ["rs", "me"], an: ["cw", "sx", "bq"], cs: ["rs", "me"], fq: ["aq", "tf"], nt: ["sa", "iq"], pc: ["fm", "mh", "mp", "pw"], su: ["ru", "am", "az", "by", "ee", "ge", "kz", "kg", "lv", "lt", "md", "tj", "tm", "ua", "uz"], yu: ["rs", "me"], "062": ["034", "143"], ant: ["cw", "sx", "bq"], scg: ["rs", "me"], ntz: ["sa", "iq"], sun: ["ru", "am", "az", "by", "ee", "ge", "kz", "kg", "lv", "lt", "md", "tj", "tm", "ua", "uz"], yug: ["rs", "me"] } }, er = { aa: "aa-latn-et", aaa: "aaa-latn-ng", aab: "aab-latn-ng", aac: "aac-latn-pg", aad: "aad-latn-pg", aae: "aae-latn-it", "aae-grek": "aae-grek-it", aaf: "aaf-mlym-in", "aaf-arab": "aaf-arab-in", aag: "aag-latn-pg", aah: "aah-latn-pg", aai: "aai-latn-zz", aak: "aak-latn-zz", aal: "aal-latn-cm", aan: "aan-latn-br", aao: "aao-arab-dz", aap: "aap-latn-br", aaq: "aaq-latn-us", aas: "aas-latn-tz", aat: "aat-grek-gr", aau: "aau-latn-zz", aaw: "aaw-latn-pg", aax: "aax-latn-id", aaz: "aaz-latn-id", ab: "ab-cyrl-ge", aba: "aba-latn-ci", abb: "abb-latn-cm", abc: "abc-latn-ph", abd: "abd-latn-ph", abe: "abe-latn-ca", abf: "abf-latn-my", abg: "abg-latn-pg", abh: "abh-arab-tj", abi: "abi-latn-zz", abl: "abl-rjng-id", "abl-latn": "abl-latn-id", abm: "abm-latn-ng", abn: "abn-latn-ng", abo: "abo-latn-ng", abp: "abp-latn-ph", abq: "abq-cyrl-zz", abr: "abr-latn-gh", abs: "abs-latn-id", abt: "abt-latn-zz", abu: "abu-latn-ci", abv: "abv-arab-bh", abw: "abw-latn-pg", abx: "abx-latn-ph", aby: "aby-latn-zz", abz: "abz-latn-id", aca: "aca-latn-co", acb: "acb-latn-ng", acd: "acd-latn-zz", ace: "ace-latn-id", acf: "acf-latn-lc", ach: "ach-latn-ug", acm: "acm-arab-iq", acn: "acn-latn-cn", acp: "acp-latn-ng", acq: "acq-arab-ye", acr: "acr-latn-gt", acs: "acs-latn-br", act: "act-latn-nl", acu: "acu-latn-ec", acv: "acv-latn-us", acw: "acw-arab-sa", acx: "acx-arab-om", acy: "acy-latn-cy", "acy-arab": "acy-arab-cy", "acy-grek": "acy-grek-cy", acz: "acz-latn-sd", ada: "ada-latn-gh", adb: "adb-latn-tl", add: "add-latn-cm", ade: "ade-latn-zz", adf: "adf-arab-om", adg: "adg-latn-au", adh: "adh-latn-ug", adi: "adi-latn-in", "adi-tibt": "adi-tibt-cn", adj: "adj-latn-zz", adl: "adl-latn-in", adn: "adn-latn-id", ado: "ado-latn-pg", adp: "adp-tibt-bt", adq: "adq-latn-gh", adr: "adr-latn-id", adt: "adt-latn-au", adu: "adu-latn-ng", adw: "adw-latn-br", adx: "adx-tibt-cn", ady: "ady-cyrl-ru", adz: "adz-latn-zz", ae: "ae-avst-ir", aea: "aea-latn-au", aeb: "aeb-arab-tn", aec: "aec-arab-eg", aee: "aee-arab-af", aek: "aek-latn-nc", ael: "ael-latn-cm", aem: "aem-latn-vn", aeq: "aeq-arab-pk", aer: "aer-latn-au", aeu: "aeu-latn-cn", aew: "aew-latn-pg", aey: "aey-latn-zz", aez: "aez-latn-pg", af: "af-latn-za", afb: "afb-arab-kw", afd: "afd-latn-pg", afe: "afe-latn-ng", afh: "afh-latn-gh", afi: "afi-latn-pg", afk: "afk-latn-pg", afn: "afn-latn-ng", afo: "afo-latn-ng", afp: "afp-latn-pg", afs: "afs-latn-mx", afu: "afu-latn-gh", afz: "afz-latn-id", aga: "aga-latn-pe", agb: "agb-latn-ng", agc: "agc-latn-zz", agd: "agd-latn-zz", age: "age-latn-pg", agf: "agf-latn-id", agg: "agg-latn-zz", agh: "agh-latn-cd", agi: "agi-deva-in", agj: "agj-ethi-et", "agj-arab": "agj-arab-et", agk: "agk-latn-ph", agl: "agl-latn-pg", agm: "agm-latn-zz", agn: "agn-latn-ph", ago: "ago-latn-zz", agq: "agq-latn-cm", agr: "agr-latn-pe", ags: "ags-latn-cm", agt: "agt-latn-ph", agu: "agu-latn-gt", agv: "agv-latn-ph", agw: "agw-latn-sb", agx: "agx-cyrl-ru", agy: "agy-latn-ph", agz: "agz-latn-ph", aha: "aha-latn-zz", ahb: "ahb-latn-vu", ahg: "ahg-ethi-et", ahh: "ahh-latn-id", ahi: "ahi-latn-ci", ahk: "ahk-latn-mm", "ahk-mymr": "ahk-mymr-mm", "ahk-th": "ahk-latn-th", "ahk-thai": "ahk-thai-th", ahl: "ahl-latn-zz", ahm: "ahm-latn-ci", ahn: "ahn-latn-ng", aho: "aho-ahom-in", ahp: "ahp-latn-ci", ahr: "ahr-deva-in", ahs: "ahs-latn-ng", aht: "aht-latn-us", aia: "aia-latn-sb", aib: "aib-arab-cn", aic: "aic-latn-pg", aid: "aid-latn-au", aie: "aie-latn-pg", aif: "aif-latn-pg", aig: "aig-latn-ag", aij: "aij-hebr-il", aik: "aik-latn-ng", ail: "ail-latn-pg", aim: "aim-latn-in", ain: "ain-kana-jp", "ain-latn": "ain-latn-jp", aio: "aio-mymr-in", aip: "aip-latn-id", aiq: "aiq-arab-af", air: "air-latn-id", ait: "ait-latn-br", aiw: "aiw-latn-et", "aiw-arab": "aiw-arab-et", "aiw-ethi": "aiw-ethi-et", aix: "aix-latn-pg", aiy: "aiy-latn-cf", aja: "aja-latn-ss", ajg: "ajg-latn-zz", aji: "aji-latn-nc", ajn: "ajn-latn-au", ajp: "ajp-arab-jo", ajt: "ajt-arab-tn", ajw: "ajw-latn-ng", ajz: "ajz-latn-in", ak: "ak-latn-gh", akb: "akb-latn-id", "akb-batk": "akb-batk-id", akc: "akc-latn-id", akd: "akd-latn-ng", ake: "ake-latn-gy", akf: "akf-latn-ng", akg: "akg-latn-id", akh: "akh-latn-pg", aki: "aki-latn-pg", akk: "akk-xsux-iq", akl: "akl-latn-ph", ako: "ako-latn-sr", akp: "akp-latn-gh", akq: "akq-latn-pg", akr: "akr-latn-vu", aks: "aks-latn-tg", akt: "akt-latn-pg", aku: "aku-latn-cm", akv: "akv-cyrl-ru", akw: "akw-latn-cg", akz: "akz-latn-us", ala: "ala-latn-zz", alc: "alc-latn-cl", ald: "ald-latn-ci", ale: "ale-latn-us", alf: "alf-latn-ng", alh: "alh-latn-au", ali: "ali-latn-zz", alj: "alj-latn-ph", alk: "alk-laoo-la", all: "all-mlym-in", alm: "alm-latn-vu", aln: "aln-latn-xk", alo: "alo-latn-id", alp: "alp-latn-id", alq: "alq-latn-ca", alr: "alr-cyrl-ru", alt: "alt-cyrl-ru", alu: "alu-latn-sb", alw: "alw-ethi-et", alx: "alx-latn-pg", aly: "aly-latn-au", alz: "alz-latn-cd", am: "am-ethi-et", ama: "ama-latn-br", amb: "amb-latn-ng", amc: "amc-latn-pe", ame: "ame-latn-pe", amf: "amf-latn-et", "amf-ethi": "amf-ethi-et", amg: "amg-latn-au", ami: "ami-latn-tw", amj: "amj-latn-td", amk: "amk-latn-id", amm: "amm-latn-zz", amn: "amn-latn-zz", amo: "amo-latn-ng", amp: "amp-latn-zz", amq: "amq-latn-id", amr: "amr-latn-pe", ams: "ams-jpan-jp", amt: "amt-latn-pg", amu: "amu-latn-mx", amv: "amv-latn-id", amw: "amw-syrc-sy", "amw-arab": "amw-arab-sy", "amw-armi": "amw-armi-sy", "amw-latn": "amw-latn-sy", amx: "amx-latn-au", amy: "amy-latn-au", amz: "amz-latn-au", an: "an-latn-es", ana: "ana-latn-co", anb: "anb-latn-pe", anc: "anc-latn-zz", and: "and-latn-id", ane: "ane-latn-nc", anf: "anf-latn-gh", ang: "ang-latn-gb", anh: "anh-latn-pg", ani: "ani-cyrl-ru", anj: "anj-latn-pg", ank: "ank-latn-zz", anl: "anl-latn-mm", anm: "anm-latn-in", ann: "ann-latn-ng", ano: "ano-latn-co", anp: "anp-deva-in", anr: "anr-deva-in", ans: "ans-latn-co", ant: "ant-latn-au", anu: "anu-ethi-et", "anu-arab": "anu-arab-ss", "anu-latn": "anu-latn-ss", anv: "anv-latn-cm", anw: "anw-latn-ng", anx: "anx-latn-pg", any: "any-latn-zz", anz: "anz-latn-pg", aoa: "aoa-latn-st", aob: "aob-latn-pg", aoc: "aoc-latn-ve", aod: "aod-latn-pg", aoe: "aoe-latn-pg", aof: "aof-latn-pg", aog: "aog-latn-pg", aoi: "aoi-latn-au", aoj: "aoj-latn-zz", aok: "aok-latn-nc", aol: "aol-latn-id", aom: "aom-latn-zz", aon: "aon-latn-pg", aor: "aor-latn-vu", aos: "aos-latn-id", aot: "aot-beng-bd", "aot-latn": "aot-latn-in", aox: "aox-latn-gy", aoz: "aoz-latn-id", apb: "apb-latn-sb", apc: "apc-arab-sy", apd: "apd-arab-tg", ape: "ape-latn-zz", apf: "apf-latn-ph", apg: "apg-latn-id", aph: "aph-deva-np", api: "api-latn-br", apj: "apj-latn-us", apk: "apk-latn-us", apl: "apl-latn-us", apm: "apm-latn-us", apn: "apn-latn-br", apo: "apo-latn-pg", app: "app-latn-vu", apr: "apr-latn-zz", aps: "aps-latn-zz", apt: "apt-latn-in", apu: "apu-latn-br", apv: "apv-latn-br", apw: "apw-latn-us", apx: "apx-latn-id", apy: "apy-latn-br", apz: "apz-latn-zz", aqc: "aqc-cyrl-ru", aqd: "aqd-latn-ml", aqg: "aqg-latn-ng", aqk: "aqk-latn-ng", aqm: "aqm-latn-id", aqn: "aqn-latn-ph", aqr: "aqr-latn-nc", aqt: "aqt-latn-py", aqz: "aqz-latn-br", ar: "ar-arab-eg", arc: "arc-armi-ir", "arc-nbat": "arc-nbat-jo", "arc-palm": "arc-palm-sy", ard: "ard-latn-au", are: "are-latn-au", arh: "arh-latn-zz", ari: "ari-latn-us", arj: "arj-latn-br", ark: "ark-latn-br", arl: "arl-latn-pe", arn: "arn-latn-cl", aro: "aro-latn-bo", arp: "arp-latn-us", arq: "arq-arab-dz", arr: "arr-latn-br", ars: "ars-arab-sa", aru: "aru-latn-br", arw: "arw-latn-sr", arx: "arx-latn-br", ary: "ary-arab-ma", arz: "arz-arab-eg", as: "as-beng-in", asa: "asa-latn-tz", asb: "asb-latn-ca", asc: "asc-latn-id", ase: "ase-sgnw-us", asg: "asg-latn-zz", ash: "ash-latn-pe", asi: "asi-latn-id", asj: "asj-latn-cm", ask: "ask-arab-af", asl: "asl-latn-id", asn: "asn-latn-br", aso: "aso-latn-zz", ass: "ass-latn-cm", ast: "ast-latn-es", asu: "asu-latn-br", asv: "asv-latn-cd", asx: "asx-latn-pg", asy: "asy-latn-id", asz: "asz-latn-id", ata: "ata-latn-zz", atb: "atb-latn-cn", "atb-lisu": "atb-lisu-cn", atc: "atc-latn-pe", atd: "atd-latn-ph", ate: "ate-latn-pg", atg: "atg-latn-zz", ati: "ati-latn-ci", atj: "atj-latn-ca", atk: "atk-latn-ph", atl: "atl-latn-ph", atm: "atm-latn-ph", atn: "atn-arab-ir", ato: "ato-latn-cm", atp: "atp-latn-ph", atq: "atq-latn-id", atr: "atr-latn-br", ats: "ats-latn-us", att: "att-latn-ph", atu: "atu-latn-ss", atv: "atv-cyrl-ru", atw: "atw-latn-us", atx: "atx-latn-br", aty: "aty-latn-vu", atz: "atz-latn-ph", aua: "aua-latn-sb", auc: "auc-latn-ec", aud: "aud-latn-sb", aug: "aug-latn-bj", auh: "auh-latn-zm", aui: "aui-latn-pg", auj: "auj-arab-ly", "auj-latn": "auj-latn-ly", "auj-tfng": "auj-tfng-ly", auk: "auk-latn-pg", aul: "aul-latn-vu", aum: "aum-latn-ng", aun: "aun-latn-pg", auo: "auo-latn-ng", aup: "aup-latn-pg", auq: "auq-latn-id", aur: "aur-latn-pg", aut: "aut-latn-pf", auu: "auu-latn-id", auw: "auw-latn-id", auy: "auy-latn-zz", auz: "auz-arab-uz", av: "av-cyrl-ru", avb: "avb-latn-pg", avd: "avd-arab-ir", avi: "avi-latn-ci", avk: "avk-latn-001", avl: "avl-arab-zz", avm: "avm-latn-au", avn: "avn-latn-zz", avo: "avo-latn-br", avs: "avs-latn-pe", avt: "avt-latn-zz", avu: "avu-latn-zz", avv: "avv-latn-br", awa: "awa-deva-in", awb: "awb-latn-zz", awc: "awc-latn-ng", awe: "awe-latn-br", awg: "awg-latn-au", awh: "awh-latn-id", awi: "awi-latn-pg", awk: "awk-latn-au", awm: "awm-latn-pg", awn: "awn-ethi-et", awo: "awo-latn-zz", awr: "awr-latn-id", aws: "aws-latn-id", awt: "awt-latn-br", awu: "awu-latn-id", awv: "awv-latn-id", aww: "aww-latn-pg", awx: "awx-latn-zz", awy: "awy-latn-id", axb: "axb-latn-ar", axe: "axe-latn-au", axg: "axg-latn-br", axk: "axk-latn-cf", axl: "axl-latn-au", axm: "axm-armn-am", axx: "axx-latn-nc", ay: "ay-latn-bo", aya: "aya-latn-pg", ayb: "ayb-latn-zz", ayc: "ayc-latn-pe", ayd: "ayd-latn-au", aye: "aye-latn-ng", ayg: "ayg-latn-tg", ayh: "ayh-arab-ye", ayi: "ayi-latn-ng", ayk: "ayk-latn-ng", ayl: "ayl-arab-ly", ayn: "ayn-arab-ye", ayo: "ayo-latn-py", ayp: "ayp-arab-iq", ayq: "ayq-latn-pg", ays: "ays-latn-ph", ayt: "ayt-latn-ph", ayu: "ayu-latn-ng", ayz: "ayz-latn-id", az: "az-latn-az", "az-arab": "az-arab-ir", "az-iq": "az-arab-iq", "az-ir": "az-arab-ir", "az-ru": "az-cyrl-ru", azb: "azb-arab-ir", "azb-cyrl": "azb-cyrl-az", "azb-latn": "azb-latn-az", azd: "azd-latn-mx", azg: "azg-latn-mx", azm: "azm-latn-mx", azn: "azn-latn-mx", azo: "azo-latn-cm", azt: "azt-latn-ph", azz: "azz-latn-mx", ba: "ba-cyrl-ru", baa: "baa-latn-sb", bab: "bab-latn-gw", bac: "bac-latn-id", bae: "bae-latn-ve", baf: "baf-latn-cm", bag: "bag-latn-cm", bah: "bah-latn-bs", baj: "baj-latn-id", bal: "bal-arab-pk", ban: "ban-latn-id", bao: "bao-latn-co", bap: "bap-deva-np", bar: "bar-latn-at", bas: "bas-latn-cm", bau: "bau-latn-ng", bav: "bav-latn-zz", baw: "baw-latn-cm", bax: "bax-bamu-cm", bay: "bay-latn-id", bba: "bba-latn-zz", bbb: "bbb-latn-zz", bbc: "bbc-latn-id", bbd: "bbd-latn-zz", bbe: "bbe-latn-cd", bbf: "bbf-latn-pg", bbg: "bbg-latn-ga", bbi: "bbi-latn-cm", bbj: "bbj-latn-cm", bbk: "bbk-latn-cm", bbl: "bbl-geor-ge", bbm: "bbm-latn-cd", bbn: "bbn-latn-pg", bbo: "bbo-latn-bf", bbp: "bbp-latn-zz", bbq: "bbq-latn-cm", bbr: "bbr-latn-zz", bbs: "bbs-latn-ng", bbt: "bbt-latn-ng", bbu: "bbu-latn-ng", bbv: "bbv-latn-pg", bbw: "bbw-latn-cm", bbx: "bbx-latn-cm", bby: "bby-latn-cm", bca: "bca-latn-cn", "bca-hani": "bca-hani-cn", bcb: "bcb-latn-sn", bcd: "bcd-latn-id", bce: "bce-latn-cm", bcf: "bcf-latn-zz", bcg: "bcg-latn-gn", bch: "bch-latn-zz", bci: "bci-latn-ci", bcj: "bcj-latn-au", bck: "bck-latn-au", bcm: "bcm-latn-zz", bcn: "bcn-latn-zz", bco: "bco-latn-zz", bcp: "bcp-latn-cd", bcq: "bcq-ethi-zz", bcr: "bcr-latn-ca", bcs: "bcs-latn-ng", bct: "bct-latn-cd", bcu: "bcu-latn-zz", bcv: "bcv-latn-ng", bcw: "bcw-latn-cm", bcy: "bcy-latn-ng", bcz: "bcz-latn-sn", bda: "bda-latn-sn", bdb: "bdb-latn-id", bdc: "bdc-latn-co", bdd: "bdd-latn-zz", bde: "bde-latn-ng", bdf: "bdf-latn-pg", bdg: "bdg-latn-my", bdh: "bdh-latn-ss", bdi: "bdi-latn-sd", bdj: "bdj-latn-ss", bdk: "bdk-latn-az", bdl: "bdl-latn-id", bdm: "bdm-latn-td", bdn: "bdn-latn-cm", bdo: "bdo-latn-td", bdp: "bdp-latn-tz", bdq: "bdq-latn-vn", bdr: "bdr-latn-my", bds: "bds-latn-tz", bdt: "bdt-latn-cf", bdu: "bdu-latn-cm", bdv: "bdv-orya-in", bdw: "bdw-latn-id", bdx: "bdx-latn-id", bdy: "bdy-latn-au", bdz: "bdz-arab-pk", be: "be-cyrl-by", bea: "bea-latn-ca", "bea-cans": "bea-cans-ca", beb: "beb-latn-cm", bec: "bec-latn-cm", bed: "bed-latn-id", bee: "bee-deva-in", bef: "bef-latn-zz", beh: "beh-latn-zz", bei: "bei-latn-id", bej: "bej-arab-sd", bek: "bek-latn-pg", bem: "bem-latn-zm", beo: "beo-latn-pg", bep: "bep-latn-id", beq: "beq-latn-cg", bes: "bes-latn-td", bet: "bet-latn-zz", beu: "beu-latn-id", bev: "bev-latn-ci", bew: "bew-latn-id", bex: "bex-latn-zz", bey: "bey-latn-pg", bez: "bez-latn-tz", bfa: "bfa-latn-ss", "bfa-arab": "bfa-arab-ss", bfb: "bfb-deva-in", bfc: "bfc-latn-cn", bfd: "bfd-latn-cm", bfe: "bfe-latn-id", bff: "bff-latn-cf", bfg: "bfg-latn-id", bfh: "bfh-latn-pg", bfj: "bfj-latn-cm", bfl: "bfl-latn-cf", bfm: "bfm-latn-cm", bfn: "bfn-latn-tl", bfo: "bfo-latn-bf", bfp: "bfp-latn-cm", bfq: "bfq-taml-in", bfs: "bfs-latn-cn", "bfs-hani": "bfs-hani-cn", bft: "bft-arab-pk", bfu: "bfu-tibt-in", "bfu-takr": "bfu-takr-in", bfw: "bfw-orya-in", bfx: "bfx-latn-ph", bfy: "bfy-deva-in", bfz: "bfz-deva-in", bg: "bg-cyrl-bg", bga: "bga-latn-ng", bgb: "bgb-latn-id", bgc: "bgc-deva-in", bgd: "bgd-deva-in", bgf: "bgf-latn-cm", bgg: "bgg-latn-in", bgi: "bgi-latn-ph", bgj: "bgj-latn-cm", bgn: "bgn-arab-pk", bgo: "bgo-latn-gn", bgp: "bgp-arab-pk", bgq: "bgq-deva-in", bgr: "bgr-latn-in", bgs: "bgs-latn-ph", bgt: "bgt-latn-sb", bgu: "bgu-latn-ng", bgv: "bgv-latn-id", bgw: "bgw-deva-in", bgx: "bgx-grek-tr", bgy: "bgy-latn-id", bgz: "bgz-latn-id", bha: "bha-deva-in", bhb: "bhb-deva-in", bhc: "bhc-latn-id", bhd: "bhd-deva-in", "bhd-arab": "bhd-arab-in", "bhd-takr": "bhd-takr-in", bhe: "bhe-arab-pk", bhf: "bhf-latn-pg", bhg: "bhg-latn-zz", bhh: "bhh-cyrl-il", "bhh-hebr": "bhh-hebr-il", "bhh-latn": "bhh-latn-il", bhi: "bhi-deva-in", bhj: "bhj-deva-np", bhl: "bhl-latn-zz", bhm: "bhm-arab-om", bhn: "bhn-syrc-ge", bho: "bho-deva-in", bhp: "bhp-latn-id", bhq: "bhq-latn-id", bhr: "bhr-latn-mg", bhs: "bhs-latn-cm", bht: "bht-takr-in", "bht-deva": "bht-deva-in", "bht-latn": "bht-latn-in", bhu: "bhu-deva-in", bhv: "bhv-latn-id", bhw: "bhw-latn-id", bhy: "bhy-latn-zz", bhz: "bhz-latn-id", bi: "bi-latn-vu", bia: "bia-latn-au", bib: "bib-latn-zz", bid: "bid-latn-td", bie: "bie-latn-pg", bif: "bif-latn-gw", big: "big-latn-zz", bik: "bik-latn-ph", bil: "bil-latn-ng", bim: "bim-latn-zz", bin: "bin-latn-ng", bio: "bio-latn-zz", bip: "bip-latn-cd", biq: "biq-latn-zz", bir: "bir-latn-pg", bit: "bit-latn-pg", biu: "biu-latn-in", biv: "biv-latn-gh", biw: "biw-latn-cm", biy: "biy-deva-in", biz: "biz-latn-cd", bja: "bja-latn-cd", bjb: "bjb-latn-au", bjc: "bjc-latn-pg", bjf: "bjf-syrc-il", bjg: "bjg-latn-gw", bjh: "bjh-latn-zz", bji: "bji-ethi-zz", bjj: "bjj-deva-in", bjk: "bjk-latn-pg", bjl: "bjl-latn-pg", bjm: "bjm-arab-iq", bjn: "bjn-latn-id", bjo: "bjo-latn-zz", bjp: "bjp-latn-pg", bjr: "bjr-latn-zz", bjs: "bjs-latn-bb", bjt: "bjt-latn-sn", bju: "bju-latn-cm", bjv: "bjv-latn-td", bjw: "bjw-latn-ci", bjx: "bjx-latn-ph", bjy: "bjy-latn-au", bjz: "bjz-latn-zz", bka: "bka-latn-ng", bkc: "bkc-latn-zz", bkd: "bkd-latn-ph", bkf: "bkf-latn-cd", bkg: "bkg-latn-cf", bkh: "bkh-latn-cm", bki: "bki-latn-vu", bkj: "bkj-latn-cf", bkl: "bkl-latn-id", bkm: "bkm-latn-cm", bkn: "bkn-latn-id", bko: "bko-latn-cm", bkp: "bkp-latn-cd", bkq: "bkq-latn-zz", bkr: "bkr-latn-id", bks: "bks-latn-ph", bkt: "bkt-latn-cd", bku: "bku-latn-ph", bkv: "bkv-latn-zz", bkw: "bkw-latn-cg", bkx: "bkx-latn-tl", bky: "bky-latn-ng", bkz: "bkz-latn-id", bla: "bla-latn-ca", blb: "blb-latn-sb", blc: "blc-latn-ca", bld: "bld-latn-id", ble: "ble-latn-gw", blf: "blf-latn-id", blg: "blg-latn-my", blh: "blh-latn-lr", bli: "bli-latn-cd", blj: "blj-latn-id", blk: "blk-mymr-mm", blm: "blm-latn-ss", bln: "bln-latn-ph", blo: "blo-latn-bj", blp: "blp-latn-sb", blq: "blq-latn-pg", blr: "blr-latn-cn", "blr-tale": "blr-tale-cn", "blr-thai": "blr-thai-th", bls: "bls-latn-id", blt: "blt-tavt-vn", blv: "blv-latn-ao", blw: "blw-latn-ph", blx: "blx-latn-ph", bly: "bly-latn-bj", blz: "blz-latn-id", bm: "bm-latn-ml", bma: "bma-latn-ng", bmb: "bmb-latn-cd", bmc: "bmc-latn-pg", bmd: "bmd-latn-gn", bme: "bme-latn-cf", bmf: "bmf-latn-sl", bmg: "bmg-latn-cd", bmh: "bmh-latn-zz", bmi: "bmi-latn-td", bmj: "bmj-deva-np", bmk: "bmk-latn-zz", bml: "bml-latn-cd", bmm: "bmm-latn-mg", bmn: "bmn-latn-pg", bmo: "bmo-latn-cm", bmp: "bmp-latn-pg", bmq: "bmq-latn-ml", bmr: "bmr-latn-co", bms: "bms-latn-ne", bmu: "bmu-latn-zz", bmv: "bmv-latn-cm", bmw: "bmw-latn-cg", bmx: "bmx-latn-pg", bmz: "bmz-latn-pg", bn: "bn-beng-bd", bna: "bna-latn-id", bnb: "bnb-latn-my", bnc: "bnc-latn-ph", bnd: "bnd-latn-id", bne: "bne-latn-id", bnf: "bnf-latn-id", bng: "bng-latn-zz", bni: "bni-latn-cd", bnj: "bnj-latn-ph", bnk: "bnk-latn-vu", bnm: "bnm-latn-zz", bnn: "bnn-latn-tw", bno: "bno-latn-ph", bnp: "bnp-latn-zz", bnq: "bnq-latn-id", bnr: "bnr-latn-vu", bns: "bns-deva-in", bnu: "bnu-latn-id", bnv: "bnv-latn-id", bnw: "bnw-latn-pg", bnx: "bnx-latn-cd", bny: "bny-latn-my", bnz: "bnz-latn-cm", bo: "bo-tibt-cn", boa: "boa-latn-pe", bob: "bob-latn-ke", boe: "boe-latn-cm", bof: "bof-latn-bf", boh: "boh-latn-cd", boj: "boj-latn-zz", bok: "bok-latn-cg", bol: "bol-latn-ng", bom: "bom-latn-zz", bon: "bon-latn-zz", boo: "boo-latn-ml", bop: "bop-latn-pg", boq: "boq-latn-pg", bor: "bor-latn-br", bot: "bot-latn-ss", bou: "bou-latn-tz", bov: "bov-latn-gh", bow: "bow-latn-pg", box: "box-latn-bf", boy: "boy-latn-cf", boz: "boz-latn-ml", "boz-arab": "boz-arab-ml", bpa: "bpa-latn-vu", bpc: "bpc-latn-cm", bpd: "bpd-latn-cf", bpe: "bpe-latn-pg", bpg: "bpg-latn-id", bph: "bph-cyrl-ru", bpi: "bpi-latn-pg", bpj: "bpj-latn-cd", bpk: "bpk-latn-nc", bpl: "bpl-latn-au", bpm: "bpm-latn-pg", bpo: "bpo-latn-id", bpp: "bpp-latn-id", bpq: "bpq-latn-id", bpr: "bpr-latn-ph", bps: "bps-latn-ph", bpt: "bpt-latn-au", bpu: "bpu-latn-pg", bpv: "bpv-latn-id", bpw: "bpw-latn-pg", bpx: "bpx-deva-in", bpy: "bpy-beng-in", bpz: "bpz-latn-id", bqa: "bqa-latn-bj", bqb: "bqb-latn-id", bqc: "bqc-latn-zz", bqd: "bqd-latn-cm", bqf: "bqf-latn-gn", "bqf-arab": "bqf-arab-gn", bqg: "bqg-latn-tg", bqi: "bqi-arab-ir", bqj: "bqj-latn-sn", bqk: "bqk-latn-cf", bql: "bql-latn-pg", bqm: "bqm-latn-cm", bqo: "bqo-latn-cm", bqp: "bqp-latn-zz", bqq: "bqq-latn-id", bqr: "bqr-latn-id", bqs: "bqs-latn-pg", bqt: "bqt-latn-cm", bqu: "bqu-latn-cd", bqv: "bqv-latn-ci", bqw: "bqw-latn-ng", bqx: "bqx-latn-ng", bqz: "bqz-latn-cm", br: "br-latn-fr", bra: "bra-deva-in", brb: "brb-khmr-kh", "brb-laoo": "brb-laoo-la", "brb-latn": "brb-latn-vn", brc: "brc-latn-gy", brd: "brd-deva-np", brf: "brf-latn-cd", brg: "brg-latn-bo", brh: "brh-arab-pk", bri: "bri-latn-cm", brj: "brj-latn-vu", brk: "brk-arab-sd", brl: "brl-latn-bw", brm: "brm-latn-cd", brn: "brn-latn-cr", brp: "brp-latn-id", brq: "brq-latn-pg", brr: "brr-latn-sb", brs: "brs-latn-id", brt: "brt-latn-ng", bru: "bru-latn-vn", "bru-laoo": "bru-laoo-la", "bru-thai": "bru-thai-la", brv: "brv-laoo-la", brx: "brx-deva-in", bry: "bry-latn-pg", brz: "brz-latn-zz", bs: "bs-latn-ba", bsa: "bsa-latn-id", bsb: "bsb-latn-bn", bsc: "bsc-latn-sn", bse: "bse-latn-cm", bsf: "bsf-latn-ng", bsh: "bsh-arab-af", bsi: "bsi-latn-cm", bsj: "bsj-latn-zz", bsk: "bsk-arab-pk", "bsk-latn": "bsk-latn-pk", bsl: "bsl-latn-ng", bsm: "bsm-latn-id", bsn: "bsn-latn-co", bso: "bso-latn-td", bsp: "bsp-latn-gn", bsq: "bsq-bass-lr", bsr: "bsr-latn-ng", bss: "bss-latn-cm", bst: "bst-ethi-zz", bsu: "bsu-latn-id", bsv: "bsv-latn-gn", "bsv-arab": "bsv-arab-gn", bsw: "bsw-latn-et", "bsw-ethi": "bsw-ethi-et", bsx: "bsx-latn-ng", bsy: "bsy-latn-my", bta: "bta-latn-ng", btc: "btc-latn-cm", btd: "btd-batk-id", bte: "bte-latn-ng", btf: "btf-latn-td", btg: "btg-latn-ci", bth: "bth-latn-my", bti: "bti-latn-id", btj: "btj-latn-id", btm: "btm-batk-id", btn: "btn-latn-ph", bto: "bto-latn-ph", btp: "btp-latn-pg", btq: "btq-latn-my", btr: "btr-latn-vu", bts: "bts-latn-id", "bts-batk": "bts-batk-id", btt: "btt-latn-zz", btu: "btu-latn-ng", btv: "btv-deva-pk", btw: "btw-latn-ph", btx: "btx-latn-id", "btx-batk": "btx-batk-id", bty: "bty-latn-id", btz: "btz-latn-id", bua: "bua-cyrl-ru", bub: "bub-latn-td", buc: "buc-latn-yt", bud: "bud-latn-zz", bue: "bue-latn-ca", buf: "buf-latn-cd", bug: "bug-latn-id", buh: "buh-latn-cn", bui: "bui-latn-cg", buj: "buj-latn-ng", buk: "buk-latn-zz", bum: "bum-latn-cm", bun: "bun-latn-sl", buo: "buo-latn-zz", bup: "bup-latn-id", buq: "buq-latn-pg", bus: "bus-latn-zz", but: "but-latn-pg", buu: "buu-latn-zz", buv: "buv-latn-pg", buw: "buw-latn-ga", bux: "bux-latn-ng", buy: "buy-latn-sl", buz: "buz-latn-ng", bva: "bva-latn-td", bvb: "bvb-latn-gq", bvc: "bvc-latn-sb", bvd: "bvd-latn-sb", bve: "bve-latn-id", bvf: "bvf-latn-td", bvg: "bvg-latn-cm", bvh: "bvh-latn-ng", bvi: "bvi-latn-ss", bvj: "bvj-latn-ng", bvk: "bvk-latn-id", bvm: "bvm-latn-cm", bvn: "bvn-latn-pg", bvo: "bvo-latn-td", bvq: "bvq-latn-cf", bvr: "bvr-latn-au", bvt: "bvt-latn-id", bvu: "bvu-latn-id", bvv: "bvv-latn-ve", bvw: "bvw-latn-ng", bvx: "bvx-latn-cg", bvy: "bvy-latn-ph", bvz: "bvz-latn-id", bwa: "bwa-latn-nc", bwb: "bwb-latn-fj", bwc: "bwc-latn-zm", bwd: "bwd-latn-zz", bwe: "bwe-mymr-mm", "bwe-latn": "bwe-latn-mm", bwf: "bwf-latn-pg", bwg: "bwg-latn-mz", bwh: "bwh-latn-cm", bwi: "bwi-latn-ve", bwj: "bwj-latn-bf", bwk: "bwk-latn-pg", bwl: "bwl-latn-cd", bwm: "bwm-latn-pg", bwo: "bwo-latn-et", "bwo-ethi": "bwo-ethi-et", bwp: "bwp-latn-id", bwq: "bwq-latn-bf", bwr: "bwr-latn-zz", bws: "bws-latn-cd", bwt: "bwt-latn-cm", bwu: "bwu-latn-gh", bww: "bww-latn-cd", bwx: "bwx-latn-cn", bwy: "bwy-latn-bf", bwz: "bwz-latn-cg", bxa: "bxa-latn-sb", bxb: "bxb-latn-ss", bxc: "bxc-latn-gq", bxf: "bxf-latn-pg", bxg: "bxg-latn-cd", bxh: "bxh-latn-zz", bxi: "bxi-latn-au", bxj: "bxj-latn-au", bxl: "bxl-latn-bf", bxm: "bxm-cyrl-mn", "bxm-latn": "bxm-latn-mn", "bxm-mong": "bxm-mong-mn", bxn: "bxn-latn-au", bxo: "bxo-latn-ng", bxp: "bxp-latn-cm", bxq: "bxq-latn-ng", bxs: "bxs-latn-cm", bxu: "bxu-mong-cn", "bxu-cyrl": "bxu-cyrl-cn", "bxu-latn": "bxu-latn-cn", bxv: "bxv-latn-td", bxw: "bxw-latn-ml", bxz: "bxz-latn-pg", bya: "bya-latn-ph", byb: "byb-latn-cm", byc: "byc-latn-ng", byd: "byd-latn-id", bye: "bye-latn-zz", byf: "byf-latn-ng", byh: "byh-deva-np", byi: "byi-latn-cd", byj: "byj-latn-ng", byk: "byk-latn-cn", byl: "byl-latn-id", bym: "bym-latn-au", byn: "byn-ethi-er", byp: "byp-latn-ng", byr: "byr-latn-zz", bys: "bys-latn-zz", byv: "byv-latn-cm", byw: "byw-deva-np", byx: "byx-latn-zz", byz: "byz-latn-pg", bza: "bza-latn-zz", bzb: "bzb-latn-id", bzc: "bzc-latn-mg", bzd: "bzd-latn-cr", bze: "bze-latn-ml", bzf: "bzf-latn-zz", bzh: "bzh-latn-zz", bzi: "bzi-thai-th", bzj: "bzj-latn-bz", bzk: "bzk-latn-ni", bzl: "bzl-latn-id", bzm: "bzm-latn-cd", bzn: "bzn-latn-id", bzo: "bzo-latn-cd", bzp: "bzp-latn-id", bzq: "bzq-latn-id", bzr: "bzr-latn-au", bzt: "bzt-latn-001", bzu: "bzu-latn-id", bzv: "bzv-latn-cm", bzw: "bzw-latn-zz", bzx: "bzx-latn-ml", bzy: "bzy-latn-ng", bzz: "bzz-latn-ng", ca: "ca-latn-es", caa: "caa-latn-gt", cab: "cab-latn-hn", cac: "cac-latn-gt", cad: "cad-latn-us", cae: "cae-latn-sn", caf: "caf-latn-ca", "caf-cans": "caf-cans-ca", cag: "cag-latn-py", cah: "cah-latn-pe", caj: "caj-latn-ar", cak: "cak-latn-gt", cal: "cal-latn-mp", cam: "cam-latn-nc", can: "can-latn-zz", cao: "cao-latn-bo", cap: "cap-latn-bo", caq: "caq-latn-in", car: "car-latn-ve", cas: "cas-latn-bo", cav: "cav-latn-bo", caw: "caw-latn-bo", cax: "cax-latn-bo", cay: "cay-latn-ca", caz: "caz-latn-bo", cbb: "cbb-latn-co", cbc: "cbc-latn-co", cbd: "cbd-latn-co", cbg: "cbg-latn-co", cbi: "cbi-latn-ec", cbj: "cbj-latn-zz", cbk: "cbk-latn-ph", "cbk-brai": "cbk-brai-ph", cbl: "cbl-latn-mm", cbn: "cbn-thai-th", cbo: "cbo-latn-ng", cbq: "cbq-latn-ng", cbr: "cbr-latn-pe", cbs: "cbs-latn-pe", cbt: "cbt-latn-pe", cbu: "cbu-latn-pe", cbv: "cbv-latn-co", cbw: "cbw-latn-ph", cby: "cby-latn-co", ccc: "ccc-latn-pe", ccd: "ccd-latn-br", cce: "cce-latn-mz", ccg: "ccg-latn-ng", cch: "cch-latn-ng", ccj: "ccj-latn-gw", ccl: "ccl-latn-tz", ccm: "ccm-latn-my", cco: "cco-latn-mx", ccp: "ccp-cakm-bd", ccr: "ccr-latn-sv", cde: "cde-telu-in", cdf: "cdf-latn-in", "cdf-beng": "cdf-beng-in", cdh: "cdh-deva-in", "cdh-takr": "cdh-takr-in", cdi: "cdi-gujr-in", cdj: "cdj-deva-in", cdm: "cdm-deva-np", "cdm-latn": "cdm-latn-np", cdo: "cdo-hans-cn", "cdo-hant": "cdo-hant-cn", "cdo-latn": "cdo-latn-cn", cdr: "cdr-latn-ng", cdz: "cdz-beng-in", ce: "ce-cyrl-ru", cea: "cea-latn-us", ceb: "ceb-latn-ph", ceg: "ceg-latn-py", cek: "cek-latn-mm", cen: "cen-latn-ng", cet: "cet-latn-ng", cey: "cey-latn-mm", cfa: "cfa-latn-zz", cfd: "cfd-latn-ng", cfg: "cfg-latn-ng", cfm: "cfm-latn-mm", "cfm-beng": "cfm-beng-in", cga: "cga-latn-pg", cgc: "cgc-latn-ph", cgg: "cgg-latn-ug", cgk: "cgk-tibt-bt", ch: "ch-latn-gu", chb: "chb-latn-co", chd: "chd-latn-mx", chf: "chf-latn-mx", chg: "chg-arab-tm", chh: "chh-latn-us", chj: "chj-latn-mx", chk: "chk-latn-fm", chl: "chl-latn-us", chm: "chm-cyrl-ru", chn: "chn-latn-us", "chn-dupl": "chn-dupl-us", cho: "cho-latn-us", chp: "chp-latn-ca", chq: "chq-latn-mx", chr: "chr-cher-us", cht: "cht-latn-pe", chw: "chw-latn-mz", chx: "chx-deva-np", chy: "chy-latn-us", chz: "chz-latn-mx", cia: "cia-latn-id", "cia-arab": "cia-arab-id", "cia-hang": "cia-hang-id", cib: "cib-latn-bj", cic: "cic-latn-us", cie: "cie-latn-ng", cih: "cih-deva-in", cim: "cim-latn-it", cin: "cin-latn-br", cip: "cip-latn-mx", cir: "cir-latn-nc", ciw: "ciw-latn-us", "ciw-cans": "ciw-cans-us", ciy: "ciy-latn-ve", cja: "cja-arab-kh", cje: "cje-latn-vn", cjh: "cjh-latn-us", cji: "cji-cyrl-ru", cjk: "cjk-latn-ao", cjm: "cjm-cham-vn", cjn: "cjn-latn-pg", cjo: "cjo-latn-pe", cjp: "cjp-latn-cr", cjs: "cjs-latn-ru", "cjs-cyrl": "cjs-cyrl-ru", cjv: "cjv-latn-zz", cjy: "cjy-hans-cn", "cjy-hant": "cjy-hant-cn", ckb: "ckb-arab-iq", ckl: "ckl-latn-zz", ckm: "ckm-latn-hr", "ckm-glag": "ckm-glag-hr", ckn: "ckn-latn-mm", cko: "cko-latn-zz", ckq: "ckq-latn-td", ckr: "ckr-latn-pg", cks: "cks-latn-nc", ckt: "ckt-cyrl-ru", cku: "cku-latn-us", ckv: "ckv-latn-tw", ckx: "ckx-latn-cm", cky: "cky-latn-zz", ckz: "ckz-latn-gt", cla: "cla-latn-zz", clc: "clc-latn-ca", cle: "cle-latn-mx", clh: "clh-arab-pk", cli: "cli-latn-gh", clj: "clj-latn-mm", clk: "clk-latn-in", "clk-tibt": "clk-tibt-cn", cll: "cll-latn-gh", clm: "clm-latn-us", clo: "clo-latn-mx", clt: "clt-latn-mm", clu: "clu-latn-ph", clw: "clw-cyrl-ru", cly: "cly-latn-mx", cma: "cma-latn-vn", cme: "cme-latn-zz", cmg: "cmg-soyo-mn", cmi: "cmi-latn-co", cml: "cml-latn-id", cmo: "cmo-latn-vn", "cmo-kh": "cmo-latn-kh", "cmo-khmr": "cmo-khmr-kh", cmr: "cmr-latn-mm", cms: "cms-latn-it", cmt: "cmt-latn-za", cna: "cna-tibt-in", cnb: "cnb-latn-mm", cnc: "cnc-latn-vn", cng: "cng-latn-cn", cnh: "cnh-latn-mm", cni: "cni-latn-pe", cnk: "cnk-latn-mm", cnl: "cnl-latn-mx", cnp: "cnp-hans-cn", "cnp-hant": "cnp-hant-cn", cnq: "cnq-latn-cm", cns: "cns-latn-id", cnt: "cnt-latn-mx", cnw: "cnw-latn-mm", cnx: "cnx-latn-gb", co: "co-latn-fr", coa: "coa-latn-au", cob: "cob-latn-mx", coc: "coc-latn-mx", cod: "cod-latn-pe", coe: "coe-latn-co", cof: "cof-latn-ec", cog: "cog-thai-th", coh: "coh-latn-ke", coj: "coj-latn-mx", cok: "cok-latn-mx", col: "col-latn-us", com: "com-latn-us", coo: "coo-latn-ca", cop: "cop-copt-eg", coq: "coq-latn-us", cot: "cot-latn-pe", cou: "cou-latn-sn", cox: "cox-latn-pe", coz: "coz-latn-mx", cpa: "cpa-latn-mx", cpb: "cpb-latn-pe", cpc: "cpc-latn-pe", cpg: "cpg-grek-gr", cpi: "cpi-latn-nr", cpn: "cpn-latn-gh", cpo: "cpo-latn-bf", cps: "cps-latn-ph", cpu: "cpu-latn-pe", cpx: "cpx-latn-cn", cpy: "cpy-latn-pe", cqd: "cqd-latn-cn", cr: "cr-cans-ca", crb: "crb-latn-vc", crc: "crc-latn-vu", crd: "crd-latn-us", crf: "crf-latn-co", crg: "crg-latn-ca", crh: "crh-cyrl-ua", cri: "cri-latn-st", crj: "crj-cans-ca", "crj-latn": "crj-latn-ca", crk: "crk-cans-ca", crl: "crl-cans-ca", crm: "crm-cans-ca", crn: "crn-latn-mx", cro: "cro-latn-us", crq: "crq-latn-ar", crs: "crs-latn-sc", crt: "crt-latn-ar", crv: "crv-latn-in", crw: "crw-latn-vn", crx: "crx-latn-ca", "crx-cans": "crx-cans-ca", cry: "cry-latn-ng", crz: "crz-latn-us", cs: "cs-latn-cz", csa: "csa-latn-mx", csb: "csb-latn-pl", csh: "csh-mymr-mm", "csh-latn": "csh-latn-mm", csj: "csj-latn-mm", csk: "csk-latn-sn", csm: "csm-latn-us", cso: "cso-latn-mx", csp: "csp-hans-cn", "csp-hant": "csp-hant-cn", css: "css-latn-us", cst: "cst-latn-us", csv: "csv-latn-mm", csw: "csw-cans-ca", csy: "csy-latn-mm", csz: "csz-latn-us", cta: "cta-latn-mx", ctc: "ctc-latn-us", ctd: "ctd-pauc-mm", cte: "cte-latn-mx", ctg: "ctg-beng-bd", "ctg-arab": "ctg-arab-bd", "ctg-latn": "ctg-latn-bd", cth: "cth-latn-mm", ctl: "ctl-latn-mx", ctm: "ctm-latn-us", ctn: "ctn-deva-np", cto: "cto-latn-co", ctp: "ctp-latn-mx", cts: "cts-latn-ph", ctt: "ctt-taml-in", ctu: "ctu-latn-mx", ctz: "ctz-latn-mx", cu: "cu-cyrl-ru", "cu-glag": "cu-glag-bg", cua: "cua-latn-vn", cub: "cub-latn-co", cuc: "cuc-latn-mx", cuh: "cuh-latn-ke", cui: "cui-latn-co", cuj: "cuj-latn-pe", cuk: "cuk-latn-pa", cul: "cul-latn-br", cuo: "cuo-latn-ve", cup: "cup-latn-us", cut: "cut-latn-mx", cuu: "cuu-lana-cn", cuv: "cuv-latn-cm", cux: "cux-latn-mx", cv: "cv-cyrl-ru", cvg: "cvg-latn-in", "cvg-tibt": "cvg-tibt-in", cvn: "cvn-latn-mx", cwa: "cwa-latn-tz", cwb: "cwb-latn-mz", cwe: "cwe-latn-tz", cwg: "cwg-latn-my", cwt: "cwt-latn-sn", cy: "cy-latn-gb", cya: "cya-latn-mx", cyb: "cyb-latn-bo", cyo: "cyo-latn-ph", czh: "czh-hans-cn", "czh-hant": "czh-hant-cn", czk: "czk-hebr-cz", czn: "czn-latn-mx", czt: "czt-latn-mm", da: "da-latn-dk", daa: "daa-latn-td", dac: "dac-latn-pg", dad: "dad-latn-zz", dae: "dae-latn-cm", daf: "daf-latn-ci", dag: "dag-latn-zz", dah: "dah-latn-zz", dai: "dai-latn-td", daj: "daj-latn-sd", dak: "dak-latn-us", dal: "dal-latn-ke", dam: "dam-latn-ng", dao: "dao-latn-mm", daq: "daq-deva-in", dar: "dar-cyrl-ru", das: "das-latn-ci", dau: "dau-latn-td", dav: "dav-latn-ke", daw: "daw-latn-ph", dax: "dax-latn-au", daz: "daz-latn-id", dba: "dba-latn-ml", dbb: "dbb-latn-ng", dbd: "dbd-latn-zz", dbe: "dbe-latn-id", dbf: "dbf-latn-id", dbg: "dbg-latn-ml", dbi: "dbi-latn-ng", dbj: "dbj-latn-my", "dbj-arab": "dbj-arab-my", dbl: "dbl-latn-au", dbm: "dbm-latn-ng", dbn: "dbn-latn-id", dbo: "dbo-latn-ng", dbp: "dbp-latn-ng", dbq: "dbq-latn-zz", dbt: "dbt-latn-ml", dbu: "dbu-latn-ml", dbv: "dbv-latn-ng", dbw: "dbw-latn-ml", dby: "dby-latn-pg", dcc: "dcc-arab-in", dcr: "dcr-latn-vi", dda: "dda-latn-au", ddd: "ddd-latn-ss", dde: "dde-latn-cg", ddg: "ddg-latn-tl", ddi: "ddi-latn-pg", ddj: "ddj-latn-au", ddn: "ddn-latn-zz", ddo: "ddo-cyrl-ru", ddr: "ddr-latn-au", dds: "dds-latn-ml", ddw: "ddw-latn-id", de: "de-latn-de", dec: "dec-latn-sd", ded: "ded-latn-zz", dee: "dee-latn-lr", def: "def-arab-ir", deg: "deg-latn-ng", deh: "deh-arab-pk", dei: "dei-latn-id", dek: "dek-latn-cm", del: "del-latn-us", dem: "dem-latn-id", den: "den-latn-ca", deq: "deq-latn-cf", der: "der-beng-in", "der-latn": "der-latn-in", des: "des-latn-br", dev: "dev-latn-pg", dez: "dez-latn-cd", dga: "dga-latn-zz", dgb: "dgb-latn-ml", dgc: "dgc-latn-ph", dgd: "dgd-latn-bf", dge: "dge-latn-pg", dgg: "dgg-latn-pg", dgh: "dgh-latn-zz", dgi: "dgi-latn-zz", dgk: "dgk-latn-cf", dgl: "dgl-arab-zz", dgn: "dgn-latn-au", dgr: "dgr-latn-ca", dgs: "dgs-latn-bf", dgt: "dgt-latn-au", dgw: "dgw-latn-au", dgx: "dgx-latn-pg", dgz: "dgz-latn-zz", dhg: "dhg-latn-au", dhi: "dhi-deva-np", dhl: "dhl-latn-au", dhm: "dhm-latn-ao", dhn: "dhn-gujr-in", dho: "dho-deva-in", dhr: "dhr-latn-au", dhs: "dhs-latn-tz", dhu: "dhu-latn-au", dhv: "dhv-latn-nc", dhw: "dhw-deva-np", dhx: "dhx-latn-au", dia: "dia-latn-zz", dib: "dib-latn-ss", dic: "dic-latn-ci", did: "did-latn-ss", dif: "dif-latn-au", dig: "dig-latn-ke", dih: "dih-latn-mx", dii: "dii-latn-cm", dij: "dij-latn-id", dil: "dil-latn-sd", din: "din-latn-ss", "din-arab": "din-arab-ss", dio: "dio-latn-ng", dip: "dip-latn-ss", dir: "dir-latn-ng", dis: "dis-latn-in", "dis-beng": "dis-beng-in", diu: "diu-latn-na", diw: "diw-latn-ss", dix: "dix-latn-vu", diy: "diy-latn-id", diz: "diz-latn-cd", dja: "dja-latn-au", djb: "djb-latn-au", djc: "djc-latn-td", djd: "djd-latn-au", dje: "dje-latn-ne", djf: "djf-latn-au", dji: "dji-latn-au", djj: "djj-latn-au", djk: "djk-latn-sr", djm: "djm-latn-ml", djn: "djn-latn-au", djo: "djo-latn-id", djr: "djr-latn-au", dju: "dju-latn-pg", djw: "djw-latn-au", dka: "dka-tibt-bt", dkg: "dkg-latn-ng", dkk: "dkk-latn-id", dkr: "dkr-latn-my", dks: "dks-latn-ss", dkx: "dkx-latn-cm", dlg: "dlg-cyrl-ru", dlm: "dlm-latn-hr", dln: "dln-latn-in", dma: "dma-latn-ga", dmb: "dmb-latn-ml", dmc: "dmc-latn-pg", dmd: "dmd-latn-au", dme: "dme-latn-cm", dmf: "dmf-medf-ng", dmg: "dmg-latn-my", dmk: "dmk-arab-pk", dml: "dml-arab-pk", dmm: "dmm-latn-cm", dmo: "dmo-latn-cm", dmr: "dmr-latn-id", dms: "dms-latn-id", dmu: "dmu-latn-id", dmv: "dmv-latn-my", dmw: "dmw-latn-au", dmx: "dmx-latn-mz", dmy: "dmy-latn-id", dna: "dna-latn-id", dnd: "dnd-latn-pg", dne: "dne-latn-tz", dng: "dng-cyrl-kg", "dng-arab": "dng-arab-kg", dni: "dni-latn-id", dnj: "dnj-latn-ci", dnk: "dnk-latn-id", dnn: "dnn-latn-bf", dno: "dno-latn-cd", dnr: "dnr-latn-pg", dnt: "dnt-latn-id", dnu: "dnu-mymr-mm", dnv: "dnv-mymr-mm", dnw: "dnw-latn-id", dny: "dny-latn-br", doa: "doa-latn-pg", dob: "dob-latn-zz", doc: "doc-latn-cn", doe: "doe-latn-tz", dof: "dof-latn-pg", doh: "doh-latn-ng", doi: "doi-deva-in", dok: "dok-latn-id", dol: "dol-latn-pg", don: "don-latn-pg", doo: "doo-latn-cd", dop: "dop-latn-zz", dor: "dor-latn-sb", dos: "dos-latn-bf", dot: "dot-latn-ng", dov: "dov-latn-zw", dow: "dow-latn-zz", dox: "dox-ethi-et", doy: "doy-latn-gh", dpp: "dpp-latn-my", drc: "drc-latn-pt", dre: "dre-tibt-np", drg: "drg-latn-my", drh: "drh-mong-cn", dri: "dri-latn-zz", drl: "drl-latn-au", drn: "drn-latn-id", dro: "dro-latn-my", drq: "drq-deva-np", drs: "drs-ethi-zz", drt: "drt-latn-nl", dru: "dru-latn-tw", dry: "dry-deva-np", dsb: "dsb-latn-de", dsh: "dsh-latn-ke", dsi: "dsi-latn-td", dsn: "dsn-latn-id", dso: "dso-orya-in", dsq: "dsq-latn-ml", "dsq-arab": "dsq-arab-ml", dta: "dta-latn-cn", "dta-cyrl": "dta-cyrl-cn", "dta-hans": "dta-hans-cn", dtb: "dtb-latn-my", dtd: "dtd-latn-ca", dth: "dth-latn-au", dti: "dti-latn-ml", dtk: "dtk-latn-ml", dtm: "dtm-latn-ml", dto: "dto-latn-ml", dtp: "dtp-latn-my", dtr: "dtr-latn-my", dts: "dts-latn-zz", dtt: "dtt-latn-ml", dtu: "dtu-latn-ml", dty: "dty-deva-np", dua: "dua-latn-cm", dub: "dub-gujr-in", duc: "duc-latn-zz", dud: "dud-latn-zz", due: "due-latn-ph", duf: "duf-latn-nc", dug: "dug-latn-zz", duh: "duh-deva-in", "duh-gujr": "duh-gujr-in", dui: "dui-latn-pg", duk: "duk-latn-pg", dul: "dul-latn-ph", dum: "dum-latn-nl", dun: "dun-latn-id", duo: "duo-latn-ph", dup: "dup-latn-id", duq: "duq-latn-id", dur: "dur-latn-cm", dus: "dus-deva-np", duu: "duu-latn-cn", duv: "duv-latn-id", duw: "duw-latn-id", dux: "dux-latn-ml", duy: "duy-latn-ph", duz: "duz-latn-cm", dv: "dv-thaa-mv", dva: "dva-latn-zz", dwa: "dwa-latn-ng", dwk: "dwk-orya-in", dwr: "dwr-latn-et", "dwr-ethi": "dwr-ethi-et", dws: "dws-latn-001", dwu: "dwu-latn-au", dww: "dww-latn-zz", dwy: "dwy-latn-au", dwz: "dwz-deva-np", dya: "dya-latn-bf", dyb: "dyb-latn-au", dyd: "dyd-latn-au", dyg: "dyg-latn-ph", dyi: "dyi-latn-ci", dym: "dym-latn-ml", dyn: "dyn-latn-au", dyo: "dyo-latn-sn", dyu: "dyu-latn-bf", dyy: "dyy-latn-au", dz: "dz-tibt-bt", dza: "dza-latn-ng", dze: "dze-latn-au", dzg: "dzg-latn-zz", dzl: "dzl-tibt-bt", dzn: "dzn-latn-cd", eaa: "eaa-latn-au", ebc: "ebc-latn-id", ebg: "ebg-latn-ng", ebk: "ebk-latn-ph", ebo: "ebo-latn-cg", ebr: "ebr-latn-ci", ebu: "ebu-latn-ke", ecr: "ecr-grek-gr", ecy: "ecy-cprt-cy", ee: "ee-latn-gh", efa: "efa-latn-ng", efe: "efe-latn-cd", efi: "efi-latn-ng", ega: "ega-latn-ci", egl: "egl-latn-it", egm: "egm-latn-tz", ego: "ego-latn-ng", egy: "egy-egyp-eg", ehu: "ehu-latn-ng", eip: "eip-latn-id", eit: "eit-latn-pg", eiv: "eiv-latn-pg", eja: "eja-latn-gw", eka: "eka-latn-zz", eke: "eke-latn-ng", ekg: "ekg-latn-id", eki: "eki-latn-ng", ekl: "ekl-latn-bd", ekm: "ekm-latn-cm", eko: "eko-latn-mz", "eko-arab": "eko-arab-mz", ekp: "ekp-latn-ng", ekr: "ekr-latn-ng", eky: "eky-kali-mm", el: "el-grek-gr", ele: "ele-latn-pg", elk: "elk-latn-pg", elm: "elm-latn-ng", elo: "elo-latn-ke", elu: "elu-latn-pg", ema: "ema-latn-zz", emb: "emb-latn-id", eme: "eme-latn-gf", emg: "emg-deva-np", emi: "emi-latn-zz", emm: "emm-latn-mx", emn: "emn-latn-cm", emp: "emp-latn-pa", ems: "ems-latn-us", "ems-cyrl": "ems-cyrl-us", emu: "emu-deva-in", emw: "emw-latn-id", emx: "emx-latn-fr", emz: "emz-latn-cm", en: "en-latn-us", "en-shaw": "en-shaw-gb", ena: "ena-latn-pg", enb: "enb-latn-ke", enc: "enc-latn-vn", end: "end-latn-id", enf: "enf-cyrl-ru", enh: "enh-cyrl-ru", enl: "enl-latn-py", enm: "enm-latn-gb", enn: "enn-latn-zz", eno: "eno-latn-id", enq: "enq-latn-zz", enr: "enr-latn-id", env: "env-latn-ng", enw: "enw-latn-ng", enx: "enx-latn-py", eo: "eo-latn-001", eot: "eot-latn-ci", epi: "epi-latn-ng", era: "era-taml-in", erg: "erg-latn-vu", erh: "erh-latn-ng", eri: "eri-latn-zz", erk: "erk-latn-vu", err: "err-latn-au", ert: "ert-latn-id", erw: "erw-latn-id", es: "es-latn-es", ese: "ese-latn-bo", esg: "esg-gonm-in", esh: "esh-arab-ir", esi: "esi-latn-us", esm: "esm-latn-ci", ess: "ess-latn-us", "ess-cyrl": "ess-cyrl-us", esu: "esu-latn-us", esy: "esy-latn-ph", et: "et-latn-ee", etb: "etb-latn-ng", etn: "etn-latn-vu", eto: "eto-latn-cm", etr: "etr-latn-zz", ets: "ets-latn-ng", ett: "ett-ital-it", etu: "etu-latn-zz", etx: "etx-latn-zz", etz: "etz-latn-id", eu: "eu-latn-es", eve: "eve-cyrl-ru", evh: "evh-latn-ng", evn: "evn-cyrl-ru", "evn-latn": "evn-latn-cn", "evn-mong": "evn-mong-cn", ewo: "ewo-latn-cm", ext: "ext-latn-es", eya: "eya-latn-us", eyo: "eyo-latn-ke", eza: "eza-latn-zz", eze: "eze-latn-ng", fa: "fa-arab-ir", faa: "faa-latn-zz", fab: "fab-latn-zz", fad: "fad-latn-pg", faf: "faf-latn-sb", fag: "fag-latn-zz", fah: "fah-latn-ng", fai: "fai-latn-zz", faj: "faj-latn-pg", fak: "fak-latn-cm", fal: "fal-latn-cm", fam: "fam-latn-ng", fan: "fan-latn-gq", fap: "fap-latn-sn", far: "far-latn-sb", fau: "fau-latn-id", fax: "fax-latn-es", fay: "fay-arab-ir", faz: "faz-arab-ir", fbl: "fbl-latn-ph", fer: "fer-latn-ss", ff: "ff-latn-sn", "ff-adlm": "ff-adlm-gn", ffi: "ffi-latn-zz", ffm: "ffm-latn-ml", fgr: "fgr-latn-td", fi: "fi-latn-fi", fia: "fia-arab-sd", fie: "fie-latn-ng", fif: "fif-latn-sa", fil: "fil-latn-ph", fip: "fip-latn-tz", fir: "fir-latn-ng", fit: "fit-latn-se", fiw: "fiw-latn-pg", fj: "fj-latn-fj", fkk: "fkk-latn-ng", fkv: "fkv-latn-no", fla: "fla-latn-us", flh: "flh-latn-id", fli: "fli-latn-ng", fll: "fll-latn-cm", fln: "fln-latn-au", flr: "flr-latn-zz", fly: "fly-latn-za", fmp: "fmp-latn-zz", fmu: "fmu-deva-in", fnb: "fnb-latn-vu", fng: "fng-latn-za", fni: "fni-latn-td", fo: "fo-latn-fo", fod: "fod-latn-zz", foi: "foi-latn-pg", fom: "fom-latn-cd", fon: "fon-latn-bj", for: "for-latn-zz", fos: "fos-latn-tw", fpe: "fpe-latn-zz", fqs: "fqs-latn-zz", fr: "fr-latn-fr", frc: "frc-latn-us", frd: "frd-latn-id", frk: "frk-latn-de", frm: "frm-latn-fr", fro: "fro-latn-fr", frp: "frp-latn-fr", frq: "frq-latn-pg", frr: "frr-latn-de", frs: "frs-latn-de", frt: "frt-latn-vu", fub: "fub-arab-cm", fud: "fud-latn-wf", fue: "fue-latn-zz", fuf: "fuf-latn-gn", fuh: "fuh-latn-zz", fui: "fui-latn-td", fum: "fum-latn-ng", fun: "fun-latn-br", fuq: "fuq-latn-ne", fur: "fur-latn-it", fut: "fut-latn-vu", fuu: "fuu-latn-cd", fuv: "fuv-latn-ng", fuy: "fuy-latn-zz", fvr: "fvr-latn-sd", fwa: "fwa-latn-nc", fwe: "fwe-latn-na", fy: "fy-latn-nl", ga: "ga-latn-ie", gaa: "gaa-latn-gh", gab: "gab-latn-td", gac: "gac-latn-in", "gac-deva": "gac-deva-in", gad: "gad-latn-ph", gae: "gae-latn-ve", gaf: "gaf-latn-zz", gag: "gag-latn-md", gah: "gah-latn-zz", gai: "gai-latn-pg", gaj: "gaj-latn-zz", gak: "gak-latn-id", gal: "gal-latn-tl", gam: "gam-latn-zz", gan: "gan-hans-cn", gao: "gao-latn-pg", gap: "gap-latn-pg", gaq: "gaq-orya-in", gar: "gar-latn-pg", gas: "gas-gujr-in", gat: "gat-latn-pg", gau: "gau-telu-in", gaw: "gaw-latn-zz", gax: "gax-latn-et", "gax-ethi": "gax-ethi-et", gay: "gay-latn-id", gba: "gba-latn-zz", gbb: "gbb-latn-au", gbd: "gbd-latn-au", gbe: "gbe-latn-pg", gbf: "gbf-latn-zz", gbg: "gbg-latn-cf", gbh: "gbh-latn-bj", gbi: "gbi-latn-id", gbj: "gbj-orya-in", gbk: "gbk-deva-in", "gbk-takr": "gbk-takr-in", gbl: "gbl-gujr-in", "gbl-deva": "gbl-deva-in", gbm: "gbm-deva-in", gbn: "gbn-latn-ss", gbp: "gbp-latn-cf", gbq: "gbq-latn-cf", gbr: "gbr-latn-ng", gbs: "gbs-latn-bj", gbu: "gbu-latn-au", gbv: "gbv-latn-cf", gbw: "gbw-latn-au", gbx: "gbx-latn-bj", gby: "gby-latn-zz", gbz: "gbz-arab-ir", gcc: "gcc-latn-pg", gcd: "gcd-latn-au", gcf: "gcf-latn-gp", gcl: "gcl-latn-gd", gcn: "gcn-latn-pg", gcr: "gcr-latn-gf", gct: "gct-latn-ve", gd: "gd-latn-gb", gdb: "gdb-orya-in", "gdb-telu": "gdb-telu-in", gdc: "gdc-latn-au", gdd: "gdd-latn-pg", gde: "gde-latn-zz", gdf: "gdf-latn-ng", gdg: "gdg-latn-ph", gdh: "gdh-latn-au", gdi: "gdi-latn-cf", gdj: "gdj-latn-au", gdk: "gdk-latn-td", gdl: "gdl-latn-et", "gdl-ethi": "gdl-ethi-et", gdm: "gdm-latn-td", gdn: "gdn-latn-zz", gdo: "gdo-cyrl-ru", gdq: "gdq-latn-ye", gdr: "gdr-latn-zz", gdt: "gdt-latn-au", gdu: "gdu-latn-ng", gdx: "gdx-deva-in", gea: "gea-latn-ng", geb: "geb-latn-zz", gec: "gec-latn-lr", ged: "ged-latn-ng", gef: "gef-latn-id", geg: "geg-latn-ng", geh: "geh-latn-ca", gei: "gei-latn-id", gej: "gej-latn-zz", gek: "gek-latn-ng", gel: "gel-latn-zz", geq: "geq-latn-cf", ges: "ges-latn-id", gev: "gev-latn-ga", gew: "gew-latn-ng", gex: "gex-latn-so", gey: "gey-latn-cd", gez: "gez-ethi-et", gfk: "gfk-latn-zz", gga: "gga-latn-sb", ggb: "ggb-latn-lr", ggd: "ggd-latn-au", gge: "gge-latn-au", ggg: "ggg-arab-pk", ggk: "ggk-latn-au", ggl: "ggl-latn-pg", ggn: "ggn-deva-np", ggt: "ggt-latn-pg", ggu: "ggu-latn-ci", ggw: "ggw-latn-pg", gha: "gha-arab-ly", "gha-latn": "gha-latn-ly", "gha-tfng": "gha-tfng-ly", ghc: "ghc-latn-gb", ghe: "ghe-deva-np", ghk: "ghk-latn-mm", ghn: "ghn-latn-sb", ghr: "ghr-arab-pk", ghs: "ghs-latn-zz", ght: "ght-tibt-np", gia: "gia-latn-au", gib: "gib-latn-ng", gic: "gic-latn-za", gid: "gid-latn-cm", gie: "gie-latn-ci", gig: "gig-arab-pk", gih: "gih-latn-au", gil: "gil-latn-ki", gim: "gim-latn-zz", gin: "gin-cyrl-ru", gip: "gip-latn-pg", giq: "giq-latn-vn", gir: "gir-latn-vn", gis: "gis-latn-cm", git: "git-latn-ca", gix: "gix-latn-cd", giy: "giy-latn-au", giz: "giz-latn-cm", gjk: "gjk-arab-pk", gjm: "gjm-latn-au", gjn: "gjn-latn-zz", gjr: "gjr-latn-au", gju: "gju-arab-pk", gka: "gka-latn-pg", gkd: "gkd-latn-pg", gke: "gke-latn-cm", gkn: "gkn-latn-zz", gko: "gko-latn-au", gkp: "gkp-latn-zz", gku: "gku-latn-za", gl: "gl-latn-es", glb: "glb-latn-ng", glc: "glc-latn-td", gld: "gld-cyrl-ru", glh: "glh-arab-af", glj: "glj-latn-td", glk: "glk-arab-ir", gll: "gll-latn-au", glo: "glo-latn-ng", glr: "glr-latn-lr", glu: "glu-latn-td", glw: "glw-latn-ng", gma: "gma-latn-au", gmb: "gmb-latn-sb", gmd: "gmd-latn-ng", gmg: "gmg-latn-pg", gmh: "gmh-latn-de", gmm: "gmm-latn-zz", gmn: "gmn-latn-cm", gmr: "gmr-latn-au", gmu: "gmu-latn-pg", gmv: "gmv-ethi-zz", gmx: "gmx-latn-tz", gmy: "gmy-linb-gr", gmz: "gmz-latn-ng", gn: "gn-latn-py", gna: "gna-latn-bf", gnb: "gnb-latn-in", gnc: "gnc-latn-es", gnd: "gnd-latn-zz", gne: "gne-latn-ng", gng: "gng-latn-zz", gnh: "gnh-latn-ng", gni: "gni-latn-au", gnj: "gnj-latn-ci", gnk: "gnk-latn-bw", gnl: "gnl-latn-au", gnm: "gnm-latn-pg", gnn: "gnn-latn-au", gnq: "gnq-latn-my", gnr: "gnr-latn-au", gnt: "gnt-latn-pg", gnu: "gnu-latn-pg", gnw: "gnw-latn-bo", gnz: "gnz-latn-cf", goa: "goa-latn-ci", gob: "gob-latn-co", goc: "goc-latn-pg", god: "god-latn-zz", goe: "goe-tibt-bt", gof: "gof-ethi-zz", gog: "gog-latn-tz", goh: "goh-latn-de", goi: "goi-latn-zz", gok: "gok-deva-in", gol: "gol-latn-lr", gom: "gom-deva-in", gon: "gon-telu-in", goo: "goo-latn-fj", gop: "gop-latn-id", goq: "goq-latn-id", gor: "gor-latn-id", gos: "gos-latn-nl", got: "got-goth-ua", gou: "gou-latn-cm", gov: "gov-latn-ci", gow: "gow-latn-tz", gox: "gox-latn-cd", goy: "goy-latn-td", gpa: "gpa-latn-ng", gpe: "gpe-latn-gh", gpn: "gpn-latn-pg", gqa: "gqa-latn-ng", gqn: "gqn-latn-br", gqr: "gqr-latn-td", gra: "gra-deva-in", "gra-gujr": "gra-gujr-in", grb: "grb-latn-zz", grc: "grc-cprt-cy", "grc-linb": "grc-linb-gr", grd: "grd-latn-ng", grg: "grg-latn-pg", grh: "grh-latn-ng", gri: "gri-latn-sb", grj: "grj-latn-lr", grm: "grm-latn-my", grq: "grq-latn-pg", grs: "grs-latn-id", grt: "grt-beng-in", gru: "gru-ethi-et", "gru-latn": "gru-latn-et", grv: "grv-latn-lr", grw: "grw-latn-zz", grx: "grx-latn-pg", gry: "gry-latn-lr", grz: "grz-latn-pg", gsl: "gsl-latn-sn", gsn: "gsn-latn-pg", gso: "gso-latn-cf", gsp: "gsp-latn-pg", gsw: "gsw-latn-ch", gta: "gta-latn-br", gtu: "gtu-latn-au", gu: "gu-gujr-in", gua: "gua-latn-ng", gub: "gub-latn-br", guc: "guc-latn-co", gud: "gud-latn-zz", gue: "gue-latn-au", guf: "guf-latn-au", guh: "guh-latn-co", gui: "gui-latn-bo", guk: "guk-latn-et", "guk-ethi": "guk-ethi-et", gul: "gul-latn-us", gum: "gum-latn-co", gun: "gun-latn-br", guo: "guo-latn-co", gup: "gup-latn-au", guq: "guq-latn-py", gur: "gur-latn-gh", gut: "gut-latn-cr", guu: "guu-latn-ve", guw: "guw-latn-zz", gux: "gux-latn-zz", guz: "guz-latn-ke", gv: "gv-latn-im", gva: "gva-latn-py", gvc: "gvc-latn-br", gve: "gve-latn-pg", gvf: "gvf-latn-zz", gvj: "gvj-latn-br", gvl: "gvl-latn-td", gvm: "gvm-latn-ng", gvn: "gvn-latn-au", gvo: "gvo-latn-br", gvp: "gvp-latn-br", gvr: "gvr-deva-np", gvs: "gvs-latn-zz", gvy: "gvy-latn-au", gwa: "gwa-latn-ci", gwb: "gwb-latn-ng", gwc: "gwc-arab-zz", gwd: "gwd-latn-et", gwe: "gwe-latn-tz", gwf: "gwf-arab-pk", gwg: "gwg-latn-ng", gwi: "gwi-latn-ca", gwj: "gwj-latn-bw", gwm: "gwm-latn-au", gwn: "gwn-latn-ng", gwr: "gwr-latn-ug", gwt: "gwt-arab-zz", gwu: "gwu-latn-au", gww: "gww-latn-au", gwx: "gwx-latn-gh", gxx: "gxx-latn-ci", gyb: "gyb-latn-pg", gyd: "gyd-latn-au", gye: "gye-latn-ng", gyf: "gyf-latn-au", gyg: "gyg-latn-cf", gyi: "gyi-latn-zz", gyl: "gyl-latn-et", "gyl-ethi": "gyl-ethi-et", gym: "gym-latn-pa", gyn: "gyn-latn-gy", gyo: "gyo-deva-np", gyr: "gyr-latn-bo", gyy: "gyy-latn-au", gyz: "gyz-latn-ng", gza: "gza-latn-sd", gzi: "gzi-arab-ir", gzn: "gzn-latn-id", ha: "ha-latn-ng", "ha-cm": "ha-arab-cm", "ha-sd": "ha-arab-sd", haa: "haa-latn-us", hac: "hac-arab-ir", had: "had-latn-id", hae: "hae-latn-et", hag: "hag-latn-zz", hah: "hah-latn-pg", hai: "hai-latn-ca", haj: "haj-latn-in", "haj-beng": "haj-beng-in", hak: "hak-hans-cn", hal: "hal-latn-vn", ham: "ham-latn-zz", han: "han-latn-tz", hao: "hao-latn-pg", hap: "hap-latn-id", haq: "haq-latn-tz", har: "har-ethi-et", "har-arab": "har-arab-et", "har-latn": "har-latn-et", has: "has-latn-ca", hav: "hav-latn-cd", haw: "haw-latn-us", hax: "hax-latn-ca", hay: "hay-latn-tz", haz: "haz-arab-af", hba: "hba-latn-cd", hbb: "hbb-latn-zz", hbn: "hbn-latn-sd", hbo: "hbo-hebr-il", hbu: "hbu-latn-tl", hch: "hch-latn-mx", hdy: "hdy-ethi-zz", he: "he-hebr-il", hed: "hed-latn-td", heg: "heg-latn-id", heh: "heh-latn-tz", hei: "hei-latn-ca", hem: "hem-latn-cd", hgm: "hgm-latn-na", hgw: "hgw-latn-pg", hhi: "hhi-latn-pg", hhr: "hhr-latn-sn", hhy: "hhy-latn-zz", hi: "hi-deva-in", "hi-latn": "hi-latn-in", hia: "hia-latn-zz", hib: "hib-latn-pe", hid: "hid-latn-us", hif: "hif-latn-fj", hig: "hig-latn-zz", hih: "hih-latn-zz", hii: "hii-takr-in", "hii-deva": "hii-deva-in", hij: "hij-latn-cm", hik: "hik-latn-id", hil: "hil-latn-ph", hio: "hio-latn-bw", hir: "hir-latn-br", hit: "hit-xsux-tr", hiw: "hiw-latn-vu", hix: "hix-latn-br", hji: "hji-latn-id", hka: "hka-latn-tz", hke: "hke-latn-cd", hkh: "hkh-arab-in", "hkh-deva": "hkh-deva-in", "hkh-latn": "hkh-latn-in", hkk: "hkk-latn-pg", hla: "hla-latn-zz", hlb: "hlb-deva-in", hld: "hld-latn-vn", hlt: "hlt-latn-mm", hlu: "hlu-hluw-tr", hma: "hma-latn-cn", hmb: "hmb-latn-ml", hmd: "hmd-plrd-cn", hmf: "hmf-latn-vn", hmj: "hmj-bopo-cn", hmm: "hmm-latn-cn", hmn: "hmn-latn-cn", "hmn-bopo": "hmn-bopo-cn", "hmn-hmng": "hmn-hmng-cn", hmp: "hmp-latn-cn", hmq: "hmq-bopo-cn", hmr: "hmr-latn-in", hms: "hms-latn-cn", hmt: "hmt-latn-zz", hmu: "hmu-latn-id", hmv: "hmv-latn-vn", hmw: "hmw-latn-cn", hmy: "hmy-latn-cn", hmz: "hmz-latn-cn", "hmz-plrd": "hmz-plrd-cn", hna: "hna-latn-cm", hnd: "hnd-arab-pk", hne: "hne-deva-in", hng: "hng-latn-ao", hnh: "hnh-latn-bw", hni: "hni-latn-cn", hnj: "hnj-hmnp-us", "hnj-au": "hnj-laoo-au", "hnj-cn": "hnj-laoo-cn", "hnj-fr": "hnj-laoo-fr", "hnj-gf": "hnj-laoo-gf", "hnj-la": "hnj-laoo-la", "hnj-laoo": "hnj-laoo-la", "hnj-mm": "hnj-laoo-mm", "hnj-sr": "hnj-laoo-sr", "hnj-th": "hnj-laoo-th", "hnj-us": "hnj-hmnp-us", "hnj-vn": "hnj-laoo-vn", hnn: "hnn-latn-ph", hno: "hno-arab-pk", hns: "hns-latn-sr", ho: "ho-latn-pg", hoa: "hoa-latn-sb", hob: "hob-latn-pg", hoc: "hoc-deva-in", hod: "hod-latn-ng", hoe: "hoe-latn-ng", hoh: "hoh-arab-om", hoi: "hoi-latn-us", hoj: "hoj-deva-in", hol: "hol-latn-ao", hom: "hom-latn-ss", hoo: "hoo-latn-cd", hop: "hop-latn-us", hor: "hor-latn-td", hot: "hot-latn-zz", hov: "hov-latn-id", how: "how-hani-cn", hoy: "hoy-deva-in", hpo: "hpo-mymr-mm", hr: "hr-latn-hr", hra: "hra-latn-in", hrc: "hrc-latn-pg", hre: "hre-latn-vn", hrk: "hrk-latn-id", hrm: "hrm-latn-cn", "hrm-hmng": "hrm-hmng-cn", hro: "hro-latn-vn", hrp: "hrp-latn-au", hrt: "hrt-syrc-tr", hru: "hru-latn-in", hrw: "hrw-latn-pg", hrx: "hrx-latn-br", hrz: "hrz-arab-ir", hsb: "hsb-latn-de", hsn: "hsn-hans-cn", hss: "hss-arab-om", ht: "ht-latn-ht", hti: "hti-latn-id", hto: "hto-latn-co", hts: "hts-latn-tz", htu: "htu-latn-id", htx: "htx-xsux-tr", hu: "hu-latn-hu", hub: "hub-latn-pe", huc: "huc-latn-bw", hud: "hud-latn-id", hue: "hue-latn-mx", huf: "huf-latn-pg", hug: "hug-latn-pe", huh: "huh-latn-cl", hui: "hui-latn-zz", huk: "huk-latn-id", hul: "hul-latn-pg", hum: "hum-latn-cd", hup: "hup-latn-us", hur: "hur-latn-ca", hus: "hus-latn-mx", hut: "hut-deva-np", "hut-tibt": "hut-tibt-np", huu: "huu-latn-pe", huv: "huv-latn-mx", huw: "huw-latn-id", hux: "hux-latn-pe", huy: "huy-hebr-il", huz: "huz-cyrl-ru", hvc: "hvc-latn-ht", hve: "hve-latn-mx", hvk: "hvk-latn-nc", hvn: "hvn-latn-id", hvv: "hvv-latn-mx", hwa: "hwa-latn-ci", hwc: "hwc-latn-us", hwo: "hwo-latn-ng", hy: "hy-armn-am", hya: "hya-latn-cm", hyw: "hyw-armn-am", hz: "hz-latn-na", ia: "ia-latn-001", iai: "iai-latn-nc", ian: "ian-latn-zz", iar: "iar-latn-zz", iba: "iba-latn-my", ibb: "ibb-latn-ng", ibd: "ibd-latn-au", ibe: "ibe-latn-ng", ibg: "ibg-latn-ph", ibh: "ibh-latn-vn", ibl: "ibl-latn-ph", ibm: "ibm-latn-ng", ibn: "ibn-latn-ng", ibr: "ibr-latn-ng", ibu: "ibu-latn-id", iby: "iby-latn-zz", ica: "ica-latn-zz", ich: "ich-latn-zz", icr: "icr-latn-co", id: "id-latn-id", ida: "ida-latn-ke", idb: "idb-latn-in", idc: "idc-latn-ng", idd: "idd-latn-zz", ide: "ide-latn-ng", idi: "idi-latn-zz", idr: "idr-latn-ss", ids: "ids-latn-ng", idt: "idt-latn-tl", idu: "idu-latn-zz", ie: "ie-latn-001", ifa: "ifa-latn-ph", ifb: "ifb-latn-ph", ife: "ife-latn-tg", iff: "iff-latn-vu", ifk: "ifk-latn-ph", ifm: "ifm-latn-cg", ifu: "ifu-latn-ph", ify: "ify-latn-ph", ig: "ig-latn-ng", igb: "igb-latn-zz", ige: "ige-latn-zz", igg: "igg-latn-pg", igl: "igl-latn-ng", igm: "igm-latn-pg", ign: "ign-latn-bo", igo: "igo-latn-pg", igs: "igs-latn-001", "igs-grek": "igs-grek-001", igw: "igw-latn-ng", ihb: "ihb-latn-id", ihi: "ihi-latn-ng", ihp: "ihp-latn-id", ihw: "ihw-latn-au", ii: "ii-yiii-cn", iin: "iin-latn-au", ijc: "ijc-latn-ng", ije: "ije-latn-ng", ijj: "ijj-latn-zz", ijn: "ijn-latn-ng", ijs: "ijs-latn-ng", ik: "ik-latn-us", iki: "iki-latn-ng", ikk: "ikk-latn-zz", ikl: "ikl-latn-ng", iko: "iko-latn-ng", ikp: "ikp-latn-ng", ikr: "ikr-latn-au", ikt: "ikt-latn-ca", "ikt-cans": "ikt-cans-ca", ikv: "ikv-latn-ng", ikw: "ikw-latn-zz", ikx: "ikx-latn-zz", ikz: "ikz-latn-tz", ila: "ila-latn-id", ilb: "ilb-latn-zm", ilg: "ilg-latn-au", ili: "ili-latn-cn", "ili-arab": "ili-arab-cn", "ili-cyrl": "ili-cyrl-kz", ilk: "ilk-latn-ph", ilm: "ilm-latn-my", ilo: "ilo-latn-ph", ilp: "ilp-latn-ph", ilu: "ilu-latn-id", ilv: "ilv-latn-ng", imi: "imi-latn-pg", iml: "iml-latn-us", imn: "imn-latn-pg", imo: "imo-latn-zz", imr: "imr-latn-id", ims: "ims-latn-it", imt: "imt-latn-ss", imy: "imy-lyci-tr", in: "in-latn-id", inb: "inb-latn-co", ing: "ing-latn-us", inh: "inh-cyrl-ru", inj: "inj-latn-co", inn: "inn-latn-ph", ino: "ino-latn-pg", inp: "inp-latn-pe", int: "int-mymr-mm", io: "io-latn-001", ior: "ior-ethi-et", iou: "iou-latn-zz", iow: "iow-latn-us", ipi: "ipi-latn-pg", ipo: "ipo-latn-pg", iqu: "iqu-latn-pe", iqw: "iqw-latn-ng", ire: "ire-latn-id", irh: "irh-latn-id", iri: "iri-latn-zz", irk: "irk-latn-tz", irn: "irn-latn-br", iru: "iru-taml-in", "iru-mlym": "iru-mlym-in", irx: "irx-latn-id", iry: "iry-latn-ph", is: "is-latn-is", isa: "isa-latn-pg", isc: "isc-latn-pe", isd: "isd-latn-ph", ish: "ish-latn-ng", isi: "isi-latn-ng", isk: "isk-arab-af", "isk-cyrl": "isk-cyrl-tj", ism: "ism-latn-id", isn: "isn-latn-tz", iso: "iso-latn-ng", ist: "ist-latn-hr", isu: "isu-latn-cm", it: "it-latn-it", itb: "itb-latn-ph", itd: "itd-latn-id", ite: "ite-latn-bo", iti: "iti-latn-ph", itk: "itk-hebr-it", itl: "itl-cyrl-ru", itm: "itm-latn-ng", ito: "ito-latn-bo", itr: "itr-latn-pg", its: "its-latn-ng", itt: "itt-latn-ph", itv: "itv-latn-ph", itw: "itw-latn-ng", itx: "itx-latn-id", ity: "ity-latn-ph", itz: "itz-latn-gt", iu: "iu-cans-ca", ium: "ium-latn-cn", "ium-hani": "ium-hani-cn", "ium-laoo": "ium-laoo-la", "ium-thai": "ium-thai-th", ivb: "ivb-latn-ph", ivv: "ivv-latn-ph", iw: "iw-hebr-il", iwk: "iwk-latn-ph", iwm: "iwm-latn-zz", iwo: "iwo-latn-id", iws: "iws-latn-zz", ixc: "ixc-latn-mx", ixl: "ixl-latn-gt", iya: "iya-latn-ng", iyo: "iyo-latn-cm", iyx: "iyx-latn-cg", izh: "izh-latn-ru", izi: "izi-latn-zz", izr: "izr-latn-ng", izz: "izz-latn-ng", ja: "ja-jpan-jp", jaa: "jaa-latn-br", jab: "jab-latn-zz", jac: "jac-latn-gt", jad: "jad-arab-gn", jae: "jae-latn-pg", jaf: "jaf-latn-ng", jah: "jah-latn-my", jaj: "jaj-latn-sb", jak: "jak-latn-my", jal: "jal-latn-id", jam: "jam-latn-jm", jan: "jan-latn-au", jao: "jao-latn-au", jaq: "jaq-latn-id", jar: "jar-latn-zz", jas: "jas-latn-nc", jat: "jat-arab-af", jau: "jau-latn-id", jax: "jax-latn-id", jay: "jay-latn-au", jaz: "jaz-latn-nc", jbe: "jbe-hebr-il", jbi: "jbi-latn-au", jbj: "jbj-latn-id", jbk: "jbk-latn-pg", jbm: "jbm-latn-ng", jbn: "jbn-arab-ly", jbo: "jbo-latn-001", jbr: "jbr-latn-id", jbt: "jbt-latn-br", jbu: "jbu-latn-zz", jbw: "jbw-latn-au", jct: "jct-cyrl-ua", "jct-latn": "jct-latn-ua", jda: "jda-tibt-in", jdg: "jdg-arab-pk", jdt: "jdt-cyrl-ru", "jdt-hebr": "jdt-hebr-ru", "jdt-latn": "jdt-latn-az", jeb: "jeb-latn-pe", jee: "jee-deva-np", jeh: "jeh-latn-vn", "jeh-laoo": "jeh-laoo-la", jei: "jei-latn-id", jek: "jek-latn-ci", jel: "jel-latn-id", jen: "jen-latn-zz", jer: "jer-latn-ng", jet: "jet-latn-pg", jeu: "jeu-latn-td", jgb: "jgb-latn-cd", jge: "jge-geor-ge", "jge-hebr": "jge-hebr-il", jgk: "jgk-latn-zz", jgo: "jgo-latn-cm", jhi: "jhi-latn-my", ji: "ji-hebr-ua", jia: "jia-latn-cm", jib: "jib-latn-zz", jic: "jic-latn-hn", jid: "jid-latn-ng", jie: "jie-latn-ng", jig: "jig-latn-au", jil: "jil-latn-pg", jim: "jim-latn-cm", jit: "jit-latn-tz", jiu: "jiu-latn-cn", jiv: "jiv-latn-ec", jiy: "jiy-latn-cn", jje: "jje-hang-kr", jjr: "jjr-latn-ng", jka: "jka-latn-id", jkm: "jkm-mymr-mm", "jkm-brai": "jkm-brai-mm", "jkm-latn": "jkm-latn-mm", jko: "jko-latn-pg", jku: "jku-latn-ng", jle: "jle-latn-sd", jma: "jma-latn-pg", jmb: "jmb-latn-ng", jmc: "jmc-latn-tz", jmd: "jmd-latn-id", jmi: "jmi-latn-ng", jml: "jml-deva-np", jmn: "jmn-latn-mm", jmr: "jmr-latn-gh", jms: "jms-latn-ng", jmw: "jmw-latn-pg", jmx: "jmx-latn-mx", jna: "jna-takr-in", jnd: "jnd-arab-pk", jng: "jng-latn-au", jni: "jni-latn-ng", jnj: "jnj-latn-et", "jnj-ethi": "jnj-ethi-et", jnl: "jnl-deva-in", jns: "jns-deva-in", "jns-latn": "jns-latn-in", "jns-takr": "jns-takr-in", job: "job-latn-cd", jod: "jod-latn-ci", jog: "jog-arab-pk", jor: "jor-latn-bo", jow: "jow-latn-ml", jpa: "jpa-hebr-ps", jpr: "jpr-hebr-il", jqr: "jqr-latn-pe", jra: "jra-latn-zz", jrr: "jrr-latn-ng", jrt: "jrt-latn-ng", jru: "jru-latn-ve", jua: "jua-latn-br", jub: "jub-latn-ng", jud: "jud-latn-ci", juh: "juh-latn-ng", jui: "jui-latn-au", juk: "juk-latn-ng", jul: "jul-deva-np", jum: "jum-latn-sd", jun: "jun-orya-in", juo: "juo-latn-ng", jup: "jup-latn-br", jur: "jur-latn-br", jut: "jut-latn-dk", juu: "juu-latn-ng", juw: "juw-latn-ng", juy: "juy-orya-in", jv: "jv-latn-id", jvd: "jvd-latn-id", jvn: "jvn-latn-sr", jw: "jw-latn-id", jwi: "jwi-latn-gh", jya: "jya-tibt-cn", jye: "jye-hebr-il", jyy: "jyy-latn-td", ka: "ka-geor-ge", kaa: "kaa-cyrl-uz", kab: "kab-latn-dz", kac: "kac-latn-mm", kad: "kad-latn-zz", kag: "kag-latn-my", kah: "kah-latn-cf", kai: "kai-latn-zz", kaj: "kaj-latn-ng", kak: "kak-latn-ph", kam: "kam-latn-ke", kao: "kao-latn-ml", kap: "kap-cyrl-ru", kaq: "kaq-latn-pe", kav: "kav-latn-br", kaw: "kaw-kawi-id", kax: "kax-latn-id", kay: "kay-latn-br", kba: "kba-latn-au", kbb: "kbb-latn-br", kbc: "kbc-latn-br", kbd: "kbd-cyrl-ru", kbe: "kbe-latn-au", kbh: "kbh-latn-co", kbi: "kbi-latn-id", kbj: "kbj-latn-cd", kbk: "kbk-latn-pg", kbl: "kbl-latn-td", kbm: "kbm-latn-zz", kbn: "kbn-latn-cf", kbo: "kbo-latn-ss", kbp: "kbp-latn-zz", kbq: "kbq-latn-zz", kbr: "kbr-latn-et", "kbr-ethi": "kbr-ethi-et", kbs: "kbs-latn-ga", kbt: "kbt-latn-pg", kbu: "kbu-arab-pk", kbv: "kbv-latn-id", kbw: "kbw-latn-pg", kbx: "kbx-latn-zz", kby: "kby-arab-ne", kbz: "kbz-latn-ng", kca: "kca-cyrl-ru", kcb: "kcb-latn-pg", kcc: "kcc-latn-ng", kcd: "kcd-latn-id", kce: "kce-latn-ng", kcf: "kcf-latn-ng", kcg: "kcg-latn-ng", kch: "kch-latn-ng", kci: "kci-latn-ng", kcj: "kcj-latn-gw", kck: "kck-latn-zw", kcl: "kcl-latn-zz", kcm: "kcm-latn-cf", kcn: "kcn-latn-ug", kco: "kco-latn-pg", kcp: "kcp-latn-sd", kcq: "kcq-latn-ng", kcs: "kcs-latn-ng", kct: "kct-latn-zz", kcu: "kcu-latn-tz", kcv: "kcv-latn-cd", kcw: "kcw-latn-cd", kcz: "kcz-latn-tz", kda: "kda-latn-au", kdc: "kdc-latn-tz", kdd: "kdd-latn-au", kde: "kde-latn-tz", kdf: "kdf-latn-pg", kdg: "kdg-latn-cd", kdh: "kdh-latn-tg", kdi: "kdi-latn-ug", kdj: "kdj-latn-ug", kdk: "kdk-latn-nc", kdl: "kdl-latn-zz", kdm: "kdm-latn-ng", kdn: "kdn-latn-zw", kdp: "kdp-latn-ng", kdq: "kdq-beng-in", kdr: "kdr-latn-lt", "kdr-cyrl": "kdr-cyrl-ua", kdt: "kdt-thai-th", kdw: "kdw-latn-id", kdx: "kdx-latn-ng", kdy: "kdy-latn-id", kdz: "kdz-latn-cm", kea: "kea-latn-cv", keb: "keb-latn-ga", kec: "kec-latn-sd", ked: "ked-latn-tz", kee: "kee-latn-us", kef: "kef-latn-tg", keg: "keg-latn-sd", keh: "keh-latn-pg", kei: "kei-latn-id", kek: "kek-latn-gt", kel: "kel-latn-cd", kem: "kem-latn-tl", ken: "ken-latn-cm", keo: "keo-latn-ug", ker: "ker-latn-td", kes: "kes-latn-ng", ket: "ket-cyrl-ru", keu: "keu-latn-tg", kew: "kew-latn-pg", kex: "kex-deva-in", "kex-gujr": "kex-gujr-in", key: "key-telu-in", kez: "kez-latn-zz", kfa: "kfa-knda-in", kfb: "kfb-deva-in", kfc: "kfc-telu-in", kfd: "kfd-knda-in", kfe: "kfe-taml-in", kff: "kff-latn-in", "kff-deva": "kff-deva-in", "kff-orya": "kff-orya-in", "kff-telu": "kff-telu-in", kfh: "kfh-mlym-in", kfi: "kfi-taml-in", "kfi-knda": "kfi-knda-in", kfk: "kfk-deva-in", "kfk-takr": "kfk-takr-in", kfl: "kfl-latn-cm", kfm: "kfm-arab-ir", kfn: "kfn-latn-cm", kfo: "kfo-latn-ci", kfp: "kfp-deva-in", kfq: "kfq-deva-in", kfr: "kfr-deva-in", kfs: "kfs-deva-in", kfv: "kfv-latn-in", kfw: "kfw-latn-in", kfx: "kfx-deva-in", "kfx-takr": "kfx-takr-in", kfy: "kfy-deva-in", kfz: "kfz-latn-bf", kg: "kg-latn-cd", kga: "kga-latn-ci", kgb: "kgb-latn-id", kge: "kge-latn-id", kgf: "kgf-latn-zz", kgj: "kgj-deva-np", kgk: "kgk-latn-br", kgl: "kgl-latn-au", kgm: "kgm-latn-br", kgo: "kgo-latn-sd", kgp: "kgp-latn-br", kgq: "kgq-latn-id", kgr: "kgr-latn-id", kgs: "kgs-latn-au", kgt: "kgt-latn-ng", kgu: "kgu-latn-pg", kgv: "kgv-latn-id", kgw: "kgw-latn-id", kgx: "kgx-latn-id", kgy: "kgy-deva-np", kha: "kha-latn-in", khb: "khb-talu-cn", khc: "khc-latn-id", khd: "khd-latn-id", khe: "khe-latn-id", khf: "khf-thai-la", khg: "khg-tibt-cn", khh: "khh-latn-id", khj: "khj-latn-ng", khl: "khl-latn-pg", khn: "khn-deva-in", khp: "khp-latn-id", khq: "khq-latn-ml", khr: "khr-latn-in", "khr-deva": "khr-deva-in", khs: "khs-latn-zz", kht: "kht-mymr-in", khu: "khu-latn-ao", khv: "khv-cyrl-ru", khw: "khw-arab-pk", khx: "khx-latn-cd", khy: "khy-latn-cd", khz: "khz-latn-zz", ki: "ki-latn-ke", kia: "kia-latn-td", kib: "kib-latn-sd", kic: "kic-latn-us", kid: "kid-latn-cm", kie: "kie-latn-td", kif: "kif-deva-np", kig: "kig-latn-id", kih: "kih-latn-pg", kij: "kij-latn-zz", kil: "kil-latn-ng", kim: "kim-cyrl-ru", kio: "kio-latn-us", kip: "kip-deva-np", kiq: "kiq-latn-id", kis: "kis-latn-pg", kit: "kit-latn-pg", kiu: "kiu-latn-tr", kiv: "kiv-latn-tz", kiw: "kiw-latn-zz", kix: "kix-latn-in", kiy: "kiy-latn-id", kiz: "kiz-latn-tz", kj: "kj-latn-na", kja: "kja-latn-id", kjb: "kjb-latn-gt", kjc: "kjc-latn-id", kjd: "kjd-latn-zz", kje: "kje-latn-id", kjg: "kjg-laoo-la", kjh: "kjh-cyrl-ru", kji: "kji-latn-sb", kjj: "kjj-latn-az", kjk: "kjk-latn-id", kjl: "kjl-deva-np", kjm: "kjm-latn-vn", kjn: "kjn-latn-au", kjo: "kjo-deva-in", kjp: "kjp-mymr-mm", "kjp-thai": "kjp-thai-th", kjq: "kjq-latn-us", kjr: "kjr-latn-id", kjs: "kjs-latn-zz", kjt: "kjt-thai-th", kju: "kju-latn-us", kjx: "kjx-latn-pg", kjy: "kjy-latn-zz", kk: "kk-cyrl-kz", "kk-af": "kk-arab-af", "kk-arab": "kk-arab-cn", "kk-cn": "kk-arab-cn", "kk-ir": "kk-arab-ir", "kk-mn": "kk-arab-mn", kka: "kka-latn-ng", kkb: "kkb-latn-id", kkc: "kkc-latn-zz", kkd: "kkd-latn-ng", kke: "kke-latn-gn", "kke-arab": "kke-arab-gn", kkf: "kkf-tibt-in", kkg: "kkg-latn-ph", kkh: "kkh-lana-mm", kki: "kki-latn-tz", kkj: "kkj-latn-cm", kkk: "kkk-latn-sb", kkl: "kkl-latn-id", kkm: "kkm-latn-ng", kko: "kko-latn-sd", kkp: "kkp-latn-au", kkq: "kkq-latn-cd", kkr: "kkr-latn-ng", kks: "kks-latn-ng", kkt: "kkt-deva-np", kku: "kku-latn-ng", kkv: "kkv-latn-id", kkw: "kkw-latn-cg", kkx: "kkx-latn-id", kky: "kky-latn-au", kkz: "kkz-latn-ca", kl: "kl-latn-gl", kla: "kla-latn-us", klb: "klb-latn-mx", klc: "klc-latn-cm", kld: "kld-latn-au", kle: "kle-deva-np", klf: "klf-latn-td", klg: "klg-latn-ph", klh: "klh-latn-pg", kli: "kli-latn-id", klj: "klj-arab-ir", klk: "klk-latn-ng", kll: "kll-latn-ph", klm: "klm-latn-pg", kln: "kln-latn-ke", klo: "klo-latn-ng", klp: "klp-latn-pg", klq: "klq-latn-zz", klr: "klr-deva-np", kls: "kls-latn-pk", "kls-arab": "kls-arab-pk", klt: "klt-latn-zz", klu: "klu-latn-lr", klv: "klv-latn-vu", klw: "klw-latn-id", klx: "klx-latn-zz", kly: "kly-latn-id", klz: "klz-latn-id", km: "km-khmr-kh", kma: "kma-latn-gh", kmb: "kmb-latn-ao", kmc: "kmc-latn-cn", "kmc-hani": "kmc-hani-cn", kmd: "kmd-latn-ph", kme: "kme-latn-cm", kmf: "kmf-latn-pg", kmg: "kmg-latn-pg", kmh: "kmh-latn-zz", kmi: "kmi-latn-ng", kmj: "kmj-deva-in", kmk: "kmk-latn-ph", kml: "kml-latn-ph", kmm: "kmm-latn-in", kmn: "kmn-latn-pg", kmo: "kmo-latn-zz", kmp: "kmp-latn-cm", kmq: "kmq-latn-et", kms: "kms-latn-zz", kmt: "kmt-latn-id", kmu: "kmu-latn-zz", kmv: "kmv-latn-br", kmw: "kmw-latn-zz", kmx: "kmx-latn-pg", kmy: "kmy-latn-ng", kmz: "kmz-arab-ir", kn: "kn-knda-in", kna: "kna-latn-ng", knb: "knb-latn-ph", knd: "knd-latn-id", kne: "kne-latn-ph", knf: "knf-latn-gw", kni: "kni-latn-ng", knj: "knj-latn-gt", knk: "knk-latn-sl", "knk-arab": "knk-arab-sl", knl: "knl-latn-id", knm: "knm-latn-br", kno: "kno-latn-sl", knp: "knp-latn-zz", knq: "knq-latn-my", knr: "knr-latn-pg", kns: "kns-latn-my", "kns-thai": "kns-thai-th", knt: "knt-latn-br", knu: "knu-latn-gn", knv: "knv-latn-pg", knw: "knw-latn-na", knx: "knx-latn-id", kny: "kny-latn-cd", knz: "knz-latn-bf", ko: "ko-kore-kr", koa: "koa-latn-pg", koc: "koc-latn-ng", kod: "kod-latn-id", koe: "koe-latn-ss", kof: "kof-latn-ng", kog: "kog-latn-co", koh: "koh-latn-cg", koi: "koi-cyrl-ru", kok: "kok-deva-in", kol: "kol-latn-zz", koo: "koo-latn-ug", kop: "kop-latn-pg", koq: "koq-latn-ga", kos: "kos-latn-fm", kot: "kot-latn-cm", kou: "kou-latn-td", kov: "kov-latn-ng", kow: "kow-latn-ng", koy: "koy-latn-us", koz: "koz-latn-zz", kpa: "kpa-latn-ng", kpc: "kpc-latn-co", kpd: "kpd-latn-id", kpe: "kpe-latn-lr", kpf: "kpf-latn-zz", kpg: "kpg-latn-fm", kph: "kph-latn-gh", kpi: "kpi-latn-id", kpj: "kpj-latn-br", kpk: "kpk-latn-ng", kpl: "kpl-latn-cd", kpm: "kpm-latn-vn", kpn: "kpn-latn-br", kpo: "kpo-latn-zz", kpq: "kpq-latn-id", kpr: "kpr-latn-zz", kps: "kps-latn-id", kpt: "kpt-cyrl-ru", kpu: "kpu-latn-id", kpw: "kpw-latn-pg", kpx: "kpx-latn-zz", kpy: "kpy-cyrl-ru", kpz: "kpz-latn-ug", kqa: "kqa-latn-pg", kqb: "kqb-latn-zz", kqc: "kqc-latn-pg", kqd: "kqd-syrc-iq", kqe: "kqe-latn-ph", kqf: "kqf-latn-zz", kqg: "kqg-latn-bf", kqh: "kqh-latn-tz", kqi: "kqi-latn-pg", kqj: "kqj-latn-pg", kqk: "kqk-latn-bj", kql: "kql-latn-pg", kqm: "kqm-latn-ci", kqn: "kqn-latn-zm", kqo: "kqo-latn-lr", kqp: "kqp-latn-td", kqq: "kqq-latn-br", kqr: "kqr-latn-my", kqs: "kqs-latn-zz", kqt: "kqt-latn-my", kqu: "kqu-latn-za", kqv: "kqv-latn-id", kqw: "kqw-latn-pg", kqx: "kqx-latn-cm", kqy: "kqy-ethi-zz", kqz: "kqz-latn-za", kr: "kr-latn-zz", kra: "kra-deva-np", krb: "krb-latn-us", krc: "krc-cyrl-ru", krd: "krd-latn-tl", kre: "kre-latn-br", krf: "krf-latn-vu", krh: "krh-latn-ng", kri: "kri-latn-sl", krj: "krj-latn-ph", krk: "krk-cyrl-ru", krl: "krl-latn-ru", krn: "krn-latn-lr", krp: "krp-latn-ng", krr: "krr-khmr-kh", krs: "krs-latn-zz", krt: "krt-latn-ne", kru: "kru-deva-in", krv: "krv-khmr-kh", krw: "krw-latn-lr", krx: "krx-latn-sn", kry: "kry-latn-az", krz: "krz-latn-id", ks: "ks-arab-in", ksa: "ksa-latn-ng", ksb: "ksb-latn-tz", ksc: "ksc-latn-ph", ksd: "ksd-latn-zz", kse: "kse-latn-pg", ksf: "ksf-latn-cm", ksg: "ksg-latn-sb", ksh: "ksh-latn-de", ksi: "ksi-latn-pg", ksj: "ksj-latn-zz", ksk: "ksk-latn-us", ksl: "ksl-latn-pg", ksm: "ksm-latn-ng", ksn: "ksn-latn-ph", kso: "kso-latn-ng", ksp: "ksp-latn-cf", ksq: "ksq-latn-ng", ksr: "ksr-latn-zz", kss: "kss-latn-lr", kst: "kst-latn-bf", ksu: "ksu-mymr-in", ksv: "ksv-latn-cd", ksw: "ksw-mymr-mm", "ksw-latn": "ksw-latn-mm", ksx: "ksx-latn-id", ksz: "ksz-deva-in", kta: "kta-latn-vn", ktb: "ktb-ethi-zz", ktc: "ktc-latn-ng", ktd: "ktd-latn-au", ktf: "ktf-latn-cd", ktg: "ktg-latn-au", kth: "kth-latn-td", kti: "kti-latn-id", ktj: "ktj-latn-ci", ktk: "ktk-latn-pg", ktl: "ktl-arab-ir", ktm: "ktm-latn-zz", ktn: "ktn-latn-br", kto: "kto-latn-zz", ktp: "ktp-plrd-cn", ktq: "ktq-latn-ph", ktr: "ktr-latn-my", kts: "kts-latn-id", ktt: "ktt-latn-id", ktu: "ktu-latn-cd", ktv: "ktv-latn-vn", ktw: "ktw-latn-us", ktx: "ktx-latn-br", kty: "kty-latn-cd", ktz: "ktz-latn-na", ku: "ku-latn-tr", "ku-arab": "ku-arab-iq", "ku-lb": "ku-arab-lb", "ku-yezi": "ku-yezi-ge", kub: "kub-latn-zz", kuc: "kuc-latn-id", kud: "kud-latn-zz", kue: "kue-latn-zz", kuf: "kuf-laoo-la", kug: "kug-latn-ng", kuh: "kuh-latn-ng", kui: "kui-latn-br", kuj: "kuj-latn-zz", kuk: "kuk-latn-id", kul: "kul-latn-ng", kum: "kum-cyrl-ru", kun: "kun-latn-zz", kuo: "kuo-latn-pg", kup: "kup-latn-zz", kuq: "kuq-latn-br", kus: "kus-latn-zz", kut: "kut-latn-ca", kuu: "kuu-latn-us", kuv: "kuv-latn-id", kuw: "kuw-latn-cf", kux: "kux-latn-au", kuy: "kuy-latn-au", kuz: "kuz-latn-cl", kv: "kv-cyrl-ru", kva: "kva-cyrl-ru", kvb: "kvb-latn-id", kvc: "kvc-latn-pg", kvd: "kvd-latn-id", kve: "kve-latn-my", kvf: "kvf-latn-td", kvg: "kvg-latn-zz", kvh: "kvh-latn-id", kvi: "kvi-latn-td", kvj: "kvj-latn-cm", kvl: "kvl-latn-mm", kvm: "kvm-latn-cm", kvn: "kvn-latn-co", kvo: "kvo-latn-id", kvp: "kvp-latn-id", kvq: "kvq-mymr-mm", "kvq-latn": "kvq-latn-mm", kvr: "kvr-latn-id", kvt: "kvt-mymr-mm", kvv: "kvv-latn-id", kvw: "kvw-latn-id", kvx: "kvx-arab-pk", kvy: "kvy-kali-mm", kvz: "kvz-latn-id", kw: "kw-latn-gb", kwa: "kwa-latn-br", kwb: "kwb-latn-ng", kwc: "kwc-latn-cg", kwd: "kwd-latn-sb", kwe: "kwe-latn-id", kwf: "kwf-latn-sb", kwg: "kwg-latn-td", kwh: "kwh-latn-id", kwi: "kwi-latn-co", kwj: "kwj-latn-zz", kwk: "kwk-latn-ca", kwl: "kwl-latn-ng", kwm: "kwm-latn-na", kwn: "kwn-latn-na", kwo: "kwo-latn-zz", kwp: "kwp-latn-ci", kwq: "kwq-latn-zz", kwr: "kwr-latn-id", kws: "kws-latn-cd", kwt: "kwt-latn-id", kwu: "kwu-latn-cm", kwv: "kwv-latn-td", kww: "kww-latn-sr", kwy: "kwy-latn-cd", kwz: "kwz-latn-ao", kxa: "kxa-latn-zz", kxb: "kxb-latn-ci", kxc: "kxc-ethi-zz", kxd: "kxd-latn-bn", "kxd-arab": "kxd-arab-bn", kxe: "kxe-latn-zz", kxf: "kxf-mymr-mm", "kxf-latn": "kxf-latn-mm", kxi: "kxi-latn-my", kxj: "kxj-latn-td", kxk: "kxk-mymr-mm", kxl: "kxl-deva-in", kxm: "kxm-thai-th", kxn: "kxn-latn-my", kxo: "kxo-latn-br", kxp: "kxp-arab-pk", kxq: "kxq-latn-id", kxr: "kxr-latn-pg", kxt: "kxt-latn-pg", kxv: "kxv-orya-in", "kxv-latn": "kxv-latn-in", "kxv-telu": "kxv-telu-in", kxw: "kxw-latn-zz", kxx: "kxx-latn-cg", kxy: "kxy-latn-vn", kxz: "kxz-latn-zz", ky: "ky-cyrl-kg", "ky-arab": "ky-arab-cn", "ky-cn": "ky-arab-cn", "ky-latn": "ky-latn-tr", "ky-tr": "ky-latn-tr", kya: "kya-latn-tz", kyb: "kyb-latn-ph", kyc: "kyc-latn-pg", kyd: "kyd-latn-id", kye: "kye-latn-zz", kyf: "kyf-latn-ci", kyg: "kyg-latn-pg", kyh: "kyh-latn-us", kyi: "kyi-latn-my", kyj: "kyj-latn-ph", kyk: "kyk-latn-ph", kyl: "kyl-latn-us", kym: "kym-latn-cf", kyn: "kyn-latn-ph", kyo: "kyo-latn-id", kyq: "kyq-latn-td", kyr: "kyr-latn-br", kys: "kys-latn-my", kyt: "kyt-latn-id", kyu: "kyu-kali-mm", "kyu-latn": "kyu-latn-mm", "kyu-mymr": "kyu-mymr-mm", kyv: "kyv-deva-np", kyw: "kyw-deva-in", "kyw-beng": "kyw-beng-in", "kyw-orya": "kyw-orya-in", kyx: "kyx-latn-zz", kyy: "kyy-latn-pg", kyz: "kyz-latn-br", kza: "kza-latn-bf", kzb: "kzb-latn-id", kzc: "kzc-latn-ci", kzd: "kzd-latn-id", kze: "kze-latn-pg", kzf: "kzf-latn-id", kzh: "kzh-arab-zz", kzi: "kzi-latn-my", kzj: "kzj-latn-my", kzk: "kzk-latn-sb", kzl: "kzl-latn-id", kzm: "kzm-latn-id", kzn: "kzn-latn-mw", kzo: "kzo-latn-ga", kzp: "kzp-latn-id", kzr: "kzr-latn-zz", kzs: "kzs-latn-my", kzt: "kzt-latn-my", kzu: "kzu-latn-id", kzv: "kzv-latn-id", kzw: "kzw-latn-br", kzx: "kzx-latn-id", kzy: "kzy-latn-cd", kzz: "kzz-latn-id", la: "la-latn-va", laa: "laa-latn-ph", lab: "lab-lina-gr", lac: "lac-latn-mx", lad: "lad-hebr-il", lae: "lae-deva-in", "lae-tibt": "lae-tibt-in", lag: "lag-latn-tz", lah: "lah-arab-pk", lai: "lai-latn-mw", laj: "laj-latn-ug", lal: "lal-latn-cd", lam: "lam-latn-zm", lan: "lan-latn-ng", lap: "lap-latn-td", laq: "laq-latn-vn", lar: "lar-latn-gh", las: "las-latn-zz", lau: "lau-latn-id", law: "law-latn-id", lax: "lax-latn-in", "lax-beng": "lax-beng-in", laz: "laz-latn-pg", lb: "lb-latn-lu", lbb: "lbb-latn-pg", lbc: "lbc-lisu-cn", lbe: "lbe-cyrl-ru", lbf: "lbf-deva-in", "lbf-tibt": "lbf-tibt-cn", lbi: "lbi-latn-cm", lbj: "lbj-tibt-in", "lbj-arab": "lbj-arab-in", lbl: "lbl-latn-ph", lbm: "lbm-deva-in", lbn: "lbn-latn-la", "lbn-laoo": "lbn-laoo-la", lbo: "lbo-laoo-la", "lbo-latn": "lbo-latn-us", lbq: "lbq-latn-pg", lbr: "lbr-deva-np", lbt: "lbt-latn-vn", lbu: "lbu-latn-zz", lbv: "lbv-latn-pg", lbw: "lbw-latn-id", lbx: "lbx-latn-id", lby: "lby-latn-au", lbz: "lbz-latn-au", lcc: "lcc-latn-id", lcd: "lcd-latn-id", lce: "lce-latn-id", lcf: "lcf-latn-id", lch: "lch-latn-ao", lcl: "lcl-latn-id", lcm: "lcm-latn-zz", lcp: "lcp-thai-cn", lcq: "lcq-latn-id", lcs: "lcs-latn-id", lda: "lda-latn-ci", ldb: "ldb-latn-zz", ldd: "ldd-latn-ng", ldg: "ldg-latn-ng", ldh: "ldh-latn-ng", ldi: "ldi-latn-cg", ldj: "ldj-latn-ng", ldk: "ldk-latn-ng", ldl: "ldl-latn-ng", ldm: "ldm-latn-gn", ldn: "ldn-latn-001", ldo: "ldo-latn-ng", ldp: "ldp-latn-ng", ldq: "ldq-latn-ng", lea: "lea-latn-cd", leb: "leb-latn-zm", lec: "lec-latn-bo", led: "led-latn-zz", lee: "lee-latn-zz", lef: "lef-latn-gh", leh: "leh-latn-zm", lei: "lei-latn-pg", lej: "lej-latn-cd", lek: "lek-latn-pg", lel: "lel-latn-cd", lem: "lem-latn-zz", len: "len-latn-hn", leo: "leo-latn-cm", lep: "lep-lepc-in", leq: "leq-latn-zz", ler: "ler-latn-pg", les: "les-latn-cd", let: "let-latn-pg", leu: "leu-latn-zz", lev: "lev-latn-id", lew: "lew-latn-id", lex: "lex-latn-id", ley: "ley-latn-id", lez: "lez-cyrl-ru", lfa: "lfa-latn-cm", lfn: "lfn-latn-001", "lfn-cyrl": "lfn-cyrl-001", lg: "lg-latn-ug", lga: "lga-latn-sb", lgb: "lgb-latn-sb", lgg: "lgg-latn-zz", lgh: "lgh-latn-vn", lgi: "lgi-latn-id", lgk: "lgk-latn-vu", lgl: "lgl-latn-sb", lgm: "lgm-latn-cd", lgn: "lgn-latn-et", lgo: "lgo-latn-ss", lgq: "lgq-latn-gh", lgr: "lgr-latn-sb", lgt: "lgt-latn-pg", lgu: "lgu-latn-sb", lgz: "lgz-latn-cd", lha: "lha-latn-vn", lhh: "lhh-latn-id", lhi: "lhi-latn-cn", lhm: "lhm-deva-np", lhn: "lhn-latn-my", lhs: "lhs-syrc-sy", lht: "lht-latn-vu", lhu: "lhu-latn-cn", li: "li-latn-nl", lia: "lia-latn-zz", lib: "lib-latn-pg", lic: "lic-latn-cn", lid: "lid-latn-zz", lie: "lie-latn-cd", lif: "lif-deva-np", "lif-limb": "lif-limb-in", lig: "lig-latn-zz", lih: "lih-latn-zz", lij: "lij-latn-it", lik: "lik-latn-cd", lil: "lil-latn-ca", lio: "lio-latn-id", lip: "lip-latn-gh", liq: "liq-latn-et", lir: "lir-latn-lr", lis: "lis-lisu-cn", liu: "liu-latn-sd", liv: "liv-latn-lv", liw: "liw-latn-id", lix: "lix-latn-id", liy: "liy-latn-cf", liz: "liz-latn-cd", lja: "lja-latn-au", lje: "lje-latn-id", lji: "lji-latn-id", ljl: "ljl-latn-id", ljp: "ljp-latn-id", ljw: "ljw-latn-au", ljx: "ljx-latn-au", lka: "lka-latn-tl", lkb: "lkb-latn-ke", lkc: "lkc-latn-vn", lkd: "lkd-latn-br", lke: "lke-latn-ug", lkh: "lkh-tibt-bt", lki: "lki-arab-ir", lkj: "lkj-latn-my", lkl: "lkl-latn-pg", lkm: "lkm-latn-au", lkn: "lkn-latn-vu", lko: "lko-latn-ke", lkr: "lkr-latn-ss", lks: "lks-latn-ke", lkt: "lkt-latn-us", lku: "lku-latn-au", lky: "lky-latn-ss", lla: "lla-latn-ng", llb: "llb-latn-mz", llc: "llc-latn-gn", lld: "lld-latn-it", lle: "lle-latn-zz", llf: "llf-latn-pg", llg: "llg-latn-id", lli: "lli-latn-cg", llj: "llj-latn-au", llk: "llk-latn-my", lll: "lll-latn-pg", llm: "llm-latn-id", lln: "lln-latn-zz", llp: "llp-latn-vu", llq: "llq-latn-id", llu: "llu-latn-sb", llx: "llx-latn-fj", lma: "lma-latn-gn", lmb: "lmb-latn-vu", lmc: "lmc-latn-au", lmd: "lmd-latn-sd", lme: "lme-latn-td", lmf: "lmf-latn-id", lmg: "lmg-latn-pg", lmh: "lmh-deva-np", lmi: "lmi-latn-cd", lmj: "lmj-latn-id", lmk: "lmk-latn-in", "lmk-mymr": "lmk-mymr-in", lml: "lml-latn-vu", lmn: "lmn-telu-in", lmo: "lmo-latn-it", lmp: "lmp-latn-zz", lmq: "lmq-latn-id", lmr: "lmr-latn-id", lmu: "lmu-latn-vu", lmv: "lmv-latn-fj", lmw: "lmw-latn-us", lmx: "lmx-latn-cm", lmy: "lmy-latn-id", ln: "ln-latn-cd", lna: "lna-latn-cf", lnb: "lnb-latn-na", lnd: "lnd-latn-id", lnh: "lnh-latn-my", lni: "lni-latn-pg", lnj: "lnj-latn-au", lnl: "lnl-latn-cf", lnm: "lnm-latn-pg", lnn: "lnn-latn-vu", lns: "lns-latn-zz", lnu: "lnu-latn-zz", lnw: "lnw-latn-au", lnz: "lnz-latn-cd", lo: "lo-laoo-la", loa: "loa-latn-id", lob: "lob-latn-bf", loc: "loc-latn-ph", loe: "loe-latn-id", log: "log-latn-cd", loh: "loh-latn-ss", loi: "loi-latn-ci", loj: "loj-latn-zz", lok: "lok-latn-zz", lol: "lol-latn-cd", lom: "lom-latn-lr", lon: "lon-latn-mw", loo: "loo-latn-cd", lop: "lop-latn-ng", loq: "loq-latn-cd", lor: "lor-latn-zz", los: "los-latn-zz", lot: "lot-latn-ss", "lot-arab": "lot-arab-ss", lou: "lou-latn-us", low: "low-latn-my", lox: "lox-latn-id", loy: "loy-deva-np", "loy-tibt": "loy-tibt-np", loz: "loz-latn-zm", lpa: "lpa-latn-vu", lpe: "lpe-latn-id", lpn: "lpn-latn-mm", lpo: "lpo-plrd-cn", "lpo-lisu": "lpo-lisu-cn", lpx: "lpx-latn-ss", lqr: "lqr-latn-ss", lra: "lra-latn-my", lrc: "lrc-arab-ir", lrg: "lrg-latn-au", lri: "lri-latn-ke", lrk: "lrk-arab-pk", lrl: "lrl-arab-ir", lrm: "lrm-latn-ke", lrn: "lrn-latn-id", lro: "lro-latn-sd", lrt: "lrt-latn-id", lrv: "lrv-latn-vu", lrz: "lrz-latn-vu", lsa: "lsa-arab-ir", lsd: "lsd-hebr-il", lse: "lse-latn-cd", lsi: "lsi-latn-mm", lsm: "lsm-latn-ug", lsr: "lsr-latn-pg", lss: "lss-arab-pk", lt: "lt-latn-lt", ltg: "ltg-latn-lv", lth: "lth-latn-ug", lti: "lti-latn-id", ltn: "ltn-latn-br", lto: "lto-latn-ke", lts: "lts-latn-ke", ltu: "ltu-latn-id", lu: "lu-latn-cd", lua: "lua-latn-cd", luc: "luc-latn-ug", lud: "lud-latn-ru", lue: "lue-latn-zm", luf: "luf-latn-pg", lui: "lui-latn-us", luj: "luj-latn-cd", luk: "luk-tibt-bt", lul: "lul-latn-ss", lum: "lum-latn-ao", lun: "lun-latn-zm", luo: "luo-latn-ke", lup: "lup-latn-ga", luq: "luq-latn-cu", lur: "lur-latn-id", lus: "lus-latn-in", "lus-beng": "lus-beng-bd", "lus-brai": "lus-brai-in", lut: "lut-latn-us", luu: "luu-deva-np", luv: "luv-arab-om", luw: "luw-latn-cm", luy: "luy-latn-ke", luz: "luz-arab-ir", lv: "lv-latn-lv", lva: "lva-latn-tl", lvi: "lvi-latn-la", lvk: "lvk-latn-sb", lvu: "lvu-latn-id", lwa: "lwa-latn-cd", lwe: "lwe-latn-id", lwg: "lwg-latn-ke", lwh: "lwh-latn-vn", lwl: "lwl-thai-th", lwm: "lwm-thai-cn", lwo: "lwo-latn-ss", "lwo-za": "lwo-latn-za", lwt: "lwt-latn-id", lww: "lww-latn-vu", lxm: "lxm-latn-pg", lya: "lya-tibt-bt", lyn: "lyn-latn-zm", lzh: "lzh-hans-cn", lzl: "lzl-latn-vu", lzn: "lzn-latn-mm", lzz: "lzz-latn-tr", maa: "maa-latn-mx", mab: "mab-latn-mx", mad: "mad-latn-id", mae: "mae-latn-ng", maf: "maf-latn-cm", mag: "mag-deva-in", mai: "mai-deva-in", maj: "maj-latn-mx", mak: "mak-latn-id", mam: "mam-latn-gt", man: "man-latn-gm", "man-gn": "man-nkoo-gn", "man-nkoo": "man-nkoo-gn", maq: "maq-latn-mx", mas: "mas-latn-ke", mat: "mat-latn-mx", mau: "mau-latn-mx", mav: "mav-latn-br", maw: "maw-latn-zz", max: "max-latn-id", maz: "maz-latn-mx", mba: "mba-latn-ph", mbb: "mbb-latn-ph", mbc: "mbc-latn-br", mbd: "mbd-latn-ph", mbf: "mbf-latn-sg", mbh: "mbh-latn-zz", mbi: "mbi-latn-ph", mbj: "mbj-latn-br", mbk: "mbk-latn-pg", mbl: "mbl-latn-br", mbm: "mbm-latn-cg", mbn: "mbn-latn-co", mbo: "mbo-latn-zz", mbp: "mbp-latn-co", mbq: "mbq-latn-zz", mbr: "mbr-latn-co", mbs: "mbs-latn-ph", mbt: "mbt-latn-ph", mbu: "mbu-latn-zz", mbv: "mbv-latn-gn", mbw: "mbw-latn-zz", mbx: "mbx-latn-pg", mby: "mby-arab-pk", mbz: "mbz-latn-mx", mca: "mca-latn-py", mcb: "mcb-latn-pe", mcc: "mcc-latn-pg", mcd: "mcd-latn-pe", mce: "mce-latn-mx", mcf: "mcf-latn-pe", mcg: "mcg-latn-ve", mch: "mch-latn-ve", mci: "mci-latn-zz", mcj: "mcj-latn-ng", mck: "mck-latn-ao", mcl: "mcl-latn-co", mcm: "mcm-latn-my", mcn: "mcn-latn-td", mco: "mco-latn-mx", mcp: "mcp-latn-zz", mcq: "mcq-latn-zz", mcr: "mcr-latn-zz", mcs: "mcs-latn-cm", mct: "mct-latn-cm", mcu: "mcu-latn-zz", mcv: "mcv-latn-pg", mcw: "mcw-latn-td", mcx: "mcx-latn-cf", mcy: "mcy-latn-pg", mcz: "mcz-latn-pg", mda: "mda-latn-zz", mdb: "mdb-latn-pg", mdc: "mdc-latn-pg", mdd: "mdd-latn-cm", mde: "mde-arab-zz", mdf: "mdf-cyrl-ru", mdg: "mdg-latn-td", mdh: "mdh-latn-ph", mdi: "mdi-latn-cd", mdj: "mdj-latn-zz", mdk: "mdk-latn-cd", mdm: "mdm-latn-cd", mdn: "mdn-latn-cf", mdp: "mdp-latn-cd", mdq: "mdq-latn-cd", mdr: "mdr-latn-id", mds: "mds-latn-pg", mdt: "mdt-latn-cg", mdu: "mdu-latn-cg", mdv: "mdv-latn-mx", mdw: "mdw-latn-cg", mdx: "mdx-ethi-zz", mdy: "mdy-ethi-et", "mdy-latn": "mdy-latn-et", mdz: "mdz-latn-br", mea: "mea-latn-cm", meb: "meb-latn-pg", mec: "mec-latn-au", med: "med-latn-zz", mee: "mee-latn-zz", meh: "meh-latn-mx", mej: "mej-latn-id", mek: "mek-latn-zz", mel: "mel-latn-my", mem: "mem-latn-au", men: "men-latn-sl", meo: "meo-latn-my", "meo-arab": "meo-arab-my", mep: "mep-latn-au", meq: "meq-latn-cm", mer: "mer-latn-ke", mes: "mes-latn-td", met: "met-latn-zz", meu: "meu-latn-zz", mev: "mev-latn-lr", mew: "mew-latn-ng", mey: "mey-latn-mr", "mey-arab": "mey-arab-mr", mez: "mez-latn-us", mfa: "mfa-arab-th", mfb: "mfb-latn-id", mfc: "mfc-latn-cd", mfd: "mfd-latn-cm", mfe: "mfe-latn-mu", mff: "mff-latn-cm", mfg: "mfg-latn-gn", "mfg-arab": "mfg-arab-gn", mfh: "mfh-latn-cm", mfi: "mfi-arab-cm", "mfi-latn": "mfi-latn-cm", mfj: "mfj-latn-cm", mfk: "mfk-latn-cm", mfl: "mfl-latn-ng", mfm: "mfm-latn-ng", mfn: "mfn-latn-zz", mfo: "mfo-latn-zz", mfp: "mfp-latn-id", mfq: "mfq-latn-zz", mfr: "mfr-latn-au", mft: "mft-latn-pg", mfu: "mfu-latn-ao", mfv: "mfv-latn-gw", mfw: "mfw-latn-pg", mfx: "mfx-latn-et", "mfx-ethi": "mfx-ethi-et", mfy: "mfy-latn-mx", mfz: "mfz-latn-ss", mg: "mg-latn-mg", mgb: "mgb-latn-td", mgc: "mgc-latn-ss", mgd: "mgd-latn-ss", "mgd-arab": "mgd-arab-ss", mge: "mge-latn-td", mgf: "mgf-latn-id", mgg: "mgg-latn-cm", mgh: "mgh-latn-mz", mgi: "mgi-latn-ng", mgj: "mgj-latn-ng", mgk: "mgk-latn-id", mgl: "mgl-latn-zz", mgm: "mgm-latn-tl", mgn: "mgn-latn-cf", mgo: "mgo-latn-cm", mgp: "mgp-deva-np", mgq: "mgq-latn-tz", mgr: "mgr-latn-zm", mgs: "mgs-latn-tz", mgt: "mgt-latn-pg", mgu: "mgu-latn-pg", mgv: "mgv-latn-tz", mgw: "mgw-latn-tz", mgy: "mgy-latn-tz", mgz: "mgz-latn-tz", mh: "mh-latn-mh", mhb: "mhb-latn-ga", mhc: "mhc-latn-mx", mhd: "mhd-latn-tz", mhe: "mhe-latn-my", mhf: "mhf-latn-pg", mhg: "mhg-latn-au", mhi: "mhi-latn-zz", mhj: "mhj-arab-af", mhk: "mhk-latn-cm", mhl: "mhl-latn-zz", mhm: "mhm-latn-mz", mhn: "mhn-latn-it", mho: "mho-latn-zm", mhp: "mhp-latn-id", mhq: "mhq-latn-us", mhs: "mhs-latn-id", mht: "mht-latn-ve", mhu: "mhu-latn-in", mhw: "mhw-latn-bw", mhx: "mhx-latn-mm", mhy: "mhy-latn-id", mhz: "mhz-latn-id", mi: "mi-latn-nz", mia: "mia-latn-us", mib: "mib-latn-mx", mic: "mic-latn-ca", mid: "mid-mand-iq", mie: "mie-latn-mx", mif: "mif-latn-zz", mig: "mig-latn-mx", mih: "mih-latn-mx", mii: "mii-latn-mx", mij: "mij-latn-cm", mik: "mik-latn-us", mil: "mil-latn-mx", mim: "mim-latn-mx", min: "min-latn-id", mio: "mio-latn-mx", mip: "mip-latn-mx", miq: "miq-latn-ni", mir: "mir-latn-mx", mit: "mit-latn-mx", miu: "miu-latn-mx", miw: "miw-latn-zz", mix: "mix-latn-mx", miy: "miy-latn-mx", miz: "miz-latn-mx", mjb: "mjb-latn-tl", mjc: "mjc-latn-mx", mjd: "mjd-latn-us", mje: "mje-latn-td", mjg: "mjg-latn-cn", mjh: "mjh-latn-tz", mji: "mji-latn-cn", mjj: "mjj-latn-pg", mjk: "mjk-latn-pg", mjl: "mjl-deva-in", "mjl-takr": "mjl-takr-in", mjm: "mjm-latn-pg", mjn: "mjn-latn-pg", mjq: "mjq-mlym-in", mjr: "mjr-mlym-in", mjs: "mjs-latn-ng", mjt: "mjt-deva-in", "mjt-beng": "mjt-beng-bd", mju: "mju-telu-in", mjv: "mjv-mlym-in", mjw: "mjw-latn-in", mjx: "mjx-latn-bd", "mjx-beng": "mjx-beng-bd", mjy: "mjy-latn-us", mjz: "mjz-deva-np", mk: "mk-cyrl-mk", mka: "mka-latn-ci", mkb: "mkb-deva-in", mkc: "mkc-latn-pg", mke: "mke-deva-in", mkf: "mkf-latn-ng", mki: "mki-arab-zz", mkj: "mkj-latn-fm", mkk: "mkk-latn-cm", mkl: "mkl-latn-zz", mkm: "mkm-thai-th", mkn: "mkn-latn-id", mko: "mko-latn-ng", mkp: "mkp-latn-zz", mkr: "mkr-latn-pg", mks: "mks-latn-mx", mkt: "mkt-latn-nc", mku: "mku-latn-gn", mkv: "mkv-latn-vu", mkw: "mkw-latn-zz", mkx: "mkx-latn-ph", mky: "mky-latn-id", mkz: "mkz-latn-tl", ml: "ml-mlym-in", mla: "mla-latn-vu", mlb: "mlb-latn-cm", mlc: "mlc-latn-vn", mle: "mle-latn-zz", mlf: "mlf-thai-la", "mlf-latn": "mlf-latn-la", mlh: "mlh-latn-pg", mli: "mli-latn-id", mlj: "mlj-latn-td", mlk: "mlk-latn-ke", mll: "mll-latn-vu", mln: "mln-latn-sb", mlo: "mlo-latn-sn", mlp: "mlp-latn-zz", mlq: "mlq-latn-sn", "mlq-arab": "mlq-arab-sn", mlr: "mlr-latn-cm", mls: "mls-latn-sd", mlu: "mlu-latn-sb", mlv: "mlv-latn-vu", mlw: "mlw-latn-cm", mlx: "mlx-latn-vu", mlz: "mlz-latn-ph", mma: "mma-latn-ng", mmb: "mmb-latn-id", mmc: "mmc-latn-mx", mmd: "mmd-latn-cn", "mmd-hans": "mmd-hans-cn", "mmd-hant": "mmd-hant-cn", mme: "mme-latn-vu", mmf: "mmf-latn-ng", mmg: "mmg-latn-vu", mmh: "mmh-latn-br", mmi: "mmi-latn-pg", mmm: "mmm-latn-vu", mmn: "mmn-latn-ph", mmo: "mmo-latn-zz", mmp: "mmp-latn-pg", mmq: "mmq-latn-pg", mmr: "mmr-latn-cn", mmt: "mmt-latn-pg", mmu: "mmu-latn-zz", mmv: "mmv-latn-br", mmw: "mmw-latn-vu", mmx: "mmx-latn-zz", mmy: "mmy-latn-td", mmz: "mmz-latn-cd", mn: "mn-cyrl-mn", "mn-cn": "mn-mong-cn", "mn-mong": "mn-mong-cn", mna: "mna-latn-zz", mnb: "mnb-latn-id", mnd: "mnd-latn-br", mne: "mne-latn-td", mnf: "mnf-latn-zz", mng: "mng-latn-vn", mnh: "mnh-latn-cd", mni: "mni-beng-in", mnj: "mnj-arab-af", mnl: "mnl-latn-vu", mnm: "mnm-latn-pg", mnn: "mnn-latn-vn", mnp: "mnp-latn-cn", mnq: "mnq-latn-my", mnr: "mnr-latn-us", mns: "mns-cyrl-ru", mnu: "mnu-latn-id", mnv: "mnv-latn-sb", mnw: "mnw-mymr-mm", mnx: "mnx-latn-id", mny: "mny-latn-mz", mnz: "mnz-latn-id", mo: "mo-latn-ro", moa: "moa-latn-zz", moc: "moc-latn-ar", mod: "mod-latn-us", moe: "moe-latn-ca", mog: "mog-latn-id", moh: "moh-latn-ca", moi: "moi-latn-ng", moj: "moj-latn-cg", mok: "mok-latn-id", mom: "mom-latn-ni", moo: "moo-latn-vn", mop: "mop-latn-bz", moq: "moq-latn-id", mor: "mor-latn-sd", mos: "mos-latn-bf", mot: "mot-latn-co", mou: "mou-latn-td", mov: "mov-latn-us", mow: "mow-latn-cg", mox: "mox-latn-zz", moy: "moy-latn-et", "moy-ethi": "moy-ethi-et", moz: "moz-latn-td", mpa: "mpa-latn-tz", mpb: "mpb-latn-au", mpc: "mpc-latn-au", mpd: "mpd-latn-br", mpe: "mpe-latn-et", "mpe-ethi": "mpe-ethi-et", mpg: "mpg-latn-td", mph: "mph-latn-au", mpi: "mpi-latn-cm", mpj: "mpj-latn-au", mpk: "mpk-latn-td", mpl: "mpl-latn-pg", mpm: "mpm-latn-mx", mpn: "mpn-latn-pg", mpo: "mpo-latn-pg", mpp: "mpp-latn-zz", mpq: "mpq-latn-br", mpr: "mpr-latn-sb", mps: "mps-latn-zz", mpt: "mpt-latn-zz", mpu: "mpu-latn-br", mpv: "mpv-latn-pg", mpw: "mpw-latn-br", mpx: "mpx-latn-zz", mpy: "mpy-latn-id", mpz: "mpz-thai-th", mqa: "mqa-latn-id", mqb: "mqb-latn-cm", mqc: "mqc-latn-id", mqe: "mqe-latn-pg", mqf: "mqf-latn-id", mqg: "mqg-latn-id", mqh: "mqh-latn-mx", mqi: "mqi-latn-id", mqj: "mqj-latn-id", mqk: "mqk-latn-ph", mql: "mql-latn-zz", mqm: "mqm-latn-pf", mqn: "mqn-latn-id", mqo: "mqo-latn-id", mqp: "mqp-latn-id", mqq: "mqq-latn-my", mqr: "mqr-latn-id", mqs: "mqs-latn-id", mqu: "mqu-latn-ss", mqv: "mqv-latn-pg", mqw: "mqw-latn-pg", mqx: "mqx-latn-id", "mqx-bugi": "mqx-bugi-id", mqy: "mqy-latn-id", mqz: "mqz-latn-pg", mr: "mr-deva-in", mra: "mra-thai-th", mrb: "mrb-latn-vu", mrc: "mrc-latn-us", mrd: "mrd-deva-np", mrf: "mrf-latn-id", mrg: "mrg-latn-in", "mrg-beng": "mrg-beng-in", "mrg-deva": "mrg-deva-in", mrh: "mrh-latn-in", mrj: "mrj-cyrl-ru", mrk: "mrk-latn-nc", mrl: "mrl-latn-fm", mrm: "mrm-latn-vu", mrn: "mrn-latn-sb", mro: "mro-mroo-bd", mrp: "mrp-latn-vu", mrq: "mrq-latn-pf", mrr: "mrr-deva-in", mrs: "mrs-latn-vu", mrt: "mrt-latn-ng", mru: "mru-latn-cm", mrv: "mrv-latn-pf", mrw: "mrw-latn-ph", "mrw-arab": "mrw-arab-ph", mrx: "mrx-latn-id", mry: "mry-latn-ph", mrz: "mrz-latn-id", ms: "ms-latn-my", "ms-cc": "ms-arab-cc", msb: "msb-latn-ph", msc: "msc-latn-gn", mse: "mse-latn-td", msf: "msf-latn-id", msg: "msg-latn-id", msh: "msh-latn-mg", msi: "msi-latn-my", msj: "msj-latn-cd", msk: "msk-latn-ph", msl: "msl-latn-id", msm: "msm-latn-ph", msn: "msn-latn-vu", mso: "mso-latn-id", msp: "msp-latn-br", msq: "msq-latn-nc", mss: "mss-latn-id", msu: "msu-latn-pg", msv: "msv-latn-cm", msw: "msw-latn-gw", msx: "msx-latn-pg", msy: "msy-latn-pg", msz: "msz-latn-pg", mt: "mt-latn-mt", mta: "mta-latn-ph", mtb: "mtb-latn-ci", mtc: "mtc-latn-zz", mtd: "mtd-latn-id", mte: "mte-latn-sb", mtf: "mtf-latn-zz", mtg: "mtg-latn-id", mth: "mth-latn-id", mti: "mti-latn-zz", mtj: "mtj-latn-id", mtk: "mtk-latn-cm", mtl: "mtl-latn-ng", mtm: "mtm-cyrl-ru", mtn: "mtn-latn-ni", mto: "mto-latn-mx", mtp: "mtp-latn-bo", mtq: "mtq-latn-vn", mtr: "mtr-deva-in", mts: "mts-latn-pe", mtt: "mtt-latn-vu", mtu: "mtu-latn-mx", mtv: "mtv-latn-pg", mtw: "mtw-latn-ph", mtx: "mtx-latn-mx", mty: "mty-latn-pg", mua: "mua-latn-cm", mub: "mub-latn-td", muc: "muc-latn-cm", mud: "mud-cyrl-ru", mue: "mue-latn-ec", mug: "mug-latn-cm", muh: "muh-latn-ss", mui: "mui-latn-id", muj: "muj-latn-td", muk: "muk-tibt-np", mum: "mum-latn-pg", muo: "muo-latn-cm", muq: "muq-latn-cn", mur: "mur-latn-zz", mus: "mus-latn-us", mut: "mut-deva-in", muu: "muu-latn-ke", muv: "muv-taml-in", mux: "mux-latn-pg", muy: "muy-latn-cm", muz: "muz-ethi-et", "muz-latn": "muz-latn-et", mva: "mva-latn-zz", mvd: "mvd-latn-id", mvf: "mvf-mong-cn", "mvf-phag": "mvf-phag-cn", mvg: "mvg-latn-mx", mvh: "mvh-latn-td", mvk: "mvk-latn-pg", mvl: "mvl-latn-au", mvn: "mvn-latn-zz", mvo: "mvo-latn-sb", mvp: "mvp-latn-id", mvq: "mvq-latn-pg", mvr: "mvr-latn-id", mvs: "mvs-latn-id", mvt: "mvt-latn-vu", mvu: "mvu-latn-td", mvv: "mvv-latn-my", mvw: "mvw-latn-tz", mvx: "mvx-latn-id", mvy: "mvy-arab-pk", mvz: "mvz-ethi-et", "mvz-arab": "mvz-arab-et", mwa: "mwa-latn-pg", mwb: "mwb-latn-pg", mwc: "mwc-latn-pg", mwe: "mwe-latn-tz", mwf: "mwf-latn-au", mwg: "mwg-latn-pg", mwh: "mwh-latn-pg", mwi: "mwi-latn-vu", mwk: "mwk-latn-ml", mwl: "mwl-latn-pt", mwm: "mwm-latn-td", mwn: "mwn-latn-zm", mwo: "mwo-latn-vu", mwp: "mwp-latn-au", mwq: "mwq-latn-mm", mwr: "mwr-deva-in", mws: "mws-latn-ke", mwt: "mwt-mymr-mm", "mwt-thai": "mwt-thai-th", mwu: "mwu-latn-ss", mwv: "mwv-latn-id", mww: "mww-hmnp-us", mwz: "mwz-latn-cd", mxa: "mxa-latn-mx", mxb: "mxb-latn-mx", mxc: "mxc-latn-zw", mxd: "mxd-latn-id", mxe: "mxe-latn-vu", mxf: "mxf-latn-cm", mxg: "mxg-latn-ao", mxh: "mxh-latn-cd", mxi: "mxi-latn-es", mxj: "mxj-latn-in", mxk: "mxk-latn-pg", mxl: "mxl-latn-bj", mxm: "mxm-latn-zz", mxn: "mxn-latn-id", mxo: "mxo-latn-zm", mxp: "mxp-latn-mx", mxq: "mxq-latn-mx", mxr: "mxr-latn-my", mxs: "mxs-latn-mx", mxt: "mxt-latn-mx", mxu: "mxu-latn-cm", mxv: "mxv-latn-mx", mxw: "mxw-latn-pg", mxx: "mxx-latn-ci", mxy: "mxy-latn-mx", mxz: "mxz-latn-id", my: "my-mymr-mm", myb: "myb-latn-td", myc: "myc-latn-cd", mye: "mye-latn-ga", myf: "myf-latn-et", myg: "myg-latn-cm", myh: "myh-latn-us", myj: "myj-latn-ss", myk: "myk-latn-zz", myl: "myl-latn-id", mym: "mym-ethi-zz", myp: "myp-latn-br", myr: "myr-latn-pe", myu: "myu-latn-br", myv: "myv-cyrl-ru", myw: "myw-latn-zz", myx: "myx-latn-ug", myy: "myy-latn-co", myz: "myz-mand-ir", mza: "mza-latn-mx", mzd: "mzd-latn-cm", mze: "mze-latn-pg", mzh: "mzh-latn-ar", mzi: "mzi-latn-mx", mzj: "mzj-latn-lr", mzk: "mzk-latn-zz", mzl: "mzl-latn-mx", mzm: "mzm-latn-zz", mzn: "mzn-arab-ir", mzo: "mzo-latn-br", mzp: "mzp-latn-zz", mzq: "mzq-latn-id", mzr: "mzr-latn-br", mzt: "mzt-latn-my", mzu: "mzu-latn-pg", mzv: "mzv-latn-cf", mzw: "mzw-latn-zz", mzx: "mzx-latn-gy", mzz: "mzz-latn-zz", na: "na-latn-nr", naa: "naa-latn-id", nab: "nab-latn-br", nac: "nac-latn-zz", nae: "nae-latn-id", naf: "naf-latn-zz", nag: "nag-latn-in", naj: "naj-latn-gn", nak: "nak-latn-zz", nal: "nal-latn-pg", nam: "nam-latn-au", nan: "nan-hans-cn", nao: "nao-deva-np", nap: "nap-latn-it", naq: "naq-latn-na", nar: "nar-latn-ng", nas: "nas-latn-zz", nat: "nat-latn-ng", naw: "naw-latn-gh", nax: "nax-latn-pg", nay: "nay-latn-au", naz: "naz-latn-mx", nb: "nb-latn-no", nba: "nba-latn-ao", nbb: "nbb-latn-ng", nbc: "nbc-latn-in", nbd: "nbd-latn-cd", nbe: "nbe-latn-in", nbh: "nbh-latn-ng", nbi: "nbi-latn-in", nbj: "nbj-latn-au", nbk: "nbk-latn-pg", nbm: "nbm-latn-cf", nbn: "nbn-latn-id", nbo: "nbo-latn-ng", nbp: "nbp-latn-ng", nbq: "nbq-latn-id", nbr: "nbr-latn-ng", nbt: "nbt-latn-in", "nbt-deva": "nbt-deva-in", nbu: "nbu-latn-in", nbv: "nbv-latn-cm", nbw: "nbw-latn-cd", nby: "nby-latn-pg", nca: "nca-latn-zz", ncb: "ncb-latn-in", "ncb-deva": "ncb-deva-in", ncc: "ncc-latn-pg", ncd: "ncd-deva-np", nce: "nce-latn-zz", ncf: "ncf-latn-zz", ncg: "ncg-latn-ca", nch: "nch-latn-mx", nci: "nci-latn-mx", ncj: "ncj-latn-mx", nck: "nck-latn-au", ncl: "ncl-latn-mx", ncm: "ncm-latn-pg", ncn: "ncn-latn-pg", nco: "nco-latn-zz", ncq: "ncq-laoo-la", "ncq-thai": "ncq-thai-la", ncr: "ncr-latn-cm", nct: "nct-latn-in", "nct-beng": "nct-beng-in", ncu: "ncu-latn-zz", ncx: "ncx-latn-mx", ncz: "ncz-latn-us", nd: "nd-latn-zw", nda: "nda-latn-cg", ndb: "ndb-latn-cm", ndc: "ndc-latn-mz", ndd: "ndd-latn-ng", ndf: "ndf-cyrl-ru", ndg: "ndg-latn-tz", ndh: "ndh-latn-tz", ndi: "ndi-latn-ng", ndj: "ndj-latn-tz", ndk: "ndk-latn-cd", ndl: "ndl-latn-cd", ndm: "ndm-latn-td", ndn: "ndn-latn-cg", ndp: "ndp-latn-ug", ndq: "ndq-latn-ao", ndr: "ndr-latn-ng", nds: "nds-latn-de", ndt: "ndt-latn-cd", ndu: "ndu-latn-cm", ndv: "ndv-latn-sn", ndw: "ndw-latn-cd", ndx: "ndx-latn-id", ndy: "ndy-latn-cf", "ndy-td": "ndy-latn-td", ndz: "ndz-latn-ss", ne: "ne-deva-np", nea: "nea-latn-id", neb: "neb-latn-zz", nec: "nec-latn-id", ned: "ned-latn-ng", nee: "nee-latn-nc", neg: "neg-cyrl-ru", neh: "neh-tibt-bt", nei: "nei-xsux-tr", nej: "nej-latn-pg", nek: "nek-latn-nc", nem: "nem-latn-nc", nen: "nen-latn-nc", neo: "neo-latn-vn", neq: "neq-latn-mx", ner: "ner-latn-id", net: "net-latn-pg", neu: "neu-latn-001", new: "new-deva-np", nex: "nex-latn-zz", ney: "ney-latn-ci", nez: "nez-latn-us", nfa: "nfa-latn-id", nfd: "nfd-latn-ng", nfl: "nfl-latn-sb", nfr: "nfr-latn-zz", nfu: "nfu-latn-cm", ng: "ng-latn-na", nga: "nga-latn-zz", ngb: "ngb-latn-zz", ngc: "ngc-latn-cd", ngd: "ngd-latn-cf", nge: "nge-latn-cm", ngg: "ngg-latn-cf", ngh: "ngh-latn-za", ngi: "ngi-latn-ng", ngj: "ngj-latn-cm", ngk: "ngk-latn-au", ngl: "ngl-latn-mz", ngm: "ngm-latn-fm", ngn: "ngn-latn-cm", ngp: "ngp-latn-tz", ngq: "ngq-latn-tz", ngr: "ngr-latn-sb", ngs: "ngs-latn-ng", ngt: "ngt-laoo-la", ngu: "ngu-latn-mx", ngv: "ngv-latn-cm", ngw: "ngw-latn-ng", ngx: "ngx-latn-ng", ngy: "ngy-latn-cm", ngz: "ngz-latn-cg", nha: "nha-latn-au", nhb: "nhb-latn-zz", nhc: "nhc-latn-mx", nhd: "nhd-latn-py", nhe: "nhe-latn-mx", nhf: "nhf-latn-au", nhg: "nhg-latn-mx", nhi: "nhi-latn-mx", nhk: "nhk-latn-mx", nhm: "nhm-latn-mx", nhn: "nhn-latn-mx", nho: "nho-latn-pg", nhp: "nhp-latn-mx", nhq: "nhq-latn-mx", nhr: "nhr-latn-bw", nht: "nht-latn-mx", nhu: "nhu-latn-cm", nhv: "nhv-latn-mx", nhw: "nhw-latn-mx", nhx: "nhx-latn-mx", nhy: "nhy-latn-mx", nhz: "nhz-latn-mx", nia: "nia-latn-id", nib: "nib-latn-pg", nid: "nid-latn-au", nie: "nie-latn-td", nif: "nif-latn-zz", nig: "nig-latn-au", nih: "nih-latn-tz", nii: "nii-latn-zz", nij: "nij-latn-id", nil: "nil-latn-id", nim: "nim-latn-tz", nin: "nin-latn-zz", nio: "nio-cyrl-ru", niq: "niq-latn-ke", nir: "nir-latn-id", nis: "nis-latn-pg", nit: "nit-telu-in", niu: "niu-latn-nu", niv: "niv-cyrl-ru", "niv-latn": "niv-latn-ru", niw: "niw-latn-pg", nix: "nix-latn-cd", niy: "niy-latn-zz", niz: "niz-latn-zz", nja: "nja-latn-ng", njb: "njb-latn-in", njd: "njd-latn-tz", njh: "njh-latn-in", nji: "nji-latn-au", njj: "njj-latn-cm", njl: "njl-latn-ss", njm: "njm-latn-in", njn: "njn-latn-in", njo: "njo-latn-in", njr: "njr-latn-ng", njs: "njs-latn-id", njt: "njt-latn-sr", nju: "nju-latn-au", njx: "njx-latn-cg", njy: "njy-latn-cm", njz: "njz-latn-in", "njz-beng": "njz-beng-in", nka: "nka-latn-zm", nkb: "nkb-latn-in", nkc: "nkc-latn-cm", nkd: "nkd-latn-in", nke: "nke-latn-sb", nkf: "nkf-latn-in", nkg: "nkg-latn-zz", nkh: "nkh-latn-in", nki: "nki-latn-in", "nki-beng": "nki-beng-in", nkj: "nkj-latn-id", nkk: "nkk-latn-vu", nkm: "nkm-latn-pg", nkn: "nkn-latn-ao", nko: "nko-latn-zz", nkq: "nkq-latn-gh", nkr: "nkr-latn-fm", nks: "nks-latn-id", nkt: "nkt-latn-tz", nku: "nku-latn-ci", nkv: "nkv-latn-mw", nkw: "nkw-latn-cd", nkx: "nkx-latn-ng", nkz: "nkz-latn-ng", nl: "nl-latn-nl", nla: "nla-latn-cm", nlc: "nlc-latn-id", nle: "nle-latn-ke", nlg: "nlg-latn-sb", nli: "nli-arab-af", nlj: "nlj-latn-cd", nlk: "nlk-latn-id", nlm: "nlm-arab-pk", nlo: "nlo-latn-cd", nlq: "nlq-latn-mm", nlu: "nlu-latn-gh", nlv: "nlv-latn-mx", nlw: "nlw-latn-au", nlx: "nlx-deva-in", nly: "nly-latn-au", nlz: "nlz-latn-sb", nma: "nma-latn-in", nmb: "nmb-latn-vu", nmc: "nmc-latn-td", nmd: "nmd-latn-ga", nme: "nme-latn-in", nmf: "nmf-latn-in", nmg: "nmg-latn-cm", nmh: "nmh-latn-in", nmi: "nmi-latn-ng", nmj: "nmj-latn-cf", nmk: "nmk-latn-vu", nml: "nml-latn-cm", nmm: "nmm-deva-np", "nmm-tibt": "nmm-tibt-np", nmn: "nmn-latn-bw", nmo: "nmo-latn-in", "nmo-beng": "nmo-beng-in", nmp: "nmp-latn-au", nmq: "nmq-latn-zw", nmr: "nmr-latn-cm", nms: "nms-latn-vu", nmt: "nmt-latn-fm", nmu: "nmu-latn-us", nmv: "nmv-latn-au", nmw: "nmw-latn-pg", nmx: "nmx-latn-pg", nmz: "nmz-latn-zz", nn: "nn-latn-no", nna: "nna-latn-au", nnb: "nnb-latn-cd", nnc: "nnc-latn-td", nnd: "nnd-latn-vu", nne: "nne-latn-ao", nnf: "nnf-latn-zz", nng: "nng-latn-in", "nng-beng": "nng-beng-in", nnh: "nnh-latn-cm", nni: "nni-latn-id", nnj: "nnj-latn-et", nnk: "nnk-latn-zz", nnl: "nnl-latn-in", nnm: "nnm-latn-zz", nnn: "nnn-latn-td", nnp: "nnp-wcho-in", nnq: "nnq-latn-tz", nnr: "nnr-latn-au", nnt: "nnt-latn-us", nnu: "nnu-latn-gh", nnv: "nnv-latn-au", nnw: "nnw-latn-bf", nny: "nny-latn-au", nnz: "nnz-latn-cm", no: "no-latn-no", noa: "noa-latn-co", noc: "noc-latn-pg", nod: "nod-lana-th", noe: "noe-deva-in", nof: "nof-latn-pg", nog: "nog-cyrl-ru", noh: "noh-latn-pg", noi: "noi-deva-in", noj: "noj-latn-co", nok: "nok-latn-us", nom: "nom-latn-pe", non: "non-runr-se", nop: "nop-latn-zz", noq: "noq-latn-cd", nos: "nos-yiii-cn", not: "not-latn-pe", nou: "nou-latn-zz", nov: "nov-latn-001", now: "now-latn-tz", noy: "noy-latn-td", npb: "npb-tibt-bt", npg: "npg-latn-mm", nph: "nph-latn-in", npl: "npl-latn-mx", npn: "npn-latn-pg", npo: "npo-latn-in", nps: "nps-latn-id", npu: "npu-latn-in", npx: "npx-latn-sb", npy: "npy-latn-id", nqg: "nqg-latn-bj", nqk: "nqk-latn-bj", nql: "nql-latn-ao", nqm: "nqm-latn-id", nqn: "nqn-latn-pg", nqo: "nqo-nkoo-gn", nqq: "nqq-latn-mm", nqt: "nqt-latn-ng", nqy: "nqy-latn-mm", nr: "nr-latn-za", nra: "nra-latn-ga", nrb: "nrb-latn-zz", nre: "nre-latn-in", nrf: "nrf-latn-je", nrg: "nrg-latn-vu", nri: "nri-latn-in", nrk: "nrk-latn-au", nrl: "nrl-latn-au", nrm: "nrm-latn-my", nrp: "nrp-latn-it", nru: "nru-latn-cn", "nru-hans": "nru-hans-cn", "nru-hant": "nru-hant-cn", nrx: "nrx-latn-au", nrz: "nrz-latn-pg", nsa: "nsa-latn-in", nsb: "nsb-latn-za", nsc: "nsc-latn-ng", nsd: "nsd-yiii-cn", nse: "nse-latn-zm", nsf: "nsf-yiii-cn", nsg: "nsg-latn-tz", nsh: "nsh-latn-cm", nsk: "nsk-cans-ca", nsm: "nsm-latn-in", nsn: "nsn-latn-zz", nso: "nso-latn-za", nsq: "nsq-latn-us", nss: "nss-latn-zz", nst: "nst-tnsa-in", nsu: "nsu-latn-mx", nsv: "nsv-yiii-cn", nsw: "nsw-latn-vu", nsx: "nsx-latn-ao", nsy: "nsy-latn-id", nsz: "nsz-latn-us", ntd: "ntd-latn-my", nte: "nte-latn-mz", ntg: "ntg-latn-au", nti: "nti-latn-bf", ntj: "ntj-latn-au", ntk: "ntk-latn-tz", ntm: "ntm-latn-zz", nto: "nto-latn-cd", ntp: "ntp-latn-mx", ntr: "ntr-latn-zz", ntu: "ntu-latn-sb", ntx: "ntx-latn-mm", nty: "nty-yiii-vn", ntz: "ntz-arab-ir", nua: "nua-latn-nc", nuc: "nuc-latn-br", nud: "nud-latn-pg", nue: "nue-latn-cd", nuf: "nuf-latn-cn", nug: "nug-latn-au", nuh: "nuh-latn-ng", nui: "nui-latn-zz", nuj: "nuj-latn-ug", nuk: "nuk-latn-ca", num: "num-latn-to", nun: "nun-latn-mm", nuo: "nuo-latn-vn", nup: "nup-latn-zz", nuq: "nuq-latn-pg", nur: "nur-latn-pg", nus: "nus-latn-ss", nut: "nut-latn-vn", nuu: "nuu-latn-cd", nuv: "nuv-latn-zz", nuw: "nuw-latn-fm", nux: "nux-latn-zz", nuy: "nuy-latn-au", nuz: "nuz-latn-mx", nv: "nv-latn-us", nvh: "nvh-latn-vu", nvm: "nvm-latn-pg", nvo: "nvo-latn-cm", nwb: "nwb-latn-zz", nwc: "nwc-newa-np", "nwc-brah": "nwc-brah-np", "nwc-deva": "nwc-deva-np", "nwc-sidd": "nwc-sidd-np", nwe: "nwe-latn-cm", nwg: "nwg-latn-au", nwi: "nwi-latn-vu", nwm: "nwm-latn-ss", nwo: "nwo-latn-au", nwr: "nwr-latn-pg", nww: "nww-latn-tz", nwx: "nwx-deva-np", nxa: "nxa-latn-tl", nxd: "nxd-latn-cd", nxe: "nxe-latn-id", nxg: "nxg-latn-id", nxi: "nxi-latn-tz", nxl: "nxl-latn-id", nxn: "nxn-latn-au", nxo: "nxo-latn-ga", nxq: "nxq-latn-cn", nxr: "nxr-latn-zz", nxx: "nxx-latn-id", ny: "ny-latn-mw", nyb: "nyb-latn-gh", nyc: "nyc-latn-cd", nyd: "nyd-latn-ke", nye: "nye-latn-ao", nyf: "nyf-latn-ke", nyg: "nyg-latn-cd", nyh: "nyh-latn-au", nyi: "nyi-latn-sd", nyj: "nyj-latn-cd", nyk: "nyk-latn-ao", nyl: "nyl-thai-th", nym: "nym-latn-tz", nyn: "nyn-latn-ug", nyo: "nyo-latn-ug", nyp: "nyp-latn-ug", nyq: "nyq-arab-ir", nyr: "nyr-latn-mw", nys: "nys-latn-au", nyt: "nyt-latn-au", nyu: "nyu-latn-mz", nyv: "nyv-latn-au", nyx: "nyx-latn-au", nyy: "nyy-latn-tz", nza: "nza-latn-cm", nzb: "nzb-latn-ga", nzd: "nzd-latn-cd", nzi: "nzi-latn-gh", nzk: "nzk-latn-cf", nzm: "nzm-latn-in", nzu: "nzu-latn-cg", nzy: "nzy-latn-td", nzz: "nzz-latn-ml", oaa: "oaa-cyrl-ru", oac: "oac-cyrl-ru", oar: "oar-syrc-sy", oav: "oav-geor-ge", obi: "obi-latn-us", obk: "obk-latn-ph", obl: "obl-latn-cm", obm: "obm-phnx-jo", obo: "obo-latn-ph", obr: "obr-mymr-mm", obt: "obt-latn-fr", obu: "obu-latn-ng", oc: "oc-latn-fr", oca: "oca-latn-pe", oco: "oco-latn-gb", ocu: "ocu-latn-mx", oda: "oda-latn-ng", odk: "odk-arab-pk", odt: "odt-latn-nl", odu: "odu-latn-ng", ofu: "ofu-latn-ng", ogb: "ogb-latn-ng", ogc: "ogc-latn-zz", ogg: "ogg-latn-ng", ogo: "ogo-latn-ng", ogu: "ogu-latn-ng", oht: "oht-xsux-tr", oia: "oia-latn-id", oie: "oie-latn-ss", oin: "oin-latn-pg", oj: "oj-cans-ca", ojb: "ojb-latn-ca", "ojb-cans": "ojb-cans-ca", ojc: "ojc-latn-ca", ojs: "ojs-cans-ca", ojv: "ojv-latn-sb", ojw: "ojw-latn-ca", "ojw-cans": "ojw-cans-ca", oka: "oka-latn-ca", okb: "okb-latn-ng", okc: "okc-latn-cd", okd: "okd-latn-ng", oke: "oke-latn-ng", okg: "okg-latn-au", oki: "oki-latn-ke", okk: "okk-latn-pg", okm: "okm-hang-kr", oko: "oko-hani-kr", okr: "okr-latn-zz", oks: "oks-latn-ng", oku: "oku-latn-cm", okv: "okv-latn-zz", okx: "okx-latn-ng", okz: "okz-khmr-kh", ola: "ola-deva-np", "ola-tibt": "ola-tibt-cn", old: "old-latn-tz", ole: "ole-tibt-bt", olk: "olk-latn-au", olm: "olm-latn-ng", olo: "olo-latn-ru", olr: "olr-latn-vu", olt: "olt-latn-lt", olu: "olu-latn-ao", om: "om-latn-et", oma: "oma-latn-us", omb: "omb-latn-vu", omc: "omc-latn-pe", omg: "omg-latn-pe", omi: "omi-latn-cd", omk: "omk-cyrl-ru", oml: "oml-latn-cd", omo: "omo-latn-pg", omp: "omp-mtei-in", omr: "omr-modi-in", omt: "omt-latn-ke", omu: "omu-latn-pe", omw: "omw-latn-pg", ona: "ona-latn-ar", one: "one-latn-ca", ong: "ong-latn-zz", oni: "oni-latn-id", onj: "onj-latn-pg", onk: "onk-latn-pg", onn: "onn-latn-zz", ono: "ono-latn-ca", onp: "onp-latn-in", "onp-deva": "onp-deva-in", onr: "onr-latn-pg", ons: "ons-latn-zz", ont: "ont-latn-pg", onu: "onu-latn-vu", onx: "onx-latn-id", ood: "ood-latn-us", oon: "oon-deva-in", oor: "oor-latn-za", opa: "opa-latn-ng", opk: "opk-latn-id", opm: "opm-latn-zz", opo: "opo-latn-pg", opt: "opt-latn-mx", opy: "opy-latn-br", or: "or-orya-in", ora: "ora-latn-sb", orc: "orc-latn-ke", ore: "ore-latn-pe", org: "org-latn-ng", orn: "orn-latn-my", oro: "oro-latn-zz", orr: "orr-latn-ng", ors: "ors-latn-my", ort: "ort-telu-in", oru: "oru-arab-zz", orv: "orv-cyrl-ru", orw: "orw-latn-br", orx: "orx-latn-ng", orz: "orz-latn-id", os: "os-cyrl-ge", osa: "osa-osge-us", osc: "osc-ital-it", "osc-latn": "osc-latn-it", osi: "osi-java-id", oso: "oso-latn-ng", osp: "osp-latn-es", ost: "ost-latn-cm", osu: "osu-latn-pg", osx: "osx-latn-de", ota: "ota-arab-zz", otb: "otb-tibt-cn", otd: "otd-latn-id", ote: "ote-latn-mx", oti: "oti-latn-br", otk: "otk-orkh-mn", otl: "otl-latn-mx", otm: "otm-latn-mx", otn: "otn-latn-mx", otq: "otq-latn-mx", otr: "otr-latn-sd", ots: "ots-latn-mx", ott: "ott-latn-mx", otu: "otu-latn-br", otw: "otw-latn-ca", otx: "otx-latn-mx", oty: "oty-gran-in", otz: "otz-latn-mx", oub: "oub-latn-lr", oue: "oue-latn-pg", oui: "oui-ougr-143", oum: "oum-latn-pg", ovd: "ovd-latn-se", owi: "owi-latn-pg", owl: "owl-latn-gb", oyd: "oyd-latn-et", oym: "oym-latn-br", oyy: "oyy-latn-pg", ozm: "ozm-latn-zz", pa: "pa-guru-in", "pa-arab": "pa-arab-pk", "pa-pk": "pa-arab-pk", pab: "pab-latn-br", pac: "pac-latn-vn", pad: "pad-latn-br", pae: "pae-latn-cd", paf: "paf-latn-br", pag: "pag-latn-ph", pah: "pah-latn-br", pai: "pai-latn-ng", pak: "pak-latn-br", pal: "pal-phli-ir", "pal-phlp": "pal-phlp-cn", pam: "pam-latn-ph", pao: "pao-latn-us", pap: "pap-latn-cw", paq: "paq-cyrl-tj", par: "par-latn-us", pas: "pas-latn-id", pau: "pau-latn-pw", pav: "pav-latn-br", paw: "paw-latn-us", pax: "pax-latn-br", pay: "pay-latn-hn", paz: "paz-latn-br", pbb: "pbb-latn-co", pbc: "pbc-latn-gy", pbe: "pbe-latn-mx", pbf: "pbf-latn-mx", pbg: "pbg-latn-ve", pbh: "pbh-latn-ve", pbi: "pbi-latn-zz", pbl: "pbl-latn-ng", pbm: "pbm-latn-mx", pbn: "pbn-latn-ng", pbo: "pbo-latn-gw", pbp: "pbp-latn-gn", pbr: "pbr-latn-tz", pbs: "pbs-latn-mx", pbt: "pbt-arab-af", pbv: "pbv-latn-in", pby: "pby-latn-pg", pca: "pca-latn-mx", pcb: "pcb-khmr-kh", pcc: "pcc-latn-cn", "pcc-hani": "pcc-hani-cn", pcd: "pcd-latn-fr", pce: "pce-mymr-mm", "pce-thai": "pce-thai-th", pcf: "pcf-mlym-in", pcg: "pcg-mlym-in", "pcg-knda": "pcg-knda-in", "pcg-taml": "pcg-taml-in", pch: "pch-deva-in", pci: "pci-deva-in", "pci-orya": "pci-orya-in", pcj: "pcj-telu-in", pck: "pck-latn-in", pcm: "pcm-latn-ng", pcn: "pcn-latn-ng", pcp: "pcp-latn-bo", pcw: "pcw-latn-ng", pda: "pda-latn-pg", pdc: "pdc-latn-us", pdn: "pdn-latn-id", pdo: "pdo-latn-id", pdt: "pdt-latn-ca", pdu: "pdu-latn-mm", "pdu-mymr": "pdu-mymr-mm", pea: "pea-latn-id", peb: "peb-latn-us", ped: "ped-latn-zz", pee: "pee-latn-id", peg: "peg-orya-in", pei: "pei-latn-mx", pek: "pek-latn-pg", pel: "pel-latn-id", pem: "pem-latn-cd", peo: "peo-xpeo-ir", pep: "pep-latn-pg", peq: "peq-latn-us", pev: "pev-latn-ve", pex: "pex-latn-zz", pey: "pey-latn-id", pez: "pez-latn-my", pfa: "pfa-latn-fm", pfe: "pfe-latn-cm", pfl: "pfl-latn-de", pga: "pga-latn-ss", pgd: "pgd-khar-pk", pgg: "pgg-deva-in", pgi: "pgi-latn-pg", pgk: "pgk-latn-vu", pgl: "pgl-ogam-ie", pgn: "pgn-ital-it", pgs: "pgs-latn-ng", pgu: "pgu-latn-id", phd: "phd-deva-in", phg: "phg-latn-vn", phh: "phh-latn-vn", phk: "phk-mymr-in", phl: "phl-arab-zz", phm: "phm-latn-mz", phn: "phn-phnx-lb", pho: "pho-laoo-la", phr: "phr-arab-pk", pht: "pht-thai-th", phv: "phv-arab-af", phw: "phw-deva-np", pi: "pi-sinh-in", "pi-brah": "pi-brah-in", "pi-deva": "pi-deva-in", "pi-khar": "pi-khar-in", "pi-khmr": "pi-khmr-in", "pi-mymr": "pi-mymr-in", "pi-thai": "pi-thai-in", pia: "pia-latn-mx", pib: "pib-latn-pe", pic: "pic-latn-ga", pid: "pid-latn-ve", pif: "pif-latn-fm", pig: "pig-latn-pe", pih: "pih-latn-nf", pij: "pij-latn-co", pil: "pil-latn-zz", pim: "pim-latn-us", pin: "pin-latn-pg", pio: "pio-latn-co", pip: "pip-latn-zz", pir: "pir-latn-br", pis: "pis-latn-sb", pit: "pit-latn-au", piu: "piu-latn-au", piv: "piv-latn-sb", piw: "piw-latn-tz", pix: "pix-latn-pg", piy: "piy-latn-ng", piz: "piz-latn-nc", pjt: "pjt-latn-au", pka: "pka-brah-in", pkb: "pkb-latn-ke", pkg: "pkg-latn-pg", pkh: "pkh-latn-bd", "pkh-deva": "pkh-deva-bd", pkn: "pkn-latn-au", pko: "pko-latn-ke", pkp: "pkp-latn-ck", pkr: "pkr-mlym-in", pku: "pku-latn-id", pl: "pl-latn-pl", pla: "pla-latn-zz", plb: "plb-latn-vu", plc: "plc-latn-ph", pld: "pld-latn-gb", ple: "ple-latn-id", plg: "plg-latn-ar", plh: "plh-latn-id", plj: "plj-latn-ng", plk: "plk-arab-pk", pll: "pll-mymr-mm", pln: "pln-latn-co", plo: "plo-latn-mx", plr: "plr-latn-ci", pls: "pls-latn-mx", plu: "plu-latn-br", plv: "plv-latn-ph", plw: "plw-latn-ph", plz: "plz-latn-my", pma: "pma-latn-vu", pmb: "pmb-latn-cd", pmd: "pmd-latn-au", pme: "pme-latn-nc", pmf: "pmf-latn-id", pmh: "pmh-brah-in", pmi: "pmi-latn-cn", pmj: "pmj-latn-cn", pml: "pml-latn-tn", pmm: "pmm-latn-cm", pmn: "pmn-latn-cm", pmo: "pmo-latn-id", pmq: "pmq-latn-mx", pmr: "pmr-latn-pg", pms: "pms-latn-it", pmt: "pmt-latn-pf", pmw: "pmw-latn-us", pmx: "pmx-latn-in", pmy: "pmy-latn-id", pmz: "pmz-latn-mx", pna: "pna-latn-my", pnc: "pnc-latn-id", pnd: "pnd-latn-ao", pne: "pne-latn-my", png: "png-latn-zz", pnh: "pnh-latn-ck", pni: "pni-latn-id", pnj: "pnj-latn-au", pnk: "pnk-latn-bo", pnl: "pnl-latn-bf", pnm: "pnm-latn-my", pnn: "pnn-latn-zz", pno: "pno-latn-pe", pnp: "pnp-latn-id", pnq: "pnq-latn-bf", pnr: "pnr-latn-pg", pns: "pns-latn-id", pnt: "pnt-grek-gr", pnv: "pnv-latn-au", pnw: "pnw-latn-au", pny: "pny-latn-cm", pnz: "pnz-latn-cf", poc: "poc-latn-gt", poe: "poe-latn-mx", pof: "pof-latn-cd", pog: "pog-latn-br", poh: "poh-latn-gt", poi: "poi-latn-mx", pok: "pok-latn-br", pom: "pom-latn-us", pon: "pon-latn-fm", poo: "poo-latn-us", pop: "pop-latn-nc", poq: "poq-latn-mx", pos: "pos-latn-mx", pot: "pot-latn-us", pov: "pov-latn-gw", pow: "pow-latn-mx", poy: "poy-latn-tz", ppa: "ppa-deva-in", ppe: "ppe-latn-pg", ppi: "ppi-latn-mx", ppk: "ppk-latn-id", ppl: "ppl-latn-sv", ppm: "ppm-latn-id", ppn: "ppn-latn-pg", ppo: "ppo-latn-zz", ppp: "ppp-latn-cd", ppq: "ppq-latn-pg", pps: "pps-latn-mx", ppt: "ppt-latn-pg", pqa: "pqa-latn-ng", pqm: "pqm-latn-ca", pra: "pra-khar-pk", prc: "prc-arab-af", prd: "prd-arab-ir", pre: "pre-latn-st", prf: "prf-latn-ph", prg: "prg-latn-001", prh: "prh-latn-ph", pri: "pri-latn-nc", prk: "prk-latn-mm", prm: "prm-latn-pg", pro: "pro-latn-fr", prp: "prp-gujr-in", prq: "prq-latn-pe", prr: "prr-latn-br", prt: "prt-thai-th", pru: "pru-latn-id", prw: "prw-latn-pg", prx: "prx-arab-in", "prx-tibt": "prx-tibt-in", ps: "ps-arab-af", psa: "psa-latn-id", pse: "pse-latn-id", psh: "psh-arab-af", psi: "psi-arab-af", psm: "psm-latn-bo", psn: "psn-latn-id", psq: "psq-latn-pg", pss: "pss-latn-zz", pst: "pst-arab-pk", psw: "psw-latn-vu", pt: "pt-latn-br", pta: "pta-latn-py", pth: "pth-latn-br", pti: "pti-latn-au", ptn: "ptn-latn-id", pto: "pto-latn-br", ptp: "ptp-latn-zz", ptr: "ptr-latn-vu", ptt: "ptt-latn-id", ptu: "ptu-latn-id", ptv: "ptv-latn-vu", pua: "pua-latn-mx", pub: "pub-latn-in", puc: "puc-latn-id", pud: "pud-latn-id", pue: "pue-latn-ar", puf: "puf-latn-id", pug: "pug-latn-bf", pui: "pui-latn-co", puj: "puj-latn-id", pum: "pum-deva-np", puo: "puo-latn-vn", pup: "pup-latn-pg", puq: "puq-latn-pe", pur: "pur-latn-br", put: "put-latn-id", puu: "puu-latn-ga", puw: "puw-latn-fm", pux: "pux-latn-pg", puy: "puy-latn-us", pwa: "pwa-latn-zz", pwb: "pwb-latn-ng", pwg: "pwg-latn-pg", pwm: "pwm-latn-ph", pwn: "pwn-latn-tw", pwo: "pwo-mymr-mm", pwr: "pwr-deva-in", pww: "pww-thai-th", pxm: "pxm-latn-mx", pye: "pye-latn-ci", pym: "pym-latn-ng", pyn: "pyn-latn-br", pyu: "pyu-latn-tw", "pyu-hani": "pyu-hani-tw", pyx: "pyx-mymr-mm", pyy: "pyy-latn-mm", pzh: "pzh-latn-tw", pzn: "pzn-latn-mm", qu: "qu-latn-pe", qua: "qua-latn-us", qub: "qub-latn-pe", quc: "quc-latn-gt", qud: "qud-latn-ec", quf: "quf-latn-pe", qug: "qug-latn-ec", qui: "qui-latn-us", quk: "quk-latn-pe", qul: "qul-latn-bo", qum: "qum-latn-gt", qun: "qun-latn-us", qup: "qup-latn-pe", quq: "quq-latn-es", qur: "qur-latn-pe", qus: "qus-latn-ar", quv: "quv-latn-gt", quw: "quw-latn-ec", qux: "qux-latn-pe", quy: "quy-latn-pe", qva: "qva-latn-pe", qvc: "qvc-latn-pe", qve: "qve-latn-pe", qvh: "qvh-latn-pe", qvi: "qvi-latn-ec", qvj: "qvj-latn-ec", qvl: "qvl-latn-pe", qvm: "qvm-latn-pe", qvn: "qvn-latn-pe", qvo: "qvo-latn-pe", qvp: "qvp-latn-pe", qvs: "qvs-latn-pe", qvw: "qvw-latn-pe", qvz: "qvz-latn-ec", qwa: "qwa-latn-pe", qwc: "qwc-latn-pe", qwh: "qwh-latn-pe", qwm: "qwm-latn-ru", "qwm-cyrl": "qwm-cyrl-ru", "qwm-runr": "qwm-runr-ru", qws: "qws-latn-pe", qwt: "qwt-latn-us", qxa: "qxa-latn-pe", qxc: "qxc-latn-pe", qxh: "qxh-latn-pe", qxl: "qxl-latn-ec", qxn: "qxn-latn-pe", qxo: "qxo-latn-pe", qxp: "qxp-latn-pe", qxq: "qxq-arab-ir", qxr: "qxr-latn-ec", qxt: "qxt-latn-pe", qxu: "qxu-latn-pe", qxw: "qxw-latn-pe", qya: "qya-latn-001", qyp: "qyp-latn-us", raa: "raa-deva-np", rab: "rab-deva-np", rac: "rac-latn-id", rad: "rad-latn-vn", raf: "raf-deva-np", rag: "rag-latn-ke", rah: "rah-beng-in", "rah-latn": "rah-latn-in", rai: "rai-latn-zz", raj: "raj-deva-in", rak: "rak-latn-pg", ram: "ram-latn-br", ran: "ran-latn-id", rao: "rao-latn-zz", rap: "rap-latn-cl", rar: "rar-latn-ck", rav: "rav-deva-np", raw: "raw-latn-mm", rax: "rax-latn-ng", ray: "ray-latn-pf", raz: "raz-latn-id", rbb: "rbb-mymr-mm", rbk: "rbk-latn-ph", rbl: "rbl-latn-ph", rbp: "rbp-latn-au", rcf: "rcf-latn-re", rdb: "rdb-arab-ir", rea: "rea-latn-pg", reb: "reb-latn-id", ree: "ree-latn-my", reg: "reg-latn-tz", rei: "rei-orya-in", "rei-telu": "rei-telu-in", rej: "rej-latn-id", rel: "rel-latn-zz", rem: "rem-latn-pe", ren: "ren-latn-vn", res: "res-latn-zz", ret: "ret-latn-id", rey: "rey-latn-bo", rga: "rga-latn-vu", rgn: "rgn-latn-it", rgr: "rgr-latn-pe", rgs: "rgs-latn-vn", rgu: "rgu-latn-id", rhg: "rhg-rohg-mm", rhp: "rhp-latn-pg", ria: "ria-latn-in", rif: "rif-latn-ma", ril: "ril-latn-mm", rim: "rim-latn-tz", rin: "rin-latn-ng", rir: "rir-latn-id", rit: "rit-latn-au", riu: "riu-latn-id", rjg: "rjg-latn-id", rji: "rji-deva-np", rjs: "rjs-deva-np", rka: "rka-khmr-kh", rkb: "rkb-latn-br", rkh: "rkh-latn-ck", rki: "rki-mymr-mm", rkm: "rkm-latn-bf", rkt: "rkt-beng-bd", rkw: "rkw-latn-au", rm: "rm-latn-ch", rma: "rma-latn-ni", rmb: "rmb-latn-au", rmc: "rmc-latn-sk", rmd: "rmd-latn-dk", rme: "rme-latn-gb", rmf: "rmf-latn-fi", rmg: "rmg-latn-no", rmh: "rmh-latn-id", rmi: "rmi-armn-am", rmk: "rmk-latn-pg", rml: "rml-latn-pl", "rml-cyrl": "rml-cyrl-by", rmm: "rmm-latn-id", rmn: "rmn-latn-rs", "rmn-cyrl": "rmn-cyrl-bg", "rmn-grek": "rmn-grek-gr", rmo: "rmo-latn-ch", rmp: "rmp-latn-pg", rmq: "rmq-latn-es", rmt: "rmt-arab-ir", rmu: "rmu-latn-se", rmw: "rmw-latn-gb", rmx: "rmx-latn-vn", rmz: "rmz-mymr-in", rn: "rn-latn-bi", rna: "rna-latn-zz", rnd: "rnd-latn-cd", rng: "rng-latn-mz", rnl: "rnl-latn-in", rnn: "rnn-latn-id", rnr: "rnr-latn-au", rnw: "rnw-latn-tz", ro: "ro-latn-ro", rob: "rob-latn-id", roc: "roc-latn-vn", rod: "rod-latn-ng", roe: "roe-latn-pg", rof: "rof-latn-tz", rog: "rog-latn-vn", rol: "rol-latn-ph", rom: "rom-latn-ro", "rom-cyrl": "rom-cyrl-ro", roo: "roo-latn-zz", rop: "rop-latn-au", ror: "ror-latn-id", rou: "rou-latn-td", row: "row-latn-id", rpn: "rpn-latn-vu", rpt: "rpt-latn-pg", rri: "rri-latn-sb", rro: "rro-latn-zz", rrt: "rrt-latn-au", rsk: "rsk-cyrl-rs", rtc: "rtc-latn-mm", rth: "rth-latn-id", rtm: "rtm-latn-fj", rtw: "rtw-deva-in", ru: "ru-cyrl-ru", rub: "rub-latn-ug", ruc: "ruc-latn-ug", rue: "rue-cyrl-ua", ruf: "ruf-latn-tz", rug: "rug-latn-sb", rui: "rui-latn-tz", ruk: "ruk-latn-ng", ruo: "ruo-latn-hr", rup: "rup-latn-ro", "rup-grek": "rup-grek-gr", ruq: "ruq-latn-gr", rut: "rut-cyrl-ru", "rut-latn": "rut-latn-az", ruu: "ruu-latn-my", ruy: "ruy-latn-ng", ruz: "ruz-latn-ng", rw: "rw-latn-rw", rwa: "rwa-latn-pg", rwk: "rwk-latn-tz", rwl: "rwl-latn-tz", rwm: "rwm-latn-ug", rwo: "rwo-latn-zz", rwr: "rwr-deva-in", rxd: "rxd-latn-au", rxw: "rxw-latn-au", ryu: "ryu-kana-jp", sa: "sa-deva-in", saa: "saa-latn-td", sab: "sab-latn-pa", sac: "sac-latn-us", sad: "sad-latn-tz", sae: "sae-latn-br", saf: "saf-latn-gh", sah: "sah-cyrl-ru", saj: "saj-latn-id", sak: "sak-latn-ga", sam: "sam-samr-ps", "sam-hebr": "sam-hebr-ps", "sam-syrc": "sam-syrc-ps", sao: "sao-latn-id", saq: "saq-latn-ke", sar: "sar-latn-bo", sas: "sas-latn-id", sat: "sat-olck-in", sau: "sau-latn-id", sav: "sav-latn-sn", saw: "saw-latn-id", sax: "sax-latn-vu", say: "say-latn-ng", saz: "saz-saur-in", sba: "sba-latn-zz", sbb: "sbb-latn-sb", sbc: "sbc-latn-pg", sbd: "sbd-latn-bf", sbe: "sbe-latn-zz", sbg: "sbg-latn-id", sbh: "sbh-latn-pg", sbi: "sbi-latn-pg", sbj: "sbj-latn-td", sbk: "sbk-latn-tz", sbl: "sbl-latn-ph", sbm: "sbm-latn-tz", sbn: "sbn-arab-pk", sbo: "sbo-latn-my", sbp: "sbp-latn-tz", sbq: "sbq-latn-pg", sbr: "sbr-latn-id", sbs: "sbs-latn-na", sbt: "sbt-latn-id", sbu: "sbu-tibt-in", "sbu-deva": "sbu-deva-in", sbv: "sbv-latn-it", sbw: "sbw-latn-ga", sbx: "sbx-latn-id", sby: "sby-latn-zm", sbz: "sbz-latn-cf", sc: "sc-latn-it", scb: "scb-latn-vn", sce: "sce-latn-cn", "sce-arab": "sce-arab-cn", scf: "scf-latn-pa", scg: "scg-latn-id", sch: "sch-latn-in", sci: "sci-latn-lk", sck: "sck-deva-in", scl: "scl-arab-zz", scn: "scn-latn-it", sco: "sco-latn-gb", scp: "scp-deva-np", scs: "scs-latn-ca", "scs-cans": "scs-cans-ca", sct: "sct-laoo-la", scu: "scu-takr-in", scv: "scv-latn-ng", scw: "scw-latn-ng", scx: "scx-grek-it", sd: "sd-arab-pk", "sd-deva": "sd-deva-in", "sd-in": "sd-deva-in", "sd-khoj": "sd-khoj-in", "sd-sind": "sd-sind-in", sda: "sda-latn-id", sdb: "sdb-arab-iq", sdc: "sdc-latn-it", sde: "sde-latn-ng", sdf: "sdf-arab-iq", sdg: "sdg-arab-af", sdh: "sdh-arab-ir", sdj: "sdj-latn-cg", sdk: "sdk-latn-pg", sdn: "sdn-latn-it", sdo: "sdo-latn-my", sdq: "sdq-latn-id", sds: "sds-arab-tn", sdu: "sdu-latn-id", sdx: "sdx-latn-my", se: "se-latn-no", sea: "sea-latn-my", seb: "seb-latn-ci", sec: "sec-latn-ca", sed: "sed-latn-vn", see: "see-latn-us", sef: "sef-latn-ci", seg: "seg-latn-tz", seh: "seh-latn-mz", sei: "sei-latn-mx", sej: "sej-latn-pg", sek: "sek-latn-ca", "sek-cans": "sek-cans-ca", sel: "sel-cyrl-ru", sen: "sen-latn-bf", seo: "seo-latn-pg", sep: "sep-latn-bf", seq: "seq-latn-bf", ser: "ser-latn-us", ses: "ses-latn-ml", set: "set-latn-id", seu: "seu-latn-id", sev: "sev-latn-ci", sew: "sew-latn-pg", sey: "sey-latn-ec", sez: "sez-latn-mm", sfe: "sfe-latn-ph", sfm: "sfm-plrd-cn", sfw: "sfw-latn-gh", sg: "sg-latn-cf", sga: "sga-ogam-ie", sgb: "sgb-latn-ph", sgc: "sgc-latn-ke", sgd: "sgd-latn-ph", sge: "sge-latn-id", sgh: "sgh-cyrl-tj", "sgh-arab": "sgh-arab-af", "sgh-latn": "sgh-latn-tj", sgi: "sgi-latn-cm", sgj: "sgj-deva-in", sgm: "sgm-latn-ke", sgp: "sgp-latn-in", sgr: "sgr-arab-ir", sgs: "sgs-latn-lt", sgt: "sgt-tibt-bt", sgu: "sgu-latn-id", sgw: "sgw-ethi-zz", sgy: "sgy-arab-af", sgz: "sgz-latn-zz", sha: "sha-latn-ng", shb: "shb-latn-br", shc: "shc-latn-cd", shd: "shd-arab-pk", she: "she-latn-et", shg: "shg-latn-bw", shh: "shh-latn-us", shi: "shi-tfng-ma", shj: "shj-latn-sd", shk: "shk-latn-zz", shm: "shm-arab-ir", shn: "shn-mymr-mm", sho: "sho-latn-ng", shp: "shp-latn-pe", shq: "shq-latn-zm", shr: "shr-latn-cd", shs: "shs-latn-ca", sht: "sht-latn-us", shu: "shu-arab-zz", shv: "shv-arab-om", shw: "shw-latn-sd", shy: "shy-latn-dz", "shy-arab": "shy-arab-dz", "shy-tfng": "shy-tfng-dz", shz: "shz-latn-ml", si: "si-sinh-lk", sia: "sia-cyrl-ru", sib: "sib-latn-my", sid: "sid-latn-et", sie: "sie-latn-zm", sif: "sif-latn-bf", sig: "sig-latn-zz", sih: "sih-latn-nc", sii: "sii-latn-in", sij: "sij-latn-pg", sik: "sik-latn-br", sil: "sil-latn-zz", sim: "sim-latn-zz", sip: "sip-tibt-in", siq: "siq-latn-pg", sir: "sir-latn-ng", sis: "sis-latn-us", siu: "siu-latn-pg", siv: "siv-latn-pg", siw: "siw-latn-pg", six: "six-latn-pg", siy: "siy-arab-ir", siz: "siz-arab-eg", sja: "sja-latn-co", sjb: "sjb-latn-id", sjd: "sjd-cyrl-ru", sje: "sje-latn-se", sjg: "sjg-latn-td", sjl: "sjl-latn-in", sjm: "sjm-latn-ph", sjp: "sjp-deva-in", "sjp-beng": "sjp-beng-in", sjr: "sjr-latn-zz", sjt: "sjt-cyrl-ru", sju: "sju-latn-se", sjw: "sjw-latn-us", sk: "sk-latn-sk", ska: "ska-latn-us", skb: "skb-thai-th", skc: "skc-latn-zz", skd: "skd-latn-us", ske: "ske-latn-vu", skf: "skf-latn-br", skg: "skg-latn-mg", skh: "skh-latn-id", ski: "ski-latn-id", skj: "skj-deva-np", skm: "skm-latn-pg", skn: "skn-latn-ph", sko: "sko-latn-id", skp: "skp-latn-my", skq: "skq-latn-bf", skr: "skr-arab-pk", sks: "sks-latn-zz", skt: "skt-latn-cd", sku: "sku-latn-vu", skv: "skv-latn-id", skw: "skw-latn-gy", skx: "skx-latn-id", sky: "sky-latn-sb", skz: "skz-latn-id", sl: "sl-latn-si", slc: "slc-latn-co", sld: "sld-latn-zz", slg: "slg-latn-id", slh: "slh-latn-us", sli: "sli-latn-pl", slj: "slj-latn-br", sll: "sll-latn-zz", slm: "slm-latn-ph", sln: "sln-latn-us", slp: "slp-latn-id", slq: "slq-arab-ir", slr: "slr-latn-cn", slu: "slu-latn-id", slw: "slw-latn-pg", slx: "slx-latn-cd", sly: "sly-latn-id", slz: "slz-latn-id", sm: "sm-latn-ws", sma: "sma-latn-se", smb: "smb-latn-pg", smc: "smc-latn-pg", smd: "smd-latn-ao", smf: "smf-latn-pg", smg: "smg-latn-pg", smh: "smh-yiii-cn", smj: "smj-latn-se", smk: "smk-latn-ph", sml: "sml-latn-ph", smn: "smn-latn-fi", smp: "smp-samr-il", smq: "smq-latn-zz", smr: "smr-latn-id", sms: "sms-latn-fi", smt: "smt-latn-in", smu: "smu-khmr-kh", smw: "smw-latn-id", smx: "smx-latn-cd", smy: "smy-arab-ir", smz: "smz-latn-pg", sn: "sn-latn-zw", snb: "snb-latn-my", snc: "snc-latn-zz", sne: "sne-latn-my", snf: "snf-latn-sn", sng: "sng-latn-cd", "sng-brai": "sng-brai-cd", sni: "sni-latn-pe", snj: "snj-latn-cf", snk: "snk-latn-ml", snl: "snl-latn-ph", snm: "snm-latn-ug", snn: "snn-latn-co", sno: "sno-latn-us", snp: "snp-latn-zz", snq: "snq-latn-ga", snr: "snr-latn-pg", sns: "sns-latn-vu", snu: "snu-latn-id", snv: "snv-latn-my", snw: "snw-latn-gh", snx: "snx-latn-zz", sny: "sny-latn-zz", snz: "snz-latn-pg", so: "so-latn-so", soa: "soa-tavt-th", "soa-thai": "soa-thai-th", sob: "sob-latn-id", soc: "soc-latn-cd", sod: "sod-latn-cd", soe: "soe-latn-cd", sog: "sog-sogd-uz", soi: "soi-deva-np", sok: "sok-latn-zz", sol: "sol-latn-pg", soo: "soo-latn-cd", sop: "sop-latn-cd", soq: "soq-latn-zz", sor: "sor-latn-td", sos: "sos-latn-bf", sou: "sou-thai-th", sov: "sov-latn-pw", sow: "sow-latn-pg", sox: "sox-latn-cm", soy: "soy-latn-zz", soz: "soz-latn-tz", spb: "spb-latn-id", spc: "spc-latn-ve", spd: "spd-latn-zz", spe: "spe-latn-pg", spg: "spg-latn-my", spi: "spi-latn-id", spk: "spk-latn-pg", spl: "spl-latn-zz", spm: "spm-latn-pg", spn: "spn-latn-py", spo: "spo-latn-us", spp: "spp-latn-ml", spq: "spq-latn-pe", spr: "spr-latn-id", sps: "sps-latn-zz", spt: "spt-tibt-in", spv: "spv-orya-in", sq: "sq-latn-al", sqa: "sqa-latn-ng", sqh: "sqh-latn-ng", sqm: "sqm-latn-cf", sqo: "sqo-arab-ir", sqq: "sqq-laoo-la", sqt: "sqt-arab-ye", "sqt-latn": "sqt-latn-ye", squ: "squ-latn-ca", sr: "sr-cyrl-rs", "sr-me": "sr-latn-me", "sr-ro": "sr-latn-ro", "sr-ru": "sr-latn-ru", "sr-tr": "sr-latn-tr", sra: "sra-latn-pg", srb: "srb-sora-in", sre: "sre-latn-id", srf: "srf-latn-pg", srg: "srg-latn-ph", srh: "srh-arab-cn", sri: "sri-latn-co", srk: "srk-latn-my", srl: "srl-latn-id", srm: "srm-latn-sr", srn: "srn-latn-sr", sro: "sro-latn-it", srq: "srq-latn-bo", srr: "srr-latn-sn", srs: "srs-latn-ca", srt: "srt-latn-id", sru: "sru-latn-br", srv: "srv-latn-ph", srw: "srw-latn-id", srx: "srx-deva-in", sry: "sry-latn-pg", srz: "srz-arab-ir", ss: "ss-latn-za", ssb: "ssb-latn-ph", ssc: "ssc-latn-tz", ssd: "ssd-latn-zz", sse: "sse-latn-ph", "sse-arab": "sse-arab-ph", ssf: "ssf-latn-tw", ssg: "ssg-latn-zz", ssh: "ssh-arab-ae", ssj: "ssj-latn-pg", ssl: "ssl-latn-gh", ssm: "ssm-latn-my", ssn: "ssn-latn-ke", sso: "sso-latn-pg", ssq: "ssq-latn-id", sss: "sss-laoo-la", "sss-thai": "sss-thai-th", sst: "sst-latn-pg", ssu: "ssu-latn-pg", ssv: "ssv-latn-vu", ssx: "ssx-latn-pg", ssy: "ssy-latn-er", ssz: "ssz-latn-pg", st: "st-latn-za", sta: "sta-latn-zm", stb: "stb-latn-ph", ste: "ste-latn-id", stf: "stf-latn-pg", stg: "stg-latn-vn", sth: "sth-latn-ie", sti: "sti-latn-vn", "sti-kh": "sti-latn-kh", stj: "stj-latn-bf", stk: "stk-latn-zz", stl: "stl-latn-nl", stm: "stm-latn-pg", stn: "stn-latn-sb", sto: "sto-latn-ca", stp: "stp-latn-mx", stq: "stq-latn-de", str: "str-latn-ca", sts: "sts-arab-af", stt: "stt-latn-vn", stv: "stv-ethi-et", "stv-arab": "stv-arab-et", stw: "stw-latn-fm", sty: "sty-cyrl-ru", su: "su-latn-id", sua: "sua-latn-zz", sub: "sub-latn-cd", suc: "suc-latn-ph", sue: "sue-latn-zz", sug: "sug-latn-pg", sui: "sui-latn-pg", suj: "suj-latn-tz", suk: "suk-latn-tz", suo: "suo-latn-pg", suq: "suq-latn-et", "suq-ethi": "suq-ethi-et", sur: "sur-latn-zz", sus: "sus-latn-gn", sut: "sut-latn-ni", suv: "suv-latn-in", "suv-beng": "suv-beng-in", "suv-deva": "suv-deva-in", suw: "suw-latn-tz", suy: "suy-latn-br", suz: "suz-deva-np", sv: "sv-latn-se", sva: "sva-geor-ge", "sva-cyrl": "sva-cyrl-ge", "sva-latn": "sva-latn-ge", svb: "svb-latn-pg", svc: "svc-latn-vc", sve: "sve-latn-id", svm: "svm-latn-it", svs: "svs-latn-sb", sw: "sw-latn-tz", swb: "swb-arab-yt", swc: "swc-latn-cd", swf: "swf-latn-cd", swg: "swg-latn-de", swi: "swi-hani-cn", swj: "swj-latn-ga", swk: "swk-latn-mw", swm: "swm-latn-pg", swo: "swo-latn-br", swp: "swp-latn-zz", swq: "swq-latn-cm", swr: "swr-latn-id", sws: "sws-latn-id", swt: "swt-latn-id", swu: "swu-latn-id", swv: "swv-deva-in", sww: "sww-latn-vu", swx: "swx-latn-br", swy: "swy-latn-td", sxb: "sxb-latn-ke", sxe: "sxe-latn-ga", sxn: "sxn-latn-id", sxr: "sxr-latn-tw", sxs: "sxs-latn-ng", sxu: "sxu-latn-de", "sxu-runr": "sxu-runr-de", sxw: "sxw-latn-zz", sya: "sya-latn-id", syb: "syb-latn-ph", syc: "syc-syrc-tr", syi: "syi-latn-ga", syk: "syk-latn-ng", syl: "syl-beng-bd", sym: "sym-latn-bf", syn: "syn-syrc-ir", syo: "syo-latn-kh", syr: "syr-syrc-iq", sys: "sys-latn-td", syw: "syw-deva-np", syx: "syx-latn-ga", sza: "sza-latn-my", szb: "szb-latn-id", szc: "szc-latn-my", szd: "szd-latn-my", szg: "szg-latn-cd", szl: "szl-latn-pl", szn: "szn-latn-id", szp: "szp-latn-id", szv: "szv-latn-cm", szw: "szw-latn-id", szy: "szy-latn-tw", ta: "ta-taml-in", taa: "taa-latn-us", tab: "tab-cyrl-ru", tac: "tac-latn-mx", tad: "tad-latn-id", tae: "tae-latn-br", taf: "taf-latn-br", tag: "tag-latn-sd", taj: "taj-deva-np", tak: "tak-latn-ng", tal: "tal-latn-zz", tan: "tan-latn-zz", tao: "tao-latn-tw", tap: "tap-latn-cd", taq: "taq-latn-zz", tar: "tar-latn-mx", tas: "tas-latn-vn", tau: "tau-latn-us", tav: "tav-latn-co", taw: "taw-latn-pg", tax: "tax-latn-td", tay: "tay-latn-tw", "tay-hans": "tay-hans-tw", "tay-hant": "tay-hant-tw", taz: "taz-latn-sd", tba: "tba-latn-br", tbc: "tbc-latn-zz", tbd: "tbd-latn-zz", tbe: "tbe-latn-sb", tbf: "tbf-latn-zz", tbg: "tbg-latn-zz", tbh: "tbh-latn-au", tbi: "tbi-latn-sd", tbj: "tbj-latn-pg", tbk: "tbk-tagb-ph", "tbk-hano": "tbk-hano-ph", "tbk-latn": "tbk-latn-ph", tbl: "tbl-latn-ph", tbm: "tbm-latn-cd", tbn: "tbn-latn-co", tbo: "tbo-latn-zz", tbp: "tbp-latn-id", tbs: "tbs-latn-pg", tbt: "tbt-latn-cd", tbu: "tbu-latn-mx", tbv: "tbv-latn-pg", tbw: "tbw-latn-ph", tbx: "tbx-latn-pg", tby: "tby-latn-id", tbz: "tbz-latn-zz", tca: "tca-latn-br", tcb: "tcb-latn-us", tcc: "tcc-latn-tz", tcd: "tcd-latn-gh", tce: "tce-latn-ca", tcf: "tcf-latn-mx", tcg: "tcg-latn-id", tch: "tch-latn-tc", tci: "tci-latn-zz", tck: "tck-latn-ga", tcm: "tcm-latn-id", tcn: "tcn-tibt-np", tco: "tco-mymr-mm", tcp: "tcp-latn-mm", tcq: "tcq-latn-id", tcs: "tcs-latn-au", tcu: "tcu-latn-mx", tcw: "tcw-latn-mx", tcx: "tcx-taml-in", tcy: "tcy-knda-in", tcz: "tcz-latn-in", tda: "tda-tfng-ne", "tda-arab": "tda-arab-ne", "tda-latn": "tda-latn-ne", tdb: "tdb-deva-in", "tdb-beng": "tdb-beng-in", "tdb-kthi": "tdb-kthi-in", tdc: "tdc-latn-co", tdd: "tdd-tale-cn", tde: "tde-latn-ml", tdg: "tdg-deva-np", tdh: "tdh-deva-np", tdi: "tdi-latn-id", tdj: "tdj-latn-id", tdk: "tdk-latn-ng", tdl: "tdl-latn-ng", tdm: "tdm-latn-gy", tdn: "tdn-latn-id", tdo: "tdo-latn-ng", tdq: "tdq-latn-ng", tdr: "tdr-latn-vn", tds: "tds-latn-id", tdt: "tdt-latn-tl", tdu: "tdu-latn-my", tdv: "tdv-latn-ng", tdx: "tdx-latn-mg", tdy: "tdy-latn-ph", te: "te-telu-in", tea: "tea-latn-my", teb: "teb-latn-ec", tec: "tec-latn-ke", ted: "ted-latn-zz", tee: "tee-latn-mx", teg: "teg-latn-ga", teh: "teh-latn-ar", tei: "tei-latn-pg", tek: "tek-latn-cd", tem: "tem-latn-sl", ten: "ten-latn-co", teo: "teo-latn-ug", tep: "tep-latn-mx", teq: "teq-latn-sd", ter: "ter-latn-br", tes: "tes-java-id", tet: "tet-latn-tl", teu: "teu-latn-ug", tev: "tev-latn-id", tew: "tew-latn-us", tex: "tex-latn-ss", tey: "tey-latn-sd", tfi: "tfi-latn-zz", tfn: "tfn-latn-us", tfo: "tfo-latn-id", tfr: "tfr-latn-pa", tft: "tft-latn-id", tg: "tg-cyrl-tj", "tg-arab": "tg-arab-pk", "tg-pk": "tg-arab-pk", tga: "tga-latn-ke", tgb: "tgb-latn-my", tgc: "tgc-latn-zz", tgd: "tgd-latn-ng", tge: "tge-deva-np", tgf: "tgf-tibt-bt", tgh: "tgh-latn-tt", tgi: "tgi-latn-pg", tgj: "tgj-latn-in", tgn: "tgn-latn-ph", tgo: "tgo-latn-zz", tgp: "tgp-latn-vu", tgq: "tgq-latn-my", tgs: "tgs-latn-vu", tgt: "tgt-latn-ph", "tgt-hano": "tgt-hano-ph", "tgt-tagb": "tgt-tagb-ph", tgu: "tgu-latn-zz", tgv: "tgv-latn-br", tgw: "tgw-latn-ci", tgx: "tgx-latn-ca", tgy: "tgy-latn-ss", tgz: "tgz-latn-au", th: "th-thai-th", thd: "thd-latn-au", the: "the-deva-np", thf: "thf-deva-np", thh: "thh-latn-mx", thi: "thi-tale-la", thk: "thk-latn-ke", thl: "thl-deva-np", thm: "thm-thai-th", thp: "thp-latn-ca", "thp-dupl": "thp-dupl-ca", thq: "thq-deva-np", thr: "thr-deva-np", ths: "ths-deva-np", tht: "tht-latn-ca", thu: "thu-latn-ss", thv: "thv-latn-dz", "thv-arab": "thv-arab-dz", "thv-tfng": "thv-tfng-dz", thy: "thy-latn-ng", thz: "thz-latn-ne", "thz-tfng": "thz-tfng-ne", ti: "ti-ethi-et", tic: "tic-latn-sd", tif: "tif-latn-zz", tig: "tig-ethi-er", tih: "tih-latn-my", tii: "tii-latn-cd", tij: "tij-deva-np", tik: "tik-latn-zz", til: "til-latn-us", tim: "tim-latn-zz", tin: "tin-cyrl-ru", tio: "tio-latn-zz", tip: "tip-latn-id", tiq: "tiq-latn-bf", tis: "tis-latn-ph", tit: "tit-latn-co", tiu: "tiu-latn-ph", tiv: "tiv-latn-ng", tiw: "tiw-latn-au", tix: "tix-latn-us", tiy: "tiy-latn-ph", tja: "tja-latn-lr", tjg: "tjg-latn-id", tji: "tji-latn-cn", tjj: "tjj-latn-au", tjl: "tjl-mymr-mm", tjn: "tjn-latn-ci", tjo: "tjo-arab-dz", tjp: "tjp-latn-au", tjs: "tjs-latn-cn", tju: "tju-latn-au", tjw: "tjw-latn-au", tk: "tk-latn-tm", tka: "tka-latn-br", tkb: "tkb-deva-in", tkd: "tkd-latn-tl", tke: "tke-latn-mz", tkf: "tkf-latn-br", tkg: "tkg-latn-mg", tkl: "tkl-latn-tk", tkp: "tkp-latn-sb", tkq: "tkq-latn-ng", tkr: "tkr-latn-az", tks: "tks-arab-ir", tkt: "tkt-deva-np", tku: "tku-latn-mx", tkv: "tkv-latn-pg", tkw: "tkw-latn-sb", tkx: "tkx-latn-id", tkz: "tkz-latn-vn", tl: "tl-latn-ph", tla: "tla-latn-mx", tlb: "tlb-latn-id", tlc: "tlc-latn-mx", tld: "tld-latn-id", tlf: "tlf-latn-zz", tlg: "tlg-latn-id", tli: "tli-latn-us", "tli-cyrl": "tli-cyrl-us", tlj: "tlj-latn-ug", tlk: "tlk-latn-id", tll: "tll-latn-cd", tlm: "tlm-latn-vu", tln: "tln-latn-id", tlp: "tlp-latn-mx", tlq: "tlq-latn-mm", tlr: "tlr-latn-sb", tls: "tls-latn-vu", tlt: "tlt-latn-id", tlu: "tlu-latn-id", tlv: "tlv-latn-id", tlx: "tlx-latn-zz", tly: "tly-latn-az", tma: "tma-latn-td", tmb: "tmb-latn-vu", tmc: "tmc-latn-td", tmd: "tmd-latn-pg", tme: "tme-latn-br", tmf: "tmf-latn-py", tmg: "tmg-latn-id", tmh: "tmh-latn-ne", tmi: "tmi-latn-vu", tmj: "tmj-latn-id", tmk: "tmk-deva-np", tml: "tml-latn-id", tmm: "tmm-latn-vn", tmn: "tmn-latn-id", tmo: "tmo-latn-my", tmq: "tmq-latn-pg", tmr: "tmr-syrc-il", tmt: "tmt-latn-vu", tmu: "tmu-latn-id", tmv: "tmv-latn-cd", tmw: "tmw-latn-my", tmy: "tmy-latn-zz", tmz: "tmz-latn-ve", tn: "tn-latn-za", tna: "tna-latn-bo", tnb: "tnb-latn-co", tnc: "tnc-latn-co", tnd: "tnd-latn-co", tng: "tng-latn-td", tnh: "tnh-latn-zz", tni: "tni-latn-id", tnk: "tnk-latn-vu", tnl: "tnl-latn-vu", tnm: "tnm-latn-id", tnn: "tnn-latn-vu", tno: "tno-latn-bo", tnp: "tnp-latn-vu", tnq: "tnq-latn-pr", tnr: "tnr-latn-sn", tns: "tns-latn-pg", tnt: "tnt-latn-id", tnv: "tnv-cakm-bd", tnw: "tnw-latn-id", tnx: "tnx-latn-sb", tny: "tny-latn-tz", to: "to-latn-to", tob: "tob-latn-ar", toc: "toc-latn-mx", tod: "tod-latn-gn", tof: "tof-latn-zz", tog: "tog-latn-mw", toh: "toh-latn-mz", toi: "toi-latn-zm", toj: "toj-latn-mx", tok: "tok-latn-001", tol: "tol-latn-us", tom: "tom-latn-id", too: "too-latn-mx", top: "top-latn-mx", toq: "toq-latn-zz", tor: "tor-latn-cd", tos: "tos-latn-mx", tou: "tou-latn-vn", tov: "tov-arab-ir", tow: "tow-latn-us", tox: "tox-latn-pw", toy: "toy-latn-id", toz: "toz-latn-cm", tpa: "tpa-latn-pg", tpc: "tpc-latn-mx", tpe: "tpe-latn-bd", "tpe-beng": "tpe-beng-bd", tpf: "tpf-latn-id", tpg: "tpg-latn-id", tpi: "tpi-latn-pg", tpj: "tpj-latn-py", tpk: "tpk-latn-br", tpl: "tpl-latn-mx", tpm: "tpm-latn-zz", tpn: "tpn-latn-br", tpp: "tpp-latn-mx", tpr: "tpr-latn-br", tpt: "tpt-latn-mx", tpu: "tpu-khmr-kh", tpv: "tpv-latn-mp", tpx: "tpx-latn-mx", tpy: "tpy-latn-br", tpz: "tpz-latn-zz", tqb: "tqb-latn-br", tql: "tql-latn-vu", tqm: "tqm-latn-pg", tqn: "tqn-latn-us", tqo: "tqo-latn-zz", tqp: "tqp-latn-pg", tqt: "tqt-latn-mx", tqu: "tqu-latn-sb", tqw: "tqw-latn-us", tr: "tr-latn-tr", tra: "tra-arab-af", trb: "trb-latn-pg", trc: "trc-latn-mx", tre: "tre-latn-id", trf: "trf-latn-tt", trg: "trg-hebr-il", trh: "trh-latn-pg", tri: "tri-latn-sr", trj: "trj-latn-td", trl: "trl-latn-gb", trm: "trm-arab-af", trn: "trn-latn-bo", tro: "tro-latn-in", trp: "trp-latn-in", "trp-beng": "trp-beng-in", trq: "trq-latn-mx", trr: "trr-latn-pe", trs: "trs-latn-mx", trt: "trt-latn-id", tru: "tru-latn-tr", trv: "trv-latn-tw", trw: "trw-arab-pk", trx: "trx-latn-my", try: "try-latn-in", trz: "trz-latn-br", ts: "ts-latn-za", tsa: "tsa-latn-cg", tsb: "tsb-latn-et", tsc: "tsc-latn-mz", tsd: "tsd-grek-gr", tsf: "tsf-deva-np", tsg: "tsg-latn-ph", tsh: "tsh-latn-cm", tsi: "tsi-latn-ca", tsj: "tsj-tibt-bt", tsl: "tsl-latn-vn", tsp: "tsp-latn-bf", tsr: "tsr-latn-vu", tst: "tst-latn-ml", tsu: "tsu-latn-tw", tsv: "tsv-latn-ga", tsw: "tsw-latn-zz", tsx: "tsx-latn-pg", tsz: "tsz-latn-mx", tt: "tt-cyrl-ru", ttb: "ttb-latn-ng", ttc: "ttc-latn-gt", ttd: "ttd-latn-zz", tte: "tte-latn-zz", ttf: "ttf-latn-cm", tth: "tth-laoo-la", tti: "tti-latn-id", ttj: "ttj-latn-ug", ttk: "ttk-latn-co", ttl: "ttl-latn-zm", ttm: "ttm-latn-ca", ttn: "ttn-latn-id", tto: "tto-laoo-la", ttp: "ttp-latn-id", ttr: "ttr-latn-zz", tts: "tts-thai-th", ttt: "ttt-latn-az", ttu: "ttu-latn-pg", ttv: "ttv-latn-pg", ttw: "ttw-latn-my", tty: "tty-latn-id", tua: "tua-latn-pg", tub: "tub-latn-us", tuc: "tuc-latn-pg", tud: "tud-latn-br", tue: "tue-latn-co", tuf: "tuf-latn-co", tug: "tug-latn-td", tuh: "tuh-latn-zz", tui: "tui-latn-cm", tuj: "tuj-latn-id", tul: "tul-latn-zz", tum: "tum-latn-mw", tun: "tun-latn-us", tuo: "tuo-latn-br", tuq: "tuq-latn-zz", tus: "tus-latn-ca", tuu: "tuu-latn-us", tuv: "tuv-latn-ke", tux: "tux-latn-br", tuy: "tuy-latn-ke", tuz: "tuz-latn-bf", tva: "tva-latn-sb", tvd: "tvd-latn-zz", tve: "tve-latn-id", tvk: "tvk-latn-vu", tvl: "tvl-latn-tv", tvm: "tvm-latn-id", tvn: "tvn-mymr-mm", tvo: "tvo-latn-id", tvs: "tvs-latn-ke", tvt: "tvt-latn-in", tvu: "tvu-latn-zz", tvw: "tvw-latn-id", tvx: "tvx-latn-tw", twa: "twa-latn-us", twb: "twb-latn-ph", twd: "twd-latn-nl", twe: "twe-latn-id", twf: "twf-latn-us", twg: "twg-latn-id", twh: "twh-latn-zz", twl: "twl-latn-mz", twm: "twm-deva-in", twn: "twn-latn-cm", two: "two-latn-bw", twp: "twp-latn-pg", twq: "twq-latn-ne", twr: "twr-latn-mx", twt: "twt-latn-br", twu: "twu-latn-id", tww: "tww-latn-pg", twx: "twx-latn-mz", twy: "twy-latn-id", txa: "txa-latn-my", txe: "txe-latn-id", txg: "txg-tang-cn", txi: "txi-latn-br", txj: "txj-latn-ng", txm: "txm-latn-id", txn: "txn-latn-id", txo: "txo-toto-in", txq: "txq-latn-id", txs: "txs-latn-id", txt: "txt-latn-id", txu: "txu-latn-br", txx: "txx-latn-my", txy: "txy-latn-mg", ty: "ty-latn-pf", tya: "tya-latn-zz", tye: "tye-latn-ng", tyh: "tyh-latn-vn", tyi: "tyi-latn-cg", tyj: "tyj-latn-vn", tyl: "tyl-latn-vn", tyn: "tyn-latn-id", typ: "typ-latn-au", tyr: "tyr-tavt-vn", tys: "tys-latn-vn", tyt: "tyt-latn-vn", "tyt-tavt": "tyt-tavt-vn", tyu: "tyu-latn-bw", tyv: "tyv-cyrl-ru", tyx: "tyx-latn-cg", tyy: "tyy-latn-ng", tyz: "tyz-latn-vn", tzh: "tzh-latn-mx", tzj: "tzj-latn-gt", tzl: "tzl-latn-001", tzm: "tzm-latn-ma", tzn: "tzn-latn-id", tzo: "tzo-latn-mx", tzx: "tzx-latn-pg", uam: "uam-latn-br", uar: "uar-latn-pg", uba: "uba-latn-ng", ubi: "ubi-latn-td", ubl: "ubl-latn-ph", ubr: "ubr-latn-pg", ubu: "ubu-latn-zz", uda: "uda-latn-ng", ude: "ude-cyrl-ru", udg: "udg-mlym-in", udi: "udi-aghb-ru", udj: "udj-latn-id", udl: "udl-latn-cm", udm: "udm-cyrl-ru", udu: "udu-latn-sd", ues: "ues-latn-id", ufi: "ufi-latn-pg", ug: "ug-arab-cn", "ug-cyrl": "ug-cyrl-kz", "ug-kz": "ug-cyrl-kz", "ug-mn": "ug-cyrl-mn", uga: "uga-ugar-sy", ugb: "ugb-latn-au", uge: "uge-latn-sb", ugh: "ugh-cyrl-ru", ugo: "ugo-thai-th", uha: "uha-latn-ng", uhn: "uhn-latn-id", uis: "uis-latn-pg", uiv: "uiv-latn-cm", uji: "uji-latn-ng", uk: "uk-cyrl-ua", uka: "uka-latn-id", ukg: "ukg-latn-pg", ukh: "ukh-latn-cf", uki: "uki-orya-in", ukk: "ukk-latn-mm", ukp: "ukp-latn-ng", ukq: "ukq-latn-ng", uku: "uku-latn-ng", ukv: "ukv-latn-ss", ukw: "ukw-latn-ng", uky: "uky-latn-au", ula: "ula-latn-ng", ulb: "ulb-latn-ng", ulc: "ulc-cyrl-ru", ule: "ule-latn-ar", ulf: "ulf-latn-id", uli: "uli-latn-fm", ulk: "ulk-latn-au", ulm: "ulm-latn-id", uln: "uln-latn-pg", ulu: "ulu-latn-id", ulw: "ulw-latn-ni", uma: "uma-latn-us", umb: "umb-latn-ao", umd: "umd-latn-au", umg: "umg-latn-au", umi: "umi-latn-my", umm: "umm-latn-ng", umn: "umn-latn-mm", umo: "umo-latn-br", ump: "ump-latn-au", umr: "umr-latn-au", ums: "ums-latn-id", una: "una-latn-pg", und: "en-latn-us", "und-002": "en-latn-ng", "und-003": "en-latn-us", "und-005": "pt-latn-br", "und-009": "en-latn-au", "und-011": "en-latn-ng", "und-013": "es-latn-mx", "und-014": "sw-latn-tz", "und-015": "ar-arab-eg", "und-017": "sw-latn-cd", "und-018": "en-latn-za", "und-019": "en-latn-us", "und-021": "en-latn-us", "und-029": "es-latn-cu", "und-030": "zh-hans-cn", "und-034": "hi-deva-in", "und-035": "id-latn-id", "und-039": "it-latn-it", "und-053": "en-latn-au", "und-054": "en-latn-pg", "und-057": "en-latn-gu", "und-061": "sm-latn-ws", "und-142": "zh-hans-cn", "und-143": "uz-latn-uz", "und-145": "ar-arab-sa", "und-150": "ru-cyrl-ru", "und-151": "ru-cyrl-ru", "und-154": "en-latn-gb", "und-155": "de-latn-de", "und-202": "en-latn-ng", "und-419": "es-latn-419", "und-ad": "ca-latn-ad", "und-adlm": "ff-adlm-gn", "und-ae": "ar-arab-ae", "und-af": "fa-arab-af", "und-aghb": "udi-aghb-ru", "und-ahom": "aho-ahom-in", "und-al": "sq-latn-al", "und-am": "hy-armn-am", "und-ao": "pt-latn-ao", "und-aq": "und-latn-aq", "und-ar": "es-latn-ar", "und-arab": "ar-arab-eg", "und-arab-cc": "ms-arab-cc", "und-arab-cn": "ug-arab-cn", "und-arab-gb": "ur-arab-gb", "und-arab-id": "ms-arab-id", "und-arab-in": "ur-arab-in", "und-arab-kh": "cja-arab-kh", "und-arab-mm": "rhg-arab-mm", "und-arab-mn": "kk-arab-mn", "und-arab-mu": "ur-arab-mu", "und-arab-ng": "ha-arab-ng", "und-arab-pk": "ur-arab-pk", "und-arab-tg": "apd-arab-tg", "und-arab-th": "mfa-arab-th", "und-arab-tj": "fa-arab-tj", "und-arab-tr": "apc-arab-tr", "und-arab-yt": "swb-arab-yt", "und-armi": "arc-armi-ir", "und-armn": "hy-armn-am", "und-as": "sm-latn-as", "und-at": "de-latn-at", "und-avst": "ae-avst-ir", "und-aw": "nl-latn-aw", "und-ax": "sv-latn-ax", "und-az": "az-latn-az", "und-ba": "bs-latn-ba", "und-bali": "ban-bali-id", "und-bamu": "bax-bamu-cm", "und-bass": "bsq-bass-lr", "und-batk": "bbc-batk-id", "und-bd": "bn-beng-bd", "und-be": "nl-latn-be", "und-beng": "bn-beng-bd", "und-bf": "fr-latn-bf", "und-bg": "bg-cyrl-bg", "und-bh": "ar-arab-bh", "und-bhks": "sa-bhks-in", "und-bi": "rn-latn-bi", "und-bj": "fr-latn-bj", "und-bl": "fr-latn-bl", "und-bn": "ms-latn-bn", "und-bo": "es-latn-bo", "und-bopo": "zh-bopo-tw", "und-bq": "pap-latn-bq", "und-br": "pt-latn-br", "und-brah": "pka-brah-in", "und-brai": "fr-brai-fr", "und-bt": "dz-tibt-bt", "und-bugi": "bug-bugi-id", "und-buhd": "bku-buhd-ph", "und-bv": "und-latn-bv", "und-by": "be-cyrl-by", "und-cakm": "ccp-cakm-bd", "und-cans": "iu-cans-ca", "und-cari": "xcr-cari-tr", "und-cd": "sw-latn-cd", "und-cf": "fr-latn-cf", "und-cg": "fr-latn-cg", "und-ch": "de-latn-ch", "und-cham": "cjm-cham-vn", "und-cher": "chr-cher-us", "und-chrs": "xco-chrs-uz", "und-ci": "fr-latn-ci", "und-cl": "es-latn-cl", "und-cm": "fr-latn-cm", "und-cn": "zh-hans-cn", "und-co": "es-latn-co", "und-copt": "cop-copt-eg", "und-cp": "und-latn-cp", "und-cpmn": "und-cpmn-cy", "und-cpmn-cy": "und-cpmn-cy", "und-cprt": "grc-cprt-cy", "und-cr": "es-latn-cr", "und-cu": "es-latn-cu", "und-cv": "pt-latn-cv", "und-cw": "pap-latn-cw", "und-cy": "el-grek-cy", "und-cyrl": "ru-cyrl-ru", "und-cyrl-al": "mk-cyrl-al", "und-cyrl-ba": "sr-cyrl-ba", "und-cyrl-ge": "ab-cyrl-ge", "und-cyrl-gr": "mk-cyrl-gr", "und-cyrl-md": "uk-cyrl-md", "und-cyrl-ro": "bg-cyrl-ro", "und-cyrl-sk": "uk-cyrl-sk", "und-cyrl-tr": "kbd-cyrl-tr", "und-cyrl-xk": "sr-cyrl-xk", "und-cz": "cs-latn-cz", "und-de": "de-latn-de", "und-deva": "hi-deva-in", "und-deva-bt": "ne-deva-bt", "und-deva-fj": "hif-deva-fj", "und-deva-mu": "bho-deva-mu", "und-deva-pk": "btv-deva-pk", "und-diak": "dv-diak-mv", "und-dj": "aa-latn-dj", "und-dk": "da-latn-dk", "und-do": "es-latn-do", "und-dogr": "doi-dogr-in", "und-dupl": "fr-dupl-fr", "und-dz": "ar-arab-dz", "und-ea": "es-latn-ea", "und-ec": "es-latn-ec", "und-ee": "et-latn-ee", "und-eg": "ar-arab-eg", "und-egyp": "egy-egyp-eg", "und-eh": "ar-arab-eh", "und-elba": "sq-elba-al", "und-elym": "arc-elym-ir", "und-er": "ti-ethi-er", "und-es": "es-latn-es", "und-et": "am-ethi-et", "und-ethi": "am-ethi-et", "und-eu": "en-latn-ie", "und-ez": "de-latn-ez", "und-fi": "fi-latn-fi", "und-fo": "fo-latn-fo", "und-fr": "fr-latn-fr", "und-ga": "fr-latn-ga", "und-ge": "ka-geor-ge", "und-geor": "ka-geor-ge", "und-gf": "fr-latn-gf", "und-gh": "ak-latn-gh", "und-gl": "kl-latn-gl", "und-glag": "cu-glag-bg", "und-gn": "fr-latn-gn", "und-gong": "wsg-gong-in", "und-gonm": "esg-gonm-in", "und-goth": "got-goth-ua", "und-gp": "fr-latn-gp", "und-gq": "es-latn-gq", "und-gr": "el-grek-gr", "und-gran": "sa-gran-in", "und-grek": "el-grek-gr", "und-grek-tr": "bgx-grek-tr", "und-gs": "und-latn-gs", "und-gt": "es-latn-gt", "und-gujr": "gu-gujr-in", "und-guru": "pa-guru-in", "und-gw": "pt-latn-gw", "und-hanb": "zh-hanb-tw", "und-hang": "ko-hang-kr", "und-hani": "zh-hani-cn", "und-hano": "hnn-hano-ph", "und-hans": "zh-hans-cn", "und-hant": "zh-hant-tw", "und-hant-ca": "yue-hant-ca", "und-hebr": "he-hebr-il", "und-hebr-se": "yi-hebr-se", "und-hebr-ua": "yi-hebr-ua", "und-hebr-us": "yi-hebr-us", "und-hira": "ja-hira-jp", "und-hk": "zh-hant-hk", "und-hluw": "hlu-hluw-tr", "und-hm": "und-latn-hm", "und-hmng": "hnj-hmng-la", "und-hmnp": "hnj-hmnp-us", "und-hn": "es-latn-hn", "und-hr": "hr-latn-hr", "und-ht": "ht-latn-ht", "und-hu": "hu-latn-hu", "und-hung": "hu-hung-hu", "und-ic": "es-latn-ic", "und-id": "id-latn-id", "und-il": "he-hebr-il", "und-in": "hi-deva-in", "und-iq": "ar-arab-iq", "und-ir": "fa-arab-ir", "und-is": "is-latn-is", "und-it": "it-latn-it", "und-ital": "ett-ital-it", "und-jamo": "ko-jamo-kr", "und-java": "jv-java-id", "und-jo": "ar-arab-jo", "und-jp": "ja-jpan-jp", "und-jpan": "ja-jpan-jp", "und-kali": "eky-kali-mm", "und-kana": "ja-kana-jp", "und-kawi": "kaw-kawi-id", "und-ke": "sw-latn-ke", "und-kg": "ky-cyrl-kg", "und-kh": "km-khmr-kh", "und-khar": "pra-khar-pk", "und-khmr": "km-khmr-kh", "und-khoj": "sd-khoj-in", "und-kits": "zkt-kits-cn", "und-km": "ar-arab-km", "und-knda": "kn-knda-in", "und-kore": "ko-kore-kr", "und-kp": "ko-kore-kp", "und-kr": "ko-kore-kr", "und-kthi": "bho-kthi-in", "und-kw": "ar-arab-kw", "und-kz": "ru-cyrl-kz", "und-la": "lo-laoo-la", "und-lana": "nod-lana-th", "und-laoo": "lo-laoo-la", "und-laoo-au": "hnj-laoo-au", "und-laoo-cn": "hnj-laoo-cn", "und-laoo-fr": "hnj-laoo-fr", "und-laoo-gf": "hnj-laoo-gf", "und-laoo-mm": "hnj-laoo-mm", "und-laoo-sr": "hnj-laoo-sr", "und-laoo-th": "hnj-laoo-th", "und-laoo-us": "hnj-laoo-us", "und-laoo-vn": "hnj-laoo-vn", "und-latn-af": "tk-latn-af", "und-latn-am": "ku-latn-am", "und-latn-cn": "za-latn-cn", "und-latn-cy": "tr-latn-cy", "und-latn-dz": "fr-latn-dz", "und-latn-et": "en-latn-et", "und-latn-ge": "ku-latn-ge", "und-latn-ir": "tk-latn-ir", "und-latn-km": "fr-latn-km", "und-latn-ma": "fr-latn-ma", "und-latn-mk": "sq-latn-mk", "und-latn-mm": "kac-latn-mm", "und-latn-mo": "pt-latn-mo", "und-latn-mr": "fr-latn-mr", "und-latn-ru": "krl-latn-ru", "und-latn-sy": "fr-latn-sy", "und-latn-tn": "fr-latn-tn", "und-latn-tw": "trv-latn-tw", "und-latn-ua": "pl-latn-ua", "und-lb": "ar-arab-lb", "und-lepc": "lep-lepc-in", "und-li": "de-latn-li", "und-limb": "lif-limb-in", "und-lina": "lab-lina-gr", "und-linb": "grc-linb-gr", "und-lisu": "lis-lisu-cn", "und-lk": "si-sinh-lk", "und-ls": "st-latn-ls", "und-lt": "lt-latn-lt", "und-lu": "fr-latn-lu", "und-lv": "lv-latn-lv", "und-ly": "ar-arab-ly", "und-lyci": "xlc-lyci-tr", "und-lydi": "xld-lydi-tr", "und-ma": "ar-arab-ma", "und-mahj": "hi-mahj-in", "und-maka": "mak-maka-id", "und-mand": "myz-mand-ir", "und-mani": "xmn-mani-cn", "und-marc": "bo-marc-cn", "und-mc": "fr-latn-mc", "und-md": "ro-latn-md", "und-me": "sr-latn-me", "und-medf": "dmf-medf-ng", "und-mend": "men-mend-sl", "und-merc": "xmr-merc-sd", "und-mero": "xmr-mero-sd", "und-mf": "fr-latn-mf", "und-mg": "mg-latn-mg", "und-mk": "mk-cyrl-mk", "und-ml": "bm-latn-ml", "und-mlym": "ml-mlym-in", "und-mm": "my-mymr-mm", "und-mn": "mn-cyrl-mn", "und-mo": "zh-hant-mo", "und-modi": "mr-modi-in", "und-mong": "mn-mong-cn", "und-mq": "fr-latn-mq", "und-mr": "ar-arab-mr", "und-mroo": "mro-mroo-bd", "und-mt": "mt-latn-mt", "und-mtei": "mni-mtei-in", "und-mu": "mfe-latn-mu", "und-mult": "skr-mult-pk", "und-mv": "dv-thaa-mv", "und-mx": "es-latn-mx", "und-my": "ms-latn-my", "und-mymr": "my-mymr-mm", "und-mymr-in": "kht-mymr-in", "und-mymr-th": "mnw-mymr-th", "und-mz": "pt-latn-mz", "und-na": "af-latn-na", "und-nagm": "unr-nagm-in", "und-nand": "sa-nand-in", "und-narb": "xna-narb-sa", "und-nbat": "arc-nbat-jo", "und-nc": "fr-latn-nc", "und-ne": "ha-latn-ne", "und-newa": "new-newa-np", "und-ni": "es-latn-ni", "und-nkoo": "man-nkoo-gn", "und-nl": "nl-latn-nl", "und-no": "nb-latn-no", "und-np": "ne-deva-np", "und-nshu": "zhx-nshu-cn", "und-ogam": "sga-ogam-ie", "und-olck": "sat-olck-in", "und-om": "ar-arab-om", "und-orkh": "otk-orkh-mn", "und-orya": "or-orya-in", "und-osge": "osa-osge-us", "und-osma": "so-osma-so", "und-ougr": "oui-ougr-143", "und-pa": "es-latn-pa", "und-palm": "arc-palm-sy", "und-pauc": "ctd-pauc-mm", "und-pe": "es-latn-pe", "und-perm": "kv-perm-ru", "und-pf": "fr-latn-pf", "und-pg": "tpi-latn-pg", "und-ph": "fil-latn-ph", "und-phag": "lzh-phag-cn", "und-phli": "pal-phli-ir", "und-phlp": "pal-phlp-cn", "und-phnx": "phn-phnx-lb", "und-pk": "ur-arab-pk", "und-pl": "pl-latn-pl", "und-plrd": "hmd-plrd-cn", "und-pm": "fr-latn-pm", "und-pr": "es-latn-pr", "und-prti": "xpr-prti-ir", "und-ps": "ar-arab-ps", "und-pt": "pt-latn-pt", "und-pw": "pau-latn-pw", "und-py": "gn-latn-py", "und-qa": "ar-arab-qa", "und-qo": "en-latn-dg", "und-re": "fr-latn-re", "und-rjng": "rej-rjng-id", "und-ro": "ro-latn-ro", "und-rohg": "rhg-rohg-mm", "und-rs": "sr-cyrl-rs", "und-ru": "ru-cyrl-ru", "und-runr": "non-runr-se", "und-rw": "rw-latn-rw", "und-sa": "ar-arab-sa", "und-samr": "smp-samr-il", "und-sarb": "xsa-sarb-ye", "und-saur": "saz-saur-in", "und-sc": "fr-latn-sc", "und-sd": "ar-arab-sd", "und-se": "sv-latn-se", "und-sgnw": "ase-sgnw-us", "und-shaw": "en-shaw-gb", "und-shrd": "sa-shrd-in", "und-si": "sl-latn-si", "und-sidd": "sa-sidd-in", "und-sind": "sd-sind-in", "und-sinh": "si-sinh-lk", "und-sj": "nb-latn-sj", "und-sk": "sk-latn-sk", "und-sm": "it-latn-sm", "und-sn": "fr-latn-sn", "und-so": "so-latn-so", "und-sogd": "sog-sogd-uz", "und-sogo": "sog-sogo-uz", "und-sora": "srb-sora-in", "und-soyo": "cmg-soyo-mn", "und-sr": "nl-latn-sr", "und-st": "pt-latn-st", "und-sund": "su-sund-id", "und-sv": "es-latn-sv", "und-sy": "ar-arab-sy", "und-sylo": "syl-sylo-bd", "und-syrc": "syr-syrc-iq", "und-tagb": "tbw-tagb-ph", "und-takr": "doi-takr-in", "und-tale": "tdd-tale-cn", "und-talu": "khb-talu-cn", "und-taml": "ta-taml-in", "und-tang": "txg-tang-cn", "und-tavt": "blt-tavt-vn", "und-td": "fr-latn-td", "und-telu": "te-telu-in", "und-tf": "fr-latn-tf", "und-tfng": "zgh-tfng-ma", "und-tg": "fr-latn-tg", "und-tglg": "fil-tglg-ph", "und-th": "th-thai-th", "und-thaa": "dv-thaa-mv", "und-thai": "th-thai-th", "und-thai-cn": "lcp-thai-cn", "und-thai-kh": "kdt-thai-kh", "und-thai-la": "kdt-thai-la", "und-tibt": "bo-tibt-cn", "und-tirh": "mai-tirh-in", "und-tj": "tg-cyrl-tj", "und-tk": "tkl-latn-tk", "und-tl": "pt-latn-tl", "und-tm": "tk-latn-tm", "und-tn": "ar-arab-tn", "und-tnsa": "nst-tnsa-in", "und-to": "to-latn-to", "und-toto": "txo-toto-in", "und-tr": "tr-latn-tr", "und-tv": "tvl-latn-tv", "und-tw": "zh-hant-tw", "und-tz": "sw-latn-tz", "und-ua": "uk-cyrl-ua", "und-ug": "sw-latn-ug", "und-ugar": "uga-ugar-sy", "und-uy": "es-latn-uy", "und-uz": "uz-latn-uz", "und-va": "it-latn-va", "und-vaii": "vai-vaii-lr", "und-ve": "es-latn-ve", "und-vith": "sq-vith-al", "und-vn": "vi-latn-vn", "und-vu": "bi-latn-vu", "und-wara": "hoc-wara-in", "und-wcho": "nnp-wcho-in", "und-wf": "fr-latn-wf", "und-ws": "sm-latn-ws", "und-xk": "sq-latn-xk", "und-xpeo": "peo-xpeo-ir", "und-xsux": "akk-xsux-iq", "und-ye": "ar-arab-ye", "und-yezi": "ku-yezi-ge", "und-yiii": "ii-yiii-cn", "und-yt": "fr-latn-yt", "und-zanb": "cmg-zanb-mn", "und-zw": "sn-latn-zw", une: "une-latn-ng", ung: "ung-latn-au", uni: "uni-latn-pg", unk: "unk-latn-br", unm: "unm-latn-us", unn: "unn-latn-au", unr: "unr-beng-in", "unr-deva": "unr-deva-np", "unr-np": "unr-deva-np", unu: "unu-latn-pg", unx: "unx-beng-in", unz: "unz-latn-id", uok: "uok-latn-zz", uon: "uon-latn-tw", upi: "upi-latn-pg", upv: "upv-latn-vu", ur: "ur-arab-pk", ura: "ura-latn-pe", urb: "urb-latn-br", urc: "urc-latn-au", ure: "ure-latn-bo", urf: "urf-latn-au", urg: "urg-latn-pg", urh: "urh-latn-ng", uri: "uri-latn-zz", urk: "urk-thai-th", urm: "urm-latn-pg", urn: "urn-latn-id", uro: "uro-latn-pg", urp: "urp-latn-br", urr: "urr-latn-vu", urt: "urt-latn-zz", uru: "uru-latn-br", urv: "urv-latn-pg", urw: "urw-latn-zz", urx: "urx-latn-pg", ury: "ury-latn-id", urz: "urz-latn-br", usa: "usa-latn-zz", ush: "ush-arab-pk", usi: "usi-latn-bd", "usi-beng": "usi-beng-bd", usk: "usk-latn-cm", usp: "usp-latn-gt", uss: "uss-latn-ng", usu: "usu-latn-pg", uta: "uta-latn-ng", ute: "ute-latn-us", uth: "uth-latn-zz", utp: "utp-latn-sb", utr: "utr-latn-zz", utu: "utu-latn-pg", uum: "uum-grek-ge", "uum-cyrl": "uum-cyrl-ge", uur: "uur-latn-vu", uve: "uve-latn-nc", uvh: "uvh-latn-zz", uvl: "uvl-latn-zz", uwa: "uwa-latn-au", uya: "uya-latn-ng", uz: "uz-latn-uz", "uz-af": "uz-arab-af", "uz-arab": "uz-arab-af", "uz-cn": "uz-cyrl-cn", uzs: "uzs-arab-af", vaa: "vaa-taml-in", vae: "vae-latn-cf", vaf: "vaf-arab-ir", vag: "vag-latn-zz", vah: "vah-deva-in", vai: "vai-vaii-lr", vaj: "vaj-latn-na", val: "val-latn-pg", vam: "vam-latn-pg", van: "van-latn-zz", vao: "vao-latn-vu", vap: "vap-latn-in", var: "var-latn-mx", vas: "vas-deva-in", "vas-gujr": "vas-gujr-in", vau: "vau-latn-cd", vav: "vav-deva-in", "vav-gujr": "vav-gujr-in", vay: "vay-deva-np", vbb: "vbb-latn-id", vbk: "vbk-latn-ph", ve: "ve-latn-za", vec: "vec-latn-it", vem: "vem-latn-ng", veo: "veo-latn-us", vep: "vep-latn-ru", ver: "ver-latn-ng", vgr: "vgr-arab-pk", vi: "vi-latn-vn", vic: "vic-latn-sx", vid: "vid-latn-tz", vif: "vif-latn-cg", vig: "vig-latn-bf", vil: "vil-latn-ar", vin: "vin-latn-tz", vit: "vit-latn-ng", viv: "viv-latn-zz", vka: "vka-latn-au", vkj: "vkj-latn-td", vkk: "vkk-latn-id", vkl: "vkl-latn-id", vkm: "vkm-latn-br", vkn: "vkn-latn-ng", vko: "vko-latn-id", vkp: "vkp-latn-in", "vkp-deva": "vkp-deva-in", vkt: "vkt-latn-id", vku: "vku-latn-au", vkz: "vkz-latn-ng", vlp: "vlp-latn-vu", vls: "vls-latn-be", vma: "vma-latn-au", vmb: "vmb-latn-au", vmc: "vmc-latn-mx", vmd: "vmd-knda-in", vme: "vme-latn-id", vmf: "vmf-latn-de", vmg: "vmg-latn-pg", vmh: "vmh-arab-ir", vmi: "vmi-latn-au", vmj: "vmj-latn-mx", vmk: "vmk-latn-mz", vml: "vml-latn-au", vmm: "vmm-latn-mx", vmp: "vmp-latn-mx", vmq: "vmq-latn-mx", vmr: "vmr-latn-mz", vms: "vms-latn-id", vmu: "vmu-latn-au", vmw: "vmw-latn-mz", vmx: "vmx-latn-mx", vmy: "vmy-latn-mx", vmz: "vmz-latn-mx", vnk: "vnk-latn-sb", vnm: "vnm-latn-vu", vnp: "vnp-latn-vu", vo: "vo-latn-001", vor: "vor-latn-ng", vot: "vot-latn-ru", vra: "vra-latn-vu", vro: "vro-latn-ee", vrs: "vrs-latn-sb", vrt: "vrt-latn-vu", vto: "vto-latn-id", vum: "vum-latn-ga", vun: "vun-latn-tz", vut: "vut-latn-zz", vwa: "vwa-latn-cn", "vwa-mymr": "vwa-mymr-cn", wa: "wa-latn-be", waa: "waa-latn-us", wab: "wab-latn-pg", wac: "wac-latn-us", wad: "wad-latn-id", wae: "wae-latn-ch", waf: "waf-latn-br", wag: "wag-latn-pg", wah: "wah-latn-id", wai: "wai-latn-id", waj: "waj-latn-zz", wal: "wal-ethi-et", wam: "wam-latn-us", wan: "wan-latn-zz", wap: "wap-latn-gy", waq: "waq-latn-au", war: "war-latn-ph", was: "was-latn-us", wat: "wat-latn-pg", wau: "wau-latn-br", wav: "wav-latn-ng", waw: "waw-latn-br", wax: "wax-latn-pg", way: "way-latn-sr", waz: "waz-latn-pg", wba: "wba-latn-ve", wbb: "wbb-latn-id", wbe: "wbe-latn-id", wbf: "wbf-latn-bf", wbh: "wbh-latn-tz", wbi: "wbi-latn-tz", wbj: "wbj-latn-tz", wbk: "wbk-arab-af", wbl: "wbl-latn-pk", "wbl-arab": "wbl-arab-af", "wbl-cyrl": "wbl-cyrl-tj", wbm: "wbm-latn-cn", wbp: "wbp-latn-au", wbq: "wbq-telu-in", wbr: "wbr-deva-in", wbt: "wbt-latn-au", wbv: "wbv-latn-au", wbw: "wbw-latn-id", wca: "wca-latn-br", wci: "wci-latn-zz", wdd: "wdd-latn-ga", wdg: "wdg-latn-pg", wdj: "wdj-latn-au", wdk: "wdk-latn-au", wdt: "wdt-latn-ca", wdu: "wdu-latn-au", wdy: "wdy-latn-au", wec: "wec-latn-ci", wed: "wed-latn-pg", weg: "weg-latn-au", weh: "weh-latn-cm", wei: "wei-latn-pg", wem: "wem-latn-bj", weo: "weo-latn-id", wep: "wep-latn-de", wer: "wer-latn-zz", wes: "wes-latn-cm", wet: "wet-latn-id", weu: "weu-latn-mm", wew: "wew-latn-id", wfg: "wfg-latn-id", wga: "wga-latn-au", wgb: "wgb-latn-pg", wgg: "wgg-latn-au", wgi: "wgi-latn-zz", wgo: "wgo-latn-id", wgu: "wgu-latn-au", wgy: "wgy-latn-au", wha: "wha-latn-id", whg: "whg-latn-zz", whk: "whk-latn-id", whu: "whu-latn-id", wib: "wib-latn-zz", wic: "wic-latn-us", wie: "wie-latn-au", wif: "wif-latn-au", wig: "wig-latn-au", wih: "wih-latn-au", wii: "wii-latn-pg", wij: "wij-latn-au", wik: "wik-latn-au", wil: "wil-latn-au", wim: "wim-latn-au", win: "win-latn-us", wir: "wir-latn-br", wiu: "wiu-latn-zz", wiv: "wiv-latn-zz", wiy: "wiy-latn-us", wja: "wja-latn-zz", wji: "wji-latn-zz", wka: "wka-latn-tz", wkd: "wkd-latn-id", wkr: "wkr-latn-au", wkw: "wkw-latn-au", wky: "wky-latn-au", wla: "wla-latn-pg", wlg: "wlg-latn-au", wlh: "wlh-latn-tl", wli: "wli-latn-id", wlm: "wlm-latn-gb", wlo: "wlo-arab-id", wlr: "wlr-latn-vu", wls: "wls-latn-wf", wlu: "wlu-latn-au", wlv: "wlv-latn-ar", wlw: "wlw-latn-id", wlx: "wlx-latn-gh", wma: "wma-latn-ng", wmb: "wmb-latn-au", wmc: "wmc-latn-pg", wmd: "wmd-latn-br", wme: "wme-deva-np", wmh: "wmh-latn-tl", wmi: "wmi-latn-au", wmm: "wmm-latn-id", wmn: "wmn-latn-nc", wmo: "wmo-latn-zz", wms: "wms-latn-id", wmt: "wmt-latn-au", wmw: "wmw-latn-mz", "wmw-arab": "wmw-arab-mz", wmx: "wmx-latn-pg", wnb: "wnb-latn-pg", wnc: "wnc-latn-zz", wnd: "wnd-latn-au", wne: "wne-arab-pk", wng: "wng-latn-id", wni: "wni-arab-km", wnk: "wnk-latn-id", wnm: "wnm-latn-au", wnn: "wnn-latn-au", wno: "wno-latn-id", wnp: "wnp-latn-pg", wnu: "wnu-latn-zz", wnw: "wnw-latn-us", wny: "wny-latn-au", wo: "wo-latn-sn", woa: "woa-latn-au", wob: "wob-latn-zz", woc: "woc-latn-pg", wod: "wod-latn-id", woe: "woe-latn-fm", wof: "wof-latn-gm", "wof-arab": "wof-arab-gm", wog: "wog-latn-pg", woi: "woi-latn-id", wok: "wok-latn-cm", wom: "wom-latn-ng", won: "won-latn-cd", woo: "woo-latn-id", wor: "wor-latn-id", wos: "wos-latn-zz", wow: "wow-latn-id", wpc: "wpc-latn-ve", wrb: "wrb-latn-au", wrg: "wrg-latn-au", wrh: "wrh-latn-au", wri: "wri-latn-au", wrk: "wrk-latn-au", wrl: "wrl-latn-au", wrm: "wrm-latn-au", wro: "wro-latn-au", wrp: "wrp-latn-id", wrr: "wrr-latn-au", wrs: "wrs-latn-zz", wru: "wru-latn-id", wrv: "wrv-latn-pg", wrw: "wrw-latn-au", wrx: "wrx-latn-id", wrz: "wrz-latn-au", wsa: "wsa-latn-id", wsg: "wsg-gong-in", wsi: "wsi-latn-vu", wsk: "wsk-latn-zz", wsr: "wsr-latn-pg", wss: "wss-latn-gh", wsu: "wsu-latn-br", wsv: "wsv-arab-af", wtf: "wtf-latn-pg", wth: "wth-latn-au", wti: "wti-latn-et", wtk: "wtk-latn-pg", wtm: "wtm-deva-in", wtw: "wtw-latn-id", "wtw-bugi": "wtw-bugi-id", wua: "wua-latn-au", wub: "wub-latn-au", wud: "wud-latn-tg", wul: "wul-latn-id", wum: "wum-latn-ga", wun: "wun-latn-tz", wur: "wur-latn-au", wut: "wut-latn-pg", wuu: "wuu-hans-cn", wuv: "wuv-latn-zz", wux: "wux-latn-au", wuy: "wuy-latn-id", wwa: "wwa-latn-zz", wwb: "wwb-latn-au", wwo: "wwo-latn-vu", wwr: "wwr-latn-au", www: "www-latn-cm", wxw: "wxw-latn-au", wyb: "wyb-latn-au", wyi: "wyi-latn-au", wym: "wym-latn-pl", wyn: "wyn-latn-us", wyr: "wyr-latn-br", wyy: "wyy-latn-fj", xaa: "xaa-latn-es", xab: "xab-latn-ng", xai: "xai-latn-br", xaj: "xaj-latn-br", xak: "xak-latn-ve", xal: "xal-cyrl-ru", xam: "xam-latn-za", xan: "xan-ethi-et", xao: "xao-latn-vn", xar: "xar-latn-pg", xas: "xas-cyrl-ru", xat: "xat-latn-br", xau: "xau-latn-id", xav: "xav-latn-br", xaw: "xaw-latn-us", xay: "xay-latn-id", xbb: "xbb-latn-au", xbd: "xbd-latn-au", xbe: "xbe-latn-au", xbg: "xbg-latn-au", xbi: "xbi-latn-zz", xbj: "xbj-latn-au", xbm: "xbm-latn-fr", xbn: "xbn-latn-my", xbp: "xbp-latn-au", xbr: "xbr-latn-id", xbw: "xbw-latn-br", xby: "xby-latn-au", xch: "xch-latn-us", xco: "xco-chrs-uz", xcr: "xcr-cari-tr", xda: "xda-latn-au", xdk: "xdk-latn-au", xdo: "xdo-latn-ao", xdq: "xdq-cyrl-ru", xdy: "xdy-latn-id", xed: "xed-latn-cm", xeg: "xeg-latn-za", xem: "xem-latn-id", xer: "xer-latn-br", xes: "xes-latn-zz", xet: "xet-latn-br", xeu: "xeu-latn-pg", xgb: "xgb-latn-ci", xgd: "xgd-latn-au", xgg: "xgg-latn-au", xgi: "xgi-latn-au", xgm: "xgm-latn-au", xgu: "xgu-latn-au", xgw: "xgw-latn-au", xh: "xh-latn-za", xhe: "xhe-arab-pk", xhm: "xhm-khmr-kh", xhv: "xhv-latn-vn", xii: "xii-latn-za", xin: "xin-latn-gt", xir: "xir-latn-br", xis: "xis-orya-in", xiy: "xiy-latn-br", xjb: "xjb-latn-au", xjt: "xjt-latn-au", xka: "xka-arab-pk", xkb: "xkb-latn-bj", xkc: "xkc-arab-ir", xkd: "xkd-latn-id", xke: "xke-latn-id", xkg: "xkg-latn-ml", xkj: "xkj-arab-ir", xkl: "xkl-latn-id", xkn: "xkn-latn-id", xkp: "xkp-arab-ir", xkq: "xkq-latn-id", xkr: "xkr-latn-br", xks: "xks-latn-id", xkt: "xkt-latn-gh", xku: "xku-latn-cg", xkv: "xkv-latn-bw", xkw: "xkw-latn-id", xkx: "xkx-latn-pg", xky: "xky-latn-my", xkz: "xkz-latn-bt", xla: "xla-latn-zz", xlc: "xlc-lyci-tr", xld: "xld-lydi-tr", xly: "xly-elym-ir", xma: "xma-latn-so", xmb: "xmb-latn-cm", xmc: "xmc-latn-mz", xmd: "xmd-latn-cm", xmf: "xmf-geor-ge", xmg: "xmg-latn-cm", xmh: "xmh-latn-au", xmj: "xmj-latn-cm", xmm: "xmm-latn-id", xmn: "xmn-mani-cn", xmo: "xmo-latn-br", xmp: "xmp-latn-au", xmq: "xmq-latn-au", xmr: "xmr-merc-sd", xmt: "xmt-latn-id", xmu: "xmu-latn-au", xmv: "xmv-latn-mg", xmw: "xmw-latn-mg", xmx: "xmx-latn-id", xmy: "xmy-latn-au", xmz: "xmz-latn-id", xna: "xna-narb-sa", xnb: "xnb-latn-tw", xni: "xni-latn-au", xnj: "xnj-latn-tz", xnk: "xnk-latn-au", xnm: "xnm-latn-au", xnn: "xnn-latn-ph", xnq: "xnq-latn-mz", xnr: "xnr-deva-in", xnt: "xnt-latn-us", xnu: "xnu-latn-au", xny: "xny-latn-au", xnz: "xnz-latn-eg", "xnz-arab": "xnz-arab-eg", xoc: "xoc-latn-ng", xod: "xod-latn-id", xog: "xog-latn-ug", xoi: "xoi-latn-pg", xok: "xok-latn-br", xom: "xom-latn-sd", "xom-ethi": "xom-ethi-et", xon: "xon-latn-zz", xoo: "xoo-latn-br", xop: "xop-latn-pg", xor: "xor-latn-br", xow: "xow-latn-pg", xpa: "xpa-latn-au", xpb: "xpb-latn-au", xpd: "xpd-latn-au", xpf: "xpf-latn-au", xpg: "xpg-grek-tr", xph: "xph-latn-au", xpi: "xpi-ogam-gb", xpj: "xpj-latn-au", xpk: "xpk-latn-br", xpl: "xpl-latn-au", xpm: "xpm-cyrl-ru", xpn: "xpn-latn-br", xpo: "xpo-latn-mx", xpq: "xpq-latn-us", xpr: "xpr-prti-ir", xpt: "xpt-latn-au", xpv: "xpv-latn-au", xpw: "xpw-latn-au", xpx: "xpx-latn-au", xpz: "xpz-latn-au", xra: "xra-latn-br", xrb: "xrb-latn-zz", xrd: "xrd-latn-au", xre: "xre-latn-br", xrg: "xrg-latn-au", xri: "xri-latn-br", xrm: "xrm-cyrl-ru", xrn: "xrn-cyrl-ru", xrr: "xrr-latn-it", xru: "xru-latn-au", xrw: "xrw-latn-pg", xsa: "xsa-sarb-ye", xsb: "xsb-latn-ph", xse: "xse-latn-id", xsh: "xsh-latn-ng", xsi: "xsi-latn-zz", xsm: "xsm-latn-zz", xsn: "xsn-latn-ng", xsp: "xsp-latn-pg", xsq: "xsq-latn-mz", xsr: "xsr-deva-np", xss: "xss-cyrl-ru", xsu: "xsu-latn-ve", xsy: "xsy-latn-tw", xta: "xta-latn-mx", xtb: "xtb-latn-mx", xtc: "xtc-latn-sd", xtd: "xtd-latn-mx", xte: "xte-latn-id", xth: "xth-latn-au", xti: "xti-latn-mx", xtj: "xtj-latn-mx", xtl: "xtl-latn-mx", xtm: "xtm-latn-mx", xtn: "xtn-latn-mx", xtp: "xtp-latn-mx", xts: "xts-latn-mx", xtt: "xtt-latn-mx", xtu: "xtu-latn-mx", xtv: "xtv-latn-au", xtw: "xtw-latn-br", xty: "xty-latn-mx", xub: "xub-taml-in", "xub-knda": "xub-knda-in", "xub-mlym": "xub-mlym-in", xud: "xud-latn-au", xuj: "xuj-taml-in", xul: "xul-latn-au", xum: "xum-latn-it", "xum-ital": "xum-ital-it", xun: "xun-latn-au", xuo: "xuo-latn-td", xut: "xut-latn-au", xuu: "xuu-latn-na", xve: "xve-ital-it", xvi: "xvi-arab-af", xvn: "xvn-latn-es", xvo: "xvo-latn-it", xvs: "xvs-latn-it", xwa: "xwa-latn-br", xwd: "xwd-latn-au", xwe: "xwe-latn-zz", xwj: "xwj-latn-au", xwk: "xwk-latn-au", xwl: "xwl-latn-bj", xwo: "xwo-cyrl-ru", xwr: "xwr-latn-id", xwt: "xwt-latn-au", xww: "xww-latn-au", xxb: "xxb-latn-gh", xxk: "xxk-latn-id", xxm: "xxm-latn-au", xxr: "xxr-latn-br", xxt: "xxt-latn-id", xya: "xya-latn-au", xyb: "xyb-latn-au", xyj: "xyj-latn-au", xyk: "xyk-latn-au", xyl: "xyl-latn-br", xyt: "xyt-latn-au", xyy: "xyy-latn-au", xzh: "xzh-marc-cn", xzp: "xzp-latn-mx", yaa: "yaa-latn-pe", yab: "yab-latn-br", yac: "yac-latn-id", yad: "yad-latn-pe", yae: "yae-latn-ve", yaf: "yaf-latn-cd", yag: "yag-latn-cl", yai: "yai-cyrl-tj", yaj: "yaj-latn-cf", yak: "yak-latn-us", yal: "yal-latn-gn", "yal-arab": "yal-arab-gn", yam: "yam-latn-zz", yan: "yan-latn-ni", yao: "yao-latn-mz", yap: "yap-latn-fm", yaq: "yaq-latn-mx", yar: "yar-latn-ve", yas: "yas-latn-zz", yat: "yat-latn-zz", yau: "yau-latn-ve", yav: "yav-latn-cm", yaw: "yaw-latn-br", yax: "yax-latn-ao", yay: "yay-latn-zz", yaz: "yaz-latn-zz", yba: "yba-latn-zz", ybb: "ybb-latn-cm", ybe: "ybe-latn-cn", "ybe-ougr": "ybe-ougr-cn", ybh: "ybh-deva-np", ybi: "ybi-deva-np", ybj: "ybj-latn-ng", ybl: "ybl-latn-ng", ybm: "ybm-latn-pg", ybn: "ybn-latn-br", ybo: "ybo-latn-pg", ybx: "ybx-latn-pg", yby: "yby-latn-zz", ycl: "ycl-latn-cn", ycn: "ycn-latn-co", yda: "yda-latn-au", yde: "yde-latn-pg", ydg: "ydg-arab-pk", ydk: "ydk-latn-pg", yea: "yea-mlym-in", "yea-knda": "yea-knda-in", yec: "yec-latn-de", yee: "yee-latn-pg", yei: "yei-latn-cm", yej: "yej-grek-il", yel: "yel-latn-cd", yer: "yer-latn-zz", yes: "yes-latn-ng", yet: "yet-latn-id", yeu: "yeu-telu-in", yev: "yev-latn-pg", yey: "yey-latn-bw", yga: "yga-latn-au", ygi: "ygi-latn-au", ygl: "ygl-latn-pg", ygm: "ygm-latn-pg", ygp: "ygp-plrd-cn", ygr: "ygr-latn-zz", ygu: "ygu-latn-au", ygw: "ygw-latn-zz", yhd: "yhd-hebr-il", yi: "yi-hebr-001", yia: "yia-latn-au", yig: "yig-yiii-cn", yih: "yih-hebr-de", yii: "yii-latn-au", yij: "yij-latn-au", yil: "yil-latn-au", yim: "yim-latn-in", yir: "yir-latn-id", yis: "yis-latn-pg", yiv: "yiv-yiii-cn", yka: "yka-latn-ph", "yka-arab": "yka-arab-ph", ykg: "ykg-cyrl-ru", yki: "yki-latn-id", ykk: "ykk-latn-pg", ykm: "ykm-latn-pg", yko: "yko-latn-zz", ykr: "ykr-latn-pg", yky: "yky-latn-cf", yla: "yla-latn-pg", ylb: "ylb-latn-pg", yle: "yle-latn-zz", ylg: "ylg-latn-zz", yli: "yli-latn-id", yll: "yll-latn-zz", ylr: "ylr-latn-au", ylu: "ylu-latn-pg", yly: "yly-latn-nc", ymb: "ymb-latn-pg", yme: "yme-latn-pe", ymg: "ymg-latn-cd", ymk: "ymk-latn-mz", "ymk-arab": "ymk-arab-mz", yml: "yml-latn-zz", ymm: "ymm-latn-so", ymn: "ymn-latn-id", ymo: "ymo-latn-pg", ymp: "ymp-latn-pg", yna: "yna-plrd-cn", ynd: "ynd-latn-au", yng: "yng-latn-cd", ynk: "ynk-cyrl-ru", ynl: "ynl-latn-pg", ynq: "ynq-latn-ng", yns: "yns-latn-cd", ynu: "ynu-latn-co", yo: "yo-latn-ng", yob: "yob-latn-pg", yog: "yog-latn-ph", yoi: "yoi-jpan-jp", yok: "yok-latn-us", yol: "yol-latn-gb", yom: "yom-latn-cd", yon: "yon-latn-zz", yot: "yot-latn-ng", yoy: "yoy-thai-th", yra: "yra-latn-pg", yrb: "yrb-latn-zz", yre: "yre-latn-zz", yrk: "yrk-cyrl-ru", yrl: "yrl-latn-br", yrm: "yrm-latn-au", yro: "yro-latn-br", yrs: "yrs-latn-id", yrw: "yrw-latn-pg", yry: "yry-latn-au", ysd: "ysd-yiii-cn", ysn: "ysn-yiii-cn", ysp: "ysp-yiii-cn", ysr: "ysr-cyrl-ru", yss: "yss-latn-zz", ysy: "ysy-plrd-cn", ytw: "ytw-latn-pg", yty: "yty-latn-au", yua: "yua-latn-mx", yub: "yub-latn-au", yuc: "yuc-latn-us", yud: "yud-hebr-il", yue: "yue-hant-hk", "yue-cn": "yue-hans-cn", "yue-hans": "yue-hans-cn", yuf: "yuf-latn-us", yug: "yug-cyrl-ru", yui: "yui-latn-co", yuj: "yuj-latn-zz", yul: "yul-latn-cf", yum: "yum-latn-us", yun: "yun-latn-ng", yup: "yup-latn-co", yuq: "yuq-latn-bo", yur: "yur-latn-us", yut: "yut-latn-zz", yuw: "yuw-latn-zz", yux: "yux-cyrl-ru", yuz: "yuz-latn-bo", yva: "yva-latn-id", yvt: "yvt-latn-ve", ywa: "ywa-latn-pg", ywg: "ywg-latn-au", ywn: "ywn-latn-br", ywq: "ywq-plrd-cn", "ywq-yiii": "ywq-yiii-cn", ywr: "ywr-latn-au", ywu: "ywu-plrd-cn", "ywu-yiii": "ywu-yiii-cn", yww: "yww-latn-au", yxa: "yxa-latn-au", yxg: "yxg-latn-au", yxl: "yxl-latn-au", yxm: "yxm-latn-au", yxu: "yxu-latn-au", yxy: "yxy-latn-au", yyr: "yyr-latn-au", yyu: "yyu-latn-pg", za: "za-latn-cn", zaa: "zaa-latn-mx", zab: "zab-latn-mx", zac: "zac-latn-mx", zad: "zad-latn-mx", zae: "zae-latn-mx", zaf: "zaf-latn-mx", zag: "zag-latn-sd", zah: "zah-latn-ng", zaj: "zaj-latn-tz", zak: "zak-latn-tz", zam: "zam-latn-mx", zao: "zao-latn-mx", zap: "zap-latn-mx", zaq: "zaq-latn-mx", zar: "zar-latn-mx", zas: "zas-latn-mx", zat: "zat-latn-mx", zau: "zau-tibt-in", "zau-arab": "zau-arab-in", zav: "zav-latn-mx", zaw: "zaw-latn-mx", zax: "zax-latn-mx", zay: "zay-latn-et", "zay-ethi": "zay-ethi-et", zaz: "zaz-latn-ng", zba: "zba-arab-001", zbc: "zbc-latn-my", zbe: "zbe-latn-my", zbt: "zbt-latn-id", zbu: "zbu-latn-ng", zbw: "zbw-latn-my", zca: "zca-latn-mx", zch: "zch-hani-cn", zdj: "zdj-arab-km", zea: "zea-latn-nl", zeg: "zeg-latn-pg", zeh: "zeh-hani-cn", zen: "zen-tfng-mr", "zen-arab": "zen-arab-mr", zga: "zga-latn-tz", zgb: "zgb-hani-cn", zgh: "zgh-tfng-ma", zgm: "zgm-hani-cn", zgn: "zgn-hani-cn", zgr: "zgr-latn-pg", zh: "zh-hans-cn", "zh-au": "zh-hant-au", "zh-bn": "zh-hant-bn", "zh-bopo": "zh-bopo-tw", "zh-gb": "zh-hant-gb", "zh-gf": "zh-hant-gf", "zh-hanb": "zh-hanb-tw", "zh-hant": "zh-hant-tw", "zh-hk": "zh-hant-hk", "zh-id": "zh-hant-id", "zh-mo": "zh-hant-mo", "zh-pa": "zh-hant-pa", "zh-pf": "zh-hant-pf", "zh-ph": "zh-hant-ph", "zh-sr": "zh-hant-sr", "zh-th": "zh-hant-th", "zh-tw": "zh-hant-tw", "zh-us": "zh-hant-us", "zh-vn": "zh-hant-vn", zhd: "zhd-hani-cn", "zhd-latn": "zhd-latn-vn", zhi: "zhi-latn-ng", zhn: "zhn-latn-cn", "zhn-hani": "zhn-hani-cn", zhw: "zhw-latn-cm", zhx: "zhx-nshu-cn", zia: "zia-latn-zz", zik: "zik-latn-pg", zil: "zil-latn-gn", zim: "zim-latn-td", zin: "zin-latn-tz", ziw: "ziw-latn-tz", ziz: "ziz-latn-ng", zka: "zka-latn-id", zkb: "zkb-cyrl-ru", zkd: "zkd-latn-mm", zko: "zko-cyrl-ru", zkp: "zkp-latn-br", zkt: "zkt-kits-cn", zku: "zku-latn-au", zkz: "zkz-cyrl-ru", zla: "zla-latn-cd", zlj: "zlj-hani-cn", "zlj-latn": "zlj-latn-cn", zlm: "zlm-latn-tg", zln: "zln-hani-cn", zlq: "zlq-hani-cn", zma: "zma-latn-au", zmb: "zmb-latn-cd", zmc: "zmc-latn-au", zmd: "zmd-latn-au", zme: "zme-latn-au", zmf: "zmf-latn-cd", zmg: "zmg-latn-au", zmh: "zmh-latn-pg", zmi: "zmi-latn-my", zmj: "zmj-latn-au", zmk: "zmk-latn-au", zml: "zml-latn-au", zmm: "zmm-latn-au", zmn: "zmn-latn-ga", zmo: "zmo-latn-sd", zmp: "zmp-latn-cd", zmq: "zmq-latn-cd", zmr: "zmr-latn-au", zms: "zms-latn-cd", zmt: "zmt-latn-au", zmu: "zmu-latn-au", zmv: "zmv-latn-au", zmw: "zmw-latn-cd", zmx: "zmx-latn-cg", zmy: "zmy-latn-au", zmz: "zmz-latn-cd", zna: "zna-latn-td", zne: "zne-latn-zz", zng: "zng-latn-vn", znk: "znk-latn-au", zns: "zns-latn-ng", zoc: "zoc-latn-mx", zoh: "zoh-latn-mx", zom: "zom-latn-in", zoo: "zoo-latn-mx", zoq: "zoq-latn-mx", zor: "zor-latn-mx", zos: "zos-latn-mx", zpa: "zpa-latn-mx", zpb: "zpb-latn-mx", zpc: "zpc-latn-mx", zpd: "zpd-latn-mx", zpe: "zpe-latn-mx", zpf: "zpf-latn-mx", zpg: "zpg-latn-mx", zph: "zph-latn-mx", zpi: "zpi-latn-mx", zpj: "zpj-latn-mx", zpk: "zpk-latn-mx", zpl: "zpl-latn-mx", zpm: "zpm-latn-mx", zpn: "zpn-latn-mx", zpo: "zpo-latn-mx", zpp: "zpp-latn-mx", zpq: "zpq-latn-mx", zpr: "zpr-latn-mx", zps: "zps-latn-mx", zpt: "zpt-latn-mx", zpu: "zpu-latn-mx", zpv: "zpv-latn-mx", zpw: "zpw-latn-mx", zpx: "zpx-latn-mx", zpy: "zpy-latn-mx", zpz: "zpz-latn-mx", zqe: "zqe-hani-cn", "zqe-latn": "zqe-latn-cn", zrn: "zrn-latn-td", zro: "zro-latn-ec", zrp: "zrp-hebr-fr", zrs: "zrs-latn-id", zsa: "zsa-latn-pg", zsr: "zsr-latn-mx", zsu: "zsu-latn-pg", zte: "zte-latn-mx", ztg: "ztg-latn-mx", ztl: "ztl-latn-mx", ztm: "ztm-latn-mx", ztn: "ztn-latn-mx", ztp: "ztp-latn-mx", ztq: "ztq-latn-mx", zts: "zts-latn-mx", ztt: "ztt-latn-mx", ztu: "ztu-latn-mx", ztx: "ztx-latn-mx", zty: "zty-latn-mx", zu: "zu-latn-za", zua: "zua-latn-ng", zuh: "zuh-latn-pg", zum: "zum-arab-om", zun: "zun-latn-us", zuy: "zuy-latn-cm", zyg: "zyg-hani-cn", zyj: "zyj-latn-cn", "zyj-hani": "zyj-hani-cn", zyn: "zyn-hani-cn", zyp: "zyp-latn-mm", zza: "zza-latn-tr", zzj: "zzj-hani-cn" }, nr = {}.hasOwnProperty;
  function ar(t4) {
    const { language: e3, script: n3, region: a2 } = t4;
    let r3;
    var i3, l3;
    return n3 && a2 && (r3 = er[qa({ language: e3, script: n3, region: a2 })]) ? (t4.script = void 0, t4.region = void 0) : n3 && (r3 = er[qa({ language: e3, script: n3 })]) ? t4.script = void 0 : a2 && (r3 = er[qa({ language: e3, region: a2 })]) ? t4.region = void 0 : e3 && (r3 = er[e3]), r3 && (t4.language = void 0, i3 = t4, l3 = Wa(r3), i3.language || (i3.language = l3.language), i3.script || (i3.script = l3.script), i3.region || (i3.region = l3.region), l3.variants && i3.variants.push(...l3.variants)), qa(t4);
  }
  function rr(t4, e3) {
    const n3 = {}, a2 = Wa(String(t4 || "").toLowerCase(), n3), r3 = qa(a2);
    if (!r3)
      return r3;
    let i3 = -1;
    for (; ++i3 < Za.length; ) {
      let t5 = Za[i3].from;
      "und-" === t5.slice(0, 4) && a2.language && (t5 = a2.language + t5.slice(3)), Xa(r3, t5).length > 0 && ir(a2, t5, Za[i3].to);
    }
    for (i3 = -1; ++i3 < Ja.length; )
      lr(a2, Ja[i3].from.field, Ja[i3].from.value) && or(a2, Ja[i3].to.field, Ja[i3].to.value);
    if (function(t5) {
      ar(t5);
      const { language: e4, script: n4, region: a3 } = t5;
      if (!e4)
        return t5;
      const r4 = qa({ language: e4, script: n4, region: a3 });
      r4 === ar(Wa(e4)) ? (t5.script = void 0, t5.region = void 0) : a3 && r4 === ar(Wa(e4 + "-" + a3)) ? t5.script = void 0 : n4 && r4 === ar(Wa(e4 + "-" + n4)) && (t5.region = void 0);
    }(a2), a2.variants.sort(), a2.extensions.sort(sr), n3.warning) {
      let t5;
      for (t5 in tr)
        if (nr.call(tr, t5)) {
          const e4 = tr[t5], r4 = a2[t5];
          if (r4 && nr.call(e4, r4)) {
            const a3 = e4[r4];
            n3.warning("Deprecated " + t5 + " `" + r4 + "`, expected one of `" + a3.join("`, `") + "`", -1, 7);
          }
        }
    }
    return a2.script && (a2.script = a2.script.charAt(0).toUpperCase() + a2.script.slice(1)), a2.region && (a2.region = a2.region.toUpperCase()), qa(a2);
  }
  function ir(t4, e3, n3) {
    const a2 = Wa(e3), r3 = Wa(n3), i3 = [], l3 = a2.language;
    let o3;
    for (o3 in a2)
      if (nr.call(a2, o3)) {
        const e4 = a2[o3];
        e4 && lr(t4, o3, e4) && i3.push(o3);
      }
    for (o3 in r3)
      if (nr.call(r3, o3)) {
        const e4 = r3[o3];
        l3 && e4 && (i3.includes(o3) || !t4[o3]) && or(t4, o3, "language" === o3 && "und" === e4 ? l3 : e4);
      }
  }
  function lr(t4, e3, n3) {
    let a2, r3 = false;
    if (n3) {
      const i3 = t4[e3];
      if (a2 = i3, Array.isArray(i3)) {
        a2 = [];
        let t5 = -1;
        for (; ++t5 < i3.length; ) {
          const e4 = i3[t5];
          n3.includes(e4) ? r3 = true : a2.push(e4);
        }
      } else
        i3 === n3 && (a2 = null, r3 = true);
      t4[e3] = a2;
    }
    return r3;
  }
  function or(t4, e3, n3) {
    const a2 = t4[e3];
    if (Array.isArray(a2)) {
      const t5 = Array.isArray(n3) ? n3 : [n3];
      let e4 = -1;
      for (; ++e4 < t5.length; ) {
        const n4 = t5[e4];
        a2.includes(n4) || a2.push(n4);
      }
    } else
      t4[e3] = n3;
  }
  function sr(t4, e3) {
    return t4.singleton > e3.singleton ? 1 : t4.singleton < e3.singleton ? -1 : 0;
  }
  const ur = { 0: void 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 5, 7: 7, 8: 2, 9: 3, 10: 4, 11: 6, 12: 7, 13: 22, 14: 7, 15: 10, 16: 9, 17: 11, 18: 13, 19: 11, 20: 13 };
  function dr(t4) {
    return 0 == t4 ? 0 : t4.toString(2).match(/1/g).length;
  }
  function cr(t4, e3) {
    let n3, a2 = parseInt("0x" + t4, 16), r3 = a2 & e3[0], i3 = a2 & e3[1];
    return n3 = dr(r3) + 2 * dr(i3), n3;
  }
  function fr() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3;
    function g3(t5) {
      if (!(t5 && t5.currentRepresentation && t5.currentRepresentation.mediaInfo && t5.currentRepresentation.mediaInfo.type))
        return;
      const e4 = t5.currentRepresentation.mediaInfo.type;
      s2[e4] = t5.currentRepresentation;
    }
    function m3(t5, e4) {
      return t5 && r3[e4] && r3[e4][t5] ? r3[e4][t5].list : [];
    }
    function h3(t5, e4) {
      return t5 && r3[e4] && r3[e4][t5] ? r3[e4][t5].current : null;
    }
    function p3(t5) {
      let n4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
      if (!t5 || !t5.streamInfo)
        return;
      const a3 = t5.type, l4 = t5.streamInfo.id, s3 = h3(a3, l4);
      if (r3[l4] && r3[l4][a3] && (r3[l4][a3].current = t5, r3[l4][a3].current && (a3 !== S2.default.TEXT && !E3(t5, s3) || a3 === S2.default.TEXT && t5.isFragmented) && e3.trigger(R.default.CURRENT_TRACK_CHANGED, { oldMediaInfo: s3, newMediaInfo: t5, switchMode: i3.get().streaming.trackSwitchMode[a3], options: n4 }, { streamId: l4 }), !n4.hasOwnProperty("noSettingsSave") || !n4.noSettingsSave)) {
        let e4 = function(t6) {
          const e5 = { lang: t6.lang, viewpoint: t6.viewpoint, roles: t6.roles, accessibility: t6.accessibility, audioChannelConfiguration: t6.audioChannelConfiguration, codec: t6.codec };
          return e5.lang || e5.viewpoint || e5.role && e5.role.length > 0 || e5.accessibility && e5.accessibility.length > 0 || e5.audioChannelConfiguration && e5.audioChannelConfiguration.length > 0 ? e5 : null;
        }(t5);
        if (!e4 || !r3[l4][a3].storeLastSettings)
          return;
        e4.roles && (e4.role = e4.roles[0], delete e4.roles), e4.accessibility && (e4.accessibility = e4.accessibility[0]), e4.audioChannelConfiguration && (e4.audioChannelConfiguration = e4.audioChannelConfiguration[0]), o3[a3] = e4, f3.setSavedMediaSettings(a3, e4);
      }
    }
    function b3(t5, e4) {
      t5 && e4 && (l3[t5] = e4);
    }
    function y3(t5) {
      return t5 ? l3[t5] : null;
    }
    function E3(t5, e4) {
      if (!t5 && !e4)
        return true;
      if (!t5 || !e4)
        return false;
      const n4 = t5.id === e4.id, a3 = JSON.stringify(t5.viewpoint) === JSON.stringify(e4.viewpoint), r4 = t5.lang === e4.lang, i4 = t5.codec === e4.codec, l4 = JSON.stringify(t5.roles) === JSON.stringify(e4.roles), o4 = JSON.stringify(t5.accessibility) === JSON.stringify(e4.accessibility), s3 = JSON.stringify(t5.audioChannelConfiguration) === JSON.stringify(e4.audioChannelConfiguration);
      return n4 && i4 && a3 && r4 && l4 && o4 && s3;
    }
    function _3() {
      r3 = {}, o3 = {}, s2 = {}, l3 = { audio: null, video: null, text: null }, e3.off(D.default.REPRESENTATION_SWITCH, g3, n3);
    }
    function T3(t5, e4, n4) {
      let r4 = [];
      return t5.forEach(function(t6) {
        e4(n4, t6) && r4.push(t6);
      }), 0 !== r4.length || e4 === x2 && i3.get().streaming.assumeDefaultRoleAsMain && G2(n4.role, { schemeIdUri: S2.default.DASH_ROLE_SCHEME_ID, value: I.default.MAIN }) && (a2.info("no track with Role set to main - assuming main as default and searching again"), r4 = T3(t5, M2, null), 0 !== r4.length) ? r4 : (a2.info("Filter-Function (" + e4.name + ") resulted in no tracks; setting ignored"), t5);
    }
    function v3(t5, e4) {
      try {
        return !t5.lang || t5.lang instanceof RegExp ? e4.lang.match(t5.lang) : "" !== e4.lang && Xa(e4.lang, rr(t5.lang)).length > 0;
      } catch (t6) {
        return false;
      }
    }
    function w3(t5, e4) {
      return void 0 === t5.index || null === t5.index || e4.index === t5.index;
    }
    function k2(t5, e4) {
      return void 0 === t5.id || null === t5.id || e4.id === t5.id;
    }
    function N2(t5, e4) {
      return !t5.viewpoint || !!e4.viewpoint.filter(function(e5) {
        return G2(e5, t5.viewpoint);
      })[0];
    }
    function x2(t5, e4) {
      let n4 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
      return !!e4.roles && (!t5.role || !!e4.roles.filter(function(e5) {
        return G2(e5, t5.role);
      })[0] || e4.type === S2.default.AUDIO && n4);
    }
    function M2(t5, e4) {
      return !e4.roles || 0 === e4.roles.length;
    }
    function z2(t5, e4) {
      let n4;
      return n4 = t5.accessibility ? !!e4.accessibility.filter(function(e5) {
        return G2(e5, t5.accessibility);
      })[0] : !e4.accessibility.length, n4;
    }
    function O2(t5, e4) {
      return !t5.audioChannelConfiguration || !!e4.audioChannelConfiguration.filter(function(e5) {
        return G2(e5, t5.audioChannelConfiguration);
      })[0];
    }
    function P2(t5, e4) {
      return !t5.codec || t5.codec === e4.codec;
    }
    function L2(t5) {
      let e4 = 0, n4 = [];
      return t5.forEach((t6) => {
        isNaN(t6.selectionPriority) || (t6.selectionPriority > e4 ? (e4 = t6.selectionPriority, n4 = [t6]) : t6.selectionPriority === e4 && n4.push(t6));
      }), n4;
    }
    function F2(t5) {
      let e4, n4 = 0, a3 = [];
      return t5.forEach(function(t6) {
        e4 = Math.max.apply(Math, t6.bitrateList.map(function(t7) {
          return t7.bandwidth;
        })), e4 > n4 ? (n4 = e4, a3 = [t6]) : e4 === n4 && a3.push(t6);
      }), a3;
    }
    function U2(t5) {
      return t5[0] && t5[0].type === S2.default.VIDEO ? function(t6) {
        let e4, n4 = 1 / 0, a3 = [];
        return t6.forEach(function(t7) {
          const r4 = t7.bitrateList.reduce(function(t8, e5) {
            const n5 = Math.max(1, e5.width * e5.height);
            return t8 + e5.bandwidth / n5;
          }, 0);
          e4 = r4 / t7.bitrateList.length, e4 < n4 ? (n4 = e4, a3 = [t7]) : e4 === n4 && a3.push(t7);
        }), a3;
      }(t5) : t5[0] && t5[0].type === S2.default.AUDIO ? function(t6) {
        let e4 = 1 / 0, n4 = [];
        return t6.forEach(function(t7) {
          let a3 = t7.audioChannelConfiguration.reduce(function(t8, e5) {
            return t8 + (function(t9) {
              let e6;
              if (!t9 || !t9.schemeIdUri || !t9.value)
                return;
              const n5 = t9.schemeIdUri, a4 = t9.value;
              return "urn:mpeg:dash:23003:3:audio_channel_configuration:2011" === n5 || "urn:mpeg:mpegB:cicp:ChannelConfiguration" === n5 ? e6 = ur[a4] : "tag:dolby.com,2014:dash:audio_channel_configuration:2011" === n5 ? e6 = function(t10) {
                if (4 === t10.length)
                  return cr(t10, [63880, 1648]);
              }(a4) : "tag:dolby.com,2015:dash:audio_channel_configuration:2015" === n5 ? e6 = function(t10) {
                if (6 === t10.length)
                  return "800000" === t10 ? 24 : cr(t10, [56834, 205245]);
              }(a4) : "tag:dts.com,2014:dash:audio_channel_configuration:2012" === n5 ? e6 = parseInt(a4) : "tag:dts.com,2018:uhd:audio_channel_configuration" === n5 && (e6 = function(t10) {
                if (!(t10.length > 8))
                  return cr(t10, [4294901727, 0]);
              }(a4)), e6;
            }(e5) || 0);
          }, 0) / t7.audioChannelConfiguration.length;
          t7.hasOwnProperty("supplementalProperties") && t7.supplementalProperties.some((t8) => "tag:dolby.com,2018:dash:EC3_ExtensionType:2018" === t8.schemeIdUri && "JOC" === t8.value) && (a3 = 16), a3 || (a3 = 1);
          let r4 = t7.bitrateList.reduce(function(t8, e5) {
            return t8 + e5.bandwidth / a3;
          }, 0) / t7.bitrateList.length;
          r4 < e4 ? (e4 = r4, n4 = [t7]) : r4 === e4 && n4.push(t7);
        }), n4;
      }(t5) : t5;
    }
    function j2(t5) {
      let e4, n4 = 0, a3 = [];
      return t5.forEach(function(t6) {
        e4 = t6.representationCount, e4 > n4 ? (n4 = e4, a3 = [t6]) : e4 === n4 && a3.push(t6);
      }), a3;
    }
    function q2(t5, e4) {
      if (t5 === S2.default.TEXT)
        return function(t6) {
          if (!t6 || 0 === t6.length)
            return null;
          const e5 = t6.filter((t7) => !(t7 && t7.roles && t7.roles.length > 0) || t7.roles.every((t8) => t8.schemeIdUri !== S2.default.DASH_ROLE_SCHEME_ID || t8.value !== I.default.FORCED_SUBTITLE));
          return e5.length > 0 ? e5[0] : t6[0];
        }(e4);
      let n4;
      const r4 = u3.getCustomInitialTrackSelectionFunction();
      if (n4 = function(t6) {
        try {
          let e5;
          return e5 = function(t7) {
            try {
              const e6 = t7.filter((t8) => {
                const e7 = t8.type;
                return t8.bitrateList.some((t9) => {
                  const n5 = d3.getAbrBitrateParameter("maxBitrate", e7), a3 = d3.getAbrBitrateParameter("minBitrate", e7);
                  return !(n5 > -1 && t9.bandwidth > 1e3 * n5 || a3 > -1 && t9.bandwidth < 1e3 * a3);
                });
              });
              return e6.length > 0 ? e6 : t7;
            } catch (e6) {
              return a2.error(e6), t7;
            }
          }(t6), e5 = function(t7) {
            try {
              if (!i3.get().streaming.abr.limitBitrateByPortal)
                return t7;
              const { elementWidth: e6 } = c3.getVideoElementSize(), n5 = t7.filter((t8) => t8.type !== S2.default.VIDEO || t8.bitrateList.some((t9) => t9.width <= e6));
              return n5.length > 0 ? n5 : t7;
            } catch (e6) {
              return a2.error(e6), t7;
            }
          }(e5), e5;
        } catch (e5) {
          return a2.error(e5), t6;
        }
      }(e4), r4 && "function" == typeof r4)
        n4 = r4(n4);
      else if (s2[t5])
        n4 = function(t6, e5) {
          if (!t6 || 0 === t6.length || !e5 || !s2[e5])
            return t6;
          const n5 = s2[e5].bandwidth;
          if (!n5 || isNaN(n5))
            return t6;
          let a3 = { min: NaN, track: null };
          return t6.forEach((t7) => {
            t7.bitrateList.forEach((e6) => {
              const r5 = Math.abs(e6.bandwidth - n5);
              (isNaN(a3.min) || r5 < a3.min) && (a3.min = r5, a3.track = t7);
            });
          }), a3.track ? [a3.track] : t6;
        }(n4, t5);
      else if (i3.get().streaming.ignoreSelectionPriority || (a2.info("Trying to find track with highest selectionPriority"), n4 = function(t6) {
        return L2(t6);
      }(n4)), n4.length > 1 && i3.get().streaming.prioritizeRoleMain && (a2.info("Trying to find a main track"), n4 = T3(n4, x2, { role: { schemeIdUri: S2.default.DASH_ROLE_SCHEME_ID, value: I.default.MAIN } })), n4.length > 1) {
        a2.info("Selecting track based on selectionModeForInitialTrack");
        let t6 = i3.get().streaming.selectionModeForInitialTrack;
        switch (t6) {
          case S2.default.TRACK_SELECTION_MODE_HIGHEST_BITRATE:
            n4 = function(t7) {
              let e5 = F2(t7);
              return e5.length > 1 && (e5 = j2(e5)), e5;
            }(n4);
            break;
          case S2.default.TRACK_SELECTION_MODE_FIRST_TRACK:
            n4 = B2(n4);
            break;
          case S2.default.TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY:
            n4 = function(t7) {
              let e5 = U2(t7);
              return e5.length > 1 && (e5 = F2(e5)), e5;
            }(n4);
            break;
          case S2.default.TRACK_SELECTION_MODE_WIDEST_RANGE:
            n4 = function(t7) {
              let e5 = j2(t7);
              return e5.length > 1 && (e5 = F2(t7)), e5;
            }(n4);
            break;
          default:
            a2.warn(`Track selection mode ${t6} is not supported. Falling back to TRACK_SELECTION_MODE_FIRST_TRACK`), n4 = B2(n4);
        }
      }
      return n4.length > 0 ? n4[0] : e4[0];
    }
    function B2(t5) {
      return t5[0];
    }
    function G2(t5, e4) {
      return !(!t5 || !e4) && JSON.stringify({ schemeIdUri: t5.schemeIdUri, value: t5.value }) === JSON.stringify({ schemeIdUri: e4.schemeIdUri, value: e4.value });
    }
    return n3 = { addTrack: function(t5) {
      if (!t5)
        return;
      const e4 = t5.type;
      if ((n4 = e4) !== S2.default.AUDIO && n4 !== S2.default.VIDEO && n4 !== S2.default.TEXT && n4 !== S2.default.IMAGE)
        return;
      var n4;
      let a3 = t5.streamInfo.id;
      r3[a3] || (r3[a3] = function() {
        const t6 = i3.get().streaming.saveLastMediaSettingsForCurrentStreamingSession;
        return { audio: { list: [], storeLastSettings: t6, current: null }, video: { list: [], storeLastSettings: t6, current: null }, text: { list: [], storeLastSettings: t6, current: null }, image: { list: [], storeLastSettings: t6, current: null } };
      }());
      const l4 = r3[a3][e4].list;
      for (let e5 = 0, n5 = l4.length; e5 < n5; ++e5)
        if (E3(l4[e5], t5))
          return;
      l4.push(t5);
    }, areTracksEqual: E3, clearDataForStream: function(t5) {
      r3[t5] && delete r3[t5];
    }, getCurrentTrackFor: h3, getInitialSettings: y3, getTracksFor: m3, getTracksWithHighestSelectionPriority: L2, getTracksWithHighestBitrate: F2, getTracksWithHighestEfficiency: U2, getTracksWithWidestRange: j2, initialize: function() {
      e3.on(D.default.REPRESENTATION_SWITCH, g3, n3);
    }, isCurrentTrack: function(t5) {
      if (!t5)
        return false;
      const e4 = t5.type, n4 = t5.streamInfo.id;
      return r3[n4] && r3[n4][e4] && E3(r3[n4][e4].current, t5);
    }, matchSettings: function(t5, e4) {
      let n4 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
      try {
        let a3 = false;
        if (t5.lang) {
          if (t5.lang instanceof RegExp)
            a3 = e4.lang.match(t5.lang);
          else if ("" !== e4.lang) {
            const n5 = rr(t5.lang);
            n5 && (a3 = Xa(e4.lang, n5).length > 0);
          }
        } else
          a3 = true;
        const r4 = void 0 === t5.index || null === t5.index || e4.index === t5.index, i4 = !t5.viewpoint || !!e4.viewpoint.filter(function(e5) {
          return G2(e5, t5.viewpoint);
        })[0], l4 = !t5.role || !!e4.roles.filter(function(e5) {
          return G2(e5, t5.role);
        })[0];
        let o4 = !t5.accessibility || !!e4.accessibility.filter(function(e5) {
          return G2(e5, t5.accessibility);
        })[0], s3 = !t5.audioChannelConfiguration || !!e4.audioChannelConfiguration.filter(function(e5) {
          return G2(e5, t5.audioChannelConfiguration);
        })[0];
        return a3 && r4 && i4 && (l4 || e4.type === S2.default.AUDIO && n4) && o4 && s3;
      } catch (t6) {
        return false;
      }
    }, matchSettingsAccessibility: z2, matchSettingsAudioChannelConfig: O2, matchSettingsIndex: w3, matchSettingsLang: v3, matchSettingsRole: x2, matchSettingsViewPoint: N2, reset: _3, saveTextSettingsDisabled: function() {
      f3.setSavedMediaSettings(S2.default.TEXT, null);
    }, selectInitialTrack: q2, setConfig: function(t5) {
      t5 && (t5.domStorage && (f3 = t5.domStorage), t5.settings && (i3 = t5.settings), t5.customParametersModel && (u3 = t5.customParametersModel), t5.mediaPlayerModel && (d3 = t5.mediaPlayerModel), t5.videoModel && (c3 = t5.videoModel));
    }, setInitialMediaSettingsForType: function(t5, e4) {
      let n4 = o3[t5] || y3(t5);
      const r4 = m3(t5, e4.id);
      let i4 = [];
      n4 && 0 !== Object.keys(n4).length || (n4 = f3.getSavedMediaSettings(t5), n4 && delete n4.codec, b3(t5, n4)), r4 && 0 !== r4.length && (n4 && (i4 = Array.from(r4), a2.info("Filtering " + i4.length + " " + t5 + " tracks based on settings"), i4 = T3(i4, k2, n4), i4 = T3(i4, v3, n4), i4 = T3(i4, w3, n4), i4 = T3(i4, N2, n4), t5 === S2.default.AUDIO && o3[t5] || (i4 = T3(i4, x2, n4)), i4 = T3(i4, z2, n4), i4 = T3(i4, O2, n4), i4 = T3(i4, P2, n4), a2.info("Filtering " + t5 + " tracks ended, found " + i4.length + " matching track(s).")), 0 === i4.length ? p3(q2(t5, r4)) : i4.length > 1 ? p3(q2(t5, i4)) : p3(i4[0]));
    }, setInitialSettings: b3, setTrack: p3 }, a2 = (0, C.default)(t4).getInstance().getLogger(n3), _3(), n3;
  }
  fr.__dashjs_factory_name = "MediaController";
  const gr = N.default.getSingletonFactory(fr);
  N.default.updateSingletonFactory(fr.__dashjs_factory_name, gr);
  var mr = gr;
  const hr = NaN;
  class pr {
    constructor(t4, e3) {
      this.data = { baseUrls: t4 || null, selectedIdx: e3 || hr }, this.children = [];
    }
  }
  function br() {
    let t4, e3, n3, a2;
    const r3 = this.context, i3 = (0, oe.default)(r3).getInstance();
    function l3(t5, e4, n4) {
      const a3 = o3(n4);
      t5[e4] ? i3.areEqual(a3, t5[e4].data.baseUrls) || (t5[e4].data.baseUrls = a3, t5[e4].data.selectedIdx = hr) : t5[e4] = new pr(a3);
    }
    function o3(t5) {
      let e4 = n3.getBaseURLsFromElement(t5);
      const r4 = a2.getSynthesizedBaseUrlElements(e4);
      return r4 && r4.length > 0 && r4.forEach((t6) => {
        const n4 = e4.findIndex((e5) => e5.serviceLocation === t6.serviceLocation);
        -1 !== n4 ? e4[n4] = t6 : e4.push(t6);
      }), e4;
    }
    function s2(t5, n4) {
      const a3 = n4 || e3;
      t5(a3.data), a3.children && a3.children.forEach((e4) => s2(t5, e4));
    }
    function u3() {
      e3 = new pr();
    }
    return t4 = { reset: u3, update: function(t5) {
      !function(t6) {
        !function() {
          if (!n3 || !n3.hasOwnProperty("getBaseURLsFromElement") || !n3.hasOwnProperty("getRepresentationSortFunction"))
            throw new Error("setConfig function has to be called previously");
        }();
        const a3 = o3(t6);
        i3.areEqual(a3, e3.data.baseUrls) || (e3.data.baseUrls = a3, e3.data.selectedIdx = hr), t6 && t6.Period && t6.Period.forEach((t7, a4) => {
          l3(e3.children, a4, t7), t7.AdaptationSet && t7.AdaptationSet.forEach((t8, r4) => {
            l3(e3.children[a4].children, r4, t8), t8.Representation && t8.Representation.sort(n3.getRepresentationSortFunction()).forEach((t9, n4) => {
              l3(e3.children[a4].children[r4].children, n4, t9);
            });
          });
        });
      }(t5);
    }, getForPath: function(t5) {
      let n4 = e3;
      const a3 = [n4.data];
      return t5 && t5.forEach((t6) => {
        n4 = n4.children[t6], n4 && a3.push(n4.data);
      }), a3.filter((t6) => t6.baseUrls.length);
    }, invalidateSelectedIndexes: function(t5) {
      s2((e4) => {
        isNaN(e4.selectedIdx) || t5 === e4.baseUrls[e4.selectedIdx].serviceLocation && (e4.selectedIdx = hr);
      });
    }, setConfig: function(t5) {
      t5.adapter && (n3 = t5.adapter), t5.contentSteeringController && (a2 = t5.contentSteeringController);
    }, getBaseUrls: function(t5) {
      return o3(t5);
    } }, u3(), t4;
  }
  br.__dashjs_factory_name = "BaseURLTreeModel";
  var yr = N.default.getClassFactory(br);
  function Er(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).blacklistController;
    return e3 = { select: function(t5) {
      return t5 && function(t6) {
        let e4, n4, a2 = 0, r3 = [], i3 = 0;
        if (n4 = t6.sort(function(t7, e5) {
          let n5 = t7.dvbPriority - e5.dvbPriority;
          return isNaN(n5) ? 0 : n5;
        }).filter(function(t7, e5, n5) {
          return !e5 || n5[0].dvbPriority && t7.dvbPriority && n5[0].dvbPriority === t7.dvbPriority;
        }), n4.length)
          return n4.length > 1 && (n4.forEach((t7) => {
            a2 += t7.dvbWeight, r3.push(a2);
          }), e4 = Math.floor(Math.random() * (a2 - 1)), r3.every((t7, n5) => (i3 = n5, !(e4 < t7)))), n4[i3];
      }(function(t6) {
        let e4 = [];
        return t6.filter(function(t7) {
          return !n3.contains(t7.serviceLocation) || (t7.dvbPriority && e4.push(t7.dvbPriority), false);
        }).filter(function(t7) {
          return !e4.length || !t7.dvbPriority || -1 === e4.indexOf(t7.dvbPriority);
        });
      }(t5));
    } }, e3;
  }
  Er.__dashjs_factory_name = "DVBSelector";
  var _r = N.default.getClassFactory(Er);
  function Tr(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).blacklistController;
    return e3 = { select: function(t5) {
      let e4, a2 = 0;
      return t5 && t5.some((t6, e5) => (a2 = e5, !n3.contains(t6.serviceLocation))) && (e4 = t5[a2]), e4;
    } }, e3;
  }
  Tr.__dashjs_factory_name = "BasicSelector";
  var vr = N.default.getClassFactory(Tr);
  function wr() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3, i3 = [];
    function l3() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], n4 = 0, a3 = NaN;
      for (; n4 < t5.length; ) {
        const i4 = t5[n4], l4 = e4.findIndex((t6) => t6.serviceLocation && t6.serviceLocation === i4);
        if (-1 !== l4 && !r3.contains(e4[l4].serviceLocation)) {
          a3 = l4;
          break;
        }
        n4 += 1;
      }
      return a3;
    }
    function o3(t5) {
      const e4 = a2.getCurrentSteeringResponseData();
      if (!e4)
        return;
      const n4 = t5.entry, l4 = setTimeout(() => {
        r3.remove(n4), i3.splice(i3.indexOf(l4, 1));
      }, 1e3 * e4.ttl);
      i3.push(l4);
    }
    return n3 = { selectBaseUrlIndex: function(t5) {
      let e4 = NaN;
      if (isNaN(t5.selectedIdx)) {
        const n5 = a2.getSteeringDataFromManifest();
        n5 && n5.defaultServiceLocationArray.length > 0 && (e4 = l3(n5.defaultServiceLocationArray, t5.baseUrls));
      }
      const n4 = a2.getCurrentSteeringResponseData();
      return t5.baseUrls && t5.baseUrls.length && n4 && n4.pathwayPriority && n4.pathwayPriority.length && (e4 = l3(n4.pathwayPriority, t5.baseUrls)), e4;
    }, setConfig: function(t5) {
      t5.blacklistController && (r3 = t5.blacklistController), t5.contentSteeringController && (a2 = t5.contentSteeringController), e3.on(t5.addBlacklistEventName, o3, n3);
    }, reset: function() {
      i3.forEach((t5) => clearTimeout(t5)), i3 = [];
    } }, a2 = ha(t4).getInstance(), n3;
  }
  wr.__dashjs_factory_name = "ContentSteeringSelector";
  var Sr = N.default.getClassFactory(wr);
  function Ir() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance(), n3 = (0, K.default)(t4).getInstance();
    let a2, r3, i3, l3, o3, s2;
    function u3() {
      o3.reset(), r3.reset();
    }
    return a2 = { chooseSelector: function(t5) {
      (0, yt.checkParameterType)(t5, "boolean"), s2 = t5 ? l3 : i3;
    }, select: function(t5) {
      if (!t5)
        return;
      if (n3.get().streaming.applyContentSteering) {
        const e4 = o3.selectBaseUrlIndex(t5);
        isNaN(e4) || -1 === e4 || (t5.selectedIdx = e4);
      }
      if (!isNaN(t5.selectedIdx))
        return t5.baseUrls[t5.selectedIdx];
      let a3 = s2.select(t5.baseUrls);
      return a3 ? (t5.selectedIdx = t5.baseUrls.indexOf(a3), a3) : (e3.trigger(R.default.URL_RESOLUTION_FAILED, { error: new G.default(V.URL_RESOLUTION_FAILED_GENERIC_ERROR_CODE, V.URL_RESOLUTION_FAILED_GENERIC_ERROR_MESSAGE) }), void (s2 === i3 && u3()));
    }, reset: u3, setConfig: function(t5) {
      t5.selector && (s2 = t5.selector), t5.contentSteeringSelector && (o3 = t5.contentSteeringSelector);
    } }, r3 = sa(t4).create({ updateEventName: R.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED, addBlacklistEventName: R.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD }), i3 = vr(t4).create({ blacklistController: r3 }), l3 = _r(t4).create({ blacklistController: r3 }), o3 = Sr(t4).create(), o3.setConfig({ blacklistController: r3, addBlacklistEventName: R.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_ADD }), s2 = i3, a2;
  }
  Ir.__dashjs_factory_name = "BaseURLSelector";
  var kr = N.default.getClassFactory(Ir);
  function Ar() {
    let t4, e3;
    const n3 = this.context, a2 = (0, A.default)(n3).getInstance(), r3 = St(n3).getInstance();
    let i3, l3, o3;
    function s2(t5) {
      i3.update(t5), l3.chooseSelector(e3.getIsDVB(t5)), a2.trigger(D.default.BASE_URLS_UPDATED, { baseUrls: u3(t5) });
    }
    function u3(t5) {
      return i3.getBaseUrls(t5);
    }
    return t4 = { reset: function() {
      i3.reset(), l3.reset();
    }, initialize: function(t5) {
      i3.setConfig({ adapter: e3, contentSteeringController: o3 }), s2(t5);
    }, resolve: function(t5) {
      const e4 = i3.getForPath(t5).reduce((t6, e5) => {
        const n4 = l3.select(e5);
        return n4 ? (r3.isRelative(n4.url) ? t6.url = r3.resolve(n4.url, t6.url) : (t6.url = n4.url, t6.serviceLocation = n4.serviceLocation), t6.availabilityTimeOffset = n4.availabilityTimeOffset, t6.availabilityTimeComplete = n4.availabilityTimeComplete, t6.queryParams = n4.queryParams, t6) : new Qt();
      }, new Qt());
      if (!r3.isRelative(e4.url))
        return e4;
    }, setConfig: function(t5) {
      t5.baseURLTreeModel && (i3 = t5.baseURLTreeModel), t5.baseURLSelector && (l3 = t5.baseURLSelector), t5.adapter && (e3 = t5.adapter), t5.contentSteeringController && (o3 = t5.contentSteeringController);
    }, getBaseUrls: u3, update: s2 }, i3 = yr(n3).create(), l3 = kr(n3).create(), a2.on(R.default.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED, function(t5) {
      i3.invalidateSelectedIndexes(t5.entry);
    }, t4), t4;
  }
  Ar.__dashjs_factory_name = "BaseURLController";
  var Rr = N.default.getClassFactory(Ar), Nr = class extends P {
    constructor(t4, e3) {
      super(), this.url = t4 || null, this.type = e3 || null, this.mediaType = S2.default.STREAM, this.responseType = "";
    }
  };
  function Cr(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, A.default)(e3).getInstance();
    let a2, r3 = qn(e3).create({ errHandler: t4.errHandler, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, errors: V });
    return a2 = { load: function(t5, e4, a3) {
      const i3 = function(r4, i4) {
        e4.resolved = true, e4.resolvedContent = r4 || null, n3.trigger(R.default.XLINK_ELEMENT_LOADED, { element: e4, resolveObject: a3, error: r4 || i4 ? null : new G.default(V.XLINK_LOADER_LOADING_FAILURE_ERROR_CODE, V.XLINK_LOADER_LOADING_FAILURE_ERROR_MESSAGE + t5) });
      };
      if ("urn:mpeg:dash:resolve-to-zero:2013" === t5)
        i3(null, true);
      else {
        const e5 = new Nr(t5, z.HTTPRequest.XLINK_EXPANSION_TYPE);
        r3.load({ request: e5, success: function(t6) {
          i3(t6);
        }, error: function() {
          i3(null);
        } });
      }
    }, reset: function() {
      r3 && (r3.abort(), r3 = null);
    } }, a2;
  }
  Cr.__dashjs_factory_name = "XlinkLoader";
  var Dr = N.default.getClassFactory(Cr);
  const xr = "onLoad";
  function Mr(t4) {
    t4 = t4 || {};
    let e3 = this.context, n3 = (0, A.default)(e3).getInstance();
    const a2 = St(e3).getInstance();
    let r3, i3, l3, o3;
    function s2(t5, e4, n4) {
      let r4, i4, l4 = {};
      l4.elements = t5, l4.type = e4, l4.resolveType = n4, 0 === l4.elements.length && d3(l4);
      for (let t6 = 0; t6 < l4.elements.length; t6++)
        r4 = l4.elements[t6], i4 = a2.isHTTPURL(r4.url) ? r4.url : r4.originalContent.BaseURL + r4.url, o3.load(i4, r4, l4);
    }
    function u3(t5) {
      let e4, n4, a3 = "";
      if (e4 = t5.element, n4 = t5.resolveObject, e4.resolvedContent) {
        let t6 = 0;
        0 === e4.resolvedContent.indexOf("<?xml") && (t6 = e4.resolvedContent.indexOf("?>") + 2), a3 = e4.resolvedContent.substr(0, t6) + "<response>" + e4.resolvedContent.substr(t6) + "</response>", e4.resolvedContent = i3.parseXml(a3).response;
      }
      (function(t6) {
        let e5, n5;
        for (e5 = 0; e5 < t6.elements.length; e5++)
          if (n5 = t6.elements[e5], false === n5.resolved)
            return false;
        return true;
      })(n4) && d3(n4);
    }
    function d3(t5) {
      let e4, a3, r4 = [];
      if (function(t6) {
        let e5, n4, a4, r5, o4, s3, u4 = [];
        for (r5 = t6.elements.length - 1; r5 >= 0; r5--) {
          if (e5 = t6.elements[r5], n4 = e5.type, e5.resolvedContent) {
            if (e5.resolvedContent)
              for (o4 = 0; o4 < e5.resolvedContent[n4].length; o4++)
                a4 = e5.resolvedContent[n4][o4], u4.push(a4);
          } else
            delete e5.originalContent["xlink:actuate"], delete e5.originalContent["xlink:href"], u4.push(e5.originalContent);
          for (e5.parentElement[n4].splice(e5.index, 1), s3 = 0; s3 < u4.length; s3++)
            e5.parentElement[n4].splice(e5.index + s3, 0, u4[s3]);
          u4 = [];
        }
        t6.elements.length > 0 && i3.getIron().run(l3);
      }(t5), "onActuate" === t5.resolveType && n3.trigger(R.default.XLINK_READY, { manifest: l3 }), t5.resolveType === xr)
        switch (t5.type) {
          case I.default.PERIOD:
            for (e4 = 0; e4 < l3[I.default.PERIOD].length; e4++)
              a3 = l3[I.default.PERIOD][e4], a3.hasOwnProperty(I.default.ADAPTATION_SET) && (r4 = r4.concat(c3(a3[I.default.ADAPTATION_SET], a3, I.default.ADAPTATION_SET, xr))), a3.hasOwnProperty(I.default.EVENT_STREAM) && (r4 = r4.concat(c3(a3[I.default.EVENT_STREAM], a3, I.default.EVENT_STREAM, xr)));
            s2(r4, I.default.ADAPTATION_SET, xr);
            break;
          case I.default.ADAPTATION_SET:
            n3.trigger(R.default.XLINK_READY, { manifest: l3 });
        }
    }
    function c3(t5, e4, n4, a3) {
      let r4, i4, l4, o4 = [];
      for (i4 = t5.length - 1; i4 >= 0; i4--)
        r4 = t5[i4], r4.hasOwnProperty("xlink:href") && "urn:mpeg:dash:resolve-to-zero:2013" === r4["xlink:href"] && t5.splice(i4, 1);
      for (i4 = 0; i4 < t5.length; i4++)
        r4 = t5[i4], r4.hasOwnProperty("xlink:href") && r4.hasOwnProperty("xlink:actuate") && r4["xlink:actuate"] === a3 && (l4 = f3(r4["xlink:href"], e4, n4, i4, a3, r4), o4.push(l4));
      return o4;
    }
    function f3(t5, e4, n4, a3, r4, i4) {
      return { url: t5, parentElement: e4, type: n4, index: a3, resolveType: r4, originalContent: i4, resolvedContent: null, resolved: false };
    }
    return r3 = { resolveManifestOnLoad: function(t5) {
      let e4;
      l3 = t5, l3.Period ? (e4 = c3(l3.Period, l3, I.default.PERIOD, xr), s2(e4, I.default.PERIOD, xr)) : n3.trigger(R.default.XLINK_READY, { manifest: l3 });
    }, setParser: function(t5) {
      t5 && (i3 = t5);
    }, reset: function() {
      n3.off(R.default.XLINK_ELEMENT_LOADED, u3, r3), o3 && (o3.reset(), o3 = null);
    } }, n3.on(R.default.XLINK_ELEMENT_LOADED, u3, r3), o3 = Dr(e3).create({ errHandler: t4.errHandler, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, settings: t4.settings }), r3;
  }
  Mr.__dashjs_factory_name = "XlinkController";
  var zr = N.default.getClassFactory(Mr);
  function Or(t4) {
    function e3(t5, e4) {
      for (let n4 in t5)
        e4.hasOwnProperty(n4) || (e4[n4] = t5[n4]);
    }
    function n3(t5, n4, a3) {
      for (let r3 = 0, i3 = t5.length; r3 < i3; ++r3) {
        const i4 = t5[r3];
        if (n4[i4.name])
          if (a3[i4.name]) {
            if (i4.merge) {
              const t6 = n4[i4.name], r4 = a3[i4.name];
              "object" == typeof t6 && "object" == typeof r4 ? e3(t6, r4) : a3[i4.name] = t6 + r4;
            }
          } else
            a3[i4.name] = n4[i4.name];
      }
    }
    function a2(t5, e4) {
      for (let r3 = 0, i3 = t5.children.length; r3 < i3; ++r3) {
        const i4 = t5.children[r3], l3 = e4[i4.name];
        if (l3)
          for (let r4 = 0, o3 = l3.length; r4 < o3; ++r4) {
            const o4 = l3[r4];
            n3(t5.properties, e4, o4), a2(i4, o4);
          }
      }
    }
    return { run: function(e4) {
      if (null === e4 || "object" != typeof e4)
        return e4;
      if (e4.Period && "period" in t4) {
        const n4 = t4.period, r3 = e4.Period;
        for (let e5 = 0, i3 = r3.length; e5 < i3; ++e5) {
          const i4 = r3[e5];
          if (a2(n4, i4), "adaptationset" in t4) {
            const e6 = i4.AdaptationSet;
            if (e6) {
              const n5 = t4.adaptationset;
              for (let t5 = 0, r4 = e6.length; t5 < r4; ++t5)
                a2(n5, e6[t5]);
            }
          }
        }
      }
      return e4;
    } };
  }
  Or.__dashjs_factory_name = "ObjectIron";
  var Pr = N.default.getClassFactory(Or), Lr = class {
    constructor(t4, e3) {
      this._test = t4, this._converter = e3;
    }
    get test() {
      return this._test;
    }
    get converter() {
      return this._converter;
    }
  };
  const Fr = /^([-])?P(([\d.]*)Y)?(([\d.]*)M)?(([\d.]*)D)?T?(([\d.]*)H)?(([\d.]*)M)?(([\d.]*)S)?/;
  var Ur = class extends Lr {
    constructor() {
      super((t4, e3, n3) => {
        const a2 = [I.default.MIN_BUFFER_TIME, I.default.MEDIA_PRESENTATION_DURATION, I.default.MINIMUM_UPDATE_PERIOD, I.default.TIMESHIFT_BUFFER_DEPTH, I.default.MAX_SEGMENT_DURATION, I.default.MAX_SUBSEGMENT_DURATION, I.default.SUGGESTED_PRESENTATION_DELAY, I.default.START, S2.default.START_TIME, I.default.DURATION], r3 = a2.length;
        for (let t5 = 0; t5 < r3; t5++)
          if (e3 === a2[t5])
            return Fr.test(n3);
        return false;
      }, (t4) => {
        const e3 = Fr.exec(t4);
        let n3 = 31536e3 * parseFloat(e3[3] || 0) + 2592e3 * parseFloat(e3[5] || 0) + 86400 * parseFloat(e3[7] || 0) + 3600 * parseFloat(e3[9] || 0) + 60 * parseFloat(e3[11] || 0) + parseFloat(e3[13] || 0);
        return void 0 !== e3[1] && (n3 = -n3), n3;
      });
    }
  };
  const jr = /^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})(?::([0-9]*)(\.[0-9]*)?)?(?:([+-])([0-9]{2})(?::?)([0-9]{2}))?/;
  var qr = class extends Lr {
    constructor() {
      super((t4, e3, n3) => jr.test(n3), (t4) => {
        const e3 = jr.exec(t4);
        let n3;
        if (n3 = Date.UTC(parseInt(e3[1], 10), parseInt(e3[2], 10) - 1, parseInt(e3[3], 10), parseInt(e3[4], 10), parseInt(e3[5], 10), e3[6] && parseInt(e3[6], 10) || 0, e3[7] && 1e3 * parseFloat(e3[7]) || 0), e3[9] && e3[10]) {
          const t5 = 60 * parseInt(e3[9], 10) + parseInt(e3[10], 10);
          n3 += ("+" === e3[8] ? -1 : 1) * t5 * 60 * 1e3;
        }
        return new Date(n3);
      });
    }
  };
  const Br = /^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$/, Gr = [I.default.ID];
  var Hr = class extends Lr {
    constructor() {
      super((t4, e3, n3) => Br.test(n3) && -1 === Gr.indexOf(e3), (t4) => parseFloat(t4));
    }
  }, Yr = class extends Lr {
    constructor() {
      super((t4, e3) => {
        const n3 = { [I.default.ADAPTATION_SET]: [I.default.LANG], [I.default.REPRESENTATION]: [I.default.LANG], [I.default.CONTENT_COMPONENT]: [I.default.LANG], [I.default.LABEL]: [I.default.LANG], [I.default.GROUP_LABEL]: [I.default.LANG] };
        if (n3.hasOwnProperty(t4)) {
          let a2 = n3[t4];
          return void 0 !== a2 && a2.indexOf(e3) >= 0;
        }
        return false;
      }, (t4) => rr(t4) || String(t4));
    }
  }, Vr = class {
    constructor(t4) {
      var e3;
      this._name = t4, this._merge = (e3 = t4) && e3.length && e3.charAt(0) === e3.charAt(0).toUpperCase();
    }
    get name() {
      return this._name;
    }
    get merge() {
      return this._merge;
    }
  }, Kr = class {
    constructor(t4, e3, n3) {
      this._name = t4 || "", this._properties = [], this._children = n3 || [], Array.isArray(e3) && e3.forEach((t5) => {
        this._properties.push(new Vr(t5));
      });
    }
    get name() {
      return this._name;
    }
    get children() {
      return this._children;
    }
    get properties() {
      return this._properties;
    }
  }, Wr = class extends Kr {
    constructor() {
      const t4 = [I.default.PROFILES, I.default.WIDTH, I.default.HEIGHT, I.default.SAR, I.default.FRAMERATE, I.default.AUDIO_SAMPLING_RATE, I.default.MIME_TYPE, I.default.SEGMENT_PROFILES, I.default.CODECS, I.default.MAXIMUM_SAP_PERIOD, I.default.START_WITH_SAP, I.default.MAX_PLAYOUT_RATE, I.default.CODING_DEPENDENCY, I.default.SCAN_TYPE, I.default.FRAME_PACKING, I.default.AUDIO_CHANNEL_CONFIGURATION, I.default.CONTENT_PROTECTION, I.default.INBAND_EVENT_STREAM];
      super(I.default.ADAPTATION_SET, t4, [new Kr(I.default.REPRESENTATION, t4, [new Kr(I.default.SUB_REPRESENTATION, t4)])]);
    }
  }, $r = class extends Kr {
    constructor() {
      const t4 = [I.default.SEGMENT_BASE, I.default.SEGMENT_TEMPLATE, I.default.SEGMENT_LIST];
      super(I.default.PERIOD, t4, [new Kr(I.default.ADAPTATION_SET, t4, [new Kr(I.default.REPRESENTATION, t4)])]);
    }
  };
  const Xr = { "&amp;": "&", "&gt;": ">", "&lt;": "<", "&quot;": '"', "&apos;": "'" };
  function Qr(t4, e3) {
    const n3 = e3.split(/(&[#a-zA-Z0-9]+;)/);
    if (n3.length <= 1)
      return e3;
    for (let e4 = 1; e4 < n3.length; e4 += 2) {
      const a2 = n3[e4];
      if ("#" === a2.charAt(1)) {
        let t5;
        t5 = "x" === a2.charAt(2) ? parseInt(a2.substring(3, a2.length - 1), 16) : parseInt(a2.substring(2, a2.length - 1), 10), !isNaN(t5) && t5 >= 0 && t5 <= 1114111 && (n3[e4] = String.fromCodePoint(t5));
      } else
        t4.hasOwnProperty(a2) && (n3[e4] = t4[a2]);
    }
    return n3.join("");
  }
  function Zr(t4, e3) {
    var n3 = (e3 = e3 || {}).pos || 0, a2 = !!e3.keepComments, r3 = !!e3.keepWhitespace, i3 = e3.attrMatchers || [], l3 = e3.nodesAsArray || [], o3 = "<", s2 = "<".charCodeAt(0), u3 = ">", d3 = ">".charCodeAt(0), c3 = "-".charCodeAt(0), f3 = "/".charCodeAt(0), g3 = "!".charCodeAt(0), m3 = "'".charCodeAt(0), h3 = '"'.charCodeAt(0), p3 = "[".charCodeAt(0), b3 = "]".charCodeAt(0);
    function y3(e4, i4) {
      for (var m4 = []; t4[n3]; )
        if (t4.charCodeAt(n3) == s2) {
          if (t4.charCodeAt(n3 + 1) === f3) {
            var h4 = n3 + 2;
            if (n3 = t4.indexOf(u3, n3), -1 == t4.substring(h4, n3).indexOf(e4)) {
              var y4 = t4.substring(0, n3).split("\n");
              throw new Error("Unexpected close tag\nLine: " + (y4.length - 1) + "\nColumn: " + (y4[y4.length - 1].length + 1) + "\nChar: " + t4[n3]);
            }
            return n3 + 1 && (n3 += 1), m4;
          }
          if (t4.charCodeAt(n3 + 1) === g3) {
            if (t4.charCodeAt(n3 + 2) == c3) {
              const e5 = n3;
              for (; -1 !== n3 && (t4.charCodeAt(n3) !== d3 || t4.charCodeAt(n3 - 1) != c3 || t4.charCodeAt(n3 - 2) != c3 || -1 == n3); )
                n3 = t4.indexOf(u3, n3 + 1);
              -1 === n3 && (n3 = t4.length), a2 && m4.push(t4.substring(e5, n3 + 1));
            } else {
              if (t4.charCodeAt(n3 + 2) === p3 && t4.charCodeAt(n3 + 8) === p3 && "cdata" === t4.substr(n3 + 3, 5).toLowerCase()) {
                var E4 = t4.indexOf("]]>", n3);
                -1 == E4 ? (m4.push(t4.substr(n3 + 9)), n3 = t4.length) : (m4.push(t4.substring(n3 + 9, E4)), n3 = E4 + 3);
                continue;
              }
              {
                const e5 = n3 + 1;
                n3 += 2;
                for (var _4 = false; (t4.charCodeAt(n3) !== d3 || true === _4) && t4[n3]; )
                  t4.charCodeAt(n3) === p3 ? _4 = true : true === _4 && t4.charCodeAt(n3) === b3 && (_4 = false), n3++;
                m4.push(t4.substring(e5, n3));
              }
            }
            n3++;
            continue;
          }
          var T4 = w3();
          if (m4.push(T4), "?" === T4.tagName[0] && (m4.push(...T4.children), T4.children = []), i4) {
            let t5 = T4.tagName;
            -1 !== l3.indexOf(t5) ? (i4[t5] || (i4[t5] = []), i4[t5].push(T4)) : i4[t5] = T4;
          }
        } else {
          var v4 = (S4 = void 0, S4 = n3, -2 == (n3 = t4.indexOf(o3, n3) - 1) && (n3 = t4.length), Qr(Xr, t4.slice(S4, n3 + 1)));
          r3 || (v4 = v4.trim()), i4 ? i4.__text = v4 : m4.push(v4), n3++;
        }
      var S4;
      return m4;
    }
    function E3(t5, e4, n4) {
      if ("S" === t5)
        return parseInt(n4);
      let a3 = Qr(Xr, n4);
      return i3.forEach((r4) => {
        r4.test(t5, e4, n4) && (a3 = r4.converter(n4));
      }), a3;
    }
    var _3 = "\r\n	>/= ";
    function T3() {
      for (var e4 = n3; -1 === _3.indexOf(t4[n3]) && t4[n3]; )
        n3++;
      return t4.slice(e4, n3);
    }
    var v3 = e3.noChildNodes || ["img", "br", "input", "meta", "link", "hr"];
    function w3() {
      n3++;
      const e4 = T3();
      let a3 = [], r4 = { tagName: e4 }, i4 = r4.tagName.indexOf(":");
      for (-1 !== i4 && (r4.__prefix = r4.tagName.substr(0, i4), r4.tagName = r4.tagName.substr(i4 + 1)); t4.charCodeAt(n3) !== d3 && t4[n3]; ) {
        var l4 = t4.charCodeAt(n3);
        if (l4 > 64 && l4 < 91 || l4 > 96 && l4 < 123) {
          for (var o4 = T3(), s3 = t4.charCodeAt(n3); s3 && s3 !== m3 && s3 !== h3 && !(s3 > 64 && s3 < 91 || s3 > 96 && s3 < 123) && s3 !== d3; )
            n3++, s3 = t4.charCodeAt(n3);
          if (s3 === m3 || s3 === h3) {
            var u4 = (c4 = void 0, g4 = void 0, c4 = t4[n3], g4 = n3 + 1, n3 = t4.indexOf(c4, g4), t4.slice(g4, n3));
            if (-1 === n3)
              return r4;
          } else
            u4 = null, n3--;
          u4 = E3(r4.tagName, o4, u4), r4[o4] = u4;
        }
        n3++;
      }
      var c4, g4;
      if (t4.charCodeAt(n3 - 1) !== f3)
        if ("script" == e4) {
          var p4 = n3 + 1;
          n3 = t4.indexOf("<\/script>", n3), a3 = [t4.slice(p4, n3)], n3 += 9;
        } else
          "style" == e4 ? (p4 = n3 + 1, n3 = t4.indexOf("</style>", n3), a3 = [t4.slice(p4, n3)], n3 += 8) : -1 === v3.indexOf(e4) ? (n3++, a3 = y3(e4, r4)) : n3++;
      else
        n3++;
      return r4.__children = a3, r4;
    }
    var S3, I2 = null;
    if (void 0 !== e3.attrValue)
      for (e3.attrName = e3.attrName || "id", I2 = []; -1 !== (S3 = new RegExp("\\s" + e3.attrName + `\\s*=['"]` + e3.attrValue + `['"]`).exec(t4), n3 = S3 ? S3.index : -1); )
        -1 !== (n3 = t4.lastIndexOf("<", n3)) && I2.push(w3()), t4 = t4.substr(n3), n3 = 0;
    else
      I2 = e3.parseNode ? w3() : y3("");
    return e3.filter && (I2 = ti(I2, e3.filter)), e3.simplify ? Jr(Array.isArray(I2) ? I2 : [I2]) : (e3.setPos && (I2.pos = n3), I2);
  }
  function Jr(t4) {
    var e3 = {};
    if (!t4.length)
      return "";
    if (1 === t4.length && "string" == typeof t4[0])
      return t4[0];
    for (var n3 in t4.forEach(function(t5) {
      if ("object" == typeof t5) {
        e3[t5.tagName] || (e3[t5.tagName] = []);
        var n4 = Jr(t5.children);
        e3[t5.tagName].push(n4), Object.keys(t5.attributes).length && "string" != typeof n4 && (n4._attributes = t5.attributes);
      }
    }), e3)
      1 == e3[n3].length && (e3[n3] = e3[n3][0]);
    return e3;
  }
  function ti(t4, e3) {
    let n3 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0, a2 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "";
    var r3 = [];
    return t4.forEach(function(t5, i3) {
      if ("object" == typeof t5 && e3(t5, i3, n3, a2) && r3.push(t5), t5.children) {
        var l3 = ti(t5.children, e3, n3 + 1, (a2 ? a2 + "." : "") + i3 + "." + t5.tagName);
        r3 = r3.concat(l3);
      }
    }), r3;
  }
  const ei = [I.default.PERIOD, I.default.BASE_URL, I.default.ADAPTATION_SET, I.default.REPRESENTATION, I.default.CONTENT_PROTECTION, I.default.ROLE, I.default.ACCESSIBILITY, I.default.AUDIO_CHANNEL_CONFIGURATION, I.default.CONTENT_COMPONENT, I.default.ESSENTIAL_PROPERTY, I.default.LABEL, I.default.S, I.default.SEGMENT_URL, I.default.EVENT, I.default.EVENT_STREAM, I.default.LOCATION, I.default.SERVICE_DESCRIPTION, I.default.SUPPLEMENTAL_PROPERTY, I.default.METRICS, I.default.REPORTING, I.default.PATCH_LOCATION, I.default.REPLACE, I.default.ADD, I.default.REMOVE, I.default.UTC_TIMING, I.default.INBAND_EVENT_STREAM, I.default.PRODUCER_REFERENCE_TIME, I.default.CONTENT_STEERING];
  function ni(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.debug;
    let a2, r3, i3, l3;
    function o3(t5) {
      try {
        let e4 = Zr(t5, { parseNode: true, attrMatchers: i3, nodesAsArray: ei }), n4 = {};
        if (-1 !== e4.tagName.toLowerCase().indexOf("xml"))
          for (let t6 in e4) {
            if (Array.isArray(e4[t6])) {
              n4[t6] = e4[t6][0];
              break;
            }
            if ("object" == typeof e4[t6]) {
              n4[t6] = e4[t6];
              break;
            }
          }
        else
          n4[e4.tagName] = e4, delete e4.tagName;
        return n4;
      } catch (t6) {
        return null;
      }
    }
    return a2 = { getIron: function() {
      return l3;
    }, parseXml: o3, parse: function(t5) {
      let e4;
      const n4 = window.performance.now();
      if (e4 = o3(t5), !e4)
        throw new Error("failed to parse the manifest");
      e4.Patch ? (e4 = e4.Patch, e4.add && e4.add.forEach((t6) => l3.run(t6)), e4.replace && e4.replace.forEach((t6) => l3.run(t6))) : (e4 = e4.MPD, l3.run(e4));
      const a3 = window.performance.now();
      return r3.info("Parsing complete: " + (a3 - n4).toPrecision(3) + "ms"), e4.protocol = "DASH", e4;
    } }, r3 = n3.getLogger(a2), i3 = [new Ur(), new qr(), new Hr(), new Yr()], l3 = Pr(e3).create({ adaptationset: new Wr(), period: new $r() }), a2;
  }
  ni.__dashjs_factory_name = "DashParser";
  var ai = N.default.getClassFactory(ni);
  function ri(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.debug, a2 = t4.settings, r3 = (0, A.default)(e3).getInstance(), i3 = St(e3).getInstance();
    let l3, o3, s2, u3, d3, c3 = t4.mssHandler, f3 = t4.errHandler;
    function g3(t5) {
      r3.trigger(R.default.INTERNAL_MANIFEST_LOADED, { manifest: t5.manifest });
    }
    return l3 = { load: function(t5) {
      let l4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, f4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
      const g4 = /* @__PURE__ */ new Date(), m3 = new Nr(t5, z.HTTPRequest.MPD_TYPE);
      l4 && (m3.serviceLocation = l4), f4 && (m3.queryParams = f4), m3.startDate || (m3.startDate = g4), r3.trigger(R.default.MANIFEST_LOADING_STARTED, { request: m3 }), s2.load({ request: m3, success: function(l5, s3, f5) {
        if (!u3)
          return;
        let g5, m4, h3;
        if (f5 && f5 !== t5 ? (m4 = i3.parseBaseUrl(f5), g5 = f5) : (i3.isRelative(t5) && (t5 = i3.resolve(t5, window.location.href)), m4 = i3.parseBaseUrl(t5)), "No Content" != s3)
          if (null === d3 && (d3 = function(t6) {
            let a3 = null;
            return t6.indexOf("SmoothStreamingMedia") > -1 ? (c3 && (a3 = c3.createMssParser(), c3.createMssFragmentProcessor(), c3.registerEvents()), a3) : t6.indexOf("MPD") > -1 || t6.indexOf("Patch") > -1 ? ai(e3).create({ debug: n3 }) : a3;
          }(l5)), null !== d3) {
            u3.setParser(d3);
            try {
              h3 = d3.parse(l5);
            } catch (e4) {
              return void r3.trigger(R.default.INTERNAL_MANIFEST_LOADED, { manifest: null, error: new G.default(V.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE, V.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE + `${t5}`) });
            }
            if (h3) {
              if (h3.url = g5 || t5, h3.originalUrl || (h3.originalUrl = h3.url), a2 && a2.get().streaming.enableManifestDurationMismatchFix && h3.mediaPresentationDuration && h3.Period.length > 1) {
                const t6 = h3.Period.reduce((t7, e4) => t7 + e4.duration, 0);
                !isNaN(t6) && h3.mediaPresentationDuration > t6 && (o3.warn("Media presentation duration greater than duration of all periods. Setting duration to total period duration"), h3.mediaPresentationDuration = t6);
              }
              h3.baseUri = m4, h3.loadedTime = /* @__PURE__ */ new Date(), u3.resolveManifestOnLoad(h3), r3.trigger(R.default.ORIGINAL_MANIFEST_LOADED, { originalManifest: l5 });
            } else
              r3.trigger(R.default.INTERNAL_MANIFEST_LOADED, { manifest: null, error: new G.default(V.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE, V.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE + `${t5}`) });
          } else
            r3.trigger(R.default.INTERNAL_MANIFEST_LOADED, { manifest: null, error: new G.default(V.MANIFEST_LOADER_PARSING_FAILURE_ERROR_CODE, V.MANIFEST_LOADER_PARSING_FAILURE_ERROR_MESSAGE + `${t5}`) });
        else
          r3.trigger(R.default.INTERNAL_MANIFEST_LOADED, { manifest: null });
      }, error: function(e4, n4, a3) {
        r3.trigger(R.default.INTERNAL_MANIFEST_LOADED, { manifest: null, error: new G.default(V.MANIFEST_LOADER_LOADING_FAILURE_ERROR_CODE, V.MANIFEST_LOADER_LOADING_FAILURE_ERROR_MESSAGE + `${t5}, ${a3}`) });
      } });
    }, reset: function() {
      r3.off(R.default.XLINK_READY, g3, l3), c3 && c3.reset(), u3 && (u3.reset(), u3 = null), s2 && (s2.abort(), s2 = null);
    } }, o3 = n3.getLogger(l3), r3.on(R.default.XLINK_READY, g3, l3), s2 = qn(e3).create({ errHandler: t4.errHandler, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, urlUtils: i3, constants: S2.default, dashConstants: I.default, errors: V, requestTimeout: t4.settings.get().streaming.manifestRequestTimeout }), u3 = zr(e3).create({ errHandler: f3, dashMetrics: t4.dashMetrics, mediaPlayerModel: t4.mediaPlayerModel, settings: t4.settings }), d3 = null, l3;
  }
  ri.__dashjs_factory_name = "ManifestLoader";
  var ii = N.default.getClassFactory(ri);
  function li() {
    let t4;
    const e3 = this.context, n3 = (0, A.default)(e3).getInstance();
    return t4 = { error: function(t5) {
      n3.trigger(R.default.ERROR, { error: t5 });
    } }, t4;
  }
  li.__dashjs_factory_name = "ErrorHandler";
  var oi = N.default.getSingletonFactory(li), si = n2(559);
  function ui() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3, i3, l3, o3, s2;
    function u3(t5, e4, n4) {
      const a3 = c3(t5, e4, n4);
      return r3.isCodecSupportedBasedOnTestedConfigurations(a3, t5);
    }
    function d3(t5, e4, n4, a3, r4) {
      const i4 = c3(t5, e4, n4), l4 = JSON.stringify(i4);
      a3.has(l4) || (a3.add(l4), r4.push(i4));
    }
    function c3(t5, e4, n4) {
      let r4 = null;
      switch (t5) {
        case S2.default.VIDEO:
          r4 = function(t6, e5) {
            let n5 = { codec: e5, width: t6.width || null, height: t6.height || null, framerate: a2.getFramerate(t6) || null, bitrate: t6.bandwidth || null, isSupported: true };
            i3.get().streaming.capabilities.filterVideoColorimetryEssentialProperties && Object.assign(n5, function(t7) {
              let e6 = { colorGamut: null, transferFunction: null, isSupported: true };
              for (const n6 of t7.EssentialProperty || [])
                n6.schemeIdUri === S2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && ["1", "5", "6", "7"].includes(n6.value.toString()) ? e6.colorGamut = S2.default.MEDIA_CAPABILITIES_API.COLORGAMUT.SRGB : n6.schemeIdUri === S2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && ["11", "12"].includes(n6.value.toString()) ? e6.colorGamut = S2.default.MEDIA_CAPABILITIES_API.COLORGAMUT.P3 : n6.schemeIdUri === S2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && ["9"].includes(n6.value.toString()) ? e6.colorGamut = S2.default.MEDIA_CAPABILITIES_API.COLORGAMUT.REC2020 : n6.schemeIdUri === S2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && ["2"].includes(n6.value.toString()) ? e6.colorGamut = null : n6.schemeIdUri === S2.default.COLOUR_PRIMARIES_SCHEME_ID_URI && (e6.isSupported = false), n6.schemeIdUri === S2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && ["1", "6", "13", "14", "15"].includes(n6.value.toString()) ? e6.transferFunction = S2.default.MEDIA_CAPABILITIES_API.TRANSFERFUNCTION.SRGB : n6.schemeIdUri === S2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && ["16"].includes(n6.value.toString()) ? e6.transferFunction = S2.default.MEDIA_CAPABILITIES_API.TRANSFERFUNCTION.PQ : n6.schemeIdUri === S2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && ["18"].includes(n6.value.toString()) ? e6.transferFunction = S2.default.MEDIA_CAPABILITIES_API.TRANSFERFUNCTION.HLG : n6.schemeIdUri === S2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && ["2"].includes(n6.value.toString()) ? e6.transferFunction = null : n6.schemeIdUri === S2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI && (e6.isSupported = false);
              return e6;
            }(t6));
            let r5 = n5.isSupported;
            i3.get().streaming.capabilities.filterHDRMetadataFormatEssentialProperties && Object.assign(n5, function(t7) {
              let e6 = { isSupported: true, hdrMetadataType: null };
              for (const n6 of t7.EssentialProperty || [])
                n6.schemeIdUri === S2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI && n6.value === S2.default.HDR_METADATA_FORMAT_VALUES.ST2094_10 ? e6.hdrMetadataType = S2.default.MEDIA_CAPABILITIES_API.HDR_METADATATYPE.SMPTE_ST_2094_10 : n6.schemeIdUri === S2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI && n6.value === S2.default.HDR_METADATA_FORMAT_VALUES.SL_HDR2 ? e6.hdrMetadataType = S2.default.MEDIA_CAPABILITIES_API.HDR_METADATATYPE.SLHDR2 : n6.schemeIdUri === S2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI && n6.value === S2.default.HDR_METADATA_FORMAT_VALUES.ST2094_40 ? e6.hdrMetadataType = S2.default.MEDIA_CAPABILITIES_API.HDR_METADATATYPE.SMPTE_ST_2094_40 : n6.schemeIdUri === S2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI && (e6.isSupported = false);
              return e6;
            }(t6));
            let l4 = n5.isSupported;
            return r5 && l4 || (n5.isSupported = false), n5;
          }(e4, n4);
          break;
        case S2.default.AUDIO:
          r4 = function(t6, e5) {
            const n5 = t6.audioSamplingRate || null;
            return { codec: e5, bitrate: t6.bandwidth || null, samplerate: n5, isSupported: true };
          }(e4, n4);
          break;
        default:
          return r4;
      }
      return function(t6, e5) {
        return t6 && t6[I.default.CONTENT_PROTECTION] && t6[I.default.CONTENT_PROTECTION].length > 0 && (e5.keySystemsMetadata = o3.getSupportedKeySystemMetadataFromContentProtection(t6[I.default.CONTENT_PROTECTION])), e5;
      }(e4, r4);
    }
    function f3(t5) {
      if (!t5 || 0 === t5.length)
        return true;
      let e4 = 0;
      for (; e4 < t5.length; ) {
        if (!r3.supportsEssentialProperty(t5[e4]))
          return s2.debug("[Stream] EssentialProperty not supported: " + t5[e4].schemeIdUri), false;
        e4 += 1;
      }
      return true;
    }
    return n3 = { setConfig: function(t5) {
      t5 && (t5.adapter && (a2 = t5.adapter), t5.capabilities && (r3 = t5.capabilities), t5.settings && (i3 = t5.settings), t5.protectionController && (o3 = t5.protectionController), t5.customParametersModel && (l3 = t5.customParametersModel));
    }, filterUnsupportedFeatures: function(t5) {
      return new Promise((n4) => {
        const o4 = [S2.default.VIDEO, S2.default.AUDIO], c4 = [];
        o4.forEach((e4) => {
          const n5 = function(t6, e5) {
            if (!t6 || !t6.Period || 0 === t6.Period.length)
              return [];
            const n6 = /* @__PURE__ */ new Set(), r4 = [];
            return t6.Period.forEach((t7) => {
              t7.AdaptationSet.forEach((t8) => {
                a2.getIsTypeOf(t8, e5) && t8.Representation.forEach((i4, l4) => {
                  const o5 = a2.getCodec(t8, l4, false);
                  d3(e5, i4, o5, n6, r4);
                  const s3 = a2.getSupplementalCodecs(i4);
                  s3.length > 0 && d3(e5, i4, s3[0], n6, r4);
                });
              });
            }), r4;
          }(t5, e4);
          n5.forEach((t6) => {
            c4.push(r3.runCodecSupportCheck(t6, e4));
          });
        }), Promise.allSettled(c4).then(() => (o4.forEach((n5) => {
          !function(t6, n6) {
            n6 && n6.Period && 0 !== n6.Period.length && n6.Period.forEach((n7) => {
              !function(t7, n8) {
                t7 && t7.AdaptationSet && 0 !== t7.AdaptationSet.length && (t7.AdaptationSet = t7.AdaptationSet.filter((t8) => {
                  a2.getIsTypeOf(t8, n8) && function(t9, e4) {
                    t9.Representation && 0 !== t9.Representation.length && (t9.Representation = t9.Representation.filter((n9, r5) => {
                      const i4 = a2.getCodec(t9, r5, false), l4 = u3(e4, n9, i4);
                      let o5 = function(t10, e5) {
                        let n10 = false;
                        const r6 = a2.getSupplementalCodecs(t10);
                        return r6.length > 0 && (r6.length > 1 && s2.warn("[CapabilitiesFilter] Multiple supplemental codecs not supported; using the first in list"), n10 = u3(e5, t10, r6[0])), n10;
                      }(n9, e4);
                      return o5 && (s2.debug(`[CapabilitiesFilter] Codec supported. Upgrading codecs string of Representation with ID ${n9.id}`), n9.codecs = n9[I.default.SUPPLEMENTAL_CODECS]), l4 || o5 || s2.warn(`[CapabilitiesFilter] Codec ${i4} not supported. Removing Representation with ID ${n9.id}`), l4 || o5;
                    }));
                  }(t8, n8);
                  const r4 = t8.Representation && t8.Representation.length > 0;
                  return r4 || (e3.trigger(R.default.ADAPTATION_SET_REMOVED_NO_CAPABILITIES, { adaptationSet: t8 }), s2.warn(`[CapabilitiesFilter] AdaptationSet with ID ${t8.id ? t8.id : "undefined"} and codec ${t8.codecs ? t8.codecs : "undefined"} has been removed because of no supported Representation`)), r4;
                }));
              }(n7, t6);
            });
          }(n5, t5);
        }), i3.get().streaming.capabilities.filterUnsupportedEssentialProperties && function(t6) {
          t6 && t6.Period && 0 !== t6.Period.length && t6.Period.forEach((t7) => {
            t7.AdaptationSet = t7.AdaptationSet.filter((t8) => !t8.Representation || 0 === t8.Representation.length || !!f3(a2.getEssentialPropertiesForAdaptationSet(t8)) && (t8.Representation = t8.Representation.filter((t9) => f3(a2.getEssentialPropertiesForRepresentation(t9))), t8.Representation && t8.Representation.length > 0));
          });
        }(t5), function(t6) {
          if (!t6 || !t6.Period || 0 === t6.Period.length)
            return Promise.resolve();
          const e4 = [];
          return t6.Period.forEach((t7) => {
            e4.push(function(t8) {
              return new Promise((e5) => {
                if (!t8 || !t8.AdaptationSet || 0 === t8.AdaptationSet.length)
                  return void e5();
                const n5 = [];
                t8.AdaptationSet.forEach((t9) => {
                  n5.push(function(t10) {
                    return new Promise((e6) => {
                      if (!t10.Representation || 0 === t10.Representation.length)
                        return void e6();
                      const n6 = [];
                      t10.Representation.forEach((t11) => {
                        n6.push(function(t12) {
                          const e7 = [], n7 = l3.getCustomCapabilitiesFilters();
                          return n7 && 0 !== n7.length ? n7.forEach((n8) => {
                            e7.push(new Promise((e8) => e8(n8(t12))));
                          }) : e7.push(Promise.resolve(true)), Promise.all(e7);
                        }(t11));
                      }), Promise.all(n6).then((n7) => {
                        t10.Representation = t10.Representation.filter((t11, e7) => {
                          let a3 = n7[e7].every((t12) => t12);
                          return a3 || s2.debug("[Stream] Representation " + t11.id + " has been removed because of unsupported CustomFilter"), a3;
                        }), e6();
                      }).catch((t11) => {
                        s2.warn("[Stream] at least one promise rejected in CustomFilter with error: ", t11), e6();
                      });
                    });
                  }(t9));
                }), Promise.all(n5).then(() => {
                  t8.AdaptationSet = t8.AdaptationSet.filter((t9) => t9.Representation && t9.Representation.length > 0), e5();
                }).catch(() => {
                  e5();
                });
              });
            }(t7));
          }), Promise.all(e4);
        }(t5))).then(() => {
          n4();
        }).catch((t6) => {
          s2.error(t6), n4();
        });
      });
    } }, s2 = (0, C.default)(t4).getInstance().getLogger(n3), n3;
  }
  ui.__dashjs_factory_name = "CapabilitiesFilter";
  var di = N.default.getSingletonFactory(ui), ci = class {
    constructor() {
      this.t = null, this.xywh = null, this.track = null, this.id = null, this.s = null, this.r = null;
    }
  };
  function fi() {
    let t4, e3;
    return t4 = { initialize: function(t5) {
      if (e3 = new ci(), !t5)
        return null;
      const n3 = t5.indexOf("#");
      if (-1 !== n3) {
        const a2 = t5.substr(n3 + 1).split("&");
        for (let t6 = 0, n4 = a2.length; t6 < n4; ++t6) {
          const n5 = a2[t6], r3 = n5.indexOf("=");
          if (-1 !== r3) {
            const t7 = n5.substring(0, r3);
            e3.hasOwnProperty(t7) && (e3[t7] = n5.substr(r3 + 1));
          }
        }
      }
    }, getURIFragmentData: function() {
      return e3;
    } }, t4;
  }
  fi.__dashjs_factory_name = "URIFragmentModel";
  var gi = N.default.getSingletonFactory(fi);
  function mi() {
    let t4, e3, n3 = this.context, a2 = (0, A.default)(n3).getInstance();
    return t4 = { getValue: function() {
      return e3;
    }, setValue: function(t5) {
      e3 = t5, t5 && a2.trigger(R.default.MANIFEST_LOADED, { data: t5 });
    } }, t4;
  }
  mi.__dashjs_factory_name = "ManifestModel";
  var hi = N.default.getSingletonFactory(mi);
  function pi() {
    let t4, e3, n3, a2;
    const r3 = this.context, i3 = (0, K.default)(r3).getInstance();
    function l3(t5, n4) {
      return isNaN(t5) ? 0 : t5 > 0 ? (n4 && e3.warn("Supplied minimum playback rate is a positive value when it should be negative or 0. The supplied rate will not be applied and set to 0: 100% playback speed."), 0) : t5 < -0.5 ? (n4 && e3.warn("Supplied minimum playback rate is out of range and will be limited to -0.5: -50% playback speed."), -0.5) : t5;
    }
    function o3(t5, n4) {
      return isNaN(t5) ? 0 : t5 < 0 ? (n4 && e3.warn("Supplied maximum playback rate is a negative value when it should be negative or 0. The supplied rate will not be applied and set to 0: 100% playback speed."), 0) : t5 > 1 ? (n4 && e3.warn("Supplied maximum playback rate is out of range and will be limited to 1: 200% playback speed."), 1) : t5;
    }
    function s2() {
      const t5 = u3(), e4 = n3.getLiveDelay();
      return !isNaN(e4) && e4 > 0 ? Math.min(t5, e4) : t5;
    }
    function u3() {
      return i3.get().streaming.buffer.bufferTimeDefault > 0 ? i3.get().streaming.buffer.bufferTimeDefault : d3() ? 20 : 12;
    }
    function d3() {
      return null !== i3.get().streaming.buffer.fastSwitchEnabled ? i3.get().streaming.buffer.fastSwitchEnabled : !n3.getLowLatencyModeEnabled();
    }
    return t4 = { getCatchupMaxDrift: function() {
      if (!isNaN(i3.get().streaming.liveCatchup.maxDrift) && i3.get().streaming.liveCatchup.maxDrift >= 0)
        return i3.get().streaming.liveCatchup.maxDrift;
      const t5 = a2.getServiceDescriptionSettings();
      return t5 && t5.liveCatchup && !isNaN(t5.liveCatchup.maxDrift) && t5.liveCatchup.maxDrift >= 0 ? t5.liveCatchup.maxDrift : 12;
    }, getCatchupModeEnabled: function() {
      return null !== i3.get().streaming.liveCatchup.enabled ? i3.get().streaming.liveCatchup.enabled : n3.getInitialCatchupModeActivated();
    }, getBufferTimeDefault: s2, getBufferTimeDefaultUnadjusted: u3, getFastSwitchEnabled: d3, getInitialBufferLevel: function() {
      const t5 = i3.get().streaming.buffer.initialBufferLevel;
      return isNaN(t5) || t5 < 0 ? 0 : Math.min(s2(), t5);
    }, getRetryAttemptsForType: function(t5) {
      const e4 = isNaN(i3.get().streaming.retryAttempts.lowLatencyMultiplyFactor) ? 5 : i3.get().streaming.retryAttempts.lowLatencyMultiplyFactor;
      return n3.getLowLatencyModeEnabled() ? i3.get().streaming.retryAttempts[t5] * e4 : i3.get().streaming.retryAttempts[t5];
    }, getRetryIntervalsForType: function(t5) {
      const e4 = isNaN(i3.get().streaming.retryIntervals.lowLatencyReductionFactor) ? 10 : i3.get().streaming.retryIntervals.lowLatencyReductionFactor;
      return n3.getLowLatencyModeEnabled() ? i3.get().streaming.retryIntervals[t5] / e4 : i3.get().streaming.retryIntervals[t5];
    }, getCatchupPlaybackRates: function(t5) {
      const e4 = i3.get().streaming.liveCatchup.playbackRate;
      if (!isNaN(e4.min) || !isNaN(e4.max))
        return { min: l3(e4.min, t5), max: o3(e4.max, t5) };
      const n4 = a2.getServiceDescriptionSettings();
      if (n4 && n4.liveCatchup && (!isNaN(n4.liveCatchup.playbackRate.min) || !isNaN(n4.liveCatchup.playbackRate.max))) {
        const e5 = n4.liveCatchup.playbackRate;
        return { min: l3(e5.min, t5), max: o3(e5.max, t5) };
      }
      return { min: -0.5, max: 0.5 };
    }, getAbrBitrateParameter: function(t5, e4) {
      try {
        const n4 = i3.get().streaming.abr[t5][e4];
        if (!isNaN(n4) && -1 !== n4)
          return n4;
        const r4 = a2.getServiceDescriptionSettings();
        return r4 && r4[t5] && !isNaN(r4[t5][e4]) ? r4[t5][e4] : -1;
      } catch (t6) {
        return -1;
      }
    }, setConfig: function(t5) {
      t5.playbackController && (n3 = t5.playbackController), t5.serviceDescriptionController && (a2 = t5.serviceDescriptionController);
    }, reset: function() {
    } }, e3 = (0, C.default)(r3).getInstance().getLogger(t4), t4;
  }
  pi.__dashjs_factory_name = "MediaPlayerModel";
  var bi = N.default.getSingletonFactory(pi);
  const yi = { DEFAULT: 0.5, STRONG: 1, WEAK: 0 };
  function Ei(t4, e3, n3, a2) {
    let r3, i3, l3, o3, s2;
    return i3 = void 0 === t4 ? null : t4, l3 = function(t5) {
      let e4 = yi.DEFAULT;
      return t5 !== yi.DEFAULT && t5 !== yi.STRONG && t5 !== yi.WEAK || (e4 = t5), e4;
    }(n3), o3 = void 0 === e3 ? null : e3, s2 = void 0 === a2 ? null : a2, r3 = { representation: i3, reason: o3, rule: s2, priority: l3 }, r3;
  }
  Ei.__dashjs_factory_name = "SwitchRequest";
  const _i = N.default.getClassFactory(Ei);
  _i.NO_CHANGE = null, _i.PRIORITY = yi, N.default.updateClassFactory(Ei.__dashjs_factory_name, _i);
  var Ti = _i;
  function vi(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.dashMetrics;
    let a2, r3;
    return a2 = { getSwitchRequest: function(t5) {
      try {
        const a3 = Ti(e3).create();
        a3.rule = this.getClassName();
        const r4 = t5.getMediaInfo(), i3 = t5.getMediaType(), l3 = n3.getCurrentBufferState(i3), o3 = t5.getScheduleController(), s2 = t5.getAbrController(), u3 = t5.getStreamInfo(), d3 = u3 ? u3.id : null, c3 = u3 && u3.manifestInfo ? u3.manifestInfo.isDynamic : null, f3 = t5.getThroughputController(), g3 = f3.getSafeAverageThroughput(i3), m3 = f3.getAverageLatency(i3);
        return isNaN(g3) || !l3 || s2.getAbandonmentStateFor(d3, i3) === k.ALLOW_LOAD && (l3.state === k.BUFFER_LOADED || c3) && (a3.representation = s2.getOptimalRepresentationForBitrate(r4, g3, true), a3.reason = { throughput: g3, latency: m3, message: `[ThroughputRule]: Switching to Representation with bitrate ${a3.representation ? a3.representation.bitrateInKbit : "n/a"} kbit/s. Throughput: ${g3}` }, o3.setTimeToLoadDelay(0)), a3;
      } catch (t6) {
        return r3.error(t6), Ti(e3).create();
      }
    }, reset: function() {
    } }, r3 = (0, C.default)(e3).getInstance().getLogger(a2), a2;
  }
  vi.__dashjs_factory_name = "ThroughputRule";
  var wi = N.default.getClassFactory(vi);
  function Si(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, A.default)(e3).getInstance(), a2 = t4.dashMetrics, r3 = (0, K.default)(e3).getInstance();
    let i3, l3, o3;
    function s2() {
      const t5 = r3.get().streaming.abr.rules.insufficientBufferRule.parameters.segmentIgnoreCount;
      o3 = {}, o3[S2.default.VIDEO] = { ignoreCount: t5 }, o3[S2.default.AUDIO] = { ignoreCount: t5 };
    }
    function u3() {
      s2();
    }
    function d3(t5) {
      isNaN(t5.startTime) || t5.mediaType !== S2.default.AUDIO && t5.mediaType !== S2.default.VIDEO || o3[t5.mediaType].ignoreCount > 0 && o3[t5.mediaType].ignoreCount--;
    }
    return i3 = { getSwitchRequest: function(t5) {
      const n4 = Ti(e3).create();
      if (n4.rule = this.getClassName(), !t5 || !t5.hasOwnProperty("getMediaType"))
        return n4;
      const i4 = t5.getMediaType(), s3 = a2.getCurrentBufferState(i4), u4 = t5.getRepresentation().fragmentDuration;
      if (!function(t6, e4, n5) {
        return !t6.getLowLatencyModeEnabled() && o3[e4].ignoreCount <= 0 && n5;
      }(t5.getScheduleController().getPlaybackController(), i4, u4))
        return n4;
      const d4 = t5.getMediaInfo(), c3 = t5.getAbrController();
      if (s3 && s3.state === k.BUFFER_EMPTY)
        l3.debug("[" + i4 + "] Switch to index 0; buffer is empty."), n4.representation = c3.getOptimalRepresentationForBitrate(d4, 0, true), n4.reason = { message: "[InsufficientBufferRule]: Switching to lowest Representation because buffer is empty" };
      else {
        const e4 = t5.getThroughputController(), l4 = a2.getCurrentBufferLevel(i4), o4 = e4.getAverageThroughput(i4, null, NaN) * r3.get().streaming.abr.rules.insufficientBufferRule.parameters.throughputSafetyFactor * l4 / u4;
        if (isNaN(o4) || o4 <= 0)
          return n4;
        n4.representation = c3.getOptimalRepresentationForBitrate(d4, o4, true), n4.reason = { message: "[InsufficientBufferRule]: Limiting maximum bitrate to avoid a buffer underrun.", bitrate: o4 };
      }
      return n4;
    }, reset: function() {
      s2(), n3.off(D.default.PLAYBACK_SEEKING, u3, i3), n3.off(R.default.BYTES_APPENDED_END_FRAGMENT, d3, i3);
    } }, l3 = (0, C.default)(e3).getInstance().getLogger(i3), s2(), n3.on(D.default.PLAYBACK_SEEKING, u3, i3), n3.on(R.default.BYTES_APPENDED_END_FRAGMENT, d3, i3), i3;
  }
  Si.__dashjs_factory_name = "InsufficientBufferRule";
  var Ii = N.default.getClassFactory(Si);
  function ki(t4) {
    const e3 = (t4 = t4 || {}).mediaPlayerModel, n3 = t4.dashMetrics, a2 = this.context, r3 = (0, K.default)(a2).getInstance();
    let i3, l3, o3;
    function s2() {
      o3 = {};
    }
    return i3 = { shouldAbandon: function(t5) {
      const i4 = Ti(a2).create();
      i4.rule = this.getClassName();
      try {
        if (!t5)
          return i4;
        const a3 = t5.getCurrentRequest();
        if (!isNaN(a3.index)) {
          if (null === a3.firstByteDate || o3.hasOwnProperty(a3.index))
            return i4;
          const l4 = e3.getBufferTimeDefault(), s3 = t5.getMediaType();
          if (n3.getCurrentBufferLevel(s3) > l4)
            return i4;
          const u3 = Date.now() - a3.firstByteDate.getTime();
          if (a3.traces.length >= r3.get().streaming.abr.rules.abandonRequestsRule.parameters.minThroughputSamplesThreshold && u3 > r3.get().streaming.abr.rules.abandonRequestsRule.parameters.minSegmentDownloadTimeThresholdInMs && a3.bytesLoaded < a3.bytesTotal)
            return function(t6, e4, n4) {
              const a4 = t6.getMediaInfo(), i5 = t6.getMediaType(), l5 = e4.traces.reduce((t7, e5) => t7 + e5.b[0], 0) - e4.traces[0].b[0], s4 = Math.max(e4.traces.reduce((t7, e5) => t7 + e5.d, 0) - e4.traces[0].d, 1), u4 = Math.round(8 * l5 / s4), d3 = Number(8 * e4.bytesTotal / u4 / 1e3).toFixed(2), c3 = t6.getRepresentation(), f3 = t6.getAbrController();
              if (d3 < e4.duration * r3.get().streaming.abr.rules.abandonRequestsRule.parameters.abandonDurationMultiplier || f3.isPlayingAtLowestQuality(c3))
                return n4;
              if (!o3.hasOwnProperty(e4.index)) {
                const r4 = t6.getAbrController(), l6 = e4.bytesTotal - e4.bytesLoaded, s5 = r4.getOptimalRepresentationForBitrate(a4, u4, true), d4 = e4.representation;
                l6 > e4.bytesTotal * s5.bitrateInKbit / d4.bitrateInKbit && (n4.representation = s5, n4.reason = { throughputInKbit: u4, message: `[AbandonRequestRule][${i5} is asking to abandon and switch to quality to ${s5.absoluteIndex}. The measured bandwidth was ${u4} kbit/s` }, o3[e4.index] = true);
              }
              return n4;
            }(t5, a3, i4);
        }
        return i4;
      } catch (t6) {
        return l3.error(t6), i4;
      }
    }, reset: s2 }, l3 = (0, C.default)(a2).getInstance().getLogger(i3), s2(), i3;
  }
  ki.__dashjs_factory_name = "AbandonRequestsRule";
  var Ai = N.default.getClassFactory(ki);
  function Ri() {
    const t4 = this.context, e3 = (0, K.default)(t4).getInstance();
    let n3;
    return n3 = { getSwitchRequest: function(n4) {
      const a2 = Ti(t4).create();
      if (a2.rule = this.getClassName(), !n4 || !n4.hasOwnProperty("getDroppedFramesHistory"))
        return a2;
      const r3 = n4.getDroppedFramesHistory();
      if (!r3)
        return a2;
      const i3 = n4.getStreamInfo().id, l3 = n4.getMediaInfo(), o3 = n4.getAbrController(), s2 = r3.getFrameHistory(i3);
      if (!s2 || 0 === Object.keys(s2).length)
        return a2;
      let u3 = 0, d3 = 0;
      const c3 = o3.getPossibleVoRepresentationsFilteredBySettings(l3, true);
      let f3 = null;
      for (let t5 = 1; t5 < c3.length; t5++) {
        const n5 = c3[t5];
        if (n5 && s2[n5.id] && (u3 = s2[n5.id].droppedVideoFrames, d3 = s2[n5.id].totalVideoFrames, d3 > e3.get().streaming.abr.rules.droppedFramesRule.parameters.minimumSampleSize && u3 / d3 > e3.get().streaming.abr.rules.droppedFramesRule.parameters.droppedFramesPercentageThreshold)) {
          f3 = c3[t5 - 1];
          break;
        }
      }
      return f3 && (a2.representation = f3, a2.reason = { droppedFrames: u3, message: `[DroppedFramesRule]: Switching to index ${f3.absoluteIndex}. Dropped Frames: ${u3}, Total Frames: ${d3}` }), a2;
    } }, n3;
  }
  Ri.__dashjs_factory_name = "DroppedFramesRule";
  var Ni = N.default.getClassFactory(Ri);
  function Ci() {
    const t4 = this.context, e3 = (0, K.default)(t4).getInstance();
    let n3;
    return n3 = { getSwitchRequest: function(n4) {
      const a2 = Ti(t4).create();
      if (a2.rule = this.getClassName(), !n4)
        return a2;
      const r3 = n4.getStreamInfo().id, i3 = n4.getMediaType(), l3 = n4 ? n4.getSwitchRequestHistory() : null, o3 = l3 ? l3.getSwitchRequests(r3, i3) : {}, s2 = n4.getAbrController(), u3 = n4.getMediaInfo(), d3 = s2.getPossibleVoRepresentationsFilteredBySettings(u3, true);
      let c3 = 0, f3 = 0;
      for (let t5 = 0; t5 < d3.length; t5++) {
        const n5 = d3[t5];
        if (n5 && o3[n5.id] && (c3 += o3[n5.id].drops, f3 += o3[n5.id].noDrops, c3 + f3 >= e3.get().streaming.abr.rules.switchHistoryRule.parameters.sampleSize && c3 / f3 > e3.get().streaming.abr.rules.switchHistoryRule.parameters.switchPercentageThreshold)) {
          a2.representation = t5 > 0 && o3[n5.id].drops > 0 ? d3[t5 - 1] : n5, a2.reason = { drops: c3, noDrops: f3, message: `[SwitchHistoryRule]: Switch to index: ${a2.representation.absoluteIndex} samples: ${c3 + f3} drops:  ${c3}` };
          break;
        }
      }
      return a2;
    } }, n3;
  }
  Ci.__dashjs_factory_name = "SwitchHistoryRule";
  var Di = N.default.getClassFactory(Ci);
  const xi = "BOLA_STATE_ONE_BITRATE", Mi = "BOLA_STATE_STARTUP", zi = "BOLA_STATE_STEADY", Oi = 10;
  function Pi(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.dashMetrics, a2 = t4.mediaPlayerModel, r3 = (0, A.default)(e3).getInstance(), i3 = dl(e3).getInstance();
    let l3, o3, s2;
    function u3(t5) {
      const e4 = t5.mediaType, n4 = t5.streamId, a3 = e4 === S2.default.AUDIO ? [S2.default.AUDIO] : s2[n4];
      for (const t6 in a3)
        s2[n4] && s2[n4].hasOwnProperty(t6) && s2[n4][t6].state === zi && (s2[n4][t6].placeholderBuffer = 0);
    }
    function d3(t5) {
      const e4 = t5.streamId;
      for (const t6 in s2[e4])
        if (s2[e4].hasOwnProperty(t6)) {
          const n4 = s2[e4][t6];
          n4.state !== xi && (n4.state = Mi, c3(n4));
        }
    }
    function c3(t5) {
      t5.placeholderBuffer = 0, t5.mostAdvancedSegmentStart = NaN, t5.lastSegmentWasReplacement = false, t5.lastSegmentStart = NaN, t5.lastSegmentDurationS = NaN, t5.lastSegmentRequestTimeMs = NaN, t5.lastSegmentFinishTimeMs = NaN;
    }
    function f3(t5) {
      try {
        if (t5 && t5.metric === k.HTTP_REQUEST && t5.value && t5.value.type === z.HTTPRequest.MEDIA_SEGMENT_TYPE && t5.value.trace && t5.value.trace.length) {
          const e4 = s2[t5.value._streamId] && s2[t5.value._streamId][t5.mediaType] ? s2[t5.value._streamId][t5.mediaType] : null;
          e4 && e4.state !== xi && (e4.lastSegmentRequestTimeMs = t5.value.trequest.getTime(), e4.lastSegmentFinishTimeMs = t5.value._tfinish.getTime(), g3(e4, t5.mediaType));
        }
      } catch (t6) {
        o3.error(t6);
      }
    }
    function g3(t5, e4) {
      if (!isNaN(t5.lastSegmentStart) && !isNaN(t5.lastSegmentRequestTimeMs) && !isNaN(t5.placeholderBuffer)) {
        if (t5.placeholderBuffer *= 0.99, !isNaN(t5.lastSegmentFinishTimeMs)) {
          const a3 = n3.getCurrentBufferLevel(e4) + 1e-3 * (t5.lastSegmentFinishTimeMs - t5.lastSegmentRequestTimeMs), r4 = b3(t5, t5.currentRepresentation), i4 = Math.max(0, r4 - a3);
          t5.placeholderBuffer = Math.min(i4, t5.placeholderBuffer);
        }
        t5.lastSegmentWasReplacement && !isNaN(t5.lastSegmentDurationS) && (t5.placeholderBuffer += t5.lastSegmentDurationS), t5.lastSegmentStart = NaN, t5.lastSegmentRequestTimeMs = NaN;
      }
    }
    function m3(t5) {
      if (t5 && s2[t5.streamId] && s2[t5.streamId][t5.mediaType]) {
        const e4 = s2[t5.streamId][t5.mediaType];
        e4 && e4.state !== xi && (e4.currentRepresentation = t5.newRepresentation);
      }
    }
    function h3(t5, e4, n4) {
      const a3 = n4.reduce((t6, e5, a4) => e5 > n4[t6] ? a4 : t6, 0);
      if (0 === a3)
        return null;
      const r4 = Math.max(t5, Oi + 2 * e4.length), i4 = (n4[a3] - 1) / (r4 / Oi - 1);
      return { gp: i4, Vp: Oi / i4 };
    }
    function p3(t5, e4) {
      const r4 = a2.getBufferTimeDefault();
      if (t5.bufferTimeDefault !== r4) {
        const a3 = h3(r4, t5.representations, t5.utilities);
        if (a3.Vp !== t5.Vp || a3.gp !== t5.gp) {
          const i4 = n3.getCurrentBufferLevel(e4);
          let l4 = i4 + t5.placeholderBuffer;
          l4 -= Oi, l4 *= a3.Vp / t5.Vp, l4 += Oi, t5.bufferTimeDefault = r4, t5.Vp = a3.Vp, t5.gp = a3.gp, t5.placeholderBuffer = Math.max(0, l4 - i4);
        }
      }
    }
    function b3(t5, e4) {
      return t5.Vp * (t5.utilities[e4.absoluteIndex] + t5.gp);
    }
    function y3(t5) {
      if (t5 && t5.chunk && t5.chunk.representation.mediaInfo && s2[t5.streamId]) {
        const e4 = s2[t5.streamId][t5.chunk.representation.mediaInfo.type];
        if (e4 && e4.state !== xi) {
          const n4 = t5.chunk.start;
          isNaN(e4.mostAdvancedSegmentStart) || n4 > e4.mostAdvancedSegmentStart ? (e4.mostAdvancedSegmentStart = n4, e4.lastSegmentWasReplacement = false) : e4.lastSegmentWasReplacement = true, e4.lastSegmentStart = n4, e4.lastSegmentDurationS = t5.chunk.duration, e4.currentRepresentation = t5.chunk.representation, g3(e4, t5.chunk.representation.mediaInfo.type);
        }
      }
    }
    function E3() {
      v3();
    }
    function _3(t5, e4) {
      const n4 = e4.absoluteIndex, a3 = e4.bandwidth, r4 = t5.utilities[n4];
      let i4 = 0;
      for (let e5 = n4 - 1; e5 >= 0; --e5)
        if (t5.utilities[e5] < t5.utilities[n4]) {
          const n5 = t5.representations[e5].bandwidth, l4 = t5.utilities[e5], o4 = t5.Vp * (t5.gp + (a3 * l4 - n5 * r4) / (a3 - n5));
          i4 = Math.max(i4, o4);
        }
      return i4;
    }
    function T3(t5) {
      if (t5 && s2[t5.streamId]) {
        const e4 = s2[t5.streamId][t5.mediaType];
        if (e4 && e4.state !== xi) {
          const a3 = n3.getCurrentBufferLevel(t5.mediaType);
          let r4;
          r4 = e4.currentRepresentation.absoluteIndex > 0 ? _3(e4, e4.currentRepresentation) : Oi;
          const i4 = Math.max(0, r4 - a3);
          e4.placeholderBuffer = Math.min(e4.placeholderBuffer, i4);
        }
      }
    }
    function v3() {
      s2 = {};
    }
    return l3 = { getSwitchRequest: function(t5) {
      try {
        const r4 = Ti(e3).create();
        t5.getScheduleController().setTimeToLoadDelay(0), r4.rule = this.getClassName(), r4.reason = r4.reason || {};
        const l4 = function(t6) {
          const e4 = t6.getMediaType(), n4 = t6.getStreamInfo().id;
          s2[n4] || (s2 = {}, s2[n4] = {});
          let r5 = s2[n4][e4];
          return r5 ? r5.state !== xi && p3(r5, e4) : (r5 = function(t7) {
            const e5 = {}, n5 = t7.getMediaInfo(), r6 = i3.getPossibleVoRepresentationsFilteredBySettings(n5, true);
            let l5 = r6.map((t8) => t8.bandwidth).map((t8) => Math.log(t8));
            l5 = l5.map((t8) => t8 - l5[0] + 1);
            const o4 = a2.getBufferTimeDefault(), s3 = h3(o4, r6, l5);
            return s3 ? (e5.state = Mi, e5.representations = r6, e5.utilities = l5, e5.bufferTimeDefault = o4, e5.Vp = s3.Vp, e5.gp = s3.gp, e5.currentRepresentation = null, c3(e5)) : e5.state = xi, e5;
          }(t6), s2[n4][e4] = r5), r5;
        }(t5);
        switch (r4.reason.state = l4.state, l4.state) {
          case xi:
            break;
          case Mi:
            !function(t6, e4, a3) {
              const r5 = e4.getMediaType(), l5 = e4.getThroughputController().getSafeAverageThroughput(r5);
              if (isNaN(l5))
                return;
              const o4 = e4.getMediaInfo(), s3 = i3.getOptimalRepresentationForBitrate(o4, l5, true), u4 = n3.getCurrentBufferLevel(r5);
              t6.representation = s3, t6.reason.throughput = l5, a3.placeholderBuffer = Math.max(0, _3(a3, s3) - u4), a3.currentRepresentation = s3, !isNaN(a3.lastSegmentDurationS) && u4 >= a3.lastSegmentDurationS && (a3.state = zi);
            }(r4, t5, l4);
            break;
          case zi:
            !function(t6, e4, a3) {
              const r5 = e4.getMediaType(), l5 = e4.getThroughputController(), o4 = e4.getMediaInfo(), s3 = l5.getSafeAverageThroughput(r5), u4 = e4.getScheduleController();
              !function(t7, e5) {
                const n4 = Date.now();
                if (isNaN(t7.lastSegmentFinishTimeMs)) {
                  if (!isNaN(t7.lastCallTimeMs)) {
                    const e6 = 1e-3 * (n4 - t7.lastCallTimeMs);
                    t7.placeholderBuffer += Math.max(0, e6);
                  }
                } else {
                  const e6 = 1e-3 * (n4 - t7.lastSegmentFinishTimeMs);
                  t7.placeholderBuffer += Math.max(0, e6);
                }
                t7.lastCallTimeMs = n4, t7.lastSegmentStart = NaN, t7.lastSegmentRequestTimeMs = NaN, t7.lastSegmentFinishTimeMs = NaN, p3(t7, e5);
              }(a3, r5);
              const d4 = n3.getCurrentBufferLevel(r5);
              let c4 = function(t7, e5) {
                const n4 = t7.representations.length;
                let a4 = NaN, r6 = NaN;
                for (let i4 = 0; i4 < n4; ++i4) {
                  let n5 = (t7.Vp * (t7.utilities[i4] - 1 + t7.gp) - e5) / t7.representations[i4].bandwidth;
                  (isNaN(r6) || n5 >= r6) && (r6 = n5, a4 = i4);
                }
                return t7.representations[a4];
              }(a3, d4 + a3.placeholderBuffer);
              const f4 = i3.getOptimalRepresentationForBitrate(o4, s3, true);
              c4.absoluteIndex > a3.currentRepresentation.absoluteIndex && c4.absoluteIndex > f4.absoluteIndex && (c4 = f4.absoluteIndex > a3.currentRepresentation.absoluteIndex ? f4 : a3.currentRepresentation);
              let g4 = Math.max(0, d4 + a3.placeholderBuffer - b3(a3, c4));
              g4 <= a3.placeholderBuffer ? (a3.placeholderBuffer -= g4, g4 = 0) : (g4 -= a3.placeholderBuffer, a3.placeholderBuffer = 0, i3.isPlayingAtTopQuality(c4) ? g4 = 0 : u4.setTimeToLoadDelay(1e3 * g4)), t6.representation = c4, t6.reason.throughput = s3, t6.reason.bufferLevel = d4, t6.reason.placeholderBuffer = a3.placeholderBuffer, t6.reason.delay = g4, a3.currentRepresentation = c4;
            }(r4, t5, l4);
            break;
          default:
            !function(t6, e4, n4) {
              o3.debug("BOLA ABR rule invoked in bad state.");
              const a3 = e4.getMediaInfo(), r5 = e4.getMediaType(), l5 = e4.getThroughputController().getSafeAverageThroughput(r5);
              t6.representation = i3.getOptimalRepresentationForBitrate(a3, l5, true), t6.reason.state = n4.state, t6.reason.throughput = l5, n4.state = Mi, c3(n4);
            }(r4, t5, l4);
        }
        return r4;
      } catch (t6) {
        return o3.error(t6), Ti(e3).create();
      }
    }, handleNewMediaInfo: function(t5) {
      t5 && t5.streamInfo && t5.type && s2[t5.streamInfo.id] && s2[t5.streamInfo.id][t5.type] && delete s2[t5.streamInfo.id][t5.type];
    }, reset: function() {
      v3(), r3.off(D.default.BUFFER_EMPTY, u3, l3), r3.off(D.default.PLAYBACK_SEEKING, d3, l3), r3.off(D.default.METRIC_ADDED, f3, l3), r3.off(D.default.QUALITY_CHANGE_REQUESTED, m3, l3), r3.off(D.default.FRAGMENT_LOADING_ABANDONED, T3, l3), r3.off(R.default.MEDIA_FRAGMENT_LOADED, y3, l3), r3.off(R.default.SETTING_UPDATED_MAX_BITRATE, E3, l3), r3.off(R.default.SETTING_UPDATED_MIN_BITRATE, E3, l3);
    } }, o3 = (0, C.default)(e3).getInstance().getLogger(l3), v3(), r3.on(D.default.BUFFER_EMPTY, u3, l3), r3.on(D.default.PLAYBACK_SEEKING, d3, l3), r3.on(D.default.METRIC_ADDED, f3, l3), r3.on(D.default.QUALITY_CHANGE_REQUESTED, m3, l3), r3.on(D.default.FRAGMENT_LOADING_ABANDONED, T3, l3), r3.on(R.default.MEDIA_FRAGMENT_LOADED, y3, l3), r3.on(R.default.SETTING_UPDATED_MAX_BITRATE, E3, l3), r3.on(R.default.SETTING_UPDATED_MIN_BITRATE, E3, l3), l3;
  }
  Pi.__dashjs_factory_name = "BolaRule";
  var Li = N.default.getClassFactory(Pi);
  const Fi = "L2A_STATE_ONE_BITRATE", Ui = "L2A_STATE_STARTUP", ji = "L2A_STATE_STEADY", qi = Math.pow(4, 0.99);
  function Bi(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.dashMetrics, a2 = (0, A.default)(e3).getInstance();
    let r3, i3, l3, o3;
    function s2(t5) {
      t5.placeholderBuffer = 0, t5.mostAdvancedSegmentStart = NaN, t5.lastSegmentWasReplacement = false, t5.lastSegmentStart = NaN, t5.lastSegmentDurationS = NaN, t5.lastSegmentRequestTimeMs = NaN, t5.lastSegmentFinishTimeMs = NaN, t5.lastSegmentUrl = "";
    }
    function u3() {
      for (const t5 in i3)
        if (i3.hasOwnProperty(t5)) {
          const e4 = i3[t5];
          e4.state !== Fi && (e4.state = Ui, s2(e4));
        }
    }
    function d3(t5) {
      if (t5 && t5.chunk && t5.chunk.representation && t5.chunk.representation.mediaInfo) {
        const e4 = i3[t5.chunk.representation.mediaInfo.type], n4 = l3[t5.chunk.representation.mediaInfo.type];
        if (e4 && e4.state !== Fi) {
          const a3 = t5.chunk.start;
          isNaN(e4.mostAdvancedSegmentStart) || a3 > e4.mostAdvancedSegmentStart ? (e4.mostAdvancedSegmentStart = a3, e4.lastSegmentWasReplacement = false) : e4.lastSegmentWasReplacement = true, e4.lastSegmentStart = a3, e4.lastSegmentDurationS = t5.chunk.duration, e4.currentRepresentation = t5.chunk.representation, f3(e4, n4);
        }
      }
    }
    function c3(t5) {
      if (t5 && t5.metric === k.HTTP_REQUEST && t5.value && t5.value.type === z.HTTPRequest.MEDIA_SEGMENT_TYPE && t5.value.trace && t5.value.trace.length) {
        const e4 = i3[t5.mediaType], n4 = l3[t5.mediaType];
        e4 && e4.state !== Fi && (e4.lastSegmentRequestTimeMs = t5.value.trequest.getTime(), e4.lastSegmentFinishTimeMs = t5.value._tfinish.getTime(), f3(e4, n4));
      }
    }
    function f3(t5, e4) {
      isNaN(t5.lastSegmentStart) || isNaN(t5.lastSegmentRequestTimeMs) || (e4.segment_request_start_s = 1e-3 * t5.lastSegmentRequestTimeMs, e4.segment_download_finish_s = 1e-3 * t5.lastSegmentFinishTimeMs, t5.lastSegmentStart = NaN, t5.lastSegmentRequestTimeMs = NaN);
    }
    function g3(t5, e4) {
      if (t5.length !== e4.length)
        return -1;
      let n4 = 0;
      for (let a3 = 0; a3 < t5.length; a3++)
        n4 += t5[a3] * e4[a3];
      return n4;
    }
    function m3() {
      i3 = {}, l3 = {};
    }
    return r3 = { getSwitchRequest: function(t5) {
      try {
        const a3 = Ti(e3).create();
        a3.rule = this.getClassName();
        const r4 = t5.getMediaType(), o4 = t5.getScheduleController();
        if (a3.reason = a3.reason || {}, r4 === S2.default.AUDIO)
          return a3;
        o4.setTimeToLoadDelay(0);
        const u4 = function(t6) {
          const e4 = t6.getMediaType();
          let n4 = i3[e4];
          return n4 || (n4 = function(t7) {
            const e5 = {}, n5 = t7.getMediaInfo();
            return e5.state = Ui, e5.currentRepresentation = null, function(t8) {
              t8 && t8.type && (l3[t8.type] = {}, l3[t8.type].w = [], l3[t8.type].prev_w = [], l3[t8.type].Q = 0, l3[t8.type].segment_request_start_s = 0, l3[t8.type].segment_download_finish_s = 0, l3[t8.type].B_target = 1.5);
            }(n5), s2(e5), e5;
          }(t6), i3[e4] = n4), n4;
        }(t5);
        if (!l3[r4])
          return a3;
        switch (a3.reason.state = u4.state, u4.state) {
          case Fi:
            break;
          case Ui:
            !function(t6, e4, a4) {
              const r5 = t6.getMediaInfo(), i4 = t6.getMediaType(), o5 = t6.getThroughputController().getSafeAverageThroughput(i4);
              if (isNaN(o5))
                return e4;
              const s3 = t6.getAbrController(), u5 = s3.getOptimalRepresentationForBitrate(r5, o5, true), d4 = n3.getCurrentBufferLevel(i4, true), c4 = l3[i4], f4 = s3.getPossibleVoRepresentationsFilteredBySettings(r5, true);
              if (e4.representation = u5, e4.reason.throughput = o5, a4.currentRepresentation = u5, !isNaN(a4.lastSegmentDurationS) && d4 >= c4.B_target) {
                a4.state = ji, c4.Q = qi;
                for (let t7 = 0; t7 < f4.length; ++t7)
                  f4[t7].id === a4.currentRepresentation.id ? c4.prev_w[t7] = 1 : c4.prev_w[t7] = 0;
              }
            }(t5, a3, u4);
            break;
          case ji:
            !function(t6, e4, a4) {
              let r5 = [];
              const i4 = t6.getThroughputController(), o5 = t6.getMediaType();
              let s3 = i4.getAverageThroughput(o5, S2.default.THROUGHPUT_CALCULATION_MODES.ARITHMETIC_MEAN, 1), u5 = n3.getCurrentHttpRequest(o5), d4 = null;
              const c4 = l3[o5];
              if (s3 < 1 && (s3 = 1), u5.url === a4.lastSegmentUrl || u5.type === z.HTTPRequest.INIT_SEGMENT_TYPE)
                d4 = a4.currentRepresentation;
              else {
                let e5 = a4.lastSegmentDurationS, n4 = 1;
                const i5 = t6.getAbrController(), l4 = t6.getMediaInfo(), o6 = i5.getPossibleVoRepresentationsFilteredBySettings(l4, true);
                let f4 = t6.getVideoModel().getPlaybackRate();
                const m4 = Math.max(Math.pow(4, 1), qi * Math.sqrt(4));
                for (let t7 = 0; t7 < o6.length; ++t7) {
                  const a5 = o6[t7];
                  f4 * a5.bitrateInKbit > s3 && (n4 = -1), c4.w[t7] = c4.prev_w[t7] + n4 * (e5 / (2 * m4)) * ((c4.Q + qi) * (f4 * a5.bitrateInKbit / s3));
                }
                c4.w = function(t7) {
                  const e6 = t7.length;
                  let n5 = false, a5 = [];
                  for (let n6 = 0; n6 < e6; ++n6)
                    a5[n6] = t7[n6];
                  let r6 = t7.sort(function(t8, e7) {
                    return e7 - t8;
                  }), i6 = 0, l5 = 0, o7 = [];
                  for (let t8 = 0; t8 < e6 - 1; ++t8)
                    if (i6 += r6[t8], l5 = (i6 - 1) / (t8 + 1), l5 >= r6[t8 + 1]) {
                      n5 = true;
                      break;
                    }
                  n5 || (l5 = (i6 + r6[e6 - 1] - 1) / e6);
                  for (let t8 = 0; t8 < e6; ++t8)
                    o7[t8] = Math.max(a5[t8] - l5, 0);
                  return o7;
                }(c4.w);
                for (let t7 = 0; t7 < o6.length; ++t7)
                  r5[t7] = c4.w[t7] - c4.prev_w[t7], c4.prev_w[t7] = c4.w[t7];
                const h3 = o6.map((t7) => t7.bandwidth);
                c4.Q = Math.max(0, c4.Q - e5 + e5 * f4 * ((g3(h3, c4.prev_w) + g3(h3, r5)) / s3));
                let p3 = [];
                for (let t7 = 0; t7 < h3.length; ++t7)
                  p3[t7] = Math.abs(h3[t7] - g3(c4.w, h3));
                const b3 = p3.indexOf(Math.min(...p3));
                d4 = i5.getRepresentationByAbsoluteIndex(b3, l4, true), d4.absoluteIndex > a4.currentRepresentation.absoluteIndex && h3[a4.currentRepresentation.absoluteIndex + 1] <= s3 && (d4 = i5.getRepresentationByAbsoluteIndex(a4.currentRepresentation.absoluteIndex + 1, l4, true)), d4.bitrateInKbit >= s3 && (c4.Q = 2 * Math.max(qi, c4.Q)), a4.lastSegmentUrl = u5.url;
              }
              e4.representation = d4, a4.currentRepresentation = e4.representation;
            }(t5, a3, u4);
            break;
          default:
            !function(t6, e4, n4) {
              const a4 = t6.getAbrController(), r5 = t6.getMediaInfo(), i4 = t6.getMediaType(), l4 = t6.getThroughputController().getSafeAverageThroughput(i4);
              e4.representation = a4.getOptimalRepresentationForBitrate(r5, l4, true), e4.reason.throughput = l4, n4.state = Ui, s2(n4);
            }(t5, a3, u4);
        }
        return a3;
      } catch (t6) {
        return o3.error(t6), Ti(e3).create();
      }
    }, reset: function() {
      m3(), a2.off(R.default.PLAYBACK_SEEKING, u3, r3), a2.off(R.default.MEDIA_FRAGMENT_LOADED, d3, r3), a2.off(R.default.METRIC_ADDED, c3, r3);
    } }, o3 = (0, C.default)(e3).getInstance().getLogger(r3), m3(), a2.on(R.default.PLAYBACK_SEEKING, u3, r3), a2.on(R.default.MEDIA_FRAGMENT_LOADED, d3, r3), a2.on(R.default.METRIC_ADDED, c3, r3), r3;
  }
  Bi.__dashjs_factory_name = "L2ARule";
  var Gi = N.default.getClassFactory(Bi);
  function Hi() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3, l3, o3, s2, u3;
    function d3() {
      a2 = null, r3 = 1, i3 = 100, l3 = 0, o3 = null, s2 = null, u3 = "dynamic_weight_selection";
    }
    function c3() {
      let t5 = 0;
      if (a2)
        for (let e4 = 0; e4 < a2.length; e4++) {
          let n4 = a2[e4];
          n4.state.throughput > t5 && (t5 = n4.state.throughput);
        }
      return t5;
    }
    function f3(t5, e4, n4) {
      let a3 = t5.map((t6, a4) => n4[a4] * Math.pow(t6 - e4[a4], 2)).reduce((t6, e5) => t6 + e5);
      return (a3 < 0 ? -1 : 1) * Math.sqrt(Math.abs(a3));
    }
    function g3(t5, e4) {
      return f3([t5.state.throughput, t5.state.latency, t5.state.rebuffer, t5.state.switch], [e4.state.throughput, e4.state.latency, e4.state.rebuffer, e4.state.switch], [1, 1, 1, 1]);
    }
    function m3(t5, e4) {
      for (let n4 = 0; n4 < a2.length; n4++) {
        let r4 = a2[n4], i4 = 0.1;
        const l4 = g3(r4, t5);
        h3(r4, e4, Math.exp(-1 * Math.pow(l4, 2) / (2 * Math.pow(i4, 2))));
      }
    }
    function h3(t5, e4, n4) {
      let a3 = t5.state, r4 = [0.01, 0.01, 0.01, 0.01];
      a3.throughput = a3.throughput + (e4[0] - a3.throughput) * r4[0] * n4, a3.latency = a3.latency + (e4[1] - a3.latency) * r4[1] * n4, a3.rebuffer = a3.rebuffer + (e4[2] - a3.rebuffer) * r4[2] * n4, a3.switch = a3.switch + (e4[3] - a3.switch) * r4[3] * n4;
    }
    return e3 = { getNextQuality: function(t5, e4, d4, g4, h4, p3, b3, y3) {
      let E3 = g4, _3 = d4;
      !function(t6, e5) {
        if (!a2) {
          a2 = [];
          const n4 = e5.getPossibleVoRepresentationsFilteredBySettings(t6, true), i4 = n4.map((t7) => t7.bandwidth);
          l3 = Math.min(...i4), r3 = function(t7) {
            const e6 = t7.map((t8) => Math.pow(t8, 2)).reduce((t8, e7) => t8 + e7);
            return Math.sqrt(e6);
          }(i4), n4.forEach((t7) => {
            let e6 = { representation: t7, state: { throughput: t7.bandwidth / r3, latency: 0, rebuffer: 0, switch: 0 } };
            a2.push(e6);
          }), s2 = function(t7) {
            let e6 = [], n5 = function(t8) {
              let e7 = [];
              for (let n6 = 0; n6 < t8; n6++) {
                let t9 = [Math.random() * c3(), Math.random(), Math.random(), Math.random()];
                e7.push(t9);
              }
              return e7;
            }(Math.pow(t7.length, 2));
            e6.push(n5[0]);
            let a3 = [1, 1, 1, 1];
            for (let r5 = 1; r5 < t7.length; r5++) {
              let t8 = null, r6 = null;
              for (let i6 = 0; i6 < n5.length; i6++) {
                let l5 = n5[i6], o4 = null;
                for (let t9 = 0; t9 < e6.length; t9++) {
                  let n6 = f3(l5, e6[t9], a3);
                  (null === o4 || n6 < o4) && (o4 = n6);
                }
                (null === r6 || o4 > r6) && (t8 = l5, r6 = o4);
              }
              e6.push(t8);
            }
            let r4 = null, i5 = null;
            for (let t8 = 0; t8 < e6.length; t8++) {
              let n6 = 0;
              for (let r5 = 0; r5 < e6.length; r5++)
                t8 !== r5 && (n6 += f3(e6[t8], e6[r5], a3));
              (null === r4 || n6 > r4) && (r4 = n6, i5 = t8);
            }
            let l4 = [];
            for (l4.push(e6[i5]), e6.splice(i5, 1); e6.length > 0; ) {
              let t8 = null, n6 = null;
              for (let r5 = 0; r5 < e6.length; r5++) {
                let i6 = f3(l4[0], e6[r5], a3);
                (null === t8 || i6 < t8) && (t8 = i6, n6 = r5);
              }
              l4.push(e6[n6]), e6.splice(n6, 1);
            }
            return l4;
          }(a2);
        }
      }(e4, t5);
      let T3 = d4 / r3;
      T3 > 1 && (T3 = c3()), g4 /= i3;
      let v3 = a2.find((t6) => t6.representation.id === b3.id), w3 = v3.representation.bandwidth * y3.getSegmentDuration() / _3, S3 = Math.max(0, w3 - h4);
      if (h4 - w3 < y3.getMinBuffer())
        return n3.debug(`Buffer is low for bitrate= ${v3.representation.bandwidth} downloadTime=${w3} currentBuffer=${h4} rebuffer=${S3}`), function(t6, e5) {
          let n4 = 0, r4 = t6;
          if (a2)
            for (let i4 = 0; i4 < a2.length; i4++) {
              let l4 = a2[i4];
              l4.representation.bandwidth < t6.representation.bandwidth && l4.representation.bandwidth > n4 && e5 > l4.representation.bandwidth && (n4 = l4.representation.bandwidth, r4 = l4);
            }
          return r4;
        }(v3, _3).representation;
      switch (u3) {
        case "manual_weight_selection":
          o3 = [0.4, 0.4, 0.4, 0.4];
          break;
        case "random_weight_selection":
          o3 = function(t6) {
            let e5 = [], n4 = Math.sqrt(2 / t6);
            for (let t7 = 0; t7 < 4; t7++)
              e5.push(Math.random() * n4);
            return o3 = e5, o3;
          }(a2.length);
          break;
        default:
          !function(t6, e5, n4, r4, i4, l4) {
            o3 || (o3 = s2[s2.length - 1]);
            let u4 = t6.findWeightVector(a2, e5, n4, r4, i4, l4);
            null !== u4 && -1 !== u4 && (o3 = u4);
          }(y3, E3, h4, S3, _3, p3);
      }
      let I2 = null, k2 = null, A2 = null;
      for (let t6 = 0; t6 < a2.length; t6++) {
        let e5 = a2[t6], r4 = e5.state, i4 = [r4.throughput, r4.latency, r4.rebuffer, r4.switch], s3 = o3.slice(), u4 = y3.getNextBufferWithBitrate(e5.representation.bandwidth, h4, _3), c4 = u4 < y3.getMinBuffer();
        c4 && n3.debug(`Buffer is low for bitrate=${e5.representation.bandwidth} downloadTime=${w3} currentBuffer=${h4} nextBuffer=${u4}`), (e5.representation.bandwidth > d4 - 1e4 || c4) && e5.representation.bandwidth !== l3 && (s3[0] = 100);
        let g5 = f3(i4, [T3, 0, 0, 0], s3);
        (null === I2 || g5 < I2) && (I2 = g5, k2 = e5.representation, A2 = e5);
      }
      let R2 = Math.abs(v3.representation.bandwidth - A2.representation.bandwidth) / r3;
      return m3(v3, [T3, g4, S3, R2]), m3(A2, [T3, 0, 0, R2]), k2;
    }, reset: function() {
      d3();
    } }, n3 = (0, C.default)(t4).getInstance().getLogger(e3), d3(), e3;
  }
  Hi.__dashjs_factory_name = "LearningAbrController";
  var Yi = N.default.getClassFactory(Hi), Vi = class {
    constructor() {
      this.type = null, this.lastBitrate = null, this.weights = {}, this.weights.bitrateReward = null, this.weights.bitrateSwitchPenalty = null, this.weights.rebufferPenalty = null, this.weights.latencyPenalty = null, this.weights.playbackSpeedPenalty = null, this.bitrateWSum = 0, this.bitrateSwitchWSum = 0, this.rebufferWSum = 0, this.latencyWSum = 0, this.playbackSpeedWSum = 0, this.totalQoe = 0;
    }
  };
  function Ki() {
    let t4, e3, n3, a2, r3;
    function i3() {
      e3 = null, n3 = null, a2 = null, r3 = null;
    }
    function l3(t5, e4, n4, a3) {
      let r4 = new Vi();
      return r4.type = t5, r4.weights.bitrateReward = e4 || 1, r4.weights.bitrateSwitchPenalty = 1, r4.weights.rebufferPenalty = n4 || 1e3, r4.weights.latencyPenalty = [], r4.weights.latencyPenalty.push({ threshold: 1.1, penalty: 0.05 * a3 }), r4.weights.latencyPenalty.push({ threshold: 1e8, penalty: 0.1 * n4 }), r4.weights.playbackSpeedPenalty = a3 || 200, r4;
    }
    function o3(t5, e4, n4, a3, r4) {
      r4.bitrateWSum += r4.weights.bitrateReward * t5, r4.lastBitrate && (r4.bitrateSwitchWSum += r4.weights.bitrateSwitchPenalty * Math.abs(t5 - r4.lastBitrate)), r4.lastBitrate = t5, r4.rebufferWSum += r4.weights.rebufferPenalty * e4;
      for (let t6 = 0; t6 < r4.weights.latencyPenalty.length; t6++) {
        let e5 = r4.weights.latencyPenalty[t6];
        if (n4 <= e5.threshold) {
          r4.latencyWSum += e5.penalty * n4;
          break;
        }
      }
      r4.playbackSpeedWSum += r4.weights.playbackSpeedPenalty * Math.abs(1 - a3), r4.totalQoe = r4.bitrateWSum - r4.bitrateSwitchWSum - r4.rebufferWSum - r4.latencyWSum - r4.playbackSpeedWSum;
    }
    return t4 = { setupPerSegmentQoe: function(t5, i4, o4) {
      e3 = l3("segment", t5, i4, o4), n3 = t5, a2 = i4, r3 = o4;
    }, logSegmentMetrics: function(t5, n4, a3, r4) {
      e3 && o3(t5, n4, a3, r4, e3);
    }, getPerSegmentQoe: function() {
      return e3;
    }, calculateSingleUseQoe: function(t5, e4, i4, s2) {
      let u3 = null;
      return n3 && a2 && r3 && (u3 = l3("segment", n3, a2, r3)), u3 ? (o3(t5, e4, i4, s2, u3), u3.totalQoe) : 0;
    }, reset: function() {
      i3();
    } }, i3(), t4;
  }
  Ki.__dashjs_factory_name = "LoLpQoeEvaluator";
  var Wi = N.default.getClassFactory(Ki);
  function $i(t4) {
    let e3, n3, r3, i3, l3 = t4.targetLatency, o3 = t4.bufferMin, s2 = t4.segmentDuration, u3 = t4.qoeEvaluator;
    function d3() {
      return s2;
    }
    function c3(t5, e4) {
      const n4 = d3();
      let a2;
      return a2 = e4 > n4 ? t5 - n4 : t5 + n4 - e4, a2;
    }
    return e3 = { getMinBuffer: function() {
      return o3;
    }, getSegmentDuration: d3, getNextBufferWithBitrate: function(t5, e4, n4) {
      return c3(e4, t5 * s2 / n4);
    }, getNextBuffer: c3, findWeightVector: function(t5, e4, n4, a2, d4, f3) {
      let g3 = null, m3 = null, h3 = null, p3 = Math.abs(e4 - i3);
      return t5.forEach((t6) => {
        r3.forEach((a3) => {
          a3[0];
          let r4, i4 = a3[1], b3 = a3[2], y3 = (a3[3], t6.representation.bandwidth * s2 / d4), E3 = c3(n4, y3);
          r4 = 0 === b3 ? 10 : 1 / b3;
          let _3 = r4 * Math.max(1e-5, y3 - E3);
          r4 = 0 === i4 ? 10 : 1 / i4;
          let T3 = r4 * t6.state.latency, v3 = u3.calculateSingleUseQoe(t6.representation.bandwidth, _3, T3, f3);
          (null === g3 || v3 > g3) && function(t7, e5, n5) {
            return !(t7 > l3 + n5) && e5 >= o3;
          }(e4, E3, p3) && (g3 = v3, m3 = a3, h3 = t6.representation.bandwidth);
        });
      }), null === m3 && null === h3 && (m3 = -1), i3 = e4, m3;
    } }, n3 = [0.2, 0.4, 0.6, 0.8, 1], r3 = function(t5) {
      let e4 = t5.map(function(t6) {
        return [t6];
      }), n4 = function(e5, a2, r4) {
        if (r4 === a2)
          return e5;
        let i4 = e5.length;
        for (let n5 = 0; n5 < i4; n5++) {
          let n6 = e5.shift();
          for (let a3 = 0; a3 < t5.length; a3++)
            e5.push(n6.concat(t5[a3]));
        }
        return n4(e5, a2, r4 + 1);
      };
      return n4(e4, 4, 1);
    }(n3), i3 = 0, e3;
  }
  $i.__dashjs_factory_name = "LoLpWeightSelector";
  var Xi = N.default.getClassFactory($i);
  function Qi(t4) {
    let e3, n3, a2, r3, i3 = (t4 = t4 || {}).dashMetrics, l3 = this.context;
    return n3 = { getSwitchRequest: function(t5) {
      try {
        let n4 = Ti(l3).create();
        n4.rule = this.getClassName();
        let o3 = t5.getMediaInfo().type, s2 = t5.getAbrController();
        const u3 = t5.getStreamInfo();
        let d3 = t5.getRepresentation();
        const c3 = t5.getMediaInfo(), f3 = i3.getCurrentBufferState(o3), g3 = t5.getScheduleController(), m3 = i3.getCurrentBufferLevel(o3, true), h3 = g3.getPlaybackController();
        let p3 = h3.getCurrentLiveLatency();
        if (o3 === S2.default.AUDIO)
          return n4;
        p3 || (p3 = 0);
        const b3 = h3.getPlaybackRate(), y3 = t5.getThroughputController().getSafeAverageThroughput(o3);
        if (e3.debug(`Throughput ${Math.round(y3)} kbps`), isNaN(y3) || !f3)
          return n4;
        if (s2.getAbandonmentStateFor(u3.id, o3) === k.ABANDON_LOAD)
          return n4;
        let E3 = s2.getPossibleVoRepresentationsFilteredBySettings(c3, true).map((t6) => t6.bandwidth), _3 = t5.getRepresentation().fragmentDuration, T3 = Math.min(...E3) / 1e3, v3 = Math.max(...E3) / 1e3, w3 = d3.bandwidth / 1e3, I2 = i3.getCurrentHttpRequest(o3, true), A2 = (I2.tresponse.getTime() - I2.trequest.getTime()) / 1e3, R2 = A2 > _3 ? A2 - _3 : 0;
        r3.setupPerSegmentQoe(_3, v3, T3), r3.logSegmentMetrics(w3, R2, p3, b3);
        let N2 = Xi(l3).create({ targetLatency: 1.5, bufferMin: 0.3, segmentDuration: _3, qoeEvaluator: r3 });
        return n4.representation = a2.getNextQuality(s2, c3, 1e3 * y3, p3, m3, b3, d3, N2), n4.reason = { throughput: y3, latency: p3 }, n4.priority = Ti.PRIORITY.STRONG, g3.setTimeToLoadDelay(0), n4;
      } catch (t6) {
        throw t6;
      }
    }, reset: function() {
      a2.reset(), r3.reset();
    } }, e3 = (0, C.default)(l3).getInstance().getLogger(n3), a2 = Yi(l3).create(), r3 = Wi(l3).create(), n3;
  }
  Qi.__dashjs_factory_name = "LoLPRule";
  var Zi = N.default.getClassFactory(Qi);
  function Ji(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.mediaPlayerModel, a2 = t4.customParametersModel, r3 = t4.dashMetrics, i3 = t4.settings, l3 = (0, A.default)(e3).getInstance();
    let o3, s2, u3, d3;
    function c3() {
      Object.values(S2.default.QUALITY_SWITCH_RULES).forEach((t5) => {
        s2 = f3(t5, s2);
      }), Object.values(S2.default.ABANDON_FRAGMENT_RULES).forEach((t5) => {
        u3 = f3(t5, u3);
      }), a2.getAbrCustomRules().forEach(function(t5) {
        t5.type === S2.default.RULES_TYPES.QUALITY_SWITCH_RULES && s2.push(t5.rule(e3).create()), t5.type === S2.default.RULES_TYPES.ABANDON_FRAGMENT_RULES && u3.push(t5.rule(e3).create());
      }), 0 === s2.length && (s2.push(Li(e3).create({ dashMetrics: r3, mediaPlayerModel: n3, settings: i3 })), s2.push(wi(e3).create({ dashMetrics: r3 })));
    }
    function f3(t5, a3) {
      const l4 = t5.charAt(0).toLowerCase() + t5.slice(1);
      return i3.get().streaming.abr.rules[l4].active && !function(t6, e4) {
        return t6.filter((t7) => t7.getClassName() === e4).length > 0;
      }(a3, t5) ? (a3.push(function(t6) {
        switch (t6) {
          case S2.default.QUALITY_SWITCH_RULES.BOLA_RULE:
            return Li(e3).create({ dashMetrics: r3, mediaPlayerModel: n3, settings: i3 });
          case S2.default.QUALITY_SWITCH_RULES.THROUGHPUT_RULE:
            return wi(e3).create({ dashMetrics: r3 });
          case S2.default.QUALITY_SWITCH_RULES.INSUFFICIENT_BUFFER_RULE:
            return Ii(e3).create({ dashMetrics: r3, settings: i3 });
          case S2.default.QUALITY_SWITCH_RULES.SWITCH_HISTORY_RULE:
            return Di(e3).create();
          case S2.default.QUALITY_SWITCH_RULES.DROPPED_FRAMES_RULE:
            return Ni(e3).create();
          case S2.default.QUALITY_SWITCH_RULES.LEARN_TO_ADAPT_RULE:
            return Gi(e3).create({ dashMetrics: r3, settings: i3 });
          case S2.default.QUALITY_SWITCH_RULES.LOL_PLUS_RULE:
            return Zi(e3).create({ dashMetrics: r3 });
          case S2.default.ABANDON_FRAGMENT_RULES.ABANDON_REQUEST_RULE:
            return Ai(e3).create({ dashMetrics: r3, mediaPlayerModel: n3, settings: i3 });
        }
      }(t5)), a3) : i3.get().streaming.abr.rules[l4].active ? a3 : function(t6, e4) {
        return t6.filter((t7) => t7.getClassName() !== e4);
      }(a3, t5);
    }
    function g3(t5) {
      return t5.filter((t6) => t6.representation !== Ti.NO_CHANGE);
    }
    function m3(t5) {
      const e4 = {};
      let n4, a3, r4, i4 = null;
      if (0 !== t5.length) {
        for (e4[Ti.PRIORITY.STRONG] = null, e4[Ti.PRIORITY.WEAK] = null, e4[Ti.PRIORITY.DEFAULT] = null, n4 = 0, a3 = t5.length; n4 < a3; n4 += 1)
          r4 = t5[n4], r4.representation !== Ti.NO_CHANGE && (null === e4[r4.priority] || e4[r4.priority].representation !== Ti.NO_CHANGE && r4.representation.bitrateInKbit < e4[r4.priority].representation.bitrateInKbit) && (e4[r4.priority] = r4);
        return e4[Ti.PRIORITY.WEAK] && e4[Ti.PRIORITY.WEAK].representation !== Ti.NO_CHANGE && (i4 = e4[Ti.PRIORITY.WEAK]), e4[Ti.PRIORITY.DEFAULT] && e4[Ti.PRIORITY.DEFAULT].representation !== Ti.NO_CHANGE && (i4 = e4[Ti.PRIORITY.DEFAULT]), e4[Ti.PRIORITY.STRONG] && e4[Ti.PRIORITY.STRONG].representation !== Ti.NO_CHANGE && (i4 = e4[Ti.PRIORITY.STRONG]), i4;
      }
    }
    function h3() {
      c3();
    }
    return o3 = { clearDataForStream: function(t5) {
      [s2, u3].forEach((e4) => {
        e4 && e4.length && e4.forEach((e5) => e5.clearDataForStream && "function" == typeof e5.clearDataForStream && e5.clearDataForStream(t5));
      });
    }, getAbandonFragmentRules: function() {
      return u3;
    }, getBestPossibleSwitchRequest: function(t5) {
      return t5 && m3(g3(s2.filter((e4) => {
        const n4 = e4.getClassName();
        if (n4 !== S2.default.QUALITY_SWITCH_RULES.BOLA_RULE && n4 !== S2.default.QUALITY_SWITCH_RULES.THROUGHPUT_RULE)
          return true;
        const a3 = t5.getMediaType();
        return d3[a3] && n4 === S2.default.QUALITY_SWITCH_RULES.BOLA_RULE || !d3[a3] && n4 === S2.default.QUALITY_SWITCH_RULES.THROUGHPUT_RULE;
      }).map((e4) => e4.getSwitchRequest(t5)))) || Ti(e3).create();
    }, getBolaState: function(t5) {
      return d3[t5];
    }, getMinSwitchRequest: m3, getQualitySwitchRules: function() {
      return s2;
    }, handleNewMediaInfo: function(t5) {
      s2.forEach((e4) => e4.handleNewMediaInfo && e4.handleNewMediaInfo(t5)), u3.forEach((e4) => e4.handleNewMediaInfo && e4.handleNewMediaInfo(t5));
    }, initialize: function() {
      s2 = [], u3 = [], d3 = {}, c3(), l3.on(R.default.SETTING_UPDATED_ABR_ACTIVE_RULES, h3, o3);
    }, reset: function() {
      [s2, u3].forEach((t5) => {
        t5 && t5.length && t5.forEach((t6) => t6.reset && t6.reset());
      }), s2 = [], u3 = [], d3 = {}, l3.off(R.default.SETTING_UPDATED_ABR_ACTIVE_RULES, h3, o3);
    }, setBolaState: function(t5, e4) {
      d3[t5] = e4;
    }, shouldAbandonFragment: function(t5) {
      if (!t5)
        return Ti(e3).create();
      const n4 = m3(g3(u3.map((e4) => e4.shouldAbandon(t5))));
      return n4 && (n4.reason.forceAbandon = true), n4 || Ti(e3).create();
    } }, o3;
  }
  Ji.__dashjs_factory_name = "ABRRulesCollection";
  const tl = N.default.getClassFactory(Ji);
  N.default.updateSingletonFactory(Ji.__dashjs_factory_name, tl);
  var el = tl;
  function nl(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).abrController, a2 = t4.throughputController, r3 = t4.switchRequestHistory, i3 = t4.droppedFramesHistory, l3 = t4.currentRequest, o3 = t4.streamProcessor ? t4.streamProcessor.getScheduleController() : null, s2 = t4.streamProcessor ? t4.streamProcessor.getRepresentation() : null, u3 = t4.videoModel ? t4.videoModel : null;
    function d3() {
      return s2 ? s2.mediaInfo : null;
    }
    return e3 = { getAbrController: function() {
      return n3;
    }, getCurrentRequest: function() {
      return l3;
    }, getDroppedFramesHistory: function() {
      return i3;
    }, getMediaInfo: d3, getMediaType: function() {
      const t5 = d3();
      return t5 ? t5.type : null;
    }, getRepresentation: function() {
      return s2;
    }, getScheduleController: function() {
      return o3;
    }, getStreamInfo: function() {
      const t5 = d3();
      return t5 ? t5.streamInfo : null;
    }, getSwitchRequestHistory: function() {
      return r3;
    }, getThroughputController: function() {
      return a2;
    }, getVideoModel: function() {
      return u3;
    } }, e3;
  }
  nl.__dashjs_factory_name = "RulesContext";
  var al = N.default.getClassFactory(nl);
  function rl() {
    let t4 = {}, e3 = {};
    const n3 = this.context, a2 = (0, K.default)(n3).getInstance();
    return { clearForStream: function(n4) {
      delete t4[n4], delete e3[n4];
    }, getSwitchRequests: function(e4, n4) {
      return null != e4 && null != n4 && t4[e4] && t4[e4][n4] ? t4[e4][n4] : {};
    }, push: function(n4) {
      const r3 = n4.currentRepresentation, i3 = n4.newRepresentation;
      if (r3.mediaInfo.streamInfo.id !== i3.mediaInfo.streamInfo.id || i3.mediaInfo.id !== r3.mediaInfo.id)
        return;
      const l3 = r3.mediaInfo.streamInfo.id;
      t4[l3] || function(n5) {
        t4[n5] = {}, e3[n5] = {};
      }(l3);
      const o3 = r3.mediaInfo.type;
      t4[l3][o3] || function(n5, a3) {
        t4[n5][a3] = {}, e3[n5][a3] = [];
      }(l3, o3);
      const s2 = n4.currentRepresentation.id;
      t4[l3][o3][s2] || function(e4, n5, a3) {
        t4[e4][n5][a3] = { noDrops: 0, drops: 0, dropSize: 0 };
      }(l3, o3, s2);
      let u3 = n4.newRepresentation.absoluteIndex - n4.currentRepresentation.absoluteIndex, d3 = u3 < 0 ? 1 : 0, c3 = d3 ? -u3 : 0, f3 = d3 ? 0 : 1;
      t4[l3][o3][n4.currentRepresentation.id].drops += d3, t4[l3][o3][n4.currentRepresentation.id].dropSize += c3, t4[l3][o3][n4.currentRepresentation.id].noDrops += f3, e3[l3][o3].push({ id: n4.currentRepresentation.id, noDrop: f3, drop: d3, dropSize: c3 });
      const g3 = function(t5, n5) {
        return e3[t5][n5].length > a2.get().streaming.abr.rules.switchHistoryRule.parameters.sampleSize ? e3[t5][n5].shift() : null;
      }(l3, o3);
      g3 && function(e4, n5, a3) {
        t4[e4][n5][a3.id].drops -= a3.drop, t4[e4][n5][a3.id].dropSize -= a3.dropSize, t4[e4][n5][a3.id].noDrops -= a3.noDrop;
      }(l3, o3, g3);
    }, reset: function() {
      t4 = {}, e3 = {};
    } };
  }
  rl.__dashjs_factory_name = "SwitchRequestHistory";
  var il = N.default.getClassFactory(rl);
  function ll() {
    let t4 = {}, e3 = {}, n3 = {};
    return { clearForStream: function(a2) {
      delete t4[a2], delete e3[a2], delete n3[a2];
    }, getFrameHistory: function(e4) {
      return t4[e4];
    }, push: function(a2, r3, i3) {
      if (!r3)
        return;
      t4[a2] || function(a3) {
        t4[a3] = [], e3[a3] = 0, n3[a3] = 0;
      }(a2);
      let l3 = i3 && i3.droppedVideoFrames ? i3.droppedVideoFrames : 0, o3 = i3 && i3.totalVideoFrames ? i3.totalVideoFrames : 0, s2 = l3 - e3[a2];
      e3[a2] = l3;
      let u3 = o3 - n3[a2];
      n3[a2] = o3;
      const d3 = t4[a2];
      d3[r3] ? (d3[r3].droppedVideoFrames += s2, d3[r3].totalVideoFrames += u3) : d3[r3] = { droppedVideoFrames: s2, totalVideoFrames: u3 };
    }, reset: function() {
      t4 = {}, e3 = {}, n3 = {};
    } };
  }
  ll.__dashjs_factory_name = "DroppedFramesHistory";
  var ol = N.default.getClassFactory(ll);
  function sl() {
    const t4 = this.context, e3 = (0, C.default)(t4).getInstance(), n3 = (0, A.default)(t4).getInstance();
    let a2, r3, i3, l3, o3, s2, u3, d3, f3, g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, w3;
    function I2() {
      u3 = {}, s2 = {}, _3 && _3.reset(), E3 && E3.reset(), y3 = void 0, _3 = void 0, E3 = void 0, clearTimeout(d3), d3 = null;
    }
    function N2(t5) {
      let e4 = x2(t5, !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]);
      return e4 = function(t6) {
        try {
          return function(t7) {
            try {
              if (!w3.get().streaming.cmsd.enabled || !w3.get().streaming.cmsd.abr.applyMb)
                return t7;
              const e5 = t7.filter((t8) => {
                const e6 = t8.mediaInfo.type;
                let n4 = p3.getMaxBitrate(e6);
                if (e6 !== S2.default.VIDEO || n4 < 0)
                  return true;
                const a3 = t8.mediaInfo.streamInfo.id;
                return n4 -= s2[a3][S2.default.AUDIO].getRepresentation().bitrateInKbit || 0, t8.bitrateInKbit <= n4;
              });
              return e5.length > 0 ? e5 : t7;
            } catch (e5) {
              return r3.error(e5), t7;
            }
          }(t6 = function(t7) {
            try {
              if (!w3.get().streaming.abr.limitBitrateByPortal)
                return t7;
              const { elementWidth: e5 } = g3.getVideoElementSize(), n4 = t7.filter((t8) => t8.mediaInfo.type !== S2.default.VIDEO || t8.width <= e5);
              return n4.length > 0 ? n4 : t7;
            } catch (e5) {
              return r3.error(e5), t7;
            }
          }(t6 = function(t7) {
            try {
              const e5 = t7.filter((t8) => {
                const e6 = t8.mediaInfo.type, n4 = t8.bitrateInKbit, a3 = m3.getAbrBitrateParameter("maxBitrate", e6), r4 = m3.getAbrBitrateParameter("minBitrate", e6);
                return !(a3 > -1 && n4 > a3 || r4 > -1 && n4 < r4);
              });
              return e5.length > 0 ? e5 : t7;
            } catch (e5) {
              return r3.error(e5), t7;
            }
          }(t6)));
        } catch (e5) {
          return r3.error(e5), t6;
        }
      }(e4), e4;
    }
    function x2(t5, e4) {
      let n4 = [];
      if (!t5)
        return n4;
      const a3 = function(t6) {
        try {
          const e5 = [];
          if (t6 && e5.push(t6), !w3.get().streaming.abr.enableSupplementalPropertyAdaptationSetSwitching || !t6.adaptationSetSwitchingCompatibleIds || 0 === t6.adaptationSetSwitchingCompatibleIds.length)
            return e5;
          const n5 = s2[t6.streamInfo.id][t6.type].getAllMediaInfos().filter((e6) => t6.adaptationSetSwitchingCompatibleIds.includes(e6.id));
          return e5.concat(n5);
        } catch (e5) {
          return [t6];
        }
      }(t5);
      return a3.forEach((t6) => {
        let e5 = f3.getVoRepresentations(t6);
        e5 && e5.length > 0 && (n4 = n4.concat(e5));
      }), n4 = function(t6) {
        return t6 = function(t7) {
          let e5 = null;
          return t7.filter((t8) => (e5 || (e5 = t8.mediaInfo), !isNaN(t8.qualityRanking) && f3.areMediaInfosEqual(e5, t8.mediaInfo))).length === t7.length;
        }(t6) ? function(t7) {
          return t7.sort((t8, e5) => e5.qualityRanking - t8.qualityRanking), t7;
        }(t6) : function(t7) {
          return t7.sort((t8, e5) => f3.areMediaInfosEqual(t8.mediaInfo, e5.mediaInfo) ? isNaN(t8.pixelsPerSecond) || isNaN(e5.pixelsPerSecond) || t8.pixelsPerSecond === e5.pixelsPerSecond ? t8.bandwidth - e5.bandwidth : t8.pixelsPerSecond - e5.pixelsPerSecond : isNaN(t8.pixelsPerSecond) || isNaN(e5.pixelsPerSecond) || t8.pixelsPerSecond === e5.pixelsPerSecond ? isNaN(t8.bitsPerPixel) || isNaN(e5.bitsPerPixel) ? t8.bandwidth - e5.bandwidth : e5.bitsPerPixel - t8.bitsPerPixel : t8.pixelsPerSecond - e5.pixelsPerSecond), t7;
        }(t6);
      }(n4), n4.forEach((t6, e5) => {
        t6.absoluteIndex = e5;
      }), n4 = n4.filter((n5) => {
        const a4 = !!e4 || f3.areMediaInfosEqual(n5.mediaInfo, t5), r4 = !n5 || !n5.mediaInfo || o3.areKeyIdsUsable(n5.mediaInfo);
        return a4 && r4;
      }), n4;
    }
    function M2(e4) {
      const n4 = e4.request.mediaType, r4 = e4.streamId;
      if (!(n4 && r4 && s2[r4] && w3.get().streaming.abr.autoSwitchBitrate[n4]))
        return;
      const o4 = s2[r4][n4];
      if (!o4)
        return;
      const c3 = al(t4).create({ abrController: a2, streamProcessor: o4, currentRequest: e4.request, throughputController: T3, adapter: f3, videoModel: g3 }), m4 = i3.shouldAbandonFragment(c3);
      m4 && m4.representation !== Ti.NO_CHANGE && function(t5, e5, n5, a3, r5) {
        if (a3.getFragmentModel().getRequests({ state: B.FRAGMENT_MODEL_LOADING, index: t5.request.index })[0]) {
          const t6 = function(t7, e6) {
            return u3[t7] && u3[t7][e6] ? u3[t7][e6] : null;
          }(e5, n5);
          t6 && (t6.state = k.ABANDON_LOAD), E3.reset(), P2(n5, l3.getActiveStreamInfo(), r5.representation, r5.reason), clearTimeout(d3), d3 = setTimeout(() => {
            t6 && (u3[e5][n5].state = k.ALLOW_LOAD), d3 = null;
          }, w3.get().streaming.abandonLoadTimeout);
        }
      }(e4, r4, n4, o4, m4);
    }
    function z2(t5) {
      t5.mediaType === S2.default.VIDEO && (void 0 !== y3 && _3.push(t5.streamId, y3, g3.getPlaybackQuality()), y3 = t5.newRepresentation.id);
    }
    function O2(t5) {
      !F2() || t5.metric !== k.BUFFER_LEVEL || t5.mediaType !== S2.default.AUDIO && t5.mediaType !== S2.default.VIDEO || function(t6, e4) {
        try {
          const n4 = m3.getBufferTimeDefault(), a3 = n4, l4 = 0.5 * n4, o4 = i3.getBolaState(t6), s3 = e4 >= (o4 ? l4 : a3);
          i3.setBolaState(t6, s3), s3 !== o4 && (s3 ? r3.info("[" + t6 + "] switching from throughput to buffer occupancy ABR rule (buffer: " + e4.toFixed(3) + ").") : r3.info("[" + t6 + "] switching from buffer occupancy to throughput ABR rule (buffer: " + e4.toFixed(3) + ")."));
        } catch (t7) {
          r3.error(t7);
        }
      }(t5.mediaType, 1e-3 * t5.value.level);
    }
    function P2(t5, e4, n4) {
      let a3 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
      if (!(e4 && e4.id && t5 && s2 && s2[e4.id] && s2[e4.id][t5] && n4))
        return;
      const r4 = s2[e4.id][t5].getRepresentation();
      r4 && n4.id === r4.id || L2(r4, n4, a3);
    }
    function L2(t5, e4, a3) {
      const i4 = e4.mediaInfo.streamInfo.id, l4 = e4.mediaInfo.type;
      if (l4 && s2[i4] && s2[i4][l4]) {
        const o4 = s2[i4][l4].getStreamInfo(), u4 = v3.getCurrentBufferLevel(l4), d4 = null !== t5 && !f3.areMediaInfosEqual(t5.mediaInfo, e4.mediaInfo), c3 = t5 ? t5.bitrateInKbit : 0;
        r3.info(`[AbrController]: Switching quality in period ${i4} for media type ${l4}. Switch from bitrate ${c3} to bitrate ${e4.bitrateInKbit}. Current buffer level: ${u4}. Reason:` + (a3 ? JSON.stringify(a3) : "/")), n3.trigger(R.default.QUALITY_CHANGE_REQUESTED, { oldRepresentation: t5, newRepresentation: e4, reason: a3, streamInfo: o4, mediaType: l4, isAdaptationSetSwitch: d4 }, { streamId: o4.id, mediaType: l4 });
        const g4 = T3.getAverageThroughput(l4);
        isNaN(g4) || b3.setSavedBitrateSettings(l4, g4);
      }
    }
    function F2() {
      return w3.get().streaming.abr.rules.bolaRule.active && w3.get().streaming.abr.rules.throughputRule.active;
    }
    return a2 = { checkPlaybackQuality: function(e4, n4) {
      try {
        if (!(e4 && s2 && s2[n4] && s2[n4][e4]))
          return false;
        if (_3) {
          const t5 = g3.getPlaybackQuality();
          t5 && _3.push(n4, y3, t5);
        }
        if (!w3.get().streaming.abr.autoSwitchBitrate[e4])
          return false;
        const r4 = s2[n4][e4], l4 = r4.getRepresentation(), o4 = al(t4).create({ abrController: a2, throughputController: T3, switchRequestHistory: E3, droppedFramesHistory: _3, streamProcessor: r4, adapter: f3, videoModel: g3 }), d4 = i3.getBestPossibleSwitchRequest(o4);
        if (!d4 || !d4.representation)
          return false;
        let c3 = d4.representation;
        return E3.push({ currentRepresentation: l4, newRepresentation: c3 }), c3.id !== l4.id && (u3[n4][e4].state === k.ALLOW_LOAD || c3.absoluteIndex < l4.absoluteIndex) && (L2(l4, c3, d4.reason), true);
      } catch (t5) {
        return r3.error(t5), false;
      }
    }, clearDataForStream: function(t5) {
      _3 && _3.clearForStream(t5), s2[t5] && delete s2[t5], E3 && E3.clearForStream(t5), u3[t5] && delete u3[t5], i3.clearDataForStream(t5);
    }, getAbandonmentStateFor: function(t5, e4) {
      return u3[t5] && u3[t5][e4] ? u3[t5][e4].state : null;
    }, getInitialBitrateFor: function(t5) {
      if (t5 === S2.default.TEXT)
        return NaN;
      let e4 = m3.getAbrBitrateParameter("initialBitrate", t5);
      if (e4 > 0)
        return e4;
      let n4 = NaN;
      if (b3 && b3.hasOwnProperty("getSavedBitrateSettings") && (n4 = b3.getSavedBitrateSettings(t5)), !isNaN(n4))
        return n4;
      const a3 = T3.getAverageThroughput(t5);
      return !isNaN(a3) && a3 > 0 ? a3 : t5 === S2.default.VIDEO ? 1e3 : 100;
    }, getOptimalRepresentationForBitrate: function(t5, e4) {
      const n4 = N2(t5, !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]);
      if (!n4 || 0 === n4.length)
        return null;
      const a3 = n4.reduce((t6, e5) => t6.bandwidth < e5.bandwidth ? t6 : e5);
      if (e4 <= 0)
        return a3;
      const r4 = n4.filter((t6) => t6.bitrateInKbit <= e4);
      return r4 && 0 !== r4.length ? r4.reduce((t6, e5) => e5.absoluteIndex > t6.absoluteIndex ? e5 : t6) : a3;
    }, getPossibleVoRepresentations: function(t5) {
      return x2(t5, !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]);
    }, getPossibleVoRepresentationsFilteredBySettings: N2, getRepresentationByAbsoluteIndex: function(t5, e4) {
      let n4 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
      return isNaN(t5) || t5 < 0 ? null : N2(e4, n4).find((e5) => e5.absoluteIndex === t5);
    }, handleNewMediaInfo: function(t5) {
      i3.handleNewMediaInfo(t5);
    }, initialize: function() {
      _3 = ol(t4).create(), E3 = il(t4).create(), i3 = el(t4).create({ dashMetrics: v3, customParametersModel: h3, mediaPlayerModel: m3, settings: w3 }), i3.initialize(), n3.on(D.default.QUALITY_CHANGE_RENDERED, z2, a2), n3.on(D.default.METRIC_ADDED, O2, a2), n3.on(R.default.LOADING_PROGRESS, M2, a2);
    }, isPlayingAtLowestQuality: function(t5) {
      return N2(t5.mediaInfo, true)[0].id === t5.id;
    }, isPlayingAtTopQuality: function(t5) {
      if (!t5)
        return true;
      const e4 = N2(t5.mediaInfo, true);
      return e4[e4.length - 1].id === t5.id;
    }, registerStreamType: function(t5, e4) {
      const n4 = e4.getStreamInfo().id;
      s2[n4] || (s2[n4] = {}), s2[n4][t5] = e4, u3[n4] || (u3[n4] = {}), u3[n4][t5] = {}, u3[n4][t5].state = k.ALLOW_LOAD, void 0 === i3.getBolaState(t5) && i3.setBolaState(t5, w3.get().streaming.abr.rules.bolaRule.active && !F2());
    }, reset: function() {
      I2(), n3.off(D.default.QUALITY_CHANGE_RENDERED, z2, a2), n3.off(D.default.METRIC_ADDED, O2, a2), n3.off(R.default.LOADING_PROGRESS, M2, a2), i3 && i3.reset();
    }, setConfig: function(t5) {
      t5 && (t5.streamController && (l3 = t5.streamController), t5.throughputController && (T3 = t5.throughputController), t5.domStorage && (b3 = t5.domStorage), t5.mediaPlayerModel && (m3 = t5.mediaPlayerModel), t5.customParametersModel && (h3 = t5.customParametersModel), t5.cmsdModel && (p3 = t5.cmsdModel), t5.dashMetrics && (v3 = t5.dashMetrics), t5.adapter && (f3 = t5.adapter), t5.videoModel && (g3 = t5.videoModel), t5.settings && (w3 = t5.settings), t5.capabilities && (o3 = t5.capabilities));
    }, setPlaybackQuality: P2, setWindowResizeEventCalled: function(t5) {
    }, unRegisterStreamType: function(t5, e4) {
      try {
        s2[t5] && s2[t5][e4] && delete s2[t5][e4], u3[t5] && u3[t5][e4] && delete u3[t5][e4];
      } catch (t6) {
      }
    } }, r3 = e3.getLogger(a2), I2(), a2;
  }
  sl.__dashjs_factory_name = "AbrController";
  const ul = N.default.getSingletonFactory(sl);
  N.default.updateSingletonFactory(sl.__dashjs_factory_name, ul);
  var dl = ul;
  const cl = /* @__PURE__ */ new Map([[S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_METADATA, "loadedmetadata"], [S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_CURRENT_DATA, "loadeddata"], [S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_FUTURE_DATA, "canplay"], [S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_ENOUGH_DATA, "canplaythrough"]]);
  function fl() {
    let t4, e3, n3, a2, r3, i3, l3, o3, s2, u3, d3;
    const c3 = this.context, f3 = (0, A.default)(c3).getInstance(), g3 = [];
    function m3(t5) {
      a2 && (arguments.length > 1 && void 0 !== arguments[1] && arguments[1] ? a2.playbackRate = t5 : k2(S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_FUTURE_DATA, () => {
        a2.playbackRate = t5;
      }));
    }
    function h3() {
      return g3.length > 0;
    }
    function p3(t5) {
      let e4 = g3.indexOf(t5);
      if (null !== t5 && (-1 !== e4 && g3.splice(e4, 1), n3.get().streaming.buffer.syntheticStallEvents.enabled && a2 && !h3())) {
        const t6 = () => {
          if (m3(u3 || 1, n3.get().streaming.buffer.syntheticStallEvents.ignoreReadyState), !a2.paused) {
            const t7 = document.createEvent("Event");
            t7.initEvent("playing", true, false), a2.dispatchEvent(t7);
          }
        };
        n3.get().streaming.buffer.syntheticStallEvents.ignoreReadyState ? t6() : (l3 && l3.func && l3.event && E3(l3.event, l3.func), l3 = k2(S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_FUTURE_DATA, t6));
      }
    }
    function b3() {
      if (a2 && h3() && 0 === a2.playbackRate) {
        const t5 = document.createEvent("Event");
        t5.initEvent("waiting", true, false), a2.dispatchEvent(t5);
      }
    }
    function y3(t5, e4) {
      a2 && a2.addEventListener(t5, e4);
    }
    function E3(t5, e4) {
      a2 && a2.removeEventListener(t5, e4);
    }
    function _3() {
      return a2 ? a2.readyState : NaN;
    }
    function T3() {
      return a2 ? a2.buffered : null;
    }
    function v3() {
      return a2 ? a2.clientWidth : NaN;
    }
    function w3() {
      return a2 ? a2.clientHeight : NaN;
    }
    function I2(t5, e4, n4, r4, i4) {
      if (a2) {
        for (let l4 = 0; l4 < a2.textTracks.length; l4++)
          if (a2.textTracks[l4].kind === t5 && (!e4 || a2.textTracks[l4].label == e4) && a2.textTracks[l4].language === n4 && a2.textTracks[l4].isTTML === r4 && a2.textTracks[l4].isEmbedded === i4)
            return a2.textTracks[l4];
      }
      return null;
    }
    function k2(t5, e4) {
      return t5 === S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_NOTHING || _3() >= t5 ? (e4(), null) : function(t6, e5) {
        const n4 = () => {
          E3(t6, n4), e5(t6);
        };
        return y3(t6, n4), { func: n4, event: t6 };
      }(cl.get(t5), e4);
    }
    return t4 = { addEventListener: y3, addTextTrack: function(t5, e4, n4, r4, i4) {
      if (!a2)
        return null;
      let l4 = I2(t5, e4, n4, r4, i4);
      return l4 || (l4 = a2.addTextTrack(t5, e4, n4), l4.isEmbedded = i4, l4.isTTML = r4), l4;
    }, appendChild: function(t5) {
      a2 && (a2.appendChild(t5), void 0 !== t5.isTTML && (a2.textTracks[a2.textTracks.length - 1].isTTML = t5.isTTML, a2.textTracks[a2.textTracks.length - 1].isEmbedded = t5.isEmbedded));
    }, getBufferRange: T3, getClientHeight: w3, getClientWidth: v3, getElement: function() {
      return a2;
    }, getEnded: function() {
      return a2 ? a2.ended : null;
    }, getPlaybackQuality: function() {
      if (!a2)
        return null;
      let t5 = "webkitDroppedFrameCount" in a2 && "webkitDecodedFrameCount" in a2, e4 = null;
      return "getVideoPlaybackQuality" in a2 ? e4 = a2.getVideoPlaybackQuality() : t5 && (e4 = { droppedVideoFrames: a2.webkitDroppedFrameCount, totalVideoFrames: a2.webkitDroppedFrameCount + a2.webkitDecodedFrameCount, creationTime: /* @__PURE__ */ new Date() }), e4;
    }, getPlaybackRate: function() {
      return a2 ? a2.playbackRate : null;
    }, getPlayedRanges: function() {
      return a2 ? a2.played : null;
    }, getReadyState: _3, getSource: function() {
      return a2 ? a2.src : null;
    }, getTTMLRenderingDiv: function() {
      return o3;
    }, getTextTrack: I2, getTextTracks: function() {
      return a2 ? a2.textTracks : [];
    }, getTime: function() {
      return a2 ? isNaN(r3) ? a2.currentTime : r3 : null;
    }, getVideoElementSize: function() {
      const t5 = n3.get().streaming.abr.usePixelRatioInLimitBitrateByPortal && window.hasOwnProperty("devicePixelRatio") ? window.devicePixelRatio : 1;
      return { elementWidth: v3() * t5, elementHeight: w3() * t5 };
    }, getVideoHeight: function() {
      return a2 ? a2.videoHeight : NaN;
    }, getVideoRelativeOffsetLeft: function() {
      if (a2) {
        const t5 = a2.parentNode.host || a2.parentNode;
        return t5 ? a2.getBoundingClientRect().left - t5.getBoundingClientRect().left : NaN;
      }
      return NaN;
    }, getVideoRelativeOffsetTop: function() {
      if (a2) {
        const t5 = a2.parentNode.host || a2.parentNode;
        return t5 ? a2.getBoundingClientRect().top - t5.getBoundingClientRect().top : NaN;
      }
      return NaN;
    }, getVideoWidth: function() {
      return a2 ? a2.videoWidth : NaN;
    }, getVttRenderingDiv: function() {
      return s2;
    }, initialize: function() {
      f3.on(R.default.PLAYBACK_PLAYING, b3, this);
    }, isPaused: function() {
      return a2 ? a2.paused : null;
    }, isSeeking: function() {
      return a2 ? a2.seeking || !isNaN(r3) : null;
    }, isStalled: h3, pause: function() {
      a2 && (a2.pause(), a2.autoplay = false);
    }, play: function() {
      if (a2) {
        a2.autoplay = true;
        const t5 = a2.play();
        t5 && t5.catch && "undefined" != typeof Promise && t5.catch((t6) => {
          "NotAllowedError" === t6.name && f3.trigger(R.default.PLAYBACK_NOT_ALLOWED), e3.warn(`Caught pending play exception - continuing (${t6})`);
        });
      }
    }, removeChild: function(t5) {
      a2 && a2.removeChild(t5);
    }, removeEventListener: E3, reset: function() {
      clearTimeout(d3), f3.off(R.default.PLAYBACK_PLAYING, b3, this), g3.length = 0;
    }, setConfig: function(t5) {
      t5 && t5.settings && (n3 = t5.settings);
    }, setCurrentTime: function(t5, e4) {
      a2 && (i3 && i3.func && i3.event && E3(i3.event, i3.func), r3 = t5, i3 = k2(S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_METADATA, () => {
        if (a2)
          if (a2.currentTime !== r3)
            try {
              r3 = e4 ? function(t6) {
                const e5 = T3();
                let n4 = t6, a3 = 9999999999;
                if (e5)
                  for (let r4 = 0; r4 < e5.length; r4++) {
                    const i4 = e5.start(r4), l4 = e5.end(r4), o4 = Math.abs(i4 - t6), s3 = Math.abs(l4 - t6);
                    if (t6 >= i4 && t6 <= l4)
                      return t6;
                    o4 < a3 && (a3 = o4, n4 = i4), s3 < a3 && (a3 = s3, n4 = l4);
                  }
                return n4;
              }(r3) : r3, isNaN(r3) || (a2.currentTime = r3), r3 = NaN;
            } catch (t6) {
              0 === a2.readyState && t6.code === t6.INVALID_STATE_ERR && (d3 = setTimeout(function() {
                a2.currentTime = r3, r3 = NaN;
              }, 400));
            }
          else
            r3 = NaN;
      }));
    }, setDisableRemotePlayback: function(t5) {
      a2 && (a2.disableRemotePlayback = t5);
    }, setElement: function(t5) {
      if (!(null == t5 || t5 && /^(VIDEO|AUDIO)$/i.test(t5.nodeName)))
        throw "element is not video or audio DOM type!";
      a2 = t5, a2 && (a2.preload = "auto");
    }, setPlaybackRate: m3, setSource: function(t5) {
      a2 && (t5 ? a2.src = t5 : (a2.removeAttribute("src"), a2.load()));
    }, setStallState: function(t5, e4) {
      !function(t6, e5) {
        e5 ? function(t7) {
          if (null !== t7 && a2 && !a2.seeking && -1 === g3.indexOf(t7) && (g3.push(t7), n3.get().streaming.buffer.syntheticStallEvents.enabled && a2 && 1 === g3.length && (n3.get().streaming.buffer.syntheticStallEvents.ignoreReadyState || _3() >= S2.default.VIDEO_ELEMENT_READY_STATES.HAVE_FUTURE_DATA))) {
            u3 = a2.playbackRate, m3(0, true);
            const t8 = document.createEvent("Event");
            t8.initEvent("waiting", true, false), a2.dispatchEvent(t8);
          }
        }(t6) : p3(t6);
      }(t5, e4);
    }, setTTMLRenderingDiv: function(t5) {
      o3 = t5, o3.style.position = "absolute", o3.style.display = "flex", o3.style.overflow = "hidden", o3.style.pointerEvents = "none", o3.style.top = 0, o3.style.left = 0;
    }, setVttRenderingDiv: function(t5) {
      s2 = t5;
    }, waitForReadyState: k2 }, e3 = (0, C.default)(c3).getInstance().getLogger(t4), n3 = (0, K.default)(c3).getInstance(), r3 = NaN, t4;
  }
  fl.__dashjs_factory_name = "VideoModel";
  var gl = N.default.getSingletonFactory(fl);
  const ml = [{ oldKey: "dashjs_vbitrate", newKey: "dashjs_video_bitrate" }, { oldKey: "dashjs_abitrate", newKey: "dashjs_audio_bitrate" }, { oldKey: "dashjs_vsettings", newKey: "dashjs_video_settings" }, { oldKey: "dashjs_asettings", newKey: "dashjs_audio_settings" }], hl = "dashjs_?_bitrate", pl = "dashjs_?_settings", bl = "localStorage", yl = "lastBitrate", El = "lastMediaSettings";
  function _l(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.settings;
    let a2, r3, i3;
    function l3(t5) {
      if (void 0 !== i3)
        return i3;
      let e4;
      i3 = false;
      try {
        "undefined" != typeof window && (e4 = window[t5]);
      } catch (t6) {
        return r3.warn("DOMStorage access denied: " + t6.message), i3;
      }
      if (!e4 || t5 !== bl)
        return i3;
      try {
        e4.setItem("1", "1"), e4.removeItem("1"), i3 = true;
      } catch (t6) {
        r3.warn("DOMStorage is supported, but cannot be used: " + t6.message);
      }
      return i3;
    }
    function o3() {
      const t5 = 6e5;
      return Math.round((/* @__PURE__ */ new Date()).getTime() / t5) * t5;
    }
    function s2(t5, e4) {
      return l3(t5) && n3.get().streaming[e4 + "CachingInfo"].enabled;
    }
    function u3() {
      if (!n3)
        throw new Error(S2.default.MISSING_CONFIG_ERROR);
    }
    return a2 = { getSavedBitrateSettings: function(t5) {
      if (u3(), !n3.get().streaming.lastBitrateCachingInfo.enabled)
        return NaN;
      let e4 = NaN;
      if (s2(bl, yl)) {
        const a3 = hl.replace(/\?/, t5);
        try {
          const i4 = JSON.parse(localStorage.getItem(a3)) || {}, l4 = (/* @__PURE__ */ new Date()).getTime() - parseInt(i4.timestamp, 10) >= n3.get().streaming.lastBitrateCachingInfo.ttl || false, o4 = parseFloat(i4.bitrate);
          isNaN(o4) || l4 ? l4 && localStorage.removeItem(a3) : (e4 = o4, r3.debug("Last saved bitrate for " + t5 + " was " + o4));
        } catch (t6) {
          return null;
        }
      }
      return e4;
    }, setSavedBitrateSettings: function(t5, e4) {
      if (s2(bl, yl) && e4) {
        const n4 = hl.replace(/\?/, t5);
        try {
          localStorage.setItem(n4, JSON.stringify({ bitrate: e4.toFixed(3), timestamp: o3() }));
        } catch (t6) {
          r3.error(t6.message);
        }
      }
    }, getSavedMediaSettings: function(t5) {
      if (u3(), !n3.get().streaming.lastMediaSettingsCachingInfo.enabled)
        return null;
      let e4 = null;
      if (s2(bl, El)) {
        const a3 = pl.replace(/\?/, t5);
        try {
          const t6 = JSON.parse(localStorage.getItem(a3)) || {}, r4 = (/* @__PURE__ */ new Date()).getTime() - parseInt(t6.timestamp, 10) >= n3.get().streaming.lastMediaSettingsCachingInfo.ttl || false;
          e4 = t6.settings, r4 && (localStorage.removeItem(a3), e4 = null);
        } catch (t6) {
          return null;
        }
      }
      return e4;
    }, setSavedMediaSettings: function(t5, e4) {
      if (s2(bl, El)) {
        const n4 = pl.replace(/\?/, t5);
        try {
          localStorage.setItem(n4, JSON.stringify({ settings: e4, timestamp: o3() }));
        } catch (t6) {
          r3.error(t6.message);
        }
      }
    } }, r3 = (0, C.default)(e3).getInstance().getLogger(a2), l3(bl) && ml.forEach((t5) => {
      const e4 = localStorage.getItem(t5.oldKey);
      if (e4) {
        localStorage.removeItem(t5.oldKey);
        try {
          localStorage.setItem(t5.newKey, e4);
        } catch (t6) {
          r3.error(t6.message);
        }
      }
    }), a2;
  }
  _l.__dashjs_factory_name = "DOMStorage";
  var Tl = N.default.getSingletonFactory(_l), vl = n2(8986);
  function wl() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3, l3, o3, s2, u3, d3, c3, f3;
    function g3(t5, e4, a3, i4) {
      let l4 = null;
      const s3 = t5 ? f3.resolve(t5.path) : null, u4 = i4 || { init: true, url: s3 ? s3.url : void 0, range: { start: 0, end: 1500 }, searching: false, bytesLoaded: 0, bytesToLoad: 1500, mediaType: e4, representation: t5 };
      n3.debug("Start searching for initialization.");
      const d4 = p3(u4);
      o3.load({ request: d4, success: function(n4) {
        if (u4.bytesLoaded = u4.range.end, l4 = r3.findInitRange(n4), !l4)
          return u4.range.end = u4.bytesLoaded + u4.bytesToLoad, g3(t5, e4, a3, u4);
        t5.range = l4, a3(t5);
      }, error: function() {
        a3(t5);
      } }), n3.debug("Perform init search: " + u4.url);
    }
    function m3(t5, e4, a3, i4, l4, s3) {
      if (a3 && (void 0 === a3.start || void 0 === a3.end)) {
        const t6 = a3 ? a3.toString().split("-") : null;
        a3 = t6 ? { start: parseFloat(t6[0]), end: parseFloat(t6[1]) } : null;
      }
      l4 = l4 || h3;
      let u4 = null, d4 = null;
      const c4 = !!a3, g4 = t5 ? f3.resolve(t5.path) : null, b3 = { init: false, url: g4 ? g4.url : void 0, range: c4 ? a3 : { start: 0, end: 1500 }, searching: !c4, bytesLoaded: s3 ? s3.bytesLoaded : 0, bytesToLoad: 1500, mediaType: e4, representation: t5 }, y3 = p3(b3);
      o3.load({ request: y3, success: function(a4) {
        const o4 = b3.bytesToLoad, s4 = a4.byteLength;
        if (b3.bytesLoaded = b3.range.end - b3.range.start, u4 = r3.parse(a4), d4 = u4.getBox("sidx"), d4 && d4.isComplete) {
          const a5 = d4.references;
          let r4, o5;
          if (null != a5 && a5.length > 0 && (r4 = 1 === a5[0].reference_type), r4) {
            let r5, o6, s5, u5, c5;
            n3.debug("Initiate multiple SIDX load."), b3.range.end = b3.range.start + d4.size;
            let f4 = [], g5 = 0, h4 = (d4.offset || b3.range.start) + d4.size;
            const p4 = function(e5) {
              e5 ? (f4 = f4.concat(e5), g5++, g5 >= o6 && (f4.sort(function(t6, e6) {
                return t6.startTime - e6.startTime < 0 ? -1 : 0;
              }), l4(f4, t5, i4))) : l4(null, t5, i4);
            };
            for (r5 = 0, o6 = a5.length; r5 < o6; r5++)
              s5 = h4, u5 = h4 + a5[r5].referenced_size - 1, h4 += a5[r5].referenced_size, c5 = { start: s5, end: u5 }, m3(t5, e4, c5, i4, p4, b3);
          } else
            n3.debug("Parsing segments from SIDX. representation " + e4 + " - id: " + t5.id + " for range : " + b3.range.start + " - " + b3.range.end), o5 = function(t6, e5) {
              const n4 = t6.references, a6 = n4.length, r5 = t6.timescale;
              let i5 = t6.earliest_presentation_time, l5 = e5.range.start + t6.offset + t6.first_offset + t6.size;
              const o6 = [];
              let s5, u5, d5, c5;
              for (let t7 = 0; t7 < a6; t7++)
                d5 = n4[t7].subsegment_duration, c5 = n4[t7].referenced_size, s5 = new dt(), s5.duration = d5, s5.startTime = i5, s5.timescale = r5, u5 = l5 + c5 - 1, s5.mediaRange = l5 + "-" + u5, o6.push(s5), i5 += d5, l5 += c5;
              return o6;
            }(d4, b3), l4(o5, t5, i4);
        } else {
          if (d4)
            b3.range.start = d4.offset || b3.range.start, b3.range.end = b3.range.start + (d4.size || o4);
          else {
            if (s4 < b3.bytesLoaded)
              return void l4(null, t5, i4);
            {
              const t6 = u4.getLastBox();
              t6 && t6.size ? (b3.range.start = t6.offset + t6.size, b3.range.end = b3.range.start + o4) : b3.range.end += o4;
            }
          }
          m3(t5, e4, b3.range, i4, null, b3);
        }
      }, error: function() {
        l4(null, t5, i4);
      } }), n3.debug(`Perform SIDX load for type ${e4} : ${b3.url} with range ${b3.range.start} - ${b3.range.end}`);
    }
    function h3(t5, e4, n4) {
      n4({ segments: t5, representation: e4, error: t5 ? void 0 : new G.default(s2.SEGMENT_BASE_LOADER_ERROR_CODE, s2.SEGMENT_BASE_LOADER_ERROR_MESSAGE) });
    }
    function p3(t5) {
      if (!t5.url)
        return;
      const e4 = new P();
      return e4.setInfo(t5), e4;
    }
    return e3 = { setConfig: function(t5) {
      t5.baseURLController && (f3 = t5.baseURLController), t5.dashMetrics && (i3 = t5.dashMetrics), t5.mediaPlayerModel && (l3 = t5.mediaPlayerModel), t5.errHandler && (a2 = t5.errHandler), t5.boxParser && (r3 = t5.boxParser), t5.debug && (n3 = t5.debug.getLogger(e3)), t5.errors && (s2 = t5.errors), t5.urlUtils && (c3 = t5.urlUtils), t5.constants && (u3 = t5.constants), t5.dashConstants && (d3 = t5.dashConstants);
    }, initialize: function() {
      o3 = qn(t4).create({ errHandler: a2, dashMetrics: i3, mediaPlayerModel: l3, boxParser: r3, errors: s2, urlUtils: c3, constants: u3, dashConstants: d3 });
    }, loadInitialization: function(t5, e4) {
      return new Promise((n4) => {
        g3(t5, e4, n4);
      });
    }, loadSegments: function(t5, e4, n4) {
      return new Promise((a3) => {
        m3(t5, e4, n4, a3);
      });
    }, reset: function() {
      o3 && (o3.abort(), o3 = null);
    } }, e3;
  }
  wl.__dashjs_factory_name = "SegmentBaseLoader";
  var Sl = N.default.getSingletonFactory(wl);
  function Il(t4) {
    let e3;
    t4 = t4 || {};
    let n3 = new DataView(t4.data), a2 = 0;
    function r3(t5, e4) {
      let r4, i4, l3 = true, o3 = 0;
      if (void 0 === e4 && (e4 = false), t5.tag > 16777215 ? (n3.getUint32(a2) !== t5.tag && (l3 = false), o3 = 4) : t5.tag > 65535 ? (r4 = n3.getUint16(a2), i4 = n3.getUint8(a2 + 2), 256 * r4 + i4 !== t5.tag && (l3 = false), o3 = 3) : t5.tag > 255 ? (n3.getUint16(a2) !== t5.tag && (l3 = false), o3 = 2) : (n3.getUint8(a2) !== t5.tag && (l3 = false), o3 = 1), !l3 && t5.required && !e4)
        throw new Error("required tag not found");
      return l3 && (a2 += o3), l3;
    }
    function i3(t5) {
      let e4 = 1, r4 = 128, i4 = -1, l3 = 0, o3 = n3.getUint8(a2), s2 = 0;
      for (s2 = 0; s2 < 8; s2 += 1) {
        if ((o3 & r4) === r4) {
          l3 = void 0 === t5 ? o3 & ~r4 : o3, i4 = s2;
          break;
        }
        r4 >>= 1;
      }
      for (s2 = 0; s2 < i4; s2 += 1, e4 += 1)
        l3 = l3 << 8 | 255 & n3.getUint8(a2 + e4);
      return a2 += e4, l3;
    }
    return e3 = { getPos: function() {
      return a2;
    }, setPos: function(t5) {
      a2 = t5;
    }, consumeTag: r3, consumeTagAndSize: function(t5, e4) {
      let n4 = r3(t5, e4);
      return n4 && i3(), n4;
    }, parseTag: function(t5) {
      let n4;
      return r3(t5), n4 = i3(), e3[t5.parse](n4);
    }, skipOverElement: function(t5, e4) {
      let n4, l3 = r3(t5, e4);
      return l3 && (n4 = i3(), a2 += n4), l3;
    }, getMatroskaCodedNum: i3, getMatroskaFloat: function(t5) {
      let e4;
      switch (t5) {
        case 4:
          e4 = n3.getFloat32(a2), a2 += 4;
          break;
        case 8:
          e4 = n3.getFloat64(a2), a2 += 8;
      }
      return e4;
    }, getMatroskaUint: function(t5) {
      if (t5 > 4)
        return function(t6) {
          const e5 = Math.floor(Number.MAX_SAFE_INTEGER / 256);
          let r4 = 0;
          for (let i4 = 0; i4 < t6; i4 += 1) {
            if (r4 > e5)
              throw new Error("Value exceeds safe integer limit");
            r4 *= 256;
            const t7 = n3.getUint8(a2 + i4);
            if (r4 > Number.MAX_SAFE_INTEGER - t7)
              throw new Error("Value exceeds safe integer limit");
            r4 += t7;
          }
          return a2 += t6, r4;
        }(t5);
      let e4 = 0;
      for (let r4 = 0; r4 < t5; r4 += 1)
        e4 <<= 8, e4 |= 255 & n3.getUint8(a2 + r4);
      return a2 += t5, e4 >>> 0;
    }, moreData: function() {
      return a2 < n3.byteLength;
    } }, e3;
  }
  Il.__dashjs_factory_name = "EBMLParser";
  var kl = N.default.getClassFactory(Il);
  function Al() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3, l3, o3, s2, u3;
    function d3(t5) {
      const e4 = new P();
      return e4.setInfo(t5), e4;
    }
    return e3 = { setConfig: function(t5) {
      if (!(t5.baseURLController && t5.dashMetrics && t5.mediaPlayerModel && t5.errHandler))
        throw new Error(S2.default.MISSING_CONFIG_ERROR);
      u3 = t5.baseURLController, i3 = t5.dashMetrics, l3 = t5.mediaPlayerModel, r3 = t5.errHandler, s2 = t5.errors, n3 = t5.debug.getLogger(e3);
    }, initialize: function() {
      o3 = qn(t4).create({ errHandler: r3, dashMetrics: i3, mediaPlayerModel: l3, errors: s2 });
    }, loadInitialization: function(t5, e4) {
      return new Promise((a3) => {
        let r4 = null, i4 = t5 ? u3.resolve(t5.path) : null, l4 = t5 ? t5.range.split("-") : null, s3 = { range: { start: l4 ? parseFloat(l4[0]) : null, end: l4 ? parseFloat(l4[1]) : null }, request: r4, url: i4 ? i4.url : void 0, init: true, mediaType: e4 };
        n3.info("Start loading initialization."), r4 = d3(s3), o3.load({ request: r4, success: function() {
          a3(t5);
        }, error: function() {
          a3(t5);
        } }), n3.debug("Perform init load: " + s3.url);
      });
    }, loadSegments: function(e4, r4, i4) {
      return new Promise((l4) => {
        let c3 = null, f3 = e4 ? u3.resolve(e4.path) : null, g3 = f3 ? f3.url : void 0;
        c3 = d3({ bytesLoaded: 0, bytesToLoad: 8192, range: { start: 0, end: 8192 }, request: c3, url: g3, init: false, mediaType: r4, representation: e4 }), n3.debug("Parsing ebml header"), o3.load({ request: c3, success: function(r5) {
          !function(e5, r6, i5, l5) {
            if (!e5 || 0 === e5.byteLength)
              return void l5(null);
            let s3, u4, c4, f4, g4 = kl(t4).create({ data: e5 }), m3 = i5 ? i5.split("-") : null, h3 = null, p3 = { url: r6, range: { start: m3 ? parseFloat(m3[0]) : null, end: m3 ? parseFloat(m3[1]) : null }, request: h3 };
            for (n3.debug("Parse EBML header: " + p3.url), g4.skipOverElement(a2.EBML), g4.consumeTag(a2.Segment), c4 = g4.getMatroskaCodedNum(), c4 += g4.getPos(), f4 = g4.getPos(); g4.moreData() && !g4.consumeTagAndSize(a2.Segment.Info, true); )
              if (!(g4.skipOverElement(a2.Segment.SeekHead, true) || g4.skipOverElement(a2.Segment.Tracks, true) || g4.skipOverElement(a2.Segment.Cues, true) || g4.skipOverElement(a2.Void, true)))
                throw new Error("no valid top level element found");
            for (; void 0 === s3; ) {
              let t5 = g4.getMatroskaCodedNum(true), e6 = g4.getMatroskaCodedNum();
              t5 === a2.Segment.Info.Duration.tag ? s3 = g4[a2.Segment.Info.Duration.parse](e6) : g4.setPos(g4.getPos() + e6);
            }
            h3 = d3(p3), o3.load({ request: h3, success: function(e6) {
              u4 = function(e7, r7, i6, l6) {
                let o4, s4, u5, d4, c5, f5, g5, m4;
                for (s4 = function(e8) {
                  let n4, r8, i7 = [], l7 = kl(t4).create({ data: e8 });
                  for (l7.consumeTagAndSize(a2.Segment.Cues); l7.moreData() && l7.consumeTagAndSize(a2.Segment.Cues.CuePoint, true); ) {
                    for (n4 = {}, n4.CueTime = l7.parseTag(a2.Segment.Cues.CuePoint.CueTime), n4.CueTracks = []; l7.moreData() && l7.consumeTag(a2.Segment.Cues.CuePoint.CueTrackPositions, true); ) {
                      const t5 = l7.getMatroskaCodedNum(), e9 = l7.getPos();
                      if (r8 = {}, r8.Track = l7.parseTag(a2.Segment.Cues.CuePoint.CueTrackPositions.CueTrack), 0 === r8.Track)
                        throw new Error("Cue track cannot be 0");
                      r8.ClusterPosition = l7.parseTag(a2.Segment.Cues.CuePoint.CueTrackPositions.CueClusterPosition), n4.CueTracks.push(r8), l7.setPos(e9 + t5);
                    }
                    if (0 === n4.CueTracks.length)
                      throw new Error("Mandatory cuetrack not found");
                    i7.push(n4);
                  }
                  if (0 === i7.length)
                    throw new Error("mandatory cuepoint not found");
                  return i7;
                }(e7), u5 = [], c5 = 0, f5 = s4.length; c5 < f5; c5 += 1)
                  d4 = new dt(), o4 = 0, o4 = c5 < s4.length - 1 ? s4[c5 + 1].CueTime - s4[c5].CueTime : l6 - s4[c5].CueTime, d4.duration = o4, d4.startTime = s4[c5].CueTime, d4.timescale = 1e3, g5 = s4[c5].CueTracks[0].ClusterPosition + r7, m4 = c5 < s4.length - 1 ? s4[c5 + 1].CueTracks[0].ClusterPosition + r7 - 1 : i6 - 1, d4.mediaRange = g5 + "-" + m4, u5.push(d4);
                return n3.debug("Parsed cues: " + u5.length + " cues."), u5;
              }(e6, f4, c4, s3), l5(u4);
            }, error: function() {
              n3.error("Download Error: Cues " + p3.url), l5(null);
            } }), n3.debug("Perform cues load: " + p3.url + " bytes=" + p3.range.start + "-" + p3.range.end);
          }(r5, g3, i4, function(t5) {
            l4({ segments: t5, representation: e4, error: t5 ? void 0 : new G.default(s2.SEGMENT_BASE_LOADER_ERROR_CODE, s2.SEGMENT_BASE_LOADER_ERROR_MESSAGE) });
          });
        }, error: function() {
          l4({ representation: e4, error: new G.default(s2.SEGMENT_BASE_LOADER_ERROR_CODE, s2.SEGMENT_BASE_LOADER_ERROR_MESSAGE) });
        } });
      });
    }, reset: function() {
      o3 && (o3.abort(), o3 = null);
    } }, a2 = { EBML: { tag: 440786851, required: true }, Segment: { tag: 408125543, required: true, SeekHead: { tag: 290298740, required: true }, Info: { tag: 357149030, required: true, TimecodeScale: { tag: 2807729, required: true, parse: "getMatroskaUint" }, Duration: { tag: 17545, required: true, parse: "getMatroskaFloat" } }, Tracks: { tag: 374648427, required: true }, Cues: { tag: 475249515, required: true, CuePoint: { tag: 187, required: true, CueTime: { tag: 179, required: true, parse: "getMatroskaUint" }, CueTrackPositions: { tag: 183, required: true, CueTrack: { tag: 247, required: true, parse: "getMatroskaUint" }, CueClusterPosition: { tag: 241, required: true, parse: "getMatroskaUint" } } } } }, Void: { tag: 236, required: true } }, e3;
  }
  Al.__dashjs_factory_name = "WebmSegmentBaseLoader";
  var Rl = N.default.getSingletonFactory(Al);
  function Nl(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a2 = t4.events, r3 = t4.dashMetrics, i3 = t4.mediaPlayerModel, l3 = t4.errHandler, o3 = t4.baseURLController, s2 = t4.debug, u3 = t4.boxParser, d3 = t4.errors;
    let c3, f3, g3;
    function m3(t5) {
      return "webm" === (t5 ? t5.split("/")[1] : "").toLowerCase();
    }
    return c3 = { initialize: function() {
      f3.initialize(), g3.initialize();
    }, getSegmentBaseInitSegment: function(t5) {
      return m3(t5.representation.mimeType) ? g3.loadInitialization(t5.representation, t5.mediaType) : f3.loadInitialization(t5.representation, t5.mediaType);
    }, getSegmentList: function(t5) {
      return m3(t5.mimeType) ? g3.loadSegments(t5.representation, t5.mediaType, t5.representation ? t5.representation.indexRange : null) : f3.loadSegments(t5.representation, t5.mediaType, t5.representation ? t5.representation.indexRange : null);
    }, reset: function() {
      f3.reset(), g3.reset();
    } }, f3 = Sl(e3).getInstance(), g3 = Rl(e3).getInstance(), f3.setConfig({ baseURLController: o3, dashMetrics: r3, mediaPlayerModel: i3, errHandler: l3, eventBus: n3, events: a2, errors: d3, debug: s2, boxParser: u3 }), g3.setConfig({ baseURLController: o3, dashMetrics: r3, mediaPlayerModel: i3, errHandler: l3, eventBus: n3, events: a2, errors: d3, debug: s2 }), c3;
  }
  Nl.__dashjs_factory_name = "SegmentBaseController";
  var Cl = N.default.getSingletonFactory(Nl), Dl = class {
    constructor() {
      this.accessibility = null, this.adaptationSetSwitchingCompatibleIds = [], this.audioChannelConfiguration = null, this.bitrateList = null, this.codec = null, this.contentProtection = null, this.essentialProperties = [], this.id = null, this.index = null, this.isEmbedded = null, this.isFragmented = null, this.isText = false, this.labels = null, this.lang = null, this.mimeType = null, this.normalizedKeyIds = /* @__PURE__ */ new Set(), this.representationCount = 0, this.roles = null, this.segmentAlignment = false, this.selectionPriority = 1, this.streamInfo = null, this.subSegmentAlignment = false, this.supplementalProperties = [], this.type = null, this.viewpoint = null;
    }
  }, xl = class {
    constructor() {
      this.id = null, this.index = null, this.start = NaN, this.duration = NaN, this.manifestInfo = null, this.isLast = true, this.isEncrypted = false;
    }
  }, Ml = class {
    constructor() {
      this.dvrWindowSize = NaN, this.loadedTime = null, this.availableFrom = null, this.minBufferTime = NaN, this.duration = NaN, this.isDynamic = false, this.maxFragmentDuration = null, this.serviceDescriptions = [], this.protocol = null;
    }
  }, zl = class {
    constructor(t4) {
      this.valid = "/" == t4[0], this.path = t4.split("/").filter((t5) => 0 !== t5.length).map((t5) => {
        let e3 = { name: t5 }, n3 = t5.indexOf("[");
        if (-1 != n3) {
          e3.name = t5.substring(0, n3);
          let a2 = t5.substring(n3 + 1, t5.length - 1);
          this.valid = this.valid && -1 == a2.indexOf("[");
          let r3 = a2.indexOf("=");
          -1 != r3 ? (e3.attribute = { name: a2.substring(1, r3), value: a2.substring(r3 + 1) }, -1 != ["'", '"'].indexOf(e3.attribute.value[0]) && (e3.attribute.value = e3.attribute.value.substring(1, e3.attribute.value.length - 1))) : e3.position = parseInt(a2, 10) - 1;
        }
        return e3;
      });
    }
    isValid() {
      return this.valid;
    }
    findsElement() {
      return !this.findsAttribute();
    }
    findsAttribute() {
      return this.path[this.path.length - 1].name.startsWith("@");
    }
    findsTextReplace() {
      return "text()" === this.path[this.path.length - 1].name;
    }
    getMpdTarget(t4, e3) {
      let n3 = null, a2 = t4, r3 = 1, i3 = "MPD";
      for (; r3 < this.path.length && null !== a2; ) {
        n3 = a2;
        let t5 = this.path[r3];
        if (i3 = t5.name, r3 !== this.path.length - 1 || !i3.startsWith("@") && "text()" !== i3) {
          let e4 = n3[i3] || [];
          if (0 === e4.length && n3[i3] && e4.push(n3[i3]), t5.position)
            a2 = e4[t5.position] || null;
          else if (t5.attribute) {
            let n4 = t5.attribute;
            a2 = e4.filter((t6) => t6[n4.name] == n4.value)[0] || null;
          } else
            a2 = Array.isArray(e4) ? e4[0] : e4;
        }
        r3++;
      }
      return null === a2 ? null : i3.startsWith("@") ? { name: i3.substring(1), leaf: a2, target: a2 } : "text()" === i3 ? { name: "__text", leaf: a2, target: a2 } : { name: i3, leaf: a2, target: e3 ? n3 : a2 };
    }
  }, Ol = class {
    constructor(t4, e3, n3) {
      this.action = t4, this.xpath = e3, this.value = n3, this.position = null;
    }
    getMpdTarget(t4) {
      let e3 = "remove" === this.action || "replace" === this.action || "before" === this.position || "after" === this.position;
      return this.xpath.getMpdTarget(t4, e3);
    }
  };
  function Pl() {
    let t4, e3;
    const n3 = this.context;
    return t4 = { getIsPatch: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.ORIGINAL_MPD_ID) || false;
    }, getMpdId: function(t5) {
      return t5 && t5[I.default.ORIGINAL_MPD_ID] || null;
    }, getOriginalPublishTime: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.ORIGINAL_PUBLISH_TIME) ? new Date(t5[I.default.ORIGINAL_PUBLISH_TIME]) : null;
    }, getPatchOperations: function(t5) {
      return t5 ? (t5.__children || []).map((t6) => {
        const n4 = t6.tagName;
        if ("add" !== n4 && "remove" !== n4 && "replace" !== n4)
          return e3.warn(`Ignoring node of invalid action: ${n4}`), null;
        let a2 = t6.sel;
        if ("add" === n4 && t6.type) {
          if (!t6.type.startsWith("@"))
            return e3.warn(`Ignoring add action for prefixed namespace declaration: ${t6.type}=${t6.__text}`), null;
          a2 = `${a2}/${t6.type}`;
        }
        let r3 = new zl(a2);
        if (!r3.isValid())
          return e3.warn(`Ignoring action with invalid selector: ${n4} - ${a2}`), null;
        let i3 = null;
        r3.findsAttribute() || r3.findsTextReplace() ? i3 = t6.__text || "" : "remove" !== n4 && (i3 = t6.__children.reduce((t7, e4) => {
          let n5 = e4.tagName;
          return "#text" !== n5 && (t7[n5] = t7[n5] || [], t7[n5].push(e4)), t7;
        }, {}));
        let l3 = new Ol(n4, r3, i3);
        return "add" === n4 && (l3.position = t6.pos), l3;
      }).filter((t6) => !!t6) : [];
    }, getPublishTime: function(t5) {
      return t5 && t5.hasOwnProperty(I.default.PUBLISH_TIME) ? new Date(t5[I.default.PUBLISH_TIME]) : null;
    } }, e3 = (0, C.default)(n3).getInstance().getLogger(t4), t4;
  }
  Pl.__dashjs_factory_name = "PatchManifestModel";
  var Ll = N.default.getSingletonFactory(Pl);
  function Fl(t4) {
    let e3 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
    if ("undefined" != typeof TextDecoder) {
      const n4 = new TextDecoder("utf-8").decode(t4);
      if (e3) {
        const t5 = n4.indexOf("\0");
        return -1 !== t5 ? n4.substring(0, t5) : n4;
      }
      return n4.replace(/\0/g, "");
    }
    const n3 = t4.length;
    let a2, r3, i3, l3 = "", o3 = 0;
    for (; o3 < n3; ) {
      if (a2 = t4[o3++], 0 === a2 && e3)
        return l3;
      if (0 !== a2 && 3 !== a2)
        switch (a2 >> 4) {
          case 0:
          case 1:
          case 2:
          case 3:
          case 4:
          case 5:
          case 6:
          case 7:
            l3 += String.fromCharCode(a2);
            break;
          case 12:
          case 13:
            r3 = t4[o3++], l3 += String.fromCharCode((31 & a2) << 6 | 63 & r3);
            break;
          case 14:
            r3 = t4[o3++], i3 = t4[o3++], l3 += String.fromCharCode((15 & a2) << 12 | (63 & r3) << 6 | 63 & i3);
        }
    }
    return l3;
  }
  function Ul(t4) {
    return function(t5, e3, n3, a2) {
      const r3 = (i3 = t5) instanceof ArrayBuffer ? i3 : i3.buffer;
      var i3;
      let l3 = 1;
      "BYTES_PER_ELEMENT" in a2 && (l3 = a2.BYTES_PER_ELEMENT);
      const o3 = (c3 = t5) && c3.buffer instanceof ArrayBuffer && void 0 !== c3.byteLength && void 0 !== c3.byteOffset ? t5.byteOffset : 0, s2 = (o3 + t5.byteLength) / l3, u3 = (o3 + e3) / l3, d3 = Math.floor(Math.max(0, Math.min(u3, s2)));
      var c3;
      return new a2(r3, d3, Math.floor(Math.min(d3 + Math.max(n3, 0), s2)) - d3);
    }(t4, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1 / 0, Uint8Array);
  }
  function jl(t4) {
    return "PRIV" === t4.type ? function(t5) {
      if (t5.size < 2)
        return;
      const e3 = Fl(t5.data, true), n3 = new Uint8Array(t5.data.subarray(e3.length + 1));
      return { key: t5.type, info: e3, data: n3.buffer };
    }(t4) : "W" === t4.type[0] ? function(t5) {
      if ("WXXX" === t5.type) {
        if (t5.size < 2)
          return;
        let e4 = 1;
        const n3 = Fl(t5.data.subarray(e4), true);
        e4 += n3.length + 1;
        const a2 = Fl(t5.data.subarray(e4));
        return { key: t5.type, info: n3, data: a2 };
      }
      const e3 = Fl(t5.data);
      return { key: t5.type, info: "", data: e3 };
    }(t4) : "APIC" === t4.type ? function(t5) {
      const e3 = { key: t5.type, description: "", data: "", mimeType: null, pictureType: null };
      if (t5.size < 2)
        return;
      if (3 !== t5.data[0])
        return void console.log("Ignore frame with unrecognized character encoding");
      const n3 = t5.data.subarray(1).indexOf(0);
      if (-1 === n3)
        return;
      const a2 = Fl(Ul(t5.data, 1, n3)), r3 = t5.data[2 + n3], i3 = t5.data.subarray(3 + n3).indexOf(0);
      if (-1 === i3)
        return;
      const l3 = Fl(Ul(t5.data, 3 + n3, i3));
      let o3;
      return o3 = "-->" === a2 ? Fl(Ul(t5.data, 4 + n3 + i3)) : (s2 = t5.data.subarray(4 + n3 + i3)) instanceof ArrayBuffer ? s2 : 0 == s2.byteOffset && s2.byteLength == s2.buffer.byteLength ? s2.buffer : new Uint8Array(s2).buffer, e3.mimeType = a2, e3.pictureType = r3, e3.description = l3, e3.data = o3, e3;
      var s2;
    }(t4) : function(t5) {
      if (t5.size < 2)
        return;
      if ("TXXX" === t5.type) {
        let e4 = 1;
        const n3 = Fl(t5.data.subarray(e4), true);
        e4 += n3.length + 1;
        const a2 = Fl(t5.data.subarray(e4));
        return { key: t5.type, info: n3, data: a2 };
      }
      const e3 = Fl(t5.data.subarray(1));
      return { key: t5.type, info: "", data: e3 };
    }(t4);
  }
  function ql(t4, e3) {
    let n3 = 0;
    return n3 = (127 & t4[e3]) << 21, n3 |= (127 & t4[e3 + 1]) << 14, n3 |= (127 & t4[e3 + 2]) << 7, n3 |= 127 & t4[e3 + 3], n3;
  }
  function Bl(t4) {
    const e3 = String.fromCharCode(t4[0], t4[1], t4[2], t4[3]), n3 = ql(t4, 4);
    return { type: e3, size: n3, data: t4.subarray(10, 10 + n3) };
  }
  function Gl(t4, e3) {
    return e3 + 10 <= t4.length && 51 === t4[e3] && 68 === t4[e3 + 1] && 73 === t4[e3 + 2] && t4[e3 + 3] < 255 && t4[e3 + 4] < 255 && t4[e3 + 6] < 128 && t4[e3 + 7] < 128 && t4[e3 + 8] < 128 && t4[e3 + 9] < 128;
  }
  function Hl(t4, e3) {
    return e3 + 10 <= t4.length && 73 === t4[e3] && 68 === t4[e3 + 1] && 51 === t4[e3 + 2] && t4[e3 + 3] < 255 && t4[e3 + 4] < 255 && t4[e3 + 6] < 128 && t4[e3 + 7] < 128 && t4[e3 + 8] < 128 && t4[e3 + 9] < 128;
  }
  function Yl() {
    let t4, e3, n3, a2, r3, i3;
    const l3 = this.context;
    function o3(t5, n4) {
      const r4 = n4 ? n4.index : 0, i4 = e3.getAdaptationsForType(a2[r4].mpd.manifest, r4, t5);
      if (!i4 || 0 === i4.length)
        return null;
      if (i4.length > 1 && n4) {
        for (let t6 = 0, n5 = i4.length; t6 < n5; t6++)
          if (l4 = i4[t6], e3.getRolesForAdaptation(l4).filter(function(t7) {
            return t7.schemeIdUri === S2.default.DASH_ROLE_SCHEME_ID && t7.value === I.default.MAIN;
          })[0])
            return i4[t6];
      }
      var l4;
      return i4[0];
    }
    function s2(t5, n4, a3, i4, l4, o4) {
      let s3, u4, d4, c4, f4, g4, m4 = [];
      if (!i4 || 0 === i4.length)
        return [];
      const b4 = e3.getAdaptationsForPeriod(n4);
      for (c4 = 0, g4 = i4.length; c4 < g4; c4++)
        if (s3 = i4[c4], d4 = e3.getIndexForAdaptation(s3, t5, a3.index), u4 = h3(b4[d4]), o4) {
          let t6 = u4.accessibility.length;
          for (f4 = 0; f4 < t6; f4++) {
            if (!u4)
              continue;
            let t7 = u4.accessibility[f4];
            if (t7.schemeIdUri === r3.ACCESSIBILITY_CEA608_SCHEME)
              if (t7.value && "" !== t7.value) {
                let e4 = t7.value.split(";");
                if ("CC" === e4[0].substring(0, 2))
                  for (f4 = 0; f4 < e4.length; f4++)
                    u4 || (u4 = h3.call(this, b4[d4])), p3(u4, e4[f4].substring(0, 3), e4[f4].substring(4)), m4.push(u4), u4 = null;
                else
                  for (f4 = 0; f4 < e4.length; f4++)
                    u4 || (u4 = h3.call(this, b4[d4])), p3(u4, "CC" + (f4 + 1), e4[f4]), m4.push(u4), u4 = null;
              } else
                p3(u4, r3.CC1, "eng"), m4.push(u4), u4 = null;
          }
        } else
          l4 === r3.IMAGE ? (u4.type = r3.IMAGE, m4.push(u4), u4 = null) : u4 && m4.push(u4);
      return m4;
    }
    function u3(t5) {
      const n4 = d3(t5);
      return e3.getRegularPeriods(n4);
    }
    function d3(t5) {
      const n4 = f3(t5);
      return e3.getMpd(n4);
    }
    function c3() {
      a2 = [];
    }
    function f3(t5) {
      return t5 || (a2.length > 0 ? a2[0].mpd.manifest : null);
    }
    function g3(t5) {
      try {
        const n4 = m3(t5.streamInfo, a2), r4 = e3.getAdaptationsForPeriod(n4);
        return t5 && t5.streamInfo && void 0 !== t5.streamInfo.id && r4 ? r4[t5.index] : null;
      } catch (t6) {
        return null;
      }
    }
    function m3(t5, e4) {
      const n4 = e4.length;
      for (let a3 = 0; a3 < n4; a3++) {
        let n5 = e4[a3];
        if (t5 && t5.id === n5.id)
          return n5;
      }
      return null;
    }
    function h3(t5) {
      if (!t5)
        return null;
      let n4 = new Dl();
      const a3 = t5.period.mpd.manifest.Period[t5.period.index].AdaptationSet[t5.index];
      return n4.id = t5.id, n4.index = t5.index, n4.type = t5.type, n4.streamInfo = b3(t5.period), n4.representationCount = e3.getRepresentationCount(a3), n4.labels = e3.getLabelsForAdaptation(a3), n4.lang = e3.getLanguageForAdaptation(a3), n4.segmentAlignment = e3.getSegmentAlignment(a3), n4.subSegmentAlignment = e3.getSubSegmentAlignment(a3), n4.viewpoint = e3.getViewpointForAdaptation(a3), n4.accessibility = e3.getAccessibilityForAdaptation(a3), n4.accessibility.filter(function(t6) {
        if (t6.schemeIdUri && t6.schemeIdUri.search("cea-608") >= 0 && void 0 !== i3)
          return true;
      })[0] && (n4.embeddedCaptions = true), n4.audioChannelConfiguration = e3.getAudioChannelConfigurationForAdaptation(a3), 0 === n4.audioChannelConfiguration.length && a3.Representation && a3.Representation.length > 0 && (n4.audioChannelConfiguration = e3.getAudioChannelConfigurationForRepresentation(a3.Representation[0])), n4.roles = e3.getRolesForAdaptation(a3), n4.codec = e3.getCodec(a3), n4.mimeType = e3.getMimeType(a3), n4.contentProtection = e3.getContentProtectionByAdaptation(a3), n4.bitrateList = e3.getBitrateListForAdaptation(a3), n4.selectionPriority = e3.getSelectionPriority(a3), n4.contentProtection && n4.contentProtection.length > 0 && (n4.contentProtection = function(t6, n5) {
        if (!t6 || !t6.length || !n5)
          return t6;
        const a4 = e3.getContentProtectionByManifest(n5);
        if (!a4 || !a4.length)
          return t6;
        const r4 = a4.reduce((t7, e4) => (e4.refId && t7.set(e4.refId, e4), t7), /* @__PURE__ */ new Map());
        return t6.map((t7) => {
          if (t7.ref) {
            const e4 = r4.get(t7.ref);
            e4 && t7.mergeAttributesFromReference(e4);
          }
          return t7;
        });
      }(n4.contentProtection, t5.period.mpd.manifest), n4.contentProtection = function(t6) {
        const e4 = t6.map((t7) => t7.cencDefaultKid).filter((t7) => null !== t7);
        if (e4.length) {
          const n5 = e4[0];
          t6.forEach((t7) => {
            t7.keyId = n5;
          });
        }
        return t6;
      }(n4.contentProtection), n4.normalizedKeyIds = function(t6) {
        const e4 = /* @__PURE__ */ new Set();
        return t6.forEach((t7) => {
          t7.cencDefaultKid && "string" == typeof t7.cencDefaultKid && e4.add(t7.cencDefaultKid.replace(/-/g, "").toLowerCase());
        }), e4;
      }(n4.contentProtection)), n4.isText = e3.getIsText(a3), n4.essentialProperties = e3.getCombinedEssentialPropertiesForAdaptationSet(a3), n4.supplementalProperties = e3.getCombinedSupplementalPropertiesForAdaptationSet(a3), n4.isFragmented = e3.getIsFragmented(a3), n4.isEmbedded = false, n4.adaptationSetSwitchingCompatibleIds = function(t6) {
        if (!t6 || !t6.supplementalProperties)
          return [];
        let e4 = [];
        const n5 = t6.supplementalProperties.filter((t7) => t7.schemeIdUri === I.default.ADAPTATION_SET_SWITCHING_SCHEME_ID_URI);
        return n5 && n5.length > 0 && (e4 = n5[0].value.toString().split(",").map((t7) => t7)), e4;
      }(n4), n4;
    }
    function p3(t5, e4, n4) {
      t5.id = e4, t5.index = 100 + parseInt(e4.substring(2, 3)), t5.type = r3.TEXT, t5.codec = "cea-608-in-SEI", t5.isEmbedded = true, t5.isFragmented = false, t5.lang = rr(n4), t5.roles = [{ schemeIdUri: "urn:mpeg:dash:role:2011", value: "caption" }];
    }
    function b3(t5) {
      let n4 = new xl();
      return n4.id = t5.id, n4.index = t5.index, n4.start = t5.start, n4.duration = t5.duration, n4.manifestInfo = function(t6) {
        let n5 = new Ml();
        return n5.dvrWindowSize = t6.timeShiftBufferDepth, n5.loadedTime = t6.manifest.loadedTime, n5.availableFrom = t6.availabilityStartTime, n5.minBufferTime = t6.manifest.minBufferTime, n5.maxFragmentDuration = t6.maxSegmentDuration, n5.duration = e3.getDuration(t6.manifest), n5.isDynamic = e3.getIsDynamic(t6.manifest), n5.serviceDescriptions = e3.getServiceDescriptions(t6.manifest), n5.protocol = t6.manifest.protocol, n5;
      }(t5.mpd), n4.isLast = 1 === t5.mpd.manifest.Period.length || Math.abs(n4.start + n4.duration - n4.manifestInfo.duration) < 1, n4.isEncrypted = t5.isEncrypted, n4;
    }
    function y3() {
      if (!r3)
        throw new Error("setConfig function has to be called previously");
    }
    function E3(t5) {
      return a2.length > 0 ? a2[0].mpd.manifest.Period[t5] : null;
    }
    function _3(t5, e4, n4) {
      let a3, r4, i4, l4, o4, s3;
      if (t5) {
        for (r4 = t5.AdaptationSet, o4 = 0; o4 < r4.length; o4 += 1)
          for (a3 = r4[o4], l4 = a3.Representation, s3 = 0; s3 < l4.length; s3 += 1)
            if (i4 = l4[s3], e4 === i4.id)
              return n4 ? s3 : i4;
      }
      return null;
    }
    return t4 = { applyPatchToManifest: function(t5, e4) {
      n3.getPatchOperations(e4).forEach((e5) => {
        let n4 = e5.getMpdTarget(t5);
        if (null === n4)
          return;
        let { name: a3, target: r4, leaf: i4 } = n4;
        if (e5.xpath.findsAttribute() || "__text" === a3) {
          switch (e5.action) {
            case "add":
            case "replace":
              r4[a3] = e5.value;
              break;
            case "remove":
              delete r4[a3];
          }
          return;
        }
        let l4 = (r4[a3] || []).indexOf(i4), o4 = "prepend" === e5.position || "before" === e5.position;
        if ("remove" === e5.action || "replace" === e5.action)
          if (Array.isArray(r4[a3])) {
            if (-1 != l4) {
              let t6 = r4[a3];
              t6.splice(l4, 1), t6.length > 0 ? r4[a3] = t6 : delete r4[a3];
            }
          } else
            delete r4[a3];
        "add" !== e5.action && "replace" !== e5.action || Object.keys(e5.value).forEach((t6) => {
          let n5 = e5.value[t6], i5 = r4[t6] || [];
          if (0 === i5.length && r4[t6] && i5.push(r4[t6]), 0 === i5.length)
            i5 = n5;
          else {
            let r5 = i5.length;
            r5 = t6 == a3 && -1 != l4 ? l4 + (o4 ? 0 : 1) + ("replace" === e5.action ? -1 : 0) : o4 ? 0 : i5.length, i5.splice.apply(i5, [r5, 0].concat(n5));
          }
          r4[t6] = i5;
        });
      });
    }, areMediaInfosEqual: function(t5, e4) {
      if (!t5 || !e4)
        return false;
      const n4 = t5.id === e4.id, a3 = t5.codec === e4.codec, r4 = JSON.stringify(t5.viewpoint) === JSON.stringify(e4.viewpoint), i4 = t5.lang === e4.lang, l4 = JSON.stringify(t5.roles) === JSON.stringify(e4.roles), o4 = JSON.stringify(t5.accessibility) === JSON.stringify(e4.accessibility), s3 = JSON.stringify(t5.audioChannelConfiguration) === JSON.stringify(e4.audioChannelConfiguration);
      return n4 && a3 && r4 && i4 && l4 && o4 && s3;
    }, getAllMediaInfoForType: function(t5, n4, i4) {
      let l4 = a2, o4 = i4, d4 = [];
      if (o4)
        y3(), l4 = u3(o4);
      else {
        if (!(a2.length > 0))
          return d4;
        o4 = a2[0].mpd.manifest;
      }
      const c4 = m3(t5, l4);
      let f4 = e3.getAdaptationsForType(o4, t5 ? t5.index : null, n4);
      return d4 = s2(o4, c4, t5, f4, n4), n4 === r3.TEXT && (f4 = e3.getAdaptationsForType(o4, t5 ? t5.index : null, r3.VIDEO), d4 = d4.concat(s2(o4, c4, t5, f4, n4, true))), d4;
    }, getAvailabilityStartTime: function(t5) {
      const n4 = d3(t5);
      return e3.getAvailabilityStartTime(n4);
    }, getBandwidthForRepresentation: function(t5, e4) {
      let n4;
      return n4 = _3(E3(e4), t5), n4 ? n4.bandwidth : null;
    }, getBaseURLsFromElement: function(t5) {
      return e3.getBaseURLsFromElement(t5);
    }, getCodec: function(t5, n4, a3) {
      return e3.getCodec(t5, n4, a3);
    }, getContentSteering: function(t5) {
      return e3.getContentSteering(t5);
    }, getDuration: function(t5) {
      const n4 = f3(t5);
      return e3.getDuration(n4);
    }, getEssentialPropertiesForAdaptationSet: function(t5) {
      try {
        return e3.getEssentialPropertiesForRepresentation(t5);
      } catch (t6) {
        return [];
      }
    }, getEssentialPropertiesForRepresentation: function(t5) {
      try {
        return e3.getEssentialPropertiesForRepresentation(t5);
      } catch (t6) {
        return [];
      }
    }, getEvent: function(t5, e4, n4, a3) {
      try {
        if (!t5 || !e4 || isNaN(n4) || !a3)
          return null;
        const r4 = t5.scheme_id_uri, i4 = t5.value;
        if (!e4[r4 + "/" + i4])
          return null;
        const l4 = new ae(), o4 = t5.timescale || 1, s3 = a3.adaptation.period.start, u4 = e4[r4 + "/" + i4], d4 = isNaN(a3.presentationTimeOffset) ? isNaN(u4.presentationTimeOffset) ? 0 : u4.presentationTimeOffset : a3.presentationTimeOffset;
        let c4, f4 = t5.presentation_time_delta / o4;
        c4 = 0 === t5.version ? s3 + n4 - d4 + f4 : s3 - d4 + f4;
        const g4 = t5.event_duration / o4, m4 = t5.id, h4 = t5.message_data;
        return l4.eventStream = u4, l4.eventStream.value = i4, l4.eventStream.timescale = o4, l4.duration = g4, l4.id = m4, l4.calculatedPresentationTime = c4, l4.messageData = h4, l4.presentationTimeDelta = f4, l4.parsedMessageData = r4 === S2.default.ID3_SCHEME_ID_URI ? function(t6) {
          let e5 = 0;
          const n5 = [];
          for (; Hl(t6, e5); ) {
            const a4 = ql(t6, e5 + 6);
            t6[e5 + 5] >> 6 & 1 && (e5 += 10), e5 += 10;
            const r5 = e5 + a4;
            for (; e5 + 10 < r5; ) {
              const a5 = Bl(t6.subarray(e5)), r6 = jl(a5);
              r6 && n5.push(r6), e5 += a5.size + 10;
            }
            Gl(t6, e5) && (e5 += 10);
          }
          return n5;
        }(h4) : null, l4;
      } catch (t6) {
        return null;
      }
    }, getEventsFor: function(t5, n4, r4) {
      let i4 = [];
      if (a2.length > 0) {
        const l4 = a2[0].mpd.manifest;
        if (t5 instanceof xl) {
          const n5 = m3(t5, a2);
          i4 = e3.getEventsForPeriod(n5);
        } else if (t5 instanceof Dl) {
          const n5 = m3(r4, a2);
          i4 = e3.getEventStreamForAdaptationSet(l4, g3(t5), n5);
        } else if (t5 instanceof fe) {
          const t6 = m3(r4, a2);
          i4 = e3.getEventStreamForRepresentation(l4, n4, t6);
        }
      }
      return i4;
    }, getFramerate: function(t5) {
      return e3.getFramerate(t5);
    }, getIndexForRepresentation: function(t5, e4) {
      return function(t6, e5) {
        const n4 = _3(t6, e5, true);
        return null !== n4 ? n4 : -1;
      }(E3(e4), t5);
    }, getIsDVB: function(t5) {
      return e3.hasProfile(t5, "urn:dvb:dash:profile:dvb-dash:2014");
    }, getIsDynamic: function(t5) {
      const n4 = f3(t5);
      return e3.getIsDynamic(n4);
    }, getIsPatch: function(t5) {
      return n3.getIsPatch(t5);
    }, getIsTextTrack: function(t5) {
      return e3.getIsText(t5);
    }, getIsTypeOf: function(t5, n4) {
      return e3.getIsTypeOf(t5, n4);
    }, getLocation: function(t5) {
      return e3.getLocation(t5);
    }, getMainAdaptationForType: o3, getManifestUpdatePeriod: function(t5) {
      let n4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
      return e3.getManifestUpdatePeriod(t5, n4);
    }, getMediaInfoForType: function(t5, n4) {
      if (0 === a2.length || !t5)
        return null;
      let r4 = m3(t5, a2);
      if (!r4)
        return null;
      const i4 = e3.getAdaptationsForPeriod(r4);
      let l4 = o3(n4, t5);
      return l4 ? h3(i4[e3.getIndexForAdaptation(l4, a2[0].mpd.manifest, t5.index)]) : null;
    }, getMpd: d3, getPatchLocation: function(t5) {
      const n4 = e3.getPatchLocation(t5), a3 = e3.getPublishTime(t5);
      return n4 && 0 !== n4.length && a3 ? n4.filter((t6) => isNaN(t6.ttl) || a3.getTime() + t6.ttl > (/* @__PURE__ */ new Date()).getTime()) : [];
    }, getPeriodById: function(t5) {
      if (!t5 || 0 === a2.length)
        return null;
      const e4 = a2.filter((e5) => e5.id === t5);
      return e4 && e4.length > 0 ? e4[0] : null;
    }, getProducerReferenceTimes: function(t5, n4) {
      let r4, i4;
      const l4 = m3(t5, a2);
      return r4 = n4 ? n4.id : null, a2.length > 0 && l4 && (i4 = r4 ? e3.getAdaptationForId(r4, a2[0].mpd.manifest, l4.index) : e3.getAdaptationForIndex(n4 ? n4.index : null, a2[0].mpd.manifest, l4.index)), i4 ? e3.getProducerReferenceTimesForAdaptation(i4) : [];
    }, getPublishTime: function(t5) {
      return e3.getPublishTime(t5);
    }, getRealAdaptation: function(t5, n4) {
      let r4, i4;
      const l4 = m3(t5, a2);
      return r4 = n4 ? n4.id : null, a2.length > 0 && l4 && (i4 = r4 ? e3.getAdaptationForId(r4, a2[0].mpd.manifest, l4.index) : e3.getAdaptationForIndex(n4 ? n4.index : null, a2[0].mpd.manifest, l4.index)), i4;
    }, getRealPeriodByIndex: function(t5) {
      return e3.getRealPeriodForIndex(t5, a2[0].mpd.manifest);
    }, getRegularPeriods: u3, getRepresentationSortFunction: function() {
      return e3.getRepresentationSortFunction();
    }, getStreamsInfo: function(t5, e4) {
      const n4 = [];
      let r4 = a2;
      if (t5 && (y3(), r4 = u3(t5)), r4.length > 0) {
        (!e4 || e4 > r4.length) && (e4 = r4.length);
        for (let t6 = 0; t6 < e4; t6++)
          n4.push(b3(r4[t6]));
      }
      return n4;
    }, getSuggestedPresentationDelay: function() {
      const t5 = a2.length > 0 ? a2[0].mpd : null;
      return e3.getSuggestedPresentationDelay(t5);
    }, getSupplementalCodecs: function(t5) {
      const e4 = t5[I.default.SUPPLEMENTAL_CODECS];
      return e4 ? e4.split(" ").map((e5) => t5.mimeType + ';codecs="' + e5 + '"') : [];
    }, getUTCTimingSources: function() {
      const t5 = f3();
      return e3.getUTCTimingSources(t5);
    }, getVoRepresentations: function(t5) {
      let n4;
      const a3 = g3(t5);
      return n4 = e3.getRepresentationsForAdaptation(a3, t5), n4;
    }, isPatchValid: function(t5, a3) {
      let r4 = e3.getId(t5), i4 = n3.getMpdId(a3), l4 = e3.getPublishTime(t5), o4 = n3.getPublishTime(a3), s3 = n3.getOriginalPublishTime(a3);
      return !!(r4 && i4 && r4 == i4 && l4 && s3 && l4.getTime() == s3.getTime() && o4 && l4.getTime() < o4.getTime());
    }, reset: c3, setConfig: function(t5) {
      t5 && (t5.constants && (r3 = t5.constants), t5.cea608parser && (i3 = t5.cea608parser), t5.errHandler && e3.setConfig({ errHandler: t5.errHandler }), t5.BASE64 && e3.setConfig({ BASE64: t5.BASE64 }));
    }, updatePeriods: function(t5) {
      if (!t5)
        return null;
      y3(), a2 = u3(t5);
    } }, e3 = he(l3).getInstance(), n3 = Ll(l3).getInstance(), c3(), t4;
  }
  Yl.__dashjs_factory_name = "DashAdapter";
  var Vl = N.default.getSingletonFactory(Yl);
  class Kl {
    static round10(t4, e3) {
      return function(t5, e4, n3) {
        return void 0 === n3 || 0 == +n3 ? Math[t5](e4) : (n3 = +n3, null === (e4 = +e4) || isNaN(e4) || "number" != typeof n3 || n3 % 1 != 0 ? NaN : (e4 = e4.toString().split("e"), +((e4 = (e4 = Math[t5](+(e4[0] + "e" + (e4[1] ? +e4[1] - n3 : -n3)))).toString().split("e"))[0] + "e" + (e4[1] ? +e4[1] + n3 : n3))));
      }("round", t4, e3);
    }
  }
  var Wl = class {
    constructor() {
      this.TcpList = [], this.HttpList = [], this.RepSwitchList = [], this.BufferLevel = [], this.BufferState = [], this.PlayList = [], this.DroppedFrames = [], this.SchedulingInfo = [], this.DVRInfo = [], this.ManifestUpdate = [], this.RequestsQueue = null, this.DVBErrors = [];
    }
  }, $l = class {
    constructor() {
      this.t = null, this.mt = null, this.to = null, this.lto = null;
    }
  }, Xl = class {
    constructor() {
      this.t = null, this.level = null;
    }
  }, Ql = class {
    constructor() {
      this.target = null, this.state = k.BUFFER_EMPTY;
    }
  }, Zl = class {
    constructor() {
      this.time = null, this.range = null, this.manifestInfo = null;
    }
  }, Jl = class {
    constructor() {
      this.time = null, this.droppedFrames = null;
    }
  };
  class to {
    constructor() {
      this.mediaType = null, this.type = null, this.requestTime = null, this.fetchTime = null, this.availabilityStartTime = null, this.presentationStartTime = 0, this.clientTimeOffset = 0, this.currentTime = null, this.buffered = null, this.latency = 0, this.streamInfo = [], this.representationInfo = [];
    }
  }
  class eo {
    constructor() {
      this.id = null, this.index = null, this.start = null, this.duration = null;
    }
  }
  class no {
    constructor() {
      this.id = null, this.index = null, this.mediaType = null, this.presentationTimeOffset = null, this.startNumber = null;
    }
  }
  var ao = class {
    constructor() {
      this.mediaType = null, this.t = null, this.type = null, this.startTime = null, this.availabilityStartTime = null, this.duration = null, this.bandwidth = null, this.range = null, this.state = null;
    }
  }, ro = class {
    constructor() {
      this.loadingRequests = [], this.executedRequests = [];
    }
  };
  function io(t4) {
    const e3 = (t4 = t4 || {}).settings;
    let n3, a2, r3 = this.context, i3 = (0, A.default)(r3).getInstance();
    function l3() {
      i3.trigger(R.default.METRICS_CHANGED);
    }
    function o3(t5) {
      i3.trigger(R.default.METRIC_CHANGED, { mediaType: t5 }), l3();
    }
    function s2(t5, e4, n4) {
      i3.trigger(R.default.METRIC_UPDATED, { mediaType: t5, metric: e4, value: n4 }), o3(t5);
    }
    function u3(t5, e4, n4) {
      i3.trigger(R.default.METRIC_ADDED, { mediaType: t5, metric: e4, value: n4 }), o3(t5);
    }
    function d3(t5, e4) {
      let n4 = null;
      return t5 ? (a2.hasOwnProperty(t5) ? n4 = a2[t5] : e4 || (n4 = new Wl(), a2[t5] = n4), n4) : n4;
    }
    function c3(t5, n4, a3) {
      let r4 = d3(t5);
      null !== r4 && (r4[n4].push(a3), r4[n4].length > e3.get().streaming.metrics.maxListDepth && r4[n4].shift());
    }
    function f3(t5, e4, n4) {
      c3(t5, e4, n4), u3(t5, e4, n4);
    }
    return n3 = { addBufferLevel: function(t5, e4, n4) {
      let a3 = new Xl();
      a3.t = e4, a3.level = n4, f3(t5, k.BUFFER_LEVEL, a3);
    }, addBufferState: function(t5, e4, n4) {
      let a3 = new Ql();
      a3.target = n4, a3.state = e4, f3(t5, k.BUFFER_STATE, a3);
    }, addDVBErrors: function(t5) {
      f3(S2.default.STREAM, k.DVB_ERRORS, t5);
    }, addDVRInfo: function(t5, e4, n4, a3) {
      let r4 = new Zl();
      r4.time = e4, r4.range = a3, r4.manifestInfo = n4, f3(t5, k.DVR_INFO, r4);
    }, addDroppedFrames: function(t5, e4) {
      let n4 = new Jl(), a3 = d3(t5).DroppedFrames;
      e4 && (n4.time = e4.creationTime, n4.droppedFrames = e4.droppedVideoFrames, a3.length > 0 && a3[a3.length - 1] == n4 || f3(t5, k.DROPPED_FRAMES, n4));
    }, addHttpRequest: function t5(e4, n4, a3, r4) {
      let i4 = new z.HTTPRequest();
      n4.url && n4.url !== e4.url && (t5({ mediaType: e4.mediaType, type: e4.type, url: e4.url, serviceLocation: null, range: e4.range, startDate: e4.startDate, firstByteDate: null, endDate: null, duration: e4.duration, fileLoaderType: e4.fileLoaderType, resourceTimingValues: e4.resourceTimingValues }, { url: null, status: null, headers: null }, null, r4), i4.actualurl = n4.url), i4.tcpid = null, i4.type = e4.type, i4.url = e4.url, i4.range = e4.range || null, i4.trequest = e4.startDate, i4.tresponse = e4.firstByteDate, i4.responsecode = n4.status, i4.cmsd = r4, i4._tfinish = e4.endDate, i4._stream = e4.mediaType, i4._mediaduration = e4.duration, i4._responseHeaders = "";
      for (const t6 in n4.headers)
        i4._responseHeaders += t6 + ": " + n4.headers[t6] + "\r\n";
      i4._serviceLocation = e4.serviceLocation || null, i4._fileLoaderType = e4.fileLoaderType, i4._resourceTimingValues = e4.resourceTimingValues, i4._streamId = e4 && e4.representation && e4.representation.mediaInfo && e4.representation.mediaInfo.streamInfo ? e4.representation.mediaInfo.streamInfo.id : null, a3 ? a3.forEach((t6) => {
        !function(t7, e5, n5, a4) {
          let r5 = new z.HTTPRequestTrace();
          r5.s = e5, r5.d = n5, r5.b = a4, t7.trace.push(r5), t7.interval || (t7.interval = 0), t7.interval += n5;
        }(i4, t6.s, t6.d, t6.b, t6.t);
      }) : (delete i4.interval, delete i4.trace), f3(e4.mediaType, k.HTTP_REQUEST, i4);
    }, addManifestUpdate: function(t5, e4, n4, a3) {
      let r4 = new to();
      r4.mediaType = t5, r4.type = e4, r4.requestTime = n4, r4.fetchTime = a3, c3(S2.default.STREAM, k.MANIFEST_UPDATE, r4), u3(t5, k.MANIFEST_UPDATE, r4);
    }, addManifestUpdateRepresentationInfo: function(t5, e4, n4) {
      if (t5 && t5.representationInfo) {
        const a3 = new no();
        a3.id = e4 ? e4.id : null, a3.index = e4 ? e4.index : null, a3.mediaType = n4, a3.startNumber = e4 ? e4.startNumber : null, a3.presentationTimeOffset = e4 ? e4.presentationTimeOffset : null, t5.representationInfo.push(a3), s2(t5.mediaType, k.MANIFEST_UPDATE_TRACK_INFO, t5);
      }
    }, addManifestUpdateStreamInfo: function(t5, e4, n4, a3, r4) {
      if (t5) {
        let i4 = new eo();
        i4.id = e4, i4.index = n4, i4.start = a3, i4.duration = r4, t5.streamInfo.push(i4), s2(t5.mediaType, k.MANIFEST_UPDATE_STREAM_INFO, t5);
      }
    }, addPlayList: function(t5) {
      t5.trace && Array.isArray(t5.trace) ? t5.trace.forEach((t6) => {
        t6.hasOwnProperty("subreplevel") && !t6.subreplevel && delete t6.subreplevel;
      }) : delete t5.trace, f3(S2.default.STREAM, k.PLAY_LIST, t5);
    }, addRepresentationSwitch: function(t5, e4, n4, a3, r4) {
      let i4 = new $l();
      i4.t = e4, i4.mt = n4, i4.to = a3, r4 ? i4.lto = r4 : delete i4.lto, f3(t5, k.TRACK_SWITCH, i4);
    }, addRequestsQueue: function(t5, e4, n4) {
      let a3 = new ro();
      a3.loadingRequests = e4, a3.executedRequests = n4, d3(t5).RequestsQueue = a3, u3(t5, k.REQUESTS_QUEUE, a3);
    }, addSchedulingInfo: function(t5, e4, n4, a3, r4, i4, l4, o4, s3) {
      let u4 = new ao();
      u4.mediaType = t5, u4.t = e4, u4.type = n4, u4.startTime = a3, u4.availabilityStartTime = r4, u4.duration = i4, u4.bandwidth = l4, u4.range = o4, u4.state = s3, f3(t5, k.SCHEDULING_INFO, u4);
    }, clearAllCurrentMetrics: function() {
      a2 = {}, l3();
    }, clearCurrentMetricsForType: function(t5) {
      delete a2[t5], o3(t5);
    }, getMetricsFor: d3, updateManifestUpdateInfo: function(t5, e4) {
      if (t5) {
        for (let n4 in e4)
          t5[n4] = e4[n4];
        s2(t5.mediaType, k.MANIFEST_UPDATE, t5);
      }
    } }, a2 = {}, n3;
  }
  io.__dashjs_factory_name = "MetricsModel";
  var lo = N.default.getSingletonFactory(io);
  function oo(t4) {
    t4 = t4 || {};
    const e3 = this.context;
    let n3, a2, r3, i3, l3 = t4.metricsModel;
    function o3(t5) {
      const e4 = l3.getMetricsFor(t5, true);
      if (!e4)
        return null;
      const n4 = e4.HttpList;
      let a3, r4 = null;
      if (!n4 || n4.length <= 0)
        return null;
      for (a3 = n4.length - 1; a3 >= 0; ) {
        if (n4[a3].responsecode) {
          r4 = n4[a3];
          break;
        }
        a3--;
      }
      return r4;
    }
    function s2(t5) {
      const e4 = l3.getMetricsFor(t5, true);
      return e4 && e4.HttpList ? e4.HttpList : [];
    }
    function u3(t5, e4) {
      if (!t5)
        return null;
      const n4 = t5[e4];
      return n4 && 0 !== n4.length ? n4[n4.length - 1] : null;
    }
    return n3 = { getCurrentRepresentationSwitch: function(t5) {
      return u3(l3.getMetricsFor(t5, true), k.TRACK_SWITCH);
    }, getCurrentBufferState: function(t5) {
      return u3(l3.getMetricsFor(t5, true), k.BUFFER_STATE);
    }, getCurrentBufferLevel: function(t5) {
      const e4 = u3(l3.getMetricsFor(t5, true), k.BUFFER_LEVEL);
      return e4 ? Kl.round10(e4.level / 1e3, -3) : 0;
    }, getCurrentHttpRequest: o3, getHttpRequests: s2, getCurrentDroppedFrames: function() {
      return u3(l3.getMetricsFor(S2.default.VIDEO, true), k.DROPPED_FRAMES);
    }, getCurrentSchedulingInfo: function(t5) {
      return u3(l3.getMetricsFor(t5, true), k.SCHEDULING_INFO);
    }, getCurrentDVRInfo: function(t5) {
      return u3(t5 ? l3.getMetricsFor(t5, true) : l3.getMetricsFor(S2.default.VIDEO, true) || l3.getMetricsFor(S2.default.AUDIO, true), k.DVR_INFO);
    }, getCurrentManifestUpdate: function() {
      return u3(l3.getMetricsFor(S2.default.STREAM), k.MANIFEST_UPDATE);
    }, getLatestFragmentRequestHeaderValueByID: function(t5, e4) {
      if (!e4)
        return null;
      let n4 = {}, a3 = o3(t5);
      a3 && (n4 = Gt.default.parseHttpHeaders(a3._responseHeaders));
      const r4 = n4[e4.toLowerCase()];
      return void 0 === r4 ? null : r4;
    }, getLatestMPDRequestHeaderValueByID: function(t5) {
      if (!t5)
        return null;
      let e4, n4, a3, r4 = {};
      for (e4 = s2(S2.default.STREAM), a3 = e4.length - 1; a3 >= 0; a3--)
        if (n4 = e4[a3], n4.type === z.HTTPRequest.MPD_TYPE) {
          r4 = Gt.default.parseHttpHeaders(n4._responseHeaders);
          break;
        }
      const i4 = r4[t5.toLowerCase()];
      return void 0 === i4 ? null : i4;
    }, addRepresentationSwitch: function(t5, e4, n4, a3, r4) {
      l3.addRepresentationSwitch(t5, e4, n4, a3, r4);
    }, addDVRInfo: function(t5, e4, n4, a3) {
      l3.addDVRInfo(t5, e4, n4, a3);
    }, updateManifestUpdateInfo: function(t5) {
      const e4 = this.getCurrentManifestUpdate();
      l3.updateManifestUpdateInfo(e4, t5);
    }, addManifestUpdateStreamInfo: function(t5) {
      if (t5) {
        const e4 = this.getCurrentManifestUpdate();
        l3.addManifestUpdateStreamInfo(e4, t5.id, t5.index, t5.start, t5.duration);
      }
    }, addManifestUpdateRepresentationInfo: function(t5, e4) {
      if (t5) {
        const n4 = this.getCurrentManifestUpdate();
        l3.addManifestUpdateRepresentationInfo(n4, t5, e4);
      }
    }, addManifestUpdate: function(t5) {
      l3.addManifestUpdate(S2.default.STREAM, t5.type, t5.startDate, t5.endDate);
    }, addHttpRequest: function(t5, e4, n4, a3, r4, i4) {
      const o4 = { status: n4, headers: a3, url: e4 };
      l3.addHttpRequest(t5, o4, r4, i4);
    }, addSchedulingInfo: function(t5, e4) {
      l3.addSchedulingInfo(t5.mediaType, /* @__PURE__ */ new Date(), t5.type, t5.startTime, t5.availabilityStartTime, t5.duration, t5.bandwidth, t5.range, e4);
    }, addRequestsQueue: function(t5, e4, n4) {
      l3.addRequestsQueue(t5, e4, n4);
    }, addBufferLevel: function(t5, e4, n4) {
      l3.addBufferLevel(t5, e4, n4);
    }, addBufferState: function(t5, e4, n4) {
      l3.addBufferState(t5, e4, n4);
    }, addDroppedFrames: function(t5) {
      l3.addDroppedFrames(S2.default.VIDEO, t5);
    }, addPlayList: function() {
      i3 && (l3.addPlayList(i3), i3 = null);
    }, addDVBErrors: function(t5) {
      l3.addDVBErrors(t5);
    }, createPlaylistMetrics: function(t5, e4) {
      i3 = new It(), i3.start = /* @__PURE__ */ new Date(), i3.mstart = t5, i3.starttype = e4;
    }, createPlaylistTraceMetrics: function(t5, e4, n4) {
      true === a2 && (a2 = false, r3 = new kt(), r3.representationid = t5, r3.start = /* @__PURE__ */ new Date(), r3.mstart = e4, r3.playbackspeed = null !== n4 ? n4.toString() : null);
    }, updatePlayListTraceMetrics: function(t5) {
      if (r3)
        for (let e4 in r3)
          r3[e4] = t5[e4];
    }, pushPlayListTraceMetrics: function(t5, e4) {
      if (false === a2 && i3 && r3 && r3.start) {
        const n4 = r3.start;
        r3.duration = t5.getTime() - n4.getTime(), r3.stopreason = e4, i3.trace.push(r3), a2 = true;
      }
    }, clearAllCurrentMetrics: function() {
      l3.clearAllCurrentMetrics();
    } }, l3 = l3 || lo(e3).getInstance({ settings: t4.settings }), a2 = true, r3 = null, i3 = null, n3;
  }
  oo.__dashjs_factory_name = "DashMetrics";
  var so = N.default.getSingletonFactory(oo);
  function uo() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance(), n3 = (0, K.default)(t4).getInstance();
    let a2, r3, i3, l3;
    function o3(t5) {
      l3 = t5;
    }
    function s2(t5, e4, n4, a3) {
      let r4, i4 = e4.adaptation.period.mpd;
      const l4 = i4.availabilityStartTime;
      if (a3)
        r4 = n4 && i4.timeShiftBufferDepth !== Number.POSITIVE_INFINITY ? new Date(l4.getTime() + 1e3 * (t5 + i4.timeShiftBufferDepth)) : i4.availabilityEndTime;
      else if (n4) {
        const n5 = e4.availabilityTimeOffset;
        r4 = new Date(l4.getTime() + 1e3 * (t5 - n5));
      } else
        r4 = l4;
      return r4;
    }
    function u3(t5, e4) {
      return (t5.getTime() - e4.mpd.availabilityStartTime.getTime() + 1e3 * l3) / 1e3;
    }
    function d3(t5, e4) {
      return t5 + (e4.adaptation.period.start - e4.presentationTimeOffset);
    }
    function c3(t5) {
      const e4 = { start: NaN, end: NaN }, n4 = t5[0].getAdapter().getRegularPeriods()[0], a3 = u3(/* @__PURE__ */ new Date(), n4);
      if (!t5 || 0 === t5.length)
        return { range: e4, now: a3 };
      t5.forEach((t6) => {
        let n5 = t6.getCurrentRepresentationForType(S2.default.VIDEO);
        if (n5 || (n5 = t6.getCurrentRepresentationForType(S2.default.AUDIO)), !n5) {
          const e5 = t6.getAdapter(), a4 = e5.getMediaInfoForType(t6.getStreamInfo(), S2.default.VIDEO) || e5.getMediaInfoForType(t6.getStreamInfo(), S2.default.AUDIO);
          n5 = e5.getVoRepresentations(a4)[0];
        }
        let i5 = { start: NaN, end: NaN };
        if (n5)
          if (n5.segmentInfoType === I.default.SEGMENT_TIMELINE)
            i5 = function(t7) {
              const e5 = t7.adaptation.period.mpd.manifest.Period[t7.adaptation.period.index].AdaptationSet[t7.adaptation.index], n6 = r3.getRepresentationFor(t7.index, e5), a4 = n6.SegmentTemplate || n6.SegmentList, i6 = a4.SegmentTimeline, l4 = a4.timescale, o4 = i6.S, s3 = { start: 0, end: 0 }, u4 = o4[0].t, c4 = !isNaN(u4), f4 = c4 ? u4 : 0;
              let g4, m4, h4, p4, b3 = 0;
              for (c4 && (s3.start = d3(f4 / l4, t7)), h4 = 0, p4 = o4.length; h4 < p4; h4++)
                g4 = o4[h4], m4 = 0, g4.hasOwnProperty("r") && (m4 = g4.r), b3 += g4.d * (1 + m4);
              return s3.end = d3((f4 + b3) / l4, t7), s3;
            }(n5);
          else {
            const t7 = n5.adaptation.period;
            i5.start = t7.start, i5.end = Math.max(a3, t7.start + t7.duration);
          }
        !isNaN(i5.start) && (isNaN(e4.start) || e4.start > i5.start) && (e4.start = i5.start), !isNaN(i5.end) && (isNaN(e4.end) || e4.end < i5.end) && (e4.end = i5.end);
      }), e4.end = Math.min(a3, e4.end);
      const i4 = g3(t5, e4.end, true);
      return e4.end = isNaN(i4) ? e4.end : i4, e4.start = n4 && n4.mpd && n4.mpd.timeShiftBufferDepth && !isNaN(n4.mpd.timeShiftBufferDepth) && !isNaN(e4.end) ? Math.max(e4.end - n4.mpd.timeShiftBufferDepth, e4.start) : e4.start, e4.start = g3(t5, e4.start), { range: e4, now: a3 };
    }
    function f3(t5, e4) {
      i3 = t5 - e4.end;
    }
    function g3(t5, e4) {
      let n4 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
      try {
        let a3 = 0, r4 = false, i4 = NaN;
        for (; !r4 && a3 < t5.length; ) {
          const l4 = t5[a3].getStreamInfo();
          l4.start <= e4 && (!isFinite(l4.duration) || l4.start + l4.duration >= e4) ? (i4 = e4, r4 = true) : !n4 && l4.start > e4 && (isNaN(i4) || l4.start < i4) ? i4 = l4.start : n4 && l4.start + l4.duration < e4 && (isNaN(i4) || l4.start + l4.duration > i4) && (i4 = l4.start + l4.duration), a3 += 1;
        }
        return i4;
      } catch (t6) {
        return e4;
      }
    }
    function m3(t5) {
      void 0 === t5.offset || isNaN(t5.offset) || o3(t5.offset / 1e3);
    }
    function h3() {
      l3 = 0, i3 = 0;
    }
    function p3() {
      e3.off(R.default.UPDATE_TIME_SYNC_OFFSET, m3, this), h3();
    }
    return a2 = { initialize: function() {
      h3(), e3.on(R.default.UPDATE_TIME_SYNC_OFFSET, m3, this);
    }, getClientTimeOffset: function() {
      return l3;
    }, setClientTimeOffset: o3, getClientReferenceTime: function() {
      return Date.now() - 1e3 * i3 + 1e3 * l3;
    }, calcAvailabilityStartTimeFromPresentationTime: function(t5, e4, n4) {
      return s2(t5, e4, n4);
    }, calcAvailabilityEndTimeFromPresentationTime: function(t5, e4, n4) {
      return s2(t5, e4, n4, true);
    }, calcPresentationTimeFromWallTime: u3, calcPresentationTimeFromMediaTime: d3, calcPeriodRelativeTimeFromMpdRelativeTime: function(t5, e4) {
      return e4 - t5.adaptation.period.start;
    }, calcMediaTimeFromPresentationTime: function(t5, e4) {
      return t5 - e4.adaptation.period.start + e4.presentationTimeOffset;
    }, calcWallTimeForSegment: function(t5, e4) {
      let n4, a3, r4;
      return e4 && (n4 = t5.representation.adaptation.period.mpd.suggestedPresentationDelay, a3 = t5.presentationStartTime + n4, r4 = new Date(t5.availabilityStartTime.getTime() + 1e3 * a3)), r4;
    }, calcTimeShiftBufferWindow: function(t5, a3) {
      if (!a3)
        return function(t6) {
          const e4 = { start: NaN, end: NaN };
          let n4 = 0, a4 = NaN;
          return t6.forEach((t7) => {
            const e5 = t7.getStreamInfo();
            n4 += e5.duration, (isNaN(a4) || e5.start < a4) && (a4 = e5.start);
          }), e4.start = a4, e4.end = a4 + n4, e4;
        }(t5);
      if (n3.get().streaming.timeShiftBuffer.calcFromSegmentTimeline) {
        const e4 = c3(t5);
        return f3(e4.now, e4.range), e4.range;
      }
      return function(t6) {
        const a4 = { start: NaN, end: NaN };
        if (!t6 || 0 === t6.length)
          return a4;
        const r4 = t6[0].getAdapter().getRegularPeriods()[0], i4 = u3(/* @__PURE__ */ new Date(), r4), l4 = r4.mpd.timeShiftBufferDepth, o4 = isNaN(l4) ? 0 : i4 - l4;
        if (a4.start = g3(t6, o4), a4.end = !isNaN(a4.start) && i4 < a4.start ? i4 : g3(t6, i4, true), !isNaN(l4) && a4.end < i4 - l4 && (a4.end = NaN), n3.get().streaming.timeShiftBuffer.fallbackToSegmentTimeline) {
          const n4 = c3(t6);
          if (n4.range.end < a4.start)
            return e3.trigger(D.default.CONFORMANCE_VIOLATION, { level: Aa.LEVELS.WARNING, event: Aa.EVENTS.INVALID_DVR_WINDOW }), f3(n4.now, n4.range), n4.range;
        }
        return a4;
      }(t5);
    }, reset: p3 }, r3 = he(t4).getInstance(), p3(), a2;
  }
  uo.__dashjs_factory_name = "TimelineConverter";
  var co, fo, go, mo, ho, po = N.default.getSingletonFactory(uo), bo = function(t4) {
    for (var e3 = [], n3 = 0; n3 < t4.length; ++n3) {
      var a2 = t4.charCodeAt(n3);
      a2 < 128 ? e3.push(a2) : a2 < 2048 ? (e3.push(192 | a2 >> 6), e3.push(128 | 63 & a2)) : a2 < 65536 ? (e3.push(224 | a2 >> 12), e3.push(128 | 63 & a2 >> 6), e3.push(128 | 63 & a2)) : (e3.push(240 | a2 >> 18), e3.push(128 | 63 & a2 >> 12), e3.push(128 | 63 & a2 >> 6), e3.push(128 | 63 & a2));
    }
    return e3;
  }, yo = function(t4) {
    for (var e3 = [], n3 = 0; n3 < t4.length; ) {
      var a2 = t4[n3++];
      a2 < 128 || (a2 < 224 ? (a2 = (31 & a2) << 6, a2 |= 63 & t4[n3++]) : a2 < 240 ? (a2 = (15 & a2) << 12, a2 |= (63 & t4[n3++]) << 6, a2 |= 63 & t4[n3++]) : (a2 = (7 & a2) << 18, a2 |= (63 & t4[n3++]) << 12, a2 |= (63 & t4[n3++]) << 6, a2 |= 63 & t4[n3++])), e3.push(String.fromCharCode(a2));
    }
    return e3.join("");
  }, Eo = {};
  co = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", fo = function(t4) {
    for (var e3 = 0, n3 = [], a2 = 0 | t4.length / 3; 0 < a2--; ) {
      var r3 = (t4[e3] << 16) + (t4[e3 + 1] << 8) + t4[e3 + 2];
      e3 += 3, n3.push(co.charAt(63 & r3 >> 18)), n3.push(co.charAt(63 & r3 >> 12)), n3.push(co.charAt(63 & r3 >> 6)), n3.push(co.charAt(63 & r3));
    }
    return 2 == t4.length - e3 ? (r3 = (t4[e3] << 16) + (t4[e3 + 1] << 8), n3.push(co.charAt(63 & r3 >> 18)), n3.push(co.charAt(63 & r3 >> 12)), n3.push(co.charAt(63 & r3 >> 6)), n3.push("=")) : 1 == t4.length - e3 && (r3 = t4[e3] << 16, n3.push(co.charAt(63 & r3 >> 18)), n3.push(co.charAt(63 & r3 >> 12)), n3.push("==")), n3.join("");
  }, go = function() {
    for (var t4 = [], e3 = 0; e3 < 64; ++e3)
      t4[co.charCodeAt(e3)] = e3;
    return t4["=".charCodeAt(0)] = 0, t4;
  }(), mo = function(t4) {
    for (var e3 = 0, n3 = [], a2 = 0 | t4.length / 4; 0 < a2--; ) {
      var r3 = (go[t4.charCodeAt(e3)] << 18) + (go[t4.charCodeAt(e3 + 1)] << 12) + (go[t4.charCodeAt(e3 + 2)] << 6) + go[t4.charCodeAt(e3 + 3)];
      n3.push(255 & r3 >> 16), n3.push(255 & r3 >> 8), n3.push(255 & r3), e3 += 4;
    }
    return n3 && ("=" == t4.charAt(e3 - 2) ? (n3.pop(), n3.pop()) : "=" == t4.charAt(e3 - 1) && n3.pop()), n3;
  }, ho = { encode: function(t4) {
    for (var e3 = [], n3 = 0; n3 < t4.length; ++n3)
      e3.push(t4.charCodeAt(n3));
    return e3;
  }, decode: function(t4) {
    for (var e3 = 0; e3 < s.length; ++e3)
      a[e3] = String.fromCharCode(a[e3]);
    return a.join("");
  } }, Eo.decodeArray = function(t4) {
    var e3 = mo(t4);
    return new Uint8Array(e3);
  }, Eo.encodeASCII = function(t4) {
    var e3 = ho.encode(t4);
    return fo(e3);
  }, Eo.decodeASCII = function(t4) {
    var e3 = mo(t4);
    return ho.decode(e3);
  }, Eo.encode = function(t4) {
    var e3 = bo(t4);
    return fo(e3);
  }, Eo.decode = function(t4) {
    var e3 = mo(t4);
    return yo(e3);
  }, "undefined" != typeof exports && (exports.decode = Eo.decode, exports.decodeArray = Eo.decodeArray, exports.encode = Eo.encode, exports.encodeASCII = Eo.encodeASCII);
  var _o = Eo, To = class extends Dl {
    constructor() {
      super(), this.captionData = null, this.label = null, this.defaultTrack = false, this.kind = null, this.isFragmented = false, this.isEmbedded = false, this.isTTML = null;
    }
  }, vo = n2(7377);
  function wo() {
    let t4, e3 = 0;
    function n3(t5) {
      let e4 = "";
      for (let n4 = 0; n4 < t5.length; ++n4)
        e4 += t5[n4].uchar;
      return e4.length - e4.replace(/^\s+/, "").length;
    }
    function a2(t5) {
      return "left: " + 3.125 * t5.x + "%; top: " + 6.66 * t5.y1 + "%; width: " + (100 - 3.125 * t5.x) + "%; height: " + 6.66 * Math.max(t5.y2 - 1 - t5.y1, 1) + "%; align-items: flex-start; overflow: visible; -webkit-writing-mode: horizontal-tb;";
    }
    function r3(t5) {
      return "red" === t5 ? "rgb(255, 0, 0)" : "green" === t5 ? "rgb(0, 255, 0)" : "blue" === t5 ? "rgb(0, 0, 255)" : "cyan" === t5 ? "rgb(0, 255, 255)" : "magenta" === t5 ? "rgb(255, 0, 255)" : "yellow" === t5 ? "rgb(255, 255, 0)" : "white" === t5 ? "rgb(255, 255, 255)" : "black" === t5 ? "rgb(0, 0, 0)" : t5;
    }
    function i3(t5, e4) {
      const n4 = t5.videoHeight / 15;
      return e4 ? "font-size: " + n4 + "px; font-family: Menlo, Consolas, 'Cutive Mono', monospace; color: " + (e4.foreground ? r3(e4.foreground) : "rgb(255, 255, 255)") + "; font-style: " + (e4.italics ? "italic" : "normal") + "; text-decoration: " + (e4.underline ? "underline" : "none") + "; white-space: pre; background-color: " + (e4.background ? r3(e4.background) : "transparent") + ";" : "font-size: " + n4 + "px; font-family: Menlo, Consolas, 'Cutive Mono', monospace; justify-content: flex-start; text-align: left; color: rgb(255, 255, 255); font-style: normal; white-space: pre; line-height: normal; font-weight: normal; text-decoration: none; width: 100%; display: flex;";
    }
    function l3(t5) {
      return t5.replace(/^\s+/g, "");
    }
    function o3(t5) {
      return t5.replace(/\s+$/g, "");
    }
    return t4 = { createHTMLCaptionsFromScreen: function(t5, r4, s2, u3) {
      let d3 = null, c3 = null, f3 = false, g3 = -1, m3 = { start: r4, end: s2, spans: [] }, h3 = "style_cea608_white_black";
      const p3 = {}, b3 = {}, y3 = [];
      let E3, _3;
      for (E3 = 0; E3 < 15; ++E3) {
        const t6 = u3.rows[E3];
        let e4 = "", a3 = null;
        if (false === t6.isEmpty()) {
          const i4 = n3(t6.chars);
          null === d3 && (d3 = { x: i4, y1: E3, y2: E3 + 1, p: [] }), i4 !== g3 && f3 && (d3.p.push(m3), m3 = { start: r4, end: s2, spans: [] }, d3.y2 = E3, d3.name = "region_" + d3.x + "_" + d3.y1 + "_" + d3.y2, false === p3.hasOwnProperty(d3.name) ? (y3.push(d3), p3[d3.name] = d3) : (c3 = p3[d3.name], c3.p.contat(d3.p)), d3 = { x: i4, y1: E3, y2: E3 + 1, p: [] });
          for (let n4 = 0; n4 < t6.chars.length; ++n4) {
            const r5 = t6.chars[n4], i5 = r5.penState;
            if (null === a3 || !i5.equals(a3)) {
              e4.trim().length > 0 && (m3.spans.push({ name: h3, line: e4, row: E3 }), e4 = "");
              let t7 = "style_cea608_" + i5.foreground + "_" + i5.background;
              i5.underline && (t7 += "_underline"), i5.italics && (t7 += "_italics"), b3.hasOwnProperty(t7) || (b3[t7] = JSON.parse(JSON.stringify(i5))), a3 = i5, h3 = t7;
            }
            e4 += r5.uchar;
          }
          e4.trim().length > 0 && m3.spans.push({ name: h3, line: e4, row: E3 }), f3 = true, g3 = i4;
        } else
          f3 = false, g3 = -1, d3 && (d3.p.push(m3), m3 = { start: r4, end: s2, spans: [] }, d3.y2 = E3, d3.name = "region_" + d3.x + "_" + d3.y1 + "_" + d3.y2, false === p3.hasOwnProperty(d3.name) ? (y3.push(d3), p3[d3.name] = d3) : (c3 = p3[d3.name], c3.p.contat(d3.p)), d3 = null);
      }
      d3 && (d3.p.push(m3), d3.y2 = E3 + 1, d3.name = "region_" + d3.x + "_" + d3.y1 + "_" + d3.y2, false === p3.hasOwnProperty(d3.name) ? (y3.push(d3), p3[d3.name] = d3) : (c3 = p3[d3.name], c3.p.contat(d3.p)), d3 = null);
      const T3 = [];
      for (E3 = 0; E3 < y3.length; ++E3) {
        const n4 = y3[E3], u4 = "sub_cea608_" + e3++, d4 = document.createElement("div");
        d4.id = u4;
        const c4 = a2(n4);
        d4.style.cssText = "position: absolute; margin: 0; display: flex; box-sizing: border-box; pointer-events: none;" + c4;
        const f4 = document.createElement("div");
        f4.className = "paragraph bodyStyle", f4.style.cssText = i3(t5);
        const g4 = document.createElement("div");
        g4.className = "cueUniWrapper", g4.style.cssText = "unicode-bidi: normal; direction: ltr;";
        for (let e4 = 0; e4 < n4.p.length; ++e4) {
          const a3 = n4.p[e4];
          let r5 = 0;
          for (_3 = 0; _3 < a3.spans.length; ++_3) {
            let e5 = a3.spans[_3];
            if (e5.line.length > 0) {
              if (0 !== _3 && r5 != e5.row) {
                const t6 = document.createElement("br");
                t6.className = "lineBreak", g4.appendChild(t6);
              }
              let n5 = false;
              r5 === e5.row && (n5 = true), r5 = e5.row;
              const s3 = b3[e5.name], u5 = document.createElement("span");
              u5.className = "spanPadding " + e5.name + " customSpanColor", u5.style.cssText = i3(t5, s3), 0 !== _3 && n5 ? _3 === a3.spans.length - 1 ? u5.textContent = o3(e5.line) : u5.textContent = e5.line : a3.spans.length > 1 && _3 < a3.spans.length - 1 && e5.row === a3.spans[_3 + 1].row ? u5.textContent = l3(e5.line) : u5.textContent = e5.line.trim(), g4.appendChild(u5);
            }
          }
        }
        f4.appendChild(g4), d4.appendChild(f4);
        const m4 = { bodyStyle: ["%", 90] };
        for (const t6 in b3)
          b3.hasOwnProperty(t6) && (m4[t6] = ["%", 90]);
        T3.push({ type: "html", start: r4, end: s2, cueHTMLElement: d4, cueID: u4, cellResolution: [32, 15], isFromCEA608: true, fontSize: m4, lineHeight: {}, linePadding: {} });
      }
      return T3;
    } }, t4;
  }
  wo.__dashjs_factory_name = "EmbeddedTextHtmlRender";
  var So = N.default.getSingletonFactory(wo);
  function Io(t4, e3, n3) {
    const a2 = [];
    for (let r3 = e3; r3 < n3; r3++)
      r3 + 2 < n3 && 0 === t4.getUint8(r3) && 0 === t4.getUint8(r3 + 1) && 3 === t4.getUint8(r3 + 2) ? (a2.push(0), a2.push(0), r3 += 2) : a2.push(t4.getUint8(r3));
    return new DataView(new Uint8Array(a2).buffer);
  }
  function ko(t4, e3, n3, a2) {
    return !(4 !== t4 || e3 < 8) && (181 === n3.getUint8(a2) && (49 === n3.getUint16(a2 + 1) && (1195456820 === n3.getUint32(a2 + 3) && 3 === n3.getUint8(a2 + 7))));
  }
  function Ao(t4, e3) {
    return (127 & t4) > 0 || (127 & e3) > 0;
  }
  function Ro(t4, e3) {
    let n3 = 0;
    for (; n3 < t4.byteLength; ) {
      let r3, i3 = 0, l3 = 0;
      do {
        i3 += r3 = t4.getUint8(n3++);
      } while (255 === r3);
      do {
        l3 += r3 = t4.getUint8(n3++);
      } while (255 === r3);
      if (ko(i3, l3, t4, n3)) {
        const r4 = n3 + 10, i4 = r4 + 3 * (31 & t4.getUint8(r4 - 2));
        for (let n4 = r4; n4 < i4; n4 += 3) {
          const r5 = t4.getUint8(n4);
          if (4 & r5) {
            const i5 = 3 & r5;
            if (0 === (a2 = i5) || 1 === a2) {
              const a3 = t4.getUint8(n4 + 1), r6 = t4.getUint8(n4 + 2);
              Ao(a3, r6) && e3[i5].push(a3, r6);
            }
          }
        }
      }
      n3 += l3;
    }
    var a2;
  }
  function No(t4, e3, n3) {
    let a2 = 0, r3 = 0;
    const i3 = [[], []];
    for (let l3 = e3; l3 < e3 + n3 - 5 && (a2 = t4.getUint32(l3), r3 = 31 & t4.getUint8(l3 + 4), !(l3 + 5 + a2 > e3 + n3)); l3++)
      6 === r3 && l3 + 5 + a2 <= t4.byteLength && Ro(Io(t4, l3 + 5, l3 + 5 + a2), i3), l3 += a2 + 3;
    return i3;
  }
  function Co(t4) {
    const e3 = t4.errHandler, n3 = t4.manifestModel, a2 = t4.mediaController, r3 = t4.videoModel, i3 = t4.textTracks, l3 = t4.vttParser, o3 = t4.vttCustomRenderingParser, s2 = t4.ttmlParser, u3 = t4.streamInfo, d3 = t4.settings, c3 = this.context, f3 = (0, A.default)(c3).getInstance();
    let g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, k2, N2, D2, x2, M2, O2, P2, L2 = false;
    function F2() {
      y3 = null, _3 = NaN, T3 = [], v3 = null, E3 = false, b3 = [], p3 = null;
    }
    function U2(t5) {
      const e4 = {};
      e4[I.default.SUBTITLE] = "subtitles", e4[I.default.CAPTION] = "captions", e4[I.default.FORCED_SUBTITLE] = "subtitles";
      const n4 = new To();
      for (let e5 in t5)
        n4[e5] = t5[e5];
      n4.defaultTrack = function(t6) {
        let e5 = false;
        return N2.length > 1 && t6.isEmbedded ? e5 = t6.id && t6.id === S2.default.CC1 : 1 === N2.length ? t6.id && "string" == typeof t6.id && "CC" === t6.id.substring(0, 2) && (e5 = true) : 0 === N2.length && (e5 = t6.index === b3[0].index), e5;
      }(t5), n4.isTTML = function(t6) {
        return t6.codec && t6.codec.search(S2.default.STPP) >= 0 || t6.mimeType && t6.mimeType.search(S2.default.TTML) >= 0;
      }(t5), n4.kind = function(t6, e5) {
        let n5 = t6.roles && t6.roles.length > 0 ? e5[t6.roles[0].value] : e5.caption;
        return n5 = Object.values(e5).includes(n5) ? n5 : e5.caption, n5;
      }(t5, e4), i3.addTextTrackInfo(n4);
    }
    function j2(t5) {
      const e4 = t5.chunk;
      e4.representation.mediaInfo.embeddedCaptions && B2(e4.bytes, e4);
    }
    function q2(t5) {
      k2 = t5;
    }
    function B2(t5, a3) {
      const r4 = a3.representation.mediaInfo, o4 = r4.type, s3 = r4.mimeType, u4 = r4.codec || s3;
      u4 ? -1 !== r4.codec.indexOf("application/mp4") ? function(t6, e4, a4) {
        let r5, o5;
        if ("InitializationSegment" === e4.segmentType)
          E3 = true, _3 = h3.getMediaTimescaleFromMoov(t6);
        else {
          if (!E3)
            return;
          o5 = h3.getSamplesInfo(t6), r5 = o5.sampleList, r5.length > 0 && (v3 = r5[0].cts - e4.start * _3), a4.search(S2.default.STPP) >= 0 ? function(t7, e5, a5) {
            let r6, l4;
            for (p3 = null !== p3 ? p3 : K2(a5), r6 = 0; r6 < e5.length; r6++) {
              const a6 = e5[r6], o6 = a6.cts, s4 = Y2(), u5 = s4 + o6 / _3, d4 = u5 + a6.duration / _3;
              g3.buffered.add(u5, d4);
              const c4 = new DataView(t7, a6.offset, a6.subSizes[0]);
              let f4 = Jn.Utils.dataViewToString(c4, S2.default.UTF8);
              const h4 = [];
              let b4 = a6.offset + a6.subSizes[0];
              for (l4 = 1; l4 < a6.subSizes.length; l4++) {
                const e6 = new Uint8Array(t7, b4, a6.subSizes[l4]), n4 = String.fromCharCode.apply(null, e6);
                h4.push(n4), b4 += a6.subSizes[l4];
              }
              try {
                const t8 = n3.getValue().ttmlTimeIsRelative ? o6 / _3 : 0, e6 = p3.parse(f4, t8, o6 / _3, (o6 + a6.duration) / _3, h4);
                i3.addCaptions(k2, s4, e6);
              } catch (t8) {
                y3.removeExecutedRequestsBeforeTime(), W2(), m3.error("TTML parser error: " + t8);
              }
            }
          }(t6, r5, a4) : function(t7, e5) {
            let n4, a5, r6;
            const o6 = [];
            for (n4 = 0; n4 < e5.length; n4++) {
              const i4 = e5[n4];
              i4.cts -= v3;
              const s4 = Y2() + i4.cts / _3, u5 = s4 + i4.duration / _3;
              g3.buffered.add(s4, u5);
              const d4 = t7.slice(i4.offset, i4.offset + i4.size), c4 = Jn.parseBuffer(d4);
              for (a5 = 0; a5 < c4.boxes.length; a5++) {
                const t8 = c4.boxes[a5];
                if (m3.debug("VTT box1: " + t8.type), "vtte" !== t8.type && "vttc" === t8.type) {
                  m3.debug("VTT vttc boxes.length = " + t8.boxes.length);
                  let e6 = { styles: {} };
                  for (r6 = 0; r6 < t8.boxes.length; r6++) {
                    const n5 = t8.boxes[r6];
                    if (m3.debug("VTT box2: " + n5.type), "payl" === n5.type)
                      e6.start = i4.cts / _3, e6.end = (i4.cts + i4.duration) / _3, e6.data = n5.cue_text;
                    else if ("sttg" === n5.type && n5.settings && "" !== n5.settings)
                      try {
                        const t9 = n5.settings.split(" ");
                        e6.styles = l3.getCaptionStyles(t9);
                      } catch (t9) {
                      }
                  }
                  e6 && e6.data && (o6.push(e6), m3.debug(`VTT  ${e6.start} - ${e6.end} :  ${e6.data}`));
                }
              }
            }
            o6.length > 0 && i3.addCaptions(k2, 0, o6);
          }(t6, r5);
        }
      }(t5, a3, u4) : o4 === S2.default.VIDEO ? function(t6, e4) {
        let n4, a4;
        if (e4.segmentType === z.HTTPRequest.INIT_SEGMENT_TYPE)
          0 === D2 && (D2 = h3.getMediaTimescaleFromMoov(t6));
        else if (e4.segmentType === z.HTTPRequest.MEDIA_SEGMENT_TYPE) {
          if (0 === D2)
            return void m3.warn("CEA-608: No timescale for embeddedTextTrack yet");
          a4 = h3.getSamplesInfo(t6);
          const r5 = a4.lastSequenceNumber, l4 = Math.trunc(e4.start), o5 = Math.trunc(e4.end);
          if (O2[0] || O2[1] || function() {
            let t7;
            for (let e5 = 0; e5 < N2.length; e5++) {
              if (t7 = i3.getTrackIdxForId(N2[e5].id), -1 === t7)
                return void m3.warn("CEA-608: data before track is ready.");
              const n5 = H2(t7);
              O2[e5] = new w2(e5 + 1, { newCue: n5 }, null);
            }
          }(), D2) {
            if (function(t7, e6, n5, a5, r6) {
              return null !== t7 && null !== e6 && null !== a5 && null !== r6 && (e6 === t7 ? a5 !== r6 : e6 !== t7 + n5);
            }(x2, r5, a4.numSequences, M2, l4))
              for (n4 = 0; n4 < O2.length; n4++)
                O2[n4] && O2[n4].reset();
            const e5 = function(t7, e6) {
              if (0 === e6.length)
                return null;
              const n5 = { splits: [], fields: [[], []] }, a5 = new DataView(t7);
              for (let t8 = 0; t8 < e6.length; t8++) {
                const r6 = e6[t8], i4 = No(a5, r6.offset, r6.size);
                let l5 = null, o6 = 0;
                for (let t9 = 0; t9 < 2; t9++)
                  if (i4[t9].length > 0) {
                    r6.cts !== l5 ? o6 = 0 : o6 += 1;
                    const e7 = Y2();
                    n5.fields[t9].push([r6.cts + e7 * D2, i4[t9], o6]), l5 = r6.cts;
                  }
              }
              return n5.fields.forEach(function(t8) {
                t8.sort(function(t9, e7) {
                  return t9[0] === e7[0] ? t9[2] - e7[2] : t9[0] - e7[0];
                });
              }), n5;
            }(t6, a4.sampleList);
            for (let t7 = 0; t7 < O2.length; t7++) {
              const a5 = e5.fields[t7], r6 = O2[t7];
              if (r6)
                for (n4 = 0; n4 < a5.length; n4++)
                  r6.addData(a5[n4][0] / D2, a5[n4][1]);
            }
            x2 = r5, M2 = o5;
          }
        }
      }(t5, a3) : function(t6, n4, a4) {
        let r5, l4;
        const o5 = new DataView(t6, 0, t6.byteLength);
        l4 = Jn.Utils.dataViewToString(o5, S2.default.UTF8);
        try {
          r5 = K2(a4).parse(l4, 0), i3.addCaptions(i3.getCurrentTrackIdx(), 0, r5), g3.buffered && g3.buffered.add(n4.start, n4.end);
        } catch (t7) {
          e3.error(new G.default(V.TIMED_TEXT_ERROR_ID_PARSE_CODE, V.TIMED_TEXT_ERROR_MESSAGE_PARSE + t7.message, l4));
        }
      }(t5, a3, u4) : m3.error("No text type defined");
    }
    function H2(t5) {
      return function(e4, n4, a3) {
        let l4;
        l4 = r3.getTTMLRenderingDiv() ? P2.createHTMLCaptionsFromScreen(r3.getElement(), e4, n4, a3) : [{ start: e4, end: n4, data: a3.getDisplayText(), styles: {} }], l4 && i3.addCaptions(t5, 0, l4);
      };
    }
    function Y2() {
      return isNaN(g3.timestampOffset) ? 0 : g3.timestampOffset;
    }
    function K2(t5) {
      let e4;
      return t5.search(S2.default.VTT) >= 0 ? e4 = d3.get().streaming.text.webvtt.customRenderingEnabled && o3 ? o3 : l3 : (t5.search(S2.default.TTML) >= 0 || t5.search(S2.default.STPP) >= 0) && (e4 = s2), e4;
    }
    function W2(t5, e4) {
      void 0 === t5 && t5 === e4 && (t5 = g3.buffered.start(0), e4 = g3.buffered.end(g3.buffered.length - 1)), g3.buffered.remove(t5, e4), i3.deleteCuesFromTrackIdx(k2, t5, e4);
    }
    function $2(t5) {
      N2.forEach(function(e4) {
        const n4 = i3.getTrackIdxForId(e4.id);
        n4 >= 0 && i3.deleteCuesFromTrackIdx(n4, t5.from, t5.to);
      });
    }
    return g3 = { initialize: function() {
      L2 || (N2 = [], k2 = null, D2 = 0, O2 = [], x2 = null, M2 = null, L2 = true, P2 = So(c3).getInstance(), f3.on(R.default.VIDEO_CHUNK_RECEIVED, j2, g3), f3.on(R.default.BUFFER_CLEARED, $2, g3));
    }, addMediaInfos: function(t5, e4, n4) {
      if (b3 = b3.concat(e4), t5 === S2.default.TEXT && e4[0].isFragmented && !e4[0].isEmbedded) {
        y3 = n4, g3.buffered = (0, vo.default)(c3).create(), T3 = a2.getTracksFor(S2.default.TEXT, u3.id).filter((t7) => t7.isFragmented);
        const t6 = a2.getCurrentTrackFor(S2.default.TEXT, u3.id);
        for (let e5 = 0; e5 < T3.length; e5++)
          if (T3[e5] === t6) {
            q2(e5);
            break;
          }
      }
      for (let t6 = 0; t6 < e4.length; t6++)
        U2(e4[t6]);
    }, resetMediaInfos: function() {
      b3 = [];
    }, getStreamId: function() {
      return u3.id;
    }, append: B2, abort: function() {
    }, addEmbeddedTrack: function(t5) {
      if (L2 && t5)
        if (t5.id === S2.default.CC1 || t5.id === S2.default.CC3) {
          for (let e4 = 0; e4 < N2.length; e4++)
            if (N2[e4].id === t5.id)
              return;
          N2.push(t5);
        } else
          m3.warn("Embedded track " + t5.id + " not supported!");
    }, resetEmbedded: function() {
      f3.off(R.default.VIDEO_CHUNK_RECEIVED, j2, g3), f3.off(R.default.BUFFER_CLEARED, $2, g3), i3 && i3.deleteAllTextTracks(), L2 = false, N2 = [], O2 = [null, null], x2 = null, M2 = null;
    }, getConfig: function() {
      return { fragmentModel: y3, fragmentedTracks: T3, videoModel: r3 };
    }, setCurrentFragmentedTrackIdx: q2, remove: W2, reset: function() {
      F2(), b3 = [], h3 = null;
    } }, m3 = (0, C.default)(c3).getInstance().getLogger(g3), h3 = na(c3).getInstance(), F2(), g3;
  }
  Co.__dashjs_factory_name = "TextSourceBuffer";
  var Do = N.default.getClassFactory(Co);
  class xo {
    constructor(t4) {
      if (this.cues = /* @__PURE__ */ new Map(), t4)
        for (const e3 of t4)
          this.addCue(e3);
    }
    hasCue(t4) {
      const e3 = this.cues.get(t4.startTime);
      return e3 && e3.some((e4) => {
        return a2 = t4, (n3 = e4).startTime === a2.startTime && n3.endTime === a2.endTime && n3 instanceof VTTCue && a2 instanceof VTTCue && n3.text === a2.text;
        var n3, a2;
      });
    }
    addCue(t4) {
      const e3 = this.cues.get(t4.startTime);
      e3 ? this.hasCue(t4) || e3.push(t4) : this.cues.set(t4.startTime, [t4]);
    }
  }
  var Mo = n2(7640);
  const zo = ["text", "align", "fontSize", "id", "isd", "line", "lineAlign", "lineHeight", "linePadding", "position", "positionAlign", "region", "size", "snapToLines", "vertical"];
  function Oo(t4) {
    const e3 = this.context, n3 = (0, A.default)(e3).getInstance(), a2 = t4.videoModel, r3 = t4.streamInfo, i3 = t4.settings;
    let l3, o3, s2, u3, d3, c3, f3, g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, w3, I2, k2;
    function N2(t5) {
      const e4 = t5.kind, n4 = void 0 !== t5.id ? t5.id : t5.lang, r4 = t5.lang, i4 = t5.isTTML, l4 = t5.isEmbedded;
      return a2.addTextTrack(e4, n4, r4, i4, l4);
    }
    function x2(t5, e4, n4, a3, r4, i4) {
      let l4 = 0, o4 = 0;
      t5 / e4 > n4 / a3 ? (o4 = e4, l4 = o4 / a3 * n4) : (l4 = t5, o4 = l4 / n4 * a3);
      let s3 = 0, u4 = 0, d4 = 0, c4 = 0;
      return l4 / o4 > r4 ? (c4 = o4, d4 = o4 * r4) : (d4 = l4, c4 = l4 / r4), s3 = (t5 - d4) / 2, u4 = (e4 - c4) / 2, i4 ? { x: s3 + 0.1 * d4, y: u4 + 0.1 * c4, w: 0.8 * d4, h: 0.8 * c4 } : { x: s3, y: u4, w: d4, h: c4 };
    }
    function M2(t5, e4) {
      const r4 = a2.getClientWidth(), i4 = a2.getClientHeight(), l4 = a2.getVideoWidth(), o4 = a2.getVideoHeight(), s3 = a2.getVideoRelativeOffsetTop(), u4 = a2.getVideoRelativeOffsetLeft();
      if (0 !== l4 && 0 !== o4) {
        let a3 = l4 / o4, d4 = false;
        t5.isFromCEA608 && (a3 = 3.5 / 3, d4 = true);
        const c4 = x2.call(this, r4, i4, l4, o4, a3, d4), b4 = c4.w, y4 = c4.h, T4 = c4.x, w4 = c4.y;
        if (b4 != m3 || y4 != h3 || T4 != f3 || w4 != g3 || e4) {
          if (f3 = T4 + u4, g3 = w4 + s3, m3 = b4, h3 = y4, p3) {
            const t6 = p3.style;
            t6 && (t6.left = f3 + "px", t6.top = g3 + "px", t6.width = m3 + "px", t6.height = h3 + "px", t6.zIndex = E3 && document[E3] || _3 ? v3 : null, n3.trigger(D.default.CAPTION_CONTAINER_RESIZE));
          }
          const e5 = t5.activeCues;
          if (e5) {
            const t6 = e5.length;
            for (let n4 = 0; n4 < t6; ++n4) {
              const t7 = e5[n4];
              t7.scaleCue(t7);
            }
          }
        }
      }
    }
    function z2(t5) {
      const e4 = m3, n4 = h3;
      let a3, r4, i4, l4, o4;
      if (t5.cellResolution) {
        const s3 = [e4 / t5.cellResolution[0], n4 / t5.cellResolution[1]];
        if (t5.linePadding) {
          for (a3 in t5.linePadding)
            if (t5.linePadding.hasOwnProperty(a3)) {
              r4 = (t5.linePadding[a3] * s3[0]).toString();
              const e5 = document.getElementsByClassName("spanPadding");
              for (let t6 = 0; t6 < e5.length; t6++)
                e5[t6].style.cssText = e5[t6].style.cssText.replace(/(padding-left\s*:\s*)[\d.,]+(?=\s*px)/gi, "$1" + r4), e5[t6].style.cssText = e5[t6].style.cssText.replace(/(padding-right\s*:\s*)[\d.,]+(?=\s*px)/gi, "$1" + r4);
            }
        }
        if (t5.fontSize) {
          for (a3 in t5.fontSize)
            if (t5.fontSize.hasOwnProperty(a3)) {
              "%" === t5.fontSize[a3][0] ? i4 = t5.fontSize[a3][1] / 100 : "c" === t5.fontSize[a3][0] && (i4 = t5.fontSize[a3][1]), r4 = (i4 * s3[1]).toString(), o4 = "defaultFontSize" !== a3 ? document.getElementsByClassName(a3) : document.getElementsByClassName("paragraph");
              for (let t6 = 0; t6 < o4.length; t6++)
                o4[t6].style.cssText = o4[t6].style.cssText.replace(/(font-size\s*:\s*)[\d.,]+(?=\s*px)/gi, "$1" + r4);
            }
          if (t5.lineHeight) {
            for (a3 in t5.lineHeight)
              if (t5.lineHeight.hasOwnProperty(a3)) {
                "%" === t5.lineHeight[a3][0] ? l4 = t5.lineHeight[a3][1] / 100 : "c" === t5.fontSize[a3][0] && (l4 = t5.lineHeight[a3][1]), r4 = (l4 * s3[1]).toString(), o4 = document.getElementsByClassName(a3);
                for (let t6 = 0; t6 < o4.length; t6++)
                  o4[t6].style.cssText = o4[t6].style.cssText.replace(/(line-height\s*:\s*)[\d.,]+(?=\s*px)/gi, "$1" + r4);
              }
          }
        }
      }
      if (t5.isd) {
        let e5 = document.getElementById(t5.cueID);
        e5 && p3.removeChild(e5), P2(t5);
      }
    }
    function O2(t5, e4) {
      const n4 = /^(urn:)(mpeg:[a-z0-9][a-z0-9-]{0,31}:)(subs:)([0-9]+)$/, a3 = /^#(.*)$/;
      if (n4.test(e4)) {
        const a4 = n4.exec(e4), r4 = parseInt(a4[4], 10) - 1;
        return "data:image/png;base64," + btoa(t5.images[r4]);
      }
      if (a3.test(e4)) {
        const n5 = a3.exec(e4)[1];
        return "data:image/png;base64," + t5.embeddedImages[n5];
      }
      return e4;
    }
    function P2(t5) {
      if (p3) {
        it2.call(this);
        const e4 = document.createElement("div");
        p3.appendChild(e4), T3 = (0, Mo.renderHTML)(t5.isd, e4, function(e5) {
          return O2(t5, e5);
        }, p3.clientHeight, p3.clientWidth, i3.get().streaming.text.imsc.displayForcedOnlyMode, function(t6) {
          o3.info("renderCaption :", t6);
        }, T3, i3.get().streaming.text.imsc.enableRollUp), e4.id = t5.cueID, n3.trigger(D.default.CAPTION_RENDERED, { captionDiv: e4, currentTrackIdx: c3 });
      }
    }
    function L2(t5, e4) {
      return !!e4 && e4.endTime >= t5.startTime;
    }
    function F2(t5, e4) {
      return !!i3.get().streaming.text.extendSegmentedCues && !!function(t6, e5, n4) {
        for (let a3 = 0; a3 < n4.length; a3++) {
          const r4 = n4[a3];
          if (JSON.stringify(t6[r4]) !== JSON.stringify(e5[r4]))
            return false;
        }
        return true;
      }(e4, t5, zo) && (e4.endTime = Math.max(e4.endTime, t5.endTime), true);
    }
    function U2(t5, e4) {
      e4 && e4.forEach((e5) => {
        e5.kind && "image" === e5.kind && (e5.src = O2(t5, e5.src)), U2(t5, e5.contents);
      });
    }
    function j2(t5, e4, n4) {
      const r4 = X2(t5), l4 = i3.get().streaming.text.dispatchForManualRendering;
      if (!r4)
        return;
      if (!Array.isArray(n4) || 0 === n4.length)
        return;
      const s3 = new xo(r4.cues);
      for (let t6 = 0; t6 < n4.length; t6++) {
        let u4 = null;
        const d4 = n4[t6];
        r4.cellResolution = d4.cellResolution, r4.isFromCEA608 = d4.isFromCEA608, isNaN(d4.start) || isNaN(d4.end) || (l4 ? u4 = q2(d4, e4) : V2(d4) && p3 ? u4 = H2(d4, e4, r4) : d4.data && (u4 = Y2(d4, e4, r4)));
        try {
          if (u4) {
            if (!s3.hasCue(u4))
              if (s3.addCue(u4), i3.get().streaming.text.webvtt.customRenderingEnabled)
                r4.manualCueList || (r4.manualCueList = []), r4.manualCueList.push(u4);
              else {
                let t8;
                r4.cues && 0 !== r4.cues.length && (t8 = r4.cues[r4.cues.length - 1]), L2(u4, t8) ? F2(u4, t8) || (t8.isd && (t8.onexit = function() {
                }), r4.mode !== S2.default.TEXT_DISABLED && r4.addCue(u4)) : r4.mode !== S2.default.TEXT_DISABLED && r4.addCue(u4);
              }
            const t7 = i3.get().streaming.buffer.bufferToKeep;
            tt2(r4, 0, a2.getTime() - t7);
          } else
            o3.error("Impossible to display subtitles. You might have missed setting a TTML rendering div via player.attachTTMLRenderingDiv(TTMLRenderingDiv)");
        } catch (t7) {
          throw et2(r4), r4.addCue(u4), t7;
        }
      }
    }
    function q2(t5, e4) {
      let n4 = K2(t5, e4);
      return n4.onenter = function() {
        V2(t5) && k2 && k2.cueID !== n4.cueID && G2(k2), delete n4.type, k2 = n4, B2(n4);
      }, n4.onexit = function() {
        G2(n4), k2 = null;
      }, n4;
    }
    function B2(t5) {
      n3.trigger(D.default.CUE_ENTER, t5);
    }
    function G2(t5) {
      n3.trigger(D.default.CUE_EXIT, { cueID: t5.cueID });
    }
    function H2(t5, e4, a3) {
      const r4 = this;
      let i4 = K2(t5, e4);
      return p3.style.left = f3 + "px", p3.style.top = g3 + "px", p3.style.width = m3 + "px", p3.style.height = h3 + "px", i4.onenter = function() {
        a3.mode === S2.default.TEXT_SHOWING && (this.isd ? (I2 ? requestAnimationFrame(() => P2(this)) : P2(this), o3.debug("Cue enter id:" + this.cueID)) : (p3.appendChild(this.cueHTMLElement), z2.call(r4, this), n3.trigger(D.default.CAPTION_RENDERED, { captionDiv: this.cueHTMLElement, currentTrackIdx: c3 })));
      }, i4.onexit = function() {
        if (p3) {
          const t6 = p3.childNodes;
          for (let e5 = 0; e5 < t6.length; ++e5)
            t6[e5].id === this.cueID && (o3.debug("Cue exit id:" + t6[e5].id), p3.removeChild(t6[e5]), --e5);
        }
      }, i4;
    }
    function Y2(t5, e4, a3) {
      let r4 = K2(t5, e4);
      if (r4.isActive = false, t5.styles)
        try {
          void 0 !== t5.styles.align && "align" in r4 && (r4.align = t5.styles.align), void 0 !== t5.styles.line && "line" in r4 && (r4.line = t5.styles.line), void 0 !== t5.styles.lineAlign && (r4.lineAlign = t5.styles.lineAlign), void 0 !== t5.styles.snapToLines && "snapToLines" in r4 && (r4.snapToLines = t5.styles.snapToLines), void 0 !== t5.styles.position && "position" in r4 && (r4.position = t5.styles.position), void 0 !== t5.styles.positionAlign && (r4.positionAlign = t5.styles.positionAlign), void 0 !== t5.styles.size && "size" in r4 && (r4.size = t5.styles.size);
        } catch (t6) {
          o3.error(t6);
        }
      return r4.onenter = function() {
        a3.mode === S2.default.TEXT_SHOWING && n3.trigger(D.default.CAPTION_RENDERED, { currentTrackIdx: c3 });
      }, r4;
    }
    function V2(t5) {
      return "html" === t5.type;
    }
    function K2(t5, e4) {
      return V2(t5) ? function(t6, e5) {
        let n4 = new s2(t6.start + e5, t6.end + e5, "");
        return n4.cueHTMLElement = t6.cueHTMLElement, n4.isd = t6.isd, n4.images = t6.images, n4.embeddedImages = t6.embeddedImages, n4.cueID = t6.cueID, n4.scaleCue = z2.bind(self), n4.cellResolution = t6.cellResolution, n4.lineHeight = t6.lineHeight, n4.linePadding = t6.linePadding, n4.fontSize = t6.fontSize, n4.isd && U2(n4, n4.isd.contents), n4;
      }(t5, e4) : function(t6, e5) {
        let n4 = new s2(t6.start - e5, t6.end - e5, t6.data);
        return n4.cueID = Gt.default.generateUuid(), n4;
      }(t5, e4);
    }
    function W2(t5) {
      if (b3) {
        const e4 = b3.childNodes;
        for (let n4 = 0; n4 < e4.length; ++n4)
          e4[n4].id === t5.cueID && (b3.removeChild(e4[n4]), --n4);
      }
    }
    function $2() {
      const t5 = a2.getTextTracks(), e4 = [];
      for (const n4 of t5)
        n4.manualMode === S2.default.TEXT_SHOWING && e4.push(n4);
      return e4;
    }
    function X2(t5) {
      return t5 >= 0 && u3[t5] ? a2.getTextTrack(u3[t5].kind, u3[t5].id, u3[t5].lang, u3[t5].isTTML, u3[t5].isEmbedded) : null;
    }
    function Q2(t5) {
      if (t5 === c3)
        return;
      c3 = t5;
      const e4 = X2(c3);
      Z2.call(this, e4), y3 && (clearInterval(y3), y3 = null), e4 && "html" === e4.renderingType && (M2.call(this, e4, true), window.ResizeObserver ? (w3 = new window.ResizeObserver(() => {
        M2.call(this, e4, true);
      }), w3.observe(a2.getElement())) : y3 = setInterval(M2.bind(this, e4), 500));
    }
    function Z2(t5) {
      it2.call(this), t5 && "html" === t5.renderingType ? at2.call(this) : rt2.call(this);
    }
    function J2(t5, e4, n4) {
      let a3 = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3];
      return !!t5 && (isNaN(e4) || (a3 ? t5.startTime : t5.endTime) >= e4) && (isNaN(n4) || (a3 ? t5.endTime : t5.startTime) <= n4);
    }
    function tt2(t5, e4, n4) {
      if (!(n4 < e4) && t5 && (t5.cues || t5.manualCueList)) {
        const a3 = t5.cues && t5.cues.length > 0 ? "native" : "custom", r4 = "native" === a3 ? t5.cues : t5.manualCueList;
        if (!r4 || 0 === r4.length)
          return;
        for (let i4 = r4.length - 1; i4 >= 0; i4--)
          J2(r4[i4], e4, n4, true) && !nt2(r4[i4]) && ("native" === a3 ? t5.removeCue(r4[i4]) : (W2(r4[i4]), delete t5.manualCueList[i4]));
      }
    }
    function et2(t5, e4, n4) {
      let a3 = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3];
      if (t5 && (t5.cues || t5.manualCueList)) {
        const r4 = t5.cues && t5.cues.length > 0 ? "native" : "custom", i4 = "native" === r4 ? t5.cues : t5.manualCueList;
        if (!i4 || 0 === i4.length)
          return;
        for (let l4 = i4.length - 1; l4 >= 0; l4--)
          J2(i4[l4], e4, n4, a3) && ("native" === r4 ? (i4[l4].onexit && i4[l4].onexit(), t5.removeCue(i4[l4])) : (W2(i4[l4]), delete t5.manualCueList[l4]));
      }
    }
    function nt2(t5) {
      const e4 = a2.getTime();
      return e4 >= t5.startTime && e4 <= t5.endTime;
    }
    function at2() {
      let t5 = document.getElementById("native-cue-style");
      if (t5)
        return;
      t5 = document.createElement("style"), t5.id = "native-cue-style", document.head.appendChild(t5);
      const e4 = t5.sheet, n4 = a2.getElement();
      try {
        n4 && (n4.id ? e4.insertRule("#" + n4.id + "::cue {background: transparent}", 0) : 0 !== n4.classList.length ? e4.insertRule("." + n4.className + "::cue {background: transparent}", 0) : e4.insertRule("video::cue {background: transparent}", 0));
      } catch (t6) {
        o3.info("" + t6.message);
      }
    }
    function rt2() {
      const t5 = document.getElementById("native-cue-style");
      t5 && document.head.removeChild(t5);
    }
    function it2() {
      if (p3)
        for (; p3.firstChild; )
          p3.removeChild(p3.firstChild);
    }
    return l3 = { addCaptions: j2, addTextTrackInfo: function(t5) {
      u3.push(t5);
    }, createTracks: function() {
      u3.sort(function(t6, e4) {
        return t6.index - e4.index;
      }), p3 = a2.getTTMLRenderingDiv(), b3 = a2.getVttRenderingDiv();
      let t5 = -1;
      for (let e4 = 0; e4 < u3.length; e4++) {
        const a3 = N2(u3[e4]);
        d3.push(a3), u3[e4].defaultTrack && (a3.default = true, t5 = e4);
        const r4 = X2(e4);
        r4 && (r4.mode = S2.default.TEXT_SHOWING, p3 && (u3[e4].isTTML || u3[e4].isEmbedded) ? r4.renderingType = "html" : r4.renderingType = "default"), j2(e4, 0, u3[e4].captionData), n3.trigger(D.default.TEXT_TRACK_ADDED);
      }
      if (Q2.call(this, t5), t5 >= 0) {
        let e4 = function() {
          const a3 = X2(t5);
          a3 && "html" === a3.renderingType && M2.call(this, a3, true), n3.off(D.default.PLAYBACK_METADATA_LOADED, e4, this);
        };
        n3.on(D.default.PLAYBACK_METADATA_LOADED, e4, this);
        for (let e5 = 0; e5 < u3.length; e5++) {
          const n4 = X2(e5);
          if (n4) {
            const a3 = i3.get().streaming.text.dispatchForManualRendering;
            n4.mode = e5 !== t5 || a3 ? S2.default.TEXT_HIDDEN : S2.default.TEXT_SHOWING, n4.manualMode = e5 === t5 ? S2.default.TEXT_SHOWING : S2.default.TEXT_HIDDEN;
          }
        }
      }
      n3.trigger(R.default.TEXT_TRACKS_QUEUE_INITIALIZED, { index: c3, tracks: u3, streamId: r3.id });
    }, deleteAllTextTracks: function() {
      const t5 = d3 ? d3.length : 0;
      for (let e4 = 0; e4 < t5; e4++) {
        const t6 = X2(e4);
        t6 && et2.call(this, t6, r3.start, r3.start + r3.duration, false);
      }
      d3 = [], u3 = [], y3 && (clearInterval(y3), y3 = null), w3 && a2 && (w3.unobserve(a2.getElement()), w3 = null), c3 = -1, it2.call(this);
    }, deleteCuesFromTrackIdx: function(t5, e4, n4) {
      const a3 = X2(t5);
      a3 && et2(a3, e4, n4);
    }, disableManualTracks: function() {
      const t5 = $2();
      if (t5 && t5.length > 0) {
        const e4 = t5[0].manualCueList;
        e4 && e4.length > 0 && e4.forEach((t6) => {
          if (t6.isActive) {
            if (t6.isActive = false, i3.get().streaming.text.dispatchForManualRendering)
              G2(t6);
            else if (b3) {
              const e5 = b3.childNodes;
              for (let n4 = 0; n4 < e5.length; ++n4)
                e5[n4].id === t6.cueID && (b3.removeChild(e5[n4]), --n4);
            }
          }
        });
      }
    }, getCurrentTrackIdx: function() {
      return c3;
    }, getCurrentTextTrackInfo: function() {
      return u3[c3];
    }, getStreamId: function() {
      return r3.id;
    }, getTextTrackInfos: function() {
      return u3;
    }, getTrackIdxForId: function(t5) {
      let e4 = -1;
      for (let n4 = 0; n4 < u3.length; n4++)
        if (u3[n4].id === t5) {
          e4 = n4;
          break;
        }
      return e4;
    }, initialize: function() {
      "undefined" != typeof window && "undefined" != typeof navigator && (s2 = window.VTTCue || window.TextTrackCue, u3 = [], d3 = [], c3 = -1, f3 = 0, g3 = 0, m3 = 0, h3 = 0, p3 = null, b3 = null, y3 = null, _3 = false, v3 = 2147483647, T3 = null, I2 = "requestAnimationFrame" in window, void 0 !== document.fullscreenElement ? E3 = "fullscreenElement" : void 0 !== document.webkitIsFullScreen ? E3 = "webkitIsFullScreen" : document.msFullscreenElement ? E3 = "msFullscreenElement" : document.mozFullScreen && (E3 = "mozFullScreen"));
    }, manualCueProcessing: function(t5) {
      const e4 = $2();
      if (e4 && e4.length > 0) {
        const n4 = e4[0].manualCueList;
        n4 && n4.length > 0 && n4.forEach((e5) => {
          e5.startTime <= t5 && e5.endTime >= t5 && !e5.isActive ? (e5.isActive = true, i3.get().streaming.text.dispatchForManualRendering ? B2(e5) : WebVTT.processCues(window, [e5], b3, e5.cueID)) : e5.isActive && (e5.startTime > t5 || e5.endTime < t5) && (e5.isActive = false, i3.get().streaming.text.dispatchForManualRendering ? G2(e5) : W2(e5));
        });
      }
    }, setCurrentTrackIdx: Q2, setModeForTrackIdx: function(t5, e4) {
      const n4 = X2(t5);
      n4 && n4.mode !== e4 && (n4.mode = e4), n4 && n4.manualMode !== e4 && (n4.manualMode = e4);
    } }, o3 = (0, C.default)(e3).getInstance().getLogger(l3), l3;
  }
  Oo.__dashjs_factory_name = "TextTracks";
  var Po = N.default.getClassFactory(Oo);
  function Lo() {
    const t4 = this.context;
    let e3, n3, a2, r3, i3, l3;
    function o3(t5) {
      const e4 = t5.split(":"), n4 = e4.length - 1;
      return t5 = 60 * parseInt(e4[n4 - 1], 10) + parseFloat(e4[n4]), 2 === n4 && (t5 += 3600 * parseInt(e4[0], 10)), t5;
    }
    function s2(t5) {
      const e4 = t5.split(r3), n4 = e4[1].split(l3);
      return n4.shift(), e4[1] = n4[0], n4.shift(), { cuePoints: e4, styles: u3(n4) };
    }
    function u3(t5) {
      const e4 = {};
      return t5.forEach(function(t6) {
        const n4 = t6.split(":");
        if (n4.length > 1) {
          const [t7, a3] = n4;
          switch (t7) {
            case "align":
            case "A":
              e4.align = a3;
              break;
            case "line":
            case "L":
              const [t8, n5] = a3.split(","), r4 = t8.endsWith("%");
              e4.line = "auto" === t8 ? t8 : parseInt(t8, 10), r4 && (e4.snapToLines = false), n5 && (e4.lineAlign = n5);
              break;
            case "position":
            case "P":
              const [i4, l4] = a3.split(",");
              e4.position = parseInt(i4, 10), l4 && (e4.positionAlign = l4);
              break;
            case "size":
            case "S":
              e4.size = parseInt(a3, 10);
          }
        }
      }), e4;
    }
    function d3(t5, e4) {
      let n4, a3 = e4, i4 = "", l4 = "";
      for (; "" !== t5[a3] && a3 < t5.length; )
        a3++;
      if (n4 = a3 - e4, n4 > 1)
        for (let a4 = 0; a4 < n4; a4++) {
          if (l4 = t5[e4 + a4], l4.match(r3)) {
            i4 = "";
            break;
          }
          i4 += l4, a4 !== n4 - 1 && (i4 += "\n");
        }
      else
        l4 = t5[e4], l4.match(r3) || (i4 = l4);
      return i4;
    }
    return e3 = { parse: function(t5) {
      const e4 = [];
      let l4, u4;
      if (!t5)
        return e4;
      l4 = (t5 = t5.split(a2)).length, u4 = -1;
      for (let a3 = 0; a3 < l4; a3++) {
        let l5 = t5[a3];
        if (l5.length > 0 && "WEBVTT" !== l5 && l5.match(r3)) {
          const r4 = s2(l5), c3 = r4.cuePoints, f3 = r4.styles, g3 = d3(t5, a3 + 1), m3 = o3(c3[0].replace(i3, "")), h3 = o3(c3[1].replace(i3, ""));
          !isNaN(m3) && !isNaN(h3) && m3 >= u4 && h3 > m3 ? "" !== g3 ? (u4 = m3, e4.push({ start: m3, end: h3, data: g3, styles: f3 })) : n3.error("Skipping cue due to empty/malformed cue text") : n3.error("Skipping cue due to incorrect cue timing");
        }
      }
      return e4;
    }, getCaptionStyles: u3 }, n3 = (0, C.default)(t4).getInstance().getLogger(e3), a2 = /(?:\r\n|\r|\n)/gm, r3 = /-->/, i3 = /(^[\s]+|[\s]+$)/g, l3 = /\s\b/g, e3;
  }
  Lo.__dashjs_factory_name = "VTTParser";
  var Fo = N.default.getSingletonFactory(Lo);
  function Uo() {
    let t4, e3;
    return t4 = { parse: function(t5) {
      let n3 = [];
      return e3.oncue = function(t6) {
        t6.start = t6.startTime, t6.end = t6.endTime, t6.data = t6.text, t6.styles = { align: t6.align, line: t6.line, position: t6.position, size: t6.size }, n3.push(t6);
      }, e3.parse(t5), n3;
    } }, function() {
      try {
        window && window.WebVTT && window.WebVTT.Parser && (e3 = new window.WebVTT.Parser(window, window.vttjs, window.WebVTT.StringDecoder()));
      } catch (t5) {
      }
    }(), t4;
  }
  Uo.__dashjs_factory_name = "VttCustomRenderingParser";
  var jo = N.default.getSingletonFactory(Uo);
  function qo() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3 = 0;
    function i3() {
      const t5 = "cue_TTML_" + r3;
      return r3++, t5;
    }
    return n3 = { parse: function(t5, n4, r4, l3, o3) {
      let s2 = "";
      const u3 = [];
      let d3, c3, f3;
      const g3 = {}, m3 = {};
      let h3 = "", p3 = "", b3 = { onOpenTag: function(t6, n5, r5) {
        if (r5[" imagetype"] && !r5[" imageType"] && (e3.trigger(D.default.CONFORMANCE_VIOLATION, { level: Aa.LEVELS.ERROR, event: Aa.EVENTS.NON_COMPLIANT_SMPTE_IMAGE_ATTRIBUTE }), r5[" imageType"] = r5[" imagetype"]), "image" === n5 && ("http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt" === t6 || "http://www.smpte-ra.org/schemas/2052-1/2013/smpte-tt" === t6)) {
          if (!r5[" imageType"] || "PNG" !== r5[" imageType"].value)
            return void a2.warn("smpte-tt imageType != PNG. Discarded");
          h3 = r5["http://www.w3.org/XML/1998/namespace id"].value;
        }
      }, onCloseTag: function() {
        h3 && (m3[h3] = p3.trim()), p3 = "", h3 = "";
      }, onText: function(t6) {
        h3 && (p3 += t6);
      } };
      if (!t5)
        throw s2 = "no ttml data to parse", new Error(s2);
      g3.data = t5, e3.trigger(R.default.TTML_TO_PARSE, g3);
      let y3 = (0, Mo.fromXML)(g3.data, function(t6) {
        s2 = t6;
      }, b3);
      e3.trigger(R.default.TTML_PARSED, { ttmlString: g3.data, ttmlDoc: y3 });
      const E3 = y3.getMediaTimeEvents();
      for (f3 = 0; f3 < E3.length; f3++) {
        let t6 = (0, Mo.generateISD)(y3, E3[f3], function(t7) {
          s2 = t7;
        });
        t6.contents.some((t7) => t7.contents.length) && (d3 = E3[f3] + n4, c3 = E3[f3 + 1] + n4, d3 < c3 && u3.push({ start: d3, end: c3, type: "html", cueID: i3(), isd: t6, images: o3, embeddedImages: m3 }));
      }
      if ("" !== s2)
        throw a2.error(s2), new Error(s2);
      return u3;
    } }, a2 = (0, C.default)(t4).getInstance().getLogger(n3), n3;
  }
  qo.__dashjs_factory_name = "TTMLParser";
  var Bo = N.default.getSingletonFactory(qo);
  function Go(t4) {
    let e3 = this.context;
    const n3 = (0, A.default)(e3).getInstance(), a2 = St(e3).getInstance(), r3 = t4.adapter, i3 = t4.baseURLController, l3 = "error", o3 = "loaded", s2 = "unloaded";
    let u3, d3, c3;
    function f3(t5, e4) {
      let n4, l4, o4 = false;
      if (i3.resolve()) {
        const e5 = r3.getVoRepresentations(t5);
        e5 && e5.length > 0 && (n4 = i3.resolve(e5[0].path).url);
      }
      const u4 = t5.essentialProperties.filter((t6) => t6.schemeIdUri && t6.schemeIdUri === S2.default.FONT_DOWNLOAD_DVB_SCHEME), d4 = t5.supplementalProperties.filter((t6) => t6.schemeIdUri && t6.schemeIdUri === S2.default.FONT_DOWNLOAD_DVB_SCHEME);
      u4.length > 0 ? (o4 = true, l4 = u4) : l4 = d4, l4.forEach((r4) => {
        if (function(t6) {
          return !(!(t6.value && 1 === parseInt(t6.value) && t6.dvbUrl && t6.dvbUrl.length > 0 && t6.dvbFontFamily && t6.dvbFontFamily.length > 0 && t6.dvbMimeType) || t6.dvbMimeType !== S2.default.OFF_MIMETYPE && t6.dvbMimeType !== S2.default.WOFF_MIMETYPE);
        }(r4)) {
          let u5 = (i4 = r4.dvbUrl, l5 = n4, a2.isPathAbsolute(i4) ? i4 : a2.isRelative(i4) ? l5 ? a2.resolve(i4, l5) : a2.resolve(i4) : i4);
          c3.push({ fontFamily: r4.dvbFontFamily, url: u5, mimeType: r4.dvbMimeType, trackId: t5.id, streamId: e4, isEssential: o4, status: s2, fontFace: new FontFace(r4.dvbFontFamily, `url(${u5})`, { display: "swap" }) });
        }
        var i4, l5;
      });
    }
    function g3(t5, e4) {
      const n4 = c3[t5];
      c3[t5] = { ...n4, status: e4 };
    }
    function m3() {
      c3 = [];
    }
    return u3 = { addFontsFromTracks: function(t5, e4) {
      if (t5 && Array.isArray(t5) && e4)
        for (let n4 = 0; n4 < t5.length; n4++)
          f3(t5[n4], e4);
    }, downloadFonts: function() {
      for (let t5 = 0; t5 < c3.length; t5++) {
        let e4 = c3[t5];
        document.fonts.add(e4.fontFace), n3.trigger(D.default.DVB_FONT_DOWNLOAD_ADDED, e4), e4.fontFace.load().then(() => {
          g3(t5, o3), n3.trigger(D.default.DVB_FONT_DOWNLOAD_COMPLETE, e4);
        }, (a3) => {
          g3(t5, l3), d3.debug("Font download error: ", a3), n3.trigger(D.default.DVB_FONT_DOWNLOAD_FAILED, e4);
        });
      }
    }, getFonts: function() {
      return c3;
    }, getFontsForTrackId: function(t5) {
      return c3.filter((e4) => e4.trackId && e4.trackId === t5);
    }, reset: function() {
      !function() {
        for (const t5 of c3) {
          let e4 = document.fonts.delete(t5.fontFace);
          d3.debug(`Removal of fontFamily: ${t5.fontFamily} was ${e4 ? "successful" : "unsuccessful"}`);
        }
      }(), m3();
    } }, d3 = (0, C.default)(e3).getInstance().getLogger(u3), m3(), u3;
  }
  Go.__dashjs_factory_name = "DVBFonts";
  var Ho = N.default.getClassFactory(Go);
  function Yo(t4) {
    let e3 = this.context;
    const n3 = t4.adapter, a2 = t4.errHandler, r3 = t4.manifestModel, i3 = t4.mediaController, l3 = t4.baseURLController, o3 = t4.videoModel, s2 = t4.settings;
    let u3, d3, c3, f3, g3, m3, h3, p3, b3, y3, E3, _3, T3, v3;
    function w3(t5) {
      if (v3.error(`Could not download ${t5.isEssential ? "an essential" : "a"} font - fontFamily: ${t5.fontFamily}, url: ${t5.url}`), t5.isEssential) {
        let e4 = f3[t5.streamId].getTrackIdxForId(t5.trackId);
        f3[t5.streamId].setModeForTrackIdx(e4, S2.default.TEXT_DISABLED);
      }
    }
    function k2(t5) {
      if (v3.debug(`Successfully downloaded ${t5.isEssential ? "an essential" : "a"} font - fontFamily: ${t5.fontFamily}, url: ${t5.url}`), t5.isEssential) {
        let e4 = f3[t5.streamId].getTrackIdxForId(t5.trackId);
        e4 === f3[t5.streamId].getCurrentTrackIdx() ? f3[t5.streamId].setModeForTrackIdx(e4, S2.default.TEXT_SHOWING) : f3[t5.streamId].setModeForTrackIdx(e4, S2.default.TEXT_HIDDEN);
      }
    }
    function N2(t5) {
      let e4 = t5.tracks, n4 = t5.index;
      const a3 = t5.streamId;
      if (false === s2.get().streaming.text.defaultEnabled && !O2() || _3)
        P2(a3, -1);
      else {
        const t6 = i3.getCurrentTrackFor(S2.default.TEXT, a3);
        if (t6) {
          const r4 = { lang: t6.lang, role: t6.roles[0], index: t6.index, codec: t6.codec, accessibility: t6.accessibility[0] };
          e4.some((t7, e5) => {
            if (i3.matchSettings(r4, t7))
              return P2(a3, e5), n4 = e5, true;
          });
        }
        b3 = false;
      }
      d3[a3].lastEnabledIndex = n4, p3.trigger(D.default.TEXT_TRACKS_ADDED, { enabled: O2(), index: n4, tracks: e4, streamId: a3 }), E3 = true, T3.addFontsFromTracks(e4, a3), T3.getFonts().forEach((t6) => {
        if (t6.isEssential) {
          let e5 = f3[t6.streamId].getTrackIdxForId(t6.trackId);
          f3[t6.streamId].setModeForTrackIdx(e5, S2.default.TEXT_DISABLED);
        }
      }), T3.downloadFonts();
    }
    function x2(t5) {
      try {
        const e4 = t5.streamId;
        if (!f3[e4] || isNaN(t5.time))
          return;
        f3[e4].manualCueProcessing(t5.time);
      } catch (t6) {
      }
    }
    function M2(t5) {
      try {
        const e4 = t5.streamId;
        if (!f3[e4])
          return;
        f3[e4].disableManualTracks();
      } catch (t6) {
      }
    }
    function z2(t5) {
      try {
        if (!t5 || !t5.mediaType || t5.mediaType !== S2.default.AUDIO || !t5.currentMediaInfo)
          return;
        const e4 = f3[t5.streamId].getCurrentTextTrackInfo();
        let n4 = NaN;
        b3 ? n4 = L2(t5.streamId) : F2(e4) && t5.currentMediaInfo.lang && t5.currentMediaInfo.lang !== e4.lang && (n4 = L2(t5.streamId), isNaN(n4) && (n4 = -1)), isNaN(n4) || P2(t5.streamId, n4);
      } catch (t6) {
        v3.error(t6);
      }
    }
    function O2() {
      let t5 = true;
      return b3 && !y3 && (t5 = false), t5;
    }
    function P2(t5, e4) {
      b3 = -1 === e4, b3 && i3 && i3.saveTextSettingsDisabled();
      let n4 = U2(t5);
      if (n4 === e4 || !f3[t5])
        return;
      f3[t5].disableManualTracks();
      let a3 = f3[t5].getCurrentTextTrackInfo(), r4 = a3 ? o3.getTextTrack(a3.kind, a3.id, a3.lang, a3.isTTML, a3.isEmbedded) : null;
      r4 && r4.mode !== S2.default.TEXT_DISABLED && f3[t5].setModeForTrackIdx(n4, S2.default.TEXT_HIDDEN), f3[t5].setCurrentTrackIdx(e4), a3 = f3[t5].getCurrentTextTrackInfo();
      const l4 = s2.get().streaming.text.dispatchForManualRendering;
      if (a3 && !l4 && a3.mode !== S2.default.TEXT_DISABLED && f3[t5].setModeForTrackIdx(e4, S2.default.TEXT_SHOWING), a3 && a3.isFragmented && !a3.isEmbedded)
        !function(t6, e5, n5) {
          if (!c3[t6])
            return;
          let a4 = c3[t6].getConfig().fragmentedTracks;
          for (let r5 = 0; r5 < a4.length; r5++) {
            let l5 = a4[r5];
            if (e5.lang === l5.lang && (l5.id ? e5.id === l5.id : e5.index === l5.index)) {
              let e6 = i3.getCurrentTrackFor(S2.default.TEXT, t6);
              (l5.id ? e6.id !== l5.id : e6.index !== l5.index) ? (f3[t6].deleteCuesFromTrackIdx(n5), c3[t6].setCurrentFragmentedTrackIdx(r5)) : -1 === n5 && p3.trigger(R.default.SET_FRAGMENTED_TEXT_AFTER_DISABLED, {}, { streamId: t6, mediaType: S2.default.TEXT });
            }
          }
        }(t5, a3, n4);
      else if (a3 && !a3.isFragmented)
        !function(t6, e5) {
          p3.trigger(R.default.SET_NON_FRAGMENTED_TEXT, { currentTrackInfo: e5 }, { streamId: t6, mediaType: S2.default.TEXT });
        }(t5, a3);
      else if (!a3 && b3) {
        const e5 = L2(t5);
        return void (isNaN(e5) || P2(t5, e5));
      }
      i3.setTrack(a3);
    }
    function L2(t5) {
      const e4 = function(t6) {
        return f3[t6].getTextTrackInfos().filter((t7, e5) => (t7._indexToSelect = e5, !!(t7 && t7.roles && t7.roles.length > 0) && F2(t7)));
      }(t5);
      if (!e4 || e4.length <= 0)
        return NaN;
      const n4 = i3.getCurrentTrackFor(S2.default.AUDIO, t5);
      if (!n4)
        return NaN;
      const a3 = e4.find((t6) => n4.lang === t6.lang);
      return a3 ? a3._indexToSelect : NaN;
    }
    function F2(t5) {
      return !(!t5 || !t5.roles || 0 === t5.roles.length) && t5.roles.some((t6) => t6.schemeIdUri === S2.default.DASH_ROLE_SCHEME_ID && t6.value === I.default.FORCED_SUBTITLE);
    }
    function U2(t5) {
      return f3[t5].getCurrentTrackIdx();
    }
    function j2() {
      c3 = {}, f3 = {}, d3 = {}, b3 = true, E3 = false, _3 = false;
    }
    return u3 = { addEmbeddedTrack: function(t5, e4) {
      const n4 = t5.id;
      c3[n4] && c3[n4].addEmbeddedTrack(e4);
    }, addMediaInfosToBuffer: function(t5, e4, n4) {
      let a3 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null;
      const r4 = t5.id;
      c3[r4] && c3[r4].addMediaInfos(e4, n4, a3);
    }, createTracks: function(t5) {
      const e4 = t5.id;
      f3[e4] && f3[e4].createTracks();
    }, deactivateStream: function(t5) {
      if (!t5)
        return;
      const e4 = t5.id;
      c3[e4] && c3[e4].resetMediaInfos(), f3[e4] && f3[e4].deleteAllTextTracks();
    }, enableForcedTextStreaming: function(t5) {
      return (0, yt.checkParameterType)(t5, "boolean"), y3 = t5, true;
    }, enableText: function(t5, e4) {
      return (0, yt.checkParameterType)(e4, "boolean"), O2() !== e4 && (e4 && P2(t5, d3[t5].lastEnabledIndex), e4 || (d3[t5].lastEnabledIndex = U2(t5), E3 ? P2(t5, -1) : _3 = true)), true;
    }, getAllTracksAreDisabled: function() {
      return b3;
    }, getCurrentTrackIdx: U2, getTextSourceBuffer: function(t5) {
      const e4 = t5.id;
      if (c3 && c3[e4])
        return c3[e4];
    }, initialize: function() {
      T3 = Ho(e3).create({ adapter: n3, baseURLController: l3 }), p3.on(R.default.TEXT_TRACKS_QUEUE_INITIALIZED, N2, u3), p3.on(R.default.DVB_FONT_DOWNLOAD_FAILED, w3, u3), p3.on(R.default.DVB_FONT_DOWNLOAD_COMPLETE, k2, u3), p3.on(R.default.MEDIAINFO_UPDATED, z2, u3), s2.get().streaming.text.webvtt.customRenderingEnabled && (p3.on(R.default.PLAYBACK_TIME_UPDATED, x2, u3), p3.on(R.default.PLAYBACK_SEEKING, M2, u3));
    }, initializeForStream: function(t5) {
      const l4 = t5.id, u4 = Po(e3).create({ videoModel: o3, settings: s2, streamInfo: t5 });
      u4.initialize(), f3[l4] = u4;
      const p4 = Do(e3).create({ errHandler: a2, adapter: n3, dvbFonts: T3, manifestModel: r3, mediaController: i3, videoModel: o3, textTracks: u4, vttParser: g3, vttCustomRenderingParser: m3, ttmlParser: h3, streamInfo: t5, settings: s2 });
      p4.initialize(), c3[l4] = p4, d3[l4] = {}, d3[l4].lastEnabledIndex = -1;
    }, isTextEnabled: O2, reset: function() {
      Object.keys(c3).forEach((t5) => {
        c3[t5].resetEmbedded(), c3[t5].reset();
      }), T3.reset(), j2(), p3.off(R.default.TEXT_TRACKS_QUEUE_INITIALIZED, N2, u3), p3.off(R.default.DVB_FONT_DOWNLOAD_FAILED, w3, u3), p3.off(R.default.DVB_FONT_DOWNLOAD_COMPLETE, k2, u3), p3.off(R.default.MEDIAINFO_UPDATED, z2, u3), s2.get().streaming.text.webvtt.customRenderingEnabled && (p3.off(R.default.PLAYBACK_TIME_UPDATED, x2, u3), p3.off(R.default.PLAYBACK_SEEKING, M2, u3));
    }, setTextTrack: P2, clearDataForStream: function(t5) {
      c3[t5] && (c3[t5].resetEmbedded(), c3[t5].reset(), delete c3[t5]), f3[t5] && (f3[t5].deleteAllTextTracks(), delete f3[t5]), d3[t5] && delete d3[t5];
    } }, y3 = false, E3 = false, _3 = false, g3 = Fo(e3).getInstance(), m3 = jo(e3).getInstance(), h3 = Bo(e3).getInstance(), p3 = (0, A.default)(e3).getInstance(), v3 = (0, C.default)(e3).getInstance().getLogger(u3), j2(), u3;
  }
  Yo.__dashjs_factory_name = "TextController";
  var Vo = N.default.getClassFactory(Yo);
  function Ko(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = (0, C.default)(e3).getInstance(), a2 = t4.settings, r3 = (0, A.default)(e3).getInstance();
    let i3, l3, o3, s2, u3, d3;
    function c3() {
      return navigator && navigator.connection && !isNaN(navigator.connection.downlink) && navigator.connection.downlink > 0 ? 1e3 * navigator.connection.downlink : NaN;
    }
    function f3(t5, e4, n4, a3) {
      const r4 = Math.pow(0.5, n4 / a3.fast);
      t5.fastEstimate = (1 - r4) * e4 + r4 * t5.fastEstimate;
      const i4 = Math.pow(0.5, n4 / a3.slow);
      t5.slowEstimate = (1 - i4) * e4 + i4 * t5.slowEstimate, t5.totalWeight += n4;
    }
    function g3() {
      i3 = {}, l3 = {}, o3 = {}, s2 = {};
    }
    const m3 = { addEntry: function(t5, e4) {
      try {
        if (!(t5 && e4 && e4.trace && e4.trace.length))
          return;
        !function(t6) {
          i3[t6] = i3[t6] || [], l3[t6] = l3[t6] || [], o3[t6] = o3[t6] || { fastEstimate: 0, slowEstimate: 0, totalWeight: 0 }, s2[t6] = s2[t6] || { fastEstimate: 0, slowEstimate: 0, totalWeight: 0 };
        }(t5);
        const n4 = e4.tresponse.getTime() - e4.trequest.getTime() || 1;
        let g4 = function(t6, e5) {
          return t6._fileLoaderType && t6._fileLoaderType === S2.default.FILE_LOADER_TYPES.FETCH ? function(t7) {
            const e6 = t7.trace.reduce((t8, e7) => t8 + e7.b[0], 0), n5 = t7.trace.reduce((t8, e7) => t8 + e7.d, 0);
            let r4 = NaN;
            return a2.get().streaming.abr.throughput.useNetworkInformationApi.fetch && (r4 = c3()), isNaN(r4) && (r4 = Math.round(8 * e6 / n5)), { downloadedBytes: e6, value: r4, downloadTimeInMs: n5 };
          }(t6) : function(t7, e6) {
            let n5 = NaN, r4 = NaN, i4 = false;
            if (a2.get().streaming.abr.throughput.useResourceTimingApi && t7._resourceTimingValues)
              n5 = t7._resourceTimingValues.transferSize, r4 = t7._resourceTimingValues.responseEnd - t7._resourceTimingValues.responseStart, i4 = true;
            else {
              if (t7.trace.length <= 1)
                return { throughput: NaN, downloadTimeInMs: NaN };
              n5 = t7.trace.reduce((t8, e7) => t8 + e7.b[0], 0) - t7.trace[0].b[0], r4 = Math.max(t7.trace.reduce((t8, e7) => t8 + e7.d, 0) - t7.trace[0].d, 1);
            }
            let l4 = NaN;
            if (!i4 && a2.get().streaming.abr.throughput.useNetworkInformationApi.xhr && (l4 = c3()), isNaN(l4)) {
              const t8 = a2.get().streaming.abr.throughput.useDeadTimeLatency ? r4 : r4 + e6;
              l4 = Math.round(8 * n5 / t8);
            }
            return { downloadedBytes: n5, value: l4, downloadTimeInMs: r4 };
          }(t6, e5);
        }(e4, n4);
        if (g4.latencyInMs = n4, isNaN(g4.value) || !isFinite(g4.value))
          return;
        if (e4.cmsd) {
          const t6 = e4.cmsd.dynamic && e4.cmsd.dynamic.etp ? e4.cmsd.dynamic.etp : null;
          if (t6) {
            const e5 = a2.get().streaming.cmsd.abr.etpWeightRatio;
            e5 > 0 && e5 <= 1 && (g4.value = g4.value * (1 - e5) + t6 * e5);
          }
        }
        if (function(t6, e5, n5) {
          return a2.get().streaming.abr.throughput.useResourceTimingApi && n5._resourceTimingValues ? 0 === n5._resourceTimingValues.transferSize && n5._resourceTimingValues.decodedBodySize > 0 : !isNaN(e5) && (t6 === S2.default.VIDEO ? e5 < a2.get().streaming.cacheLoadThresholds[S2.default.VIDEO] : t6 === S2.default.AUDIO ? e5 < a2.get().streaming.cacheLoadThresholds[S2.default.AUDIO] : void 0);
        }(t5, e4._tfinish.getTime() - e4.trequest.getTime(), e4))
          return void d3.debug(`${t5} Assuming segment ${e4.url} came from cache, ignoring it for throughput calculation`);
        d3.debug(`Added throughput entry for ${t5}: ${g4.value} kbit/s`), g4.serviceLocation = e4._serviceLocation, i3[t5].push(g4), l3[t5].push({ value: n4 }), function(t6) {
          i3[t6].length > a2.get().streaming.abr.throughput.sampleSettings.maxMeasurementsToKeep && i3[t6].shift(), l3[t6].length > a2.get().streaming.abr.throughput.sampleSettings.maxMeasurementsToKeep && l3[t6].shift();
        }(t5), r3.trigger(D.default.THROUGHPUT_MEASUREMENT_STORED, { throughputValues: g4 }), e4.type !== z.HTTPRequest.MPD_TYPE && (f3(o3[t5], g4.value, a2.get().streaming.abr.throughput.ewma.weightDownloadTimeMultiplicationFactor * g4.downloadTimeInMs, u3.bandwidthHalfLife), f3(s2[t5], n4, 1, u3.latencyHalfLife));
      } catch (t6) {
        d3.error(t6);
      }
    }, getThroughputDict: function(t5) {
      return t5 ? i3[t5] : i3;
    }, getEwmaThroughputDict: function(t5) {
      return t5 ? o3[t5] : o3;
    }, getEwmaLatencyDict: function(t5) {
      return t5 ? s2[t5] : s2;
    }, getEwmaHalfLife: function() {
      return u3;
    }, getLatencyDict: function(t5) {
      return t5 ? l3[t5] : l3;
    }, reset: g3 };
    return d3 = n3.getLogger(m3), u3 = { bandwidthHalfLife: { fast: a2.get().streaming.abr.throughput.ewma.throughputFastHalfLifeSeconds, slow: a2.get().streaming.abr.throughput.ewma.throughputSlowHalfLifeSeconds }, latencyHalfLife: { fast: a2.get().streaming.abr.throughput.ewma.latencyFastHalfLifeCount, slow: a2.get().streaming.abr.throughput.ewma.latencySlowHalfLifeCount } }, g3(), m3;
  }
  Ko.__dashjs_factory_name = "ThroughputModel";
  var Wo = N.default.getClassFactory(Ko);
  function $o() {
    const t4 = this.context, e3 = (0, A.default)(t4).getInstance();
    let n3, a2, r3;
    function i3() {
      performance.clearResourceTimings();
    }
    function l3(t5) {
      t5.metric !== k.HTTP_REQUEST || !t5.value || t5.value.type !== z.HTTPRequest.MPD_TYPE && (t5.value.type !== z.HTTPRequest.MEDIA_SEGMENT_TYPE || t5.mediaType !== S2.default.AUDIO && t5.mediaType !== S2.default.VIDEO) || n3.addEntry(t5.mediaType, t5.value);
    }
    function o3(t5, e4) {
      let i4, l4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, o4 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : NaN, b4 = null, y4 = n3.getEwmaHalfLife(), E3 = null, _3 = true;
      switch (l4 || (l4 = r3.get().streaming.abr.throughput.averageCalculationMode), t5) {
        case S2.default.THROUGHPUT_TYPES.BANDWIDTH:
          b4 = l4 === S2.default.THROUGHPUT_CALCULATION_MODES.EWMA ? n3.getEwmaThroughputDict(e4) : n3.getThroughputDict(e4), E3 = y4.bandwidthHalfLife, _3 = true, o4 = isNaN(o4) ? a2.getIsDynamic() ? r3.get().streaming.abr.throughput.sampleSettings.live : r3.get().streaming.abr.throughput.sampleSettings.vod : o4;
          break;
        case S2.default.THROUGHPUT_TYPES.LATENCY:
          b4 = l4 === S2.default.THROUGHPUT_CALCULATION_MODES.EWMA ? n3.getEwmaLatencyDict(e4) : n3.getLatencyDict(e4), E3 = y4.latencyHalfLife, _3 = false, o4 = isNaN(o4) ? r3.get().streaming.abr.throughput.sampleSettings.averageLatencySampleAmount : o4;
      }
      if (!b4 || 0 === b4.length)
        return NaN;
      switch (l4) {
        case S2.default.THROUGHPUT_CALCULATION_MODES.ARITHMETIC_MEAN:
          return i4 = s2(b4, o4, t5), u3(b4, i4);
        case S2.default.THROUGHPUT_CALCULATION_MODES.BYTE_SIZE_WEIGHTED_ARITHMETIC_MEAN:
          return i4 = s2(b4, o4, t5), d3(b4, i4);
        case S2.default.THROUGHPUT_CALCULATION_MODES.DATE_WEIGHTED_ARITHMETIC_MEAN:
          return i4 = s2(b4, o4, t5), c3(b4, i4);
        case S2.default.THROUGHPUT_CALCULATION_MODES.HARMONIC_MEAN:
          return i4 = s2(b4, o4, t5), f3(b4, i4);
        case S2.default.THROUGHPUT_CALCULATION_MODES.BYTE_SIZE_WEIGHTED_HARMONIC_MEAN:
          return i4 = s2(b4, o4, t5), g3(b4, i4);
        case S2.default.THROUGHPUT_CALCULATION_MODES.DATE_WEIGHTED_HARMONIC_MEAN:
          return i4 = s2(b4, o4, t5), m3(b4, i4);
        case S2.default.THROUGHPUT_CALCULATION_MODES.EWMA:
          return h3(b4, E3, _3);
        case S2.default.THROUGHPUT_CALCULATION_MODES.ZLEMA:
          return i4 = s2(b4, o4, t5), p3(b4, i4);
      }
    }
    function s2(t5, e4, n4) {
      if (t5) {
        if (e4 >= t5.length)
          e4 = t5.length;
        else if (n4 === S2.default.THROUGHPUT_TYPES.BANDWIDTH && r3.get().streaming.abr.throughput.sampleSettings.enableSampleSizeAdjustment)
          for (let n5 = 1; n5 < e4; ++n5) {
            const a3 = t5[t5.length - n5].value / t5[t5.length - n5 - 1].value;
            if ((a3 >= r3.get().streaming.abr.throughput.sampleSettings.increaseScale || a3 <= r3.get().streaming.abr.throughput.sampleSettings.decreaseScale) && (e4 += 1) === t5.length)
              break;
          }
      } else
        e4 = 0;
      return e4;
    }
    function u3(t5, e4) {
      let n4 = t5;
      return 0 !== e4 && n4 && 0 !== n4.length ? (n4 = n4.slice(-e4), n4.reduce((t6, e5) => t6 + e5.value, 0) / n4.length) : NaN;
    }
    function d3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      let a3 = 0;
      return n4.reduce((t6, e5) => {
        let n5 = Math.sqrt(e5.downloadedBytes);
        return a3 += n5, t6 + e5.value * n5;
      }, 0) / a3;
    }
    function c3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      let a3 = 0;
      return n4.reduce((t6, e5, n5) => {
        let r4 = n5 + 1;
        return a3 += r4, t6 + e5.value * r4;
      }, 0) / a3;
    }
    function f3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      const a3 = n4.reduce((t6, e5) => t6 + 1 / e5.value, 0);
      return n4.length / a3;
    }
    function g3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      let a3 = 0;
      const r4 = n4.reduce((t6, e5) => {
        let n5 = Math.sqrt(e5.downloadedBytes);
        return a3 += n5, t6 + 1 / e5.value * n5;
      }, 0);
      return a3 / r4;
    }
    function m3(t5, e4) {
      let n4 = t5;
      if (0 === e4 || !n4 || 0 === n4.length)
        return NaN;
      n4 = n4.slice(-e4);
      let a3 = 0;
      const r4 = n4.reduce((t6, e5, n5) => {
        let r5 = n5 + 1;
        return a3 += r5, t6 + 1 / e5.value * r5;
      }, 0);
      return a3 / r4;
    }
    function h3(t5, e4) {
      let n4 = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
      if (!t5 || t5.totalWeight <= 0)
        return NaN;
      const a3 = t5.fastEstimate / (1 - Math.pow(0.5, t5.totalWeight / e4.fast)), r4 = t5.slowEstimate / (1 - Math.pow(0.5, t5.totalWeight / e4.slow));
      return n4 ? Math.min(a3, r4) : Math.max(a3, r4);
    }
    function p3(t5, e4) {
      if (0 === e4 || !t5 || 0 === t5.length)
        return NaN;
      let n4 = t5.slice(-e4).map((t6) => t6.value), a3 = 2 / (n4.length + 1), r4 = n4[n4.length - 1], i4 = n4[n4.length - 1];
      for (let t6 = 0; t6 < n4.length; t6++)
        r4 = a3 * n4[t6] + (1 - a3) * r4, i4 = a3 * r4 + (1 - a3) * i4;
      return i4;
    }
    function b3(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, n4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : NaN;
      const a3 = o3(S2.default.THROUGHPUT_TYPES.BANDWIDTH, t5, e4, n4);
      return Math.round(a3);
    }
    const y3 = { getArithmeticMean: u3, getAverageLatency: function(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, n4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : NaN;
      const a3 = o3(S2.default.THROUGHPUT_TYPES.LATENCY, t5, e4, n4);
      return Math.round(a3);
    }, getAverageThroughput: b3, getByteSizeWeightedArithmeticMean: d3, getByteSizeWeightedHarmonicMean: g3, getDateWeightedArithmeticMean: c3, getDateWeightedHarmonicMean: m3, getEwma: h3, getHarmonicMean: f3, getRawThroughputData: function(t5) {
      return t5 ? n3.getThroughputDict(t5) : [];
    }, getSafeAverageThroughput: function(t5) {
      let e4 = b3(t5, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : NaN);
      return isNaN(e4) || (e4 *= r3.get().streaming.abr.throughput.bandwidthSafetyFactor), e4;
    }, getZlema: p3, initialize: function() {
      n3 = Wo(t4).create({ settings: r3 }), e3.on(D.default.METRIC_ADDED, l3, y3), performance && performance.addEventListener("resourcetimingbufferfull", i3);
    }, reset: function() {
      n3.reset(), e3.off(D.default.METRIC_ADDED, l3, y3), performance && performance.removeEventListener("resourcetimingbufferfull", i3);
    }, setConfig: function(t5) {
      t5.settings && (r3 = t5.settings), t5.playbackController && (a2 = t5.playbackController);
    } };
    return y3;
  }
  $o.__dashjs_factory_name = "ThroughputController";
  var Xo = N.default.getSingletonFactory($o);
  function Qo() {
    const t4 = "You must first call initialize() and set a source before calling this method", e3 = "You must first call initialize() and set a valid source and view before calling this method", n3 = "You must first call attachView() to set the video element before calling this method", a2 = "You must first call attachSource() with a valid source before calling this method", r3 = "MediaPlayer not initialized!", i3 = this.context, l3 = (0, A.default)(i3).getInstance();
    let o3 = (0, K.default)(i3).getInstance();
    const s2 = (0, C.default)(i3).getInstance({ settings: o3 });
    let u3, d3, c3, f3, g3, m3, h3, p3, b3, y3, E3, _3, T3, v3, x2, O2, P2, L2, F2, U2, j2, q2, B2, H2, Y2, W2, $2, X2, Q2, Z2, J2, tt2, et2, nt2, at2, rt2, it2, lt2, ot2, st2, ut2;
    function dt2() {
      kt2(null), wt2(null), f3 = null, x2 && (x2.reset(), x2 = null), O2 && (O2.reset(), O2 = null), j2 && j2.reset(), o3.reset(), L2 && (L2.reset(), L2 = null);
    }
    function ct2() {
      return !!c3 && !!it2.getElement();
    }
    function ft2() {
      return (0, vl.getVersionString)();
    }
    function gt2() {
      if (!h3)
        throw e3;
      return Q2.isPaused();
    }
    function mt2() {
      if (!h3)
        throw e3;
      return Q2.getIsDynamic();
    }
    function ht2(t5) {
      const e4 = W2 && W2.hasVideoTrack() ? S2.default.VIDEO : S2.default.AUDIO;
      let n4 = et2.getCurrentDVRInfo(e4);
      return n4 ? pt2(n4.range.start + t5, n4) : 0;
    }
    function pt2(t5, e4) {
      let n4 = Q2.getOriginalLiveDelay();
      return t5 > e4.range.end - n4 && (t5 = e4.range.end - n4), t5;
    }
    function bt2() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
      if (!h3)
        throw e3;
      let n4 = vt2().currentTime;
      return "" !== t5 && (n4 = W2.getTimeRelativeToStreamId(n4, t5)), n4;
    }
    function Et2(t5) {
      (0, yt.checkParameterType)(t5, "boolean"), p3 = t5;
    }
    function _t2() {
      j2.restoreDefaultUTCTimingSources();
    }
    function Tt2() {
      return et2;
    }
    function vt2() {
      if (!it2.getElement())
        throw n3;
      return it2.getElement();
    }
    function wt2(t5) {
      if (!g3)
        throw r3;
      it2.setElement(t5), t5 && (Ct2(), function() {
        if (O2 || "undefined" == typeof dashjs)
          return;
        let t6 = dashjs.MetricsReporting;
        if ("function" == typeof t6) {
          let e4 = t6(i3).create();
          O2 = e4.createMetricsReporting({ debug: s2, eventBus: l3, mediaElement: vt2(), adapter: F2, dashMetrics: et2, mediaPlayerModel: U2, events: R.default, constants: S2.default, metricsConstants: k });
        }
      }(), function() {
        if (P2 || "undefined" == typeof dashjs)
          return;
        let t6 = dashjs.MssHandler;
        "function" == typeof t6 && (V.extend(t6.errors), P2 = t6(i3).create({ eventBus: l3, mediaPlayerModel: U2, dashMetrics: et2, manifestModel: nt2, playbackController: Q2, streamController: W2, protectionController: x2, baseURLController: B2, errHandler: q2, events: R.default, constants: S2.default, debug: s2, initSegmentType: z.HTTPRequest.INIT_SEGMENT_TYPE, BASE64: _o, ISOBoxer: Jn, settings: o3 }));
      }(), W2 && W2.switchToVideoElement(b3)), h3 && Rt2(), xt2(b3);
    }
    function It2(e4) {
      if (!m3)
        throw t4;
      let n4 = W2.getActiveStreamInfo();
      return n4 ? v3.getTracksFor(e4, n4.id).filter((t5) => !x2 || x2.areKeyIdsUsable(t5.normalizedKeyIds)) : [];
    }
    function kt2(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : NaN;
      if (!g3)
        throw r3;
      "string" == typeof t5 && lt2.initialize(t5), null == e4 && (e4 = NaN), isNaN(e4) || (e4 = Math.max(0, e4)), b3 = e4, c3 = t5, (m3 || h3) && Rt2(), ct2() && xt2(b3);
    }
    function At2() {
      if (!m3)
        throw t4;
      let e4 = W2.getActiveStreamInfo();
      return e4 ? W2.getStreamById(e4.id) : null;
    }
    function Rt2() {
      h3 = false, m3 = false, F2.reset(), W2.reset(), X2.reset(), tt2.reset(), Q2.reset(), Z2.reset(), J2.reset(), y3.reset(), E3.reset(), v3.reset(), st2.reset(), x2 && (o3.get().streaming.protection.keepProtectionMediaKeys ? x2.stop() : (x2.reset(), x2 = null, Ct2())), $2.reset(), at2.reset(), rt2.reset();
    }
    function Nt2() {
      return ii(i3).create({ debug: s2, errHandler: q2, dashMetrics: et2, mediaPlayerModel: U2, mssHandler: P2, settings: o3 });
    }
    function Ct2() {
      if (x2)
        return x2;
      if ("undefined" == typeof dashjs)
        return null;
      let t5 = dashjs.Protection;
      if ("function" == typeof t5) {
        let e4 = t5(i3).create();
        return R.default.extend(t5.events), D.default.extend(t5.events, { publicOnly: true }), V.extend(t5.errors), x2 = e4.createProtectionSystem({ debug: s2, errHandler: q2, videoModel: it2, customParametersModel: j2, capabilities: H2, eventBus: l3, events: R.default, BASE64: _o, constants: S2.default, cmcdModel: at2, settings: o3 }), H2 || (H2 = (0, si.default)(i3).getInstance()), H2.setProtectionController(x2), x2;
      }
      return null;
    }
    function Dt2() {
      if (!g3)
        throw r3;
      if (L2)
        return L2;
      if ("undefined" == typeof dashjs)
        return null;
      let t5 = dashjs.OfflineController;
      if ("function" == typeof t5) {
        R.default.extend(t5.events), D.default.extend(t5.events, { publicOnly: true }), V.extend(t5.errors);
        const e4 = Nt2(), n4 = Ea(i3).create();
        return n4.setConfig({ manifestModel: nt2, adapter: F2, manifestLoader: e4, errHandler: q2, contentSteeringController: J2 }), L2 = t5(i3).create({ debug: s2, manifestUpdater: n4, baseURLController: B2, manifestLoader: e4, manifestModel: nt2, mediaPlayerModel: U2, abrController: y3, playbackController: Q2, adapter: F2, errHandler: q2, dashMetrics: et2, timelineConverter: T3, segmentBaseController: st2, schemeLoaderFactory: _3, eventBus: l3, events: R.default, errors: V, constants: S2.default, settings: o3, dashConstants: I.default, urlUtils: St(i3).getInstance() }), L2;
      }
      return null;
    }
    function xt2() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : NaN;
      L2 && L2.resetRecords(), !m3 && c3 && (m3 = true, d3.info("Streaming Initialized"), function() {
        const t6 = Nt2();
        W2 || (W2 = Da(i3).getInstance()), $2 || ($2 = Vo(i3).create({ errHandler: q2, manifestModel: nt2, adapter: F2, mediaController: v3, baseURLController: B2, videoModel: it2, settings: o3 })), Y2.setConfig({ capabilities: H2, customParametersModel: j2, adapter: F2, settings: o3, protectionController: x2, manifestModel: nt2, errHandler: q2 }), W2.setConfig({ capabilities: H2, capabilitiesFilter: Y2, manifestLoader: t6, manifestModel: nt2, mediaPlayerModel: U2, customParametersModel: j2, protectionController: x2, textController: $2, adapter: F2, dashMetrics: et2, errHandler: q2, timelineConverter: T3, videoModel: it2, playbackController: Q2, serviceDescriptionController: Z2, contentSteeringController: J2, abrController: y3, throughputController: E3, mediaController: v3, settings: o3, baseURLController: B2, uriFragmentModel: lt2, segmentBaseController: st2 }), X2.setConfig({ settings: o3, playbackController: Q2, streamController: W2, videoModel: it2, timelineConverter: T3, adapter: F2 }), Q2.setConfig({ streamController: W2, serviceDescriptionController: Z2, dashMetrics: et2, adapter: F2, videoModel: it2, timelineConverter: T3, settings: o3 }), tt2.setConfig({ streamController: W2, playbackController: Q2, mediaPlayerModel: U2, videoModel: it2, settings: o3 }), E3.setConfig({ settings: o3, playbackController: Q2 }), y3.setConfig({ streamController: W2, capabilities: H2, domStorage: ot2, mediaPlayerModel: U2, customParametersModel: j2, throughputController: E3, cmsdModel: rt2, dashMetrics: et2, adapter: F2, videoModel: it2, settings: o3 }), at2.setConfig({ abrController: y3, dashMetrics: et2, playbackController: Q2, serviceDescriptionController: Z2, throughputController: E3 }), ut2.setConfig({ serviceDescriptionController: Z2 }), rt2.setConfig({}), v3.initialize(), E3.initialize(), y3.initialize(), W2.initialize(p3, f3), $2.initialize(), X2.initialize(), tt2.initialize(), at2.initialize(p3), rt2.initialize(), J2.initialize(), st2.initialize();
      }(), "string" == typeof c3 ? W2.load(c3, t5) : W2.loadWithManifest(c3, t5)), !h3 && ct2() && (h3 = true, l3.trigger(D.default.PLAYBACK_INITIALIZED), d3.info("Playback Initialized"));
    }
    return u3 = { addABRCustomRule: function(t5, e4, n4) {
      j2.addAbrCustomRule(t5, e4, n4);
    }, addRequestInterceptor: function(t5) {
      j2.addRequestInterceptor(t5);
    }, addResponseInterceptor: function(t5) {
      j2.addResponseInterceptor(t5);
    }, addUTCTimingSource: function(t5, e4) {
      j2.addUTCTimingSource(t5, e4);
    }, attachProtectionController: function(t5) {
      x2 = t5;
    }, attachSource: kt2, attachTTMLRenderingDiv: function(t5) {
      if (!it2.getElement())
        throw n3;
      it2.setTTMLRenderingDiv(t5);
    }, attachView: wt2, attachVttRenderingDiv: function(t5) {
      if (!it2.getElement())
        throw n3;
      it2.setVttRenderingDiv(t5);
    }, clearDefaultUTCTimingSources: function() {
      j2.clearDefaultUTCTimingSources();
    }, convertToTimeCode: function(t5) {
      t5 = Math.max(t5, 0);
      let e4 = Math.floor(t5 / 3600), n4 = Math.floor(t5 % 3600 / 60), a3 = Math.floor(t5 % 3600 % 60);
      return (0 === e4 ? "" : e4 < 10 ? "0" + e4.toString() + ":" : e4.toString() + ":") + (n4 < 10 ? "0" + n4.toString() : n4.toString()) + ":" + (a3 < 10 ? "0" + a3.toString() : a3.toString());
    }, destroy: function() {
      dt2(), N.default.deleteSingletonInstances(i3);
    }, duration: function() {
      if (!h3)
        throw e3;
      let t5 = vt2().duration;
      if (Q2.getIsDynamic()) {
        const e4 = W2 && W2.hasVideoTrack() ? S2.default.VIDEO : S2.default.AUDIO;
        let n4 = et2.getCurrentDVRInfo(e4);
        t5 = n4 ? n4.range.end - n4.range.start : 0;
      }
      return t5;
    }, enableForcedTextStreaming: function(t5) {
      return !(!W2.getActiveStreamInfo() || !$2) && $2.enableForcedTextStreaming(t5);
    }, enableText: function(t5) {
      const e4 = W2.getActiveStreamInfo();
      return !(!e4 || !$2) && $2.enableText(e4.id, t5);
    }, extend: function(t5, e4, n4) {
      N.default.extend(t5, e4, n4, i3);
    }, formatUTC: function(t5, e4, n4) {
      let a3 = arguments.length > 3 && void 0 !== arguments[3] && arguments[3];
      const r4 = new Date(1e3 * t5), i4 = r4.toLocaleDateString(e4), l4 = r4.toLocaleTimeString(e4, { hour12: n4 });
      return a3 ? l4 + " " + i4 : l4;
    }, getABRCustomRules: function() {
      return j2.getAbrCustomRules();
    }, getActiveStream: At2, getAutoPlay: function() {
      return p3;
    }, getAvailableBaseUrls: function() {
      const t5 = nt2.getValue();
      return t5 ? B2.getBaseUrls(t5) : [];
    }, getAvailableLocations: function() {
      const t5 = nt2.getValue();
      if (!t5)
        return [];
      const e4 = F2.getLocation(t5), n4 = J2.getSynthesizedLocationElements(e4);
      return e4.concat(n4);
    }, getAverageLatency: function() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : S2.default.VIDEO, e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, n4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : NaN;
      return E3 ? E3.getAverageLatency(t5, e4, n4) : 0;
    }, getAverageThroughput: function() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : S2.default.VIDEO, e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, n4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : NaN;
      return E3 ? E3.getAverageThroughput(t5, e4, n4) : 0;
    }, getBufferLength: function(t5) {
      const e4 = [S2.default.VIDEO, S2.default.AUDIO, S2.default.TEXT];
      if (t5) {
        if (-1 !== e4.indexOf(t5)) {
          return Tt2().getCurrentBufferLevel(t5) || NaN;
        }
        return d3.warn("getBufferLength requested for invalid type"), NaN;
      }
      {
        const t6 = e4.map((t7) => It2(t7).length > 0 ? Tt2().getCurrentBufferLevel(t7) : Number.MAX_VALUE).reduce((t7, e5) => Math.min(t7, e5));
        return t6 === Number.MAX_VALUE ? NaN : t6;
      }
    }, getCurrentLiveLatency: function() {
      if (!g3)
        throw r3;
      return h3 ? Q2.getCurrentLiveLatency() : NaN;
    }, getCurrentRepresentationForType: function(e4) {
      if (!m3)
        throw t4;
      if (e4 !== S2.default.IMAGE && e4 !== S2.default.VIDEO && e4 !== S2.default.AUDIO)
        return null;
      const n4 = At2();
      if (!n4)
        return null;
      if (e4 === S2.default.IMAGE) {
        const t5 = n4.getThumbnailController();
        return t5 ? t5.getCurrentTrack() : -1;
      }
      return n4.getCurrentRepresentationForType(e4);
    }, getCurrentSteeringResponseData: function() {
      if (J2)
        return J2.getCurrentSteeringResponseData();
    }, getCurrentTextTrackIndex: function() {
      let t5 = NaN;
      const e4 = W2.getActiveStreamInfo();
      if (e4 && $2)
        return t5 = $2.getCurrentTrackIdx(e4.id), t5;
    }, getCurrentTrackFor: function(e4) {
      if (!m3)
        throw t4;
      let n4 = W2.getActiveStreamInfo();
      return n4 ? v3.getCurrentTrackFor(e4, n4.id) : null;
    }, getDashAdapter: function() {
      return F2;
    }, getDashMetrics: Tt2, getDebug: function() {
      return s2;
    }, getDvrSeekOffset: ht2, getDvrWindow: function() {
      if (!h3)
        throw e3;
      const t5 = W2 && W2.hasVideoTrack() ? S2.default.VIDEO : S2.default.AUDIO;
      let n4 = et2.getCurrentDVRInfo(t5);
      if (!n4)
        return {};
      let a3 = 0;
      const r4 = Q2.getIsDynamic();
      return r4 && (a3 = n4.manifestInfo.availableFrom.getTime() / 1e3), { start: n4.range.start, end: n4.range.end, startAsUtc: r4 ? a3 + n4.range.start : NaN, endAsUtc: r4 ? a3 + n4.range.end : NaN, size: n4.range.end - n4.range.start };
    }, getInitialMediaSettingsFor: function(t5) {
      if (!g3)
        throw r3;
      return v3.getInitialSettings(t5);
    }, getLowLatencyModeEnabled: function() {
      if (!h3)
        throw e3;
      return Q2.getLowLatencyModeEnabled();
    }, getManifest: function() {
      return nt2.getValue();
    }, getOfflineController: function() {
      return Dt2();
    }, getPlaybackRate: function() {
      return vt2().playbackRate;
    }, getProtectionController: function() {
      return Ct2();
    }, getRawThroughputData: function() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : S2.default.VIDEO;
      return E3 ? E3.getRawThroughputData(t5) : [];
    }, getRepresentationsByType: function(e4) {
      let n4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
      if (!m3)
        throw t4;
      let a3 = n4 ? W2.getStreamById(n4) : At2();
      return a3 ? a3.getRepresentationsByType(e4) : [];
    }, getSafeAverageThroughput: function() {
      let t5 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : S2.default.VIDEO, e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, n4 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : NaN;
      return E3 ? E3.getSafeAverageThroughput(t5, e4, n4) : 0;
    }, getSettings: function() {
      return o3.get();
    }, getSource: function() {
      if (!c3)
        throw a2;
      return c3;
    }, getStreamsFromManifest: function(e4) {
      if (!m3)
        throw t4;
      return F2.getStreamsInfo(e4);
    }, getTTMLRenderingDiv: function() {
      return it2 ? it2.getTTMLRenderingDiv() : null;
    }, getTargetLiveDelay: function() {
      if (!h3)
        throw e3;
      return Q2.getOriginalLiveDelay();
    }, getTracksFor: It2, getTracksForTypeFromManifest: function(e4, n4, a3) {
      if (!m3)
        throw t4;
      return (a3 = a3 || F2.getStreamsInfo(n4, 1)[0]) ? F2.getAllMediaInfoForType(a3, e4, n4) : [];
    }, getVersion: ft2, getVideoElement: vt2, getVolume: function() {
      return vt2().volume;
    }, getXHRWithCredentialsForType: function(t5) {
      return j2.getXHRWithCredentialsForType(t5);
    }, initialize: function(t5, e4, n4) {
      let a3 = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : NaN;
      H2 || (H2 = (0, si.default)(i3).getInstance(), H2.setConfig({ settings: o3, protectionController: x2 })), q2 || (q2 = oi(i3).getInstance()), H2.supportsMediaSource() ? (g3 || (g3 = true, T3 = po(i3).getInstance(), E3 || (E3 = Xo(i3).getInstance()), y3 || (y3 = dl(i3).getInstance()), _3 || (_3 = Un(i3).getInstance()), Q2 || (Q2 = M(i3).getInstance()), v3 || (v3 = mr(i3).getInstance()), W2 || (W2 = Da(i3).getInstance()), X2 || (X2 = Ma(i3).getInstance()), tt2 || (tt2 = Oa(i3).getInstance()), Z2 || (Z2 = ja(i3).getInstance()), J2 || (J2 = ha(i3).getInstance()), Y2 || (Y2 = di(i3).getInstance()), F2 = Vl(i3).getInstance(), nt2 = hi(i3).getInstance(), at2 = an(i3).getInstance(), rt2 = kn(i3).getInstance(), ut2 = Dn(i3).getInstance(), et2 = so(i3).getInstance({ settings: o3 }), ot2 = Tl(i3).getInstance({ settings: o3 }), F2.setConfig({ constants: S2.default, cea608parser: new w2(), errHandler: q2, BASE64: _o }), B2 || (B2 = Rr(i3).create()), B2.setConfig({ adapter: F2, contentSteeringController: J2 }), Z2.setConfig({ adapter: F2 }), st2 || (st2 = Cl(i3).getInstance({ dashMetrics: et2, mediaPlayerModel: U2, errHandler: q2, baseURLController: B2, events: R.default, eventBus: l3, debug: s2, boxParser: na(i3).getInstance(), errors: V })), v3.setConfig({ domStorage: ot2, settings: o3, mediaPlayerModel: U2, customParametersModel: j2, videoModel: it2 }), U2.setConfig({ playbackController: Q2, serviceDescriptionController: Z2 }), J2.setConfig({ adapter: F2, errHandler: q2, dashMetrics: et2, mediaPlayerModel: U2, manifestModel: nt2, serviceDescriptionController: Z2, throughputController: E3, eventBus: l3 }), _t2(), Et2(void 0 === n4 || n4), Dt2()), t5 && wt2(t5), e4 && kt2(e4, a3), d3.info("[dash.js " + ft2() + "] MediaPlayer has been initialized")) : q2.error(new G.default(V.CAPABILITY_MEDIASOURCE_ERROR_CODE, V.CAPABILITY_MEDIASOURCE_ERROR_MESSAGE));
    }, isDynamic: mt2, isMuted: function() {
      return vt2().muted;
    }, isPaused: gt2, isReady: ct2, isSeeking: function() {
      if (!h3)
        throw e3;
      return Q2.isSeeking();
    }, isTextEnabled: function() {
      const t5 = W2.getActiveStreamInfo();
      return !(!t5 || !$2) && $2.isTextEnabled(t5);
    }, off: function(t5, e4, n4) {
      l3.off(t5, e4, n4);
    }, on: function(t5, e4, n4, a3) {
      l3.on(t5, e4, n4, a3);
    }, pause: function() {
      if (!h3)
        throw e3;
      Q2.pause();
    }, play: function() {
      if (!h3)
        throw e3;
      (!p3 || gt2() && h3) && Q2.play(true);
    }, preload: function() {
      if (!it2.getElement() && !m3) {
        if (!c3)
          throw a2;
        xt2(b3);
      }
    }, provideThumbnail: function(t5, e4) {
      if ("function" != typeof e4)
        return;
      if (t5 < 0)
        return void e4(null);
      const n4 = Q2.getIsDynamic() ? ht2(t5) : t5, a3 = W2.getStreamForTime(n4);
      if (null === a3)
        return void e4(null);
      const r4 = a3.getThumbnailController();
      if (r4)
        return r4.provide(n4, e4);
      e4(null);
    }, refreshManifest: function(t5) {
      if (!g3)
        throw r3;
      if (!ct2())
        return t5(null, a2);
      let e4 = this;
      if ("function" == typeof t5) {
        const n4 = function(a3) {
          l3.off(R.default.INTERNAL_MANIFEST_LOADED, n4, e4), a3.error ? t5(null, a3.error) : t5(a3.manifest);
        };
        l3.on(R.default.INTERNAL_MANIFEST_LOADED, n4, e4);
      }
      W2.refreshManifest();
    }, registerCustomCapabilitiesFilter: function(t5) {
      j2.registerCustomCapabilitiesFilter(t5);
    }, registerLicenseRequestFilter: function(t5) {
      j2.registerLicenseRequestFilter(t5);
    }, registerLicenseResponseFilter: function(t5) {
      j2.registerLicenseResponseFilter(t5);
    }, removeABRCustomRule: function(t5) {
      j2.removeAbrCustomRule(t5);
    }, removeAllABRCustomRule: function() {
      j2.removeAllAbrCustomRule();
    }, removeRequestInterceptor: function(t5) {
      j2.removeRequestInterceptor(t5);
    }, removeResponseInterceptor: function(t5) {
      j2.removeResponseInterceptor(t5);
    }, removeUTCTimingSource: function(t5, e4) {
      j2.removeUTCTimingSource(t5, e4);
    }, reset: dt2, resetCustomInitialTrackSelectionFunction: function() {
      j2.resetCustomInitialTrackSelectionFunction(null);
    }, resetSettings: function() {
      o3.reset();
    }, restoreDefaultUTCTimingSources: _t2, retrieveManifest: function(t5, e4) {
      let n4 = Nt2(), a3 = this;
      const r4 = function(t6) {
        t6.error ? e4(null, t6.error) : e4(t6.manifest), l3.off(R.default.INTERNAL_MANIFEST_LOADED, r4, a3), n4.reset();
      };
      l3.on(R.default.INTERNAL_MANIFEST_LOADED, r4, a3), lt2.initialize(t5), n4.load(t5);
    }, seek: function(t5) {
      if (!h3)
        throw e3;
      if ((0, yt.checkParameterType)(t5, "number"), isNaN(t5))
        throw S2.default.BAD_ARGUMENT_ERROR;
      t5 < 0 && (t5 = 0);
      let n4 = Q2.getIsDynamic() ? ht2(t5) : t5;
      const a3 = vt2();
      !Q2.getIsDynamic() && a3.duration && (n4 = Math.min(a3.duration, n4)), Q2.seek(n4, false, false, true);
    }, seekToOriginalLive: function() {
      h3 && mt2() && Q2.seekToOriginalLive();
    }, seekToPresentationTime: function(t5) {
      if (!h3)
        throw e3;
      if ((0, yt.checkParameterType)(t5, "number"), isNaN(t5))
        throw S2.default.BAD_ARGUMENT_ERROR;
      t5 < 0 && (t5 = 0);
      const n4 = vt2();
      if (!Q2.getIsDynamic() && n4.duration && (t5 = Math.min(n4.duration, t5)), Q2.getIsDynamic()) {
        const e4 = W2 && W2.hasVideoTrack() ? S2.default.VIDEO : S2.default.AUDIO;
        let n5 = et2.getCurrentDVRInfo(e4);
        if (!n5)
          return;
        (t5 = pt2(t5, n5)) < n5.range.start && (t5 = n5.range.start);
      }
      Q2.seek(t5, false, false, true);
    }, setAutoPlay: Et2, setConfig: function(t5) {
      t5 && (t5.capabilities && (H2 = t5.capabilities), t5.capabilitiesFilter && (Y2 = t5.capabilitiesFilter), t5.streamController && (W2 = t5.streamController), t5.textController && ($2 = t5.textController), t5.gapController && (X2 = t5.gapController), t5.throughputController && (E3 = t5.throughputController), t5.playbackController && (Q2 = t5.playbackController), t5.serviceDescriptionController && (Z2 = t5.serviceDescriptionController), t5.contentSteeringController && (J2 = t5.contentSteeringController), t5.clientDataReportingController && (ut2 = t5.clientDataReportingController), t5.catchupController && (tt2 = t5.catchupController), t5.mediaPlayerModel && (U2 = t5.mediaPlayerModel), t5.customParametersModel && (j2 = t5.customParametersModel), t5.abrController && (y3 = t5.abrController), t5.schemeLoaderFactory && (_3 = t5.schemeLoaderFactory), t5.mediaController && (v3 = t5.mediaController), t5.settings && (o3 = t5.settings), t5.dashMetrics && (et2 = t5.dashMetrics));
    }, setCurrentTrack: function(e4) {
      let n4 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
      if (!m3)
        throw t4;
      !x2 || x2.areKeyIdsUsable(e4.normalizedKeyIds) ? v3.setTrack(e4, { noSettingsSave: n4 }) : d3.error(`Can not switch to track with index ${e4.index} because key is not usable`);
    }, setCustomInitialTrackSelectionFunction: function(t5) {
      j2.setCustomInitialTrackSelectionFunction(t5);
    }, setInitialMediaSettingsFor: function(t5, e4) {
      if (!g3)
        throw r3;
      let n4 = function(t6) {
        const e5 = o3.get().streaming.defaultSchemeIdUri;
        let n5 = {};
        function a3(t7, e6, n6) {
          let a4 = {};
          if (e6) {
            if (e6 instanceof Array)
              throw "Array type not supported for settings!";
            return e6 instanceof Object ? (a4.schemeIdUri = e6.schemeIdUri ? e6.schemeIdUri : "", a4.value = e6.value ? e6.value : "") : (a4.schemeIdUri = n6, a4.value = e6, d3.warn("No schemeIdUri provided for " + t7 + ', using default "' + n6 + '"')), a4;
          }
          return null;
        }
        return void 0 !== t6.id && (n5.id = t6.id), void 0 !== t6.lang && (n5.lang = t6.lang), isNaN(t6.index) || (n5.index = t6.index), void 0 !== t6.viewpoint && (n5.viewpoint = a3("viewpoint", t6.viewpoint, e5.viewpoint)), void 0 !== t6.audioChannelConfiguration && (n5.audioChannelConfiguration = a3("audioChannelConfiguration", t6.audioChannelConfiguration, e5.audioChannelConfiguration)), void 0 !== t6.role && (n5.role = a3("role", t6.role, e5.role), n5.role.schemeIdUri === S2.default.DASH_ROLE_SCHEME_ID && "Main" === n5.role.value && (n5.role.value = I.default.MAIN)), void 0 !== t6.accessibility && (n5.accessibility = a3("accessibility", t6.accessibility, e5.accessibility)), n5;
      }(e4);
      v3.setInitialSettings(t5, n4);
    }, setMute: function(t5) {
      (0, yt.checkParameterType)(t5, "boolean"), vt2().muted = t5;
    }, setPlaybackRate: function(t5) {
      vt2().playbackRate = t5;
    }, setProtectionData: function(t5) {
      f3 = t5, W2 && W2.setProtectionData(f3);
    }, setRepresentationForTypeById: function(e4, n4) {
      let a3 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
      if (e4 !== S2.default.IMAGE && e4 !== S2.default.VIDEO && e4 !== S2.default.AUDIO)
        return;
      if (!m3)
        throw t4;
      const r4 = At2();
      if (r4)
        if (e4 === S2.default.IMAGE) {
          const t5 = r4.getThumbnailController();
          t5 && t5.setTrackById(n4);
        } else {
          const t5 = r4.getRepresentationForTypeById(e4, n4);
          t5 && y3.setPlaybackQuality(e4, W2.getActiveStreamInfo(), t5, { forceReplace: a3 });
        }
    }, setRepresentationForTypeByIndex: function(e4, n4) {
      let a3 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
      if (e4 !== S2.default.IMAGE && e4 !== S2.default.VIDEO && e4 !== S2.default.AUDIO)
        return;
      if (!m3)
        throw t4;
      const r4 = At2();
      if (r4)
        if (e4 === S2.default.IMAGE) {
          const t5 = r4.getThumbnailController();
          t5 && t5.setTrackByIndex(n4);
        } else {
          const t5 = r4.getRepresentationForTypeByIndex(e4, n4);
          t5 && y3.setPlaybackQuality(e4, W2.getActiveStreamInfo(), t5, { forceReplace: a3 });
        }
    }, setTextTrack: function(t5) {
      if (!h3)
        throw e3;
      const n4 = W2.getActiveStreamInfo();
      n4 && $2 && $2.setTextTrack(n4.id, t5);
    }, setVolume: function(t5) {
      if ("number" != typeof t5 || isNaN(t5) || t5 < 0 || t5 > 1)
        throw S2.default.BAD_ARGUMENT_ERROR;
      vt2().volume = t5;
    }, setXHRWithCredentialsForType: function(t5, e4) {
      j2.setXHRWithCredentialsForType(t5, e4);
    }, time: bt2, timeAsUTC: function() {
      if (!h3)
        throw e3;
      if (!Q2.getIsDynamic() || bt2() < 0)
        return NaN;
      const t5 = W2 && W2.hasVideoTrack() ? S2.default.VIDEO : S2.default.AUDIO;
      let n4, a3, r4 = et2.getCurrentDVRInfo(t5);
      return r4 ? (n4 = r4.manifestInfo.availableFrom.getTime() / 1e3, a3 = n4 + bt2(), a3) : 0;
    }, timeInDvrWindow: function() {
      if (!h3)
        throw e3;
      if (!Q2.getIsDynamic())
        return bt2();
      let t5 = vt2().currentTime;
      const n4 = W2 && W2.hasVideoTrack() ? S2.default.VIDEO : S2.default.AUDIO;
      let a3 = et2.getCurrentDVRInfo(n4);
      return t5 = null === a3 || 0 === t5 ? 0 : Math.max(0, t5 - a3.range.start), t5;
    }, trigger: function(t5, e4, n4) {
      l3.trigger(t5, e4, n4);
    }, triggerSteeringRequest: function() {
      if (J2)
        return J2.loadSteeringData();
    }, unregisterCustomCapabilitiesFilter: function(t5) {
      j2.unregisterCustomCapabilitiesFilter(t5);
    }, unregisterLicenseRequestFilter: function(t5) {
      j2.unregisterLicenseRequestFilter(t5);
    }, unregisterLicenseResponseFilter: function(t5) {
      j2.unregisterLicenseResponseFilter(t5);
    }, updateSettings: function(t5) {
      o3.update(t5);
    }, updateSource: function(t5) {
      c3 = t5, W2.load(c3);
    } }, d3 = s2.getLogger(u3), g3 = false, h3 = false, m3 = false, p3 = true, b3 = NaN, x2 = null, L2 = null, f3 = null, F2 = null, st2 = null, R.default.extend(D.default), U2 = bi(i3).getInstance(), j2 = (0, An.default)(i3).getInstance(), it2 = gl(i3).getInstance(), lt2 = gi(i3).getInstance(), u3;
  }
  Qo.__dashjs_factory_name = "MediaPlayer";
  const Zo = N.default.getClassFactory(Qo);
  Zo.events = D.default, Zo.errors = V, N.default.updateClassFactory(Qo.__dashjs_factory_name, Zo);
  var Jo = Zo;
}, 1191: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(7252);
  class r2 extends a2.default {
    constructor() {
      super(), this.AST_IN_FUTURE = "astInFuture", this.BASE_URLS_UPDATED = "baseUrlsUpdated", this.BUFFER_EMPTY = "bufferStalled", this.BUFFER_LOADED = "bufferLoaded", this.BUFFER_LEVEL_STATE_CHANGED = "bufferStateChanged", this.BUFFER_LEVEL_UPDATED = "bufferLevelUpdated", this.DVB_FONT_DOWNLOAD_ADDED = "dvbFontDownloadAdded", this.DVB_FONT_DOWNLOAD_COMPLETE = "dvbFontDownloadComplete", this.DVB_FONT_DOWNLOAD_FAILED = "dvbFontDownloadFailed", this.DYNAMIC_TO_STATIC = "dynamicToStatic", this.ERROR = "error", this.FRAGMENT_LOADING_COMPLETED = "fragmentLoadingCompleted", this.FRAGMENT_LOADING_PROGRESS = "fragmentLoadingProgress", this.FRAGMENT_LOADING_STARTED = "fragmentLoadingStarted", this.FRAGMENT_LOADING_ABANDONED = "fragmentLoadingAbandoned", this.LOG = "log", this.MANIFEST_LOADING_STARTED = "manifestLoadingStarted", this.MANIFEST_LOADING_FINISHED = "manifestLoadingFinished", this.MANIFEST_LOADED = "manifestLoaded", this.METRICS_CHANGED = "metricsChanged", this.METRIC_CHANGED = "metricChanged", this.METRIC_ADDED = "metricAdded", this.METRIC_UPDATED = "metricUpdated", this.PERIOD_SWITCH_STARTED = "periodSwitchStarted", this.PERIOD_SWITCH_COMPLETED = "periodSwitchCompleted", this.QUALITY_CHANGE_REQUESTED = "qualityChangeRequested", this.QUALITY_CHANGE_RENDERED = "qualityChangeRendered", this.NEW_TRACK_SELECTED = "newTrackSelected", this.TRACK_CHANGE_RENDERED = "trackChangeRendered", this.STREAM_INITIALIZING = "streamInitializing", this.STREAM_UPDATED = "streamUpdated", this.STREAM_ACTIVATED = "streamActivated", this.STREAM_DEACTIVATED = "streamDeactivated", this.STREAM_INITIALIZED = "streamInitialized", this.STREAM_TEARDOWN_COMPLETE = "streamTeardownComplete", this.TEXT_TRACKS_ADDED = "allTextTracksAdded", this.TEXT_TRACK_ADDED = "textTrackAdded", this.CUE_ENTER = "cueEnter", this.CUE_EXIT = "cueExit", this.THROUGHPUT_MEASUREMENT_STORED = "throughputMeasurementStored", this.TTML_PARSED = "ttmlParsed", this.TTML_TO_PARSE = "ttmlToParse", this.CAPTION_RENDERED = "captionRendered", this.CAPTION_CONTAINER_RESIZE = "captionContainerResize", this.CAN_PLAY = "canPlay", this.CAN_PLAY_THROUGH = "canPlayThrough", this.PLAYBACK_ENDED = "playbackEnded", this.PLAYBACK_ERROR = "playbackError", this.PLAYBACK_INITIALIZED = "playbackInitialized", this.PLAYBACK_NOT_ALLOWED = "playbackNotAllowed", this.PLAYBACK_METADATA_LOADED = "playbackMetaDataLoaded", this.PLAYBACK_LOADED_DATA = "playbackLoadedData", this.PLAYBACK_PAUSED = "playbackPaused", this.PLAYBACK_PLAYING = "playbackPlaying", this.PLAYBACK_PROGRESS = "playbackProgress", this.PLAYBACK_RATE_CHANGED = "playbackRateChanged", this.PLAYBACK_SEEKED = "playbackSeeked", this.PLAYBACK_SEEKING = "playbackSeeking", this.PLAYBACK_STALLED = "playbackStalled", this.PLAYBACK_STARTED = "playbackStarted", this.PLAYBACK_TIME_UPDATED = "playbackTimeUpdated", this.PLAYBACK_VOLUME_CHANGED = "playbackVolumeChanged", this.PLAYBACK_WAITING = "playbackWaiting", this.MANIFEST_VALIDITY_CHANGED = "manifestValidityChanged", this.EVENT_MODE_ON_START = "eventModeOnStart", this.EVENT_MODE_ON_RECEIVE = "eventModeOnReceive", this.CONFORMANCE_VIOLATION = "conformanceViolation", this.REPRESENTATION_SWITCH = "representationSwitch", this.ADAPTATION_SET_REMOVED_NO_CAPABILITIES = "adaptationSetRemovedNoCapabilities", this.CONTENT_STEERING_REQUEST_COMPLETED = "contentSteeringRequestCompleted", this.INBAND_PRFT = "inbandPrft", this.MANAGED_MEDIA_SOURCE_START_STREAMING = "managedMediaSourceStartStreaming", this.MANAGED_MEDIA_SOURCE_END_STREAMING = "managedMediaSourceEndStreaming";
    }
  }
  let i2 = new r2();
  e2.default = i2;
}, 5212: function(t3, e2, n2) {
  n2.r(e2), e2.default = { STREAM: "stream", VIDEO: "video", AUDIO: "audio", TEXT: "text", MUXED: "muxed", IMAGE: "image", STPP: "stpp", TTML: "ttml", VTT: "vtt", WVTT: "wvtt", CONTENT_STEERING: "contentSteering", LIVE_CATCHUP_MODE_DEFAULT: "liveCatchupModeDefault", LIVE_CATCHUP_MODE_LOLP: "liveCatchupModeLoLP", MOVING_AVERAGE_SLIDING_WINDOW: "slidingWindow", MOVING_AVERAGE_EWMA: "ewma", BAD_ARGUMENT_ERROR: "Invalid Arguments", MISSING_CONFIG_ERROR: "Missing config parameter(s)", TRACK_SWITCH_MODE_ALWAYS_REPLACE: "alwaysReplace", TRACK_SWITCH_MODE_NEVER_REPLACE: "neverReplace", TRACK_SELECTION_MODE_FIRST_TRACK: "firstTrack", TRACK_SELECTION_MODE_HIGHEST_BITRATE: "highestBitrate", TRACK_SELECTION_MODE_HIGHEST_EFFICIENCY: "highestEfficiency", TRACK_SELECTION_MODE_WIDEST_RANGE: "widestRange", CMCD_QUERY_KEY: "CMCD", CMCD_MODE_QUERY: "query", CMCD_MODE_HEADER: "header", CMCD_AVAILABLE_KEYS: ["br", "d", "ot", "tb", "bl", "dl", "mtp", "nor", "nrr", "su", "bs", "rtp", "cid", "pr", "sf", "sid", "st", "v"], CMCD_V2_AVAILABLE_KEYS: ["msd", "ltc"], CMCD_AVAILABLE_REQUESTS: ["segment", "mpd", "xlink", "steering", "other"], INITIALIZE: "initialize", TEXT_SHOWING: "showing", TEXT_HIDDEN: "hidden", TEXT_DISABLED: "disabled", ACCESSIBILITY_CEA608_SCHEME: "urn:scte:dash:cc:cea-608:2015", CC1: "CC1", CC3: "CC3", UTF8: "utf-8", SCHEME_ID_URI: "schemeIdUri", START_TIME: "starttime", SERVICE_DESCRIPTION_DVB_LL_SCHEME: "urn:dvb:dash:lowlatency:scope:2019", SUPPLEMENTAL_PROPERTY_DVB_LL_SCHEME: "urn:dvb:dash:lowlatency:critical:2019", CTA_5004_2023_SCHEME: "urn:mpeg:dash:cta-5004:2023", THUMBNAILS_SCHEME_ID_URIS: ["http://dashif.org/thumbnail_tile", "http://dashif.org/guidelines/thumbnail_tile"], FONT_DOWNLOAD_DVB_SCHEME: "urn:dvb:dash:fontdownload:2014", COLOUR_PRIMARIES_SCHEME_ID_URI: "urn:mpeg:mpegB:cicp:ColourPrimaries", URL_QUERY_INFO_SCHEME: "urn:mpeg:dash:urlparam:2014", EXT_URL_QUERY_INFO_SCHEME: "urn:mpeg:dash:urlparam:2016", MATRIX_COEFFICIENTS_SCHEME_ID_URI: "urn:mpeg:mpegB:cicp:MatrixCoefficients", TRANSFER_CHARACTERISTICS_SCHEME_ID_URI: "urn:mpeg:mpegB:cicp:TransferCharacteristics", HDR_METADATA_FORMAT_SCHEME_ID_URI: "urn:dvb:dash:hdr-dmi", HDR_METADATA_FORMAT_VALUES: { ST2094_10: "ST2094-10", SL_HDR2: "SL-HDR2", ST2094_40: "ST2094-40" }, MEDIA_CAPABILITIES_API: { COLORGAMUT: { SRGB: "srgb", P3: "p3", REC2020: "rec2020" }, TRANSFERFUNCTION: { SRGB: "srgb", PQ: "pq", HLG: "hlg" }, HDR_METADATATYPE: { SMPTE_ST_2094_10: "smpteSt2094-10", SLHDR2: "slhdr2", SMPTE_ST_2094_40: "smpteSt2094-40" } }, XML: "XML", ARRAY_BUFFER: "ArrayBuffer", DVB_REPORTING_URL: "dvb:reportingUrl", DVB_PROBABILITY: "dvb:probability", OFF_MIMETYPE: "application/font-sfnt", WOFF_MIMETYPE: "application/font-woff", VIDEO_ELEMENT_READY_STATES: { HAVE_NOTHING: 0, HAVE_METADATA: 1, HAVE_CURRENT_DATA: 2, HAVE_FUTURE_DATA: 3, HAVE_ENOUGH_DATA: 4 }, FILE_LOADER_TYPES: { FETCH: "fetch_loader", XHR: "xhr_loader" }, THROUGHPUT_TYPES: { LATENCY: "throughput_type_latency", BANDWIDTH: "throughput_type_bandwidth" }, THROUGHPUT_CALCULATION_MODES: { EWMA: "throughputCalculationModeEwma", ZLEMA: "throughputCalculationModeZlema", ARITHMETIC_MEAN: "throughputCalculationModeArithmeticMean", BYTE_SIZE_WEIGHTED_ARITHMETIC_MEAN: "throughputCalculationModeByteSizeWeightedArithmeticMean", DATE_WEIGHTED_ARITHMETIC_MEAN: "throughputCalculationModeDateWeightedArithmeticMean", HARMONIC_MEAN: "throughputCalculationModeHarmonicMean", BYTE_SIZE_WEIGHTED_HARMONIC_MEAN: "throughputCalculationModeByteSizeWeightedHarmonicMean", DATE_WEIGHTED_HARMONIC_MEAN: "throughputCalculationModeDateWeightedHarmonicMean" }, LOW_LATENCY_DOWNLOAD_TIME_CALCULATION_MODE: { MOOF_PARSING: "lowLatencyDownloadTimeCalculationModeMoofParsing", DOWNLOADED_DATA: "lowLatencyDownloadTimeCalculationModeDownloadedData", AAST: "lowLatencyDownloadTimeCalculationModeAast" }, RULES_TYPES: { QUALITY_SWITCH_RULES: "qualitySwitchRules", ABANDON_FRAGMENT_RULES: "abandonFragmentRules" }, QUALITY_SWITCH_RULES: { BOLA_RULE: "BolaRule", THROUGHPUT_RULE: "ThroughputRule", INSUFFICIENT_BUFFER_RULE: "InsufficientBufferRule", SWITCH_HISTORY_RULE: "SwitchHistoryRule", DROPPED_FRAMES_RULE: "DroppedFramesRule", LEARN_TO_ADAPT_RULE: "L2ARule", LOL_PLUS_RULE: "LoLPRule" }, ABANDON_FRAGMENT_RULES: { ABANDON_REQUEST_RULE: "AbandonRequestsRule" }, ID3_SCHEME_ID_URI: "https://aomedia.org/emsg/ID3", COMMON_ACCESS_TOKEN_HEADER: "common-access-token", DASH_ROLE_SCHEME_ID: "urn:mpeg:dash:role:2011", CODEC_FAMILIES: { MP3: "mp3", AAC: "aac", AC3: "ac3", EC3: "ec3", DTSX: "dtsx", DTSC: "dtsc", AVC: "avc", HEVC: "hevc" } };
}, 2861: function(t3, e2, n2) {
  n2.r(e2), e2.default = { CLEARKEY_KEYSTEM_STRING: "org.w3.clearkey", WIDEVINE_KEYSTEM_STRING: "com.widevine.alpha", PLAYREADY_KEYSTEM_STRING: "com.microsoft.playready", PLAYREADY_RECOMMENDATION_KEYSTEM_STRING: "com.microsoft.playready.recommendation", WIDEVINE_UUID: "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed", PLAYREADY_UUID: "9a04f079-9840-4286-ab92-e65be0885f95", CLEARKEY_UUID: "e2719d58-a985-b3c9-781a-b030af78d30e", W3C_CLEARKEY_UUID: "1077efec-c0b2-4d02-ace3-3c1e52e2fb4b", INITIALIZATION_DATA_TYPE_CENC: "cenc", INITIALIZATION_DATA_TYPE_KEYIDS: "keyids", INITIALIZATION_DATA_TYPE_WEBM: "webm", ENCRYPTION_SCHEME_CENC: "cenc", ENCRYPTION_SCHEME_CBCS: "cbcs", MEDIA_KEY_MESSAGE_TYPES: { LICENSE_REQUEST: "license-request", LICENSE_RENEWAL: "license-renewal", LICENSE_RELEASE: "license-release", INDIVIDUALIZATION_REQUEST: "individualization-request" }, ROBUSTNESS_STRINGS: { WIDEVINE: { SW_SECURE_CRYPTO: "SW_SECURE_CRYPTO", SW_SECURE_DECODE: "SW_SECURE_DECODE", HW_SECURE_CRYPTO: "HW_SECURE_CRYPTO", HW_SECURE_DECODE: "HW_SECURE_DECODE", HW_SECURE_ALL: "HW_SECURE_ALL" } }, MEDIA_KEY_STATUSES: { USABLE: "usable", EXPIRED: "expired", RELEASED: "released", OUTPUT_RESTRICTED: "output-restricted", OUTPUT_DOWNSCALED: "output-downscaled", STATUS_PENDING: "status-pending", INTERNAL_ERROR: "internal-error" } };
}, 4469: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { default: function() {
    return K;
  } });
  class a2 {
    constructor() {
      this.mpdurl = null, this.errorcode = null, this.terror = null, this.url = null, this.ipaddress = null, this.servicelocation = null;
    }
  }
  a2.SSL_CONNECTION_FAILED_PREFIX = "SSL", a2.DNS_RESOLUTION_FAILED = "C00", a2.HOST_UNREACHABLE = "C01", a2.CONNECTION_REFUSED = "C02", a2.CONNECTION_ERROR = "C03", a2.CORRUPT_MEDIA_ISOBMFF = "M00", a2.CORRUPT_MEDIA_OTHER = "M01", a2.BASE_URL_CHANGED = "F00", a2.BECAME_REPORTER = "S00";
  var r2 = a2, i2 = n2(913), l2 = n2(138);
  function o2(t4) {
    let e3, n3;
    const a3 = (t4 = t4 || {}).eventBus, l3 = t4.dashMetrics, o3 = t4.metricsConstants, s3 = t4.events;
    function u3(t5) {
      let e4 = new r2();
      if (n3) {
        for (const n4 in t5)
          t5.hasOwnProperty(n4) && (e4[n4] = t5[n4]);
        e4.mpdurl || (e4.mpdurl = n3.originalUrl || n3.url), e4.terror || (e4.terror = /* @__PURE__ */ new Date()), l3.addDVBErrors(e4);
      }
    }
    function d3(t5) {
      t5.error || (n3 = t5.manifest);
    }
    function c3(t5) {
      u3({ errorcode: r2.BASE_URL_CHANGED, servicelocation: t5.entry });
    }
    function f3() {
      u3({ errorcode: r2.BECAME_REPORTER });
    }
    function g3(t5) {
      var e4;
      t5.metric === o3.HTTP_REQUEST && (0 === (e4 = t5.value).responsecode || null == e4.responsecode || e4.responsecode >= 400 || e4.responsecode < 100 || e4.responsecode >= 600) && u3({ errorcode: e4.responsecode || r2.CONNECTION_ERROR, url: e4.url, terror: e4.tresponse, servicelocation: e4._serviceLocation });
    }
    function m3(t5) {
      let e4;
      switch (t5.error ? t5.error.code : 0) {
        case MediaError.MEDIA_ERR_NETWORK:
          e4 = r2.CONNECTION_ERROR;
          break;
        case MediaError.MEDIA_ERR_DECODE:
          e4 = r2.CORRUPT_MEDIA_OTHER;
          break;
        default:
          return;
      }
      u3({ errorcode: e4 });
    }
    return e3 = { initialize: function() {
      a3.on(s3.MANIFEST_UPDATED, d3, e3), a3.on(s3.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED, c3, e3), a3.on(s3.METRIC_ADDED, g3, e3), a3.on(s3.METRIC_UPDATED, g3, e3), a3.on(s3.PLAYBACK_ERROR, m3, e3), a3.on(i2.default.BECAME_REPORTING_PLAYER, f3, e3);
    }, reset: function() {
      a3.off(s3.MANIFEST_UPDATED, d3, e3), a3.off(s3.SERVICE_LOCATION_BASE_URL_BLACKLIST_CHANGED, c3, e3), a3.off(s3.METRIC_ADDED, g3, e3), a3.off(s3.METRIC_UPDATED, g3, e3), a3.off(s3.PLAYBACK_ERROR, m3, e3), a3.off(i2.default.BECAME_REPORTING_PLAYER, f3, e3);
    } }, e3;
  }
  o2.__dashjs_factory_name = "DVBErrorsTranslator";
  var s2 = l2.default.getSingletonFactory(o2), u2 = n2(7377);
  function d2(t4) {
    t4 = t4 || {};
    let e3, n3, a3 = false, r3 = this.context, i3 = t4.mediaElement;
    return e3 = { initialize: function(t5) {
      t5 && t5.length && (t5.forEach((t6) => {
        let e4 = t6.starttime, a4 = e4 + t6.duration;
        n3.add(e4, a4);
      }), a3 = !!t5[0]._useWallClockTime);
    }, reset: function() {
      n3.clear();
    }, isEnabled: function() {
      let t5, e4 = n3.length;
      if (!e4)
        return true;
      t5 = a3 ? (/* @__PURE__ */ new Date()).getTime() / 1e3 : i3.currentTime;
      for (let a4 = 0; a4 < e4; a4 += 1) {
        let e5 = n3.start(a4), r4 = n3.end(a4);
        if (e5 <= t5 && t5 < r4)
          return true;
      }
      return false;
    } }, n3 = (0, u2.default)(r3).create(), e3;
  }
  d2.__dashjs_factory_name = "RangeController";
  var c2 = l2.default.getClassFactory(d2);
  function f2() {
    return { serialise: function t4(e3) {
      let n3, a3, r3 = [], i3 = [];
      for (n3 in e3)
        if (e3.hasOwnProperty(n3) && 0 !== n3.indexOf("_")) {
          if (a3 = e3[n3], null == a3 && (a3 = ""), Array.isArray(a3)) {
            if (!a3.length)
              continue;
            i3 = [], a3.forEach(function(e4) {
              let n4 = "Object" !== Object.prototype.toString.call(e4).slice(8, -1);
              i3.push(n4 ? e4 : t4(e4));
            }), a3 = i3.map(encodeURIComponent).join(",");
          } else
            "string" == typeof a3 ? a3 = encodeURIComponent(a3) : a3 instanceof Date ? a3 = a3.toISOString() : "number" == typeof a3 && (a3 = Math.round(a3));
          r3.push(n3 + "=" + a3);
        }
      return r3.join("&");
    } };
  }
  f2.__dashjs_factory_name = "MetricSerialiser";
  var g2 = l2.default.getSingletonFactory(f2);
  function m2() {
    let t4, e3, n3, a3 = window.crypto || window.msCrypto, r3 = Uint32Array, i3 = Math.pow(2, 8 * r3.BYTES_PER_ELEMENT) - 1;
    function l3() {
      a3 && (t4 || (t4 = new r3(10)), a3.getRandomValues(t4), e3 = 0);
    }
    return n3 = { random: function(n4, r4) {
      let o3;
      return n4 || (n4 = 0), r4 || (r4 = 1), a3 ? (e3 === t4.length && l3(), o3 = t4[e3] / i3, e3 += 1) : o3 = Math.random(), o3 * (r4 - n4) + n4;
    } }, l3(), n3;
  }
  m2.__dashjs_factory_name = "RNG";
  var h2 = l2.default.getSingletonFactory(m2), p2 = n2(1926);
  function b2(t4) {
    let e3;
    t4 = t4 || {};
    let n3, a3, r3, i3, l3, o3, s3, u3 = this.context, d3 = [];
    const c3 = t4.metricsConstants;
    function f3() {
      i3 = false, l3 = false, o3 = null, s3 = null;
    }
    return e3 = { report: function(t5, e4) {
      Array.isArray(e4) || (e4 = [e4]), l3 && s3.isEnabled() && e4.forEach(function(e5) {
        let r4 = n3.serialise(e5);
        t5 !== c3.DVB_ERRORS && (r4 = `metricname=${t5}&${r4}`), r4 = `${o3}?${r4}`, function(t6, e6, n4) {
          let r5 = new XMLHttpRequest();
          r5.withCredentials = a3.getXHRWithCredentialsForType(c3.HTTP_REQUEST_DVB_REPORTING_TYPE);
          const i4 = function() {
            let t7 = d3.indexOf(r5);
            -1 !== t7 && (d3.splice(t7, 1), !(r5.status >= 200 && r5.status < 300) && (n4 && n4()));
          };
          d3.push(r5);
          try {
            r5.open("GET", t6), r5.onloadend = i4, r5.onerror = i4, r5.send();
          } catch (t7) {
            r5.onerror();
          }
        }(r4, 0, function() {
          l3 = false;
        });
      });
    }, initialize: function(t5, e4) {
      let n4;
      if (s3 = e4, o3 = t5.dvbReportingUrl, !o3)
        throw new Error("required parameter missing (dvb:reportingUrl)");
      i3 || (n4 = t5.dvbProbability, n4 && (1e3 === n4 || n4 / 1e3 >= r3.random()) && (l3 = true), i3 = true);
    }, reset: function() {
      f3();
    } }, n3 = g2(u3).getInstance(), r3 = h2(u3).getInstance(), a3 = (0, p2.default)(u3).getInstance(), f3(), e3;
  }
  b2.__dashjs_factory_name = "DVBReporting";
  var y2 = l2.default.getClassFactory(b2);
  function E2(t4) {
    t4 = t4 || {};
    const e3 = { "urn:dvb:dash:reporting:2014": y2 }, n3 = this.context;
    let a3;
    const r3 = t4.debug ? t4.debug.getLogger(a3) : {}, i3 = t4.metricsConstants, l3 = t4.mediaPlayerModel || {};
    return a3 = { create: function(t5, a4) {
      let o3;
      try {
        o3 = e3[t5.schemeIdUri](n3).create({ metricsConstants: i3, mediaPlayerModel: l3 }), o3.initialize(t5, a4);
      } catch (e4) {
        o3 = null, r3.error(`ReportingFactory: could not create Reporting with schemeIdUri ${t5.schemeIdUri} (${e4.message})`);
      }
      return o3;
    }, register: function(t5, n4) {
      e3[t5] = n4;
    }, unregister: function(t5) {
      delete e3[t5];
    } }, a3;
  }
  E2.__dashjs_factory_name = "ReportingFactory";
  var _2 = l2.default.getSingletonFactory(E2);
  function T2(t4) {
    let e3, n3 = [];
    const a3 = _2(this.context).getInstance(t4);
    return e3 = { initialize: function(t5, e4) {
      t5.some((t6) => {
        let r3 = a3.create(t6, e4);
        if (r3)
          return n3.push(r3), true;
      });
    }, reset: function() {
      n3.forEach((t5) => t5.reset()), n3 = [];
    }, report: function(t5, e4) {
      n3.forEach((n4) => n4.report(t5, e4));
    } }, e3;
  }
  T2.__dashjs_factory_name = "ReportingController";
  var v2 = l2.default.getClassFactory(T2);
  function w2() {
    return { reconstructFullMetricName: function(t4, e3, n3) {
      let a3 = t4;
      return e3 && (a3 += "(" + e3, n3 && n3.length && (a3 += "," + n3), a3 += ")"), a3;
    }, validateN: function(t4) {
      if (!t4)
        throw new Error("missing n");
      if (isNaN(t4))
        throw new Error("n is NaN");
      if (t4 < 0)
        throw new Error("n must be positive");
      return t4;
    } };
  }
  w2.__dashjs_factory_name = "HandlerHelpers";
  var S2 = l2.default.getSingletonFactory(w2);
  function I(t4) {
    let e3, n3, a3, r3, i3, l3;
    t4 = t4 || {};
    let o3 = this.context, s3 = S2(o3).getInstance(), u3 = [];
    const d3 = t4.metricsConstants;
    function c3() {
      let t5 = function() {
        try {
          return Object.keys(u3).map((t6) => u3[t6]).reduce((t6, e4) => t6.level < e4.level ? t6 : e4);
        } catch (t6) {
          return;
        }
      }();
      t5 && l3 !== t5.t && (l3 = t5.t, n3.report(r3, t5));
    }
    return e3 = { initialize: function(t5, e4, l4) {
      e4 && (a3 = s3.validateN(l4), n3 = e4, r3 = s3.reconstructFullMetricName(t5, l4), i3 = setInterval(c3, a3));
    }, reset: function() {
      clearInterval(i3), i3 = null, a3 = 0, n3 = null, l3 = null;
    }, handleNewMetric: function(t5, e4, n4) {
      t5 === d3.BUFFER_LEVEL && (u3[n4] = e4);
    } }, e3;
  }
  I.__dashjs_factory_name = "BufferLevelHandler";
  var k = l2.default.getClassFactory(I), A = l2.default.getClassFactory(function(t4) {
    let e3, n3, a3 = (t4 = t4 || {}).eventBus;
    const r3 = t4.metricsConstants;
    function l3() {
      a3.off(i2.default.METRICS_INITIALISATION_COMPLETE, l3, this), a3.trigger(i2.default.BECAME_REPORTING_PLAYER);
    }
    return e3 = { initialize: function(t5, e4) {
      e4 && (n3 = e4, a3.on(i2.default.METRICS_INITIALISATION_COMPLETE, l3, this));
    }, reset: function() {
      n3 = null;
    }, handleNewMetric: function(t5, e4) {
      t5 === r3.DVB_ERRORS && n3 && n3.report(t5, e4);
    } }, e3;
  });
  function R(t4) {
    let e3, n3, a3, r3, i3, l3;
    t4 = t4 || {};
    let o3 = [], s3 = S2(this.context).getInstance();
    const u3 = t4.metricsConstants;
    function d3() {
      var t5 = o3;
      t5.length && n3 && n3.report(i3, t5), o3 = [];
    }
    return e3 = { initialize: function(t5, e4, o4, u4) {
      e4 && (a3 = s3.validateN(o4), n3 = e4, u4 && u4.length && (r3 = u4), i3 = s3.reconstructFullMetricName(t5, o4, u4), l3 = setInterval(d3, a3));
    }, reset: function() {
      clearInterval(l3), l3 = null, a3 = null, r3 = null, o3 = [], n3 = null;
    }, handleNewMetric: function(t5, e4) {
      t5 === u3.HTTP_REQUEST && (r3 && r3 !== e4.type || o3.push(e4));
    } }, e3;
  }
  R.__dashjs_factory_name = "HttpListHandler";
  var N = l2.default.getClassFactory(R);
  function C() {
    let t4, e3, n3;
    return t4 = { initialize: function(t5, a3) {
      e3 = t5, n3 = a3;
    }, reset: function() {
      n3 = null, e3 = void 0;
    }, handleNewMetric: function(t5, a3) {
      t5 === e3 && n3 && n3.report(e3, a3);
    } }, t4;
  }
  C.__dashjs_factory_name = "GenericMetricHandler";
  var D = l2.default.getClassFactory(C);
  function x(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).debug ? t4.debug.getLogger(e3) : {};
    let a3 = /([a-zA-Z]*)(\(([0-9]*)(\,\s*([a-zA-Z]*))?\))?/;
    const r3 = this.context;
    let i3 = { BufferLevel: k, DVBErrors: A, HttpList: N, PlayList: D, RepSwitchList: D, TcpList: D };
    return e3 = { create: function(e4, l3) {
      var o3, s3 = e4.match(a3);
      if (s3) {
        try {
          (o3 = i3[s3[1]](r3).create({ eventBus: t4.eventBus, metricsConstants: t4.metricsConstants })).initialize(s3[1], l3, s3[3], s3[5]);
        } catch (t5) {
          o3 = null, n3.error(`MetricsHandlerFactory: Could not create handler for type ${s3[1]} with args ${s3[3]}, ${s3[5]} (${t5.message})`);
        }
        return o3;
      }
    }, register: function(t5, e4) {
      i3[t5] = e4;
    }, unregister: function(t5) {
      delete i3[t5];
    } }, e3;
  }
  x.__dashjs_factory_name = "MetricsHandlerFactory";
  var M = l2.default.getSingletonFactory(x);
  function z(t4) {
    t4 = t4 || {};
    let e3, n3 = [];
    const a3 = this.context, r3 = t4.eventBus, i3 = t4.events;
    let l3 = M(a3).getInstance({ debug: t4.debug, eventBus: t4.eventBus, metricsConstants: t4.metricsConstants });
    function o3(t5) {
      n3.forEach((e4) => {
        e4.handleNewMetric(t5.metric, t5.value, t5.mediaType);
      });
    }
    return e3 = { initialize: function(t5, a4) {
      t5.split(",").forEach((t6, e4, r4) => {
        let i4;
        if (-1 !== t6.indexOf("(") && -1 === t6.indexOf(")")) {
          let n4 = r4[e4 + 1];
          n4 && -1 === n4.indexOf("(") && -1 !== n4.indexOf(")") && (t6 += "," + n4, delete r4[e4 + 1]);
        }
        i4 = l3.create(t6, a4), i4 && n3.push(i4);
      }), r3.on(i3.METRIC_ADDED, o3, e3), r3.on(i3.METRIC_UPDATED, o3, e3);
    }, reset: function() {
      r3.off(i3.METRIC_ADDED, o3, e3), r3.off(i3.METRIC_UPDATED, o3, e3), n3.forEach((t5) => t5.reset()), n3 = [];
    } }, e3;
  }
  z.__dashjs_factory_name = "MetricsHandlersController";
  var O = l2.default.getClassFactory(z);
  function P(t4) {
    let e3, n3, a3, r3;
    t4 = t4 || {};
    let i3 = this.context;
    function l3() {
      e3 && e3.reset(), n3 && n3.reset(), a3 && a3.reset();
    }
    return r3 = { initialize: function(r4) {
      try {
        a3 = c2(i3).create({ mediaElement: t4.mediaElement }), a3.initialize(r4.Range), n3 = v2(i3).create({ debug: t4.debug, metricsConstants: t4.metricsConstants, mediaPlayerModel: t4.mediaPlayerModel }), n3.initialize(r4.Reporting, a3), e3 = O(i3).create({ debug: t4.debug, eventBus: t4.eventBus, metricsConstants: t4.metricsConstants, events: t4.events }), e3.initialize(r4.metrics, n3);
      } catch (t5) {
        throw l3(), t5;
      }
    }, reset: l3 }, r3;
  }
  P.__dashjs_factory_name = "MetricsController";
  var L = l2.default.getClassFactory(P), F = class {
    constructor() {
      this.metrics = "", this.Range = [], this.Reporting = [];
    }
  }, U = class {
    constructor() {
      this.starttime = 0, this.duration = 1 / 0, this._useWallClockTime = false;
    }
  }, j = class {
    constructor() {
      this.schemeIdUri = "", this.value = "", this.dvbReportingUrl = "", this.dvbProbability = 1e3;
    }
  };
  function q(t4) {
    let e3, n3 = (t4 = t4 || {}).adapter;
    const a3 = t4.constants;
    return e3 = { getMetrics: function(t5) {
      let e4 = [];
      return t5 && t5.Metrics && t5.Metrics.forEach((r3) => {
        var i3 = new F(), l3 = n3.getIsDynamic(t5);
        r3.hasOwnProperty("metrics") && (i3.metrics = r3.metrics, r3.Range && r3.Range.forEach((e5) => {
          var r4 = new U();
          r4.starttime = function(t6, e6, r5) {
            let i4, l4, o3 = 0;
            return e6 ? o3 = n3.getAvailabilityStartTime(t6) / 1e3 : (i4 = n3.getRegularPeriods(t6), i4.length && (o3 = i4[0].start)), l4 = o3, r5 && r5.hasOwnProperty(a3.START_TIME) && (l4 += r5.starttime), l4;
          }(t5, l3, e5), e5.hasOwnProperty("duration") ? r4.duration = e5.duration : r4.duration = n3.getDuration(t5), r4._useWallClockTime = l3, i3.Range.push(r4);
        }), r3.Reporting && (r3.Reporting.forEach((t6) => {
          var e5 = new j();
          t6.hasOwnProperty(a3.SCHEME_ID_URI) && (e5.schemeIdUri = t6.schemeIdUri, t6.hasOwnProperty("value") && (e5.value = t6.value), t6.hasOwnProperty(a3.DVB_REPORTING_URL) && (e5.dvbReportingUrl = t6[a3.DVB_REPORTING_URL]), t6.hasOwnProperty(a3.DVB_PROBABILITY) && (e5.dvbProbability = t6[a3.DVB_PROBABILITY]), i3.Reporting.push(e5));
        }), e4.push(i3)));
      }), e4;
    } }, e3;
  }
  q.__dashjs_factory_name = "ManifestParsing";
  var B = l2.default.getSingletonFactory(q);
  function G(t4) {
    let e3;
    t4 = t4 || {};
    let n3 = {}, a3 = this.context, r3 = t4.eventBus;
    const l3 = t4.events;
    function o3(e4) {
      if (e4.error)
        return;
      let l4 = Object.keys(n3);
      B(a3).getInstance({ adapter: t4.adapter, constants: t4.constants }).getMetrics(e4.manifest).forEach((e5) => {
        const r4 = JSON.stringify(e5);
        if (n3.hasOwnProperty(r4))
          l4.splice(r4, 1);
        else
          try {
            let i3 = L(a3).create(t4);
            i3.initialize(e5), n3[r4] = i3;
          } catch (t5) {
          }
      }), l4.forEach((t5) => {
        n3[t5].reset(), delete n3[t5];
      }), r3.trigger(i2.default.METRICS_INITIALISATION_COMPLETE);
    }
    function s3() {
      Object.keys(n3).forEach((t5) => {
        n3[t5].reset();
      }), n3 = {};
    }
    return e3 = { reset: function() {
      r3.off(l3.MANIFEST_UPDATED, o3, e3), r3.off(l3.STREAM_TEARDOWN_COMPLETE, s3, e3);
    } }, r3.on(l3.MANIFEST_UPDATED, o3, e3), r3.on(l3.STREAM_TEARDOWN_COMPLETE, s3, e3), e3;
  }
  G.__dashjs_factory_name = "MetricsCollectionController";
  var H = l2.default.getClassFactory(G);
  function Y() {
    let t4, e3, n3 = this.context;
    return t4 = { createMetricsReporting: function(t5) {
      return e3 = s2(n3).getInstance({ eventBus: t5.eventBus, dashMetrics: t5.dashMetrics, metricsConstants: t5.metricsConstants, events: t5.events }), e3.initialize(), H(n3).create(t5);
    }, getReportingFactory: function() {
      return _2(n3).getInstance();
    }, getMetricsHandlerFactory: function() {
      return M(n3).getInstance();
    } }, t4;
  }
  Y.__dashjs_factory_name = "MetricsReporting";
  const V = dashjs.FactoryMaker.getClassFactory(Y);
  V.events = i2.default, dashjs.FactoryMaker.updateClassFactory(Y.__dashjs_factory_name, V);
  var K = V;
}, 913: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(7252);
  class r2 extends a2.default {
    constructor() {
      super(), this.METRICS_INITIALISATION_COMPLETE = "internal_metricsReportingInitialized", this.BECAME_REPORTING_PLAYER = "internal_becameReportingPlayer", this.CMCD_DATA_GENERATED = "cmcdDataGenerated";
    }
  }
  let i2 = new r2();
  e2.default = i2;
}, 1926: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(5717), r2 = n2(138), i2 = n2(8261), l2 = n2(656), o2 = n2(5212);
  function s2() {
    let t4, e3, n3, r3, s3, u2, d2, c2, f2, g2;
    const m2 = this.context, h2 = (0, i2.default)(m2).getInstance();
    function p2() {
      r3 = [], s3 = [], u2 = [], d2 = [], c2 = [], g2 = [], f2 = null, e3 = [];
    }
    function b2(t5, e4) {
      let n4 = -1;
      t5.some((t6, a3) => {
        if (t6 === e4)
          return n4 = a3, true;
      }), n4 < 0 || t5.splice(n4, 1);
    }
    function y2(t5) {
      let e4;
      for (e4 = 0; e4 < g2.length; e4++)
        if (g2[e4].rulename === t5)
          return e4;
      return -1;
    }
    function E2(t5, n4) {
      _2(t5, n4);
      let r4 = new a2.default();
      r4.schemeIdUri = t5, r4.value = n4, e3.push(r4);
    }
    function _2(t5, n4) {
      (0, l2.checkParameterType)(t5, "string"), (0, l2.checkParameterType)(n4, "string"), e3.forEach(function(a3, r4) {
        a3.schemeIdUri === t5 && a3.value === n4 && e3.splice(r4, 1);
      });
    }
    return t4 = { addAbrCustomRule: function(t5, e4, n4) {
      if ("string" != typeof t5 || t5 !== o2.default.RULES_TYPES.ABANDON_FRAGMENT_RULES && t5 !== o2.default.RULES_TYPES.QUALITY_SWITCH_RULES || "string" != typeof e4)
        throw o2.default.BAD_ARGUMENT_ERROR;
      let a3 = y2(e4);
      -1 === a3 ? g2.push({ type: t5, rulename: e4, rule: n4 }) : (g2[a3].type = t5, g2[a3].rule = n4);
    }, addRequestInterceptor: function(t5) {
      r3.push(t5);
    }, addResponseInterceptor: function(t5) {
      s3.push(t5);
    }, addUTCTimingSource: E2, clearDefaultUTCTimingSources: function() {
      e3 = [];
    }, getAbrCustomRules: function() {
      return g2;
    }, getCustomCapabilitiesFilters: function() {
      return c2;
    }, getCustomInitialTrackSelectionFunction: function() {
      return f2;
    }, getLicenseRequestFilters: function() {
      return u2;
    }, getLicenseResponseFilters: function() {
      return d2;
    }, getRequestInterceptors: function() {
      return r3;
    }, getResponseInterceptors: function() {
      return s3;
    }, getUTCTimingSources: function() {
      return e3;
    }, getXHRWithCredentialsForType: function(t5) {
      const e4 = n3[t5];
      return void 0 === e4 ? n3.default : e4;
    }, registerCustomCapabilitiesFilter: function(t5) {
      c2.push(t5);
    }, registerLicenseRequestFilter: function(t5) {
      u2.push(t5);
    }, registerLicenseResponseFilter: function(t5) {
      d2.push(t5);
    }, removeAbrCustomRule: function(t5) {
      if (t5) {
        let e4 = y2(t5);
        -1 !== e4 && g2.splice(e4, 1);
      } else
        g2 = [];
    }, removeAllAbrCustomRule: function() {
      g2 = [];
    }, removeRequestInterceptor: function(t5) {
      b2(r3, t5);
    }, removeResponseInterceptor: function(t5) {
      b2(s3, t5);
    }, removeUTCTimingSource: _2, reset: function() {
      p2();
    }, resetCustomInitialTrackSelectionFunction: function() {
      f2 = null;
    }, restoreDefaultUTCTimingSources: function() {
      let t5 = h2.get().streaming.utcSynchronization.defaultTimingSource;
      E2(t5.scheme, t5.value);
    }, setConfig: function() {
    }, setCustomInitialTrackSelectionFunction: function(t5) {
      f2 = t5;
    }, setXHRWithCredentialsForType: function t5(e4, a3) {
      e4 ? n3[e4] = !!a3 : Object.keys(n3).forEach((e5) => {
        t5(e5, a3);
      });
    }, unregisterCustomCapabilitiesFilter: function(t5) {
      b2(c2, t5);
    }, unregisterLicenseRequestFilter: function(t5) {
      b2(u2, t5);
    }, unregisterLicenseResponseFilter: function(t5) {
      b2(d2, t5);
    } }, n3 = { default: false }, p2(), t4;
  }
  s2.__dashjs_factory_name = "CustomParametersModel", e2.default = r2.default.getSingletonFactory(s2);
}, 3888: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { default: function() {
    return mt;
  } });
  var a2 = n2(8854), r2 = n2(2861);
  const i2 = { prefixes: ["clearkey", "dashif", "ck"] };
  class l2 {
    static findMp4ProtectionElement(t4) {
      let e3 = null;
      for (let n3 = 0; n3 < t4.length; ++n3) {
        let i3 = t4[n3];
        i3.schemeIdUri && i3.schemeIdUri.toLowerCase() === a2.default.MP4_PROTECTION_SCHEME && i3.value && (i3.value.toLowerCase() === r2.default.ENCRYPTION_SCHEME_CENC || i3.value.toLowerCase() === r2.default.ENCRYPTION_SCHEME_CBCS) && (e3 = i3);
      }
      return e3;
    }
    static getPSSHData(t4) {
      let e3 = 8, n3 = new DataView(t4), a3 = n3.getUint8(e3);
      return e3 += 20, a3 > 0 && (e3 += 4 + 16 * n3.getUint32(e3)), e3 += 4, t4.slice(e3);
    }
    static getPSSHForKeySystem(t4, e3) {
      let n3 = l2.parsePSSHList(e3);
      return t4 && n3.hasOwnProperty(t4.uuid.toLowerCase()) ? n3[t4.uuid.toLowerCase()] : null;
    }
    static parseInitDataFromContentProtection(t4, e3) {
      return "pssh" in t4 && t4.pssh ? (t4.pssh.__text = t4.pssh.__text.replace(/\r?\n|\r/g, "").replace(/\s+/g, ""), e3.decodeArray(t4.pssh.__text).buffer) : null;
    }
    static parsePSSHList(t4) {
      if (null == t4)
        return [];
      let e3 = new DataView(t4.buffer || t4), n3 = {}, a3 = 0;
      for (; ; ) {
        let t5, r3, i3, l3, o3, s3, u3 = a3;
        if (a3 >= e3.buffer.byteLength)
          break;
        if (t5 = e3.getUint32(a3), r3 = a3 + t5, a3 += 4, 1886614376 === e3.getUint32(a3))
          if (a3 += 4, i3 = e3.getUint8(a3), 0 === i3 || 1 === i3) {
            for (a3++, a3 += 3, l3 = "", o3 = 0; o3 < 4; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            for (a3 += 4, l3 += "-", o3 = 0; o3 < 2; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            for (a3 += 2, l3 += "-", o3 = 0; o3 < 2; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            for (a3 += 2, l3 += "-", o3 = 0; o3 < 2; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            for (a3 += 2, l3 += "-", o3 = 0; o3 < 6; o3++)
              s3 = e3.getUint8(a3 + o3).toString(16), l3 += 1 === s3.length ? "0" + s3 : s3;
            a3 += 6, l3 = l3.toLowerCase(), a3 += 4, n3[l3] = e3.buffer.slice(u3, r3), a3 = r3;
          } else
            a3 = r3;
        else
          a3 = r3;
      }
      return n3;
    }
    static getLicenseServerUrlFromMediaInfo(t4, e3) {
      try {
        if (!t4 || 0 === t4.length)
          return null;
        let n3 = 0, a3 = null;
        for (; n3 < t4.length && !a3; ) {
          const r3 = t4[n3];
          if (r3 && r3.contentProtection && r3.contentProtection.length > 0) {
            const t5 = r3.contentProtection.filter((t6) => t6.schemeIdUri && t6.schemeIdUri === e3);
            if (t5 && t5.length > 0) {
              let e4 = 0;
              for (; e4 < t5.length && !a3; ) {
                const n4 = t5[e4];
                n4.laUrl && n4.laUrl.__prefix && i2.prefixes.includes(n4.laUrl.__prefix) && n4.laUrl.__text && (a3 = n4.laUrl.__text), e4 += 1;
              }
            }
          }
          n3 += 1;
        }
        return a3;
      } catch (t5) {
        return null;
      }
    }
    static hexKidToBufferSource(t4) {
      const e3 = t4.replace(/-/g, "");
      return new Uint8Array(e3.match(/[\da-f]{2}/gi).map(function(t5) {
        return parseInt(t5, 16);
      })).buffer;
    }
  }
  var o2 = l2, s2 = class {
    constructor(t4, e3) {
      this.contentType = t4, this.robustness = e3;
    }
  }, u2 = class {
    constructor(t4, e3, n3, a3, i3, l3) {
      this.initDataTypes = l3 && l3.length > 0 ? l3 : [r2.default.INITIALIZATION_DATA_TYPE_CENC], t4 && t4.length && (this.audioCapabilities = t4), e3 && e3.length && (this.videoCapabilities = e3), this.distinctiveIdentifier = n3, this.persistentState = a3, this.sessionTypes = i3;
    }
  }, d2 = n2(1923), c2 = n2(1944), f2 = class {
    constructor(t4, e3, n3, a3, r3, i3, l3, o3) {
      this.url = t4, this.method = e3, this.responseType = n3, this.headers = a3, this.withCredentials = r3, this.messageType = i3, this.sessionId = l3, this.data = o3;
    }
  }, g2 = class {
    constructor(t4, e3, n3) {
      this.url = t4, this.headers = e3, this.data = n3;
    }
  }, m2 = n2(7568), h2 = n2(7263), p2 = n2(5212), b2 = n2(138);
  function y2(t4) {
    const e3 = (t4 = t4 || {}).BASE64, n3 = t4.cmcdModel, a3 = t4.constants, i3 = t4.customParametersModel, l3 = t4.debug, b3 = t4.eventBus, y3 = t4.events, E3 = t4.protectionKeyController, _3 = t4.settings;
    let T3, v3, w3, S3, I2, k2, A2, R2, N2, C2, D2, x2, M2 = t4.protectionModel, z2 = [];
    function O2() {
      if (!(b3 && b3.hasOwnProperty("on") && E3 && E3.hasOwnProperty("getSupportedKeySystemMetadataFromContentProtection")))
        throw new Error("Missing config parameter(s)");
    }
    function P2(t5, n4) {
      D2 || S3 ? D2 && L2() : function(t6, n5) {
        if (S3)
          return;
        var a4;
        S3 = true;
        const r3 = function(t7) {
          const e4 = [];
          for (let n6 = 0; n6 < t7.length; n6++) {
            const a5 = F2(t7[n6]);
            e4.push({ ks: t7[n6].ks, configs: [a5], protData: t7[n6].protData });
          }
          return e4;
        }(t6 = (a4 = t6).sort((t7, e4) => (T3 && T3[t7.ks.systemString] && T3[t7.ks.systemString].priority >= 0 ? T3[t7.ks.systemString].priority : a4.length) - (T3 && T3[e4.ks.systemString] && T3[e4.ks.systemString].priority >= 0 ? T3[e4.ks.systemString].priority : a4.length)));
        let i4;
        M2.requestKeySystemAccess(r3).then((t7) => (i4 = t7.data, function(t8) {
          let e4 = t8 && t8.selectedSystemString ? t8.selectedSystemString : t8.keySystem.systemString;
          return A2.info("DRM: KeySystem Access Granted for system string (" + e4 + ")!  Selecting key system..."), M2.selectKeySystem(t8);
        }(i4))).then((t7) => {
          !function(t8, n6) {
            D2 = t8, S3 = false, b3.trigger(y3.KEY_SYSTEM_SELECTED, { data: n6 });
            const a5 = q2(D2);
            a5 && a5.serverCertificate && a5.serverCertificate.length > 0 && M2.setServerCertificate(e3.decodeArray(a5.serverCertificate).buffer), L2();
          }(t7, i4);
        }).catch((t7) => {
          !function(t8, e4) {
            D2 = null, S3 = false, e4 || b3.trigger(y3.KEY_SYSTEM_SELECTED, { data: null, error: new c2.default(d2.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE, d2.default.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE + "Error selecting key system! -- " + t8.error) });
          }(t7, n5);
        });
      }(t5, n4);
    }
    function L2() {
      let t5;
      for (let n4 = 0; n4 < N2.length; n4++)
        for (t5 = 0; t5 < N2[n4].length; t5++)
          if (D2 === N2[n4][t5].ks) {
            e4 = N2[n4][t5], E3.isClearKey(D2) && function(t6) {
              if (t6.protData && t6.protData.hasOwnProperty("clearkeys") && 0 !== Object.keys(t6.protData.clearkeys).length) {
                const e5 = { kids: Object.keys(t6.protData.clearkeys) };
                t6.initData = new TextEncoder().encode(JSON.stringify(e5));
              }
            }(e4), e4.sessionId ? U2(e4) : null !== e4.initData && j2(e4);
            break;
          }
      var e4;
      N2 = [];
    }
    function F2(t5) {
      const e4 = t5.protData, n4 = [], i4 = [], l4 = e4 && e4.initDataTypes && e4.initDataTypes.length > 0 ? e4.initDataTypes : [r2.default.INITIALIZATION_DATA_TYPE_CENC], o3 = e4 && e4.audioRobustness && e4.audioRobustness.length > 0 ? e4.audioRobustness : C2, d3 = e4 && e4.videoRobustness && e4.videoRobustness.length > 0 ? e4.videoRobustness : C2, c3 = t5.sessionType, f3 = e4 && e4.distinctiveIdentifier ? e4.distinctiveIdentifier : "optional", g3 = e4 && e4.persistentState ? e4.persistentState : "temporary" === c3 ? "optional" : "required";
      return R2.forEach((t6) => {
        t6.type === a3.AUDIO ? n4.push(new s2(t6.codec, o3)) : t6.type === a3.VIDEO && i4.push(new s2(t6.codec, d3));
      }), new u2(n4, i4, f3, g3, [c3], l4);
    }
    function U2(t5) {
      O2(), M2.loadKeySession(t5);
    }
    function j2(t5) {
      if (t5 && function(t6) {
        if (!t6)
          return false;
        try {
          const e5 = M2.getSessionTokens();
          for (let n4 = 0; n4 < e5.length; n4++)
            if (e5[n4].getKeyId() === t6)
              return true;
          return false;
        } catch (t7) {
          return false;
        }
      }(t5.keyId))
        return;
      const e4 = o2.getPSSHForKeySystem(D2, t5 ? t5.initData : null);
      if (e4) {
        if (B2(e4))
          return;
        try {
          t5.initData = e4, M2.createKeySession(t5);
        } catch (t6) {
          b3.trigger(y3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + t6.message) });
        }
      } else
        t5 && t5.initData ? M2.createKeySession(t5) : b3.trigger(y3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + "Selected key system is " + (D2 ? D2.systemString : null) + ".  needkey/encrypted event contains no initData corresponding to that key system!") });
    }
    function q2(t5) {
      if (t5) {
        const e4 = t5.systemString;
        if (T3)
          return e4 in T3 ? T3[e4] : null;
      }
      return null;
    }
    function B2(t5) {
      if (!t5)
        return false;
      try {
        const e4 = M2.getAllInitData();
        for (let n4 = 0; n4 < e4.length; n4++)
          if (E3.initDataEquals(t5, e4[n4]))
            return A2.debug("DRM: Ignoring initData because we have already seen it!"), true;
        return false;
      } catch (t6) {
        return false;
      }
    }
    function G2(t5) {
      O2(), t5 ? (M2.setMediaElement(t5), b3.on(y3.NEED_KEY, Q2, v3)) : null === t5 && (M2.setMediaElement(t5), b3.off(y3.NEED_KEY, Q2, v3));
    }
    function H2(t5) {
      A2.debug("DRM: onKeyMessage");
      const e4 = t5.data;
      b3.trigger(y3.KEY_MESSAGE, { data: e4 });
      const n4 = e4.messageType ? e4.messageType : r2.default.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST, a4 = e4.message, l4 = e4.sessionToken, s3 = q2(D2), u3 = E3.getLicenseServerModelInstance(D2, s3, n4), p3 = { sessionToken: l4, messageType: n4 };
      if (a4 && 0 !== a4.byteLength) {
        if (!u3)
          return A2.debug("DRM: License server request not required for this message (type = " + t5.data.messageType + ").  Session ID = " + l4.getSessionId()), void Y2(p3);
        if (E3.isClearKey(D2)) {
          const t6 = E3.processClearKeyLicenseRequest(D2, s3, a4);
          if (t6 && t6.keyPairs && t6.keyPairs.length > 0)
            return A2.debug("DRM: ClearKey license request handled by application!"), Y2(p3), void M2.updateKeySession(l4, t6);
        }
        !function(t6, e5, n5) {
          const a5 = t6.sessionToken, l5 = t6.messageType ? t6.messageType : r2.default.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST, s4 = { sessionToken: a5, messageType: l5 }, u4 = D2 ? D2.systemString : null;
          let p4 = function(t7, e6, n6, a6, r3) {
            let i4 = null;
            const l6 = a6.message;
            if (t7 && t7.serverURL) {
              const n7 = t7.serverURL;
              "string" == typeof n7 && "" !== n7 ? i4 = n7 : "object" == typeof n7 && n7.hasOwnProperty(e6) && (i4 = n7[e6]);
            } else if (t7 && t7.laURL && "" !== t7.laURL)
              i4 = t7.laURL;
            else if (i4 = o2.getLicenseServerUrlFromMediaInfo(R2, D2.schemeIdURI), !i4 && !E3.isClearKey(D2)) {
              const t8 = o2.getPSSHData(n6.initData);
              i4 = D2.getLicenseServerURLFromInitData(t8), i4 || (i4 = a6.laURL);
            }
            return i4 = r3.getServerURLFromMessage(i4, l6, e6), i4;
          }(n5, l5, a5, t6, e5);
          if (!p4)
            return void Y2(s4, new c2.default(d2.default.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE));
          const b4 = {};
          let y4 = false;
          n5 && W2(b4, n5.httpRequestHeaders);
          const T4 = t6.message;
          W2(b4, D2.getRequestHeadersFromMessage(T4)), Object.keys(b4).forEach((t7) => {
            "authorization" === t7.toLowerCase() && (y4 = true);
          }), n5 && "boolean" == typeof n5.withCredentials && (y4 = n5.withCredentials);
          const v4 = function(t7) {
            if (M2)
              if (t7.status >= 200 && t7.status <= 299) {
                const n6 = h2.default.parseHttpHeaders(t7.getAllResponseHeaders ? t7.getAllResponseHeaders() : null);
                let r3 = new g2(t7.responseURL, n6, t7.response);
                X2(i3.getLicenseResponseFilters(), r3).then(() => {
                  const n7 = e5.getLicenseMessage(r3.data, u4, l5);
                  null !== n7 ? (Y2(s4), M2.updateKeySession(a5, n7)) : $2(t7, s4, u4, l5, e5);
                });
              } else
                $2(t7, s4, u4, l5, e5);
          }, w4 = function(t7) {
            Y2(s4, new c2.default(d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE + u4 + ' update, XHR aborted. status is "' + t7.statusText + '" (' + t7.status + "), readyState is " + t7.readyState));
          }, S4 = function(t7) {
            Y2(s4, new c2.default(d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE + u4 + ' update, XHR error. status is "' + t7.statusText + '" (' + t7.status + "), readyState is " + t7.readyState));
          }, I3 = D2.getLicenseRequestFromMessage(T4), k3 = e5.getHTTPMethod(l5), A3 = e5.getResponseType(u4, l5), N3 = n5 && !isNaN(n5.httpTimeout) ? n5.httpTimeout : 8e3, C3 = a5.getSessionId() || null;
          let x3 = new f2(p4, k3, A3, b4, y4, l5, C3, I3);
          const z3 = isNaN(_3.get().streaming.retryAttempts[m2.HTTPRequest.LICENSE]) ? 3 : _3.get().streaming.retryAttempts[m2.HTTPRequest.LICENSE];
          X2(i3.getLicenseRequestFilters(), x3).then(() => {
            V2(x3, z3, N3, v4, w4, S4);
          });
        }(e4, u3, s3);
      } else
        Y2(p3, new c2.default(d2.default.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE));
    }
    function Y2(t5) {
      let e4 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
      b3.trigger(y3.LICENSE_REQUEST_COMPLETE, { data: t5, error: e4 });
    }
    function V2(t5, e4, a4, r3, i4, l4) {
      const o3 = new XMLHttpRequest(), s3 = n3.getCmcdParametersFromManifest();
      if (n3.isCmcdEnabled() && (s3.mode ? s3.mode : _3.get().streaming.cmcd.mode) === p2.default.CMCD_MODE_QUERY) {
        const e5 = n3.getQueryParameter({ url: t5.url, type: m2.HTTPRequest.LICENSE });
        e5 && (t5.url = h2.default.addAdditionalQueryParameterToUrl(t5.url, [e5]));
      }
      o3.open(t5.method, t5.url, true), o3.responseType = t5.responseType, o3.withCredentials = t5.withCredentials, a4 > 0 && (o3.timeout = a4);
      for (const e5 in t5.headers)
        o3.setRequestHeader(e5, t5.headers[e5]);
      if (n3.isCmcdEnabled() && (s3.mode ? s3.mode : _3.get().streaming.cmcd.mode) === p2.default.CMCD_MODE_HEADER) {
        const e5 = n3.getHeaderParameters({ url: t5.url, type: m2.HTTPRequest.LICENSE });
        if (e5)
          for (const t6 in e5) {
            let n4 = e5[t6];
            n4 && o3.setRequestHeader(t6, n4);
          }
      }
      const u3 = function() {
        e4--;
        const n4 = isNaN(_3.get().streaming.retryIntervals[m2.HTTPRequest.LICENSE]) ? 1e3 : _3.get().streaming.retryIntervals[m2.HTTPRequest.LICENSE];
        I2 = setTimeout(function() {
          V2(t5, e4, a4, r3, i4, l4);
        }, n4);
      };
      o3.onload = function() {
        k2 = null, this.status >= 200 && this.status <= 299 || e4 <= 0 ? r3(this) : (A2.warn("License request failed (" + this.status + "). Retrying it... Pending retries: " + e4), u3());
      }, o3.ontimeout = o3.onerror = function() {
        k2 = null, e4 <= 0 ? l4(this) : (A2.warn("License request network request failed . Retrying it... Pending retries: " + e4), u3());
      }, o3.onabort = function() {
        i4(this);
      }, b3.trigger(y3.LICENSE_REQUEST_SENDING, { url: t5.url, headers: t5.headers, payload: t5.data, sessionId: t5.sessionId }), k2 = o3, o3.send(t5.data);
    }
    function K2() {
      k2 && (k2.onloadend = k2.onerror = k2.onprogress = void 0, k2.abort(), k2 = null), I2 && (clearTimeout(I2), I2 = null);
    }
    function W2(t5, e4) {
      if (e4)
        for (const n4 in e4)
          t5[n4] = e4[n4];
    }
    function $2(t5, e4, n4, a4, r3) {
      let i4 = "NONE", l4 = null;
      t5.response && (i4 = r3.getErrorResponse(t5.response, n4, a4), l4 = { serverResponse: t5.response || null, responseCode: t5.status || null, responseText: t5.statusText || null }), Y2(e4, new c2.default(d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE + n4 + ' update, XHR complete. status is "' + t5.statusText + '" (' + t5.status + "), readyState is " + t5.readyState + ".  Response is " + i4, l4));
    }
    function X2(t5, e4) {
      return t5 ? t5.reduce((t6, n4) => t6.then(() => n4(e4)), Promise.resolve()) : Promise.resolve();
    }
    function Q2(t5, e4) {
      if (_3.get().streaming.protection.ignoreEmeEncryptedEvent)
        return;
      if (A2.debug("DRM: onNeedKey"), t5.key.initDataType !== r2.default.INITIALIZATION_DATA_TYPE_CENC)
        return void A2.warn("DRM:  Only 'cenc' initData is supported!  Ignoring initData of type: " + t5.key.initDataType);
      if (0 === R2.length && (A2.warn("DRM: onNeedKey called before initializeForMedia, wait until initialized"), (e4 = void 0 === e4 ? 1 : e4 + 1) < 5))
        return void z2.push(setTimeout(() => {
          Q2(t5, e4);
        }, 500));
      let n4 = t5.key.initData;
      if (ArrayBuffer.isView(n4) && (n4 = n4.buffer), D2) {
        const t6 = o2.getPSSHForKeySystem(D2, n4);
        if (t6 && B2(t6))
          return;
      }
      A2.debug("DRM: initData:", String.fromCharCode.apply(null, new Uint8Array(n4)));
      const a4 = E3.getSupportedKeySystemMetadataFromSegmentPssh(n4, T3, x2);
      0 !== a4.length ? function(t6) {
        N2.push(t6), P2(t6, false);
      }(a4) : A2.debug("DRM: Received needkey event with initData, but we don't support any of the key systems!");
    }
    function Z2(t5, e4) {
      if (t5.size <= 0)
        return false;
      if (e4.size > 0 && [...t5].every((t6) => {
        const n5 = e4.get(t6);
        return void 0 !== n5 && "" !== n5;
      }))
        return true;
      const n4 = M2.getSessionTokens();
      if (n4 && n4.length > 0) {
        const e5 = n4.filter((e6) => [...t5].includes(e6.normalizedKeyId));
        if (e5.some((t6) => !t6.hasTriggeredKeyStatusMapUpdate) || 0 === e5.length)
          return false;
      }
      return !_3.get().streaming.protection.ignoreKeyStatuses && t5 && t5.size > 0 && e4 && e4.size > 0;
    }
    return v3 = { areKeyIdsExpired: function(t5) {
      try {
        return !!Z2(t5, w3) && [...t5].every((t6) => w3.get(t6) === r2.default.MEDIA_KEY_STATUSES.EXPIRED);
      } catch (t6) {
        return A2.error(t6), false;
      }
    }, areKeyIdsUsable: function(t5) {
      try {
        return !Z2(t5, w3) || [...t5].some((t6) => {
          const e4 = w3.get(t6);
          return e4 && e4 !== r2.default.MEDIA_KEY_STATUSES.INTERNAL_ERROR && e4 !== r2.default.MEDIA_KEY_STATUSES.OUTPUT_RESTRICTED;
        });
      } catch (t6) {
        return A2.error(t6), true;
      }
    }, clearMediaInfoArray: function() {
      R2 = [];
    }, closeKeySession: function(t5) {
      O2(), M2.closeKeySession(t5);
    }, createKeySession: j2, getKeySystems: function() {
      return E3 ? E3.getKeySystems() : [];
    }, getSupportedKeySystemMetadataFromContentProtection: function(t5) {
      return O2(), E3.getSupportedKeySystemMetadataFromContentProtection(t5, T3, x2);
    }, handleKeySystemFromManifest: function() {
      if (!R2 || 0 === R2.length)
        return;
      let t5 = [];
      R2.forEach((e4) => {
        const n4 = E3.getSupportedKeySystemMetadataFromContentProtection(e4.contentProtection, T3, x2);
        n4.length > 0 && (0 === t5.length && (t5 = n4), N2.push(n4));
      }), t5 && t5.length > 0 && P2(t5, true);
    }, initializeForMedia: function(t5) {
      if (!t5)
        throw new Error("mediaInfo can not be null or undefined");
      O2(), R2.push(t5);
    }, loadKeySession: U2, removeKeySession: function(t5) {
      O2(), M2.removeKeySession(t5);
    }, reset: function() {
      b3.off(y3.INTERNAL_KEY_MESSAGE, H2, v3), O2(), K2(), G2(null), D2 = null, S3 = false, w3 = /* @__PURE__ */ new Map(), M2 && (M2.reset(), M2 = null), z2.forEach((t5) => clearTimeout(t5)), z2 = [], R2 = [], N2 = [];
    }, setKeySystems: function(t5) {
      E3 && E3.setKeySystems(t5);
    }, setMediaElement: G2, setProtectionData: function(t5) {
      T3 = t5, E3.setProtectionData(t5);
    }, setRobustnessLevel: function(t5) {
      C2 = t5;
    }, setServerCertificate: function(t5) {
      O2(), M2.setServerCertificate(t5);
    }, setSessionType: function(t5) {
      x2 = t5;
    }, stop: function() {
      K2(), M2 && M2.stop();
    }, updateKeyStatusesMap: function(t5) {
      try {
        if (!t5 || !t5.sessionToken || !t5.parsedKeyStatuses)
          return;
        t5.sessionToken.hasTriggeredKeyStatusMapUpdate = true;
        const e4 = t5.parsedKeyStatuses, n4 = h2.default.parseUserAgent(), a4 = n4 && n4.browser && n4.browser.name && "edge" === n4.browser.name.toLowerCase();
        e4.forEach((t6) => {
          a4 && D2.uuid === r2.default.PLAYREADY_UUID && t6.keyId && 16 === t6.keyId.byteLength && function(t7) {
            const e6 = h2.default.bufferSourceToDataView(t7), n5 = e6.getUint32(0, true), a5 = e6.getUint16(4, true), r3 = e6.getUint16(6, true);
            e6.setUint32(0, n5, false), e6.setUint16(4, a5, false), e6.setUint16(6, r3, false);
          }(t6.keyId);
          const e5 = h2.default.bufferSourceToHex(t6.keyId).slice(0, 32);
          e5 && "" !== e5 && w3.set(e5, t6.status);
        }), b3.trigger(y3.KEY_STATUSES_MAP_UPDATED, { keyStatusMap: w3 });
      } catch (t6) {
        A2.error(t6);
      }
    } }, A2 = l3.getLogger(v3), N2 = [], R2 = [], x2 = "temporary", C2 = "", k2 = null, I2 = null, w3 = /* @__PURE__ */ new Map(), b3.on(y3.INTERNAL_KEY_MESSAGE, H2, v3), v3;
  }
  y2.__dashjs_factory_name = "ProtectionController";
  var E2 = b2.default.getClassFactory(y2), _2 = class {
    constructor(t4, e3) {
      this.keyID = t4, this.key = e3;
    }
  }, T2 = class {
    constructor(t4, e3) {
      if (e3 && "persistent" !== e3 && "temporary" !== e3)
        throw new Error("Invalid ClearKey key set type!  Must be one of 'persistent' or 'temporary'");
      this.keyPairs = t4, this.type = e3;
    }
    toJWK() {
      let t4, e3 = this.keyPairs.length, n3 = { keys: [] };
      for (t4 = 0; t4 < e3; t4++) {
        let e4 = { kty: "oct", alg: "A128KW", kid: this.keyPairs[t4].keyID, k: this.keyPairs[t4].key };
        n3.keys.push(e4);
      }
      this.type && (n3.type = this.type);
      let a3 = JSON.stringify(n3);
      const r3 = a3.length;
      let i3 = new ArrayBuffer(r3), l3 = new Uint8Array(i3);
      for (t4 = 0; t4 < r3; t4++)
        l3[t4] = a3.charCodeAt(t4);
      return i3;
    }
  };
  const v2 = r2.default.CLEARKEY_UUID, w2 = r2.default.CLEARKEY_KEYSTEM_STRING, S2 = "urn:uuid:" + v2;
  function I(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).BASE64;
    return e3 = { uuid: v2, schemeIdURI: S2, systemString: w2, getInitData: function(t5, e4) {
      try {
        let a3 = o2.parseInitDataFromContentProtection(t5, n3);
        if (!a3 && e4) {
          const t6 = { kids: [function(t7) {
            try {
              let e5 = t7.replace(/-/g, "");
              return e5 = btoa(e5.match(/\w{2}/g).map((t8) => String.fromCharCode(parseInt(t8, 16))).join("")), e5.replace(/=/g, "").replace(/\//g, "_").replace(/\+/g, "-");
            } catch (t8) {
              return null;
            }
          }(e4.cencDefaultKid)] };
          a3 = new TextEncoder().encode(JSON.stringify(t6));
        }
        return a3;
      } catch (t6) {
        return null;
      }
    }, getRequestHeadersFromMessage: function() {
      return { "Content-Type": "application/json" };
    }, getLicenseRequestFromMessage: function(t5) {
      return JSON.stringify(JSON.parse(String.fromCharCode.apply(null, new Uint8Array(t5))));
    }, getLicenseServerURLFromInitData: function() {
      return null;
    }, getCDMData: function() {
      return null;
    }, getClearKeysFromProtectionData: function(t5, e4) {
      let n4 = null;
      if (t5) {
        const a3 = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(e4))), r3 = [];
        for (let e5 = 0; e5 < a3.kids.length; e5++) {
          const n5 = a3.kids[e5], i3 = t5.clearkeys && t5.clearkeys.hasOwnProperty(n5) ? t5.clearkeys[n5] : null;
          if (!i3)
            throw new Error("DRM: ClearKey keyID (" + n5 + ") is not known!");
          r3.push(new _2(n5, i3));
        }
        n4 = new T2(r3);
      }
      return n4;
    } }, e3;
  }
  I.__dashjs_factory_name = "KeySystemClearKey";
  var k = b2.default.getSingletonFactory(I);
  const A = r2.default.W3C_CLEARKEY_UUID, R = r2.default.CLEARKEY_KEYSTEM_STRING, N = "urn:uuid:" + A;
  function C(t4) {
    let e3;
    const n3 = t4.BASE64, a3 = t4.debug.getLogger(e3);
    return e3 = { uuid: A, schemeIdURI: N, systemString: R, getInitData: function(t5) {
      return o2.parseInitDataFromContentProtection(t5, n3);
    }, getRequestHeadersFromMessage: function() {
      return null;
    }, getLicenseRequestFromMessage: function(t5) {
      return new Uint8Array(t5);
    }, getLicenseServerURLFromInitData: function() {
      return null;
    }, getCDMData: function() {
      return null;
    }, getClearKeysFromProtectionData: function(t5, e4) {
      let n4 = null;
      if (t5) {
        const r3 = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(e4))), i3 = [];
        for (let e5 = 0; e5 < r3.kids.length; e5++) {
          const n5 = r3.kids[e5], a4 = t5.clearkeys && t5.clearkeys.hasOwnProperty(n5) ? t5.clearkeys[n5] : null;
          if (!a4)
            throw new Error("DRM: ClearKey keyID (" + n5 + ") is not known!");
          i3.push(new _2(n5, a4));
        }
        n4 = new T2(i3), a3.warn("ClearKey schemeIdURI is using W3C Common PSSH systemID (1077efec-c0b2-4d02-ace3-3c1e52e2fb4b) in Content Protection. See DASH-IF IOP v4.1 section 7.6.2.4");
      }
      return n4;
    } }, e3;
  }
  C.__dashjs_factory_name = "KeySystemW3CClearKey";
  var D = b2.default.getSingletonFactory(C);
  const x = r2.default.WIDEVINE_UUID, M = r2.default.WIDEVINE_KEYSTEM_STRING, z = "urn:uuid:" + x;
  function O(t4) {
    let e3;
    const n3 = (t4 = t4 || {}).BASE64;
    return e3 = { uuid: x, schemeIdURI: z, systemString: M, getInitData: function(t5) {
      return o2.parseInitDataFromContentProtection(t5, n3);
    }, getRequestHeadersFromMessage: function() {
      return null;
    }, getLicenseRequestFromMessage: function(t5) {
      return new Uint8Array(t5);
    }, getLicenseServerURLFromInitData: function() {
      return null;
    }, getCDMData: function() {
      return null;
    } }, e3;
  }
  O.__dashjs_factory_name = "KeySystemWidevine";
  var P = b2.default.getSingletonFactory(O);
  const L = r2.default.PLAYREADY_UUID, F = r2.default.PLAYREADY_KEYSTEM_STRING, U = "urn:uuid:" + L;
  function j(t4) {
    let e3, n3 = "utf-16";
    const a3 = (t4 = t4 || {}).BASE64, r3 = t4.settings;
    function i3() {
      if (!a3 || !a3.hasOwnProperty("decodeArray") || !a3.hasOwnProperty("decodeArray"))
        throw new Error("Missing config parameter(s)");
    }
    return e3 = { uuid: L, schemeIdURI: U, systemString: F, getInitData: function(t5) {
      const e4 = new Uint8Array([112, 115, 115, 104, 0, 0, 0, 0]), n4 = new Uint8Array([154, 4, 240, 121, 152, 64, 66, 134, 171, 146, 230, 91, 224, 136, 95, 149]);
      let r4, l3, s3, u3, d3, c3 = 0, f3 = null;
      if (i3(), !t5)
        return null;
      if ("pssh" in t5 && t5.pssh)
        return o2.parseInitDataFromContentProtection(t5, a3);
      if ("pro" in t5 && t5.pro)
        f3 = a3.decodeArray(t5.pro.__text);
      else {
        if (!("prheader" in t5) || !t5.prheader)
          return null;
        f3 = a3.decodeArray(t5.prheader.__text);
      }
      return r4 = f3.length, l3 = 4 + e4.length + n4.length + 4 + r4, s3 = new ArrayBuffer(l3), u3 = new Uint8Array(s3), d3 = new DataView(s3), d3.setUint32(c3, l3), c3 += 4, u3.set(e4, c3), c3 += e4.length, u3.set(n4, c3), c3 += n4.length, d3.setUint32(c3, r4), c3 += 4, u3.set(f3, c3), c3 += r4, u3.buffer;
    }, getRequestHeadersFromMessage: function(t5) {
      let e4, a4;
      const i4 = {}, l3 = new DOMParser();
      if (r3 && r3.get().streaming.protection.detectPlayreadyMessageFormat && "utf-16" === n3 && t5 && t5.byteLength % 2 == 1)
        return i4["Content-Type"] = "text/xml; charset=utf-8", i4;
      const o3 = "utf-16" === n3 ? new Uint16Array(t5) : new Uint8Array(t5);
      e4 = String.fromCharCode.apply(null, o3), a4 = l3.parseFromString(e4, "application/xml");
      const s3 = a4.getElementsByTagName("name"), u3 = a4.getElementsByTagName("value");
      for (let t6 = 0; t6 < s3.length; t6++)
        i4[s3[t6].childNodes[0].nodeValue] = u3[t6].childNodes[0].nodeValue;
      return i4.hasOwnProperty("Content") && (i4["Content-Type"] = i4.Content, delete i4.Content), i4.hasOwnProperty("Content-Type") || (i4["Content-Type"] = "text/xml; charset=utf-8"), i4;
    }, getLicenseRequestFromMessage: function(t5) {
      let e4 = null;
      const l3 = new DOMParser();
      if (r3 && r3.get().streaming.protection.detectPlayreadyMessageFormat && "utf-16" === n3 && t5 && t5.byteLength % 2 == 1)
        return t5;
      const o3 = "utf-16" === n3 ? new Uint16Array(t5) : new Uint8Array(t5);
      i3();
      const s3 = String.fromCharCode.apply(null, o3), u3 = l3.parseFromString(s3, "application/xml");
      if (!u3.getElementsByTagName("PlayReadyKeyMessage")[0])
        return t5;
      {
        const t6 = u3.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;
        t6 && (e4 = a3.decode(t6));
      }
      return e4;
    }, getLicenseServerURLFromInitData: function(t5) {
      if (t5) {
        const e4 = new DataView(t5), n4 = e4.getUint16(4, true);
        let a4 = 6;
        const r4 = new DOMParser();
        for (let i4 = 0; i4 < n4; i4++) {
          const n5 = e4.getUint16(a4, true);
          a4 += 2;
          const i5 = e4.getUint16(a4, true);
          if (a4 += 2, 1 !== n5) {
            a4 += i5;
            continue;
          }
          const l3 = t5.slice(a4, a4 + i5), o3 = String.fromCharCode.apply(null, new Uint16Array(l3)), s3 = r4.parseFromString(o3, "application/xml");
          if (s3.getElementsByTagName("LA_URL")[0]) {
            const t6 = s3.getElementsByTagName("LA_URL")[0].childNodes[0].nodeValue;
            if (t6)
              return t6;
          }
          if (s3.getElementsByTagName("LUI_URL")[0]) {
            const t6 = s3.getElementsByTagName("LUI_URL")[0].childNodes[0].nodeValue;
            if (t6)
              return t6;
          }
        }
      }
      return null;
    }, getCDMData: function(t5) {
      let e4, n4, r4, l3;
      if (i3(), !t5)
        return null;
      for (e4 = [], l3 = 0; l3 < t5.length; ++l3)
        e4.push(t5.charCodeAt(l3)), e4.push(0);
      for (e4 = String.fromCharCode.apply(null, e4), e4 = a3.encode(e4), n4 = '<PlayReadyCDMData type="LicenseAcquisition"><LicenseAcquisition version="1.0" Proactive="false"><CustomData encoding="base64encoded">%CUSTOMDATA%</CustomData></LicenseAcquisition></PlayReadyCDMData>'.replace("%CUSTOMDATA%", e4), r4 = [], l3 = 0; l3 < n4.length; ++l3)
        r4.push(n4.charCodeAt(l3)), r4.push(0);
      return new Uint8Array(r4).buffer;
    }, setPlayReadyMessageFormat: function(t5) {
      if ("utf-8" !== t5 && "utf-16" !== t5)
        throw new Error('Specified message format is not one of "utf-8" or "utf-16"');
      n3 = t5;
    } }, e3;
  }
  j.__dashjs_factory_name = "KeySystemPlayReady";
  var q = b2.default.getSingletonFactory(j);
  function B(t4) {
    const e3 = (t4 = t4 || {}).BASE64, n3 = {};
    let a3;
    return n3[r2.default.WIDEVINE_KEYSTEM_STRING] = { responseType: "json", getLicenseMessage: function(t5) {
      return e3.decodeArray(t5.license);
    }, getErrorResponse: function(t5) {
      return t5;
    } }, n3[r2.default.PLAYREADY_KEYSTEM_STRING] = { responseType: "arraybuffer", getLicenseMessage: function(t5) {
      return t5;
    }, getErrorResponse: function(t5) {
      return String.fromCharCode.apply(null, new Uint8Array(t5));
    } }, a3 = { getServerURLFromMessage: function(t5) {
      return t5;
    }, getHTTPMethod: function() {
      return "POST";
    }, getResponseType: function(t5) {
      return n3[t5].responseType;
    }, getLicenseMessage: function(t5, a4) {
      return function() {
        if (!e3 || !e3.hasOwnProperty("decodeArray"))
          throw new Error("Missing config parameter(s)");
      }(), n3[a4].getLicenseMessage(t5);
    }, getErrorResponse: function(t5, e4) {
      return n3[e4].getErrorResponse(t5);
    } }, a3;
  }
  B.__dashjs_factory_name = "DRMToday";
  var G = b2.default.getSingletonFactory(B);
  function H() {
    let t4;
    const e3 = "http://schemas.xmlsoap.org/soap/envelope/";
    function n3(t5) {
      const e4 = String.fromCharCode.apply(null, new Uint8Array(t5));
      return decodeURIComponent(escape(e4));
    }
    function a3(t5) {
      if (window.DOMParser) {
        const a4 = n3(t5), r4 = new window.DOMParser().parseFromString(a4, "text/xml"), i3 = r4 ? r4.getElementsByTagNameNS(e3, "Envelope")[0] : null, l3 = i3 ? i3.getElementsByTagNameNS(e3, "Body")[0] : null;
        if (l3 && l3.getElementsByTagNameNS(e3, "Fault")[0])
          return null;
      }
      return t5;
    }
    function r3(t5) {
      let a4 = "", r4 = "", i3 = "", l3 = -1, o3 = -1;
      if (window.DOMParser) {
        const s4 = n3(t5), u3 = new window.DOMParser().parseFromString(s4, "text/xml"), d3 = u3 ? u3.getElementsByTagNameNS(e3, "Envelope")[0] : null, c3 = d3 ? d3.getElementsByTagNameNS(e3, "Body")[0] : null, f3 = c3 ? c3.getElementsByTagNameNS(e3, "Fault")[0] : null, g3 = f3 ? f3.getElementsByTagName("detail")[0] : null, m3 = g3 ? g3.getElementsByTagName("Exception")[0] : null;
        let h3 = null;
        if (null === f3)
          return s4;
        h3 = f3.getElementsByTagName("faultstring")[0].firstChild, a4 = h3 ? h3.nodeValue : null, null !== m3 && (h3 = m3.getElementsByTagName("StatusCode")[0], r4 = h3 ? h3.firstChild.nodeValue : null, h3 = m3.getElementsByTagName("Message")[0], i3 = h3 ? h3.firstChild.nodeValue : null, l3 = i3 ? i3.lastIndexOf("[") + 1 : -1, o3 = i3 ? i3.indexOf("]") : -1, i3 = i3 ? i3.substring(l3, o3) : "");
      }
      let s3 = `code: ${r4}, name: ${a4}`;
      return i3 && (s3 += `, message: ${i3}`), s3;
    }
    return t4 = { getServerURLFromMessage: function(t5) {
      return t5;
    }, getHTTPMethod: function() {
      return "POST";
    }, getResponseType: function() {
      return "arraybuffer";
    }, getLicenseMessage: function(t5) {
      return a3.call(this, t5);
    }, getErrorResponse: function(t5) {
      return r3.call(this, t5);
    } }, t4;
  }
  H.__dashjs_factory_name = "PlayReady";
  var Y = b2.default.getSingletonFactory(H);
  function V() {
    let t4;
    return t4 = { getServerURLFromMessage: function(t5) {
      return t5;
    }, getHTTPMethod: function() {
      return "POST";
    }, getResponseType: function() {
      return "arraybuffer";
    }, getLicenseMessage: function(t5) {
      return t5;
    }, getErrorResponse: function(t5) {
      return String.fromCharCode.apply(null, new Uint8Array(t5));
    } }, t4;
  }
  V.__dashjs_factory_name = "Widevine";
  var K = b2.default.getSingletonFactory(V);
  function W() {
    let t4;
    return t4 = { getServerURLFromMessage: function(t5) {
      return t5;
    }, getHTTPMethod: function() {
      return "POST";
    }, getResponseType: function() {
      return "json";
    }, getLicenseMessage: function(t5) {
      if (!t5.hasOwnProperty("keys"))
        return null;
      let e3 = [];
      for (let n3 = 0; n3 < t5.keys.length; n3++) {
        let a3 = t5.keys[n3], r3 = a3.kid.replace(/=/g, ""), i3 = a3.k.replace(/=/g, "");
        e3.push(new _2(r3, i3));
      }
      return new T2(e3);
    }, getErrorResponse: function(t5) {
      return String.fromCharCode.apply(null, new Uint8Array(t5));
    } }, t4;
  }
  W.__dashjs_factory_name = "ClearKey";
  var $ = b2.default.getSingletonFactory(W), X = class {
    constructor(t4) {
      this.ks = t4.ks, this.keyId = t4.keyId, this.initData = t4.initData, this.protData = t4.protData, this.cdmData = t4.cdmData, this.sessionId = t4.sessionId, this.sessionType = t4.sessionType;
    }
  };
  function Q() {
    let t4, e3, n3, a3, i3, l3, s3, u3, d3 = this.context;
    function c3(t5, e4) {
      return e4 && t5 in e4 ? e4[t5] : null;
    }
    function f3(t5, e4) {
      return t5 && t5.sessionId ? t5.sessionId : e4 && e4.sessionId ? e4.sessionId : null;
    }
    function g3(t5, e4) {
      return t5 && t5.sessionType ? t5.sessionType : e4;
    }
    return t4 = { getKeySystemBySystemString: function(t5) {
      for (let e4 = 0; e4 < a3.length; e4++)
        if (a3[e4].systemString === t5)
          return a3[e4];
      return null;
    }, getKeySystems: function() {
      return a3;
    }, getLicenseServerModelInstance: function(t5, e4, n4) {
      if (n4 === r2.default.MEDIA_KEY_MESSAGE_TYPES.LICENSE_RELEASE || n4 === r2.default.MEDIA_KEY_MESSAGE_TYPES.INDIVIDUALIZATION_REQUEST)
        return null;
      let a4 = null;
      return e4 && e4.hasOwnProperty("drmtoday") ? a4 = G(d3).getInstance({ BASE64: i3 }) : t5.systemString === r2.default.WIDEVINE_KEYSTEM_STRING ? a4 = K(d3).getInstance() : t5.systemString === r2.default.PLAYREADY_KEYSTEM_STRING ? a4 = Y(d3).getInstance() : t5.systemString === r2.default.CLEARKEY_KEYSTEM_STRING && (a4 = $(d3).getInstance()), a4;
    }, getSupportedKeySystemMetadataFromContentProtection: function(t5, e4, n4) {
      let r3, i4, l4, s4, u4 = [];
      if (!t5 || !t5.length)
        return u4;
      const d4 = o2.findMp4ProtectionElement(t5);
      for (l4 = 0; l4 < a3.length; l4++) {
        i4 = a3[l4];
        const o3 = c3(i4.systemString, e4);
        for (s4 = 0; s4 < t5.length; s4++)
          if (r3 = t5[s4], r3.schemeIdUri.toLowerCase() === i4.schemeIdURI) {
            let t6 = i4.getInitData(r3, d4);
            const e5 = new X({ ks: a3[l4], keyId: r3.keyId, initData: t6, protData: o3, cdmData: i4.getCDMData(o3 ? o3.cdmData : null), sessionId: f3(o3, r3), sessionType: g3(o3, n4) });
            o3 ? u4.unshift(e5) : u4.push(e5);
          }
      }
      return u4;
    }, getSupportedKeySystemMetadataFromSegmentPssh: function(t5, e4, n4) {
      let r3, i4, l4 = [], s4 = o2.parsePSSHList(t5);
      for (let t6 = 0; t6 < a3.length; ++t6) {
        r3 = a3[t6], i4 = r3.systemString;
        const o3 = c3(i4, e4);
        r3.uuid in s4 && l4.push({ ks: r3, initData: s4[r3.uuid], protData: o3, cdmData: r3.getCDMData(o3 ? o3.cdmData : null), sessionId: f3(o3), sessionType: g3(o3, n4) });
      }
      return l4;
    }, initDataEquals: function(t5, e4) {
      if (t5.byteLength === e4.byteLength) {
        let n4 = new Uint8Array(t5), a4 = new Uint8Array(e4);
        for (let t6 = 0; t6 < n4.length; t6++)
          if (n4[t6] !== a4[t6])
            return false;
        return true;
      }
      return false;
    }, initialize: function() {
      let t5;
      a3 = [], t5 = q(d3).getInstance({ BASE64: i3, settings: l3 }), a3.push(t5), t5 = P(d3).getInstance({ BASE64: i3 }), a3.push(t5), t5 = k(d3).getInstance({ BASE64: i3 }), a3.push(t5), s3 = t5, t5 = D(d3).getInstance({ BASE64: i3, debug: e3 }), a3.push(t5), u3 = t5;
    }, isClearKey: function(t5) {
      return t5 === s3 || t5 === u3;
    }, processClearKeyLicenseRequest: function(t5, e4, a4) {
      try {
        return t5.getClearKeysFromProtectionData(e4, a4);
      } catch (t6) {
        return n3.error("Failed to retrieve clearkeys from ProtectionData"), null;
      }
    }, setConfig: function(a4) {
      a4 && (a4.debug && (e3 = a4.debug, n3 = e3.getLogger(t4)), a4.BASE64 && (i3 = a4.BASE64), a4.settings && (l3 = a4.settings));
    }, setKeySystems: function(t5) {
      a3 = t5;
    }, setProtectionData: function(t5) {
      for (var e4, n4, r3 = 0; r3 < a3.length; r3++) {
        var i4 = a3[r3];
        i4.hasOwnProperty("init") && i4.init((e4 = i4.systemString, n4 = void 0, n4 = null, t5 && (n4 = e4 in t5 ? t5[e4] : null), n4));
      }
    } }, t4;
  }
  Q.__dashjs_factory_name = "ProtectionKeyController";
  var Z = b2.default.getSingletonFactory(Q), J = n2(445), tt = class {
    constructor(t4, e3) {
      this.initData = t4, this.initDataType = e3;
    }
  }, et = class {
    constructor(t4, e3, n3, a3) {
      this.sessionToken = t4, this.message = e3, this.defaultURL = n3, this.messageType = a3 || r2.default.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST;
    }
  }, nt = class {
    constructor(t4, e3) {
      this.keySystem = t4, this.ksConfiguration = e3, this.nativeMediaKeySystemAccessObject = null, this.selectedSystemString = null;
    }
  };
  const at = {};
  function rt(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a3 = t4.events, i3 = t4.debug;
    let l3, o3, s3, u3, f3, g3, m3, h3;
    function p3(t5, e4, r3, i4) {
      if (void 0 === navigator.requestMediaKeySystemAccess || "function" != typeof navigator.requestMediaKeySystemAccess) {
        const t6 = "Insecure origins are not allowed";
        return n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { error: t6 }), void i4({ error: t6 });
      }
      const l4 = t5[e4].protData && t5[e4].protData.systemStringPriority ? t5[e4].protData.systemStringPriority : null, o4 = t5[e4].configs, s4 = t5[e4].ks;
      let u4 = s4.systemString;
      (function(t6, e5) {
        return new Promise((n4, a4) => {
          b3(t6, e5, 0, n4, a4);
        });
      })(l4 || (at[u4] ? at[u4] : [u4]), o4).then((t6) => {
        const e5 = t6 && t6.nativeMediaKeySystemAccessObject && "function" == typeof t6.nativeMediaKeySystemAccessObject.getConfiguration ? t6.nativeMediaKeySystemAccessObject.getConfiguration() : null, i5 = new nt(s4, e5);
        i5.selectedSystemString = t6.selectedSystemString, i5.nativeMediaKeySystemAccessObject = t6.nativeMediaKeySystemAccessObject, n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { data: i5 }), r3({ data: i5 });
      }).catch((l5) => {
        if (e4 + 1 < t5.length)
          p3(t5, e4 + 1, r3, i4);
        else {
          const t6 = "Key system access denied! ";
          n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { error: t6 + l5.message }), i4({ error: t6 + l5.message });
        }
      });
    }
    function b3(t5, e4, n4, a4, r3) {
      const i4 = t5[n4];
      o3.debug(`Requesting key system access for system string ${i4}`), navigator.requestMediaKeySystemAccess(i4, e4).then((t6) => {
        a4({ nativeMediaKeySystemAccessObject: t6, selectedSystemString: i4 });
      }).catch((i5) => {
        n4 + 1 < t5.length ? b3(t5, e4, n4 + 1, a4, r3) : r3(i5);
      });
    }
    function y3(t5) {
      if (!t5 || !t5.session)
        return Promise.resolve;
      const e4 = t5.session;
      return e4.removeEventListener("keystatuseschange", t5), e4.removeEventListener("message", t5), e4.close();
    }
    function E3(t5) {
      for (let e4 = 0; e4 < g3.length; e4++)
        if (g3[e4] === t5) {
          g3.splice(e4, 1);
          break;
        }
    }
    function _3(t5, e4) {
      const i4 = { session: t5, keyId: e4.keyId, normalizedKeyId: e4 && e4.keyId && "string" == typeof e4.keyId ? e4.keyId.replace(/-/g, "").toLowerCase() : "", initData: e4.initData, sessionId: e4.sessionId, sessionType: e4.sessionType, hasTriggeredKeyStatusMapUpdate: false, handleEvent: function(t6) {
        switch (t6.type) {
          case "keystatuseschange":
            this._onKeyStatusesChange(t6);
            break;
          case "message":
            this._onKeyMessage(t6);
        }
      }, _onKeyStatusesChange: function(t6) {
        n3.trigger(a3.KEY_STATUSES_CHANGED, { data: this });
        const e5 = [];
        t6.target.keyStatuses.forEach(function() {
          e5.push(T3(arguments));
        }), n3.trigger(a3.INTERNAL_KEY_STATUSES_CHANGED, { parsedKeyStatuses: e5, sessionToken: i4 });
      }, _onKeyMessage: function(t6) {
        let e5 = ArrayBuffer.isView(t6.message) ? t6.message.buffer : t6.message;
        n3.trigger(a3.INTERNAL_KEY_MESSAGE, { data: new et(this, e5, void 0, t6.messageType) });
      }, getKeyId: function() {
        return this.keyId;
      }, getSessionId: function() {
        return t5.sessionId;
      }, getSessionType: function() {
        return this.sessionType;
      }, getExpirationTime: function() {
        return t5.expiration;
      }, getKeyStatuses: function() {
        return t5.keyStatuses;
      }, getUsable: function() {
        let e5 = false;
        return t5.keyStatuses.forEach(function() {
          T3(arguments).status === r2.default.MEDIA_KEY_STATUSES.USABLE && (e5 = true);
        }), e5;
      } };
      return t5.addEventListener("keystatuseschange", i4), t5.addEventListener("message", i4), t5.closed.then(() => {
        E3(i4), o3.debug("DRM: Session closed.  SessionID = " + i4.getSessionId()), n3.trigger(a3.KEY_SESSION_CLOSED, { data: i4.getSessionId() });
      }), g3.push(i4), i4;
    }
    function T3(t5) {
      let e4, n4;
      return t5 && t5.length > 0 && (t5[0] && ("string" == typeof t5[0] ? e4 = t5[0] : n4 = t5[0]), t5[1] && ("string" == typeof t5[1] ? e4 = t5[1] : n4 = t5[1])), { status: e4, keyId: n4 };
    }
    return l3 = { closeKeySession: function(t5) {
      y3(t5).catch(function(e4) {
        E3(t5), n3.trigger(a3.KEY_SESSION_CLOSED, { data: null, error: "Error closing session (" + t5.getSessionId() + ") " + e4.name });
      });
    }, createKeySession: function(t5) {
      if (!s3 || !f3)
        throw new Error("Can not create sessions until you have selected a key system");
      const e4 = f3.createSession(t5.sessionType), i4 = _3(e4, t5), l4 = s3.systemString === r2.default.CLEARKEY_KEYSTEM_STRING && (t5.initData || t5.protData && t5.protData.clearkeys) ? r2.default.INITIALIZATION_DATA_TYPE_KEYIDS : r2.default.INITIALIZATION_DATA_TYPE_CENC;
      e4.generateRequest(l4, t5.initData).then(function() {
        o3.debug("DRM: Session created.  SessionID = " + i4.getSessionId()), n3.trigger(a3.KEY_SESSION_CREATED, { data: i4 });
      }).catch(function(t6) {
        E3(i4), n3.trigger(a3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + "Error generating key request -- " + t6.name) });
      });
    }, getAllInitData: function() {
      const t5 = [];
      for (let e4 = 0; e4 < g3.length; e4++)
        g3[e4].initData && t5.push(g3[e4].initData);
      return t5;
    }, getSessionTokens: function() {
      return g3;
    }, loadKeySession: function(t5) {
      if (!s3 || !f3)
        throw new Error("Can not load sessions until you have selected a key system");
      const e4 = t5.sessionId;
      for (let t6 = 0; t6 < g3.length; t6++)
        if (e4 === g3[t6].sessionId)
          return void o3.warn("DRM: Ignoring session ID because we have already seen it!");
      const r3 = f3.createSession(t5.sessionType), i4 = _3(r3, t5);
      i4.hasTriggeredKeyStatusMapUpdate = true, r3.load(e4).then(function(t6) {
        t6 ? (o3.debug("DRM: Session loaded.  SessionID = " + i4.getSessionId()), n3.trigger(a3.KEY_SESSION_CREATED, { data: i4 })) : (E3(i4), n3.trigger(a3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + "Could not load session! Invalid Session ID (" + e4 + ")") }));
      }).catch(function(t6) {
        E3(i4), n3.trigger(a3.KEY_SESSION_CREATED, { data: null, error: new c2.default(d2.default.KEY_SESSION_CREATED_ERROR_CODE, d2.default.KEY_SESSION_CREATED_ERROR_MESSAGE + "Could not load session (" + e4 + ")! " + t6.name) });
      });
    }, removeKeySession: function(t5) {
      t5.session.remove().then(function() {
        o3.debug("DRM: Session removed.  SessionID = " + t5.getSessionId()), n3.trigger(a3.KEY_SESSION_REMOVED, { data: t5.getSessionId() });
      }, function(e4) {
        n3.trigger(a3.KEY_SESSION_REMOVED, { data: null, error: "Error removing session (" + t5.getSessionId() + "). " + e4.name });
      });
    }, requestKeySystemAccess: function(t5) {
      return new Promise((e4, n4) => {
        p3(t5, 0, e4, n4);
      });
    }, reset: function() {
      const t5 = g3.length;
      let e4;
      if (0 !== t5) {
        const r3 = function(t6) {
          E3(t6), 0 === g3.length && (u3 ? (u3.removeEventListener("encrypted", m3), u3.setMediaKeys(null).then(function() {
            n3.trigger(a3.TEARDOWN_COMPLETE);
          })) : n3.trigger(a3.TEARDOWN_COMPLETE));
        };
        for (let n4 = 0; n4 < t5; n4++)
          e4 = g3[n4], function(t6) {
            y3(e4), r3(t6);
          }(e4);
      } else
        n3.trigger(a3.TEARDOWN_COMPLETE);
    }, selectKeySystem: function(t5) {
      return new Promise((e4, n4) => {
        t5.nativeMediaKeySystemAccessObject.createMediaKeys().then((e5) => (s3 = t5.keySystem, f3 = e5, u3 ? u3.setMediaKeys(f3) : Promise.resolve())).then(() => {
          e4(s3);
        }).catch(function() {
          n4({ error: "Error selecting keys system (" + t5.keySystem.systemString + ")! Could not create MediaKeys -- TODO" });
        });
      });
    }, setMediaElement: function(t5) {
      u3 !== t5 && (u3 && (u3.removeEventListener("encrypted", m3), u3.setMediaKeys && u3.setMediaKeys(null)), u3 = t5, u3 && (u3.addEventListener("encrypted", m3), u3.setMediaKeys && f3 && u3.setMediaKeys(f3)));
    }, setServerCertificate: function(t5) {
      return new Promise((e4, r3) => {
        f3.setServerCertificate(t5).then(function() {
          o3.info("DRM: License server certificate successfully updated."), n3.trigger(a3.SERVER_CERTIFICATE_UPDATED), e4();
        }).catch((t6) => {
          r3(t6), n3.trigger(a3.SERVER_CERTIFICATE_UPDATED, { error: new c2.default(d2.default.SERVER_CERTIFICATE_UPDATED_ERROR_CODE, d2.default.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE + t6.name) });
        });
      });
    }, stop: function() {
      let t5;
      for (let e4 = 0; e4 < g3.length; e4++)
        t5 = g3[e4], t5.getUsable() || (y3(t5), E3(t5));
    }, updateKeySession: function(t5, e4) {
      const r3 = t5.session;
      h3.isClearKey(s3) && (e4 = e4.toJWK()), r3.update(e4).then(() => {
        n3.trigger(a3.KEY_SESSION_UPDATED);
      }).catch(function(e5) {
        n3.trigger(a3.KEY_ERROR, { error: new c2.default(d2.default.MEDIA_KEYERR_CODE, "Error sending update() message! " + e5.name, t5) });
      });
    } }, o3 = i3.getLogger(l3), s3 = null, u3 = null, f3 = null, g3 = [], h3 = Z(e3).getInstance(), m3 = { handleEvent: function(t5) {
      if ("encrypted" === t5.type && t5.initData) {
        let e4 = ArrayBuffer.isView(t5.initData) ? t5.initData.buffer : t5.initData;
        n3.trigger(a3.NEED_KEY, { key: new tt(e4, t5.initDataType) });
      }
    } }, l3;
  }
  at[r2.default.PLAYREADY_KEYSTEM_STRING] = [r2.default.PLAYREADY_KEYSTEM_STRING, r2.default.PLAYREADY_RECOMMENDATION_KEYSTEM_STRING], at[r2.default.WIDEVINE_KEYSTEM_STRING] = [r2.default.WIDEVINE_KEYSTEM_STRING], at[r2.default.CLEARKEY_KEYSTEM_STRING] = [r2.default.CLEARKEY_KEYSTEM_STRING], rt.__dashjs_factory_name = "DefaultProtectionModel";
  var it = b2.default.getClassFactory(rt);
  function lt(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a3 = t4.events, i3 = t4.debug, l3 = t4.api;
    let o3, s3, f3, g3, m3, h3, p3, b3, y3;
    function E3() {
      try {
        for (let t5 = 0; t5 < p3.length; t5++)
          _3(p3[t5]);
        f3 && f3.removeEventListener(l3.needkey, b3), n3.trigger(a3.TEARDOWN_COMPLETE);
      } catch (t5) {
        n3.trigger(a3.TEARDOWN_COMPLETE, { error: "Error tearing down key sessions and MediaKeys! -- " + t5.message });
      }
    }
    function _3(t5) {
      const e4 = t5.session;
      e4.removeEventListener(l3.error, t5), e4.removeEventListener(l3.message, t5), e4.removeEventListener(l3.ready, t5), e4.removeEventListener(l3.close, t5);
      for (let e5 = 0; e5 < p3.length; e5++)
        if (p3[e5] === t5) {
          p3.splice(e5, 1);
          break;
        }
      e4[l3.release]();
    }
    function T3() {
      let t5 = null;
      const e4 = function() {
        f3.removeEventListener("loadedmetadata", t5), f3[l3.setMediaKeys](m3), n3.trigger(a3.VIDEO_ELEMENT_SELECTED);
      };
      f3.readyState >= 1 ? e4() : (t5 = e4.bind(this), f3.addEventListener("loadedmetadata", t5));
    }
    return o3 = { getAllInitData: function() {
      const t5 = [];
      for (let e4 = 0; e4 < p3.length; e4++)
        t5.push(p3[e4].initData);
      return t5;
    }, getSessionTokens: function() {
      return p3;
    }, requestKeySystemAccess: function(t5) {
      return new Promise((e4, r3) => {
        let i4 = false;
        for (let r4 = 0; r4 < t5.length; r4++) {
          const o4 = t5[r4].ks.systemString, s4 = t5[r4].configs;
          let d3 = null, c3 = null;
          for (let t6 = 0; t6 < s4.length; t6++) {
            const r5 = s4[t6].audioCapabilities, f4 = s4[t6].videoCapabilities;
            if (r5 && 0 !== r5.length) {
              d3 = [];
              for (let t7 = 0; t7 < r5.length; t7++)
                window[l3.MediaKeys].isTypeSupported(o4, r5[t7].contentType) && d3.push(r5[t7]);
            }
            if (f4 && 0 !== f4.length) {
              c3 = [];
              for (let t7 = 0; t7 < f4.length; t7++)
                window[l3.MediaKeys].isTypeSupported(o4, f4[t7].contentType) && c3.push(f4[t7]);
            }
            if (!d3 && !c3 || d3 && 0 === d3.length || c3 && 0 === c3.length)
              continue;
            i4 = true;
            const g4 = new u2(d3, c3), m4 = y3.getKeySystemBySystemString(o4), h4 = new nt(m4, g4);
            n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { data: h4 }), e4({ data: h4 });
            break;
          }
        }
        if (!i4) {
          const t6 = "Key system access denied! -- No valid audio/video content configurations detected!";
          n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { error: t6 }), r3({ error: t6 });
        }
      });
    }, selectKeySystem: function(t5) {
      return new Promise((e4, n4) => {
        try {
          m3 = t5.mediaKeys = new window[l3.MediaKeys](t5.keySystem.systemString), g3 = t5.keySystem, h3 = t5, f3 && T3(), e4(g3);
        } catch (t6) {
          n4({ error: "Error selecting keys system (" + g3.systemString + ")! Could not create MediaKeys -- TODO" });
        }
      });
    }, setMediaElement: function(t5) {
      f3 !== t5 && (f3 && f3.removeEventListener(l3.needkey, b3), f3 = t5, f3 && (f3.addEventListener(l3.needkey, b3), m3 && T3()));
    }, createKeySession: function(t5) {
      if (!g3 || !m3 || !h3)
        throw new Error("Can not create sessions until you have selected a key system");
      let e4 = null;
      if (h3.ksConfiguration.videoCapabilities && h3.ksConfiguration.videoCapabilities.length > 0 && (e4 = h3.ksConfiguration.videoCapabilities[0]), null === e4 && h3.ksConfiguration.audioCapabilities && h3.ksConfiguration.audioCapabilities.length > 0 && (e4 = h3.ksConfiguration.audioCapabilities[0]), null === e4)
        throw new Error("Can not create sessions for unknown content types.");
      const r3 = e4.contentType, i4 = m3.createSession(r3, new Uint8Array(t5.initData), t5.cdmData ? new Uint8Array(t5.cdmData) : null), o4 = function(t6, e5) {
        return { session: t6, keyId: e5.keyId, normalizedKeyId: e5 && e5.keyId && "string" == typeof e5.keyId ? e5.keyId.replace(/-/g, "").toLowerCase() : "", initData: e5.initData, hasTriggeredKeyStatusMapUpdate: false, getKeyId: function() {
          return this.keyId;
        }, getSessionId: function() {
          return this.session.sessionId;
        }, getExpirationTime: function() {
          return NaN;
        }, getSessionType: function() {
          return "temporary";
        }, getKeyStatuses: function() {
          return { size: 0, has: () => false, get: () => {
          } };
        }, handleEvent: function(t7) {
          switch (t7.type) {
            case l3.error:
              let e6 = "KeyError";
              n3.trigger(a3.KEY_ERROR, { error: new c2.default(d2.default.MEDIA_KEYERR_CODE, e6, this) });
              break;
            case l3.message:
              let r4 = ArrayBuffer.isView(t7.message) ? t7.message.buffer : t7.message;
              n3.trigger(a3.INTERNAL_KEY_MESSAGE, { data: new et(this, r4, t7.destinationURL) });
              break;
            case l3.ready:
              s3.debug("DRM: Key added."), n3.trigger(a3.KEY_ADDED);
              break;
            case l3.close:
              s3.debug("DRM: Session closed.  SessionID = " + this.getSessionId()), n3.trigger(a3.KEY_SESSION_CLOSED, { data: this.getSessionId() });
          }
        } };
      }(i4, t5);
      i4.addEventListener(l3.error, o4), i4.addEventListener(l3.message, o4), i4.addEventListener(l3.ready, o4), i4.addEventListener(l3.close, o4), p3.push(o4), s3.debug("DRM: Session created.  SessionID = " + o4.getSessionId()), n3.trigger(a3.KEY_SESSION_CREATED, { data: o4 });
    }, updateKeySession: function(t5, e4) {
      const r3 = t5.session;
      y3.isClearKey(g3) ? r3.update(new Uint8Array(e4.toJWK())) : r3.update(new Uint8Array(e4)), n3.trigger(a3.KEY_SESSION_UPDATED);
    }, closeKeySession: _3, setServerCertificate: function() {
    }, loadKeySession: function() {
    }, removeKeySession: function() {
    }, stop: E3, reset: E3 }, s3 = i3.getLogger(o3), f3 = null, g3 = null, m3 = null, h3 = null, p3 = [], y3 = Z(e3).getInstance(), b3 = { handleEvent: function(t5) {
      if (t5.type === l3.needkey && t5.initData) {
        const e4 = ArrayBuffer.isView(t5.initData) ? t5.initData.buffer : t5.initData;
        n3.trigger(a3.NEED_KEY, { key: new tt(e4, r2.default.INITIALIZATION_DATA_TYPE_CENC) });
      }
    } }, o3;
  }
  lt.__dashjs_factory_name = "ProtectionModel_3Feb2014";
  var ot = b2.default.getClassFactory(lt);
  function st(t4) {
    t4 = t4 || {};
    const e3 = this.context, n3 = t4.eventBus, a3 = t4.events, i3 = t4.debug, l3 = t4.api, o3 = t4.errHandler;
    let s3, f3, g3, m3, h3, p3, b3, y3, E3;
    function _3() {
      g3 && w3();
      for (let t5 = 0; t5 < b3.length; t5++)
        T3(b3[t5]);
      n3.trigger(a3.TEARDOWN_COMPLETE);
    }
    function T3(t5) {
      try {
        g3[l3.cancelKeyRequest](m3.systemString, t5.sessionId);
      } catch (e4) {
        n3.trigger(a3.KEY_SESSION_CLOSED, { data: null, error: "Error closing session (" + t5.sessionId + ") " + e4.message });
      }
    }
    function v3(t5, e4) {
      if (e4 && t5) {
        const n4 = t5.length;
        for (let a4 = 0; a4 < n4; a4++)
          if (t5[a4].sessionId == e4)
            return t5[a4];
        return null;
      }
      return null;
    }
    function w3() {
      g3.removeEventListener(l3.keyerror, E3), g3.removeEventListener(l3.needkey, E3), g3.removeEventListener(l3.keymessage, E3), g3.removeEventListener(l3.keyadded, E3);
    }
    return s3 = { getAllInitData: function() {
      const t5 = [];
      for (let e4 = 0; e4 < p3.length; e4++)
        t5.push(p3[e4].initData);
      for (let e4 = 0; e4 < b3.length; e4++)
        t5.push(b3[e4].initData);
      return t5;
    }, getSessionTokens: function() {
      return b3.concat(p3);
    }, requestKeySystemAccess: function(t5) {
      return new Promise((e4, r3) => {
        let i4 = g3;
        i4 || (i4 = document.createElement("video"));
        let l4 = false;
        for (let r4 = 0; r4 < t5.length; r4++) {
          const o4 = t5[r4].ks.systemString, s4 = t5[r4].configs;
          let d3 = null, c3 = null;
          for (let t6 = 0; t6 < s4.length; t6++) {
            const r5 = s4[t6].videoCapabilities;
            if (r5 && 0 !== r5.length) {
              c3 = [];
              for (let t7 = 0; t7 < r5.length; t7++)
                "" !== i4.canPlayType(r5[t7].contentType, o4) && c3.push(r5[t7]);
            }
            if (!c3 || d3 || c3 && 0 === c3.length)
              continue;
            l4 = true;
            const f4 = new u2(d3, c3), g4 = h3.getKeySystemBySystemString(o4), m4 = new nt(g4, f4);
            n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { data: m4 }), e4({ data: m4 });
            break;
          }
        }
        if (!l4) {
          const t6 = "Key system access denied! -- No valid audio/video content configurations detected!";
          n3.trigger(a3.KEY_SYSTEM_ACCESS_COMPLETE, { error: t6 }), r3({ error: t6 });
        }
      });
    }, selectKeySystem: function(t5) {
      return m3 = t5.keySystem, Promise.resolve(m3);
    }, setMediaElement: function(t5) {
      if (g3 !== t5) {
        if (g3) {
          w3();
          for (var e4 = 0; e4 < b3.length; e4++)
            T3(b3[e4]);
          b3 = [];
        }
        g3 = t5, g3 && (g3.addEventListener(l3.keyerror, E3), g3.addEventListener(l3.needkey, E3), g3.addEventListener(l3.keymessage, E3), g3.addEventListener(l3.keyadded, E3), n3.trigger(a3.VIDEO_ELEMENT_SELECTED));
      }
    }, createKeySession: function(t5) {
      if (!m3)
        throw new Error("Can not create sessions until you have selected a key system");
      if (y3 || 0 === b3.length) {
        const e4 = { sessionId: null, keyId: t5.keyId, normalizedKeyId: t5 && t5.keyId && "string" == typeof t5.keyId ? t5.keyId.replace(/-/g, "").toLowerCase() : "", initData: t5.initData, hasTriggeredKeyStatusMapUpdate: false, getKeyId: function() {
          return this.keyId;
        }, getSessionId: function() {
          return this.sessionId;
        }, getExpirationTime: function() {
          return NaN;
        }, getSessionType: function() {
          return "temporary";
        }, getKeyStatuses: function() {
          return { size: 0, has: () => false, get: () => {
          } };
        } };
        return p3.push(e4), g3[l3.generateKeyRequest](m3.systemString, new Uint8Array(t5.initData)), e4;
      }
      throw new Error("Multiple sessions not allowed!");
    }, updateKeySession: function(t5, e4) {
      const r3 = t5.sessionId;
      if (h3.isClearKey(m3))
        for (let t6 = 0; t6 < e4.keyPairs.length; t6++)
          g3[l3.addKey](m3.systemString, e4.keyPairs[t6].key, e4.keyPairs[t6].keyID, r3);
      else
        g3[l3.addKey](m3.systemString, new Uint8Array(e4), new Uint8Array(t5.initData), r3);
      n3.trigger(a3.KEY_SESSION_UPDATED);
    }, closeKeySession: T3, setServerCertificate: function() {
    }, loadKeySession: function() {
    }, removeKeySession: function() {
    }, stop: _3, reset: _3 }, f3 = i3.getLogger(s3), g3 = null, m3 = null, p3 = [], b3 = [], h3 = Z(e3).getInstance(), E3 = { handleEvent: function(t5) {
      let e4 = null;
      switch (t5.type) {
        case l3.needkey:
          let i4 = ArrayBuffer.isView(t5.initData) ? t5.initData.buffer : t5.initData;
          n3.trigger(a3.NEED_KEY, { key: new tt(i4, r2.default.INITIALIZATION_DATA_TYPE_CENC) });
          break;
        case l3.keyerror:
          if (e4 = v3(b3, t5.sessionId), e4 || (e4 = v3(p3, t5.sessionId)), e4) {
            let r3 = d2.default.MEDIA_KEYERR_CODE, i5 = "";
            switch (t5.errorCode.code) {
              case 1:
                r3 = d2.default.MEDIA_KEYERR_UNKNOWN_CODE, i5 += "MEDIA_KEYERR_UNKNOWN - " + d2.default.MEDIA_KEYERR_UNKNOWN_MESSAGE;
                break;
              case 2:
                r3 = d2.default.MEDIA_KEYERR_CLIENT_CODE, i5 += "MEDIA_KEYERR_CLIENT - " + d2.default.MEDIA_KEYERR_CLIENT_MESSAGE;
                break;
              case 3:
                r3 = d2.default.MEDIA_KEYERR_SERVICE_CODE, i5 += "MEDIA_KEYERR_SERVICE - " + d2.default.MEDIA_KEYERR_SERVICE_MESSAGE;
                break;
              case 4:
                r3 = d2.default.MEDIA_KEYERR_OUTPUT_CODE, i5 += "MEDIA_KEYERR_OUTPUT - " + d2.default.MEDIA_KEYERR_OUTPUT_MESSAGE;
                break;
              case 5:
                r3 = d2.default.MEDIA_KEYERR_HARDWARECHANGE_CODE, i5 += "MEDIA_KEYERR_HARDWARECHANGE - " + d2.default.MEDIA_KEYERR_HARDWARECHANGE_MESSAGE;
                break;
              case 6:
                r3 = d2.default.MEDIA_KEYERR_DOMAIN_CODE, i5 += "MEDIA_KEYERR_DOMAIN - " + d2.default.MEDIA_KEYERR_DOMAIN_MESSAGE;
            }
            i5 += "  System Code = " + t5.systemCode, n3.trigger(a3.KEY_ERROR, { error: new c2.default(r3, i5, e4) });
          } else
            f3.error("No session token found for key error");
          break;
        case l3.keyadded:
          e4 = v3(b3, t5.sessionId), e4 || (e4 = v3(p3, t5.sessionId)), e4 ? (f3.debug("DRM: Key added."), n3.trigger(a3.KEY_ADDED, { data: e4 })) : f3.debug("No session token found for key added");
          break;
        case l3.keymessage:
          if (y3 = null !== t5.sessionId && void 0 !== t5.sessionId, y3 ? (e4 = v3(b3, t5.sessionId), !e4 && p3.length > 0 && (e4 = p3.shift(), b3.push(e4), e4.sessionId = t5.sessionId, n3.trigger(a3.KEY_SESSION_CREATED, { data: e4 }))) : p3.length > 0 && (e4 = p3.shift(), b3.push(e4), 0 !== p3.length && o3.error(new c2.default(d2.default.MEDIA_KEY_MESSAGE_ERROR_CODE, d2.default.MEDIA_KEY_MESSAGE_ERROR_MESSAGE))), e4) {
            let r3 = ArrayBuffer.isView(t5.message) ? t5.message.buffer : t5.message;
            e4.keyMessage = r3, n3.trigger(a3.INTERNAL_KEY_MESSAGE, { data: new et(e4, r3, t5.defaultURL) });
          } else
            f3.warn("No session token found for key message");
      }
    } }, s3;
  }
  st.__dashjs_factory_name = "ProtectionModel_01b";
  var ut = b2.default.getClassFactory(st);
  const dt = [{ generateKeyRequest: "generateKeyRequest", addKey: "addKey", cancelKeyRequest: "cancelKeyRequest", needkey: "needkey", keyerror: "keyerror", keyadded: "keyadded", keymessage: "keymessage" }, { generateKeyRequest: "webkitGenerateKeyRequest", addKey: "webkitAddKey", cancelKeyRequest: "webkitCancelKeyRequest", needkey: "webkitneedkey", keyerror: "webkitkeyerror", keyadded: "webkitkeyadded", keymessage: "webkitkeymessage" }], ct = [{ setMediaKeys: "setMediaKeys", MediaKeys: "MediaKeys", release: "close", needkey: "needkey", error: "keyerror", message: "keymessage", ready: "keyadded", close: "keyclose" }, { setMediaKeys: "msSetMediaKeys", MediaKeys: "MSMediaKeys", release: "close", needkey: "msneedkey", error: "mskeyerror", message: "mskeymessage", ready: "mskeyadded", close: "mskeyclose" }];
  function ft() {
    let t4;
    const e3 = this.context;
    function n3(t5, e4) {
      for (let n4 = 0; n4 < e4.length; n4++) {
        const a3 = e4[n4];
        if ("function" == typeof t5[a3[Object.keys(a3)[0]]])
          return a3;
      }
      return null;
    }
    return t4 = { createProtectionSystem: function(a3) {
      let r3 = null;
      const i3 = Z(e3).getInstance();
      i3.setConfig({ debug: a3.debug, BASE64: a3.BASE64, settings: a3.settings }), i3.initialize();
      let l3 = function(a4) {
        const r4 = a4.debug, i4 = r4.getLogger(t4), l4 = a4.eventBus, o3 = a4.errHandler, s3 = a4.videoModel ? a4.videoModel.getElement() : null;
        return s3 && void 0 === s3.onencrypted || s3 && void 0 === s3.mediaKeys ? n3(s3, ct) ? (i4.info("EME detected on this user agent! (ProtectionModel_3Feb2014)"), ot(e3).create({ debug: r4, eventBus: l4, events: a4.events, api: n3(s3, ct) })) : n3(s3, dt) ? (i4.info("EME detected on this user agent! (ProtectionModel_01b)"), ut(e3).create({ debug: r4, eventBus: l4, errHandler: o3, events: a4.events, api: n3(s3, dt) })) : (i4.warn("No supported version of EME detected on this user agent! - Attempts to play encrypted content will fail!"), null) : (i4.info("EME detected on this user agent! (DefaultProtectionModel"), it(e3).create({ debug: r4, eventBus: l4, events: a4.events }));
      }(a3);
      return l3 && (r3 = E2(e3).create({ BASE64: a3.BASE64, cmcdModel: a3.cmcdModel, constants: a3.constants, customParametersModel: a3.customParametersModel, debug: a3.debug, eventBus: a3.eventBus, events: a3.events, protectionKeyController: i3, protectionModel: l3, settings: a3.settings }), a3.capabilities.setEncryptedMediaSupported(true)), r3;
    } }, t4;
  }
  ft.__dashjs_factory_name = "Protection";
  const gt = dashjs.FactoryMaker.getClassFactory(ft);
  gt.events = J.default, gt.errors = d2.default, dashjs.FactoryMaker.updateClassFactory(ft.__dashjs_factory_name, gt);
  var mt = gt;
}, 445: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(7252);
  class r2 extends a2.default {
    constructor() {
      super(), this.INTERNAL_KEY_MESSAGE = "internalKeyMessage", this.INTERNAL_KEY_STATUSES_CHANGED = "internalkeyStatusesChanged", this.KEY_ADDED = "public_keyAdded", this.KEY_ERROR = "public_keyError", this.KEY_MESSAGE = "public_keyMessage", this.KEY_SESSION_CLOSED = "public_keySessionClosed", this.KEY_SESSION_CREATED = "public_keySessionCreated", this.KEY_SESSION_REMOVED = "public_keySessionRemoved", this.KEY_STATUSES_CHANGED = "public_keyStatusesChanged", this.KEY_STATUSES_MAP_UPDATED = "keyStatusesMapUpdated", this.KEY_SYSTEM_ACCESS_COMPLETE = "public_keySystemAccessComplete", this.KEY_SYSTEM_SELECTED = "public_keySystemSelected", this.LICENSE_REQUEST_COMPLETE = "public_licenseRequestComplete", this.LICENSE_REQUEST_SENDING = "public_licenseRequestSending", this.NEED_KEY = "needkey", this.PROTECTION_CREATED = "public_protectioncreated", this.PROTECTION_DESTROYED = "public_protectiondestroyed", this.SERVER_CERTIFICATE_UPDATED = "serverCertificateUpdated", this.TEARDOWN_COMPLETE = "protectionTeardownComplete", this.VIDEO_ELEMENT_SELECTED = "videoElementSelected", this.KEY_SESSION_UPDATED = "public_keySessionUpdated";
    }
  }
  let i2 = new r2();
  e2.default = i2;
}, 1923: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(8748);
  class r2 extends a2.default {
    constructor() {
      super(), this.MEDIA_KEYERR_CODE = 100, this.MEDIA_KEYERR_UNKNOWN_CODE = 101, this.MEDIA_KEYERR_CLIENT_CODE = 102, this.MEDIA_KEYERR_SERVICE_CODE = 103, this.MEDIA_KEYERR_OUTPUT_CODE = 104, this.MEDIA_KEYERR_HARDWARECHANGE_CODE = 105, this.MEDIA_KEYERR_DOMAIN_CODE = 106, this.MEDIA_KEY_MESSAGE_ERROR_CODE = 107, this.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_CODE = 108, this.SERVER_CERTIFICATE_UPDATED_ERROR_CODE = 109, this.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE = 110, this.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_CODE = 111, this.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE = 112, this.KEY_SESSION_CREATED_ERROR_CODE = 113, this.MEDIA_KEY_MESSAGE_LICENSER_ERROR_CODE = 114, this.MEDIA_KEYERR_UNKNOWN_MESSAGE = "An unspecified error occurred. This value is used for errors that don't match any of the other codes.", this.MEDIA_KEYERR_CLIENT_MESSAGE = "The Key System could not be installed or updated.", this.MEDIA_KEYERR_SERVICE_MESSAGE = "The message passed into update indicated an error from the license service.", this.MEDIA_KEYERR_OUTPUT_MESSAGE = "There is no available output device with the required characteristics for the content protection system.", this.MEDIA_KEYERR_HARDWARECHANGE_MESSAGE = "A hardware configuration change caused a content protection error.", this.MEDIA_KEYERR_DOMAIN_MESSAGE = "An error occurred in a multi-device domain licensing configuration. The most common error is a failure to join the domain.", this.MEDIA_KEY_MESSAGE_ERROR_MESSAGE = "Multiple key sessions were creates with a user-agent that does not support sessionIDs!! Unpredictable behavior ahead!", this.MEDIA_KEY_MESSAGE_NO_CHALLENGE_ERROR_MESSAGE = "DRM: Empty key message from CDM", this.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE = "Error updating server certificate -- ", this.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE = "DRM: KeyStatusChange error! -- License has expired", this.MEDIA_KEY_MESSAGE_NO_LICENSE_SERVER_URL_ERROR_MESSAGE = "DRM: No license server URL specified!", this.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE = "DRM: KeySystem Access Denied! -- ", this.KEY_SESSION_CREATED_ERROR_MESSAGE = "DRM: unable to create session! --", this.MEDIA_KEY_MESSAGE_LICENSER_ERROR_MESSAGE = "DRM: licenser error! --";
    }
  }
  let i2 = new r2();
  e2.default = i2;
}, 559: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { supportsMediaSource: function() {
    return s2;
  } });
  var a2 = n2(138), r2 = n2(5212), i2 = n2(2861), l2 = n2(7393), o2 = n2(649);
  function s2() {
    let t4 = "ManagedMediaSource" in window, e3 = "WebKitMediaSource" in window, n3 = "MediaSource" in window;
    return t4 || e3 || n3;
  }
  function u2() {
    let t4, e3, n3, a3, u3, d2;
    const c2 = this.context, f2 = (0, l2.default)(c2).getInstance();
    function g2(t5, e4) {
      let n4;
      e4 === r2.default.VIDEO ? n4 = function(t6) {
        const e5 = { video: {} };
        return t6 ? (t6.width && (e5.video.width = t6.width), t6.height && (e5.video.height = t6.height), t6.framerate && (e5.video.framerate = parseFloat(t6.framerate)), t6.hdrMetadataType && (e5.video.hdrMetadataType = t6.hdrMetadataType), t6.colorGamut && (e5.video.colorGamut = t6.colorGamut), t6.transferFunction && (e5.video.transferFunction = t6.transferFunction), e5) : e5;
      }(t5) : e4 === r2.default.AUDIO && (n4 = function(t6) {
        const e5 = { audio: {} };
        return t6.samplerate && (e5.audio.samplerate = t6.samplerate), e5;
      }(t5)), n4[e4].contentType = t5.codec, n4[e4].bitrate = parseInt(t5.bitrate), n4.type = "media-source";
      let a4 = t5.codec;
      return t5.width && t5.height && (a4 += ';width="' + t5.width + '";height="' + t5.height + '"'), n4.mediaSourceCodecString = a4, function(t6, e5, n5) {
        return e5 && e5.keySystemsMetadata && 0 !== e5.keySystemsMetadata.length ? e5.keySystemsMetadata.map((e6) => {
          const a5 = { ...t6 };
          if (e6.ks) {
            a5.keySystemConfiguration = {}, e6.ks.systemString && (a5.keySystemConfiguration.keySystem = e6.ks.systemString);
            let t7 = "";
            e6.ks.systemString === i2.default.WIDEVINE_KEYSTEM_STRING && (t7 = i2.default.ROBUSTNESS_STRINGS.WIDEVINE.SW_SECURE_CRYPTO);
            const l3 = e6.protData, o3 = l3 && l3.audioRobustness && l3.audioRobustness.length > 0 ? l3.audioRobustness : t7, s3 = l3 && l3.videoRobustness && l3.videoRobustness.length > 0 ? l3.videoRobustness : t7;
            n5 === r2.default.AUDIO ? a5.keySystemConfiguration[n5] = { robustness: o3 } : n5 === r2.default.VIDEO && (a5.keySystemConfiguration[n5] = { robustness: s3 });
          }
          return a5;
        }) : [t6];
      }(n4, t5, e4);
    }
    function m2(t5) {
      if (a3 && 0 !== a3.length && t5)
        return a3.find((e4) => {
          const n4 = h2(t5, e4, r2.default.AUDIO), a4 = h2(t5, e4, r2.default.VIDEO), i3 = h2(t5, e4, "keySystemConfiguration");
          return n4 && a4 && i3;
        });
    }
    function h2(t5, e4, n4) {
      return !t5[n4] && !e4[n4] || !(!t5[n4] || !e4[n4]) && f2.areEqual(t5[n4], e4[n4]);
    }
    function p2(t5, e4) {
      return (t5 = t5.filter((t6) => !(t6.schemeIdUri && e4.some((e5) => e5.schemeIdUri === t6.schemeIdUri)))).push(...e4), t5;
    }
    return t4 = { areKeyIdsExpired: function(t5) {
      return !!(n3 && t5 && t5.normalizedKeyIds && 0 !== t5.normalizedKeyIds.size) && n3.areKeyIdsExpired(t5.normalizedKeyIds);
    }, areKeyIdsUsable: function(t5) {
      return !(n3 && t5 && t5.normalizedKeyIds && 0 !== t5.normalizedKeyIds.size) || n3.areKeyIdsUsable(t5.normalizedKeyIds);
    }, isCodecSupportedBasedOnTestedConfigurations: function(t5, e4) {
      if (!t5 || !t5.codec || false === t5.isSupported)
        return false;
      const n4 = g2(t5, e4).map((t6) => m2(t6)).filter((t6) => null != t6);
      return !(n4 && n4.length > 0) || function(t6) {
        return t6.some((t7) => t7 && t7.decodingInfo && t7.decodingInfo.supported);
      }(n4);
    }, isProtectionCompatible: function(t5, e4) {
      return !e4 || !(!t5.isEncrypted && e4.isEncrypted);
    }, runCodecSupportCheck: function(t5, n4) {
      if (n4 !== r2.default.AUDIO && n4 !== r2.default.VIDEO)
        return Promise.resolve();
      const i3 = g2(t5, n4);
      return function(t6, n5) {
        return e3.get().streaming.capabilities.useMediaCapabilitiesApi && navigator.mediaCapabilities && navigator.mediaCapabilities.decodingInfo && (t6.codec && n5 === r2.default.AUDIO || n5 === r2.default.VIDEO && t6.codec && t6.width && t6.height && t6.bitrate && t6.framerate);
      }(t5, n4) ? function(t6) {
        return new Promise((e4) => {
          if (!t6 || 0 === t6.length)
            return void e4();
          const n5 = t6.map((t7) => function(t8) {
            return new Promise((e5) => {
              m2(t8) ? e5() : navigator.mediaCapabilities.decodingInfo(t8).then((n6) => {
                t8.decodingInfo = n6, a3.push(t8), e5();
              }).catch((n6) => {
                t8.decodingInfo = { supported: false }, a3.push(t8), d2.error(n6), e5();
              });
            });
          }(t7));
          Promise.allSettled(n5).then(() => {
            e4();
          }).catch((t7) => {
            d2.error(t7), e4();
          });
        });
      }(i3) : (function(t6) {
        if (!t6 || !t6.length)
          return;
        const e4 = t6[0];
        if (m2(e4))
          return;
        let n5 = { supported: false };
        ("ManagedMediaSource" in window && ManagedMediaSource.isTypeSupported(e4.mediaSourceCodecString) || "MediaSource" in window && MediaSource.isTypeSupported(e4.mediaSourceCodecString) || "WebKitMediaSource" in window && WebKitMediaSource.isTypeSupported(e4.mediaSourceCodecString)) && (n5.supported = true), e4.decodingInfo = n5, a3.push(e4);
      }(i3), Promise.resolve());
    }, setConfig: function(t5) {
      t5 && (t5.settings && (e3 = t5.settings), t5.protectionController && (n3 = t5.protectionController));
    }, setEncryptedMediaSupported: function(t5) {
      u3 = t5;
    }, setProtectionController: function(t5) {
      n3 = t5;
    }, supportsChangeType: function() {
      return !!window.SourceBuffer && !!SourceBuffer.prototype && !!SourceBuffer.prototype.changeType;
    }, supportsEncryptedMedia: function() {
      return u3;
    }, supportsEssentialProperty: function(t5) {
      let n4 = e3.get().streaming.capabilities.supportedEssentialProperties;
      e3.get().streaming.capabilities.useMediaCapabilitiesApi && e3.get().streaming.capabilities.filterVideoColorimetryEssentialProperties && (n4 = p2(n4, [{ schemeIdUri: r2.default.COLOUR_PRIMARIES_SCHEME_ID_URI }, { schemeIdUri: r2.default.MATRIX_COEFFICIENTS_SCHEME_ID_URI }, { schemeIdUri: r2.default.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI }])), e3.get().streaming.capabilities.useMediaCapabilitiesApi && e3.get().streaming.capabilities.filterHDRMetadataFormatEssentialProperties && (n4 = p2(n4, [{ schemeIdUri: r2.default.HDR_METADATA_FORMAT_SCHEME_ID_URI }]));
      try {
        return t5.inArray(n4);
      } catch (t6) {
        return true;
      }
    }, supportsMediaSource: s2 }, u3 = false, a3 = [], d2 = (0, o2.default)(c2).getInstance().getLogger(t4), t4;
  }
  u2.__dashjs_factory_name = "Capabilities", e2.default = a2.default.getSingletonFactory(u2);
}, 7377: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138), r2 = n2(656);
  function i2() {
    return { customTimeRangeArray: [], length: 0, add: function(t4, e3) {
      let n3;
      for (n3 = 0; n3 < this.customTimeRangeArray.length && t4 > this.customTimeRangeArray[n3].start; n3++)
        ;
      for (this.customTimeRangeArray.splice(n3, 0, { start: t4, end: e3 }), n3 = 0; n3 < this.customTimeRangeArray.length - 1; n3++)
        this.mergeRanges(n3, n3 + 1) && n3--;
      this.length = this.customTimeRangeArray.length;
    }, clear: function() {
      this.customTimeRangeArray = [], this.length = 0;
    }, remove: function(t4, e3) {
      for (let n3 = 0; n3 < this.customTimeRangeArray.length; n3++)
        if (t4 <= this.customTimeRangeArray[n3].start && e3 >= this.customTimeRangeArray[n3].end)
          this.customTimeRangeArray.splice(n3, 1), n3--;
        else {
          if (t4 > this.customTimeRangeArray[n3].start && e3 < this.customTimeRangeArray[n3].end) {
            this.customTimeRangeArray.splice(n3 + 1, 0, { start: e3, end: this.customTimeRangeArray[n3].end }), this.customTimeRangeArray[n3].end = t4;
            break;
          }
          t4 > this.customTimeRangeArray[n3].start && t4 < this.customTimeRangeArray[n3].end ? this.customTimeRangeArray[n3].end = t4 : e3 > this.customTimeRangeArray[n3].start && e3 < this.customTimeRangeArray[n3].end && (this.customTimeRangeArray[n3].start = e3);
        }
      this.length = this.customTimeRangeArray.length;
    }, mergeRanges: function(t4, e3) {
      let n3 = this.customTimeRangeArray[t4], a3 = this.customTimeRangeArray[e3];
      return n3.start <= a3.start && a3.start <= n3.end && n3.end <= a3.end ? (n3.end = a3.end, this.customTimeRangeArray.splice(e3, 1), true) : a3.start <= n3.start && n3.start <= a3.end && a3.end <= n3.end ? (n3.start = a3.start, this.customTimeRangeArray.splice(e3, 1), true) : a3.start <= n3.start && n3.start <= a3.end && n3.end <= a3.end ? (this.customTimeRangeArray.splice(t4, 1), true) : n3.start <= a3.start && a3.start <= n3.end && a3.end <= n3.end && (this.customTimeRangeArray.splice(e3, 1), true);
    }, start: function(t4) {
      return (0, r2.checkInteger)(t4), t4 >= this.customTimeRangeArray.length || t4 < 0 ? NaN : this.customTimeRangeArray[t4].start;
    }, end: function(t4) {
      return (0, r2.checkInteger)(t4), t4 >= this.customTimeRangeArray.length || t4 < 0 ? NaN : this.customTimeRangeArray[t4].end;
    } };
  }
  i2.__dashjs_factory_name = "CustomTimeRanges", e2.default = a2.default.getClassFactory(i2);
}, 7393: function(t3, e2, n2) {
  n2.r(e2);
  var a2 = n2(138), r2 = n2(7316);
  function i2() {
    let t4;
    return t4 = { areEqual: function(t5, e3) {
      return r2(t5, e3);
    } }, t4;
  }
  i2.__dashjs_factory_name = "ObjectUtils", e2.default = a2.default.getSingletonFactory(i2);
}, 656: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { checkInteger: function() {
    return i2;
  }, checkIsVideoOrAudioType: function() {
    return o2;
  }, checkParameterType: function() {
    return r2;
  }, checkRange: function() {
    return l2;
  } });
  var a2 = n2(5212);
  function r2(t4, e3) {
    if (typeof t4 !== e3)
      throw a2.default.BAD_ARGUMENT_ERROR;
  }
  function i2(t4) {
    if (null === t4 || isNaN(t4) || t4 % 1 != 0)
      throw a2.default.BAD_ARGUMENT_ERROR + " : argument is not an integer";
  }
  function l2(t4, e3, n3) {
    if (t4 < e3 || t4 > n3)
      throw a2.default.BAD_ARGUMENT_ERROR + " : argument out of range";
  }
  function o2(t4) {
    if ("string" != typeof t4 || t4 !== a2.default.AUDIO && t4 !== a2.default.VIDEO)
      throw a2.default.BAD_ARGUMENT_ERROR;
  }
}, 1944: function(t3, e2, n2) {
  n2.r(e2), e2.default = class {
    constructor(t4, e3, n3) {
      this.code = t4 || null, this.message = e3 || null, this.data = n3 || null;
    }
  };
}, 7568: function(t3, e2, n2) {
  n2.r(e2), n2.d(e2, { HTTPRequest: function() {
    return a2;
  }, HTTPRequestTrace: function() {
    return r2;
  } });
  class a2 {
    constructor() {
      this.tcpid = null, this.type = null, this.url = null, this.actualurl = null, this.range = null, this.trequest = null, this.tresponse = null, this.responsecode = null, this.interval = null, this.trace = [], this.cmsd = null, this._stream = null, this._tfinish = null, this._mediaduration = null, this._responseHeaders = null, this._serviceLocation = null, this._fileLoaderType = null, this._resourceTimingValues = null;
    }
  }
  class r2 {
    constructor() {
      this.s = null, this.d = null, this.b = [];
    }
  }
  a2.GET = "GET", a2.HEAD = "HEAD", a2.MPD_TYPE = "MPD", a2.XLINK_EXPANSION_TYPE = "XLinkExpansion", a2.INIT_SEGMENT_TYPE = "InitializationSegment", a2.INDEX_SEGMENT_TYPE = "IndexSegment", a2.MEDIA_SEGMENT_TYPE = "MediaSegment", a2.BITSTREAM_SWITCHING_SEGMENT_TYPE = "BitstreamSwitchingSegment", a2.MSS_FRAGMENT_INFO_SEGMENT_TYPE = "FragmentInfoSegment", a2.DVB_REPORTING_TYPE = "DVBReporting", a2.LICENSE = "license", a2.CONTENT_STEERING_TYPE = "ContentSteering", a2.OTHER_TYPE = "other";
} }, e = {};
function n(a2) {
  var r2 = e[a2];
  if (void 0 !== r2)
    return r2.exports;
  var i2 = e[a2] = { exports: {} };
  return t[a2].call(i2.exports, i2, i2.exports, n), i2.exports;
}
n.amdO = {}, n.d = function(t3, e2) {
  for (var a2 in e2)
    n.o(e2, a2) && !n.o(t3, a2) && Object.defineProperty(t3, a2, { enumerable: true, get: e2[a2] });
}, n.g = function() {
  if ("object" == typeof globalThis)
    return globalThis;
  try {
    return this || new Function("return this")();
  } catch (t3) {
    if ("object" == typeof window)
      return window;
  }
}(), n.o = function(t3, e2) {
  return Object.prototype.hasOwnProperty.call(t3, e2);
}, n.r = function(t3) {
  "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t3, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t3, "__esModule", { value: true });
};
var r = {};
n.r(r), n.d(r, { Constants: function() {
  return m.default;
}, Debug: function() {
  return g.default;
}, MediaPlayer: function() {
  return i.MediaPlayer;
}, MediaPlayerFactory: function() {
  return f;
}, MetricsReporting: function() {
  return l.default;
}, Protection: function() {
  return o.default;
}, default: function() {
  return p;
}, supportsMediaSource: function() {
  return h.supportsMediaSource;
} });
var i = n(5393), l = n(4469), o = n(3888), u = n(255);
let d, c = /* @__PURE__ */ function() {
  const t3 = "application/dash+xml";
  let e2;
  function n2(n3, a3, r2) {
    if (!n3 || !/^VIDEO$/i.test(n3.nodeName))
      return null;
    if (n3._dashjs_player)
      return n3._dashjs_player;
    let i2, l2 = n3.id || n3.name || "video element";
    if (!(a3 = a3 || [].slice.call(n3.querySelectorAll("source")).filter(function(e3) {
      return e3.type == t3;
    })[0]) && n3.src)
      (a3 = document.createElement("source")).src = n3.src;
    else if (!a3 && !n3.src)
      return null;
    return r2 = r2 || {}, i2 = (0, u.default)(r2).create(), i2.initialize(n3, a3.src, n3.autoplay), e2 || (e2 = i2.getDebug().getLogger()), e2.debug("Converted " + l2 + " to dash.js player and added content: " + a3.src), n3._dashjs_player = i2, i2;
  }
  function a2(t4) {
    return /^VIDEO$/i.test(t4.nodeName) ? t4 : a2(t4.parentNode);
  }
  return { create: n2, createAll: function(e3, r2) {
    let i2 = [];
    e3 = e3 || "[data-dashjs-player]";
    let l2 = (r2 = r2 || document).querySelectorAll(e3);
    for (let t4 = 0; t4 < l2.length; t4++) {
      let e4 = n2(l2[t4], null);
      i2.push(e4);
    }
    let o2 = r2.querySelectorAll('source[type="' + t3 + '"]');
    for (let t4 = 0; t4 < o2.length; t4++) {
      let e4 = n2(a2(o2[t4]), null);
      i2.push(e4);
    }
    return i2;
  } };
}();
!("undefined" != typeof window && window && window.dashjs && window.dashjs.skipAutoCreate) && "undefined" != typeof window && window && window.addEventListener && ("complete" === window.document.readyState ? window.dashjs ? c.createAll() : d = window.setInterval(function() {
  window.dashjs && (window.clearInterval(d), c.createAll());
}, 500) : window.addEventListener("load", function t2() {
  window.removeEventListener("load", t2), c.createAll();
}));
var f = c, g = n(649), m = n(5212), h = n(559);
dashjs.Protection = o.default, dashjs.MetricsReporting = l.default, dashjs.MediaPlayerFactory = f, dashjs.Debug = g.default, dashjs.supportsMediaSource = h.supportsMediaSource, dashjs.Constants = m.default;
var p = dashjs, b = (r = r.default).Constants, y = r.Debug, E = r.MediaPlayer, _ = r.MediaPlayerFactory, T = r.MetricsReporting, v = r.Protection, w = r.default, S = r.supportsMediaSource;
export {
  b as Constants,
  y as Debug,
  E as MediaPlayer,
  _ as MediaPlayerFactory,
  T as MetricsReporting,
  v as Protection,
  w as default,
  S as supportsMediaSource
};
