minecraft-renderer 0.1.106 → 0.1.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/lightOwnerWorker.js +9 -0
  2. package/dist/lightOwnerWorker.js.map +7 -0
  3. package/dist/mesher.js +1 -1
  4. package/dist/mesher.js.map +2 -2
  5. package/dist/mesherWasm.js +222 -222
  6. package/dist/minecraft-renderer.js +105 -76
  7. package/dist/minecraft-renderer.js.meta.json +1 -1
  8. package/dist/threeWorker.js +537 -508
  9. package/package.json +1 -1
  10. package/src/bundler/bundlePrepare.test.ts +25 -0
  11. package/src/bundler/bundlePrepare.ts +1 -1
  12. package/src/graphicsBackend/appViewer.ts +15 -0
  13. package/src/graphicsBackend/config.ts +8 -0
  14. package/src/graphicsBackend/rendererDefaultOptions.test.ts +51 -0
  15. package/src/graphicsBackend/rendererDefaultOptions.ts +18 -1
  16. package/src/graphicsBackend/rendererOptionsSync.ts +4 -3
  17. package/src/lib/blockEntityLightRegistry.ts +4 -0
  18. package/src/lib/skyLight.ts +17 -0
  19. package/src/lib/worldrendererCommon.lightOwner.test.ts +916 -0
  20. package/src/lib/worldrendererCommon.removeColumn.test.ts +16 -0
  21. package/src/lib/worldrendererCommon.ts +340 -67
  22. package/src/lighting/cache/rendererLightCache.test.ts +158 -0
  23. package/src/lighting/cache/rendererLightCache.ts +248 -0
  24. package/src/lighting/coordinator/clientLightCoordinator.test.ts +102 -0
  25. package/src/lighting/coordinator/clientLightCoordinator.ts +574 -0
  26. package/src/lighting/debug/clientLightProbe.test.ts +24 -0
  27. package/src/lighting/debug/clientLightProbe.ts +20 -0
  28. package/src/lighting/debug/clientLightTrace.test.ts +271 -0
  29. package/src/lighting/debug/clientLightTrace.ts +335 -0
  30. package/src/lighting/entity/entityLightController.test.ts +216 -0
  31. package/src/lighting/entity/entityLightController.ts +322 -0
  32. package/src/lighting/owner/clientLightOwner.test.ts +467 -0
  33. package/src/lighting/owner/clientLightOwner.ts +523 -0
  34. package/src/lighting/owner/lightOwnerHost.test.ts +78 -0
  35. package/src/lighting/owner/lightOwnerHost.ts +202 -0
  36. package/src/lighting/owner/lightOwnerWorker.ts +154 -0
  37. package/src/lighting/owner/updateLight1171OwnerPath.test.ts +68 -0
  38. package/src/lighting/owner/updateLightToOwnerEvents.ts +49 -0
  39. package/src/lighting/tables/lightTables1171.generated.json +10 -0
  40. package/src/lighting/tables/lightTables1171.test.ts +168 -0
  41. package/src/lighting/tables/lightTables1171.ts +59 -0
  42. package/src/lighting/versioning/clientLightVersions.test.ts +241 -0
  43. package/src/lighting/versioning/clientLightVersions.ts +203 -0
  44. package/src/lighting/versioning/pendingSectionFlush.test.ts +214 -0
  45. package/src/lighting/versioning/pendingSectionFlush.ts +123 -0
  46. package/src/mesher-shared/lightNibblePack.ts +26 -0
  47. package/src/mesher-shared/mcDataWorkerShim.cjs +9 -7
  48. package/src/mesher-shared/modelsGeometryCommon.test.ts +6 -1
  49. package/src/mesher-shared/shared.ts +48 -1
  50. package/src/three/chunkMeshManager.ts +26 -0
  51. package/src/three/entities.ts +97 -8
  52. package/src/three/entity/EntityMesh.ts +1 -0
  53. package/src/three/entity/legWalkAnimation.test.ts +154 -0
  54. package/src/three/entity/legWalkAnimation.ts +193 -0
  55. package/src/three/globalBlockBuffer.ts +94 -2
  56. package/src/three/globalLegacyBuffer.ts +94 -2
  57. package/src/three/graphicsBackendBase.ts +2 -9
  58. package/src/three/modules/clouds.ts +191 -0
  59. package/src/three/modules/index.ts +4 -0
  60. package/src/three/modules/sunMoon.ts +151 -0
  61. package/src/three/skyboxRenderer.ts +15 -8
  62. package/src/three/tests/clouds.test.ts +59 -0
  63. package/src/three/tests/globalBlockBuffer.test.ts +98 -0
  64. package/src/three/tests/globalLegacyBuffer.test.ts +108 -0
  65. package/src/three/tests/waterFog.test.ts +25 -0
  66. package/src/three/waterFog.ts +28 -0
  67. package/src/three/worldRendererThree.ts +84 -39
  68. package/src/wasm-mesher/bridge/render-from-wasm.ts +46 -1
  69. package/src/wasm-mesher/runtime-build/wasm_mesher.d.ts +31 -5
  70. package/src/wasm-mesher/runtime-build/wasm_mesher.js +180 -5
  71. package/src/wasm-mesher/runtime-build/wasm_mesher_bg.wasm +0 -0
  72. package/src/wasm-mesher/runtime-build/wasm_mesher_bg.wasm.d.ts +11 -0
  73. package/src/wasm-mesher/tests/mesherLightDependencies.test.ts +83 -0
  74. package/src/wasm-mesher/tests/mesherWasmColumnTickSelect.test.ts +39 -0
  75. package/src/wasm-mesher/tests/mesherWasmConversionCache.test.ts +30 -1
  76. package/src/wasm-mesher/tests/mesherWasmTickParseCache.test.ts +73 -0
  77. package/src/wasm-mesher/tests/mesherWasmTickSchedule.test.ts +51 -0
  78. package/src/wasm-mesher/tests/mesherWasmTopologyPostCache.test.ts +78 -0
  79. package/src/wasm-mesher/worker/clientLightDarkPublication.probe.test.ts +32 -0
  80. package/src/wasm-mesher/worker/mesherLightDependencies.ts +43 -0
  81. package/src/wasm-mesher/worker/mesherWasm.ownerLightSync.test.ts +198 -0
  82. package/src/wasm-mesher/worker/mesherWasm.ts +506 -96
  83. package/src/wasm-mesher/worker/mesherWasmChunkBuffer.ts +1 -0
  84. package/src/wasm-mesher/worker/mesherWasmColumnTickSelect.ts +47 -0
  85. package/src/wasm-mesher/worker/mesherWasmConversionCache.ts +16 -5
  86. package/src/wasm-mesher/worker/mesherWasmLightDirty.test.ts +17 -1
  87. package/src/wasm-mesher/worker/mesherWasmLightDirty.ts +10 -0
  88. package/src/wasm-mesher/worker/mesherWasmLightMerge.test.ts +208 -0
  89. package/src/wasm-mesher/worker/mesherWasmLightMerge.ts +228 -0
  90. package/src/wasm-mesher/worker/mesherWasmOwnerLight.test.ts +161 -0
  91. package/src/wasm-mesher/worker/mesherWasmOwnerLight.ts +112 -0
  92. package/src/wasm-mesher/worker/mesherWasmTickParseCache.ts +45 -0
  93. package/src/wasm-mesher/worker/mesherWasmTickSchedule.ts +44 -0
  94. package/src/wasm-mesher/worker/mesherWasmTopologyPostCache.ts +63 -0
  95. package/src/worldView/types.ts +3 -0
  96. package/src/worldView/worldView.geometryReload.test.ts +68 -0
  97. package/src/worldView/worldView.spiral.test.ts +1 -1
  98. package/src/worldView/worldView.ts +49 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/.pnpm/esbuild-plugin-polyfill-node@0.3.0_esbuild@0.19.12/node_modules/esbuild-plugin-polyfill-node/polyfills/__dirname.js", "../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js", "../node_modules/.pnpm/esbuild-plugin-polyfill-node@0.3.0_esbuild@0.19.12/node_modules/esbuild-plugin-polyfill-node/polyfills/process.js", "../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/chunk-DtuTasat.js", "../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/buffer.js", "../node_modules/.pnpm/esbuild-plugin-polyfill-node@0.3.0_esbuild@0.19.12/node_modules/esbuild-plugin-polyfill-node/polyfills/buffer.js", "../src/wasm-mesher/runtime-build/wasm_mesher.js", "../src/lighting/owner/lightOwnerWorker.ts", "../src/lighting/owner/updateLightToOwnerEvents.ts", "../src/wasm-mesher/worker/mesherWasmLightMerge.ts", "../src/mesher-shared/lightNibblePack.ts", "../src/lighting/debug/clientLightTrace.ts"],
