UNPKG

barcode-detector

Version:

A Barcode Detection API polyfill that uses ZXing webassembly under the hood

2,147 lines 60.7 kB
var Ae = (o) => {
  throw TypeError(o);
};
var Se = (o, f, c) => f.has(o) || Ae("Cannot " + c);
var Ie = (o, f, c) => (Se(o, f, "read from private field"), c ? c.call(o) : f.get(o)), De = (o, f, c) => f.has(o) ? Ae("Cannot add the same private member more than once") : f instanceof WeakSet ? f.add(o) : f.set(o, c), Me = (o, f, c, T) => (Se(o, f, "write to private field"), T ? T.call(o, c) : f.set(o, c), c);
const Dt = [
  ["Aztec", "M"],
  ["Codabar", "L"],
  ["Code39", "L"],
  ["Code93", "L"],
  ["Code128", "L"],
  ["DataBar", "L"],
  ["DataBarExpanded", "L"],
  ["DataMatrix", "M"],
  ["EAN-8", "L"],
  ["EAN-13", "L"],
  ["ITF", "L"],
  ["MaxiCode", "M"],
  ["PDF417", "M"],
  ["QRCode", "M"],
  ["UPC-A", "L"],
  ["UPC-E", "L"],
  ["MicroQRCode", "M"],
  ["rMQRCode", "M"],
  ["DXFilmEdge", "L"],
  ["DataBarLimited", "L"]
], Mt = Dt.map(([o]) => o), La = Mt.filter(
  (o, f) => Dt[f][1] === "L"
), Ba = Mt.filter(
  (o, f) => Dt[f][1] === "M"
);
function Yt(o) {
  switch (o) {
    case "Linear-Codes":
      return La.reduce((f, c) => f | Yt(c), 0);
    case "Matrix-Codes":
      return Ba.reduce((f, c) => f | Yt(c), 0);
    case "Any":
      return (1 << Dt.length) - 1;
    case "None":
      return 0;
    default:
      return 1 << Mt.indexOf(o);
  }
}
function Wa(o) {
  if (o === 0)
    return "None";
  const f = 31 - Math.clz32(o);
  return Mt[f];
}
function Ua(o) {
  return o.reduce((f, c) => f | Yt(c), 0);
}
const Va = [
  "LocalAverage",
  "GlobalHistogram",
  "FixedThreshold",
  "BoolCast"
];
function ka(o) {
  return Va.indexOf(o);
}
const Fe = [
  "Unknown",
  "ASCII",
  "ISO8859_1",
  "ISO8859_2",
  "ISO8859_3",
  "ISO8859_4",
  "ISO8859_5",
  "ISO8859_6",
  "ISO8859_7",
  "ISO8859_8",
  "ISO8859_9",
  "ISO8859_10",
  "ISO8859_11",
  "ISO8859_13",
  "ISO8859_14",
  "ISO8859_15",
  "ISO8859_16",
  "Cp437",
  "Cp1250",
  "Cp1251",
  "Cp1252",
  "Cp1256",
  "Shift_JIS",
  "Big5",
  "GB2312",
  "GB18030",
  "EUC_JP",
  "EUC_KR",
  "UTF16BE",
  /**
   * UnicodeBig [[deprecated]]
   */
  "UTF16BE",
  "UTF8",
  "UTF16LE",
  "UTF32BE",
  "UTF32LE",
  "BINARY"
];
function Ha(o) {
  return o === "UnicodeBig" ? Fe.indexOf("UTF16BE") : Fe.indexOf(o);
}
const Na = [
  "Text",
  "Binary",
  "Mixed",
  "GS1",
  "ISO15434",
  "UnknownECI"
];
function za(o) {
  return Na[o];
}
const Ga = ["Ignore", "Read", "Require"];
function Xa(o) {
  return Ga.indexOf(o);
}
const qa = ["Plain", "ECI", "HRI", "Hex", "Escaped"];
function Ya(o) {
  return qa.indexOf(o);
}
const It = {
  formats: [],
  tryHarder: !0,
  tryRotate: !0,
  tryInvert: !0,
  tryDownscale: !0,
  tryDenoise: !1,
  binarizer: "LocalAverage",
  isPure: !1,
  downscaleFactor: 3,
  downscaleThreshold: 500,
  minLineCount: 2,
  maxNumberOfSymbols: 255,
  tryCode39ExtendedMode: !0,
  returnErrors: !1,
  eanAddOnSymbol: "Ignore",
  textMode: "HRI",
  characterSet: "Unknown"
};
function je(o) {
  return {
    ...o,
    formats: Ua(o.formats),
    binarizer: ka(o.binarizer),
    eanAddOnSymbol: Xa(o.eanAddOnSymbol),
    textMode: Ya(o.textMode),
    characterSet: Ha(o.characterSet)
  };
}
function Za(o) {
  return {
    ...o,
    format: Wa(o.format),
    contentType: za(o.contentType),
    eccLevel: o.ecLevel
  };
}
const $o = "2.1.2", bo = "a1516b34167cff504bf3c83698ea841e13a8f7f1", Qa = {
  locateFile: (o, f) => {
    const c = o.match(/_(.+?)\.wasm$/);
    return c ? `https://fastly.jsdelivr.net/npm/zxing-wasm@2.1.2/dist/${c[1]}/${o}` : f + o;
  }
}, St = /* @__PURE__ */ new WeakMap();
function Ja(o, f) {
  return Object.is(o, f) || Object.keys(o).length === Object.keys(f).length && Object.keys(o).every(
    (c) => Object.prototype.hasOwnProperty.call(f, c) && o[c] === f[c]
  );
}
function Le(o, {
  overrides: f,
  equalityFn: c = Ja,
  fireImmediately: T = !1
} = {}) {
  var $;
  const [x, D] = ($ = St.get(o)) != null ? $ : [Qa], R = f != null ? f : x;
  let O;
  if (T) {
    if (D && (O = c(x, R)))
      return D;
    const M = o({
      ...R
    });
    return St.set(o, [R, M]), M;
  }
  (O != null ? O : c(x, R)) || St.set(o, [R]);
}
function Ka(o) {
  St.delete(o);
}
async function to(o, f, c = It) {
  const T = {
    ...It,
    ...c
  }, $ = await Le(o, {
    fireImmediately: !0
  });
  let x, D;
  if ("width" in f && "height" in f && "data" in f) {
    const {
      data: O,
      data: { byteLength: M },
      width: F,
      height: q
    } = f;
    D = $._malloc(M), $.HEAPU8.set(O, D), x = $.readBarcodesFromPixmap(
      D,
      F,
      q,
      je(T)
    );
  } else {
    let O, M;
    if ("buffer" in f)
      [O, M] = [f.byteLength, f];
    else if ("byteLength" in f)
      [O, M] = [f.byteLength, new Uint8Array(f)];
    else if ("size" in f)
      [O, M] = [f.size, new Uint8Array(await f.arrayBuffer())];
    else
      throw new TypeError("Invalid input type");
    D = $._malloc(O), $.HEAPU8.set(M, D), x = $.readBarcodesFromImage(
      D,
      O,
      je(T)
    );
  }
  $._free(D);
  const R = [];
  for (let O = 0; O < x.size(); ++O)
    R.push(
      Za(x.get(O))
    );
  return R;
}
({
  ...It,
  formats: [...It.formats]
});
var Qt = async function(o = {}) {
  var f, c = o, T, $, x = new Promise((e, t) => {
    T = e, $ = t;
  }), D = typeof window == "object", R = typeof Bun < "u", O = typeof WorkerGlobalScope < "u";
  typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string" && process.type != "renderer";
  var M = "./this.program", F = "";
  function q(e) {
    return c.locateFile ? c.locateFile(e, F) : F + e;
  }
  var rt, Y;
  (D || O || R) && (O ? F = self.location.href : typeof document < "u" && document.currentScript && (F = document.currentScript.src), F.startsWith("blob:") ? F = "" : F = F.slice(0, F.replace(/[?#].*/, "").lastIndexOf("/") + 1), O && (Y = (e) => {
    var t = new XMLHttpRequest();
    return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response);
  }), rt = async (e) => {
    var t = await fetch(e, {
      credentials: "same-origin"
    });
    if (t.ok)
      return t.arrayBuffer();
    throw new Error(t.status + " : " + t.url);
  });
  var st = console.log.bind(console), k = console.error.bind(console), Z, nt, Jt = !1, Q, B, ut, vt, at, P, Kt, te;
  function ee() {
    var e = nt.buffer;
    Q = new Int8Array(e), ut = new Int16Array(e), c.HEAPU8 = B = new Uint8Array(e), vt = new Uint16Array(e), at = new Int32Array(e), P = new Uint32Array(e), Kt = new Float32Array(e), te = new Float64Array(e);
  }
  function qe() {
    if (c.preRun)
      for (typeof c.preRun == "function" && (c.preRun = [c.preRun]); c.preRun.length; )
        sr(c.preRun.shift());
    re(ae);
  }
  function Ye() {
    E.ya();
  }
  function Ze() {
    if (c.postRun)
      for (typeof c.postRun == "function" && (c.postRun = [c.postRun]); c.postRun.length; )
        ir(c.postRun.shift());
    re(ne);
  }
  var J = 0, ct = null;
  function Qe(e) {
    var t;
    J++, (t = c.monitorRunDependencies) === null || t === void 0 || t.call(c, J);
  }
  function Je(e) {
    var t;
    if (J--, (t = c.monitorRunDependencies) === null || t === void 0 || t.call(c, J), J == 0 && ct) {
      var r = ct;
      ct = null, r();
    }
  }
  function Ft(e) {
    var t;
    (t = c.onAbort) === null || t === void 0 || t.call(c, e), e = "Aborted(" + e + ")", k(e), Jt = !0, e += ". Build with -sASSERTIONS for more info.";
    var r = new WebAssembly.RuntimeError(e);
    throw $(r), r;
  }
  var yt;
  function Ke() {
    return q("zxing_reader.wasm");
  }
  function tr(e) {
    if (e == yt && Z)
      return new Uint8Array(Z);
    if (Y)
      return Y(e);
    throw "both async and sync fetching of the wasm failed";
  }
  async function er(e) {
    if (!Z)
      try {
        var t = await rt(e);
        return new Uint8Array(t);
      } catch {
      }
    return tr(e);
  }
  async function rr(e, t) {
    try {
      var r = await er(e), n = await WebAssembly.instantiate(r, t);
      return n;
    } catch (a) {
      k(`failed to asynchronously prepare wasm: ${a}`), Ft(a);
    }
  }
  async function nr(e, t, r) {
    if (!e && typeof WebAssembly.instantiateStreaming == "function")
      try {
        var n = fetch(t, {
          credentials: "same-origin"
        }), a = await WebAssembly.instantiateStreaming(n, r);
        return a;
      } catch (i) {
        k(`wasm streaming compile failed: ${i}`), k("falling back to ArrayBuffer instantiation");
      }
    return rr(t, r);
  }
  function ar() {
    return {
      a: Hn
    };
  }
  async function or() {
    function e(i, u) {
      return E = i.exports, nt = E.xa, ee(), pe = E.Ba, Je(), E;
    }
    Qe();
    function t(i) {
      return e(i.instance);
    }
    var r = ar();
    if (c.instantiateWasm)
      return new Promise((i, u) => {
        c.instantiateWasm(r, (s, l) => {
          i(e(s));
        });
      });
    yt != null || (yt = Ke());
    try {
      var n = await nr(Z, yt, r), a = t(n);
      return a;
    } catch (i) {
      return $(i), Promise.reject(i);
    }
  }
  var re = (e) => {
    for (; e.length > 0; )
      e.shift()(c);
  }, ne = [], ir = (e) => ne.push(e), ae = [], sr = (e) => ae.push(e), y = (e) => Xn(e), m = () => qn(), mt = [], gt = 0, ur = (e) => {
    var t = new jt(e);
    return t.get_caught() || (t.set_caught(!0), gt--), t.set_rethrown(!1), mt.push(t), Zn(e), zn(e);
  }, H = 0, cr = () => {
    v(0, 0);
    var e = mt.pop();
    Yn(e.excPtr), H = 0;
  };
  class jt {
    constructor(t) {
      this.excPtr = t, this.ptr = t - 24;
    }
    set_type(t) {
      P[this.ptr + 4 >> 2] = t;
    }
    get_type() {
      return P[this.ptr + 4 >> 2];
    }
    set_destructor(t) {
      P[this.ptr + 8 >> 2] = t;
    }
    get_destructor() {
      return P[this.ptr + 8 >> 2];
    }
    set_caught(t) {
      t = t ? 1 : 0, Q[this.ptr + 12] = t;
    }
    get_caught() {
      return Q[this.ptr + 12] != 0;
    }
    set_rethrown(t) {
      t = t ? 1 : 0, Q[this.ptr + 13] = t;
    }
    get_rethrown() {
      return Q[this.ptr + 13] != 0;
    }
    init(t, r) {
      this.set_adjusted_ptr(0), this.set_type(t), this.set_destructor(r);
    }
    set_adjusted_ptr(t) {
      P[this.ptr + 16 >> 2] = t;
    }
    get_adjusted_ptr() {
      return P[this.ptr + 16 >> 2];
    }
  }
  var wt = (e) => Gn(e), Rt = (e) => {
    var t = H;
    if (!t)
      return wt(0), 0;
    var r = new jt(t);
    r.set_adjusted_ptr(t);
    var n = r.get_type();
    if (!n)
      return wt(0), t;
    for (var a of e) {
      if (a === 0 || a === n)
        break;
      var i = r.ptr + 16;
      if (Qn(a, n, i))
        return wt(a), t;
    }
    return wt(n), t;
  }, lr = () => Rt([]), fr = (e) => Rt([e]), dr = (e, t) => Rt([e, t]), hr = () => {
    var e = mt.pop();
    e || Ft("no exception to throw");
    var t = e.excPtr;
    throw e.get_rethrown() || (mt.push(e), e.set_rethrown(!0), e.set_caught(!1), gt++), H = t, H;
  }, pr = (e, t, r) => {
    var n = new jt(e);
    throw n.init(t, r), H = e, gt++, H;
  }, vr = () => gt, yr = (e) => {
    throw H || (H = e), H;
  }, mr = () => Ft(""), $t = {}, Lt = (e) => {
    for (; e.length; ) {
      var t = e.pop(), r = e.pop();
      r(t);
    }
  };
  function lt(e) {
    return this.fromWireType(P[e >> 2]);
  }
  var ot = {}, K = {}, bt = {}, gr = c.InternalError = class extends Error {
    constructor(e) {
      super(e), this.name = "InternalError";
    }
  }, Ct = (e) => {
    throw new gr(e);
  }, tt = (e, t, r) => {
    e.forEach((s) => bt[s] = t);
    function n(s) {
      var l = r(s);
      l.length !== e.length && Ct("Mismatched type converter count");
      for (var d = 0; d < e.length; ++d)
        V(e[d], l[d]);
    }
    var a = new Array(t.length), i = [], u = 0;
    t.forEach((s, l) => {
      K.hasOwnProperty(s) ? a[l] = K[s] : (i.push(s), ot.hasOwnProperty(s) || (ot[s] = []), ot[s].push(() => {
        a[l] = K[s], ++u, u === i.length && n(a);
      }));
    }), i.length === 0 && n(a);
  }, wr = (e) => {
    var t = $t[e];
    delete $t[e];
    var r = t.rawConstructor, n = t.rawDestructor, a = t.fields, i = a.map((u) => u.getterReturnType).concat(a.map((u) => u.setterArgumentType));
    tt([e], i, (u) => {
      var s = {};
      return a.forEach((l, d) => {
        var h = l.fieldName, p = u[d], w = u[d].optional, b = l.getter, _ = l.getterContext, S = u[d + a.length], A = l.setter, I = l.setterContext;
        s[h] = {
          read: (X) => p.fromWireType(b(_, X)),
          write: (X, L) => {
            var W = [];
            A(I, X, S.toWireType(W, L)), Lt(W);
          },
          optional: w
        };
      }), [{
        name: t.name,
        fromWireType: (l) => {
          var d = {};
          for (var h in s)
            d[h] = s[h].read(l);
          return n(l), d;
        },
        toWireType: (l, d) => {
          for (var h in s)
            if (!(h in d) && !s[h].optional)
              throw new TypeError(`Missing field: "${h}"`);
          var p = r();
          for (h in s)
            s[h].write(p, d[h]);
          return l !== null && l.push(n, p), p;
        },
        argPackAdvance: N,
        readValueFromPointer: lt,
        destructorFunction: n
      }];
    });
  }, $r = (e, t, r, n, a) => {
  }, br = () => {
    for (var e = new Array(256), t = 0; t < 256; ++t)
      e[t] = String.fromCharCode(t);
    oe = e;
  }, oe, j = (e) => {
    for (var t = "", r = e; B[r]; )
      t += oe[B[r++]];
    return t;
  }, ft = c.BindingError = class extends Error {
    constructor(e) {
      super(e), this.name = "BindingError";
    }
  }, C = (e) => {
    throw new ft(e);
  };
  function Cr(e, t) {
    let r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    var n = t.name;
    if (e || C(`type "${n}" must have a positive integer typeid pointer`), K.hasOwnProperty(e)) {
      if (r.ignoreDuplicateRegistrations)
        return;
      C(`Cannot register type '${n}' twice`);
    }
    if (K[e] = t, delete bt[e], ot.hasOwnProperty(e)) {
      var a = ot[e];
      delete ot[e], a.forEach((i) => i());
    }
  }
  function V(e, t) {
    let r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
    return Cr(e, t, r);
  }
  var N = 8, Tr = (e, t, r, n) => {
    t = j(t), V(e, {
      name: t,
      fromWireType: function(a) {
        return !!a;
      },
      toWireType: function(a, i) {
        return i ? r : n;
      },
      argPackAdvance: N,
      readValueFromPointer: function(a) {
        return this.fromWireType(B[a]);
      },
      destructorFunction: null
    });
  }, Pr = (e) => ({
    count: e.count,
    deleteScheduled: e.deleteScheduled,
    preservePointerOnDelete: e.preservePointerOnDelete,
    ptr: e.ptr,
    ptrType: e.ptrType,
    smartPtr: e.smartPtr,
    smartPtrType: e.smartPtrType
  }), Bt = (e) => {
    function t(r) {
      return r.$$.ptrType.registeredClass.name;
    }
    C(t(e) + " instance already deleted");
  }, Wt = !1, ie = (e) => {
  }, Er = (e) => {
    e.smartPtr ? e.smartPtrType.rawDestructor(e.smartPtr) : e.ptrType.registeredClass.rawDestructor(e.ptr);
  }, se = (e) => {
    e.count.value -= 1;
    var t = e.count.value === 0;
    t && Er(e);
  }, dt = (e) => typeof FinalizationRegistry > "u" ? (dt = (t) => t, e) : (Wt = new FinalizationRegistry((t) => {
    se(t.$$);
  }), dt = (t) => {
    var r = t.$$, n = !!r.smartPtr;
    if (n) {
      var a = {
        $$: r
      };
      Wt.register(t, a, t);
    }
    return t;
  }, ie = (t) => Wt.unregister(t), dt(e)), _r = () => {
    let e = Tt.prototype;
    Object.assign(e, {
      isAliasOf(r) {
        if (!(this instanceof Tt) || !(r instanceof Tt))
          return !1;
        var n = this.$$.ptrType.registeredClass, a = this.$$.ptr;
        r.$$ = r.$$;
        for (var i = r.$$.ptrType.registeredClass, u = r.$$.ptr; n.baseClass; )
          a = n.upcast(a), n = n.baseClass;
        for (; i.baseClass; )
          u = i.upcast(u), i = i.baseClass;
        return n === i && a === u;
      },
      clone() {
        if (this.$$.ptr || Bt(this), this.$$.preservePointerOnDelete)
          return this.$$.count.value += 1, this;
        var r = dt(Object.create(Object.getPrototypeOf(this), {
          $$: {
            value: Pr(this.$$)
          }
        }));
        return r.$$.count.value += 1, r.$$.deleteScheduled = !1, r;
      },
      delete() {
        this.$$.ptr || Bt(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && C("Object already scheduled for deletion"), ie(this), se(this.$$), this.$$.preservePointerOnDelete || (this.$$.smartPtr = void 0, this.$$.ptr = void 0);
      },
      isDeleted() {
        return !this.$$.ptr;
      },
      deleteLater() {
        return this.$$.ptr || Bt(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && C("Object already scheduled for deletion"), this.$$.deleteScheduled = !0, this;
      }
    });
    const t = Symbol.dispose;
    t && (e[t] = e.delete);
  };
  function Tt() {
  }
  var Ut = (e, t) => Object.defineProperty(t, "name", {
    value: e
  }), ue = {}, ce = (e, t, r) => {
    if (e[t].overloadTable === void 0) {
      var n = e[t];
      e[t] = function() {
        for (var a = arguments.length, i = new Array(a), u = 0; u < a; u++)
          i[u] = arguments[u];
        return e[t].overloadTable.hasOwnProperty(i.length) || C(`Function '${r}' called with an invalid number of arguments (${i.length}) - expects one of (${e[t].overloadTable})!`), e[t].overloadTable[i.length].apply(this, i);
      }, e[t].overloadTable = [], e[t].overloadTable[n.argCount] = n;
    }
  }, le = (e, t, r) => {
    c.hasOwnProperty(e) ? ((r === void 0 || c[e].overloadTable !== void 0 && c[e].overloadTable[r] !== void 0) && C(`Cannot register public name '${e}' twice`), ce(c, e, e), c[e].overloadTable.hasOwnProperty(r) && C(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`), c[e].overloadTable[r] = t) : (c[e] = t, c[e].argCount = r);
  }, Or = 48, xr = 57, Ar = (e) => {
    e = e.replace(/[^a-zA-Z0-9_]/g, "$");
    var t = e.charCodeAt(0);
    return t >= Or && t <= xr ? `_${e}` : e;
  };
  function Sr(e, t, r, n, a, i, u, s) {
    this.name = e, this.constructor = t, this.instancePrototype = r, this.rawDestructor = n, this.baseClass = a, this.getActualType = i, this.upcast = u, this.downcast = s, this.pureVirtualFunctions = [];
  }
  var Vt = (e, t, r) => {
    for (; t !== r; )
      t.upcast || C(`Expected null or instance of ${r.name}, got an instance of ${t.name}`), e = t.upcast(e), t = t.baseClass;
    return e;
  };
  function Ir(e, t) {
    if (t === null)
      return this.isReference && C(`null is not a valid ${this.name}`), 0;
    t.$$ || C(`Cannot pass "${embindRepr(t)}" as a ${this.name}`), t.$$.ptr || C(`Cannot pass deleted object as a pointer of type ${this.name}`);
    var r = t.$$.ptrType.registeredClass, n = Vt(t.$$.ptr, r, this.registeredClass);
    return n;
  }
  function Dr(e, t) {
    var r;
    if (t === null)
      return this.isReference && C(`null is not a valid ${this.name}`), this.isSmartPointer ? (r = this.rawConstructor(), e !== null && e.push(this.rawDestructor, r), r) : 0;
    (!t || !t.$$) && C(`Cannot pass "${embindRepr(t)}" as a ${this.name}`), t.$$.ptr || C(`Cannot pass deleted object as a pointer of type ${this.name}`), !this.isConst && t.$$.ptrType.isConst && C(`Cannot convert argument of type ${t.$$.smartPtrType ? t.$$.smartPtrType.name : t.$$.ptrType.name} to parameter type ${this.name}`);
    var n = t.$$.ptrType.registeredClass;
    if (r = Vt(t.$$.ptr, n, this.registeredClass), this.isSmartPointer)
      switch (t.$$.smartPtr === void 0 && C("Passing raw pointer to smart pointer is illegal"), this.sharingPolicy) {
        case 0:
          t.$$.smartPtrType === this ? r = t.$$.smartPtr : C(`Cannot convert argument of type ${t.$$.smartPtrType ? t.$$.smartPtrType.name : t.$$.ptrType.name} to parameter type ${this.name}`);
          break;
        case 1:
          r = t.$$.smartPtr;
          break;
        case 2:
          if (t.$$.smartPtrType === this)
            r = t.$$.smartPtr;
          else {
            var a = t.clone();
            r = this.rawShare(r, G.toHandle(() => a.delete())), e !== null && e.push(this.rawDestructor, r);
          }
          break;
        default:
          C("Unsupporting sharing policy");
      }
    return r;
  }
  function Mr(e, t) {
    if (t === null)
      return this.isReference && C(`null is not a valid ${this.name}`), 0;
    t.$$ || C(`Cannot pass "${embindRepr(t)}" as a ${this.name}`), t.$$.ptr || C(`Cannot pass deleted object as a pointer of type ${this.name}`), t.$$.ptrType.isConst && C(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);
    var r = t.$$.ptrType.registeredClass, n = Vt(t.$$.ptr, r, this.registeredClass);
    return n;
  }
  var fe = (e, t, r) => {
    if (t === r)
      return e;
    if (r.baseClass === void 0)
      return null;
    var n = fe(e, t, r.baseClass);
    return n === null ? null : r.downcast(n);
  }, Fr = {}, jr = (e, t) => {
    for (t === void 0 && C("ptr should not be undefined"); e.baseClass; )
      t = e.upcast(t), e = e.baseClass;
    return t;
  }, Rr = (e, t) => (t = jr(e, t), Fr[t]), Pt = (e, t) => {
    (!t.ptrType || !t.ptr) && Ct("makeClassHandle requires ptr and ptrType");
    var r = !!t.smartPtrType, n = !!t.smartPtr;
    return r !== n && Ct("Both smartPtrType and smartPtr must be specified"), t.count = {
      value: 1
    }, dt(Object.create(e, {
      $$: {
        value: t,
        writable: !0
      }
    }));
  };
  function Lr(e) {
    var t = this.getPointee(e);
    if (!t)
      return this.destructor(e), null;
    var r = Rr(this.registeredClass, t);
    if (r !== void 0) {
      if (r.$$.count.value === 0)
        return r.$$.ptr = t, r.$$.smartPtr = e, r.clone();
      var n = r.clone();
      return this.destructor(e), n;
    }
    function a() {
      return this.isSmartPointer ? Pt(this.registeredClass.instancePrototype, {
        ptrType: this.pointeeType,
        ptr: t,
        smartPtrType: this,
        smartPtr: e
      }) : Pt(this.registeredClass.instancePrototype, {
        ptrType: this,
        ptr: e
      });
    }
    var i = this.registeredClass.getActualType(t), u = ue[i];
    if (!u)
      return a.call(this);
    var s;
    this.isConst ? s = u.constPointerType : s = u.pointerType;
    var l = fe(t, this.registeredClass, s.registeredClass);
    return l === null ? a.call(this) : this.isSmartPointer ? Pt(s.registeredClass.instancePrototype, {
      ptrType: s,
      ptr: l,
      smartPtrType: this,
      smartPtr: e
    }) : Pt(s.registeredClass.instancePrototype, {
      ptrType: s,
      ptr: l
    });
  }
  var Br = () => {
    Object.assign(Et.prototype, {
      getPointee(e) {
        return this.rawGetPointee && (e = this.rawGetPointee(e)), e;
      },
      destructor(e) {
        var t;
        (t = this.rawDestructor) === null || t === void 0 || t.call(this, e);
      },
      argPackAdvance: N,
      readValueFromPointer: lt,
      fromWireType: Lr
    });
  };
  function Et(e, t, r, n, a, i, u, s, l, d, h) {
    this.name = e, this.registeredClass = t, this.isReference = r, this.isConst = n, this.isSmartPointer = a, this.pointeeType = i, this.sharingPolicy = u, this.rawGetPointee = s, this.rawConstructor = l, this.rawShare = d, this.rawDestructor = h, !a && t.baseClass === void 0 ? n ? (this.toWireType = Ir, this.destructorFunction = null) : (this.toWireType = Mr, this.destructorFunction = null) : this.toWireType = Dr;
  }
  var de = (e, t, r) => {
    c.hasOwnProperty(e) || Ct("Replacing nonexistent public symbol"), c[e].overloadTable !== void 0 && r !== void 0 ? c[e].overloadTable[r] = t : (c[e] = t, c[e].argCount = r);
  }, he = [], pe, g = (e) => {
    var t = he[e];
    return t || (he[e] = t = pe.get(e)), t;
  }, Wr = function(e, t) {
    let r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
    if (e.includes("j"))
      return dynCallLegacy(e, t, r);
    var n = g(t), a = n(...r);
    return a;
  }, Ur = function(e, t) {
    let r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1;
    return function() {
      for (var n = arguments.length, a = new Array(n), i = 0; i < n; i++)
        a[i] = arguments[i];
      return Wr(e, t, a, r);
    };
  }, U = function(e, t) {
    e = j(e);
    function r() {
      if (e.includes("j"))
        return Ur(e, t);
      var a = g(t);
      return a;
    }
    var n = r();
    return typeof n != "function" && C(`unknown function pointer with signature ${e}: ${t}`), n;
  };
  class Vr extends Error {
  }
  var ve = (e) => {
    var t = Nn(e), r = j(t);
    return et(t), r;
  }, _t = (e, t) => {
    var r = [], n = {};
    function a(i) {
      if (!n[i] && !K[i]) {
        if (bt[i]) {
          bt[i].forEach(a);
          return;
        }
        r.push(i), n[i] = !0;
      }
    }
    throw t.forEach(a), new Vr(`${e}: ` + r.map(ve).join([", "]));
  }, kr = (e, t, r, n, a, i, u, s, l, d, h, p, w) => {
    h = j(h), i = U(a, i), s && (s = U(u, s)), d && (d = U(l, d)), w = U(p, w);
    var b = Ar(h);
    le(b, function() {
      _t(`Cannot construct ${h} due to unbound types`, [n]);
    }), tt([e, t, r], n ? [n] : [], (_) => {
      _ = _[0];
      var S, A;
      n ? (S = _.registeredClass, A = S.instancePrototype) : A = Tt.prototype;
      var I = Ut(h, function() {
        if (Object.getPrototypeOf(this) !== X)
          throw new ft(`Use 'new' to construct ${h}`);
        if (L.constructor_body === void 0)
          throw new ft(`${h} has no accessible constructor`);
        for (var Oe = arguments.length, xt = new Array(Oe), At = 0; At < Oe; At++)
          xt[At] = arguments[At];
        var xe = L.constructor_body[xt.length];
        if (xe === void 0)
          throw new ft(`Tried to invoke ctor of ${h} with invalid number of parameters (${xt.length}) - expected (${Object.keys(L.constructor_body).toString()}) parameters instead!`);
        return xe.apply(this, xt);
      }), X = Object.create(A, {
        constructor: {
          value: I
        }
      });
      I.prototype = X;
      var L = new Sr(h, I, X, w, S, i, s, d);
      if (L.baseClass) {
        var W, Ot;
        (Ot = (W = L.baseClass).__derivedClasses) !== null && Ot !== void 0 || (W.__derivedClasses = []), L.baseClass.__derivedClasses.push(L);
      }
      var Ra = new Et(h, L, !0, !1, !1), Ee = new Et(h + "*", L, !1, !1, !1), _e = new Et(h + " const*", L, !1, !0, !1);
      return ue[e] = {
        pointerType: Ee,
        constPointerType: _e
      }, de(b, I), [Ra, Ee, _e];
    });
  }, kt = (e, t) => {
    for (var r = [], n = 0; n < e; n++)
      r.push(P[t + n * 4 >> 2]);
    return r;
  };
  function Hr(e) {
    for (var t = 1; t < e.length; ++t)
      if (e[t] !== null && e[t].destructorFunction === void 0)
        return !0;
    return !1;
  }
  function Ht(e, t, r, n, a, i) {
    var u = t.length;
    u < 2 && C("argTypes array size mismatch! Must at least get return value and 'this' types!");
    var s = t[1] !== null && r !== null, l = Hr(t), d = t[0].name !== "void", h = u - 2, p = new Array(h), w = [], b = [], _ = function() {
      b.length = 0;
      var S;
      w.length = s ? 2 : 1, w[0] = a, s && (S = t[1].toWireType(b, this), w[1] = S);
      for (var A = 0; A < h; ++A)
        p[A] = t[A + 2].toWireType(b, A < 0 || arguments.length <= A ? void 0 : arguments[A]), w.push(p[A]);
      var I = n(...w);
      function X(L) {
        if (l)
          Lt(b);
        else
          for (var W = s ? 1 : 2; W < t.length; W++) {
            var Ot = W === 1 ? S : p[W - 2];
            t[W].destructorFunction !== null && t[W].destructorFunction(Ot);
          }
        if (d)
          return t[0].fromWireType(L);
      }
      return X(I);
    };
    return Ut(e, _);
  }
  var Nr = (e, t, r, n, a, i) => {
    var u = kt(t, r);
    a = U(n, a), tt([], [e], (s) => {
      s = s[0];
      var l = `constructor ${s.name}`;
      if (s.registeredClass.constructor_body === void 0 && (s.registeredClass.constructor_body = []), s.registeredClass.constructor_body[t - 1] !== void 0)
        throw new ft(`Cannot register multiple constructors with identical number of parameters (${t - 1}) for class '${s.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
      return s.registeredClass.constructor_body[t - 1] = () => {
        _t(`Cannot construct ${s.name} due to unbound types`, u);
      }, tt([], u, (d) => (d.splice(1, 0, null), s.registeredClass.constructor_body[t - 1] = Ht(l, d, null, a, i), [])), [];
    });
  }, ye = (e) => {
    e = e.trim();
    const t = e.indexOf("(");
    return t === -1 ? e : e.slice(0, t);
  }, zr = (e, t, r, n, a, i, u, s, l, d) => {
    var h = kt(r, n);
    t = j(t), t = ye(t), i = U(a, i), tt([], [e], (p) => {
      p = p[0];
      var w = `${p.name}.${t}`;
      t.startsWith("@@") && (t = Symbol[t.substring(2)]), s && p.registeredClass.pureVirtualFunctions.push(t);
      function b() {
        _t(`Cannot call ${w} due to unbound types`, h);
      }
      var _ = p.registeredClass.instancePrototype, S = _[t];
      return S === void 0 || S.overloadTable === void 0 && S.className !== p.name && S.argCount === r - 2 ? (b.argCount = r - 2, b.className = p.name, _[t] = b) : (ce(_, t, w), _[t].overloadTable[r - 2] = b), tt([], h, (A) => {
        var I = Ht(w, A, p, i, u);
        return _[t].overloadTable === void 0 ? (I.argCount = r - 2, _[t] = I) : _[t].overloadTable[r - 2] = I, [];
      }), [];
    });
  }, Nt = [], z = [], zt = (e) => {
    e > 9 && --z[e + 1] === 0 && (z[e] = void 0, Nt.push(e));
  }, Gr = () => z.length / 2 - 5 - Nt.length, Xr = () => {
    z.push(0, 1, void 0, 1, null, 1, !0, 1, !1, 1), c.count_emval_handles = Gr;
  }, G = {
    toValue: (e) => (e || C(`Cannot use deleted val. handle = ${e}`), z[e]),
    toHandle: (e) => {
      switch (e) {
        case void 0:
          return 2;
        case null:
          return 4;
        case !0:
          return 6;
        case !1:
          return 8;
        default: {
          const t = Nt.pop() || z.length;
          return z[t] = e, z[t + 1] = 1, t;
        }
      }
    }
  }, me = {
    name: "emscripten::val",
    fromWireType: (e) => {
      var t = G.toValue(e);
      return zt(e), t;
    },
    toWireType: (e, t) => G.toHandle(t),
    argPackAdvance: N,
    readValueFromPointer: lt,
    destructorFunction: null
  }, qr = (e) => V(e, me), Yr = (e, t) => {
    switch (t) {
      case 4:
        return function(r) {
          return this.fromWireType(Kt[r >> 2]);
        };
      case 8:
        return function(r) {
          return this.fromWireType(te[r >> 3]);
        };
      default:
        throw new TypeError(`invalid float width (${t}): ${e}`);
    }
  }, Zr = (e, t, r) => {
    t = j(t), V(e, {
      name: t,
      fromWireType: (n) => n,
      toWireType: (n, a) => a,
      argPackAdvance: N,
      readValueFromPointer: Yr(t, r),
      destructorFunction: null
    });
  }, Qr = (e, t, r, n, a, i, u, s) => {
    var l = kt(t, r);
    e = j(e), e = ye(e), a = U(n, a), le(e, function() {
      _t(`Cannot call ${e} due to unbound types`, l);
    }, t - 1), tt([], l, (d) => {
      var h = [d[0], null].concat(d.slice(1));
      return de(e, Ht(e, h, null, a, i), t - 1), [];
    });
  }, Jr = (e, t, r) => {
    switch (t) {
      case 1:
        return r ? (n) => Q[n] : (n) => B[n];
      case 2:
        return r ? (n) => ut[n >> 1] : (n) => vt[n >> 1];
      case 4:
        return r ? (n) => at[n >> 2] : (n) => P[n >> 2];
      default:
        throw new TypeError(`invalid integer width (${t}): ${e}`);
    }
  }, Kr = (e, t, r, n, a) => {
    t = j(t);
    var i = (h) => h;
    if (n === 0) {
      var u = 32 - 8 * r;
      i = (h) => h << u >>> u;
    }
    var s = t.includes("unsigned"), l = (h, p) => {
    }, d;
    s ? d = function(h, p) {
      return l(p, this.name), p >>> 0;
    } : d = function(h, p) {
      return l(p, this.name), p;
    }, V(e, {
      name: t,
      fromWireType: i,
      toWireType: d,
      argPackAdvance: N,
      readValueFromPointer: Jr(t, r, n !== 0),
      destructorFunction: null
    });
  }, tn = (e, t, r) => {
    var n = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array], a = n[t];
    function i(u) {
      var s = P[u >> 2], l = P[u + 4 >> 2];
      return new a(Q.buffer, l, s);
    }
    r = j(r), V(e, {
      name: r,
      fromWireType: i,
      argPackAdvance: N,
      readValueFromPointer: i
    }, {
      ignoreDuplicateRegistrations: !0
    });
  }, en = Object.assign({
    optional: !0
  }, me), rn = (e, t) => {
    V(e, en);
  }, nn = (e, t, r, n) => {
    if (!(n > 0)) return 0;
    for (var a = r, i = r + n - 1, u = 0; u < e.length; ++u) {
      var s = e.charCodeAt(u);
      if (s >= 55296 && s <= 57343) {
        var l = e.charCodeAt(++u);
        s = 65536 + ((s & 1023) << 10) | l & 1023;
      }
      if (s <= 127) {
        if (r >= i) break;
        t[r++] = s;
      } else if (s <= 2047) {
        if (r + 1 >= i) break;
        t[r++] = 192 | s >> 6, t[r++] = 128 | s & 63;
      } else if (s <= 65535) {
        if (r + 2 >= i) break;
        t[r++] = 224 | s >> 12, t[r++] = 128 | s >> 6 & 63, t[r++] = 128 | s & 63;
      } else {
        if (r + 3 >= i) break;
        t[r++] = 240 | s >> 18, t[r++] = 128 | s >> 12 & 63, t[r++] = 128 | s >> 6 & 63, t[r++] = 128 | s & 63;
      }
    }
    return t[r] = 0, r - a;
  }, it = (e, t, r) => nn(e, B, t, r), ge = (e) => {
    for (var t = 0, r = 0; r < e.length; ++r) {
      var n = e.charCodeAt(r);
      n <= 127 ? t++ : n <= 2047 ? t += 2 : n >= 55296 && n <= 57343 ? (t += 4, ++r) : t += 3;
    }
    return t;
  }, we = typeof TextDecoder < "u" ? new TextDecoder() : void 0, $e = function(e) {
    let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : NaN;
    for (var n = t + r, a = t; e[a] && !(a >= n); ) ++a;
    if (a - t > 16 && e.buffer && we)
      return we.decode(e.subarray(t, a));
    for (var i = ""; t < a; ) {
      var u = e[t++];
      if (!(u & 128)) {
        i += String.fromCharCode(u);
        continue;
      }
      var s = e[t++] & 63;
      if ((u & 224) == 192) {
        i += String.fromCharCode((u & 31) << 6 | s);
        continue;
      }
      var l = e[t++] & 63;
      if ((u & 240) == 224 ? u = (u & 15) << 12 | s << 6 | l : u = (u & 7) << 18 | s << 12 | l << 6 | e[t++] & 63, u < 65536)
        i += String.fromCharCode(u);
      else {
        var d = u - 65536;
        i += String.fromCharCode(55296 | d >> 10, 56320 | d & 1023);
      }
    }
    return i;
  }, an = (e, t) => e ? $e(B, e, t) : "", on = (e, t) => {
    t = j(t), V(e, {
      name: t,
      fromWireType(r) {
        for (var n = P[r >> 2], a = r + 4, i, s, u = a, s = 0; s <= n; ++s) {
          var l = a + s;
          if (s == n || B[l] == 0) {
            var d = l - u, h = an(u, d);
            i === void 0 ? i = h : (i += "\0", i += h), u = l + 1;
          }
        }
        return et(r), i;
      },
      toWireType(r, n) {
        n instanceof ArrayBuffer && (n = new Uint8Array(n));
        var a, i = typeof n == "string";
        i || ArrayBuffer.isView(n) && n.BYTES_PER_ELEMENT == 1 || C("Cannot pass non-string to std::string"), i ? a = ge(n) : a = n.length;
        var u = Pe(4 + a + 1), s = u + 4;
        return P[u >> 2] = a, i ? it(n, s, a + 1) : B.set(n, s), r !== null && r.push(et, u), u;
      },
      argPackAdvance: N,
      readValueFromPointer: lt,
      destructorFunction(r) {
        et(r);
      }
    });
  }, be = typeof TextDecoder < "u" ? new TextDecoder("utf-16le") : void 0, sn = (e, t) => {
    for (var r = e, n = r >> 1, a = n + t / 2; !(n >= a) && vt[n]; ) ++n;
    if (r = n << 1, r - e > 32 && be) return be.decode(B.subarray(e, r));
    for (var i = "", u = 0; !(u >= t / 2); ++u) {
      var s = ut[e + u * 2 >> 1];
      if (s == 0) break;
      i += String.fromCharCode(s);
    }
    return i;
  }, un = (e, t, r) => {
    if (r != null || (r = 2147483647), r < 2) return 0;
    r -= 2;
    for (var n = t, a = r < e.length * 2 ? r / 2 : e.length, i = 0; i < a; ++i) {
      var u = e.charCodeAt(i);
      ut[t >> 1] = u, t += 2;
    }
    return ut[t >> 1] = 0, t - n;
  }, cn = (e) => e.length * 2, ln = (e, t) => {
    for (var r = 0, n = ""; !(r >= t / 4); ) {
      var a = at[e + r * 4 >> 2];
      if (a == 0) break;
      if (++r, a >= 65536) {
        var i = a - 65536;
        n += String.fromCharCode(55296 | i >> 10, 56320 | i & 1023);
      } else
        n += String.fromCharCode(a);
    }
    return n;
  }, fn = (e, t, r) => {
    if (r != null || (r = 2147483647), r < 4) return 0;
    for (var n = t, a = n + r - 4, i = 0; i < e.length; ++i) {
      var u = e.charCodeAt(i);
      if (u >= 55296 && u <= 57343) {
        var s = e.charCodeAt(++i);
        u = 65536 + ((u & 1023) << 10) | s & 1023;
      }
      if (at[t >> 2] = u, t += 4, t + 4 > a) break;
    }
    return at[t >> 2] = 0, t - n;
  }, dn = (e) => {
    for (var t = 0, r = 0; r < e.length; ++r) {
      var n = e.charCodeAt(r);
      n >= 55296 && n <= 57343 && ++r, t += 4;
    }
    return t;
  }, hn = (e, t, r) => {
    r = j(r);
    var n, a, i, u;
    t === 2 ? (n = sn, a = un, u = cn, i = (s) => vt[s >> 1]) : t === 4 && (n = ln, a = fn, u = dn, i = (s) => P[s >> 2]), V(e, {
      name: r,
      fromWireType: (s) => {
        for (var l = P[s >> 2], d, h = s + 4, p = 0; p <= l; ++p) {
          var w = s + 4 + p * t;
          if (p == l || i(w) == 0) {
            var b = w - h, _ = n(h, b);
            d === void 0 ? d = _ : (d += "\0", d += _), h = w + t;
          }
        }
        return et(s), d;
      },
      toWireType: (s, l) => {
        typeof l != "string" && C(`Cannot pass non-string to C++ string type ${r}`);
        var d = u(l), h = Pe(4 + d + t);
        return P[h >> 2] = d / t, a(l, h + 4, d + t), s !== null && s.push(et, h), h;
      },
      argPackAdvance: N,
      readValueFromPointer: lt,
      destructorFunction(s) {
        et(s);
      }
    });
  }, pn = (e, t, r, n, a, i) => {
    $t[e] = {
      name: j(t),
      rawConstructor: U(r, n),
      rawDestructor: U(a, i),
      fields: []
    };
  }, vn = (e, t, r, n, a, i, u, s, l, d) => {
    $t[e].fields.push({
      fieldName: j(t),
      getterReturnType: r,
      getter: U(n, a),
      getterContext: i,
      setterArgumentType: u,
      setter: U(s, l),
      setterContext: d
    });
  }, yn = (e, t) => {
    t = j(t), V(e, {
      isVoid: !0,
      name: t,
      argPackAdvance: 0,
      fromWireType: () => {
      },
      toWireType: (r, n) => {
      }
    });
  }, Gt = [], mn = (e, t, r, n) => (e = Gt[e], t = G.toValue(t), e(null, t, r, n)), gn = {}, wn = (e) => {
    var t = gn[e];
    return t === void 0 ? j(e) : t;
  }, Ce = () => {
    if (typeof globalThis == "object")
      return globalThis;
    function e(t) {
      t.$$$embind_global$$$ = t;
      var r = typeof $$$embind_global$$$ == "object" && t.$$$embind_global$$$ == t;
      return r || delete t.$$$embind_global$$$, r;
    }
    if (typeof $$$embind_global$$$ == "object" || (typeof global == "object" && e(global) ? $$$embind_global$$$ = global : typeof self == "object" && e(self) && ($$$embind_global$$$ = self), typeof $$$embind_global$$$ == "object"))
      return $$$embind_global$$$;
    throw Error("unable to get global object.");
  }, $n = (e) => e === 0 ? G.toHandle(Ce()) : (e = wn(e), G.toHandle(Ce()[e])), bn = (e) => {
    var t = Gt.length;
    return Gt.push(e), t;
  }, Te = (e, t) => {
    var r = K[e];
    return r === void 0 && C(`${t} has unknown type ${ve(e)}`), r;
  }, Cn = (e, t) => {
    for (var r = new Array(e), n = 0; n < e; ++n)
      r[n] = Te(P[t + n * 4 >> 2], `parameter ${n}`);
    return r;
  }, Tn = (e, t, r) => {
    var n = [], a = e.toWireType(n, r);
    return n.length && (P[t >> 2] = G.toHandle(n)), a;
  }, Pn = Reflect.construct, En = (e, t, r) => {
    var n = Cn(e, t), a = n.shift();
    e--;
    var i = new Array(e), u = (l, d, h, p) => {
      for (var w = 0, b = 0; b < e; ++b)
        i[b] = n[b].readValueFromPointer(p + w), w += n[b].argPackAdvance;
      var _ = r === 1 ? Pn(d, i) : d.apply(l, i);
      return Tn(a, h, _);
    }, s = `methodCaller<(${n.map((l) => l.name).join(", ")}) => ${a.name}>`;
    return bn(Ut(s, u));
  }, _n = (e) => {
    e > 9 && (z[e + 1] += 1);
  }, On = (e) => {
    var t = G.toValue(e);
    Lt(t), zt(e);
  }, xn = (e, t) => {
    e = Te(e, "_emval_take_value");
    var r = e.readValueFromPointer(t);
    return G.toHandle(r);
  }, An = (e, t, r, n) => {
    var a = (/* @__PURE__ */ new Date()).getFullYear(), i = new Date(a, 0, 1), u = new Date(a, 6, 1), s = i.getTimezoneOffset(), l = u.getTimezoneOffset(), d = Math.max(s, l);
    P[e >> 2] = d * 60, at[t >> 2] = +(s != l);
    var h = (b) => {
      var _ = b >= 0 ? "-" : "+", S = Math.abs(b), A = String(Math.floor(S / 60)).padStart(2, "0"), I = String(S % 60).padStart(2, "0");
      return `UTC${_}${A}${I}`;
    }, p = h(s), w = h(l);
    l < s ? (it(p, r, 17), it(w, n, 17)) : (it(p, n, 17), it(w, r, 17));
  }, Sn = () => 2147483648, In = (e, t) => Math.ceil(e / t) * t, Dn = (e) => {
    var t = nt.buffer, r = (e - t.byteLength + 65535) / 65536 | 0;
    try {
      return nt.grow(r), ee(), 1;
    } catch {
    }
  }, Mn = (e) => {
    var t = B.length;
    e >>>= 0;
    var r = Sn();
    if (e > r)
      return !1;
    for (var n = 1; n <= 4; n *= 2) {
      var a = t * (1 + 0.2 / n);
      a = Math.min(a, e + 100663296);
      var i = Math.min(r, In(Math.max(e, a), 65536)), u = Dn(i);
      if (u)
        return !0;
    }
    return !1;
  }, Xt = {}, Fn = () => M || "./this.program", ht = () => {
    if (!ht.strings) {
      var e = (typeof navigator == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8", t = {
        USER: "web_user",
        LOGNAME: "web_user",
        PATH: "/",
        PWD: "/",
        HOME: "/home/web_user",
        LANG: e,
        _: Fn()
      };
      for (var r in Xt)
        Xt[r] === void 0 ? delete t[r] : t[r] = Xt[r];
      var n = [];
      for (var r in t)
        n.push(`${r}=${t[r]}`);
      ht.strings = n;
    }
    return ht.strings;
  }, jn = (e, t) => {
    var r = 0, n = 0;
    for (var a of ht()) {
      var i = t + r;
      P[e + n >> 2] = i, r += it(a, i, 1 / 0) + 1, n += 4;
    }
    return 0;
  }, Rn = (e, t) => {
    var r = ht();
    P[e >> 2] = r.length;
    var n = 0;
    for (var a of r)
      n += ge(a) + 1;
    return P[t >> 2] = n, 0;
  }, Ln = (e) => 52;
  function Bn(e, t, r, n, a) {
    return 70;
  }
  var Wn = [null, [], []], Un = (e, t) => {
    var r = Wn[e];
    t === 0 || t === 10 ? ((e === 1 ? st : k)($e(r)), r.length = 0) : r.push(t);
  }, Vn = (e, t, r, n) => {
    for (var a = 0, i = 0; i < r; i++) {
      var u = P[t >> 2], s = P[t + 4 >> 2];
      t += 8;
      for (var l = 0; l < s; l++)
        Un(e, B[u + l]);
      a += s;
    }
    return P[n >> 2] = a, 0;
  }, kn = (e) => e;
  br(), _r(), Br(), Xr(), c.noExitRuntime && c.noExitRuntime, c.print && (st = c.print), c.printErr && (k = c.printErr), c.wasmBinary && (Z = c.wasmBinary), c.arguments && c.arguments, c.thisProgram && (M = c.thisProgram);
  var Hn = {
    s: ur,
    w: cr,
    a: lr,
    j: fr,
    m: dr,
    N: hr,
    p: pr,
    da: vr,
    d: yr,
    _: mr,
    sa: wr,
    Z: $r,
    na: Tr,
    qa: kr,
    pa: Nr,
    F: zr,
    la: qr,
    R: Zr,
    S: Qr,
    y: Kr,
    t: tn,
    ra: rn,
    ma: on,
    O: hn,
    K: pn,
    ta: vn,
    oa: yn,
    V: mn,
    ua: zt,
    wa: $n,
    $: En,
    T: _n,
    va: On,
    ka: xn,
    aa: An,
    ea: Mn,
    ba: jn,
    ca: Rn,
    fa: Ln,
    X: Bn,
    Q: Vn,
    I: ba,
    C: Ta,
    U: oa,
    P: Sa,
    q: ma,
    b: ea,
    D: $a,
    ia: Ea,
    c: na,
    ha: _a,
    h: aa,
    i: la,
    r: da,
    M: wa,
    v: pa,
    E: ya,
    J: ga,
    A: Pa,
    H: Ia,
    W: Fa,
    k: sa,
    f: ia,
    e: ra,
    g: ta,
    L: Aa,
    l: ca,
    ja: Ca,
    o: ha,
    x: fa,
    u: va,
    ga: xa,
    B: Oa,
    n: ua,
    G: Da,
    Y: Ma,
    z: kn
  }, E = await or();
  E.ya;
  var Nn = E.za, et = c._free = E.Aa, Pe = c._malloc = E.Ca, zn = E.Da, v = E.Ea, Gn = E.Fa, Xn = E.Ga, qn = E.Ha, Yn = E.Ia, Zn = E.Ja, Qn = E.Ka;
  c.dynCall_viijii = E.La;
  var Jn = c.dynCall_vij = E.Ma;
  c.dynCall_jiji = E.Na;
  var Kn = c.dynCall_jiiii = E.Oa;
  c.dynCall_iiiiij = E.Pa, c.dynCall_iiiiijj = E.Qa, c.dynCall_iiiiiijj = E.Ra;
  function ta(e, t, r, n) {
    var a = m();
    try {
      g(e)(t, r, n);
    } catch (i) {
      if (y(a), i !== i + 0) throw i;
      v(1, 0);
    }
  }
  function ea(e, t) {
    var r = m();
    try {
      return g(e)(t);
    } catch (n) {
      if (y(r), n !== n + 0) throw n;
      v(1, 0);
    }
  }
  function ra(e, t, r) {
    var n = m();
    try {
      g(e)(t, r);
    } catch (a) {
      if (y(n), a !== a + 0) throw a;
      v(1, 0);
    }
  }
  function na(e, t, r) {
    var n = m();
    try {
      return g(e)(t, r);
    } catch (a) {
      if (y(n), a !== a + 0) throw a;
      v(1, 0);
    }
  }
  function aa(e, t, r, n) {
    var a = m();
    try {
      return g(e)(t, r, n);
    } catch (i) {
      if (y(a), i !== i + 0) throw i;
      v(1, 0);
    }
  }
  function oa(e, t, r, n, a) {
    var i = m();
    try {
      return g(e)(t, r, n, a);
    } catch (u) {
      if (y(i), u !== u + 0) throw u;
      v(1, 0);
    }
  }
  function ia(e, t) {
    var r = m();
    try {
      g(e)(t);
    } catch (n) {
      if (y(r), n !== n + 0) throw n;
      v(1, 0);
    }
  }
  function sa(e) {
    var t = m();
    try {
      g(e)();
    } catch (r) {
      if (y(t), r !== r + 0) throw r;
      v(1, 0);
    }
  }
  function ua(e, t, r, n, a, i, u, s, l, d, h) {
    var p = m();
    try {
      g(e)(t, r, n, a, i, u, s, l, d, h);
    } catch (w) {
      if (y(p), w !== w + 0) throw w;
      v(1, 0);
    }
  }
  function ca(e, t, r, n, a) {
    var i = m();
    try {
      g(e)(t, r, n, a);
    } catch (u) {
      if (y(i), u !== u + 0) throw u;
      v(1, 0);
    }
  }
  function la(e, t, r, n, a) {
    var i = m();
    try {
      return g(e)(t, r, n, a);
    } catch (u) {
      if (y(i), u !== u + 0) throw u;
      v(1, 0);
    }
  }
  function fa(e, t, r, n, a, i, u) {
    var s = m();
    try {
      g(e)(t, r, n, a, i, u);
    } catch (l) {
      if (y(s), l !== l + 0) throw l;
      v(1, 0);
    }
  }
  function da(e, t, r, n, a, i) {
    var u = m();
    try {
      return g(e)(t, r, n, a, i);
    } catch (s) {
      if (y(u), s !== s + 0) throw s;
      v(1, 0);
    }
  }
  function ha(e, t, r, n, a, i) {
    var u = m();
    try {
      g(e)(t, r, n, a, i);
    } catch (s) {
      if (y(u), s !== s + 0) throw s;
      v(1, 0);
    }
  }
  function pa(e, t, r, n, a, i, u) {
    var s = m();
    try {
      return g(e)(t, r, n, a, i, u);
    } catch (l) {
      if (y(s), l !== l + 0) throw l;
      v(1, 0);
    }
  }
  function va(e, t, r, n, a, i, u, s) {
    var l = m();
    try {
      g(e)(t, r, n, a, i, u, s);
    } catch (d) {
      if (y(l), d !== d + 0) throw d;
      v(1, 0);
    }
  }
  function ya(e, t, r, n, a, i, u, s) {
    var l = m();
    try {
      return g(e)(t, r, n, a, i, u, s);
    } catch (d) {
      if (y(l), d !== d + 0) throw d;
      v(1, 0);
    }
  }
  function ma(e) {
    var t = m();
    try {
      return g(e)();
    } catch (r) {
      if (y(t), r !== r + 0) throw r;
      v(1, 0);
    }
  }
  function ga(e, t, r, n, a, i, u, s, l) {
    var d = m();
    try {
      return g(e)(t, r, n, a, i, u, s, l);
    } catch (h) {
      if (y(d), h !== h + 0) throw h;
      v(1, 0);
    }
  }
  function wa(e, t, r, n, a, i, u) {
    var s = m();
    try {
      return g(e)(t, r, n, a, i, u);
    } catch (l) {
      if (y(s), l !== l + 0) throw l;
      v(1, 0);
    }
  }
  function $a(e, t, r, n) {
    var a = m();
    try {
      return g(e)(t, r, n);
    } catch (i) {
      if (y(a), i !== i + 0) throw i;
      v(1, 0);
    }
  }
  function ba(e, t, r, n) {
    var a = m();
    try {
      return g(e)(t, r, n);
    } catch (i) {
      if (y(a), i !== i + 0) throw i;
      v(1, 0);
    }
  }
  function Ca(e, t, r, n, a, i, u, s) {
    var l = m();
    try {
      g(e)(t, r, n, a, i, u, s);
    } catch (d) {
      if (y(l), d !== d + 0) throw d;
      v(1, 0);
    }
  }
  function Ta(e, t, r, n, a, i) {
    var u = m();
    try {
      return g(e)(t, r, n, a, i);
    } catch (s) {
      if (y(u), s !== s + 0) throw s;
      v(1, 0);
    }
  }
  function Pa(e, t, r, n, a, i, u, s, l, d) {
    var h = m();
    try {
      return g(e)(t, r, n, a, i, u, s, l, d);
    } catch (p) {
      if (y(h), p !== p + 0) throw p;
      v(1, 0);
    }
  }
  function Ea(e, t, r) {
    var n = m();
    try {
      return g(e)(t, r);
    } catch (a) {
      if (y(n), a !== a + 0) throw a;
      v(1, 0);
    }
  }
  function _a(e, t, r, n, a) {
    var i = m();
    try {
      return g(e)(t, r, n, a);
    } catch (u) {
      if (y(i), u !== u + 0) throw u;
      v(1, 0);
    }
  }
  function Oa(e, t, r, n, a, i, u, s, l, d) {
    var h = m();
    try {
      g(e)(t, r, n, a, i, u, s, l, d);
    } catch (p) {
      if (y(h), p !== p + 0) throw p;
      v(1, 0);
    }
  }
  function xa(e, t, r, n, a, i, u, s, l) {
    var d = m();
    try {
      g(e)(t, r, n, a, i, u, s, l);
    } catch (h) {
      if (y(d), h !== h + 0) throw h;
      v(1, 0);
    }
  }
  function Aa(e, t, r, n, a, i, u) {
    var s = m();
    try {
      g(e)(t, r, n, a, i, u);
    } catch (l) {
      if (y(s), l !== l + 0) throw l;
      v(1, 0);
    }
  }
  function Sa(e, t, r, n) {
    var a = m();
    try {
      return g(e)(t, r, n);
    } catch (i) {
      if (y(a), i !== i + 0) throw i;
      v(1, 0);
    }
  }
  function Ia(e, t, r, n, a, i, u, s, l, d, h, p) {
    var w = m();
    try {
      return g(e)(t, r, n, a, i, u, s, l, d, h, p);
    } catch (b) {
      if (y(w), b !== b + 0) throw b;
      v(1, 0);
    }
  }
  function Da(e, t, r, n, a, i, u, s, l, d, h, p, w, b, _, S) {
    var A = m();
    try {
      g(e)(t, r, n, a, i, u, s, l, d, h, p, w, b, _, S);
    } catch (I) {
      if (y(A), I !== I + 0) throw I;
      v(1, 0);
    }
  }
  function Ma(e, t, r, n) {
    var a = m();
    try {
      Jn(e, t, r, n);
    } catch (i) {
      if (y(a), i !== i + 0) throw i;
      v(1, 0);
    }
  }
  function Fa(e, t, r, n, a) {
    var i = m();
    try {
      return Kn(e, t, r, n, a);
    } catch (u) {
      if (y(i), u !== u + 0) throw u;
      v(1, 0);
    }
  }
  function qt() {
    if (J > 0) {
      ct = qt;
      return;
    }
    if (qe(), J > 0) {
      ct = qt;
      return;
    }
    function e() {
      var t;
      c.calledRun = !0, !Jt && (Ye(), T(c), (t = c.onRuntimeInitialized) === null || t === void 0 || t.call(c), Ze());
    }
    c.setStatus ? (c.setStatus("Running..."), setTimeout(() => {
      setTimeout(() => c.setStatus(""), 1), e();
    }, 1)) : e();
  }
  function ja() {
    if (c.preInit)
      for (typeof c.preInit == "function" && (c.preInit = [c.preInit]); c.preInit.length > 0; )
        c.preInit.shift()();
  }
  return ja(), qt(), f = x, f;
};
function Be(o) {
  return Le(Qt, o);
}
function Co() {
  return Ka(Qt);
}
function To(o) {
  Be({
    overrides: o,
    equalityFn: Object.is,
    fireImmediately: !1
  });
}
async function eo(o, f) {
  return to(Qt, o, f);
}
const Po = "3c07027dbfd6da47330ac18e74e6924019d9ac9a4c1e161b800666f9e3c925ca", We = [
  ["aztec", "Aztec"],
  ["code_128", "Code128"],
  ["code_39", "Code39"],
  ["code_93", "Code93"],
  ["codabar", "Codabar"],
  ["databar", "DataBar"],
  ["databar_expanded", "DataBarExpanded"],
  ["databar_limited", "DataBarLimited"],
  ["data_matrix", "DataMatrix"],
  ["dx_film_edge", "DXFilmEdge"],
  ["ean_13", "EAN-13"],
  ["ean_8", "EAN-8"],
  ["itf", "ITF"],
  ["maxi_code", "MaxiCode"],
  ["micro_qr_code", "MicroQRCode"],
  ["pdf417", "PDF417"],
  ["qr_code", "QRCode"],
  ["rm_qr_code", "rMQRCode"],
  ["upc_a", "UPC-A"],
  ["upc_e", "UPC-E"],
  ["linear_codes", "Linear-Codes"],
  ["matrix_codes", "Matrix-Codes"],
  ["any", "Any"]
], ro = [...We, ["unknown"]].map((o) => o[0]), Zt = new Map(
  We
);
function no(o) {
  for (const [f, c] of Zt)
    if (o === c)
      return f;
  return "unknown";
}
function ao(o) {
  if (Ue(o))
    return {
      width: o.naturalWidth,
      height: o.naturalHeight
    };
  if (Ve(o))
    return {
      width: o.width.baseVal.value,
      height: o.height.baseVal.value
    };
  if (ke(o))
    return {
      width: o.videoWidth,
      height: o.videoHeight
    };
  if (Ne(o))
    return {
      width: o.width,
      height: o.height
    };
  if (Ge(o))
    return {
      width: o.displayWidth,
      height: o.displayHeight
    };
  if (He(o))
    return {
      width: o.width,
      height: o.height
    };
  if (ze(o))
    return {
      width: o.width,
      height: o.height
    };
  throw new TypeError(
    "The provided value is not of type '(Blob or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or ImageData or OffscreenCanvas or SVGImageElement or VideoFrame)'."
  );
}
function Ue(o) {
  var f, c;
  try {
    return o instanceof ((c = (f = o == null ? void 0 : o.ownerDocument) == null ? void 0 : f.defaultView) == null ? void 0 : c.HTMLImageElement);
  } catch {
    return !1;
  }
}
function Ve(o) {
  var f, c;
  try {
    return o instanceof ((c = (f = o == null ? void 0 : o.ownerDocument) == null ? void 0 : f.defaultView) == null ? void 0 : c.SVGImageElement);
  } catch {
    return !1;
  }
}
function ke(o) {
  var f, c;
  try {
    return o instanceof ((c = (f = o == null ? void 0 : o.ownerDocument) == null ? void 0 : f.defaultView) == null ? void 0 : c.HTMLVideoElement);
  } catch {
    return !1;
  }
}
function He(o) {
  var f, c;
  try {
    return o instanceof ((c = (f = o == null ? void 0 : o.ownerDocument) == null ? void 0 : f.defaultView) == null ? void 0 : c.HTMLCanvasElement);
  } catch {
    return !1;
  }
}
function Ne(o) {
  try {
    return o instanceof ImageBitmap || Object.prototype.toString.call(o) === "[object ImageBitmap]";
  } catch {
    return !1;
  }
}
function ze(o) {
  try {
    return o instanceof OffscreenCanvas || Object.prototype.toString.call(o) === "[object OffscreenCanvas]";
  } catch {
    return !1;
  }
}
function Ge(o) {
  try {
    return o instanceof VideoFrame || Object.prototype.toString.call(o) === "[object VideoFrame]";
  } catch {
    return !1;
  }
}
function oo(o) {
  try {
    return o instanceof Blob || Object.prototype.toString.call(o) === "[object Blob]";
  } catch {
    return !1;
  }
}
function io(o) {
  try {
    return o instanceof ImageData || Object.prototype.toString.call(o) === "[object ImageData]";
  } catch {
    return !1;
  }
}
function so(o, f) {
  try {
    const c = new OffscreenCanvas(o, f);
    if (c.getContext("2d") instanceof OffscreenCanvasRenderingContext2D)
      return c;
    throw void 0;
  } catch {
    const c = document.createElement("canvas");
    return c.width = o, c.height = f, c;
  }
}
async function Xe(o) {
  if (Ue(o) && !await fo(o))
    throw new DOMException(
      "Failed to load or decode HTMLImageElement.",
      "InvalidStateError"
    );
  if (Ve(o) && !await ho(o))
    throw new DOMException(
      "Failed to load or decode SVGImageElement.",
      "InvalidStateError"
    );
  if (Ge(o) && po(o))
    throw new DOMException("VideoFrame is closed.", "InvalidStateError");
  if (ke(o) && (o.readyState === 0 || o.readyState === 1))
    throw new DOMException("Invalid element or state.", "InvalidStateError");
  if (Ne(o) && yo(o))
    throw new DOMException(
      "The image source is detached.",
      "InvalidStateError"
    );
  const { width: f, height: c } = ao(o);
  if (f === 0 || c === 0)
    return null;
  const $ = so(f, c).getContext("2d");
  $.drawImage(o, 0, 0);
  try {
    return $.getImageData(0, 0, f, c);
  } catch {
    throw new DOMException("Source would taint origin.", "SecurityError");
  }
}
async function uo(o) {
  let f;
  try {
    f = await createImageBitmap(o);
  } catch {
    try {
      if (globalThis.Image) {
        f = new Image();
        let $ = "";
        try {
          $ = URL.createObjectURL(o), f.src = $, await f.decode();
        } finally {
          URL.revokeObjectURL($);
        }
      } else
        return o;
    } catch {
      throw new DOMException(
        "Failed to load or decode Blob.",
        "InvalidStateError"
      );
    }
  }
  return await Xe(f);
}
function co(o) {
  const { width: f, height: c } = o;
  if (f === 0 || c === 0)
    return null;
  const T = o.getContext("2d");
  try {
    return T.getImageData(0, 0, f, c);
  } catch {
    throw new DOMException("Source would taint origin.", "SecurityError");
  }
}
async function lo(o) {
  if (oo(o))
    return await uo(o);
  if (io(o)) {
    if (vo(o))
      throw new DOMException(
        "The image data has been detached.",
        "InvalidStateError"
      );
    return o;
  }
  return He(o) || ze(o) ? co(o) : await Xe(o);
}
async function fo(o) {
  try {
    return await o.decode(), !0;
  } catch {
    return !1;
  }
}
async function ho(o) {
  var f;
  try {
    return await ((f = o.decode) == null ? void 0 : f.call(o)), !0;
  } catch {
    return !1;
  }
}
function po(o) {
  return o.format === null;
}
function vo(o) {
  return o.data.buffer.byteLength === 0;
}
function yo(o) {
  return o.width === 0 && o.height === 0;
}
function Re(o, f) {
  return mo(o) ? new DOMException(`${f}: ${o.message}`, o.name) : go(o) ? new o.constructor(`${f}: ${o.message}`) : new Error(`${f}: ${o}`);
}
function mo(o) {
  return o instanceof DOMException || Object.prototype.toString.call(o) === "[object DOMException]";
}
function go(o) {
  return o instanceof Error || Object.prototype.toString.call(o) === "[object Error]";
}
var pt;
class Eo {
  constructor(f = {}) {
    De(this, pt);
    var c;
    try {
      const T = (c = f == null ? void 0 : f.formats) == null ? void 0 : c.filter(
        ($) => $ !== "unknown"
      );
      if ((T == null ? void 0 : T.length) === 0)
        throw new TypeError("Hint option provided, but is empty.");
      for (const $ of T != null ? T : [])
        if (!Zt.has($))
          throw new TypeError(
            `Failed to read the 'formats' property from 'BarcodeDetectorOptions': The provided value '${$}' is not a valid enum value of type BarcodeFormat.`
          );
      Me(this, pt, T != null ? T : []), Be({ fireImmediately: !0 }).catch(() => {
      });
    } catch (T) {
      throw Re(
        T,
        "Failed to construct 'BarcodeDetector'"
      );
    }
  }
  static async getSupportedFormats() {
    return ro.filter((f) => f !== "unknown");
  }
  async detect(f) {
    try {
      const c = await lo(f);
      if (c === null)
        return [];
      let T;
      const $ = {
        tryCode39ExtendedMode: !1,
        textMode: "Plain",
        formats: Ie(this, pt).map((x) => Zt.get(x))
      };
      try {
        T = await eo(c, $);
      } catch (x) {
        throw console.error(x), new DOMException(
          "Barcode detection service unavailable.",
          "NotSupportedError"
        );
      }
      return T.map((x) => {
        const {
          topLeft: { x: D, y: R },
          topRight: { x: O, y: M },
          bottomLeft: { x: F, y: q },
          bottomRight: { x: rt, y: Y }
        } = x.position, st = Math.min(D, O, F, rt), k = Math.min(R, M, q, Y), Z = Math.max(D, O, F, rt), nt = Math.max(R, M, q, Y);
        return {
          boundingBox: new DOMRectReadOnly(
            st,
            k,
            Z - st,
            nt - k
          ),
          rawValue: x.text,
          format: no(x.format),
          cornerPoints: [
            {
              x: D,
              y: R
            },
            {
              x: O,
              y: M
            },
            {
              x: rt,
              y: Y
            },
            {
              x: F,
              y: q
            }
          ]
        };
      });
    } catch (c) {
      throw Re(
        c,
        "Failed to execute 'detect' on 'BarcodeDetector'"
      );
    }
  }
}
pt = new WeakMap();
export {
  Eo as BarcodeDetector,
  bo as ZXING_CPP_COMMIT,
  Po as ZXING_WASM_SHA256,
  $o as ZXING_WASM_VERSION,
  Be as prepareZXingModule,
  Co as purgeZXingModule,
  To as setZXingModuleOverrides
};