commit 30b43f08955158d4f2066f4b50fe8d1241b3177b
parent c2f3b1c9c534cadc81ebab3e718832d121cdf9cf
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date: Fri, 16 May 2025 15:43:09 +0200
Remove configure + make build system.
This commit also updates the README, cleans up some stuff and fixes
some oopsies.
Diffstat:
10 files changed, 72 insertions(+), 327 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -21,8 +21,8 @@ runtest
runcpp
runtest.js
runtest.wasm
-wasm/*.wasm
-wasm/nissy_web_module.*
+web/*.wasm
+web/nissy_web_module.*
runtool
tools/.DS_Store
run.DSYM
diff --git a/Makefile b/Makefile
@@ -1,49 +1,4 @@
-include config.mk
+all:
+ @echo "The build system for nissy has changed, use ./build"
-all: nissy.o
-
-nissy.s:
- ${CC} ${MACROS} ${CFLAGS} -c -S -o nissy.s src/nissy.c
-
-nissy.o:
- ${CC} ${MACROS} ${CFLAGS} -c -o nissy.o src/nissy.c
-
-libnissy.a: nissy.o
- ar rcs libnissy.a nissy.o
-
-libnissy.so:
- ${CC} ${MACROS} ${CFLAGS} -c -shared -o libnissy.so src/nissy.c
-
-debugnissy.o:
- ${CC} ${MACROS} ${DBGFLAGS} -c -o debugnissy.o src/nissy.c
-
-wasmnissy.o:
- ${EMCC} ${MACROS} ${WASMFLAGS} -c -o wasmnissy.o src/nissy.c
-
-clean:
- rm -rf *.out *.o *.s *.so run debugrun
-
-test: debugnissy.o
- CC="${CC} ${MACROS} ${DBGFLAGS}" OBJ=debugnissy.o ./test/test.sh
-
-tool: nissy.o
- mkdir -p tables tools/results
- CC="${CC} ${MACROS} ${CFLAGS}" OBJ=nissy.o ./tools/tool.sh
-
-debugtool: debugnissy.o
- mkdir -p tables tools/results
- CC="${CC} ${MACROS} ${DBGFLAGS}" OBJ=debugnissy.o ./tools/tool.sh
-
-shell: nissy.o
- mkdir -p tables
- ${CC} ${MACROS} ${CFLAGS} -o run nissy.o shell/shell.c
-
-debugshell: debugnissy.o
- mkdir -p tables
- ${CC} ${MACROS} ${DBGFLAGS} -o debugrun debugnissy.o shell/shell.c
-
-python: nissy.o
- ${CC} ${CFLAGS} -shared ${PYTHON3_INCLUDES} -o nissy_python_module.so \
- nissy.o python/nissy_module.c
-
-.PHONY: all clean test tool debugtool shell debugshell python
+.PHONY: all
diff --git a/README.md b/README.md
@@ -13,40 +13,50 @@ of pruning tables that were developed independently.
## Building
-First run the configuration script to detect the system configuration.
-This is going to select a C compiler and architecture-specific optimizations.
+This project currently supports only POSIX systems (Linux, MacOS, BSD...).
+If you want to build on Windows you can do so via
+[WSL](https://learn.microsoft.com/en-us/windows/wsl/install). Note that
+the resulting executable will not be a native Windows executable.
+Windows as a build target will be available in the future.
+
+To build nissy simply run
```
-$ ./configure.sh
+$ ./build
```
-These settings can be overridden, for example:
+For a list of options and targets for the build system run `./build help`.
+Some compiler settings can be overridden using environment variables,
+as explained in the comments at the beginning of the build script. For
+example, the command:
```
-$ THREADS=3 CC=gcc ./configure.sh # Use 3 threads and compile with gcc
+$ export NISSY_BUILD_THREADS=3
+$ CC=gcc ./build
```
-All the configuration-time options are described in the `configure.sh` script.
+is going to configure `nissy` to use at most 3 threads, and build it with
+`gcc`. Se the comments in `./build` for more details.
+
+## Running tests
-Once the configuration is done, you can build with make
+This project includes a suite of "unit" test. You can run them with:
```
-$ make
+$ ./build test
```
-## Running tests
-
-This project includes a suite of "unit" test. They can be run with:
+For running the tests for the WebAssembly build with nodejs you can use:
```
-$ make test
+$ ./build webtest
```
-To run only a subset of the tests, set the `TEST` variable to a regular
+To run only a subset of the tests, you can pass as argument a regular
expression that matches only the name of the tests you want to run:
```
-$ TEST=coord make test
+$ ./buld test coord
```
Each subfolder of the test folder contains a test. A test can consist
@@ -63,40 +73,36 @@ output, the results compared with the .out files) and test/last.err
Tests are always run in debug mode: this means that optimizations are
disabled and some extra logging is enabled.
-See the test folder and test/test.sh for details.
-
## Running "tools"
In the tools folder there are some small programs that test various
functionality of the H48 library. They work similarly to test, but they
are not run in debug mode by default.
-To run a tool you must select it with the environment variable `TOOL`.
-For example the command:
+To run a tool you can use:
```
-TOOL=stats make tool
+$ ./build tool TOOLNAME PARAMETERS...
```
-Will run the stats_tables_h48 tool.
+Where `TOOLNAME` is the name of one of the tools, or a regular expression
+that matches one, and `PARAMETERS...` is a tool-specific list of
+parameters.
-To pass some arguments to a tool, use the `TOOLARGS` variable:
+For example:
```
-TOOL=gendata TOOLARGS="h48 0;2;20" make tool
+$ :./build tool gendata h48h2k2
```
-Like for tests, the value of the `TOOL` variable can be any regular
-expression matching the name of the tool. Unlike tests, one and
-only one tool will be selected for each run. The content of the
-`TOOLARGS` variable is used directly as command line arguments for
-the chosen tool.
+Will run a tool that generates the data table for the H48 solver with
+parameters `h=2` and `k=2.
Each tool run is automatically timed, so these tools can be used as
benchmark. The output as well as the time of the run are saved to a
file in the tools/results folder.
-To build and run a tool in debug mode, use `make debugtool`.
+To build and run a tool in debug mode, use `./build -d tool`.
## Command-line interface
@@ -107,17 +113,11 @@ as the commands require quite verbose options.
To build the shell run:
```
-$ make shell
-```
-
-This will create an executable called `run`.
-Optionally, you can run some tests:
-
-```
-$ make shelltest
+$ ./build shell
```
-Then you can for example get a cube from a sequence of moves:
+This will create an executable called `run`. Then you can for example
+get a cube from a sequence of moves:
```
$ ./run frommoves -moves "R' U' F"
@@ -174,7 +174,8 @@ implementation file `nissy.cpp`. This interface wraps the calls to the
C functions in an object-oriented C++ interface for more convenient use.
The `cpp/examples` folder contains some examples for how to use this
-interface. You can build them and run them with the build tool, for example:
+interface. You can build them and run them with the build tool, for
+example:
```
./build cpp cpp/examples/solve_h48h3k2.cpp
@@ -192,18 +193,18 @@ this module follows the C API quite closely, except its functions
sometimes return strings instead of writing to `char *` buffers.
To build the Python module you need the Python development headers
-installed. You can check this from the output of `./configure.sh`:
+installed. You can check this from the output of `./build config`:
```
-$ ./configure.sh
+$ ./build config
...
-Python3 development libraries: version 3.12
+Python bindings: version 3.13
```
Then to build the module:
```
-$ make python
+$ ./build python
```
And to import it
@@ -240,14 +241,14 @@ Bindings for JavaScript via a WebAssembly build (using
The JavaScript module can be built with
```
-./build web
+$ ./build web
```
Some examples can be found in the `web/examples` folder. They can be run
using [nodejs](https://nodejs.org):
```
-node web/examples/[filename]
+$ node web/examples/[filename]
```
## Cube format
diff --git a/build b/build
@@ -171,8 +171,24 @@ build_config() {
echo "Max threads: $THREADS"
echo "Optimization options: $OFLAGS"
echo "Debug flags: $DFLAGS"
- echo "WASM compiler: $EMCC"
- echo "nodejs executable: $NODE"
+ echo ""
+
+ echo "Optional features:"
+
+ printf '%s' "WASM compiler: "
+ if (validate_command "$EMCC" >/dev/null); then
+ echo "$EMCC"
+ else
+ echo "Not found, web target won't be available"
+ fi
+
+ printf '%s' "nodejs executable: "
+ if (validate_command "$NODE" >/dev/null); then
+ echo "$NODE"
+ else
+ echo "Not found, unit tests won't be available for web target"
+ fi
+
echo "Python bindings: $PYTHON3"
}
@@ -229,7 +245,7 @@ build_python() {
fi
build_nissy
run $CC $CFLAGS $WFLAGS $PYTHON3_INCLUDES $(odflags) -shared \
- -o nissy_pthon_module.so nissy.o python/nissy_module.c
+ -o nissy_python_module.so nissy.o python/nissy_module.c
}
build_cpp() {
diff --git a/configure.sh b/configure.sh
@@ -1,136 +1,3 @@
#!/bin/sh
-# The following environment variables can be used to configure the build:
-#
-# CC="compiler"
-# Specify the compiler to use.
-# By default, cc will be used.
-# The string "compiler" must be the name of an executable in $PATH.
-#
-# ARCH="architecture"
-# You can use this variable to build for a different architecture, for example
-# if you want to cross-compile or to use the portable version.
-# By default, the build script will detect which architecture it is running on.
-# The string "architecture" must be one of "AVX2", "NEON" or "PORTABLE".
-#
-# THREADS=n
-# The maximum number of threads to use for multi-threaded operations.
-# This is also used as default value in case an operation allows
-# specifying how many threads to use.
-# By default, 8 threads will be used (TODO: in the future this will be
-# determined base on the system).
-# The number n must be between 1 and 128.
-#
-# SANITIZE="option1,option2,..."
-# Add the options "-fsanitize=option1", "-fsanitize=option2", ... to the
-# compilation command when compiling in debug mode.
-# By default, no sanitizer is used.
-#
-# Examples
-#
-# 1. Build using clang and 4 threads
-# CC=clang THREADS=4 ./configure.sh && make
-#
-# 2. Build using thread and undefined behavior sanitizers when in debug mode
-# SANITIZE="thread,undefined" ./configure.sh && make
-
-greparch() {
- $CC -march=native -dM -E - </dev/null 2>/dev/null | grep "$1"
-}
-
-detectthreads() {
- echo 8 # TODO: choose based on system
-}
-
-detectarch() {
- [ -n "$(greparch __AVX2__)" ] && detected="AVX2"
- [ -n "$(greparch __ARM_NEON)" ] && detected="NEON"
- [ -z "$detected" ] && detected="PORTABLE"
-
- echo "$detected"
-}
-
-validatecc() {
- if ! (command -v "$CC" >/dev/null 2>&1) ; then
- echo "Error: compiler '$CC' not found"
- exit 1
- fi
-}
-
-validatethreads() {
- if [ "$THREADS" -le 0 ] || [ "$THREADS" -gt 128 ]; then
- echo "Error: number of threads must be between 1 and 128"
- exit 1
- fi
-}
-
-validatearch() {
- case "$ARCH" in
- AVX2|NEON|PORTABLE)
- ;;
- *)
- echo "Error: architecture '$ARCH' not supported"
- echo "Supported architectures: AVX2, NEON, PORTABLE"
- exit 1
- ;;
- esac
-}
-
-CC=${CC:-cc}
-THREADS=${THREADS-"$(detectthreads)"}
-ARCH=${ARCH-"$(detectarch)"}
-
-validatecc
-validatethreads
-validatearch
-
-STD="-std=c11"
-POSIX="-D_POSIX_C_SOURCE=199309L"
-WFLAGS="-pedantic -Wall -Wextra"
-WNOFLAGS="-Wno-unused-parameter -Wno-unused-function -Wno-unknown-pragmas"
-WNOFLAGS="$WNOFLAGS -Wno-unused-command-line-argument"
-
-[ "$ARCH" = "AVX2" ] && AVX="-mavx2"
-
-if [ -n "$SANITIZE" ]; then
- # Use the user-specified comma-separated sanitizers
- for san in $(echo "$SANITIZE" | tr ',' '\n'); do
- SAN="$SAN -fsanitize=$san"
- done
-fi
-LIBS="-lpthread"
-
-CFLAGS="$STD $POSIX $LIBS $WFLAGS $WNOFLAGS $AVX -O3 -fPIC -D$ARCH"
-DBGFLAGS="$STD $POSIX $LIBS $WFLAGS $WNOFLAGS $SAN $AVX -g3 -DDEBUG -fPIC -D$ARCH"
-WASMFLAGS="$STD $LIBS $WFLAGS $WNOFLAGS -O3 -fPIC"
-MACROS="-DTHREADS=$THREADS"
-
-if (command -v "python3-config" >/dev/null 2>&1) ; then
- PYTHON3_INCLUDES="$(python3-config --includes)"
- PYTHON3="version $(echo "$PYTHON3_INCLUDES" | sed 's/.*3\./3./')"
-else
- PYTHON3_INCLUDES=""
- PYTHON3="Not found, Python shell won't be available"
-fi
-
-echo "Compiler: $CC"
-echo "Selected architecture: $ARCH"
-echo "Number of threads: $THREADS"
-echo "Sanitizer options (debug build only): $SAN"
-echo "Python3 development libraries: $PYTHON3"
-
-{
-echo "ARCH = $ARCH";
-echo "";
-echo "CFLAGS = $CFLAGS";
-echo "";
-echo "DBGFLAGS = $DBGFLAGS";
-echo "";
-echo "WASMFLAGS = $WASMFLAGS";
-echo "";
-echo "MACROS = $MACROS"
-echo "";
-echo "PYTHON3_INCLUDES = $PYTHON3_INCLUDES"
-echo "CC = $CC"
-echo "EMCC = emcc"
-} > config.mk
+echo "The build system for nissy has changed, use ./build"
diff --git a/python/nissy_module.c b/python/nissy_module.c
@@ -350,9 +350,9 @@ static PyMethodDef nissy_methods[] = {
{ "getcube", getcube, METH_VARARGS, getcube_doc },
{ "solverinfo", solverinfo, METH_VARARGS, solverinfo_doc },
{ "gendata", gendata, METH_VARARGS, gendata_doc },
- { "checkdata", _checkdata, METH_VARARGS, checkdata_doc },
+ { "checkdata", checkdata, METH_VARARGS, checkdata_doc },
{ "solve", solve, METH_VARARGS, solve_doc },
- { "countmoves", _countmoves, METH_VARARGS, countmoves_doc },
+ { "countmoves", countmoves, METH_VARARGS, countmoves_doc },
{ NULL, NULL, 0, NULL }
};
diff --git a/test/test.sh b/test/test.sh
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-re="${TEST:-$@}"
-
-TESTBIN="test/run"
-TESTOUT="test/last.out"
-TESTERR="test/last.err"
-
-for t in test/*; do
- if [ -n "$re" ] && !(echo "$t" | grep -q "$re"); then
- continue
- fi
-
- # Verify if $t is a directory and if its name starts with three digits
- if [ -d "$t" ] && basename "$t" | grep -Eq '^[0-9]{3}'; then
- $CC -o $TESTBIN "$t"/*.c $OBJ || exit 1
- for cin in "$t"/*.in; do
- c=$(echo "$cin" | sed 's/\.in//')
- cout="$c.out"
- printf "%s: " "$c"
- $TESTBIN < "$cin" > $TESTOUT 2> $TESTERR
- if diff "$cout" "$TESTOUT"; then
- printf "OK\n"
- else
- printf "Test failed! stderr:\n"
- cat $TESTERR
- exit 1
- fi
- done
- fi
-done
-
-echo "All tests passed!"
diff --git a/tools/tool.sh b/tools/tool.sh
@@ -1,40 +0,0 @@
-#!/bin/sh
-
-if [ -z "$TOOL" ]; then
- echo "No tool selected (TOOL variable must be set)"
- exit 1
-fi
-
-CC="$CC -D_POSIX_C_SOURCE=199309L" # For timer
-
-BIN="tools/run"
-RESULTS="tools/results"
-LAST="$RESULTS/last.out"
-date="$(date +'%Y-%m-%d-%H-%M-%S')"
-
-for t in tools/*; do
- if [ ! -d "$t" ] || ! (echo "$t" | grep -q "$TOOL"); then
- continue
- fi
- toolname="$(basename "$t" .c)"
- break
-done
-
-file="$RESULTS/$toolname-$date.txt"
-
-$CC -o $BIN "$t"/*.c "$OBJ" || exit 1;
-
-(
-date +'%Y-%m-%d %H:%M'
-echo ""
-echo "======== config.mk ========"
-cat config.mk
-echo ""
-echo "=== tool configuration ===="
-echo "TOOL=$toolname"
-echo "TOOLARGS=$TOOLARGS"
-echo "CC=$CC"
-echo ""
-echo "======= tool output ======="
-$BIN $TOOLARGS
-) | tee "$file" "$LAST"
diff --git a/web/nissy_web_module.mjs b/web/nissy_web_module.mjs
@@ -1,21 +0,0 @@
-var Nissy = (() => {
- var _scriptName = import.meta.url;
-
- return (
-async function(moduleArg = {}) {
- var moduleRtn;
-
-var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&self.name?.startsWith("em-pthread");if(ENVIRONMENT_IS_NODE){const{createRequire}=await import("module");var require=createRequire(import.meta.url);var worker_threads=require("worker_threads");global.Worker=worker_threads.Worker;ENVIRONMENT_IS_WORKER=!worker_threads.isMainThread;ENVIRONMENT_IS_PTHREAD=ENVIRONMENT_IS_WORKER&&worker_threads["workerData"]=="em-pthread"}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(!import.meta.url.startsWith("data:")){scriptDirectory=nodePath.dirname(require("url").fileURLToPath(import.meta.url))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}if(!ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.error.bind(console);if(ENVIRONMENT_IS_NODE){var utils=require("util");var stringify=a=>typeof a=="object"?utils.inspect(a):a;defaultPrint=(...args)=>fs.writeSync(1,args.map(stringify).join(" ")+"\n");defaultPrintErr=(...args)=>fs.writeSync(2,args.map(stringify).join(" ")+"\n")}var out=defaultPrint;var err=defaultPrintErr;var wasmBinary;var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;var isFileURI=filename=>filename.startsWith("file://");function GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU8}function GROWABLE_HEAP_I16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP16}function GROWABLE_HEAP_U16(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU16}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPU32}function GROWABLE_HEAP_F32(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=HEAP8.buffer){updateMemoryViews()}return HEAPF64}if(ENVIRONMENT_IS_PTHREAD){var wasmModuleReceived;if(ENVIRONMENT_IS_NODE){var parentPort=worker_threads["parentPort"];parentPort.on("message",msg=>onmessage({data:msg}));Object.assign(globalThis,{self:global,postMessage:msg=>parentPort.postMessage(msg)})}var initializedJS=false;self.onunhandledrejection=e=>{throw e.reason||e};function handleMessage(e){try{var msgData=e["data"];var cmd=msgData.cmd;if(cmd==="load"){let messageQueue=[];self.onmessage=e=>messageQueue.push(e);self.startWorker=instance=>{postMessage({cmd:"loaded"});for(let msg of messageQueue){handleMessage(msg)}self.onmessage=handleMessage};for(const handler of msgData.handlers){if(!Module[handler]||Module[handler].proxy){Module[handler]=(...args)=>{postMessage({cmd:"callHandler",handler,args})};if(handler=="print")out=Module[handler];if(handler=="printErr")err=Module[handler]}}wasmMemory=msgData.wasmMemory;updateMemoryViews();wasmModuleReceived(msgData.wasmModule)}else if(cmd==="run"){establishStackSpace(msgData.pthread_ptr);__emscripten_thread_init(msgData.pthread_ptr,0,0,1,0,0);PThread.threadInitTLS();__emscripten_thread_mailbox_await(msgData.pthread_ptr);if(!initializedJS){__embind_initialize_bindings();initializedJS=true}try{invokeEntryPoint(msgData.start_routine,msgData.arg)}catch(ex){if(ex!="unwind"){throw ex}}}else if(msgData.target==="setimmediate"){}else if(cmd==="checkMailbox"){if(initializedJS){checkMailbox()}}else if(cmd){err(`worker: received unknown command ${cmd}`);err(msgData)}}catch(ex){__emscripten_thread_crashed();throw ex}}self.onmessage=handleMessage}function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}function initMemory(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:32768,shared:true})}updateMemoryViews()}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return startWorker(Module);if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();wasmExports["__wasm_call_ctors"]();FS.ignorePermissions=false}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(onPostRuns)}var runDependencies=0;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module["locateFile"]){return locateFile("nissy_web_module.wasm")}return new URL("nissy_web_module.wasm",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){assignWasmImports();return{env:wasmImports,wasi_snapshot_preview1:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;registerTLSInit(wasmExports["_emscripten_tls_init"]);wasmTable=wasmExports["__indirect_function_table"];wasmModule=module;removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(mod,inst)=>{resolve(receiveInstance(mod,inst))})})}if(ENVIRONMENT_IS_PTHREAD){return new Promise(resolve=>{wasmModuleReceived=module=>{var instance=new WebAssembly.Instance(module,getWasmImports());resolve(receiveInstance(instance,module))}})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var terminateWorker=worker=>{worker.terminate();worker.onmessage=e=>{}};var cleanupThread=pthread_ptr=>{var worker=PThread.pthreads[pthread_ptr];PThread.returnWorkerToPool(worker)};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var spawnThread=threadParams=>{var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);PThread.pthreads[threadParams.pthread_ptr]=worker;worker.pthread_ptr=threadParams.pthread_ptr;var msg={cmd:"run",start_routine:threadParams.startRoutine,arg:threadParams.arg,pthread_ptr:threadParams.pthread_ptr};if(ENVIRONMENT_IS_NODE){worker.unref()}worker.postMessage(msg,threadParams.transferList);return 0};var runtimeKeepaliveCounter=0;var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var stackAlloc=sz=>__emscripten_stack_alloc(sz);var proxyToMainThread=(funcIndex,emAsmAddr,sync,...callArgs)=>{var serializedNumCallArgs=callArgs.length*2;var sp=stackSave();var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i<callArgs.length;i++){var arg=callArgs[i];if(typeof arg=="bigint"){HEAP64[b+2*i]=1n;HEAP64[b+2*i+1]=arg}else{HEAP64[b+2*i]=0n;GROWABLE_HEAP_F64()[b+2*i+1]=arg}}var rtn=__emscripten_run_on_main_thread_js(funcIndex,emAsmAddr,serializedNumCallArgs,args,sync);stackRestore(sp);return rtn};function _proc_exit(code){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(0,0,1,code);EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))}function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(1,0,0,returnCode);_exit(returnCode)}var exitJS=(status,implicit)=>{EXITSTATUS=status;if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}_proc_exit(status)};var _exit=exitJS;var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){if(!ENVIRONMENT_IS_PTHREAD){PThread.initMainThread()}},initMainThread(){var pthreadPoolSize=16;while(pthreadPoolSize--){PThread.allocateUnusedWorker()}addOnPreRun(()=>{addRunDependency("loading-workers");PThread.loadWasmModuleToAllWorkers(()=>removeRunDependency("loading-workers"))})},terminateAllThreads:()=>{for(var worker of PThread.runningWorkers){terminateWorker(worker)}for(var worker of PThread.unusedWorkers){terminateWorker(worker)}PThread.unusedWorkers=[];PThread.runningWorkers=[];PThread.pthreads={}},returnWorkerToPool:worker=>{var pthread_ptr=worker.pthread_ptr;delete PThread.pthreads[pthread_ptr];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);worker.pthread_ptr=0;__emscripten_thread_free_data(pthread_ptr)},threadInitTLS(){PThread.tlsInitFunctions.forEach(f=>f())},loadWasmModuleToWorker:worker=>new Promise(onFinishedLoading=>{worker.onmessage=e=>{var d=e["data"];var cmd=d.cmd;if(d.targetThread&&d.targetThread!=_pthread_self()){var targetWorker=PThread.pthreads[d.targetThread];if(targetWorker){targetWorker.postMessage(d,d.transferList)}else{err(`Internal error! Worker sent a message "${cmd}" to target pthread ${d.targetThread}, but that thread no longer exists!`)}return}if(cmd==="checkMailbox"){checkMailbox()}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){cleanupThread(d.thread)}else if(cmd==="loaded"){worker.loaded=true;if(ENVIRONMENT_IS_NODE&&!worker.pthread_ptr){worker.unref()}onFinishedLoading(worker)}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="callHandler"){Module[d.handler](...d.args)}else if(cmd){err(`worker sent an unknown command ${cmd}`)}};worker.onerror=e=>{var message="worker sent an error!";err(`${message} ${e.filename}:${e.lineno}: ${e.message}`);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",data=>worker.onmessage({data}));worker.on("error",e=>worker.onerror(e))}var handlers=[];var knownHandlers=["onExit","onAbort","print","printErr"];for(var handler of knownHandlers){if(Module.propertyIsEnumerable(handler)){handlers.push(handler)}}worker.postMessage({cmd:"load",handlers,wasmMemory,wasmModule})}),loadWasmModuleToAllWorkers(onMaybeReady){if(ENVIRONMENT_IS_PTHREAD){return onMaybeReady()}let pthreadPoolReady=Promise.all(PThread.unusedWorkers.map(PThread.loadWasmModuleToWorker));pthreadPoolReady.then(onMaybeReady)},allocateUnusedWorker(){var worker;if(Module["mainScriptUrlOrBlob"]){var pthreadMainJs=Module["mainScriptUrlOrBlob"];if(typeof pthreadMainJs!="string"){pthreadMainJs=URL.createObjectURL(pthreadMainJs)}worker=new Worker(pthreadMainJs,{type:"module",workerData:"em-pthread",name:"em-pthread"})}else worker=new Worker(new URL("nissy_web_module.mjs",import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});PThread.unusedWorkers.push(worker)},getNewWorker(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var establishStackSpace=pthread_ptr=>{updateMemoryViews();var stackHigh=GROWABLE_HEAP_U32()[pthread_ptr+52>>2];var stackSize=GROWABLE_HEAP_U32()[pthread_ptr+56>>2];var stackLow=stackHigh-stackSize;_emscripten_stack_set_limits(stackHigh,stackLow);stackRestore(stackHigh)};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return GROWABLE_HEAP_I8()[ptr];case"i8":return GROWABLE_HEAP_I8()[ptr];case"i16":return GROWABLE_HEAP_I16()[ptr>>1];case"i32":return GROWABLE_HEAP_I32()[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return GROWABLE_HEAP_F32()[ptr>>2];case"double":return GROWABLE_HEAP_F64()[ptr>>3];case"*":return GROWABLE_HEAP_U32()[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var wasmTableMirror=[];var wasmTable;var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var invokeEntryPoint=(ptr,arg)=>{runtimeKeepaliveCounter=0;noExitRuntime=0;var result=getWasmTableEntry(ptr)(arg);function finish(result){if(keepRuntimeAlive()){EXITSTATUS=result}else{__emscripten_thread_exit(result)}}finish(result)};var noExitRuntime=true;var registerTLSInit=tlsInitFunc=>PThread.tlsInitFunctions.push(tlsInitFunc);function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":GROWABLE_HEAP_I8()[ptr]=value;break;case"i8":GROWABLE_HEAP_I8()[ptr]=value;break;case"i16":GROWABLE_HEAP_I16()[ptr>>1]=value;break;case"i32":GROWABLE_HEAP_I32()[ptr>>2]=value;break;case"i64":HEAP64[ptr>>3]=BigInt(value);break;case"float":GROWABLE_HEAP_F32()[ptr>>2]=value;break;case"double":GROWABLE_HEAP_F64()[ptr>>3]=value;break;case"*":GROWABLE_HEAP_U32()[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof ArrayBuffer?heapOrArray.subarray(idx,endPtr):heapOrArray.slice(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var ___call_sighandler=(fp,sig)=>getWasmTableEntry(fp)(sig);class ExceptionInfo{constructor(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24}set_type(type){GROWABLE_HEAP_U32()[this.ptr+4>>2]=type}get_type(){return GROWABLE_HEAP_U32()[this.ptr+4>>2]}set_destructor(destructor){GROWABLE_HEAP_U32()[this.ptr+8>>2]=destructor}get_destructor(){return GROWABLE_HEAP_U32()[this.ptr+8>>2]}set_caught(caught){caught=caught?1:0;GROWABLE_HEAP_I8()[this.ptr+12]=caught}get_caught(){return GROWABLE_HEAP_I8()[this.ptr+12]!=0}set_rethrown(rethrown){rethrown=rethrown?1:0;GROWABLE_HEAP_I8()[this.ptr+13]=rethrown}get_rethrown(){return GROWABLE_HEAP_I8()[this.ptr+13]!=0}init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor)}set_adjusted_ptr(adjustedPtr){GROWABLE_HEAP_U32()[this.ptr+16>>2]=adjustedPtr}get_adjusted_ptr(){return GROWABLE_HEAP_U32()[this.ptr+16>>2]}}var exceptionLast=0;var uncaughtExceptionCount=0;var ___cxa_throw=(ptr,type,destructor)=>{var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw exceptionLast};function pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(2,0,1,pthread_ptr,attr,startRoutine,arg);return ___pthread_create_js(pthread_ptr,attr,startRoutine,arg)}var _emscripten_has_threading_support=()=>typeof SharedArrayBuffer!="undefined";var ___pthread_create_js=(pthread_ptr,attr,startRoutine,arg)=>{if(!_emscripten_has_threading_support()){return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,startRoutine,arg)}if(error)return error;var threadParams={startRoutine,pthread_ptr,arg,transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)};var __abort_js=()=>abort("");var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(GROWABLE_HEAP_U8()[c]){ret+=embind_charCodes[GROWABLE_HEAP_U8()[c++]]}return ret};var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>GROWABLE_HEAP_I8()[pointer]:pointer=>GROWABLE_HEAP_U8()[pointer];case 2:return signed?pointer=>GROWABLE_HEAP_I16()[pointer>>1]:pointer=>GROWABLE_HEAP_U16()[pointer>>1];case 4:return signed?pointer=>GROWABLE_HEAP_I32()[pointer>>2]:pointer=>GROWABLE_HEAP_U32()[pointer>>2];case 8:return signed?pointer=>HEAP64[pointer>>3]:pointer=>HEAPU64[pointer>>3];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;if(isUnsignedType){maxRange=(1n<<64n)-1n}registerType(primitiveType,{name,fromWireType:value=>value,toWireType:function(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError(`Cannot convert "${embindRepr(value)}" to ${this.name}`)}if(typeof value=="number"){value=BigInt(value)}return value},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null})};var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](GROWABLE_HEAP_U8()[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var init_ClassHandle=()=>{let proto=ClassHandle.prototype;Object.assign(proto,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}});const symbolDispose=Symbol.dispose;if(symbolDispose){proto[symbolDispose]=proto["delete"]}};function ClassHandle(){}var createNamedFunction=(name,func)=>Object.defineProperty(func,"name",{value:name});var registeredPointers={};var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this["fromWireType"](GROWABLE_HEAP_U32()[pointer>>2])}var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};var throwInternalError=message=>{throw new InternalError(message)};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var embind__requireFunction=(signature,rawFunction,isAsync=false)=>{signature=readLatin1String(signature);function makeDynCaller(){var rtn=getWasmTableEntry(rawFunction);return rtn}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};class UnboundTypeError extends Error{}var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(`Use 'new' to construct ${name}`)}if(undefined===registeredClass.constructor_body){throw new BindingError(`${name} has no accessible constructor`)}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};var __embind_register_class_class_property=(rawClassType,fieldName,rawFieldType,rawFieldPtr,getterSignature,getter,setterSignature,setter)=>{fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${fieldName}`;var desc={get(){throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[rawFieldType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[rawFieldType])}}else{desc.set=v=>{throwBindingError(`${humanName} is a read-only property`)}}Object.defineProperty(classType.registeredClass.constructor,fieldName,desc);whenDependentTypesAreResolved([],[rawFieldType],fieldType=>{fieldType=fieldType[0];var desc={get(){return fieldType["fromWireType"](getter(rawFieldPtr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);desc.set=v=>{var destructors=[];setter(rawFieldPtr,fieldType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.constructor,fieldName,desc);return[]});return[]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i<count;i++){array.push(GROWABLE_HEAP_U32()[firstElement+i*4>>2])}return array};function usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){return true}}return false}function createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=["fn"];if(isClassMethodFunc){argsListWired.push("thisWired")}for(var i=0;i<argCount;++i){argsList.push(`arg${i}`);argsListWired.push(`arg${i}Wired`)}argsList=argsList.join(",");argsListWired=argsListWired.join(",");var invokerFnBody=`return function (${argsList}) {\n`;if(needsDestructorStack){invokerFnBody+="var destructors = [];\n"}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["humanName","throwBindingError","invoker","fn","runDestructors","retType","classParam"];if(isClassMethodFunc){invokerFnBody+=`var thisWired = classParam['toWireType'](${dtorStack}, this);\n`}for(var i=0;i<argCount;++i){invokerFnBody+=`var arg${i}Wired = argType${i}['toWireType'](${dtorStack}, arg${i});\n`;args1.push(`argType${i}`)}invokerFnBody+=(returns||isAsync?"var rv = ":"")+`invoker(${argsListWired});\n`;var returnVal=returns?"rv":"";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+=`${paramName}_dtor(${paramName});\n`;args1.push(`${paramName}_dtor`)}}}if(returns){invokerFnBody+="var ret = retType['fromWireType'](rv);\n"+"return ret;\n"}else{}invokerFnBody+="}\n";return[args1,invokerFnBody]}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=usesDestructorStack(argTypes);var returns=argTypes[0].name!=="void";var expectedArgCount=argCount-2;var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];for(var i=0;i<argCount-2;++i){closureArgs.push(argTypes[i+2])}if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction)}}}let[args,invokerFnBody]=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync);var invokerFn=new Function(...args,invokerFnBody)(...closureArgs);return createNamedFunction(humanName,invokerFn)}var __embind_register_class_constructor=(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);var args=[rawConstructor];var destructors=[];whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex)};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker,isAsync);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var validateThis=(this_,classType,humanName)=>{if(!(this_ instanceof Object)){throwBindingError(`${humanName} with invalid "this": ${this_}`)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(`${humanName} incompatible with "this" of type ${this_.constructor.name}`)}if(!this_.$$.ptr){throwBindingError(`cannot call emscripten binding method ${humanName} on deleted object`)}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)};var __embind_register_class_property=(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext)=>{fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],classType=>{classType=classType[0];var humanName=`${classType.name}.${fieldName}`;var desc={get(){throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])}else{desc.set=v=>throwBindingError(humanName+" is a read-only property")}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],types=>{var getterReturnType=types[0];var desc={get(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})};var __embind_register_constant=(name,type,value)=>{name=readLatin1String(name);whenDependentTypesAreResolved([],[type],type=>{type=type[0];Module[name]=type["fromWireType"](value);return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError(`Cannot use deleted val. handle = ${handle}`)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F32()[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](GROWABLE_HEAP_F64()[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker,isAsync);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=GROWABLE_HEAP_U32()[handle>>2];var data=GROWABLE_HEAP_U32()[handle+4>>2];return new TA(GROWABLE_HEAP_I8().buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=GROWABLE_HEAP_U32()[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||GROWABLE_HEAP_U8()[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(GROWABLE_HEAP_U8()[payload+i])}str=a.join("")}_free(value);return str},toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||ArrayBuffer.isView(value)&&value.BYTES_PER_ELEMENT==1)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;GROWABLE_HEAP_U32()[base>>2]=length;if(valueIsOfTypeString){if(stdStringIsUTF8){stringToUTF8(value,ptr,length+1)}else{for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}GROWABLE_HEAP_U8()[ptr+i]=charCode}}}else{GROWABLE_HEAP_U8().set(value,ptr)}if(destructors!==null){destructors.push(_free,base)}return base},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;var UTF16ToString=(ptr,maxBytesToRead)=>{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&GROWABLE_HEAP_U16()[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(GROWABLE_HEAP_U8().slice(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=GROWABLE_HEAP_I16()[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);GROWABLE_HEAP_I16()[outPtr>>1]=codeUnit;outPtr+=2}GROWABLE_HEAP_I16()[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=GROWABLE_HEAP_I32()[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}GROWABLE_HEAP_I32()[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}GROWABLE_HEAP_I32()[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>GROWABLE_HEAP_U16()[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>GROWABLE_HEAP_U32()[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=GROWABLE_HEAP_U32()[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);GROWABLE_HEAP_U32()[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var getExecutableName=()=>thisProgram||"./this.program";var __emscripten_get_progname=(str,len)=>stringToUTF8(getExecutableName(),str,len);var __emscripten_init_main_thread_js=tb=>{__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB,5242880,false);PThread.threadInitTLS()};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var maybeExit=()=>{if(!keepRuntimeAlive()){try{if(ENVIRONMENT_IS_PTHREAD)__emscripten_thread_exit(EXITSTATUS);else _exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var __emscripten_thread_mailbox_await=pthread_ptr=>{if(typeof Atomics.waitAsync==="function"){var wait=Atomics.waitAsync(GROWABLE_HEAP_I32(),pthread_ptr>>2,pthread_ptr);wait.value.then(checkMailbox);var waitingAsync=pthread_ptr+128;Atomics.store(GROWABLE_HEAP_I32(),waitingAsync>>2,1)}};var checkMailbox=()=>{var pthread_ptr=_pthread_self();if(pthread_ptr){__emscripten_thread_mailbox_await(pthread_ptr);callUserCallback(__emscripten_check_mailbox)}};var __emscripten_notify_mailbox_postmessage=(targetThread,currThreadId)=>{if(targetThread==currThreadId){setTimeout(checkMailbox)}else if(ENVIRONMENT_IS_PTHREAD){postMessage({targetThread,cmd:"checkMailbox"})}else{var worker=PThread.pthreads[targetThread];if(!worker){return}worker.postMessage({cmd:"checkMailbox"})}};var proxiedJSCallArgs=[];var __emscripten_receive_on_main_thread_js=(funcIndex,emAsmAddr,callingThread,numCallArgs,args)=>{numCallArgs/=2;proxiedJSCallArgs.length=numCallArgs;var b=args>>3;for(var i=0;i<numCallArgs;i++){if(HEAP64[b+2*i]){proxiedJSCallArgs[i]=HEAP64[b+2*i+1]}else{proxiedJSCallArgs[i]=GROWABLE_HEAP_F64()[b+2*i+1]}}var func=proxiedFunctionTable[funcIndex];PThread.currentProxiedOperationCallerThread=callingThread;var rtn=func(...proxiedJSCallArgs);PThread.currentProxiedOperationCallerThread=0;return rtn};var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var __emscripten_thread_cleanup=thread=>{if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({cmd:"cleanupThread",thread})};var __emscripten_thread_set_strongref=thread=>{if(ENVIRONMENT_IS_NODE){PThread.pthreads[thread].ref()}};var timers={};var _emscripten_get_now=()=>performance.timeOrigin+performance.now();function __setitimer_js(which,timeout_ms){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(3,0,1,which,timeout_ms);if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0}var __tzset_js=(timezone,daylight,std_name,dst_name)=>{var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);GROWABLE_HEAP_U32()[timezone>>2]=stdTimezoneOffset*60;GROWABLE_HEAP_I32()[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};var _cbfl=[];function _addCallbackFunction(f){_cbfl.push(f);return _cbfl.length-1}function _callFunction(id,arg){_cbfl[id](UTF8ToString(arg))}function _callFunctionInt(id){return _cbfl[id]()}var _emscripten_date_now=()=>Date.now();var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0}var _emscripten_check_blocking_allowed=()=>{};var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};var _emscripten_exit_with_live_runtime=()=>{runtimeKeepalivePush();throw"unwind"};var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=GROWABLE_HEAP_U8().length;requestedSize>>>=0;if(requestedSize<=oldSize){return false}var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _emscripten_sleep=()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"};var _emscripten_unwind_to_js_event_loop=()=>{throw"unwind"};var ENV={};var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(4,0,1,__environ,environ_buf);var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;GROWABLE_HEAP_U32()[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(5,0,1,penviron_count,penviron_buf_size);var strings=getEnvStrings();GROWABLE_HEAP_U32()[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}GROWABLE_HEAP_U32()[penviron_buf_size>>2]=bufSize;return 0}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}return view=>view.set(crypto.getRandomValues(new Uint8Array(view.byteLength)))};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var FS_stdin_getChar_buffer=[];var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>GROWABLE_HEAP_U8().fill(0,ptr,ptr+size);var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===GROWABLE_HEAP_I8().buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===GROWABLE_HEAP_I8().buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}GROWABLE_HEAP_I8().set(contents,ptr)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var FS_createDataFile=(parent,name,fileData,canRead,canWrite,canOwn)=>{FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn)};var preloadPlugins=[];var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url).then(processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",queuePersist:mount=>{function onPersistComplete(){if(mount.idbPersistState==="again")startPersist();else mount.idbPersistState=0}function startPersist(){mount.idbPersistState="idb";IDBFS.syncfs(mount,false,onPersistComplete)}if(!mount.idbPersistState){mount.idbPersistState=setTimeout(startPersist,0)}else if(mount.idbPersistState==="idb"){mount.idbPersistState="again"}},mount:mount=>{var mnt=MEMFS.mount(mount);if(mount?.opts?.autoPersist){mnt.idbPersistState=0;var memfs_node_ops=mnt.node_ops;mnt.node_ops={...mnt.node_ops};mnt.node_ops.mknod=(parent,name,mode,dev)=>{var node=memfs_node_ops.mknod(parent,name,mode,dev);node.node_ops=mnt.node_ops;node.idbfs_mount=mnt.mount;node.memfs_stream_ops=node.stream_ops;node.stream_ops={...node.stream_ops};node.stream_ops.write=(stream,buffer,offset,length,position,canOwn)=>{stream.node.isModified=true;return node.memfs_stream_ops.write(stream,buffer,offset,length,position,canOwn)};node.stream_ops.close=stream=>{var n=stream.node;if(n.isModified){IDBFS.queuePersist(n.idbfs_mount);n.isModified=false}if(n.memfs_stream_ops.close)return n.memfs_stream_ops.close(stream)};return node};mnt.node_ops.mkdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.mkdir(...args));mnt.node_ops.rmdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rmdir(...args));mnt.node_ops.symlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.symlink(...args));mnt.node_ops.unlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.unlink(...args));mnt.node_ops.rename=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rename(...args))}return mnt},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>PATH.join2(root,p)}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push(...FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(e.target.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db,entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>callback(null,event.target.result);req.onerror=e=>{callback(e.target.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(key=>{var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(key=>{if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=transaction.onabort=e=>{done(e.target.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var NODEFS={isWindows:false,staticInit(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process.binding("constants")["fs"];NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],256:flags["O_NOCTTY"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"],131072:flags["O_NOFOLLOW"]}},convertNodeCode(e){var code=e.code;return ERRNO_CODES[code]},tryFSOperation(f){try{return f()}catch(e){if(!e.code)throw e;if(e.code==="UNKNOWN")throw new FS.ErrnoError(28);throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},mount(mount){return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(28)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode(path){return NODEFS.tryFSOperation(()=>{var mode=fs.lstatSync(path).mode;if(NODEFS.isWindows){mode|=(mode&292)>>2}return mode})},realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join(...parts)},flagsForNode(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;flags&=~65536;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(flags){throw new FS.ErrnoError(28)}return newFlags},getattr(func,node){var stat=NODEFS.tryFSOperation(func);if(NODEFS.isWindows){if(!stat.blksize){stat.blksize=4096}if(!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}stat.mode|=(stat.mode&292)>>2}return{dev:stat.dev,ino:node.id,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr(arg,node,attr,chmod,utimes,truncate,stat){NODEFS.tryFSOperation(()=>{if(attr.mode!==undefined){var mode=attr.mode;if(NODEFS.isWindows){mode&=384}chmod(arg,mode);node.mode=attr.mode}if(typeof(attr.atime??attr.mtime)==="number"){var atime=new Date(attr.atime??stat(arg).atime);var mtime=new Date(attr.mtime??stat(arg).mtime);utimes(arg,atime,mtime)}if(attr.size!==undefined){truncate(arg,attr.size)}})},node_ops:{getattr(node){var path=NODEFS.realPath(node);return NODEFS.getattr(()=>fs.lstatSync(path),node)},setattr(node,attr){var path=NODEFS.realPath(node);if(attr.mode!=null&&attr.dontFollow){throw new FS.ErrnoError(52)}NODEFS.setattr(path,node,attr,fs.chmodSync,fs.utimesSync,fs.truncateSync,fs.lstatSync)},lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);NODEFS.tryFSOperation(()=>{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}});return node},rename(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{FS.unlink(newPath)}catch(e){}NODEFS.tryFSOperation(()=>fs.renameSync(oldPath,newPath));oldNode.name=newName},unlink(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);NODEFS.tryFSOperation(()=>fs.unlinkSync(path))},rmdir(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);NODEFS.tryFSOperation(()=>fs.rmdirSync(path))},readdir(node){var path=NODEFS.realPath(node);return NODEFS.tryFSOperation(()=>fs.readdirSync(path))},symlink(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);NODEFS.tryFSOperation(()=>fs.symlinkSync(oldPath,newPath))},readlink(node){var path=NODEFS.realPath(node);return NODEFS.tryFSOperation(()=>fs.readlinkSync(path))},statfs(path){var stats=NODEFS.tryFSOperation(()=>fs.statfsSync(path));stats.frsize=stats.bsize;return stats}},stream_ops:{getattr(stream){return NODEFS.getattr(()=>fs.fstatSync(stream.nfd),stream.node)},setattr(stream,attr){NODEFS.setattr(stream.nfd,stream.node,attr,fs.fchmodSync,fs.futimesSync,fs.ftruncateSync,fs.fstatSync)},open(stream){var path=NODEFS.realPath(stream.node);NODEFS.tryFSOperation(()=>{stream.shared.refcount=1;stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))})},close(stream){NODEFS.tryFSOperation(()=>{if(stream.nfd&&--stream.shared.refcount===0){fs.closeSync(stream.nfd)}})},dup(stream){stream.shared.refcount++},read(stream,buffer,offset,length,position){return NODEFS.tryFSOperation(()=>fs.readSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),0,length,position))},write(stream,buffer,offset,length,position){return NODEFS.tryFSOperation(()=>fs.writeSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),0,length,position))},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){NODEFS.tryFSOperation(()=>{var stat=fs.fstatSync(stream.nfd);position+=stat.size})}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr=mmapAlloc(length);NODEFS.stream_ops.read(stream,GROWABLE_HEAP_I8(),ptr,length,position);return{ptr,allocated:true}},msync(stream,buffer,offset,length,mmapFlags){NODEFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]==="."){continue}if(parts[i]===".."){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+"/"+parts.slice(i+1).join("/");continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+"/"+link}path=link+"/"+parts.slice(i+1).join("/");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS,IDBFS,NODEFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,GROWABLE_HEAP_I8(),ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){GROWABLE_HEAP_I32()[buf>>2]=stat.dev;GROWABLE_HEAP_I32()[buf+4>>2]=stat.mode;GROWABLE_HEAP_U32()[buf+8>>2]=stat.nlink;GROWABLE_HEAP_I32()[buf+12>>2]=stat.uid;GROWABLE_HEAP_I32()[buf+16>>2]=stat.gid;GROWABLE_HEAP_I32()[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);GROWABLE_HEAP_I32()[buf+32>>2]=4096;GROWABLE_HEAP_I32()[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));GROWABLE_HEAP_U32()[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));GROWABLE_HEAP_U32()[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));GROWABLE_HEAP_U32()[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){GROWABLE_HEAP_I32()[buf+4>>2]=stats.bsize;GROWABLE_HEAP_I32()[buf+40>>2]=stats.bsize;GROWABLE_HEAP_I32()[buf+8>>2]=stats.blocks;GROWABLE_HEAP_I32()[buf+12>>2]=stats.bfree;GROWABLE_HEAP_I32()[buf+16>>2]=stats.bavail;GROWABLE_HEAP_I32()[buf+20>>2]=stats.files;GROWABLE_HEAP_I32()[buf+24>>2]=stats.ffree;GROWABLE_HEAP_I32()[buf+28>>2]=stats.fsid;GROWABLE_HEAP_I32()[buf+44>>2]=stats.flags;GROWABLE_HEAP_I32()[buf+36>>2]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=GROWABLE_HEAP_U8().slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(6,0,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=GROWABLE_HEAP_U32()[iov>>2];var len=GROWABLE_HEAP_U32()[iov+4>>2];iov+=8;var curr=FS.read(stream,GROWABLE_HEAP_I8(),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_read(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(7,0,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);GROWABLE_HEAP_U32()[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function _fd_seek(fd,offset,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(8,0,1,fd,offset,whence,newOffset);offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=GROWABLE_HEAP_U32()[iov>>2];var len=GROWABLE_HEAP_U32()[iov+4>>2];iov+=8;var curr=FS.write(stream,GROWABLE_HEAP_I8(),ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return proxyToMainThread(9,0,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);GROWABLE_HEAP_U32()[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}PThread.init();embind_init_charCodes();init_ClassHandle();init_RegisteredPointer();init_emval();FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="<generic error, no stack>";if(ENVIRONMENT_IS_NODE){NODEFS.staticInit()}{initMemory();if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"]}Module["ExitStatus"]=ExitStatus;Module["PThread"]=PThread;Module["terminateWorker"]=terminateWorker;Module["cleanupThread"]=cleanupThread;Module["addOnPreRun"]=addOnPreRun;Module["onPreRuns"]=onPreRuns;Module["callRuntimeCallbacks"]=callRuntimeCallbacks;Module["spawnThread"]=spawnThread;Module["_exit"]=_exit;Module["exitJS"]=exitJS;Module["_proc_exit"]=_proc_exit;Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["runtimeKeepaliveCounter"]=runtimeKeepaliveCounter;Module["proxyToMainThread"]=proxyToMainThread;Module["stackSave"]=stackSave;Module["stackRestore"]=stackRestore;Module["stackAlloc"]=stackAlloc;Module["exitOnMainThread"]=exitOnMainThread;Module["addOnPostRun"]=addOnPostRun;Module["onPostRuns"]=onPostRuns;Module["establishStackSpace"]=establishStackSpace;Module["getValue"]=getValue;Module["invokeEntryPoint"]=invokeEntryPoint;Module["getWasmTableEntry"]=getWasmTableEntry;Module["wasmTableMirror"]=wasmTableMirror;Module["wasmTable"]=wasmTable;Module["noExitRuntime"]=noExitRuntime;Module["registerTLSInit"]=registerTLSInit;Module["setValue"]=setValue;Module["___assert_fail"]=___assert_fail;Module["UTF8ToString"]=UTF8ToString;Module["UTF8ArrayToString"]=UTF8ArrayToString;Module["UTF8Decoder"]=UTF8Decoder;Module["___call_sighandler"]=___call_sighandler;Module["___cxa_throw"]=___cxa_throw;Module["ExceptionInfo"]=ExceptionInfo;Module["exceptionLast"]=exceptionLast;Module["uncaughtExceptionCount"]=uncaughtExceptionCount;Module["___pthread_create_js"]=___pthread_create_js;Module["pthreadCreateProxied"]=pthreadCreateProxied;Module["_emscripten_has_threading_support"]=_emscripten_has_threading_support;Module["__abort_js"]=__abort_js;Module["__embind_register_bigint"]=__embind_register_bigint;Module["embindRepr"]=embindRepr;Module["readLatin1String"]=readLatin1String;Module["embind_charCodes"]=embind_charCodes;Module["embind_init_charCodes"]=embind_init_charCodes;Module["registerType"]=registerType;Module["sharedRegisterType"]=sharedRegisterType;Module["awaitingDependencies"]=awaitingDependencies;Module["registeredTypes"]=registeredTypes;Module["typeDependencies"]=typeDependencies;Module["throwBindingError"]=throwBindingError;Module["BindingError"]=BindingError;Module["integerReadValueFromPointer"]=integerReadValueFromPointer;Module["__embind_register_bool"]=__embind_register_bool;Module["GenericWireTypeSize"]=GenericWireTypeSize;Module["__embind_register_class"]=__embind_register_class;Module["ClassHandle"]=ClassHandle;Module["init_ClassHandle"]=init_ClassHandle;Module["shallowCopyInternalPointer"]=shallowCopyInternalPointer;Module["throwInstanceAlreadyDeleted"]=throwInstanceAlreadyDeleted;Module["attachFinalizer"]=attachFinalizer;Module["finalizationRegistry"]=finalizationRegistry;Module["detachFinalizer"]=detachFinalizer;Module["releaseClassHandle"]=releaseClassHandle;Module["runDestructor"]=runDestructor;Module["flushPendingDeletes"]=flushPendingDeletes;Module["deletionQueue"]=deletionQueue;Module["delayFunction"]=delayFunction;Module["createNamedFunction"]=createNamedFunction;Module["registeredPointers"]=registeredPointers;Module["exposePublicSymbol"]=exposePublicSymbol;Module["ensureOverloadTable"]=ensureOverloadTable;Module["makeLegalFunctionName"]=makeLegalFunctionName;Module["char_0"]=char_0;Module["char_9"]=char_9;Module["RegisteredClass"]=RegisteredClass;Module["RegisteredPointer"]=RegisteredPointer;Module["constNoSmartPtrRawPointerToWireType"]=constNoSmartPtrRawPointerToWireType;Module["upcastPointer"]=upcastPointer;Module["genericPointerToWireType"]=genericPointerToWireType;Module["nonConstNoSmartPtrRawPointerToWireType"]=nonConstNoSmartPtrRawPointerToWireType;Module["init_RegisteredPointer"]=init_RegisteredPointer;Module["readPointer"]=readPointer;Module["RegisteredPointer_fromWireType"]=RegisteredPointer_fromWireType;Module["downcastPointer"]=downcastPointer;Module["getInheritedInstance"]=getInheritedInstance;Module["registeredInstances"]=registeredInstances;Module["getBasestPointer"]=getBasestPointer;Module["makeClassHandle"]=makeClassHandle;Module["throwInternalError"]=throwInternalError;Module["InternalError"]=InternalError;Module["replacePublicSymbol"]=replacePublicSymbol;Module["embind__requireFunction"]=embind__requireFunction;Module["throwUnboundTypeError"]=throwUnboundTypeError;Module["UnboundTypeError"]=UnboundTypeError;Module["getTypeName"]=getTypeName;Module["whenDependentTypesAreResolved"]=whenDependentTypesAreResolved;Module["__embind_register_class_class_property"]=__embind_register_class_class_property;Module["runDestructors"]=runDestructors;Module["__embind_register_class_constructor"]=__embind_register_class_constructor;Module["heap32VectorToArray"]=heap32VectorToArray;Module["craftInvokerFunction"]=craftInvokerFunction;Module["usesDestructorStack"]=usesDestructorStack;Module["createJsInvoker"]=createJsInvoker;Module["__embind_register_class_function"]=__embind_register_class_function;Module["getFunctionName"]=getFunctionName;Module["__embind_register_class_property"]=__embind_register_class_property;Module["validateThis"]=validateThis;Module["__embind_register_constant"]=__embind_register_constant;Module["__embind_register_emval"]=__embind_register_emval;Module["EmValType"]=EmValType;Module["__emval_decref"]=__emval_decref;Module["emval_freelist"]=emval_freelist;Module["emval_handles"]=emval_handles;Module["Emval"]=Emval;Module["init_emval"]=init_emval;Module["count_emval_handles"]=count_emval_handles;Module["__embind_register_float"]=__embind_register_float;Module["floatReadValueFromPointer"]=floatReadValueFromPointer;Module["__embind_register_function"]=__embind_register_function;Module["__embind_register_integer"]=__embind_register_integer;Module["__embind_register_memory_view"]=__embind_register_memory_view;Module["__embind_register_std_string"]=__embind_register_std_string;Module["stringToUTF8"]=stringToUTF8;Module["stringToUTF8Array"]=stringToUTF8Array;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["__embind_register_std_wstring"]=__embind_register_std_wstring;Module["UTF16ToString"]=UTF16ToString;Module["UTF16Decoder"]=UTF16Decoder;Module["stringToUTF16"]=stringToUTF16;Module["lengthBytesUTF16"]=lengthBytesUTF16;Module["UTF32ToString"]=UTF32ToString;Module["stringToUTF32"]=stringToUTF32;Module["lengthBytesUTF32"]=lengthBytesUTF32;Module["__embind_register_void"]=__embind_register_void;Module["__emscripten_get_progname"]=__emscripten_get_progname;Module["getExecutableName"]=getExecutableName;Module["__emscripten_init_main_thread_js"]=__emscripten_init_main_thread_js;Module["__emscripten_notify_mailbox_postmessage"]=__emscripten_notify_mailbox_postmessage;Module["checkMailbox"]=checkMailbox;Module["callUserCallback"]=callUserCallback;Module["handleException"]=handleException;Module["maybeExit"]=maybeExit;Module["__emscripten_thread_mailbox_await"]=__emscripten_thread_mailbox_await;Module["__emscripten_receive_on_main_thread_js"]=__emscripten_receive_on_main_thread_js;Module["proxiedJSCallArgs"]=proxiedJSCallArgs;Module["__emscripten_runtime_keepalive_clear"]=__emscripten_runtime_keepalive_clear;Module["__emscripten_thread_cleanup"]=__emscripten_thread_cleanup;Module["__emscripten_thread_set_strongref"]=__emscripten_thread_set_strongref;Module["__setitimer_js"]=__setitimer_js;Module["timers"]=timers;Module["_emscripten_get_now"]=_emscripten_get_now;Module["__tzset_js"]=__tzset_js;Module["_addCallbackFunction"]=_addCallbackFunction;Module["_cbfl"]=_cbfl;Module["_callFunction"]=_callFunction;Module["_callFunctionInt"]=_callFunctionInt;Module["_clock_time_get"]=_clock_time_get;Module["_emscripten_date_now"]=_emscripten_date_now;Module["nowIsMonotonic"]=nowIsMonotonic;Module["checkWasiClock"]=checkWasiClock;Module["bigintToI53Checked"]=bigintToI53Checked;Module["INT53_MAX"]=INT53_MAX;Module["INT53_MIN"]=INT53_MIN;Module["_emscripten_check_blocking_allowed"]=_emscripten_check_blocking_allowed;Module["_emscripten_exit_with_live_runtime"]=_emscripten_exit_with_live_runtime;Module["runtimeKeepalivePush"]=runtimeKeepalivePush;Module["_emscripten_resize_heap"]=_emscripten_resize_heap;Module["getHeapMax"]=getHeapMax;Module["alignMemory"]=alignMemory;Module["growMemory"]=growMemory;Module["_emscripten_sleep"]=_emscripten_sleep;Module["_emscripten_unwind_to_js_event_loop"]=_emscripten_unwind_to_js_event_loop;Module["_environ_get"]=_environ_get;Module["getEnvStrings"]=getEnvStrings;Module["ENV"]=ENV;Module["_environ_sizes_get"]=_environ_sizes_get;Module["_fd_close"]=_fd_close;Module["SYSCALLS"]=SYSCALLS;Module["PATH"]=PATH;Module["FS"]=FS;Module["randomFill"]=randomFill;Module["initRandomFill"]=initRandomFill;Module["PATH_FS"]=PATH_FS;Module["TTY"]=TTY;Module["FS_stdin_getChar"]=FS_stdin_getChar;Module["FS_stdin_getChar_buffer"]=FS_stdin_getChar_buffer;Module["intArrayFromString"]=intArrayFromString;Module["MEMFS"]=MEMFS;Module["mmapAlloc"]=mmapAlloc;Module["zeroMemory"]=zeroMemory;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["asyncLoad"]=asyncLoad;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_handledByPreloadPlugin"]=FS_handledByPreloadPlugin;Module["preloadPlugins"]=preloadPlugins;Module["FS_modeStringToFlags"]=FS_modeStringToFlags;Module["FS_getMode"]=FS_getMode;Module["IDBFS"]=IDBFS;Module["NODEFS"]=NODEFS;Module["ERRNO_CODES"]=ERRNO_CODES;Module["_fd_read"]=_fd_read;Module["doReadv"]=doReadv;Module["_fd_seek"]=_fd_seek;Module["_fd_write"]=_fd_write;Module["doWritev"]=doWritev;var proxiedFunctionTable=[_proc_exit,exitOnMainThread,pthreadCreateProxied,__setitimer_js,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];var wasmImports;function assignWasmImports(){wasmImports={__assert_fail:___assert_fail,__call_sighandler:___call_sighandler,__cxa_throw:___cxa_throw,__pthread_create_js:___pthread_create_js,_abort_js:__abort_js,_embind_register_bigint:__embind_register_bigint,_embind_register_bool:__embind_register_bool,_embind_register_class:__embind_register_class,_embind_register_class_class_property:__embind_register_class_class_property,_embind_register_class_constructor:__embind_register_class_constructor,_embind_register_class_function:__embind_register_class_function,_embind_register_class_property:__embind_register_class_property,_embind_register_constant:__embind_register_constant,_embind_register_emval:__embind_register_emval,_embind_register_float:__embind_register_float,_embind_register_function:__embind_register_function,_embind_register_integer:__embind_register_integer,_embind_register_memory_view:__embind_register_memory_view,_embind_register_std_string:__embind_register_std_string,_embind_register_std_wstring:__embind_register_std_wstring,_embind_register_void:__embind_register_void,_emscripten_get_progname:__emscripten_get_progname,_emscripten_init_main_thread_js:__emscripten_init_main_thread_js,_emscripten_notify_mailbox_postmessage:__emscripten_notify_mailbox_postmessage,_emscripten_receive_on_main_thread_js:__emscripten_receive_on_main_thread_js,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_thread_cleanup:__emscripten_thread_cleanup,_emscripten_thread_mailbox_await:__emscripten_thread_mailbox_await,_emscripten_thread_set_strongref:__emscripten_thread_set_strongref,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,addCallbackFunction:_addCallbackFunction,callFunction:_callFunction,callFunctionInt:_callFunctionInt,clock_time_get:_clock_time_get,emscripten_check_blocking_allowed:_emscripten_check_blocking_allowed,emscripten_exit_with_live_runtime:_emscripten_exit_with_live_runtime,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,emscripten_sleep:_emscripten_sleep,emscripten_unwind_to_js_event_loop:_emscripten_unwind_to_js_event_loop,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fd_close:_fd_close,fd_read:_fd_read,fd_seek:_fd_seek,fd_write:_fd_write,memory:wasmMemory,proc_exit:_proc_exit}}var wasmExports=await createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var ___getTypeName=a0=>(___getTypeName=wasmExports["__getTypeName"])(a0);var __embind_initialize_bindings=()=>(__embind_initialize_bindings=wasmExports["_embind_initialize_bindings"])();var __emval_coro_resume=(a0,a1)=>(__emval_coro_resume=wasmExports["_emval_coro_resume"])(a0,a1);var _pthread_self=()=>(_pthread_self=wasmExports["pthread_self"])();var ___cxa_allocate_exception=Module["___cxa_allocate_exception"]=a0=>(___cxa_allocate_exception=Module["___cxa_allocate_exception"]=wasmExports["__cxa_allocate_exception"])(a0);var __ZNSt9exceptionD2Ev=Module["__ZNSt9exceptionD2Ev"]=a0=>(__ZNSt9exceptionD2Ev=Module["__ZNSt9exceptionD2Ev"]=wasmExports["_ZNSt9exceptionD2Ev"])(a0);var __ZNK5nissy5error2okEv=Module["__ZNK5nissy5error2okEv"]=a0=>(__ZNK5nissy5error2okEv=Module["__ZNK5nissy5error2okEv"]=wasmExports["_ZNK5nissy5error2okEv"])(a0);var __ZN5nissy4cubeC2Ev=Module["__ZN5nissy4cubeC2Ev"]=a0=>(__ZN5nissy4cubeC2Ev=Module["__ZN5nissy4cubeC2Ev"]=wasmExports["_ZN5nissy4cubeC2Ev"])(a0);var __Znwm=Module["__Znwm"]=a0=>(__Znwm=Module["__Znwm"]=wasmExports["_Znwm"])(a0);var __ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy4cube4moveERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var _nissy_applymoves=Module["_nissy_applymoves"]=(a0,a1,a2)=>(_nissy_applymoves=Module["_nissy_applymoves"]=wasmExports["nissy_applymoves"])(a0,a1,a2);var __ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy4cube9transformERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var _nissy_applytrans=Module["_nissy_applytrans"]=(a0,a1,a2)=>(_nissy_applytrans=Module["_nissy_applytrans"]=wasmExports["nissy_applytrans"])(a0,a1,a2);var __ZN5nissy4cube6invertEv=Module["__ZN5nissy4cube6invertEv"]=a0=>(__ZN5nissy4cube6invertEv=Module["__ZN5nissy4cube6invertEv"]=wasmExports["_ZN5nissy4cube6invertEv"])(a0);var _nissy_inverse=Module["_nissy_inverse"]=(a0,a1)=>(_nissy_inverse=Module["_nissy_inverse"]=wasmExports["nissy_inverse"])(a0,a1);var __ZNK5nissy4cube9to_stringEv=Module["__ZNK5nissy4cube9to_stringEv"]=(a0,a1)=>(__ZNK5nissy4cube9to_stringEv=Module["__ZNK5nissy4cube9to_stringEv"]=wasmExports["_ZNK5nissy4cube9to_stringEv"])(a0,a1);var __ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy4cube11from_stringERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var __ZN5nissy4cubeC1Ev=Module["__ZN5nissy4cubeC1Ev"]=a0=>(__ZN5nissy4cubeC1Ev=Module["__ZN5nissy4cubeC1Ev"]=wasmExports["_ZN5nissy4cubeC1Ev"])(a0);var __ZN5nissy4cube3getExxxxx=Module["__ZN5nissy4cube3getExxxxx"]=(a0,a1,a2,a3,a4,a5)=>(__ZN5nissy4cube3getExxxxx=Module["__ZN5nissy4cube3getExxxxx"]=wasmExports["_ZN5nissy4cube3getExxxxx"])(a0,a1,a2,a3,a4,a5);var _nissy_getcube=Module["_nissy_getcube"]=(a0,a1,a2,a3,a4,a5,a6)=>(_nissy_getcube=Module["_nissy_getcube"]=wasmExports["nissy_getcube"])(a0,a1,a2,a3,a4,a5,a6);var __ZdlPvm=Module["__ZdlPvm"]=(a0,a1)=>(__ZdlPvm=Module["__ZdlPvm"]=wasmExports["_ZdlPvm"])(a0,a1);var __ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1,a2,a3,a4,a5,a6)=>(__ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy4cube3getExxxxxRKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1,a2,a3,a4,a5,a6);var __ZN5nissy6solver13generate_dataEv=Module["__ZN5nissy6solver13generate_dataEv"]=a0=>(__ZN5nissy6solver13generate_dataEv=Module["__ZN5nissy6solver13generate_dataEv"]=wasmExports["_ZN5nissy6solver13generate_dataEv"])(a0);var _nissy_gendata=Module["_nissy_gendata"]=(a0,a1,a2)=>(_nissy_gendata=Module["_nissy_gendata"]=wasmExports["nissy_gendata"])(a0,a1,a2);var __ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE=Module["__ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE"]=(a0,a1)=>(__ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE=Module["__ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE"]=wasmExports["_ZN5nissy6solver9read_dataERNSt3__214basic_ifstreamIcNS1_11char_traitsIcEEEE"])(a0,a1);var __ZN5nissy6solver10check_dataEv=Module["__ZN5nissy6solver10check_dataEv"]=a0=>(__ZN5nissy6solver10check_dataEv=Module["__ZN5nissy6solver10check_dataEv"]=wasmExports["_ZN5nissy6solver10check_dataEv"])(a0);var _nissy_checkdata=Module["_nissy_checkdata"]=(a0,a1)=>(_nissy_checkdata=Module["_nissy_checkdata"]=wasmExports["nissy_checkdata"])(a0,a1);var __ZN5nissy6solver11unload_dataEv=Module["__ZN5nissy6solver11unload_dataEv"]=a0=>(__ZN5nissy6solver11unload_dataEv=Module["__ZN5nissy6solver11unload_dataEv"]=wasmExports["_ZN5nissy6solver11unload_dataEv"])(a0);var __ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_=Module["__ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)=>(__ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_=Module["__ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_"]=wasmExports["_ZNK5nissy6solver5solveERKNS_4cubeENS_8nissflagEjjjjjPFiPvES5_"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);var __ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l=Module["__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l"]=(a0,a1,a2,a3)=>(__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l=Module["__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l"]=wasmExports["_ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPKS6_SB_EEvT_T0_l"])(a0,a1,a2,a3);var _nissy_solve=Module["_nissy_solve"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)=>(_nissy_solve=Module["_nissy_solve"]=wasmExports["nissy_solve"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14);var __ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy6solver3getERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var _nissy_solverinfo=Module["_nissy_solverinfo"]=(a0,a1)=>(_nissy_solverinfo=Module["_nissy_solverinfo"]=wasmExports["nissy_solverinfo"])(a0,a1);var __ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy6solverC1ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var __ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=(a0,a1)=>(__ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE=Module["__ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"]=wasmExports["_ZN5nissy6solverC2ERKNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"])(a0,a1);var __ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE=Module["__ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE"]=a0=>(__ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE=Module["__ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE"]=wasmExports["_ZN5nissy11count_movesERKNSt3__212basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE"])(a0);var _nissy_countmoves=Module["_nissy_countmoves"]=a0=>(_nissy_countmoves=Module["_nissy_countmoves"]=wasmExports["nissy_countmoves"])(a0);var __ZN5nissy10set_loggerEPFvPKcPvES2_=Module["__ZN5nissy10set_loggerEPFvPKcPvES2_"]=(a0,a1)=>(__ZN5nissy10set_loggerEPFvPKcPvES2_=Module["__ZN5nissy10set_loggerEPFvPKcPvES2_"]=wasmExports["_ZN5nissy10set_loggerEPFvPKcPvES2_"])(a0,a1);var _nissy_setlogger=Module["_nissy_setlogger"]=(a0,a1)=>(_nissy_setlogger=Module["_nissy_setlogger"]=wasmExports["nissy_setlogger"])(a0,a1);var __ZNSt12length_errorD1Ev=Module["__ZNSt12length_errorD1Ev"]=a0=>(__ZNSt12length_errorD1Ev=Module["__ZNSt12length_errorD1Ev"]=wasmExports["_ZNSt12length_errorD1Ev"])(a0);var __ZNSt20bad_array_new_lengthC1Ev=Module["__ZNSt20bad_array_new_lengthC1Ev"]=a0=>(__ZNSt20bad_array_new_lengthC1Ev=Module["__ZNSt20bad_array_new_lengthC1Ev"]=wasmExports["_ZNSt20bad_array_new_lengthC1Ev"])(a0);var __ZNSt20bad_array_new_lengthD1Ev=Module["__ZNSt20bad_array_new_lengthD1Ev"]=a0=>(__ZNSt20bad_array_new_lengthD1Ev=Module["__ZNSt20bad_array_new_lengthD1Ev"]=wasmExports["_ZNSt20bad_array_new_lengthD1Ev"])(a0);var __Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=a0=>(__Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=wasmExports["_Z3logNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"])(a0);var __Z11log_wrapperPKcPv=Module["__Z11log_wrapperPKcPv"]=(a0,a1)=>(__Z11log_wrapperPKcPv=Module["__Z11log_wrapperPKcPv"]=wasmExports["_Z11log_wrapperPKcPv"])(a0,a1);var __Z10set_loggeri=Module["__Z10set_loggeri"]=a0=>(__Z10set_loggeri=Module["__Z10set_loggeri"]=wasmExports["_Z10set_loggeri"])(a0);var __Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=a0=>(__Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=wasmExports["_Z11init_solverRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"])(a0);var __ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_=Module["__ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_"]=(a0,a1,a2)=>(__ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_=Module["__ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_"]=wasmExports["_ZNSt3__24pairIKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEC2B8ne190106IRS7_RS9_TnNS_9enable_ifIXclsr10_CheckArgsE23__is_pair_constructibleIT_T0_EEEiE4typeELi0EEEOSF_OSG_"])(a0,a1,a2);var __ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_=Module["__ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_"]=(a0,a1,a2,a3)=>(__ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_=Module["__ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_"]=wasmExports["_ZNSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE25__emplace_unique_key_argsIS7_JNS_4pairIKS7_S9_EEEEENSI_INS_15__tree_iteratorISA_PNS_11__tree_nodeISA_PvEElEEbEERKT_DpOT0_"])(a0,a1,a2,a3);var __Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=a0=>(__Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=wasmExports["_Z12solver_validRKNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"])(a0);var __ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_=Module["__ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_"]=(a0,a1)=>(__ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_=Module["__ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_"]=wasmExports["_ZNKSt3__26__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy6solverEEENS_19__map_value_compareIS7_SA_NS_4lessIS7_EELb1EEENS5_ISA_EEE4findIS7_EENS_21__tree_const_iteratorISA_PNS_11__tree_nodeISA_PvEElEERKT_"])(a0,a1);var __ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_=Module["__ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_"]=(a0,a1)=>(__ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_=Module["__ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_"]=wasmExports["_ZNKSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE4findIS6_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_"])(a0,a1);var __Z11poll_statusPv=Module["__Z11poll_statusPv"]=a0=>(__Z11poll_statusPv=Module["__Z11poll_statusPv"]=wasmExports["_Z11poll_statusPv"])(a0);var __Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji=Module["__Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(__Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji=Module["__Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji"]=wasmExports["_Z5solveNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN5nissy4cubeENS6_8nissflagEjjjjji"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var _memcmp=(a0,a1,a2)=>(_memcmp=wasmExports["memcmp"])(a0,a1,a2);var __ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_"]=a0=>(__ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_"]=wasmExports["_ZN10emscripten8internal13getActualTypeIN5nissy8nissflagEEEPKvPT_"])(a0);var __ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_"]=a0=>(__ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_"]=wasmExports["_ZN10emscripten8internal14raw_destructorIN5nissy8nissflagEEEvPT_"])(a0);var __ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_=Module["__ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_"]=a0=>(__ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_=Module["__ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_"]=wasmExports["_ZN10emscripten8internal12GlobalAccessIN5nissy8nissflagEE3getEPS3_"])(a0);var __ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_"]=a0=>(__ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_"]=wasmExports["_ZN10emscripten8internal13getActualTypeIN5nissy5errorEEEPKvPT_"])(a0);var __ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_"]=a0=>(__ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_"]=wasmExports["_ZN10emscripten8internal14raw_destructorIN5nissy5errorEEEvPT_"])(a0);var __ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_"]=(a0,a1)=>(__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_"]=wasmExports["_ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy5errorEKFbvEbPKS5_JEE6invokeERKS7_S9_"])(a0,a1);var __ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_=Module["__ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_"]=a0=>(__ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_=Module["__ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_"]=wasmExports["_ZN10emscripten8internal12GlobalAccessIN5nissy5errorEE3getEPS3_"])(a0);var __ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_"]=a0=>(__ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_"]=wasmExports["_ZN10emscripten8internal13getActualTypeIN5nissy4cubeEEEPKvPT_"])(a0);var __ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_"]=a0=>(__ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_"]=wasmExports["_ZN10emscripten8internal14raw_destructorIN5nissy4cubeEEEvPT_"])(a0);var __ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE=Module["__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE"]=a0=>(__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE=Module["__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEPN5nissy4cubeEJEE6invokeEPFS6_vE"])(a0);var __ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_=Module["__ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_"]=()=>(__ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_=Module["__ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_"]=wasmExports["_ZN10emscripten8internal12operator_newIN5nissy4cubeEJEEEPT_DpOT0_"])();var __ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E"]=(a0,a1,a2)=>(__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E"]=wasmExports["_ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFNS4_5errorERKNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEES6_PS5_JSF_EE6invokeERKSH_SI_PNS0_11BindingTypeISD_vEUt_E"])(a0,a1,a2);var __ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_"]=(a0,a1)=>(__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_"]=wasmExports["_ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEFvvEvPS5_JEE6invokeERKS7_S8_"])(a0,a1);var __ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_"]=(a0,a1)=>(__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_=Module["__ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_"]=wasmExports["_ZN10emscripten8internal13MethodInvokerINS0_3rvp11default_tagEMN5nissy4cubeEKFNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEvESC_PKS5_JEE6invokeERKSE_SG_"])(a0,a1);var __ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_"]=a0=>(__ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_=Module["__ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_"]=wasmExports["_ZN10emscripten8internal13getActualTypeIN5nissy6solver12solve_resultEEEPKvPT_"])(a0);var __ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_"]=a0=>(__ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_=Module["__ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_"]=wasmExports["_ZN10emscripten8internal14raw_destructorIN5nissy6solver12solve_resultEEEvPT_"])(a0);var __ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_"]=(a0,a1)=>(__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_"]=wasmExports["_ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7getWireIS4_NS0_3rvp11default_tagEEEPS5_RKMS4_S5_RT_"])(a0,a1);var __ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_"]=(a0,a1,a2)=>(__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_"]=wasmExports["_ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENS2_5errorEE7setWireIS4_EEvRKMS4_S5_RT_PS5_"])(a0,a1,a2);var __ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_"]=(a0,a1)=>(__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_"]=wasmExports["_ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7getWireIS4_NS0_3rvp11default_tagEEEPSE_RKMS4_SE_RT_"])(a0,a1);var __ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_"]=(a0,a1,a2)=>(__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_=Module["__ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_"]=wasmExports["_ZN10emscripten8internal12MemberAccessIN5nissy6solver12solve_resultENSt3__26vectorINS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEENSA_ISC_EEEEE7setWireIS4_EEvRKMS4_SE_RT_PSE_"])(a0,a1,a2);var __ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E"]=(a0,a1)=>(__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEN5nissy5errorEJRKNSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEE6invokeEPFS5_SE_EPNS0_11BindingTypeISC_vEUt_E"])(a0,a1);var __ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji=Module["__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji"]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)=>(__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji=Module["__ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp14take_ownershipEN5nissy6solver12solve_resultEJNSt3__212basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEENS4_4cubeENS4_8nissflagEjjjjjiEE6invokeEPFS6_SD_SE_SF_jjjjjiEPNS0_11BindingTypeISD_vEUt_EPSE_PSF_jjjjji"])(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);var __ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi"]=(a0,a1)=>(__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEvJiEE6invokeEPFviEi"])(a0,a1);var __ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE"]=a0=>(__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE=Module["__ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE"]=wasmExports["_ZN10emscripten8internal7InvokerINS0_3rvp11default_tagEiJEE6invokeEPFivE"])(a0);var _malloc=a0=>(_malloc=wasmExports["malloc"])(a0);var __ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l=Module["__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l"]=(a0,a1,a2,a3)=>(__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l=Module["__ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l"]=wasmExports["_ZNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE18__assign_with_sizeB8ne190106IPS6_SA_EEvT_T0_l"])(a0,a1,a2,a3);var __ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_=Module["__ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_"]=(a0,a1,a2,a3,a4)=>(__ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_=Module["__ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_"]=wasmExports["_ZNSt3__26__treeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4lessIS6_EENS4_IS6_EEE12__find_equalIS6_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SD_EElEERPNS_15__tree_end_nodeISF_EESG_RKT_"])(a0,a1,a2,a3,a4);var __ZNSt12out_of_rangeD1Ev=Module["__ZNSt12out_of_rangeD1Ev"]=a0=>(__ZNSt12out_of_rangeD1Ev=Module["__ZNSt12out_of_rangeD1Ev"]=wasmExports["_ZNSt12out_of_rangeD1Ev"])(a0);var _write_wrapper=Module["_write_wrapper"]=(a0,a1,a2)=>(_write_wrapper=Module["_write_wrapper"]=wasmExports["write_wrapper"])(a0,a1,a2);var _gendata_h48_derive=Module["_gendata_h48_derive"]=(a0,a1,a2)=>(_gendata_h48_derive=Module["_gendata_h48_derive"]=wasmExports["gendata_h48_derive"])(a0,a1,a2);var _parse_h48_solver=Module["_parse_h48_solver"]=(a0,a1,a2)=>(_parse_h48_solver=Module["_parse_h48_solver"]=wasmExports["parse_h48_solver"])(a0,a1,a2);var _nissy_datainfo=Module["_nissy_datainfo"]=(a0,a1)=>(_nissy_datainfo=Module["_nissy_datainfo"]=wasmExports["nissy_datainfo"])(a0,a1);var _free=a0=>(_free=wasmExports["free"])(a0);var __emscripten_tls_init=()=>(__emscripten_tls_init=wasmExports["_emscripten_tls_init"])();var _emscripten_builtin_memalign=(a0,a1)=>(_emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"])(a0,a1);var _emscripten_is_main_runtime_thread=Module["_emscripten_is_main_runtime_thread"]=()=>(_emscripten_is_main_runtime_thread=Module["_emscripten_is_main_runtime_thread"]=wasmExports["emscripten_is_main_runtime_thread"])();var __emscripten_run_callback_on_thread=(a0,a1,a2,a3,a4)=>(__emscripten_run_callback_on_thread=wasmExports["_emscripten_run_callback_on_thread"])(a0,a1,a2,a3,a4);var _emscripten_stack_get_end=Module["_emscripten_stack_get_end"]=()=>(_emscripten_stack_get_end=Module["_emscripten_stack_get_end"]=wasmExports["emscripten_stack_get_end"])();var _emscripten_stack_get_base=Module["_emscripten_stack_get_base"]=()=>(_emscripten_stack_get_base=Module["_emscripten_stack_get_base"]=wasmExports["emscripten_stack_get_base"])();var ___get_tp=Module["___get_tp"]=()=>(___get_tp=Module["___get_tp"]=wasmExports["__get_tp"])();var _memcpy=(a0,a1,a2)=>(_memcpy=wasmExports["memcpy"])(a0,a1,a2);var __emscripten_thread_supports_atomics_wait=Module["__emscripten_thread_supports_atomics_wait"]=()=>(__emscripten_thread_supports_atomics_wait=Module["__emscripten_thread_supports_atomics_wait"]=wasmExports["_emscripten_thread_supports_atomics_wait"])();var __emscripten_memcpy_bulkmem=Module["__emscripten_memcpy_bulkmem"]=(a0,a1,a2)=>(__emscripten_memcpy_bulkmem=Module["__emscripten_memcpy_bulkmem"]=wasmExports["_emscripten_memcpy_bulkmem"])(a0,a1,a2);var __emscripten_memset_bulkmem=Module["__emscripten_memset_bulkmem"]=(a0,a1,a2)=>(__emscripten_memset_bulkmem=Module["__emscripten_memset_bulkmem"]=wasmExports["_emscripten_memset_bulkmem"])(a0,a1,a2);var _emscripten_stack_get_current=()=>(_emscripten_stack_get_current=wasmExports["emscripten_stack_get_current"])();var __emscripten_thread_init=(a0,a1,a2,a3,a4,a5)=>(__emscripten_thread_init=wasmExports["_emscripten_thread_init"])(a0,a1,a2,a3,a4,a5);var ___set_thread_state=Module["___set_thread_state"]=(a0,a1,a2,a3)=>(___set_thread_state=Module["___set_thread_state"]=wasmExports["__set_thread_state"])(a0,a1,a2,a3);var _emscripten_is_main_browser_thread=Module["_emscripten_is_main_browser_thread"]=()=>(_emscripten_is_main_browser_thread=Module["_emscripten_is_main_browser_thread"]=wasmExports["emscripten_is_main_browser_thread"])();var __emscripten_thread_crashed=()=>(__emscripten_thread_crashed=wasmExports["_emscripten_thread_crashed"])();var _calloc=(a0,a1)=>(_calloc=wasmExports["calloc"])(a0,a1);var _fileno=a0=>(_fileno=wasmExports["fileno"])(a0);var _realloc=(a0,a1)=>(_realloc=wasmExports["realloc"])(a0,a1);var _htons=a0=>(_htons=wasmExports["htons"])(a0);var _ntohs=a0=>(_ntohs=wasmExports["ntohs"])(a0);var _htonl=a0=>(_htonl=wasmExports["htonl"])(a0);var _strerror=a0=>(_strerror=wasmExports["strerror"])(a0);var __emscripten_run_on_main_thread_js=(a0,a1,a2,a3,a4)=>(__emscripten_run_on_main_thread_js=wasmExports["_emscripten_run_on_main_thread_js"])(a0,a1,a2,a3,a4);var __emscripten_thread_free_data=a0=>(__emscripten_thread_free_data=wasmExports["_emscripten_thread_free_data"])(a0);var __emscripten_thread_exit=a0=>(__emscripten_thread_exit=wasmExports["_emscripten_thread_exit"])(a0);var __emscripten_timeout=(a0,a1)=>(__emscripten_timeout=wasmExports["_emscripten_timeout"])(a0,a1);var __emscripten_check_mailbox=()=>(__emscripten_check_mailbox=wasmExports["_emscripten_check_mailbox"])();var _setThrew=(a0,a1)=>(_setThrew=wasmExports["setThrew"])(a0,a1);var __emscripten_tempret_set=a0=>(__emscripten_tempret_set=wasmExports["_emscripten_tempret_set"])(a0);var __emscripten_tempret_get=()=>(__emscripten_tempret_get=wasmExports["_emscripten_tempret_get"])();var ___get_temp_ret=Module["___get_temp_ret"]=()=>(___get_temp_ret=Module["___get_temp_ret"]=wasmExports["__get_temp_ret"])();var ___set_temp_ret=Module["___set_temp_ret"]=a0=>(___set_temp_ret=Module["___set_temp_ret"]=wasmExports["__set_temp_ret"])(a0);var _getTempRet0=Module["_getTempRet0"]=()=>(_getTempRet0=Module["_getTempRet0"]=wasmExports["getTempRet0"])();var _setTempRet0=Module["_setTempRet0"]=a0=>(_setTempRet0=Module["_setTempRet0"]=wasmExports["setTempRet0"])(a0);var ___emutls_get_address=Module["___emutls_get_address"]=a0=>(___emutls_get_address=Module["___emutls_get_address"]=wasmExports["__emutls_get_address"])(a0);var _emscripten_stack_init=Module["_emscripten_stack_init"]=()=>(_emscripten_stack_init=Module["_emscripten_stack_init"]=wasmExports["emscripten_stack_init"])();var _emscripten_stack_set_limits=(a0,a1)=>(_emscripten_stack_set_limits=wasmExports["emscripten_stack_set_limits"])(a0,a1);var _emscripten_stack_get_free=Module["_emscripten_stack_get_free"]=()=>(_emscripten_stack_get_free=Module["_emscripten_stack_get_free"]=wasmExports["emscripten_stack_get_free"])();var __emscripten_stack_restore=a0=>(__emscripten_stack_restore=wasmExports["_emscripten_stack_restore"])(a0);var __emscripten_stack_alloc=a0=>(__emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"])(a0);var __ZNSt8bad_castD2Ev=Module["__ZNSt8bad_castD2Ev"]=a0=>(__ZNSt8bad_castD2Ev=Module["__ZNSt8bad_castD2Ev"]=wasmExports["_ZNSt8bad_castD2Ev"])(a0);var __ZnamSt11align_val_t=Module["__ZnamSt11align_val_t"]=(a0,a1)=>(__ZnamSt11align_val_t=Module["__ZnamSt11align_val_t"]=wasmExports["_ZnamSt11align_val_t"])(a0,a1);var __ZdaPvSt11align_val_t=Module["__ZdaPvSt11align_val_t"]=(a0,a1)=>(__ZdaPvSt11align_val_t=Module["__ZdaPvSt11align_val_t"]=wasmExports["_ZdaPvSt11align_val_t"])(a0,a1);var __ZNSt13runtime_errorD2Ev=Module["__ZNSt13runtime_errorD2Ev"]=a0=>(__ZNSt13runtime_errorD2Ev=Module["__ZNSt13runtime_errorD2Ev"]=wasmExports["_ZNSt13runtime_errorD2Ev"])(a0);var __ZNKSt13runtime_error4whatEv=Module["__ZNKSt13runtime_error4whatEv"]=a0=>(__ZNKSt13runtime_error4whatEv=Module["__ZNKSt13runtime_error4whatEv"]=wasmExports["_ZNKSt13runtime_error4whatEv"])(a0);var __ZnwmSt11align_val_t=Module["__ZnwmSt11align_val_t"]=(a0,a1)=>(__ZnwmSt11align_val_t=Module["__ZnwmSt11align_val_t"]=wasmExports["_ZnwmSt11align_val_t"])(a0,a1);var __ZdlPvmSt11align_val_t=Module["__ZdlPvmSt11align_val_t"]=(a0,a1,a2)=>(__ZdlPvmSt11align_val_t=Module["__ZdlPvmSt11align_val_t"]=wasmExports["_ZdlPvmSt11align_val_t"])(a0,a1,a2);var ___cxa_pure_virtual=Module["___cxa_pure_virtual"]=()=>(___cxa_pure_virtual=Module["___cxa_pure_virtual"]=wasmExports["__cxa_pure_virtual"])();var ___cxa_uncaught_exceptions=Module["___cxa_uncaught_exceptions"]=()=>(___cxa_uncaught_exceptions=Module["___cxa_uncaught_exceptions"]=wasmExports["__cxa_uncaught_exceptions"])();var ___cxa_decrement_exception_refcount=a0=>(___cxa_decrement_exception_refcount=wasmExports["__cxa_decrement_exception_refcount"])(a0);var ___cxa_increment_exception_refcount=a0=>(___cxa_increment_exception_refcount=wasmExports["__cxa_increment_exception_refcount"])(a0);var ___cxa_current_primary_exception=Module["___cxa_current_primary_exception"]=()=>(___cxa_current_primary_exception=Module["___cxa_current_primary_exception"]=wasmExports["__cxa_current_primary_exception"])();var __ZSt9terminatev=Module["__ZSt9terminatev"]=()=>(__ZSt9terminatev=Module["__ZSt9terminatev"]=wasmExports["_ZSt9terminatev"])();var ___cxa_rethrow_primary_exception=Module["___cxa_rethrow_primary_exception"]=a0=>(___cxa_rethrow_primary_exception=Module["___cxa_rethrow_primary_exception"]=wasmExports["__cxa_rethrow_primary_exception"])(a0);var ___cxa_guard_acquire=Module["___cxa_guard_acquire"]=a0=>(___cxa_guard_acquire=Module["___cxa_guard_acquire"]=wasmExports["__cxa_guard_acquire"])(a0);var ___cxa_guard_release=Module["___cxa_guard_release"]=a0=>(___cxa_guard_release=Module["___cxa_guard_release"]=wasmExports["__cxa_guard_release"])(a0);var __ZNSt11logic_errorD2Ev=Module["__ZNSt11logic_errorD2Ev"]=a0=>(__ZNSt11logic_errorD2Ev=Module["__ZNSt11logic_errorD2Ev"]=wasmExports["_ZNSt11logic_errorD2Ev"])(a0);var __ZNKSt11logic_error4whatEv=Module["__ZNKSt11logic_error4whatEv"]=a0=>(__ZNKSt11logic_error4whatEv=Module["__ZNKSt11logic_error4whatEv"]=wasmExports["_ZNKSt11logic_error4whatEv"])(a0);var __ZdaPv=Module["__ZdaPv"]=a0=>(__ZdaPv=Module["__ZdaPv"]=wasmExports["_ZdaPv"])(a0);var __Znam=Module["__Znam"]=a0=>(__Znam=Module["__Znam"]=wasmExports["_Znam"])(a0);var __ZSt15get_new_handlerv=Module["__ZSt15get_new_handlerv"]=()=>(__ZSt15get_new_handlerv=Module["__ZSt15get_new_handlerv"]=wasmExports["_ZSt15get_new_handlerv"])();var __ZdlPv=Module["__ZdlPv"]=a0=>(__ZdlPv=Module["__ZdlPv"]=wasmExports["_ZdlPv"])(a0);var __ZdaPvm=Module["__ZdaPvm"]=(a0,a1)=>(__ZdaPvm=Module["__ZdaPvm"]=wasmExports["_ZdaPvm"])(a0,a1);var __ZdlPvSt11align_val_t=Module["__ZdlPvSt11align_val_t"]=(a0,a1)=>(__ZdlPvSt11align_val_t=Module["__ZdlPvSt11align_val_t"]=wasmExports["_ZdlPvSt11align_val_t"])(a0,a1);var __ZdaPvmSt11align_val_t=Module["__ZdaPvmSt11align_val_t"]=(a0,a1,a2)=>(__ZdaPvmSt11align_val_t=Module["__ZdaPvmSt11align_val_t"]=wasmExports["_ZdaPvmSt11align_val_t"])(a0,a1,a2);var ___dynamic_cast=Module["___dynamic_cast"]=(a0,a1,a2,a3)=>(___dynamic_cast=Module["___dynamic_cast"]=wasmExports["__dynamic_cast"])(a0,a1,a2,a3);var ___cxa_bad_cast=Module["___cxa_bad_cast"]=()=>(___cxa_bad_cast=Module["___cxa_bad_cast"]=wasmExports["__cxa_bad_cast"])();var ___cxa_bad_typeid=Module["___cxa_bad_typeid"]=()=>(___cxa_bad_typeid=Module["___cxa_bad_typeid"]=wasmExports["__cxa_bad_typeid"])();var ___cxa_throw_bad_array_new_length=Module["___cxa_throw_bad_array_new_length"]=()=>(___cxa_throw_bad_array_new_length=Module["___cxa_throw_bad_array_new_length"]=wasmExports["__cxa_throw_bad_array_new_length"])();var __ZSt14set_unexpectedPFvvE=Module["__ZSt14set_unexpectedPFvvE"]=a0=>(__ZSt14set_unexpectedPFvvE=Module["__ZSt14set_unexpectedPFvvE"]=wasmExports["_ZSt14set_unexpectedPFvvE"])(a0);var __ZSt13set_terminatePFvvE=Module["__ZSt13set_terminatePFvvE"]=a0=>(__ZSt13set_terminatePFvvE=Module["__ZSt13set_terminatePFvvE"]=wasmExports["_ZSt13set_terminatePFvvE"])(a0);var __ZSt15set_new_handlerPFvvE=Module["__ZSt15set_new_handlerPFvvE"]=a0=>(__ZSt15set_new_handlerPFvvE=Module["__ZSt15set_new_handlerPFvvE"]=wasmExports["_ZSt15set_new_handlerPFvvE"])(a0);var ___cxa_demangle=(a0,a1,a2,a3)=>(___cxa_demangle=wasmExports["__cxa_demangle"])(a0,a1,a2,a3);var ___cxa_guard_abort=Module["___cxa_guard_abort"]=a0=>(___cxa_guard_abort=Module["___cxa_guard_abort"]=wasmExports["__cxa_guard_abort"])(a0);var __ZSt14get_unexpectedv=Module["__ZSt14get_unexpectedv"]=()=>(__ZSt14get_unexpectedv=Module["__ZSt14get_unexpectedv"]=wasmExports["_ZSt14get_unexpectedv"])();var __ZSt10unexpectedv=Module["__ZSt10unexpectedv"]=()=>(__ZSt10unexpectedv=Module["__ZSt10unexpectedv"]=wasmExports["_ZSt10unexpectedv"])();var __ZSt13get_terminatev=Module["__ZSt13get_terminatev"]=()=>(__ZSt13get_terminatev=Module["__ZSt13get_terminatev"]=wasmExports["_ZSt13get_terminatev"])();var ___cxa_uncaught_exception=Module["___cxa_uncaught_exception"]=()=>(___cxa_uncaught_exception=Module["___cxa_uncaught_exception"]=wasmExports["__cxa_uncaught_exception"])();var ___cxa_free_exception=Module["___cxa_free_exception"]=a0=>(___cxa_free_exception=Module["___cxa_free_exception"]=wasmExports["__cxa_free_exception"])(a0);var ___cxa_init_primary_exception=Module["___cxa_init_primary_exception"]=(a0,a1,a2)=>(___cxa_init_primary_exception=Module["___cxa_init_primary_exception"]=wasmExports["__cxa_init_primary_exception"])(a0,a1,a2);var ___cxa_thread_atexit=Module["___cxa_thread_atexit"]=(a0,a1,a2)=>(___cxa_thread_atexit=Module["___cxa_thread_atexit"]=wasmExports["__cxa_thread_atexit"])(a0,a1,a2);var ___cxa_deleted_virtual=Module["___cxa_deleted_virtual"]=()=>(___cxa_deleted_virtual=Module["___cxa_deleted_virtual"]=wasmExports["__cxa_deleted_virtual"])();var __ZNSt9type_infoD2Ev=Module["__ZNSt9type_infoD2Ev"]=a0=>(__ZNSt9type_infoD2Ev=Module["__ZNSt9type_infoD2Ev"]=wasmExports["_ZNSt9type_infoD2Ev"])(a0);var ___cxa_can_catch=(a0,a1,a2)=>(___cxa_can_catch=wasmExports["__cxa_can_catch"])(a0,a1,a2);var ___cxa_get_exception_ptr=a0=>(___cxa_get_exception_ptr=wasmExports["__cxa_get_exception_ptr"])(a0);var __ZNSt9exceptionD0Ev=Module["__ZNSt9exceptionD0Ev"]=a0=>(__ZNSt9exceptionD0Ev=Module["__ZNSt9exceptionD0Ev"]=wasmExports["_ZNSt9exceptionD0Ev"])(a0);var __ZNSt9exceptionD1Ev=Module["__ZNSt9exceptionD1Ev"]=a0=>(__ZNSt9exceptionD1Ev=Module["__ZNSt9exceptionD1Ev"]=wasmExports["_ZNSt9exceptionD1Ev"])(a0);var __ZNKSt9exception4whatEv=Module["__ZNKSt9exception4whatEv"]=a0=>(__ZNKSt9exception4whatEv=Module["__ZNKSt9exception4whatEv"]=wasmExports["_ZNKSt9exception4whatEv"])(a0);var __ZNSt13bad_exceptionD0Ev=Module["__ZNSt13bad_exceptionD0Ev"]=a0=>(__ZNSt13bad_exceptionD0Ev=Module["__ZNSt13bad_exceptionD0Ev"]=wasmExports["_ZNSt13bad_exceptionD0Ev"])(a0);var __ZNSt13bad_exceptionD1Ev=Module["__ZNSt13bad_exceptionD1Ev"]=a0=>(__ZNSt13bad_exceptionD1Ev=Module["__ZNSt13bad_exceptionD1Ev"]=wasmExports["_ZNSt13bad_exceptionD1Ev"])(a0);var __ZNKSt13bad_exception4whatEv=Module["__ZNKSt13bad_exception4whatEv"]=a0=>(__ZNKSt13bad_exception4whatEv=Module["__ZNKSt13bad_exception4whatEv"]=wasmExports["_ZNKSt13bad_exception4whatEv"])(a0);var __ZNSt9bad_allocC2Ev=Module["__ZNSt9bad_allocC2Ev"]=a0=>(__ZNSt9bad_allocC2Ev=Module["__ZNSt9bad_allocC2Ev"]=wasmExports["_ZNSt9bad_allocC2Ev"])(a0);var __ZNSt9bad_allocD0Ev=Module["__ZNSt9bad_allocD0Ev"]=a0=>(__ZNSt9bad_allocD0Ev=Module["__ZNSt9bad_allocD0Ev"]=wasmExports["_ZNSt9bad_allocD0Ev"])(a0);var __ZNSt9bad_allocD1Ev=Module["__ZNSt9bad_allocD1Ev"]=a0=>(__ZNSt9bad_allocD1Ev=Module["__ZNSt9bad_allocD1Ev"]=wasmExports["_ZNSt9bad_allocD1Ev"])(a0);var __ZNKSt9bad_alloc4whatEv=Module["__ZNKSt9bad_alloc4whatEv"]=a0=>(__ZNKSt9bad_alloc4whatEv=Module["__ZNKSt9bad_alloc4whatEv"]=wasmExports["_ZNKSt9bad_alloc4whatEv"])(a0);var __ZNSt20bad_array_new_lengthC2Ev=Module["__ZNSt20bad_array_new_lengthC2Ev"]=a0=>(__ZNSt20bad_array_new_lengthC2Ev=Module["__ZNSt20bad_array_new_lengthC2Ev"]=wasmExports["_ZNSt20bad_array_new_lengthC2Ev"])(a0);var __ZNSt20bad_array_new_lengthD0Ev=Module["__ZNSt20bad_array_new_lengthD0Ev"]=a0=>(__ZNSt20bad_array_new_lengthD0Ev=Module["__ZNSt20bad_array_new_lengthD0Ev"]=wasmExports["_ZNSt20bad_array_new_lengthD0Ev"])(a0);var __ZNKSt20bad_array_new_length4whatEv=Module["__ZNKSt20bad_array_new_length4whatEv"]=a0=>(__ZNKSt20bad_array_new_length4whatEv=Module["__ZNKSt20bad_array_new_length4whatEv"]=wasmExports["_ZNKSt20bad_array_new_length4whatEv"])(a0);var __ZNSt13bad_exceptionD2Ev=Module["__ZNSt13bad_exceptionD2Ev"]=a0=>(__ZNSt13bad_exceptionD2Ev=Module["__ZNSt13bad_exceptionD2Ev"]=wasmExports["_ZNSt13bad_exceptionD2Ev"])(a0);var __ZNSt9bad_allocC1Ev=Module["__ZNSt9bad_allocC1Ev"]=a0=>(__ZNSt9bad_allocC1Ev=Module["__ZNSt9bad_allocC1Ev"]=wasmExports["_ZNSt9bad_allocC1Ev"])(a0);var __ZNSt9bad_allocD2Ev=Module["__ZNSt9bad_allocD2Ev"]=a0=>(__ZNSt9bad_allocD2Ev=Module["__ZNSt9bad_allocD2Ev"]=wasmExports["_ZNSt9bad_allocD2Ev"])(a0);var __ZNSt20bad_array_new_lengthD2Ev=Module["__ZNSt20bad_array_new_lengthD2Ev"]=a0=>(__ZNSt20bad_array_new_lengthD2Ev=Module["__ZNSt20bad_array_new_lengthD2Ev"]=wasmExports["_ZNSt20bad_array_new_lengthD2Ev"])(a0);var __ZNSt11logic_errorD0Ev=Module["__ZNSt11logic_errorD0Ev"]=a0=>(__ZNSt11logic_errorD0Ev=Module["__ZNSt11logic_errorD0Ev"]=wasmExports["_ZNSt11logic_errorD0Ev"])(a0);var __ZNSt11logic_errorD1Ev=Module["__ZNSt11logic_errorD1Ev"]=a0=>(__ZNSt11logic_errorD1Ev=Module["__ZNSt11logic_errorD1Ev"]=wasmExports["_ZNSt11logic_errorD1Ev"])(a0);var __ZNSt13runtime_errorD0Ev=Module["__ZNSt13runtime_errorD0Ev"]=a0=>(__ZNSt13runtime_errorD0Ev=Module["__ZNSt13runtime_errorD0Ev"]=wasmExports["_ZNSt13runtime_errorD0Ev"])(a0);var __ZNSt13runtime_errorD1Ev=Module["__ZNSt13runtime_errorD1Ev"]=a0=>(__ZNSt13runtime_errorD1Ev=Module["__ZNSt13runtime_errorD1Ev"]=wasmExports["_ZNSt13runtime_errorD1Ev"])(a0);var __ZNSt12domain_errorD0Ev=Module["__ZNSt12domain_errorD0Ev"]=a0=>(__ZNSt12domain_errorD0Ev=Module["__ZNSt12domain_errorD0Ev"]=wasmExports["_ZNSt12domain_errorD0Ev"])(a0);var __ZNSt12domain_errorD1Ev=Module["__ZNSt12domain_errorD1Ev"]=a0=>(__ZNSt12domain_errorD1Ev=Module["__ZNSt12domain_errorD1Ev"]=wasmExports["_ZNSt12domain_errorD1Ev"])(a0);var __ZNSt16invalid_argumentD0Ev=Module["__ZNSt16invalid_argumentD0Ev"]=a0=>(__ZNSt16invalid_argumentD0Ev=Module["__ZNSt16invalid_argumentD0Ev"]=wasmExports["_ZNSt16invalid_argumentD0Ev"])(a0);var __ZNSt16invalid_argumentD1Ev=Module["__ZNSt16invalid_argumentD1Ev"]=a0=>(__ZNSt16invalid_argumentD1Ev=Module["__ZNSt16invalid_argumentD1Ev"]=wasmExports["_ZNSt16invalid_argumentD1Ev"])(a0);var __ZNSt12length_errorD0Ev=Module["__ZNSt12length_errorD0Ev"]=a0=>(__ZNSt12length_errorD0Ev=Module["__ZNSt12length_errorD0Ev"]=wasmExports["_ZNSt12length_errorD0Ev"])(a0);var __ZNSt12out_of_rangeD0Ev=Module["__ZNSt12out_of_rangeD0Ev"]=a0=>(__ZNSt12out_of_rangeD0Ev=Module["__ZNSt12out_of_rangeD0Ev"]=wasmExports["_ZNSt12out_of_rangeD0Ev"])(a0);var __ZNSt11range_errorD0Ev=Module["__ZNSt11range_errorD0Ev"]=a0=>(__ZNSt11range_errorD0Ev=Module["__ZNSt11range_errorD0Ev"]=wasmExports["_ZNSt11range_errorD0Ev"])(a0);var __ZNSt11range_errorD1Ev=Module["__ZNSt11range_errorD1Ev"]=a0=>(__ZNSt11range_errorD1Ev=Module["__ZNSt11range_errorD1Ev"]=wasmExports["_ZNSt11range_errorD1Ev"])(a0);var __ZNSt14overflow_errorD0Ev=Module["__ZNSt14overflow_errorD0Ev"]=a0=>(__ZNSt14overflow_errorD0Ev=Module["__ZNSt14overflow_errorD0Ev"]=wasmExports["_ZNSt14overflow_errorD0Ev"])(a0);var __ZNSt14overflow_errorD1Ev=Module["__ZNSt14overflow_errorD1Ev"]=a0=>(__ZNSt14overflow_errorD1Ev=Module["__ZNSt14overflow_errorD1Ev"]=wasmExports["_ZNSt14overflow_errorD1Ev"])(a0);var __ZNSt15underflow_errorD0Ev=Module["__ZNSt15underflow_errorD0Ev"]=a0=>(__ZNSt15underflow_errorD0Ev=Module["__ZNSt15underflow_errorD0Ev"]=wasmExports["_ZNSt15underflow_errorD0Ev"])(a0);var __ZNSt15underflow_errorD1Ev=Module["__ZNSt15underflow_errorD1Ev"]=a0=>(__ZNSt15underflow_errorD1Ev=Module["__ZNSt15underflow_errorD1Ev"]=wasmExports["_ZNSt15underflow_errorD1Ev"])(a0);var __ZNSt12domain_errorD2Ev=Module["__ZNSt12domain_errorD2Ev"]=a0=>(__ZNSt12domain_errorD2Ev=Module["__ZNSt12domain_errorD2Ev"]=wasmExports["_ZNSt12domain_errorD2Ev"])(a0);var __ZNSt16invalid_argumentD2Ev=Module["__ZNSt16invalid_argumentD2Ev"]=a0=>(__ZNSt16invalid_argumentD2Ev=Module["__ZNSt16invalid_argumentD2Ev"]=wasmExports["_ZNSt16invalid_argumentD2Ev"])(a0);var __ZNSt12length_errorD2Ev=Module["__ZNSt12length_errorD2Ev"]=a0=>(__ZNSt12length_errorD2Ev=Module["__ZNSt12length_errorD2Ev"]=wasmExports["_ZNSt12length_errorD2Ev"])(a0);var __ZNSt12out_of_rangeD2Ev=Module["__ZNSt12out_of_rangeD2Ev"]=a0=>(__ZNSt12out_of_rangeD2Ev=Module["__ZNSt12out_of_rangeD2Ev"]=wasmExports["_ZNSt12out_of_rangeD2Ev"])(a0);var __ZNSt11range_errorD2Ev=Module["__ZNSt11range_errorD2Ev"]=a0=>(__ZNSt11range_errorD2Ev=Module["__ZNSt11range_errorD2Ev"]=wasmExports["_ZNSt11range_errorD2Ev"])(a0);var __ZNSt14overflow_errorD2Ev=Module["__ZNSt14overflow_errorD2Ev"]=a0=>(__ZNSt14overflow_errorD2Ev=Module["__ZNSt14overflow_errorD2Ev"]=wasmExports["_ZNSt14overflow_errorD2Ev"])(a0);var __ZNSt15underflow_errorD2Ev=Module["__ZNSt15underflow_errorD2Ev"]=a0=>(__ZNSt15underflow_errorD2Ev=Module["__ZNSt15underflow_errorD2Ev"]=wasmExports["_ZNSt15underflow_errorD2Ev"])(a0);var __ZNSt9type_infoD0Ev=Module["__ZNSt9type_infoD0Ev"]=a0=>(__ZNSt9type_infoD0Ev=Module["__ZNSt9type_infoD0Ev"]=wasmExports["_ZNSt9type_infoD0Ev"])(a0);var __ZNSt9type_infoD1Ev=Module["__ZNSt9type_infoD1Ev"]=a0=>(__ZNSt9type_infoD1Ev=Module["__ZNSt9type_infoD1Ev"]=wasmExports["_ZNSt9type_infoD1Ev"])(a0);var __ZNSt8bad_castC2Ev=Module["__ZNSt8bad_castC2Ev"]=a0=>(__ZNSt8bad_castC2Ev=Module["__ZNSt8bad_castC2Ev"]=wasmExports["_ZNSt8bad_castC2Ev"])(a0);var __ZNSt8bad_castD0Ev=Module["__ZNSt8bad_castD0Ev"]=a0=>(__ZNSt8bad_castD0Ev=Module["__ZNSt8bad_castD0Ev"]=wasmExports["_ZNSt8bad_castD0Ev"])(a0);var __ZNSt8bad_castD1Ev=Module["__ZNSt8bad_castD1Ev"]=a0=>(__ZNSt8bad_castD1Ev=Module["__ZNSt8bad_castD1Ev"]=wasmExports["_ZNSt8bad_castD1Ev"])(a0);var __ZNKSt8bad_cast4whatEv=Module["__ZNKSt8bad_cast4whatEv"]=a0=>(__ZNKSt8bad_cast4whatEv=Module["__ZNKSt8bad_cast4whatEv"]=wasmExports["_ZNKSt8bad_cast4whatEv"])(a0);var __ZNSt10bad_typeidC2Ev=Module["__ZNSt10bad_typeidC2Ev"]=a0=>(__ZNSt10bad_typeidC2Ev=Module["__ZNSt10bad_typeidC2Ev"]=wasmExports["_ZNSt10bad_typeidC2Ev"])(a0);var __ZNSt10bad_typeidD2Ev=Module["__ZNSt10bad_typeidD2Ev"]=a0=>(__ZNSt10bad_typeidD2Ev=Module["__ZNSt10bad_typeidD2Ev"]=wasmExports["_ZNSt10bad_typeidD2Ev"])(a0);var __ZNSt10bad_typeidD0Ev=Module["__ZNSt10bad_typeidD0Ev"]=a0=>(__ZNSt10bad_typeidD0Ev=Module["__ZNSt10bad_typeidD0Ev"]=wasmExports["_ZNSt10bad_typeidD0Ev"])(a0);var __ZNSt10bad_typeidD1Ev=Module["__ZNSt10bad_typeidD1Ev"]=a0=>(__ZNSt10bad_typeidD1Ev=Module["__ZNSt10bad_typeidD1Ev"]=wasmExports["_ZNSt10bad_typeidD1Ev"])(a0);var __ZNKSt10bad_typeid4whatEv=Module["__ZNKSt10bad_typeid4whatEv"]=a0=>(__ZNKSt10bad_typeid4whatEv=Module["__ZNKSt10bad_typeid4whatEv"]=wasmExports["_ZNKSt10bad_typeid4whatEv"])(a0);var __ZNSt8bad_castC1Ev=Module["__ZNSt8bad_castC1Ev"]=a0=>(__ZNSt8bad_castC1Ev=Module["__ZNSt8bad_castC1Ev"]=wasmExports["_ZNSt8bad_castC1Ev"])(a0);var __ZNSt10bad_typeidC1Ev=Module["__ZNSt10bad_typeidC1Ev"]=a0=>(__ZNSt10bad_typeidC1Ev=Module["__ZNSt10bad_typeidC1Ev"]=wasmExports["_ZNSt10bad_typeidC1Ev"])(a0);var __ZTIv=Module["__ZTIv"]=42740;var __ZTIb=Module["__ZTIb"]=42848;var __ZTIc=Module["__ZTIc"]=42952;var __ZTIa=Module["__ZTIa"]=43056;var __ZTIh=Module["__ZTIh"]=43004;var __ZTIs=Module["__ZTIs"]=43108;var __ZTIt=Module["__ZTIt"]=43160;var __ZTIi=Module["__ZTIi"]=43212;var __ZTIj=Module["__ZTIj"]=43264;var __ZTIl=Module["__ZTIl"]=43316;var __ZTIm=Module["__ZTIm"]=43368;var __ZTIx=Module["__ZTIx"]=43420;var __ZTIy=Module["__ZTIy"]=43472;var __ZTIf=Module["__ZTIf"]=43684;var __ZTId=Module["__ZTId"]=43736;var __ZTINSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__ZTINSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=12e3;var __ZTINSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE=Module["__ZTINSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE"]=12072;var __ZTINSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE=Module["__ZTINSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE"]=12144;var __ZTINSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE=Module["__ZTINSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE"]=12220;var __ZTIN10emscripten3valE=Module["__ZTIN10emscripten3valE"]=12296;var __ZTIN10emscripten11memory_viewIcEE=Module["__ZTIN10emscripten11memory_viewIcEE"]=12324;var __ZTIN10emscripten11memory_viewIaEE=Module["__ZTIN10emscripten11memory_viewIaEE"]=12364;var __ZTIN10emscripten11memory_viewIhEE=Module["__ZTIN10emscripten11memory_viewIhEE"]=12404;var __ZTIN10emscripten11memory_viewIsEE=Module["__ZTIN10emscripten11memory_viewIsEE"]=12444;var __ZTIN10emscripten11memory_viewItEE=Module["__ZTIN10emscripten11memory_viewItEE"]=12484;var __ZTIN10emscripten11memory_viewIiEE=Module["__ZTIN10emscripten11memory_viewIiEE"]=12524;var __ZTIN10emscripten11memory_viewIjEE=Module["__ZTIN10emscripten11memory_viewIjEE"]=12564;var __ZTIN10emscripten11memory_viewIlEE=Module["__ZTIN10emscripten11memory_viewIlEE"]=12604;var __ZTIN10emscripten11memory_viewImEE=Module["__ZTIN10emscripten11memory_viewImEE"]=12644;var __ZTIN10emscripten11memory_viewIxEE=Module["__ZTIN10emscripten11memory_viewIxEE"]=12684;var __ZTIN10emscripten11memory_viewIyEE=Module["__ZTIN10emscripten11memory_viewIyEE"]=12724;var __ZTIN10emscripten11memory_viewIfEE=Module["__ZTIN10emscripten11memory_viewIfEE"]=12764;var __ZTIN10emscripten11memory_viewIdEE=Module["__ZTIN10emscripten11memory_viewIdEE"]=12804;var __ZTVN10__cxxabiv117__class_type_infoE=Module["__ZTVN10__cxxabiv117__class_type_infoE"]=44240;var __ZTSNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=Module["__ZTSNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE"]=12008;var __ZTSNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE=Module["__ZTSNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEEE"]=12080;var __ZTSNSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE=Module["__ZTSNSt3__212basic_stringIDsNS_11char_traitsIDsEENS_9allocatorIDsEEEE"]=12152;var __ZTSNSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE=Module["__ZTSNSt3__212basic_stringIDiNS_11char_traitsIDiEENS_9allocatorIDiEEEE"]=12228;var __ZTSN10emscripten3valE=Module["__ZTSN10emscripten3valE"]=12304;var __ZTSN10emscripten11memory_viewIcEE=Module["__ZTSN10emscripten11memory_viewIcEE"]=12332;var __ZTSN10emscripten11memory_viewIaEE=Module["__ZTSN10emscripten11memory_viewIaEE"]=12372;var __ZTSN10emscripten11memory_viewIhEE=Module["__ZTSN10emscripten11memory_viewIhEE"]=12412;var __ZTSN10emscripten11memory_viewIsEE=Module["__ZTSN10emscripten11memory_viewIsEE"]=12452;var __ZTSN10emscripten11memory_viewItEE=Module["__ZTSN10emscripten11memory_viewItEE"]=12492;var __ZTSN10emscripten11memory_viewIiEE=Module["__ZTSN10emscripten11memory_viewIiEE"]=12532;var __ZTSN10emscripten11memory_viewIjEE=Module["__ZTSN10emscripten11memory_viewIjEE"]=12572;var __ZTSN10emscripten11memory_viewIlEE=Module["__ZTSN10emscripten11memory_viewIlEE"]=12612;var __ZTSN10emscripten11memory_viewImEE=Module["__ZTSN10emscripten11memory_viewImEE"]=12652;var __ZTSN10emscripten11memory_viewIxEE=Module["__ZTSN10emscripten11memory_viewIxEE"]=12692;var __ZTSN10emscripten11memory_viewIyEE=Module["__ZTSN10emscripten11memory_viewIyEE"]=12732;var __ZTSN10emscripten11memory_viewIfEE=Module["__ZTSN10emscripten11memory_viewIfEE"]=12772;var __ZTSN10emscripten11memory_viewIdEE=Module["__ZTSN10emscripten11memory_viewIdEE"]=12812;var __ZTISt12length_error=Module["__ZTISt12length_error"]=44948;var __ZTVSt12length_error=Module["__ZTVSt12length_error"]=44928;var __ZTISt20bad_array_new_length=Module["__ZTISt20bad_array_new_length"]=44712;var __ZN5nissy8nissflag6NORMALE=Module["__ZN5nissy8nissflag6NORMALE"]=12844;var __ZN5nissy8nissflag7INVERSEE=Module["__ZN5nissy8nissflag7INVERSEE"]=12848;var __ZN5nissy8nissflag5MIXEDE=Module["__ZN5nissy8nissflag5MIXEDE"]=12852;var __ZN5nissy8nissflag6LINEARE=Module["__ZN5nissy8nissflag6LINEARE"]=12856;var __ZN5nissy8nissflag3ALLE=Module["__ZN5nissy8nissflag3ALLE"]=12860;var __ZN5nissy5error2OKE=Module["__ZN5nissy5error2OKE"]=12864;var __ZN5nissy5error18UNSOLVABLE_WARNINGE=Module["__ZN5nissy5error18UNSOLVABLE_WARNINGE"]=12872;var __ZN5nissy5error16UNSOLVABLE_ERRORE=Module["__ZN5nissy5error16UNSOLVABLE_ERRORE"]=12880;var __ZN5nissy5error12INVALID_CUBEE=Module["__ZN5nissy5error12INVALID_CUBEE"]=12888;var __ZN5nissy5error13INVALID_MOVESE=Module["__ZN5nissy5error13INVALID_MOVESE"]=12896;var __ZN5nissy5error13INVALID_TRANSE=Module["__ZN5nissy5error13INVALID_TRANSE"]=12904;var __ZN5nissy5error14INVALID_SOLVERE=Module["__ZN5nissy5error14INVALID_SOLVERE"]=12912;var __ZN5nissy5error12NULL_POINTERE=Module["__ZN5nissy5error12NULL_POINTERE"]=12920;var __ZN5nissy5error11BUFFER_SIZEE=Module["__ZN5nissy5error11BUFFER_SIZEE"]=12928;var __ZN5nissy5error4DATAE=Module["__ZN5nissy5error4DATAE"]=12936;var __ZN5nissy5error7OPTIONSE=Module["__ZN5nissy5error7OPTIONSE"]=12944;var __ZN5nissy5error7UNKNOWNE=Module["__ZN5nissy5error7UNKNOWNE"]=12952;var __ZN5nissy6status3RUNE=Module["__ZN5nissy6status3RUNE"]=12960;var __ZN5nissy6status4STOPE=Module["__ZN5nissy6status4STOPE"]=12964;var __ZN5nissy6status5PAUSEE=Module["__ZN5nissy6status5PAUSEE"]=12968;var _loaded_solvers=Module["_loaded_solvers"]=47496;var __ZTIN5nissy8nissflagE=Module["__ZTIN5nissy8nissflagE"]=12984;var __ZTIPN5nissy8nissflagE=Module["__ZTIPN5nissy8nissflagE"]=13012;var __ZTIPKN5nissy8nissflagE=Module["__ZTIPKN5nissy8nissflagE"]=13048;var __ZZN10emscripten8internal19getGenericSignatureIJPvS2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJPvS2_EEEPKcvE9signature"]=13084;var __ZZN10emscripten8internal19getGenericSignatureIJvEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvEEEPKcvE9signature"]=13087;var __ZZN10emscripten8internal19getGenericSignatureIJvPvEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvPvEEEPKcvE9signature"]=13089;var __ZTIN5nissy5errorE=Module["__ZTIN5nissy5errorE"]=13092;var __ZTIPN5nissy5errorE=Module["__ZTIPN5nissy5errorE"]=13116;var __ZTIPKN5nissy5errorE=Module["__ZTIPKN5nissy5errorE"]=13148;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJbNS0_17AllowedRawPointerIKN5nissy5errorEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJbNS0_17AllowedRawPointerIKN5nissy5errorEEEEEEE3getEvE5types"]=13184;var __ZZN10emscripten8internal19getGenericSignatureIJiPvS2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJiPvS2_EEEPKcvE9signature"]=13192;var __ZTIN5nissy4cubeE=Module["__ZTIN5nissy4cubeE"]=13196;var __ZTIPN5nissy4cubeE=Module["__ZTIPN5nissy4cubeE"]=13220;var __ZTIPKN5nissy4cubeE=Module["__ZTIPKN5nissy4cubeE"]=13252;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerIN5nissy4cubeEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNS0_17AllowedRawPointerIN5nissy4cubeEEEEEEE3getEvE5types"]=13284;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy5errorENS0_17AllowedRawPointerINS3_4cubeEEERKNSt3__212basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy5errorENS0_17AllowedRawPointerINS3_4cubeEEERKNSt3__212basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEEEEE3getEvE5types"]=13288;var __ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_S2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_S2_EEEPKcvE9signature"]=13300;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerIN5nissy4cubeEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJvNS0_17AllowedRawPointerIN5nissy4cubeEEEEEEE3getEvE5types"]=13308;var __ZZN10emscripten8internal19getGenericSignatureIJvPvS2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvPvS2_EEEPKcvE9signature"]=13316;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS0_17AllowedRawPointerIKN5nissy4cubeEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJNSt3__212basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS0_17AllowedRawPointerIKN5nissy4cubeEEEEEEE3getEvE5types"]=13320;var __ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_EEEPKcvE9signature"]=13328;var __ZTIN5nissy6solver12solve_resultE=Module["__ZTIN5nissy6solver12solve_resultE"]=13332;var __ZTIPN5nissy6solver12solve_resultE=Module["__ZTIPN5nissy6solver12solve_resultE"]=13372;var __ZTIPKN5nissy6solver12solve_resultE=Module["__ZTIPKN5nissy6solver12solve_resultE"]=13420;var __ZZN10emscripten8internal19getGenericSignatureIJvPvS2_S2_EEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvPvS2_S2_EEEPKcvE9signature"]=13468;var __ZTINSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEEE=Module["__ZTINSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEEE"]=13476;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy5errorERKNSt3__212basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy5errorERKNSt3__212basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEEEEE3getEvE5types"]=13572;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy6solver12solve_resultENSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS3_4cubeENS3_8nissflagEjjjjjiEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJN5nissy6solver12solve_resultENSt3__212basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEENS3_4cubeENS3_8nissflagEjjjjjiEEEE3getEvE5types"]=13584;var __ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_S2_S2_iiiiiiEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJPvS2_S2_S2_S2_iiiiiiEEEPKcvE9signature"]=13624;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJviEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJviEEEE3getEvE5types"]=13636;var __ZZN10emscripten8internal19getGenericSignatureIJvPviEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJvPviEEEPKcvE9signature"]=13644;var __ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJiEEEE3getEvE5types=Module["__ZZN10emscripten8internal14ArgArrayGetterINS0_8TypeListIJiEEEE3getEvE5types"]=13648;var __ZZN10emscripten8internal19getGenericSignatureIJiPvEEEPKcvE9signature=Module["__ZZN10emscripten8internal19getGenericSignatureIJiPvEEEPKcvE9signature"]=13652;var __ZTISt12out_of_range=Module["__ZTISt12out_of_range"]=45e3;var __ZTVSt12out_of_range=Module["__ZTVSt12out_of_range"]=44980;var __ZTSN5nissy8nissflagE=Module["__ZTSN5nissy8nissflagE"]=12992;var __ZTVN10__cxxabiv119__pointer_type_infoE=Module["__ZTVN10__cxxabiv119__pointer_type_infoE"]=44492;var __ZTSPN5nissy8nissflagE=Module["__ZTSPN5nissy8nissflagE"]=13028;var __ZTSPKN5nissy8nissflagE=Module["__ZTSPKN5nissy8nissflagE"]=13064;var __ZTSN5nissy5errorE=Module["__ZTSN5nissy5errorE"]=13100;var __ZTSPN5nissy5errorE=Module["__ZTSPN5nissy5errorE"]=13132;var __ZTSPKN5nissy5errorE=Module["__ZTSPKN5nissy5errorE"]=13164;var __ZTSN5nissy4cubeE=Module["__ZTSN5nissy4cubeE"]=13204;var __ZTSPN5nissy4cubeE=Module["__ZTSPN5nissy4cubeE"]=13236;var __ZTSPKN5nissy4cubeE=Module["__ZTSPKN5nissy4cubeE"]=13268;var __ZTSN5nissy6solver12solve_resultE=Module["__ZTSN5nissy6solver12solve_resultE"]=13340;var __ZTSPN5nissy6solver12solve_resultE=Module["__ZTSPN5nissy6solver12solve_resultE"]=13388;var __ZTSPKN5nissy6solver12solve_resultE=Module["__ZTSPKN5nissy6solver12solve_resultE"]=13436;var __ZTSNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEEE=Module["__ZTSNSt3__26vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEEE"]=13484;var _nissy_log_data=Module["_nissy_log_data"]=47516;var _nissy_log=Module["_nissy_log"]=47520;var _getcube_options=Module["_getcube_options"]=45392;var _all_coordinates=Module["_all_coordinates"]=45376;var __ZTVN10__cxxabiv120__si_class_type_infoE=Module["__ZTVN10__cxxabiv120__si_class_type_infoE"]=44280;var __ZTISt8bad_cast=Module["__ZTISt8bad_cast"]=45296;var __ZTISt13runtime_error=Module["__ZTISt13runtime_error"]=45080;var __ZTISt9exception=Module["__ZTISt9exception"]=44608;var __ZTISt11logic_error=Module["__ZTISt11logic_error"]=44844;var __ZTVN10__cxxabiv121__vmi_class_type_infoE=Module["__ZTVN10__cxxabiv121__vmi_class_type_infoE"]=44372;var __ZTVSt11logic_error=Module["__ZTVSt11logic_error"]=44752;var __ZTVSt9exception=Module["__ZTVSt9exception"]=44588;var __ZTVSt13runtime_error=Module["__ZTVSt13runtime_error"]=44772;var ___cxa_unexpected_handler=Module["___cxa_unexpected_handler"]=47468;var ___cxa_terminate_handler=Module["___cxa_terminate_handler"]=47464;var ___cxa_new_handler=Module["___cxa_new_handler"]=68188;var __ZTIN10__cxxabiv116__shim_type_infoE=Module["__ZTIN10__cxxabiv116__shim_type_infoE"]=42316;var __ZTIN10__cxxabiv117__class_type_infoE=Module["__ZTIN10__cxxabiv117__class_type_infoE"]=42364;var __ZTIN10__cxxabiv117__pbase_type_infoE=Module["__ZTIN10__cxxabiv117__pbase_type_infoE"]=42412;var __ZTIDn=Module["__ZTIDn"]=42792;var __ZTIN10__cxxabiv119__pointer_type_infoE=Module["__ZTIN10__cxxabiv119__pointer_type_infoE"]=42460;var __ZTIN10__cxxabiv120__function_type_infoE=Module["__ZTIN10__cxxabiv120__function_type_infoE"]=42508;var __ZTIN10__cxxabiv129__pointer_to_member_type_infoE=Module["__ZTIN10__cxxabiv129__pointer_to_member_type_infoE"]=42560;var __ZTISt9type_info=Module["__ZTISt9type_info"]=45272;var __ZTSN10__cxxabiv116__shim_type_infoE=Module["__ZTSN10__cxxabiv116__shim_type_infoE"]=42328;var __ZTSN10__cxxabiv117__class_type_infoE=Module["__ZTSN10__cxxabiv117__class_type_infoE"]=42376;var __ZTSN10__cxxabiv117__pbase_type_infoE=Module["__ZTSN10__cxxabiv117__pbase_type_infoE"]=42424;var __ZTSN10__cxxabiv119__pointer_type_infoE=Module["__ZTSN10__cxxabiv119__pointer_type_infoE"]=42472;var __ZTSN10__cxxabiv120__function_type_infoE=Module["__ZTSN10__cxxabiv120__function_type_infoE"]=42520;var __ZTSN10__cxxabiv129__pointer_to_member_type_infoE=Module["__ZTSN10__cxxabiv129__pointer_to_member_type_infoE"]=42572;var __ZTVN10__cxxabiv116__shim_type_infoE=Module["__ZTVN10__cxxabiv116__shim_type_infoE"]=42632;var __ZTVN10__cxxabiv123__fundamental_type_infoE=Module["__ZTVN10__cxxabiv123__fundamental_type_infoE"]=42660;var __ZTIN10__cxxabiv123__fundamental_type_infoE=Module["__ZTIN10__cxxabiv123__fundamental_type_infoE"]=42688;var __ZTSN10__cxxabiv123__fundamental_type_infoE=Module["__ZTSN10__cxxabiv123__fundamental_type_infoE"]=42700;var __ZTSv=Module["__ZTSv"]=42748;var __ZTIPv=Module["__ZTIPv"]=42752;var __ZTSPv=Module["__ZTSPv"]=42768;var __ZTIPKv=Module["__ZTIPKv"]=42772;var __ZTSPKv=Module["__ZTSPKv"]=42788;var __ZTSDn=Module["__ZTSDn"]=42800;var __ZTIPDn=Module["__ZTIPDn"]=42804;var __ZTSPDn=Module["__ZTSPDn"]=42820;var __ZTIPKDn=Module["__ZTIPKDn"]=42824;var __ZTSPKDn=Module["__ZTSPKDn"]=42840;var __ZTSb=Module["__ZTSb"]=42856;var __ZTIPb=Module["__ZTIPb"]=42860;var __ZTSPb=Module["__ZTSPb"]=42876;var __ZTIPKb=Module["__ZTIPKb"]=42880;var __ZTSPKb=Module["__ZTSPKb"]=42896;var __ZTIw=Module["__ZTIw"]=42900;var __ZTSw=Module["__ZTSw"]=42908;var __ZTIPw=Module["__ZTIPw"]=42912;var __ZTSPw=Module["__ZTSPw"]=42928;var __ZTIPKw=Module["__ZTIPKw"]=42932;var __ZTSPKw=Module["__ZTSPKw"]=42948;var __ZTSc=Module["__ZTSc"]=42960;var __ZTIPc=Module["__ZTIPc"]=42964;var __ZTSPc=Module["__ZTSPc"]=42980;var __ZTIPKc=Module["__ZTIPKc"]=42984;var __ZTSPKc=Module["__ZTSPKc"]=43e3;var __ZTSh=Module["__ZTSh"]=43012;var __ZTIPh=Module["__ZTIPh"]=43016;var __ZTSPh=Module["__ZTSPh"]=43032;var __ZTIPKh=Module["__ZTIPKh"]=43036;var __ZTSPKh=Module["__ZTSPKh"]=43052;var __ZTSa=Module["__ZTSa"]=43064;var __ZTIPa=Module["__ZTIPa"]=43068;var __ZTSPa=Module["__ZTSPa"]=43084;var __ZTIPKa=Module["__ZTIPKa"]=43088;var __ZTSPKa=Module["__ZTSPKa"]=43104;var __ZTSs=Module["__ZTSs"]=43116;var __ZTIPs=Module["__ZTIPs"]=43120;var __ZTSPs=Module["__ZTSPs"]=43136;var __ZTIPKs=Module["__ZTIPKs"]=43140;var __ZTSPKs=Module["__ZTSPKs"]=43156;var __ZTSt=Module["__ZTSt"]=43168;var __ZTIPt=Module["__ZTIPt"]=43172;var __ZTSPt=Module["__ZTSPt"]=43188;var __ZTIPKt=Module["__ZTIPKt"]=43192;var __ZTSPKt=Module["__ZTSPKt"]=43208;var __ZTSi=Module["__ZTSi"]=43220;var __ZTIPi=Module["__ZTIPi"]=43224;var __ZTSPi=Module["__ZTSPi"]=43240;var __ZTIPKi=Module["__ZTIPKi"]=43244;var __ZTSPKi=Module["__ZTSPKi"]=43260;var __ZTSj=Module["__ZTSj"]=43272;var __ZTIPj=Module["__ZTIPj"]=43276;var __ZTSPj=Module["__ZTSPj"]=43292;var __ZTIPKj=Module["__ZTIPKj"]=43296;var __ZTSPKj=Module["__ZTSPKj"]=43312;var __ZTSl=Module["__ZTSl"]=43324;var __ZTIPl=Module["__ZTIPl"]=43328;var __ZTSPl=Module["__ZTSPl"]=43344;var __ZTIPKl=Module["__ZTIPKl"]=43348;var __ZTSPKl=Module["__ZTSPKl"]=43364;var __ZTSm=Module["__ZTSm"]=43376;var __ZTIPm=Module["__ZTIPm"]=43380;var __ZTSPm=Module["__ZTSPm"]=43396;var __ZTIPKm=Module["__ZTIPKm"]=43400;var __ZTSPKm=Module["__ZTSPKm"]=43416;var __ZTSx=Module["__ZTSx"]=43428;var __ZTIPx=Module["__ZTIPx"]=43432;var __ZTSPx=Module["__ZTSPx"]=43448;var __ZTIPKx=Module["__ZTIPKx"]=43452;var __ZTSPKx=Module["__ZTSPKx"]=43468;var __ZTSy=Module["__ZTSy"]=43480;var __ZTIPy=Module["__ZTIPy"]=43484;var __ZTSPy=Module["__ZTSPy"]=43500;var __ZTIPKy=Module["__ZTIPKy"]=43504;var __ZTSPKy=Module["__ZTSPKy"]=43520;var __ZTIn=Module["__ZTIn"]=43524;var __ZTSn=Module["__ZTSn"]=43532;var __ZTIPn=Module["__ZTIPn"]=43536;var __ZTSPn=Module["__ZTSPn"]=43552;var __ZTIPKn=Module["__ZTIPKn"]=43556;var __ZTSPKn=Module["__ZTSPKn"]=43572;var __ZTIo=Module["__ZTIo"]=43576;var __ZTSo=Module["__ZTSo"]=43584;var __ZTIPo=Module["__ZTIPo"]=43588;var __ZTSPo=Module["__ZTSPo"]=43604;var __ZTIPKo=Module["__ZTIPKo"]=43608;var __ZTSPKo=Module["__ZTSPKo"]=43624;var __ZTIDh=Module["__ZTIDh"]=43628;var __ZTSDh=Module["__ZTSDh"]=43636;var __ZTIPDh=Module["__ZTIPDh"]=43640;var __ZTSPDh=Module["__ZTSPDh"]=43656;var __ZTIPKDh=Module["__ZTIPKDh"]=43660;var __ZTSPKDh=Module["__ZTSPKDh"]=43676;var __ZTSf=Module["__ZTSf"]=43692;var __ZTIPf=Module["__ZTIPf"]=43696;var __ZTSPf=Module["__ZTSPf"]=43712;var __ZTIPKf=Module["__ZTIPKf"]=43716;var __ZTSPKf=Module["__ZTSPKf"]=43732;var __ZTSd=Module["__ZTSd"]=43744;var __ZTIPd=Module["__ZTIPd"]=43748;var __ZTSPd=Module["__ZTSPd"]=43764;var __ZTIPKd=Module["__ZTIPKd"]=43768;var __ZTSPKd=Module["__ZTSPKd"]=43784;var __ZTIe=Module["__ZTIe"]=43788;var __ZTSe=Module["__ZTSe"]=43796;var __ZTIPe=Module["__ZTIPe"]=43800;var __ZTSPe=Module["__ZTSPe"]=43816;var __ZTIPKe=Module["__ZTIPKe"]=43820;var __ZTSPKe=Module["__ZTSPKe"]=43836;var __ZTIg=Module["__ZTIg"]=43840;var __ZTSg=Module["__ZTSg"]=43848;var __ZTIPg=Module["__ZTIPg"]=43852;var __ZTSPg=Module["__ZTSPg"]=43868;var __ZTIPKg=Module["__ZTIPKg"]=43872;var __ZTSPKg=Module["__ZTSPKg"]=43888;var __ZTIDu=Module["__ZTIDu"]=43892;var __ZTSDu=Module["__ZTSDu"]=43900;var __ZTIPDu=Module["__ZTIPDu"]=43904;var __ZTSPDu=Module["__ZTSPDu"]=43920;var __ZTIPKDu=Module["__ZTIPKDu"]=43924;var __ZTSPKDu=Module["__ZTSPKDu"]=43940;var __ZTIDs=Module["__ZTIDs"]=43948;var __ZTSDs=Module["__ZTSDs"]=43956;var __ZTIPDs=Module["__ZTIPDs"]=43960;var __ZTSPDs=Module["__ZTSPDs"]=43976;var __ZTIPKDs=Module["__ZTIPKDs"]=43980;var __ZTSPKDs=Module["__ZTSPKDs"]=43996;var __ZTIDi=Module["__ZTIDi"]=44004;var __ZTSDi=Module["__ZTSDi"]=44012;var __ZTIPDi=Module["__ZTIPDi"]=44016;var __ZTSPDi=Module["__ZTSPDi"]=44032;var __ZTIPKDi=Module["__ZTIPKDi"]=44036;var __ZTSPKDi=Module["__ZTSPKDi"]=44052;var __ZTVN10__cxxabiv117__array_type_infoE=Module["__ZTVN10__cxxabiv117__array_type_infoE"]=44060;var __ZTIN10__cxxabiv117__array_type_infoE=Module["__ZTIN10__cxxabiv117__array_type_infoE"]=44088;var __ZTSN10__cxxabiv117__array_type_infoE=Module["__ZTSN10__cxxabiv117__array_type_infoE"]=44100;var __ZTVN10__cxxabiv120__function_type_infoE=Module["__ZTVN10__cxxabiv120__function_type_infoE"]=44136;var __ZTVN10__cxxabiv116__enum_type_infoE=Module["__ZTVN10__cxxabiv116__enum_type_infoE"]=44164;var __ZTIN10__cxxabiv116__enum_type_infoE=Module["__ZTIN10__cxxabiv116__enum_type_infoE"]=44192;var __ZTSN10__cxxabiv116__enum_type_infoE=Module["__ZTSN10__cxxabiv116__enum_type_infoE"]=44204;var __ZTIN10__cxxabiv120__si_class_type_infoE=Module["__ZTIN10__cxxabiv120__si_class_type_infoE"]=44320;var __ZTSN10__cxxabiv120__si_class_type_infoE=Module["__ZTSN10__cxxabiv120__si_class_type_infoE"]=44332;var __ZTIN10__cxxabiv121__vmi_class_type_infoE=Module["__ZTIN10__cxxabiv121__vmi_class_type_infoE"]=44412;var __ZTSN10__cxxabiv121__vmi_class_type_infoE=Module["__ZTSN10__cxxabiv121__vmi_class_type_infoE"]=44424;var __ZTVN10__cxxabiv117__pbase_type_infoE=Module["__ZTVN10__cxxabiv117__pbase_type_infoE"]=44464;var __ZTVN10__cxxabiv129__pointer_to_member_type_infoE=Module["__ZTVN10__cxxabiv129__pointer_to_member_type_infoE"]=44520;var __ZTVSt9bad_alloc=Module["__ZTVSt9bad_alloc"]=44548;var __ZTVSt20bad_array_new_length=Module["__ZTVSt20bad_array_new_length"]=44568;var __ZTISt9bad_alloc=Module["__ZTISt9bad_alloc"]=44684;var __ZTSSt9exception=Module["__ZTSSt9exception"]=44616;var __ZTVSt13bad_exception=Module["__ZTVSt13bad_exception"]=44632;var __ZTISt13bad_exception=Module["__ZTISt13bad_exception"]=44652;var __ZTSSt13bad_exception=Module["__ZTSSt13bad_exception"]=44664;var __ZTSSt9bad_alloc=Module["__ZTSSt9bad_alloc"]=44696;var __ZTSSt20bad_array_new_length=Module["__ZTSSt20bad_array_new_length"]=44724;var __ZTVSt12domain_error=Module["__ZTVSt12domain_error"]=44792;var __ZTISt12domain_error=Module["__ZTISt12domain_error"]=44812;var __ZTSSt12domain_error=Module["__ZTSSt12domain_error"]=44824;var __ZTSSt11logic_error=Module["__ZTSSt11logic_error"]=44856;var __ZTVSt16invalid_argument=Module["__ZTVSt16invalid_argument"]=44872;var __ZTISt16invalid_argument=Module["__ZTISt16invalid_argument"]=44892;var __ZTSSt16invalid_argument=Module["__ZTSSt16invalid_argument"]=44904;var __ZTSSt12length_error=Module["__ZTSSt12length_error"]=44960;var __ZTSSt12out_of_range=Module["__ZTSSt12out_of_range"]=45012;var __ZTVSt11range_error=Module["__ZTVSt11range_error"]=45032;var __ZTISt11range_error=Module["__ZTISt11range_error"]=45052;var __ZTSSt11range_error=Module["__ZTSSt11range_error"]=45064;var __ZTSSt13runtime_error=Module["__ZTSSt13runtime_error"]=45092;var __ZTVSt14overflow_error=Module["__ZTVSt14overflow_error"]=45112;var __ZTISt14overflow_error=Module["__ZTISt14overflow_error"]=45132;var __ZTSSt14overflow_error=Module["__ZTSSt14overflow_error"]=45144;var __ZTVSt15underflow_error=Module["__ZTVSt15underflow_error"]=45164;var __ZTISt15underflow_error=Module["__ZTISt15underflow_error"]=45184;var __ZTSSt15underflow_error=Module["__ZTSSt15underflow_error"]=45196;var __ZTVSt8bad_cast=Module["__ZTVSt8bad_cast"]=45216;var __ZTVSt10bad_typeid=Module["__ZTVSt10bad_typeid"]=45236;var __ZTISt10bad_typeid=Module["__ZTISt10bad_typeid"]=45320;var __ZTVSt9type_info=Module["__ZTVSt9type_info"]=45256;var __ZTSSt9type_info=Module["__ZTSSt9type_info"]=45280;var __ZTSSt8bad_cast=Module["__ZTSSt8bad_cast"]=45308;var __ZTSSt10bad_typeid=Module["__ZTSSt10bad_typeid"]=45332;function run(){if(runDependencies>0){dependenciesFulfilled=run;return}if(ENVIRONMENT_IS_PTHREAD){readyPromiseResolve(Module);initRuntime();return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}function preInit(){if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}preInit();run();moduleRtn=readyPromise;
-
-
- return moduleRtn;
-}
-);
-})();
-export default Nissy;
-var isPthread = globalThis.self?.name?.startsWith('em-pthread');
-var isNode = typeof globalThis.process?.versions?.node == 'string';
-if (isNode) isPthread = (await import('worker_threads')).workerData === 'em-pthread';
-
-// When running as a pthread, construct a new instance on startup
-isPthread && Nissy();
diff --git a/web/nissy_web_module.wasm b/web/nissy_web_module.wasm
Binary files differ.