4
+ "sourcesContent": ["export const __dirname = \"/\";\n", "function unimplemented(name) {\r\n throw new Error('Node.js process ' + name + ' is not supported by JSPM core outside of Node.js');\r\n}\r\n\r\nvar queue = [];\r\nvar draining = false;\r\nvar currentQueue;\r\nvar queueIndex = -1;\r\n\r\nfunction cleanUpNextTick() {\r\n if (!draining || !currentQueue)\r\n return;\r\n draining = false;\r\n if (currentQueue.length) {\r\n queue = currentQueue.concat(queue);\r\n }\r\n else {\r\n queueIndex = -1;\r\n }\r\n if (queue.length)\r\n drainQueue();\r\n}\r\n\r\nfunction drainQueue() {\r\n if (draining)\r\n return;\r\n var timeout = setTimeout(cleanUpNextTick, 0);\r\n draining = true;\r\n\r\n var len = queue.length;\r\n while(len) {\r\n currentQueue = queue;\r\n queue = [];\r\n while (++queueIndex < len) {\r\n if (currentQueue)\r\n currentQueue[queueIndex].run();\r\n }\r\n queueIndex = -1;\r\n len = queue.length;\r\n }\r\n currentQueue = null;\r\n draining = false;\r\n clearTimeout(timeout);\r\n}\r\n\r\nfunction nextTick (fun) {\r\n var args = new Array(arguments.length - 1);\r\n if (arguments.length > 1) {\r\n for (var i = 1; i < arguments.length; i++)\r\n args[i - 1] = arguments[i];\r\n }\r\n queue.push(new Item(fun, args));\r\n if (queue.length === 1 && !draining)\r\n setTimeout(drainQueue, 0);\r\n}\r\n// v8 likes predictible objects\r\nfunction Item(fun, array) {\r\n this.fun = fun;\r\n this.array = array;\r\n}\r\nItem.prototype.run = function () {\r\n this.fun.apply(null, this.array);\r\n};\r\n\r\nvar title = 'browser';\r\nvar arch = 'x64';\r\nvar platform = 'browser';\r\nvar env = {\r\n PATH: '/usr/bin',\r\n LANG: typeof navigator !== 'undefined' ? navigator.language + '.UTF-8' : undefined,\r\n PWD: '/',\r\n HOME: '/home',\r\n TMP: '/tmp',\r\n};\r\nvar argv = ['/usr/bin/node'];\r\nvar execArgv = [];\r\nvar version = 'v16.8.0';\r\nvar versions = {};\r\n\r\nvar emitWarning = function(message, type) {\r\n console.warn((type ? (type + ': ') : '') + message);\r\n};\r\n\r\nvar binding = function(name) { unimplemented('binding'); };\r\n\r\nvar umask = function(mask) { return 0; };\r\n\r\nvar cwd = function() { return '/'; };\r\nvar chdir = function(dir) {};\r\n\r\nvar release = {\r\n name: 'node',\r\n sourceUrl: '',\r\n headersUrl: '',\r\n libUrl: '',\r\n};\r\n\r\nfunction noop() {}\r\n\r\nvar browser = true;\r\nvar _rawDebug = noop;\r\nvar moduleLoadList = [];\r\nfunction _linkedBinding(name) { unimplemented('_linkedBinding'); }\r\nvar domain = {};\r\nvar _exiting = false;\r\nvar config = {};\r\nfunction dlopen(name) { unimplemented('dlopen'); }\r\nfunction _getActiveRequests() { return []; }\r\nfunction _getActiveHandles() { return []; }\r\nvar reallyExit = noop;\r\nvar _kill = noop;\r\nvar cpuUsage = function() { return {}; };\r\nvar resourceUsage = cpuUsage;\r\nvar memoryUsage = cpuUsage;\r\nvar kill = noop;\r\nvar exit = noop;\r\nvar openStdin = noop;\r\nvar allowedNodeEnvironmentFlags = {};\r\nfunction assert(condition, message) {\r\n if (!condition) throw new Error(message || 'assertion error');\r\n}\r\nvar features = {\r\n inspector: false,\r\n debug: false,\r\n uv: false,\r\n ipv6: false,\r\n tls_alpn: false,\r\n tls_sni: false,\r\n tls_ocsp: false,\r\n tls: false,\r\n cached_builtins: true,\r\n};\r\nvar _fatalExceptions = noop;\r\nvar setUncaughtExceptionCaptureCallback = noop;\r\nfunction hasUncaughtExceptionCaptureCallback() { return false; }var _tickCallback = noop;\r\nvar _debugProcess = noop;\r\nvar _debugEnd = noop;\r\nvar _startProfilerIdleNotifier = noop;\r\nvar _stopProfilerIdleNotifier = noop;\r\nvar stdout = undefined;\r\nvar stderr = undefined;\r\nvar stdin = undefined;\r\nvar abort = noop;\r\nvar pid = 2;\r\nvar ppid = 1;\r\nvar execPath = '/bin/usr/node';\r\nvar debugPort = 9229;\r\nvar argv0 = 'node';\r\nvar _preload_modules = [];\r\nvar setSourceMapsEnabled = noop;\r\n\r\nvar _performance = {\r\n now: typeof performance !== 'undefined' ? performance.now.bind(performance) : undefined,\r\n timing: typeof performance !== 'undefined' ? performance.timing : undefined,\r\n};\r\nif (_performance.now === undefined) {\r\n var nowOffset = Date.now();\r\n\r\n if (_performance.timing && _performance.timing.navigationStart) {\r\n nowOffset = _performance.timing.navigationStart;\r\n }\r\n _performance.now = () => Date.now() - nowOffset;\r\n}\r\n\r\nfunction uptime() {\r\n return _performance.now() / 1000;\r\n}\r\n\r\nvar nanoPerSec = 1000000000;\r\nfunction hrtime(previousTimestamp) {\r\n var baseNow = Math.floor((Date.now() - _performance.now()) * 1e-3);\r\n var clocktime = _performance.now() * 1e-3;\r\n var seconds = Math.floor(clocktime) + baseNow;\r\n var nanoseconds = Math.floor((clocktime % 1) * 1e9);\r\n if (previousTimestamp) {\r\n seconds = seconds - previousTimestamp[0];\r\n nanoseconds = nanoseconds - previousTimestamp[1];\r\n if (nanoseconds < 0) {\r\n seconds--;\r\n nanoseconds += nanoPerSec;\r\n }\r\n }\r\n return [seconds, nanoseconds];\r\n}hrtime.bigint = function(time) {\r\n var diff = hrtime(time);\r\n if (typeof BigInt === 'undefined') {\r\n return diff[0] * nanoPerSec + diff[1];\r\n }\r\n return BigInt(diff[0] * nanoPerSec) + BigInt(diff[1]);\r\n};\r\n\r\nvar _maxListeners = 10;\r\nvar _events = {};\r\nvar _eventsCount = 0;\r\nfunction on () { return process }var addListener = on;\r\nvar once = on;\r\nvar off = on;\r\nvar removeListener = on;\r\nvar removeAllListeners = on;\r\nvar emit = noop;\r\nvar prependListener = on;\r\nvar prependOnceListener = on;\r\nfunction listeners (name) { return []; }\r\nvar process = {\r\n version,\r\n versions,\r\n arch,\r\n platform,\r\n browser,\r\n release,\r\n _rawDebug,\r\n moduleLoadList,\r\n binding,\r\n _linkedBinding,\r\n _events,\r\n _eventsCount,\r\n _maxListeners,\r\n on,\r\n addListener,\r\n once,\r\n off,\r\n removeListener,\r\n removeAllListeners,\r\n emit,\r\n prependListener,\r\n prependOnceListener,\r\n listeners,\r\n domain,\r\n _exiting,\r\n config,\r\n dlopen,\r\n uptime,\r\n _getActiveRequests,\r\n _getActiveHandles,\r\n reallyExit,\r\n _kill,\r\n cpuUsage,\r\n resourceUsage,\r\n memoryUsage,\r\n kill,\r\n exit,\r\n openStdin,\r\n allowedNodeEnvironmentFlags,\r\n assert,\r\n features,\r\n _fatalExceptions,\r\n setUncaughtExceptionCaptureCallback,\r\n hasUncaughtExceptionCaptureCallback,\r\n emitWarning,\r\n nextTick,\r\n _tickCallback,\r\n _debugProcess,\r\n _debugEnd,\r\n _startProfilerIdleNotifier,\r\n _stopProfilerIdleNotifier,\r\n stdout,\r\n stdin,\r\n stderr,\r\n abort,\r\n umask,\r\n chdir,\r\n cwd,\r\n env,\r\n title,\r\n argv,\r\n execArgv,\r\n pid,\r\n ppid,\r\n execPath,\r\n debugPort,\r\n hrtime,\r\n argv0,\r\n _preload_modules,\r\n setSourceMapsEnabled,\r\n};\n\nexport { _debugEnd, _debugProcess, _events, _eventsCount, _exiting, _fatalExceptions, _getActiveHandles, _getActiveRequests, _kill, _linkedBinding, _maxListeners, _preload_modules, _rawDebug, _startProfilerIdleNotifier, _stopProfilerIdleNotifier, _tickCallback, abort, addListener, allowedNodeEnvironmentFlags, arch, argv, argv0, assert, binding, browser, chdir, config, cpuUsage, cwd, debugPort, process as default, dlopen, domain, emit, emitWarning, env, execArgv, execPath, exit, features, hasUncaughtExceptionCaptureCallback, hrtime, kill, listeners, memoryUsage, moduleLoadList, nextTick, off, on, once, openStdin, pid, platform, ppid, prependListener, prependOnceListener, reallyExit, release, removeAllListeners, removeListener, resourceUsage, setSourceMapsEnabled, setUncaughtExceptionCaptureCallback, stderr, stdin, stdout, title, umask, uptime, version, versions };\n", "export * as process from \"process\";\n", "var exports$2 = {},\n _dewExec$2 = false;\nfunction dew$2() {\n if (_dewExec$2) return exports$2;\n _dewExec$2 = true;\n exports$2.byteLength = byteLength;\n exports$2.toByteArray = toByteArray;\n exports$2.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n // Support decoding URL-safe base64 strings, as Node.js does.\n // See: https://en.wikipedia.org/wiki/Base64#URL_applications\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len = b64.length;\n if (len % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n\n // base64 is 4/3 + up to two characters of the original data\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (uint8[i + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join(\"\");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\");\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\");\n }\n return parts.join(\"\");\n }\n return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$1;\n _dewExec$1 = true;\n /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n exports$1.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports$1.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {}\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {}\n buffer[offset + i - d] |= s * 128;\n };\n return exports$1;\n}\n\nvar exports = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n const base64 = dew$2();\n const ieee754 = dew$1();\n const customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" // eslint-disable-line dot-notation\n ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") // eslint-disable-line dot-notation\n : null;\n exports.Buffer = Buffer;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n const K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\n Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== \"undefined\" && typeof console.error === \"function\") {\n 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.\");\n }\n function typedArraySupport() {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1);\n const proto = {\n foo: function () {\n return 42;\n }\n };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer.prototype, \"parent\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer.prototype, \"offset\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\"The value \\\"\" + length + \"\\\" is invalid for option \\\"size\\\"\");\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n function Buffer(arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === \"number\") {\n if (typeof encodingOrOffset === \"string\") {\n throw new TypeError(\"The \\\"string\\\" argument must be of type string. Received type number\");\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer.poolSize = 8192; // not used by this implementation\n\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \" + \"or Array-like Object. Received type \" + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === \"number\") {\n throw new TypeError(\"The \\\"value\\\" argument must not be of type number. Received type number\");\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b) return b;\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \" + \"or Array-like Object. Received type \" + typeof value);\n }\n\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n\n // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n // https://github.com/feross/buffer/pull/148\n Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer, Uint8Array);\n function assertSize(size) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"\\\"size\\\" argument must be of type number\");\n } else if (size < 0) {\n throw new RangeError(\"The value \\\"\" + size + \"\\\" is invalid for option \\\"size\\\"\");\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf = createBuffer(length);\n const actual = buf.write(string, encoding);\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual);\n }\n return buf;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n return buf;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\"\\\"offset\\\" is outside of buffer bounds\");\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\"\\\"length\\\" is outside of buffer bounds\");\n }\n let buf;\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array);\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n function fromObject(obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf = createBuffer(len);\n if (buf.length === 0) {\n return buf;\n }\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n if (obj.length !== undefined) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum \" + \"size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length);\n }\n Buffer.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n };\n Buffer.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\"The \\\"buf1\\\", \\\"buf2\\\" arguments must be one of type Buffer or Uint8Array\");\n }\n if (a === b) return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n Buffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return true;\n default:\n return false;\n }\n };\n Buffer.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n }\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n let i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf = list[i];\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n buf.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n } else {\n buf.copy(buffer, pos);\n }\n pos += buf.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== \"string\") {\n throw new TypeError(\"The \\\"string\\\" argument must be one of type string, Buffer, or ArrayBuffer. \" + \"Received type \" + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0;\n\n // Use a for loop to avoid recursion\n let loweredCase = false;\n for (;;) {\n switch (encoding) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return len;\n case \"utf8\":\n case \"utf-8\":\n return utf8ToBytes(string).length;\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return len * 2;\n case \"hex\":\n return len >>> 1;\n case \"base64\":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n }\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return \"\";\n }\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return \"\";\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return \"\";\n }\n if (!encoding) encoding = \"utf8\";\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n case \"ascii\":\n return asciiSlice(this, start, end);\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n case \"base64\":\n return base64Slice(this, start, end);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n // to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n // reliably in a browserify context because there could be multiple different\n // copies of the 'buffer' package in use. This method works even for Buffer\n // instances that were created from another copy of the `buffer` package.\n // See: https://github.com/feross/buffer/issues/154\n Buffer.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0) return \"\";\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer.prototype.toLocaleString = Buffer.prototype.toString;\n Buffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n };\n Buffer.prototype.inspect = function inspect() {\n let str = \"\";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n if (this.length > max) str += \" ... \";\n return \"<Buffer \" + str + \">\";\n };\n if (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n }\n Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength);\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\"The \\\"target\\\" argument must be one of type Buffer or Uint8Array. \" + \"Received type \" + typeof target);\n }\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n\n // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1;\n\n // Normalize byteOffset\n if (typeof byteOffset === \"string\") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n }\n\n // Normalize val\n if (typeof val === \"string\") {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === \"number\") {\n val = val & 255; // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === \"function\") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === \"ucs2\" || encoding === \"ucs-2\" || encoding === \"utf16le\" || encoding === \"utf-16le\") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n if (found) return i;\n }\n }\n return -1;\n }\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n Buffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === undefined) encoding = \"utf8\";\n } else {\n encoding = length;\n length = undefined;\n }\n } else {\n throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n }\n const remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n if (!encoding) encoding = \"utf8\";\n let loweredCase = false;\n for (;;) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n case \"base64\":\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n\n // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n const MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = \"\";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n }\n function hexSlice(buf, start, end) {\n const len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n let out = \"\";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n return out;\n }\n function utf16leSlice(buf, start, end) {\n const bytes = buf.slice(start, end);\n let res = \"\";\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n const newBuf = this.subarray(start, end);\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype);\n return newBuf;\n };\n\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError(\"offset is not uint\");\n if (offset + ext > length) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n Buffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n let val = this[offset + --byteLength];\n let mul = 1;\n while (byteLength > 0 && (mul *= 256)) {\n val += this[offset + --byteLength] * mul;\n }\n return val;\n };\n Buffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let i = byteLength;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24); // Overflow\n\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) +\n // Overflow\n this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError(\"\\\"buffer\\\" argument must be a Buffer instance\");\n if (value > max || value < min) throw new RangeError(\"\\\"value\\\" argument is out of bounds\");\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n }\n Buffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n let i = byteLength - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer.prototype.writeUint16LE = Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer.prototype.writeUint16BE = Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer.prototype.writeUint32LE = Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer.prototype.writeUint32BE = Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset + 7] = lo;\n lo = lo >> 8;\n buf[offset + 6] = lo;\n lo = lo >> 8;\n buf[offset + 5] = lo;\n lo = lo >> 8;\n buf[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset + 3] = hi;\n hi = hi >> 8;\n buf[offset + 2] = hi;\n hi = hi >> 8;\n buf[offset + 1] = hi;\n hi = hi >> 8;\n buf[offset] = hi;\n return offset + 8;\n }\n Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n let i = byteLength - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength;\n };\n Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n if (offset < 0) throw new RangeError(\"Index out of range\");\n }\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n\n // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n Buffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError(\"argument should be a Buffer\");\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError(\"targetStart out of bounds\");\n }\n if (start < 0 || start >= this.length) throw new RangeError(\"Index out of range\");\n if (end < 0) throw new RangeError(\"sourceEnd out of bounds\");\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n\n // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n Buffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === \"string\") {\n if (typeof start === \"string\") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === \"string\") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== undefined && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n if (typeof encoding === \"string\" && !Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code;\n }\n }\n } else if (typeof val === \"number\") {\n val = val & 255;\n } else if (typeof val === \"boolean\") {\n val = Number(val);\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n let i;\n if (typeof val === \"number\") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\"The value \\\"\" + val + \"\\\" is invalid for argument \\\"value\\\"\");\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n\n // CUSTOM ERRORS\n // =============\n\n // Simplified versions from Node, changed for Buffer-only usage\n const errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, \"message\", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`;\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E(\"ERR_BUFFER_OUT_OF_BOUNDS\", function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return \"Attempt to access memory outside buffer bounds\";\n }, RangeError);\n E(\"ERR_INVALID_ARG_TYPE\", function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E(\"ERR_OUT_OF_RANGE\", function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === \"bigint\") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += \"n\";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = \"\";\n let i = val.length;\n const start = val[0] === \"-\" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n\n // CHECK FUNCTIONS\n // ===============\n\n function checkBounds(buf, offset, byteLength) {\n validateNumber(offset, \"offset\");\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1));\n }\n }\n function checkIntBI(value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === \"bigint\" ? \"n\" : \"\";\n let range;\n {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + `${(byteLength + 1) * 8 - 1}${n}`;\n }\n }\n throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n }\n checkBounds(buf, offset, byteLength);\n }\n function validateNumber(value, name) {\n if (typeof value !== \"number\") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, \"number\", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(\"offset\", \"an integer\", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(\"offset\", `>= ${0} and <= ${length}`, value);\n }\n\n // HELPER FUNCTIONS\n // ================\n\n const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split(\"=\")[0];\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, \"\");\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return \"\";\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 55295 && codePoint < 57344) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 56319) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n }\n\n // valid lead\n leadSurrogate = codePoint;\n continue;\n }\n\n // 2 leads in a row\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error(\"Invalid code point\");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n\n // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n // the `instanceof` check but they should be treated as of that type.\n // See: https://github.com/feross/buffer/issues/166\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n // For IE11 support\n return obj !== obj; // eslint-disable-line no-self-compare\n }\n\n // Create lookup table for `toString('hex')`\n // See: https://github.com/feross/buffer/issues/219\n const hexSliceLookupTable = function () {\n const alphabet = \"0123456789abcdef\";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n\n // Return not function with Error if BigInt not supported\n function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n return exports;\n}\n\nexport { dew as d };\n", "import { d as dew } from './chunk-DtuTasat.js';\n\nconst exports = dew();\nexports['Buffer']; exports['SlowBuffer']; exports['INSPECT_MAX_BYTES']; exports['kMaxLength'];\n\nvar Buffer = exports.Buffer;\r\nvar INSPECT_MAX_BYTES = exports.INSPECT_MAX_BYTES;\r\nvar kMaxLength = exports.kMaxLength;\n\nexport { Buffer, INSPECT_MAX_BYTES, exports as default, kMaxLength };\n", "export { Buffer } from \"buffer\";\n", "let wasm;\n\nfunction addToExternrefTable0(obj) {\n const idx = wasm.__externref_table_alloc();\n wasm.__wbindgen_externrefs.set(idx, obj);\n return idx;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction getArrayF32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayI32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getInt32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU16FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);\n}\n\nfunction getArrayU32FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nlet cachedFloat32ArrayMemory0 = null;\nfunction getFloat32ArrayMemory0() {\n if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {\n cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);\n }\n return cachedFloat32ArrayMemory0;\n}\n\nlet cachedInt32ArrayMemory0 = null;\nfunction getInt32ArrayMemory0() {\n if (cachedInt32ArrayMemory0 === null || cachedInt32ArrayMemory0.byteLength === 0) {\n cachedInt32ArrayMemory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachedInt32ArrayMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint16ArrayMemory0 = null;\nfunction getUint16ArrayMemory0() {\n if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {\n cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);\n }\n return cachedUint16ArrayMemory0;\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n const idx = addToExternrefTable0(e);\n wasm.__wbindgen_exn_store(idx);\n }\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction passArray16ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 2, 2) >>> 0;\n getUint16ArrayMemory0().set(arg, ptr / 2);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayF32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getFloat32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nconst JsLightEngineFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_jslightengine_free(ptr >>> 0, 1));\n\nexport class JsLightEngine {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n JsLightEngineFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_jslightengine_free(ptr, 0);\n }\n /**\n * @param {any} event\n */\n pushEvent(event) {\n wasm.jslightengine_pushEvent(this.__wbg_ptr, event);\n }\n /**\n * @param {number} x\n * @param {number} y\n * @param {number} z\n * @returns {number}\n */\n getSkyLight(x, y, z) {\n const ret = wasm.jslightengine_getSkyLight(this.__wbg_ptr, x, y, z);\n return ret;\n }\n /**\n * @param {number} x\n * @param {number} y\n * @param {number} z\n * @returns {number}\n */\n getBlockLight(x, y, z) {\n const ret = wasm.jslightengine_getBlockLight(this.__wbg_ptr, x, y, z);\n return ret;\n }\n /**\n * @param {Uint8Array} emission\n * @param {Uint8Array} opacity\n */\n setLightTables(emission, opacity) {\n const ptr0 = passArray8ToWasm0(emission, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(opacity, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n wasm.jslightengine_setLightTables(this.__wbg_ptr, ptr0, len0, ptr1, len1);\n }\n /**\n * @returns {number}\n */\n get fallbackRelights() {\n const ret = wasm.jslightengine_fallbackRelights(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {Uint8Array} occupancy\n */\n setOcclusionTable(occupancy) {\n const ptr0 = passArray8ToWasm0(occupancy, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.jslightengine_setOcclusionTable(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * @param {boolean} enabled\n */\n setSkyLightEnabled(enabled) {\n wasm.jslightengine_setSkyLightEnabled(this.__wbg_ptr, enabled);\n }\n /**\n * @returns {any}\n */\n pollCompletedPublication() {\n const ret = wasm.jslightengine_pollCompletedPublication(this.__wbg_ptr);\n return ret;\n }\n /**\n * @param {number} budget_ms\n * @returns {boolean}\n */\n step(budget_ms) {\n const ret = wasm.jslightengine_step(this.__wbg_ptr, budget_ms);\n return ret !== 0;\n }\n /**\n * @param {number} world_min_y\n * @param {number} world_height\n */\n constructor(world_min_y, world_height) {\n const ret = wasm.jslightengine_js_new(world_min_y, world_height);\n this.__wbg_ptr = ret >>> 0;\n JsLightEngineFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n}\nif (Symbol.dispose) JsLightEngine.prototype[Symbol.dispose] = JsLightEngine.prototype.free;\n\n/**\n * Compute wireframe edge positions from a triangle mesh.\n *\n * Takes flat position and index arrays from an assembled mesh and returns a\n * flat array of line-segment positions (x1,y1,z1,x2,y2,z2, ...) representing\n * the unique edges of the mesh. Edge deduplication uses a `HashSet<(u32,u32)>`\n * keyed on (min_vertex_index, max_vertex_index).\n *\n * `positions` \u2014 flat `Float32Array` of vertex positions (3 floats per vertex).\n * `indices` \u2014 flat `Uint32Array` of triangle indices (3 indices per triangle).\n * For 16-bit index arrays, prefer [`compute_wireframe_edges_u16`]\n * to avoid an extra JS-side `Uint32Array` allocation.\n * @param {Float32Array} positions\n * @param {Uint32Array} indices\n * @returns {Float32Array}\n */\nexport function computeWireframeEdges(positions, indices) {\n const ptr0 = passArrayF32ToWasm0(positions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(indices, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.computeWireframeEdges(ptr0, len0, ptr1, len1);\n var v3 = getArrayF32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v3;\n}\n\n/**\n * Same as [`compute_wireframe_edges`] but accepts a `Uint16Array` of indices.\n *\n * Avoids the JS-side `new Uint32Array(uint16)` allocation when the assembled\n * section uses 16-bit indices (typical for sections with < 65k vertices).\n * @param {Float32Array} positions\n * @param {Uint16Array} indices\n * @returns {Float32Array}\n */\nexport function computeWireframeEdgesU16(positions, indices) {\n const ptr0 = passArrayF32ToWasm0(positions, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray16ToWasm0(indices, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ret = wasm.computeWireframeEdgesU16(ptr0, len0, ptr1, len1);\n var v3 = getArrayF32FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);\n return v3;\n}\n\n/**\n * VITALY's path: parse 1.18+ dump + light \u2192 run the mesher \u2192 return ONLY the final\n * geometry. Avoids marshalling the intermediate ~300KB block_states/biomes/lights\n * arrays back to JS.\n *\n * Combines `parseChunkDump118FullColumnAll` and `generate_geometry` into one Rust call.\n * All `generate_geometry` parameters (mesher config, block-state lists) are accepted\n * unchanged.\n * @param {number} section_x\n * @param {number} section_y\n * @param {number} section_z\n * @param {number} section_height\n * @param {number} world_min_y\n * @param {number} world_max_y\n * @param {number} section_data_start_y\n * @param {Uint8Array} dump_buffer\n * @param {Uint8Array} sky_light_concat\n * @param {Uint8Array} block_light_concat\n * @param {Uint32Array} sky_light_mask\n * @param {Uint32Array} block_light_mask\n * @param {Uint32Array} empty_sky_light_mask\n * @param {Uint32Array} empty_block_light_mask\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {number} max_bits_per_biome\n * @param {Uint16Array} invisible_blocks\n * @param {Uint16Array} transparent_blocks\n * @param {Uint16Array} no_ao_blocks\n * @param {Uint16Array} cull_identical_blocks\n * @param {Uint16Array} occluding_blocks\n * @param {boolean} enable_lighting\n * @param {boolean} smooth_lighting\n * @param {number} sky_light_value\n * @returns {any}\n */\nexport function generateGeometryFromDump118(section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, dump_buffer, sky_light_concat, block_light_concat, sky_light_mask, block_light_mask, empty_sky_light_mask, empty_block_light_mask, num_sections, max_bits_per_block, max_bits_per_biome, invisible_blocks, transparent_blocks, no_ao_blocks, cull_identical_blocks, occluding_blocks, enable_lighting, smooth_lighting, sky_light_value) {\n const ptr0 = passArray8ToWasm0(dump_buffer, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(sky_light_concat, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(block_light_concat, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(sky_light_mask, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray32ToWasm0(block_light_mask, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray32ToWasm0(empty_sky_light_mask, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray32ToWasm0(empty_block_light_mask, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArray16ToWasm0(invisible_blocks, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ptr8 = passArray16ToWasm0(transparent_blocks, wasm.__wbindgen_malloc);\n const len8 = WASM_VECTOR_LEN;\n const ptr9 = passArray16ToWasm0(no_ao_blocks, wasm.__wbindgen_malloc);\n const len9 = WASM_VECTOR_LEN;\n const ptr10 = passArray16ToWasm0(cull_identical_blocks, wasm.__wbindgen_malloc);\n const len10 = WASM_VECTOR_LEN;\n const ptr11 = passArray16ToWasm0(occluding_blocks, wasm.__wbindgen_malloc);\n const len11 = WASM_VECTOR_LEN;\n const ret = wasm.generateGeometryFromDump118(section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, num_sections, max_bits_per_block, max_bits_per_biome, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, ptr11, len11, enable_lighting, smooth_lighting, sky_light_value);\n return ret;\n}\n\n/**\n * Fused parse+mesh for 1.18+ `map_chunk` wire format.\n *\n * Parses the raw packet inside Rust, meshes immediately, and returns ONLY the\n * final `GeometryOutput` \u2014 no intermediate typed arrays are materialised on the\n * JS heap. This halves the number of JS<->WASM boundary crossings per column\n * and removes the largest per-column allocations (Uint16Array block_states +\n * three Uint8Arrays for biomes/light).\n *\n * `raw_packet` is the buffer captured from `bot._client.on('raw.map_chunk', ...)`;\n * it includes the leading packet-id varint (we skip it).\n * @param {Uint8Array} raw_packet\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {number} max_bits_per_biome\n * @param {number} protocol\n * @param {number} section_x\n * @param {number} section_y\n * @param {number} section_z\n * @param {number} section_height\n * @param {number} world_min_y\n * @param {number} world_max_y\n * @param {number} section_data_start_y\n * @param {Uint16Array} invisible_blocks\n * @param {Uint16Array} transparent_blocks\n * @param {Uint16Array} no_ao_blocks\n * @param {Uint16Array} cull_identical_blocks\n * @param {Uint16Array} occluding_blocks\n * @param {boolean} enable_lighting\n * @param {boolean} smooth_lighting\n * @param {number} sky_light_value\n * @returns {any}\n */\nexport function generateGeometryFromMapChunkV18Plus(raw_packet, num_sections, max_bits_per_block, max_bits_per_biome, protocol, section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, invisible_blocks, transparent_blocks, no_ao_blocks, cull_identical_blocks, occluding_blocks, enable_lighting, smooth_lighting, sky_light_value) {\n const ptr0 = passArray8ToWasm0(raw_packet, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray16ToWasm0(invisible_blocks, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray16ToWasm0(transparent_blocks, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray16ToWasm0(no_ao_blocks, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray16ToWasm0(cull_identical_blocks, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray16ToWasm0(occluding_blocks, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ret = wasm.generateGeometryFromMapChunkV18Plus(ptr0, len0, num_sections, max_bits_per_block, max_bits_per_biome, protocol, section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, enable_lighting, smooth_lighting, sky_light_value);\n return ret;\n}\n\n/**\n * Fused multi-column parse+mesh for 1.18+ raw map_chunk.\n *\n * Parses multiple raw packets inside Rust and meshes them in a single\n * `mesher.generate_multi` call with correct per-neighbor AO/lighting.\n * No typed arrays are materialised on the JS heap.\n *\n * `raw_packets` \u2014 `Array<Uint8Array>`, one raw packet per column.\n * Reuses the existing JS-side per-column buffers (zero concat, zero alloc).\n *\n * `num_sections_list` \u2014 per-column section count (terrain height varies).\n *\n * Invariant: `chunk_xs[0]` / `chunk_zs[0]` is the **target** column whose\n * geometry is emitted. Neighbour columns provide border data to the mesher\n * but do not contribute directly to the output.\n * @param {Array<any>} raw_packets\n * @param {Uint32Array} num_sections_list\n * @param {number} max_bits_per_block\n * @param {number} max_bits_per_biome\n * @param {number} protocol\n * @param {Int32Array} chunk_xs\n * @param {Int32Array} chunk_zs\n * @param {number} section_x\n * @param {number} section_y\n * @param {number} section_z\n * @param {number} section_height\n * @param {number} world_min_y\n * @param {number} world_max_y\n * @param {number} section_data_start_y\n * @param {Uint16Array} invisible_blocks\n * @param {Uint16Array} transparent_blocks\n * @param {Uint16Array} no_ao_blocks\n * @param {Uint16Array} cull_identical_blocks\n * @param {Uint16Array} occluding_blocks\n * @param {boolean} enable_lighting\n * @param {boolean} smooth_lighting\n * @param {number} sky_light_value\n * @returns {any}\n */\nexport function generateGeometryFromMapChunkV18PlusMulti(raw_packets, num_sections_list, max_bits_per_block, max_bits_per_biome, protocol, chunk_xs, chunk_zs, section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, invisible_blocks, transparent_blocks, no_ao_blocks, cull_identical_blocks, occluding_blocks, enable_lighting, smooth_lighting, sky_light_value) {\n const ptr0 = passArray32ToWasm0(num_sections_list, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(chunk_xs, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_zs, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray16ToWasm0(invisible_blocks, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray16ToWasm0(transparent_blocks, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray16ToWasm0(no_ao_blocks, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray16ToWasm0(cull_identical_blocks, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArray16ToWasm0(occluding_blocks, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ret = wasm.generateGeometryFromMapChunkV18PlusMulti(raw_packets, ptr0, len0, max_bits_per_block, max_bits_per_biome, protocol, ptr1, len1, ptr2, len2, section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, enable_lighting, smooth_lighting, sky_light_value);\n return ret;\n}\n\n/**\n * Fused parse+mesh for 1.16 / 1.17 chunk sections.\n *\n * Parses `chunk_data` (the raw section bytes from a `map_chunk` packet) inside\n * Rust and meshes immediately, returning only `GeometryOutput`. Block states\n * and biomes never leave WASM memory.\n *\n * Light arrays (`sky_light` / `block_light`) come from a pre-parsed\n * `update_light` packet and are passed by reference (the JS-side update-light\n * cache already holds them as `Uint8Array`). When light is absent the\n * function fills defaults (sky=15, block=0) internally.\n * @param {Uint8Array} chunk_data\n * @param {Uint32Array} bit_map_lo_hi\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {Int32Array} biomes_cells\n * @param {number} default_biome\n * @param {Uint8Array} sky_light\n * @param {Uint8Array} block_light\n * @param {number} section_x\n * @param {number} section_y\n * @param {number} section_z\n * @param {number} section_height\n * @param {number} world_min_y\n * @param {number} world_max_y\n * @param {number} section_data_start_y\n * @param {Uint16Array} invisible_blocks\n * @param {Uint16Array} transparent_blocks\n * @param {Uint16Array} no_ao_blocks\n * @param {Uint16Array} cull_identical_blocks\n * @param {Uint16Array} occluding_blocks\n * @param {boolean} enable_lighting\n * @param {boolean} smooth_lighting\n * @param {number} sky_light_value\n * @returns {any}\n */\nexport function generateGeometryFromParsedV16V17(chunk_data, bit_map_lo_hi, num_sections, max_bits_per_block, biomes_cells, default_biome, sky_light, block_light, section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, invisible_blocks, transparent_blocks, no_ao_blocks, cull_identical_blocks, occluding_blocks, enable_lighting, smooth_lighting, sky_light_value) {\n const ptr0 = passArray8ToWasm0(chunk_data, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(bit_map_lo_hi, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(biomes_cells, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(sky_light, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray8ToWasm0(block_light, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray16ToWasm0(invisible_blocks, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray16ToWasm0(transparent_blocks, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArray16ToWasm0(no_ao_blocks, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ptr8 = passArray16ToWasm0(cull_identical_blocks, wasm.__wbindgen_malloc);\n const len8 = WASM_VECTOR_LEN;\n const ptr9 = passArray16ToWasm0(occluding_blocks, wasm.__wbindgen_malloc);\n const len9 = WASM_VECTOR_LEN;\n const ret = wasm.generateGeometryFromParsedV16V17(ptr0, len0, ptr1, len1, num_sections, max_bits_per_block, ptr2, len2, default_biome, ptr3, len3, ptr4, len4, section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, enable_lighting, smooth_lighting, sky_light_value);\n return ret;\n}\n\n/**\n * Fused multi-column parse+mesh for 1.16 / 1.17 chunk sections.\n *\n * Parses multiple columns inside Rust and meshes them in one\n * `mesher.generate_multi` call. Block states and biomes never leave WASM\n * memory; light arrays are passed by reference from the JS-side\n * update-light caches.\n *\n * `chunk_data_list` \u2014 `Array<Uint8Array>`, one chunk_data buffer per column.\n * `bit_map_lo_hi` \u2014 flat `&[u32]` of length `chunkCount * 2`; each pair\n * (lo, hi) is the section mask for one column.\n * `num_sections_list` \u2014 per-column section count.\n * `biomes_cells_list` \u2014 `Array<Int32Array>`, may contain empty arrays for\n * columns without captured biomes.\n * `sky_light_list` / `block_light_list` \u2014 `Array<Uint8Array>`, may contain\n * empty arrays for columns where update_light has not arrived yet.\n *\n * Invariant: `chunk_xs[0]` / `chunk_zs[0]` is the target column.\n * @param {Array<any>} chunk_data_list\n * @param {Uint32Array} bit_map_lo_hi\n * @param {Uint32Array} num_sections_list\n * @param {number} max_bits_per_block\n * @param {Array<any>} biomes_cells_list\n * @param {number} default_biome\n * @param {Array<any>} sky_light_list\n * @param {Array<any>} block_light_list\n * @param {Int32Array} chunk_xs\n * @param {Int32Array} chunk_zs\n * @param {number} section_x\n * @param {number} section_y\n * @param {number} section_z\n * @param {number} section_height\n * @param {number} world_min_y\n * @param {number} world_max_y\n * @param {number} section_data_start_y\n * @param {Uint16Array} invisible_blocks\n * @param {Uint16Array} transparent_blocks\n * @param {Uint16Array} no_ao_blocks\n * @param {Uint16Array} cull_identical_blocks\n * @param {Uint16Array} occluding_blocks\n * @param {boolean} enable_lighting\n * @param {boolean} smooth_lighting\n * @param {number} sky_light_value\n * @returns {any}\n */\nexport function generateGeometryFromParsedV16V17Multi(chunk_data_list, bit_map_lo_hi, num_sections_list, max_bits_per_block, biomes_cells_list, default_biome, sky_light_list, block_light_list, chunk_xs, chunk_zs, section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, invisible_blocks, transparent_blocks, no_ao_blocks, cull_identical_blocks, occluding_blocks, enable_lighting, smooth_lighting, sky_light_value) {\n const ptr0 = passArray32ToWasm0(bit_map_lo_hi, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(num_sections_list, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(chunk_xs, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(chunk_zs, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray16ToWasm0(invisible_blocks, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray16ToWasm0(transparent_blocks, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray16ToWasm0(no_ao_blocks, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArray16ToWasm0(cull_identical_blocks, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ptr8 = passArray16ToWasm0(occluding_blocks, wasm.__wbindgen_malloc);\n const len8 = WASM_VECTOR_LEN;\n const ret = wasm.generateGeometryFromParsedV16V17Multi(chunk_data_list, ptr0, len0, ptr1, len1, max_bits_per_block, biomes_cells_list, default_biome, sky_light_list, block_light_list, ptr2, len2, ptr3, len3, section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, enable_lighting, smooth_lighting, sky_light_value);\n return ret;\n}\n\n/**\n * Main entry point for generating geometry\n *\n * Input: Serialized chunk data as TypedArrays\n * Output: Geometry data (positions, normals, colors, uvs, indices)\n * @param {number} section_x\n * @param {number} section_y\n * @param {number} section_z\n * @param {number} section_height\n * @param {number} world_min_y\n * @param {number} world_max_y\n * @param {number} section_data_start_y\n * @param {Uint16Array} block_states\n * @param {Uint8Array} block_light\n * @param {Uint8Array} sky_light\n * @param {Uint8Array} biomes\n * @param {Uint16Array} invisible_blocks\n * @param {Uint16Array} transparent_blocks\n * @param {Uint16Array} no_ao_blocks\n * @param {Uint16Array} cull_identical_blocks\n * @param {Uint16Array} occluding_blocks\n * @param {boolean} enable_lighting\n * @param {boolean} smooth_lighting\n * @param {number} sky_light_value\n * @returns {any}\n */\nexport function generate_geometry(section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, block_states, block_light, sky_light, biomes, invisible_blocks, transparent_blocks, no_ao_blocks, cull_identical_blocks, occluding_blocks, enable_lighting, smooth_lighting, sky_light_value) {\n const ptr0 = passArray16ToWasm0(block_states, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(block_light, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(sky_light, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(biomes, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray16ToWasm0(invisible_blocks, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray16ToWasm0(transparent_blocks, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray16ToWasm0(no_ao_blocks, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArray16ToWasm0(cull_identical_blocks, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ptr8 = passArray16ToWasm0(occluding_blocks, wasm.__wbindgen_malloc);\n const len8 = WASM_VECTOR_LEN;\n const ret = wasm.generate_geometry(section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, enable_lighting, smooth_lighting, sky_light_value);\n return ret;\n}\n\n/**\n * @param {number} section_x\n * @param {number} section_y\n * @param {number} section_z\n * @param {number} section_height\n * @param {number} world_min_y\n * @param {number} world_max_y\n * @param {number} section_data_start_y\n * @param {Int32Array} chunk_xs\n * @param {Int32Array} chunk_zs\n * @param {Uint16Array} block_states\n * @param {Uint8Array} block_light\n * @param {Uint8Array} sky_light\n * @param {Uint8Array} biomes\n * @param {Uint16Array} invisible_blocks\n * @param {Uint16Array} transparent_blocks\n * @param {Uint16Array} no_ao_blocks\n * @param {Uint16Array} cull_identical_blocks\n * @param {Uint16Array} occluding_blocks\n * @param {boolean} enable_lighting\n * @param {boolean} smooth_lighting\n * @param {number} sky_light_value\n * @returns {any}\n */\nexport function generate_geometry_multi(section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, chunk_xs, chunk_zs, block_states, block_light, sky_light, biomes, invisible_blocks, transparent_blocks, no_ao_blocks, cull_identical_blocks, occluding_blocks, enable_lighting, smooth_lighting, sky_light_value) {\n const ptr0 = passArray32ToWasm0(chunk_xs, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(chunk_zs, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray16ToWasm0(block_states, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray8ToWasm0(block_light, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray8ToWasm0(sky_light, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray8ToWasm0(biomes, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray16ToWasm0(invisible_blocks, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ptr7 = passArray16ToWasm0(transparent_blocks, wasm.__wbindgen_malloc);\n const len7 = WASM_VECTOR_LEN;\n const ptr8 = passArray16ToWasm0(no_ao_blocks, wasm.__wbindgen_malloc);\n const len8 = WASM_VECTOR_LEN;\n const ptr9 = passArray16ToWasm0(cull_identical_blocks, wasm.__wbindgen_malloc);\n const len9 = WASM_VECTOR_LEN;\n const ptr10 = passArray16ToWasm0(occluding_blocks, wasm.__wbindgen_malloc);\n const len10 = WASM_VECTOR_LEN;\n const ret = wasm.generate_geometry_multi(section_x, section_y, section_z, section_height, world_min_y, world_max_y, section_data_start_y, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, ptr7, len7, ptr8, len8, ptr9, len9, ptr10, len10, enable_lighting, smooth_lighting, sky_light_value);\n return ret;\n}\n\n/**\n * Parse a 1.18+ Minecraft chunk dump (column.dump() output).\n *\n * Returns an object: { blockStates: Uint16Array, biomes: Uint8Array, bytesRead: number }.\n * Throws on parse error.\n * @param {Uint8Array} buffer\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {number} max_bits_per_biome\n * @returns {any}\n */\nexport function parseChunkDump118(buffer, num_sections, max_bits_per_block, max_bits_per_biome) {\n const ptr0 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.parseChunkDump118(ptr0, len0, num_sections, max_bits_per_block, max_bits_per_biome);\n return ret;\n}\n\n/**\n * index = x + z*16 + y*256, where y goes 0..(num_sections*16).\n * Biomes are expanded from per-section 4\u00D74\u00D74 to per-block (matching prismarine-chunk's\n * `getBiome(pos)`).\n *\n * This is the drop-in replacement for `convertChunkToWasm`'s blocks+biomes extraction:\n * no JS hot loop, no per-section-to-full-column reorder. Light is still produced by\n * `unpackLightSection118` per section (caller is responsible).\n *\n * Returns: { blockStates: Uint16Array, biomes: Uint8Array, bytesRead: number }.\n * @param {Uint8Array} buffer\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {number} max_bits_per_biome\n * @returns {any}\n */\nexport function parseChunkDump118FullColumn(buffer, num_sections, max_bits_per_block, max_bits_per_biome) {\n const ptr0 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.parseChunkDump118FullColumn(ptr0, len0, num_sections, max_bits_per_block, max_bits_per_biome);\n return ret;\n}\n\n/**\n * Full drop-in replacement for `convertChunkToWasm`: parses dump + assembles light into\n * `convertChunkToWasm`-shaped Uint16Array(blocks) + Uint8Array(biomes/blockLight/skyLight).\n *\n * Light masks come as Uint32Array laid out as (low0, high0, low1, high1, ...).\n * The JS side flattens prismarine's [[high, low]] format into that order:\n * `Uint32Array.of(...mask.flatMap(([h, l]) => [l >>> 0, h >>> 0]))`.\n *\n * `sky_light_concat` / `block_light_concat` = concatenation of present light section\n * buffers (each 2048 bytes), in mask-bit order (border-below first).\n *\n * Returns: { blockStates: Uint16Array, biomes: Uint8Array, blockLight: Uint8Array,\n * skyLight: Uint8Array, bytesRead: number }.\n * @param {Uint8Array} dump_buffer\n * @param {Uint8Array} sky_light_concat\n * @param {Uint8Array} block_light_concat\n * @param {Uint32Array} sky_light_mask\n * @param {Uint32Array} block_light_mask\n * @param {Uint32Array} empty_sky_light_mask\n * @param {Uint32Array} empty_block_light_mask\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {number} max_bits_per_biome\n * @returns {any}\n */\nexport function parseChunkDump118FullColumnAll(dump_buffer, sky_light_concat, block_light_concat, sky_light_mask, block_light_mask, empty_sky_light_mask, empty_block_light_mask, num_sections, max_bits_per_block, max_bits_per_biome) {\n const ptr0 = passArray8ToWasm0(dump_buffer, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(sky_light_concat, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray8ToWasm0(block_light_concat, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passArray32ToWasm0(sky_light_mask, wasm.__wbindgen_malloc);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passArray32ToWasm0(block_light_mask, wasm.__wbindgen_malloc);\n const len4 = WASM_VECTOR_LEN;\n const ptr5 = passArray32ToWasm0(empty_sky_light_mask, wasm.__wbindgen_malloc);\n const len5 = WASM_VECTOR_LEN;\n const ptr6 = passArray32ToWasm0(empty_block_light_mask, wasm.__wbindgen_malloc);\n const len6 = WASM_VECTOR_LEN;\n const ret = wasm.parseChunkDump118FullColumnAll(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5, ptr6, len6, num_sections, max_bits_per_block, max_bits_per_biome);\n return ret;\n}\n\n/**\n * PoC bench helper: parse dump but return ONLY a checksum (no Uint16Array marshalling).\n * Lets us isolate raw parse cost from the JS<->WASM boundary cost.\n * @param {Uint8Array} buffer\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {number} max_bits_per_biome\n * @returns {number}\n */\nexport function parseChunkDump118NoMarshal(buffer, num_sections, max_bits_per_block, max_bits_per_biome) {\n const ptr0 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.parseChunkDump118NoMarshal(ptr0, len0, num_sections, max_bits_per_block, max_bits_per_biome);\n return ret;\n}\n\n/**\n * Parse a 1.17 chunk-section payload (the bytes inside `chunkData` of a\n * `map_chunk` packet) into a flat `Uint16Array` of block states **and** an\n * expanded per-block biome `Uint8Array`.\n *\n * `chunk_data` \u2014 exactly the bytes between the `chunkData` length prefix and\n * the `blockEntities` count in the wire packet (i.e. what\n * `prismarine-chunk` 1.17 `ChunkColumn.load(data, bitMap)` consumes). The\n * JS-side caller (mineflayer/protodef) does the outer-packet parsing and\n * hands the slice in directly.\n *\n * `bit_map_lo_hi` \u2014 section mask flattened to `[low0, high0, low1, high1,\n * ...]` u32 pairs. Bit `s` indicates that section index `s` is present in\n * `chunk_data`. Sections without a set bit decode to all-zeros.\n *\n * `biomes_cells` \u2014 the 1.17 wire `biomes` field (varint[num_sections * 64]),\n * passed straight through as `Int32Array`. May be empty (`&[]`) when the\n * caller didn't capture biomes \u2014 every block then gets `default_biome`\n * (typically 1 = plains).\n *\n * Returns `{ blockStates: Uint16Array(num_sections * 4096),\n * biomes: Uint8Array(num_sections * 4096),\n * bytesRead, bytesTotal }`.\n * Layout of both arrays is `(s * 4096) | (y_in << 8) | (z << 4) | x`,\n * matching what the WASM mesher already consumes for 1.18+ blocks.\n *\n * Light is **not** produced here \u2014 in 1.17 it arrives in a separate\n * `update_light` packet (see `parseUpdateLightV17`). The JS bridge fills in\n * defaults (sky=15, block=0) or merges real data from a paired light cache.\n * @param {Uint8Array} chunk_data\n * @param {Uint32Array} bit_map_lo_hi\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {Int32Array} biomes_cells\n * @param {number} default_biome\n * @returns {any}\n */\nexport function parseChunkSectionsV16V17(chunk_data, bit_map_lo_hi, num_sections, max_bits_per_block, biomes_cells, default_biome) {\n const ptr0 = passArray8ToWasm0(chunk_data, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray32ToWasm0(bit_map_lo_hi, wasm.__wbindgen_malloc);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArray32ToWasm0(biomes_cells, wasm.__wbindgen_malloc);\n const len2 = WASM_VECTOR_LEN;\n const ret = wasm.parseChunkSectionsV16V17(ptr0, len0, ptr1, len1, num_sections, max_bits_per_block, ptr2, len2, default_biome);\n return ret;\n}\n\n/**\n * Stage-3 entry: parse a raw `map_chunk` packet (1.18+) into the same shape as\n * `parseChunkDump118FullColumnAll` so the worker can drop it straight into\n * `generate_geometry`.\n *\n * `raw_packet` is the buffer captured from `bot._client.on('raw.map_chunk', ...)`;\n * it includes the leading packet-id varint (we skip it). `protocol` selects\n * the version-specific quirks (heightmaps NBT, trust_edges, anonymous NBT, etc.).\n *\n * Returns: `{ x, z, blockStates: Uint16Array, biomes: Uint8Array,\n * blockLight: Uint8Array, skyLight: Uint8Array, bytesRead }`.\n * @param {Uint8Array} raw_packet\n * @param {number} num_sections\n * @param {number} max_bits_per_block\n * @param {number} max_bits_per_biome\n * @param {number} protocol\n * @returns {any}\n */\nexport function parseMapChunkV18Plus(raw_packet, num_sections, max_bits_per_block, max_bits_per_biome, protocol) {\n const ptr0 = passArray8ToWasm0(raw_packet, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.parseMapChunkV18Plus(ptr0, len0, num_sections, max_bits_per_block, max_bits_per_biome, protocol);\n return ret;\n}\n\n/**\n * Parse a raw 1.17 `update_light` packet (as captured by\n * `client.on('raw.update_light', ...)`) into flat per-block sky/block light\n * arrays the WASM mesher consumes.\n *\n * `raw_packet` includes the leading packet-id varint (we skip it).\n * `num_sections` should match the column the light is for (16 in 1.17).\n *\n * Returns `{ x, z, trustEdges, skyLight, blockLight, skyLightMask,\n * emptySkyLightMask, blockLightMask, emptyBlockLightMask,\n * skyBelow?, skyAbove?, blockBelow?, blockAbove?, bytesRead }`.\n * World arrays are `num_sections * 4096` (`x + z*16 + y_abs*256`).\n * Omitted sections are left 0 and are not authoritative \u2014 use the masks.\n * @param {Uint8Array} raw_packet\n * @param {number} num_sections\n * @returns {any}\n */\nexport function parseUpdateLightV17(raw_packet, num_sections) {\n const ptr0 = passArray8ToWasm0(raw_packet, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.parseUpdateLightV17(ptr0, len0, num_sections);\n return ret;\n}\n\n/**\n * Unpack a single light section (2048 bytes, BitArrayNoSpan bpv=4) into 4096 nibble values.\n * @param {Uint8Array} buffer\n * @returns {Uint8Array}\n */\nexport function unpackLightSection118(buffer) {\n const ptr0 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.unpackLightSection118(ptr0, len0);\n var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();\n wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);\n return v2;\n}\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) {\n const ret = Error(getStringFromWasm0(arg0, arg1));\n return ret;\n };\n imports.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) {\n const v = arg0;\n const ret = typeof(v) === 'boolean' ? v : undefined;\n return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;\n };\n imports.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {\n const ret = debugString(arg1);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_is_null_dfda7d66506c95b5 = function(arg0) {\n const ret = arg0 === null;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(arg0) {\n const ret = arg0 === undefined;\n return ret;\n };\n imports.wbg.__wbg___wbindgen_number_get_9619185a74197f95 = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n };\n imports.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {\n const obj = arg1;\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {\n const ret = arg0[arg1 >>> 0];\n return ret;\n };\n imports.wbg.__wbg_get_af9dab7e9603ea93 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(arg0, arg1);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_Int32Array_b6281022039fba32 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof Int32Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434 = function(arg0) {\n let result;\n try {\n result = arg0 instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n };\n imports.wbg.__wbg_length_22ac23eaec9d8053 = function(arg0) {\n const ret = arg0.length;\n return ret;\n };\n imports.wbg.__wbg_length_497fc8f401ac8b1c = function(arg0) {\n const ret = arg0.length;\n return ret;\n };\n imports.wbg.__wbg_length_89c3414ed7f0594d = function(arg0) {\n const ret = arg0.length;\n return ret;\n };\n imports.wbg.__wbg_length_ab53989976907f11 = function(arg0) {\n const ret = arg0.length;\n return ret;\n };\n imports.wbg.__wbg_new_1ba21ce319a06297 = function() {\n const ret = new Object();\n return ret;\n };\n imports.wbg.__wbg_new_25f239778d6112b9 = function() {\n const ret = new Array();\n return ret;\n };\n imports.wbg.__wbg_new_6421f6084cc5bc5a = function(arg0) {\n const ret = new Uint8Array(arg0);\n return ret;\n };\n imports.wbg.__wbg_new_9f7fd5c3a6ba7298 = function(arg0) {\n const ret = new Uint16Array(arg0);\n return ret;\n };\n imports.wbg.__wbg_new_from_slice_e6bd3cfb5a35313d = function(arg0, arg1) {\n const ret = new Int32Array(getArrayI32FromWasm0(arg0, arg1));\n return ret;\n };\n imports.wbg.__wbg_new_with_length_1e8603a5c71d4e06 = function(arg0) {\n const ret = new Int32Array(arg0 >>> 0);\n return ret;\n };\n imports.wbg.__wbg_new_with_length_202b3db94ba5fc86 = function(arg0) {\n const ret = new Uint32Array(arg0 >>> 0);\n return ret;\n };\n imports.wbg.__wbg_new_with_length_aa5eaf41d35235e5 = function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return ret;\n };\n imports.wbg.__wbg_new_with_length_d7142aa2b68069a8 = function(arg0) {\n const ret = new Uint16Array(arg0 >>> 0);\n return ret;\n };\n imports.wbg.__wbg_now_69d776cd24f5215b = function() {\n const ret = Date.now();\n return ret;\n };\n imports.wbg.__wbg_prototypesetcall_b0bea5f39077cfd3 = function(arg0, arg1, arg2) {\n Uint16Array.prototype.set.call(getArrayU16FromWasm0(arg0, arg1), arg2);\n };\n imports.wbg.__wbg_prototypesetcall_dd07c344a74d4bfd = function(arg0, arg1, arg2) {\n Int32Array.prototype.set.call(getArrayI32FromWasm0(arg0, arg1), arg2);\n };\n imports.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {\n Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);\n };\n imports.wbg.__wbg_push_7d9be8f38fc13975 = function(arg0, arg1) {\n const ret = arg0.push(arg1);\n return ret;\n };\n imports.wbg.__wbg_set_169e13b608078b7b = function(arg0, arg1, arg2) {\n arg0.set(getArrayU8FromWasm0(arg1, arg2));\n };\n imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) {\n arg0[arg1] = arg2;\n };\n imports.wbg.__wbg_set_781438a03c0c3c81 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(arg0, arg1, arg2);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_set_7df433eea03a5c14 = function(arg0, arg1, arg2) {\n arg0[arg1 >>> 0] = arg2;\n };\n imports.wbg.__wbg_set_bb0c6a7fe60d81b5 = function(arg0, arg1, arg2) {\n arg0.set(getArrayU16FromWasm0(arg1, arg2));\n };\n imports.wbg.__wbg_set_e7cd108182596b7f = function(arg0, arg1, arg2) {\n arg0.set(getArrayU32FromWasm0(arg1, arg2));\n };\n imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return ret;\n };\n imports.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) {\n // Cast intrinsic for `U64 -> Externref`.\n const ret = BigInt.asUintN(64, arg0);\n return ret;\n };\n imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return ret;\n };\n imports.wbg.__wbindgen_init_externref_table = function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n };\n\n return imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedFloat32ArrayMemory0 = null;\n cachedInt32ArrayMemory0 = null;\n cachedUint16ArrayMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n wasm.__wbindgen_start();\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('wasm_mesher_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n", "//@ts-nocheck\n/**\n * Dedicated light-owner worker. Mesh workers stay read-only.\n * Protocol: init / setLightTables / setSkyLightEnabled / pushEvent /\n * setUpdateLightV17 / setUpdateLightV16 / step / poll.\n * Messages arriving before init completes are queued.\n */\n\nimport type { LightOwnerEvent, LightPublication } from './lightOwnerHost'\nimport { eventsFromWasmUpdateLight } from './updateLightToOwnerEvents'\nimport {\n CLIENT_LIGHT_TRACE_MESSAGE,\n armClientLightTrace,\n enableClientLightTrace,\n isClientLightTraceArmed,\n isClientLightTraceEnabled,\n postClientLightTrace\n} from '../debug/clientLightTrace'\n\ntype WasmEngine = {\n readonly fallbackRelights?: number\n setLightTables(emission: Uint8Array, opacity: Uint8Array): void\n setOcclusionTable?(occupancy: Uint8Array): void\n setSkyLightEnabled?(enabled: boolean): void\n pushEvent(event: LightOwnerEvent): void\n step(budgetMs: number): boolean\n pollCompletedPublication(): LightPublication | null\n}\n\nlet engine: WasmEngine | null = null\nlet wasm: any = null\nlet worldMinY = 0\nconst pending: any[] = []\nlet localContinue: ReturnType<typeof setTimeout> | null = null\nlet stepGeneration = 0\n\nconst ctx = self as unknown as DedicatedWorkerGlobalScope\nconst postTrace = (message: { type: typeof CLIENT_LIGHT_TRACE_MESSAGE; events?: unknown; event?: unknown }) => {\n ctx.postMessage(message)\n}\n\nfunction runOwnerStepSlice(budgetMs: number) {\n localContinue = null\n const remaining = engine?.step(budgetMs) ?? false\n const publication = engine?.pollCompletedPublication() ?? null\n ctx.postMessage({ type: 'stepped', remaining, publication, stepGeneration, fallbackRelights: engine?.fallbackRelights ?? 0 })\n if (publication && isClientLightTraceEnabled() && isClientLightTraceArmed()) {\n postClientLightTrace(postTrace, {\n phase: 'ownerComplete',\n lightVersion: publication.publicationVersion,\n worldGeneration: publication.worldGeneration,\n queueDepth: remaining ? 1 : 0,\n fallbackRelights: engine?.fallbackRelights ?? 0\n })\n }\n if (remaining) {\n localContinue = setTimeout(() => {\n runOwnerStepSlice(budgetMs)\n }, 0)\n }\n}\n\nasync function handle(data: any) {\n if (!data || typeof data !== 'object') return\n switch (data.type) {\n case 'init': {\n wasm = await import('../../wasm-mesher/runtime-build/wasm_mesher.js')\n await wasm.default('/wasm_mesher_bg.wasm')\n const Engine = (wasm as unknown as { JsLightEngine: new (minY: number, height: number) => WasmEngine }).JsLightEngine\n worldMinY = data.worldMinY ?? 0\n engine = new Engine(worldMinY, data.worldHeight ?? 256)\n ctx.postMessage({ type: 'ready' })\n const queued = pending.splice(0, pending.length)\n for (const message of queued) await handle(message)\n break\n }\n case 'setLightTables': {\n engine?.setLightTables(data.emission, data.opacity)\n if (data.occupancy) engine?.setOcclusionTable?.(data.occupancy)\n ctx.postMessage({ type: 'tablesSet' })\n break\n }\n case 'setSkyLightEnabled': {\n engine?.setSkyLightEnabled?.(Boolean(data.enabled))\n break\n }\n case 'pushEvent': {\n engine?.pushEvent(data.event)\n const event = data.event as LightOwnerEvent | undefined\n const currentColumn =\n event && 'x' in event && typeof event.x === 'number'\n ? `${Math.floor(event.x / 16)},${Math.floor((event as { z: number }).z / 16)}`\n : event && 'sx' in event && typeof event.sx === 'number'\n ? `${event.sx},${(event as { sz: number }).sz}`\n : undefined\n if (isClientLightTraceEnabled() && isClientLightTraceArmed()) {\n postClientLightTrace(postTrace, {\n phase: 'ownerAdmit',\n currentColumn,\n queueDepth: pending.length\n })\n }\n break\n }\n case 'clientLightTraceConfig': {\n enableClientLightTrace(Boolean(data.enabled))\n armClientLightTrace(Boolean(data.armed))\n break\n }\n case 'setUpdateLightV17': {\n if (!wasm || !engine) break\n const parsed = wasm.parseUpdateLightV17(data.rawPacket as Uint8Array, data.numSections as number)\n for (const event of eventsFromWasmUpdateLight(parsed, data.numSections as number, worldMinY)) {\n engine.pushEvent(event)\n }\n break\n }\n case 'setUpdateLightV16': {\n if (!wasm || !engine) break\n const parsed = wasm.parseUpdateLightV17(data.rawPacket as Uint8Array, 16)\n for (const event of eventsFromWasmUpdateLight(parsed, 16, worldMinY)) {\n engine.pushEvent(event)\n }\n break\n }\n case 'step': {\n if (typeof data.stepGeneration === 'number') stepGeneration = data.stepGeneration\n if (localContinue) break\n runOwnerStepSlice(data.budgetMs ?? 5)\n break\n }\n case 'poll': {\n const publication = engine?.pollCompletedPublication() ?? null\n ctx.postMessage({ type: 'publication', publication })\n break\n }\n default:\n break\n }\n}\n\nctx.onmessage = async (message: MessageEvent) => {\n const data = message.data\n if (!data || typeof data !== 'object') return\n try {\n if (!engine && data.type !== 'init') {\n pending.push(data)\n return\n }\n await handle(data)\n } catch (err) {\n ctx.postMessage({ type: 'error', error: err instanceof Error ? err.message : String(err) })\n }\n}\n", "//@ts-nocheck\nimport { maskBitGet, parsedUpdateLightFromWasm, type ParsedUpdateLight } from '../../wasm-mesher/worker/mesherWasmLightMerge'\nimport { packUnpackedLightSection } from '../../mesher-shared/lightNibblePack'\nimport type { LightOwnerEvent } from './lightOwnerHost'\n\nexport function eventsFromParsedUpdateLight(parsed: ParsedUpdateLight, worldMinY: number): LightOwnerEvent[] {\n const sx = parsed.x\n const sz = parsed.z\n const baseSy = Math.floor(worldMinY / 16)\n const events: LightOwnerEvent[] = []\n const pushChannel = (channel: 'block' | 'sky', dataMask: Uint32Array, emptyMask: Uint32Array, column: Uint8Array, below?: Uint8Array, above?: Uint8Array) => {\n const totalBits = parsed.numSections + 2\n for (let bit = 0; bit < totalBits; bit++) {\n const hasData = maskBitGet(dataMask, bit)\n const hasEmpty = maskBitGet(emptyMask, bit)\n if (!hasData && !hasEmpty) continue\n const sy = baseSy + bit - 1\n if (hasEmpty) {\n events.push({ type: 'serverLight', sx, sy, sz, channel, kind: 'empty', trusted: parsed.trustEdges })\n continue\n }\n let unpacked: Uint8Array | undefined\n if (bit === 0) unpacked = below\n else if (bit === parsed.numSections + 1) unpacked = above\n else unpacked = column.subarray((bit - 1) * 4096, bit * 4096)\n if (!unpacked || unpacked.length < 4096) {\n events.push({ type: 'serverLight', sx, sy, sz, channel, kind: 'empty', trusted: parsed.trustEdges })\n continue\n }\n events.push({\n type: 'serverLight',\n sx,\n sy,\n sz,\n channel,\n kind: 'data',\n trusted: parsed.trustEdges,\n data: packUnpackedLightSection(unpacked)\n })\n }\n }\n pushChannel('block', parsed.blockLightMask, parsed.emptyBlockLightMask, parsed.blockLight, parsed.blockBelow, parsed.blockAbove)\n pushChannel('sky', parsed.skyLightMask, parsed.emptySkyLightMask, parsed.skyLight, parsed.skyBelow, parsed.skyAbove)\n return events\n}\n\nexport function eventsFromWasmUpdateLight(parsedJs: unknown, numSections: number, worldMinY: number): LightOwnerEvent[] {\n return eventsFromParsedUpdateLight(parsedUpdateLightFromWasm(parsedJs, numSections), worldMinY)\n}\n", "//@ts-nocheck\n/** 16\u00B3 unpacked light values per section. */\nexport const LIGHT_BLOCKS_PER_SECTION = 4096\n\nexport type ParsedUpdateLight = {\n x: number\n z: number\n trustEdges: boolean\n numSections: number\n skyLight: Uint8Array\n blockLight: Uint8Array\n skyLightMask: Uint32Array\n emptySkyLightMask: Uint32Array\n blockLightMask: Uint32Array\n emptyBlockLightMask: Uint32Array\n skyBelow?: Uint8Array\n skyAbove?: Uint8Array\n blockBelow?: Uint8Array\n blockAbove?: Uint8Array\n}\n\nexport type UpdateLightColumnCache = {\n numSections: number\n trustEdges: boolean\n skyLight: Uint8Array\n blockLight: Uint8Array\n skyPresent: Uint32Array\n blockPresent: Uint32Array\n skyBelow?: Uint8Array\n skyAbove?: Uint8Array\n blockBelow?: Uint8Array\n blockAbove?: Uint8Array\n}\n\nexport function worldSectionMaskBit(sectionIndex: number): number {\n return sectionIndex + 1\n}\n\nexport function lightMaskWordCount(numSections: number): number {\n const bits = numSections + 2\n return Math.max(2, Math.ceil(bits / 64) * 2)\n}\n\nexport function maskBitGet(mask: Uint32Array, i: number): boolean {\n const longIdx = i >> 6\n const bitInLong = i & 63\n const pair = longIdx * 2\n if (pair + 1 >= mask.length) return false\n const val = bitInLong < 32 ? mask[pair]! : mask[pair + 1]!\n const bit = bitInLong & 31\n return ((val >>> bit) & 1) === 1\n}\n\nexport function maskBitSet(mask: Uint32Array, i: number): void {\n const longIdx = i >> 6\n const bitInLong = i & 63\n const pair = longIdx * 2\n if (pair + 1 >= mask.length) return\n if (bitInLong < 32) mask[pair] = (mask[pair]! | (1 << bitInLong)) >>> 0\n else mask[pair + 1] = (mask[pair + 1]! | (1 << (bitInLong - 32))) >>> 0\n}\n\nexport function isLightSectionPresent(present: Uint32Array, maskBit: number): boolean {\n return maskBitGet(present, maskBit)\n}\n\nexport function createEmptyLightCache(numSections: number): UpdateLightColumnCache {\n const worldBytes = numSections * LIGHT_BLOCKS_PER_SECTION\n const words = lightMaskWordCount(numSections)\n return {\n numSections,\n trustEdges: false,\n skyLight: new Uint8Array(worldBytes),\n blockLight: new Uint8Array(worldBytes),\n skyPresent: new Uint32Array(words),\n blockPresent: new Uint32Array(words)\n }\n}\n\nfunction copySection(dest: Uint8Array, src: Uint8Array, sectionIndex: number, value?: number) {\n const start = sectionIndex * LIGHT_BLOCKS_PER_SECTION\n const end = start + LIGHT_BLOCKS_PER_SECTION\n if (value !== undefined) {\n dest.fill(value, start, end)\n return\n }\n if (src.length < end) return\n dest.set(src.subarray(start, end), start)\n}\n\nfunction mergePadding(hasData: boolean, incoming?: Uint8Array): Uint8Array {\n if (hasData && incoming && incoming.length === LIGHT_BLOCKS_PER_SECTION) {\n return new Uint8Array(incoming)\n }\n return new Uint8Array(LIGHT_BLOCKS_PER_SECTION)\n}\n\nfunction mergeChannel(\n destValues: Uint8Array,\n destPresent: Uint32Array,\n srcValues: Uint8Array,\n dataMask: Uint32Array,\n emptyMask: Uint32Array,\n numSections: number,\n destBelow: Uint8Array | undefined,\n destAbove: Uint8Array | undefined,\n incomingBelow: Uint8Array | undefined,\n incomingAbove: Uint8Array | undefined\n): { below?: Uint8Array; above?: Uint8Array } {\n let below = destBelow\n let above = destAbove\n const totalBits = numSections + 2\n for (let bit = 0; bit < totalBits; bit++) {\n const hasData = maskBitGet(dataMask, bit)\n const hasEmpty = maskBitGet(emptyMask, bit)\n if (!hasData && !hasEmpty) continue\n\n if (bit === 0) {\n below = mergePadding(hasData, incomingBelow)\n maskBitSet(destPresent, 0)\n continue\n }\n if (bit === numSections + 1) {\n above = mergePadding(hasData, incomingAbove)\n maskBitSet(destPresent, bit)\n continue\n }\n\n const sectionIndex = bit - 1\n if (hasData) copySection(destValues, srcValues, sectionIndex)\n else copySection(destValues, srcValues, sectionIndex, 0)\n maskBitSet(destPresent, bit)\n }\n return { below, above }\n}\n\nexport function mergeUpdateLight(cache: UpdateLightColumnCache | undefined, parsed: ParsedUpdateLight): UpdateLightColumnCache {\n const next = cache ? cloneLightCache(cache) : createEmptyLightCache(parsed.numSections)\n next.trustEdges = parsed.trustEdges\n next.numSections = parsed.numSections\n\n const skyPad = mergeChannel(\n next.skyLight,\n next.skyPresent,\n parsed.skyLight,\n parsed.skyLightMask,\n parsed.emptySkyLightMask,\n parsed.numSections,\n next.skyBelow,\n next.skyAbove,\n parsed.skyBelow,\n parsed.skyAbove\n )\n next.skyBelow = skyPad.below\n next.skyAbove = skyPad.above\n\n const blockPad = mergeChannel(\n next.blockLight,\n next.blockPresent,\n parsed.blockLight,\n parsed.blockLightMask,\n parsed.emptyBlockLightMask,\n parsed.numSections,\n next.blockBelow,\n next.blockAbove,\n parsed.blockBelow,\n parsed.blockAbove\n )\n next.blockBelow = blockPad.below\n next.blockAbove = blockPad.above\n\n return next\n}\n\nexport function cloneLightCache(cache: UpdateLightColumnCache): UpdateLightColumnCache {\n return {\n numSections: cache.numSections,\n trustEdges: cache.trustEdges,\n skyLight: new Uint8Array(cache.skyLight),\n blockLight: new Uint8Array(cache.blockLight),\n skyPresent: new Uint32Array(cache.skyPresent),\n blockPresent: new Uint32Array(cache.blockPresent),\n skyBelow: cache.skyBelow ? new Uint8Array(cache.skyBelow) : undefined,\n skyAbove: cache.skyAbove ? new Uint8Array(cache.skyAbove) : undefined,\n blockBelow: cache.blockBelow ? new Uint8Array(cache.blockBelow) : undefined,\n blockAbove: cache.blockAbove ? new Uint8Array(cache.blockAbove) : undefined\n }\n}\n\nexport function displayLightColumn(cache: UpdateLightColumnCache, channel: 'sky' | 'block', fill = channel === 'sky' ? 15 : 0): Uint8Array {\n const out = new Uint8Array(cache.numSections * LIGHT_BLOCKS_PER_SECTION)\n overlayDisplayLight(cache, channel, out, fill)\n return out\n}\n\n/** Overlay the current display into a reusable conversion buffer. */\nexport function overlayDisplayLight(cache: UpdateLightColumnCache, channel: 'sky' | 'block', out: Uint8Array, fill = channel === 'sky' ? 15 : 0): void {\n const src = channel === 'sky' ? cache.skyLight : cache.blockLight\n const present = channel === 'sky' ? cache.skyPresent : cache.blockPresent\n for (let s = 0; s < cache.numSections; s++) {\n const start = s * LIGHT_BLOCKS_PER_SECTION\n const end = start + LIGHT_BLOCKS_PER_SECTION\n if (maskBitGet(present, worldSectionMaskBit(s))) {\n out.set(src.subarray(start, end), start)\n } else {\n out.fill(fill, start, end)\n }\n }\n}\n\nexport function parsedUpdateLightFromWasm(parsed: any, numSections: number): ParsedUpdateLight {\n return {\n x: parsed.x as number,\n z: parsed.z as number,\n trustEdges: Boolean(parsed.trustEdges),\n numSections,\n skyLight: parsed.skyLight as Uint8Array,\n blockLight: parsed.blockLight as Uint8Array,\n skyLightMask: (parsed.skyLightMask as Uint32Array) ?? new Uint32Array(2),\n emptySkyLightMask: (parsed.emptySkyLightMask as Uint32Array) ?? new Uint32Array(2),\n blockLightMask: (parsed.blockLightMask as Uint32Array) ?? new Uint32Array(2),\n emptyBlockLightMask: (parsed.emptyBlockLightMask as Uint32Array) ?? new Uint32Array(2),\n skyBelow: parsed.skyBelow as Uint8Array | undefined,\n skyAbove: parsed.skyAbove as Uint8Array | undefined,\n blockBelow: parsed.blockBelow as Uint8Array | undefined,\n blockAbove: parsed.blockAbove as Uint8Array | undefined\n }\n}\n", "//@ts-nocheck\n/** Packed 2048-byte nibble section \u2194 unpacked 4096-byte per-block values. */\n\nexport const PACKED_LIGHT_SECTION_BYTES = 2048\nexport const UNPACKED_LIGHT_SECTION_BYTES = 4096\n\nexport function packUnpackedLightSection(unpacked: Uint8Array): Uint8Array {\n const packed = new Uint8Array(PACKED_LIGHT_SECTION_BYTES)\n const n = Math.min(unpacked.length, UNPACKED_LIGHT_SECTION_BYTES)\n for (let i = 0; i < n; i++) {\n const v = unpacked[i]! & 0x0f\n const byte = i >> 1\n packed[byte] = i & 1 ? (packed[byte]! & 0x0f) | (v << 4) : (packed[byte]! & 0xf0) | v\n }\n return packed\n}\n\nexport function unpackPackedLightSection(packed: Uint8Array): Uint8Array {\n const unpacked = new Uint8Array(UNPACKED_LIGHT_SECTION_BYTES)\n const n = Math.min(packed.length, PACKED_LIGHT_SECTION_BYTES)\n for (let i = 0; i < n * 2 && i < UNPACKED_LIGHT_SECTION_BYTES; i++) {\n const byte = packed[i >> 1] ?? 0\n unpacked[i] = i & 1 ? byte >> 4 : byte & 0x0f\n }\n return unpacked\n}\n", "//@ts-nocheck\n/**\n * Bounded causal trace for client lighting delivery.\n * Off by default. Records metadata and aggregates only \u2014 never meshes, chunks, or raw packets.\n */\n\nexport const CLIENT_LIGHT_TRACE_CAPACITY = 2048\nexport const CLIENT_LIGHT_TRACE_MESSAGE = '__clientLightTrace' as const\nexport const CLIENT_LIGHT_TRACE_BATCH_MS = 250\nexport const CLIENT_LIGHT_TRACE_BATCH_SIZE = 200\n\nexport type ClientLightTracePhase =\n | 'inputClick'\n | 'inputHand'\n | 'blockChange'\n | 'ownerEnqueue'\n | 'ownerAdmit'\n | 'ownerComplete'\n | 'mesherEnqueue'\n | 'mesherStart'\n | 'mesherEnd'\n | 'mesherFlush'\n | 'receive'\n | 'reject'\n | 'pending'\n | 'flush'\n | 'gpuStaged'\n | 'gpuUploaded'\n | 'gpuCommitted'\n | 'gpuDrawn'\n\nexport type ClientLightTraceEvent = {\n t: number\n tLocal: number\n timeOrigin: number\n phase: ClientLightTracePhase\n sessionEpoch?: number\n editSeq?: number\n requestId?: number\n sectionKey?: string\n blockVersion?: number\n lightVersion?: number\n worldGeneration?: number\n eventAgeMs?: number\n currentColumn?: string\n queueDepth?: number\n fallbackRelights?: number\n txnMs?: number\n displayedStart?: number\n displayedCount?: number\n candidateStart?: number\n candidateCount?: number\n pendingReplace?: boolean\n pendingMove?: boolean\n unuploadedRanges?: number\n drawableFaces?: number\n cullReason?: string\n flushReason?: string\n workerIndex?: number\n}\n\nexport type ClientLightTracePartial = Omit<ClientLightTraceEvent, 't' | 'tLocal' | 'timeOrigin'> &\n Partial<Pick<ClientLightTraceEvent, 't' | 'tLocal' | 'timeOrigin'>>\n\nexport type ClientLightTraceMessage = {\n type: typeof CLIENT_LIGHT_TRACE_MESSAGE\n event?: ClientLightTraceEvent\n events?: ClientLightTraceEvent[]\n}\n\nexport type ClientLightTraceConfig = {\n enabled: boolean\n armed: boolean\n}\n\ntype ClientLightTraceConfigListener = (config: ClientLightTraceConfig) => void\n\nlet enabled = false\nlet armed = false\nlet sessionEpoch = 0\nlet editSeq = 0\nlet requestId = 0\nlet dropped = 0\nlet start = 0\nlet count = 0\nlet sampleRequested = false\nlet lastGpuDrawnMetric: number | undefined\nlet lastGpuUploadedMetric: number | undefined\nlet pendingPost: ((message: ClientLightTraceMessage) => void) | null = null\nlet pendingEvents: ClientLightTraceEvent[] = []\nlet pendingTimer: ReturnType<typeof setTimeout> | null = null\nlet configListener: ClientLightTraceConfigListener | undefined\nconst ring: Array<ClientLightTraceEvent | undefined> = new Array(CLIENT_LIGHT_TRACE_CAPACITY)\n\nexport function isClientLightTraceEnabled(): boolean {\n return enabled\n}\n\nexport function isClientLightTraceArmed(): boolean {\n return armed\n}\n\nexport function enableClientLightTrace(on: boolean): void {\n enabled = on\n if (!on) {\n armed = false\n dropPendingPosts()\n resetGpuSampleState()\n }\n attachDebugDump(on)\n notifyConfig()\n}\n\nexport function armClientLightTrace(on = true): void {\n armed = on\n if (!armed) dropPendingPosts()\n notifyConfig()\n}\n\nexport function setClientLightTraceConfigListener(listener: ClientLightTraceConfigListener | undefined): void {\n configListener = listener\n}\n\nexport function maybeEnableClientLightTraceFromLocation(loc: { search?: string } | undefined = typeof location === 'undefined' ? undefined : location): void {\n try {\n if (!loc) return\n if (new URLSearchParams(loc.search ?? '').get('clientLightTrace') === '1') {\n enableClientLightTrace(true)\n }\n } catch {\n // ignore malformed URL in non-browser runtimes\n }\n}\n\nexport function comparableNow(): number {\n return performance.timeOrigin + performance.now()\n}\n\nexport function getClientLightTraceSessionEpoch(): number {\n return sessionEpoch\n}\n\nexport function bumpClientLightTraceSessionEpoch(): number {\n sessionEpoch++\n return sessionEpoch\n}\n\nexport function nextClientLightEditSeq(): number {\n editSeq++\n return editSeq\n}\n\nexport function nextClientLightRequestId(): number {\n requestId++\n return requestId\n}\n\nexport function currentClientLightTraceIds(): { sessionEpoch: number; editSeq: number } {\n return { sessionEpoch, editSeq }\n}\n\nexport function clearClientLightTrace(): void {\n start = 0\n count = 0\n dropped = 0\n ring.fill(undefined)\n resetGpuSampleState()\n}\n\nexport function recordClientLightTrace(partial: ClientLightTracePartial): ClientLightTraceEvent | undefined {\n if (!enabled) return undefined\n const tLocal = partial.tLocal ?? performance.now()\n const timeOrigin = partial.timeOrigin ?? performance.timeOrigin\n const event: ClientLightTraceEvent = {\n ...partial,\n t: partial.t ?? timeOrigin + tLocal,\n tLocal,\n timeOrigin,\n sessionEpoch: partial.sessionEpoch ?? sessionEpoch\n }\n pushEvent(event)\n return event\n}\n\nexport function requestClientLightTraceSample(): void {\n sampleRequested = true\n}\n\nexport function recordClientLightTraceGpuSample(\n phase: 'gpuDrawn' | 'gpuUploaded',\n metric: number,\n partial: ClientLightTracePartial | (() => ClientLightTracePartial)\n): ClientLightTraceEvent | undefined {\n if (!enabled) return undefined\n const last = phase === 'gpuDrawn' ? lastGpuDrawnMetric : lastGpuUploadedMetric\n if (last === metric && !sampleRequested) return undefined\n if (phase === 'gpuDrawn') lastGpuDrawnMetric = metric\n else lastGpuUploadedMetric = metric\n sampleRequested = false\n return recordClientLightTrace(typeof partial === 'function' ? partial() : partial)\n}\n\nexport function ingestRemoteClientLightTrace(event: ClientLightTraceEvent | undefined): void {\n if (!enabled || !event || typeof event.t !== 'number' || !event.phase) return\n pushEvent(event)\n}\n\nexport function ingestRemoteClientLightTraceMessage(message: ClientLightTraceMessage | { type?: unknown; event?: unknown; events?: unknown }): void {\n if (!isClientLightTraceMessage(message)) return\n const events = message.events ?? (message.event ? [message.event] : [])\n for (const event of events) ingestRemoteClientLightTrace(event)\n}\n\nexport function postClientLightTrace(post: (message: ClientLightTraceMessage) => void, partial: ClientLightTracePartial): void {\n const event = recordClientLightTrace(partial)\n if (!event || !armed) return\n pendingPost = post\n pendingEvents.push(event)\n if (pendingEvents.length >= CLIENT_LIGHT_TRACE_BATCH_SIZE) {\n flushClientLightTracePosts()\n return\n }\n if (pendingTimer == null) {\n pendingTimer = setTimeout(() => {\n pendingTimer = null\n flushClientLightTracePosts()\n }, CLIENT_LIGHT_TRACE_BATCH_MS)\n }\n}\n\nexport function flushClientLightTracePosts(): void {\n if (pendingTimer != null) {\n clearTimeout(pendingTimer)\n pendingTimer = null\n }\n if (!pendingPost || pendingEvents.length === 0) {\n pendingEvents = []\n pendingPost = null\n return\n }\n const events = pendingEvents\n const post = pendingPost\n pendingEvents = []\n pendingPost = null\n post({ type: CLIENT_LIGHT_TRACE_MESSAGE, events })\n}\n\nexport function isClientLightTraceMessage(data: unknown): data is ClientLightTraceMessage {\n if (!data || typeof data !== 'object') return false\n const message = data as { type?: unknown; event?: unknown; events?: unknown }\n if (message.type !== CLIENT_LIGHT_TRACE_MESSAGE) return false\n if (Array.isArray(message.events)) return true\n return !!message.event && typeof message.event === 'object'\n}\n\nexport function getClientLightTraceEvents(): ClientLightTraceEvent[] {\n const out: ClientLightTraceEvent[] = []\n for (let i = 0; i < count; i++) {\n const event = ring[(start + i) % CLIENT_LIGHT_TRACE_CAPACITY]\n if (event) out.push(event)\n }\n return out\n}\n\nexport function getClientLightTraceAggregates(): { count: number; dropped: number; byPhase: Partial<Record<ClientLightTracePhase, number>> } {\n const byPhase: Partial<Record<ClientLightTracePhase, number>> = {}\n for (const event of getClientLightTraceEvents()) {\n byPhase[event.phase] = (byPhase[event.phase] ?? 0) + 1\n }\n return { count: count, dropped, byPhase }\n}\n\nexport function dumpClientLightTrace(): {\n events: ClientLightTraceEvent[]\n aggregates: ReturnType<typeof getClientLightTraceAggregates>\n} {\n requestClientLightTraceSample()\n return {\n events: getClientLightTraceEvents(),\n aggregates: getClientLightTraceAggregates()\n }\n}\n\nfunction dropPendingPosts(): void {\n if (pendingTimer != null) {\n clearTimeout(pendingTimer)\n pendingTimer = null\n }\n pendingEvents = []\n pendingPost = null\n}\n\nfunction resetGpuSampleState(): void {\n sampleRequested = false\n lastGpuDrawnMetric = undefined\n lastGpuUploadedMetric = undefined\n}\n\nfunction notifyConfig(): void {\n configListener?.({ enabled, armed })\n}\n\nfunction pushEvent(event: ClientLightTraceEvent): void {\n if (count === CLIENT_LIGHT_TRACE_CAPACITY) {\n ring[start] = event\n start = (start + 1) % CLIENT_LIGHT_TRACE_CAPACITY\n dropped++\n return\n }\n ring[(start + count) % CLIENT_LIGHT_TRACE_CAPACITY] = event\n count++\n}\n\nfunction attachDebugDump(on: boolean): void {\n if (typeof globalThis === 'undefined') return\n const host = globalThis as typeof globalThis & {\n getClientLightTrace?: typeof getClientLightTraceEvents\n getClientLightTraceAggregates?: typeof getClientLightTraceAggregates\n clientLightTraceArm?: (on?: boolean) => void\n clientLightTraceDump?: typeof dumpClientLightTrace\n }\n if (on) {\n host.getClientLightTrace = getClientLightTraceEvents\n host.getClientLightTraceAggregates = getClientLightTraceAggregates\n host.clientLightTraceArm = (next = true) => {\n armClientLightTrace(next !== false)\n }\n host.clientLightTraceDump = dumpClientLightTrace\n } else {\n delete host.getClientLightTrace\n delete host.getClientLightTraceAggregates\n delete host.clientLightTraceArm\n delete host.clientLightTraceDump\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["init_dirname", "__esmMin", "process_exports", "__export", "_debugEnd", "_debugProcess", "_events", "_eventsCount", "_exiting", "_fatalExceptions", "_getActiveHandles", "_getActiveRequests", "_kill", "_linkedBinding", "_maxListeners", "_preload_modules", "_rawDebug", "_startProfilerIdleNotifier", "_stopProfilerIdleNotifier", "_tickCallback", "abort", "addListener", "allowedNodeEnvironmentFlags", "arch", "argv", "argv0", "assert", "binding", "browser", "chdir", "config", "cpuUsage", "cwd", "debugPort", "process", "dlopen", "domain", "emit", "emitWarning", "env", "execArgv", "execPath", "exit", "features", "hasUncaughtExceptionCaptureCallback", "hrtime", "kill", "listeners", "memoryUsage", "moduleLoadList", "nextTick", "off", "on", "once", "openStdin", "pid", "platform", "ppid", "prependListener", "prependOnceListener", "reallyExit", "release", "removeAllListeners", "removeListener", "resourceUsage", "setSourceMapsEnabled", "setUncaughtExceptionCaptureCallback", "stderr", "stdin", "stdout", "title", "umask", "uptime", "version", "versions", "unimplemented", "name", "cleanUpNextTick", "draining", "currentQueue", "queue", "queueIndex", "drainQueue", "timeout", "len", "fun", "args", "i", "Item", "array", "noop", "condition", "message", "_performance", "previousTimestamp", "baseNow", "clocktime", "seconds", "nanoseconds", "nanoPerSec", "nowOffset", "init_process", "__esmMin", "init_dirname", "init_buffer", "type", "mask", "dir", "time", "diff", "init_process", "__esmMin", "dew$2", "_dewExec$2", "exports$2", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "code", "i", "len", "getLens", "b64", "validLen", "placeHoldersLen", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "extraBytes", "parts", "maxChunkLength", "len2", "dew$1", "_dewExec$1", "exports$1", "buffer", "offset", "isLE", "mLen", "nBytes", "e", "m", "eLen", "eMax", "eBias", "nBits", "d", "s", "value", "c", "rt", "dew", "_dewExec", "exports", "base64", "ieee754", "customInspectSymbol", "Buffer", "SlowBuffer", "K_MAX_LENGTH", "typedArraySupport", "proto", "createBuffer", "length", "buf", "arg", "encodingOrOffset", "allocUnsafe", "from", "fromString", "fromArrayView", "isInstance", "fromArrayBuffer", "valueOf", "b", "fromObject", "assertSize", "size", "alloc", "fill", "encoding", "checked", "string", "actual", "fromArrayLike", "array", "arrayView", "copy", "byteOffset", "obj", "numberIsNaN", "a", "x", "y", "list", "pos", "mustMatch", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "str", "max", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "indexSize", "arrLength", "valLength", "read", "foundIndex", "found", "j", "hexWrite", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "base64Write", "ucs2Write", "utf16leToBytes", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "codePoints", "ret", "out", "hexSliceLookupTable", "bytes", "newBuf", "checkOffset", "ext", "noAssert", "mul", "defineBigIntMethod", "validateNumber", "first", "last", "boundsError", "lo", "hi", "checkInt", "min", "maxBytes", "wrtBigUInt64LE", "checkIntBI", "wrtBigUInt64BE", "limit", "sub", "checkIEEE754", "writeFloat", "littleEndian", "writeDouble", "targetStart", "errors", "E", "sym", "getMessage", "Base", "name", "range", "input", "msg", "received", "addNumericalSeparator", "checkBounds", "type", "INVALID_BASE64_RE", "base64clean", "units", "leadSurrogate", "byteArray", "src", "dst", "alphabet", "table", "i16", "fn", "BufferBigIntNotDefined", "init_chunk_DtuTasat", "__esmMin", "init_dirname", "init_buffer", "init_process", "exports", "Buffer", "INSPECT_MAX_BYTES", "kMaxLength", "init_buffer", "__esmMin", "init_dirname", "init_process", "init_chunk_DtuTasat", "dew", "init_buffer", "__esmMin", "wasm_mesher_exports", "__export", "JsLightEngine", "computeWireframeEdges", "computeWireframeEdgesU16", "wasm_mesher_default", "generateGeometryFromDump118", "generateGeometryFromMapChunkV18Plus", "generateGeometryFromMapChunkV18PlusMulti", "generateGeometryFromParsedV16V17", "generateGeometryFromParsedV16V17Multi", "generate_geometry", "generate_geometry_multi", "initSync", "parseChunkDump118", "parseChunkDump118FullColumn", "parseChunkDump118FullColumnAll", "parseChunkDump118NoMarshal", "parseChunkSectionsV16V17", "parseMapChunkV18Plus", "parseUpdateLightV17", "unpackLightSection118", "addToExternrefTable0", "obj", "idx", "wasm", "debugString", "val", "type", "description", "name", "length", "debug", "i", "builtInMatches", "className", "getArrayF32FromWasm0", "ptr", "len", "getFloat32ArrayMemory0", "getArrayI32FromWasm0", "getInt32ArrayMemory0", "getArrayU16FromWasm0", "getUint16ArrayMemory0", "getArrayU32FromWasm0", "getUint32ArrayMemory0", "getArrayU8FromWasm0", "getUint8ArrayMemory0", "getDataViewMemory0", "cachedDataViewMemory0", "cachedFloat32ArrayMemory0", "cachedInt32ArrayMemory0", "getStringFromWasm0", "decodeText", "cachedUint16ArrayMemory0", "cachedUint32ArrayMemory0", "cachedUint8ArrayMemory0", "handleError", "f", "args", "e", "isLikeNone", "x", "passArray16ToWasm0", "arg", "malloc", "WASM_VECTOR_LEN", "passArray32ToWasm0", "passArray8ToWasm0", "passArrayF32ToWasm0", "passStringToWasm0", "realloc", "buf", "cachedTextEncoder", "mem", "offset", "code", "view", "ret", "numBytesDecoded", "MAX_SAFARI_DECODE_BYTES", "cachedTextDecoder", "positions", "indices", "ptr0", "len0", "ptr1", "len1", "v3", "section_x", "section_y", "section_z", "section_height", "world_min_y", "world_max_y", "section_data_start_y", "dump_buffer", "sky_light_concat", "block_light_concat", "sky_light_mask", "block_light_mask", "empty_sky_light_mask", "empty_block_light_mask", "num_sections", "max_bits_per_block", "max_bits_per_biome", "invisible_blocks", "transparent_blocks", "no_ao_blocks", "cull_identical_blocks", "occluding_blocks", "enable_lighting", "smooth_lighting", "sky_light_value", "ptr2", "len2", "ptr3", "len3", "ptr4", "len4", "ptr5", "len5", "ptr6", "len6", "ptr7", "len7", "ptr8", "len8", "ptr9", "len9", "ptr10", "len10", "ptr11", "len11", "raw_packet", "protocol", "raw_packets", "num_sections_list", "chunk_xs", "chunk_zs", "chunk_data", "bit_map_lo_hi", "biomes_cells", "default_biome", "sky_light", "block_light", "chunk_data_list", "biomes_cells_list", "sky_light_list", "block_light_list", "block_states", "biomes", "buffer", "v2", "__wbg_load", "module", "imports", "EXPECTED_RESPONSE_TYPES", "bytes", "instance", "__wbg_get_imports", "arg0", "arg1", "v", "result", "arg2", "table", "__wbg_finalize_init", "__wbg_init", "module_or_path", "import_meta", "JsLightEngineFinalization", "init_wasm_mesher", "__esmMin", "init_dirname", "init_buffer", "init_process", "event", "y", "z", "emission", "opacity", "occupancy", "enabled", "budget_ms", "world_height", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "init_dirname", "init_buffer", "init_process", "maskBitGet", "mask", "longIdx", "bitInLong", "pair", "val", "bit", "parsedUpdateLightFromWasm", "parsed", "numSections", "init_dirname", "init_buffer", "init_process", "packUnpackedLightSection", "unpacked", "packed", "n", "i", "v", "byte", "eventsFromParsedUpdateLight", "parsed", "worldMinY", "sx", "sz", "baseSy", "events", "pushChannel", "channel", "dataMask", "emptyMask", "column", "below", "above", "totalBits", "bit", "hasData", "maskBitGet", "hasEmpty", "sy", "unpacked", "packUnpackedLightSection", "eventsFromWasmUpdateLight", "parsedJs", "numSections", "parsedUpdateLightFromWasm", "init_dirname", "init_buffer", "init_process", "CLIENT_LIGHT_TRACE_MESSAGE", "enabled", "armed", "sessionEpoch", "dropped", "start", "count", "sampleRequested", "lastGpuDrawnMetric", "lastGpuUploadedMetric", "pendingPost", "pendingEvents", "pendingTimer", "configListener", "ring", "isClientLightTraceEnabled", "enabled", "isClientLightTraceArmed", "armed", "enableClientLightTrace", "on", "dropPendingPosts", "resetGpuSampleState", "attachDebugDump", "notifyConfig", "armClientLightTrace", "recordClientLightTrace", "partial", "enabled", "tLocal", "timeOrigin", "event", "sessionEpoch", "pushEvent", "requestClientLightTraceSample", "sampleRequested", "postClientLightTrace", "post", "partial", "event", "recordClientLightTrace", "armed", "pendingPost", "pendingEvents", "flushClientLightTracePosts", "pendingTimer", "events", "CLIENT_LIGHT_TRACE_MESSAGE", "getClientLightTraceEvents", "out", "count", "event", "ring", "start", "getClientLightTraceAggregates", "byPhase", "dropped", "dumpClientLightTrace", "requestClientLightTraceSample", "dropPendingPosts", "pendingTimer", "pendingEvents", "pendingPost", "resetGpuSampleState", "sampleRequested", "lastGpuDrawnMetric", "lastGpuUploadedMetric", "notifyConfig", "configListener", "enabled", "armed", "pushEvent", "attachDebugDump", "on", "host", "next", "armClientLightTrace", "engine", "wasm", "worldMinY", "pending", "localContinue", "stepGeneration", "ctx", "postTrace", "message", "runOwnerStepSlice", "budgetMs", "remaining", "publication", "isClientLightTraceEnabled", "isClientLightTraceArmed", "postClientLightTrace", "handle", "data", "Engine", "queued", "event", "currentColumn", "enableClientLightTrace", "armClientLightTrace", "parsed", "eventsFromWasmUpdateLight", "err"]
7
+ }