function f(e) {
  return (n) => typeof n === e;
}
var c = f("function"), y = (e) => e === null, i = (e) => Object.prototype.toString.call(e).slice(8, -1) === "RegExp", a = (e) => !p(e) && !y(e) && (c(e) || typeof e == "object"), p = f("undefined");
function b(e, n) {
  const { length: r } = e;
  if (r !== n.length)
    return !1;
  for (let u = r; u-- !== 0; )
    if (!o(e[u], n[u]))
      return !1;
  return !0;
}
function l(e, n) {
  if (e.byteLength !== n.byteLength)
    return !1;
  const r = new DataView(e.buffer), u = new DataView(n.buffer);
  let t = e.byteLength;
  for (; t--; )
    if (r.getUint8(t) !== u.getUint8(t))
      return !1;
  return !0;
}
function O(e, n) {
  if (e.size !== n.size)
    return !1;
  for (const r of e.entries())
    if (!n.has(r[0]))
      return !1;
  for (const r of e.entries())
    if (!o(r[1], n.get(r[0])))
      return !1;
  return !0;
}
function d(e, n) {
  if (e.size !== n.size)
    return !1;
  for (const r of e.entries())
    if (!n.has(r[0]))
      return !1;
  return !0;
}
function o(e, n) {
  if (e === n)
    return !0;
  if (e && a(e) && n && a(n)) {
    if (e.constructor !== n.constructor)
      return !1;
    if (Array.isArray(e) && Array.isArray(n))
      return b(e, n);
    if (e instanceof Map && n instanceof Map)
      return O(e, n);
    if (e instanceof Set && n instanceof Set)
      return d(e, n);
    if (ArrayBuffer.isView(e) && ArrayBuffer.isView(n))
      return l(e, n);
    if (i(e) && i(n))
      return e.source === n.source && e.flags === n.flags;
    if (e.valueOf !== Object.prototype.valueOf)
      return e.valueOf() === n.valueOf();
    if (e.toString !== Object.prototype.toString)
      return e.toString() === n.toString();
    const r = Object.keys(e), u = Object.keys(n);
    if (r.length !== u.length)
      return !1;
    for (let t = r.length; t-- !== 0; )
      if (!Object.prototype.hasOwnProperty.call(n, r[t]))
        return !1;
    for (let t = r.length; t-- !== 0; ) {
      const s = r[t];
      if (!(s === "_owner" && e.$$typeof) && !o(e[s], n[s]))
        return !1;
    }
    return !0;
  }
  return Number.isNaN(e) && Number.isNaN(n) ? !0 : e === n;
}
export {
  o as default
};
//# sourceMappingURL=index.js.map
