From 223eb57d3edbd1d95e3aefe552d148aebf77728b Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Sun, 14 Mar 2021 12:53:11 +0530 Subject: copying dist --- docs/js/RDKit_minimal.js | 1 + docs/js/RDKit_minimal.min.js | 2 + docs/js/RDKit_minimal.min.js.map | 1 + docs/js/RDKit_minimal.wasm | Bin 0 -> 4603887 bytes docs/js/main.js | 8910 ++++++++++++++++++++++++++++++++++++++ docs/js/main.min.js | 2 + docs/js/main.min.js.map | 1 + docs/js/my.js | 0 docs/js/my.min.js | 2 + docs/js/my.min.js.map | 1 + 10 files changed, 8920 insertions(+) create mode 100644 docs/js/RDKit_minimal.js create mode 100644 docs/js/RDKit_minimal.min.js create mode 100644 docs/js/RDKit_minimal.min.js.map create mode 100644 docs/js/RDKit_minimal.wasm create mode 100644 docs/js/main.js create mode 100644 docs/js/main.min.js create mode 100644 docs/js/main.min.js.map create mode 100644 docs/js/my.js create mode 100644 docs/js/my.min.js create mode 100644 docs/js/my.min.js.map (limited to 'docs/js') diff --git a/docs/js/RDKit_minimal.js b/docs/js/RDKit_minimal.js new file mode 100644 index 0000000..15771f9 --- /dev/null +++ b/docs/js/RDKit_minimal.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=Number(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":4549,"maximum":4549+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=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}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str="";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[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}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="RDKit_minimal.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___cxa_allocate_exception(size){return _malloc(size)}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_3(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_4(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_rethrow(){var ptr=___exception_caught.pop();ptr=___exception_deAdjust(ptr);if(!___exception_infos[ptr].rethrown){___exception_caught.push(ptr);___exception_infos[ptr].rethrown=true}___exception_last=ptr;throw ptr}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}function ___resumeException(ptr){if(!___exception_last){___exception_last=ptr}throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(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:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[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.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=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;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){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,allocate:MEMFS.stream_ops.allocate,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.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>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);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){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;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=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;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(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:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(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:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}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:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(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:function(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){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(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(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(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:type,opts:opts,mountpoint: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:function(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(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}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)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_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=function(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);if(typeof Uint8Array!="undefined")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||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(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};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;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url: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(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function 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=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(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>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;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}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_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}}function ClassHandle_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}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_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}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function 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.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;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}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=[]}function 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 "'+_embind_repr(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.$$){throwBindingError('Cannot pass "'+_embind_repr(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_register(function(){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 "'+_embind_repr(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 simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function 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)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function 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}}))}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: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})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["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}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+"."+methodName;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,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0||i==length){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>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){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":function(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);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return __emval_register(v)}function _abort(){abort()}function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}function _emscripten_get_sbrk_ptr(){return 493104}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8","_":__getExecutableName()};for(var x in ENV){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){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _llvm_eh_typeid_for(type){return type}var ___tm_current=493120;var ___tm_timezone=(stringToUTF8("GMT",493168,4),493168);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summer.getTimezoneOffset()>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _setTempRet0($i){setTempRet0($i|0)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var ASSERTIONS=false;function 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 asmLibraryArg={"__cxa_allocate_exception":___cxa_allocate_exception,"__cxa_atexit":___cxa_atexit,"__cxa_begin_catch":___cxa_begin_catch,"__cxa_end_catch":___cxa_end_catch,"__cxa_find_matching_catch_2":___cxa_find_matching_catch_2,"__cxa_find_matching_catch_3":___cxa_find_matching_catch_3,"__cxa_find_matching_catch_4":___cxa_find_matching_catch_4,"__cxa_free_exception":___cxa_free_exception,"__cxa_rethrow":___cxa_rethrow,"__cxa_throw":___cxa_throw,"__cxa_uncaught_exceptions":___cxa_uncaught_exceptions,"__map_file":___map_file,"__resumeException":___resumeException,"__sys_fcntl64":___sys_fcntl64,"__sys_ioctl":___sys_ioctl,"__sys_munmap":___sys_munmap,"__sys_open":___sys_open,"_embind_register_bool":__embind_register_bool,"_embind_register_class":__embind_register_class,"_embind_register_class_function":__embind_register_class_function,"_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,"_emval_as":__emval_as,"_emval_call_method":__emval_call_method,"_emval_call_void_method":__emval_call_void_method,"_emval_decref":__emval_decref,"_emval_get_method_caller":__emval_get_method_caller,"_emval_get_property":__emval_get_property,"_emval_incref":__emval_incref,"_emval_new_cstring":__emval_new_cstring,"_emval_run_destructors":__emval_run_destructors,"_emval_set_property":__emval_set_property,"_emval_take_value":__emval_take_value,"abort":_abort,"clock":_clock,"emscripten_get_sbrk_ptr":_emscripten_get_sbrk_ptr,"emscripten_longjmp":_emscripten_longjmp,"emscripten_memcpy_big":_emscripten_memcpy_big,"emscripten_resize_heap":_emscripten_resize_heap,"environ_get":_environ_get,"environ_sizes_get":_environ_sizes_get,"fd_close":_fd_close,"fd_fdstat_get":_fd_fdstat_get,"fd_read":_fd_read,"fd_seek":_fd_seek,"fd_write":_fd_write,"getTempRet0":_getTempRet0,"invoke_di":invoke_di,"invoke_dii":invoke_dii,"invoke_diid":invoke_diid,"invoke_diii":invoke_diii,"invoke_diiii":invoke_diiii,"invoke_diiiii":invoke_diiiii,"invoke_fi":invoke_fi,"invoke_fif":invoke_fif,"invoke_fii":invoke_fii,"invoke_fiii":invoke_fiii,"invoke_fiiii":invoke_fiiii,"invoke_fiiiiiff":invoke_fiiiiiff,"invoke_i":invoke_i,"invoke_ii":invoke_ii,"invoke_iid":invoke_iid,"invoke_iiddi":invoke_iiddi,"invoke_iiddii":invoke_iiddii,"invoke_iiddiii":invoke_iiddiii,"invoke_iif":invoke_iif,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiid":invoke_iiiiid,"invoke_iiiiii":invoke_iiiiii,"invoke_iiiiiid":invoke_iiiiiid,"invoke_iiiiiii":invoke_iiiiiii,"invoke_iiiiiiii":invoke_iiiiiiii,"invoke_iiiiiiiii":invoke_iiiiiiiii,"invoke_iiiiiiiiiddiii":invoke_iiiiiiiiiddiii,"invoke_iiiiiiiiii":invoke_iiiiiiiiii,"invoke_iiiiiiiiiii":invoke_iiiiiiiiiii,"invoke_iiiiiiiiiiii":invoke_iiiiiiiiiiii,"invoke_iiiiiiiiiiiii":invoke_iiiiiiiiiiiii,"invoke_iij":invoke_iij,"invoke_jiiii":invoke_jiiii,"invoke_v":invoke_v,"invoke_vi":invoke_vi,"invoke_vid":invoke_vid,"invoke_vidi":invoke_vidi,"invoke_vidiiiiiii":invoke_vidiiiiiii,"invoke_vif":invoke_vif,"invoke_viffffff":invoke_viffffff,"invoke_viffi":invoke_viffi,"invoke_vifii":invoke_vifii,"invoke_vii":invoke_vii,"invoke_viid":invoke_viid,"invoke_viidddd":invoke_viidddd,"invoke_viidi":invoke_viidi,"invoke_viidii":invoke_viidii,"invoke_viidiiiiiii":invoke_viidiiiiiii,"invoke_viif":invoke_viif,"invoke_viifii":invoke_viifii,"invoke_viii":invoke_viii,"invoke_viiid":invoke_viiid,"invoke_viiidi":invoke_viiidi,"invoke_viiidiiiid":invoke_viiidiiiid,"invoke_viiiff":invoke_viiiff,"invoke_viiii":invoke_viiii,"invoke_viiiidd":invoke_viiiidd,"invoke_viiiiffffiii":invoke_viiiiffffiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiidi":invoke_viiiiidi,"invoke_viiiiii":invoke_viiiiii,"invoke_viiiiiid":invoke_viiiiiid,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiiiiii":invoke_viiiiiiii,"invoke_viiiiiiiii":invoke_viiiiiiiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_viiiiiiiiiii":invoke_viiiiiiiiiii,"invoke_viiiiiiiiiiiiiii":invoke_viiiiiiiiiiiiiii,"llvm_eh_typeid_for":_llvm_eh_typeid_for,"localtime":_localtime,"memory":wasmMemory,"pthread_mutexattr_destroy":_pthread_mutexattr_destroy,"pthread_mutexattr_init":_pthread_mutexattr_init,"pthread_mutexattr_settype":_pthread_mutexattr_settype,"round":_round,"setTempRet0":_setTempRet0,"strftime_l":_strftime_l,"table":wasmTable,"time":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["__wasm_call_ctors"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["malloc"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["free"]).apply(null,arguments)};var _realloc=Module["_realloc"]=function(){return(_realloc=Module["_realloc"]=Module["asm"]["realloc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["__errno_location"]).apply(null,arguments)};var _testSetjmp=Module["_testSetjmp"]=function(){return(_testSetjmp=Module["_testSetjmp"]=Module["asm"]["testSetjmp"]).apply(null,arguments)};var _saveSetjmp=Module["_saveSetjmp"]=function(){return(_saveSetjmp=Module["_saveSetjmp"]=Module["asm"]["saveSetjmp"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["__getTypeName"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["__embind_register_native_and_builtin_types"]).apply(null,arguments)};var __get_tzname=Module["__get_tzname"]=function(){return(__get_tzname=Module["__get_tzname"]=Module["asm"]["_get_tzname"]).apply(null,arguments)};var __get_daylight=Module["__get_daylight"]=function(){return(__get_daylight=Module["__get_daylight"]=Module["asm"]["_get_daylight"]).apply(null,arguments)};var __get_timezone=Module["__get_timezone"]=function(){return(__get_timezone=Module["__get_timezone"]=Module["asm"]["_get_timezone"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["setThrew"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["stackSave"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["stackRestore"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["stackAlloc"]).apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=function(){return(__ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=Module["asm"]["_ZSt18uncaught_exceptionv"]).apply(null,arguments)};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return(___cxa_can_catch=Module["___cxa_can_catch"]=Module["asm"]["__cxa_can_catch"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["__cxa_is_pointer_type"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["dynCall_v"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["dynCall_vi"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["dynCall_vii"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["dynCall_viii"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["dynCall_viiii"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["dynCall_viiiii"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["dynCall_viiiiii"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["dynCall_viiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["dynCall_viiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=function(){return(dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=function(){return(dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiii=Module["dynCall_viiiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=Module["asm"]["dynCall_viiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_viiiiiid=Module["dynCall_viiiiiid"]=function(){return(dynCall_viiiiiid=Module["dynCall_viiiiiid"]=Module["asm"]["dynCall_viiiiiid"]).apply(null,arguments)};var dynCall_viiiiidi=Module["dynCall_viiiiidi"]=function(){return(dynCall_viiiiidi=Module["dynCall_viiiiidi"]=Module["asm"]["dynCall_viiiiidi"]).apply(null,arguments)};var dynCall_viiiiffffiii=Module["dynCall_viiiiffffiii"]=function(){return(dynCall_viiiiffffiii=Module["dynCall_viiiiffffiii"]=Module["asm"]["dynCall_viiiiffffiii"]).apply(null,arguments)};var dynCall_viiiidd=Module["dynCall_viiiidd"]=function(){return(dynCall_viiiidd=Module["dynCall_viiiidd"]=Module["asm"]["dynCall_viiiidd"]).apply(null,arguments)};var dynCall_viiiff=Module["dynCall_viiiff"]=function(){return(dynCall_viiiff=Module["dynCall_viiiff"]=Module["asm"]["dynCall_viiiff"]).apply(null,arguments)};var dynCall_viiid=Module["dynCall_viiid"]=function(){return(dynCall_viiid=Module["dynCall_viiid"]=Module["asm"]["dynCall_viiid"]).apply(null,arguments)};var dynCall_viiidi=Module["dynCall_viiidi"]=function(){return(dynCall_viiidi=Module["dynCall_viiidi"]=Module["asm"]["dynCall_viiidi"]).apply(null,arguments)};var dynCall_viiidiiiid=Module["dynCall_viiidiiiid"]=function(){return(dynCall_viiidiiiid=Module["dynCall_viiidiiiid"]=Module["asm"]["dynCall_viiidiiiid"]).apply(null,arguments)};var dynCall_viif=Module["dynCall_viif"]=function(){return(dynCall_viif=Module["dynCall_viif"]=Module["asm"]["dynCall_viif"]).apply(null,arguments)};var dynCall_viifii=Module["dynCall_viifii"]=function(){return(dynCall_viifii=Module["dynCall_viifii"]=Module["asm"]["dynCall_viifii"]).apply(null,arguments)};var dynCall_viid=Module["dynCall_viid"]=function(){return(dynCall_viid=Module["dynCall_viid"]=Module["asm"]["dynCall_viid"]).apply(null,arguments)};var dynCall_viidi=Module["dynCall_viidi"]=function(){return(dynCall_viidi=Module["dynCall_viidi"]=Module["asm"]["dynCall_viidi"]).apply(null,arguments)};var dynCall_viidii=Module["dynCall_viidii"]=function(){return(dynCall_viidii=Module["dynCall_viidii"]=Module["asm"]["dynCall_viidii"]).apply(null,arguments)};var dynCall_viidiiiiiii=Module["dynCall_viidiiiiiii"]=function(){return(dynCall_viidiiiiiii=Module["dynCall_viidiiiiiii"]=Module["asm"]["dynCall_viidiiiiiii"]).apply(null,arguments)};var dynCall_viidddd=Module["dynCall_viidddd"]=function(){return(dynCall_viidddd=Module["dynCall_viidddd"]=Module["asm"]["dynCall_viidddd"]).apply(null,arguments)};var dynCall_vif=Module["dynCall_vif"]=function(){return(dynCall_vif=Module["dynCall_vif"]=Module["asm"]["dynCall_vif"]).apply(null,arguments)};var dynCall_vifii=Module["dynCall_vifii"]=function(){return(dynCall_vifii=Module["dynCall_vifii"]=Module["asm"]["dynCall_vifii"]).apply(null,arguments)};var dynCall_viffi=Module["dynCall_viffi"]=function(){return(dynCall_viffi=Module["dynCall_viffi"]=Module["asm"]["dynCall_viffi"]).apply(null,arguments)};var dynCall_viffffff=Module["dynCall_viffffff"]=function(){return(dynCall_viffffff=Module["dynCall_viffffff"]=Module["asm"]["dynCall_viffffff"]).apply(null,arguments)};var dynCall_vid=Module["dynCall_vid"]=function(){return(dynCall_vid=Module["dynCall_vid"]=Module["asm"]["dynCall_vid"]).apply(null,arguments)};var dynCall_vidi=Module["dynCall_vidi"]=function(){return(dynCall_vidi=Module["dynCall_vidi"]=Module["asm"]["dynCall_vidi"]).apply(null,arguments)};var dynCall_vidiiiiiii=Module["dynCall_vidiiiiiii"]=function(){return(dynCall_vidiiiiiii=Module["dynCall_vidiiiiiii"]=Module["asm"]["dynCall_vidiiiiiii"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["dynCall_i"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["dynCall_ii"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["dynCall_iii"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["dynCall_iiii"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["dynCall_iiiii"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["dynCall_iiiiii"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["dynCall_iiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["dynCall_iiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=function(){return(dynCall_iiiiiiiiii=Module["dynCall_iiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiddiii=Module["dynCall_iiiiiiiiiddiii"]=function(){return(dynCall_iiiiiiiiiddiii=Module["dynCall_iiiiiiiiiddiii"]=Module["asm"]["dynCall_iiiiiiiiiddiii"]).apply(null,arguments)};var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=function(){return(dynCall_iiiiiid=Module["dynCall_iiiiiid"]=Module["asm"]["dynCall_iiiiiid"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["dynCall_iiiiid"]).apply(null,arguments)};var dynCall_iij=Module["dynCall_iij"]=function(){return(dynCall_iij=Module["dynCall_iij"]=Module["asm"]["dynCall_iij"]).apply(null,arguments)};var dynCall_iif=Module["dynCall_iif"]=function(){return(dynCall_iif=Module["dynCall_iif"]=Module["asm"]["dynCall_iif"]).apply(null,arguments)};var dynCall_iid=Module["dynCall_iid"]=function(){return(dynCall_iid=Module["dynCall_iid"]=Module["asm"]["dynCall_iid"]).apply(null,arguments)};var dynCall_iiddi=Module["dynCall_iiddi"]=function(){return(dynCall_iiddi=Module["dynCall_iiddi"]=Module["asm"]["dynCall_iiddi"]).apply(null,arguments)};var dynCall_iiddii=Module["dynCall_iiddii"]=function(){return(dynCall_iiddii=Module["dynCall_iiddii"]=Module["asm"]["dynCall_iiddii"]).apply(null,arguments)};var dynCall_iiddiii=Module["dynCall_iiddiii"]=function(){return(dynCall_iiddiii=Module["dynCall_iiddiii"]=Module["asm"]["dynCall_iiddiii"]).apply(null,arguments)};var dynCall_jiiii=Module["dynCall_jiiii"]=function(){return(dynCall_jiiii=Module["dynCall_jiiii"]=Module["asm"]["dynCall_jiiii"]).apply(null,arguments)};var dynCall_fi=Module["dynCall_fi"]=function(){return(dynCall_fi=Module["dynCall_fi"]=Module["asm"]["dynCall_fi"]).apply(null,arguments)};var dynCall_fii=Module["dynCall_fii"]=function(){return(dynCall_fii=Module["dynCall_fii"]=Module["asm"]["dynCall_fii"]).apply(null,arguments)};var dynCall_fiii=Module["dynCall_fiii"]=function(){return(dynCall_fiii=Module["dynCall_fiii"]=Module["asm"]["dynCall_fiii"]).apply(null,arguments)};var dynCall_fiiii=Module["dynCall_fiiii"]=function(){return(dynCall_fiiii=Module["dynCall_fiiii"]=Module["asm"]["dynCall_fiiii"]).apply(null,arguments)};var dynCall_fiiiiiff=Module["dynCall_fiiiiiff"]=function(){return(dynCall_fiiiiiff=Module["dynCall_fiiiiiff"]=Module["asm"]["dynCall_fiiiiiff"]).apply(null,arguments)};var dynCall_fif=Module["dynCall_fif"]=function(){return(dynCall_fif=Module["dynCall_fif"]=Module["asm"]["dynCall_fif"]).apply(null,arguments)};var dynCall_di=Module["dynCall_di"]=function(){return(dynCall_di=Module["dynCall_di"]=Module["asm"]["dynCall_di"]).apply(null,arguments)};var dynCall_dii=Module["dynCall_dii"]=function(){return(dynCall_dii=Module["dynCall_dii"]=Module["asm"]["dynCall_dii"]).apply(null,arguments)};var dynCall_diii=Module["dynCall_diii"]=function(){return(dynCall_diii=Module["dynCall_diii"]=Module["asm"]["dynCall_diii"]).apply(null,arguments)};var dynCall_diiii=Module["dynCall_diiii"]=function(){return(dynCall_diiii=Module["dynCall_diiii"]=Module["asm"]["dynCall_diiii"]).apply(null,arguments)};var dynCall_diiiii=Module["dynCall_diiiii"]=function(){return(dynCall_diiiii=Module["dynCall_diiiii"]=Module["asm"]["dynCall_diiiii"]).apply(null,arguments)};var dynCall_diid=Module["dynCall_diid"]=function(){return(dynCall_diid=Module["dynCall_diid"]=Module["asm"]["dynCall_diid"]).apply(null,arguments)};var __growWasmMemory=Module["__growWasmMemory"]=function(){return(__growWasmMemory=Module["__growWasmMemory"]=Module["asm"]["__growWasmMemory"]).apply(null,arguments)};var dynCall_iiidi=Module["dynCall_iiidi"]=function(){return(dynCall_iiidi=Module["dynCall_iiidi"]=Module["asm"]["dynCall_iiidi"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["dynCall_viijii"]).apply(null,arguments)};var dynCall_viiddd=Module["dynCall_viiddd"]=function(){return(dynCall_viiddd=Module["dynCall_viiddd"]=Module["asm"]["dynCall_viiddd"]).apply(null,arguments)};var dynCall_viiiidi=Module["dynCall_viiiidi"]=function(){return(dynCall_viiiidi=Module["dynCall_viiiidi"]=Module["asm"]["dynCall_viiiidi"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiiiiiiii"]=Module["asm"]["dynCall_iiiiiiiiiiiiiiiiii"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["dynCall_jiji"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["dynCall_iidiiii"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["dynCall_iiiiij"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["dynCall_iiiiijj"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["dynCall_iiiiiijj"]).apply(null,arguments)};function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viidi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iif(index,a1,a2){var sp=stackSave();try{return dynCall_iif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidddd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viidddd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiidd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiidd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiidi(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiidi(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiid(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiddii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiddiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fii(index,a1,a2){var sp=stackSave();try{return dynCall_fii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiddi(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiddi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viidii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viidii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiid(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiid(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{dynCall_vidi(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_diiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_fiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fi(index,a1){var sp=stackSave();try{return dynCall_fi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vif(index,a1,a2){var sp=stackSave();try{dynCall_vif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viffi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viffi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viffffff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viffffff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fif(index,a1,a2){var sp=stackSave();try{return dynCall_fif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vifii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_vifii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viifii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viifii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); \ No newline at end of file diff --git a/docs/js/RDKit_minimal.min.js b/docs/js/RDKit_minimal.min.js new file mode 100644 index 0000000..b66c683 --- /dev/null +++ b/docs/js/RDKit_minimal.min.js @@ -0,0 +1,2 @@ +var key,Module=void 0!==Module?Module:{},moduleOverrides={};for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath,arguments_=[],thisProgram="./this.program",quit_=function(e,i){throw i},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1,ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER,scriptDirectory="";function locateFile(e){return Module.locateFile?Module.locateFile(e,scriptDirectory):scriptDirectory+e}ENVIRONMENT_IS_NODE?(scriptDirectory=ENVIRONMENT_IS_WORKER?require("path").dirname(scriptDirectory)+"/":__dirname+"/",read_=function(e,i){return nodeFS=nodeFS||require("fs"),e=(nodePath=nodePath||require("path")).normalize(e),nodeFS.readFileSync(e,i?null:"utf8")},readBinary=function(e){e=read_(e,!0);return assert((e=!e.buffer?new Uint8Array(e):e).buffer),e},1>2];return HEAP32[DYNAMICTOP_PTR>>2]=i+e+15&-16,i}function getNativeTypeSize(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return 4;if("i"!==e[0])return 0;var i=Number(e.substr(1));return assert(i%8==0,"getNativeTypeSize invalid bits "+i+", type "+e),i/8}}function warnOnce(e){warnOnce.shown||(warnOnce.shown={}),warnOnce.shown[e]||(warnOnce.shown[e]=1,err(e))}function convertJsFunctionToWasm(e,i){if("function"==typeof WebAssembly.Function){for(var n={i:"i32",j:"i64",f:"f32",d:"f64"},t={parameters:[],results:"v"==i[0]?[]:[n[i[0]]]},r=1;r>0]=i;break;case"i16":HEAP16[e>>1]=i;break;case"i32":HEAP32[e>>2]=i;break;case"i64":tempI64=[i>>>0,1<=+Math_abs(tempDouble=i)?0>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=i;break;case"double":HEAPF64[e>>3]=i;break;default:abort("invalid type for setValue: "+n)}}Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Module.noExitRuntime&&(noExitRuntime=Module.noExitRuntime),"object"!=typeof WebAssembly&&abort("no native wasm support detected");var wasmTable=new WebAssembly.Table({initial:4549,maximum:4549,element:"anyfunc"}),ABORT=!1,EXITSTATUS=0;function assert(e,i){e||abort("Assertion failed: "+i)}function getCFunc(e){var i=Module["_"+e];return assert(i,"Cannot call unknown function "+e+", make sure it is exported"),i}function ccall(e,i,n,t,r){var o={string:function(e){var i,n=0;return null!=e&&0!==e&&(i=1+(e.length<<2),stringToUTF8(e,n=stackAlloc(i),i)),n},array:function(e){var i=stackAlloc(e.length);return writeArrayToMemory(e,i),i}};var e=getCFunc(e),a=[],l=0;if(t)for(var u=0;u>10,56320|1023&l))):o+=String.fromCharCode((31&u)<<6|a)):o+=String.fromCharCode(u)}return o}function UTF8ToString(e,i){return e?UTF8ArrayToString(HEAPU8,e,i):""}function stringToUTF8Array(e,i,n,t){if(!(0>6,i[n++]=128|63&l}else if(l<=65535){if(o<=n+2)break;i[n++]=224|l>>12,i[n++]=128|l>>6&63,i[n++]=128|63&l}else{if(o<=n+3)break;i[n++]=240|l>>18,i[n++]=128|l>>12&63,i[n++]=128|l>>6&63,i[n++]=128|63&l}}return i[n]=0,n-r}function stringToUTF8(e,i,n){return stringToUTF8Array(e,HEAPU8,i,n)}function lengthBytesUTF8(e){for(var i=0,n=0;n>1,r=t+i/2;!(r<=t)&&HEAPU16[t];)++t;if(32<(n=t<<1)-e&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(e,n));for(var o=0,a="";;){var l=HEAP16[e+2*o>>1];if(0==l||o==i/2)return a;++o,a+=String.fromCharCode(l)}}function stringToUTF16(e,i,n){if((n=void 0===n?2147483647:n)<2)return 0;for(var t=i,r=(n-=2)<2*e.length?n/2:e.length,o=0;o>1]=a,i+=2}return HEAP16[i>>1]=0,i-t}function lengthBytesUTF16(e){return 2*e.length}function UTF32ToString(e,i){for(var n=0,t="";!(i/4<=n);){var r,o=HEAP32[e+4*n>>2];if(0==o)break;++n,65536<=o?(r=o-65536,t+=String.fromCharCode(55296|r>>10,56320|1023&r)):t+=String.fromCharCode(o)}return t}function stringToUTF32(e,i,n){if((n=void 0===n?2147483647:n)<4)return 0;for(var t=i,r=t+n-4,o=0;o>2]=a,r<(i+=4)+4)break}return HEAP32[i>>2]=0,i-t}function lengthBytesUTF32(e){for(var i=0,n=0;n>0]=e.charCodeAt(t);n||(HEAP8[i>>0]=0)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,WASM_PAGE_SIZE=65536;function updateGlobalBufferAndViews(e){buffer=e,Module.HEAP8=HEAP8=new Int8Array(e),Module.HEAP16=HEAP16=new Int16Array(e),Module.HEAP32=HEAP32=new Int32Array(e),Module.HEAPU8=HEAPU8=new Uint8Array(e),Module.HEAPU16=HEAPU16=new Uint16Array(e),Module.HEAPU32=HEAPU32=new Uint32Array(e),Module.HEAPF32=HEAPF32=new Float32Array(e),Module.HEAPF64=HEAPF64=new Float64Array(e)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104,INITIAL_INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;function callRuntimeCallbacks(e){for(;0>2]=DYNAMIC_BASE;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=!0,Module.noFSInit||FS.init.initialized||FS.init(),TTY.init(),callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=!1,callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}var Math_abs=Math.abs,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_min=Math.min,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){var i;runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled&&(i=dependenciesFulfilled,dependenciesFulfilled=null,i()))}function abort(e){throw Module.onAbort&&Module.onAbort(e),out(e+=""),err(e),ABORT=!0,EXITSTATUS=1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(e)}function hasPrefix(e,i){return String.prototype.startsWith?e.startsWith(i):0===e.indexOf(i)}Module.preloadedImages={},Module.preloadedAudios={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(e){return hasPrefix(e,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(e){return hasPrefix(e,fileURIPrefix)}var tempDouble,tempI64,wasmBinaryFile="RDKit_minimal.wasm";function getBinary(){try{if(wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(wasmBinaryFile);throw"both async and sync fetching of the wasm failed"}catch(e){abort(e)}}function getBinaryPromise(){return wasmBinary||!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER||"function"!=typeof fetch||isFileURI(wasmBinaryFile)?new Promise(function(e,i){e(getBinary())}):fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return e.arrayBuffer()}).catch(function(){return getBinary()})}function createWasm(){var i={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};function n(e,i){e=e.exports;Module.asm=e,removeRunDependency("wasm-instantiate")}function t(e){n(e.instance)}function r(e){return getBinaryPromise().then(function(e){return WebAssembly.instantiate(e,i)}).then(e,function(e){err("failed to asynchronously prepare wasm: "+e),abort(e)})}if(addRunDependency("wasm-instantiate"),Module.instantiateWasm)try{return Module.instantiateWasm(i,n)}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return function(){if(wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(wasmBinaryFile)||isFileURI(wasmBinaryFile)||"function"!=typeof fetch)return r(t);fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,i).then(t,function(e){return err("wasm streaming compile failed: "+e),err("falling back to ArrayBuffer instantiation"),r(t)})})}(),{}}function demangle(e){return e}function demangleAll(e){return e.replace(/\b_Z[\w\d_]+/g,function(e){var i=demangle(e);return e===i?e:i+" ["+e+"]"})}function jsStackTrace(){var i=new Error;if(!i.stack){try{throw new Error}catch(e){i=e}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function ___cxa_allocate_exception(e){return _malloc(e)}function _atexit(e,i){}function ___cxa_atexit(e,i){return _atexit(e,i)}isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile)),__ATINIT__.push({func:function(){___wasm_call_ctors()}});var ___exception_infos={},___exception_caught=[];function ___exception_addRef(e){e&&___exception_infos[e].refcount++}function ___exception_deAdjust(e){if(!e||___exception_infos[e])return e;for(var i in ___exception_infos)for(var n=+i,t=___exception_infos[n].adjusted,r=t.length,o=0;o>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_find_matching_catch_3(){if(!(t=___exception_last))return 0|(setTempRet0(0),0);var e=___exception_infos[t],i=e.type;if(!i)return 0|(setTempRet0(0),t);var n=Array.prototype.slice.call(arguments);___cxa_is_pointer_type(i);HEAP32[123316]=t;for(var t=493264,r=0;r>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_find_matching_catch_4(){if(!(t=___exception_last))return 0|(setTempRet0(0),0);var e=___exception_infos[t],i=e.type;if(!i)return 0|(setTempRet0(0),t);var n=Array.prototype.slice.call(arguments);___cxa_is_pointer_type(i);HEAP32[123316]=t;for(var t=493264,r=0;r>2],e.adjusted.push(t),0|(setTempRet0(n[r]),t);return t=HEAP32[t>>2],0|(setTempRet0(i),t)}function ___cxa_rethrow(){var e=___exception_deAdjust(e=___exception_caught.pop());throw ___exception_infos[e].rethrown||(___exception_caught.push(e),___exception_infos[e].rethrown=!0),___exception_last=e}function ___cxa_throw(e,i,n){throw ___exception_infos[e]={ptr:e,adjusted:[e],type:i,destructor:n,refcount:0,caught:!1,rethrown:!1},___exception_last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exceptions++:__ZSt18uncaught_exceptionv.uncaught_exceptions=1,e}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(e){return HEAP32[___errno_location()>>2]=e}function ___map_file(e,i){return setErrNo(63),-1}function ___resumeException(e){throw ___exception_last=___exception_last||e,e}var PATH={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,i){for(var n=0,t=e.length-1;0<=t;t--){var r=e[t];"."===r?e.splice(t,1):".."===r?(e.splice(t,1),n++):n&&(e.splice(t,1),n--)}if(i)for(;n;n--)e.unshift("..");return e},normalize:function(e){var i="/"===e.charAt(0),n="/"===e.substr(-1);return(e=!(e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!i).join("/"))&&!i?".":e)&&n&&(e+="/"),(i?"/":"")+e},dirname:function(e){var i=PATH.splitPath(e),e=i[0],i=i[1];return e||i?e+(i=i&&i.substr(0,i.length-1)):"."},basename:function(e){if("/"===e)return"/";var i=e.lastIndexOf("/");return-1===i?e:e.substr(i+1)},extname:function(e){return PATH.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return PATH.normalize(e.join("/"))},join2:function(e,i){return PATH.normalize(e+"/"+i)}},PATH_FS={resolve:function(){for(var e="",i=!1,n=arguments.length-1;-1<=n&&!i;n--){var t=0<=n?arguments[n]:FS.cwd();if("string"!=typeof t)throw new TypeError("Arguments to path.resolve must be strings");if(!t)return"";e=t+"/"+e,i="/"===t.charAt(0)}return(i?"/":"")+(e=PATH.normalizeArray(e.split("/").filter(function(e){return!!e}),!i).join("/"))||"."},relative:function(e,i){function n(e){for(var i=0;i>>0),0!=n&&(i=Math.max(i,256)),n=e.contents,e.contents=new Uint8Array(i),0i)e.contents.length=i;else for(;e.contents.length=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-r,t);if(8>>0)%FS.nameTable.length},hashAddNode:function(e){var i=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[i],FS.nameTable[i]=e},hashRemoveNode:function(e){var i=FS.hashName(e.parent.id,e.name);if(FS.nameTable[i]===e)FS.nameTable[i]=e.name_next;else for(var n=FS.nameTable[i];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode:function(e,i){var n=FS.mayLookup(e);if(n)throw new FS.ErrnoError(n,e);for(var n=FS.hashName(e.id,i),t=FS.nameTable[n];t;t=t.name_next){var r=t.name;if(t.parent.id===e.id&&r===i)return t}return FS.lookup(e,i)},createNode:function(e,i,n,t){t=new FS.FSNode(e,i,n,t);return FS.hashAddNode(t),t},destroyNode:function(e){FS.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var i=FS.flagModes[e];if(void 0===i)throw new Error("Unknown file open mode: "+e);return i},flagsToPermissionString:function(e){var i=["r","w","rw"][3&e];return 512&e&&(i+="w"),i},nodePermissions:function(e,i){return FS.ignorePermissions||(-1===i.indexOf("r")||292&e.mode)&&(-1===i.indexOf("w")||146&e.mode)&&(-1===i.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var i=FS.nodePermissions(e,"x");return i||(e.node_ops.lookup?0:2)},mayCreate:function(e,i){try{FS.lookupNode(e,i);return 20}catch(e){}return FS.nodePermissions(e,"wx")},mayDelete:function(e,i,n){var t;try{t=FS.lookupNode(e,i)}catch(e){return e.errno}e=FS.nodePermissions(e,"wx");if(e)return e;if(n){if(!FS.isDir(t.mode))return 54;if(FS.isRoot(t)||FS.getPath(t)===FS.cwd())return 10}else if(FS.isDir(t.mode))return 31;return 0},mayOpen:function(e,i){return e?FS.isLink(e.mode)?32:FS.isDir(e.mode)&&("r"!==FS.flagsToPermissionString(i)||512&i)?31:FS.nodePermissions(e,FS.flagsToPermissionString(i)):44},MAX_OPEN_FDS:4096,nextfd:function(e,i){i=i||FS.MAX_OPEN_FDS;for(var n=e=e||0;n<=i;n++)if(!FS.streams[n])return n;throw new FS.ErrnoError(33)},getStream:function(e){return FS.streams[e]},createStream:function(e,i,n){FS.FSStream||(FS.FSStream=function(){},FS.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var t,r=new FS.FSStream;for(t in e)r[t]=e[t];e=r;n=FS.nextfd(i,n);return e.fd=n,FS.streams[n]=e},closeStream:function(e){FS.streams[e]=null},chrdev_stream_ops:{open:function(e){var i=FS.getDevice(e.node.rdev);e.stream_ops=i.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new FS.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,i){return e<<8|i},registerDevice:function(e,i){FS.devices[e]={stream_ops:i}},getDevice:function(e){return FS.devices[e]},getMounts:function(e){for(var i=[],n=[e];n.length;){var t=n.pop();i.push(t),n.push.apply(n,t.mounts)}return i},syncfs:function(i,n){"function"==typeof i&&(n=i,i=!1),FS.syncFSRequests++,1=t.length&&o(null)}t.forEach(function(e){return e.type.syncfs?void e.type.syncfs(e,i,a):a(null)})},mount:function(e,i,n){var t="/"===n,r=!n;if(t&&FS.root)throw new FS.ErrnoError(10);if(!t&&!r){var o=FS.lookupPath(n,{follow_mount:!1});if(n=o.path,o=o.node,FS.isMountpoint(o))throw new FS.ErrnoError(10);if(!FS.isDir(o.mode))throw new FS.ErrnoError(54)}n={type:e,opts:i,mountpoint:n,mounts:[]},e=e.mount(n);return(e.mount=n).root=e,t?FS.root=e:o&&(o.mounted=n,o.mount&&o.mount.mounts.push(n)),e},unmount:function(e){var i=FS.lookupPath(e,{follow_mount:!1});if(!FS.isMountpoint(i.node))throw new FS.ErrnoError(28);var e=i.node,i=e.mounted,t=FS.getMounts(i);Object.keys(FS.nameTable).forEach(function(e){for(var i=FS.nameTable[e];i;){var n=i.name_next;-1!==t.indexOf(i.mount)&&FS.destroyNode(i),i=n}}),e.mounted=null;i=e.mount.mounts.indexOf(i);e.mount.mounts.splice(i,1)},lookup:function(e,i){return e.node_ops.lookup(e,i)},mknod:function(e,i,n){var t=FS.lookupPath(e,{parent:!0}).node,r=PATH.basename(e);if(!r||"."===r||".."===r)throw new FS.ErrnoError(28);e=FS.mayCreate(t,r);if(e)throw new FS.ErrnoError(e);if(!t.node_ops.mknod)throw new FS.ErrnoError(63);return t.node_ops.mknod(t,r,i,n)},create:function(e,i){return i=void 0!==i?i:438,i&=4095,FS.mknod(e,i|=32768,0)},mkdir:function(e,i){return i=void 0!==i?i:511,i&=1023,FS.mknod(e,i|=16384,0)},mkdirTree:function(e,i){for(var n=e.split("/"),t="",r=0;rthis.length-1||e<0)){var i=e%this.chunkSize,e=e/this.chunkSize|0;return this.getter(e)[i]}},r.prototype.setDataGetter=function(e){this.getter=e},r.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var t=Number(e.getResponseHeader("Content-length")),i=(n=e.getResponseHeader("Accept-Ranges"))&&"bytes"===n,n=(n=e.getResponseHeader("Content-Encoding"))&&"gzip"===n,r=1048576;i||(r=t);var o=this;o.setDataGetter(function(e){var i=e*r,n=(e+1)*r-1,n=Math.min(n,t-1);if(void 0===o.chunks[e]&&(o.chunks[e]=function(e,i){if(i=o.length)return 0;var a=Math.min(o.length-r,t);if(o.slice)for(var l=0;l>2]=t.dev,HEAP32[n+4>>2]=0,HEAP32[n+8>>2]=t.ino,HEAP32[n+12>>2]=t.mode,HEAP32[n+16>>2]=t.nlink,HEAP32[n+20>>2]=t.uid,HEAP32[n+24>>2]=t.gid,HEAP32[n+28>>2]=t.rdev,HEAP32[n+32>>2]=0,tempI64=[t.size>>>0,(tempDouble=t.size,1<=+Math_abs(tempDouble)?0>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+40>>2]=tempI64[0],HEAP32[n+44>>2]=tempI64[1],HEAP32[n+48>>2]=4096,HEAP32[n+52>>2]=t.blocks,HEAP32[n+56>>2]=t.atime.getTime()/1e3|0,HEAP32[n+60>>2]=0,HEAP32[n+64>>2]=t.mtime.getTime()/1e3|0,HEAP32[n+68>>2]=0,HEAP32[n+72>>2]=t.ctime.getTime()/1e3|0,HEAP32[n+76>>2]=0,tempI64=[t.ino>>>0,(tempDouble=t.ino,1<=+Math_abs(tempDouble)?0>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[n+80>>2]=tempI64[0],HEAP32[n+84>>2]=tempI64[1],0},doMsync:function(e,i,n,t,r){e=HEAPU8.slice(e,e+n);FS.msync(i,e,r,n,t)},doMkdir:function(e,i){return"/"===(e=PATH.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),FS.mkdir(e,i,0),0},doMknod:function(e,i,n){switch(61440&i){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return FS.mknod(e,i,n),0},doReadlink:function(e,i,n){if(n<=0)return-28;var t=FS.readlink(e),r=Math.min(n,lengthBytesUTF8(t)),e=HEAP8[i+r];return stringToUTF8(t,i,n+1),HEAP8[i+r]=e,r},doAccess:function(e,i){if(-8&i)return-28;var n=FS.lookupPath(e,{follow:!0}).node;if(!n)return-44;e="";return 4&i&&(e+="r"),2&i&&(e+="w"),1&i&&(e+="x"),e&&FS.nodePermissions(n,e)?-2:0},doDup:function(e,i,n){var t=FS.getStream(n);return t&&FS.close(t),FS.open(e,i,0,n,n).fd},doReadv:function(e,i,n,t){for(var r=0,o=0;o>2],l=HEAP32[i+(8*o+4)>>2],a=FS.read(e,HEAP8,a,l,t);if(a<0)return-1;if(r+=a,a>2],l=HEAP32[i+(8*o+4)>>2],l=FS.write(e,HEAP8,a,l,t);if(l<0)return-1;r+=l}return r},varargs:void 0,get:function(){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(e){return UTF8ToString(e)},getStreamFromFD:function(e){e=FS.getStream(e);if(!e)throw new FS.ErrnoError(8);return e},get64:function(e,i){return e}};function ___sys_fcntl64(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStreamFromFD(e);switch(i){case 0:return(r=SYSCALLS.get())<0?-28:FS.open(t.path,t.flags,0,r).fd;case 1:case 2:return 0;case 3:return t.flags;case 4:var r=SYSCALLS.get();return t.flags|=r,0;case 12:r=SYSCALLS.get();return HEAP16[r+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return setErrNo(28),-1;default:return-28}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_ioctl(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStreamFromFD(e);switch(i){case 21509:case 21505:return t.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return t.tty?0:-59;case 21519:if(!t.tty)return-59;var r=SYSCALLS.get();return HEAP32[r>>2]=0;case 21520:return t.tty?-28:-59;case 21531:r=SYSCALLS.get();return FS.ioctl(t,i,r);case 21523:case 21524:return t.tty?0:-59;default:abort("bad ioctl syscall "+i)}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function syscallMunmap(e,i){if(-1==(0|e)||0===i)return-28;var n,t=SYSCALLS.mappings[e];return t&&i===t.len&&(n=FS.getStream(t.fd),2&t.prot&&SYSCALLS.doMsync(e,n,i,t.flags,t.offset),FS.munmap(n),SYSCALLS.mappings[e]=null,t.allocated&&_free(t.malloc)),0}function ___sys_munmap(e,i){try{return syscallMunmap(e,i)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___sys_open(e,i,n){SYSCALLS.varargs=n;try{var t=SYSCALLS.getStr(e),r=SYSCALLS.get();return FS.open(t,i,r).fd}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function getShiftFromSize(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function embind_init_charCodes(){for(var e=new Array(256),i=0;i<256;++i)e[i]=String.fromCharCode(i);embind_charCodes=e}var embind_charCodes=void 0;function readLatin1String(e){for(var i="",n=e;HEAPU8[n];)i+=embind_charCodes[HEAPU8[n++]];return i}var awaitingDependencies={},registeredTypes={},typeDependencies={},char_0=48,char_9=57;function makeLegalFunctionName(e){if(void 0===e)return"_unknown";var i=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return char_0<=i&&i<=char_9?"_"+e:e}function createNamedFunction(e,i){return e=makeLegalFunctionName(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(i)}function extendError(e,i){var n=createNamedFunction(i,function(e){this.name=i,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return n.prototype=Object.create(e.prototype),(n.prototype.constructor=n).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},n}var BindingError=void 0;function throwBindingError(e){throw new BindingError(e)}var InternalError=void 0;function throwInternalError(e){throw new InternalError(e)}function whenDependentTypesAreResolved(t,i,r){function n(e){var i=r(e);i.length!==t.length&&throwInternalError("Mismatched type converter count");for(var n=0;n>a])},destructorFunction:null})}function ClassHandle_isAliasOf(e){if(!(this instanceof ClassHandle))return!1;if(!(e instanceof ClassHandle))return!1;for(var i=this.$$.ptrType.registeredClass,n=this.$$.ptr,t=e.$$.ptrType.registeredClass,r=e.$$.ptr;i.baseClass;)n=i.upcast(n),i=i.baseClass;for(;t.baseClass;)r=t.upcast(r),t=t.baseClass;return i===t&&n===r}function shallowCopyInternalPointer(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function throwInstanceAlreadyDeleted(e){throwBindingError(e.$$.ptrType.registeredClass.name+" instance already deleted")}var finalizationGroup=!1;function detachFinalizer(e){}function runDestructor(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function releaseClassHandle(e){--e.count.value,0===e.count.value&&runDestructor(e)}function attachFinalizer(e){return"undefined"==typeof FinalizationGroup?(attachFinalizer=function(e){return e},e):(finalizationGroup=new FinalizationGroup(function(e){for(var i=e.next();!i.done;i=e.next()){var n=i.value;n.ptr?releaseClassHandle(n):console.warn("object already deleted: "+n.ptr)}}),detachFinalizer=function(e){finalizationGroup.unregister(e.$$)},(attachFinalizer=function(e){return finalizationGroup.register(e,e.$$,e.$$),e})(e))}function ClassHandle_clone(){if(this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function ClassHandle_delete(){this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&throwBindingError("Object already scheduled for deletion"),detachFinalizer(this),releaseClassHandle(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=void 0,deletionQueue=[];function flushPendingDeletes(){for(;deletionQueue.length;){var e=deletionQueue.pop();e.$$.deleteScheduled=!1,e.delete()}}function ClassHandle_deleteLater(){return this.$$.ptr||throwInstanceAlreadyDeleted(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&throwBindingError("Object already scheduled for deletion"),deletionQueue.push(this),1===deletionQueue.length&&delayFunction&&delayFunction(flushPendingDeletes),this.$$.deleteScheduled=!0,this}function init_ClassHandle(){ClassHandle.prototype.isAliasOf=ClassHandle_isAliasOf,ClassHandle.prototype.clone=ClassHandle_clone,ClassHandle.prototype.delete=ClassHandle_delete,ClassHandle.prototype.isDeleted=ClassHandle_isDeleted,ClassHandle.prototype.deleteLater=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(e,i,n){var t;void 0===e[i].overloadTable&&(t=e[i],e[i]=function(){return e[i].overloadTable.hasOwnProperty(arguments.length)||throwBindingError("Function '"+n+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[i].overloadTable+")!"),e[i].overloadTable[arguments.length].apply(this,arguments)},e[i].overloadTable=[],e[i].overloadTable[t.argCount]=t)}function exposePublicSymbol(e,i,n){Module.hasOwnProperty(e)?((void 0===n||void 0!==Module[e].overloadTable&&void 0!==Module[e].overloadTable[n])&&throwBindingError("Cannot register public name '"+e+"' twice"),ensureOverloadTable(Module,e,e),Module.hasOwnProperty(n)&&throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),Module[e].overloadTable[n]=i):(Module[e]=i,void 0!==n&&(Module[e].numArguments=n))}function RegisteredClass(e,i,n,t,r,o,a,l){this.name=e,this.constructor=i,this.instancePrototype=n,this.rawDestructor=t,this.baseClass=r,this.getActualType=o,this.upcast=a,this.downcast=l,this.pureVirtualFunctions=[]}function upcastPointer(e,i,n){for(;i!==n;)i.upcast||throwBindingError("Expected null or instance of "+n.name+", got an instance of "+i.name),e=i.upcast(e),i=i.baseClass;return e}function constNoSmartPtrRawPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name);var n=i.$$.ptrType.registeredClass;return upcastPointer(i.$$.ptr,n,this.registeredClass)}function genericPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,t),t):0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&i.$$.ptrType.isConst&&throwBindingError("Cannot convert argument of type "+(i.$$.smartPtrType||i.$$.ptrType).name+" to parameter type "+this.name);var n,t,r=i.$$.ptrType.registeredClass;if(t=upcastPointer(i.$$.ptr,r,this.registeredClass),this.isSmartPointer)switch(void 0===i.$$.smartPtr&&throwBindingError("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:i.$$.smartPtrType===this?t=i.$$.smartPtr:throwBindingError("Cannot convert argument of type "+(i.$$.smartPtrType||i.$$.ptrType).name+" to parameter type "+this.name);break;case 1:t=i.$$.smartPtr;break;case 2:i.$$.smartPtrType===this?t=i.$$.smartPtr:(n=i.clone(),t=this.rawShare(t,__emval_register(function(){n.delete()})),null!==e&&e.push(this.rawDestructor,t));break;default:throwBindingError("Unsupporting sharing policy")}return t}function nonConstNoSmartPtrRawPointerToWireType(e,i){if(null===i)return this.isReference&&throwBindingError("null is not a valid "+this.name),0;i.$$||throwBindingError('Cannot pass "'+_embind_repr(i)+'" as a '+this.name),i.$$.ptr||throwBindingError("Cannot pass deleted object as a pointer of type "+this.name),i.$$.ptrType.isConst&&throwBindingError("Cannot convert argument of type "+i.$$.ptrType.name+" to parameter type "+this.name);var n=i.$$.ptrType.registeredClass;return upcastPointer(i.$$.ptr,n,this.registeredClass)}function simpleReadValueFromPointer(e){return this.fromWireType(HEAPU32[e>>2])}function RegisteredPointer_getPointee(e){return e=this.rawGetPointee?this.rawGetPointee(e):e}function RegisteredPointer_destructor(e){this.rawDestructor&&this.rawDestructor(e)}function RegisteredPointer_deleteObject(e){null!==e&&e.delete()}function downcastPointer(e,i,n){if(i===n)return e;if(void 0===n.baseClass)return null;i=downcastPointer(e,i,n.baseClass);return null===i?null:n.downcast(i)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var e,i=[];for(e in registeredInstances)registeredInstances.hasOwnProperty(e)&&i.push(registeredInstances[e]);return i}function setDelayFunction(e){delayFunction=e,deletionQueue.length&&delayFunction&&delayFunction(flushPendingDeletes)}function init_embind(){Module.getInheritedInstanceCount=getInheritedInstanceCount,Module.getLiveInheritedInstances=getLiveInheritedInstances,Module.flushPendingDeletes=flushPendingDeletes,Module.setDelayFunction=setDelayFunction}var registeredInstances={};function getBasestPointer(e,i){for(void 0===i&&throwBindingError("ptr should not be undefined");e.baseClass;)i=e.upcast(i),e=e.baseClass;return i}function getInheritedInstance(e,i){return i=getBasestPointer(e,i),registeredInstances[i]}function makeClassHandle(e,i){return i.ptrType&&i.ptr||throwInternalError("makeClassHandle requires ptr and ptrType"),!!i.smartPtrType!=!!i.smartPtr&&throwInternalError("Both smartPtrType and smartPtr must be specified"),i.count={value:1},attachFinalizer(Object.create(e,{$$:{value:i}}))}function RegisteredPointer_fromWireType(e){var i=this.getPointee(e);if(!i)return this.destructor(e),null;var n=getInheritedInstance(this.registeredClass,i);if(void 0!==n){if(0===n.$$.count.value)return n.$$.ptr=i,n.$$.smartPtr=e,n.clone();var t=n.clone();return this.destructor(e),t}function r(){return this.isSmartPointer?makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:i,smartPtrType:this,smartPtr:e}):makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}n=this.registeredClass.getActualType(i),t=registeredPointers[n];if(!t)return r.call(this);n=this.isConst?t.constPointerType:t.pointerType,t=downcastPointer(i,this.registeredClass,n.registeredClass);return null===t?r.call(this):this.isSmartPointer?makeClassHandle(n.registeredClass.instancePrototype,{ptrType:n,ptr:t,smartPtrType:this,smartPtr:e}):makeClassHandle(n.registeredClass.instancePrototype,{ptrType:n,ptr:t})}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee,RegisteredPointer.prototype.destructor=RegisteredPointer_destructor,RegisteredPointer.prototype.argPackAdvance=8,RegisteredPointer.prototype.readValueFromPointer=simpleReadValueFromPointer,RegisteredPointer.prototype.deleteObject=RegisteredPointer_deleteObject,RegisteredPointer.prototype.fromWireType=RegisteredPointer_fromWireType}function RegisteredPointer(e,i,n,t,r,o,a,l,u,s,d){this.name=e,this.registeredClass=i,this.isReference=n,this.isConst=t,this.isSmartPointer=r,this.pointeeType=o,this.sharingPolicy=a,this.rawGetPointee=l,this.rawConstructor=u,this.rawShare=s,this.rawDestructor=d,r||void 0!==i.baseClass?this.toWireType=genericPointerToWireType:(this.toWireType=t?constNoSmartPtrRawPointerToWireType:nonConstNoSmartPtrRawPointerToWireType,this.destructorFunction=null)}function replacePublicSymbol(e,i,n){Module.hasOwnProperty(e)||throwInternalError("Replacing nonexistant public symbol"),void 0!==Module[e].overloadTable&&void 0!==n?Module[e].overloadTable[n]=i:(Module[e]=i,Module[e].argCount=n)}function embind__requireFunction(r,o){r=readLatin1String(r);var e=function(e){for(var i=[],n=1;n>2)+t]);return n}function __embind_register_class_function(e,o,a,i,n,l,u,s){var d=heap32VectorToArray(a,i);o=readLatin1String(o),l=embind__requireFunction(n,l),whenDependentTypesAreResolved([],[e],function(i){var n=(i=i[0]).name+"."+o;function e(){throwUnboundTypeError("Cannot call "+n+" due to unbound types",d)}s&&i.registeredClass.pureVirtualFunctions.push(o);var t=i.registeredClass.instancePrototype,r=t[o];return void 0===r||void 0===r.overloadTable&&r.className!==i.name&&r.argCount===a-2?(e.argCount=a-2,e.className=i.name,t[o]=e):(ensureOverloadTable(t,o,n),t[o].overloadTable[a-2]=e),whenDependentTypesAreResolved([],d,function(e){e=craftInvokerFunction(n,e,i,l,u);return void 0===t[o].overloadTable?(e.argCount=a-2,t[o]=e):t[o].overloadTable[a-2]=e,[]}),[]})}var emval_free_list=[],emval_handle_array=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function __emval_decref(e){4>2])};case 3:return function(e){return this.fromWireType(HEAPF64[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function __embind_register_float(e,i,n){n=getShiftFromSize(n);registerType(e,{name:i=readLatin1String(i),fromWireType:function(e){return e},toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+_embind_repr(i)+'" to '+this.name);return i},argPackAdvance:8,readValueFromPointer:floatReadValueFromPointer(i,n),destructorFunction:null})}function __embind_register_function(i,n,e,t,r,o){var a=heap32VectorToArray(n,e);i=readLatin1String(i),r=embind__requireFunction(t,r),exposePublicSymbol(i,function(){throwUnboundTypeError("Cannot call "+i+" due to unbound types",a)},n-1),whenDependentTypesAreResolved([],a,function(e){e=[e[0],null].concat(e.slice(1));return replacePublicSymbol(i,craftInvokerFunction(i,e,null,r,o),n-1),[]})}function integerReadValueFromPointer(e,i,n){switch(i){case 0:return n?function(e){return HEAP8[e]}:function(e){return HEAPU8[e]};case 1:return n?function(e){return HEAP16[e>>1]}:function(e){return HEAPU16[e>>1]};case 2:return n?function(e){return HEAP32[e>>2]}:function(e){return HEAPU32[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function __embind_register_integer(e,n,i,t,r){n=readLatin1String(n),-1===r&&(r=4294967295);var o,a=getShiftFromSize(i),l=function(e){return e};0===t&&(o=32-8*i,l=function(e){return e<>>o});var u=-1!=n.indexOf("unsigned");registerType(e,{name:n,fromWireType:l,toWireType:function(e,i){if("number"!=typeof i&&"boolean"!=typeof i)throw new TypeError('Cannot convert "'+_embind_repr(i)+'" to '+this.name);if(i>>0:0|i},argPackAdvance:8,readValueFromPointer:integerReadValueFromPointer(n,a,0!==t),destructorFunction:null})}function __embind_register_memory_view(e,i,n){var t=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][i];function r(e){var i=HEAPU32[e>>=2],e=HEAPU32[e+1];return new t(buffer,e,i)}registerType(e,{name:n=readLatin1String(n),fromWireType:r,argPackAdvance:8,readValueFromPointer:r},{ignoreDuplicateRegistrations:!0})}function __embind_register_std_string(e,i){var u="std::string"===(i=readLatin1String(i));registerType(e,{name:i,fromWireType:function(e){var i,n=HEAPU32[e>>2];if(u)for(var t=e+4,r=0;r<=n;++r){var o,a=e+4+r;0!=HEAPU8[a]&&r!=n||(o=UTF8ToString(t,a-t),void 0===i?i=o:(i+=String.fromCharCode(0),i+=o),t=a+1)}else{for(var l=new Array(n),r=0;r>2]=t,u&&n)stringToUTF8(i,r+4,t+1);else if(n)for(var o=0;o>2],t=d(),r=e+4,o=0;o<=n;++o){var a,l=e+4+o*u;0!=t[l>>c]&&o!=n||(a=s(r,l-r),void 0===i?i=a:(i+=String.fromCharCode(0),i+=a),r=l+u)}return _free(e),i},toWireType:function(e,i){"string"!=typeof i&&throwBindingError("Cannot pass non-string to C++ string type "+r);var n=a(i),t=_malloc(4+n+u);return HEAPU32[t>>2]=n>>c,o(i,t+4,n+u),null!==e&&e.push(_free,t),t},argPackAdvance:8,readValueFromPointer:simpleReadValueFromPointer,destructorFunction:function(e){_free(e)}})}function __embind_register_void(e,i){registerType(e,{isVoid:!0,name:i=readLatin1String(i),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,i){}})}function requireHandle(e){return e||throwBindingError("Cannot use deleted val. handle = "+e),emval_handle_array[e].value}function requireRegisteredType(e,i){var n=registeredTypes[e];return void 0===n&&throwBindingError(i+" has unknown type "+getTypeName(e)),n}function __emval_as(e,i,n){e=requireHandle(e),i=requireRegisteredType(i,"emval::as");var t=[],r=__emval_register(t);return HEAP32[n>>2]=r,i.toWireType(t,e)}function __emval_allocateDestructors(e){var i=[];return HEAP32[e>>2]=__emval_register(i),i}var emval_symbols={};function getStringOrSymbol(e){var i=emval_symbols[e];return void 0===i?readLatin1String(e):i}var emval_methodCallers=[];function __emval_call_method(e,i,n,t,r){return(e=emval_methodCallers[e])(i=requireHandle(i),n=getStringOrSymbol(n),__emval_allocateDestructors(t),r)}function __emval_call_void_method(e,i,n,t){(e=emval_methodCallers[e])(i=requireHandle(i),n=getStringOrSymbol(n),null,t)}function __emval_addMethodCaller(e){var i=emval_methodCallers.length;return emval_methodCallers.push(e),i}function __emval_lookupTypes(e,i){for(var n=new Array(e),t=0;t>2)+t],"parameter "+t);return n}function __emval_get_method_caller(e,i){for(var n=__emval_lookupTypes(e,i),t=n[0],i=t.name+"_$"+n.slice(1).map(function(e){return e.name}).join("_")+"$",r=["retType"],o=[t],a="",l=0;l>>=0)}var ENV={};function __getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:__getExecutableName()};for(i in ENV)e[i]=ENV[i];var i,n=[];for(i in e)n.push(i+"="+e[i]);getEnvStrings.strings=n}return getEnvStrings.strings}function _environ_get(t,r){var o=0;return getEnvStrings().forEach(function(e,i){var n=r+o;writeAsciiToMemory(e,HEAP32[t+4*i>>2]=n),o+=e.length+1}),0}function _environ_sizes_get(e,i){var n=getEnvStrings();HEAP32[e>>2]=n.length;var t=0;return n.forEach(function(e){t+=e.length+1}),HEAP32[i>>2]=t,0}function _fd_close(e){try{var i=SYSCALLS.getStreamFromFD(e);return FS.close(i),0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_fdstat_get(e,i){try{var n=SYSCALLS.getStreamFromFD(e),t=n.tty?2:FS.isDir(n.mode)?3:FS.isLink(n.mode)?7:4;return HEAP8[i>>0]=t,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_read(e,i,n,t){try{var r=SYSCALLS.getStreamFromFD(e),o=SYSCALLS.doReadv(r,i,n);return HEAP32[t>>2]=o,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_seek(e,i,n,t,r){try{var o=SYSCALLS.getStreamFromFD(e),a=4294967296*n+(i>>>0),l=9007199254740992;return a<=-l||l<=a?-61:(FS.llseek(o,a,t),tempI64=[o.position>>>0,(tempDouble=o.position,1<=+Math_abs(tempDouble)?0>>0:~~+Math_ceil((tempDouble-(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[r>>2]=tempI64[0],HEAP32[r+4>>2]=tempI64[1],o.getdents&&0==a&&0===t&&(o.getdents=null),0)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _fd_write(e,i,n,t){try{var r=SYSCALLS.getStreamFromFD(e),o=SYSCALLS.doWritev(r,i,n);return HEAP32[t>>2]=o,0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),e.errno}}function _getTempRet0(){return 0|getTempRet0()}function _llvm_eh_typeid_for(e){return e}var ___tm_current=493120,___tm_timezone=(stringToUTF8("GMT",493168,4),493168);function _tzset(){var e,i,n,t;function r(e){e=e.toTimeString().match(/\(([A-Za-z ]+)\)$/);return e?e[1]:"GMT"}_tzset.called||(_tzset.called=!0,HEAP32[__get_timezone()>>2]=60*(new Date).getTimezoneOffset(),t=(new Date).getFullYear(),e=new Date(t,0,1),i=new Date(t,6,1),HEAP32[__get_daylight()>>2]=Number(e.getTimezoneOffset()!=i.getTimezoneOffset()),n=r(e),t=r(i),n=allocateUTF8(n),t=allocateUTF8(t),i.getTimezoneOffset()>2]=n,HEAP32[__get_tzname()+4>>2]=t):(HEAP32[__get_tzname()>>2]=t,HEAP32[__get_tzname()+4>>2]=n))}function _localtime_r(e,i){_tzset();var n=new Date(1e3*HEAP32[e>>2]);HEAP32[i>>2]=n.getSeconds(),HEAP32[i+4>>2]=n.getMinutes(),HEAP32[i+8>>2]=n.getHours(),HEAP32[i+12>>2]=n.getDate(),HEAP32[i+16>>2]=n.getMonth(),HEAP32[i+20>>2]=n.getFullYear()-1900,HEAP32[i+24>>2]=n.getDay();var t=new Date(n.getFullYear(),0,1),e=(n.getTime()-t.getTime())/864e5|0;HEAP32[i+28>>2]=e,HEAP32[i+36>>2]=-60*n.getTimezoneOffset();e=new Date(n.getFullYear(),6,1).getTimezoneOffset(),t=t.getTimezoneOffset(),e=0|(e!=t&&n.getTimezoneOffset()==Math.min(t,e));HEAP32[i+32>>2]=e;e=HEAP32[__get_tzname()+(e?4:0)>>2];return HEAP32[i+40>>2]=e,i}function _localtime(e){return _localtime_r(e,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(e){return 0<=(e=+e)?+Math_floor(e+.5):+Math_ceil(e-.5)}function _setTempRet0(e){setTempRet0(0|e)}function __isLeapYear(e){return e%4==0&&(e%100!=0||e%400==0)}function __arraySum(e,i){for(var n=0,t=0;t<=i;n+=e[t++]);return n}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31],__MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(e,i){for(var n=new Date(e.getTime());0t-n.getDate()))return n.setDate(n.getDate()+i),n;i-=t-n.getDate()+1,n.setDate(1),r<11?n.setMonth(r+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1))}return n}function _strftime(e,i,n,t){var r=HEAP32[t+40>>2],o={tm_sec:HEAP32[t>>2],tm_min:HEAP32[t+4>>2],tm_hour:HEAP32[t+8>>2],tm_mday:HEAP32[t+12>>2],tm_mon:HEAP32[t+16>>2],tm_year:HEAP32[t+20>>2],tm_wday:HEAP32[t+24>>2],tm_yday:HEAP32[t+28>>2],tm_isdst:HEAP32[t+32>>2],tm_gmtoff:HEAP32[t+36>>2],tm_zone:r?UTF8ToString(r):""},a=UTF8ToString(n),l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(y in l)a=a.replace(new RegExp(y,"g"),l[y]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],s=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(e,i,n){for(var t="number"==typeof e?e.toString():e||"";t.lengthi?0:(writeArrayToMemory(n,e),n.length-1)}function _strftime_l(e,i,n,t){return _strftime(e,i,n,t)}function _time(e){var i=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=i),i}var FSNode=function(e,i,n,t){this.parent=e=e||this,this.mount=e.mount,this.mounted=null,this.id=FS.nextInode++,this.name=i,this.mode=n,this.node_ops={},this.stream_ops={},this.rdev=t},readMode=365,writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(e){e?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(e){e?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}}),FS.FSNode=FSNode,FS.staticInit(),embind_init_charCodes(),BindingError=Module.BindingError=extendError(Error,"BindingError"),InternalError=Module.InternalError=extendError(Error,"InternalError"),init_ClassHandle(),init_RegisteredPointer(),init_embind(),UnboundTypeError=Module.UnboundTypeError=extendError(Error,"UnboundTypeError"),init_emval();var ASSERTIONS=!1;function intArrayFromString(e,i,n){n=01){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);if(typeof module!==\"undefined\"){module[\"exports\"]=Module}process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:{if(type[type.length-1]===\"*\"){return 4}else if(type[0]===\"i\"){var bits=Number(type.substr(1));assert(bits%8===0,\"getNativeTypeSize invalid bits \"+bits+\", type \"+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function===\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i>0]=value;break;case\"i8\":HEAP8[ptr>>0]=value;break;case\"i16\":HEAP16[ptr>>1]=value;break;case\"i32\":HEAP32[ptr>>2]=value;break;case\"i64\":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case\"float\":HEAPF32[ptr>>2]=value;break;case\"double\":HEAPF64[ptr>>3]=value;break;default:abort(\"invalid type for setValue: \"+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":4549,\"maximum\":4549+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=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}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var i=0;var str=\"\";while(1){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0||i==maxBytesToRead/2)return str;++i;str+=String.fromCharCode(codeUnit)}}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[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}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5736160,DYNAMIC_BASE=5736160,DYNAMICTOP_PTR=493104;var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"RDKit_minimal.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\\b_Z[\\w\\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+\" [\"+x+\"]\"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return\"(no stack trace available)\"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module[\"extraStackTrace\"])js+=\"\\n\"+Module[\"extraStackTrace\"]();return demangleAll(js)}function ___cxa_allocate_exception(size){return _malloc(size)}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_3(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_find_matching_catch_4(){var thrown=___exception_last;if(!thrown){return(setTempRet0(0),0)|0}var info=___exception_infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=___cxa_is_pointer_type(throwntype);var buffer=493264;HEAP32[buffer>>2]=thrown;thrown=buffer;for(var i=0;i>2];info.adjusted.push(thrown);return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_rethrow(){var ptr=___exception_caught.pop();ptr=___exception_deAdjust(ptr);if(!___exception_infos[ptr].rethrown){___exception_caught.push(ptr);___exception_infos[ptr].rethrown=true}___exception_last=ptr;throw ptr}function ___cxa_throw(ptr,type,destructor){___exception_infos[ptr]={ptr:ptr,adjusted:[ptr],type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};___exception_last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function ___cxa_uncaught_exceptions(){return __ZSt18uncaught_exceptionv.uncaught_exceptions}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___map_file(pathname,size){setErrNo(63);return-1}function ___resumeException(ptr){if(!___exception_last){___exception_last=ptr}throw ptr}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(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:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[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.charAt(0)===\"/\"}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p){return!!p}),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=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;i0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){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,allocate:MEMFS.stream_ops.allocate,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.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>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);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){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;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=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;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),false);var current=FS.root;var current_path=\"/\";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(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:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(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:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}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:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{\"r\":0,\"rs\":1052672,\"r+\":2,\"w\":577,\"wx\":705,\"xw\":705,\"w+\":578,\"wx+\":706,\"xw+\":706,\"a\":1089,\"ax\":1217,\"xa\":1217,\"a+\":1090,\"ax+\":1218,\"xa+\":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags===\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:function(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf(\"r\")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf(\"w\")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf(\"x\")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:function(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:function(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){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(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(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(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:type,opts:opts,mountpoint: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:function(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(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}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)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i\"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module[\"_fflush\"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_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=function(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);if(typeof Uint8Array!=\"undefined\")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||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(function(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};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;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url: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(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}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>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort(\"bad ioctl syscall \"+op)}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function 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=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(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>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;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}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn(\"object already deleted: \"+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_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}}function ClassHandle_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}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}function ClassHandle_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}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function 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.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;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}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=[]}function 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 \"'+_embind_repr(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.$$){throwBindingError('Cannot pass \"'+_embind_repr(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_register(function(){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 \"'+_embind_repr(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 simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function 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)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function 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}}))}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: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})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"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}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;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,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(\"Cannot call \"+name+\" due to unbound types\",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf(\"unsigned\")!=-1;registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number \"'+_embind_repr(value)+'\" from JS side to C/C++ side to an argument of type \"'+name+'\", which is outside the valid range ['+minRange+\", \"+maxRange+\"]!\")}return isUnsignedType?value>>>0:value|0},\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0||i==length){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>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(HEAP[currentBytePtr>>shift]==0||i==length){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\":function(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);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function requireHandle(handle){if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __emval_as(handle,returnType,destructorsRef){handle=requireHandle(handle);returnType=requireRegisteredType(returnType,\"emval::as\");var destructors=[];var rd=__emval_register(destructors);HEAP32[destructorsRef>>2]=rd;return returnType[\"toWireType\"](destructors,handle)}function __emval_allocateDestructors(destructorsRef){var destructors=[];HEAP32[destructorsRef>>2]=__emval_register(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=requireHandle(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],\"parameter \"+i)}return a}function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+\"_$\"+types.slice(1).map(function(t){return t.name}).join(\"_\")+\"$\";var params=[\"retType\"];var args=[retType];var argsList=\"\";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_cstring(v){return __emval_register(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=emval_handle_array[handle].value;runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=requireHandle(handle);key=requireHandle(key);value=requireHandle(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](argv);return __emval_register(v)}function _abort(){abort()}function _clock(){if(_clock.start===undefined)_clock.start=Date.now();return(Date.now()-_clock.start)*(1e6/1e3)|0}function _emscripten_get_sbrk_ptr(){return 493104}function _longjmp(env,value){_setThrew(env,value||1);throw\"longjmp\"}function _emscripten_longjmp(env,value){_longjmp(env,value)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort(\"OOM\")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function __getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":(typeof navigator===\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\",\"_\":__getExecutableName()};for(var x in ENV){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){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _llvm_eh_typeid_for(type){return type}var ___tm_current=493120;var ___tm_timezone=(stringToUTF8(\"GMT\",493168,4),493168);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summer.getTimezoneOffset()>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_settype(){}function _round(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _setTempRet0($i){setTempRet0($i|0)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):\"\"};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={\"%c\":\"%a %b %d %H:%M:%S %Y\",\"%D\":\"%m/%d/%y\",\"%F\":\"%Y-%m-%d\",\"%h\":\"%b\",\"%r\":\"%I:%M:%S %p\",\"%R\":\"%H:%M\",\"%T\":\"%H:%M:%S\",\"%x\":\"%m/%d/%y\",\"%X\":\"%H:%M:%S\",\"%Ec\":\"%c\",\"%EC\":\"%C\",\"%Ex\":\"%m/%d/%y\",\"%EX\":\"%H:%M:%S\",\"%Ey\":\"%y\",\"%EY\":\"%Y\",\"%Od\":\"%d\",\"%Oe\":\"%e\",\"%OH\":\"%H\",\"%OI\":\"%I\",\"%Om\":\"%m\",\"%OM\":\"%M\",\"%OS\":\"%S\",\"%Ou\":\"%u\",\"%OU\":\"%U\",\"%OV\":\"%V\",\"%Ow\":\"%w\",\"%OW\":\"%W\",\"%Oy\":\"%y\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value===\"number\"?value.toString():value||\"\";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={\"%a\":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},\"%A\":function(date){return WEEKDAYS[date.tm_wday]},\"%b\":function(date){return MONTHS[date.tm_mon].substring(0,3)},\"%B\":function(date){return MONTHS[date.tm_mon]},\"%C\":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%d\":function(date){return leadingNulls(date.tm_mday,2)},\"%e\":function(date){return leadingSomething(date.tm_mday,2,\" \")},\"%g\":function(date){return getWeekBasedYear(date).toString().substring(2)},\"%G\":function(date){return getWeekBasedYear(date)},\"%H\":function(date){return leadingNulls(date.tm_hour,2)},\"%I\":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%j\":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},\"%m\":function(date){return leadingNulls(date.tm_mon+1,2)},\"%M\":function(date){return leadingNulls(date.tm_min,2)},\"%n\":function(){return\"\\n\"},\"%p\":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return\"AM\"}else{return\"PM\"}},\"%S\":function(date){return leadingNulls(date.tm_sec,2)},\"%t\":function(){return\"\\t\"},\"%u\":function(date){return date.tm_wday||7},\"%U\":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?\"01\":\"00\"},\"%V\":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return\"53\"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return\"01\"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var ASSERTIONS=false;function 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 asmLibraryArg={\"__cxa_allocate_exception\":___cxa_allocate_exception,\"__cxa_atexit\":___cxa_atexit,\"__cxa_begin_catch\":___cxa_begin_catch,\"__cxa_end_catch\":___cxa_end_catch,\"__cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"__cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"__cxa_find_matching_catch_4\":___cxa_find_matching_catch_4,\"__cxa_free_exception\":___cxa_free_exception,\"__cxa_rethrow\":___cxa_rethrow,\"__cxa_throw\":___cxa_throw,\"__cxa_uncaught_exceptions\":___cxa_uncaught_exceptions,\"__map_file\":___map_file,\"__resumeException\":___resumeException,\"__sys_fcntl64\":___sys_fcntl64,\"__sys_ioctl\":___sys_ioctl,\"__sys_munmap\":___sys_munmap,\"__sys_open\":___sys_open,\"_embind_register_bool\":__embind_register_bool,\"_embind_register_class\":__embind_register_class,\"_embind_register_class_function\":__embind_register_class_function,\"_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,\"_emval_as\":__emval_as,\"_emval_call_method\":__emval_call_method,\"_emval_call_void_method\":__emval_call_void_method,\"_emval_decref\":__emval_decref,\"_emval_get_method_caller\":__emval_get_method_caller,\"_emval_get_property\":__emval_get_property,\"_emval_incref\":__emval_incref,\"_emval_new_cstring\":__emval_new_cstring,\"_emval_run_destructors\":__emval_run_destructors,\"_emval_set_property\":__emval_set_property,\"_emval_take_value\":__emval_take_value,\"abort\":_abort,\"clock\":_clock,\"emscripten_get_sbrk_ptr\":_emscripten_get_sbrk_ptr,\"emscripten_longjmp\":_emscripten_longjmp,\"emscripten_memcpy_big\":_emscripten_memcpy_big,\"emscripten_resize_heap\":_emscripten_resize_heap,\"environ_get\":_environ_get,\"environ_sizes_get\":_environ_sizes_get,\"fd_close\":_fd_close,\"fd_fdstat_get\":_fd_fdstat_get,\"fd_read\":_fd_read,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"getTempRet0\":_getTempRet0,\"invoke_di\":invoke_di,\"invoke_dii\":invoke_dii,\"invoke_diid\":invoke_diid,\"invoke_diii\":invoke_diii,\"invoke_diiii\":invoke_diiii,\"invoke_diiiii\":invoke_diiiii,\"invoke_fi\":invoke_fi,\"invoke_fif\":invoke_fif,\"invoke_fii\":invoke_fii,\"invoke_fiii\":invoke_fiii,\"invoke_fiiii\":invoke_fiiii,\"invoke_fiiiiiff\":invoke_fiiiiiff,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iid\":invoke_iid,\"invoke_iiddi\":invoke_iiddi,\"invoke_iiddii\":invoke_iiddii,\"invoke_iiddiii\":invoke_iiddiii,\"invoke_iif\":invoke_iif,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiid\":invoke_iiiiid,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_iiiiiid\":invoke_iiiiiid,\"invoke_iiiiiii\":invoke_iiiiiii,\"invoke_iiiiiiii\":invoke_iiiiiiii,\"invoke_iiiiiiiii\":invoke_iiiiiiiii,\"invoke_iiiiiiiiiddiii\":invoke_iiiiiiiiiddiii,\"invoke_iiiiiiiiii\":invoke_iiiiiiiiii,\"invoke_iiiiiiiiiii\":invoke_iiiiiiiiiii,\"invoke_iiiiiiiiiiii\":invoke_iiiiiiiiiiii,\"invoke_iiiiiiiiiiiii\":invoke_iiiiiiiiiiiii,\"invoke_iij\":invoke_iij,\"invoke_jiiii\":invoke_jiiii,\"invoke_v\":invoke_v,\"invoke_vi\":invoke_vi,\"invoke_vid\":invoke_vid,\"invoke_vidi\":invoke_vidi,\"invoke_vidiiiiiii\":invoke_vidiiiiiii,\"invoke_vif\":invoke_vif,\"invoke_viffffff\":invoke_viffffff,\"invoke_viffi\":invoke_viffi,\"invoke_vifii\":invoke_vifii,\"invoke_vii\":invoke_vii,\"invoke_viid\":invoke_viid,\"invoke_viidddd\":invoke_viidddd,\"invoke_viidi\":invoke_viidi,\"invoke_viidii\":invoke_viidii,\"invoke_viidiiiiiii\":invoke_viidiiiiiii,\"invoke_viif\":invoke_viif,\"invoke_viifii\":invoke_viifii,\"invoke_viii\":invoke_viii,\"invoke_viiid\":invoke_viiid,\"invoke_viiidi\":invoke_viiidi,\"invoke_viiidiiiid\":invoke_viiidiiiid,\"invoke_viiiff\":invoke_viiiff,\"invoke_viiii\":invoke_viiii,\"invoke_viiiidd\":invoke_viiiidd,\"invoke_viiiiffffiii\":invoke_viiiiffffiii,\"invoke_viiiii\":invoke_viiiii,\"invoke_viiiiidi\":invoke_viiiiidi,\"invoke_viiiiii\":invoke_viiiiii,\"invoke_viiiiiid\":invoke_viiiiiid,\"invoke_viiiiiii\":invoke_viiiiiii,\"invoke_viiiiiiii\":invoke_viiiiiiii,\"invoke_viiiiiiiii\":invoke_viiiiiiiii,\"invoke_viiiiiiiiii\":invoke_viiiiiiiiii,\"invoke_viiiiiiiiiii\":invoke_viiiiiiiiiii,\"invoke_viiiiiiiiiiiiiii\":invoke_viiiiiiiiiiiiiii,\"llvm_eh_typeid_for\":_llvm_eh_typeid_for,\"localtime\":_localtime,\"memory\":wasmMemory,\"pthread_mutexattr_destroy\":_pthread_mutexattr_destroy,\"pthread_mutexattr_init\":_pthread_mutexattr_init,\"pthread_mutexattr_settype\":_pthread_mutexattr_settype,\"round\":_round,\"setTempRet0\":_setTempRet0,\"strftime_l\":_strftime_l,\"table\":wasmTable,\"time\":_time};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"__wasm_call_ctors\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var _realloc=Module[\"_realloc\"]=function(){return(_realloc=Module[\"_realloc\"]=Module[\"asm\"][\"realloc\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"__errno_location\"]).apply(null,arguments)};var _testSetjmp=Module[\"_testSetjmp\"]=function(){return(_testSetjmp=Module[\"_testSetjmp\"]=Module[\"asm\"][\"testSetjmp\"]).apply(null,arguments)};var _saveSetjmp=Module[\"_saveSetjmp\"]=function(){return(_saveSetjmp=Module[\"_saveSetjmp\"]=Module[\"asm\"][\"saveSetjmp\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"__getTypeName\"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=function(){return(___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=Module[\"asm\"][\"__embind_register_native_and_builtin_types\"]).apply(null,arguments)};var __get_tzname=Module[\"__get_tzname\"]=function(){return(__get_tzname=Module[\"__get_tzname\"]=Module[\"asm\"][\"_get_tzname\"]).apply(null,arguments)};var __get_daylight=Module[\"__get_daylight\"]=function(){return(__get_daylight=Module[\"__get_daylight\"]=Module[\"asm\"][\"_get_daylight\"]).apply(null,arguments)};var __get_timezone=Module[\"__get_timezone\"]=function(){return(__get_timezone=Module[\"__get_timezone\"]=Module[\"asm\"][\"_get_timezone\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"setThrew\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var __ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=function(){return(__ZSt18uncaught_exceptionv=Module[\"__ZSt18uncaught_exceptionv\"]=Module[\"asm\"][\"_ZSt18uncaught_exceptionv\"]).apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return(___cxa_can_catch=Module[\"___cxa_can_catch\"]=Module[\"asm\"][\"__cxa_can_catch\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"__cxa_is_pointer_type\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"dynCall_v\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"dynCall_vi\"]).apply(null,arguments)};var dynCall_vii=Module[\"dynCall_vii\"]=function(){return(dynCall_vii=Module[\"dynCall_vii\"]=Module[\"asm\"][\"dynCall_vii\"]).apply(null,arguments)};var dynCall_viii=Module[\"dynCall_viii\"]=function(){return(dynCall_viii=Module[\"dynCall_viii\"]=Module[\"asm\"][\"dynCall_viii\"]).apply(null,arguments)};var dynCall_viiii=Module[\"dynCall_viiii\"]=function(){return(dynCall_viiii=Module[\"dynCall_viiii\"]=Module[\"asm\"][\"dynCall_viiii\"]).apply(null,arguments)};var dynCall_viiiii=Module[\"dynCall_viiiii\"]=function(){return(dynCall_viiiii=Module[\"dynCall_viiiii\"]=Module[\"asm\"][\"dynCall_viiiii\"]).apply(null,arguments)};var dynCall_viiiiii=Module[\"dynCall_viiiiii\"]=function(){return(dynCall_viiiiii=Module[\"dynCall_viiiiii\"]=Module[\"asm\"][\"dynCall_viiiiii\"]).apply(null,arguments)};var dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=function(){return(dynCall_viiiiiii=Module[\"dynCall_viiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiii=Module[\"dynCall_viiiiiiii\"]=function(){return(dynCall_viiiiiiii=Module[\"dynCall_viiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module[\"dynCall_viiiiiiiii\"]=function(){return(dynCall_viiiiiiiii=Module[\"dynCall_viiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module[\"dynCall_viiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiii=Module[\"dynCall_viiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiiii=Module[\"dynCall_viiiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiiii=Module[\"dynCall_viiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module[\"dynCall_viiiiiiiiiiiiiii\"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module[\"dynCall_viiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_viiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_viiiiiid=Module[\"dynCall_viiiiiid\"]=function(){return(dynCall_viiiiiid=Module[\"dynCall_viiiiiid\"]=Module[\"asm\"][\"dynCall_viiiiiid\"]).apply(null,arguments)};var dynCall_viiiiidi=Module[\"dynCall_viiiiidi\"]=function(){return(dynCall_viiiiidi=Module[\"dynCall_viiiiidi\"]=Module[\"asm\"][\"dynCall_viiiiidi\"]).apply(null,arguments)};var dynCall_viiiiffffiii=Module[\"dynCall_viiiiffffiii\"]=function(){return(dynCall_viiiiffffiii=Module[\"dynCall_viiiiffffiii\"]=Module[\"asm\"][\"dynCall_viiiiffffiii\"]).apply(null,arguments)};var dynCall_viiiidd=Module[\"dynCall_viiiidd\"]=function(){return(dynCall_viiiidd=Module[\"dynCall_viiiidd\"]=Module[\"asm\"][\"dynCall_viiiidd\"]).apply(null,arguments)};var dynCall_viiiff=Module[\"dynCall_viiiff\"]=function(){return(dynCall_viiiff=Module[\"dynCall_viiiff\"]=Module[\"asm\"][\"dynCall_viiiff\"]).apply(null,arguments)};var dynCall_viiid=Module[\"dynCall_viiid\"]=function(){return(dynCall_viiid=Module[\"dynCall_viiid\"]=Module[\"asm\"][\"dynCall_viiid\"]).apply(null,arguments)};var dynCall_viiidi=Module[\"dynCall_viiidi\"]=function(){return(dynCall_viiidi=Module[\"dynCall_viiidi\"]=Module[\"asm\"][\"dynCall_viiidi\"]).apply(null,arguments)};var dynCall_viiidiiiid=Module[\"dynCall_viiidiiiid\"]=function(){return(dynCall_viiidiiiid=Module[\"dynCall_viiidiiiid\"]=Module[\"asm\"][\"dynCall_viiidiiiid\"]).apply(null,arguments)};var dynCall_viif=Module[\"dynCall_viif\"]=function(){return(dynCall_viif=Module[\"dynCall_viif\"]=Module[\"asm\"][\"dynCall_viif\"]).apply(null,arguments)};var dynCall_viifii=Module[\"dynCall_viifii\"]=function(){return(dynCall_viifii=Module[\"dynCall_viifii\"]=Module[\"asm\"][\"dynCall_viifii\"]).apply(null,arguments)};var dynCall_viid=Module[\"dynCall_viid\"]=function(){return(dynCall_viid=Module[\"dynCall_viid\"]=Module[\"asm\"][\"dynCall_viid\"]).apply(null,arguments)};var dynCall_viidi=Module[\"dynCall_viidi\"]=function(){return(dynCall_viidi=Module[\"dynCall_viidi\"]=Module[\"asm\"][\"dynCall_viidi\"]).apply(null,arguments)};var dynCall_viidii=Module[\"dynCall_viidii\"]=function(){return(dynCall_viidii=Module[\"dynCall_viidii\"]=Module[\"asm\"][\"dynCall_viidii\"]).apply(null,arguments)};var dynCall_viidiiiiiii=Module[\"dynCall_viidiiiiiii\"]=function(){return(dynCall_viidiiiiiii=Module[\"dynCall_viidiiiiiii\"]=Module[\"asm\"][\"dynCall_viidiiiiiii\"]).apply(null,arguments)};var dynCall_viidddd=Module[\"dynCall_viidddd\"]=function(){return(dynCall_viidddd=Module[\"dynCall_viidddd\"]=Module[\"asm\"][\"dynCall_viidddd\"]).apply(null,arguments)};var dynCall_vif=Module[\"dynCall_vif\"]=function(){return(dynCall_vif=Module[\"dynCall_vif\"]=Module[\"asm\"][\"dynCall_vif\"]).apply(null,arguments)};var dynCall_vifii=Module[\"dynCall_vifii\"]=function(){return(dynCall_vifii=Module[\"dynCall_vifii\"]=Module[\"asm\"][\"dynCall_vifii\"]).apply(null,arguments)};var dynCall_viffi=Module[\"dynCall_viffi\"]=function(){return(dynCall_viffi=Module[\"dynCall_viffi\"]=Module[\"asm\"][\"dynCall_viffi\"]).apply(null,arguments)};var dynCall_viffffff=Module[\"dynCall_viffffff\"]=function(){return(dynCall_viffffff=Module[\"dynCall_viffffff\"]=Module[\"asm\"][\"dynCall_viffffff\"]).apply(null,arguments)};var dynCall_vid=Module[\"dynCall_vid\"]=function(){return(dynCall_vid=Module[\"dynCall_vid\"]=Module[\"asm\"][\"dynCall_vid\"]).apply(null,arguments)};var dynCall_vidi=Module[\"dynCall_vidi\"]=function(){return(dynCall_vidi=Module[\"dynCall_vidi\"]=Module[\"asm\"][\"dynCall_vidi\"]).apply(null,arguments)};var dynCall_vidiiiiiii=Module[\"dynCall_vidiiiiiii\"]=function(){return(dynCall_vidiiiiiii=Module[\"dynCall_vidiiiiiii\"]=Module[\"asm\"][\"dynCall_vidiiiiiii\"]).apply(null,arguments)};var dynCall_i=Module[\"dynCall_i\"]=function(){return(dynCall_i=Module[\"dynCall_i\"]=Module[\"asm\"][\"dynCall_i\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"dynCall_ii\"]).apply(null,arguments)};var dynCall_iii=Module[\"dynCall_iii\"]=function(){return(dynCall_iii=Module[\"dynCall_iii\"]=Module[\"asm\"][\"dynCall_iii\"]).apply(null,arguments)};var dynCall_iiii=Module[\"dynCall_iiii\"]=function(){return(dynCall_iiii=Module[\"dynCall_iiii\"]=Module[\"asm\"][\"dynCall_iiii\"]).apply(null,arguments)};var dynCall_iiiii=Module[\"dynCall_iiiii\"]=function(){return(dynCall_iiiii=Module[\"dynCall_iiiii\"]=Module[\"asm\"][\"dynCall_iiiii\"]).apply(null,arguments)};var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=function(){return(dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=Module[\"asm\"][\"dynCall_iiiiii\"]).apply(null,arguments)};var dynCall_iiiiiii=Module[\"dynCall_iiiiiii\"]=function(){return(dynCall_iiiiiii=Module[\"dynCall_iiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiii=Module[\"dynCall_iiiiiiii\"]=function(){return(dynCall_iiiiiiii=Module[\"dynCall_iiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module[\"dynCall_iiiiiiiii\"]=function(){return(dynCall_iiiiiiiii=Module[\"dynCall_iiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiii=Module[\"dynCall_iiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiii=Module[\"dynCall_iiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module[\"dynCall_iiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiii=Module[\"dynCall_iiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiddiii=Module[\"dynCall_iiiiiiiiiddiii\"]=function(){return(dynCall_iiiiiiiiiddiii=Module[\"dynCall_iiiiiiiiiddiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiddiii\"]).apply(null,arguments)};var dynCall_iiiiiid=Module[\"dynCall_iiiiiid\"]=function(){return(dynCall_iiiiiid=Module[\"dynCall_iiiiiid\"]=Module[\"asm\"][\"dynCall_iiiiiid\"]).apply(null,arguments)};var dynCall_iiiiid=Module[\"dynCall_iiiiid\"]=function(){return(dynCall_iiiiid=Module[\"dynCall_iiiiid\"]=Module[\"asm\"][\"dynCall_iiiiid\"]).apply(null,arguments)};var dynCall_iij=Module[\"dynCall_iij\"]=function(){return(dynCall_iij=Module[\"dynCall_iij\"]=Module[\"asm\"][\"dynCall_iij\"]).apply(null,arguments)};var dynCall_iif=Module[\"dynCall_iif\"]=function(){return(dynCall_iif=Module[\"dynCall_iif\"]=Module[\"asm\"][\"dynCall_iif\"]).apply(null,arguments)};var dynCall_iid=Module[\"dynCall_iid\"]=function(){return(dynCall_iid=Module[\"dynCall_iid\"]=Module[\"asm\"][\"dynCall_iid\"]).apply(null,arguments)};var dynCall_iiddi=Module[\"dynCall_iiddi\"]=function(){return(dynCall_iiddi=Module[\"dynCall_iiddi\"]=Module[\"asm\"][\"dynCall_iiddi\"]).apply(null,arguments)};var dynCall_iiddii=Module[\"dynCall_iiddii\"]=function(){return(dynCall_iiddii=Module[\"dynCall_iiddii\"]=Module[\"asm\"][\"dynCall_iiddii\"]).apply(null,arguments)};var dynCall_iiddiii=Module[\"dynCall_iiddiii\"]=function(){return(dynCall_iiddiii=Module[\"dynCall_iiddiii\"]=Module[\"asm\"][\"dynCall_iiddiii\"]).apply(null,arguments)};var dynCall_jiiii=Module[\"dynCall_jiiii\"]=function(){return(dynCall_jiiii=Module[\"dynCall_jiiii\"]=Module[\"asm\"][\"dynCall_jiiii\"]).apply(null,arguments)};var dynCall_fi=Module[\"dynCall_fi\"]=function(){return(dynCall_fi=Module[\"dynCall_fi\"]=Module[\"asm\"][\"dynCall_fi\"]).apply(null,arguments)};var dynCall_fii=Module[\"dynCall_fii\"]=function(){return(dynCall_fii=Module[\"dynCall_fii\"]=Module[\"asm\"][\"dynCall_fii\"]).apply(null,arguments)};var dynCall_fiii=Module[\"dynCall_fiii\"]=function(){return(dynCall_fiii=Module[\"dynCall_fiii\"]=Module[\"asm\"][\"dynCall_fiii\"]).apply(null,arguments)};var dynCall_fiiii=Module[\"dynCall_fiiii\"]=function(){return(dynCall_fiiii=Module[\"dynCall_fiiii\"]=Module[\"asm\"][\"dynCall_fiiii\"]).apply(null,arguments)};var dynCall_fiiiiiff=Module[\"dynCall_fiiiiiff\"]=function(){return(dynCall_fiiiiiff=Module[\"dynCall_fiiiiiff\"]=Module[\"asm\"][\"dynCall_fiiiiiff\"]).apply(null,arguments)};var dynCall_fif=Module[\"dynCall_fif\"]=function(){return(dynCall_fif=Module[\"dynCall_fif\"]=Module[\"asm\"][\"dynCall_fif\"]).apply(null,arguments)};var dynCall_di=Module[\"dynCall_di\"]=function(){return(dynCall_di=Module[\"dynCall_di\"]=Module[\"asm\"][\"dynCall_di\"]).apply(null,arguments)};var dynCall_dii=Module[\"dynCall_dii\"]=function(){return(dynCall_dii=Module[\"dynCall_dii\"]=Module[\"asm\"][\"dynCall_dii\"]).apply(null,arguments)};var dynCall_diii=Module[\"dynCall_diii\"]=function(){return(dynCall_diii=Module[\"dynCall_diii\"]=Module[\"asm\"][\"dynCall_diii\"]).apply(null,arguments)};var dynCall_diiii=Module[\"dynCall_diiii\"]=function(){return(dynCall_diiii=Module[\"dynCall_diiii\"]=Module[\"asm\"][\"dynCall_diiii\"]).apply(null,arguments)};var dynCall_diiiii=Module[\"dynCall_diiiii\"]=function(){return(dynCall_diiiii=Module[\"dynCall_diiiii\"]=Module[\"asm\"][\"dynCall_diiiii\"]).apply(null,arguments)};var dynCall_diid=Module[\"dynCall_diid\"]=function(){return(dynCall_diid=Module[\"dynCall_diid\"]=Module[\"asm\"][\"dynCall_diid\"]).apply(null,arguments)};var __growWasmMemory=Module[\"__growWasmMemory\"]=function(){return(__growWasmMemory=Module[\"__growWasmMemory\"]=Module[\"asm\"][\"__growWasmMemory\"]).apply(null,arguments)};var dynCall_iiidi=Module[\"dynCall_iiidi\"]=function(){return(dynCall_iiidi=Module[\"dynCall_iiidi\"]=Module[\"asm\"][\"dynCall_iiidi\"]).apply(null,arguments)};var dynCall_viijii=Module[\"dynCall_viijii\"]=function(){return(dynCall_viijii=Module[\"dynCall_viijii\"]=Module[\"asm\"][\"dynCall_viijii\"]).apply(null,arguments)};var dynCall_viiddd=Module[\"dynCall_viiddd\"]=function(){return(dynCall_viiddd=Module[\"dynCall_viiddd\"]=Module[\"asm\"][\"dynCall_viiddd\"]).apply(null,arguments)};var dynCall_viiiidi=Module[\"dynCall_viiiidi\"]=function(){return(dynCall_viiiidi=Module[\"dynCall_viiiidi\"]=Module[\"asm\"][\"dynCall_viiiidi\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiiii\"]=function(){return(dynCall_iiiiiiiiiiiiiiiiii=Module[\"dynCall_iiiiiiiiiiiiiiiiii\"]=Module[\"asm\"][\"dynCall_iiiiiiiiiiiiiiiiii\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"dynCall_jiji\"]).apply(null,arguments)};var dynCall_iidiiii=Module[\"dynCall_iidiiii\"]=function(){return(dynCall_iidiiii=Module[\"dynCall_iidiiii\"]=Module[\"asm\"][\"dynCall_iidiiii\"]).apply(null,arguments)};var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=function(){return(dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=Module[\"asm\"][\"dynCall_iiiiij\"]).apply(null,arguments)};var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=function(){return(dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=Module[\"asm\"][\"dynCall_iiiiijj\"]).apply(null,arguments)};var dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=function(){return(dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=Module[\"asm\"][\"dynCall_iiiiiijj\"]).apply(null,arguments)};function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_dii(index,a1,a2){var sp=stackSave();try{return dynCall_dii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{return dynCall_iiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viidi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iid(index,a1,a2){var sp=stackSave();try{return dynCall_iid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iif(index,a1,a2){var sp=stackSave();try{return dynCall_iif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidddd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viidddd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viid(index,a1,a2,a3){var sp=stackSave();try{dynCall_viid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_di(index,a1){var sp=stackSave();try{return dynCall_di(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vid(index,a1,a2){var sp=stackSave();try{dynCall_vid(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiidiiiid(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiidi(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiidd(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiidd(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiidi(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiidi(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiid(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_vidiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiid(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiff(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiff(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiddii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiddiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fii(index,a1,a2){var sp=stackSave();try{return dynCall_fii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiddi(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiddi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viidii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viidii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiid(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiid(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diid(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diid(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){var sp=stackSave();try{return dynCall_iiiiiiiiiddiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vidi(index,a1,a2,a3){var sp=stackSave();try{dynCall_vidi(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_diiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viif(index,a1,a2,a3){var sp=stackSave();try{dynCall_viif(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_fiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fi(index,a1){var sp=stackSave();try{return dynCall_fi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vif(index,a1,a2){var sp=stackSave();try{dynCall_vif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viffi(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viffi(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiffffiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viffffff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viffffff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fif(index,a1,a2){var sp=stackSave();try{return dynCall_fif(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_vifii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_vifii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_fiiiiiff(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viifii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viifii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{dynCall_viiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiid(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{return dynCall_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){var sp=stackSave();try{return dynCall_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!==\"longjmp\")throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}noExitRuntime=true;run();"],"names":["key","Module","moduleOverrides","hasOwnProperty","read_","readAsync","readBinary","setWindowTitle","nodeFS","nodePath","arguments_","thisProgram","quit_","status","toThrow","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","window","importScripts","process","versions","node","scriptDirectory","locateFile","path","require","dirname","__dirname","filename","binary","ret","assert","buffer","Uint8Array","length","replace","slice","module","ex","ExitStatus","abort","read","f","readbuffer","data","scriptArgs","arguments","quit","print","console","log","warn","error","printErr","self","location","href","document","currentScript","src","indexOf","substr","lastIndexOf","url","xhr","XMLHttpRequest","open","send","responseText","responseType","response","onload","onerror","title","out","bind","err","STACK_ALIGN","dynamicAlloc","size","HEAP32","DYNAMICTOP_PTR","getNativeTypeSize","type","bits","Number","warnOnce","text","shown","convertJsFunctionToWasm","func","sig","WebAssembly","Function","typeNames","i","j","d","parameters","results","push","typeSection","sigRet","sigParam","typeCodes","concat","bytes","Instance","e","exports","functionsInTableMap","freeTableIndexes","addFunctionWasm","table","wasmTable","WeakMap","item","get","set","has","pop","grow","RangeError","TypeError","wrapped","removeFunctionWasm","index","delete","funcWrappers","dynCall","ptr","args","apply","call","wasmBinary","noExitRuntime","wasmMemory","tempRet0","setTempRet0","value","getTempRet0","setValue","noSafe","charAt","HEAP8","HEAP16","tempI64","Math_abs","tempDouble","Math_min","Math_floor","Math_ceil","HEAPF32","HEAPF64","Table","initial","maximum","element","ABORT","EXITSTATUS","condition","getCFunc","ident","ccall","returnType","argTypes","opts","toC","string","str","len","stringToUTF8","stackAlloc","array","arr","writeArrayToMemory","cArgs","stack","converter","stackSave","UTF8ToString","Boolean","stackRestore","ALLOC_NONE","UTF8Decoder","TextDecoder","undefined","UTF8ArrayToString","heap","idx","maxBytesToRead","endIdx","endPtr","subarray","decode","u1","ch","u0","u2","String","fromCharCode","HEAPU8","stringToUTF8Array","outIdx","maxBytesToWrite","startIdx","u","charCodeAt","outPtr","lengthBytesUTF8","UTF16Decoder","UTF16ToString","maxIdx","HEAPU16","codeUnit","stringToUTF16","startPtr","numCharsToWrite","lengthBytesUTF16","UTF32ToString","utf32","stringToUTF32","lengthBytesUTF32","allocateUTF8","_malloc","writeAsciiToMemory","dontAddNull","HEAPU32","WASM_PAGE_SIZE","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","STACK_BASE","DYNAMIC_BASE","INITIAL_INITIAL_MEMORY","callRuntimeCallbacks","callbacks","callback","shift","arg","Memory","byteLength","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATPOSTRUN__","runtimeInitialized","runtimeExited","preRun","addOnPreRun","initRuntime","FS","init","initialized","TTY","preMain","ignorePermissions","exitRuntime","postRun","addOnPostRun","cb","unshift","Math","abs","ceil","floor","min","runDependencies","runDependencyWatcher","dependenciesFulfilled","getUniqueRunDependency","id","addRunDependency","removeRunDependency","clearInterval","what","RuntimeError","hasPrefix","prefix","prototype","startsWith","dataURIPrefix","isDataURI","fileURIPrefix","isFileURI","wasmBinaryFile","getBinary","getBinaryPromise","fetch","Promise","resolve","reject","credentials","then","catch","createWasm","info","env","asmLibraryArg","wasi_snapshot_preview1","receiveInstance","instance","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","instantiate","reason","instantiateStreaming","instantiateAsync","demangle","demangleAll","x","y","jsStackTrace","Error","toString","stackTrace","js","___cxa_allocate_exception","_atexit","___cxa_atexit","a0","a1","___wasm_call_ctors","___exception_infos","___exception_caught","___exception_addRef","refcount","___exception_deAdjust","adjusted","adj","___cxa_begin_catch","caught","__ZSt18uncaught_exceptionv","uncaught_exceptions","rethrown","___exception_last","___cxa_free_exception","_free","___exception_decRef","destructor","___cxa_end_catch","_setThrew","___cxa_find_matching_catch_2","thrown","throwntype","typeArray","Array","___cxa_is_pointer_type","___cxa_can_catch","___cxa_find_matching_catch_3","___cxa_find_matching_catch_4","___cxa_rethrow","___cxa_throw","___cxa_uncaught_exceptions","setErrNo","___errno_location","___map_file","pathname","___resumeException","PATH","splitPath","exec","normalizeArray","parts","allowAboveRoot","up","last","splice","normalize","isAbsolute","trailingSlash","split","filter","p","join","result","root","dir","basename","lastSlash","extname","paths","join2","l","r","PATH_FS","resolvedPath","resolvedAbsolute","cwd","relative","from","to","trim","start","end","fromParts","toParts","samePartsLength","outputParts","ttys","shutdown","register","dev","ops","input","registerDevice","stream_ops","stream","tty","rdev","ErrnoError","seekable","close","flush","offset","pos","get_char","bytesRead","timestamp","Date","now","write","put_char","default_tty_ops","Buffer","alloc","readSync","stdin","fd","prompt","readline","intArrayFromString","val","default_tty1_ops","MEMFS","ops_table","mount","createNode","parent","name","mode","isBlkdev","isFIFO","getattr","node_ops","setattr","lookup","mknod","rename","unlink","rmdir","readdir","symlink","llseek","file","allocate","mmap","msync","link","readlink","chrdev","chrdev_stream_ops","isDir","contents","isFile","usedBytes","isLink","isChrdev","getFileDataAsRegularArray","getFileDataAsTypedArray","expandFileStorage","newCapacity","prevCapacity","max","oldContents","resizeFileStorage","newSize","attr","ino","nlink","uid","gid","atime","mtime","ctime","blksize","blocks","genericErrors","old_node","new_dir","new_name","new_node","lookupNode","entries","newname","oldpath","position","canOwn","whence","address","prot","flags","allocated","byteOffset","mmapFlags","mounts","devices","streams","nextInode","nameTable","currentPath","trackingDelegate","tracking","openFlags","READ","WRITE","filesystems","syncFSRequests","handleFSError","errno","lookupPath","defaults","follow_mount","recurse_count","current","current_path","islast","isMountpoint","mounted","follow","count","getPath","isRoot","mountpoint","hashName","parentid","hash","hashAddNode","name_next","hashRemoveNode","errCode","mayLookup","nodeName","FSNode","destroyNode","isSocket","flagModes","rs","r+","w","wx","xw","w+","wx+","xw+","a","ax","xa","a+","ax+","xa+","modeStringToFlags","flagsToPermissionString","flag","perms","nodePermissions","mayCreate","mayDelete","isdir","mayOpen","MAX_OPEN_FDS","nextfd","fd_start","fd_end","getStream","createStream","FSStream","object","this","isRead","isWrite","isAppend","newStream","closeStream","device","getDevice","major","minor","makedev","ma","mi","getMounts","check","m","syncfs","populate","completed","doCallback","done","errored","forEach","pseudo","mountRoot","unmount","Object","keys","next","create","mkdir","mkdirTree","dirs","mkdev","newpath","old_path","new_path","old_dir","old_dirname","new_dirname","old_name","message","stat","dontFollow","lstat","chmod","lchmod","fchmod","chown","lchown","fchown","truncate","ftruncate","utime","created","trackingFlags","ungotten","readFiles","isClosed","getdents","seeking","bytesWritten","munmap","ioctl","cmd","readFile","encoding","writeFile","actualNumBytes","ArrayBuffer","isView","chdir","createDefaultDirectories","createDefaultDevices","crypto","randomBuffer","random_device","getRandomValues","crypto_module","createDevice","createSpecialDirectories","createStandardStreams","ensureErrnoError","setErrno","constructor","code","staticInit","fflush","getMode","canRead","canWrite","joinPath","forceRelative","absolutePath","base","standardizePath","findObject","dontResolveLastLink","analyzePath","exists","parentExists","parentPath","parentObject","createFolder","createPath","reverse","part","createFile","properties","createDataFile","createLink","target","forceLoadFile","obj","isDevice","isFolder","success","createLazyFile","LazyUint8Array","lengthKnown","chunks","chunkOffset","chunkSize","chunkNum","getter","setDataGetter","cacheLength","datalength","getResponseHeader","hasByteServing","header","usesGzip","lazyArray","setRequestHeader","overrideMimeType","doXHR","_length","_chunkSize","defineProperties","fn","createPreloadedFile","dontCreateFile","preFinish","Browser","fullname","dep","processData","byteArray","finish","handled","plugin","asyncLoad","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","DB_NAME","DB_VERSION","DB_STORE_NAME","saveFilesToDB","openRequest","onupgradeneeded","createObjectStore","onsuccess","transaction","files","objectStore","ok","fail","total","putRequest","put","loadFilesFromDB","db","getRequest","SYSCALLS","mappings","DEFAULT_POLLMASK","umask","calculateAt","dirfd","dirstream","doStat","getTime","doMsync","addr","doMkdir","doMknod","doReadlink","bufsize","endChar","doAccess","amode","doDup","suggestFD","suggest","doReadv","iov","iovcnt","curr","doWritev","varargs","getStr","getStreamFromFD","get64","low","high","___sys_fcntl64","___sys_ioctl","op","argp","syscallMunmap","malloc","___sys_munmap","___sys_open","getShiftFromSize","embind_init_charCodes","codes","embind_charCodes","readLatin1String","c","awaitingDependencies","registeredTypes","typeDependencies","char_0","char_9","makeLegalFunctionName","createNamedFunction","body","extendError","baseErrorType","errorName","errorClass","BindingError","throwBindingError","InternalError","throwInternalError","whenDependentTypesAreResolved","myTypes","dependentTypes","getTypeConverters","onComplete","typeConverters","myTypeConverters","registerType","unregisteredTypes","registered","dt","rawType","registeredInstance","options","ignoreDuplicateRegistrations","__embind_register_bool","trueValue","falseValue","fromWireType","wt","toWireType","destructors","o","argPackAdvance","readValueFromPointer","pointer","destructorFunction","ClassHandle_isAliasOf","other","ClassHandle","leftClass","$$","ptrType","registeredClass","left","rightClass","right","baseClass","upcast","shallowCopyInternalPointer","deleteScheduled","preservePointerOnDelete","smartPtr","smartPtrType","throwInstanceAlreadyDeleted","finalizationGroup","detachFinalizer","handle","runDestructor","rawDestructor","releaseClassHandle","attachFinalizer","FinalizationGroup","iter","unregister","ClassHandle_clone","clone","getPrototypeOf","ClassHandle_delete","ClassHandle_isDeleted","delayFunction","deletionQueue","flushPendingDeletes","ClassHandle_deleteLater","init_ClassHandle","registeredPointers","ensureOverloadTable","proto","methodName","humanName","prevFunc","overloadTable","argCount","exposePublicSymbol","numArguments","RegisteredClass","instancePrototype","getActualType","downcast","pureVirtualFunctions","upcastPointer","ptrClass","desiredClass","constNoSmartPtrRawPointerToWireType","isReference","_embind_repr","handleClass","genericPointerToWireType","isSmartPointer","rawConstructor","isConst","clonedHandle","sharingPolicy","rawShare","__emval_register","nonConstNoSmartPtrRawPointerToWireType","simpleReadValueFromPointer","RegisteredPointer_getPointee","rawGetPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","downcastPointer","rv","getInheritedInstanceCount","registeredInstances","getLiveInheritedInstances","k","setDelayFunction","init_embind","getBasestPointer","class_","getInheritedInstance","makeClassHandle","record","RegisteredPointer_fromWireType","rawPointer","getPointee","makeDefaultHandle","pointeeType","actualType","registeredPointerRecord","toType","constPointerType","pointerType","dp","init_RegisteredPointer","RegisteredPointer","replacePublicSymbol","embind__requireFunction","signature","rawFunction","fp","makeDynCaller","UnboundTypeError","getTypeName","___getTypeName","throwUnboundTypeError","types","unboundTypes","seen","visit","map","__embind_register_class","rawPointerType","rawConstPointerType","baseClassRawType","getActualTypeSignature","upcastSignature","downcastSignature","destructorSignature","legalFunctionName","basePrototype","constructor_body","referenceConverter","pointerConverter","constPointerConverter","new_","argumentList","dummy","runDestructors","del","craftInvokerFunction","classType","cppInvokerFunc","cppTargetFunc","isClassMethodFunc","needsDestructorStack","returns","argsList","argsListWired","invokerFnBody","dtorStack","args1","args2","paramName","heap32VectorToArray","firstElement","__embind_register_class_function","rawClassType","rawArgTypesAddr","invokerSignature","rawInvoker","context","isPureVirtual","rawArgTypes","unboundTypesHandler","method","className","memberFunction","emval_free_list","emval_handle_array","__emval_decref","count_emval_handles","get_first_emval","init_emval","__embind_register_emval","v","t","floatReadValueFromPointer","__embind_register_float","__embind_register_function","invokerArgsArray","integerReadValueFromPointer","signed","__embind_register_integer","primitiveType","minRange","maxRange","bitshift","isUnsignedType","__embind_register_memory_view","dataTypeIndex","TA","decodeMemoryView","__embind_register_std_string","stdStringIsUTF8","decodeStartPtr","stringSegment","currentBytePtr","valueIsOfTypeString","Uint8ClampedArray","charCode","__embind_register_std_wstring","charSize","decodeString","encodeString","getHeap","lengthBytesUTF","HEAP","__embind_register_void","isVoid","requireHandle","requireRegisteredType","impl","__emval_as","destructorsRef","rd","__emval_allocateDestructors","emval_symbols","getStringOrSymbol","symbol","emval_methodCallers","__emval_call_method","caller","__emval_call_void_method","__emval_addMethodCaller","__emval_lookupTypes","__emval_get_method_caller","retType","signatureName","params","functionBody","__emval_get_property","__emval_incref","__emval_new_cstring","__emval_run_destructors","__emval_set_property","__emval_take_value","argv","_abort","_clock","_emscripten_get_sbrk_ptr","_longjmp","_emscripten_longjmp","_emscripten_memcpy_big","dest","num","copyWithin","abortOnCannotGrowMemory","requestedSize","_emscripten_resize_heap","ENV","__getExecutableName","getEnvStrings","strings","USER","LOGNAME","PWD","HOME","LANG","navigator","languages","_","_environ_get","__environ","environ_buf","bufSize","_environ_sizes_get","penviron_count","penviron_buf_size","_fd_close","_fd_fdstat_get","pbuf","_fd_read","pnum","_fd_seek","offset_low","offset_high","newOffset","DOUBLE_LIMIT","_fd_write","_getTempRet0","_llvm_eh_typeid_for","___tm_current","___tm_timezone","_tzset","winter","summer","winterNamePtr","summerNamePtr","extractZone","date","match","toTimeString","called","__get_timezone","getTimezoneOffset","currentYear","getFullYear","__get_daylight","winterName","summerName","__get_tzname","_localtime_r","time","tmPtr","getSeconds","getMinutes","getHours","getDate","getMonth","getDay","yday","summerOffset","winterOffset","dst","zonePtr","_localtime","_pthread_mutexattr_destroy","_pthread_mutexattr_init","_pthread_mutexattr_settype","_round","_setTempRet0","$i","__isLeapYear","year","__arraySum","sum","__MONTH_DAYS_LEAP","__MONTH_DAYS_REGULAR","__addDays","days","newDate","leap","currentMonth","daysInCurrentMonth","setDate","setMonth","setFullYear","_strftime","s","maxsize","format","tm","tm_zone","tm_sec","tm_min","tm_hour","tm_mday","tm_mon","tm_year","tm_wday","tm_yday","tm_isdst","tm_gmtoff","pattern","EXPANSION_RULES_1","%c","%D","%F","%h","%r","%R","%T","%x","%X","%Ec","%EC","%Ex","%EX","%Ey","%EY","%Od","%Oe","%OH","%OI","%Om","%OM","%OS","%Ou","%OU","%OV","%Ow","%OW","%Oy","rule","RegExp","WEEKDAYS","MONTHS","leadingSomething","digits","character","leadingNulls","compareByDay","date1","date2","sgn","compare","getFirstWeekStartDate","janFourth","getWeekBasedYear","thisDate","janFourthThisYear","janFourthNextYear","firstWeekStartThisYear","firstWeekStartNextYear","EXPANSION_RULES_2","%a","substring","%A","%b","%B","%C","%d","%e","%g","%G","%H","%I","twelveHour","%j","%m","%M","%n","%p","%S","%t","%u","%U","janFirst","firstSunday","endDate","februaryFirstUntilEndMonth","%V","daysDifference","%w","%W","firstMonday","%y","%Y","%z","off","ahead","%Z","%%","_strftime_l","_time","readMode","writeMode","ASSERTIONS","stringy","u8array","numBytesWritten","calledRun","__cxa_allocate_exception","__cxa_atexit","__cxa_begin_catch","__cxa_end_catch","__cxa_find_matching_catch_2","__cxa_find_matching_catch_3","__cxa_find_matching_catch_4","__cxa_free_exception","__cxa_rethrow","__cxa_throw","__cxa_uncaught_exceptions","__map_file","__resumeException","__sys_fcntl64","__sys_ioctl","__sys_munmap","__sys_open","_embind_register_bool","_embind_register_class","_embind_register_class_function","_embind_register_emval","_embind_register_float","_embind_register_function","_embind_register_integer","_embind_register_memory_view","_embind_register_std_string","_embind_register_std_wstring","_embind_register_void","_emval_as","_emval_call_method","_emval_call_void_method","_emval_decref","_emval_get_method_caller","_emval_get_property","_emval_incref","_emval_new_cstring","_emval_run_destructors","_emval_set_property","_emval_take_value","clock","emscripten_get_sbrk_ptr","emscripten_longjmp","emscripten_memcpy_big","emscripten_resize_heap","environ_get","environ_sizes_get","fd_close","fd_fdstat_get","fd_read","fd_seek","fd_write","invoke_di","invoke_dii","invoke_diid","invoke_diii","invoke_diiii","invoke_diiiii","invoke_fi","invoke_fif","invoke_fii","invoke_fiii","invoke_fiiii","invoke_fiiiiiff","invoke_i","invoke_ii","invoke_iid","invoke_iiddi","invoke_iiddii","invoke_iiddiii","invoke_iif","invoke_iii","invoke_iiii","invoke_iiiii","invoke_iiiiid","invoke_iiiiii","invoke_iiiiiid","invoke_iiiiiii","invoke_iiiiiiii","invoke_iiiiiiiii","invoke_iiiiiiiiiddiii","invoke_iiiiiiiiii","invoke_iiiiiiiiiii","invoke_iiiiiiiiiiii","invoke_iiiiiiiiiiiii","invoke_iij","invoke_jiiii","invoke_v","invoke_vi","invoke_vid","invoke_vidi","invoke_vidiiiiiii","invoke_vif","invoke_viffffff","invoke_viffi","invoke_vifii","invoke_vii","invoke_viid","invoke_viidddd","invoke_viidi","invoke_viidii","invoke_viidiiiiiii","invoke_viif","invoke_viifii","invoke_viii","invoke_viiid","invoke_viiidi","invoke_viiidiiiid","invoke_viiiff","invoke_viiii","invoke_viiiidd","invoke_viiiiffffiii","invoke_viiiii","invoke_viiiiidi","invoke_viiiiii","invoke_viiiiiid","invoke_viiiiiii","invoke_viiiiiiii","invoke_viiiiiiiii","invoke_viiiiiiiiii","invoke_viiiiiiiiiii","invoke_viiiiiiiiiiiiiii","llvm_eh_typeid_for","localtime","memory","pthread_mutexattr_destroy","pthread_mutexattr_init","pthread_mutexattr_settype","round","strftime_l","asm","_realloc","_testSetjmp","_saveSetjmp","___embind_register_native_and_builtin_types","dynCall_v","dynCall_vi","dynCall_vii","dynCall_viii","dynCall_viiii","dynCall_viiiii","dynCall_viiiiii","dynCall_viiiiiii","dynCall_viiiiiiii","dynCall_viiiiiiiii","dynCall_viiiiiiiiii","dynCall_viiiiiiiiiii","dynCall_viiiiiiiiiiiiiii","dynCall_viiiiiid","dynCall_viiiiidi","dynCall_viiiiffffiii","dynCall_viiiidd","dynCall_viiiff","dynCall_viiid","dynCall_viiidi","dynCall_viiidiiiid","dynCall_viif","dynCall_viifii","dynCall_viid","dynCall_viidi","dynCall_viidii","dynCall_viidiiiiiii","dynCall_viidddd","dynCall_vif","dynCall_vifii","dynCall_viffi","dynCall_viffffff","dynCall_vid","dynCall_vidi","dynCall_vidiiiiiii","dynCall_i","dynCall_ii","dynCall_iii","dynCall_iiii","dynCall_iiiii","dynCall_iiiiii","dynCall_iiiiiii","dynCall_iiiiiiii","dynCall_iiiiiiiii","dynCall_iiiiiiiiii","dynCall_iiiiiiiiiii","dynCall_iiiiiiiiiiii","dynCall_iiiiiiiiiiiii","dynCall_iiiiiiiiiddiii","dynCall_iiiiiid","dynCall_iiiiid","dynCall_iij","dynCall_iif","dynCall_iid","dynCall_iiddi","dynCall_iiddii","dynCall_iiddiii","dynCall_jiiii","dynCall_fi","dynCall_fii","dynCall_fiii","dynCall_fiiii","dynCall_fiiiiiff","dynCall_fif","dynCall_di","dynCall_dii","dynCall_diii","dynCall_diiii","dynCall_diiiii","dynCall_diid","__growWasmMemory","dynCall_iiidi","dynCall_viijii","dynCall_viiddd","dynCall_viiiidi","dynCall_iiiiiiiiiiiiiiiii","dynCall_iiiiiiiiiiiiiiiiii","dynCall_jiji","dynCall_iidiiii","dynCall_iiiiij","dynCall_iiiiijj","dynCall_iiiiiijj","a2","a3","a4","sp","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","run","doRun","setTimeout","runCaller"],"mappings":"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"} \ No newline at end of file diff --git a/docs/js/RDKit_minimal.wasm b/docs/js/RDKit_minimal.wasm new file mode 100644 index 0000000..8a5a73b Binary files /dev/null and b/docs/js/RDKit_minimal.wasm differ diff --git a/docs/js/main.js b/docs/js/main.js new file mode 100644 index 0000000..3ed03b5 --- /dev/null +++ b/docs/js/main.js @@ -0,0 +1,8910 @@ +// import Popper +/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.16.1 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Popper = factory()); +}(this, (function () { 'use strict'; + +var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined'; + +var timeoutDuration = function () { + var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; + for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { + if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { + return 1; + } + } + return 0; +}(); + +function microtaskDebounce(fn) { + var called = false; + return function () { + if (called) { + return; + } + called = true; + window.Promise.resolve().then(function () { + called = false; + fn(); + }); + }; +} + +function taskDebounce(fn) { + var scheduled = false; + return function () { + if (!scheduled) { + scheduled = true; + setTimeout(function () { + scheduled = false; + fn(); + }, timeoutDuration); + } + }; +} + +var supportsMicroTasks = isBrowser && window.Promise; + +/** +* Create a debounced version of a method, that's asynchronously deferred +* but called in the minimum time possible. +* +* @method +* @memberof Popper.Utils +* @argument {Function} fn +* @returns {Function} +*/ +var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; + +/** + * Check if the given variable is a function + * @method + * @memberof Popper.Utils + * @argument {Any} functionToCheck - variable to check + * @returns {Boolean} answer to: is a function? + */ +function isFunction(functionToCheck) { + var getType = {}; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; +} + +/** + * Get CSS computed property of the given element + * @method + * @memberof Popper.Utils + * @argument {Eement} element + * @argument {String} property + */ +function getStyleComputedProperty(element, property) { + if (element.nodeType !== 1) { + return []; + } + // NOTE: 1 DOM access here + var window = element.ownerDocument.defaultView; + var css = window.getComputedStyle(element, null); + return property ? css[property] : css; +} + +/** + * Returns the parentNode or the host of the element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} parent + */ +function getParentNode(element) { + if (element.nodeName === 'HTML') { + return element; + } + return element.parentNode || element.host; +} + +/** + * Returns the scrolling parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} scroll parent + */ +function getScrollParent(element) { + // Return body, `getScroll` will take care to get the correct `scrollTop` from it + if (!element) { + return document.body; + } + + switch (element.nodeName) { + case 'HTML': + case 'BODY': + return element.ownerDocument.body; + case '#document': + return element.body; + } + + // Firefox want us to check `-x` and `-y` variations as well + + var _getStyleComputedProp = getStyleComputedProperty(element), + overflow = _getStyleComputedProp.overflow, + overflowX = _getStyleComputedProp.overflowX, + overflowY = _getStyleComputedProp.overflowY; + + if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { + return element; + } + + return getScrollParent(getParentNode(element)); +} + +/** + * Returns the reference node of the reference object, or the reference object itself. + * @method + * @memberof Popper.Utils + * @param {Element|Object} reference - the reference element (the popper will be relative to this) + * @returns {Element} parent + */ +function getReferenceNode(reference) { + return reference && reference.referenceNode ? reference.referenceNode : reference; +} + +var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); +var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); + +/** + * Determines if the browser is Internet Explorer + * @method + * @memberof Popper.Utils + * @param {Number} version to check + * @returns {Boolean} isIE + */ +function isIE(version) { + if (version === 11) { + return isIE11; + } + if (version === 10) { + return isIE10; + } + return isIE11 || isIE10; +} + +/** + * Returns the offset parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} offset parent + */ +function getOffsetParent(element) { + if (!element) { + return document.documentElement; + } + + var noOffsetParent = isIE(10) ? document.body : null; + + // NOTE: 1 DOM access here + var offsetParent = element.offsetParent || null; + // Skip hidden elements which don't have an offsetParent + while (offsetParent === noOffsetParent && element.nextElementSibling) { + offsetParent = (element = element.nextElementSibling).offsetParent; + } + + var nodeName = offsetParent && offsetParent.nodeName; + + if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { + return element ? element.ownerDocument.documentElement : document.documentElement; + } + + // .offsetParent will return the closest TH, TD or TABLE in case + // no offsetParent is present, I hate this job... + if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { + return getOffsetParent(offsetParent); + } + + return offsetParent; +} + +function isOffsetContainer(element) { + var nodeName = element.nodeName; + + if (nodeName === 'BODY') { + return false; + } + return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; +} + +/** + * Finds the root node (document, shadowDOM root) of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} node + * @returns {Element} root node + */ +function getRoot(node) { + if (node.parentNode !== null) { + return getRoot(node.parentNode); + } + + return node; +} + +/** + * Finds the offset parent common to the two provided nodes + * @method + * @memberof Popper.Utils + * @argument {Element} element1 + * @argument {Element} element2 + * @returns {Element} common offset parent + */ +function findCommonOffsetParent(element1, element2) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { + return document.documentElement; + } + + // Here we make sure to give as "start" the element that comes first in the DOM + var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; + var start = order ? element1 : element2; + var end = order ? element2 : element1; + + // Get common ancestor container + var range = document.createRange(); + range.setStart(start, 0); + range.setEnd(end, 0); + var commonAncestorContainer = range.commonAncestorContainer; + + // Both nodes are inside #document + + if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { + if (isOffsetContainer(commonAncestorContainer)) { + return commonAncestorContainer; + } + + return getOffsetParent(commonAncestorContainer); + } + + // one of the nodes is inside shadowDOM, find which one + var element1root = getRoot(element1); + if (element1root.host) { + return findCommonOffsetParent(element1root.host, element2); + } else { + return findCommonOffsetParent(element1, getRoot(element2).host); + } +} + +/** + * Gets the scroll value of the given element in the given side (top and left) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {String} side `top` or `left` + * @returns {number} amount of scrolled pixels + */ +function getScroll(element) { + var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; + + var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; + var nodeName = element.nodeName; + + if (nodeName === 'BODY' || nodeName === 'HTML') { + var html = element.ownerDocument.documentElement; + var scrollingElement = element.ownerDocument.scrollingElement || html; + return scrollingElement[upperSide]; + } + + return element[upperSide]; +} + +/* + * Sum or subtract the element scroll values (left and top) from a given rect object + * @method + * @memberof Popper.Utils + * @param {Object} rect - Rect object you want to change + * @param {HTMLElement} element - The element from the function reads the scroll values + * @param {Boolean} subtract - set to true if you want to subtract the scroll values + * @return {Object} rect - The modifier rect object + */ +function includeScroll(rect, element) { + var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + var modifier = subtract ? -1 : 1; + rect.top += scrollTop * modifier; + rect.bottom += scrollTop * modifier; + rect.left += scrollLeft * modifier; + rect.right += scrollLeft * modifier; + return rect; +} + +/* + * Helper to detect borders of a given element + * @method + * @memberof Popper.Utils + * @param {CSSStyleDeclaration} styles + * Result of `getStyleComputedProperty` on the given element + * @param {String} axis - `x` or `y` + * @return {number} borders - The borders size of the given axis + */ + +function getBordersSize(styles, axis) { + var sideA = axis === 'x' ? 'Left' : 'Top'; + var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; + + return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']); +} + +function getSize(axis, body, html, computedStyle) { + return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0); +} + +function getWindowSizes(document) { + var body = document.body; + var html = document.documentElement; + var computedStyle = isIE(10) && getComputedStyle(html); + + return { + height: getSize('Height', body, html, computedStyle), + width: getSize('Width', body, html, computedStyle) + }; +} + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + + + + + +var defineProperty = function (obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + +/** + * Given element offsets, generate an output similar to getBoundingClientRect + * @method + * @memberof Popper.Utils + * @argument {Object} offsets + * @returns {Object} ClientRect like output + */ +function getClientRect(offsets) { + return _extends({}, offsets, { + right: offsets.left + offsets.width, + bottom: offsets.top + offsets.height + }); +} + +/** + * Get bounding client rect of given element + * @method + * @memberof Popper.Utils + * @param {HTMLElement} element + * @return {Object} client rect + */ +function getBoundingClientRect(element) { + var rect = {}; + + // IE10 10 FIX: Please, don't ask, the element isn't + // considered in DOM in some circumstances... + // This isn't reproducible in IE10 compatibility mode of IE11 + try { + if (isIE(10)) { + rect = element.getBoundingClientRect(); + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + rect.top += scrollTop; + rect.left += scrollLeft; + rect.bottom += scrollTop; + rect.right += scrollLeft; + } else { + rect = element.getBoundingClientRect(); + } + } catch (e) {} + + var result = { + left: rect.left, + top: rect.top, + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + + // subtract scrollbar size from sizes + var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; + var width = sizes.width || element.clientWidth || result.width; + var height = sizes.height || element.clientHeight || result.height; + + var horizScrollbar = element.offsetWidth - width; + var vertScrollbar = element.offsetHeight - height; + + // if an hypothetical scrollbar is detected, we must be sure it's not a `border` + // we make this check conditional for performance reasons + if (horizScrollbar || vertScrollbar) { + var styles = getStyleComputedProperty(element); + horizScrollbar -= getBordersSize(styles, 'x'); + vertScrollbar -= getBordersSize(styles, 'y'); + + result.width -= horizScrollbar; + result.height -= vertScrollbar; + } + + return getClientRect(result); +} + +function getOffsetRectRelativeToArbitraryNode(children, parent) { + var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var isIE10 = isIE(10); + var isHTML = parent.nodeName === 'HTML'; + var childrenRect = getBoundingClientRect(children); + var parentRect = getBoundingClientRect(parent); + var scrollParent = getScrollParent(children); + + var styles = getStyleComputedProperty(parent); + var borderTopWidth = parseFloat(styles.borderTopWidth); + var borderLeftWidth = parseFloat(styles.borderLeftWidth); + + // In cases where the parent is fixed, we must ignore negative scroll in offset calc + if (fixedPosition && isHTML) { + parentRect.top = Math.max(parentRect.top, 0); + parentRect.left = Math.max(parentRect.left, 0); + } + var offsets = getClientRect({ + top: childrenRect.top - parentRect.top - borderTopWidth, + left: childrenRect.left - parentRect.left - borderLeftWidth, + width: childrenRect.width, + height: childrenRect.height + }); + offsets.marginTop = 0; + offsets.marginLeft = 0; + + // Subtract margins of documentElement in case it's being used as parent + // we do this only on HTML because it's the only element that behaves + // differently when margins are applied to it. The margins are included in + // the box of the documentElement, in the other cases not. + if (!isIE10 && isHTML) { + var marginTop = parseFloat(styles.marginTop); + var marginLeft = parseFloat(styles.marginLeft); + + offsets.top -= borderTopWidth - marginTop; + offsets.bottom -= borderTopWidth - marginTop; + offsets.left -= borderLeftWidth - marginLeft; + offsets.right -= borderLeftWidth - marginLeft; + + // Attach marginTop and marginLeft because in some circumstances we may need them + offsets.marginTop = marginTop; + offsets.marginLeft = marginLeft; + } + + if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { + offsets = includeScroll(offsets, parent); + } + + return offsets; +} + +function getViewportOffsetRectRelativeToArtbitraryNode(element) { + var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var html = element.ownerDocument.documentElement; + var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); + var width = Math.max(html.clientWidth, window.innerWidth || 0); + var height = Math.max(html.clientHeight, window.innerHeight || 0); + + var scrollTop = !excludeScroll ? getScroll(html) : 0; + var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; + + var offset = { + top: scrollTop - relativeOffset.top + relativeOffset.marginTop, + left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, + width: width, + height: height + }; + + return getClientRect(offset); +} + +/** + * Check if the given element is fixed or is inside a fixed parent + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {Element} customContainer + * @returns {Boolean} answer to "isFixed?" + */ +function isFixed(element) { + var nodeName = element.nodeName; + if (nodeName === 'BODY' || nodeName === 'HTML') { + return false; + } + if (getStyleComputedProperty(element, 'position') === 'fixed') { + return true; + } + var parentNode = getParentNode(element); + if (!parentNode) { + return false; + } + return isFixed(parentNode); +} + +/** + * Finds the first parent of an element that has a transformed property defined + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} first transformed parent or documentElement + */ + +function getFixedPositionOffsetParent(element) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element || !element.parentElement || isIE()) { + return document.documentElement; + } + var el = element.parentElement; + while (el && getStyleComputedProperty(el, 'transform') === 'none') { + el = el.parentElement; + } + return el || document.documentElement; +} + +/** + * Computed the boundaries limits and return them + * @method + * @memberof Popper.Utils + * @param {HTMLElement} popper + * @param {HTMLElement} reference + * @param {number} padding + * @param {HTMLElement} boundariesElement - Element used to define the boundaries + * @param {Boolean} fixedPosition - Is in fixed position mode + * @returns {Object} Coordinates of the boundaries + */ +function getBoundaries(popper, reference, padding, boundariesElement) { + var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + + // NOTE: 1 DOM access here + + var boundaries = { top: 0, left: 0 }; + var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); + + // Handle viewport case + if (boundariesElement === 'viewport') { + boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); + } else { + // Handle other cases based on DOM element used as boundaries + var boundariesNode = void 0; + if (boundariesElement === 'scrollParent') { + boundariesNode = getScrollParent(getParentNode(reference)); + if (boundariesNode.nodeName === 'BODY') { + boundariesNode = popper.ownerDocument.documentElement; + } + } else if (boundariesElement === 'window') { + boundariesNode = popper.ownerDocument.documentElement; + } else { + boundariesNode = boundariesElement; + } + + var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); + + // In case of HTML, we need a different computation + if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { + var _getWindowSizes = getWindowSizes(popper.ownerDocument), + height = _getWindowSizes.height, + width = _getWindowSizes.width; + + boundaries.top += offsets.top - offsets.marginTop; + boundaries.bottom = height + offsets.top; + boundaries.left += offsets.left - offsets.marginLeft; + boundaries.right = width + offsets.left; + } else { + // for all the other DOM elements, this one is good + boundaries = offsets; + } + } + + // Add paddings + padding = padding || 0; + var isPaddingNumber = typeof padding === 'number'; + boundaries.left += isPaddingNumber ? padding : padding.left || 0; + boundaries.top += isPaddingNumber ? padding : padding.top || 0; + boundaries.right -= isPaddingNumber ? padding : padding.right || 0; + boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; + + return boundaries; +} + +function getArea(_ref) { + var width = _ref.width, + height = _ref.height; + + return width * height; +} + +/** + * Utility used to transform the `auto` placement to the placement with more + * available space. + * @method + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { + var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + + if (placement.indexOf('auto') === -1) { + return placement; + } + + var boundaries = getBoundaries(popper, reference, padding, boundariesElement); + + var rects = { + top: { + width: boundaries.width, + height: refRect.top - boundaries.top + }, + right: { + width: boundaries.right - refRect.right, + height: boundaries.height + }, + bottom: { + width: boundaries.width, + height: boundaries.bottom - refRect.bottom + }, + left: { + width: refRect.left - boundaries.left, + height: boundaries.height + } + }; + + var sortedAreas = Object.keys(rects).map(function (key) { + return _extends({ + key: key + }, rects[key], { + area: getArea(rects[key]) + }); + }).sort(function (a, b) { + return b.area - a.area; + }); + + var filteredAreas = sortedAreas.filter(function (_ref2) { + var width = _ref2.width, + height = _ref2.height; + return width >= popper.clientWidth && height >= popper.clientHeight; + }); + + var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + + var variation = placement.split('-')[1]; + + return computedPlacement + (variation ? '-' + variation : ''); +} + +/** + * Get offsets to the reference element + * @method + * @memberof Popper.Utils + * @param {Object} state + * @param {Element} popper - the popper element + * @param {Element} reference - the reference element (the popper will be relative to this) + * @param {Element} fixedPosition - is in fixed position mode + * @returns {Object} An object containing the offsets which will be applied to the popper + */ +function getReferenceOffsets(state, popper, reference) { + var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); + return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); +} + +/** + * Get the outer sizes of the given element (offset size + margins) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Object} object containing width and height properties + */ +function getOuterSizes(element) { + var window = element.ownerDocument.defaultView; + var styles = window.getComputedStyle(element); + var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); + var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); + var result = { + width: element.offsetWidth + y, + height: element.offsetHeight + x + }; + return result; +} + +/** + * Get the opposite placement of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement + * @returns {String} flipped placement + */ +function getOppositePlacement(placement) { + var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash[matched]; + }); +} + +/** + * Get offsets to the popper + * @method + * @memberof Popper.Utils + * @param {Object} position - CSS position the Popper will get applied + * @param {HTMLElement} popper - the popper element + * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) + * @param {String} placement - one of the valid placement options + * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper + */ +function getPopperOffsets(popper, referenceOffsets, placement) { + placement = placement.split('-')[0]; + + // Get popper node sizes + var popperRect = getOuterSizes(popper); + + // Add position, width and height to our offsets object + var popperOffsets = { + width: popperRect.width, + height: popperRect.height + }; + + // depending by the popper placement we have to compute its offsets slightly differently + var isHoriz = ['right', 'left'].indexOf(placement) !== -1; + var mainSide = isHoriz ? 'top' : 'left'; + var secondarySide = isHoriz ? 'left' : 'top'; + var measurement = isHoriz ? 'height' : 'width'; + var secondaryMeasurement = !isHoriz ? 'height' : 'width'; + + popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; + if (placement === secondarySide) { + popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; + } else { + popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; + } + + return popperOffsets; +} + +/** + * Mimics the `find` method of Array + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function find(arr, check) { + // use native find if supported + if (Array.prototype.find) { + return arr.find(check); + } + + // use `filter` to obtain the same behavior of `find` + return arr.filter(check)[0]; +} + +/** + * Return the index of the matching object + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function findIndex(arr, prop, value) { + // use native findIndex if supported + if (Array.prototype.findIndex) { + return arr.findIndex(function (cur) { + return cur[prop] === value; + }); + } + + // use `find` + `indexOf` if `findIndex` isn't supported + var match = find(arr, function (obj) { + return obj[prop] === value; + }); + return arr.indexOf(match); +} + +/** + * Loop trough the list of modifiers and run them in order, + * each of them will then edit the data object. + * @method + * @memberof Popper.Utils + * @param {dataObject} data + * @param {Array} modifiers + * @param {String} ends - Optional modifier name used as stopper + * @returns {dataObject} + */ +function runModifiers(modifiers, data, ends) { + var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); + + modifiersToRun.forEach(function (modifier) { + if (modifier['function']) { + // eslint-disable-line dot-notation + console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); + } + var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation + if (modifier.enabled && isFunction(fn)) { + // Add properties to offsets to make them a complete clientRect object + // we do this before each modifier to make sure the previous one doesn't + // mess with these values + data.offsets.popper = getClientRect(data.offsets.popper); + data.offsets.reference = getClientRect(data.offsets.reference); + + data = fn(data, modifier); + } + }); + + return data; +} + +/** + * Updates the position of the popper, computing the new offsets and applying + * the new style.
+ * Prefer `scheduleUpdate` over `update` because of performance reasons. + * @method + * @memberof Popper + */ +function update() { + // if popper is destroyed, don't perform any further update + if (this.state.isDestroyed) { + return; + } + + var data = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: false, + offsets: {} + }; + + // compute reference element offsets + data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); + + // store the computed placement inside `originalPlacement` + data.originalPlacement = data.placement; + + data.positionFixed = this.options.positionFixed; + + // compute the popper offsets + data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + + data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; + + // run the modifiers + data = runModifiers(this.modifiers, data); + + // the first `update` will call `onCreate` callback + // the other ones will call `onUpdate` callback + if (!this.state.isCreated) { + this.state.isCreated = true; + this.options.onCreate(data); + } else { + this.options.onUpdate(data); + } +} + +/** + * Helper used to know if the given modifier is enabled. + * @method + * @memberof Popper.Utils + * @returns {Boolean} + */ +function isModifierEnabled(modifiers, modifierName) { + return modifiers.some(function (_ref) { + var name = _ref.name, + enabled = _ref.enabled; + return enabled && name === modifierName; + }); +} + +/** + * Get the prefixed supported property name + * @method + * @memberof Popper.Utils + * @argument {String} property (camelCase) + * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) + */ +function getSupportedPropertyName(property) { + var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; + var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + + for (var i = 0; i < prefixes.length; i++) { + var prefix = prefixes[i]; + var toCheck = prefix ? '' + prefix + upperProp : property; + if (typeof document.body.style[toCheck] !== 'undefined') { + return toCheck; + } + } + return null; +} + +/** + * Destroys the popper. + * @method + * @memberof Popper + */ +function destroy() { + this.state.isDestroyed = true; + + // touch DOM only if `applyStyle` modifier is enabled + if (isModifierEnabled(this.modifiers, 'applyStyle')) { + this.popper.removeAttribute('x-placement'); + this.popper.style.position = ''; + this.popper.style.top = ''; + this.popper.style.left = ''; + this.popper.style.right = ''; + this.popper.style.bottom = ''; + this.popper.style.willChange = ''; + this.popper.style[getSupportedPropertyName('transform')] = ''; + } + + this.disableEventListeners(); + + // remove the popper if user explicitly asked for the deletion on destroy + // do not use `remove` because IE11 doesn't support it + if (this.options.removeOnDestroy) { + this.popper.parentNode.removeChild(this.popper); + } + return this; +} + +/** + * Get the window associated with the element + * @argument {Element} element + * @returns {Window} + */ +function getWindow(element) { + var ownerDocument = element.ownerDocument; + return ownerDocument ? ownerDocument.defaultView : window; +} + +function attachToScrollParents(scrollParent, event, callback, scrollParents) { + var isBody = scrollParent.nodeName === 'BODY'; + var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; + target.addEventListener(event, callback, { passive: true }); + + if (!isBody) { + attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); + } + scrollParents.push(target); +} + +/** + * Setup needed event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function setupEventListeners(reference, options, state, updateBound) { + // Resize event listener on window + state.updateBound = updateBound; + getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); + + // Scroll event listener on scroll parents + var scrollElement = getScrollParent(reference); + attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); + state.scrollElement = scrollElement; + state.eventsEnabled = true; + + return state; +} + +/** + * It will add resize/scroll events and start recalculating + * position of the popper element when they are triggered. + * @method + * @memberof Popper + */ +function enableEventListeners() { + if (!this.state.eventsEnabled) { + this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + } +} + +/** + * Remove event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function removeEventListeners(reference, state) { + // Remove resize event listener on window + getWindow(reference).removeEventListener('resize', state.updateBound); + + // Remove scroll event listener on scroll parents + state.scrollParents.forEach(function (target) { + target.removeEventListener('scroll', state.updateBound); + }); + + // Reset state + state.updateBound = null; + state.scrollParents = []; + state.scrollElement = null; + state.eventsEnabled = false; + return state; +} + +/** + * It will remove resize/scroll events and won't recalculate popper position + * when they are triggered. It also won't trigger `onUpdate` callback anymore, + * unless you call `update` method manually. + * @method + * @memberof Popper + */ +function disableEventListeners() { + if (this.state.eventsEnabled) { + cancelAnimationFrame(this.scheduleUpdate); + this.state = removeEventListeners(this.reference, this.state); + } +} + +/** + * Tells if a given input is a number + * @method + * @memberof Popper.Utils + * @param {*} input to check + * @return {Boolean} + */ +function isNumeric(n) { + return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); +} + +/** + * Set the style to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the style to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setStyles(element, styles) { + Object.keys(styles).forEach(function (prop) { + var unit = ''; + // add unit if the value is numeric and is one of the following + if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { + unit = 'px'; + } + element.style[prop] = styles[prop] + unit; + }); +} + +/** + * Set the attributes to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the attributes to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setAttributes(element, attributes) { + Object.keys(attributes).forEach(function (prop) { + var value = attributes[prop]; + if (value !== false) { + element.setAttribute(prop, attributes[prop]); + } else { + element.removeAttribute(prop); + } + }); +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} data.styles - List of style properties - values to apply to popper element + * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The same data object + */ +function applyStyle(data) { + // any property present in `data.styles` will be applied to the popper, + // in this way we can make the 3rd party modifiers add custom styles to it + // Be aware, modifiers could override the properties defined in the previous + // lines of this modifier! + setStyles(data.instance.popper, data.styles); + + // any property present in `data.attributes` will be applied to the popper, + // they will be set as HTML attributes of the element + setAttributes(data.instance.popper, data.attributes); + + // if arrowElement is defined and arrowStyles has some properties + if (data.arrowElement && Object.keys(data.arrowStyles).length) { + setStyles(data.arrowElement, data.arrowStyles); + } + + return data; +} + +/** + * Set the x-placement attribute before everything else because it could be used + * to add margins to the popper margins needs to be calculated to get the + * correct popper offsets. + * @method + * @memberof Popper.modifiers + * @param {HTMLElement} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper + * @param {Object} options - Popper.js options + */ +function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { + // compute reference element offsets + var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + + popper.setAttribute('x-placement', placement); + + // Apply `position` to popper before anything else because + // without the position applied we can't guarantee correct computations + setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' }); + + return options; +} + +/** + * @function + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by `update` method + * @argument {Boolean} shouldRound - If the offsets should be rounded at all + * @returns {Object} The popper's position offsets rounded + * + * The tale of pixel-perfect positioning. It's still not 100% perfect, but as + * good as it can be within reason. + * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 + * + * Low DPI screens cause a popper to be blurry if not using full pixels (Safari + * as well on High DPI screens). + * + * Firefox prefers no rounding for positioning and does not have blurriness on + * high DPI screens. + * + * Only horizontal placement and left/right values need to be considered. + */ +function getRoundedOffsets(data, shouldRound) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var round = Math.round, + floor = Math.floor; + + var noRound = function noRound(v) { + return v; + }; + + var referenceWidth = round(reference.width); + var popperWidth = round(popper.width); + + var isVertical = ['left', 'right'].indexOf(data.placement) !== -1; + var isVariation = data.placement.indexOf('-') !== -1; + var sameWidthParity = referenceWidth % 2 === popperWidth % 2; + var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; + + var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; + var verticalToInteger = !shouldRound ? noRound : round; + + return { + left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), + top: verticalToInteger(popper.top), + bottom: verticalToInteger(popper.bottom), + right: horizontalToInteger(popper.right) + }; +} + +var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeStyle(data, options) { + var x = options.x, + y = options.y; + var popper = data.offsets.popper; + + // Remove this legacy support in Popper.js v2 + + var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'applyStyle'; + }).gpuAcceleration; + if (legacyGpuAccelerationOption !== undefined) { + console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); + } + var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; + + var offsetParent = getOffsetParent(data.instance.popper); + var offsetParentRect = getBoundingClientRect(offsetParent); + + // Styles + var styles = { + position: popper.position + }; + + var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); + + var sideA = x === 'bottom' ? 'top' : 'bottom'; + var sideB = y === 'right' ? 'left' : 'right'; + + // if gpuAcceleration is set to `true` and transform is supported, + // we use `translate3d` to apply the position to the popper we + // automatically use the supported prefixed version if needed + var prefixedProperty = getSupportedPropertyName('transform'); + + // now, let's make a step back and look at this code closely (wtf?) + // If the content of the popper grows once it's been positioned, it + // may happen that the popper gets misplaced because of the new content + // overflowing its reference element + // To avoid this problem, we provide two options (x and y), which allow + // the consumer to define the offset origin. + // If we position a popper on top of a reference element, we can set + // `x` to `top` to make the popper grow towards its top instead of + // its bottom. + var left = void 0, + top = void 0; + if (sideA === 'bottom') { + // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar) + // and not the bottom of the html element + if (offsetParent.nodeName === 'HTML') { + top = -offsetParent.clientHeight + offsets.bottom; + } else { + top = -offsetParentRect.height + offsets.bottom; + } + } else { + top = offsets.top; + } + if (sideB === 'right') { + if (offsetParent.nodeName === 'HTML') { + left = -offsetParent.clientWidth + offsets.right; + } else { + left = -offsetParentRect.width + offsets.right; + } + } else { + left = offsets.left; + } + if (gpuAcceleration && prefixedProperty) { + styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; + styles[sideA] = 0; + styles[sideB] = 0; + styles.willChange = 'transform'; + } else { + // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties + var invertTop = sideA === 'bottom' ? -1 : 1; + var invertLeft = sideB === 'right' ? -1 : 1; + styles[sideA] = top * invertTop; + styles[sideB] = left * invertLeft; + styles.willChange = sideA + ', ' + sideB; + } + + // Attributes + var attributes = { + 'x-placement': data.placement + }; + + // Update `data` attributes, styles and arrowStyles + data.attributes = _extends({}, attributes, data.attributes); + data.styles = _extends({}, styles, data.styles); + data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); + + return data; +} + +/** + * Helper used to know if the given modifier depends from another one.
+ * It checks if the needed modifier is listed and enabled. + * @method + * @memberof Popper.Utils + * @param {Array} modifiers - list of modifiers + * @param {String} requestingName - name of requesting modifier + * @param {String} requestedName - name of requested modifier + * @returns {Boolean} + */ +function isModifierRequired(modifiers, requestingName, requestedName) { + var requesting = find(modifiers, function (_ref) { + var name = _ref.name; + return name === requestingName; + }); + + var isRequired = !!requesting && modifiers.some(function (modifier) { + return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + }); + + if (!isRequired) { + var _requesting = '`' + requestingName + '`'; + var requested = '`' + requestedName + '`'; + console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); + } + return isRequired; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function arrow(data, options) { + var _data$offsets$arrow; + + // arrow depends on keepTogether in order to work + if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { + return data; + } + + var arrowElement = options.element; + + // if arrowElement is a string, suppose it's a CSS selector + if (typeof arrowElement === 'string') { + arrowElement = data.instance.popper.querySelector(arrowElement); + + // if arrowElement is not found, don't run the modifier + if (!arrowElement) { + return data; + } + } else { + // if the arrowElement isn't a query selector we must check that the + // provided DOM node is child of its popper node + if (!data.instance.popper.contains(arrowElement)) { + console.warn('WARNING: `arrow.element` must be child of its popper element!'); + return data; + } + } + + var placement = data.placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isVertical = ['left', 'right'].indexOf(placement) !== -1; + + var len = isVertical ? 'height' : 'width'; + var sideCapitalized = isVertical ? 'Top' : 'Left'; + var side = sideCapitalized.toLowerCase(); + var altSide = isVertical ? 'left' : 'top'; + var opSide = isVertical ? 'bottom' : 'right'; + var arrowElementSize = getOuterSizes(arrowElement)[len]; + + // + // extends keepTogether behavior making sure the popper and its + // reference have enough pixels in conjunction + // + + // top/left side + if (reference[opSide] - arrowElementSize < popper[side]) { + data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); + } + // bottom/right side + if (reference[side] + arrowElementSize > popper[opSide]) { + data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; + } + data.offsets.popper = getClientRect(data.offsets.popper); + + // compute center of the popper + var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; + + // Compute the sideValue using the updated popper offsets + // take popper margin in account because we don't have this info available + var css = getStyleComputedProperty(data.instance.popper); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized]); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']); + var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; + + // prevent arrowElement from being placed not contiguously to its popper + sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); + + data.arrowElement = arrowElement; + data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); + + return data; +} + +/** + * Get the opposite placement variation of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement variation + * @returns {String} flipped placement variation + */ +function getOppositeVariation(variation) { + if (variation === 'end') { + return 'start'; + } else if (variation === 'start') { + return 'end'; + } + return variation; +} + +/** + * List of accepted placements to use as values of the `placement` option.
+ * Valid placements are: + * - `auto` + * - `top` + * - `right` + * - `bottom` + * - `left` + * + * Each placement can have a variation from this list: + * - `-start` + * - `-end` + * + * Variations are interpreted easily if you think of them as the left to right + * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` + * is right.
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom. + * + * Some valid examples are: + * - `top-end` (on top of reference, right aligned) + * - `right-start` (on right of reference, top aligned) + * - `bottom` (on bottom, centered) + * - `auto-end` (on the side with more space available, alignment depends by placement) + * + * @static + * @type {Array} + * @enum {String} + * @readonly + * @method placements + * @memberof Popper + */ +var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; + +// Get rid of `auto` `auto-start` and `auto-end` +var validPlacements = placements.slice(3); + +/** + * Given an initial placement, returns all the subsequent placements + * clockwise (or counter-clockwise). + * + * @method + * @memberof Popper.Utils + * @argument {String} placement - A valid placement (it accepts variations) + * @argument {Boolean} counter - Set to true to walk the placements counterclockwise + * @returns {Array} placements including their variations + */ +function clockwise(placement) { + var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var index = validPlacements.indexOf(placement); + var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); + return counter ? arr.reverse() : arr; +} + +var BEHAVIORS = { + FLIP: 'flip', + CLOCKWISE: 'clockwise', + COUNTERCLOCKWISE: 'counterclockwise' +}; + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function flip(data, options) { + // if `inner` modifier is enabled, we can't use the `flip` modifier + if (isModifierEnabled(data.instance.modifiers, 'inner')) { + return data; + } + + if (data.flipped && data.placement === data.originalPlacement) { + // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides + return data; + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); + + var placement = data.placement.split('-')[0]; + var placementOpposite = getOppositePlacement(placement); + var variation = data.placement.split('-')[1] || ''; + + var flipOrder = []; + + switch (options.behavior) { + case BEHAVIORS.FLIP: + flipOrder = [placement, placementOpposite]; + break; + case BEHAVIORS.CLOCKWISE: + flipOrder = clockwise(placement); + break; + case BEHAVIORS.COUNTERCLOCKWISE: + flipOrder = clockwise(placement, true); + break; + default: + flipOrder = options.behavior; + } + + flipOrder.forEach(function (step, index) { + if (placement !== step || flipOrder.length === index + 1) { + return data; + } + + placement = data.placement.split('-')[0]; + placementOpposite = getOppositePlacement(placement); + + var popperOffsets = data.offsets.popper; + var refOffsets = data.offsets.reference; + + // using floor because the reference offsets may contain decimals we are not going to consider here + var floor = Math.floor; + var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); + + var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); + var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); + var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); + var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + + var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; + + // flip the variation if required + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + + // flips variation if reference element overflows boundaries + var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + + // flips variation if popper content overflows boundaries + var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); + + var flippedVariation = flippedVariationByRef || flippedVariationByContent; + + if (overlapsRef || overflowsBoundaries || flippedVariation) { + // this boolean to detect any flip loop + data.flipped = true; + + if (overlapsRef || overflowsBoundaries) { + placement = flipOrder[index + 1]; + } + + if (flippedVariation) { + variation = getOppositeVariation(variation); + } + + data.placement = placement + (variation ? '-' + variation : ''); + + // this object contains `position`, we want to preserve it along with + // any additional property we may add in the future + data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + + data = runModifiers(data.instance.modifiers, data, 'flip'); + } + }); + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function keepTogether(data) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var placement = data.placement.split('-')[0]; + var floor = Math.floor; + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var side = isVertical ? 'right' : 'bottom'; + var opSide = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + if (popper[side] < floor(reference[opSide])) { + data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; + } + if (popper[opSide] > floor(reference[side])) { + data.offsets.popper[opSide] = floor(reference[side]); + } + + return data; +} + +/** + * Converts a string containing value + unit into a px value number + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} str - Value + unit string + * @argument {String} measurement - `height` or `width` + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @returns {Number|String} + * Value in pixels, or original string if no values were extracted + */ +function toValue(str, measurement, popperOffsets, referenceOffsets) { + // separate value from unit + var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); + var value = +split[1]; + var unit = split[2]; + + // If it's not a number it's an operator, I guess + if (!value) { + return str; + } + + if (unit.indexOf('%') === 0) { + var element = void 0; + switch (unit) { + case '%p': + element = popperOffsets; + break; + case '%': + case '%r': + default: + element = referenceOffsets; + } + + var rect = getClientRect(element); + return rect[measurement] / 100 * value; + } else if (unit === 'vh' || unit === 'vw') { + // if is a vh or vw, we calculate the size based on the viewport + var size = void 0; + if (unit === 'vh') { + size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + } else { + size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + } + return size / 100 * value; + } else { + // if is an explicit pixel unit, we get rid of the unit and keep the value + // if is an implicit unit, it's px, and we return just the value + return value; + } +} + +/** + * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} offset + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @argument {String} basePlacement + * @returns {Array} a two cells array with x and y offsets in numbers + */ +function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { + var offsets = [0, 0]; + + // Use height if placement is left or right and index is 0 otherwise use width + // in this way the first offset will use an axis and the second one + // will use the other one + var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; + + // Split the offset string to obtain a list of values and operands + // The regex addresses values with the plus or minus sign in front (+10, -20, etc) + var fragments = offset.split(/(\+|\-)/).map(function (frag) { + return frag.trim(); + }); + + // Detect if the offset string contains a pair of values or a single one + // they could be separated by comma or space + var divider = fragments.indexOf(find(fragments, function (frag) { + return frag.search(/,|\s/) !== -1; + })); + + if (fragments[divider] && fragments[divider].indexOf(',') === -1) { + console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); + } + + // If divider is found, we divide the list of values and operands to divide + // them by ofset X and Y. + var splitRegex = /\s*,\s*|\s+/; + var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; + + // Convert the values with units to absolute pixels to allow our computations + ops = ops.map(function (op, index) { + // Most of the units rely on the orientation of the popper + var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; + var mergeWithPrevious = false; + return op + // This aggregates any `+` or `-` sign that aren't considered operators + // e.g.: 10 + +5 => [10, +, +5] + .reduce(function (a, b) { + if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { + a[a.length - 1] = b; + mergeWithPrevious = true; + return a; + } else if (mergeWithPrevious) { + a[a.length - 1] += b; + mergeWithPrevious = false; + return a; + } else { + return a.concat(b); + } + }, []) + // Here we convert the string values into number values (in px) + .map(function (str) { + return toValue(str, measurement, popperOffsets, referenceOffsets); + }); + }); + + // Loop trough the offsets arrays and execute the operations + ops.forEach(function (op, index) { + op.forEach(function (frag, index2) { + if (isNumeric(frag)) { + offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); + } + }); + }); + return offsets; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @argument {Number|String} options.offset=0 + * The offset value as described in the modifier description + * @returns {Object} The data object, properly modified + */ +function offset(data, _ref) { + var offset = _ref.offset; + var placement = data.placement, + _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var basePlacement = placement.split('-')[0]; + + var offsets = void 0; + if (isNumeric(+offset)) { + offsets = [+offset, 0]; + } else { + offsets = parseOffset(offset, popper, reference, basePlacement); + } + + if (basePlacement === 'left') { + popper.top += offsets[0]; + popper.left -= offsets[1]; + } else if (basePlacement === 'right') { + popper.top += offsets[0]; + popper.left += offsets[1]; + } else if (basePlacement === 'top') { + popper.left += offsets[0]; + popper.top -= offsets[1]; + } else if (basePlacement === 'bottom') { + popper.left += offsets[0]; + popper.top += offsets[1]; + } + + data.popper = popper; + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function preventOverflow(data, options) { + var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); + + // If offsetParent is the reference element, we really want to + // go one step up and use the next offsetParent as reference to + // avoid to make this modifier completely useless and look like broken + if (data.instance.reference === boundariesElement) { + boundariesElement = getOffsetParent(boundariesElement); + } + + // NOTE: DOM access here + // resets the popper's position so that the document size can be calculated excluding + // the size of the popper element itself + var transformProp = getSupportedPropertyName('transform'); + var popperStyles = data.instance.popper.style; // assignment to help minification + var top = popperStyles.top, + left = popperStyles.left, + transform = popperStyles[transformProp]; + + popperStyles.top = ''; + popperStyles.left = ''; + popperStyles[transformProp] = ''; + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); + + // NOTE: DOM access here + // restores the original style properties after the offsets have been computed + popperStyles.top = top; + popperStyles.left = left; + popperStyles[transformProp] = transform; + + options.boundaries = boundaries; + + var order = options.priority; + var popper = data.offsets.popper; + + var check = { + primary: function primary(placement) { + var value = popper[placement]; + if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { + value = Math.max(popper[placement], boundaries[placement]); + } + return defineProperty({}, placement, value); + }, + secondary: function secondary(placement) { + var mainSide = placement === 'right' ? 'left' : 'top'; + var value = popper[mainSide]; + if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { + value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); + } + return defineProperty({}, mainSide, value); + } + }; + + order.forEach(function (placement) { + var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; + popper = _extends({}, popper, check[side](placement)); + }); + + data.offsets.popper = popper; + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function shift(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var shiftvariation = placement.split('-')[1]; + + // if shift shiftvariation is specified, run the modifier + if (shiftvariation) { + var _data$offsets = data.offsets, + reference = _data$offsets.reference, + popper = _data$offsets.popper; + + var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; + var side = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + var shiftOffsets = { + start: defineProperty({}, side, reference[side]), + end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) + }; + + data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function hide(data) { + if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { + return data; + } + + var refRect = data.offsets.reference; + var bound = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'preventOverflow'; + }).boundaries; + + if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === true) { + return data; + } + + data.hide = true; + data.attributes['x-out-of-boundaries'] = ''; + } else { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === false) { + return data; + } + + data.hide = false; + data.attributes['x-out-of-boundaries'] = false; + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function inner(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; + + var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; + + popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); + + data.placement = getOppositePlacement(placement); + data.offsets.popper = getClientRect(popper); + + return data; +} + +/** + * Modifier function, each modifier can have a function of this type assigned + * to its `fn` property.
+ * These functions will be called on each update, this means that you must + * make sure they are performant enough to avoid performance bottlenecks. + * + * @function ModifierFn + * @argument {dataObject} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {dataObject} The data object, properly modified + */ + +/** + * Modifiers are plugins used to alter the behavior of your poppers.
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities + * needed by the library. + * + * Usually you don't want to override the `order`, `fn` and `onLoad` props. + * All the other properties are configurations that could be tweaked. + * @namespace modifiers + */ +var modifiers = { + /** + * Modifier used to shift the popper on the start or end of its reference + * element.
+ * It will read the variation of the `placement` property.
+ * It can be one either `-end` or `-start`. + * @memberof modifiers + * @inner + */ + shift: { + /** @prop {number} order=100 - Index used to define the order of execution */ + order: 100, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: shift + }, + + /** + * The `offset` modifier can shift your popper on both its axis. + * + * It accepts the following units: + * - `px` or unit-less, interpreted as pixels + * - `%` or `%r`, percentage relative to the length of the reference element + * - `%p`, percentage relative to the length of the popper element + * - `vw`, CSS viewport width unit + * - `vh`, CSS viewport height unit + * + * For length is intended the main axis relative to the placement of the popper.
+ * This means that if the placement is `top` or `bottom`, the length will be the + * `width`. In case of `left` or `right`, it will be the `height`. + * + * You can provide a single value (as `Number` or `String`), or a pair of values + * as `String` divided by a comma or one (or more) white spaces.
+ * The latter is a deprecated method because it leads to confusion and will be + * removed in v2.
+ * Additionally, it accepts additions and subtractions between different units. + * Note that multiplications and divisions aren't supported. + * + * Valid examples are: + * ``` + * 10 + * '10%' + * '10, 10' + * '10%, 10' + * '10 + 10%' + * '10 - 5vh + 3%' + * '-10px + 5vh, 5px - 6%' + * ``` + * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap + * > with their reference element, unfortunately, you will have to disable the `flip` modifier. + * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373). + * + * @memberof modifiers + * @inner + */ + offset: { + /** @prop {number} order=200 - Index used to define the order of execution */ + order: 200, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: offset, + /** @prop {Number|String} offset=0 + * The offset value as described in the modifier description + */ + offset: 0 + }, + + /** + * Modifier used to prevent the popper from being positioned outside the boundary. + * + * A scenario exists where the reference itself is not within the boundaries.
+ * We can say it has "escaped the boundaries" — or just "escaped".
+ * In this case we need to decide whether the popper should either: + * + * - detach from the reference and remain "trapped" in the boundaries, or + * - if it should ignore the boundary and "escape with its reference" + * + * When `escapeWithReference` is set to`true` and reference is completely + * outside its boundaries, the popper will overflow (or completely leave) + * the boundaries in order to remain attached to the edge of the reference. + * + * @memberof modifiers + * @inner + */ + preventOverflow: { + /** @prop {number} order=300 - Index used to define the order of execution */ + order: 300, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: preventOverflow, + /** + * @prop {Array} [priority=['left','right','top','bottom']] + * Popper will try to prevent overflow following these priorities by default, + * then, it could overflow on the left and on top of the `boundariesElement` + */ + priority: ['left', 'right', 'top', 'bottom'], + /** + * @prop {number} padding=5 + * Amount of pixel used to define a minimum distance between the boundaries + * and the popper. This makes sure the popper always has a little padding + * between the edges of its container + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='scrollParent' + * Boundaries used by the modifier. Can be `scrollParent`, `window`, + * `viewport` or any DOM element. + */ + boundariesElement: 'scrollParent' + }, + + /** + * Modifier used to make sure the reference and its popper stay near each other + * without leaving any gap between the two. Especially useful when the arrow is + * enabled and you want to ensure that it points to its reference element. + * It cares only about the first axis. You can still have poppers with margin + * between the popper and its reference element. + * @memberof modifiers + * @inner + */ + keepTogether: { + /** @prop {number} order=400 - Index used to define the order of execution */ + order: 400, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: keepTogether + }, + + /** + * This modifier is used to move the `arrowElement` of the popper to make + * sure it is positioned between the reference element and its popper element. + * It will read the outer size of the `arrowElement` node to detect how many + * pixels of conjunction are needed. + * + * It has no effect if no `arrowElement` is provided. + * @memberof modifiers + * @inner + */ + arrow: { + /** @prop {number} order=500 - Index used to define the order of execution */ + order: 500, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: arrow, + /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ + element: '[x-arrow]' + }, + + /** + * Modifier used to flip the popper's placement when it starts to overlap its + * reference element. + * + * Requires the `preventOverflow` modifier before it in order to work. + * + * **NOTE:** this modifier will interrupt the current update cycle and will + * restart it if it detects the need to flip the placement. + * @memberof modifiers + * @inner + */ + flip: { + /** @prop {number} order=600 - Index used to define the order of execution */ + order: 600, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: flip, + /** + * @prop {String|Array} behavior='flip' + * The behavior used to change the popper's placement. It can be one of + * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid + * placements (with optional variations) + */ + behavior: 'flip', + /** + * @prop {number} padding=5 + * The popper will flip if it hits the edges of the `boundariesElement` + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='viewport' + * The element which will define the boundaries of the popper position. + * The popper will never be placed outside of the defined boundaries + * (except if `keepTogether` is enabled) + */ + boundariesElement: 'viewport', + /** + * @prop {Boolean} flipVariations=false + * The popper will switch placement variation between `-start` and `-end` when + * the reference element overlaps its boundaries. + * + * The original placement should have a set variation. + */ + flipVariations: false, + /** + * @prop {Boolean} flipVariationsByContent=false + * The popper will switch placement variation between `-start` and `-end` when + * the popper element overlaps its reference boundaries. + * + * The original placement should have a set variation. + */ + flipVariationsByContent: false + }, + + /** + * Modifier used to make the popper flow toward the inner of the reference element. + * By default, when this modifier is disabled, the popper will be placed outside + * the reference element. + * @memberof modifiers + * @inner + */ + inner: { + /** @prop {number} order=700 - Index used to define the order of execution */ + order: 700, + /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ + enabled: false, + /** @prop {ModifierFn} */ + fn: inner + }, + + /** + * Modifier used to hide the popper when its reference element is outside of the + * popper boundaries. It will set a `x-out-of-boundaries` attribute which can + * be used to hide with a CSS selector the popper when its reference is + * out of boundaries. + * + * Requires the `preventOverflow` modifier before it in order to work. + * @memberof modifiers + * @inner + */ + hide: { + /** @prop {number} order=800 - Index used to define the order of execution */ + order: 800, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: hide + }, + + /** + * Computes the style that will be applied to the popper element to gets + * properly positioned. + * + * Note that this modifier will not touch the DOM, it just prepares the styles + * so that `applyStyle` modifier can apply it. This separation is useful + * in case you need to replace `applyStyle` with a custom implementation. + * + * This modifier has `850` as `order` value to maintain backward compatibility + * with previous versions of Popper.js. Expect the modifiers ordering method + * to change in future major versions of the library. + * + * @memberof modifiers + * @inner + */ + computeStyle: { + /** @prop {number} order=850 - Index used to define the order of execution */ + order: 850, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: computeStyle, + /** + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: true, + /** + * @prop {string} [x='bottom'] + * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. + * Change this if your popper should grow in a direction different from `bottom` + */ + x: 'bottom', + /** + * @prop {string} [x='left'] + * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. + * Change this if your popper should grow in a direction different from `right` + */ + y: 'right' + }, + + /** + * Applies the computed styles to the popper element. + * + * All the DOM manipulations are limited to this modifier. This is useful in case + * you want to integrate Popper.js inside a framework or view library and you + * want to delegate all the DOM manipulations to it. + * + * Note that if you disable this modifier, you must make sure the popper element + * has its position set to `absolute` before Popper.js can do its work! + * + * Just disable this modifier and define your own to achieve the desired effect. + * + * @memberof modifiers + * @inner + */ + applyStyle: { + /** @prop {number} order=900 - Index used to define the order of execution */ + order: 900, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: applyStyle, + /** @prop {Function} */ + onLoad: applyStyleOnLoad, + /** + * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: undefined + } +}; + +/** + * The `dataObject` is an object containing all the information used by Popper.js. + * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks. + * @name dataObject + * @property {Object} data.instance The Popper.js instance + * @property {String} data.placement Placement applied to popper + * @property {String} data.originalPlacement Placement originally defined on init + * @property {Boolean} data.flipped True if popper has been flipped by flip modifier + * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper + * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier + * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.boundaries Offsets of the popper boundaries + * @property {Object} data.offsets The measurements of popper, reference and arrow elements + * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 + */ + +/** + * Default options provided to Popper.js constructor.
+ * These can be overridden using the `options` argument of Popper.js.
+ * To override an option, simply pass an object with the same + * structure of the `options` object, as the 3rd argument. For example: + * ``` + * new Popper(ref, pop, { + * modifiers: { + * preventOverflow: { enabled: false } + * } + * }) + * ``` + * @type {Object} + * @static + * @memberof Popper + */ +var Defaults = { + /** + * Popper's placement. + * @prop {Popper.placements} placement='bottom' + */ + placement: 'bottom', + + /** + * Set this to true if you want popper to position it self in 'fixed' mode + * @prop {Boolean} positionFixed=false + */ + positionFixed: false, + + /** + * Whether events (resize, scroll) are initially enabled. + * @prop {Boolean} eventsEnabled=true + */ + eventsEnabled: true, + + /** + * Set to true if you want to automatically remove the popper when + * you call the `destroy` method. + * @prop {Boolean} removeOnDestroy=false + */ + removeOnDestroy: false, + + /** + * Callback called when the popper is created.
+ * By default, it is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onCreate} + */ + onCreate: function onCreate() {}, + + /** + * Callback called when the popper is updated. This callback is not called + * on the initialization/creation of the popper, but only on subsequent + * updates.
+ * By default, it is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onUpdate} + */ + onUpdate: function onUpdate() {}, + + /** + * List of modifiers used to modify the offsets before they are applied to the popper. + * They provide most of the functionalities of Popper.js. + * @prop {modifiers} + */ + modifiers: modifiers +}; + +/** + * @callback onCreate + * @param {dataObject} data + */ + +/** + * @callback onUpdate + * @param {dataObject} data + */ + +// Utils +// Methods +var Popper = function () { + /** + * Creates a new Popper.js instance. + * @class Popper + * @param {Element|referenceObject} reference - The reference element used to position the popper + * @param {Element} popper - The HTML / XML element used as the popper + * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) + * @return {Object} instance - The generated Popper.js instance + */ + function Popper(reference, popper) { + var _this = this; + + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + classCallCheck(this, Popper); + + this.scheduleUpdate = function () { + return requestAnimationFrame(_this.update); + }; + + // make update() debounced, so that it only runs at most once-per-tick + this.update = debounce(this.update.bind(this)); + + // with {} we create a new object with the options inside it + this.options = _extends({}, Popper.Defaults, options); + + // init state + this.state = { + isDestroyed: false, + isCreated: false, + scrollParents: [] + }; + + // get reference and popper elements (allow jQuery wrappers) + this.reference = reference && reference.jquery ? reference[0] : reference; + this.popper = popper && popper.jquery ? popper[0] : popper; + + // Deep merge modifiers options + this.options.modifiers = {}; + Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { + _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); + }); + + // Refactoring modifiers' list (Object => Array) + this.modifiers = Object.keys(this.options.modifiers).map(function (name) { + return _extends({ + name: name + }, _this.options.modifiers[name]); + }) + // sort the modifiers by order + .sort(function (a, b) { + return a.order - b.order; + }); + + // modifiers have the ability to execute arbitrary code when Popper.js get inited + // such code is executed in the same order of its modifier + // they could add new properties to their options configuration + // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! + this.modifiers.forEach(function (modifierOptions) { + if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { + modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + } + }); + + // fire the first update to position the popper in the right place + this.update(); + + var eventsEnabled = this.options.eventsEnabled; + if (eventsEnabled) { + // setup event listeners, they will take care of update the position in specific situations + this.enableEventListeners(); + } + + this.state.eventsEnabled = eventsEnabled; + } + + // We can't use class properties because they don't get listed in the + // class prototype and break stuff like Sinon stubs + + + createClass(Popper, [{ + key: 'update', + value: function update$$1() { + return update.call(this); + } + }, { + key: 'destroy', + value: function destroy$$1() { + return destroy.call(this); + } + }, { + key: 'enableEventListeners', + value: function enableEventListeners$$1() { + return enableEventListeners.call(this); + } + }, { + key: 'disableEventListeners', + value: function disableEventListeners$$1() { + return disableEventListeners.call(this); + } + + /** + * Schedules an update. It will run on the next UI update available. + * @method scheduleUpdate + * @memberof Popper + */ + + + /** + * Collection of utilities useful when writing custom modifiers. + * Starting from version 1.7, this method is available only if you + * include `popper-utils.js` before `popper.js`. + * + * **DEPRECATION**: This way to access PopperUtils is deprecated + * and will be removed in v2! Use the PopperUtils module directly instead. + * Due to the high instability of the methods contained in Utils, we can't + * guarantee them to follow semver. Use them at your own risk! + * @static + * @private + * @type {Object} + * @deprecated since version 1.8 + * @member Utils + * @memberof Popper + */ + + }]); + return Popper; +}(); + +/** + * The `referenceObject` is an object that provides an interface compatible with Popper.js + * and lets you use it as replacement of a real DOM node.
+ * You can use this method to position a popper relatively to a set of coordinates + * in case you don't have a DOM node to use as reference. + * + * ``` + * new Popper(referenceObject, popperNode); + * ``` + * + * NB: This feature isn't supported in Internet Explorer 10. + * @name referenceObject + * @property {Function} data.getBoundingClientRect + * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. + * @property {number} data.clientWidth + * An ES6 getter that will return the width of the virtual reference element. + * @property {number} data.clientHeight + * An ES6 getter that will return the height of the virtual reference element. + */ + + +Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; +Popper.placements = placements; +Popper.Defaults = Defaults; + +return Popper; + +}))); +//# sourceMappingURL=popper.js.map + +// import required js-files Bootstrap 5 +/*! + * Bootstrap alert.js v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) : + typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.Data, global.EventHandler, global.Base)); +}(this, (function (Data, EventHandler, BaseComponent) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); + var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler); + var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent); + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + + _setPrototypeOf(subClass, superClass); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta2): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + var MILLISECONDS_MULTIPLIER = 1000; + var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + + var getSelector = function getSelector(element) { + var selector = element.getAttribute('data-bs-target'); + + if (!selector || selector === '#') { + var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + } + + return selector; + }; + + var getElementFromSelector = function getElementFromSelector(element) { + var selector = getSelector(element); + return selector ? document.querySelector(selector) : null; + }; + + var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { + if (!element) { + return 0; + } // Get transition-duration of the element + + + var _window$getComputedSt = window.getComputedStyle(element), + transitionDuration = _window$getComputedSt.transitionDuration, + transitionDelay = _window$getComputedSt.transitionDelay; + + var floatTransitionDuration = Number.parseFloat(transitionDuration); + var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } // If multiple durations are defined, take the first + + + transitionDuration = transitionDuration.split(',')[0]; + transitionDelay = transitionDelay.split(',')[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; + }; + + var triggerTransitionEnd = function triggerTransitionEnd(element) { + element.dispatchEvent(new Event(TRANSITION_END)); + }; + + var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { + var called = false; + var durationPadding = 5; + var emulatedDuration = duration + durationPadding; + + function listener() { + called = true; + element.removeEventListener(TRANSITION_END, listener); + } + + element.addEventListener(TRANSITION_END, listener); + setTimeout(function () { + if (!called) { + triggerTransitionEnd(element); + } + }, emulatedDuration); + }; + + var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; + } + + return null; + }; + + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + + document.documentElement.dir === 'rtl'; + + var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + var JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = function () { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'alert'; + var DATA_KEY = 'bs.alert'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]'; + var EVENT_CLOSE = "close" + EVENT_KEY; + var EVENT_CLOSED = "closed" + EVENT_KEY; + var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; + var CLASS_NAME_ALERT = 'alert'; + var CLASS_NAME_FADE = 'fade'; + var CLASS_NAME_SHOW = 'show'; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Alert = /*#__PURE__*/function (_BaseComponent) { + _inheritsLoose(Alert, _BaseComponent); + + function Alert() { + return _BaseComponent.apply(this, arguments) || this; + } + + var _proto = Alert.prototype; + + // Public + _proto.close = function close(element) { + var rootElement = element ? this._getRootElement(element) : this._element; + + var customEvent = this._triggerCloseEvent(rootElement); + + if (customEvent === null || customEvent.defaultPrevented) { + return; + } + + this._removeElement(rootElement); + } // Private + ; + + _proto._getRootElement = function _getRootElement(element) { + return getElementFromSelector(element) || element.closest("." + CLASS_NAME_ALERT); + }; + + _proto._triggerCloseEvent = function _triggerCloseEvent(element) { + return EventHandler__default['default'].trigger(element, EVENT_CLOSE); + }; + + _proto._removeElement = function _removeElement(element) { + var _this = this; + + element.classList.remove(CLASS_NAME_SHOW); + + if (!element.classList.contains(CLASS_NAME_FADE)) { + this._destroyElement(element); + + return; + } + + var transitionDuration = getTransitionDurationFromElement(element); + EventHandler__default['default'].one(element, 'transitionend', function () { + return _this._destroyElement(element); + }); + emulateTransitionEnd(element, transitionDuration); + }; + + _proto._destroyElement = function _destroyElement(element) { + if (element.parentNode) { + element.parentNode.removeChild(element); + } + + EventHandler__default['default'].trigger(element, EVENT_CLOSED); + } // Static + ; + + Alert.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + var data = Data__default['default'].getData(this, DATA_KEY); + + if (!data) { + data = new Alert(this); + } + + if (config === 'close') { + data[config](this); + } + }); + }; + + Alert.handleDismiss = function handleDismiss(alertInstance) { + return function (event) { + if (event) { + event.preventDefault(); + } + + alertInstance.close(this); + }; + }; + + _createClass(Alert, null, [{ + key: "DATA_KEY", + get: // Getters + function get() { + return DATA_KEY; + } + }]); + + return Alert; + }(BaseComponent__default['default']); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .Alert to jQuery only if jQuery is present + */ + + defineJQueryPlugin(NAME, Alert); + + return Alert; + +}))); +//# sourceMappingURL=alert.js.map +/*! + * Bootstrap button.js v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./base-component.js')) : + typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './base-component'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler, global.Base)); +}(this, (function (Data, EventHandler, BaseComponent) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); + var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler); + var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent); + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + + _setPrototypeOf(subClass, superClass); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta2): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; + } + + return null; + }; + + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + + document.documentElement.dir === 'rtl'; + + var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + var JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = function () { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'button'; + var DATA_KEY = 'bs.button'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var CLASS_NAME_ACTIVE = 'active'; + var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]'; + var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Button = /*#__PURE__*/function (_BaseComponent) { + _inheritsLoose(Button, _BaseComponent); + + function Button() { + return _BaseComponent.apply(this, arguments) || this; + } + + var _proto = Button.prototype; + + // Public + _proto.toggle = function toggle() { + // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method + this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE)); + } // Static + ; + + Button.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + var data = Data__default['default'].getData(this, DATA_KEY); + + if (!data) { + data = new Button(this); + } + + if (config === 'toggle') { + data[config](); + } + }); + }; + + _createClass(Button, null, [{ + key: "DATA_KEY", + get: // Getters + function get() { + return DATA_KEY; + } + }]); + + return Button; + }(BaseComponent__default['default']); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + event.preventDefault(); + var button = event.target.closest(SELECTOR_DATA_TOGGLE); + var data = Data__default['default'].getData(button, DATA_KEY); + + if (!data) { + data = new Button(button); + } + + data.toggle(); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .Button to jQuery only if jQuery is present + */ + + defineJQueryPlugin(NAME, Button); + + return Button; + +}))); +//# sourceMappingURL=button.js.map +/*! + * Bootstrap carousel.js v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) : + typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base)); +}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); + var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler); + var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator); + var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); + var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent); + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + + _setPrototypeOf(subClass, superClass); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta2): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + var MILLISECONDS_MULTIPLIER = 1000; + var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + + var toType = function toType(obj) { + if (obj === null || obj === undefined) { + return "" + obj; + } + + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); + }; + + var getSelector = function getSelector(element) { + var selector = element.getAttribute('data-bs-target'); + + if (!selector || selector === '#') { + var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + } + + return selector; + }; + + var getElementFromSelector = function getElementFromSelector(element) { + var selector = getSelector(element); + return selector ? document.querySelector(selector) : null; + }; + + var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { + if (!element) { + return 0; + } // Get transition-duration of the element + + + var _window$getComputedSt = window.getComputedStyle(element), + transitionDuration = _window$getComputedSt.transitionDuration, + transitionDelay = _window$getComputedSt.transitionDelay; + + var floatTransitionDuration = Number.parseFloat(transitionDuration); + var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } // If multiple durations are defined, take the first + + + transitionDuration = transitionDuration.split(',')[0]; + transitionDelay = transitionDelay.split(',')[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; + }; + + var triggerTransitionEnd = function triggerTransitionEnd(element) { + element.dispatchEvent(new Event(TRANSITION_END)); + }; + + var isElement = function isElement(obj) { + return (obj[0] || obj).nodeType; + }; + + var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { + var called = false; + var durationPadding = 5; + var emulatedDuration = duration + durationPadding; + + function listener() { + called = true; + element.removeEventListener(TRANSITION_END, listener); + } + + element.addEventListener(TRANSITION_END, listener); + setTimeout(function () { + if (!called) { + triggerTransitionEnd(element); + } + }, emulatedDuration); + }; + + var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { + Object.keys(configTypes).forEach(function (property) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = value && isElement(value) ? 'element' : toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + } + }); + }; + + var isVisible = function isVisible(element) { + if (!element) { + return false; + } + + if (element.style && element.parentNode && element.parentNode.style) { + var elementStyle = getComputedStyle(element); + var parentNodeStyle = getComputedStyle(element.parentNode); + return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden'; + } + + return false; + }; + + var reflow = function reflow(element) { + return element.offsetHeight; + }; + + var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; + } + + return null; + }; + + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + + var isRTL = document.documentElement.dir === 'rtl'; + + var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + var JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = function () { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'carousel'; + var DATA_KEY = 'bs.carousel'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var ARROW_LEFT_KEY = 'ArrowLeft'; + var ARROW_RIGHT_KEY = 'ArrowRight'; + var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch + + var SWIPE_THRESHOLD = 40; + var Default = { + interval: 5000, + keyboard: true, + slide: false, + pause: 'hover', + wrap: true, + touch: true + }; + var DefaultType = { + interval: '(number|boolean)', + keyboard: 'boolean', + slide: '(boolean|string)', + pause: '(string|boolean)', + wrap: 'boolean', + touch: 'boolean' + }; + var DIRECTION_NEXT = 'next'; + var DIRECTION_PREV = 'prev'; + var DIRECTION_LEFT = 'left'; + var DIRECTION_RIGHT = 'right'; + var EVENT_SLIDE = "slide" + EVENT_KEY; + var EVENT_SLID = "slid" + EVENT_KEY; + var EVENT_KEYDOWN = "keydown" + EVENT_KEY; + var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY; + var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY; + var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY; + var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY; + var EVENT_TOUCHEND = "touchend" + EVENT_KEY; + var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY; + var EVENT_POINTERUP = "pointerup" + EVENT_KEY; + var EVENT_DRAG_START = "dragstart" + EVENT_KEY; + var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY; + var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; + var CLASS_NAME_CAROUSEL = 'carousel'; + var CLASS_NAME_ACTIVE = 'active'; + var CLASS_NAME_SLIDE = 'slide'; + var CLASS_NAME_END = 'carousel-item-end'; + var CLASS_NAME_START = 'carousel-item-start'; + var CLASS_NAME_NEXT = 'carousel-item-next'; + var CLASS_NAME_PREV = 'carousel-item-prev'; + var CLASS_NAME_POINTER_EVENT = 'pointer-event'; + var SELECTOR_ACTIVE = '.active'; + var SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; + var SELECTOR_ITEM = '.carousel-item'; + var SELECTOR_ITEM_IMG = '.carousel-item img'; + var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; + var SELECTOR_INDICATORS = '.carousel-indicators'; + var SELECTOR_INDICATOR = '[data-bs-target]'; + var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; + var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; + var POINTER_TYPE_TOUCH = 'touch'; + var POINTER_TYPE_PEN = 'pen'; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Carousel = /*#__PURE__*/function (_BaseComponent) { + _inheritsLoose(Carousel, _BaseComponent); + + function Carousel(element, config) { + var _this; + + _this = _BaseComponent.call(this, element) || this; + _this._items = null; + _this._interval = null; + _this._activeElement = null; + _this._isPaused = false; + _this._isSliding = false; + _this.touchTimeout = null; + _this.touchStartX = 0; + _this.touchDeltaX = 0; + _this._config = _this._getConfig(config); + _this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element); + _this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + _this._pointerEvent = Boolean(window.PointerEvent); + + _this._addEventListeners(); + + return _this; + } // Getters + + + var _proto = Carousel.prototype; + + // Public + _proto.next = function next() { + if (!this._isSliding) { + this._slide(DIRECTION_NEXT); + } + }; + + _proto.nextWhenVisible = function nextWhenVisible() { + // Don't call next when the page isn't visible + // or the carousel or its parent isn't visible + if (!document.hidden && isVisible(this._element)) { + this.next(); + } + }; + + _proto.prev = function prev() { + if (!this._isSliding) { + this._slide(DIRECTION_PREV); + } + }; + + _proto.pause = function pause(event) { + if (!event) { + this._isPaused = true; + } + + if (SelectorEngine__default['default'].findOne(SELECTOR_NEXT_PREV, this._element)) { + triggerTransitionEnd(this._element); + this.cycle(true); + } + + clearInterval(this._interval); + this._interval = null; + }; + + _proto.cycle = function cycle(event) { + if (!event) { + this._isPaused = false; + } + + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + + if (this._config && this._config.interval && !this._isPaused) { + this._updateInterval(); + + this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); + } + }; + + _proto.to = function to(index) { + var _this2 = this; + + this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element); + + var activeIndex = this._getItemIndex(this._activeElement); + + if (index > this._items.length - 1 || index < 0) { + return; + } + + if (this._isSliding) { + EventHandler__default['default'].one(this._element, EVENT_SLID, function () { + return _this2.to(index); + }); + return; + } + + if (activeIndex === index) { + this.pause(); + this.cycle(); + return; + } + + var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV; + + this._slide(direction, this._items[index]); + }; + + _proto.dispose = function dispose() { + _BaseComponent.prototype.dispose.call(this); + + EventHandler__default['default'].off(this._element, EVENT_KEY); + this._items = null; + this._config = null; + this._interval = null; + this._isPaused = null; + this._isSliding = null; + this._activeElement = null; + this._indicatorsElement = null; + } // Private + ; + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, Default, config); + typeCheckConfig(NAME, config, DefaultType); + return config; + }; + + _proto._handleSwipe = function _handleSwipe() { + var absDeltax = Math.abs(this.touchDeltaX); + + if (absDeltax <= SWIPE_THRESHOLD) { + return; + } + + var direction = absDeltax / this.touchDeltaX; + this.touchDeltaX = 0; // swipe left + + if (direction > 0) { + if (isRTL) { + this.next(); + } else { + this.prev(); + } + } // swipe right + + + if (direction < 0) { + if (isRTL) { + this.prev(); + } else { + this.next(); + } + } + }; + + _proto._addEventListeners = function _addEventListeners() { + var _this3 = this; + + if (this._config.keyboard) { + EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) { + return _this3._keydown(event); + }); + } + + if (this._config.pause === 'hover') { + EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) { + return _this3.pause(event); + }); + EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) { + return _this3.cycle(event); + }); + } + + if (this._config.touch && this._touchSupported) { + this._addTouchEventListeners(); + } + }; + + _proto._addTouchEventListeners = function _addTouchEventListeners() { + var _this4 = this; + + var start = function start(event) { + if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) { + _this4.touchStartX = event.clientX; + } else if (!_this4._pointerEvent) { + _this4.touchStartX = event.touches[0].clientX; + } + }; + + var move = function move(event) { + // ensure swiping with one touch and not pinching + if (event.touches && event.touches.length > 1) { + _this4.touchDeltaX = 0; + } else { + _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX; + } + }; + + var end = function end(event) { + if (_this4._pointerEvent && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)) { + _this4.touchDeltaX = event.clientX - _this4.touchStartX; + } + + _this4._handleSwipe(); + + if (_this4._config.pause === 'hover') { + // If it's a touch-enabled device, mouseenter/leave are fired as + // part of the mouse compatibility events on first tap - the carousel + // would stop cycling until user tapped out of it; + // here, we listen for touchend, explicitly pause the carousel + // (as if it's the second time we tap on it, mouseenter compat event + // is NOT fired) and after a timeout (to allow for mouse compatibility + // events to fire) we explicitly restart cycling + _this4.pause(); + + if (_this4.touchTimeout) { + clearTimeout(_this4.touchTimeout); + } + + _this4.touchTimeout = setTimeout(function (event) { + return _this4.cycle(event); + }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval); + } + }; + + SelectorEngine__default['default'].find(SELECTOR_ITEM_IMG, this._element).forEach(function (itemImg) { + EventHandler__default['default'].on(itemImg, EVENT_DRAG_START, function (e) { + return e.preventDefault(); + }); + }); + + if (this._pointerEvent) { + EventHandler__default['default'].on(this._element, EVENT_POINTERDOWN, function (event) { + return start(event); + }); + EventHandler__default['default'].on(this._element, EVENT_POINTERUP, function (event) { + return end(event); + }); + + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler__default['default'].on(this._element, EVENT_TOUCHSTART, function (event) { + return start(event); + }); + EventHandler__default['default'].on(this._element, EVENT_TOUCHMOVE, function (event) { + return move(event); + }); + EventHandler__default['default'].on(this._element, EVENT_TOUCHEND, function (event) { + return end(event); + }); + } + }; + + _proto._keydown = function _keydown(event) { + if (/input|textarea/i.test(event.target.tagName)) { + return; + } + + if (event.key === ARROW_LEFT_KEY) { + event.preventDefault(); + + if (isRTL) { + this.next(); + } else { + this.prev(); + } + } else if (event.key === ARROW_RIGHT_KEY) { + event.preventDefault(); + + if (isRTL) { + this.prev(); + } else { + this.next(); + } + } + }; + + _proto._getItemIndex = function _getItemIndex(element) { + this._items = element && element.parentNode ? SelectorEngine__default['default'].find(SELECTOR_ITEM, element.parentNode) : []; + return this._items.indexOf(element); + }; + + _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === DIRECTION_NEXT; + var isPrevDirection = direction === DIRECTION_PREV; + + var activeIndex = this._getItemIndex(activeElement); + + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; + + if (isGoingToWrap && !this._config.wrap) { + return activeElement; + } + + var delta = direction === DIRECTION_PREV ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; + return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; + }; + + _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { + var targetIndex = this._getItemIndex(relatedTarget); + + var fromIndex = this._getItemIndex(SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element)); + + return EventHandler__default['default'].trigger(this._element, EVENT_SLIDE, { + relatedTarget: relatedTarget, + direction: eventDirectionName, + from: fromIndex, + to: targetIndex + }); + }; + + _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + var activeIndicator = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE); + activeIndicator.removeAttribute('aria-current'); + var indicators = SelectorEngine__default['default'].find(SELECTOR_INDICATOR, this._indicatorsElement); + + for (var i = 0; i < indicators.length; i++) { + if (Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) === this._getItemIndex(element)) { + indicators[i].classList.add(CLASS_NAME_ACTIVE); + indicators[i].setAttribute('aria-current', 'true'); + break; + } + } + } + }; + + _proto._updateInterval = function _updateInterval() { + var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element); + + if (!element) { + return; + } + + var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); + + if (elementInterval) { + this._config.defaultInterval = this._config.defaultInterval || this._config.interval; + this._config.interval = elementInterval; + } else { + this._config.interval = this._config.defaultInterval || this._config.interval; + } + }; + + _proto._slide = function _slide(direction, element) { + var _this5 = this; + + var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element); + + var activeElementIndex = this._getItemIndex(activeElement); + + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + + var nextElementIndex = this._getItemIndex(nextElement); + + var isCycling = Boolean(this._interval); + var directionalClassName = direction === DIRECTION_NEXT ? CLASS_NAME_START : CLASS_NAME_END; + var orderClassName = direction === DIRECTION_NEXT ? CLASS_NAME_NEXT : CLASS_NAME_PREV; + var eventDirectionName = direction === DIRECTION_NEXT ? DIRECTION_LEFT : DIRECTION_RIGHT; + + if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) { + this._isSliding = false; + return; + } + + var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); + + if (slideEvent.defaultPrevented) { + return; + } + + if (!activeElement || !nextElement) { + // Some weirdness is happening, so we bail + return; + } + + this._isSliding = true; + + if (isCycling) { + this.pause(); + } + + this._setActiveIndicatorElement(nextElement); + + this._activeElement = nextElement; + + if (this._element.classList.contains(CLASS_NAME_SLIDE)) { + nextElement.classList.add(orderClassName); + reflow(nextElement); + activeElement.classList.add(directionalClassName); + nextElement.classList.add(directionalClassName); + var transitionDuration = getTransitionDurationFromElement(activeElement); + EventHandler__default['default'].one(activeElement, 'transitionend', function () { + nextElement.classList.remove(directionalClassName, orderClassName); + nextElement.classList.add(CLASS_NAME_ACTIVE); + activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName); + _this5._isSliding = false; + setTimeout(function () { + EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, { + relatedTarget: nextElement, + direction: eventDirectionName, + from: activeElementIndex, + to: nextElementIndex + }); + }, 0); + }); + emulateTransitionEnd(activeElement, transitionDuration); + } else { + activeElement.classList.remove(CLASS_NAME_ACTIVE); + nextElement.classList.add(CLASS_NAME_ACTIVE); + this._isSliding = false; + EventHandler__default['default'].trigger(this._element, EVENT_SLID, { + relatedTarget: nextElement, + direction: eventDirectionName, + from: activeElementIndex, + to: nextElementIndex + }); + } + + if (isCycling) { + this.cycle(); + } + } // Static + ; + + Carousel.carouselInterface = function carouselInterface(element, config) { + var data = Data__default['default'].getData(element, DATA_KEY); + + var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element)); + + if (typeof config === 'object') { + _config = _extends({}, _config, config); + } + + var action = typeof config === 'string' ? config : _config.slide; + + if (!data) { + data = new Carousel(element, _config); + } + + if (typeof config === 'number') { + data.to(config); + } else if (typeof action === 'string') { + if (typeof data[action] === 'undefined') { + throw new TypeError("No method named \"" + action + "\""); + } + + data[action](); + } else if (_config.interval && _config.ride) { + data.pause(); + data.cycle(); + } + }; + + Carousel.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + Carousel.carouselInterface(this, config); + }); + }; + + Carousel.dataApiClickHandler = function dataApiClickHandler(event) { + var target = getElementFromSelector(this); + + if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { + return; + } + + var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this)); + + var slideIndex = this.getAttribute('data-bs-slide-to'); + + if (slideIndex) { + config.interval = false; + } + + Carousel.carouselInterface(target, config); + + if (slideIndex) { + Data__default['default'].getData(target, DATA_KEY).to(slideIndex); + } + + event.preventDefault(); + }; + + _createClass(Carousel, null, [{ + key: "Default", + get: function get() { + return Default; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY; + } + }]); + + return Carousel; + }(BaseComponent__default['default']); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler); + EventHandler__default['default'].on(window, EVENT_LOAD_DATA_API, function () { + var carousels = SelectorEngine__default['default'].find(SELECTOR_DATA_RIDE); + + for (var i = 0, len = carousels.length; i < len; i++) { + Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY)); + } + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .Carousel to jQuery only if jQuery is present + */ + + defineJQueryPlugin(NAME, Carousel); + + return Carousel; + +}))); +//# sourceMappingURL=carousel.js.map +/*! + * Bootstrap collapse.js v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) : + typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base)); +}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); + var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler); + var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator); + var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); + var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent); + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + + _setPrototypeOf(subClass, superClass); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta2): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + var MILLISECONDS_MULTIPLIER = 1000; + var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + + var toType = function toType(obj) { + if (obj === null || obj === undefined) { + return "" + obj; + } + + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); + }; + + var getSelector = function getSelector(element) { + var selector = element.getAttribute('data-bs-target'); + + if (!selector || selector === '#') { + var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + } + + return selector; + }; + + var getSelectorFromElement = function getSelectorFromElement(element) { + var selector = getSelector(element); + + if (selector) { + return document.querySelector(selector) ? selector : null; + } + + return null; + }; + + var getElementFromSelector = function getElementFromSelector(element) { + var selector = getSelector(element); + return selector ? document.querySelector(selector) : null; + }; + + var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { + if (!element) { + return 0; + } // Get transition-duration of the element + + + var _window$getComputedSt = window.getComputedStyle(element), + transitionDuration = _window$getComputedSt.transitionDuration, + transitionDelay = _window$getComputedSt.transitionDelay; + + var floatTransitionDuration = Number.parseFloat(transitionDuration); + var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } // If multiple durations are defined, take the first + + + transitionDuration = transitionDuration.split(',')[0]; + transitionDelay = transitionDelay.split(',')[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; + }; + + var triggerTransitionEnd = function triggerTransitionEnd(element) { + element.dispatchEvent(new Event(TRANSITION_END)); + }; + + var isElement = function isElement(obj) { + return (obj[0] || obj).nodeType; + }; + + var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { + var called = false; + var durationPadding = 5; + var emulatedDuration = duration + durationPadding; + + function listener() { + called = true; + element.removeEventListener(TRANSITION_END, listener); + } + + element.addEventListener(TRANSITION_END, listener); + setTimeout(function () { + if (!called) { + triggerTransitionEnd(element); + } + }, emulatedDuration); + }; + + var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { + Object.keys(configTypes).forEach(function (property) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = value && isElement(value) ? 'element' : toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + } + }); + }; + + var reflow = function reflow(element) { + return element.offsetHeight; + }; + + var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; + } + + return null; + }; + + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + + document.documentElement.dir === 'rtl'; + + var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + var JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = function () { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'collapse'; + var DATA_KEY = 'bs.collapse'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var Default = { + toggle: true, + parent: '' + }; + var DefaultType = { + toggle: 'boolean', + parent: '(string|element)' + }; + var EVENT_SHOW = "show" + EVENT_KEY; + var EVENT_SHOWN = "shown" + EVENT_KEY; + var EVENT_HIDE = "hide" + EVENT_KEY; + var EVENT_HIDDEN = "hidden" + EVENT_KEY; + var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; + var CLASS_NAME_SHOW = 'show'; + var CLASS_NAME_COLLAPSE = 'collapse'; + var CLASS_NAME_COLLAPSING = 'collapsing'; + var CLASS_NAME_COLLAPSED = 'collapsed'; + var WIDTH = 'width'; + var HEIGHT = 'height'; + var SELECTOR_ACTIVES = '.show, .collapsing'; + var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Collapse = /*#__PURE__*/function (_BaseComponent) { + _inheritsLoose(Collapse, _BaseComponent); + + function Collapse(element, config) { + var _this; + + _this = _BaseComponent.call(this, element) || this; + _this._isTransitioning = false; + _this._config = _this._getConfig(config); + _this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-bs-target=\"#" + element.id + "\"]")); + var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE); + + for (var i = 0, len = toggleList.length; i < len; i++) { + var elem = toggleList[i]; + var selector = getSelectorFromElement(elem); + var filterElement = SelectorEngine__default['default'].find(selector).filter(function (foundElem) { + return foundElem === element; + }); + + if (selector !== null && filterElement.length) { + _this._selector = selector; + + _this._triggerArray.push(elem); + } + } + + _this._parent = _this._config.parent ? _this._getParent() : null; + + if (!_this._config.parent) { + _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray); + } + + if (_this._config.toggle) { + _this.toggle(); + } + + return _this; + } // Getters + + + var _proto = Collapse.prototype; + + // Public + _proto.toggle = function toggle() { + if (this._element.classList.contains(CLASS_NAME_SHOW)) { + this.hide(); + } else { + this.show(); + } + }; + + _proto.show = function show() { + var _this2 = this; + + if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { + return; + } + + var actives; + var activesData; + + if (this._parent) { + actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) { + if (typeof _this2._config.parent === 'string') { + return elem.getAttribute('data-bs-parent') === _this2._config.parent; + } + + return elem.classList.contains(CLASS_NAME_COLLAPSE); + }); + + if (actives.length === 0) { + actives = null; + } + } + + var container = SelectorEngine__default['default'].findOne(this._selector); + + if (actives) { + var tempActiveData = actives.find(function (elem) { + return container !== elem; + }); + activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null; + + if (activesData && activesData._isTransitioning) { + return; + } + } + + var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW); + + if (startEvent.defaultPrevented) { + return; + } + + if (actives) { + actives.forEach(function (elemActive) { + if (container !== elemActive) { + Collapse.collapseInterface(elemActive, 'hide'); + } + + if (!activesData) { + Data__default['default'].setData(elemActive, DATA_KEY, null); + } + }); + } + + var dimension = this._getDimension(); + + this._element.classList.remove(CLASS_NAME_COLLAPSE); + + this._element.classList.add(CLASS_NAME_COLLAPSING); + + this._element.style[dimension] = 0; + + if (this._triggerArray.length) { + this._triggerArray.forEach(function (element) { + element.classList.remove(CLASS_NAME_COLLAPSED); + element.setAttribute('aria-expanded', true); + }); + } + + this.setTransitioning(true); + + var complete = function complete() { + _this2._element.classList.remove(CLASS_NAME_COLLAPSING); + + _this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + + _this2._element.style[dimension] = ''; + + _this2.setTransitioning(false); + + EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN); + }; + + var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + var scrollSize = "scroll" + capitalizedDimension; + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler__default['default'].one(this._element, 'transitionend', complete); + emulateTransitionEnd(this._element, transitionDuration); + this._element.style[dimension] = this._element[scrollSize] + "px"; + }; + + _proto.hide = function hide() { + var _this3 = this; + + if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { + return; + } + + var startEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE); + + if (startEvent.defaultPrevented) { + return; + } + + var dimension = this._getDimension(); + + this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; + reflow(this._element); + + this._element.classList.add(CLASS_NAME_COLLAPSING); + + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW); + + var triggerArrayLength = this._triggerArray.length; + + if (triggerArrayLength > 0) { + for (var i = 0; i < triggerArrayLength; i++) { + var trigger = this._triggerArray[i]; + var elem = getElementFromSelector(trigger); + + if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) { + trigger.classList.add(CLASS_NAME_COLLAPSED); + trigger.setAttribute('aria-expanded', false); + } + } + } + + this.setTransitioning(true); + + var complete = function complete() { + _this3.setTransitioning(false); + + _this3._element.classList.remove(CLASS_NAME_COLLAPSING); + + _this3._element.classList.add(CLASS_NAME_COLLAPSE); + + EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN); + }; + + this._element.style[dimension] = ''; + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler__default['default'].one(this._element, 'transitionend', complete); + emulateTransitionEnd(this._element, transitionDuration); + }; + + _proto.setTransitioning = function setTransitioning(isTransitioning) { + this._isTransitioning = isTransitioning; + }; + + _proto.dispose = function dispose() { + _BaseComponent.prototype.dispose.call(this); + + this._config = null; + this._parent = null; + this._triggerArray = null; + this._isTransitioning = null; + } // Private + ; + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, Default, config); + config.toggle = Boolean(config.toggle); // Coerce string values + + typeCheckConfig(NAME, config, DefaultType); + return config; + }; + + _proto._getDimension = function _getDimension() { + return this._element.classList.contains(WIDTH) ? WIDTH : HEIGHT; + }; + + _proto._getParent = function _getParent() { + var _this4 = this; + + var parent = this._config.parent; + + if (isElement(parent)) { + // it's a jQuery object + if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') { + parent = parent[0]; + } + } else { + parent = SelectorEngine__default['default'].findOne(parent); + } + + var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]"; + SelectorEngine__default['default'].find(selector, parent).forEach(function (element) { + var selected = getElementFromSelector(element); + + _this4._addAriaAndCollapsedClass(selected, [element]); + }); + return parent; + }; + + _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { + if (!element || !triggerArray.length) { + return; + } + + var isOpen = element.classList.contains(CLASS_NAME_SHOW); + triggerArray.forEach(function (elem) { + if (isOpen) { + elem.classList.remove(CLASS_NAME_COLLAPSED); + } else { + elem.classList.add(CLASS_NAME_COLLAPSED); + } + + elem.setAttribute('aria-expanded', isOpen); + }); + } // Static + ; + + Collapse.collapseInterface = function collapseInterface(element, config) { + var data = Data__default['default'].getData(element, DATA_KEY); + + var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(element), typeof config === 'object' && config ? config : {}); + + if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { + _config.toggle = false; + } + + if (!data) { + data = new Collapse(element, _config); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }; + + Collapse.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + Collapse.collapseInterface(this, config); + }); + }; + + _createClass(Collapse, null, [{ + key: "Default", + get: function get() { + return Default; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY; + } + }]); + + return Collapse; + }(BaseComponent__default['default']); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + // preventDefault only for elements (which change the URL) not inside the collapsible element + if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { + event.preventDefault(); + } + + var triggerData = Manipulator__default['default'].getDataAttributes(this); + var selector = getSelectorFromElement(this); + var selectorElements = SelectorEngine__default['default'].find(selector); + selectorElements.forEach(function (element) { + var data = Data__default['default'].getData(element, DATA_KEY); + var config; + + if (data) { + // update parent attribute + if (data._parent === null && typeof triggerData.parent === 'string') { + data._config.parent = triggerData.parent; + data._parent = data._getParent(); + } + + config = 'toggle'; + } else { + config = triggerData; + } + + Collapse.collapseInterface(element, config); + }); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .Collapse to jQuery only if jQuery is present + */ + + defineJQueryPlugin(NAME, Collapse); + + return Collapse; + +}))); +//# sourceMappingURL=collapse.js.map +/*! + * Bootstrap dropdown.js v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) : + typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base)); +}(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { + return e[k]; + } + }); + } + }); + } + n['default'] = e; + return Object.freeze(n); + } + + var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper); + var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); + var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler); + var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator); + var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); + var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent); + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + + _setPrototypeOf(subClass, superClass); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta2): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + var toType = function toType(obj) { + if (obj === null || obj === undefined) { + return "" + obj; + } + + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); + }; + + var getSelector = function getSelector(element) { + var selector = element.getAttribute('data-bs-target'); + + if (!selector || selector === '#') { + var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + } + + return selector; + }; + + var getElementFromSelector = function getElementFromSelector(element) { + var selector = getSelector(element); + return selector ? document.querySelector(selector) : null; + }; + + var isElement = function isElement(obj) { + return (obj[0] || obj).nodeType; + }; + + var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { + Object.keys(configTypes).forEach(function (property) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = value && isElement(value) ? 'element' : toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + } + }); + }; + + var isVisible = function isVisible(element) { + if (!element) { + return false; + } + + if (element.style && element.parentNode && element.parentNode.style) { + var elementStyle = getComputedStyle(element); + var parentNodeStyle = getComputedStyle(element.parentNode); + return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden'; + } + + return false; + }; + + var noop = function noop() { + return function () {}; + }; + + var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; + } + + return null; + }; + + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + + var isRTL = document.documentElement.dir === 'rtl'; + + var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + var JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = function () { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'dropdown'; + var DATA_KEY = 'bs.dropdown'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var ESCAPE_KEY = 'Escape'; + var SPACE_KEY = 'Space'; + var TAB_KEY = 'Tab'; + var ARROW_UP_KEY = 'ArrowUp'; + var ARROW_DOWN_KEY = 'ArrowDown'; + var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button + + var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY); + var EVENT_HIDE = "hide" + EVENT_KEY; + var EVENT_HIDDEN = "hidden" + EVENT_KEY; + var EVENT_SHOW = "show" + EVENT_KEY; + var EVENT_SHOWN = "shown" + EVENT_KEY; + var EVENT_CLICK = "click" + EVENT_KEY; + var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; + var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY + DATA_API_KEY; + var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY + DATA_API_KEY; + var CLASS_NAME_DISABLED = 'disabled'; + var CLASS_NAME_SHOW = 'show'; + var CLASS_NAME_DROPUP = 'dropup'; + var CLASS_NAME_DROPEND = 'dropend'; + var CLASS_NAME_DROPSTART = 'dropstart'; + var CLASS_NAME_NAVBAR = 'navbar'; + var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]'; + var SELECTOR_FORM_CHILD = '.dropdown form'; + var SELECTOR_MENU = '.dropdown-menu'; + var SELECTOR_NAVBAR_NAV = '.navbar-nav'; + var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; + var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start'; + var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end'; + var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start'; + var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end'; + var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start'; + var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start'; + var Default = { + offset: [0, 2], + flip: true, + boundary: 'clippingParents', + reference: 'toggle', + display: 'dynamic', + popperConfig: null + }; + var DefaultType = { + offset: '(array|string|function)', + flip: 'boolean', + boundary: '(string|element)', + reference: '(string|element|object)', + display: 'string', + popperConfig: '(null|object|function)' + }; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Dropdown = /*#__PURE__*/function (_BaseComponent) { + _inheritsLoose(Dropdown, _BaseComponent); + + function Dropdown(element, config) { + var _this; + + _this = _BaseComponent.call(this, element) || this; + _this._popper = null; + _this._config = _this._getConfig(config); + _this._menu = _this._getMenuElement(); + _this._inNavbar = _this._detectNavbar(); + + _this._addEventListeners(); + + return _this; + } // Getters + + + var _proto = Dropdown.prototype; + + // Public + _proto.toggle = function toggle() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) { + return; + } + + var isActive = this._element.classList.contains(CLASS_NAME_SHOW); + + Dropdown.clearMenus(); + + if (isActive) { + return; + } + + this.show(); + }; + + _proto.show = function show() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) { + return; + } + + var parent = Dropdown.getParentFromElement(this._element); + var relatedTarget = { + relatedTarget: this._element + }; + var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, relatedTarget); + + if (showEvent.defaultPrevented) { + return; + } // Totally disable Popper for Dropdowns in Navbar + + + if (this._inNavbar) { + Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'none'); + } else { + if (typeof Popper__namespace === 'undefined') { + throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); + } + + var referenceElement = this._element; + + if (this._config.reference === 'parent') { + referenceElement = parent; + } else if (isElement(this._config.reference)) { + referenceElement = this._config.reference; // Check if it's jQuery element + + if (typeof this._config.reference.jquery !== 'undefined') { + referenceElement = this._config.reference[0]; + } + } else if (typeof this._config.reference === 'object') { + referenceElement = this._config.reference; + } + + var popperConfig = this._getPopperConfig(); + + var isDisplayStatic = popperConfig.modifiers.find(function (modifier) { + return modifier.name === 'applyStyles' && modifier.enabled === false; + }); + this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig); + + if (isDisplayStatic) { + Manipulator__default['default'].setDataAttribute(this._menu, 'popper', 'static'); + } + } // If this is a touch-enabled device we add extra + // empty mouseover listeners to the body's immediate children; + // only needed because of broken event delegation on iOS + // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html + + + if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) { + var _ref; + + (_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) { + return EventHandler__default['default'].on(elem, 'mouseover', null, noop()); + }); + } + + this._element.focus(); + + this._element.setAttribute('aria-expanded', true); + + this._menu.classList.toggle(CLASS_NAME_SHOW); + + this._element.classList.toggle(CLASS_NAME_SHOW); + + EventHandler__default['default'].trigger(this._element, EVENT_SHOWN, relatedTarget); + }; + + _proto.hide = function hide() { + if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) { + return; + } + + var relatedTarget = { + relatedTarget: this._element + }; + var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE, relatedTarget); + + if (hideEvent.defaultPrevented) { + return; + } + + if (this._popper) { + this._popper.destroy(); + } + + this._menu.classList.toggle(CLASS_NAME_SHOW); + + this._element.classList.toggle(CLASS_NAME_SHOW); + + Manipulator__default['default'].removeDataAttribute(this._menu, 'popper'); + EventHandler__default['default'].trigger(this._element, EVENT_HIDDEN, relatedTarget); + }; + + _proto.dispose = function dispose() { + _BaseComponent.prototype.dispose.call(this); + + EventHandler__default['default'].off(this._element, EVENT_KEY); + this._menu = null; + + if (this._popper) { + this._popper.destroy(); + + this._popper = null; + } + }; + + _proto.update = function update() { + this._inNavbar = this._detectNavbar(); + + if (this._popper) { + this._popper.update(); + } + } // Private + ; + + _proto._addEventListeners = function _addEventListeners() { + var _this2 = this; + + EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) { + event.preventDefault(); + event.stopPropagation(); + + _this2.toggle(); + }); + }; + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, this.constructor.Default, Manipulator__default['default'].getDataAttributes(this._element), config); + typeCheckConfig(NAME, config, this.constructor.DefaultType); + + if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { + // Popper virtual elements require a getBoundingClientRect method + throw new TypeError(NAME.toUpperCase() + ": Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method."); + } + + return config; + }; + + _proto._getMenuElement = function _getMenuElement() { + return SelectorEngine__default['default'].next(this._element, SELECTOR_MENU)[0]; + }; + + _proto._getPlacement = function _getPlacement() { + var parentDropdown = this._element.parentNode; + + if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { + return PLACEMENT_RIGHT; + } + + if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { + return PLACEMENT_LEFT; + } // We need to trim the value because custom properties can also include spaces + + + var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; + + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { + return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; + } + + return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; + }; + + _proto._detectNavbar = function _detectNavbar() { + return this._element.closest("." + CLASS_NAME_NAVBAR) !== null; + }; + + _proto._getOffset = function _getOffset() { + var _this3 = this; + + var offset = this._config.offset; + + if (typeof offset === 'string') { + return offset.split(',').map(function (val) { + return Number.parseInt(val, 10); + }); + } + + if (typeof offset === 'function') { + return function (popperData) { + return offset(popperData, _this3._element); + }; + } + + return offset; + }; + + _proto._getPopperConfig = function _getPopperConfig() { + var defaultBsPopperConfig = { + placement: this._getPlacement(), + modifiers: [{ + name: 'preventOverflow', + options: { + altBoundary: this._config.flip, + boundary: this._config.boundary + } + }, { + name: 'offset', + options: { + offset: this._getOffset() + } + }] + }; // Disable Popper if we have a static display + + if (this._config.display === 'static') { + defaultBsPopperConfig.modifiers = [{ + name: 'applyStyles', + enabled: false + }]; + } + + return _extends({}, defaultBsPopperConfig, typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig); + } // Static + ; + + Dropdown.dropdownInterface = function dropdownInterface(element, config) { + var data = Data__default['default'].getData(element, DATA_KEY); + + var _config = typeof config === 'object' ? config : null; + + if (!data) { + data = new Dropdown(element, _config); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }; + + Dropdown.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + Dropdown.dropdownInterface(this, config); + }); + }; + + Dropdown.clearMenus = function clearMenus(event) { + if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) { + return; + } + + var toggles = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE); + + for (var i = 0, len = toggles.length; i < len; i++) { + var context = Data__default['default'].getData(toggles[i], DATA_KEY); + var relatedTarget = { + relatedTarget: toggles[i] + }; + + if (event && event.type === 'click') { + relatedTarget.clickEvent = event; + } + + if (!context) { + continue; + } + + var dropdownMenu = context._menu; + + if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) { + continue; + } + + if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) { + continue; + } + + var hideEvent = EventHandler__default['default'].trigger(toggles[i], EVENT_HIDE, relatedTarget); + + if (hideEvent.defaultPrevented) { + continue; + } // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + + + if ('ontouchstart' in document.documentElement) { + var _ref2; + + (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (elem) { + return EventHandler__default['default'].off(elem, 'mouseover', null, noop()); + }); + } + + toggles[i].setAttribute('aria-expanded', 'false'); + + if (context._popper) { + context._popper.destroy(); + } + + dropdownMenu.classList.remove(CLASS_NAME_SHOW); + toggles[i].classList.remove(CLASS_NAME_SHOW); + Manipulator__default['default'].removeDataAttribute(dropdownMenu, 'popper'); + EventHandler__default['default'].trigger(toggles[i], EVENT_HIDDEN, relatedTarget); + } + }; + + Dropdown.getParentFromElement = function getParentFromElement(element) { + return getElementFromSelector(element) || element.parentNode; + }; + + Dropdown.dataApiKeydownHandler = function dataApiKeydownHandler(event) { + // If not input/textarea: + // - And not a key in REGEXP_KEYDOWN => not a dropdown command + // If input/textarea: + // - If space key => not a dropdown command + // - If key is other than escape + // - If key is not up or down => not a dropdown command + // - If trigger inside the menu => not a dropdown command + if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) { + return; + } + + event.preventDefault(); + event.stopPropagation(); + + if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) { + return; + } + + var parent = Dropdown.getParentFromElement(this); + var isActive = this.classList.contains(CLASS_NAME_SHOW); + + if (event.key === ESCAPE_KEY) { + var button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0]; + button.focus(); + Dropdown.clearMenus(); + return; + } + + if (!isActive && (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY)) { + var _button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine__default['default'].prev(this, SELECTOR_DATA_TOGGLE)[0]; + + _button.click(); + + return; + } + + if (!isActive || event.key === SPACE_KEY) { + Dropdown.clearMenus(); + return; + } + + var items = SelectorEngine__default['default'].find(SELECTOR_VISIBLE_ITEMS, parent).filter(isVisible); + + if (!items.length) { + return; + } + + var index = items.indexOf(event.target); // Up + + if (event.key === ARROW_UP_KEY && index > 0) { + index--; + } // Down + + + if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { + index++; + } // index is -1 if the first keydown is an ArrowUp + + + index = index === -1 ? 0 : index; + items[index].focus(); + }; + + _createClass(Dropdown, null, [{ + key: "Default", + get: function get() { + return Default; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY; + } + }]); + + return Dropdown; + }(BaseComponent__default['default']); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler); + EventHandler__default['default'].on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); + EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus); + EventHandler__default['default'].on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); + EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + event.preventDefault(); + event.stopPropagation(); + Dropdown.dropdownInterface(this, 'toggle'); + }); + EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) { + return e.stopPropagation(); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .Dropdown to jQuery only if jQuery is present + */ + + defineJQueryPlugin(NAME, Dropdown); + + return Dropdown; + +}))); +//# sourceMappingURL=dropdown.js.map +/*! + * Bootstrap modal.js v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) : + typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base)); +}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); + var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler); + var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator); + var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); + var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent); + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + + _setPrototypeOf(subClass, superClass); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta2): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + var MILLISECONDS_MULTIPLIER = 1000; + var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) + + var toType = function toType(obj) { + if (obj === null || obj === undefined) { + return "" + obj; + } + + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); + }; + + var getSelector = function getSelector(element) { + var selector = element.getAttribute('data-bs-target'); + + if (!selector || selector === '#') { + var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + } + + return selector; + }; + + var getElementFromSelector = function getElementFromSelector(element) { + var selector = getSelector(element); + return selector ? document.querySelector(selector) : null; + }; + + var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) { + if (!element) { + return 0; + } // Get transition-duration of the element + + + var _window$getComputedSt = window.getComputedStyle(element), + transitionDuration = _window$getComputedSt.transitionDuration, + transitionDelay = _window$getComputedSt.transitionDelay; + + var floatTransitionDuration = Number.parseFloat(transitionDuration); + var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found + + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } // If multiple durations are defined, take the first + + + transitionDuration = transitionDuration.split(',')[0]; + transitionDelay = transitionDelay.split(',')[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; + }; + + var triggerTransitionEnd = function triggerTransitionEnd(element) { + element.dispatchEvent(new Event(TRANSITION_END)); + }; + + var isElement = function isElement(obj) { + return (obj[0] || obj).nodeType; + }; + + var emulateTransitionEnd = function emulateTransitionEnd(element, duration) { + var called = false; + var durationPadding = 5; + var emulatedDuration = duration + durationPadding; + + function listener() { + called = true; + element.removeEventListener(TRANSITION_END, listener); + } + + element.addEventListener(TRANSITION_END, listener); + setTimeout(function () { + if (!called) { + triggerTransitionEnd(element); + } + }, emulatedDuration); + }; + + var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { + Object.keys(configTypes).forEach(function (property) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = value && isElement(value) ? 'element' : toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + } + }); + }; + + var isVisible = function isVisible(element) { + if (!element) { + return false; + } + + if (element.style && element.parentNode && element.parentNode.style) { + var elementStyle = getComputedStyle(element); + var parentNodeStyle = getComputedStyle(element.parentNode); + return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden'; + } + + return false; + }; + + var reflow = function reflow(element) { + return element.offsetHeight; + }; + + var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; + } + + return null; + }; + + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + + var isRTL = document.documentElement.dir === 'rtl'; + + var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + var JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = function () { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'modal'; + var DATA_KEY = 'bs.modal'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var ESCAPE_KEY = 'Escape'; + var Default = { + backdrop: true, + keyboard: true, + focus: true + }; + var DefaultType = { + backdrop: '(boolean|string)', + keyboard: 'boolean', + focus: 'boolean' + }; + var EVENT_HIDE = "hide" + EVENT_KEY; + var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY; + var EVENT_HIDDEN = "hidden" + EVENT_KEY; + var EVENT_SHOW = "show" + EVENT_KEY; + var EVENT_SHOWN = "shown" + EVENT_KEY; + var EVENT_FOCUSIN = "focusin" + EVENT_KEY; + var EVENT_RESIZE = "resize" + EVENT_KEY; + var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY; + var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY; + var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY; + var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY; + var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; + var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; + var CLASS_NAME_BACKDROP = 'modal-backdrop'; + var CLASS_NAME_OPEN = 'modal-open'; + var CLASS_NAME_FADE = 'fade'; + var CLASS_NAME_SHOW = 'show'; + var CLASS_NAME_STATIC = 'modal-static'; + var SELECTOR_DIALOG = '.modal-dialog'; + var SELECTOR_MODAL_BODY = '.modal-body'; + var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]'; + var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]'; + var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; + var SELECTOR_STICKY_CONTENT = '.sticky-top'; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Modal = /*#__PURE__*/function (_BaseComponent) { + _inheritsLoose(Modal, _BaseComponent); + + function Modal(element, config) { + var _this; + + _this = _BaseComponent.call(this, element) || this; + _this._config = _this._getConfig(config); + _this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element); + _this._backdrop = null; + _this._isShown = false; + _this._isBodyOverflowing = false; + _this._ignoreBackdropClick = false; + _this._isTransitioning = false; + _this._scrollbarWidth = 0; + return _this; + } // Getters + + + var _proto = Modal.prototype; + + // Public + _proto.toggle = function toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + }; + + _proto.show = function show(relatedTarget) { + var _this2 = this; + + if (this._isShown || this._isTransitioning) { + return; + } + + if (this._element.classList.contains(CLASS_NAME_FADE)) { + this._isTransitioning = true; + } + + var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, { + relatedTarget: relatedTarget + }); + + if (this._isShown || showEvent.defaultPrevented) { + return; + } + + this._isShown = true; + + this._checkScrollbar(); + + this._setScrollbar(); + + this._adjustDialog(); + + this._setEscapeEvent(); + + this._setResizeEvent(); + + EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { + return _this2.hide(event); + }); + EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () { + EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) { + if (event.target === _this2._element) { + _this2._ignoreBackdropClick = true; + } + }); + }); + + this._showBackdrop(function () { + return _this2._showElement(relatedTarget); + }); + }; + + _proto.hide = function hide(event) { + var _this3 = this; + + if (event) { + event.preventDefault(); + } + + if (!this._isShown || this._isTransitioning) { + return; + } + + var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE); + + if (hideEvent.defaultPrevented) { + return; + } + + this._isShown = false; + + var transition = this._element.classList.contains(CLASS_NAME_FADE); + + if (transition) { + this._isTransitioning = true; + } + + this._setEscapeEvent(); + + this._setResizeEvent(); + + EventHandler__default['default'].off(document, EVENT_FOCUSIN); + + this._element.classList.remove(CLASS_NAME_SHOW); + + EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS); + EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS); + + if (transition) { + var transitionDuration = getTransitionDurationFromElement(this._element); + EventHandler__default['default'].one(this._element, 'transitionend', function (event) { + return _this3._hideModal(event); + }); + emulateTransitionEnd(this._element, transitionDuration); + } else { + this._hideModal(); + } + }; + + _proto.dispose = function dispose() { + [window, this._element, this._dialog].forEach(function (htmlElement) { + return EventHandler__default['default'].off(htmlElement, EVENT_KEY); + }); + + _BaseComponent.prototype.dispose.call(this); + /** + * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` + * Do not move `document` in `htmlElements` array + * It will remove `EVENT_CLICK_DATA_API` event that should remain + */ + + + EventHandler__default['default'].off(document, EVENT_FOCUSIN); + this._config = null; + this._dialog = null; + this._backdrop = null; + this._isShown = null; + this._isBodyOverflowing = null; + this._ignoreBackdropClick = null; + this._isTransitioning = null; + this._scrollbarWidth = null; + }; + + _proto.handleUpdate = function handleUpdate() { + this._adjustDialog(); + } // Private + ; + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, Default, config); + typeCheckConfig(NAME, config, DefaultType); + return config; + }; + + _proto._showElement = function _showElement(relatedTarget) { + var _this4 = this; + + var transition = this._element.classList.contains(CLASS_NAME_FADE); + + var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog); + + if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { + // Don't move modal's DOM position + document.body.appendChild(this._element); + } + + this._element.style.display = 'block'; + + this._element.removeAttribute('aria-hidden'); + + this._element.setAttribute('aria-modal', true); + + this._element.setAttribute('role', 'dialog'); + + this._element.scrollTop = 0; + + if (modalBody) { + modalBody.scrollTop = 0; + } + + if (transition) { + reflow(this._element); + } + + this._element.classList.add(CLASS_NAME_SHOW); + + if (this._config.focus) { + this._enforceFocus(); + } + + var transitionComplete = function transitionComplete() { + if (_this4._config.focus) { + _this4._element.focus(); + } + + _this4._isTransitioning = false; + EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, { + relatedTarget: relatedTarget + }); + }; + + if (transition) { + var transitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler__default['default'].one(this._dialog, 'transitionend', transitionComplete); + emulateTransitionEnd(this._dialog, transitionDuration); + } else { + transitionComplete(); + } + }; + + _proto._enforceFocus = function _enforceFocus() { + var _this5 = this; + + EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop + + EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) { + if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) { + _this5._element.focus(); + } + }); + }; + + _proto._setEscapeEvent = function _setEscapeEvent() { + var _this6 = this; + + if (this._isShown) { + EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) { + if (_this6._config.keyboard && event.key === ESCAPE_KEY) { + event.preventDefault(); + + _this6.hide(); + } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) { + _this6._triggerBackdropTransition(); + } + }); + } else { + EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS); + } + }; + + _proto._setResizeEvent = function _setResizeEvent() { + var _this7 = this; + + if (this._isShown) { + EventHandler__default['default'].on(window, EVENT_RESIZE, function () { + return _this7._adjustDialog(); + }); + } else { + EventHandler__default['default'].off(window, EVENT_RESIZE); + } + }; + + _proto._hideModal = function _hideModal() { + var _this8 = this; + + this._element.style.display = 'none'; + + this._element.setAttribute('aria-hidden', true); + + this._element.removeAttribute('aria-modal'); + + this._element.removeAttribute('role'); + + this._isTransitioning = false; + + this._showBackdrop(function () { + document.body.classList.remove(CLASS_NAME_OPEN); + + _this8._resetAdjustments(); + + _this8._resetScrollbar(); + + EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN); + }); + }; + + _proto._removeBackdrop = function _removeBackdrop() { + this._backdrop.parentNode.removeChild(this._backdrop); + + this._backdrop = null; + }; + + _proto._showBackdrop = function _showBackdrop(callback) { + var _this9 = this; + + var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ''; + + if (this._isShown && this._config.backdrop) { + this._backdrop = document.createElement('div'); + this._backdrop.className = CLASS_NAME_BACKDROP; + + if (animate) { + this._backdrop.classList.add(animate); + } + + document.body.appendChild(this._backdrop); + EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) { + if (_this9._ignoreBackdropClick) { + _this9._ignoreBackdropClick = false; + return; + } + + if (event.target !== event.currentTarget) { + return; + } + + if (_this9._config.backdrop === 'static') { + _this9._triggerBackdropTransition(); + } else { + _this9.hide(); + } + }); + + if (animate) { + reflow(this._backdrop); + } + + this._backdrop.classList.add(CLASS_NAME_SHOW); + + if (!animate) { + callback(); + return; + } + + var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + EventHandler__default['default'].one(this._backdrop, 'transitionend', callback); + emulateTransitionEnd(this._backdrop, backdropTransitionDuration); + } else if (!this._isShown && this._backdrop) { + this._backdrop.classList.remove(CLASS_NAME_SHOW); + + var callbackRemove = function callbackRemove() { + _this9._removeBackdrop(); + + callback(); + }; + + if (this._element.classList.contains(CLASS_NAME_FADE)) { + var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop); + + EventHandler__default['default'].one(this._backdrop, 'transitionend', callbackRemove); + emulateTransitionEnd(this._backdrop, _backdropTransitionDuration); + } else { + callbackRemove(); + } + } else { + callback(); + } + }; + + _proto._triggerBackdropTransition = function _triggerBackdropTransition() { + var _this10 = this; + + var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED); + + if (hideEvent.defaultPrevented) { + return; + } + + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!isModalOverflowing) { + this._element.style.overflowY = 'hidden'; + } + + this._element.classList.add(CLASS_NAME_STATIC); + + var modalTransitionDuration = getTransitionDurationFromElement(this._dialog); + EventHandler__default['default'].off(this._element, 'transitionend'); + EventHandler__default['default'].one(this._element, 'transitionend', function () { + _this10._element.classList.remove(CLASS_NAME_STATIC); + + if (!isModalOverflowing) { + EventHandler__default['default'].one(_this10._element, 'transitionend', function () { + _this10._element.style.overflowY = ''; + }); + emulateTransitionEnd(_this10._element, modalTransitionDuration); + } + }); + emulateTransitionEnd(this._element, modalTransitionDuration); + + this._element.focus(); + } // ---------------------------------------------------------------------- + // the following methods are used to handle overflowing modals + // ---------------------------------------------------------------------- + ; + + _proto._adjustDialog = function _adjustDialog() { + var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + + if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) { + this._element.style.paddingLeft = this._scrollbarWidth + "px"; + } + + if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) { + this._element.style.paddingRight = this._scrollbarWidth + "px"; + } + }; + + _proto._resetAdjustments = function _resetAdjustments() { + this._element.style.paddingLeft = ''; + this._element.style.paddingRight = ''; + }; + + _proto._checkScrollbar = function _checkScrollbar() { + var rect = document.body.getBoundingClientRect(); + this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth; + this._scrollbarWidth = this._getScrollbarWidth(); + }; + + _proto._setScrollbar = function _setScrollbar() { + var _this11 = this; + + if (this._isBodyOverflowing) { + this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) { + return calculatedValue + _this11._scrollbarWidth; + }); + + this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) { + return calculatedValue - _this11._scrollbarWidth; + }); + + this._setElementAttributes('body', 'paddingRight', function (calculatedValue) { + return calculatedValue + _this11._scrollbarWidth; + }); + } + + document.body.classList.add(CLASS_NAME_OPEN); + }; + + _proto._setElementAttributes = function _setElementAttributes(selector, styleProp, callback) { + SelectorEngine__default['default'].find(selector).forEach(function (element) { + var actualValue = element.style[styleProp]; + var calculatedValue = window.getComputedStyle(element)[styleProp]; + Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue); + element.style[styleProp] = callback(Number.parseFloat(calculatedValue)) + 'px'; + }); + }; + + _proto._resetScrollbar = function _resetScrollbar() { + this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight'); + + this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight'); + + this._resetElementAttributes('body', 'paddingRight'); + }; + + _proto._resetElementAttributes = function _resetElementAttributes(selector, styleProp) { + SelectorEngine__default['default'].find(selector).forEach(function (element) { + var value = Manipulator__default['default'].getDataAttribute(element, styleProp); + + if (typeof value === 'undefined' && element === document.body) { + element.style[styleProp] = ''; + } else { + Manipulator__default['default'].removeDataAttribute(element, styleProp); + element.style[styleProp] = value; + } + }); + }; + + _proto._getScrollbarWidth = function _getScrollbarWidth() { + // thx d.walsh + var scrollDiv = document.createElement('div'); + scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + } // Static + ; + + Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) { + return this.each(function () { + var data = Data__default['default'].getData(this, DATA_KEY); + + var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this), typeof config === 'object' && config ? config : {}); + + if (!data) { + data = new Modal(this, _config); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](relatedTarget); + } + }); + }; + + _createClass(Modal, null, [{ + key: "Default", + get: function get() { + return Default; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY; + } + }]); + + return Modal; + }(BaseComponent__default['default']); + /** + * ------------------------------------------------------------------------ + * Data Api implementation + * ------------------------------------------------------------------------ + */ + + + EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { + var _this12 = this; + + var target = getElementFromSelector(this); + + if (this.tagName === 'A' || this.tagName === 'AREA') { + event.preventDefault(); + } + + EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) { + if (showEvent.defaultPrevented) { + // only register focus restorer if modal will actually get shown + return; + } + + EventHandler__default['default'].one(target, EVENT_HIDDEN, function () { + if (isVisible(_this12)) { + _this12.focus(); + } + }); + }); + var data = Data__default['default'].getData(target, DATA_KEY); + + if (!data) { + var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this)); + + data = new Modal(target, config); + } + + data.toggle(this); + }); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .Modal to jQuery only if jQuery is present + */ + + defineJQueryPlugin(NAME, Modal); + + return Modal; + +}))); +//# sourceMappingURL=modal.js.map +/*! + * Bootstrap popover.js v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) : + typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip)); +}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); + var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); + var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip); + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + + _setPrototypeOf(subClass, superClass); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta2): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; + } + + return null; + }; + + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + + document.documentElement.dir === 'rtl'; + + var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + var JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = function () { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'popover'; + var DATA_KEY = 'bs.popover'; + var EVENT_KEY = "." + DATA_KEY; + var CLASS_PREFIX = 'bs-popover'; + var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); + + var Default = _extends({}, Tooltip__default['default'].Default, { + placement: 'right', + offset: [0, 8], + trigger: 'click', + content: '', + template: '' + }); + + var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, { + content: '(string|element|function)' + }); + + var Event = { + HIDE: "hide" + EVENT_KEY, + HIDDEN: "hidden" + EVENT_KEY, + SHOW: "show" + EVENT_KEY, + SHOWN: "shown" + EVENT_KEY, + INSERTED: "inserted" + EVENT_KEY, + CLICK: "click" + EVENT_KEY, + FOCUSIN: "focusin" + EVENT_KEY, + FOCUSOUT: "focusout" + EVENT_KEY, + MOUSEENTER: "mouseenter" + EVENT_KEY, + MOUSELEAVE: "mouseleave" + EVENT_KEY + }; + var CLASS_NAME_FADE = 'fade'; + var CLASS_NAME_SHOW = 'show'; + var SELECTOR_TITLE = '.popover-header'; + var SELECTOR_CONTENT = '.popover-body'; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var Popover = /*#__PURE__*/function (_Tooltip) { + _inheritsLoose(Popover, _Tooltip); + + function Popover() { + return _Tooltip.apply(this, arguments) || this; + } + + var _proto = Popover.prototype; + + // Overrides + _proto.isWithContent = function isWithContent() { + return this.getTitle() || this._getContent(); + }; + + _proto.setContent = function setContent() { + var tip = this.getTipElement(); // we use append for html objects to maintain js events + + this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_TITLE, tip), this.getTitle()); + + var content = this._getContent(); + + if (typeof content === 'function') { + content = content.call(this._element); + } + + this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content); + tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW); + } // Private + ; + + _proto._addAttachmentClass = function _addAttachmentClass(attachment) { + this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment)); + }; + + _proto._getContent = function _getContent() { + return this._element.getAttribute('data-bs-content') || this.config.content; + }; + + _proto._cleanTipClass = function _cleanTipClass() { + var tip = this.getTipElement(); + var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX); + + if (tabClass !== null && tabClass.length > 0) { + tabClass.map(function (token) { + return token.trim(); + }).forEach(function (tClass) { + return tip.classList.remove(tClass); + }); + } + } // Static + ; + + Popover.jQueryInterface = function jQueryInterface(config) { + return this.each(function () { + var data = Data__default['default'].getData(this, DATA_KEY); + + var _config = typeof config === 'object' ? config : null; + + if (!data && /dispose|hide/.test(config)) { + return; + } + + if (!data) { + data = new Popover(this, _config); + Data__default['default'].setData(this, DATA_KEY, data); + } + + if (typeof config === 'string') { + if (typeof data[config] === 'undefined') { + throw new TypeError("No method named \"" + config + "\""); + } + + data[config](); + } + }); + }; + + _createClass(Popover, null, [{ + key: "Default", + get: // Getters + function get() { + return Default; + } + }, { + key: "NAME", + get: function get() { + return NAME; + } + }, { + key: "DATA_KEY", + get: function get() { + return DATA_KEY; + } + }, { + key: "Event", + get: function get() { + return Event; + } + }, { + key: "EVENT_KEY", + get: function get() { + return EVENT_KEY; + } + }, { + key: "DefaultType", + get: function get() { + return DefaultType; + } + }]); + + return Popover; + }(Tooltip__default['default']); + /** + * ------------------------------------------------------------------------ + * jQuery + * ------------------------------------------------------------------------ + * add .Popover to jQuery only if jQuery is present + */ + + + defineJQueryPlugin(NAME, Popover); + + return Popover; + +}))); +//# sourceMappingURL=popover.js.map +/*! + * Bootstrap scrollspy.js v5.0.0-beta2 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./base-component.js')) : + typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './base-component'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Base)); +}(this, (function (Data, EventHandler, Manipulator, SelectorEngine, BaseComponent) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); + var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler); + var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator); + var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); + var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent); + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + + _setPrototypeOf(subClass, superClass); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + /** + * -------------------------------------------------------------------------- + * Bootstrap (v5.0.0-beta2): util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + var MAX_UID = 1000000; + + var toType = function toType(obj) { + if (obj === null || obj === undefined) { + return "" + obj; + } + + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); + }; + /** + * -------------------------------------------------------------------------- + * Public Util Api + * -------------------------------------------------------------------------- + */ + + + var getUID = function getUID(prefix) { + do { + prefix += Math.floor(Math.random() * MAX_UID); + } while (document.getElementById(prefix)); + + return prefix; + }; + + var getSelector = function getSelector(element) { + var selector = element.getAttribute('data-bs-target'); + + if (!selector || selector === '#') { + var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + + if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) { + return null; + } // Just in case some CMS puts out a full URL with the anchor appended + + + if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) { + hrefAttr = '#' + hrefAttr.split('#')[1]; + } + + selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null; + } + + return selector; + }; + + var getSelectorFromElement = function getSelectorFromElement(element) { + var selector = getSelector(element); + + if (selector) { + return document.querySelector(selector) ? selector : null; + } + + return null; + }; + + var isElement = function isElement(obj) { + return (obj[0] || obj).nodeType; + }; + + var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) { + Object.keys(configTypes).forEach(function (property) { + var expectedTypes = configTypes[property]; + var value = config[property]; + var valueType = value && isElement(value) ? 'element' : toType(value); + + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); + } + }); + }; + + var getjQuery = function getjQuery() { + var _window = window, + jQuery = _window.jQuery; + + if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return jQuery; + } + + return null; + }; + + var onDOMContentLoaded = function onDOMContentLoaded(callback) { + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', callback); + } else { + callback(); + } + }; + + document.documentElement.dir === 'rtl'; + + var defineJQueryPlugin = function defineJQueryPlugin(name, plugin) { + onDOMContentLoaded(function () { + var $ = getjQuery(); + /* istanbul ignore if */ + + if ($) { + var JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + + $.fn[name].noConflict = function () { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + + /** + * ------------------------------------------------------------------------ + * Constants + * ------------------------------------------------------------------------ + */ + + var NAME = 'scrollspy'; + var DATA_KEY = 'bs.scrollspy'; + var EVENT_KEY = "." + DATA_KEY; + var DATA_API_KEY = '.data-api'; + var Default = { + offset: 10, + method: 'auto', + target: '' + }; + var DefaultType = { + offset: 'number', + method: 'string', + target: '(string|element)' + }; + var EVENT_ACTIVATE = "activate" + EVENT_KEY; + var EVENT_SCROLL = "scroll" + EVENT_KEY; + var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY; + var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; + var CLASS_NAME_ACTIVE = 'active'; + var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; + var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; + var SELECTOR_NAV_LINKS = '.nav-link'; + var SELECTOR_NAV_ITEMS = '.nav-item'; + var SELECTOR_LIST_ITEMS = '.list-group-item'; + var SELECTOR_DROPDOWN = '.dropdown'; + var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; + var METHOD_OFFSET = 'offset'; + var METHOD_POSITION = 'position'; + /** + * ------------------------------------------------------------------------ + * Class Definition + * ------------------------------------------------------------------------ + */ + + var ScrollSpy = /*#__PURE__*/function (_BaseComponent) { + _inheritsLoose(ScrollSpy, _BaseComponent); + + function ScrollSpy(element, config) { + var _this; + + _this = _BaseComponent.call(this, element) || this; + _this._scrollElement = element.tagName === 'BODY' ? window : element; + _this._config = _this._getConfig(config); + _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM; + _this._offsets = []; + _this._targets = []; + _this._activeTarget = null; + _this._scrollHeight = 0; + EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function () { + return _this._process(); + }); + + _this.refresh(); + + _this._process(); + + return _this; + } // Getters + + + var _proto = ScrollSpy.prototype; + + // Public + _proto.refresh = function refresh() { + var _this2 = this; + + var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; + var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; + var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; + this._offsets = []; + this._targets = []; + this._scrollHeight = this._getScrollHeight(); + var targets = SelectorEngine__default['default'].find(this._selector); + targets.map(function (element) { + var targetSelector = getSelectorFromElement(element); + var target = targetSelector ? SelectorEngine__default['default'].findOne(targetSelector) : null; + + if (target) { + var targetBCR = target.getBoundingClientRect(); + + if (targetBCR.width || targetBCR.height) { + return [Manipulator__default['default'][offsetMethod](target).top + offsetBase, targetSelector]; + } + } + + return null; + }).filter(function (item) { + return item; + }).sort(function (a, b) { + return a[0] - b[0]; + }).forEach(function (item) { + _this2._offsets.push(item[0]); + + _this2._targets.push(item[1]); + }); + }; + + _proto.dispose = function dispose() { + _BaseComponent.prototype.dispose.call(this); + + EventHandler__default['default'].off(this._scrollElement, EVENT_KEY); + this._scrollElement = null; + this._config = null; + this._selector = null; + this._offsets = null; + this._targets = null; + this._activeTarget = null; + this._scrollHeight = null; + } // Private + ; + + _proto._getConfig = function _getConfig(config) { + config = _extends({}, Default, typeof config === 'object' && config ? config : {}); + + if (typeof config.target !== 'string' && isElement(config.target)) { + var id = config.target.id; + + if (!id) { + id = getUID(NAME); + config.target.id = id; + } + + config.target = "#" + id; + } + + typeCheckConfig(NAME, config, DefaultType); + return config; + }; + + _proto._getScrollTop = function _getScrollTop() { + return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; + }; + + _proto._getScrollHeight = function _getScrollHeight() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); + }; + + _proto._getOffsetHeight = function _getOffsetHeight() { + return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; + }; + + _proto._process = function _process() { + var scrollTop = this._getScrollTop() + this._config.offset; + + var scrollHeight = this._getScrollHeight(); + + var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); + + if (this._scrollHeight !== scrollHeight) { + this.refresh(); + } + + if (scrollTop >= maxScroll) { + var target = this._targets[this._targets.length - 1]; + + if (this._activeTarget !== target) { + this._activate(target); + } + + return; + } + + if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { + this._activeTarget = null; + + this._clear(); + + return; + } + + for (var i = this._offsets.length; i--;) { + var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); + + if (isActiveTarget) { + this._activate(this._targets[i]); + } + } + }; + + _proto._activate = function _activate(target) { + this._activeTarget = target; + + this._clear(); + + var queries = this._selector.split(',').map(function (selector) { + return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; + }); + + var link = SelectorEngine__default['default'].findOne(queries.join(',')); + + if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { + SelectorEngine__default['default'].findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE); + link.classList.add(CLASS_NAME_ACTIVE); + } else { + // Set triggered link as active + link.classList.add(CLASS_NAME_ACTIVE); + SelectorEngine__default['default'].parents(link, SELECTOR_NAV_LIST_GROUP).forEach(function (listGroup) { + // Set triggered links parents as active + // With both