{"version":3,"file":"index.mjs","sources":["../../../node_modules/murmurhash/murmurhash.js"],"sourcesContent":["(function(){\n  const _global = this;\n\n  const createBuffer = (val) => new TextEncoder().encode(val)\n\n  /**\n   * JS Implementation of MurmurHash2\n   *\n   * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n   * @see http://github.com/garycourt/murmurhash-js\n   * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\n   * @see http://sites.google.com/site/murmurhash/\n   *\n   * @param {Uint8Array | string} str ASCII only\n   * @param {number} seed Positive integer only\n   * @return {number} 32-bit positive integer hash\n   */\n  function MurmurHashV2(str, seed) {\n    if (typeof str === 'string') str = createBuffer(str);\n    let\n      l = str.length,\n      h = seed ^ l,\n      i = 0,\n      k;\n\n    while (l >= 4) {\n      k =\n        ((str[i] & 0xff)) |\n        ((str[++i] & 0xff) << 8) |\n        ((str[++i] & 0xff) << 16) |\n        ((str[++i] & 0xff) << 24);\n\n      k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n      k ^= k >>> 24;\n      k = (((k & 0xffff) * 0x5bd1e995) + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n\n    h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^ k;\n\n      l -= 4;\n      ++i;\n    }\n\n    switch (l) {\n    case 3: h ^= (str[i + 2] & 0xff) << 16;\n    case 2: h ^= (str[i + 1] & 0xff) << 8;\n    case 1: h ^= (str[i] & 0xff);\n            h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n    }\n\n    h ^= h >>> 13;\n    h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));\n    h ^= h >>> 15;\n\n    return h >>> 0;\n  };\n\n  /*\n   * JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)\n   *\n   * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n   * @see http://github.com/garycourt/murmurhash-js\n   * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\n   * @see http://sites.google.com/site/murmurhash/\n   *\n   * @param {Uint8Array | string} key ASCII only\n   * @param {number} seed Positive integer only\n   * @return {number} 32-bit positive integer hash\n   */\n  function MurmurHashV3(key, seed) {\n    if (typeof key === 'string') key = createBuffer(key);\n\n    let remainder, bytes, h1, h1b, c1, c1b, c2, c2b, k1, i;\n\n    remainder = key.length & 3; // key.length % 4\n    bytes = key.length - remainder;\n    h1 = seed;\n    c1 = 0xcc9e2d51;\n    c2 = 0x1b873593;\n    i = 0;\n\n    while (i < bytes) {\n        k1 =\n          ((key[i] & 0xff)) |\n          ((key[++i] & 0xff) << 8) |\n          ((key[++i] & 0xff) << 16) |\n          ((key[++i] & 0xff) << 24);\n      ++i;\n\n      k1 = ((((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16))) & 0xffffffff;\n      k1 = (k1 << 15) | (k1 >>> 17);\n      k1 = ((((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16))) & 0xffffffff;\n\n      h1 ^= k1;\n          h1 = (h1 << 13) | (h1 >>> 19);\n      h1b = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16))) & 0xffffffff;\n      h1 = (((h1b & 0xffff) + 0x6b64) + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16));\n    }\n\n    k1 = 0;\n\n    switch (remainder) {\n      case 3: k1 ^= (key[i + 2] & 0xff) << 16;\n      case 2: k1 ^= (key[i + 1] & 0xff) << 8;\n      case 1: k1 ^= (key[i] & 0xff);\n\n      k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n      k1 = (k1 << 15) | (k1 >>> 17);\n      k1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n      h1 ^= k1;\n    }\n\n    h1 ^= key.length;\n\n    h1 ^= h1 >>> 16;\n    h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;\n    h1 ^= h1 >>> 13;\n    h1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16))) & 0xffffffff;\n    h1 ^= h1 >>> 16;\n\n    return h1 >>> 0;\n  }\n\n  const murmur = MurmurHashV3;\n  murmur.v2 = MurmurHashV2;\n  murmur.v3 = MurmurHashV3;\n\n  if (typeof(module) != 'undefined') {\n    module.exports = murmur;\n  } else {\n    const _previousRoot = _global.murmur;\n    murmur.noConflict = function() {\n      _global.murmur = _previousRoot;\n      return murmur;\n    }\n    _global.murmur = murmur;\n  }\n}());\n"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}