vbapm 0.6.15 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -0
- package/addins/build/vbapm.xlam +0 -0
- package/lib/actions/add-source.d.ts +11 -0
- package/lib/add-source-_Z4tr2ea.js +17 -0
- package/lib/bin/vbapm-add.d.ts +2 -0
- package/lib/build-project-CIZanDh1.js +3 -0
- package/lib/{build-target-D6L5nsgt.js → build-target-B03OPzeI.js} +1 -1
- package/lib/{create-project-CPIRr0DV.js → create-project-CTAlegO8.js} +1 -1
- package/lib/debug.js +1 -1
- package/lib/errors.d.ts +4 -0
- package/lib/export-project-DdTYRyAw.js +4 -0
- package/lib/export-target-CEupP86g.js +4 -0
- package/lib/{get-target-CH6IpAa1.js → get-target-Ba_ZoGUl.js} +1 -1
- package/lib/index-CB6KQLC7.js +13 -0
- package/lib/{index-D-khpcjL.js → index-Cwtynogk.js} +9 -9
- package/lib/index-_8uEunjn.js +6 -0
- package/lib/{index-Dg07BXJE.js → index-mBZsirl0.js} +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -1
- package/lib/init-project-BY-a8CIk.js +15 -0
- package/lib/installer-C0iBwEpK.js +9 -0
- package/lib/{load-from-project-Bpb6Ne_i.js → load-from-project-wNJg8fme.js} +1 -1
- package/lib/one_ini_bg.wasm +0 -0
- package/lib/project-DFh-2QTw.js +20 -0
- package/lib/{run-macro-D_9-BO3U.js → run-macro-Ck_8Iku3.js} +1 -1
- package/lib/sat-solver-CqS8Vf6C.js +1 -0
- package/lib/test-project-CM-XUOdH.js +1 -0
- package/lib/toml-patch-r8oqFm0h.js +3 -0
- package/lib/transform-target-DJmqMjY0.js +2 -0
- package/lib/vbapm-add-QPN5uEGK.js +16 -0
- package/lib/vbapm-build-BKtQ6OeP.js +9 -0
- package/lib/vbapm-export-4H_qDinP.js +7 -0
- package/lib/{vbapm-init-csKsZ87H.js → vbapm-init-BMY4x_xq.js} +1 -1
- package/lib/{vbapm-new-Dt0tX1xQ.js → vbapm-new-DLW9SdvJ.js} +1 -1
- package/lib/{vbapm-run-Ccciwg2y.js → vbapm-run-DzRxAhlD.js} +2 -2
- package/lib/{vbapm-test-u7AWC-AV.js → vbapm-test-DInh0MDC.js} +1 -1
- package/lib/vbapm-version-3Xv7JjGv.js +8 -0
- package/lib/vbapm.js +2 -1
- package/package.json +124 -137
- package/lib/build-project-BczswKQl.js +0 -3
- package/lib/export-project-DQ3bfvbV.js +0 -4
- package/lib/export-target-CN6RA_mA.js +0 -4
- package/lib/index-DXFu_Z-o.js +0 -6
- package/lib/init-project-dRuDA4YO.js +0 -15
- package/lib/installer-CJlDenLg.js +0 -9
- package/lib/project-C3bWzV0O.js +0 -29
- package/lib/sat-solver-5AniWyxz.js +0 -1
- package/lib/test-project-BTkTNZXs.js +0 -1
- package/lib/toml-patch.es-CxrbsPnB.js +0 -3
- package/lib/transform-target-Doak2S1q.js +0 -2
- package/lib/vbapm-build-B1OOy6VL.js +0 -9
- package/lib/vbapm-export-vvUDCDqi.js +0 -7
- package/lib/vbapm-version-Bsb-cWCD.js +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var require$$5=require("assert"),_commonjsHelpers=require("./_commonjsHelpers-Bjf42z7h.js"),index$1=require("./installer-C0iBwEpK.js"),index=require("./index-CB6KQLC7.js"),project=require("./project-DFh-2QTw.js");function _mergeNamespaces(e,r){return r.forEach(function(r){r&&"string"!=typeof r&&!Array.isArray(r)&&Object.keys(r).forEach(function(t){if("default"!==t&&!(t in e)){var i=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:function(){return r[t]}})}})}),Object.freeze(e)}require("child_process"),require("util"),require("path"),require("fs"),require("crypto"),require("events"),require("os"),require("constants"),require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("querystring");var minisat={exports:{}},hasRequiredMinisat;function requireMinisat(){return hasRequiredMinisat||(hasRequiredMinisat=1,function(module){var C_MINISAT;C_MINISAT=function(){var module={},require=function(){},process={argv:["node","minisat"],on:function(){},stdout:{write:function(e){console.log("MINISAT-out:",e.replace(/\n$/,""))}},stderr:{write:function(e){console.log("MINISAT-err:",e.replace(/\n$/,""))}}},Module;Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=function(e){process.stdout.write(e+"\n")}),Module.printErr||(Module.printErr=function(e){process.stderr.write(e+"\n")});var nodeFS=require(),nodePath=require();Module.read=function(e,r){e=nodePath.normalize(e);var t=nodeFS.readFileSync(e);return t||e==nodePath.resolve(e)||(e=path.join(__dirname,"..","src",e),t=nodeFS.readFileSync(e)),t&&!r&&(t=t.toString()),t},Module.readBinary=function(e){return Module.read(e,!0)},Module.load=function(e){globalEval(read(e))},process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program",Module.arguments=process.argv.slice(2),void 0!==module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e})}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available (jsc?)"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert("object"==typeof r),r},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),this.Module=Module;else{if(!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.log(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}Module.load=importScripts}function globalEval(e){eval.call(null,e)}for(var key in!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[],moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);var Runtime={setTempRet0:function(e){tempRet0=e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":case"float":return 4;case"i64":case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var r=parseInt(e.substr(1));return assert(r%8==0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,getAlignSize:function(e,r,t){return t||"i64"!=e&&"double"!=e?e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8):8},dynCall:function(e,r,t){return t&&t.length?(t.splice||(t=Array.prototype.slice.call(t)),t.splice(0,0,r),Module["dynCall_"+e].apply(null,t)):Module["dynCall_"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r<Runtime.functionPointers.length;r++)if(!Runtime.functionPointers[r])return Runtime.functionPointers[r]=e,2*(1+r);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},getAsmConst:function(code,numArgs){Runtime.asmConstCache||(Runtime.asmConstCache={});var func=Runtime.asmConstCache[code];if(func)return func;for(var args=[],i=0;i<numArgs;i++)args.push(String.fromCharCode(36)+i);var source=Pointer_stringify(code);'"'===source[0]&&(source.indexOf('"',1)===source.length-1?source=source.substr(1,source.length-2):abort("invalid EM_ASM input |"+source+"|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)"));try{var evalled=eval("(function(Module, FS) { return function("+args.join(",")+"){ "+source+" } })")(Module,void 0!==FS?FS:null)}catch(e){throw Module.printErr("error in executing inline EM_ASM code: "+e+" on: \n\n"+source+"\n\nwith args |"+args+"| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)"),e}return Runtime.asmConstCache[code]=evalled},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,r){assert(r),Runtime.funcWrappers[r]||(Runtime.funcWrappers[r]={});var t=Runtime.funcWrappers[r];return t[e]||(t[e]=function(){return Runtime.dynCall(r,e,arguments)}),t[e]},UTF8Processor:function(){var e=[],r=0;this.processCChar=function(t){if(t&=255,0==e.length)return 128&t?(e.push(t),r=192==(224&t)?1:224==(240&t)?2:3,""):String.fromCharCode(t);if(r&&(e.push(t),--r>0))return"";var i,n=e[0],a=e[1],o=e[2],u=e[3];if(2==e.length)i=String.fromCharCode((31&n)<<6|63&a);else if(3==e.length)i=String.fromCharCode((15&n)<<12|(63&a)<<6|63&o);else{var f=(7&n)<<18|(63&a)<<12|(63&o)<<6|63&u;i=String.fromCharCode(55296+((f-65536)/1024|0),(f-65536)%1024+56320)}return e.length=0,i},this.processJSString=function(e){e=unescape(encodeURIComponent(e));for(var r=[],t=0;t<e.length;t++)r.push(e.charCodeAt(t));return r}},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var r=STACKTOP;return STACKTOP=(STACKTOP=STACKTOP+e|0)+15&-16,r},staticAlloc:function(e){var r=STATICTOP;return STATICTOP=(STATICTOP=STATICTOP+e|0)+15&-16,r},dynamicAlloc:function(e){var r=DYNAMICTOP;return(DYNAMICTOP=(DYNAMICTOP=DYNAMICTOP+e|0)+15&-16)>=TOTAL_MEMORY&&enlargeMemory(),r},alignMemory:function(e,r){return e=Math.ceil(e/(r||16))*(r||16)},makeBigInt:function(e,r,t){return t?+(e>>>0)+4294967296*+(r>>>0):+(e>>>0)+4294967296*+(0|r)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=!1,tempDouble,tempI64,tempRet0,cwrap,ccall;function assert(e,r){e||abort("Assertion failed: "+r)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,r,t,i){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":HEAP8[e|0]=r;break;case"i16":HEAP16[e>>1]=r;break;case"i32":HEAP32[e>>2]=r;break;case"i64":tempI64=[r>>>0,(tempDouble=r,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>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]=r;break;case"double":HEAPF64[e>>3]=r;break;default:abort("invalid type for setValue: "+t)}}function getValue(e,r,t){switch("*"===(r=r||"i8").charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":return HEAP8[e|0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+r)}return null}(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var r=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,r),r},stringToC:function(e){var r=0;return null!=e&&0!==e&&writeStringToMemory(e,r=Runtime.stackAlloc(1+(e.length<<2))),r}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,t,i){var n=getCFunc(e),a=[],o=0;if(i)for(var u=0;u<i.length;u++){var f=toC[t[u]];f?(0===o&&(o=Runtime.stackSave()),a[u]=f(i[u])):a[u]=i[u]}var s=n.apply(null,a);return"string"===r&&(s=Pointer_stringify(s)),0!==o&&Runtime.stackRestore(o),s};var sourceRegex=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(e){var r=e.toString().match(sourceRegex).slice(1);return{arguments:r[0],body:r[1],returnValue:r[2]}}var JSsource={};for(var fun in JSfuncs)JSfuncs.hasOwnProperty(fun)&&(JSsource[fun]=parseJSFunc(JSfuncs[fun]));cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(e){return"number"===e}),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(e,r){return"$"+r}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"="+convertCode.returnValue+";"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}})(),Module.cwrap=cwrap,Module.ccall=ccall,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;function allocate(e,r,t,i){var n,a;"number"==typeof e?(n=!0,a=e):(n=!1,a=e.length);var o,u="string"==typeof r?r:null;if(o=t==ALLOC_NONE?i:[_malloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===t?ALLOC_STATIC:t](Math.max(a,u?1:r.length)),n){var f;i=o;for(assert(!(3&o)),f=o+(-4&a);i<f;i+=4)HEAP32[i>>2]=0;for(f=o+a;i<f;)HEAP8[i++|0]=0;return o}if("i8"===u)return e.subarray||e.slice?HEAPU8.set(e,o):HEAPU8.set(new Uint8Array(e),o),o;for(var s,l,c,h=0;h<a;){var d=e[h];"function"==typeof d&&(d=Runtime.getFunctionIndex(d)),0!==(s=u||r[h])?("i64"==s&&(s="i32"),setValue(o+h,d,s),c!==s&&(l=Runtime.getNativeTypeSize(s),c=s),h+=l):h++}return o}function Pointer_stringify(e,r){if(0===r||!e)return"";for(var t,i=!1,n=0;;){if((t=HEAPU8[e+n|0])>=128)i=!0;else if(0==t&&!r)break;if(n++,r&&n==r)break}r||(r=n);var a="";if(!i){for(var o,u=1024;r>0;)o=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(r,u))),a=a?a+o:o,e+=u,r-=u;return a}var f=new Runtime.UTF8Processor;for(n=0;n<r;n++)t=HEAPU8[e+n|0],a+=f.processCChar(t);return a}function UTF16ToString(e){for(var r=0,t="";;){var i=HEAP16[e+2*r>>1];if(0==i)return t;++r,t+=String.fromCharCode(i)}}function stringToUTF16(e,r){for(var t=0;t<e.length;++t){var i=e.charCodeAt(t);HEAP16[r+2*t>>1]=i}HEAP16[r+2*e.length>>1]=0}function UTF32ToString(e){for(var r=0,t="";;){var i=HEAP32[e+4*r>>2];if(0==i)return t;if(++r,i>=65536){var n=i-65536;t+=String.fromCharCode(55296|n>>10,56320|1023&n)}else t+=String.fromCharCode(i)}}function stringToUTF32(e,r){for(var t=0,i=0;i<e.length;++i){var n=e.charCodeAt(i);if(n>=55296&&n<=57343)n=65536+((1023&n)<<10)|1023&e.charCodeAt(++i);HEAP32[r+4*t>>2]=n,++t}HEAP32[r+4*t>>2]=0}function demangle(e){var r=!!Module.___cxa_demangle;if(r)try{var t=_malloc(e.length);writeStringToMemory(e.substr(1),t);var i=_malloc(4),n=Module.___cxa_demangle(t,0,0,i);if(0===getValue(i,"i32")&&n)return Pointer_stringify(n)}catch(e){}finally{t&&_free(t),i&&_free(i),n&&_free(n)}var a=3,o={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},u=[],f=!0;var s=e;try{if("Object._main"==e||"_main"==e)return"main()";if("number"==typeof e&&(e=Pointer_stringify(e)),"_"!==e[0])return e;if("_"!==e[1])return e;if("Z"!==e[2])return e;switch(e[3]){case"n":return"operator new()";case"d":return"operator delete()"}s=function r(t,i,n){i=i||1/0;var s,l="",c=[];if("N"===e[a]){if(s=function(){a++,"K"===e[a]&&a++;for(var r=[];"E"!==e[a];)if("S"!==e[a])if("C"!==e[a]){var t=parseInt(e.substr(a)),i=t.toString().length;if(!t||!i){a--;break}var n=e.substr(a+i,t);r.push(n),u.push(n),a+=i+t}else r.push(r[r.length-1]),a+=2;else{a++;var o=e.indexOf("_",a),f=e.substring(a,o)||0;r.push(u[f]||"?"),a=o+1}return a++,r}().join("::"),0===--i)return t?[s]:s}else if(("K"===e[a]||f&&"L"===e[a])&&a++,p=parseInt(e.substr(a))){var h=p.toString().length;s=e.substr(a+h,p),a+=h+p}if(f=!1,"I"===e[a]){a++;var d=r(!0);l+=r(!0,1,!0)[0]+" "+s+"<"+d.join(", ")+">"}else l=s;e:for(;a<e.length&&i-- >0;){var _=e[a++];if(_ in o)c.push(o[_]);else switch(_){case"P":c.push(r(!0,1,!0)[0]+"*");break;case"R":c.push(r(!0,1,!0)[0]+"&");break;case"L":a++;var p=e.indexOf("E",a)-a;c.push(e.substr(a,p)),a+=p+2;break;case"A":if(p=parseInt(e.substr(a)),a+=p.toString().length,"_"!==e[a])throw"?";a++,c.push(r(!0,1,!0)[0]+" ["+p+"]");break;case"E":break e;default:l+="?"+_;break e}}return n||1!==c.length||"void"!==c[0]||(c=[]),t?(l&&c.push(l+"?"),c):l+"("+c.join(", ")+")"}()}catch(e){s+="?"}return s.indexOf("?")>=0&&!r&&Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),s}function demangleAll(e){return e.replace(/__Z[\w\d_]+/g,function(e){var r=demangle(e);return e===r?e:e+" ["+r+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(r){e=r}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){return demangleAll(jsStackTrace())}Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.Pointer_stringify=Pointer_stringify,Module.UTF16ToString=UTF16ToString,Module.stringToUTF16=stringToUTF16,Module.UTF32ToString=UTF32ToString,Module.stringToUTF32=stringToUTF32,Module.stackTrace=stackTrace;var PAGE_SIZE=4096,HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function alignMemoryPage(e){return e+4095&-4096}var STATIC_BASE=0,STATICTOP=0,STACK_BASE=0,STACKTOP=0,STACK_MAX=0,DYNAMIC_BASE=0,DYNAMICTOP=0;function enlargeMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.")}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||67108864;Module.FAST_MEMORY;for(var totalMemory=65536;totalMemory<TOTAL_MEMORY||totalMemory<2*TOTAL_STACK;)totalMemory<16777216?totalMemory*=2:totalMemory+=16777216;totalMemory!==TOTAL_MEMORY&&(Module.printErr("increasing TOTAL_MEMORY to "+totalMemory+" to be compliant with the asm.js spec"),TOTAL_MEMORY=totalMemory),assert("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer=new ArrayBuffer(TOTAL_MEMORY);function callRuntimeCallbacks(e){for(;e.length>0;){var r=e.shift();if("function"!=typeof r){var t=r.func;"number"==typeof t?void 0===r.arg?Runtime.dynCall("v",t):Runtime.dynCall("vi",t,[r.arg]):t(void 0===r.arg?null:r.arg)}else r()}}HEAP8=new Int8Array(buffer),HEAP16=new Int16Array(buffer),HEAP32=new Int32Array(buffer),HEAPU8=new Uint8Array(buffer),HEAPU16=new Uint16Array(buffer),HEAPU32=new Uint32Array(buffer),HEAPF32=new Float32Array(buffer),HEAPF64=new Float64Array(buffer),HEAP32[0]=255,assert(255===HEAPU8[0]&&0===HEAPU8[3],"Typed arrays 2 must be run on a little-endian system"),Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!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 ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__)}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 addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,r,t){var i=(new Runtime.UTF8Processor).processJSString(e);return t&&(i.length=t),r||i.push(0),i}function intArrayToString(e){for(var r=[],t=0;t<e.length;t++){var i=e[t];i>255&&(i&=255),r.push(String.fromCharCode(i))}return r.join("")}function writeStringToMemory(e,r,t){for(var i=intArrayFromString(e,t),n=0;n<i.length;){var a=i[n];HEAP8[r+n|0]=a,n+=1}}function writeArrayToMemory(e,r){for(var t=0;t<e.length;t++)HEAP8[r+t|0]=e[t]}function writeAsciiToMemory(e,r,t){for(var i=0;i<e.length;i++)HEAP8[r+i|0]=e.charCodeAt(i);t||(HEAP8[r+e.length|0]=0)}function unSign(e,r,t){return e>=0?e:r<=32?2*Math.abs(1<<r-1)+e:Math.pow(2,r)+e}function reSign(e,r,t){if(e<=0)return e;var i=r<=32?Math.abs(1<<r-1):Math.pow(2,r-1);return e>=i&&(r<=32||e>i)&&(e=-2*i+e),e}Module.addOnPreRun=Module.addOnPreRun=addOnPreRun,Module.addOnInit=Module.addOnInit=addOnInit,Module.addOnPreMain=Module.addOnPreMain=addOnPreMain,Module.addOnExit=Module.addOnExit=addOnExit,Module.addOnPostRun=Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var t=65535&e,i=65535&r;return t*i+((e>>>16)*i+t*(r>>>16)<<16)|0}),Math.imul=Math.imul;var Math_abs=Math.abs,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_min=Math.min,runDependencies=0,dependenciesFulfilled=null;function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&dependenciesFulfilled){var r=dependenciesFulfilled;dependenciesFulfilled=null,r()}}Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={},STATIC_BASE=8,STATICTOP=STATIC_BASE+5664,__ATINIT__.push({func:function(){__GLOBAL__I_a()}},{func:function(){__GLOBAL__I_a127()}}),allocate([78,55,77,105,110,105,115,97,116,50,48,79,117,116,79,102,77,101,109,111,114,121,69,120,99,101,112,116,105,111,110,69,0,0,0,0,0,0,0,0,88,18,0,0,8,0,0,0,78,55,77,105,110,105,115,97,116,54,79,112,116,105,111,110,69,0,0,0,0,0,0,0,88,18,0,0,56,0,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,0,0,0,0,80,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,78,55,77,105,110,105,115,97,116,49,48,66,111,111,108,79,112,116,105,111,110,69,0,0,128,18,0,0,176,0,0,0,80,0,0,0,0,0,0,0,32,32,45,37,115,44,32,45,110,111,45,37,115,0,0,0,40,100,101,102,97,117,108,116,58,32,37,115,41,10,0,0,111,110,0,0,0,0,0,0,111,102,102,0,0,0,0,0,110,111,45,0,0,0,0,0,0,0,0,0,64,1,0,0,1,0,0,0,4,0,0,0,2,0,0,0,2,0,0,0,78,55,77,105,110,105,115,97,116,57,73,110,116,79,112,116,105,111,110,69,0,0,0,0,128,18,0,0,40,1,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,91,0,0,0,0,0,0,0,105,109,105,110,0,0,0,0,37,52,100,0,0,0,0,0,32,46,46,32,0,0,0,0,105,109,97,120,0,0,0,0,93,32,40,100,101,102,97,117,108,116,58,32,37,100,41,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,97,114,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,118,97,114,105,97,98,108,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,97,45,100,101,99,97,121,0,0,0,0,0,0,0,84,104,101,32,99,108,97,117,115,101,32,97,99,116,105,118,105,116,121,32,100,101,99,97,121,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,102,114,101,113,0,0,0,0,0,0,0,0,84,104,101,32,102,114,101,113,117,101,110,99,121,32,119,105,116,104,32,119,104,105,99,104,32,116,104,101,32,100,101,99,105,115,105,111,110,32,104,101,117,114,105,115,116,105,99,32,116,114,105,101,115,32,116,111,32,99,104,111,111,115,101,32,97,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,115,101,101,100,0,0,0,0,0,0,0,0,85,115,101,100,32,98,121,32,116,104,101,32,114,97,110,100,111,109,32,118,97,114,105,97,98,108,101,32,115,101,108,101,99,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,99,109,105,110,45,109,111,100,101,0,0,0,0,0,0,67,111,110,116,114,111,108,115,32,99,111,110,102,108,105,99,116,32,99,108,97,117,115,101,32,109,105,110,105,109,105,122,97,116,105,111,110,32,40,48,61,110,111,110,101,44,32,49,61,98,97,115,105,99,44,32,50,61,100,101,101,112,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,104,97,115,101,45,115,97,118,105,110,103,0,0,0,0,67,111,110,116,114,111,108,115,32,116,104,101,32,108,101,118,101,108,32,111,102,32,112,104,97,115,101,32,115,97,118,105,110,103,32,40,48,61,110,111,110,101,44,32,49,61,108,105,109,105,116,101,100,44,32,50,61,102,117,108,108,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,110,100,45,105,110,105,116,0,0,0,0,0,0,0,0,82,97,110,100,111,109,105,122,101,32,116,104,101,32,105,110,105,116,105,97,108,32,97,99,116,105,118,105,116,121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,108,117,98,121,0,0,0,0,85,115,101,32,116,104,101,32,76,117,98,121,32,114,101,115,116,97,114,116,32,115,101,113,117,101,110,99,101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,102,105,114,115,116,0,0,84,104,101,32,98,97,115,101,32,114,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,105,110,99,0,0,0,0,82,101,115,116,97,114,116,32,105,110,116,101,114,118,97,108,32,105,110,99,114,101,97,115,101,32,102,97,99,116,111,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,99,45,102,114,97,99,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109,105,110,45,108,101,97,114,110,116,115,0,0,0,0,0,77,105,110,105,109,117,109,32,108,101,97,114,110,116,32,99,108,97,117,115,101,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,192,7,0,0,5,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,124,32,37,57,100,32,124,32,37,55,100,32,37,56,100,32,37,56,100,32,124,32,37,56,100,32,37,56,100,32,37,54,46,48,102,32,124,32,37,54,46,51,102,32,37,37,32,124,10,0,0,0,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,54,83,111,108,118,101,114,69,0,0,0,0,0,0,0,88,18,0,0,168,7,0,0,60,98,111,111,108,62,0,0,10,32,32,32,32,32,32,32,32,37,115,10,0,0,0,0,60,105,110,116,51,50,62,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,69,82,82,79,82,33,32,118,97,108,117,101,32,60,37,115,62,32,105,115,32,116,111,111,32,115,109,97,108,108,32,102,111,114,32,111,112,116,105,111,110,32,34,37,115,34,46,10,0,0,0,0,0,0,0,0,67,79,82,69,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,0,0,0,0,168,8,0,0,1,0,0,0,8,0,0,0,3,0,0,0,3,0,0,0,78,55,77,105,110,105,115,97,116,49,50,68,111,117,98,108,101,79,112,116,105,111,110,69,0,0,0,0,0,0,0,0,128,18,0,0,136,8,0,0,80,0,0,0,0,0,0,0,32,32,45,37,45,49,50,115,32,61,32,37,45,56,115,32,37,99,37,52,46,50,103,32,46,46,32,37,52,46,50,103,37,99,32,40,100,101,102,97,117,108,116,58,32,37,103,41,10,0,0,0,0,0,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,91,32,83,101,97,114,99,104,32,83,116,97,116,105,115,116,105,99,115,32,93,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,124,32,67,111,110,102,108,105,99,116,115,32,124,32,32,32,32,32,32,32,32,32,32,79,82,73,71,73,78,65,76,32,32,32,32,32,32,32,32,32,124,32,32,32,32,32,32,32,32,32,32,76,69,65,82,78,84,32,32,32,32,32,32,32,32,32,32,124,32,80,114,111,103,114,101,115,115,32,124,0,124,32,32,32,32,32,32,32,32,32,32,32,124,32,32,32,32,86,97,114,115,32,32,67,108,97,117,115,101,115,32,76,105,116,101,114,97,108,115,32,124,32,32,32,32,76,105,109,105,116,32,32,67,108,97,117,115,101,115,32,76,105,116,47,67,108,32,124,32,32,32,32,32,32,32,32,32,32,124,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,115,121,109,109,0,0,0,83,104,114,105,110,107,32,99,108,97,117,115,101,115,32,98,121,32,97,115,121,109,109,101,116,114,105,99,32,98,114,97,110,99,104,105,110,103,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,99,104,101,99,107,0,0,67,104,101,99,107,32,105,102,32,97,32,99,108,97,117,115,101,32,105,115,32,97,108,114,101,97,100,121,32,105,109,112,108,105,101,100,46,32,40,99,111,115,116,108,121,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,108,105,109,0,0,0,0,80,101,114,102,111,114,109,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,114,111,119,0,0,0,0,65,108,108,111,119,32,97,32,118,97,114,105,97,98,108,101,32,101,108,105,109,105,110,97,116,105,111,110,32,115,116,101,112,32,116,111,32,103,114,111,119,32,98,121,32,97,32,110,117,109,98,101,114,32,111,102,32,99,108,97,117,115,101,115,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,108,45,108,105,109,0,0,86,97,114,105,97,98,108,101,115,32,97,114,101,32,110,111,116,32,101,108,105,109,105,110,97,116,101,100,32,105,102,32,105,116,32,112,114,111,100,117,99,101,115,32,97,32,114,101,115,111,108,118,101,110,116,32,119,105,116,104,32,97,32,108,101,110,103,116,104,32,97,98,111,118,101,32,116,104,105,115,32,108,105,109,105,116,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,117,98,45,108,105,109,0,68,111,32,110,111,116,32,99,104,101,99,107,32,105,102,32,115,117,98,115,117,109,112,116,105,111,110,32,97,103,97,105,110,115,116,32,97,32,99,108,97,117,115,101,32,108,97,114,103,101,114,32,116,104,97,110,32,116,104,105,115,46,32,45,49,32,109,101,97,110,115,32,110,111,32,108,105,109,105,116,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,105,109,112,45,103,99,45,102,114,97,99,0,0,0,0,84,104,101,32,102,114,97,99,116,105,111,110,32,111,102,32,119,97,115,116,101,100,32,109,101,109,111,114,121,32,97,108,108,111,119,101,100,32,98,101,102,111,114,101,32,97,32,103,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,32,105,115,32,116,114,105,103,103,101,114,101,100,32,100,117,114,105,110,103,32,115,105,109,112,108,105,102,105,99,97,116,105,111,110,46,0,0,0,0,0,0,0,120,14,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,115,117,98,115,117,109,112,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,32,40,37,49,48,100,32,115,117,98,115,117,109,101,100,44,32,37,49,48,100,32,100,101,108,101,116,101,100,32,108,105,116,101,114,97,108,115,41,13,0,0,101,108,105,109,105,110,97,116,105,111,110,32,108,101,102,116,58,32,37,49,48,100,13,0,124,32,32,69,108,105,109,105,110,97,116,101,100,32,99,108,97,117,115,101,115,58,32,32,32,32,32,37,49,48,46,50,102,32,77,98,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,124,32,32,71,97,114,98,97,103,101,32,99,111,108,108,101,99,116,105,111,110,58,32,32,32,37,49,50,100,32,98,121,116,101,115,32,61,62,32,37,49,50,100,32,98,121,116,101,115,32,32,32,32,32,32,32,32,32,32,32,32,32,124,10,0,0,0,0,0,0,0,0,78,55,77,105,110,105,115,97,116,49,48,83,105,109,112,83,111,108,118,101,114,69,0,0,128,18,0,0,96,14,0,0,192,7,0,0,0,0,0,0,60,100,111,117,98,108,101,62,0,0,0,0,0,0,0,0,60,105,110,116,51,50,62,0,83,73,77,80,0,0,0,0,60,98,111,111,108,62,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,89,79,33,0,0,0,0,0,2,0,0,0,0,0,0,0,48,15,0,0,0,0,0,0,117,110,99,97,117,103,104,116,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,0,0,0,0,0,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,0,0,116,101,114,109,105,110,97,116,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,0,0,0,0,0,0,0,200,16,0,0,12,0,0,0,13,0,0,0,1,0,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,128,18,0,0,184,16,0,0,80,17,0,0,0,0,0,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,116,104,114,101,119,32,97,110,32,101,120,99,101,112,116,105,111,110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,88,18,0,0,64,17,0,0,83,116,57,116,121,112,101,95,105,110,102,111,0,0,0,0,88,18,0,0,88,17,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,0,128,18,0,0,112,17,0,0,104,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,168,17,0,0,152,17,0,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,0,0,0,128,18,0,0,8,18,0,0,152,17,0,0,0,0,0,0,128,18,0,0,224,17,0,0,48,18,0,0,0,0,0,0,0,0,0,0,208,17,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,200,18,0,0,14,0,0,0,18,0,0,0,16,0,0,0,17,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,0,0,0,128,18,0,0,160,18,0,0,208,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,1,2,4,7,3,6,5,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=Runtime.alignMemory(allocate(12,"i8",ALLOC_STATIC),8);function _atexit(e,r){__ATEXIT__.unshift({func:e,arg:r})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}assert(tempDoublePtr%8==0),Module._i64Subtract=_i64Subtract;var ___errno_state=0;function ___setErrNo(e){return HEAP32[___errno_state>>2]=e,e}var ERRNO_CODES={EBADF:9,EINVAL:22};function _sysconf(e){switch(e){case 30:return PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return ___setErrNo(ERRNO_CODES.EINVAL),-1}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(e){if(!e||EXCEPTIONS.infos[e])return e;for(var r in EXCEPTIONS.infos){if(EXCEPTIONS.infos[r].adjusted===e)return r}return e},addRef:function(e){e&&EXCEPTIONS.infos[e].refcount++},decRef:function(e){if(e){var r=EXCEPTIONS.infos[e];assert(r.refcount>0),r.refcount--,0===r.refcount&&(r.destructor&&Runtime.dynCall("vi",r.destructor,[e]),delete EXCEPTIONS.infos[e],___cxa_free_exception(e))}},clearRef:function(e){e&&(EXCEPTIONS.infos[e].refcount=0)}};function ___resumeException(e){throw EXCEPTIONS.last||(EXCEPTIONS.last=e),EXCEPTIONS.clearRef(EXCEPTIONS.deAdjust(e)),e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var e=EXCEPTIONS.last;if(!e)return 0|(asm.setTempRet0(0),0);var r=EXCEPTIONS.infos[e],t=r.type;if(!t)return 0|(asm.setTempRet0(0),e);var i=Array.prototype.slice.call(arguments);Module.___cxa_is_pointer_type(t),___cxa_find_matching_catch.buffer||(___cxa_find_matching_catch.buffer=_malloc(4)),HEAP32[___cxa_find_matching_catch.buffer>>2]=e,e=___cxa_find_matching_catch.buffer;for(var n=0;n<i.length;n++)if(i[n]&&Module.___cxa_can_catch(i[n],t,e))return e=HEAP32[e>>2],r.adjusted=e,0|(asm.setTempRet0(i[n]),e);return e=HEAP32[e>>2],0|(asm.setTempRet0(t),e)}function ___cxa_throw(e,r,t){throw EXCEPTIONS.infos[e]={ptr:e,adjusted:e,type:r,destructor:t,refcount:0},EXCEPTIONS.last=e,"uncaught_exception"in __ZSt18uncaught_exceptionv?__ZSt18uncaught_exceptionv.uncaught_exception++:__ZSt18uncaught_exceptionv.uncaught_exception=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function _abort(){Module.abort()}Module._memset=_memset,Module._bitshift64Shl=_bitshift64Shl;var FS=void 0,SOCKFS=void 0;function _send(e,r,t,i){return SOCKFS.getSocket(e)?_write(e,r,t):(___setErrNo(ERRNO_CODES.EBADF),-1)}function _pwrite(e,r,t,i){var n=FS.getStream(e);if(!n)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var a=HEAP8;return FS.write(n,a,r,t,i)}catch(e){return FS.handleFSError(e),-1}}function _write(e,r,t){var i=FS.getStream(e);if(!i)return ___setErrNo(ERRNO_CODES.EBADF),-1;try{var n=HEAP8;return FS.write(i,n,r,t)}catch(e){return FS.handleFSError(e),-1}}function _fileno(e){return(e=FS.getStreamFromPtr(e))?e.fd:-1}function _fwrite(e,r,t,i){var n=t*r;if(0==n)return 0;var a=_write(_fileno(i),e,n);if(-1==a){var o=FS.getStreamFromPtr(i);return o&&(o.error=!0),0}return a/r|0}function __reallyNegative(e){return e<0||0===e&&1/e==-1/0}function __formatString(e,r){var t=e,i=0;function n(e){var t;return"double"===e?(HEAP32[tempDoublePtr>>2]=HEAP32[r+i>>2],HEAP32[tempDoublePtr+4>>2]=HEAP32[r+(i+4)>>2],t=+HEAPF64[tempDoublePtr>>3]):"i64"==e?t=[HEAP32[r+i>>2],HEAP32[r+(i+4)>>2]]:(e="i32",t=HEAP32[r+i>>2]),i+=Runtime.getNativeFieldSize(e),t}for(var a,o,u=[];;){var f=t;if(0===(a=HEAP8[t|0]))break;if(o=HEAP8[t+1|0],37==a){var s=!1,l=!1,c=!1,h=!1,d=!1;e:for(;;){switch(o){case 43:s=!0;break;case 45:l=!0;break;case 35:c=!0;break;case 48:if(h)break e;h=!0;break;case 32:d=!0;break;default:break e}t++,o=HEAP8[t+1|0]}var _=0;if(42==o)_=n("i32"),t++,o=HEAP8[t+1|0];else for(;o>=48&&o<=57;)_=10*_+(o-48),t++,o=HEAP8[t+1|0];var p,m=!1,g=-1;if(46==o){if(g=0,m=!0,t++,42==(o=HEAP8[t+1|0]))g=n("i32"),t++;else for(;;){var v=HEAP8[t+1|0];if(v<48||v>57)break;g=10*g+(v-48),t++}o=HEAP8[t+1|0]}switch(g<0&&(g=6,m=!1),String.fromCharCode(o)){case"h":104==HEAP8[t+2|0]?(t++,p=1):p=2;break;case"l":108==HEAP8[t+2|0]?(t++,p=8):p=4;break;case"L":case"q":case"j":p=8;break;case"z":case"t":case"I":p=4;break;default:p=null}switch(p&&t++,o=HEAP8[t+1|0],String.fromCharCode(o)){case"d":case"i":case"u":case"o":case"x":case"X":case"p":var b=100==o||105==o,y=S=n("i"+8*(p=p||4));if(8==p&&(S=Runtime.makeBigInt(S[0],S[1],117==o)),p<=4)S=(b?reSign:unSign)(S&Math.pow(256,p)-1,8*p);var w=Math.abs(S),A="";if(100==o||105==o)E=8==p&&i64Math?i64Math.stringify(y[0],y[1],null):reSign(S,8*p).toString(10);else if(117==o)E=8==p&&i64Math?i64Math.stringify(y[0],y[1],!0):unSign(S,8*p).toString(10),S=Math.abs(S);else if(111==o)E=(c?"0":"")+w.toString(8);else if(120==o||88==o){if(A=c&&0!=S?"0x":"",8==p&&i64Math)if(y[1]){E=(y[1]>>>0).toString(16);for(var M=(y[0]>>>0).toString(16);M.length<8;)M="0"+M;E+=M}else E=(y[0]>>>0).toString(16);else if(S<0){S=-S,E=(w-1).toString(16);for(var T=[],k=0;k<E.length;k++)T.push((15-parseInt(E[k],16)).toString(16));for(E=T.join("");E.length<2*p;)E="f"+E}else E=w.toString(16);88==o&&(A=A.toUpperCase(),E=E.toUpperCase())}else 112==o&&(0===w?E="(nil)":(A="0x",E=w.toString(16)));if(m)for(;E.length<g;)E="0"+E;for(S>=0&&(s?A="+"+A:d&&(A=" "+A)),"-"==E.charAt(0)&&(A="-"+A,E=E.substr(1));A.length+E.length<_;)l?E+=" ":h?E="0"+E:A=" "+A;(E=A+E).split("").forEach(function(e){u.push(e.charCodeAt(0))});break;case"f":case"F":case"e":case"E":case"g":case"G":var E,S=n("double");if(isNaN(S))E="nan",h=!1;else if(isFinite(S)){var O=!1,L=Math.min(g,20);if(103==o||71==o){O=!0,g=g||1;var C=parseInt(S.toExponential(L).split("e")[1],10);g>C&&C>=-4?(o=(103==o?"f":"F").charCodeAt(0),g-=C+1):(o=(103==o?"e":"E").charCodeAt(0),g--),L=Math.min(g,20)}101==o||69==o?(E=S.toExponential(L),/[eE][-+]\d$/.test(E)&&(E=E.slice(0,-1)+"0"+E.slice(-1))):102!=o&&70!=o||(E=S.toFixed(L),0===S&&__reallyNegative(S)&&(E="-"+E));var N=E.split("e");if(O&&!c)for(;N[0].length>1&&-1!=N[0].indexOf(".")&&("0"==N[0].slice(-1)||"."==N[0].slice(-1));)N[0]=N[0].slice(0,-1);else for(c&&-1==E.indexOf(".")&&(N[0]+=".");g>L++;)N[0]+="0";E=N[0]+(N.length>1?"e"+N[1]:""),69==o&&(E=E.toUpperCase()),S>=0&&(s?E="+"+E:d&&(E=" "+E))}else E=(S<0?"-":"")+"inf",h=!1;for(;E.length<_;)l?E+=" ":E=!h||"-"!=E[0]&&"+"!=E[0]?(h?"0":" ")+E:E[0]+"0"+E.slice(1);o<97&&(E=E.toUpperCase()),E.split("").forEach(function(e){u.push(e.charCodeAt(0))});break;case"s":var R=n("i8*"),P=R?_strlen(R):6;if(m&&(P=Math.min(P,g)),!l)for(;P<_--;)u.push(32);if(R)for(k=0;k<P;k++)u.push(HEAPU8[R++|0]);else u=u.concat(intArrayFromString("(null)".substr(0,P),!0));if(l)for(;P<_--;)u.push(32);break;case"c":for(l&&u.push(n("i8"));--_>0;)u.push(32);l||u.push(n("i8"));break;case"n":var I=n("i32*");HEAP32[I>>2]=u.length;break;case"%":u.push(a);break;default:for(k=f;k<t+2;k++)u.push(HEAP8[k|0])}t+=2}else u.push(a),t+=1}return u}function _fprintf(e,r,t){var i=__formatString(r,t),n=Runtime.stackSave(),a=_fwrite(allocate(i,"i8",ALLOC_STACK),1,i.length,e);return Runtime.stackRestore(n),a}function _printf(e,r){var t=__formatString(e,r),i=intArrayToString(t);return"\n"===i[i.length-1]&&(i=i.substr(0,i.length-1)),Module.print(i),t.length}function _pthread_once(e,r){_pthread_once.seen||(_pthread_once.seen={}),e in _pthread_once.seen||(Runtime.dynCall("v",r),_pthread_once.seen[e]=1)}function _fputc(e,r){var t=unSign(255&e);if(HEAP8[_fputc.ret|0]=t,-1==_write(_fileno(r),_fputc.ret,1)){var i=FS.getStreamFromPtr(r);return i&&(i.error=!0),-1}return t}Module._strlen=_strlen;var PTHREAD_SPECIFIC={};function _pthread_getspecific(e){return PTHREAD_SPECIFIC[e]||0}function _fputs(e,r){return _write(_fileno(r),e,_strlen(e))}function _puts(e){var r=Pointer_stringify(e),t=r.substr(0);return"\n"===t[t.length-1]&&(t=t.substr(0,t.length-1)),Module.print(t),r.length}function _pthread_setspecific(e,r){return e in PTHREAD_SPECIFIC?(PTHREAD_SPECIFIC[e]=r,0):ERRNO_CODES.EINVAL}function __exit(e){Module.exit(e)}function _exit(e){__exit(e)}function _malloc(e){return Runtime.dynamicAlloc(e+8)+8&4294967288}function ___cxa_allocate_exception(e){return _malloc(e)}function _fmod(e,r){return e%r}function _fmodl(){return _fmod.apply(null,arguments)}function ___cxa_pure_virtual(){throw ABORT=!0,"Pure virtual function called!"}function _time(e){var r=Date.now()/1e3|0;return e&&(HEAP32[e>>2]=r),r}Module._i64Add=_i64Add,allocate(1,"i32*",ALLOC_STATIC),Module._malloc=_malloc,Module._bitshift64Lshr=_bitshift64Lshr;var PTHREAD_SPECIFIC_NEXT_KEY=1;function _pthread_key_create(e,r){return 0==e?ERRNO_CODES.EINVAL:(HEAP32[e>>2]=PTHREAD_SPECIFIC_NEXT_KEY,PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0,PTHREAD_SPECIFIC_NEXT_KEY++,0)}function ___cxa_guard_acquire(e){return HEAP8[e|0]?0:(HEAP8[e|0]=1,1)}function ___cxa_guard_release(){}function _vfprintf(e,r,t){return _fprintf(e,r,HEAP32[t>>2])}function ___cxa_begin_catch(e){return __ZSt18uncaught_exceptionv.uncaught_exception--,EXCEPTIONS.caught.push(e),EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(e)),e}function _emscripten_memcpy_big(e,r,t){return HEAPU8.set(HEAPU8.subarray(r,r+t),e),e}Module._memcpy=_memcpy;var _llvm_pow_f64=Math_pow;function _sbrk(e){var r=_sbrk;r.called||(DYNAMICTOP=alignMemoryPage(DYNAMICTOP),r.called=!0,assert(Runtime.dynamicAlloc),r.alloc=Runtime.dynamicAlloc,Runtime.dynamicAlloc=function(){abort("cannot dynamically allocate, sbrk now has control")});var t=DYNAMICTOP;return 0!=e&&r.alloc(e),t}var _fabs=Math_abs;function ___errno_location(){return ___errno_state}function _copysign(e,r){return __reallyNegative(e)===__reallyNegative(r)?e:-e}function _copysignl(){return _copysign.apply(null,arguments)}var ___dso_handle=allocate(1,"i32*",ALLOC_STATIC),_stderr=allocate(1,"i32*",ALLOC_STATIC);___errno_state=Runtime.staticAlloc(4),HEAP32[___errno_state>>2]=0,_fputc.ret=allocate([0],"i8",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=DYNAMICTOP=Runtime.alignMemory(STACK_MAX),assert(DYNAMIC_BASE<TOTAL_MEMORY,"TOTAL_MEMORY not big enough for stack");var ctlz_i8=allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",ALLOC_DYNAMIC),cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_DYNAMIC);function invoke_iiii(e,r,t,i){try{return Module.dynCall_iiii(e,r,t,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiiii(e,r,t,i,n,a){try{Module.dynCall_viiiii(e,r,t,i,n,a)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_vi(e,r){try{Module.dynCall_vi(e,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_vii(e,r,t){try{Module.dynCall_vii(e,r,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_ii(e,r){try{return Module.dynCall_ii(e,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiiiii(e,r,t,i,n,a,o){try{Module.dynCall_viiiiii(e,r,t,i,n,a,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_iii(e,r,t){try{return Module.dynCall_iii(e,r,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}function invoke_viiii(e,r,t,i,n){try{Module.dynCall_viiii(e,r,t,i,n)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;asm.setThrew(1,0)}}Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array},Module.asmLibraryArg={abort:abort,assert:assert,min:Math_min,invoke_iiii:invoke_iiii,invoke_viiiii:invoke_viiiii,invoke_vi:invoke_vi,invoke_vii:invoke_vii,invoke_ii:invoke_ii,invoke_v:invoke_v,invoke_viiiiii:invoke_viiiiii,invoke_iii:invoke_iii,invoke_viiii:invoke_viiii,_fabs:_fabs,_llvm_pow_f64:_llvm_pow_f64,_send:_send,_fmod:_fmod,___cxa_guard_acquire:___cxa_guard_acquire,___setErrNo:___setErrNo,_vfprintf:_vfprintf,___cxa_allocate_exception:___cxa_allocate_exception,___cxa_find_matching_catch:___cxa_find_matching_catch,___cxa_guard_release:___cxa_guard_release,_pwrite:_pwrite,__reallyNegative:__reallyNegative,_sbrk:_sbrk,___cxa_begin_catch:___cxa_begin_catch,_emscripten_memcpy_big:_emscripten_memcpy_big,_fileno:_fileno,___resumeException:___resumeException,__ZSt18uncaught_exceptionv:__ZSt18uncaught_exceptionv,_sysconf:_sysconf,_pthread_getspecific:_pthread_getspecific,_atexit:_atexit,_pthread_once:_pthread_once,_puts:_puts,_printf:_printf,_pthread_key_create:_pthread_key_create,_write:_write,___errno_location:___errno_location,_pthread_setspecific:_pthread_setspecific,___cxa_atexit:___cxa_atexit,_copysign:_copysign,_fputc:_fputc,___cxa_throw:___cxa_throw,__exit:__exit,_copysignl:_copysignl,_abort:_abort,_fwrite:_fwrite,_time:_time,_fprintf:_fprintf,__formatString:__formatString,_fputs:_fputs,_exit:_exit,___cxa_pure_virtual:___cxa_pure_virtual,_fmodl:_fmodl,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX,tempDoublePtr:tempDoublePtr,ABORT:ABORT,cttz_i8:cttz_i8,ctlz_i8:ctlz_i8,NaN:NaN,Infinity:1/0,___dso_handle:___dso_handle,_stderr:_stderr};var asm=function(e,r,t){"use asm";var i=new e.Int8Array(t);var n=new e.Int16Array(t);var a=new e.Int32Array(t);var o=new e.Uint8Array(t);var u=new e.Uint16Array(t);var f=new e.Uint32Array(t);var s=new e.Float32Array(t);var l=new e.Float64Array(t);var c=r.STACKTOP|0;var h=r.STACK_MAX|0;var d=r.tempDoublePtr|0;var _=r.ABORT|0;var p=r.cttz_i8|0;var m=r.ctlz_i8|0;var g=r.___dso_handle|0;var v=r._stderr|0;var b=0;var y=0;var w=0;var A=0;var M=+r.NaN,T=+r.Infinity;var k=0,E=0,S=0,O=0,L=0.0,C=0,N=0,R=0,P=0.0;var I=0;var F=0;var x=0;var B=0;var D=0;var U=0;var V=0;var H=0;var q=0;var j=0;var $=e.Math.floor;var W=e.Math.abs;var z=e.Math.sqrt;var K=e.Math.pow;var X=e.Math.cos;var Z=e.Math.sin;var Y=e.Math.tan;var G=e.Math.acos;var J=e.Math.asin;var Q=e.Math.atan;var ee=e.Math.atan2;var re=e.Math.exp;var te=e.Math.log;var ie=e.Math.ceil;var ne=e.Math.imul;var ae=r.abort;var oe=r.assert;var ue=r.min;var fe=r.invoke_iiii;var se=r.invoke_viiiii;var le=r.invoke_vi;var ce=r.invoke_vii;var he=r.invoke_ii;var de=r.invoke_v;var _e=r.invoke_viiiiii;var pe=r.invoke_iii;var me=r.invoke_viiii;var ge=r._fabs;var ve=r._llvm_pow_f64;var be=r._send;var ye=r._fmod;var we=r.___cxa_guard_acquire;var Ae=r.___setErrNo;var Me=r._vfprintf;var Te=r.___cxa_allocate_exception;var ke=r.___cxa_find_matching_catch;var Ee=r.___cxa_guard_release;var Se=r._pwrite;var Oe=r.__reallyNegative;var Le=r._sbrk;var Ce=r.___cxa_begin_catch;var Ne=r._emscripten_memcpy_big;var Re=r._fileno;var Pe=r.___resumeException;var Ie=r.__ZSt18uncaught_exceptionv;var Fe=r._sysconf;var xe=r._pthread_getspecific;var Be=r._atexit;var De=r._pthread_once;var Ue=r._puts;var Ve=r._printf;var He=r._pthread_key_create;var qe=r._write;var je=r.___errno_location;var $e=r._pthread_setspecific;var We=r.___cxa_atexit;var ze=r._copysign;var Ke=r._fputc;var Xe=r.___cxa_throw;var Ze=r.__exit;var Ye=r._copysignl;var Ge=r._abort;var Je=r._fwrite;var Qe=r._time;var er=r._fprintf;var rr=r.__formatString;var tr=r._fputs;var ir=r._exit;var nr=r.___cxa_pure_virtual;var ar=r._fmodl;var or=0.0;function ur(e){e=e|0;var r=0;r=c;c=c+e|0;c=c+15&-16;return r|0}function fr(){return c|0}function sr(e){e=e|0;c=e}function lr(e,r){e=e|0;r=r|0;if(!b){b=e;y=r}}function cr(e){e=e|0;i[d>>0]=i[e>>0];i[d+1>>0]=i[e+1>>0];i[d+2>>0]=i[e+2>>0];i[d+3>>0]=i[e+3>>0]}function hr(e){e=e|0;i[d>>0]=i[e>>0];i[d+1>>0]=i[e+1>>0];i[d+2>>0]=i[e+2>>0];i[d+3>>0]=i[e+3>>0];i[d+4>>0]=i[e+4>>0];i[d+5>>0]=i[e+5>>0];i[d+6>>0]=i[e+6>>0];i[d+7>>0]=i[e+7>>0]}function dr(e){e=e|0;I=e}function _r(){return I|0}function pr(e){e=e|0;Ce(e|0)|0;_i()}function mr(e){e=e|0;return}function gr(e,r,t,n,o){e=e|0;r=r|0;t=t|0;n=n|0;o=o|0;var u=0;u=c;a[e>>2]=112;a[e+4>>2]=r;a[e+8>>2]=t;a[e+12>>2]=n;a[e+16>>2]=o;if((i[144]|0)==0?(we(144)|0)!=0:0){a[32]=0;a[33]=0;a[34]=0;We(19,128,g|0)|0;Ee(144)}o=a[33]|0;if((o|0)==(a[34]|0)){n=(o>>1)+2&-2;n=(n|0)<2?2:n;if((n|0)>(2147483647-o|0)){r=Te(1)|0;Xe(r|0,48,0)}t=a[32]|0;r=n+o|0;a[34]=r;r=Vi(t,r<<2)|0;a[32]=r;if((r|0)==0?(a[(je()|0)>>2]|0)==12:0){r=Te(1)|0;Xe(r|0,48,0)}o=a[33]|0}a[33]=o+1;o=(a[32]|0)+(o<<2)|0;if(!o){c=u;return}a[o>>2]=e;c=u;return}function vr(e){e=e|0;var r=0;r=c;si(e);c=r;return}function br(e){e=e|0;var r=0,t=0;r=c;t=a[e>>2]|0;if(!t){c=r;return}a[e+4>>2]=0;Ui(t);a[e>>2]=0;a[e+8>>2]=0;c=r;return}function yr(e){e=e|0;var r=0;r=c;si(e);c=r;return}function wr(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0;t=c;if((i[r>>0]|0)!=45){s=0;c=t;return s|0}n=r+1|0;o=110;f=n;s=0;while(1){u=s+1|0;if((i[f>>0]|0)!=o<<24>>24){o=1;break}f=r+(s+2)|0;if((u|0)==3){o=0;n=f;break}else{o=i[264+u>>0]|0;s=u}}if(Ji(n,a[e+4>>2]|0)|0){s=0;c=t;return s|0}i[e+20>>0]=o;s=1;c=t;return s|0}function Ar(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0;u=c;c=c+16|0;t=u;n=a[v>>2]|0;o=e+4|0;f=a[o>>2]|0;a[t>>2]=f;a[t+4>>2]=f;er(n|0,216,t|0)|0;f=0;while(1){s=f>>>0<(32-((un(a[o>>2]|0)|0)<<1)|0)>>>0;Ke(32,n|0)|0;if(s)f=f+1|0;else break}a[t>>2]=(i[e+20>>0]|0)!=0?248:256;er(n|0,232,t|0)|0;if(!r){c=u;return}a[t>>2]=a[e+8>>2];er(n|0,88,t|0)|0;Ke(10,n|0)|0;c=u;return}function Mr(e){e=e|0;var r=0;r=c;si(e);c=r;return}function Tr(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0;t=c;c=c+16|0;u=t;o=t+8|0;if((i[r>>0]|0)!=45){d=0;c=t;return d|0}l=r+1|0;n=e+4|0;f=a[n>>2]|0;s=i[f>>0]|0;e:do{if(s<<24>>24){h=0;while(1){d=h;h=h+1|0;if((i[l>>0]|0)!=s<<24>>24){e=0;break}s=i[f+h>>0]|0;l=r+(d+2)|0;if(!(s<<24>>24))break e}c=t;return e|0}}while(0);if((i[l>>0]|0)!=61){d=0;c=t;return d|0}r=l+1|0;f=Gi(r,o,10)|0;if(!(a[o>>2]|0)){d=0;c=t;return d|0}if((f|0)>(a[e+24>>2]|0)){d=a[v>>2]|0;h=a[n>>2]|0;a[u>>2]=r;a[u+4>>2]=h;er(d|0,416,u|0)|0;ir(1)}if((f|0)<(a[e+20>>2]|0)){d=a[v>>2]|0;h=a[n>>2]|0;a[u>>2]=r;a[u+4>>2]=h;er(d|0,472,u|0)|0;ir(1)}a[e+28>>2]=f;d=1;c=t;return d|0}function kr(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0;t=c;c=c+16|0;i=t;n=a[v>>2]|0;o=a[e+16>>2]|0;a[i>>2]=a[e+4>>2];a[i+4>>2]=o;er(n|0,336,i|0)|0;o=a[e+20>>2]|0;if((o|0)==-2147483648)Je(360,4,1,n|0)|0;else{a[i>>2]=o;er(n|0,368,i|0)|0}Je(376,4,1,n|0)|0;o=a[e+24>>2]|0;if((o|0)==2147483647)Je(384,4,1,n|0)|0;else{a[i>>2]=o;er(n|0,368,i|0)|0}a[i>>2]=a[e+28>>2];er(n|0,392,i|0)|0;if(!r){c=t;return}a[i>>2]=a[e+8>>2];er(n|0,88,i|0)|0;Ke(10,n|0)|0;c=t;return}function Er(e){e=e|0;var r=0,t=0,n=0,o=0,u=0;o=c;a[e>>2]=1816;n=e+4|0;t=e+32|0;u=e+48|0;a[n+0>>2]=0;a[n+4>>2]=0;a[n+8>>2]=0;a[n+12>>2]=0;a[n+16>>2]=0;a[n+20>>2]=0;a[t+0>>2]=0;a[t+4>>2]=0;a[t+8>>2]=0;a[t+12>>2]=0;l[u>>3]=+l[75];l[e+56>>3]=+l[89];l[e+64>>3]=+l[103];l[e+72>>3]=+l[123];i[e+80>>0]=i[1364]|0;a[e+84>>2]=a[269];a[e+88>>2]=a[297];i[e+92>>0]=0;i[e+93>>0]=i[1292]|0;l[e+96>>3]=+l[204];a[e+104>>2]=a[439];a[e+108>>2]=a[359];l[e+112>>3]=+l[191];l[e+120>>3]=.3333333333333333;l[e+128>>3]=1.1;a[e+136>>2]=100;l[e+144>>3]=1.5;u=e+316|0;a[e+332>>2]=0;a[e+336>>2]=0;a[e+340>>2]=0;a[e+348>>2]=0;a[e+352>>2]=0;a[e+356>>2]=0;a[e+364>>2]=0;a[e+368>>2]=0;a[e+372>>2]=0;a[e+380>>2]=0;a[e+384>>2]=0;a[e+388>>2]=0;a[e+396>>2]=0;a[e+400>>2]=0;a[e+404>>2]=0;t=e+544|0;a[e+412>>2]=0;a[e+416>>2]=0;a[e+420>>2]=0;a[e+428>>2]=0;a[e+432>>2]=0;a[e+436>>2]=0;a[e+444>>2]=0;a[e+448>>2]=0;a[e+452>>2]=0;an(e+152|0,0,176)|0;a[e+456>>2]=t;n=e+460|0;a[n+0>>2]=0;a[n+4>>2]=0;a[n+8>>2]=0;a[n+12>>2]=0;a[n+16>>2]=0;a[n+20>>2]=0;a[e+488>>2]=u;i[e+492>>0]=1;l[e+496>>3]=1.0;l[e+504>>3]=1.0;a[e+512>>2]=0;a[e+516>>2]=-1;u=e+520|0;n=e+536|0;a[u+0>>2]=0;a[u+4>>2]=0;a[u+8>>2]=0;a[u+12>>2]=0;i[n>>0]=1;n=e+540|0;a[n+0>>2]=0;a[n+4>>2]=0;a[n+8>>2]=0;a[n+12>>2]=0;a[n+16>>2]=0;et(t,1048576);i[e+560>>0]=0;t=e+604|0;n=e+664|0;u=e+564|0;r=u+36|0;do{a[u>>2]=0;u=u+4|0}while((u|0)<(r|0));u=t+0|0;r=u+36|0;do{a[u>>2]=0;u=u+4|0}while((u|0)<(r|0));u=e+680|0;a[n+0>>2]=-1;a[n+4>>2]=-1;a[n+8>>2]=-1;a[n+12>>2]=-1;i[u>>0]=0;c=o;return}function Sr(e){e=e|0;var r=0;r=c;Or(e);si(e);c=r;return}function Or(e){e=e|0;var r=0,t=0,i=0;r=c;a[e>>2]=1816;t=e+628|0;i=a[t>>2]|0;if(i){a[e+632>>2]=0;Ui(i);a[t>>2]=0;a[e+636>>2]=0}t=e+616|0;i=a[t>>2]|0;if(i){a[e+620>>2]=0;Ui(i);a[t>>2]=0;a[e+624>>2]=0}t=e+604|0;i=a[t>>2]|0;if(i){a[e+608>>2]=0;Ui(i);a[t>>2]=0;a[e+612>>2]=0}t=e+588|0;i=a[t>>2]|0;if(i){a[e+592>>2]=0;Ui(i);a[t>>2]=0;a[e+596>>2]=0}t=e+576|0;i=a[t>>2]|0;if(i){a[e+580>>2]=0;Ui(i);a[t>>2]=0;a[e+584>>2]=0}t=e+564|0;i=a[t>>2]|0;if(i){a[e+568>>2]=0;Ui(i);a[t>>2]=0;a[e+572>>2]=0}t=a[e+544>>2]|0;if(t)Ui(t);t=e+472|0;i=a[t>>2]|0;if(i){a[e+476>>2]=0;Ui(i);a[t>>2]=0;a[e+480>>2]=0}t=e+460|0;i=a[t>>2]|0;if(i){a[e+464>>2]=0;Ui(i);a[t>>2]=0;a[e+468>>2]=0}rt(e+412|0);t=e+396|0;i=a[t>>2]|0;if(i){a[e+400>>2]=0;Ui(i);a[t>>2]=0;a[e+404>>2]=0}t=e+380|0;i=a[t>>2]|0;if(i){a[e+384>>2]=0;Ui(i);a[t>>2]=0;a[e+388>>2]=0}i=e+364|0;t=a[i>>2]|0;if(t){a[e+368>>2]=0;Ui(t);a[i>>2]=0;a[e+372>>2]=0}t=e+348|0;i=a[t>>2]|0;if(i){a[e+352>>2]=0;Ui(i);a[t>>2]=0;a[e+356>>2]=0}t=e+332|0;i=a[t>>2]|0;if(i){a[e+336>>2]=0;Ui(i);a[t>>2]=0;a[e+340>>2]=0}t=e+316|0;i=a[t>>2]|0;if(i){a[e+320>>2]=0;Ui(i);a[t>>2]=0;a[e+324>>2]=0}t=e+304|0;i=a[t>>2]|0;if(i){a[e+308>>2]=0;Ui(i);a[t>>2]=0;a[e+312>>2]=0}t=e+292|0;i=a[t>>2]|0;if(i){a[e+296>>2]=0;Ui(i);a[t>>2]=0;a[e+300>>2]=0}t=e+280|0;i=a[t>>2]|0;if(i){a[e+284>>2]=0;Ui(i);a[t>>2]=0;a[e+288>>2]=0}t=e+268|0;i=a[t>>2]|0;if(i){a[e+272>>2]=0;Ui(i);a[t>>2]=0;a[e+276>>2]=0}t=e+256|0;i=a[t>>2]|0;if(i){a[e+260>>2]=0;Ui(i);a[t>>2]=0;a[e+264>>2]=0}t=e+32|0;i=a[t>>2]|0;if(i){a[e+36>>2]=0;Ui(i);a[t>>2]=0;a[e+40>>2]=0}t=e+16|0;i=a[t>>2]|0;if(i){a[e+20>>2]=0;Ui(i);a[t>>2]=0;a[e+24>>2]=0}i=e+4|0;t=a[i>>2]|0;if(!t){c=r;return}a[e+8>>2]=0;Ui(t);a[i>>2]=0;a[e+12>>2]=0;c=r;return}function Lr(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,u=0,f=0,s=0.0,h=0,d=0,_=0,p=0,m=0,g=0;n=c;c=c+16|0;f=n+4|0;u=n;o=e+580|0;h=a[o>>2]|0;if((h|0)>0){_=h+-1|0;p=a[(a[e+576>>2]|0)+(_<<2)>>2]|0;a[o>>2]=_;o=p}else{p=e+540|0;o=a[p>>2]|0;a[p>>2]=o+1}h=e+412|0;p=o<<1;a[f>>2]=p;tt(h,f);a[u>>2]=p|1;tt(h,u);f=e+332|0;h=i[544]|0;u=o+1|0;it(f,u);i[(a[f>>2]|0)+o>>0]=h;f=e+396|0;h=e+400|0;if((a[h>>2]|0)<(u|0)){_=e+404|0;p=a[_>>2]|0;if((p|0)<(u|0)){m=o+2-p&-2;d=(p>>1)+2&-2;d=(m|0)>(d|0)?m:d;if((d|0)>(2147483647-p|0)){m=Te(1)|0;Xe(m|0,48,0)}g=a[f>>2]|0;m=d+p|0;a[_>>2]=m;m=Vi(g,m<<3)|0;a[f>>2]=m;if((m|0)==0?(a[(je()|0)>>2]|0)==12:0){g=Te(1)|0;Xe(g|0,48,0)}}_=a[h>>2]|0;if((_|0)<(u|0))do{d=(a[f>>2]|0)+(_<<3)|0;if(d){g=d;a[g>>2]=0;a[g+4>>2]=0}_=_+1|0}while((_|0)!=(u|0));a[h>>2]=u}h=(a[f>>2]|0)+(o<<3)|0;a[h>>2]=-1;a[h+4>>2]=0;h=e+316|0;if(!(i[e+93>>0]|0))s=0.0;else{g=e+72|0;s=+l[g>>3]*1389796.0;s=s-+(~~(s/2147483647.0)|0)*2147483647.0;l[g>>3]=s;s=s/2147483647.0*1.0e-5}f=e+320|0;if((a[f>>2]|0)<(u|0)){d=e+324|0;_=a[d>>2]|0;if((_|0)<(u|0)){g=o+2-_&-2;p=(_>>1)+2&-2;p=(g|0)>(p|0)?g:p;if((p|0)>(2147483647-_|0)){g=Te(1)|0;Xe(g|0,48,0)}m=a[h>>2]|0;g=p+_|0;a[d>>2]=g;g=Vi(m,g<<3)|0;a[h>>2]=g;if((g|0)==0?(a[(je()|0)>>2]|0)==12:0){g=Te(1)|0;Xe(g|0,48,0)}}p=a[f>>2]|0;if((p|0)<(u|0)){d=a[h>>2]|0;do{_=d+(p<<3)|0;if(_)l[_>>3]=0.0;p=p+1|0}while((p|0)!=(u|0))}a[f>>2]=u}l[(a[h>>2]|0)+(o<<3)>>3]=s;nt(e+588|0,o,0);nt(e+348|0,o,1);f=e+364|0;r=i[r>>0]|0;it(f,u);i[(a[f>>2]|0)+o>>0]=r;f=e+380|0;r=e+384|0;if((a[r>>2]|0)<(u|0)){h=e+388|0;_=a[h>>2]|0;if((_|0)<(u|0)){g=o+2-_&-2;d=(_>>1)+2&-2;d=(g|0)>(d|0)?g:d;if((d|0)>(2147483647-_|0)){g=Te(1)|0;Xe(g|0,48,0)}m=a[f>>2]|0;g=d+_|0;a[h>>2]=g;g=Vi(m,g)|0;a[f>>2]=g;if((g|0)==0?(a[(je()|0)>>2]|0)==12:0){g=Te(1)|0;Xe(g|0,48,0)}}h=a[r>>2]|0;if((h|0)<(u|0))do{d=(a[f>>2]|0)+h|0;if(d)i[d>>0]=0;h=h+1|0}while((h|0)!=(u|0));a[r>>2]=u}r=e+288|0;f=a[r>>2]|0;if((f|0)<(u|0)){g=o+2-f&-2;u=(f>>1)+2&-2;u=(g|0)>(u|0)?g:u;if((u|0)>(2147483647-f|0)){g=Te(1)|0;Xe(g|0,48,0)}m=e+280|0;p=a[m>>2]|0;g=u+f|0;a[r>>2]=g;g=Vi(p,g<<2)|0;a[m>>2]=g;if((g|0)==0?(a[(je()|0)>>2]|0)==12:0){g=Te(1)|0;Xe(g|0,48,0)}}u=e+380|0;r=(a[u>>2]|0)+o|0;f=(i[r>>0]|0)==0;if(t){if(f){g=e+200|0;m=g;m=fn(a[m>>2]|0,a[m+4>>2]|0,1,0)|0;a[g>>2]=m;a[g+4>>2]=I}}else if(!f){g=e+200|0;m=g;m=fn(a[m>>2]|0,a[m+4>>2]|0,-1,-1)|0;a[g>>2]=m;a[g+4>>2]=I}i[r>>0]=t&1;t=e+460|0;if((a[e+476>>2]|0)>(o|0)?(a[(a[e+472>>2]|0)+(o<<2)>>2]|0)>-1:0){c=n;return o|0}if(!(i[(a[u>>2]|0)+o>>0]|0)){c=n;return o|0}at(t,o);c=n;return o|0}function Cr(e,r){e=e|0;r=r|0;var t=0,n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0;t=c;c=c+16|0;s=t+1|0;f=t;n=e+492|0;if(!(i[n>>0]|0)){v=0;c=t;return v|0}v=a[r>>2]|0;u=r+4|0;l=a[u>>2]|0;i[s+0>>0]=i[f+0>>0]|0;ft(v,l,s);l=a[u>>2]|0;e:do{if((l|0)>0){s=e+332|0;f=i[528]|0;h=0;d=0;p=-2;while(1){v=a[r>>2]|0;_=a[v+(h<<2)>>2]|0;g=o[(a[s>>2]|0)+(_>>1)>>0]|0;b=g^_&1;m=b&255;y=f&255;if((_|0)==(p^1|0)?1:(m<<24>>24==f<<24>>24&(y>>>1^1)|y&2&b|0)!=0){e=1;break}b=i[536]|0;y=b&255;if((_|0)!=(p|0)?((y>>>1^1)&m<<24>>24==b<<24>>24|g&2&y|0)==0:0){a[v+(d<<2)>>2]=_;l=a[u>>2]|0;d=d+1|0}else _=p;h=h+1|0;if((h|0)<(l|0))p=_;else break e}c=t;return e|0}else{h=0;d=0}}while(0);f=h-d|0;if((f|0)>0){l=l-f|0;a[u>>2]=l}if(!l){i[n>>0]=0;y=0;c=t;return y|0}else if((l|0)==1){b=a[a[r>>2]>>2]|0;v=b>>1;i[(a[e+332>>2]|0)+v>>0]=(b&1^1)&255^1;y=a[e+296>>2]|0;v=(a[e+396>>2]|0)+(v<<3)|0;a[v>>2]=-1;a[v+4>>2]=y;v=e+284|0;y=a[v>>2]|0;a[v>>2]=y+1;a[(a[e+280>>2]|0)+(y<<2)>>2]=b;y=(Rr(e)|0)==-1;i[n>>0]=y&1;c=t;return y|0}else{r=st(e+544|0,r,0)|0;u=e+256|0;n=e+260|0;s=a[n>>2]|0;f=e+264|0;if((s|0)==(a[f>>2]|0)){l=(s>>1)+2&-2;l=(l|0)<2?2:l;if((l|0)>(2147483647-s|0)){y=Te(1)|0;Xe(y|0,48,0)}b=a[u>>2]|0;y=l+s|0;a[f>>2]=y;y=Vi(b,y<<2)|0;a[u>>2]=y;if((y|0)==0?(a[(je()|0)>>2]|0)==12:0){y=Te(1)|0;Xe(y|0,48,0)}s=a[n>>2]|0}a[n>>2]=s+1;n=(a[u>>2]|0)+(s<<2)|0;if(n)a[n>>2]=r;Pr(e,r);y=1;c=t;return y|0}return 0}function Nr(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0;n=a[r>>2]|0;r=n>>1;i[(a[e+332>>2]|0)+r>>0]=(n&1^1)&255^1;o=a[e+296>>2]|0;r=(a[e+396>>2]|0)+(r<<3)|0;a[r>>2]=t;a[r+4>>2]=o;t=e+284|0;r=a[t>>2]|0;a[t>>2]=r+1;a[(a[e+280>>2]|0)+(r<<2)>>2]=n;return}function Rr(e){e=e|0;var r=0,t=0,n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0,T=0,k=0,E=0,S=0,O=0,L=0,C=0,N=0,R=0,P=0,F=0,x=0,B=0,D=0,U=0,V=0,H=0;s=c;c=c+16|0;g=s;u=e+512|0;b=a[u>>2]|0;m=e+284|0;if((b|0)>=(a[m>>2]|0)){D=0;x=0;V=-1;U=e+184|0;P=U;B=P;B=a[B>>2]|0;P=P+4|0;P=a[P>>2]|0;P=fn(B|0,P|0,D|0,x|0)|0;B=I;F=U;a[F>>2]=P;U=U+4|0;a[U>>2]=B;U=e+520|0;B=U;F=B;F=a[F>>2]|0;B=B+4|0;B=a[B>>2]|0;x=nn(F|0,B|0,D|0,x|0)|0;D=I;B=U;a[B>>2]=x;U=U+4|0;a[U>>2]=D;c=s;return V|0}_=e+280|0;f=e+428|0;n=e+412|0;l=e+332|0;h=e+544|0;d=g+4|0;r=e+396|0;p=e+296|0;t=e+456|0;k=-1;v=0;do{a[u>>2]=b+1;A=a[(a[_>>2]|0)+(b<<2)>>2]|0;if(i[(a[f>>2]|0)+A>>0]|0){y=a[n>>2]|0;b=y+(A*12|0)+4|0;T=a[b>>2]|0;if((T|0)>0){y=y+(A*12|0)|0;w=0;M=0;do{S=a[y>>2]|0;E=S+(w<<3)|0;if((a[(a[a[t>>2]>>2]|0)+(a[E>>2]<<2)>>2]&3|0)!=1){U=E;V=a[U+4>>2]|0;T=S+(M<<3)|0;a[T>>2]=a[U>>2];a[T+4>>2]=V;T=a[b>>2]|0;M=M+1|0}w=w+1|0}while((w|0)<(T|0))}else{w=0;M=0}y=w-M|0;if((y|0)>0)a[b>>2]=T-y;i[(a[f>>2]|0)+A>>0]=0}b=a[n>>2]|0;v=v+1|0;y=a[b+(A*12|0)>>2]|0;b=b+(A*12|0)+4|0;M=a[b>>2]|0;w=y+(M<<3)|0;e:do{if(!M){w=y;T=y}else{A=A^1;M=(M<<3)+-1|0;S=y;T=y;while(1){while(1){r:while(1){R=a[S+4>>2]|0;V=o[(a[l>>2]|0)+(R>>1)>>0]^R&1;F=i[528]|0;P=F&255;x=P&2;P=P>>>1^1;if((V&255)<<24>>24==F<<24>>24&P|x&V){C=19;break}E=a[S>>2]|0;C=a[h>>2]|0;N=C+(E<<2)|0;O=C+(E+1<<2)|0;L=a[O>>2]|0;if((L|0)==(A|0)){V=C+(E+2<<2)|0;L=a[V>>2]|0;a[O>>2]=L;a[V>>2]=A}O=S+8|0;a[g>>2]=E;a[d>>2]=L;if((L|0)!=(R|0)?(V=o[(a[l>>2]|0)+(L>>1)>>0]^L&1,((V&255)<<24>>24==F<<24>>24&P|x&V|0)!=0):0){C=27;break}x=a[N>>2]|0;if(x>>>0<=95){C=31;break}P=a[l>>2]|0;F=i[536]|0;R=F&255;V=R&2;R=R>>>1^1;U=2;while(1){B=N+(U<<2)+4|0;D=a[B>>2]|0;H=o[P+(D>>1)>>0]^D&1;U=U+1|0;if(!((H&255)<<24>>24==F<<24>>24&R|V&H))break;if((U|0)>=(x>>>5|0)){C=32;break r}}H=C+(E+2<<2)|0;a[H>>2]=D;a[B>>2]=A;lt((a[n>>2]|0)+((a[H>>2]^1)*12|0)|0,g);if((O|0)==(w|0))break e;else S=O}if((C|0)==19){C=0;U=S;V=a[U+4>>2]|0;H=T;a[H>>2]=a[U>>2];a[H+4>>2]=V;S=S+8|0;T=T+8|0}else if((C|0)==27){C=0;V=g;H=a[V+4>>2]|0;S=T;a[S>>2]=a[V>>2];a[S+4>>2]=H;S=O;T=T+8|0}else if((C|0)==31){F=i[536]|0;C=32}if((C|0)==32){C=T+8|0;N=g;P=a[N+4>>2]|0;R=T;a[R>>2]=a[N>>2];a[R+4>>2]=P;R=L>>1;P=L&1;N=(a[l>>2]|0)+R|0;H=o[N>>0]^P;V=F&255;if((H&255)<<24>>24==F<<24>>24&(V>>>1^1)|V&2&H)break;i[N>>0]=(P^1)&255^1;T=a[p>>2]|0;S=(a[r>>2]|0)+(R<<3)|0;a[S>>2]=E;a[S+4>>2]=T;S=a[m>>2]|0;a[m>>2]=S+1;a[(a[_>>2]|0)+(S<<2)>>2]=L;S=O;T=C}if((S|0)==(w|0))break e}a[u>>2]=a[m>>2];if(O>>>0<w>>>0){k=(y+(M-O)|0)>>>3;while(1){U=O;O=O+8|0;V=a[U+4>>2]|0;H=C;a[H>>2]=a[U>>2];a[H+4>>2]=V;if(O>>>0>=w>>>0)break;else C=C+8|0}S=S+(k+2<<3)|0;T=T+(k+2<<3)|0}else{S=O;T=C}if((S|0)==(w|0)){k=E;break}else k=E}}}while(0);y=w-T|0;if((y|0)>0)a[b>>2]=(a[b>>2]|0)-(y>>3);b=a[u>>2]|0}while((b|0)<(a[m>>2]|0));U=v;B=((v|0)<0)<<31>>31;H=k;V=e+184|0;F=V;D=F;D=a[D>>2]|0;F=F+4|0;F=a[F>>2]|0;F=fn(D|0,F|0,U|0,B|0)|0;D=I;x=V;a[x>>2]=F;V=V+4|0;a[V>>2]=D;V=e+520|0;D=V;x=D;x=a[x>>2]|0;D=D+4|0;D=a[D>>2]|0;B=nn(x|0,D|0,U|0,B|0)|0;U=I;D=V;a[D>>2]=B;V=V+4|0;a[V>>2]=U;c=s;return H|0}function Pr(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0;t=c;c=c+16|0;s=t+8|0;n=t;o=a[e+544>>2]|0;i=o+(r<<2)|0;u=o+(r+1<<2)|0;f=e+412|0;l=(a[f>>2]|0)+((a[u>>2]^1)*12|0)|0;o=o+(r+2<<2)|0;h=a[o>>2]|0;a[s>>2]=r;a[s+4>>2]=h;lt(l,s);o=(a[f>>2]|0)+((a[o>>2]^1)*12|0)|0;u=a[u>>2]|0;a[n>>2]=r;a[n+4>>2]=u;lt(o,n);if(!(a[i>>2]&4)){h=e+208|0;l=h;l=fn(a[l>>2]|0,a[l+4>>2]|0,1,0)|0;a[h>>2]=l;a[h+4>>2]=I;h=e+224|0;l=h;l=fn((a[i>>2]|0)>>>5|0,0,a[l>>2]|0,a[l+4>>2]|0)|0;a[h>>2]=l;a[h+4>>2]=I;c=t;return}else{h=e+216|0;l=h;l=fn(a[l>>2]|0,a[l+4>>2]|0,1,0)|0;a[h>>2]=l;a[h+4>>2]=I;h=e+232|0;l=h;l=fn((a[i>>2]|0)>>>5|0,0,a[l>>2]|0,a[l+4>>2]|0)|0;a[h>>2]=l;a[h+4>>2]=I;c=t;return}}function Ir(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0;o=c;c=c+16|0;l=o+4|0;f=o;u=a[e+544>>2]|0;n=u+(r<<2)|0;s=a[u+(r+1<<2)>>2]^1;if(!t){a[l>>2]=s;t=e+428|0;h=a[t>>2]|0;s=h+s|0;if(!(i[s>>0]|0)){i[s>>0]=1;ot(e+444|0,l);h=a[t>>2]|0}r=a[u+(r+2<<2)>>2]^1;a[f>>2]=r;r=h+r|0;if(!(i[r>>0]|0)){i[r>>0]=1;ot(e+444|0,f)}}else{f=e+412|0;t=a[f>>2]|0;l=t+(s*12|0)|0;u=u+(r+2<<2)|0;s=t+(s*12|0)+4|0;h=a[s>>2]|0;e:do{if((h|0)>0){p=a[l>>2]|0;_=0;while(1){d=_+1|0;if((a[p+(_<<3)>>2]|0)==(r|0)){d=_;break e}if((d|0)<(h|0))_=d;else break}}else d=0}while(0);h=h+-1|0;if((d|0)<(h|0)){do{t=a[l>>2]|0;h=d;d=d+1|0;_=t+(d<<3)|0;p=a[_+4>>2]|0;h=t+(h<<3)|0;a[h>>2]=a[_>>2];a[h+4>>2]=p;h=(a[s>>2]|0)+-1|0}while((d|0)<(h|0));t=a[f>>2]|0}a[s>>2]=h;f=a[u>>2]^1;u=t+(f*12|0)|0;f=t+(f*12|0)+4|0;s=a[f>>2]|0;e:do{if((s|0)>0){t=a[u>>2]|0;h=0;while(1){l=h+1|0;if((a[t+(h<<3)>>2]|0)==(r|0)){l=h;break e}if((l|0)<(s|0))h=l;else break}}else l=0}while(0);r=s+-1|0;if((l|0)<(r|0))do{d=a[u>>2]|0;r=l;l=l+1|0;_=d+(l<<3)|0;p=a[_+4>>2]|0;r=d+(r<<3)|0;a[r>>2]=a[_>>2];a[r+4>>2]=p;r=(a[f>>2]|0)+-1|0}while((l|0)<(r|0));a[f>>2]=r}if(!(a[n>>2]&4)){p=e+208|0;_=p;_=fn(a[_>>2]|0,a[_+4>>2]|0,-1,-1)|0;a[p>>2]=_;a[p+4>>2]=I;p=e+224|0;_=p;_=nn(a[_>>2]|0,a[_+4>>2]|0,(a[n>>2]|0)>>>5|0,0)|0;a[p>>2]=_;a[p+4>>2]=I;c=o;return}else{p=e+216|0;_=p;_=fn(a[_>>2]|0,a[_+4>>2]|0,-1,-1)|0;a[p>>2]=_;a[p+4>>2]=I;p=e+232|0;_=p;_=nn(a[_>>2]|0,a[_+4>>2]|0,(a[n>>2]|0)>>>5|0,0)|0;a[p>>2]=_;a[p+4>>2]=I;c=o;return}}function Fr(e,r){e=e|0;r=r|0;var t=0,n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0;u=c;n=e+544|0;h=a[n>>2]|0;t=h+(r<<2)|0;Ir(e,r,0);h=a[h+(r+1<<2)>>2]|0;f=h>>1;h=(o[(a[e+332>>2]|0)+f>>0]|0)^h&1;_=i[528]|0;d=_&255;if((((h&255)<<24>>24==_<<24>>24&(d>>>1^1)|d&2&h|0)!=0?(s=(a[e+396>>2]|0)+(f<<3)|0,l=a[s>>2]|0,(l|0)!=-1):0)?((a[n>>2]|0)+(l<<2)|0)==(t|0):0)a[s>>2]=-1;a[t>>2]=a[t>>2]&-4|1;d=a[(a[n>>2]|0)+(r<<2)>>2]|0;_=e+556|0;a[_>>2]=((((d>>>3&1)+(d>>>5)<<2)+4|0)>>>2)+(a[_>>2]|0);c=u;return}function xr(e,r){e=e|0;r=r|0;var t=0,n=0,u=0,f=0,s=0,l=0,h=0;t=c;n=a[r>>2]|0;if(n>>>0<=31){l=0;c=t;return l|0}u=a[e+332>>2]|0;f=i[528]|0;s=f&255;l=s&2;s=s>>>1^1;e=0;while(1){h=a[r+(e<<2)+4>>2]|0;h=(o[u+(h>>1)>>0]|0)^h&1;e=e+1|0;if((h&255)<<24>>24==f<<24>>24&s|l&h){n=1;r=5;break}if((e|0)>=(n>>>5|0)){n=0;r=5;break}}if((r|0)==5){c=t;return n|0}return 0}function Br(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0;o=c;t=e+296|0;if((a[t>>2]|0)<=(r|0)){c=o;return}n=e+284|0;v=a[n>>2]|0;f=e+292|0;b=a[f>>2]|0;y=a[b+(r<<2)>>2]|0;if((v|0)>(y|0)){g=e+280|0;h=e+332|0;l=e+88|0;s=e+348|0;d=e+460|0;p=e+476|0;m=e+472|0;_=e+380|0;do{v=v+-1|0;y=a[(a[g>>2]|0)+(v<<2)>>2]>>1;i[(a[h>>2]|0)+y>>0]=i[544]|0;b=a[l>>2]|0;if((b|0)<=1){if((b|0)==1?(v|0)>(a[(a[f>>2]|0)+((a[t>>2]|0)+-1<<2)>>2]|0):0)u=7}else u=7;if((u|0)==7){u=0;i[(a[s>>2]|0)+y>>0]=a[(a[g>>2]|0)+(v<<2)>>2]&1}if(!((a[p>>2]|0)>(y|0)?(a[(a[m>>2]|0)+(y<<2)>>2]|0)>-1:0))u=11;if((u|0)==11?(u=0,(i[(a[_>>2]|0)+y>>0]|0)!=0):0)at(d,y);b=a[f>>2]|0;y=a[b+(r<<2)>>2]|0}while((v|0)>(y|0));v=a[n>>2]|0}a[e+512>>2]=y;e=a[b+(r<<2)>>2]|0;if((v-e|0)>0)a[n>>2]=e;if(((a[t>>2]|0)-r|0)<=0){c=o;return}a[t>>2]=r;c=o;return}function Dr(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0,s=0,h=0,d=0,_=0,p=0,m=0.0,g=0;r=c;n=e+72|0;m=+l[n>>3]*1389796.0;m=m-+(~~(m/2147483647.0)|0)*2147483647.0;l[n>>3]=m;s=e+464|0;if(m/2147483647.0<+l[e+64>>3]?(h=a[s>>2]|0,(h|0)!=0):0){m=m*1389796.0;m=m-+(~~(m/2147483647.0)|0)*2147483647.0;l[n>>3]=m;h=a[(a[e+460>>2]|0)+(~~(+(h|0)*(m/2147483647.0))<<2)>>2]|0;_=i[(a[e+332>>2]|0)+h>>0]|0;d=i[544]|0;p=d&255;if(((p>>>1^1)&_<<24>>24==d<<24>>24|_&2&p|0)!=0?(i[(a[e+380>>2]|0)+h>>0]|0)!=0:0){p=e+176|0;_=p;_=fn(a[_>>2]|0,a[_+4>>2]|0,1,0)|0;a[p>>2]=_;a[p+4>>2]=I}}else h=-1;d=e+460|0;p=e+332|0;_=e+380|0;while(1){if(((h|0)!=-1?(g=i[(a[p>>2]|0)+h>>0]|0,u=i[544]|0,t=u&255,o=t>>>1^1,(o&g<<24>>24==u<<24>>24|g&2&t|0)!=0):0)?(i[(a[_>>2]|0)+h>>0]|0)!=0:0)break;if(!(a[s>>2]|0)){t=-2;f=17;break}h=ct(d)|0}if((f|0)==17){c=r;return t|0}s=i[(a[e+364>>2]|0)+h>>0]|0;f=s&255;if(!(o&s<<24>>24==u<<24>>24|t&2&f)){p=i[528]|0;g=p&255;g=((g>>>1^1)&s<<24>>24==p<<24>>24|f&2&g|0)!=0|h<<1;c=r;return g|0}if(!(i[e+92>>0]|0)){g=(i[(a[e+348>>2]|0)+h>>0]|0)!=0|h<<1;c=r;return g|0}else{m=+l[n>>3]*1389796.0;m=m-+(~~(m/2147483647.0)|0)*2147483647.0;l[n>>3]=m;g=m/2147483647.0<.5|h<<1;c=r;return g|0}return 0}function Ur(e,r,t,n){e=e|0;r=r|0;t=t|0;n=n|0;var o=0,u=0,f=0,h=0,d=0,_=0,p=0,m=0,g=0.0,v=0,b=0,y=0,w=0,A=0,M=0,T=0,k=0,E=0,S=0,O=0,L=0,C=0,N=0,R=0,P=0,F=0,x=0,B=0,D=0,U=0,V=0,H=0,q=0,j=0,$=0,W=0.0,z=0;o=c;c=c+16|0;p=o+8|0;b=o+4|0;d=o;h=t+4|0;u=a[h>>2]|0;f=t+8|0;if((u|0)==(a[f>>2]|0)){m=(u>>1)+2&-2;m=(m|0)<2?2:m;if((m|0)>(2147483647-u|0)){$=Te(1)|0;Xe($|0,48,0)}j=a[t>>2]|0;$=m+u|0;a[f>>2]=$;$=Vi(j,$<<2)|0;a[t>>2]=$;if(($|0)==0?(a[(je()|0)>>2]|0)==12:0){$=Te(1)|0;Xe($|0,48,0)}u=a[h>>2]|0}f=(a[t>>2]|0)+(u<<2)|0;if(f){a[f>>2]=0;u=a[h>>2]|0}a[h>>2]=u+1;m=e+544|0;R=e+280|0;u=e+588|0;f=e+396|0;O=e+504|0;C=e+316|0;L=e+540|0;S=e+476|0;E=e+472|0;k=e+460|0;T=e+488|0;M=e+296|0;w=e+496|0;A=e+272|0;N=e+268|0;F=-2;P=(a[e+284>>2]|0)+-1|0;x=0;do{B=a[m>>2]|0;r=B+(r<<2)|0;D=a[r>>2]|0;if((D&4|0)!=0?(g=+l[w>>3],$=r+(D>>>5<<2)+4|0,W=g+ +s[$>>2],s[$>>2]=W,W>1.0e20):0){V=a[A>>2]|0;if((V|0)>0){U=a[N>>2]|0;D=0;do{$=B+(a[U+(D<<2)>>2]<<2)|0;$=$+((a[$>>2]|0)>>>5<<2)+4|0;s[$>>2]=+s[$>>2]*1.0e-20;D=D+1|0}while((D|0)!=(V|0))}l[w>>3]=g*1.0e-20}F=(F|0)!=-2&1;if(F>>>0<(a[r>>2]|0)>>>5>>>0)do{D=a[r+(F<<2)+4>>2]|0;a[b>>2]=D;D=D>>1;B=(a[u>>2]|0)+D|0;do{if((i[B>>0]|0)==0?(a[(a[f>>2]|0)+(D<<3)+4>>2]|0)>0:0){V=a[C>>2]|0;$=V+(D<<3)|0;W=+l[O>>3]+ +l[$>>3];l[$>>3]=W;if(W>1.0e+100){H=a[L>>2]|0;if((H|0)>0){U=0;do{$=V+(U<<3)|0;l[$>>3]=+l[$>>3]*1.0e-100;U=U+1|0}while((U|0)!=(H|0))}l[O>>3]=+l[O>>3]*1.0e-100}if((a[S>>2]|0)>(D|0)?(y=a[E>>2]|0,v=a[y+(D<<2)>>2]|0,(v|0)>-1):0){U=a[k>>2]|0;V=a[U+(v<<2)>>2]|0;e:do{if(!v)j=0;else{$=v;while(1){j=$;$=$+-1>>1;q=U+($<<2)|0;H=a[q>>2]|0;z=a[a[T>>2]>>2]|0;if(!(+l[z+(V<<3)>>3]>+l[z+(H<<3)>>3]))break e;a[U+(j<<2)>>2]=H;a[y+(a[q>>2]<<2)>>2]=j;if(!$){j=0;break}}}}while(0);a[U+(j<<2)>>2]=V;a[y+(V<<2)>>2]=j}i[B>>0]=1;if((a[(a[f>>2]|0)+(D<<3)+4>>2]|0)<(a[M>>2]|0)){ot(t,b);break}else{x=x+1|0;break}}}while(0);F=F+1|0}while((F|0)<((a[r>>2]|0)>>>5|0));r=a[R>>2]|0;B=a[u>>2]|0;do{F=P;P=P+-1|0;F=a[r+(F<<2)>>2]|0;U=F>>1;D=B+U|0}while((i[D>>0]|0)==0);r=a[(a[f>>2]|0)+(U<<3)>>2]|0;i[D>>0]=0;x=x+-1|0}while((x|0)>0);a[a[t>>2]>>2]=F^1;b=e+616|0;w=a[b>>2]|0;v=e+620|0;if(!w)A=a[v>>2]|0;else{a[v>>2]=0;A=0}y=a[h>>2]|0;if((A|0)<(y|0)){T=e+624|0;M=a[T>>2]|0;if((M|0)<(y|0)){z=y+1-M&-2;A=(M>>1)+2&-2;A=(z|0)>(A|0)?z:A;if((A|0)>(2147483647-M|0)){z=Te(1)|0;Xe(z|0,48,0)}z=A+M|0;a[T>>2]=z;w=Vi(w,z<<2)|0;a[b>>2]=w;if((w|0)==0?(a[(je()|0)>>2]|0)==12:0){z=Te(1)|0;Xe(z|0,48,0)}}A=a[v>>2]|0;e:do{if((A|0)<(y|0))while(1){w=w+(A<<2)|0;if(w)a[w>>2]=0;A=A+1|0;if((A|0)==(y|0))break e;w=a[b>>2]|0}}while(0);a[v>>2]=y;y=a[h>>2]|0}if((y|0)>0){A=a[b>>2]|0;w=a[t>>2]|0;M=0;do{a[A+(M<<2)>>2]=a[w+(M<<2)>>2];M=M+1|0;y=a[h>>2]|0}while((M|0)<(y|0))}w=a[e+84>>2]|0;if((w|0)==1)if((y|0)>1){d=a[t>>2]|0;_=1;w=1;while(1){y=a[d+(_<<2)>>2]|0;p=a[f>>2]|0;A=a[p+(y>>1<<3)>>2]|0;e:do{if((A|0)!=-1){M=(a[m>>2]|0)+(A<<2)|0;T=a[M>>2]|0;if(T>>>0>63){A=a[u>>2]|0;k=1;while(1){z=a[M+(k<<2)+4>>2]>>1;if((i[A+z>>0]|0)==0?(a[p+(z<<3)+4>>2]|0)>0:0)break;k=k+1|0;if((k|0)>=(T>>>5|0))break e}a[d+(w<<2)>>2]=y;w=w+1|0}}else{a[d+(w<<2)>>2]=y;w=w+1|0}}while(0);_=_+1|0;p=a[h>>2]|0;if((_|0)>=(p|0)){d=p;break}}}else{d=y;_=1;w=1}else if((w|0)==2)if((y|0)>1){m=1;w=1;do{A=a[t>>2]|0;y=a[A+(m<<2)>>2]|0;if((a[(a[f>>2]|0)+(y>>1<<3)>>2]|0)!=-1){a[d>>2]=y;a[p+0>>2]=a[d+0>>2];if(!(Vr(e,p)|0)){y=a[t>>2]|0;A=y;y=a[y+(m<<2)>>2]|0;_=62}}else _=62;if((_|0)==62){_=0;a[A+(w<<2)>>2]=y;w=w+1|0}m=m+1|0;y=a[h>>2]|0}while((m|0)<(y|0));d=y;_=m}else{d=y;_=1;w=1}else{d=y;_=y;w=y}z=e+240|0;$=z;$=fn(a[$>>2]|0,a[$+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;a[z>>2]=$;a[z+4>>2]=I;_=_-w|0;if((_|0)>0){d=d-_|0;a[h>>2]=d}z=e+248|0;$=z;$=fn(a[$>>2]|0,a[$+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;a[z>>2]=$;a[z+4>>2]=I;if((d|0)==1)t=0;else{t=a[t>>2]|0;if((d|0)>2){e=a[f>>2]|0;h=2;_=1;do{_=(a[e+(a[t+(h<<2)>>2]>>1<<3)+4>>2]|0)>(a[e+(a[t+(_<<2)>>2]>>1<<3)+4>>2]|0)?h:_;h=h+1|0}while((h|0)<(d|0))}else _=1;$=t+(_<<2)|0;z=a[$>>2]|0;t=t+4|0;a[$>>2]=a[t>>2];a[t>>2]=z;t=a[(a[f>>2]|0)+(z>>1<<3)+4>>2]|0}a[n>>2]=t;if((a[v>>2]|0)>0)n=0;else{c=o;return}do{i[(a[u>>2]|0)+(a[(a[b>>2]|0)+(n<<2)>>2]>>1)>>0]=0;n=n+1|0}while((n|0)<(a[v>>2]|0));c=o;return}function Vr(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0;t=c;d=a[r>>2]|0;l=e+396|0;m=a[l>>2]|0;s=e+544|0;v=(a[s>>2]|0)+(a[m+(d>>1<<3)>>2]<<2)|0;u=e+604|0;n=e+608|0;if(a[u>>2]|0)a[n>>2]=0;o=e+588|0;f=e+612|0;e=e+616|0;_=1;while(1){if(_>>>0<(a[v>>2]|0)>>>5>>>0){g=a[v+(_<<2)+4>>2]|0;p=g>>1;if((a[m+(p<<3)+4>>2]|0)!=0?(h=i[(a[o>>2]|0)+p>>0]|0,(h+-1<<24>>24&255)>=2):0){v=a[n>>2]|0;b=(v|0)==(a[f>>2]|0);if(h<<24>>24==3?1:(a[m+(p<<3)>>2]|0)==-1){s=8;break}if(b){m=(v>>1)+2&-2;m=(m|0)<2?2:m;if((m|0)>(2147483647-v|0)){s=24;break}y=a[u>>2]|0;b=m+v|0;a[f>>2]=b;b=Vi(y,b<<3)|0;a[u>>2]=b;if((b|0)==0?(a[(je()|0)>>2]|0)==12:0){s=24;break}v=a[n>>2]|0}a[n>>2]=v+1;m=(a[u>>2]|0)+(v<<3)|0;if(m){y=m;a[y>>2]=_;a[y+4>>2]=d}a[r>>2]=g;v=a[l>>2]|0;d=g;m=v;v=(a[s>>2]|0)+(a[v+(p<<3)>>2]<<2)|0;_=0}}else{d=(a[o>>2]|0)+(d>>1)|0;if(!(i[d>>0]|0)){i[d>>0]=2;ot(e,r)}d=a[n>>2]|0;if(!d){n=1;s=34;break}y=d+-1|0;d=a[u>>2]|0;_=a[d+(y<<3)>>2]|0;d=a[d+(y<<3)+4>>2]|0;a[r>>2]=d;m=a[l>>2]|0;v=(a[s>>2]|0)+(a[m+(d>>1<<3)>>2]<<2)|0;a[n>>2]=y}_=_+1|0}if((s|0)==8){if(b){s=(v>>1)+2&-2;s=(s|0)<2?2:s;if((s|0)>(2147483647-v|0)){y=Te(1)|0;Xe(y|0,48,0)}b=a[u>>2]|0;y=s+v|0;a[f>>2]=y;y=Vi(b,y<<3)|0;a[u>>2]=y;if((y|0)==0?(a[(je()|0)>>2]|0)==12:0){y=Te(1)|0;Xe(y|0,48,0)}v=a[n>>2]|0}f=v+1|0;a[n>>2]=f;s=(a[u>>2]|0)+(v<<3)|0;if(s){f=s;a[f>>2]=0;a[f+4>>2]=d;f=a[n>>2]|0}if((f|0)>0)s=0;else{y=0;c=t;return y|0}do{l=(a[o>>2]|0)+(a[(a[u>>2]|0)+(s<<3)+4>>2]>>1)|0;if(!(i[l>>0]|0)){i[l>>0]=3;ot(e,(a[u>>2]|0)+(s<<3)+4|0);f=a[n>>2]|0}s=s+1|0}while((s|0)<(f|0));n=0;c=t;return n|0}else if((s|0)==24)Xe(Te(1)|0,48,0);else if((s|0)==34){c=t;return n|0}return 0}function Hr(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0;f=c;c=c+32|0;u=f+16|0;o=f+12|0;s=f+8|0;n=f;d=t+20|0;l=t+16|0;if((a[d>>2]|0)>0){h=0;do{i[(a[t>>2]|0)+(a[(a[l>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0}while((h|0)<(a[d>>2]|0))}if(a[l>>2]|0)a[d>>2]=0;h=a[r>>2]|0;a[s>>2]=h;a[o>>2]=h;a[u+0>>2]=a[o+0>>2];ht(t,u,0);l=(a[t>>2]|0)+h|0;if(!(i[l>>0]|0)){i[l>>0]=1;ot(t+16|0,s)}if(!(a[e+296>>2]|0)){c=f;return}r=h>>1;_=e+588|0;i[(a[_>>2]|0)+r>>0]=1;p=a[e+284>>2]|0;d=e+292|0;v=a[a[d>>2]>>2]|0;if((p|0)>(v|0)){s=e+280|0;l=e+396|0;h=t+16|0;e=e+544|0;do{p=p+-1|0;g=a[(a[s>>2]|0)+(p<<2)>>2]|0;m=g>>1;if(i[(a[_>>2]|0)+m>>0]|0){v=a[l>>2]|0;b=a[v+(m<<3)>>2]|0;e:do{if((b|0)==-1){g=g^1;a[n>>2]=g;a[o>>2]=g;a[u+0>>2]=a[o+0>>2];ht(t,u,0);g=(a[t>>2]|0)+g|0;if(!(i[g>>0]|0)){i[g>>0]=1;ot(h,n)}}else{g=(a[e>>2]|0)+(b<<2)|0;b=a[g>>2]|0;if(b>>>0>63){y=1;while(1){w=a[g+(y<<2)+4>>2]>>1;if((a[v+(w<<3)+4>>2]|0)>0){i[(a[_>>2]|0)+w>>0]=1;b=a[g>>2]|0}y=y+1|0;if((y|0)>=(b>>>5|0))break e;v=a[l>>2]|0}}}}while(0);i[(a[_>>2]|0)+m>>0]=0;v=a[a[d>>2]>>2]|0}}while((p|0)>(v|0))}i[(a[_>>2]|0)+r>>0]=0;c=f;return}function qr(e){e=e|0;var r=0,t=0,n=0,u=0,f=0,h=0,d=0.0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0,T=0,k=0;t=c;c=c+16|0;p=t+4|0;y=t;r=e+272|0;A=a[r>>2]|0;d=+l[e+496>>3]/+(A|0);u=e+544|0;f=e+268|0;w=a[f>>2]|0;a[y>>2]=u;a[p+0>>2]=a[y+0>>2];dt(w,A,p);p=a[r>>2]|0;if((p|0)>0){h=e+332|0;_=e+396|0;m=0;w=0;do{b=a[f>>2]|0;y=a[b+(m<<2)>>2]|0;A=a[u>>2]|0;g=A+(y<<2)|0;v=a[g>>2]|0;do{if(v>>>0>95){M=a[A+(y+1<<2)>>2]|0;A=M>>1;M=(o[(a[h>>2]|0)+A>>0]|0)^M&1;k=i[528]|0;T=k&255;if(((M&255)<<24>>24==k<<24>>24&(T>>>1^1)|T&2&M|0)!=0?(k=a[(a[_>>2]|0)+(A<<3)>>2]|0,(k|0)!=-1&(k|0)==(y|0)):0){n=9;break}if((m|0)>=((p|0)/2|0|0)?!(+s[g+(v>>>5<<2)+4>>2]<d):0){n=9;break}Fr(e,y)}else n=9}while(0);if((n|0)==9){n=0;a[b+(w<<2)>>2]=y;w=w+1|0}m=m+1|0;p=a[r>>2]|0}while((m|0)<(p|0))}else{m=0;w=0}n=m-w|0;if((n|0)>0)a[r>>2]=p-n;if(!(+((a[e+556>>2]|0)>>>0)>+l[e+96>>3]*+((a[e+548>>2]|0)>>>0))){c=t;return}qn[a[(a[e>>2]|0)+8>>2]&31](e);c=t;return}function jr(e,r){e=e|0;r=r|0;var t=0,n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0;t=c;n=r+4|0;h=a[n>>2]|0;if((h|0)>0){f=e+544|0;u=e+332|0;s=0;l=0;do{y=a[r>>2]|0;p=a[y+(s<<2)>>2]|0;h=(a[f>>2]|0)+(p<<2)|0;_=a[h>>2]|0;do{if(_>>>0>31){w=a[u>>2]|0;g=i[528]|0;m=g&255;A=m&2;m=m>>>1^1;v=_>>>5;b=0;do{M=a[h+(b<<2)+4>>2]|0;M=(o[w+(M>>1)>>0]|0)^M&1;b=b+1|0;if((M&255)<<24>>24==g<<24>>24&m|A&M){d=7;break}}while((b|0)<(v|0));if((d|0)==7){d=0;Fr(e,p);break}if(_>>>0>95){d=i[536]|0;m=_>>>5;p=2;do{g=h+(p<<2)+4|0;M=a[g>>2]|0;M=(o[(a[u>>2]|0)+(M>>1)>>0]|0)^M&1;A=d&255;if((M&255)<<24>>24==d<<24>>24&(A>>>1^1)|A&2&M){a[g>>2]=a[h+(m+-1<<2)+4>>2];_=a[h>>2]|0;if(_&8){_=_>>>5;a[h+(_+-1<<2)+4>>2]=a[h+(_<<2)+4>>2];_=a[h>>2]|0}_=_+-32|0;a[h>>2]=_;p=p+-1|0}p=p+1|0;m=_>>>5}while((p|0)<(m|0));p=a[r>>2]|0;y=p;p=a[p+(s<<2)>>2]|0;d=16}else d=16}else d=16}while(0);if((d|0)==16){d=0;a[y+(l<<2)>>2]=p;l=l+1|0}s=s+1|0;h=a[n>>2]|0}while((s|0)<(h|0))}else{s=0;l=0}r=s-l|0;if((r|0)<=0){c=t;return}a[n>>2]=h-r;c=t;return}function $r(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0;o=c;c=c+16|0;t=o+4|0;u=o;a[t>>2]=0;r=t+4|0;a[r>>2]=0;n=t+8|0;a[n>>2]=0;a[u>>2]=0;f=e+540|0;d=a[f>>2]|0;if((d|0)>0){l=e+380|0;s=e+332|0;h=0;do{if((i[(a[l>>2]|0)+h>>0]|0)!=0?(p=i[(a[s>>2]|0)+h>>0]|0,m=i[544]|0,_=m&255,((_>>>1^1)&p<<24>>24==m<<24>>24|p&2&_|0)!=0):0){ut(t,u);d=a[f>>2]|0}h=h+1|0;a[u>>2]=h}while((h|0)<(d|0))}_t(e+460|0,t);e=a[t>>2]|0;if(!e){c=o;return}a[r>>2]=0;Ui(e);a[t>>2]=0;a[n>>2]=0;c=o;return}function Wr(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0,s=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0;r=c;n=e+492|0;if((i[n>>0]|0)!=0?(Rr(e)|0)==-1:0){n=e+284|0;o=e+516|0;if((a[n>>2]|0)==(a[o>>2]|0)){v=1;c=r;return v|0}u=e+520|0;v=u;g=a[v+4>>2]|0;if((g|0)>0|(g|0)==0&(a[v>>2]|0)>>>0>0){v=1;c=r;return v|0}jr(e,e+268|0);if(i[e+536>>0]|0){jr(e,e+256|0);s=e+564|0;f=e+568|0;if((a[f>>2]|0)>0){d=e+588|0;h=0;do{i[(a[d>>2]|0)+(a[(a[s>>2]|0)+(h<<2)>>2]|0)>>0]=1;h=h+1|0}while((h|0)<(a[f>>2]|0))}p=a[n>>2]|0;if((p|0)>0){h=a[e+280>>2]|0;d=a[e+588>>2]|0;m=0;_=0;do{g=a[h+(m<<2)>>2]|0;if(!(i[d+(g>>1)>>0]|0)){a[h+(_<<2)>>2]=g;p=a[n>>2]|0;_=_+1|0}m=m+1|0}while((m|0)<(p|0))}else{m=0;_=0}h=m-_|0;if((h|0)>0){p=p-h|0;a[n>>2]=p}a[e+512>>2]=p;e:do{if((a[f>>2]|0)>0){_=e+588|0;h=0;do{i[(a[_>>2]|0)+(a[(a[s>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0;d=a[f>>2]|0}while((h|0)<(d|0));if((d|0)>0){d=e+580|0;_=e+584|0;h=e+576|0;p=0;while(1){g=a[d>>2]|0;if((g|0)==(a[_>>2]|0)){m=(g>>1)+2&-2;m=(m|0)<2?2:m;if((m|0)>(2147483647-g|0)){t=28;break}v=a[h>>2]|0;m=m+g|0;a[_>>2]=m;m=Vi(v,m<<2)|0;a[h>>2]=m;if((m|0)==0?(a[(je()|0)>>2]|0)==12:0){t=28;break}g=a[d>>2]|0}else m=a[h>>2]|0;v=m+(g<<2)|0;if(v){a[v>>2]=0;g=a[d>>2]|0}a[d>>2]=g+1;v=a[s>>2]|0;a[m+(g<<2)>>2]=a[v+(p<<2)>>2];p=p+1|0;if((p|0)>=(a[f>>2]|0))break e}if((t|0)==28)Xe(Te(1)|0,48,0)}else t=21}else t=21}while(0);if((t|0)==21)v=a[s>>2]|0;if(v)a[f>>2]=0}if(+((a[e+556>>2]|0)>>>0)>+l[e+96>>3]*+((a[e+548>>2]|0)>>>0))qn[a[(a[e>>2]|0)+8>>2]&31](e);$r(e);a[o>>2]=a[n>>2];g=e+224|0;v=e+232|0;g=fn(a[v>>2]|0,a[v+4>>2]|0,a[g>>2]|0,a[g+4>>2]|0)|0;v=u;a[v>>2]=g;a[v+4>>2]=I;v=1;c=r;return v|0}i[n>>0]=0;v=0;c=r;return v|0}function zr(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,u=0,f=0,h=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0,T=0,k=0,E=0,S=0,O=0,L=0,C=0,N=0,R=0,P=0,F=0,x=0,B=0,D=0,U=0,V=0,H=0,q=0,j=0,$=0,W=0,z=0,X=0,Z=0,Y=0,G=0,J=0,Q=0,ee=0,re=0,te=0,ie=0,ne=0,ae=0.0,oe=0,ue=0,fe=0,se=0.0,le=0,ce=0,he=0,de=0,_e=0,pe=0,me=0.0,ge=0,ve=0,be=0.0;h=c;c=c+64|0;J=h;N=h+60|0;S=h+56|0;n=h+44|0;Q=h+40|0;a[n>>2]=0;f=n+4|0;a[f>>2]=0;u=n+8|0;a[u>>2]=0;U=r+160|0;D=U;D=fn(a[D>>2]|0,a[D+4>>2]|0,1,0)|0;a[U>>2]=D;a[U+4>>2]=I;U=(t|0)<0;D=r+680|0;B=r+664|0;x=r+672|0;m=r+296|0;A=r+272|0;_=r+284|0;P=r+640|0;C=r+308|0;L=r+304|0;g=r+332|0;R=r+292|0;re=r+168|0;b=r+396|0;w=r+280|0;F=r+184|0;O=r+192|0;y=r+48|0;W=r+504|0;Y=r+56|0;ee=r+496|0;te=r+656|0;V=r+144|0;H=r+648|0;q=r+128|0;j=r+44|0;$=r+200|0;z=r+208|0;X=r+224|0;Z=r+216|0;v=r+232|0;G=r+540|0;p=r+292|0;M=r+544|0;k=r+276|0;T=r+268|0;E=r+268|0;ie=0;e:while(1){ne=U|(ie|0)<(t|0);while(1){oe=Rr(r)|0;if((oe|0)!=-1)break;if(!ne){oe=41;break e}if(i[D>>0]|0){oe=41;break e}oe=B;ue=a[oe+4>>2]|0;if((ue|0)>=0?(ve=O,ge=a[ve+4>>2]|0,!(ge>>>0<ue>>>0|((ge|0)==(ue|0)?(a[ve>>2]|0)>>>0<(a[oe>>2]|0)>>>0:0))):0){oe=41;break e}oe=x;ue=a[oe+4>>2]|0;if((ue|0)>=0?(ve=F,ge=a[ve+4>>2]|0,!(ge>>>0<ue>>>0|((ge|0)==(ue|0)?(a[ve>>2]|0)>>>0<(a[oe>>2]|0)>>>0:0))):0){oe=41;break e}if((a[m>>2]|0)==0?!(Wr(r)|0):0){oe=50;break e}if(+((a[A>>2]|0)-(a[_>>2]|0)|0)>=+l[P>>3])qr(r);while(1){oe=a[m>>2]|0;if((oe|0)>=(a[C>>2]|0)){oe=59;break}le=a[(a[L>>2]|0)+(oe<<2)>>2]|0;ue=o[(a[g>>2]|0)+(le>>1)>>0]|0;ve=ue^le&1;fe=ve&255;pe=i[528]|0;ge=pe&255;if(!(fe<<24>>24==pe<<24>>24&(ge>>>1^1)|ge&2&ve)){oe=56;break}a[N>>2]=a[_>>2];ut(R,N)}if((oe|0)==56){oe=0;ge=i[536]|0;ve=ge&255;if((ve>>>1^1)&fe<<24>>24==ge<<24>>24|ue&2&ve){oe=57;break e}if((le|0)==-2)oe=59}if((oe|0)==59){ve=re;ve=fn(a[ve>>2]|0,a[ve+4>>2]|0,1,0)|0;le=re;a[le>>2]=ve;a[le+4>>2]=I;le=Dr(r)|0;if((le|0)==-2){oe=60;break e}}a[J>>2]=a[_>>2];ut(R,J);ve=le>>1;i[(a[g>>2]|0)+ve>>0]=(le&1^1)&255^1;ge=a[m>>2]|0;ve=(a[b>>2]|0)+(ve<<3)|0;a[ve>>2]=-1;a[ve+4>>2]=ge;ve=a[_>>2]|0;a[_>>2]=ve+1;a[(a[w>>2]|0)+(ve<<2)>>2]=le}ge=O;ge=fn(a[ge>>2]|0,a[ge+4>>2]|0,1,0)|0;ve=O;a[ve>>2]=ge;a[ve+4>>2]=I;ie=ie+1|0;if(!(a[m>>2]|0)){oe=5;break}if(a[n>>2]|0)a[f>>2]=0;Ur(r,oe,n,S);Br(r,a[S>>2]|0);if((a[f>>2]|0)==1){ge=a[a[n>>2]>>2]|0;ve=ge>>1;i[(a[g>>2]|0)+ve>>0]=(ge&1^1)&255^1;pe=a[m>>2]|0;ve=(a[b>>2]|0)+(ve<<3)|0;a[ve>>2]=-1;a[ve+4>>2]=pe;ve=a[_>>2]|0;a[_>>2]=ve+1;a[(a[w>>2]|0)+(ve<<2)>>2]=ge}else{ne=st(M,n,1)|0;oe=a[A>>2]|0;if((oe|0)==(a[k>>2]|0)){ue=(oe>>1)+2&-2;ue=(ue|0)<2?2:ue;if((ue|0)>(2147483647-oe|0)){oe=14;break}ge=a[T>>2]|0;ve=ue+oe|0;a[k>>2]=ve;ve=Vi(ge,ve<<2)|0;a[T>>2]=ve;if((ve|0)==0?(a[(je()|0)>>2]|0)==12:0){oe=14;break}oe=a[A>>2]|0}a[A>>2]=oe+1;oe=(a[T>>2]|0)+(oe<<2)|0;if(oe)a[oe>>2]=ne;Pr(r,ne);fe=a[M>>2]|0;ve=fe+(ne<<2)|0;ae=+l[ee>>3];ve=ve+((a[ve>>2]|0)>>>5<<2)+4|0;be=ae+ +s[ve>>2];s[ve>>2]=be;if(be>1.0e20){ue=a[A>>2]|0;if((ue|0)>0){oe=a[E>>2]|0;le=0;do{ve=fe+(a[oe+(le<<2)>>2]<<2)|0;ve=ve+((a[ve>>2]|0)>>>5<<2)+4|0;s[ve>>2]=+s[ve>>2]*1.0e-20;le=le+1|0}while((le|0)!=(ue|0))}l[ee>>3]=ae*1.0e-20}ge=a[a[n>>2]>>2]|0;ve=ge>>1;i[(a[g>>2]|0)+ve>>0]=(ge&1^1)&255^1;pe=a[m>>2]|0;ve=(a[b>>2]|0)+(ve<<3)|0;a[ve>>2]=ne;a[ve+4>>2]=pe;ve=a[_>>2]|0;a[_>>2]=ve+1;a[(a[w>>2]|0)+(ve<<2)>>2]=ge}l[W>>3]=1.0/+l[y>>3]*+l[W>>3];l[ee>>3]=1.0/+l[Y>>3]*+l[ee>>3];ve=(a[te>>2]|0)+-1|0;a[te>>2]=ve;if(ve)continue;ae=+l[V>>3]*+l[H>>3];l[H>>3]=ae;a[te>>2]=~~ae;ae=+l[q>>3]*+l[P>>3];l[P>>3]=ae;if((a[j>>2]|0)<=0)continue;oe=a[O>>2]|0;ne=a[$>>2]|0;_e=a[m>>2]|0;if(!_e)ue=_;else ue=a[p>>2]|0;ue=a[ue>>2]|0;de=a[z>>2]|0;he=a[X>>2]|0;ce=a[Z>>2]|0;le=v;fe=a[le>>2]|0;le=a[le+4>>2]|0;se=+(a[G>>2]|0);me=1.0/se;if((_e|0)<0)be=0.0;else{pe=0;be=0.0;while(1){if(!pe)ge=0;else ge=a[(a[p>>2]|0)+(pe+-1<<2)>>2]|0;if((pe|0)==(_e|0))ve=_;else ve=(a[p>>2]|0)+(pe<<2)|0;be=be+ +K(+me,+ +(pe|0))*+((a[ve>>2]|0)-ge|0);if((pe|0)==(_e|0))break;else pe=pe+1|0}}a[J>>2]=oe;a[J+4>>2]=ne-ue;a[J+8>>2]=de;a[J+12>>2]=he;a[J+16>>2]=~~ae;a[J+20>>2]=ce;ve=J+24|0;l[d>>3]=(+(fe>>>0)+4294967296.0*+(le>>>0))/+(ce|0);a[ve>>2]=a[d>>2];a[ve+4>>2]=a[d+4>>2];ve=J+32|0;l[d>>3]=be/se*100.0;a[ve>>2]=a[d>>2];a[ve+4>>2]=a[d+4>>2];Ve(1832,J|0)|0}if((oe|0)==5)i[e>>0]=i[536]|0;else if((oe|0)==14)Xe(Te(1)|0,48,0);else if((oe|0)==41){ae=+(a[G>>2]|0);se=1.0/ae;g=a[m>>2]|0;if((g|0)<0)me=0.0;else{m=0;me=0.0;while(1){if(!m)v=0;else v=a[(a[p>>2]|0)+(m+-1<<2)>>2]|0;if((m|0)==(g|0))b=_;else b=(a[p>>2]|0)+(m<<2)|0;me=me+ +K(+se,+ +(m|0))*+((a[b>>2]|0)-v|0);if((m|0)==(g|0))break;else m=m+1|0}}l[r+528>>3]=me/ae;Br(r,0);i[e>>0]=i[544]|0}else if((oe|0)==50)i[e>>0]=i[536]|0;else if((oe|0)==57){a[Q>>2]=le^1;ve=r+16|0;a[J+0>>2]=a[Q+0>>2];Hr(r,J,ve);i[e>>0]=i[536]|0}else if((oe|0)==60)i[e>>0]=i[528]|0;e=a[n>>2]|0;if(!e){c=h;return}a[f>>2]=0;Ui(e);a[n>>2]=0;a[u>>2]=0;c=h;return}function Kr(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0.0,A=0,M=0,T=0,k=0.0,E=0,S=0;n=c;c=c+16|0;u=n;t=r+4|0;if(a[t>>2]|0)a[r+8>>2]=0;o=r+36|0;f=r+32|0;if((a[o>>2]|0)>0){s=r+16|0;h=0;do{i[(a[s>>2]|0)+(a[(a[f>>2]|0)+(h<<2)>>2]|0)>>0]=0;h=h+1|0}while((h|0)<(a[o>>2]|0))}if(a[f>>2]|0)a[o>>2]=0;f=r+492|0;if(!(i[f>>0]|0)){i[e>>0]=i[536]|0;c=n;return}s=r+152|0;T=s;T=fn(a[T>>2]|0,a[T+4>>2]|0,1,0)|0;a[s>>2]=T;a[s+4>>2]=I;k=+l[r+120>>3]*+(a[r+208>>2]|0);s=r+640|0;l[s>>3]=k;w=+(a[r+104>>2]|0);if(k<w)l[s>>3]=w;A=a[r+136>>2]|0;l[r+648>>3]=+(A|0);a[r+656>>2]=A;A=i[544]|0;s=r+44|0;if((a[s>>2]|0)>0){Ue(2288)|0;Ue(2368)|0;Ue(2448)|0;Ue(2528)|0;_=i[544]|0}else _=A;d=r+192|0;h=r+184|0;T=_&255;e:do{if((T>>>1^1)&A<<24>>24==_<<24>>24|A&2&T){m=r+80|0;b=r+112|0;p=r+108|0;_=r+680|0;g=r+664|0;v=r+672|0;y=0;while(1){w=+l[b>>3];if(!(i[m>>0]|0))w=+K(+w,+ +(y|0));else{T=y+1|0;if((y|0)>0){M=0;A=1;do{M=M+1|0;A=A<<1|1}while((A|0)<(T|0));T=A+-1|0}else{M=0;T=0}if((T|0)!=(y|0)){A=y;do{E=T>>1;M=M+-1|0;A=(A|0)%(E|0)|0;T=E+-1|0}while((T|0)!=(A|0))}w=+K(+w,+ +(M|0))}zr(u,r,~~(w*+(a[p>>2]|0)));A=i[u>>0]|0;if(i[_>>0]|0)break e;T=g;M=a[T+4>>2]|0;if((M|0)>=0?(E=d,S=a[E+4>>2]|0,!(S>>>0<M>>>0|((S|0)==(M|0)?(a[E>>2]|0)>>>0<(a[T>>2]|0)>>>0:0))):0)break e;T=v;M=a[T+4>>2]|0;if((M|0)>=0?(S=h,E=a[S+4>>2]|0,!(E>>>0<M>>>0|((E|0)==(M|0)?(a[S>>2]|0)>>>0<(a[T>>2]|0)>>>0:0))):0)break e;E=i[544]|0;S=E&255;if(!((S>>>1^1)&A<<24>>24==E<<24>>24|A&2&S))break;else y=y+1|0}}}while(0);if((a[s>>2]|0)>0)Ue(2528)|0;E=i[528]|0;S=E&255;u=A&2;if(!((S>>>1^1)&A<<24>>24==E<<24>>24|u&S)){E=i[536]|0;S=E&255;if(((S>>>1^1)&A<<24>>24==E<<24>>24|u&S|0)!=0?(a[o>>2]|0)==0:0)i[f>>0]=0}else{o=r+540|0;it(t,a[o>>2]|0);if((a[o>>2]|0)>0){u=r+332|0;f=0;do{i[(a[t>>2]|0)+f>>0]=i[(a[u>>2]|0)+f>>0]|0;f=f+1|0}while((f|0)<(a[o>>2]|0))}}Br(r,0);i[e>>0]=A;c=n;return}function Xr(e,r){e=e|0;r=r|0;var t=0,n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0;t=c;u=e+412|0;pt(u);s=e+540|0;if((a[s>>2]|0)>0){f=e+544|0;n=0;do{l=n<<1;d=a[u>>2]|0;h=d+(l*12|0)+4|0;if((a[h>>2]|0)>0){p=d+(l*12|0)|0;_=0;do{v=(a[p>>2]|0)+(_<<3)|0;d=a[v>>2]|0;m=a[f>>2]|0;g=m+(d<<2)|0;if(!(a[g>>2]&16)){b=mt(r,g)|0;a[v>>2]=b;a[g>>2]=a[g>>2]|16;a[m+(d+1<<2)>>2]=b}else a[v>>2]=a[m+(d+1<<2)>>2];_=_+1|0}while((_|0)<(a[h>>2]|0));h=a[u>>2]|0}else h=d;d=l|1;l=h+(d*12|0)+4|0;if((a[l>>2]|0)>0){g=h+(d*12|0)|0;m=0;do{h=(a[g>>2]|0)+(m<<3)|0;p=a[h>>2]|0;_=a[f>>2]|0;d=_+(p<<2)|0;if(!(a[d>>2]&16)){b=mt(r,d)|0;a[h>>2]=b;a[d>>2]=a[d>>2]|16;a[_+(p+1<<2)>>2]=b}else a[h>>2]=a[_+(p+1<<2)>>2];m=m+1|0}while((m|0)<(a[l>>2]|0))}n=n+1|0}while((n|0)<(a[s>>2]|0))}n=e+284|0;if((a[n>>2]|0)>0){l=e+280|0;s=e+396|0;f=e+544|0;u=e+332|0;h=0;do{g=a[s>>2]|0;p=g+(a[(a[l>>2]|0)+(h<<2)>>2]>>1<<3)|0;m=a[p>>2]|0;do{if((m|0)!=-1){b=a[f>>2]|0;v=b+(m<<2)|0;_=(a[v>>2]&16|0)==0;if(_){y=a[b+(m+1<<2)>>2]|0;d=y>>1;y=(o[(a[u>>2]|0)+d>>0]|0)^y&1;A=i[528]|0;w=A&255;if(!((y&255)<<24>>24==A<<24>>24&(w>>>1^1)|w&2&y))break;A=a[g+(d<<3)>>2]|0;if(!((A|0)!=-1&(A|0)==(m|0)))break;if(_){A=mt(r,v)|0;a[p>>2]=A;a[v>>2]=a[v>>2]|16;a[b+(m+1<<2)>>2]=A;break}}a[p>>2]=a[b+(m+1<<2)>>2]}}while(0);h=h+1|0}while((h|0)<(a[n>>2]|0))}n=e+272|0;d=a[n>>2]|0;if((d|0)>0){f=e+268|0;u=e+544|0;h=a[f>>2]|0;s=0;l=0;do{p=h+(s<<2)|0;_=a[p>>2]|0;g=a[u>>2]|0;m=g+(_<<2)|0;v=a[m>>2]|0;if((v&3|0)!=1){if(!(v&16)){d=mt(r,m)|0;a[p>>2]=d;a[m>>2]=a[m>>2]|16;a[g+(_+1<<2)>>2]=d;d=a[f>>2]|0;h=d;d=a[d+(s<<2)>>2]|0}else{d=a[g+(_+1<<2)>>2]|0;a[p>>2]=d}a[h+(l<<2)>>2]=d;d=a[n>>2]|0;l=l+1|0}s=s+1|0}while((s|0)<(d|0))}else{s=0;l=0}u=s-l|0;if((u|0)>0)a[n>>2]=d-u;n=e+260|0;h=a[n>>2]|0;if((h|0)>0){u=e+256|0;e=e+544|0;l=a[u>>2]|0;f=0;s=0;do{d=l+(f<<2)|0;p=a[d>>2]|0;_=a[e>>2]|0;g=_+(p<<2)|0;m=a[g>>2]|0;if((m&3|0)!=1){if(!(m&16)){h=mt(r,g)|0;a[d>>2]=h;a[g>>2]=a[g>>2]|16;a[_+(p+1<<2)>>2]=h;h=a[u>>2]|0;l=h;h=a[h+(f<<2)>>2]|0}else{h=a[_+(p+1<<2)>>2]|0;a[d>>2]=h}a[l+(s<<2)>>2]=h;h=a[n>>2]|0;s=s+1|0}f=f+1|0}while((f|0)<(h|0))}else{f=0;s=0}r=f-s|0;if((r|0)<=0){c=t;return}a[n>>2]=h-r;c=t;return}function Zr(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0,s=0;o=c;c=c+32|0;f=o;r=o+8|0;t=e+548|0;n=e+556|0;u=(a[t>>2]|0)-(a[n>>2]|0)|0;a[r+0>>2]=0;a[r+4>>2]=0;a[r+8>>2]=0;a[r+12>>2]=0;et(r,u);u=r+16|0;i[u>>0]=0;Xr(e,r);if((a[e+44>>2]|0)>1){s=a[r+4>>2]<<2;a[f>>2]=a[t>>2]<<2;a[f+4>>2]=s;Ve(1888,f|0)|0}i[e+560>>0]=i[u>>0]|0;u=e+544|0;f=a[u>>2]|0;if(f)Ui(f);a[u>>2]=a[r>>2];a[t>>2]=a[r+4>>2];a[e+552>>2]=a[r+8>>2];a[n>>2]=a[r+12>>2];c=o;return}function Yr(){var e=0,r=0,t=0;e=c;c=c+16|0;r=e;i[528]=0;i[536]=1;i[544]=2;gr(552,608,624,2136,2144);a[138]=2168;l[72]=0.0;l[73]=1.0;i[592]=0;i[593]=0;n[297]=n[r+0>>1]|0;n[298]=n[r+2>>1]|0;n[299]=n[r+4>>1]|0;l[75]=.95;gr(664,720,736,2136,2144);a[166]=2168;l[86]=0.0;l[87]=1.0;i[704]=0;i[705]=0;n[353]=n[r+0>>1]|0;n[354]=n[r+2>>1]|0;n[355]=n[r+4>>1]|0;l[89]=.999;gr(776,832,848,2136,2144);a[194]=2168;l[100]=0.0;l[101]=1.0;i[816]=1;i[817]=1;n[409]=n[r+0>>1]|0;n[410]=n[r+2>>1]|0;n[411]=n[r+4>>1]|0;l[103]=0.0;gr(936,992,1008,2136,2144);a[234]=2168;l[120]=0.0;l[121]=T;i[976]=0;i[977]=0;n[489]=n[r+0>>1]|0;n[490]=n[r+2>>1]|0;n[491]=n[r+4>>1]|0;l[123]=91648253.0;gr(1048,1080,1096,2136,2016);a[262]=280;t=1068|0;a[t>>2]=0;a[t+4>>2]=2;a[269]=2;gr(1160,1192,1208,2136,2016);a[290]=280;t=1180|0;a[t>>2]=0;a[t+4>>2]=2;a[297]=2;gr(1272,1296,1312,2136,1992);a[318]=160;i[1292]=0;gr(1344,1368,1376,2136,1992);a[336]=160;i[1364]=1;gr(1408,1440,1448,2136,2016);a[352]=280;t=1428|0;a[t>>2]=1;a[t+4>>2]=2147483647;a[359]=100;gr(1480,1536,1544,2136,2144);a[370]=2168;l[188]=1.0;l[189]=T;i[1520]=0;i[1521]=0;n[761]=n[r+0>>1]|0;n[762]=n[r+2>>1]|0;n[763]=n[r+4>>1]|0;l[191]=2.0;gr(1584,1640,1648,2136,2144);a[396]=2168;l[201]=0.0;l[202]=T;i[1624]=0;i[1625]=0;n[813]=n[r+0>>1]|0;n[814]=n[r+2>>1]|0;n[815]=n[r+4>>1]|0;l[204]=.2;gr(1728,1760,1776,2136,2016);a[432]=280;r=1748|0;a[r>>2]=0;a[r+4>>2]=2147483647;a[439]=0;c=e;return}function Gr(e){e=e|0;var r=0;r=c;si(e);c=r;return}function Jr(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,h=0,d=0,_=0,p=0.0,m=0.0;t=c;c=c+16|0;u=t;o=t+8|0;if((i[r>>0]|0)!=45){_=0;c=t;return _|0}h=r+1|0;n=e+4|0;f=a[n>>2]|0;s=i[f>>0]|0;e:do{if(s<<24>>24){d=0;while(1){_=d;d=d+1|0;if((i[h>>0]|0)!=s<<24>>24){e=0;break}s=i[f+d>>0]|0;h=r+(_+2)|0;if(!(s<<24>>24))break e}c=t;return e|0}}while(0);if((i[h>>0]|0)!=61){_=0;c=t;return _|0}f=h+1|0;p=+Yi(f,o);if(!(a[o>>2]|0)){_=0;c=t;return _|0}m=+l[e+32>>3];if(p>=m?(i[e+41>>0]|0)==0|p!=m:0){_=a[v>>2]|0;d=a[n>>2]|0;a[u>>2]=f;a[u+4>>2]=d;er(_|0,2024,u|0)|0;ir(1)}m=+l[e+24>>3];if(p<=m?(i[e+40>>0]|0)==0|p!=m:0){_=a[v>>2]|0;d=a[n>>2]|0;a[u>>2]=f;a[u+4>>2]=d;er(_|0,2080,u|0)|0;ir(1)}l[e+48>>3]=p;_=1;c=t;return _|0}function Qr(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0.0,s=0,h=0.0,_=0.0,p=0;t=c;c=c+48|0;n=t;o=a[v>>2]|0;p=a[e+16>>2]|0;s=(i[e+40>>0]|0)!=0?91:40;_=+l[e+24>>3];h=+l[e+32>>3];u=(i[e+41>>0]|0)!=0?93:41;f=+l[e+48>>3];a[n>>2]=a[e+4>>2];a[n+4>>2]=p;a[n+8>>2]=s;s=n+12|0;l[d>>3]=_;a[s>>2]=a[d>>2];a[s+4>>2]=a[d+4>>2];s=n+20|0;l[d>>3]=h;a[s>>2]=a[d>>2];a[s+4>>2]=a[d+4>>2];a[n+28>>2]=u;u=n+32|0;l[d>>3]=f;a[u>>2]=a[d>>2];a[u+4>>2]=a[d+4>>2];er(o|0,2232,n|0)|0;if(!r){c=t;return}a[n>>2]=a[e+8>>2];er(o|0,2e3,n|0)|0;Ke(10,o|0)|0;c=t;return}function et(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0;t=c;i=e+8|0;n=a[i>>2]|0;if(n>>>0<r>>>0)u=n;else{c=t;return}while(1){if(u>>>0>=r>>>0)break;u=((u>>>3)+2+(u>>>1)&-2)+u|0;a[i>>2]=u;if(u>>>0<=n>>>0){o=4;break}}if((o|0)==4)Xe(Te(1)|0,48,0);i=Vi(a[e>>2]|0,u<<2)|0;if((i|0)==0?(a[(je()|0)>>2]|0)==12:0)Xe(Te(1)|0,48,0);a[e>>2]=i;c=t;return}function rt(e){e=e|0;var r=0,t=0,i=0,n=0,o=0,u=0,f=0;r=c;i=e+32|0;t=a[i>>2]|0;if(t){a[e+36>>2]=0;Ui(t);a[i>>2]=0;a[e+40>>2]=0}i=e+16|0;t=a[i>>2]|0;if(t){a[e+20>>2]=0;Ui(t);a[i>>2]=0;a[e+24>>2]=0}i=a[e>>2]|0;if(!i){c=r;return}t=e+4|0;o=a[t>>2]|0;if((o|0)>0){n=0;do{f=i+(n*12|0)|0;u=a[f>>2]|0;if(u){a[i+(n*12|0)+4>>2]=0;Ui(u);a[f>>2]=0;a[i+(n*12|0)+8>>2]=0;i=a[e>>2]|0;o=a[t>>2]|0}n=n+1|0}while((n|0)<(o|0))}a[t>>2]=0;Ui(i);a[e>>2]=0;a[e+8>>2]=0;c=r;return}function tt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0;n=c;c=c+16|0;i=n+4|0;t=n;l=a[r>>2]|0;u=l+1|0;o=e+4|0;if((a[o>>2]|0)<(u|0)){s=e+8|0;f=a[s>>2]|0;if((f|0)<(u|0)){h=l+2-f&-2;l=(f>>1)+2&-2;l=(h|0)>(l|0)?h:l;if((l|0)>(2147483647-f|0)){h=Te(1)|0;Xe(h|0,48,0)}d=a[e>>2]|0;h=l+f|0;a[s>>2]=h;h=Vi(d,h*12|0)|0;a[e>>2]=h;if((h|0)==0?(a[(je()|0)>>2]|0)==12:0){d=Te(1)|0;Xe(d|0,48,0)}}s=a[o>>2]|0;if((s|0)<(u|0)){f=a[e>>2]|0;do{l=f+(s*12|0)|0;if(l){a[l>>2]=0;a[f+(s*12|0)+4>>2]=0;a[f+(s*12|0)+8>>2]=0}s=s+1|0}while((s|0)!=(u|0))}a[o>>2]=u;l=a[r>>2]|0}o=a[e>>2]|0;if(!(a[o+(l*12|0)>>2]|0)){h=l;d=e+16|0;a[t>>2]=h;a[i+0>>2]=a[t+0>>2];ht(d,i,0);c=n;return}a[o+(l*12|0)+4>>2]=0;h=a[r>>2]|0;d=e+16|0;a[t>>2]=h;a[i+0>>2]=a[t+0>>2];ht(d,i,0);c=n;return}function it(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0;n=c;t=e+4|0;if((a[t>>2]|0)>=(r|0)){c=n;return}u=e+8|0;o=a[u>>2]|0;if((o|0)<(r|0)){s=r+1-o&-2;f=(o>>1)+2&-2;f=(s|0)>(f|0)?s:f;if((f|0)>(2147483647-o|0)){s=Te(1)|0;Xe(s|0,48,0)}l=a[e>>2]|0;s=f+o|0;a[u>>2]=s;s=Vi(l,s)|0;a[e>>2]=s;if((s|0)==0?(a[(je()|0)>>2]|0)==12:0){l=Te(1)|0;Xe(l|0,48,0)}}o=a[t>>2]|0;if((o|0)<(r|0)){e=a[e>>2]|0;do{u=e+o|0;if(u)i[u>>0]=0;o=o+1|0}while((o|0)!=(r|0))}a[t>>2]=r;c=n;return}function nt(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0;u=c;o=r+1|0;n=e+4|0;if((a[n>>2]|0)>=(o|0)){l=a[e>>2]|0;l=l+r|0;i[l>>0]=t;c=u;return}s=e+8|0;f=a[s>>2]|0;if((f|0)<(o|0)){h=r+2-f&-2;l=(f>>1)+2&-2;l=(h|0)>(l|0)?h:l;if((l|0)>(2147483647-f|0)){h=Te(1)|0;Xe(h|0,48,0)}d=a[e>>2]|0;h=l+f|0;a[s>>2]=h;h=Vi(d,h)|0;a[e>>2]=h;if((h|0)==0?(a[(je()|0)>>2]|0)==12:0){d=Te(1)|0;Xe(d|0,48,0)}}f=a[n>>2]|0;if((f|0)<(o|0))do{s=(a[e>>2]|0)+f|0;if(s)i[s>>0]=0;f=f+1|0}while((f|0)!=(o|0));a[n>>2]=o;d=a[e>>2]|0;d=d+r|0;i[d>>0]=t;c=u;return}function at(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,h=0,d=0,_=0;t=c;c=c+16|0;o=t;a[o>>2]=r;u=e+12|0;n=r+1|0;i=e+16|0;if((a[i>>2]|0)<(n|0)){s=e+20|0;f=a[s>>2]|0;if((f|0)<(n|0)){d=r+2-f&-2;h=(f>>1)+2&-2;h=(d|0)>(h|0)?d:h;if((h|0)>(2147483647-f|0)){d=Te(1)|0;Xe(d|0,48,0)}_=a[u>>2]|0;d=h+f|0;a[s>>2]=d;d=Vi(_,d<<2)|0;a[u>>2]=d;if((d|0)==0?(a[(je()|0)>>2]|0)==12:0){_=Te(1)|0;Xe(_|0,48,0)}}f=a[i>>2]|0;if((n|0)>(f|0))an((a[u>>2]|0)+(f<<2)|0,-1,n-f<<2|0)|0;a[i>>2]=n}a[(a[u>>2]|0)+(r<<2)>>2]=a[e+4>>2];ut(e,o);i=a[u>>2]|0;o=a[i+(r<<2)>>2]|0;r=a[e>>2]|0;n=a[r+(o<<2)>>2]|0;if(!o){d=0;_=r+(d<<2)|0;a[_>>2]=n;_=i+(n<<2)|0;a[_>>2]=d;c=t;return}e=e+28|0;while(1){u=o;o=o+-1>>1;f=r+(o<<2)|0;s=a[f>>2]|0;_=a[a[e>>2]>>2]|0;if(!(+l[_+(n<<3)>>3]>+l[_+(s<<3)>>3])){e=14;break}a[r+(u<<2)>>2]=s;a[i+(a[f>>2]<<2)>>2]=u;if(!o){u=0;e=14;break}}if((e|0)==14){_=r+(u<<2)|0;a[_>>2]=n;_=i+(n<<2)|0;a[_>>2]=u;c=t;return}}function ot(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0;t=c;i=e+4|0;n=a[i>>2]|0;o=e+8|0;u=a[o>>2]|0;if((n|0)==(u|0)&(u|0)<(n+1|0)){u=(n>>1)+2&-2;u=(u|0)<2?2:u;if((u|0)>(2147483647-n|0)){u=Te(1)|0;Xe(u|0,48,0)}f=a[e>>2]|0;n=u+n|0;a[o>>2]=n;n=Vi(f,n<<2)|0;a[e>>2]=n;if((n|0)==0?(a[(je()|0)>>2]|0)==12:0){f=Te(1)|0;Xe(f|0,48,0)}}else n=a[e>>2]|0;f=a[i>>2]|0;a[i>>2]=f+1;i=n+(f<<2)|0;if(!i){c=t;return}a[i>>2]=a[r>>2];c=t;return}function ut(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0;t=c;i=e+4|0;n=a[i>>2]|0;o=e+8|0;u=a[o>>2]|0;if((n|0)==(u|0)&(u|0)<(n+1|0)){u=(n>>1)+2&-2;u=(u|0)<2?2:u;if((u|0)>(2147483647-n|0)){u=Te(1)|0;Xe(u|0,48,0)}f=a[e>>2]|0;n=u+n|0;a[o>>2]=n;n=Vi(f,n<<2)|0;a[e>>2]=n;if((n|0)==0?(a[(je()|0)>>2]|0)==12:0){f=Te(1)|0;Xe(f|0,48,0)}}else n=a[e>>2]|0;f=a[i>>2]|0;a[i>>2]=f+1;i=n+(f<<2)|0;if(!i){c=t;return}a[i>>2]=a[r>>2];c=t;return}function ft(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0;t=c;c=c+16|0;n=t+2|0;u=t+1|0;o=t;if((r|0)<16){o=r+-1|0;if((o|0)>0)u=0;else{c=t;return}do{n=u;u=u+1|0;if((u|0)<(r|0)){s=n;f=u;do{s=(a[e+(f<<2)>>2]|0)<(a[e+(s<<2)>>2]|0)?f:s;f=f+1|0}while((f|0)!=(r|0))}else s=n;d=e+(n<<2)|0;_=a[d>>2]|0;p=e+(s<<2)|0;a[d>>2]=a[p>>2];a[p>>2]=_}while((u|0)!=(o|0));c=t;return}f=a[e+(((r|0)/2|0)<<2)>>2]|0;h=-1;d=r;while(1){do{h=h+1|0;l=e+(h<<2)|0;s=a[l>>2]|0}while((s|0)<(f|0));do{d=d+-1|0;_=e+(d<<2)|0;p=a[_>>2]|0}while((f|0)<(p|0));if((h|0)>=(d|0))break;a[l>>2]=p;a[_>>2]=s}i[n+0>>0]=i[u+0>>0]|0;ft(e,h,n);p=r-h|0;i[n+0>>0]=i[o+0>>0]|0;ft(l,p,n);c=t;return}function st(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,u=0,f=0,l=0,h=0;i=c;f=t&1;u=o[e+16>>0]|0|f;n=r+4|0;l=((u+(a[n>>2]|0)<<2)+4|0)>>>2;h=e+4|0;et(e,l+(a[h>>2]|0)|0);t=a[h>>2]|0;l=l+t|0;a[h>>2]=l;if(l>>>0<t>>>0)Xe(Te(1)|0,48,0);e=(a[e>>2]|0)+(t<<2)|0;if(!e){c=i;return t|0}u=u<<3|f<<2;a[e>>2]=a[e>>2]&-32|u;u=a[n>>2]<<5|u;a[e>>2]=u;if((a[n>>2]|0)>0){u=a[r>>2]|0;r=0;do{a[e+(r<<2)+4>>2]=a[u+(r<<2)>>2];r=r+1|0}while((r|0)<(a[n>>2]|0));u=a[e>>2]|0}if(!(u&8)){c=i;return t|0}n=u>>>5;if(u&4){s[e+(n<<2)+4>>2]=0.0;c=i;return t|0}if(!n){n=0;u=0}else{u=0;r=0;do{u=1<<((a[e+(r<<2)+4>>2]|0)>>>1&31)|u;r=r+1|0}while((r|0)<(n|0))}a[e+(n<<2)+4>>2]=u;c=i;return t|0}function lt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0;t=c;i=e+4|0;n=a[i>>2]|0;o=e+8|0;u=a[o>>2]|0;if((n|0)==(u|0)&(u|0)<(n+1|0)){u=(n>>1)+2&-2;u=(u|0)<2?2:u;if((u|0)>(2147483647-n|0)){u=Te(1)|0;Xe(u|0,48,0)}f=a[e>>2]|0;n=u+n|0;a[o>>2]=n;n=Vi(f,n<<3)|0;a[e>>2]=n;if((n|0)==0?(a[(je()|0)>>2]|0)==12:0){f=Te(1)|0;Xe(f|0,48,0)}}else n=a[e>>2]|0;f=a[i>>2]|0;a[i>>2]=f+1;i=n+(f<<3)|0;if(!i){c=t;return}o=r;u=a[o+4>>2]|0;f=i;a[f>>2]=a[o>>2];a[f+4>>2]=u;c=t;return}function ct(e){e=e|0;var r=0,t=0,i=0,n=0,o=0,u=0,f=0,s=0,h=0,d=0,_=0,p=0,m=0.0,g=0.0,v=0;r=c;t=a[e>>2]|0;n=a[t>>2]|0;f=e+4|0;_=a[t+((a[f>>2]|0)+-1<<2)>>2]|0;a[t>>2]=_;i=a[e+12>>2]|0;a[i+(_<<2)>>2]=0;a[i+(n<<2)>>2]=-1;_=(a[f>>2]|0)+-1|0;a[f>>2]=_;if((_|0)<=1){c=r;return n|0}o=a[t>>2]|0;s=e+28|0;e=0;h=1;while(1){d=(e<<1)+2|0;if((d|0)<(_|0)){p=a[t+(d<<2)>>2]|0;v=a[t+(h<<2)>>2]|0;_=a[a[s>>2]>>2]|0;m=+l[_+(p<<3)>>3];g=+l[_+(v<<3)>>3];if(!(m>g)){p=v;m=g;u=6}}else{_=a[a[s>>2]>>2]|0;u=a[t+(h<<2)>>2]|0;p=u;m=+l[_+(u<<3)>>3];u=6}if((u|0)==6){u=0;d=h}if(!(m>+l[_+(o<<3)>>3]))break;a[t+(e<<2)>>2]=p;a[i+(p<<2)>>2]=e;h=d<<1|1;_=a[f>>2]|0;if((h|0)>=(_|0)){e=d;break}else e=d}a[t+(e<<2)>>2]=o;a[i+(o<<2)>>2]=e;c=r;return n|0}function ht(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,u=0,f=0,s=0,l=0,h=0;n=c;s=a[r>>2]|0;r=s+1|0;o=e+4|0;if((a[o>>2]|0)>=(r|0)){c=n;return}f=e+8|0;u=a[f>>2]|0;if((u|0)<(r|0)){l=s+2-u&-2;s=(u>>1)+2&-2;s=(l|0)>(s|0)?l:s;if((s|0)>(2147483647-u|0)){l=Te(1)|0;Xe(l|0,48,0)}h=a[e>>2]|0;l=s+u|0;a[f>>2]=l;l=Vi(h,l)|0;a[e>>2]=l;if((l|0)==0?(a[(je()|0)>>2]|0)==12:0){h=Te(1)|0;Xe(h|0,48,0)}}u=a[o>>2]|0;if((u|0)<(r|0))do{i[(a[e>>2]|0)+u>>0]=t;u=u+1|0}while((u|0)!=(r|0));a[o>>2]=r;c=n;return}function dt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,o=0,u=0,f=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0;i=c;c=c+16|0;o=i+8|0;n=i+4|0;u=i;if((r|0)<16){n=r+-1|0;if((n|0)<=0){c=i;return}o=a[t>>2]|0;t=0;do{u=t;t=t+1|0;if((t|0)<(r|0)){f=a[o>>2]|0;h=u;l=t;do{d=f+(a[e+(l<<2)>>2]<<2)|0;y=a[d>>2]|0;m=y>>>5;if(y>>>0>95){_=f+(a[e+(h<<2)>>2]<<2)|0;p=(a[_>>2]|0)>>>5;if((p|0)==2)h=l;else h=+s[d+(m<<2)+4>>2]<+s[_+(p<<2)+4>>2]?l:h}l=l+1|0}while((l|0)!=(r|0))}else h=u;v=e+(u<<2)|0;b=a[v>>2]|0;y=e+(h<<2)|0;a[v>>2]=a[y>>2];a[y>>2]=b}while((t|0)!=(n|0));c=i;return}f=a[e+(((r|0)/2|0)<<2)>>2]|0;m=-1;_=r;while(1){b=m+1|0;p=e+(b<<2)|0;y=a[p>>2]|0;l=a[t>>2]|0;h=a[l>>2]|0;v=h+(y<<2)|0;g=a[v>>2]|0;m=h+(f<<2)|0;d=a[m>>2]|0;e:do{if(g>>>0>95)while(1){w=d>>>5;if((w|0)!=2?!(+s[v+(g>>>5<<2)+4>>2]<+s[m+(w<<2)+4>>2]):0){m=b;break e}b=b+1|0;p=e+(b<<2)|0;y=a[p>>2]|0;v=h+(y<<2)|0;g=a[v>>2]|0;if(g>>>0<=95){m=b;break}}else m=b}while(0);_=_+-1|0;v=e+(_<<2)|0;g=h+(f<<2)|0;e:do{if(d>>>0>95)while(1){b=h+(a[v>>2]<<2)|0;w=(a[b>>2]|0)>>>5;if((w|0)!=2?!(+s[g+(d>>>5<<2)+4>>2]<+s[b+(w<<2)+4>>2]):0)break e;w=_+-1|0;v=e+(w<<2)|0;_=w}}while(0);if((m|0)>=(_|0))break;a[p>>2]=a[v>>2];a[v>>2]=y}a[n>>2]=l;a[o+0>>2]=a[n+0>>2];dt(e,m,o);w=r-m|0;a[u>>2]=l;a[o+0>>2]=a[u+0>>2];dt(p,w,o);c=i;return}function _t(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,h=0,d=0,_=0,p=0,m=0.0,g=0.0,v=0;i=c;n=e+4|0;u=a[n>>2]|0;o=a[e>>2]|0;if((u|0)>0){s=a[e+12>>2]|0;f=0;do{a[s+(a[o+(f<<2)>>2]<<2)>>2]=-1;f=f+1|0;u=a[n>>2]|0}while((f|0)<(u|0))}if(o){a[n>>2]=0;u=0}o=r+4|0;if((a[o>>2]|0)>0){f=e+12|0;u=0;do{v=(a[r>>2]|0)+(u<<2)|0;a[(a[f>>2]|0)+(a[v>>2]<<2)>>2]=u;ut(e,v);u=u+1|0}while((u|0)<(a[o>>2]|0));u=a[n>>2]|0}if((u|0)<=1){c=i;return}o=a[e>>2]|0;r=e+28|0;e=e+12|0;_=u;f=(u|0)/2|0;while(1){f=f+-1|0;u=a[o+(f<<2)>>2]|0;h=f<<1|1;e:do{if((h|0)<(_|0)){s=f;while(1){d=(s<<1)+2|0;if((d|0)<(_|0)){p=a[o+(d<<2)>>2]|0;v=a[o+(h<<2)>>2]|0;_=a[a[r>>2]>>2]|0;m=+l[_+(p<<3)>>3];g=+l[_+(v<<3)>>3];if(!(m>g)){p=v;m=g;t=16}}else{_=a[a[r>>2]>>2]|0;t=a[o+(h<<2)>>2]|0;p=t;m=+l[_+(t<<3)>>3];t=16}if((t|0)==16){t=0;d=h}if(!(m>+l[_+(u<<3)>>3]))break e;a[o+(s<<2)>>2]=p;a[(a[e>>2]|0)+(p<<2)>>2]=s;h=d<<1|1;_=a[n>>2]|0;if((h|0)>=(_|0)){s=d;break}else s=d}}else s=f}while(0);a[o+(s<<2)>>2]=u;a[(a[e>>2]|0)+(u<<2)>>2]=s;if((f|0)<=0)break;_=a[n>>2]|0}c=i;return}function pt(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0;t=c;r=e+36|0;l=a[r>>2]|0;n=e+32|0;d=a[n>>2]|0;if((l|0)>0){u=e+16|0;o=e+44|0;f=0;do{s=d+(f<<2)|0;h=a[s>>2]|0;if(i[(a[u>>2]|0)+h>>0]|0){d=a[e>>2]|0;l=d+(h*12|0)+4|0;p=a[l>>2]|0;if((p|0)>0){h=d+(h*12|0)|0;d=0;_=0;do{m=a[h>>2]|0;g=m+(d<<3)|0;if((a[(a[a[o>>2]>>2]|0)+(a[g>>2]<<2)>>2]&3|0)!=1){v=g;g=a[v+4>>2]|0;p=m+(_<<3)|0;a[p>>2]=a[v>>2];a[p+4>>2]=g;p=a[l>>2]|0;_=_+1|0}d=d+1|0}while((d|0)<(p|0))}else{d=0;_=0}h=d-_|0;if((h|0)>0)a[l>>2]=p-h;i[(a[u>>2]|0)+(a[s>>2]|0)>>0]=0;l=a[r>>2]|0;d=a[n>>2]|0}f=f+1|0}while((f|0)<(l|0))}if(!d){c=t;return}a[r>>2]=0;c=t;return}function mt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,u=0,f=0;i=c;u=a[r>>2]|0;n=u>>>2&1|(o[e+16>>0]|0);u=((n+(u>>>5)<<2)+4|0)>>>2;f=e+4|0;et(e,u+(a[f>>2]|0)|0);t=a[f>>2]|0;u=u+t|0;a[f>>2]=u;if(u>>>0<t>>>0)Xe(Te(1)|0,48,0);e=(a[e>>2]|0)+(t<<2)|0;if(!e){c=i;return t|0}n=a[r>>2]&-9|n<<3;a[e>>2]=n;if((a[r>>2]|0)>>>0>31){n=0;do{a[e+(n<<2)+4>>2]=a[r+(n<<2)+4>>2];n=n+1|0}while((n|0)<((a[r>>2]|0)>>>5|0));n=a[e>>2]|0}if(!(n&8)){c=i;return t|0}u=n>>>5;r=r+(u<<2)+4|0;if(!(n&4)){a[e+(u<<2)+4>>2]=a[r>>2];c=i;return t|0}else{s[e+(u<<2)+4>>2]=+s[r>>2];c=i;return t|0}return 0}function gt(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0;r=c;c=c+16|0;o=r;Er(e);a[e>>2]=3424;a[e+684>>2]=a[719];a[e+688>>2]=a[747];a[e+692>>2]=a[785];l[e+696>>3]=+l[411];i[e+704>>0]=i[2652]|0;i[e+705>>0]=i[2724]|0;i[e+706>>0]=i[2804]|0;i[e+707>>0]=1;a[e+708>>2]=0;a[e+712>>2]=0;a[e+716>>2]=0;a[e+720>>2]=1;i[e+724>>0]=1;t=e+732|0;f=e+544|0;a[e+760>>2]=0;a[e+764>>2]=0;a[e+768>>2]=0;a[e+776>>2]=0;a[e+780>>2]=0;a[e+784>>2]=0;a[e+792>>2]=0;a[e+796>>2]=0;a[e+800>>2]=0;u=e+804|0;a[t+0>>2]=0;a[t+4>>2]=0;a[t+8>>2]=0;a[t+12>>2]=0;a[t+16>>2]=0;a[t+20>>2]=0;a[u>>2]=f;u=e+808|0;a[u>>2]=0;a[e+812>>2]=0;a[e+816>>2]=0;t=e+824|0;a[t+0>>2]=0;a[t+4>>2]=0;a[t+8>>2]=0;a[t+12>>2]=0;a[t+16>>2]=0;a[t+20>>2]=0;a[e+852>>2]=u;xt(e+856|0,1);u=e+868|0;t=e+892|0;a[e+920>>2]=0;a[e+924>>2]=0;a[u+0>>2]=0;a[u+4>>2]=0;a[u+8>>2]=0;a[u+12>>2]=0;a[u+16>>2]=0;a[t+0>>2]=0;a[t+4>>2]=0;a[t+8>>2]=0;a[t+12>>2]=0;a[t+16>>2]=0;a[t+20>>2]=0;t=o+4|0;a[t>>2]=0;u=o+8|0;a[u>>2]=2;n=Vi(0,8)|0;a[o>>2]=n;if((n|0)==0?(a[(je()|0)>>2]|0)==12:0)Xe(Te(1)|0,48,0);a[n>>2]=-2;a[t>>2]=1;i[e+560>>0]=1;a[e+928>>2]=st(f,o,0)|0;i[e+536>>0]=0;if(!n){c=r;return}a[t>>2]=0;Ui(n);a[o>>2]=0;a[u>>2]=0;c=r;return}function vt(e){e=e|0;var r=0;r=c;bt(e);si(e);c=r;return}function bt(e){e=e|0;var r=0,t=0,i=0;r=c;a[e>>2]=3424;t=e+904|0;i=a[t>>2]|0;if(i){a[e+908>>2]=0;Ui(i);a[t>>2]=0;a[e+912>>2]=0}t=e+892|0;i=a[t>>2]|0;if(i){a[e+896>>2]=0;Ui(i);a[t>>2]=0;a[e+900>>2]=0}t=e+876|0;i=a[t>>2]|0;if(i){a[e+880>>2]=0;Ui(i);a[t>>2]=0;a[e+884>>2]=0}t=e+856|0;i=a[t>>2]|0;if(i){a[e+860>>2]=0;Ui(i);a[t>>2]=0;a[e+864>>2]=0}i=e+836|0;t=a[i>>2]|0;if(t){a[e+840>>2]=0;Ui(t);a[i>>2]=0;a[e+844>>2]=0}t=e+824|0;i=a[t>>2]|0;if(i){a[e+828>>2]=0;Ui(i);a[t>>2]=0;a[e+832>>2]=0}t=e+808|0;i=a[t>>2]|0;if(i){a[e+812>>2]=0;Ui(i);a[t>>2]=0;a[e+816>>2]=0}Bt(e+760|0);t=e+744|0;i=a[t>>2]|0;if(i){a[e+748>>2]=0;Ui(i);a[t>>2]=0;a[e+752>>2]=0}t=e+732|0;i=a[t>>2]|0;if(!i){Or(e);c=r;return}a[e+736>>2]=0;Ui(i);a[t>>2]=0;a[e+740>>2]=0;Or(e);c=r;return}function yt(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,u=0,f=0,s=0,l=0;n=c;c=c+32|0;u=n+12|0;s=n+8|0;l=n+16|0;o=n+4|0;f=n;i[l>>0]=i[r>>0]|0;i[u+0>>0]=i[l+0>>0]|0;t=Lr(e,u,t)|0;a[s>>2]=t;nt(e+876|0,t,0);nt(e+904|0,t,0);if(!(i[e+724>>0]|0)){c=n;return t|0}l=e+808|0;r=t<<1;a[o>>2]=r;a[u+0>>2]=a[o+0>>2];Dt(l,u,0);a[f>>2]=r|1;a[u+0>>2]=a[f+0>>2];Dt(l,u,0);Ut(e+760|0,s);nt(e+744|0,t,0);Vt(e+824|0,t);c=n;return t|0}function wt(e,r,t,n){e=e|0;r=r|0;t=t|0;n=n|0;var u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0;s=c;c=c+32|0;u=s+4|0;g=s;p=s+16|0;a[u>>2]=0;f=u+4|0;a[f>>2]=0;l=u+8|0;a[l>>2]=0;v=i[2608]|0;i[e>>0]=v;h=r+724|0;t=(o[h>>0]&(t&1)|0)!=0;if(t){y=r+308|0;M=a[y>>2]|0;if((M|0)>0){b=r+304|0;v=r+876|0;w=0;do{A=a[(a[b>>2]|0)+(w<<2)>>2]>>1;a[g>>2]=A;A=(a[v>>2]|0)+A|0;if(!(i[A>>0]|0)){i[A>>0]=1;ut(u,g);M=a[y>>2]|0}w=w+1|0}while((w|0)<(M|0))}g=(At(r,n)|0)&1^1;i[e>>0]=g;n=i[2608]|0}else{n=v;g=v}M=n&255;if(!((M>>>1^1)&g<<24>>24==n<<24>>24|M&2&(g&255))){if((a[r+44>>2]|0)>0)Ue(3760)|0}else{Kr(p,r);g=i[p>>0]|0;i[e>>0]=g}A=i[2608]|0;M=A&255;if((((M>>>1^1)&g<<24>>24==A<<24>>24|M&2&(g&255)|0)!=0?(i[r+707>>0]|0)!=0:0)?(m=(a[r+736>>2]|0)+-1|0,(m|0)>0):0){e=r+732|0;p=r+4|0;do{n=a[e>>2]|0;y=a[n+(m<<2)>>2]|0;w=m+-1|0;A=a[n+(w<<2)>>2]|0;m=a[p>>2]|0;e:do{if((y|0)>1){v=i[2616]|0;g=v&255;b=g&2;g=g>>>1^1;M=w;while(1){A=o[m+(A>>1)>>0]^A&1;w=y+-1|0;if(!((A&255)<<24>>24==v<<24>>24&g|b&A))break e;y=M+-1|0;A=a[n+(y<<2)>>2]|0;if((w|0)>1){M=y;y=w}else{M=y;y=w;_=20;break}}}else{M=w;_=20}}while(0);if((_|0)==20){_=0;i[m+(A>>1)>>0]=(A&1^1)&255^1}m=M-y|0}while((m|0)>0)}if(t?(d=a[f>>2]|0,(d|0)>0):0){_=a[u>>2]|0;t=r+876|0;p=0;do{e=a[_+(p<<2)>>2]|0;i[(a[t>>2]|0)+e>>0]=0;if(i[h>>0]|0)Ht(r,e);p=p+1|0}while((p|0)<(d|0))}r=a[u>>2]|0;if(!r){c=s;return}a[f>>2]=0;Ui(r);a[u>>2]=0;a[l>>2]=0;c=s;return}function At(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,h=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0,T=0,k=0,E=0,S=0,O=0,L=0,C=0,N=0,R=0,P=0,I=0,F=0;s=c;c=c+16|0;u=s;if(!(Wr(e)|0)){P=0;c=s;return P|0}f=e+724|0;if(!(i[f>>0]|0)){P=1;c=s;return P|0}M=e+924|0;w=e+872|0;A=e+868|0;y=e+860|0;g=e+680|0;T=e+824|0;o=e+828|0;_=e+836|0;k=e+904|0;E=e+332|0;t=e+44|0;S=e+704|0;L=e+706|0;C=e+696|0;p=e+556|0;m=e+548|0;O=e+876|0;v=e+920|0;b=e+284|0;e:while(1){if(((a[M>>2]|0)<=0?(a[v>>2]|0)>=(a[b>>2]|0):0)?(a[o>>2]|0)<=0:0)break;Ot(e);R=a[w>>2]|0;P=a[A>>2]|0;N=R-P|0;if((R|0)<(P|0))N=(a[y>>2]|0)+N|0;if(!((N|0)<=0?(a[v>>2]|0)>=(a[b>>2]|0):0))h=11;if((h|0)==11?(h=0,!(Lt(e,1)|0)):0){h=12;break}P=a[o>>2]|0;if(i[g>>0]|0){h=15;break}if(!P)continue;else N=0;while(1){F=a[T>>2]|0;R=a[F>>2]|0;I=a[F+(P+-1<<2)>>2]|0;a[F>>2]=I;P=a[_>>2]|0;a[P+(I<<2)>>2]=0;a[P+(R<<2)>>2]=-1;P=(a[o>>2]|0)+-1|0;a[o>>2]=P;if((P|0)>1)qt(T,0);if(i[g>>0]|0)continue e;if((i[(a[k>>2]|0)+R>>0]|0)==0?(I=i[(a[E>>2]|0)+R>>0]|0,P=i[2624]|0,F=P&255,((F>>>1^1)&I<<24>>24==P<<24>>24|I&2&F|0)!=0):0){if((a[t>>2]|0)>1&((N|0)%100|0|0)==0){a[u>>2]=a[o>>2];Ve(3504,u|0)|0}if(i[S>>0]|0){F=(a[O>>2]|0)+R|0;P=i[F>>0]|0;i[F>>0]=1;if(!(Nt(e,R)|0)){h=29;break e}i[(a[O>>2]|0)+R>>0]=P<<24>>24!=0&1}if((((i[L>>0]|0)!=0?(I=i[(a[E>>2]|0)+R>>0]|0,P=i[2624]|0,F=P&255,((F>>>1^1)&I<<24>>24==P<<24>>24|I&2&F|0)!=0):0)?(i[(a[O>>2]|0)+R>>0]|0)==0:0)?!(Rt(e,R)|0):0){h=35;break e}if(+((a[p>>2]|0)>>>0)>+l[C>>3]*+((a[m>>2]|0)>>>0))qn[a[(a[e>>2]|0)+8>>2]&31](e)}P=a[o>>2]|0;if(!P)continue e;else N=N+1|0}}do{if((h|0)==12)i[e+492>>0]=0;else if((h|0)==15){g=a[e+824>>2]|0;if((P|0)<=0){if(!g)break}else{b=a[_>>2]|0;v=0;do{a[b+(a[g+(v<<2)>>2]<<2)>>2]=-1;v=v+1|0}while((v|0)<(a[o>>2]|0))}a[o>>2]=0}else if((h|0)==29)i[e+492>>0]=0;else if((h|0)==35)i[e+492>>0]=0}while(0);if(!r){if(+((a[p>>2]|0)>>>0)>+l[e+96>>3]*+((a[m>>2]|0)>>>0))qn[a[(a[e>>2]|0)+8>>2]&31](e)}else{r=e+744|0;p=a[r>>2]|0;if(p){a[e+748>>2]=0;Ui(p);a[r>>2]=0;a[e+752>>2]=0}jt(e+760|0,1);r=e+808|0;p=a[r>>2]|0;if(p){a[e+812>>2]=0;Ui(p);a[r>>2]=0;a[e+816>>2]=0}p=e+824|0;r=a[p>>2]|0;if((a[o>>2]|0)<=0){if(r)h=48}else{h=a[_>>2]|0;_=0;do{a[h+(a[r+(_<<2)>>2]<<2)>>2]=-1;_=_+1|0}while((_|0)<(a[o>>2]|0));h=48}if((h|0)==48){a[o>>2]=0;Ui(r);a[p>>2]=0;a[e+832>>2]=0}$t(e+856|0,1);i[f>>0]=0;i[e+536>>0]=1;i[e+560>>0]=0;a[e+728>>2]=a[e+540>>2];$r(e);qn[a[(a[e>>2]|0)+8>>2]&31](e)}if((a[t>>2]|0)>0?(n=a[e+736>>2]|0,(n|0)>0):0){l[d>>3]=+(n<<2>>>0)*9.5367431640625e-7;a[u>>2]=a[d>>2];a[u+4>>2]=a[d+4>>2];Ve(3528,u|0)|0}F=(i[e+492>>0]|0)!=0;c=s;return F|0}function Mt(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0;t=c;c=c+16|0;o=t;f=e+256|0;s=e+260|0;u=a[s>>2]|0;if((i[e+705>>0]|0)!=0?Tt(e,r)|0:0){p=1;c=t;return p|0}if(!(Cr(e,r)|0)){p=0;c=t;return p|0}if(!(i[e+724>>0]|0)){p=1;c=t;return p|0}r=a[s>>2]|0;if((r|0)!=(u+1|0)){p=1;c=t;return p|0}p=a[(a[f>>2]|0)+(r+-1<<2)>>2]|0;a[o>>2]=p;h=(a[e+544>>2]|0)+(p<<2)|0;Wt(e+856|0,p);if((a[h>>2]|0)>>>0<=31){p=1;c=t;return p|0}l=e+760|0;s=e+808|0;f=e+744|0;u=e+924|0;r=e+824|0;d=e+840|0;e=e+836|0;_=0;do{p=h+(_<<2)+4|0;zt((a[l>>2]|0)+((a[p>>2]>>1)*12|0)|0,o);m=(a[s>>2]|0)+(a[p>>2]<<2)|0;a[m>>2]=(a[m>>2]|0)+1;i[(a[f>>2]|0)+(a[p>>2]>>1)>>0]=1;a[u>>2]=(a[u>>2]|0)+1;p=a[p>>2]>>1;if((a[d>>2]|0)>(p|0)?(n=a[(a[e>>2]|0)+(p<<2)>>2]|0,(n|0)>-1):0)qt(r,n);_=_+1|0}while((_|0)<((a[h>>2]|0)>>>5|0));n=1;c=t;return n|0}function Tt(e,r){e=e|0;r=r|0;var t=0,n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0;s=c;c=c+16|0;u=s+8|0;f=s+4|0;n=s;a[f>>2]=a[e+284>>2];ut(e+292|0,f);f=r+4|0;h=a[f>>2]|0;e:do{if((h|0)>0){t=e+332|0;l=0;while(1){d=a[(a[r>>2]|0)+(l<<2)>>2]|0;p=o[(a[t>>2]|0)+(d>>1)>>0]|0;m=p^d&1;_=m&255;v=i[2608]|0;g=v&255;if(_<<24>>24==v<<24>>24&(g>>>1^1)|g&2&m)break;g=i[2616]|0;v=g&255;if(!((v>>>1^1)&_<<24>>24==g<<24>>24|p&2&v)){a[n>>2]=d^1;a[u+0>>2]=a[n+0>>2];Nr(e,u,-1);h=a[f>>2]|0}l=l+1|0;if((l|0)>=(h|0))break e}Br(e,0);v=1;c=s;return v|0}}while(0);v=(Rr(e)|0)!=-1;Br(e,0);c=s;return v|0}function kt(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0;t=c;c=c+16|0;o=t;n=(a[e+544>>2]|0)+(r<<2)|0;if(!(i[e+724>>0]|0)){Fr(e,r);c=t;return}if((a[n>>2]|0)>>>0<=31){Fr(e,r);c=t;return}f=e+808|0;s=e+776|0;u=e+792|0;l=0;do{h=n+(l<<2)+4|0;d=(a[f>>2]|0)+(a[h>>2]<<2)|0;a[d>>2]=(a[d>>2]|0)+-1;Ht(e,a[h>>2]>>1);h=a[h>>2]>>1;a[o>>2]=h;h=(a[s>>2]|0)+h|0;if(!(i[h>>0]|0)){i[h>>0]=1;ut(u,o)}l=l+1|0}while((l|0)<((a[n>>2]|0)>>>5|0));Fr(e,r);c=t;return}function Et(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0;n=c;c=c+16|0;f=n+4|0;u=n;l=a[e+544>>2]|0;s=l+(r<<2)|0;Wt(e+856|0,r);if((a[s>>2]&-32|0)==64){kt(e,r);p=a[t>>2]|0;t=a[s>>2]|0;e:do{if(t>>>0>31){h=t>>>5;d=0;while(1){_=d+1|0;if((a[s+(d<<2)+4>>2]|0)==(p|0)){_=d;break e}if((_|0)<(h|0))d=_;else break}}else{h=0;_=0}}while(0);d=h+-1|0;if((_|0)<(d|0))do{t=_;_=_+1|0;a[s+(t<<2)+4>>2]=a[s+(_<<2)+4>>2];t=a[s>>2]|0;h=t>>>5;d=h+-1|0}while((_|0)<(d|0));if(t&8){a[s+(d<<2)+4>>2]=a[s+(h<<2)+4>>2];t=a[s>>2]|0}h=t+-32|0;a[s>>2]=h;h=h>>>5;if(!h){h=0;t=0}else{t=0;d=0;do{t=1<<((a[s+(d<<2)+4>>2]|0)>>>1&31)|t;d=d+1|0}while((d|0)<(h|0))}a[s+(h<<2)+4>>2]=t}else{Ir(e,r,1);t=a[t>>2]|0;d=a[s>>2]|0;e:do{if(d>>>0>31){h=d>>>5;_=0;while(1){p=_+1|0;if((a[s+(_<<2)+4>>2]|0)==(t|0)){p=_;break e}if((p|0)<(h|0))_=p;else break}}else{h=0;p=0}}while(0);_=h+-1|0;if((p|0)<(_|0))do{d=p;p=p+1|0;a[s+(d<<2)+4>>2]=a[s+(p<<2)+4>>2];d=a[s>>2]|0;h=d>>>5;_=h+-1|0}while((p|0)<(_|0));if(d&8){a[s+(_<<2)+4>>2]=a[s+(h<<2)+4>>2];d=a[s>>2]|0}_=d+-32|0;a[s>>2]=_;_=_>>>5;if(!_){_=0;h=0}else{h=0;d=0;do{h=1<<((a[s+(d<<2)+4>>2]|0)>>>1&31)|h;d=d+1|0}while((d|0)<(_|0))}a[s+(_<<2)+4>>2]=h;Pr(e,r);h=t>>1;d=a[e+760>>2]|0;_=d+(h*12|0)|0;d=d+(h*12|0)+4|0;p=a[d>>2]|0;e:do{if((p|0)>0){v=a[_>>2]|0;m=0;while(1){g=m+1|0;if((a[v+(m<<2)>>2]|0)==(r|0))break e;if((g|0)<(p|0))m=g;else{m=g;break}}}else m=0}while(0);p=p+-1|0;if((m|0)<(p|0)){_=a[_>>2]|0;do{p=m;m=m+1|0;a[_+(p<<2)>>2]=a[_+(m<<2)>>2];p=(a[d>>2]|0)+-1|0}while((m|0)<(p|0))}a[d>>2]=p;v=(a[e+808>>2]|0)+(t<<2)|0;a[v>>2]=(a[v>>2]|0)+-1;Ht(e,h)}if((a[s>>2]&-32|0)!=32){v=1;c=n;return v|0}l=a[l+(r+1<<2)>>2]|0;s=o[(a[e+332>>2]|0)+(l>>1)>>0]|0;v=s^l&1;r=v&255;m=i[2624]|0;g=m&255;if(!(r<<24>>24==m<<24>>24&(g>>>1^1)|g&2&v)){g=i[2616]|0;v=g&255;if((v>>>1^1)&r<<24>>24==g<<24>>24|s&2&v){v=0;c=n;return v|0}}else{a[u>>2]=l;a[f+0>>2]=a[u+0>>2];Nr(e,f,-1)}v=(Rr(e)|0)==-1;c=n;return v|0}function St(e,r,t,i,n){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;var o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0;o=c;c=c+16|0;f=o+4|0;u=o;_=e+708|0;a[_>>2]=(a[_>>2]|0)+1;if(a[n>>2]|0)a[n+4>>2]=0;s=(a[r>>2]|0)>>>5>>>0<(a[t>>2]|0)>>>5>>>0;e=s?t:r;r=s?r:t;s=a[r>>2]|0;e:do{if(s>>>0>31){t=0;r:while(1){l=a[r+(t<<2)+4>>2]|0;t:do{if((l>>1|0)!=(i|0)){h=a[e>>2]|0;i:do{if(h>>>0>31){d=0;while(1){_=a[e+(d<<2)+4>>2]|0;d=d+1|0;if((l^_)>>>0<2)break;if((d|0)>=(h>>>5|0))break i}if((_|0)==(l^1|0)){n=0;break r}else break t}}while(0);a[f>>2]=l;ot(n,f);s=a[r>>2]|0}}while(0);t=t+1|0;if((t|0)>=(s>>>5|0))break e}c=o;return n|0}}while(0);t=a[e>>2]|0;if(t>>>0<=31){_=1;c=o;return _|0}f=0;do{r=a[e+(f<<2)+4>>2]|0;if((r>>1|0)!=(i|0)){a[u>>2]=r;ot(n,u);t=a[e>>2]|0}f=f+1|0}while((f|0)<(t>>>5|0));n=1;c=o;return n|0}function Ot(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0;r=c;s=e+924|0;if(!(a[s>>2]|0)){c=r;return}u=e+856|0;t=e+872|0;n=e+868|0;f=e+860|0;o=e+544|0;l=0;while(1){A=a[t>>2]|0;h=a[n>>2]|0;d=A-h|0;if((A|0)<(h|0))d=(a[f>>2]|0)+d|0;if((l|0)>=(d|0))break;d=(a[o>>2]|0)+(a[(a[u>>2]|0)+(((h+l|0)%(a[f>>2]|0)|0)<<2)>>2]<<2)|0;h=a[d>>2]|0;if(!(h&3))a[d>>2]=h&-4|2;l=l+1|0}l=e+540|0;m=a[l>>2]|0;if((m|0)>0){d=e+744|0;_=e+776|0;h=e+760|0;e=e+804|0;p=0;do{if(i[(a[d>>2]|0)+p>>0]|0){g=(a[_>>2]|0)+p|0;if(i[g>>0]|0){v=a[h>>2]|0;m=v+(p*12|0)+4|0;y=a[m>>2]|0;if((y|0)>0){v=a[v+(p*12|0)>>2]|0;w=0;b=0;do{A=a[v+(w<<2)>>2]|0;if((a[(a[a[e>>2]>>2]|0)+(A<<2)>>2]&3|0)!=1){a[v+(b<<2)>>2]=A;y=a[m>>2]|0;b=b+1|0}w=w+1|0}while((w|0)<(y|0))}else{w=0;b=0}v=w-b|0;if((v|0)>0)a[m>>2]=y-v;i[g>>0]=0}g=a[h>>2]|0;m=g+(p*12|0)+4|0;b=a[m>>2]|0;if((b|0)>0){g=g+(p*12|0)|0;v=0;do{y=a[(a[g>>2]|0)+(v<<2)>>2]|0;if(!(a[(a[o>>2]|0)+(y<<2)>>2]&3)){Wt(u,y);b=(a[o>>2]|0)+(a[(a[g>>2]|0)+(v<<2)>>2]<<2)|0;a[b>>2]=a[b>>2]&-4|2;b=a[m>>2]|0}v=v+1|0}while((v|0)<(b|0))}i[(a[d>>2]|0)+p>>0]=0;m=a[l>>2]|0}p=p+1|0}while((p|0)<(m|0));l=0}else l=0;while(1){A=a[t>>2]|0;h=a[n>>2]|0;d=A-h|0;if((A|0)<(h|0))d=(a[f>>2]|0)+d|0;if((l|0)>=(d|0))break;h=(a[o>>2]|0)+(a[(a[u>>2]|0)+(((h+l|0)%(a[f>>2]|0)|0)<<2)>>2]<<2)|0;d=a[h>>2]|0;if((d&3|0)==2)a[h>>2]=d&-4;l=l+1|0}a[s>>2]=0;c=r;return}function Lt(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0,T=0,k=0,E=0,S=0,O=0,L=0,C=0,N=0,R=0,P=0,I=0,F=0,x=0,B=0,D=0,U=0,V=0,H=0;t=c;c=c+16|0;h=t;M=t+12|0;o=e+856|0;l=e+872|0;m=e+868|0;f=e+860|0;y=e+680|0;n=e+920|0;u=e+284|0;b=e+280|0;g=e+544|0;v=e+928|0;_=e+44|0;d=e+776|0;w=e+692|0;p=e+804|0;s=e+760|0;O=0;N=0;L=0;e:while(1){C=a[m>>2]|0;do{E=a[l>>2]|0;S=(E|0)<(C|0);E=E-C|0;if(S)R=(a[f>>2]|0)+E|0;else R=E;if((R|0)<=0?(a[n>>2]|0)>=(a[u>>2]|0):0){n=1;f=53;break e}if(i[y>>0]|0){f=8;break e}if(S)E=(a[f>>2]|0)+E|0;if((E|0)==0?(k=a[n>>2]|0,(k|0)<(a[u>>2]|0)):0){a[n>>2]=k+1;a[(a[g>>2]|0)+((a[v>>2]|0)+1<<2)>>2]=a[(a[b>>2]|0)+(k<<2)>>2];E=(a[g>>2]|0)+(a[v>>2]<<2)|0;S=(a[E>>2]|0)>>>5;if(!S){S=0;R=0}else{R=0;C=0;do{R=1<<((a[E+(C<<2)+4>>2]|0)>>>1&31)|R;C=C+1|0}while((C|0)<(S|0))}a[E+(S<<2)+4>>2]=R;Wt(o,a[v>>2]|0);C=a[m>>2]|0}E=a[(a[o>>2]|0)+(C<<2)>>2]|0;C=C+1|0;F=a[f>>2]|0;C=(C|0)==(F|0)?0:C;a[m>>2]=C;R=a[g>>2]|0;S=R+(E<<2)|0;I=a[S>>2]|0}while((I&3|0)!=0);if(r?(a[_>>2]|0)>1:0){P=O+1|0;if(!((O|0)%1e3|0)){I=a[l>>2]|0;a[h>>2]=I-C+((I|0)<(C|0)?F:0);a[h+4>>2]=L;a[h+8>>2]=N;Ve(3440,h|0)|0;I=a[S>>2]|0;O=P}else O=P}C=R+(E+1<<2)|0;R=a[C>>2]>>1;if(I>>>0>63){P=a[s>>2]|0;I=I>>>5;F=1;do{H=a[S+(F<<2)+4>>2]>>1;R=(a[P+(H*12|0)+4>>2]|0)<(a[P+(R*12|0)+4>>2]|0)?H:R;F=F+1|0}while((F|0)<(I|0))}I=(a[d>>2]|0)+R|0;if(i[I>>0]|0){F=a[s>>2]|0;P=F+(R*12|0)+4|0;D=a[P>>2]|0;if((D|0)>0){F=a[F+(R*12|0)>>2]|0;B=0;x=0;do{U=a[F+(B<<2)>>2]|0;if((a[(a[a[p>>2]>>2]|0)+(U<<2)>>2]&3|0)!=1){a[F+(x<<2)>>2]=U;D=a[P>>2]|0;x=x+1|0}B=B+1|0}while((B|0)<(D|0))}else{B=0;x=0}F=B-x|0;if((F|0)>0)a[P>>2]=D-F;i[I>>0]=0}I=a[s>>2]|0;P=a[I+(R*12|0)>>2]|0;I=I+(R*12|0)+4|0;if((a[I>>2]|0)>0)F=0;else continue;while(1){U=a[S>>2]|0;if(U&3)continue e;x=a[P+(F<<2)>>2]|0;B=a[g>>2]|0;V=B+(x<<2)|0;D=a[V>>2]|0;r:do{if(((!((D&3|0)!=0|(x|0)==(E|0))?(H=a[w>>2]|0,T=D>>>5,(H|0)==-1|(T|0)<(H|0)):0)?(A=U>>>5,T>>>0>=A>>>0):0)?(a[S+(A<<2)+4>>2]&~a[V+(T<<2)+4>>2]|0)==0:0){B=B+(x+1<<2)|0;do{if(U>>>0>31){if(D>>>0>31){V=-2;D=0}else break r;while(1){U=a[C+(D<<2)>>2]|0;t:do{if((V|0)==-2){H=0;while(1){V=a[B+(H<<2)>>2]|0;if((U|0)==(V|0)){U=-2;break t}H=H+1|0;if((U|0)==(V^1|0))break t;if(H>>>0>=T>>>0)break r}}else{H=0;while(1){if((U|0)==(a[B+(H<<2)>>2]|0)){U=V;break t}H=H+1|0;if(H>>>0>=T>>>0)break r}}}while(0);D=D+1|0;if(D>>>0>=A>>>0)break;else V=U}if((U|0)==-2)break;else if((U|0)==-1)break r;a[M>>2]=U^1;a[h+0>>2]=a[M+0>>2];if(!(Et(e,x,h)|0)){n=0;f=53;break e}N=N+1|0;F=(((U>>1|0)==(R|0))<<31>>31)+F|0;break r}}while(0);kt(e,x);L=L+1|0}}while(0);F=F+1|0;if((F|0)>=(a[I>>2]|0))continue e}}if((f|0)==8){$t(o,0);a[n>>2]=a[u>>2];H=1;c=t;return H|0}else if((f|0)==53){c=t;return n|0}return 0}function Ct(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0;u=c;c=c+16|0;n=u+12|0;h=u+8|0;s=u+4|0;f=u;l=(a[e+544>>2]|0)+(t<<2)|0;if(a[l>>2]&3){g=1;c=u;return g|0}if(xr(e,l)|0){g=1;c=u;return g|0}a[h>>2]=a[e+284>>2];ut(e+292|0,h);p=a[l>>2]|0;if(p>>>0>31){h=e+332|0;d=0;_=-2;do{m=a[l+(d<<2)+4>>2]|0;g=m>>1;if((g|0)!=(r|0)?(g=(o[(a[h>>2]|0)+g>>0]|0)^m&1,b=i[2616]|0,v=b&255,((g&255)<<24>>24==b<<24>>24&(v>>>1^1)|v&2&g|0)==0):0){a[s>>2]=m^1;a[n+0>>2]=a[s+0>>2];Nr(e,n,-1);p=a[l>>2]|0}else _=m;d=d+1|0}while((d|0)<(p>>>5|0))}else _=-2;b=(Rr(e)|0)==-1;Br(e,0);if(!b){b=e+712|0;a[b>>2]=(a[b>>2]|0)+1;a[f>>2]=_;a[n+0>>2]=a[f+0>>2];if(!(Et(e,t,n)|0)){b=0;c=u;return b|0}}b=1;c=u;return b|0}function Nt(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0;t=c;u=(a[e+776>>2]|0)+r|0;n=e+760|0;if(i[u>>0]|0){s=a[n>>2]|0;o=s+(r*12|0)+4|0;d=a[o>>2]|0;if((d|0)>0){f=e+804|0;s=a[s+(r*12|0)>>2]|0;h=0;l=0;do{_=a[s+(h<<2)>>2]|0;if((a[(a[a[f>>2]>>2]|0)+(_<<2)>>2]&3|0)!=1){a[s+(l<<2)>>2]=_;d=a[o>>2]|0;l=l+1|0}h=h+1|0}while((h|0)<(d|0))}else{h=0;l=0}f=h-l|0;if((f|0)>0)a[o>>2]=d-f;i[u>>0]=0}o=a[n>>2]|0;d=i[(a[e+332>>2]|0)+r>>0]|0;h=i[2624]|0;_=h&255;if(!((_>>>1^1)&d<<24>>24==h<<24>>24|d&2&_)){_=1;c=t;return _|0}n=o+(r*12|0)+4|0;u=a[n>>2]|0;if(!u){_=1;c=t;return _|0}e:do{if((u|0)>0){o=o+(r*12|0)|0;u=0;while(1){if(!(Ct(e,r,a[(a[o>>2]|0)+(u<<2)>>2]|0)|0)){e=0;break}u=u+1|0;if((u|0)>=(a[n>>2]|0))break e}c=t;return e|0}}while(0);_=Lt(e,0)|0;c=t;return _|0}function Rt(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0,T=0,k=0,E=0,S=0,O=0,L=0,C=0,N=0,R=0,P=0,F=0,x=0,B=0,D=0,U=0,V=0,H=0,q=0,j=0,$=0,W=0,z=0,K=0,X=0,Z=0,Y=0,G=0;t=c;c=c+48|0;v=t+36|0;g=t+32|0;b=t+28|0;y=t+24|0;n=t+12|0;o=t;d=(a[e+776>>2]|0)+r|0;h=e+760|0;if(i[d>>0]|0){m=a[h>>2]|0;_=m+(r*12|0)+4|0;T=a[_>>2]|0;if((T|0)>0){p=e+804|0;m=a[m+(r*12|0)>>2]|0;A=0;w=0;do{k=a[m+(A<<2)>>2]|0;if((a[(a[a[p>>2]>>2]|0)+(k<<2)>>2]&3|0)!=1){a[m+(w<<2)>>2]=k;T=a[_>>2]|0;w=w+1|0}A=A+1|0}while((A|0)<(T|0))}else{A=0;w=0}p=A-w|0;if((p|0)>0)a[_>>2]=T-p;i[d>>0]=0}w=a[h>>2]|0;A=w+(r*12|0)|0;a[n>>2]=0;d=n+4|0;a[d>>2]=0;_=n+8|0;a[_>>2]=0;a[o>>2]=0;m=o+4|0;a[m>>2]=0;p=o+8|0;a[p>>2]=0;w=w+(r*12|0)+4|0;e:do{if((a[w>>2]|0)>0){T=e+544|0;S=r<<1;E=0;do{O=(a[A>>2]|0)+(E<<2)|0;C=(a[T>>2]|0)+(a[O>>2]<<2)|0;G=a[C>>2]|0;k=G>>>5;r:do{if(G>>>0>31){N=0;while(1){L=N+1|0;if((a[C+(N<<2)+4>>2]|0)==(S|0)){L=N;break r}if((L|0)<(k|0))N=L;else break}}else L=0}while(0);zt((L|0)<(k|0)?n:o,O);E=E+1|0;k=a[w>>2]|0}while((E|0)<(k|0));T=a[d>>2]|0;S=(T|0)>0;if(S){O=a[m>>2]|0;x=(O|0)>0;F=e+544|0;L=a[n>>2]|0;E=a[o>>2]|0;C=e+708|0;P=e+684|0;R=e+688|0;H=0;N=0;while(1){if(x){D=L+(N<<2)|0;B=a[F>>2]|0;U=a[C>>2]|0;V=0;do{$=B+(a[D>>2]<<2)|0;z=B+(a[E+(V<<2)>>2]<<2)|0;U=U+1|0;a[C>>2]=U;q=(a[$>>2]|0)>>>5>>>0<(a[z>>2]|0)>>>5>>>0;j=q?z:$;z=q?$:z;$=j+4|0;q=z+4|0;j=a[j>>2]|0;W=j>>>5;X=W+-1|0;z=a[z>>2]|0;r:do{if(z>>>0>31){K=0;while(1){G=a[q+(K<<2)>>2]|0;t:do{if((G>>1|0)!=(r|0)){i:do{if(j>>>0>31){Y=0;while(1){Z=a[$+(Y<<2)>>2]|0;Y=Y+1|0;if((Z^G)>>>0<2)break;if((Y|0)>=(W|0))break i}if((Z|0)==(G^1|0))break r;else break t}}while(0);X=X+1|0}}while(0);K=K+1|0;if((K|0)>=(z>>>5|0)){M=28;break}}}else M=28}while(0);if((M|0)==28){M=0;if((H|0)>=((a[P>>2]|0)+k|0)){e=1;break e}G=a[R>>2]|0;if((G|0)!=-1&(X|0)>(G|0)){e=1;break e}else H=H+1|0}V=V+1|0}while((V|0)<(O|0))}N=N+1|0;if((N|0)>=(T|0)){M=32;break}}}else{S=0;M=32}}else{T=0;S=0;M=32}}while(0);e:do{if((M|0)==32){i[(a[e+904>>2]|0)+r>>0]=1;k=e+380|0;E=(a[k>>2]|0)+r|0;if(i[E>>0]|0){G=e+200|0;Y=G;Y=fn(a[Y>>2]|0,a[Y+4>>2]|0,-1,-1)|0;a[G>>2]=Y;a[G+4>>2]=I}i[E>>0]=0;E=e+460|0;if(!((a[e+476>>2]|0)>(r|0)?(a[(a[e+472>>2]|0)+(r<<2)>>2]|0)>-1:0))M=36;if((M|0)==36?(i[(a[k>>2]|0)+r>>0]|0)!=0:0)at(E,r);M=e+716|0;a[M>>2]=(a[M>>2]|0)+1;M=a[m>>2]|0;if((T|0)>(M|0)){E=e+732|0;if((M|0)>0){y=e+544|0;b=a[o>>2]|0;C=e+736|0;L=0;do{O=(a[y>>2]|0)+(a[b+(L<<2)>>2]<<2)|0;k=a[C>>2]|0;if((a[O>>2]|0)>>>0>31){N=0;R=-1;do{G=O+(N<<2)+4|0;a[v>>2]=a[G>>2];zt(E,v);R=(a[G>>2]>>1|0)==(r|0)?N+k|0:R;N=N+1|0}while((N|0)<((a[O>>2]|0)>>>5|0))}else R=-1;G=a[E>>2]|0;Z=G+(R<<2)|0;Y=a[Z>>2]|0;G=G+(k<<2)|0;a[Z>>2]=a[G>>2];a[G>>2]=Y;a[g>>2]=(a[O>>2]|0)>>>5;zt(E,g);L=L+1|0}while((L|0)<(M|0))}a[v>>2]=r<<1;zt(E,v);a[g>>2]=1;zt(E,g)}else{L=e+732|0;if(S){N=e+544|0;C=a[n>>2]|0;k=e+736|0;R=0;do{O=(a[N>>2]|0)+(a[C+(R<<2)>>2]<<2)|0;E=a[k>>2]|0;if((a[O>>2]|0)>>>0>31){P=0;F=-1;do{G=O+(P<<2)+4|0;a[v>>2]=a[G>>2];zt(L,v);F=(a[G>>2]>>1|0)==(r|0)?P+E|0:F;P=P+1|0}while((P|0)<((a[O>>2]|0)>>>5|0))}else F=-1;G=a[L>>2]|0;Z=G+(F<<2)|0;Y=a[Z>>2]|0;G=G+(E<<2)|0;a[Z>>2]=a[G>>2];a[G>>2]=Y;a[g>>2]=(a[O>>2]|0)>>>5;zt(L,g);R=R+1|0}while((R|0)<(T|0))}a[b>>2]=r<<1|1;zt(L,b);a[y>>2]=1;zt(L,y)}if((a[w>>2]|0)>0){g=0;do{kt(e,a[(a[A>>2]|0)+(g<<2)>>2]|0);g=g+1|0}while((g|0)<(a[w>>2]|0))}g=e+628|0;r:do{if(S){v=e+544|0;A=a[n>>2]|0;E=a[o>>2]|0;if((M|0)>0)w=0;else{g=0;while(1){g=g+1|0;if((g|0)>=(T|0))break r}}do{y=A+(w<<2)|0;b=0;do{G=a[v>>2]|0;if(St(e,G+(a[y>>2]<<2)|0,G+(a[E+(b<<2)>>2]<<2)|0,r,g)|0?!(Mt(e,g)|0):0){e=0;break e}b=b+1|0}while((b|0)<(M|0));w=w+1|0}while((w|0)<(T|0))}}while(0);g=a[h>>2]|0;h=g+(r*12|0)|0;v=a[h>>2]|0;if(v){a[g+(r*12|0)+4>>2]=0;Ui(v);a[h>>2]=0;a[g+(r*12|0)+8>>2]=0}h=e+412|0;r=r<<1;v=a[h>>2]|0;g=v+(r*12|0)+4|0;if((a[g>>2]|0)==0?(l=v+(r*12|0)|0,s=a[l>>2]|0,(s|0)!=0):0){a[g>>2]=0;Ui(s);a[l>>2]=0;a[v+(r*12|0)+8>>2]=0;v=a[h>>2]|0}s=r|1;l=v+(s*12|0)+4|0;if((a[l>>2]|0)==0?(f=v+(s*12|0)|0,u=a[f>>2]|0,(u|0)!=0):0){a[l>>2]=0;Ui(u);a[f>>2]=0;a[v+(s*12|0)+8>>2]=0}e=Lt(e,0)|0;E=a[o>>2]|0}}while(0);if(E){a[m>>2]=0;Ui(E);a[o>>2]=0;a[p>>2]=0}o=a[n>>2]|0;if(!o){c=t;return e|0}a[d>>2]=0;Ui(o);a[n>>2]=0;a[_>>2]=0;c=t;return e|0}function Pt(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0;t=c;if(!(i[e+724>>0]|0)){c=t;return}l=e+540|0;if((a[l>>2]|0)>0){f=e+760|0;n=e+804|0;o=e+776|0;s=e+544|0;u=0;do{d=a[f>>2]|0;h=d+(u*12|0)+4|0;p=a[h>>2]|0;if((p|0)>0){d=a[d+(u*12|0)>>2]|0;m=0;_=0;do{g=a[d+(m<<2)>>2]|0;if((a[(a[a[n>>2]>>2]|0)+(g<<2)>>2]&3|0)!=1){a[d+(_<<2)>>2]=g;p=a[h>>2]|0;_=_+1|0}m=m+1|0}while((m|0)<(p|0))}else{m=0;_=0}d=m-_|0;if((d|0)>0)a[h>>2]=p-d;i[(a[o>>2]|0)+u>>0]=0;d=a[f>>2]|0;h=d+(u*12|0)+4|0;if((a[h>>2]|0)>0){g=d+(u*12|0)|0;p=0;do{d=(a[g>>2]|0)+(p<<2)|0;_=a[d>>2]|0;m=a[s>>2]|0;v=m+(_<<2)|0;if(!(a[v>>2]&16)){b=mt(r,v)|0;a[d>>2]=b;a[v>>2]=a[v>>2]|16;a[m+(_+1<<2)>>2]=b}else a[d>>2]=a[m+(_+1<<2)>>2];p=p+1|0}while((p|0)<(a[h>>2]|0))}u=u+1|0}while((u|0)<(a[l>>2]|0))}n=e+856|0;b=a[e+872>>2]|0;o=e+868|0;h=a[o>>2]|0;s=b-h|0;if((b|0)<(h|0))s=(a[e+860>>2]|0)+s|0;e:do{if((s|0)>0){u=e+860|0;f=e+544|0;while(1){l=a[(a[n>>2]|0)+(h<<2)>>2]|0;d=h+1|0;a[o>>2]=(d|0)==(a[u>>2]|0)?0:d;d=a[f>>2]|0;_=d+(l<<2)|0;h=a[_>>2]|0;if(!(h&3)){if(!(h&16)){b=mt(r,_)|0;a[_>>2]=a[_>>2]|16;a[d+(l+1<<2)>>2]=b;l=b}else l=a[d+(l+1<<2)>>2]|0;Wt(n,l)}s=s+-1|0;if((s|0)<=0)break e;h=a[o>>2]|0}}else f=e+544|0}while(0);e=e+928|0;n=a[e>>2]|0;u=a[f>>2]|0;o=u+(n<<2)|0;if(!(a[o>>2]&16)){b=mt(r,o)|0;a[e>>2]=b;a[o>>2]=a[o>>2]|16;a[u+(n+1<<2)>>2]=b;c=t;return}else{a[e>>2]=a[u+(n+1<<2)>>2];c=t;return}}function It(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0;u=c;c=c+32|0;l=u;r=u+8|0;t=e+544|0;n=e+548|0;o=e+556|0;f=(a[n>>2]|0)-(a[o>>2]|0)|0;a[r+0>>2]=0;a[r+4>>2]=0;a[r+8>>2]=0;a[r+12>>2]=0;et(r,f);f=r+16|0;s=e+560|0;i[f>>0]=i[s>>0]|0;Pt(e,r);Xr(e,r);if((a[e+44>>2]|0)>1){h=a[r+4>>2]<<2;a[l>>2]=a[n>>2]<<2;a[l+4>>2]=h;Ve(3608,l|0)|0}i[s>>0]=i[f>>0]|0;f=a[t>>2]|0;if(f)Ui(f);a[t>>2]=a[r>>2];a[n>>2]=a[r+4>>2];a[e+552>>2]=a[r+8>>2];a[o>>2]=a[r+12>>2];c=u;return}function Ft(){var e=0,r=0,t=0;e=c;c=c+16|0;r=e;i[2608]=0;i[2616]=1;i[2624]=2;gr(2632,2656,2664,3744,3752);a[658]=160;i[2652]=0;gr(2704,2728,2736,3744,3752);a[676]=160;i[2724]=0;gr(2784,2808,2816,3744,3752);a[696]=160;i[2804]=1;gr(2848,2880,2888,3744,3736);a[712]=280;t=2868|0;a[t>>2]=-2147483648;a[t+4>>2]=2147483647;a[719]=0;gr(2960,2992,3e3,3744,3736);a[740]=280;t=2980|0;a[t>>2]=-1;a[t+4>>2]=2147483647;a[747]=20;gr(3112,3144,3152,3744,3736);a[778]=280;t=3132|0;a[t>>2]=-1;a[t+4>>2]=2147483647;a[785]=1e3;gr(3240,3296,3312,3744,3720);a[810]=2168;l[408]=0.0;l[409]=T;i[3280]=0;i[3281]=0;n[1641]=n[r+0>>1]|0;n[1642]=n[r+2>>1]|0;n[1643]=n[r+4>>1]|0;l[411]=.5;c=e;return}function xt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0;t=c;a[e>>2]=0;i=e+4|0;a[i>>2]=0;n=e+8|0;a[n>>2]=0;if((r|0)<=0){c=t;return}o=r+1&-2;o=(o|0)>2?o:2;a[n>>2]=o;n=Vi(0,o<<2)|0;a[e>>2]=n;if((n|0)==0?(a[(je()|0)>>2]|0)==12:0)Xe(Te(1)|0,48,0);e=a[i>>2]|0;if((e|0)<(r|0))do{o=n+(e<<2)|0;if(o)a[o>>2]=0;e=e+1|0}while((e|0)!=(r|0));a[i>>2]=r;c=t;return}function Bt(e){e=e|0;var r=0,t=0,i=0,n=0,o=0,u=0,f=0;r=c;i=e+32|0;t=a[i>>2]|0;if(t){a[e+36>>2]=0;Ui(t);a[i>>2]=0;a[e+40>>2]=0}i=e+16|0;t=a[i>>2]|0;if(t){a[e+20>>2]=0;Ui(t);a[i>>2]=0;a[e+24>>2]=0}i=a[e>>2]|0;if(!i){c=r;return}t=e+4|0;o=a[t>>2]|0;if((o|0)>0){n=0;do{f=i+(n*12|0)|0;u=a[f>>2]|0;if(u){a[i+(n*12|0)+4>>2]=0;Ui(u);a[f>>2]=0;a[i+(n*12|0)+8>>2]=0;i=a[e>>2]|0;o=a[t>>2]|0}n=n+1|0}while((n|0)<(o|0))}a[t>>2]=0;Ui(i);a[e>>2]=0;a[e+8>>2]=0;c=r;return}function Dt(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0;i=c;r=a[r>>2]|0;o=r+1|0;n=e+4|0;if((a[n>>2]|0)>=(o|0)){s=a[e>>2]|0;s=s+(r<<2)|0;a[s>>2]=t;c=i;return}u=e+8|0;s=a[u>>2]|0;if((s|0)<(o|0)){l=r+2-s&-2;f=(s>>1)+2&-2;f=(l|0)>(f|0)?l:f;if((f|0)>(2147483647-s|0)){l=Te(1)|0;Xe(l|0,48,0)}h=a[e>>2]|0;l=f+s|0;a[u>>2]=l;l=Vi(h,l<<2)|0;a[e>>2]=l;if((l|0)==0?(a[(je()|0)>>2]|0)==12:0){h=Te(1)|0;Xe(h|0,48,0)}}s=a[n>>2]|0;if((s|0)<(o|0)){u=a[e>>2]|0;do{f=u+(s<<2)|0;if(f)a[f>>2]=0;s=s+1|0}while((s|0)!=(o|0))}a[n>>2]=o;h=a[e>>2]|0;h=h+(r<<2)|0;a[h>>2]=t;c=i;return}function Ut(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0;t=c;s=a[r>>2]|0;o=s+1|0;n=e+4|0;if((a[n>>2]|0)<(o|0)){f=e+8|0;u=a[f>>2]|0;if((u|0)<(o|0)){l=s+2-u&-2;s=(u>>1)+2&-2;s=(l|0)>(s|0)?l:s;if((s|0)>(2147483647-u|0)){l=Te(1)|0;Xe(l|0,48,0)}h=a[e>>2]|0;l=s+u|0;a[f>>2]=l;l=Vi(h,l*12|0)|0;a[e>>2]=l;if((l|0)==0?(a[(je()|0)>>2]|0)==12:0){h=Te(1)|0;Xe(h|0,48,0)}}f=a[n>>2]|0;if((f|0)<(o|0)){u=a[e>>2]|0;do{s=u+(f*12|0)|0;if(s){a[s>>2]=0;a[u+(f*12|0)+4>>2]=0;a[u+(f*12|0)+8>>2]=0}f=f+1|0}while((f|0)!=(o|0))}a[n>>2]=o;u=a[r>>2]|0}else u=s;n=a[e>>2]|0;if(a[n+(u*12|0)>>2]|0){a[n+(u*12|0)+4>>2]=0;u=a[r>>2]|0}r=e+16|0;n=u+1|0;o=e+20|0;if((a[o>>2]|0)>=(n|0)){c=t;return}f=e+24|0;e=a[f>>2]|0;if((e|0)<(n|0)){h=u+2-e&-2;u=(e>>1)+2&-2;u=(h|0)>(u|0)?h:u;if((u|0)>(2147483647-e|0)){h=Te(1)|0;Xe(h|0,48,0)}l=a[r>>2]|0;h=u+e|0;a[f>>2]=h;h=Vi(l,h)|0;a[r>>2]=h;if((h|0)==0?(a[(je()|0)>>2]|0)==12:0){h=Te(1)|0;Xe(h|0,48,0)}}e=a[o>>2]|0;if((e|0)<(n|0))do{i[(a[r>>2]|0)+e>>0]=0;e=e+1|0}while((e|0)!=(n|0));a[o>>2]=n;c=t;return}function Vt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0;t=c;c=c+16|0;o=t;a[o>>2]=r;n=e+12|0;i=r+1|0;u=e+16|0;if((a[u>>2]|0)<(i|0)){s=e+20|0;f=a[s>>2]|0;if((f|0)<(i|0)){h=r+2-f&-2;l=(f>>1)+2&-2;l=(h|0)>(l|0)?h:l;if((l|0)>(2147483647-f|0)){h=Te(1)|0;Xe(h|0,48,0)}d=a[n>>2]|0;h=l+f|0;a[s>>2]=h;h=Vi(d,h<<2)|0;a[n>>2]=h;if((h|0)==0?(a[(je()|0)>>2]|0)==12:0){d=Te(1)|0;Xe(d|0,48,0)}}f=a[u>>2]|0;if((i|0)>(f|0))an((a[n>>2]|0)+(f<<2)|0,-1,i-f<<2|0)|0;a[u>>2]=i}a[(a[n>>2]|0)+(r<<2)>>2]=a[e+4>>2];ut(e,o);i=a[n>>2]|0;f=a[i+(r<<2)>>2]|0;r=a[e>>2]|0;n=a[r+(f<<2)>>2]|0;if(!f){h=0;d=r+(h<<2)|0;a[d>>2]=n;d=i+(n<<2)|0;a[d>>2]=h;c=t;return}e=e+28|0;o=n<<1;u=o|1;while(1){h=f;f=f+-1>>1;l=r+(f<<2)|0;s=a[l>>2]|0;g=a[a[e>>2]>>2]|0;_=a[g+(o<<2)>>2]|0;m=a[g+(u<<2)>>2]|0;_=gn(m|0,((m|0)<0)<<31>>31|0,_|0,((_|0)<0)<<31>>31|0)|0;m=I;p=s<<1;d=a[g+(p<<2)>>2]|0;p=a[g+((p|1)<<2)>>2]|0;d=gn(p|0,((p|0)<0)<<31>>31|0,d|0,((d|0)<0)<<31>>31|0)|0;p=I;if(!(m>>>0<p>>>0|(m|0)==(p|0)&_>>>0<d>>>0)){e=14;break}a[r+(h<<2)>>2]=s;a[i+(a[l>>2]<<2)>>2]=h;if(!f){h=0;e=14;break}}if((e|0)==14){g=r+(h<<2)|0;a[g>>2]=n;g=i+(n<<2)|0;a[g>>2]=h;c=t;return}}function Ht(e,r){e=e|0;r=r|0;var t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0;t=c;u=e+824|0;l=(a[e+840>>2]|0)>(r|0);if(l?(a[(a[e+836>>2]|0)+(r<<2)>>2]|0)>-1:0)f=7;else f=3;do{if((f|0)==3){if(i[(a[e+876>>2]|0)+r>>0]|0){c=t;return}if(i[(a[e+904>>2]|0)+r>>0]|0){c=t;return}_=i[(a[e+332>>2]|0)+r>>0]|0;d=i[2624]|0;p=d&255;if((p>>>1^1)&_<<24>>24==d<<24>>24|_&2&p)if(l){f=7;break}else break;else{c=t;return}}}while(0);if((f|0)==7?(n=a[e+836>>2]|0,o=n+(r<<2)|0,s=a[o>>2]|0,(s|0)>-1):0){r=a[u>>2]|0;f=a[r+(s<<2)>>2]|0;e:do{if(!s)_=0;else{l=e+852|0;h=f<<1;e=h|1;while(1){_=s;s=s+-1>>1;p=r+(s<<2)|0;d=a[p>>2]|0;y=a[a[l>>2]>>2]|0;g=a[y+(h<<2)>>2]|0;b=a[y+(e<<2)>>2]|0;g=gn(b|0,((b|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;b=I;v=d<<1;m=a[y+(v<<2)>>2]|0;v=a[y+((v|1)<<2)>>2]|0;m=gn(v|0,((v|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;v=I;if(!(b>>>0<v>>>0|(b|0)==(v|0)&g>>>0<m>>>0))break e;a[r+(_<<2)>>2]=d;a[n+(a[p>>2]<<2)>>2]=_;if(!s){_=0;break}}}}while(0);a[r+(_<<2)>>2]=f;a[n+(f<<2)>>2]=_;qt(u,a[o>>2]|0);c=t;return}Vt(u,r);c=t;return}function qt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0;t=c;i=a[e>>2]|0;n=a[i+(r<<2)>>2]|0;h=r<<1|1;l=e+4|0;_=a[l>>2]|0;if((h|0)>=(_|0)){p=r;m=e+12|0;_=i+(p<<2)|0;a[_>>2]=n;m=a[m>>2]|0;m=m+(n<<2)|0;a[m>>2]=p;c=t;return}u=e+28|0;s=n<<1;f=s|1;e=e+12|0;while(1){d=(r<<1)+2|0;if((d|0)<(_|0)){p=a[i+(d<<2)>>2]|0;m=a[i+(h<<2)>>2]|0;y=p<<1;_=a[a[u>>2]>>2]|0;v=a[_+(y<<2)>>2]|0;y=a[_+((y|1)<<2)>>2]|0;v=gn(y|0,((y|0)<0)<<31>>31|0,v|0,((v|0)<0)<<31>>31|0)|0;y=I;b=m<<1;g=a[_+(b<<2)>>2]|0;b=a[_+((b|1)<<2)>>2]|0;g=gn(b|0,((b|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0;b=I;if(!(y>>>0<b>>>0|(y|0)==(b|0)&v>>>0<g>>>0)){p=m;o=7}}else{p=a[i+(h<<2)>>2]|0;_=a[a[u>>2]>>2]|0;o=7}if((o|0)==7){o=0;d=h}g=p<<1;b=a[_+(g<<2)>>2]|0;g=a[_+((g|1)<<2)>>2]|0;b=gn(g|0,((g|0)<0)<<31>>31|0,b|0,((b|0)<0)<<31>>31|0)|0;g=I;y=a[_+(s<<2)>>2]|0;v=a[_+(f<<2)>>2]|0;y=gn(v|0,((v|0)<0)<<31>>31|0,y|0,((y|0)<0)<<31>>31|0)|0;v=I;if(!(g>>>0<v>>>0|(g|0)==(v|0)&b>>>0<y>>>0)){o=10;break}a[i+(r<<2)>>2]=p;a[(a[e>>2]|0)+(p<<2)>>2]=r;h=d<<1|1;_=a[l>>2]|0;if((h|0)>=(_|0)){r=d;o=10;break}else r=d}if((o|0)==10){y=i+(r<<2)|0;a[y>>2]=n;y=a[e>>2]|0;y=y+(n<<2)|0;a[y>>2]=r;c=t;return}}function jt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0;t=c;u=a[e>>2]|0;if(u){i=e+4|0;n=a[i>>2]|0;e:do{if((n|0)>0){o=0;while(1){f=u+(o*12|0)|0;s=a[f>>2]|0;if(s){a[u+(o*12|0)+4>>2]=0;Ui(s);a[f>>2]=0;a[u+(o*12|0)+8>>2]=0;n=a[i>>2]|0}o=o+1|0;if((o|0)>=(n|0))break e;u=a[e>>2]|0}}}while(0);a[i>>2]=0;if(r){Ui(a[e>>2]|0);a[e>>2]=0;a[e+8>>2]=0}}i=e+16|0;n=a[i>>2]|0;if((n|0)!=0?(a[e+20>>2]=0,r):0){Ui(n);a[i>>2]=0;a[e+24>>2]=0}n=e+32|0;i=a[n>>2]|0;if(!i){c=t;return}a[e+36>>2]=0;if(!r){c=t;return}Ui(i);a[n>>2]=0;a[e+40>>2]=0;c=t;return}function $t(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0;i=c;n=a[e>>2]|0;t=e+4|0;if(n){a[t>>2]=0;if(r){Ui(n);a[e>>2]=0;a[e+8>>2]=0;n=0}}else n=0;if((a[t>>2]|0)>=1){u=e+16|0;a[u>>2]=0;u=e+12|0;a[u>>2]=0;c=i;return}u=e+8|0;o=a[u>>2]|0;if((o|0)<1){f=2-o&-2;r=(o>>1)+2&-2;r=(f|0)>(r|0)?f:r;if((r|0)>(2147483647-o|0)){f=Te(1)|0;Xe(f|0,48,0)}f=r+o|0;a[u>>2]=f;n=Vi(n,f<<2)|0;a[e>>2]=n;if((n|0)==0?(a[(je()|0)>>2]|0)==12:0){f=Te(1)|0;Xe(f|0,48,0)}}r=a[t>>2]|0;if((r|0)<1)while(1){o=n+(r<<2)|0;if(o)a[o>>2]=0;if(!r)break;else r=r+1|0}a[t>>2]=1;f=e+16|0;a[f>>2]=0;f=e+12|0;a[f>>2]=0;c=i;return}function Wt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0;i=c;c=c+16|0;t=i;n=e+16|0;f=a[n>>2]|0;a[n>>2]=f+1;a[(a[e>>2]|0)+(f<<2)>>2]=r;f=a[n>>2]|0;r=e+4|0;u=a[r>>2]|0;if((f|0)==(u|0)){a[n>>2]=0;f=0}o=e+12|0;if((a[o>>2]|0)!=(f|0)){c=i;return}xt(t,(u*3|0)+1>>1);l=a[o>>2]|0;h=a[r>>2]|0;if((l|0)<(h|0)){f=a[e>>2]|0;s=a[t>>2]|0;h=0;while(1){u=h+1|0;a[s+(h<<2)>>2]=a[f+(l<<2)>>2];l=l+1|0;h=a[r>>2]|0;if((l|0)>=(h|0)){s=u;break}else h=u}}else s=0;u=a[e>>2]|0;if((a[n>>2]|0)>0){f=a[t>>2]|0;l=0;while(1){a[f+(s<<2)>>2]=a[u+(l<<2)>>2];l=l+1|0;if((l|0)>=(a[n>>2]|0))break;else s=s+1|0}h=a[r>>2]|0}a[o>>2]=0;a[n>>2]=h;if(!u)n=e+8|0;else{a[r>>2]=0;Ui(u);a[e>>2]=0;n=e+8|0;a[n>>2]=0}a[e>>2]=a[t>>2];l=t+4|0;a[r>>2]=a[l>>2];h=t+8|0;a[n>>2]=a[h>>2];a[t>>2]=0;a[l>>2]=0;a[h>>2]=0;c=i;return}function zt(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0;t=c;i=e+4|0;n=a[i>>2]|0;o=e+8|0;u=a[o>>2]|0;if((n|0)==(u|0)&(u|0)<(n+1|0)){u=(n>>1)+2&-2;u=(u|0)<2?2:u;if((u|0)>(2147483647-n|0)){u=Te(1)|0;Xe(u|0,48,0)}f=a[e>>2]|0;n=u+n|0;a[o>>2]=n;n=Vi(f,n<<2)|0;a[e>>2]=n;if((n|0)==0?(a[(je()|0)>>2]|0)==12:0){f=Te(1)|0;Xe(f|0,48,0)}}else n=a[e>>2]|0;f=a[i>>2]|0;a[i>>2]=f+1;i=n+(f<<2)|0;if(!i){c=t;return}a[i>>2]=a[r>>2];c=t;return}function Kt(){var e=0,r=0;r=c;Ue(3864)|0;e=fi(936)|0;gt(e);c=r;return e|0}function Xt(e){e=e|0;var r=0;r=c;if(!e){c=r;return}qn[a[(a[e>>2]|0)+4>>2]&31](e);c=r;return}function Zt(){var e=0,r=0,t=0;e=c;c=c+16|0;r=e;t=fi(936)|0;gt(t);a[964]=t;At(t,1)|0;t=a[964]|0;i[r+0>>0]=i[3840]|0;yt(t,r,1)|0;c=e;return}function Yt(e){e=e|0;var r=0,t=0,n=0;r=c;c=c+16|0;t=r;if((a[962]|0)>=(e|0)){c=r;return}do{n=a[964]|0;i[t+0>>0]=i[3840]|0;yt(n,t,1)|0;n=(a[962]|0)+1|0;a[962]=n}while((n|0)<(e|0));c=r;return}function Gt(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0;o=c;c=c+32|0;u=o+16|0;t=o+4|0;f=o;a[t>>2]=0;n=t+4|0;a[n>>2]=0;r=t+8|0;a[r>>2]=0;s=a[e>>2]|0;if(s)do{l=(s|0)<0?0-s|0:s;if((a[962]|0)<(l|0))do{h=a[964]|0;i[u+0>>0]=i[3840]|0;yt(h,u,1)|0;h=(a[962]|0)+1|0;a[962]=h}while((h|0)<(l|0));a[f>>2]=l<<1|s>>>31;ot(t,f);e=e+4|0;s=a[e>>2]|0}while((s|0)!=0);f=a[964]|0;u=f+628|0;ai(t,u);u=Mt(f,u)|0;f=a[t>>2]|0;if(!f){c=o;return u|0}a[n>>2]=0;Ui(f);a[t>>2]=0;a[r>>2]=0;c=o;return u|0}function Jt(){var e=0,r=0,t=0,n=0;r=c;c=c+16|0;e=r;t=a[964]|0;n=t+664|0;a[n+0>>2]=-1;a[n+4>>2]=-1;a[n+8>>2]=-1;a[n+12>>2]=-1;if(a[t+304>>2]|0)a[t+308>>2]=0;wt(e,t,1,0);c=r;return(i[e>>0]|0)==0|0}function Qt(){return(a[(a[964]|0)+4>>2]|0)+1|0}function ei(){return a[962]|0}function ri(e){e=e|0;var r=0,t=0,n=0,o=0,u=0,f=0;r=c;c=c+32|0;u=r+16|0;n=r+4|0;f=r;a[n>>2]=0;t=n+4|0;a[t>>2]=0;o=n+8|0;a[o>>2]=0;a[f>>2]=e<<1;ot(n,f);e=a[964]|0;f=e+664|0;a[f+0>>2]=-1;a[f+4>>2]=-1;a[f+8>>2]=-1;a[f+12>>2]=-1;ai(n,e+304|0);wt(u,e,1,0);e=(i[u>>0]|0)==0;u=a[n>>2]|0;if(!u){c=r;return e|0}a[t>>2]=0;Ui(u);a[n>>2]=0;a[o>>2]=0;c=r;return e|0}function ti(e){e=e|0;var r=0,t=0,i=0;r=c;c=c+16|0;i=r;t=a[964]|0;a[i>>2]=e<<1|1;e=t+628|0;if(a[e>>2]|0)a[t+632>>2]=0;ot(e,i);Mt(t,e)|0;c=r;return}function ii(){return a[(a[964]|0)+36>>2]|0}function ni(){return a[(a[964]|0)+32>>2]|0}function ai(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0;t=c;u=a[r>>2]|0;i=r+4|0;if(!u)f=a[i>>2]|0;else{a[i>>2]=0;f=0}i=e+4|0;n=a[i>>2]|0;o=r+4|0;if((f|0)<(n|0)){s=r+8|0;f=a[s>>2]|0;if((f|0)<(n|0)){h=n+1-f&-2;l=(f>>1)+2&-2;l=(h|0)>(l|0)?h:l;if((l|0)>(2147483647-f|0)){h=Te(1)|0;Xe(h|0,48,0)}h=l+f|0;a[s>>2]=h;u=Vi(u,h<<2)|0;a[r>>2]=u;if((u|0)==0?(a[(je()|0)>>2]|0)==12:0){h=Te(1)|0;Xe(h|0,48,0)}}f=a[o>>2]|0;e:do{if((f|0)<(n|0))while(1){u=u+(f<<2)|0;if(u)a[u>>2]=0;f=f+1|0;if((f|0)==(n|0))break e;u=a[r>>2]|0}}while(0);a[o>>2]=n;n=a[i>>2]|0}if((n|0)<=0){c=t;return}r=a[r>>2]|0;e=a[e>>2]|0;n=0;do{a[r+(n<<2)>>2]=a[e+(n<<2)>>2];n=n+1|0}while((n|0)<(a[i>>2]|0));c=t;return}function oi(e,r){e=e|0;r=r|0;var t=0;t=c;c=c+16|0;a[t>>2]=r;r=a[v>>2]|0;Me(r|0,e|0,t|0)|0;Ke(10,r|0)|0;Ge()}function ui(){var e=0,r=0;e=c;c=c+16|0;if(!(De(4064,3)|0)){r=xe(a[1014]|0)|0;c=e;return r|0}else oi(4072,e);return 0}function fi(e){e=e|0;var r=0,t=0;r=c;e=(e|0)==0?1:e;t=Di(e)|0;if(t){c=r;return t|0}while(1){t=pi()|0;if(!t){e=4;break}Wn[t&3]();t=Di(e)|0;if(t){e=5;break}}if((e|0)==4){t=Te(4)|0;a[t>>2]=4248;Xe(t|0,4296,12)}else if((e|0)==5){c=r;return t|0}return 0}function si(e){e=e|0;var r=0;r=c;Ui(e);c=r;return}function li(e){e=e|0;var r=0;r=c;si(e);c=r;return}function ci(e){e=e|0;return}function hi(e){e=e|0;return 4264}function di(e){e=e|0;var r=0;r=c;c=c+16|0;Wn[e&3]();oi(4312,r)}function _i(){var e=0,r=0;r=ui()|0;if(((r|0)!=0?(e=a[r>>2]|0,(e|0)!=0):0)?(r=e+48|0,(a[r>>2]&-256|0)==1126902528?(a[r+4>>2]|0)==1129074247:0):0)di(a[e+12>>2]|0);r=a[968]|0;a[968]=r+0;di(r)}function pi(){var e=0;e=a[1102]|0;a[1102]=e+0;return e|0}function mi(e){e=e|0;return}function gi(e){e=e|0;return}function vi(e){e=e|0;return}function bi(e){e=e|0;return}function yi(e){e=e|0;return}function wi(e){e=e|0;var r=0;r=c;si(e);c=r;return}function Ai(e){e=e|0;var r=0;r=c;si(e);c=r;return}function Mi(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,o=0,u=0;i=c;c=c+64|0;n=i;if((e|0)==(r|0)){u=1;c=i;return u|0}if(!r){u=0;c=i;return u|0}r=Si(r,4504,4560,0)|0;if(!r){u=0;c=i;return u|0}u=n+0|0;o=u+56|0;do{a[u>>2]=0;u=u+4|0}while((u|0)<(o|0));a[n>>2]=r;a[n+8>>2]=e;a[n+12>>2]=-1;a[n+48>>2]=1;Xn[a[(a[r>>2]|0)+28>>2]&3](r,n,a[t>>2]|0,1);if((a[n+24>>2]|0)!=1){u=0;c=i;return u|0}a[t>>2]=a[n+16>>2];u=1;c=i;return u|0}function Ti(e,r,t,n){e=e|0;r=r|0;t=t|0;n=n|0;var o=0,u=0;e=c;o=r+16|0;u=a[o>>2]|0;if(!u){a[o>>2]=t;a[r+24>>2]=n;a[r+36>>2]=1;c=e;return}if((u|0)!=(t|0)){u=r+36|0;a[u>>2]=(a[u>>2]|0)+1;a[r+24>>2]=2;i[r+54>>0]=1;c=e;return}t=r+24|0;if((a[t>>2]|0)!=2){c=e;return}a[t>>2]=n;c=e;return}function ki(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0;n=c;if((a[r+8>>2]|0)!=(e|0)){c=n;return}Ti(0,r,t,i);c=n;return}function Ei(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0;n=c;if((e|0)==(a[r+8>>2]|0)){Ti(0,r,t,i);c=n;return}else{e=a[e+8>>2]|0;Xn[a[(a[e>>2]|0)+28>>2]&3](e,r,t,i);c=n;return}}function Si(e,r,t,o){e=e|0;r=r|0;t=t|0;o=o|0;var u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0;u=c;c=c+64|0;f=u;s=a[e>>2]|0;l=e+(a[s+-8>>2]|0)|0;s=a[s+-4>>2]|0;a[f>>2]=t;a[f+4>>2]=e;a[f+8>>2]=r;a[f+12>>2]=o;d=f+16|0;_=f+20|0;r=f+24|0;h=f+28|0;o=f+32|0;e=f+40|0;p=(s|0)==(t|0);m=d+0|0;t=m+36|0;do{a[m>>2]=0;m=m+4|0}while((m|0)<(t|0));n[d+36>>1]=0;i[d+38>>0]=0;if(p){a[f+48>>2]=1;zn[a[(a[s>>2]|0)+20>>2]&3](s,f,l,l,1,0);m=(a[r>>2]|0)==1?l:0;c=u;return m|0}Hn[a[(a[s>>2]|0)+24>>2]&3](s,f,l,1,0);f=a[f+36>>2]|0;if(!f){m=(a[e>>2]|0)==1&(a[h>>2]|0)==1&(a[o>>2]|0)==1?a[_>>2]|0:0;c=u;return m|0}else if((f|0)==1){if((a[r>>2]|0)!=1?!((a[e>>2]|0)==0&(a[h>>2]|0)==1&(a[o>>2]|0)==1):0){m=0;c=u;return m|0}m=a[d>>2]|0;c=u;return m|0}else{m=0;c=u;return m|0}return 0}function Oi(e,r,t,n,o){e=e|0;r=r|0;t=t|0;n=n|0;o=o|0;var u=0;e=c;i[r+53>>0]=1;if((a[r+4>>2]|0)!=(n|0)){c=e;return}i[r+52>>0]=1;n=r+16|0;u=a[n>>2]|0;if(!u){a[n>>2]=t;a[r+24>>2]=o;a[r+36>>2]=1;if(!((o|0)==1?(a[r+48>>2]|0)==1:0)){c=e;return}i[r+54>>0]=1;c=e;return}if((u|0)!=(t|0)){u=r+36|0;a[u>>2]=(a[u>>2]|0)+1;i[r+54>>0]=1;c=e;return}t=r+24|0;n=a[t>>2]|0;if((n|0)==2)a[t>>2]=o;else o=n;if(!((o|0)==1?(a[r+48>>2]|0)==1:0)){c=e;return}i[r+54>>0]=1;c=e;return}function Li(e,r,t,n,o){e=e|0;r=r|0;t=t|0;n=n|0;o=o|0;var u=0,f=0,s=0,l=0,h=0;u=c;if((e|0)==(a[r+8>>2]|0)){if((a[r+4>>2]|0)!=(t|0)){c=u;return}f=r+28|0;if((a[f>>2]|0)==1){c=u;return}a[f>>2]=n;c=u;return}if((e|0)!=(a[r>>2]|0)){l=a[e+8>>2]|0;Hn[a[(a[l>>2]|0)+24>>2]&3](l,r,t,n,o);c=u;return}if((a[r+16>>2]|0)!=(t|0)?(s=r+20|0,(a[s>>2]|0)!=(t|0)):0){a[r+32>>2]=n;n=r+44|0;if((a[n>>2]|0)==4){c=u;return}l=r+52|0;i[l>>0]=0;h=r+53|0;i[h>>0]=0;e=a[e+8>>2]|0;zn[a[(a[e>>2]|0)+20>>2]&3](e,r,t,t,1,o);if(i[h>>0]|0){if(!(i[l>>0]|0)){e=1;f=13}}else{e=0;f=13}do{if((f|0)==13){a[s>>2]=t;h=r+40|0;a[h>>2]=(a[h>>2]|0)+1;if((a[r+36>>2]|0)==1?(a[r+24>>2]|0)==2:0){i[r+54>>0]=1;if(e)break}else f=16;if((f|0)==16?e:0)break;a[n>>2]=4;c=u;return}}while(0);a[n>>2]=3;c=u;return}if((n|0)!=1){c=u;return}a[r+32>>2]=1;c=u;return}function Ci(e,r,t,n,o){e=e|0;r=r|0;t=t|0;n=n|0;o=o|0;var u=0;o=c;if((a[r+8>>2]|0)==(e|0)){if((a[r+4>>2]|0)!=(t|0)){c=o;return}r=r+28|0;if((a[r>>2]|0)==1){c=o;return}a[r>>2]=n;c=o;return}if((a[r>>2]|0)!=(e|0)){c=o;return}if((a[r+16>>2]|0)!=(t|0)?(u=r+20|0,(a[u>>2]|0)!=(t|0)):0){a[r+32>>2]=n;a[u>>2]=t;e=r+40|0;a[e>>2]=(a[e>>2]|0)+1;if((a[r+36>>2]|0)==1?(a[r+24>>2]|0)==2:0)i[r+54>>0]=1;a[r+44>>2]=4;c=o;return}if((n|0)!=1){c=o;return}a[r+32>>2]=1;c=o;return}function Ni(e,r,t,i,n,o){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;var u=0;u=c;if((e|0)==(a[r+8>>2]|0)){Oi(0,r,t,i,n);c=u;return}else{e=a[e+8>>2]|0;zn[a[(a[e>>2]|0)+20>>2]&3](e,r,t,i,n,o);c=u;return}}function Ri(e,r,t,i,n,o){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;o=o|0;o=c;if((a[r+8>>2]|0)!=(e|0)){c=o;return}Oi(0,r,t,i,n);c=o;return}function Pi(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0;i=c;c=c+16|0;n=i;a[n>>2]=a[t>>2];e=Vn[a[(a[e>>2]|0)+16>>2]&1](e,r,n)|0;r=e&1;if(!e){c=i;return r|0}a[t>>2]=a[n>>2];c=i;return r|0}function Ii(e){e=e|0;var r=0;r=c;if(!e)e=0;else e=(Si(e,4504,4672,0)|0)!=0;c=r;return e&1|0}function Fi(){var e=0,r=0,t=0,i=0,n=0;e=c;c=c+16|0;r=e;e=e+12|0;t=ui()|0;if(!t)oi(4040,r);t=a[t>>2]|0;if(!t)oi(4040,r);n=t+48|0;i=a[n>>2]|0;n=a[n+4>>2]|0;if(!((i&-256|0)==1126902528&(n|0)==1129074247)){a[r>>2]=a[970];oi(4e3,r)}if((i|0)==1126902529&(n|0)==1129074247)i=a[t+44>>2]|0;else i=t+80|0;a[e>>2]=i;n=a[t>>2]|0;t=a[n+4>>2]|0;if(Vn[a[(a[4432>>2]|0)+16>>2]&1](4432,n,e)|0){n=a[e>>2]|0;i=a[970]|0;n=$n[a[(a[n>>2]|0)+8>>2]&1](n)|0;a[r>>2]=i;a[r+4>>2]=t;a[r+8>>2]=n;oi(3904,r)}else{a[r>>2]=a[970];a[r+4>>2]=t;oi(3952,r)}}function xi(){var e=0;e=c;c=c+16|0;if(!(He(4056,20)|0)){c=e;return}else oi(4128,e)}function Bi(e){e=e|0;var r=0;r=c;c=c+16|0;Ui(e);if(!($e(a[1014]|0,0)|0)){c=r;return}else oi(4184,r)}function Di(e){e=e|0;var r=0,t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0,M=0,T=0,k=0,E=0,S=0,O=0,L=0,C=0,N=0,R=0,P=0;r=c;do{if(e>>>0<245){if(e>>>0<11)e=16;else e=e+11&-8;M=e>>>3;p=a[1206]|0;A=p>>>M;if(A&3){o=(A&1^1)+M|0;n=o<<1;t=4864+(n<<2)|0;n=4864+(n+2<<2)|0;u=a[n>>2]|0;f=u+8|0;i=a[f>>2]|0;do{if((t|0)!=(i|0)){if(i>>>0<(a[1210]|0)>>>0)Ge();s=i+12|0;if((a[s>>2]|0)==(u|0)){a[s>>2]=t;a[n>>2]=i;break}else Ge()}else a[1206]=p&~(1<<o)}while(0);P=o<<3;a[u+4>>2]=P|3;P=u+(P|4)|0;a[P>>2]=a[P>>2]|1;P=f;c=r;return P|0}w=a[1208]|0;if(e>>>0>w>>>0){if(A){u=2<<M;u=A<<M&(u|0-u);u=(u&0-u)+-1|0;t=u>>>12&16;u=u>>>t;f=u>>>5&8;u=u>>>f;n=u>>>2&4;u=u>>>n;o=u>>>1&2;u=u>>>o;i=u>>>1&1;i=(f|t|n|o|i)+(u>>>i)|0;u=i<<1;o=4864+(u<<2)|0;u=4864+(u+2<<2)|0;n=a[u>>2]|0;t=n+8|0;f=a[t>>2]|0;do{if((o|0)!=(f|0)){if(f>>>0<(a[1210]|0)>>>0)Ge();s=f+12|0;if((a[s>>2]|0)==(n|0)){a[s>>2]=o;a[u>>2]=f;C=a[1208]|0;break}else Ge()}else{a[1206]=p&~(1<<i);C=w}}while(0);P=i<<3;i=P-e|0;a[n+4>>2]=e|3;o=n+e|0;a[n+(e|4)>>2]=i|1;a[n+P>>2]=i;if(C){n=a[1211]|0;l=C>>>3;f=l<<1;u=4864+(f<<2)|0;s=a[1206]|0;l=1<<l;if(s&l){f=4864+(f+2<<2)|0;s=a[f>>2]|0;if(s>>>0<(a[1210]|0)>>>0)Ge();else{L=f;O=s}}else{a[1206]=s|l;L=4864+(f+2<<2)|0;O=u}a[L>>2]=n;a[O+12>>2]=n;a[n+8>>2]=O;a[n+12>>2]=u}a[1208]=i;a[1211]=o;P=t;c=r;return P|0}p=a[1207]|0;if(p){t=(p&0-p)+-1|0;R=t>>>12&16;t=t>>>R;N=t>>>5&8;t=t>>>N;P=t>>>2&4;t=t>>>P;n=t>>>1&2;t=t>>>n;i=t>>>1&1;i=a[5128+((N|R|P|n|i)+(t>>>i)<<2)>>2]|0;t=(a[i+4>>2]&-8)-e|0;n=i;while(1){o=a[n+16>>2]|0;if(!o){o=a[n+20>>2]|0;if(!o)break}n=(a[o+4>>2]&-8)-e|0;P=n>>>0<t>>>0;t=P?n:t;n=o;i=P?o:i}u=a[1210]|0;if(i>>>0<u>>>0)Ge();n=i+e|0;if(i>>>0>=n>>>0)Ge();o=a[i+24>>2]|0;s=a[i+12>>2]|0;do{if((s|0)==(i|0)){s=i+20|0;f=a[s>>2]|0;if(!f){s=i+16|0;f=a[s>>2]|0;if(!f){S=0;break}}while(1){l=f+20|0;h=a[l>>2]|0;if(h){f=h;s=l;continue}l=f+16|0;h=a[l>>2]|0;if(!h)break;else{f=h;s=l}}if(s>>>0<u>>>0)Ge();else{a[s>>2]=0;S=f;break}}else{f=a[i+8>>2]|0;if(f>>>0<u>>>0)Ge();u=f+12|0;if((a[u>>2]|0)!=(i|0))Ge();l=s+8|0;if((a[l>>2]|0)==(i|0)){a[u>>2]=s;a[l>>2]=f;S=s;break}else Ge()}}while(0);do{if(o){f=a[i+28>>2]|0;u=5128+(f<<2)|0;if((i|0)==(a[u>>2]|0)){a[u>>2]=S;if(!S){a[1207]=a[1207]&~(1<<f);break}}else{if(o>>>0<(a[1210]|0)>>>0)Ge();u=o+16|0;if((a[u>>2]|0)==(i|0))a[u>>2]=S;else a[o+20>>2]=S;if(!S)break}u=a[1210]|0;if(S>>>0<u>>>0)Ge();a[S+24>>2]=o;o=a[i+16>>2]|0;do{if(o)if(o>>>0<u>>>0)Ge();else{a[S+16>>2]=o;a[o+24>>2]=S;break}}while(0);o=a[i+20>>2]|0;if(o)if(o>>>0<(a[1210]|0)>>>0)Ge();else{a[S+20>>2]=o;a[o+24>>2]=S;break}}}while(0);if(t>>>0<16){P=t+e|0;a[i+4>>2]=P|3;P=i+(P+4)|0;a[P>>2]=a[P>>2]|1}else{a[i+4>>2]=e|3;a[i+(e|4)>>2]=t|1;a[i+(t+e)>>2]=t;u=a[1208]|0;if(u){o=a[1211]|0;s=u>>>3;l=s<<1;u=4864+(l<<2)|0;f=a[1206]|0;s=1<<s;if(f&s){f=4864+(l+2<<2)|0;s=a[f>>2]|0;if(s>>>0<(a[1210]|0)>>>0)Ge();else{E=f;k=s}}else{a[1206]=f|s;E=4864+(l+2<<2)|0;k=u}a[E>>2]=o;a[k+12>>2]=o;a[o+8>>2]=k;a[o+12>>2]=u}a[1208]=t;a[1211]=n}P=i+8|0;c=r;return P|0}}}else if(e>>>0<=4294967231){k=e+11|0;e=k&-8;S=a[1207]|0;if(S){E=0-e|0;k=k>>>8;if(k)if(e>>>0>16777215)O=31;else{R=(k+1048320|0)>>>16&8;P=k<<R;N=(P+520192|0)>>>16&4;P=P<<N;O=(P+245760|0)>>>16&2;O=14-(N|R|O)+(P<<O>>>15)|0;O=e>>>(O+7|0)&1|O<<1}else O=0;L=a[5128+(O<<2)>>2]|0;e:do{if(!L){N=0;k=0}else{if((O|0)==31)k=0;else k=25-(O>>>1)|0;N=0;C=e<<k;k=0;while(1){R=a[L+4>>2]&-8;P=R-e|0;if(P>>>0<E>>>0)if((R|0)==(e|0)){E=P;N=L;k=L;break e}else{E=P;k=L}P=a[L+20>>2]|0;L=a[L+(C>>>31<<2)+16>>2]|0;N=(P|0)==0|(P|0)==(L|0)?N:P;if(!L)break;else C=C<<1}}}while(0);if((N|0)==0&(k|0)==0){P=2<<O;S=S&(P|0-P);if(!S)break;P=(S&0-S)+-1|0;L=P>>>12&16;P=P>>>L;O=P>>>5&8;P=P>>>O;C=P>>>2&4;P=P>>>C;R=P>>>1&2;P=P>>>R;N=P>>>1&1;N=a[5128+((O|L|C|R|N)+(P>>>N)<<2)>>2]|0}if(N)while(1){P=(a[N+4>>2]&-8)-e|0;S=P>>>0<E>>>0;E=S?P:E;k=S?N:k;S=a[N+16>>2]|0;if(S){N=S;continue}N=a[N+20>>2]|0;if(!N)break}if((k|0)!=0?E>>>0<((a[1208]|0)-e|0)>>>0:0){n=a[1210]|0;if(k>>>0<n>>>0)Ge();t=k+e|0;if(k>>>0>=t>>>0)Ge();i=a[k+24>>2]|0;o=a[k+12>>2]|0;do{if((o|0)==(k|0)){u=k+20|0;o=a[u>>2]|0;if(!o){u=k+16|0;o=a[u>>2]|0;if(!o){M=0;break}}while(1){f=o+20|0;s=a[f>>2]|0;if(s){o=s;u=f;continue}f=o+16|0;s=a[f>>2]|0;if(!s)break;else{o=s;u=f}}if(u>>>0<n>>>0)Ge();else{a[u>>2]=0;M=o;break}}else{u=a[k+8>>2]|0;if(u>>>0<n>>>0)Ge();f=u+12|0;if((a[f>>2]|0)!=(k|0))Ge();n=o+8|0;if((a[n>>2]|0)==(k|0)){a[f>>2]=o;a[n>>2]=u;M=o;break}else Ge()}}while(0);do{if(i){n=a[k+28>>2]|0;o=5128+(n<<2)|0;if((k|0)==(a[o>>2]|0)){a[o>>2]=M;if(!M){a[1207]=a[1207]&~(1<<n);break}}else{if(i>>>0<(a[1210]|0)>>>0)Ge();n=i+16|0;if((a[n>>2]|0)==(k|0))a[n>>2]=M;else a[i+20>>2]=M;if(!M)break}n=a[1210]|0;if(M>>>0<n>>>0)Ge();a[M+24>>2]=i;i=a[k+16>>2]|0;do{if(i)if(i>>>0<n>>>0)Ge();else{a[M+16>>2]=i;a[i+24>>2]=M;break}}while(0);i=a[k+20>>2]|0;if(i)if(i>>>0<(a[1210]|0)>>>0)Ge();else{a[M+20>>2]=i;a[i+24>>2]=M;break}}}while(0);e:do{if(E>>>0>=16){a[k+4>>2]=e|3;a[k+(e|4)>>2]=E|1;a[k+(E+e)>>2]=E;n=E>>>3;if(E>>>0<256){u=n<<1;i=4864+(u<<2)|0;o=a[1206]|0;n=1<<n;do{if(!(o&n)){a[1206]=o|n;A=4864+(u+2<<2)|0;w=i}else{n=4864+(u+2<<2)|0;o=a[n>>2]|0;if(o>>>0>=(a[1210]|0)>>>0){A=n;w=o;break}Ge()}}while(0);a[A>>2]=t;a[w+12>>2]=t;a[k+(e+8)>>2]=w;a[k+(e+12)>>2]=i;break}i=E>>>8;if(i)if(E>>>0>16777215)i=31;else{R=(i+1048320|0)>>>16&8;P=i<<R;N=(P+520192|0)>>>16&4;P=P<<N;i=(P+245760|0)>>>16&2;i=14-(N|R|i)+(P<<i>>>15)|0;i=E>>>(i+7|0)&1|i<<1}else i=0;n=5128+(i<<2)|0;a[k+(e+28)>>2]=i;a[k+(e+20)>>2]=0;a[k+(e+16)>>2]=0;o=a[1207]|0;u=1<<i;if(!(o&u)){a[1207]=o|u;a[n>>2]=t;a[k+(e+24)>>2]=n;a[k+(e+12)>>2]=t;a[k+(e+8)>>2]=t;break}u=a[n>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;r:do{if((a[u+4>>2]&-8|0)!=(E|0)){i=E<<i;while(1){o=u+(i>>>31<<2)+16|0;n=a[o>>2]|0;if(!n)break;if((a[n+4>>2]&-8|0)==(E|0)){p=n;break r}else{i=i<<1;u=n}}if(o>>>0<(a[1210]|0)>>>0)Ge();else{a[o>>2]=t;a[k+(e+24)>>2]=u;a[k+(e+12)>>2]=t;a[k+(e+8)>>2]=t;break e}}else p=u}while(0);n=p+8|0;i=a[n>>2]|0;P=a[1210]|0;if(p>>>0>=P>>>0&i>>>0>=P>>>0){a[i+12>>2]=t;a[n>>2]=t;a[k+(e+8)>>2]=i;a[k+(e+12)>>2]=p;a[k+(e+24)>>2]=0;break}else Ge()}else{P=E+e|0;a[k+4>>2]=P|3;P=k+(P+4)|0;a[P>>2]=a[P>>2]|1}}while(0);P=k+8|0;c=r;return P|0}}}else e=-1}while(0);p=a[1208]|0;if(p>>>0>=e>>>0){i=p-e|0;t=a[1211]|0;if(i>>>0>15){a[1211]=t+e;a[1208]=i;a[t+(e+4)>>2]=i|1;a[t+p>>2]=i;a[t+4>>2]=e|3}else{a[1208]=0;a[1211]=0;a[t+4>>2]=p|3;P=t+(p+4)|0;a[P>>2]=a[P>>2]|1}P=t+8|0;c=r;return P|0}p=a[1209]|0;if(p>>>0>e>>>0){R=p-e|0;a[1209]=R;P=a[1212]|0;a[1212]=P+e;a[P+(e+4)>>2]=R|1;a[P+4>>2]=e|3;P=P+8|0;c=r;return P|0}do{if(!(a[1324]|0)){p=Fe(30)|0;if(!(p+-1&p)){a[1326]=p;a[1325]=p;a[1327]=-1;a[1328]=-1;a[1329]=0;a[1317]=0;a[1324]=(Qe(0)|0)&-16^1431655768;break}else Ge()}}while(0);M=e+48|0;p=a[1326]|0;A=e+47|0;E=p+A|0;p=0-p|0;w=E&p;if(w>>>0<=e>>>0){P=0;c=r;return P|0}k=a[1316]|0;if((k|0)!=0?(R=a[1314]|0,P=R+w|0,P>>>0<=R>>>0|P>>>0>k>>>0):0){P=0;c=r;return P|0}e:do{if(!(a[1317]&4)){S=a[1212]|0;r:do{if(S){k=5272|0;while(1){O=a[k>>2]|0;if(O>>>0<=S>>>0?(T=k+4|0,(O+(a[T>>2]|0)|0)>>>0>S>>>0):0)break;k=a[k+8>>2]|0;if(!k){_=181;break r}}if(k){E=E-(a[1209]|0)&p;if(E>>>0<2147483647){p=Le(E|0)|0;if((p|0)==((a[k>>2]|0)+(a[T>>2]|0)|0)){k=E;_=190}else{k=E;_=191}}else k=0}else _=181}else _=181}while(0);do{if((_|0)==181){T=Le(0)|0;if((T|0)!=(-1|0)){E=T;k=a[1325]|0;p=k+-1|0;if(!(p&E))k=w;else k=w-E+(p+E&0-k)|0;p=a[1314]|0;E=p+k|0;if(k>>>0>e>>>0&k>>>0<2147483647){P=a[1316]|0;if((P|0)!=0?E>>>0<=p>>>0|E>>>0>P>>>0:0){k=0;break}p=Le(k|0)|0;if((p|0)==(T|0)){p=T;_=190}else _=191}else k=0}else k=0}}while(0);r:do{if((_|0)==190){if((p|0)!=(-1|0)){m=k;_=201;break e}}else if((_|0)==191){_=0-k|0;do{if((p|0)!=(-1|0)&k>>>0<2147483647&M>>>0>k>>>0?(y=a[1326]|0,y=A-k+y&0-y,y>>>0<2147483647):0)if((Le(y|0)|0)==(-1|0)){Le(_|0)|0;k=0;break r}else{k=y+k|0;break}}while(0);if((p|0)==(-1|0))k=0;else{m=k;_=201;break e}}}while(0);a[1317]=a[1317]|4;_=198}else{k=0;_=198}}while(0);if((((_|0)==198?w>>>0<2147483647:0)?(b=Le(w|0)|0,v=Le(0)|0,(b|0)!=(-1|0)&(v|0)!=(-1|0)&b>>>0<v>>>0):0)?(g=v-b|0,m=g>>>0>(e+40|0)>>>0,m):0){p=b;m=m?g:k;_=201}if((_|0)==201){g=(a[1314]|0)+m|0;a[1314]=g;if(g>>>0>(a[1315]|0)>>>0)a[1315]=g;g=a[1212]|0;e:do{if(g){b=5272|0;while(1){v=a[b>>2]|0;w=b+4|0;A=a[w>>2]|0;if((p|0)==(v+A|0)){_=213;break}y=a[b+8>>2]|0;if(!y)break;else b=y}if(((_|0)==213?(a[b+12>>2]&8|0)==0:0)?g>>>0>=v>>>0&g>>>0<p>>>0:0){a[w>>2]=A+m;t=(a[1209]|0)+m|0;i=g+8|0;if(!(i&7))i=0;else i=0-i&7;P=t-i|0;a[1212]=g+i;a[1209]=P;a[g+(i+4)>>2]=P|1;a[g+(t+4)>>2]=40;a[1213]=a[1328];break}v=a[1210]|0;if(p>>>0<v>>>0){a[1210]=p;v=p}w=p+m|0;b=5272|0;while(1){if((a[b>>2]|0)==(w|0)){_=223;break}y=a[b+8>>2]|0;if(!y)break;else b=y}if((_|0)==223?(a[b+12>>2]&8|0)==0:0){a[b>>2]=p;u=b+4|0;a[u>>2]=(a[u>>2]|0)+m;u=p+8|0;if(!(u&7))u=0;else u=0-u&7;f=p+(m+8)|0;if(!(f&7))d=0;else d=0-f&7;_=p+(d+m)|0;s=u+e|0;f=p+s|0;h=_-(p+u)-e|0;a[p+(u+4)>>2]=e|3;r:do{if((_|0)!=(g|0)){if((_|0)==(a[1211]|0)){P=(a[1208]|0)+h|0;a[1208]=P;a[1211]=f;a[p+(s+4)>>2]=P|1;a[p+(P+s)>>2]=P;break}g=m+4|0;y=a[p+(g+d)>>2]|0;if((y&3|0)==1){e=y&-8;b=y>>>3;t:do{if(y>>>0>=256){l=a[p+((d|24)+m)>>2]|0;b=a[p+(m+12+d)>>2]|0;do{if((b|0)==(_|0)){w=d|16;y=p+(g+w)|0;b=a[y>>2]|0;if(!b){y=p+(w+m)|0;b=a[y>>2]|0;if(!b){o=0;break}}while(1){A=b+20|0;w=a[A>>2]|0;if(w){b=w;y=A;continue}A=b+16|0;w=a[A>>2]|0;if(!w)break;else{b=w;y=A}}if(y>>>0<v>>>0)Ge();else{a[y>>2]=0;o=b;break}}else{y=a[p+((d|8)+m)>>2]|0;if(y>>>0<v>>>0)Ge();w=y+12|0;if((a[w>>2]|0)!=(_|0))Ge();v=b+8|0;if((a[v>>2]|0)==(_|0)){a[w>>2]=b;a[v>>2]=y;o=b;break}else Ge()}}while(0);if(!l)break;v=a[p+(m+28+d)>>2]|0;b=5128+(v<<2)|0;do{if((_|0)!=(a[b>>2]|0)){if(l>>>0<(a[1210]|0)>>>0)Ge();v=l+16|0;if((a[v>>2]|0)==(_|0))a[v>>2]=o;else a[l+20>>2]=o;if(!o)break t}else{a[b>>2]=o;if(o)break;a[1207]=a[1207]&~(1<<v);break t}}while(0);_=a[1210]|0;if(o>>>0<_>>>0)Ge();a[o+24>>2]=l;v=d|16;l=a[p+(v+m)>>2]|0;do{if(l)if(l>>>0<_>>>0)Ge();else{a[o+16>>2]=l;a[l+24>>2]=o;break}}while(0);l=a[p+(g+v)>>2]|0;if(!l)break;if(l>>>0<(a[1210]|0)>>>0)Ge();else{a[o+20>>2]=l;a[l+24>>2]=o;break}}else{o=a[p+((d|8)+m)>>2]|0;g=a[p+(m+12+d)>>2]|0;y=4864+(b<<1<<2)|0;do{if((o|0)!=(y|0)){if(o>>>0<v>>>0)Ge();if((a[o+12>>2]|0)==(_|0))break;Ge()}}while(0);if((g|0)==(o|0)){a[1206]=a[1206]&~(1<<b);break}do{if((g|0)==(y|0))l=g+8|0;else{if(g>>>0<v>>>0)Ge();v=g+8|0;if((a[v>>2]|0)==(_|0)){l=v;break}Ge()}}while(0);a[o+12>>2]=g;a[l>>2]=o}}while(0);_=p+((e|d)+m)|0;h=e+h|0}o=_+4|0;a[o>>2]=a[o>>2]&-2;a[p+(s+4)>>2]=h|1;a[p+(h+s)>>2]=h;o=h>>>3;if(h>>>0<256){l=o<<1;t=4864+(l<<2)|0;h=a[1206]|0;o=1<<o;do{if(!(h&o)){a[1206]=h|o;n=4864+(l+2<<2)|0;i=t}else{l=4864+(l+2<<2)|0;o=a[l>>2]|0;if(o>>>0>=(a[1210]|0)>>>0){n=l;i=o;break}Ge()}}while(0);a[n>>2]=f;a[i+12>>2]=f;a[p+(s+8)>>2]=i;a[p+(s+12)>>2]=t;break}i=h>>>8;do{if(!i)i=0;else{if(h>>>0>16777215){i=31;break}R=(i+1048320|0)>>>16&8;P=i<<R;N=(P+520192|0)>>>16&4;P=P<<N;i=(P+245760|0)>>>16&2;i=14-(N|R|i)+(P<<i>>>15)|0;i=h>>>(i+7|0)&1|i<<1}}while(0);l=5128+(i<<2)|0;a[p+(s+28)>>2]=i;a[p+(s+20)>>2]=0;a[p+(s+16)>>2]=0;o=a[1207]|0;n=1<<i;if(!(o&n)){a[1207]=o|n;a[l>>2]=f;a[p+(s+24)>>2]=l;a[p+(s+12)>>2]=f;a[p+(s+8)>>2]=f;break}n=a[l>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;t:do{if((a[n+4>>2]&-8|0)!=(h|0)){i=h<<i;while(1){o=n+(i>>>31<<2)+16|0;l=a[o>>2]|0;if(!l)break;if((a[l+4>>2]&-8|0)==(h|0)){t=l;break t}else{i=i<<1;n=l}}if(o>>>0<(a[1210]|0)>>>0)Ge();else{a[o>>2]=f;a[p+(s+24)>>2]=n;a[p+(s+12)>>2]=f;a[p+(s+8)>>2]=f;break r}}else t=n}while(0);i=t+8|0;n=a[i>>2]|0;P=a[1210]|0;if(t>>>0>=P>>>0&n>>>0>=P>>>0){a[n+12>>2]=f;a[i>>2]=f;a[p+(s+8)>>2]=n;a[p+(s+12)>>2]=t;a[p+(s+24)>>2]=0;break}else Ge()}else{P=(a[1209]|0)+h|0;a[1209]=P;a[1212]=f;a[p+(s+4)>>2]=P|1}}while(0);P=p+(u|8)|0;c=r;return P|0}i=5272|0;while(1){t=a[i>>2]|0;if(t>>>0<=g>>>0?(d=a[i+4>>2]|0,h=t+d|0,h>>>0>g>>>0):0)break;i=a[i+8>>2]|0}i=t+(d+-39)|0;if(!(i&7))i=0;else i=0-i&7;t=t+(d+-47+i)|0;t=t>>>0<(g+16|0)>>>0?g:t;i=t+8|0;n=p+8|0;if(!(n&7))n=0;else n=0-n&7;P=m+-40-n|0;a[1212]=p+n;a[1209]=P;a[p+(n+4)>>2]=P|1;a[p+(m+-36)>>2]=40;a[1213]=a[1328];a[t+4>>2]=27;a[i+0>>2]=a[1318];a[i+4>>2]=a[1319];a[i+8>>2]=a[1320];a[i+12>>2]=a[1321];a[1318]=p;a[1319]=m;a[1321]=0;a[1320]=i;i=t+28|0;a[i>>2]=7;if((t+32|0)>>>0<h>>>0)do{P=i;i=i+4|0;a[i>>2]=7}while((P+8|0)>>>0<h>>>0);if((t|0)!=(g|0)){t=t-g|0;i=g+(t+4)|0;a[i>>2]=a[i>>2]&-2;a[g+4>>2]=t|1;a[g+t>>2]=t;i=t>>>3;if(t>>>0<256){n=i<<1;t=4864+(n<<2)|0;o=a[1206]|0;i=1<<i;do{if(!(o&i)){a[1206]=o|i;s=4864+(n+2<<2)|0;f=t}else{n=4864+(n+2<<2)|0;i=a[n>>2]|0;if(i>>>0>=(a[1210]|0)>>>0){s=n;f=i;break}Ge()}}while(0);a[s>>2]=g;a[f+12>>2]=g;a[g+8>>2]=f;a[g+12>>2]=t;break}i=t>>>8;if(i)if(t>>>0>16777215)i=31;else{R=(i+1048320|0)>>>16&8;P=i<<R;N=(P+520192|0)>>>16&4;P=P<<N;i=(P+245760|0)>>>16&2;i=14-(N|R|i)+(P<<i>>>15)|0;i=t>>>(i+7|0)&1|i<<1}else i=0;f=5128+(i<<2)|0;a[g+28>>2]=i;a[g+20>>2]=0;a[g+16>>2]=0;n=a[1207]|0;o=1<<i;if(!(n&o)){a[1207]=n|o;a[f>>2]=g;a[g+24>>2]=f;a[g+12>>2]=g;a[g+8>>2]=g;break}n=a[f>>2]|0;if((i|0)==31)i=0;else i=25-(i>>>1)|0;r:do{if((a[n+4>>2]&-8|0)!=(t|0)){i=t<<i;f=n;while(1){n=f+(i>>>31<<2)+16|0;o=a[n>>2]|0;if(!o)break;if((a[o+4>>2]&-8|0)==(t|0)){u=o;break r}else{i=i<<1;f=o}}if(n>>>0<(a[1210]|0)>>>0)Ge();else{a[n>>2]=g;a[g+24>>2]=f;a[g+12>>2]=g;a[g+8>>2]=g;break e}}else u=n}while(0);i=u+8|0;t=a[i>>2]|0;P=a[1210]|0;if(u>>>0>=P>>>0&t>>>0>=P>>>0){a[t+12>>2]=g;a[i>>2]=g;a[g+8>>2]=t;a[g+12>>2]=u;a[g+24>>2]=0;break}else Ge()}}else{P=a[1210]|0;if((P|0)==0|p>>>0<P>>>0)a[1210]=p;a[1318]=p;a[1319]=m;a[1321]=0;a[1215]=a[1324];a[1214]=-1;t=0;do{P=t<<1;R=4864+(P<<2)|0;a[4864+(P+3<<2)>>2]=R;a[4864+(P+2<<2)>>2]=R;t=t+1|0}while((t|0)!=32);t=p+8|0;if(!(t&7))t=0;else t=0-t&7;P=m+-40-t|0;a[1212]=p+t;a[1209]=P;a[p+(t+4)>>2]=P|1;a[p+(m+-36)>>2]=40;a[1213]=a[1328]}}while(0);t=a[1209]|0;if(t>>>0>e>>>0){R=t-e|0;a[1209]=R;P=a[1212]|0;a[1212]=P+e;a[P+(e+4)>>2]=R|1;a[P+4>>2]=e|3;P=P+8|0;c=r;return P|0}}a[(je()|0)>>2]=12;P=0;c=r;return P|0}function Ui(e){e=e|0;var r=0,t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0,A=0;r=c;if(!e){c=r;return}m=e+-8|0;g=a[1210]|0;if(m>>>0<g>>>0)Ge();d=a[e+-4>>2]|0;h=d&3;if((h|0)==1)Ge();f=d&-8;u=e+(f+-8)|0;do{if(!(d&1)){y=a[m>>2]|0;if(!h){c=r;return}m=-8-y|0;d=e+m|0;h=y+f|0;if(d>>>0<g>>>0)Ge();if((d|0)==(a[1211]|0)){i=e+(f+-4)|0;_=a[i>>2]|0;if((_&3|0)!=3){i=d;_=h;break}a[1208]=h;a[i>>2]=_&-2;a[e+(m+4)>>2]=h|1;a[u>>2]=h;c=r;return}b=y>>>3;if(y>>>0<256){i=a[e+(m+8)>>2]|0;_=a[e+(m+12)>>2]|0;p=4864+(b<<1<<2)|0;if((i|0)!=(p|0)){if(i>>>0<g>>>0)Ge();if((a[i+12>>2]|0)!=(d|0))Ge()}if((_|0)==(i|0)){a[1206]=a[1206]&~(1<<b);i=d;_=h;break}if((_|0)!=(p|0)){if(_>>>0<g>>>0)Ge();p=_+8|0;if((a[p>>2]|0)==(d|0))v=p;else Ge()}else v=_+8|0;a[i+12>>2]=_;a[v>>2]=i;i=d;_=h;break}v=a[e+(m+24)>>2]|0;b=a[e+(m+12)>>2]|0;do{if((b|0)==(d|0)){y=e+(m+20)|0;b=a[y>>2]|0;if(!b){y=e+(m+16)|0;b=a[y>>2]|0;if(!b){p=0;break}}while(1){w=b+20|0;A=a[w>>2]|0;if(A){b=A;y=w;continue}w=b+16|0;A=a[w>>2]|0;if(!A)break;else{b=A;y=w}}if(y>>>0<g>>>0)Ge();else{a[y>>2]=0;p=b;break}}else{y=a[e+(m+8)>>2]|0;if(y>>>0<g>>>0)Ge();g=y+12|0;if((a[g>>2]|0)!=(d|0))Ge();w=b+8|0;if((a[w>>2]|0)==(d|0)){a[g>>2]=b;a[w>>2]=y;p=b;break}else Ge()}}while(0);if(v){g=a[e+(m+28)>>2]|0;b=5128+(g<<2)|0;if((d|0)==(a[b>>2]|0)){a[b>>2]=p;if(!p){a[1207]=a[1207]&~(1<<g);i=d;_=h;break}}else{if(v>>>0<(a[1210]|0)>>>0)Ge();g=v+16|0;if((a[g>>2]|0)==(d|0))a[g>>2]=p;else a[v+20>>2]=p;if(!p){i=d;_=h;break}}g=a[1210]|0;if(p>>>0<g>>>0)Ge();a[p+24>>2]=v;v=a[e+(m+16)>>2]|0;do{if(v)if(v>>>0<g>>>0)Ge();else{a[p+16>>2]=v;a[v+24>>2]=p;break}}while(0);m=a[e+(m+20)>>2]|0;if(m)if(m>>>0<(a[1210]|0)>>>0)Ge();else{a[p+20>>2]=m;a[m+24>>2]=p;i=d;_=h;break}else{i=d;_=h}}else{i=d;_=h}}else{i=m;_=f}}while(0);if(i>>>0>=u>>>0)Ge();h=e+(f+-4)|0;d=a[h>>2]|0;if(!(d&1))Ge();if(!(d&2)){if((u|0)==(a[1212]|0)){A=(a[1209]|0)+_|0;a[1209]=A;a[1212]=i;a[i+4>>2]=A|1;if((i|0)!=(a[1211]|0)){c=r;return}a[1211]=0;a[1208]=0;c=r;return}if((u|0)==(a[1211]|0)){A=(a[1208]|0)+_|0;a[1208]=A;a[1211]=i;a[i+4>>2]=A|1;a[i+A>>2]=A;c=r;return}_=(d&-8)+_|0;h=d>>>3;do{if(d>>>0>=256){l=a[e+(f+16)>>2]|0;h=a[e+(f|4)>>2]|0;do{if((h|0)==(u|0)){d=e+(f+12)|0;h=a[d>>2]|0;if(!h){d=e+(f+8)|0;h=a[d>>2]|0;if(!h){s=0;break}}while(1){m=h+20|0;p=a[m>>2]|0;if(p){h=p;d=m;continue}p=h+16|0;m=a[p>>2]|0;if(!m)break;else{h=m;d=p}}if(d>>>0<(a[1210]|0)>>>0)Ge();else{a[d>>2]=0;s=h;break}}else{d=a[e+f>>2]|0;if(d>>>0<(a[1210]|0)>>>0)Ge();p=d+12|0;if((a[p>>2]|0)!=(u|0))Ge();m=h+8|0;if((a[m>>2]|0)==(u|0)){a[p>>2]=h;a[m>>2]=d;s=h;break}else Ge()}}while(0);if(l){h=a[e+(f+20)>>2]|0;d=5128+(h<<2)|0;if((u|0)==(a[d>>2]|0)){a[d>>2]=s;if(!s){a[1207]=a[1207]&~(1<<h);break}}else{if(l>>>0<(a[1210]|0)>>>0)Ge();h=l+16|0;if((a[h>>2]|0)==(u|0))a[h>>2]=s;else a[l+20>>2]=s;if(!s)break}u=a[1210]|0;if(s>>>0<u>>>0)Ge();a[s+24>>2]=l;l=a[e+(f+8)>>2]|0;do{if(l)if(l>>>0<u>>>0)Ge();else{a[s+16>>2]=l;a[l+24>>2]=s;break}}while(0);u=a[e+(f+12)>>2]|0;if(u)if(u>>>0<(a[1210]|0)>>>0)Ge();else{a[s+20>>2]=u;a[u+24>>2]=s;break}}}else{s=a[e+f>>2]|0;f=a[e+(f|4)>>2]|0;e=4864+(h<<1<<2)|0;if((s|0)!=(e|0)){if(s>>>0<(a[1210]|0)>>>0)Ge();if((a[s+12>>2]|0)!=(u|0))Ge()}if((f|0)==(s|0)){a[1206]=a[1206]&~(1<<h);break}if((f|0)!=(e|0)){if(f>>>0<(a[1210]|0)>>>0)Ge();e=f+8|0;if((a[e>>2]|0)==(u|0))l=e;else Ge()}else l=f+8|0;a[s+12>>2]=f;a[l>>2]=s}}while(0);a[i+4>>2]=_|1;a[i+_>>2]=_;if((i|0)==(a[1211]|0)){a[1208]=_;c=r;return}}else{a[h>>2]=d&-2;a[i+4>>2]=_|1;a[i+_>>2]=_}u=_>>>3;if(_>>>0<256){f=u<<1;t=4864+(f<<2)|0;s=a[1206]|0;u=1<<u;if(s&u){f=4864+(f+2<<2)|0;u=a[f>>2]|0;if(u>>>0<(a[1210]|0)>>>0)Ge();else{n=f;o=u}}else{a[1206]=s|u;n=4864+(f+2<<2)|0;o=t}a[n>>2]=i;a[o+12>>2]=i;a[i+8>>2]=o;a[i+12>>2]=t;c=r;return}n=_>>>8;if(n)if(_>>>0>16777215)n=31;else{w=(n+1048320|0)>>>16&8;A=n<<w;y=(A+520192|0)>>>16&4;A=A<<y;n=(A+245760|0)>>>16&2;n=14-(y|w|n)+(A<<n>>>15)|0;n=_>>>(n+7|0)&1|n<<1}else n=0;o=5128+(n<<2)|0;a[i+28>>2]=n;a[i+20>>2]=0;a[i+16>>2]=0;f=a[1207]|0;u=1<<n;e:do{if(f&u){o=a[o>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;r:do{if((a[o+4>>2]&-8|0)!=(_|0)){n=_<<n;while(1){f=o+(n>>>31<<2)+16|0;u=a[f>>2]|0;if(!u)break;if((a[u+4>>2]&-8|0)==(_|0)){t=u;break r}else{n=n<<1;o=u}}if(f>>>0<(a[1210]|0)>>>0)Ge();else{a[f>>2]=i;a[i+24>>2]=o;a[i+12>>2]=i;a[i+8>>2]=i;break e}}else t=o}while(0);o=t+8|0;n=a[o>>2]|0;A=a[1210]|0;if(t>>>0>=A>>>0&n>>>0>=A>>>0){a[n+12>>2]=i;a[o>>2]=i;a[i+8>>2]=n;a[i+12>>2]=t;a[i+24>>2]=0;break}else Ge()}else{a[1207]=f|u;a[o>>2]=i;a[i+24>>2]=o;a[i+12>>2]=i;a[i+8>>2]=i}}while(0);A=(a[1214]|0)+-1|0;a[1214]=A;if(!A)t=5280|0;else{c=r;return}while(1){t=a[t>>2]|0;if(!t)break;else t=t+8|0}a[1214]=-1;c=r;return}function Vi(e,r){e=e|0;r=r|0;var t=0,i=0,n=0;t=c;do{if(e){if(r>>>0>4294967231){a[(je()|0)>>2]=12;i=0;break}if(r>>>0<11)i=16;else i=r+11&-8;i=Qi(e+-8|0,i)|0;if(i){i=i+8|0;break}i=Di(r)|0;if(!i)i=0;else{n=a[e+-4>>2]|0;n=(n&-8)-((n&3|0)==0?8:4)|0;ln(i|0,e|0,(n>>>0<r>>>0?n:r)|0)|0;Ui(e)}}else i=Di(r)|0}while(0);c=t;return i|0}function Hi(e){e=e|0;if((e|0)==32)e=1;else e=(e+-9|0)>>>0<5;return e&1|0}function qi(e,r,t,n,u){e=e|0;r=r|0;t=t|0;n=n|0;u=u|0;var f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0;f=c;if(r>>>0>36){a[(je()|0)>>2]=22;v=0;b=0;I=v;c=f;return b|0}s=e+4|0;l=e+100|0;do{h=a[s>>2]|0;if(h>>>0<(a[l>>2]|0)>>>0){a[s>>2]=h+1;_=o[h>>0]|0}else _=Wi(e)|0}while((Hi(_)|0)!=0);do{if((_|0)==43|(_|0)==45){h=((_|0)==45)<<31>>31;d=a[s>>2]|0;if(d>>>0<(a[l>>2]|0)>>>0){a[s>>2]=d+1;_=o[d>>0]|0;break}else{_=Wi(e)|0;break}}else h=0}while(0);d=(r|0)==0;do{if((r&-17|0)==0&(_|0)==48){_=a[s>>2]|0;if(_>>>0<(a[l>>2]|0)>>>0){a[s>>2]=_+1;_=o[_>>0]|0}else _=Wi(e)|0;if((_|32|0)!=120)if(d){r=8;t=46;break}else{t=32;break}r=a[s>>2]|0;if(r>>>0<(a[l>>2]|0)>>>0){a[s>>2]=r+1;_=o[r>>0]|0}else _=Wi(e)|0;if((o[_+5321>>0]|0)>15){n=(a[l>>2]|0)==0;if(!n)a[s>>2]=(a[s>>2]|0)+-1;if(!t){$i(e,0);v=0;b=0;I=v;c=f;return b|0}if(n){v=0;b=0;I=v;c=f;return b|0}a[s>>2]=(a[s>>2]|0)+-1;v=0;b=0;I=v;c=f;return b|0}else{r=16;t=46}}else{r=d?10:r;if((o[_+5321>>0]|0)>>>0<r>>>0)t=32;else{if(a[l>>2]|0)a[s>>2]=(a[s>>2]|0)+-1;$i(e,0);a[(je()|0)>>2]=22;v=0;b=0;I=v;c=f;return b|0}}}while(0);if((t|0)==32)if((r|0)==10){r=_+-48|0;if(r>>>0<10){d=0;do{d=(d*10|0)+r|0;r=a[s>>2]|0;if(r>>>0<(a[l>>2]|0)>>>0){a[s>>2]=r+1;_=o[r>>0]|0}else _=Wi(e)|0;r=_+-48|0}while(r>>>0<10&d>>>0<429496729);p=0}else{d=0;p=0}r=_+-48|0;if(r>>>0<10){do{m=gn(d|0,p|0,10,0)|0;g=I;v=((r|0)<0)<<31>>31;b=~v;if(g>>>0>b>>>0|(g|0)==(b|0)&m>>>0>~r>>>0)break;d=fn(m|0,g|0,r|0,v|0)|0;p=I;r=a[s>>2]|0;if(r>>>0<(a[l>>2]|0)>>>0){a[s>>2]=r+1;_=o[r>>0]|0}else _=Wi(e)|0;r=_+-48|0}while(r>>>0<10&(p>>>0<429496729|(p|0)==429496729&d>>>0<2576980378));if(r>>>0<=9){r=10;t=72}}}else t=46;e:do{if((t|0)==46){if(!(r+-1&r)){t=i[5584+((r*23|0)>>>5&7)>>0]|0;g=i[_+5321>>0]|0;d=g&255;if(d>>>0<r>>>0){_=d;d=0;do{d=_|d<<t;_=a[s>>2]|0;if(_>>>0<(a[l>>2]|0)>>>0){a[s>>2]=_+1;v=o[_>>0]|0}else v=Wi(e)|0;g=i[v+5321>>0]|0;_=g&255}while(_>>>0<r>>>0&d>>>0<134217728);p=0}else{p=0;d=0;v=_}_=sn(-1,-1,t|0)|0;m=I;if((g&255)>>>0>=r>>>0|(p>>>0>m>>>0|(p|0)==(m|0)&d>>>0>_>>>0)){_=v;t=72;break}while(1){d=on(d|0,p|0,t|0)|0;p=I;d=g&255|d;g=a[s>>2]|0;if(g>>>0<(a[l>>2]|0)>>>0){a[s>>2]=g+1;v=o[g>>0]|0}else v=Wi(e)|0;g=i[v+5321>>0]|0;if((g&255)>>>0>=r>>>0|(p>>>0>m>>>0|(p|0)==(m|0)&d>>>0>_>>>0)){_=v;t=72;break e}}}g=i[_+5321>>0]|0;t=g&255;if(t>>>0<r>>>0){d=0;do{d=t+(ne(d,r)|0)|0;t=a[s>>2]|0;if(t>>>0<(a[l>>2]|0)>>>0){a[s>>2]=t+1;m=o[t>>0]|0}else m=Wi(e)|0;g=i[m+5321>>0]|0;t=g&255}while(t>>>0<r>>>0&d>>>0<119304647);p=0}else{d=0;p=0;m=_}if((g&255)>>>0<r>>>0){t=vn(-1,-1,r|0,0)|0;_=I;while(1){if(p>>>0>_>>>0|(p|0)==(_|0)&d>>>0>t>>>0){_=m;t=72;break e}v=gn(d|0,p|0,r|0,0)|0;b=I;g=g&255;if(b>>>0>4294967295|(b|0)==-1&v>>>0>~g>>>0){_=m;t=72;break e}d=fn(g|0,0,v|0,b|0)|0;p=I;m=a[s>>2]|0;if(m>>>0<(a[l>>2]|0)>>>0){a[s>>2]=m+1;m=o[m>>0]|0}else m=Wi(e)|0;g=i[m+5321>>0]|0;if((g&255)>>>0>=r>>>0){_=m;t=72;break}}}else{_=m;t=72}}}while(0);if((t|0)==72)if((o[_+5321>>0]|0)>>>0<r>>>0){do{t=a[s>>2]|0;if(t>>>0<(a[l>>2]|0)>>>0){a[s>>2]=t+1;t=o[t>>0]|0}else t=Wi(e)|0}while((o[t+5321>>0]|0)>>>0<r>>>0);a[(je()|0)>>2]=34;p=u;d=n}if(a[l>>2]|0)a[s>>2]=(a[s>>2]|0)+-1;if(!(p>>>0<u>>>0|(p|0)==(u|0)&d>>>0<n>>>0)){if(!((n&1|0)!=0|0!=0|(h|0)!=0)){a[(je()|0)>>2]=34;b=fn(n|0,u|0,-1,-1)|0;v=I;I=v;c=f;return b|0}if(p>>>0>u>>>0|(p|0)==(u|0)&d>>>0>n>>>0){a[(je()|0)>>2]=34;v=u;b=n;I=v;c=f;return b|0}}b=((h|0)<0)<<31>>31;b=nn(d^h|0,p^b|0,h|0,b|0)|0;v=I;I=v;c=f;return b|0}function ji(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0.0,g=0,v=0,b=0,y=0,w=0,A=0,k=0,E=0,S=0,O=0,L=0,C=0,N=0.0,R=0,P=0.0,F=0.0,x=0.0,B=0.0;n=c;c=c+512|0;s=n;if(!r){r=24;f=-149}else if((r|0)==2){r=53;f=-1074}else if((r|0)==1){r=53;f=-1074}else{F=0.0;c=n;return+F}d=e+4|0;_=e+100|0;do{u=a[d>>2]|0;if(u>>>0<(a[_>>2]|0)>>>0){a[d>>2]=u+1;y=o[u>>0]|0}else y=Wi(e)|0}while((Hi(y)|0)!=0);do{if((y|0)==43|(y|0)==45){u=1-(((y|0)==45&1)<<1)|0;h=a[d>>2]|0;if(h>>>0<(a[_>>2]|0)>>>0){a[d>>2]=h+1;y=o[h>>0]|0;break}else{y=Wi(e)|0;break}}else u=1}while(0);g=0;do{if((y|32|0)!=(i[5600+g>>0]|0))break;do{if(g>>>0<7){h=a[d>>2]|0;if(h>>>0<(a[_>>2]|0)>>>0){a[d>>2]=h+1;y=o[h>>0]|0;break}else{y=Wi(e)|0;break}}}while(0);g=g+1|0}while(g>>>0<8);do{if((g|0)==3)p=23;else if((g|0)!=8){h=(t|0)!=0;if(g>>>0>3&h)if((g|0)==8)break;else{p=23;break}e:do{if(!g){g=0;do{if((y|32|0)!=(i[5616+g>>0]|0))break e;do{if(g>>>0<2){v=a[d>>2]|0;if(v>>>0<(a[_>>2]|0)>>>0){a[d>>2]=v+1;y=o[v>>0]|0;break}else{y=Wi(e)|0;break}}}while(0);g=g+1|0}while(g>>>0<3)}}while(0);if(!g){do{if((y|0)==48){h=a[d>>2]|0;if(h>>>0<(a[_>>2]|0)>>>0){a[d>>2]=h+1;h=o[h>>0]|0}else h=Wi(e)|0;if((h|32|0)!=120){if(!(a[_>>2]|0)){y=48;break}a[d>>2]=(a[d>>2]|0)+-1;y=48;break}s=a[d>>2]|0;if(s>>>0<(a[_>>2]|0)>>>0){a[d>>2]=s+1;k=o[s>>0]|0;w=0}else{k=Wi(e)|0;w=0}while(1){if((k|0)==46){p=70;break}else if((k|0)!=48){s=0;h=0;v=0;g=0;y=0;A=0;N=1.0;b=0;m=0.0;break}s=a[d>>2]|0;if(s>>>0<(a[_>>2]|0)>>>0){a[d>>2]=s+1;k=o[s>>0]|0;w=1;continue}else{k=Wi(e)|0;w=1;continue}}if((p|0)==70){s=a[d>>2]|0;if(s>>>0<(a[_>>2]|0)>>>0){a[d>>2]=s+1;k=o[s>>0]|0}else k=Wi(e)|0;if((k|0)==48){v=0;g=0;do{s=a[d>>2]|0;if(s>>>0<(a[_>>2]|0)>>>0){a[d>>2]=s+1;k=o[s>>0]|0}else k=Wi(e)|0;v=fn(v|0,g|0,-1,-1)|0;g=I}while((k|0)==48);s=0;h=0;w=1;y=1;A=0;N=1.0;b=0;m=0.0}else{s=0;h=0;v=0;g=0;y=1;A=0;N=1.0;b=0;m=0.0}}e:while(1){S=k+-48|0;do{if(S>>>0>=10){E=k|32;O=(k|0)==46;if(!((E+-97|0)>>>0<6|O))break e;if(O)if(!y){v=h;g=s;y=1;break}else{k=46;break e}else{S=(k|0)>57?E+-87|0:S;p=83;break}}else p=83}while(0);if((p|0)==83){p=0;do{if(!((s|0)<0|(s|0)==0&h>>>0<8)){if((s|0)<0|(s|0)==0&h>>>0<14){F=N*.0625;P=F;m=m+F*+(S|0);break}if((S|0)==0|(A|0)!=0)P=N;else{A=1;P=N;m=m+N*.5}}else{P=N;b=S+(b<<4)|0}}while(0);h=fn(h|0,s|0,1,0)|0;s=I;w=1;N=P}k=a[d>>2]|0;if(k>>>0<(a[_>>2]|0)>>>0){a[d>>2]=k+1;k=o[k>>0]|0;continue}else{k=Wi(e)|0;continue}}if(!w){r=(a[_>>2]|0)==0;if(!r)a[d>>2]=(a[d>>2]|0)+-1;if(t){if(!r?(l=a[d>>2]|0,a[d>>2]=l+-1,(y|0)!=0):0)a[d>>2]=l+-2}else $i(e,0);F=+(u|0)*0.0;c=n;return+F}p=(y|0)==0;l=p?h:v;p=p?s:g;if((s|0)<0|(s|0)==0&h>>>0<8)do{b=b<<4;h=fn(h|0,s|0,1,0)|0;s=I}while((s|0)<0|(s|0)==0&h>>>0<8);do{if((k|32|0)==112){h=rn(e,t)|0;s=I;if((h|0)==0&(s|0)==-2147483648)if(!t){$i(e,0);F=0.0;c=n;return+F}else{if(!(a[_>>2]|0)){h=0;s=0;break}a[d>>2]=(a[d>>2]|0)+-1;h=0;s=0;break}}else if(!(a[_>>2]|0)){h=0;s=0}else{a[d>>2]=(a[d>>2]|0)+-1;h=0;s=0}}while(0);l=on(l|0,p|0,2)|0;l=fn(l|0,I|0,-32,-1)|0;s=fn(l|0,I|0,h|0,s|0)|0;l=I;if(!b){F=+(u|0)*0.0;c=n;return+F}if((l|0)>0|(l|0)==0&s>>>0>(0-f|0)>>>0){a[(je()|0)>>2]=34;F=+(u|0)*1.7976931348623157e+308*1.7976931348623157e+308;c=n;return+F}R=f+-106|0;C=((R|0)<0)<<31>>31;if((l|0)<(C|0)|(l|0)==(C|0)&s>>>0<R>>>0){a[(je()|0)>>2]=34;F=+(u|0)*2.2250738585072014e-308*2.2250738585072014e-308;c=n;return+F}if((b|0)>-1)do{b=b<<1;if(!(m>=.5))N=m;else{N=m+-1.0;b=b|1}m=m+N;s=fn(s|0,l|0,-1,-1)|0;l=I}while((b|0)>-1);f=nn(32,0,f|0,((f|0)<0)<<31>>31|0)|0;f=fn(s|0,l|0,f|0,I|0)|0;R=I;if(0>(R|0)|0==(R|0)&r>>>0>f>>>0)if((f|0)<0){r=0;p=126}else{r=f;p=124}else p=124;if((p|0)==124)if((r|0)<53)p=126;else{f=r;N=+(u|0);P=0.0}if((p|0)==126){P=+(u|0);f=r;N=P;P=+Ye(+ +zi(1.0,84-r|0),+P)}R=(f|0)<32&m!=0.0&(b&1|0)==0;m=N*(R?0.0:m)+(P+N*+(((R&1)+b|0)>>>0))-P;if(!(m!=0.0))a[(je()|0)>>2]=34;F=+Ki(m,s);c=n;return+F}}while(0);h=f+r|0;l=0-h|0;S=0;while(1){if((y|0)==46){p=137;break}else if((y|0)!=48){L=0;O=0;E=0;break}g=a[d>>2]|0;if(g>>>0<(a[_>>2]|0)>>>0){a[d>>2]=g+1;y=o[g>>0]|0;S=1;continue}else{y=Wi(e)|0;S=1;continue}}if((p|0)==137){p=a[d>>2]|0;if(p>>>0<(a[_>>2]|0)>>>0){a[d>>2]=p+1;y=o[p>>0]|0}else y=Wi(e)|0;if((y|0)==48){L=0;O=0;do{L=fn(L|0,O|0,-1,-1)|0;O=I;p=a[d>>2]|0;if(p>>>0<(a[_>>2]|0)>>>0){a[d>>2]=p+1;y=o[p>>0]|0}else y=Wi(e)|0}while((y|0)==48);S=1;E=1}else{L=0;O=0;E=1}}a[s>>2]=0;k=y+-48|0;C=(y|0)==46;e:do{if(k>>>0<10|C){p=s+496|0;A=0;w=0;b=0;v=0;g=0;r:while(1){do{if(C)if(!E){L=A;O=w;E=1}else break r;else{C=fn(A|0,w|0,1,0)|0;w=I;R=(y|0)!=48;if((v|0)>=125){if(!R){A=C;break}a[p>>2]=a[p>>2]|1;A=C;break}A=s+(v<<2)|0;if(b)k=y+-48+((a[A>>2]|0)*10|0)|0;a[A>>2]=k;b=b+1|0;k=(b|0)==9;A=C;S=1;b=k?0:b;v=(k&1)+v|0;g=R?C:g}}while(0);y=a[d>>2]|0;if(y>>>0<(a[_>>2]|0)>>>0){a[d>>2]=y+1;y=o[y>>0]|0}else y=Wi(e)|0;k=y+-48|0;C=(y|0)==46;if(!(k>>>0<10|C)){p=160;break e}}k=(S|0)!=0;p=168}else{A=0;w=0;b=0;v=0;g=0;p=160}}while(0);do{if((p|0)==160){k=(E|0)==0;L=k?A:L;O=k?w:O;k=(S|0)!=0;if(!(k&(y|32|0)==101))if((y|0)>-1){p=168;break}else{p=170;break}k=rn(e,t)|0;y=I;do{if((k|0)==0&(y|0)==-2147483648)if(!t){$i(e,0);F=0.0;c=n;return+F}else{if(!(a[_>>2]|0)){k=0;y=0;break}a[d>>2]=(a[d>>2]|0)+-1;k=0;y=0;break}}while(0);e=fn(k|0,y|0,L|0,O|0)|0;O=I}}while(0);if((p|0)==168)if(a[_>>2]|0){a[d>>2]=(a[d>>2]|0)+-1;if(k)e=L;else p=171}else p=170;if((p|0)==170)if(k)e=L;else p=171;if((p|0)==171){a[(je()|0)>>2]=22;$i(e,0);F=0.0;c=n;return+F}d=a[s>>2]|0;if(!d){F=+(u|0)*0.0;c=n;return+F}if((e|0)==(A|0)&(O|0)==(w|0)&((w|0)<0|(w|0)==0&A>>>0<10)?r>>>0>30|(d>>>r|0)==0:0){F=+(u|0)*+(d>>>0);c=n;return+F}R=(f|0)/-2|0;C=((R|0)<0)<<31>>31;if((O|0)>(C|0)|(O|0)==(C|0)&e>>>0>R>>>0){a[(je()|0)>>2]=34;F=+(u|0)*1.7976931348623157e+308*1.7976931348623157e+308;c=n;return+F}R=f+-106|0;C=((R|0)<0)<<31>>31;if((O|0)<(C|0)|(O|0)==(C|0)&e>>>0<R>>>0){a[(je()|0)>>2]=34;F=+(u|0)*2.2250738585072014e-308*2.2250738585072014e-308;c=n;return+F}if(b){if((b|0)<9){d=s+(v<<2)|0;_=a[d>>2]|0;do{_=_*10|0;b=b+1|0}while((b|0)!=9);a[d>>2]=_}v=v+1|0}if((g|0)<9?(g|0)<=(e|0)&(e|0)<18:0){if((e|0)==9){F=+(u|0)*+((a[s>>2]|0)>>>0);c=n;return+F}if((e|0)<9){F=+(u|0)*+((a[s>>2]|0)>>>0)/+(a[5632+(8-e<<2)>>2]|0);c=n;return+F}R=r+27+(ne(e,-3)|0)|0;d=a[s>>2]|0;if((R|0)>30|(d>>>R|0)==0){F=+(u|0)*+(d>>>0)*+(a[5632+(e+-10<<2)>>2]|0);c=n;return+F}}d=(e|0)%9|0;if(!d){d=0;_=0}else{t=(e|0)>-1?d:d+9|0;p=a[5632+(8-t<<2)>>2]|0;if(v){g=1e9/(p|0)|0;d=0;_=0;b=0;do{L=s+(b<<2)|0;C=a[L>>2]|0;R=((C>>>0)/(p>>>0)|0)+_|0;a[L>>2]=R;_=ne((C>>>0)%(p>>>0)|0,g)|0;C=b;b=b+1|0;if((C|0)==(d|0)&(R|0)==0){d=b&127;e=e+-9|0}}while((b|0)!=(v|0));if(_){a[s+(v<<2)>>2]=_;v=v+1|0}}else{d=0;v=0}_=0;e=9-t+e|0}e:while(1){t=s+(d<<2)|0;if((e|0)<18){do{g=0;t=v+127|0;while(1){t=t&127;p=s+(t<<2)|0;b=on(a[p>>2]|0,0,29)|0;b=fn(b|0,I|0,g|0,0)|0;g=I;if(g>>>0>0|(g|0)==0&b>>>0>1e9){R=vn(b|0,g|0,1e9,0)|0;b=bn(b|0,g|0,1e9,0)|0;g=R}else g=0;a[p>>2]=b;p=(t|0)==(d|0);if(!((t|0)!=(v+127&127|0)|p))v=(b|0)==0?t:v;if(p)break;else t=t+-1|0}_=_+-29|0}while((g|0)==0)}else{if((e|0)!=18)break;do{if((a[t>>2]|0)>>>0>=9007199){e=18;break e}g=0;p=v+127|0;while(1){p=p&127;b=s+(p<<2)|0;y=on(a[b>>2]|0,0,29)|0;y=fn(y|0,I|0,g|0,0)|0;g=I;if(g>>>0>0|(g|0)==0&y>>>0>1e9){R=vn(y|0,g|0,1e9,0)|0;y=bn(y|0,g|0,1e9,0)|0;g=R}else g=0;a[b>>2]=y;b=(p|0)==(d|0);if(!((p|0)!=(v+127&127|0)|b))v=(y|0)==0?p:v;if(b)break;else p=p+-1|0}_=_+-29|0}while((g|0)==0)}d=d+127&127;if((d|0)==(v|0)){R=v+127&127;v=s+((v+126&127)<<2)|0;a[v>>2]=a[v>>2]|a[s+(R<<2)>>2];v=R}a[s+(d<<2)>>2]=g;e=e+9|0}e:while(1){t=v+1&127;p=s+((v+127&127)<<2)|0;while(1){b=(e|0)==18;g=(e|0)>27?9:1;while(1){y=0;while(1){w=y+d&127;if((w|0)==(v|0)){y=2;break}A=a[s+(w<<2)>>2]|0;k=a[5624+(y<<2)>>2]|0;if(A>>>0<k>>>0){y=2;break}w=y+1|0;if(A>>>0>k>>>0)break;if((w|0)<2)y=w;else{y=w;break}}if((y|0)==2&b)break e;_=g+_|0;if((d|0)==(v|0))d=v;else break}b=(1<<g)+-1|0;y=1e9>>>g;w=d;A=0;do{L=s+(d<<2)|0;C=a[L>>2]|0;R=(C>>>g)+A|0;a[L>>2]=R;A=ne(C&b,y)|0;R=(d|0)==(w|0)&(R|0)==0;d=d+1&127;e=R?e+-9|0:e;w=R?d:w}while((d|0)!=(v|0));if(!A){d=w;continue}if((t|0)!=(w|0))break;a[p>>2]=a[p>>2]|1;d=w}a[s+(v<<2)>>2]=A;d=w;v=t}e=d&127;if((e|0)==(v|0)){a[s+(t+-1<<2)>>2]=0;v=t}N=+((a[s+(e<<2)>>2]|0)>>>0);e=d+1&127;if((e|0)==(v|0)){v=v+1&127;a[s+(v+-1<<2)>>2]=0}m=+(u|0);P=m*(N*1.0e9+ +((a[s+(e<<2)>>2]|0)>>>0));u=_+53|0;f=u-f|0;if((f|0)<(r|0))if((f|0)<0){r=0;e=1;p=244}else{r=f;e=1;p=243}else{e=0;p=243}if((p|0)==243)if((r|0)<53)p=244;else{N=0.0;F=0.0}if((p|0)==244){B=+Ye(+ +zi(1.0,105-r|0),+P);x=+ar(+P,+ +zi(1.0,53-r|0));N=B;F=x;P=B+(P-x)}t=d+2&127;do{if((t|0)!=(v|0)){s=a[s+(t<<2)>>2]|0;do{if(s>>>0>=5e8){if(s>>>0>5e8){F=m*.75+F;break}if((d+3&127|0)==(v|0)){F=m*.5+F;break}else{F=m*.75+F;break}}else{if((s|0)==0?(d+3&127|0)==(v|0):0)break;F=m*.25+F}}while(0);if((53-r|0)<=1)break;if(+ar(+F,1.0)!=0.0)break;F=F+1.0}}while(0);m=P+F-N;do{if((u&2147483647|0)>(-2-h|0)){if(+W(+m)>=9007199254740992.0){e=(e|0)!=0&(r|0)==(f|0)?0:e;_=_+1|0;m=m*.5}if((_+50|0)<=(l|0)?!((e|0)!=0&F!=0.0):0)break;a[(je()|0)>>2]=34}}while(0);B=+Ki(m,_);c=n;return+B}else if((g|0)==3){r=a[d>>2]|0;if(r>>>0<(a[_>>2]|0)>>>0){a[d>>2]=r+1;r=o[r>>0]|0}else r=Wi(e)|0;if((r|0)==40)r=1;else{if(!(a[_>>2]|0)){B=M;c=n;return+B}a[d>>2]=(a[d>>2]|0)+-1;B=M;c=n;return+B}while(1){u=a[d>>2]|0;if(u>>>0<(a[_>>2]|0)>>>0){a[d>>2]=u+1;u=o[u>>0]|0}else u=Wi(e)|0;if(!((u+-48|0)>>>0<10|(u+-65|0)>>>0<26)?!((u+-97|0)>>>0<26|(u|0)==95):0)break;r=r+1|0}if((u|0)==41){B=M;c=n;return+B}u=(a[_>>2]|0)==0;if(!u)a[d>>2]=(a[d>>2]|0)+-1;if(!h){a[(je()|0)>>2]=22;$i(e,0);B=0.0;c=n;return+B}if((r|0)==0|u){B=M;c=n;return+B}do{r=r+-1|0;a[d>>2]=(a[d>>2]|0)+-1}while((r|0)!=0);m=M;c=n;return+m}else{if(a[_>>2]|0)a[d>>2]=(a[d>>2]|0)+-1;a[(je()|0)>>2]=22;$i(e,0);B=0.0;c=n;return+B}}}while(0);if((p|0)==23){r=(a[_>>2]|0)==0;if(!r)a[d>>2]=(a[d>>2]|0)+-1;if(!(g>>>0<4|(t|0)==0|r))do{a[d>>2]=(a[d>>2]|0)+-1;g=g+-1|0}while(g>>>0>3)}B=+(u|0)*T;c=n;return+B}function $i(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0;t=c;a[e+104>>2]=r;n=a[e+8>>2]|0;i=a[e+4>>2]|0;o=n-i|0;a[e+108>>2]=o;if((r|0)!=0&(o|0)>(r|0)){a[e+100>>2]=i+r;c=t;return}else{a[e+100>>2]=n;c=t;return}}function Wi(e){e=e|0;var r=0,t=0,n=0,u=0,f=0,s=0,l=0;t=c;f=e+104|0;l=a[f>>2]|0;if(!((l|0)!=0?(a[e+108>>2]|0)>=(l|0):0))s=3;if((s|0)==3?(r=Zi(e)|0,(r|0)>=0):0){s=a[f>>2]|0;f=a[e+8>>2]|0;if((s|0)!=0?(n=a[e+4>>2]|0,u=s-(a[e+108>>2]|0)+-1|0,(f-n|0)>(u|0)):0)a[e+100>>2]=n+u;else a[e+100>>2]=f;n=a[e+4>>2]|0;if(f){l=e+108|0;a[l>>2]=f+1-n+(a[l>>2]|0)}e=n+-1|0;if((o[e>>0]|0|0)==(r|0)){l=r;c=t;return l|0}i[e>>0]=r;l=r;c=t;return l|0}a[e+100>>2]=0;l=-1;c=t;return l|0}function zi(e,r){e=+e;r=r|0;var t=0,i=0;t=c;if((r|0)>1023){e=e*8.98846567431158e+307;i=r+-1023|0;if((i|0)>1023){r=r+-2046|0;r=(r|0)>1023?1023:r;e=e*8.98846567431158e+307}else r=i}else if((r|0)<-1022){e=e*2.2250738585072014e-308;i=r+1022|0;if((i|0)<-1022){r=r+2044|0;r=(r|0)<-1022?-1022:r;e=e*2.2250738585072014e-308}else r=i}r=on(r+1023|0,0,52)|0;i=I;a[d>>2]=r;a[d+4>>2]=i;e=e*+l[d>>3];c=t;return+e}function Ki(e,r){e=+e;r=r|0;var t=0;t=c;e=+zi(e,r);c=t;return+e}function Xi(e){e=e|0;var r=0,t=0,n=0;t=c;n=e+74|0;r=i[n>>0]|0;i[n>>0]=r+255|r;n=e+20|0;r=e+44|0;if((a[n>>2]|0)>>>0>(a[r>>2]|0)>>>0)Vn[a[e+36>>2]&1](e,0,0)|0;a[e+16>>2]=0;a[e+28>>2]=0;a[n>>2]=0;n=a[e>>2]|0;if(!(n&20)){n=a[r>>2]|0;a[e+8>>2]=n;a[e+4>>2]=n;n=0;c=t;return n|0}if(!(n&4)){n=-1;c=t;return n|0}a[e>>2]=n|32;n=-1;c=t;return n|0}function Zi(e){e=e|0;var r=0,t=0;r=c;c=c+16|0;t=r;if((a[e+8>>2]|0)==0?(Xi(e)|0)!=0:0)e=-1;else if((Vn[a[e+32>>2]&1](e,t,1)|0)==1)e=o[t>>0]|0;else e=-1;c=r;return e|0}function Yi(e,r){e=e|0;r=r|0;var t=0,i=0,n=0.0,o=0,u=0;t=c;c=c+112|0;i=t;u=i+0|0;o=u+112|0;do{a[u>>2]=0;u=u+4|0}while((u|0)<(o|0));o=i+4|0;a[o>>2]=e;u=i+8|0;a[u>>2]=-1;a[i+44>>2]=e;a[i+76>>2]=-1;$i(i,0);n=+ji(i,1,1);i=(a[o>>2]|0)-(a[u>>2]|0)+(a[i+108>>2]|0)|0;if(!r){c=t;return+n}if(i)e=e+i|0;a[r>>2]=e;c=t;return+n}function Gi(e,r,t){e=e|0;r=r|0;t=t|0;var i=0,n=0,o=0;i=c;c=c+112|0;o=i;a[o>>2]=0;n=o+4|0;a[n>>2]=e;a[o+44>>2]=e;if((e|0)<0)a[o+8>>2]=-1;else a[o+8>>2]=e+2147483647;a[o+76>>2]=-1;$i(o,0);t=qi(o,t,1,-2147483648,0)|0;if(!r){c=i;return t|0}a[r>>2]=e+((a[n>>2]|0)+(a[o+108>>2]|0)-(a[o+8>>2]|0));c=i;return t|0}function Ji(e,r){e=e|0;r=r|0;var t=0,n=0,a=0;t=c;a=i[e>>0]|0;n=i[r>>0]|0;if(a<<24>>24==0?1:a<<24>>24!=n<<24>>24)r=a;else{do{e=e+1|0;r=r+1|0;a=i[e>>0]|0;n=i[r>>0]|0}while(!(a<<24>>24==0?1:a<<24>>24!=n<<24>>24));r=a}c=t;return(r&255)-(n&255)|0}function Qi(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0;t=c;n=e+4|0;i=a[n>>2]|0;l=i&-8;f=e+l|0;h=a[1210]|0;u=i&3;if(!((u|0)!=1&e>>>0>=h>>>0&e>>>0<f>>>0))Ge();o=e+(l|4)|0;p=a[o>>2]|0;if(!(p&1))Ge();if(!u){if(r>>>0<256){g=0;c=t;return g|0}if(l>>>0>=(r+4|0)>>>0?(l-r|0)>>>0<=a[1326]<<1>>>0:0){g=e;c=t;return g|0}g=0;c=t;return g|0}if(l>>>0>=r>>>0){u=l-r|0;if(u>>>0<=15){g=e;c=t;return g|0}a[n>>2]=i&1|r|2;a[e+(r+4)>>2]=u|3;a[o>>2]=a[o>>2]|1;en(e+r|0,u);g=e;c=t;return g|0}if((f|0)==(a[1212]|0)){o=(a[1209]|0)+l|0;if(o>>>0<=r>>>0){g=0;c=t;return g|0}g=o-r|0;a[n>>2]=i&1|r|2;a[e+(r+4)>>2]=g|1;a[1212]=e+r;a[1209]=g;g=e;c=t;return g|0}if((f|0)==(a[1211]|0)){u=(a[1208]|0)+l|0;if(u>>>0<r>>>0){g=0;c=t;return g|0}o=u-r|0;if(o>>>0>15){a[n>>2]=i&1|r|2;a[e+(r+4)>>2]=o|1;a[e+u>>2]=o;i=e+(u+4)|0;a[i>>2]=a[i>>2]&-2;i=e+r|0}else{a[n>>2]=i&1|u|2;i=e+(u+4)|0;a[i>>2]=a[i>>2]|1;i=0;o=0}a[1208]=o;a[1211]=i;g=e;c=t;return g|0}if(p&2){g=0;c=t;return g|0}o=(p&-8)+l|0;if(o>>>0<r>>>0){g=0;c=t;return g|0}u=o-r|0;_=p>>>3;do{if(p>>>0>=256){d=a[e+(l+24)>>2]|0;_=a[e+(l+12)>>2]|0;do{if((_|0)==(f|0)){p=e+(l+20)|0;_=a[p>>2]|0;if(!_){p=e+(l+16)|0;_=a[p>>2]|0;if(!_){s=0;break}}while(1){g=_+20|0;m=a[g>>2]|0;if(m){_=m;p=g;continue}m=_+16|0;g=a[m>>2]|0;if(!g)break;else{_=g;p=m}}if(p>>>0<h>>>0)Ge();else{a[p>>2]=0;s=_;break}}else{p=a[e+(l+8)>>2]|0;if(p>>>0<h>>>0)Ge();h=p+12|0;if((a[h>>2]|0)!=(f|0))Ge();m=_+8|0;if((a[m>>2]|0)==(f|0)){a[h>>2]=_;a[m>>2]=p;s=_;break}else Ge()}}while(0);if(d){h=a[e+(l+28)>>2]|0;_=5128+(h<<2)|0;if((f|0)==(a[_>>2]|0)){a[_>>2]=s;if(!s){a[1207]=a[1207]&~(1<<h);break}}else{if(d>>>0<(a[1210]|0)>>>0)Ge();h=d+16|0;if((a[h>>2]|0)==(f|0))a[h>>2]=s;else a[d+20>>2]=s;if(!s)break}f=a[1210]|0;if(s>>>0<f>>>0)Ge();a[s+24>>2]=d;h=a[e+(l+16)>>2]|0;do{if(h)if(h>>>0<f>>>0)Ge();else{a[s+16>>2]=h;a[h+24>>2]=s;break}}while(0);f=a[e+(l+20)>>2]|0;if(f)if(f>>>0<(a[1210]|0)>>>0)Ge();else{a[s+20>>2]=f;a[f+24>>2]=s;break}}}else{s=a[e+(l+8)>>2]|0;l=a[e+(l+12)>>2]|0;p=4864+(_<<1<<2)|0;if((s|0)!=(p|0)){if(s>>>0<h>>>0)Ge();if((a[s+12>>2]|0)!=(f|0))Ge()}if((l|0)==(s|0)){a[1206]=a[1206]&~(1<<_);break}if((l|0)!=(p|0)){if(l>>>0<h>>>0)Ge();h=l+8|0;if((a[h>>2]|0)==(f|0))d=h;else Ge()}else d=l+8|0;a[s+12>>2]=l;a[d>>2]=s}}while(0);if(u>>>0<16){a[n>>2]=o|i&1|2;g=e+(o|4)|0;a[g>>2]=a[g>>2]|1;g=e;c=t;return g|0}else{a[n>>2]=i&1|r|2;a[e+(r+4)>>2]=u|3;g=e+(o|4)|0;a[g>>2]=a[g>>2]|1;en(e+r|0,u);g=e;c=t;return g|0}return 0}function en(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,o=0,u=0,f=0,s=0,l=0,h=0,d=0,_=0,p=0,m=0,g=0,v=0,b=0,y=0,w=0;t=c;u=e+r|0;l=a[e+4>>2]|0;do{if(!(l&1)){p=a[e>>2]|0;if(!(l&3)){c=t;return}l=e+(0-p)|0;h=p+r|0;g=a[1210]|0;if(l>>>0<g>>>0)Ge();if((l|0)==(a[1211]|0)){i=e+(r+4)|0;d=a[i>>2]|0;if((d&3|0)!=3){i=l;d=h;break}a[1208]=h;a[i>>2]=d&-2;a[e+(4-p)>>2]=h|1;a[u>>2]=h;c=t;return}v=p>>>3;if(p>>>0<256){i=a[e+(8-p)>>2]|0;d=a[e+(12-p)>>2]|0;_=4864+(v<<1<<2)|0;if((i|0)!=(_|0)){if(i>>>0<g>>>0)Ge();if((a[i+12>>2]|0)!=(l|0))Ge()}if((d|0)==(i|0)){a[1206]=a[1206]&~(1<<v);i=l;d=h;break}if((d|0)!=(_|0)){if(d>>>0<g>>>0)Ge();_=d+8|0;if((a[_>>2]|0)==(l|0))m=_;else Ge()}else m=d+8|0;a[i+12>>2]=d;a[m>>2]=i;i=l;d=h;break}m=a[e+(24-p)>>2]|0;v=a[e+(12-p)>>2]|0;do{if((v|0)==(l|0)){y=16-p|0;b=e+(y+4)|0;v=a[b>>2]|0;if(!v){b=e+y|0;v=a[b>>2]|0;if(!v){_=0;break}}while(1){w=v+20|0;y=a[w>>2]|0;if(y){v=y;b=w;continue}y=v+16|0;w=a[y>>2]|0;if(!w)break;else{v=w;b=y}}if(b>>>0<g>>>0)Ge();else{a[b>>2]=0;_=v;break}}else{b=a[e+(8-p)>>2]|0;if(b>>>0<g>>>0)Ge();g=b+12|0;if((a[g>>2]|0)!=(l|0))Ge();y=v+8|0;if((a[y>>2]|0)==(l|0)){a[g>>2]=v;a[y>>2]=b;_=v;break}else Ge()}}while(0);if(m){v=a[e+(28-p)>>2]|0;g=5128+(v<<2)|0;if((l|0)==(a[g>>2]|0)){a[g>>2]=_;if(!_){a[1207]=a[1207]&~(1<<v);i=l;d=h;break}}else{if(m>>>0<(a[1210]|0)>>>0)Ge();g=m+16|0;if((a[g>>2]|0)==(l|0))a[g>>2]=_;else a[m+20>>2]=_;if(!_){i=l;d=h;break}}g=a[1210]|0;if(_>>>0<g>>>0)Ge();a[_+24>>2]=m;p=16-p|0;m=a[e+p>>2]|0;do{if(m)if(m>>>0<g>>>0)Ge();else{a[_+16>>2]=m;a[m+24>>2]=_;break}}while(0);p=a[e+(p+4)>>2]|0;if(p)if(p>>>0<(a[1210]|0)>>>0)Ge();else{a[_+20>>2]=p;a[p+24>>2]=_;i=l;d=h;break}else{i=l;d=h}}else{i=l;d=h}}else{i=e;d=r}}while(0);l=a[1210]|0;if(u>>>0<l>>>0)Ge();h=e+(r+4)|0;_=a[h>>2]|0;if(!(_&2)){if((u|0)==(a[1212]|0)){w=(a[1209]|0)+d|0;a[1209]=w;a[1212]=i;a[i+4>>2]=w|1;if((i|0)!=(a[1211]|0)){c=t;return}a[1211]=0;a[1208]=0;c=t;return}if((u|0)==(a[1211]|0)){w=(a[1208]|0)+d|0;a[1208]=w;a[1211]=i;a[i+4>>2]=w|1;a[i+w>>2]=w;c=t;return}d=(_&-8)+d|0;h=_>>>3;do{if(_>>>0>=256){s=a[e+(r+24)>>2]|0;_=a[e+(r+12)>>2]|0;do{if((_|0)==(u|0)){_=e+(r+20)|0;h=a[_>>2]|0;if(!h){_=e+(r+16)|0;h=a[_>>2]|0;if(!h){f=0;break}}while(1){p=h+20|0;m=a[p>>2]|0;if(m){h=m;_=p;continue}m=h+16|0;p=a[m>>2]|0;if(!p)break;else{h=p;_=m}}if(_>>>0<l>>>0)Ge();else{a[_>>2]=0;f=h;break}}else{h=a[e+(r+8)>>2]|0;if(h>>>0<l>>>0)Ge();p=h+12|0;if((a[p>>2]|0)!=(u|0))Ge();l=_+8|0;if((a[l>>2]|0)==(u|0)){a[p>>2]=_;a[l>>2]=h;f=_;break}else Ge()}}while(0);if(s){h=a[e+(r+28)>>2]|0;l=5128+(h<<2)|0;if((u|0)==(a[l>>2]|0)){a[l>>2]=f;if(!f){a[1207]=a[1207]&~(1<<h);break}}else{if(s>>>0<(a[1210]|0)>>>0)Ge();l=s+16|0;if((a[l>>2]|0)==(u|0))a[l>>2]=f;else a[s+20>>2]=f;if(!f)break}u=a[1210]|0;if(f>>>0<u>>>0)Ge();a[f+24>>2]=s;s=a[e+(r+16)>>2]|0;do{if(s)if(s>>>0<u>>>0)Ge();else{a[f+16>>2]=s;a[s+24>>2]=f;break}}while(0);u=a[e+(r+20)>>2]|0;if(u)if(u>>>0<(a[1210]|0)>>>0)Ge();else{a[f+20>>2]=u;a[u+24>>2]=f;break}}}else{f=a[e+(r+8)>>2]|0;e=a[e+(r+12)>>2]|0;r=4864+(h<<1<<2)|0;if((f|0)!=(r|0)){if(f>>>0<l>>>0)Ge();if((a[f+12>>2]|0)!=(u|0))Ge()}if((e|0)==(f|0)){a[1206]=a[1206]&~(1<<h);break}if((e|0)!=(r|0)){if(e>>>0<l>>>0)Ge();r=e+8|0;if((a[r>>2]|0)==(u|0))s=r;else Ge()}else s=e+8|0;a[f+12>>2]=e;a[s>>2]=f}}while(0);a[i+4>>2]=d|1;a[i+d>>2]=d;if((i|0)==(a[1211]|0)){a[1208]=d;c=t;return}}else{a[h>>2]=_&-2;a[i+4>>2]=d|1;a[i+d>>2]=d}r=d>>>3;if(d>>>0<256){e=r<<1;u=4864+(e<<2)|0;f=a[1206]|0;r=1<<r;if(f&r){e=4864+(e+2<<2)|0;f=a[e>>2]|0;if(f>>>0<(a[1210]|0)>>>0)Ge();else{o=e;n=f}}else{a[1206]=f|r;o=4864+(e+2<<2)|0;n=u}a[o>>2]=i;a[n+12>>2]=i;a[i+8>>2]=n;a[i+12>>2]=u;c=t;return}n=d>>>8;if(n)if(d>>>0>16777215)n=31;else{y=(n+1048320|0)>>>16&8;w=n<<y;b=(w+520192|0)>>>16&4;w=w<<b;n=(w+245760|0)>>>16&2;n=14-(b|y|n)+(w<<n>>>15)|0;n=d>>>(n+7|0)&1|n<<1}else n=0;o=5128+(n<<2)|0;a[i+28>>2]=n;a[i+20>>2]=0;a[i+16>>2]=0;e=a[1207]|0;u=1<<n;if(!(e&u)){a[1207]=e|u;a[o>>2]=i;a[i+24>>2]=o;a[i+12>>2]=i;a[i+8>>2]=i;c=t;return}o=a[o>>2]|0;if((n|0)==31)n=0;else n=25-(n>>>1)|0;e:do{if((a[o+4>>2]&-8|0)!=(d|0)){n=d<<n;e=o;while(1){u=e+(n>>>31<<2)+16|0;o=a[u>>2]|0;if(!o)break;if((a[o+4>>2]&-8|0)==(d|0))break e;else{n=n<<1;e=o}}if(u>>>0<(a[1210]|0)>>>0)Ge();a[u>>2]=i;a[i+24>>2]=e;a[i+12>>2]=i;a[i+8>>2]=i;c=t;return}}while(0);n=o+8|0;u=a[n>>2]|0;w=a[1210]|0;if(!(o>>>0>=w>>>0&u>>>0>=w>>>0))Ge();a[u+12>>2]=i;a[n>>2]=i;a[i+8>>2]=u;a[i+12>>2]=o;a[i+24>>2]=0;c=t;return}function rn(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,u=0,f=0,s=0;t=c;n=e+4|0;u=a[n>>2]|0;i=e+100|0;if(u>>>0<(a[i>>2]|0)>>>0){a[n>>2]=u+1;f=o[u>>0]|0}else f=Wi(e)|0;if((f|0)==43|(f|0)==45){s=a[n>>2]|0;u=(f|0)==45&1;if(s>>>0<(a[i>>2]|0)>>>0){a[n>>2]=s+1;f=o[s>>0]|0}else f=Wi(e)|0;if((f+-48|0)>>>0>9&(r|0)!=0?(a[i>>2]|0)!=0:0)a[n>>2]=(a[n>>2]|0)+-1}else u=0;if((f+-48|0)>>>0>9){if(!(a[i>>2]|0)){f=-2147483648;s=0;I=f;c=t;return s|0}a[n>>2]=(a[n>>2]|0)+-1;f=-2147483648;s=0;I=f;c=t;return s|0}else r=0;do{r=f+-48+(r*10|0)|0;f=a[n>>2]|0;if(f>>>0<(a[i>>2]|0)>>>0){a[n>>2]=f+1;f=o[f>>0]|0}else f=Wi(e)|0}while((f+-48|0)>>>0<10&(r|0)<214748364);s=((r|0)<0)<<31>>31;if((f+-48|0)>>>0<10)do{s=gn(r|0,s|0,10,0)|0;r=I;f=fn(f|0,((f|0)<0)<<31>>31|0,-48,-1)|0;r=fn(f|0,I|0,s|0,r|0)|0;s=I;f=a[n>>2]|0;if(f>>>0<(a[i>>2]|0)>>>0){a[n>>2]=f+1;f=o[f>>0]|0}else f=Wi(e)|0}while((f+-48|0)>>>0<10&((s|0)<21474836|(s|0)==21474836&r>>>0<2061584302));if((f+-48|0)>>>0<10)do{f=a[n>>2]|0;if(f>>>0<(a[i>>2]|0)>>>0){a[n>>2]=f+1;f=o[f>>0]|0}else f=Wi(e)|0}while((f+-48|0)>>>0<10);if(a[i>>2]|0)a[n>>2]=(a[n>>2]|0)+-1;n=(u|0)!=0;u=nn(0,0,r|0,s|0)|0;f=n?I:s;s=n?u:r;I=f;c=t;return s|0}function tn(){}function nn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;r=r-i-(t>>>0>e>>>0|0)>>>0;return(I=r,e-t>>>0|0)|0}function an(e,r,t){e=e|0;r=r|0;t=t|0;var n=0,o=0,u=0,f=0;n=e+t|0;if((t|0)>=20){r=r&255;f=e&3;u=r|r<<8|r<<16|r<<24;o=n&~3;if(f){f=e+4-f|0;while((e|0)<(f|0)){i[e>>0]=r;e=e+1|0}}while((e|0)<(o|0)){a[e>>2]=u;e=e+4|0}}while((e|0)<(n|0)){i[e>>0]=r;e=e+1|0}return e-t|0}function on(e,r,t){e=e|0;r=r|0;t=t|0;if((t|0)<32){I=r<<t|(e&(1<<t)-1<<32-t)>>>32-t;return e<<t}I=e<<t-32;return 0}function un(e){e=e|0;var r=0;r=e;while(i[r>>0]|0)r=r+1|0;return r-e|0}function fn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;t=e+t>>>0;return(I=r+i+(t>>>0<e>>>0|0)>>>0,t|0)|0}function sn(e,r,t){e=e|0;r=r|0;t=t|0;if((t|0)<32){I=r>>>t;return e>>>t|(r&(1<<t)-1)<<32-t}I=0;return r>>>t-32|0}function ln(e,r,t){e=e|0;r=r|0;t=t|0;var n=0;if((t|0)>=4096)return Ne(e|0,r|0,t|0)|0;n=e|0;if((e&3)==(r&3)){while(e&3){if(!t)return n|0;i[e>>0]=i[r>>0]|0;e=e+1|0;r=r+1|0;t=t-1|0}while((t|0)>=4){a[e>>2]=a[r>>2];e=e+4|0;r=r+4|0;t=t-4|0}}while((t|0)>0){i[e>>0]=i[r>>0]|0;e=e+1|0;r=r+1|0;t=t-1|0}return n|0}function cn(e,r,t){e=e|0;r=r|0;t=t|0;if((t|0)<32){I=r>>t;return e>>>t|(r&(1<<t)-1)<<32-t}I=(r|0)<0?-1:0;return r>>t-32|0}function hn(e){e=e|0;var r=0;r=i[m+(e>>>24)>>0]|0;if((r|0)<8)return r|0;r=i[m+(e>>16&255)>>0]|0;if((r|0)<8)return r+8|0;r=i[m+(e>>8&255)>>0]|0;if((r|0)<8)return r+16|0;return(i[m+(e&255)>>0]|0)+24|0}function dn(e){e=e|0;var r=0;r=i[p+(e&255)>>0]|0;if((r|0)<8)return r|0;r=i[p+(e>>8&255)>>0]|0;if((r|0)<8)return r+8|0;r=i[p+(e>>16&255)>>0]|0;if((r|0)<8)return r+16|0;return(i[p+(e>>>24)>>0]|0)+24|0}function _n(e,r){e=e|0;r=r|0;var t=0,i=0,n=0,a=0;a=e&65535;i=r&65535;t=ne(i,a)|0;n=e>>>16;i=(t>>>16)+(ne(i,n)|0)|0;r=r>>>16;e=ne(r,a)|0;return(I=(i>>>16)+(ne(r,n)|0)+(((i&65535)+e|0)>>>16)|0,i+e<<16|t&65535|0)|0}function pn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0,a=0,o=0,u=0,f=0,s=0;s=r>>31|((r|0)<0?-1:0)<<1;f=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;a=i>>31|((i|0)<0?-1:0)<<1;n=((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1;u=nn(s^e,f^r,s,f)|0;o=I;r=a^s;e=n^f;e=nn((yn(u,o,nn(a^t,n^i,a,n)|0,I,0)|0)^r,I^e,r,e)|0;return e|0}function mn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0,o=0,u=0,f=0,s=0,l=0;n=c;c=c+8|0;f=n|0;u=r>>31|((r|0)<0?-1:0)<<1;o=((r|0)<0?-1:0)>>31|((r|0)<0?-1:0)<<1;l=i>>31|((i|0)<0?-1:0)<<1;s=((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1;r=nn(u^e,o^r,u,o)|0;e=I;yn(r,e,nn(l^t,s^i,l,s)|0,I,f)|0;e=nn(a[f>>2]^u,a[f+4>>2]^o,u,o)|0;r=I;c=n;return(I=r,e)|0}function gn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0,a=0;n=e;a=t;e=_n(n,a)|0;t=I;return(I=(ne(r,a)|0)+(ne(i,n)|0)+t|t&0,e|0|0)|0}function vn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;e=yn(e,r,t,i,0)|0;return e|0}function bn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;var n=0,o=0;o=c;c=c+8|0;n=o|0;yn(e,r,t,i,n)|0;c=o;return(I=a[n+4>>2]|0,a[n>>2]|0)|0}function yn(e,r,t,i,n){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;var o=0,u=0,f=0,s=0,l=0,c=0,h=0,d=0,_=0,p=0;u=e;s=r;f=s;c=t;o=i;l=o;if(!f){o=(n|0)!=0;if(!l){if(o){a[n>>2]=(u>>>0)%(c>>>0);a[n+4>>2]=0}l=0;h=(u>>>0)/(c>>>0)>>>0;return(I=l,h)|0}else{if(!o){c=0;h=0;return(I=c,h)|0}a[n>>2]=e|0;a[n+4>>2]=r&0;c=0;h=0;return(I=c,h)|0}}h=(l|0)==0;do{if(c){if(!h){l=(hn(l|0)|0)-(hn(f|0)|0)|0;if(l>>>0<=31){h=l+1|0;c=31-l|0;e=l-31>>31;s=h;r=u>>>(h>>>0)&e|f<<c;e=f>>>(h>>>0)&e;l=0;c=u<<c;break}if(!n){c=0;h=0;return(I=c,h)|0}a[n>>2]=e|0;a[n+4>>2]=s|r&0;c=0;h=0;return(I=c,h)|0}l=c-1|0;if(l&c){c=(hn(c|0)|0)+33-(hn(f|0)|0)|0;p=64-c|0;h=32-c|0;d=h>>31;_=c-32|0;e=_>>31;s=c;r=h-1>>31&f>>>(_>>>0)|(f<<h|u>>>(c>>>0))&e;e=e&f>>>(c>>>0);l=u<<p&d;c=(f<<p|u>>>(_>>>0))&d|u<<h&c-33>>31;break}if(n){a[n>>2]=l&u;a[n+4>>2]=0}if((c|0)==1){_=s|r&0;p=e|0|0;return(I=_,p)|0}else{p=dn(c|0)|0;_=f>>>(p>>>0)|0;p=f<<32-p|u>>>(p>>>0)|0;return(I=_,p)|0}}else{if(h){if(n){a[n>>2]=(f>>>0)%(c>>>0);a[n+4>>2]=0}_=0;p=(f>>>0)/(c>>>0)>>>0;return(I=_,p)|0}if(!u){if(n){a[n>>2]=0;a[n+4>>2]=(f>>>0)%(l>>>0)}_=0;p=(f>>>0)/(l>>>0)>>>0;return(I=_,p)|0}c=l-1|0;if(!(c&l)){if(n){a[n>>2]=e|0;a[n+4>>2]=c&f|r&0}_=0;p=f>>>((dn(l|0)|0)>>>0);return(I=_,p)|0}l=(hn(l|0)|0)-(hn(f|0)|0)|0;if(l>>>0<=30){e=l+1|0;c=31-l|0;s=e;r=f<<c|u>>>(e>>>0);e=f>>>(e>>>0);l=0;c=u<<c;break}if(!n){_=0;p=0;return(I=_,p)|0}a[n>>2]=e|0;a[n+4>>2]=s|r&0;_=0;p=0;return(I=_,p)|0}}while(0);if(!s){o=c;i=0;f=0}else{u=t|0|0;o=o|i&0;i=fn(u,o,-1,-1)|0;t=I;f=0;do{h=c;c=l>>>31|c<<1;l=f|l<<1;h=r<<1|h>>>31|0;d=r>>>31|e<<1|0;nn(i,t,h,d)|0;p=I;_=p>>31|((p|0)<0?-1:0)<<1;f=_&1;r=nn(h,d,_&u,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&o)|0;e=I;s=s-1|0}while((s|0)!=0);o=c;i=0}u=0;if(n){a[n>>2]=r;a[n+4>>2]=e}_=(l|0)>>>31|(o|u)<<1|(u<<1|l>>>31)&0|i;p=(l<<1|0>>>31)&-2|f;return(I=_,p)|0}function wn(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;return Vn[e&1](r|0,t|0,i|0)|0}function An(e,r,t,i,n,a){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;a=a|0;Hn[e&3](r|0,t|0,i|0,n|0,a|0)}function Mn(e,r){e=e|0;r=r|0;qn[e&31](r|0)}function Tn(e,r,t){e=e|0;r=r|0;t=t|0;jn[e&3](r|0,t|0)}function kn(e,r){e=e|0;r=r|0;return $n[e&1](r|0)|0}function En(e){e=e|0;Wn[e&3]()}function Sn(e,r,t,i,n,a,o){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;a=a|0;o=o|0;zn[e&3](r|0,t|0,i|0,n|0,a|0,o|0)}function On(e,r,t){e=e|0;r=r|0;t=t|0;return Kn[e&3](r|0,t|0)|0}function Ln(e,r,t,i,n){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;Xn[e&3](r|0,t|0,i|0,n|0)}function Cn(e,r,t){e=e|0;r=r|0;t=t|0;ae(0);return 0}function Nn(e,r,t,i,n){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;ae(1)}function Rn(e){e=e|0;ae(2)}function Pn(e,r){e=e|0;r=r|0;ae(3)}function In(e){e=e|0;ae(4);return 0}function Fn(){ae(5)}function xn(){nr()}function Bn(e,r,t,i,n,a){e=e|0;r=r|0;t=t|0;i=i|0;n=n|0;a=a|0;ae(6)}function Dn(e,r){e=e|0;r=r|0;ae(7);return 0}function Un(e,r,t,i){e=e|0;r=r|0;t=t|0;i=i|0;ae(8)}var Vn=[Cn,Mi];var Hn=[Nn,Ci,Li,Nn];var qn=[Rn,mr,vr,yr,Mr,Or,Sr,Zr,Gr,bt,vt,It,ci,li,vi,wi,bi,yi,Ai,br,Bi,Rn,Rn,Rn,Rn,Rn,Rn,Rn,Rn,Rn,Rn,Rn];var jn=[Pn,Ar,kr,Qr];var $n=[In,hi];var Wn=[Fn,xn,Fi,xi];var zn=[Bn,Ri,Ni,Bn];var Kn=[Dn,wr,Tr,Jr];var Xn=[Un,ki,Ei,Un];return{_yo:Kt,_strlen:un,_retireVar:ti,_bitshift64Lshr:sn,_unyo:Xt,_solve:Jt,_bitshift64Shl:on,_getSolution:Qt,___cxa_is_pointer_type:Ii,_memset:an,_getNumVars:ei,_memcpy:ln,_getConflictClauseSize:ii,_addClause:Gt,_i64Subtract:nn,_createTheSolver:Zt,_realloc:Vi,_i64Add:fn,_solveAssuming:ri,___cxa_can_catch:Pi,_ensureVar:Yt,_getConflictClause:ni,_free:Ui,_malloc:Di,__GLOBAL__I_a:Yr,__GLOBAL__I_a127:Ft,runPostSets:tn,stackAlloc:ur,stackSave:fr,stackRestore:sr,setThrew:lr,setTempRet0:dr,getTempRet0:_r,dynCall_iiii:wn,dynCall_viiiii:An,dynCall_vi:Mn,dynCall_vii:Tn,dynCall_ii:kn,dynCall_v:En,dynCall_viiiiii:Sn,dynCall_iii:On,dynCall_viiii:Ln}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module._yo=asm._yo;var _strlen=Module._strlen=asm._strlen;Module._retireVar=asm._retireVar;var _bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr;Module._unyo=asm._unyo,Module._solve=asm._solve;var _bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl;Module._getSolution=asm._getSolution,Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type;var _memset=Module._memset=asm._memset;Module._getNumVars=asm._getNumVars;var _memcpy=Module._memcpy=asm._memcpy;Module._getConflictClauseSize=asm._getConflictClauseSize,Module._addClause=asm._addClause;var _i64Subtract=Module._i64Subtract=asm._i64Subtract;Module._createTheSolver=asm._createTheSolver,Module._realloc=asm._realloc;var _i64Add=Module._i64Add=asm._i64Add;Module._solveAssuming=asm._solveAssuming,Module.___cxa_can_catch=asm.___cxa_can_catch,Module._ensureVar=asm._ensureVar,Module._getConflictClause=asm._getConflictClause;var _free=Module._free=asm._free,_malloc=Module._malloc=asm._malloc,__GLOBAL__I_a=Module.__GLOBAL__I_a=asm.__GLOBAL__I_a,__GLOBAL__I_a127=Module.__GLOBAL__I_a127=asm.__GLOBAL__I_a127;Module.runPostSets=asm.runPostSets,Module.dynCall_iiii=asm.dynCall_iiii,Module.dynCall_viiiii=asm.dynCall_viiiii,Module.dynCall_vi=asm.dynCall_vi,Module.dynCall_vii=asm.dynCall_vii,Module.dynCall_ii=asm.dynCall_ii,Module.dynCall_v=asm.dynCall_v,Module.dynCall_viiiiii=asm.dynCall_viiiiii,Module.dynCall_iii=asm.dynCall_iii,Module.dynCall_viiii=asm.dynCall_viiii,Runtime.stackAlloc=asm.stackAlloc,Runtime.stackSave=asm.stackSave,Runtime.stackRestore=asm.stackRestore,Runtime.setTempRet0=asm.setTempRet0,Runtime.getTempRet0=asm.getTempRet0;var i64Math=function(){var e={math:{}};function r(e,r,t){null!=e&&("number"==typeof e?this.fromNumber(e,r,t):null==r&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,r))}function t(){return new r(null)}e.math.Long=function(e,r){this.low_=0|e,this.high_=0|r},e.math.Long.IntCache_={},e.math.Long.fromInt=function(r){if(-128<=r&&r<128){var t=e.math.Long.IntCache_[r];if(t)return t}var i=new e.math.Long(0|r,r<0?-1:0);return-128<=r&&r<128&&(e.math.Long.IntCache_[r]=i),i},e.math.Long.fromNumber=function(r){return isNaN(r)||!isFinite(r)?e.math.Long.ZERO:r<=-e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MIN_VALUE:r+1>=e.math.Long.TWO_PWR_63_DBL_?e.math.Long.MAX_VALUE:r<0?e.math.Long.fromNumber(-r).negate():new e.math.Long(r%e.math.Long.TWO_PWR_32_DBL_|0,r/e.math.Long.TWO_PWR_32_DBL_|0)},e.math.Long.fromBits=function(r,t){return new e.math.Long(r,t)},e.math.Long.fromString=function(r,t){if(0==r.length)throw Error("number format error: empty string");var i=t||10;if(i<2||36<i)throw Error("radix out of range: "+i);if("-"==r.charAt(0))return e.math.Long.fromString(r.substring(1),i).negate();if(r.indexOf("-")>=0)throw Error('number format error: interior "-" character: '+r);for(var n=e.math.Long.fromNumber(Math.pow(i,8)),a=e.math.Long.ZERO,o=0;o<r.length;o+=8){var u=Math.min(8,r.length-o),f=parseInt(r.substring(o,o+u),i);if(u<8){var s=e.math.Long.fromNumber(Math.pow(i,u));a=a.multiply(s).add(e.math.Long.fromNumber(f))}else a=(a=a.multiply(n)).add(e.math.Long.fromNumber(f))}return a},e.math.Long.TWO_PWR_16_DBL_=65536,e.math.Long.TWO_PWR_24_DBL_=1<<24,e.math.Long.TWO_PWR_32_DBL_=e.math.Long.TWO_PWR_16_DBL_*e.math.Long.TWO_PWR_16_DBL_,e.math.Long.TWO_PWR_31_DBL_=e.math.Long.TWO_PWR_32_DBL_/2,e.math.Long.TWO_PWR_48_DBL_=e.math.Long.TWO_PWR_32_DBL_*e.math.Long.TWO_PWR_16_DBL_,e.math.Long.TWO_PWR_64_DBL_=e.math.Long.TWO_PWR_32_DBL_*e.math.Long.TWO_PWR_32_DBL_,e.math.Long.TWO_PWR_63_DBL_=e.math.Long.TWO_PWR_64_DBL_/2,e.math.Long.ZERO=e.math.Long.fromInt(0),e.math.Long.ONE=e.math.Long.fromInt(1),e.math.Long.NEG_ONE=e.math.Long.fromInt(-1),e.math.Long.MAX_VALUE=e.math.Long.fromBits(-1,2147483647),e.math.Long.MIN_VALUE=e.math.Long.fromBits(0,-2147483648),e.math.Long.TWO_PWR_24_=e.math.Long.fromInt(1<<24),e.math.Long.prototype.toInt=function(){return this.low_},e.math.Long.prototype.toNumber=function(){return this.high_*e.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()},e.math.Long.prototype.toString=function(r){var t=r||10;if(t<2||36<t)throw Error("radix out of range: "+t);if(this.isZero())return"0";if(this.isNegative()){if(this.equals(e.math.Long.MIN_VALUE)){var i=e.math.Long.fromNumber(t),n=this.div(i),a=n.multiply(i).subtract(this);return n.toString(t)+a.toInt().toString(t)}return"-"+this.negate().toString(t)}for(var o=e.math.Long.fromNumber(Math.pow(t,6)),u=(a=this,"");;){var f=a.div(o),s=a.subtract(f.multiply(o)).toInt().toString(t);if((a=f).isZero())return s+u;for(;s.length<6;)s="0"+s;u=""+s+u}},e.math.Long.prototype.getHighBits=function(){return this.high_},e.math.Long.prototype.getLowBits=function(){return this.low_},e.math.Long.prototype.getLowBitsUnsigned=function(){return this.low_>=0?this.low_:e.math.Long.TWO_PWR_32_DBL_+this.low_},e.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(e.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var r=0!=this.high_?this.high_:this.low_,t=31;t>0&&!(r&1<<t);t--);return 0!=this.high_?t+33:t+1},e.math.Long.prototype.isZero=function(){return 0==this.high_&&0==this.low_},e.math.Long.prototype.isNegative=function(){return this.high_<0},e.math.Long.prototype.isOdd=function(){return!(1&~this.low_)},e.math.Long.prototype.equals=function(e){return this.high_==e.high_&&this.low_==e.low_},e.math.Long.prototype.notEquals=function(e){return this.high_!=e.high_||this.low_!=e.low_},e.math.Long.prototype.lessThan=function(e){return this.compare(e)<0},e.math.Long.prototype.lessThanOrEqual=function(e){return this.compare(e)<=0},e.math.Long.prototype.greaterThan=function(e){return this.compare(e)>0},e.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},e.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var r=this.isNegative(),t=e.isNegative();return r&&!t?-1:!r&&t?1:this.subtract(e).isNegative()?-1:1},e.math.Long.prototype.negate=function(){return this.equals(e.math.Long.MIN_VALUE)?e.math.Long.MIN_VALUE:this.not().add(e.math.Long.ONE)},e.math.Long.prototype.add=function(r){var t=this.high_>>>16,i=65535&this.high_,n=this.low_>>>16,a=65535&this.low_,o=r.high_>>>16,u=65535&r.high_,f=r.low_>>>16,s=0,l=0,c=0,h=0;return c+=(h+=a+(65535&r.low_))>>>16,h&=65535,l+=(c+=n+f)>>>16,c&=65535,s+=(l+=i+u)>>>16,l&=65535,s+=t+o,s&=65535,e.math.Long.fromBits(c<<16|h,s<<16|l)},e.math.Long.prototype.subtract=function(e){return this.add(e.negate())},e.math.Long.prototype.multiply=function(r){if(this.isZero())return e.math.Long.ZERO;if(r.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE))return r.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(r.equals(e.math.Long.MIN_VALUE))return this.isOdd()?e.math.Long.MIN_VALUE:e.math.Long.ZERO;if(this.isNegative())return r.isNegative()?this.negate().multiply(r.negate()):this.negate().multiply(r).negate();if(r.isNegative())return this.multiply(r.negate()).negate();if(this.lessThan(e.math.Long.TWO_PWR_24_)&&r.lessThan(e.math.Long.TWO_PWR_24_))return e.math.Long.fromNumber(this.toNumber()*r.toNumber());var t=this.high_>>>16,i=65535&this.high_,n=this.low_>>>16,a=65535&this.low_,o=r.high_>>>16,u=65535&r.high_,f=r.low_>>>16,s=65535&r.low_,l=0,c=0,h=0,d=0;return h+=(d+=a*s)>>>16,d&=65535,c+=(h+=n*s)>>>16,h&=65535,c+=(h+=a*f)>>>16,h&=65535,l+=(c+=i*s)>>>16,c&=65535,l+=(c+=n*f)>>>16,c&=65535,l+=(c+=a*u)>>>16,c&=65535,l+=t*s+i*f+n*u+a*o,l&=65535,e.math.Long.fromBits(h<<16|d,l<<16|c)},e.math.Long.prototype.div=function(r){if(r.isZero())throw Error("division by zero");if(this.isZero())return e.math.Long.ZERO;if(this.equals(e.math.Long.MIN_VALUE)){if(r.equals(e.math.Long.ONE)||r.equals(e.math.Long.NEG_ONE))return e.math.Long.MIN_VALUE;if(r.equals(e.math.Long.MIN_VALUE))return e.math.Long.ONE;if((n=this.shiftRight(1).div(r).shiftLeft(1)).equals(e.math.Long.ZERO))return r.isNegative()?e.math.Long.ONE:e.math.Long.NEG_ONE;var t=this.subtract(r.multiply(n));return n.add(t.div(r))}if(r.equals(e.math.Long.MIN_VALUE))return e.math.Long.ZERO;if(this.isNegative())return r.isNegative()?this.negate().div(r.negate()):this.negate().div(r).negate();if(r.isNegative())return this.div(r.negate()).negate();var i=e.math.Long.ZERO;for(t=this;t.greaterThanOrEqual(r);){for(var n=Math.max(1,Math.floor(t.toNumber()/r.toNumber())),a=Math.ceil(Math.log(n)/Math.LN2),o=a<=48?1:Math.pow(2,a-48),u=e.math.Long.fromNumber(n),f=u.multiply(r);f.isNegative()||f.greaterThan(t);)n-=o,f=(u=e.math.Long.fromNumber(n)).multiply(r);u.isZero()&&(u=e.math.Long.ONE),i=i.add(u),t=t.subtract(f)}return i},e.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},e.math.Long.prototype.not=function(){return e.math.Long.fromBits(~this.low_,~this.high_)},e.math.Long.prototype.and=function(r){return e.math.Long.fromBits(this.low_&r.low_,this.high_&r.high_)},e.math.Long.prototype.or=function(r){return e.math.Long.fromBits(this.low_|r.low_,this.high_|r.high_)},e.math.Long.prototype.xor=function(r){return e.math.Long.fromBits(this.low_^r.low_,this.high_^r.high_)},e.math.Long.prototype.shiftLeft=function(r){if(0==(r&=63))return this;var t=this.low_;if(r<32){var i=this.high_;return e.math.Long.fromBits(t<<r,i<<r|t>>>32-r)}return e.math.Long.fromBits(0,t<<r-32)},e.math.Long.prototype.shiftRight=function(r){if(0==(r&=63))return this;var t=this.high_;if(r<32){var i=this.low_;return e.math.Long.fromBits(i>>>r|t<<32-r,t>>r)}return e.math.Long.fromBits(t>>r-32,t>=0?0:-1)},e.math.Long.prototype.shiftRightUnsigned=function(r){if(0==(r&=63))return this;var t=this.high_;if(r<32){var i=this.low_;return e.math.Long.fromBits(i>>>r|t<<32-r,t>>>r)}return 32==r?e.math.Long.fromBits(t,0):e.math.Long.fromBits(t>>>r-32,0)},r.prototype.am=function(e,r,t,i,n,a){for(;--a>=0;){var o=r*this[e++]+t[i]+n;n=Math.floor(o/67108864),t[i++]=67108863&o}return n},r.prototype.DB=26,r.prototype.DM=67108863,r.prototype.DV=1<<26;r.prototype.FV=Math.pow(2,52),r.prototype.F1=26,r.prototype.F2=0;var i,n,a=new Array;for(i="0".charCodeAt(0),n=0;n<=9;++n)a[i++]=n;for(i="a".charCodeAt(0),n=10;n<36;++n)a[i++]=n;for(i="A".charCodeAt(0),n=10;n<36;++n)a[i++]=n;function o(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function u(e,r){var t=a[e.charCodeAt(r)];return null==t?-1:t}function f(e){var r=t();return r.fromInt(e),r}function s(e){var r,t=1;return 0!=(r=e>>>16)&&(e=r,t+=16),0!=(r=e>>8)&&(e=r,t+=8),0!=(r=e>>4)&&(e=r,t+=4),0!=(r=e>>2)&&(e=r,t+=2),0!=(r=e>>1)&&(e=r,t+=1),t}function l(e){this.m=e}function c(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}l.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},l.prototype.revert=function(e){return e},l.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},l.prototype.mulTo=function(e,r,t){e.multiplyTo(r,t),this.reduce(t)},l.prototype.sqrTo=function(e,r){e.squareTo(r),this.reduce(r)},c.prototype.convert=function(e){var i=t();return e.abs().dlShiftTo(this.m.t,i),i.divRemTo(this.m,null,i),e.s<0&&i.compareTo(r.ZERO)>0&&this.m.subTo(i,i),i},c.prototype.revert=function(e){var r=t();return e.copyTo(r),this.reduce(r),r},c.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var r=0;r<this.m.t;++r){var t=32767&e[r],i=t*this.mpl+((t*this.mph+(e[r]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[t=r+this.m.t]+=this.m.am(0,i,e,r,0,this.m.t);e[t]>=e.DV;)e[t]-=e.DV,e[++t]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},c.prototype.mulTo=function(e,r,t){e.multiplyTo(r,t),this.reduce(t)},c.prototype.sqrTo=function(e,r){e.squareTo(r),this.reduce(r)},r.prototype.copyTo=function(e){for(var r=this.t-1;r>=0;--r)e[r]=this[r];e.t=this.t,e.s=this.s},r.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+DV:this.t=0},r.prototype.fromString=function(e,t){var i;if(16==t)i=4;else if(8==t)i=3;else if(256==t)i=8;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)return void this.fromRadix(e,t);i=2}this.t=0,this.s=0;for(var n=e.length,a=!1,o=0;--n>=0;){var f=8==i?255&e[n]:u(e,n);f<0?"-"==e.charAt(n)&&(a=!0):(a=!1,0==o?this[this.t++]=f:o+i>this.DB?(this[this.t-1]|=(f&(1<<this.DB-o)-1)<<o,this[this.t++]=f>>this.DB-o):this[this.t-1]|=f<<o,(o+=i)>=this.DB&&(o-=this.DB))}8==i&&128&e[0]&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),a&&r.ZERO.subTo(this,this)},r.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},r.prototype.dlShiftTo=function(e,r){var t;for(t=this.t-1;t>=0;--t)r[t+e]=this[t];for(t=e-1;t>=0;--t)r[t]=0;r.t=this.t+e,r.s=this.s},r.prototype.drShiftTo=function(e,r){for(var t=e;t<this.t;++t)r[t-e]=this[t];r.t=Math.max(this.t-e,0),r.s=this.s},r.prototype.lShiftTo=function(e,r){var t,i=e%this.DB,n=this.DB-i,a=(1<<n)-1,o=Math.floor(e/this.DB),u=this.s<<i&this.DM;for(t=this.t-1;t>=0;--t)r[t+o+1]=this[t]>>n|u,u=(this[t]&a)<<i;for(t=o-1;t>=0;--t)r[t]=0;r[o]=u,r.t=this.t+o+1,r.s=this.s,r.clamp()},r.prototype.rShiftTo=function(e,r){r.s=this.s;var t=Math.floor(e/this.DB);if(t>=this.t)r.t=0;else{var i=e%this.DB,n=this.DB-i,a=(1<<i)-1;r[0]=this[t]>>i;for(var o=t+1;o<this.t;++o)r[o-t-1]|=(this[o]&a)<<n,r[o-t]=this[o]>>i;i>0&&(r[this.t-t-1]|=(this.s&a)<<n),r.t=this.t-t,r.clamp()}},r.prototype.subTo=function(e,r){for(var t=0,i=0,n=Math.min(e.t,this.t);t<n;)i+=this[t]-e[t],r[t++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;t<this.t;)i+=this[t],r[t++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;t<e.t;)i-=e[t],r[t++]=i&this.DM,i>>=this.DB;i-=e.s}r.s=i<0?-1:0,i<-1?r[t++]=this.DV+i:i>0&&(r[t++]=i),r.t=t,r.clamp()},r.prototype.multiplyTo=function(e,t){var i=this.abs(),n=e.abs(),a=i.t;for(t.t=a+n.t;--a>=0;)t[a]=0;for(a=0;a<n.t;++a)t[a+i.t]=i.am(0,n[a],t,a,0,i.t);t.s=0,t.clamp(),this.s!=e.s&&r.ZERO.subTo(t,t)},r.prototype.squareTo=function(e){for(var r=this.abs(),t=e.t=2*r.t;--t>=0;)e[t]=0;for(t=0;t<r.t-1;++t){var i=r.am(t,r[t],e,2*t,0,1);(e[t+r.t]+=r.am(t+1,2*r[t],e,2*t+1,i,r.t-t-1))>=r.DV&&(e[t+r.t]-=r.DV,e[t+r.t+1]=1)}e.t>0&&(e[e.t-1]+=r.am(t,r[t],e,2*t,0,1)),e.s=0,e.clamp()},r.prototype.divRemTo=function(e,i,n){var a=e.abs();if(!(a.t<=0)){var o=this.abs();if(o.t<a.t)return null!=i&&i.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=t());var u=t(),f=this.s,l=e.s,c=this.DB-s(a[a.t-1]);c>0?(a.lShiftTo(c,u),o.lShiftTo(c,n)):(a.copyTo(u),o.copyTo(n));var h=u.t,d=u[h-1];if(0!=d){var _=d*(1<<this.F1)+(h>1?u[h-2]>>this.F2:0),p=this.FV/_,m=(1<<this.F1)/_,g=1<<this.F2,v=n.t,b=v-h,y=null==i?t():i;for(u.dlShiftTo(b,y),n.compareTo(y)>=0&&(n[n.t++]=1,n.subTo(y,n)),r.ONE.dlShiftTo(h,y),y.subTo(u,u);u.t<h;)u[u.t++]=0;for(;--b>=0;){var w=n[--v]==d?this.DM:Math.floor(n[v]*p+(n[v-1]+g)*m);if((n[v]+=u.am(0,w,n,b,0,h))<w)for(u.dlShiftTo(b,y),n.subTo(y,n);n[v]<--w;)n.subTo(y,n)}null!=i&&(n.drShiftTo(h,i),f!=l&&r.ZERO.subTo(i,i)),n.t=h,n.clamp(),c>0&&n.rShiftTo(c,n),f<0&&r.ZERO.subTo(n,n)}}},r.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(!(1&e))return 0;var r=3&e;return(r=(r=(r=(r=r*(2-(15&e)*r)&15)*(2-(255&e)*r)&255)*(2-((65535&e)*r&65535))&65535)*(2-e*r%this.DV)%this.DV)>0?this.DV-r:-r},r.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},r.prototype.exp=function(e,i){if(e>4294967295||e<1)return r.ONE;var n=t(),a=t(),o=i.convert(this),u=s(e)-1;for(o.copyTo(n);--u>=0;)if(i.sqrTo(n,a),(e&1<<u)>0)i.mulTo(a,o,n);else{var f=n;n=a,a=f}return i.revert(n)},r.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var r;if(16==e)r=4;else if(8==e)r=3;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return this.toRadix(e);r=2}var t,i=(1<<r)-1,n=!1,a="",u=this.t,f=this.DB-u*this.DB%r;if(u-- >0)for(f<this.DB&&(t=this[u]>>f)>0&&(n=!0,a=o(t));u>=0;)f<r?(t=(this[u]&(1<<f)-1)<<r-f,t|=this[--u]>>(f+=this.DB-r)):(t=this[u]>>(f-=r)&i,f<=0&&(f+=this.DB,--u)),t>0&&(n=!0),n&&(a+=o(t));return n?a:"0"},r.prototype.negate=function(){var e=t();return r.ZERO.subTo(this,e),e},r.prototype.abs=function(){return this.s<0?this.negate():this},r.prototype.compareTo=function(e){var r=this.s-e.s;if(0!=r)return r;var t=this.t;if(0!=(r=t-e.t))return this.s<0?-r:r;for(;--t>=0;)if(0!=(r=this[t]-e[t]))return r;return 0},r.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+s(this[this.t-1]^this.s&this.DM)},r.prototype.mod=function(e){var i=t();return this.abs().divRemTo(e,null,i),this.s<0&&i.compareTo(r.ZERO)>0&&e.subTo(i,i),i},r.prototype.modPowInt=function(e,r){var t;return t=e<256||r.isEven()?new l(r):new c(r),this.exp(e,t)},r.ZERO=f(0),r.ONE=f(1),r.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var i=this.chunkSize(t),n=Math.pow(t,i),a=!1,o=0,f=0,s=0;s<e.length;++s){var l=u(e,s);l<0?"-"==e.charAt(s)&&0==this.signum()&&(a=!0):(f=t*f+l,++o>=i&&(this.dMultiply(n),this.dAddOffset(f,0),o=0,f=0))}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(f,0)),a&&r.ZERO.subTo(this,this)},r.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},r.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},r.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},r.prototype.dAddOffset=function(e,r){if(0!=e){for(;this.t<=r;)this[this.t++]=0;for(this[r]+=e;this[r]>=this.DV;)this[r]-=this.DV,++r>=this.t&&(this[this.t++]=0),++this[r]}},r.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var r=this.chunkSize(e),i=Math.pow(e,r),n=f(i),a=t(),o=t(),u="";for(this.divRemTo(n,a,o);a.signum()>0;)u=(i+o.intValue()).toString(e).substr(1)+u,a.divRemTo(n,a,o);return o.intValue().toString(e)+u},r.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},r.prototype.addTo=function(e,r){for(var t=0,i=0,n=Math.min(e.t,this.t);t<n;)i+=this[t]+e[t],r[t++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;t<this.t;)i+=this[t],r[t++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;t<e.t;)i+=e[t],r[t++]=i&this.DM,i>>=this.DB;i+=e.s}r.s=i<0?-1:0,i>0?r[t++]=i:i<-1&&(r[t++]=this.DV+i),r.t=t,r.clamp()};var h={abs:function(r,t){var i,n=new e.math.Long(r,t);i=n.isNegative()?n.negate():n,HEAP32[tempDoublePtr>>2]=i.low_,HEAP32[tempDoublePtr+4>>2]=i.high_},ensureTemps:function(){h.ensuredTemps||(h.ensuredTemps=!0,h.two32=new r,h.two32.fromString("4294967296",10),h.two64=new r,h.two64.fromString("18446744073709551616",10),h.temp1=new r,h.temp2=new r)},lh2bignum:function(e,t){var i=new r;i.fromString(t.toString(),10);var n=new r;i.multiplyTo(h.two32,n);var a=new r;a.fromString(e.toString(),10);var o=new r;return a.addTo(n,o),o},stringify:function(t,i,n){var a=new e.math.Long(t,i).toString();if(n&&"-"==a[0]){h.ensureTemps();var o=new r;o.fromString(a,10),a=new r,h.two64.addTo(o,a),a=a.toString(10)}return a},fromString:function(t,i,n,a,o){h.ensureTemps();var u=new r;u.fromString(t,i);var f=new r;f.fromString(n,10);var s=new r;if(s.fromString(a,10),o&&u.compareTo(r.ZERO)<0){var l=new r;u.addTo(h.two64,l),u=l}var c=!1;u.compareTo(f)<0?(u=f,c=!0):u.compareTo(s)>0&&(u=s,c=!0);var d=e.math.Long.fromString(u.toString());if(HEAP32[tempDoublePtr>>2]=d.low_,HEAP32[tempDoublePtr+4>>2]=d.high_,c)throw"range error"}};return h}(),initialStackTop;function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function run(e){function r(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),r()},1)):r()))}function exit(e){if(!Module.noExitRuntime)throw ABORT=!0,STACKTOP=initialStackTop,exitRuntime(),ENVIRONMENT_IS_NODE?(process.stdout.once("drain",function(){process.exit(e)}),console.log(" "),setTimeout(function(){process.exit(e)},500)):ENVIRONMENT_IS_SHELL&&"function"==typeof quit&&quit(e),new ExitStatus(e)}function abort(e){e&&(Module.print(e),Module.printErr(e)),ABORT=!0;throw"abort() at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."}if(ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus,dependenciesFulfilled=function e(){!Module.calledRun&&shouldRunNow&&run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){assert(0==runDependencies,"cannot call main when async dependencies remain! (listen on __ATMAIN__)"),assert(0==__ATPRERUN__.length,"cannot call main when preRun functions remain to be called"),e=e||[],ensureInitRuntime();var r=e.length+1;function t(){for(var e=0;e<3;e++)i.push(0)}var i=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];t();for(var n=0;n<r-1;n+=1)i.push(allocate(intArrayFromString(e[n]),"i8",ALLOC_NORMAL)),t();i.push(0),i=allocate(i,"i32",ALLOC_NORMAL),initialStackTop=STACKTOP;try{exit(Module._main(r,i,0))}catch(e){if(e instanceof ExitStatus)return;if("SimulateInfiniteLoop"==e)return void(Module.noExitRuntime=!0);throw e&&"object"==typeof e&&e.stack&&Module.printErr("exception thrown: "+[e,e.stack]),e}},Module.run=Module.run=run,Module.exit=Module.exit=exit,Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run();var origMalloc=Module._malloc,origFree=Module._free,MEMSTATS={totalMemory:Module.HEAPU8.length,heapUsed:0},MEMSTATS_DATA={pointerToSizeMap:{},getSizeOfPointer:function(e){return MEMSTATS_DATA.pointerToSizeMap[e]}};Module.MEMSTATS=MEMSTATS,Module.MEMSTATS_DATA=MEMSTATS_DATA;var hookedMalloc=function(e){var r=origMalloc(e);return r?(MEMSTATS.heapUsed+=e,MEMSTATS_DATA.pointerToSizeMap[r]=e,r):0},hookedFree=function(e){return e&&(MEMSTATS.heapUsed-=MEMSTATS_DATA.getSizeOfPointer(e)||0,delete MEMSTATS_DATA.pointerToSizeMap[e]),origFree(e)};return Module._malloc=hookedMalloc,Module._free=hookedFree,_malloc=hookedMalloc,_free=hookedFree,module.exports},module.exports=C_MINISAT}(minisat)),minisat.exports}var VERSION="1.13.8",root="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},ArrayProto=Array.prototype,ObjProto=Object.prototype,SymbolProto="undefined"!=typeof Symbol?Symbol.prototype:null,push=ArrayProto.push,slice=ArrayProto.slice,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty,supportsArrayBuffer="undefined"!=typeof ArrayBuffer,supportsDataView="undefined"!=typeof DataView,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeCreate=Object.create,nativeIsView=supportsArrayBuffer&&ArrayBuffer.isView,_isNaN=isNaN,_isFinite=isFinite,hasEnumBug=!{toString:null}.propertyIsEnumerable("toString"),nonEnumerableProps=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],MAX_ARRAY_INDEX=Math.pow(2,53)-1;function restArguments(e,r){return r=null==r?e.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),i=Array(t),n=0;n<t;n++)i[n]=arguments[n+r];switch(r){case 0:return e.call(this,i);case 1:return e.call(this,arguments[0],i);case 2:return e.call(this,arguments[0],arguments[1],i)}var a=Array(r+1);for(n=0;n<r;n++)a[n]=arguments[n];return a[r]=i,e.apply(this,a)}}function isObject(e){var r=typeof e;return"function"===r||"object"===r&&!!e}function isNull(e){return null===e}function isUndefined(e){return void 0===e}function isBoolean(e){return!0===e||!1===e||"[object Boolean]"===toString.call(e)}function isElement(e){return!(!e||1!==e.nodeType)}function tagTester(e){var r="[object "+e+"]";return function(e){return toString.call(e)===r}}var isString=tagTester("String"),isNumber=tagTester("Number"),isDate=tagTester("Date"),isRegExp=tagTester("RegExp"),isError=tagTester("Error"),isSymbol=tagTester("Symbol"),isArrayBuffer=tagTester("ArrayBuffer"),isFunction=tagTester("Function"),nodelist=root.document&&root.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof nodelist&&(isFunction=function(e){return"function"==typeof e||!1});var isFunction$1=isFunction,hasObjectTag=tagTester("Object"),hasDataViewBug=supportsDataView&&(!/\[native code\]/.test(String(DataView))||hasObjectTag(new DataView(new ArrayBuffer(8)))),isIE11="undefined"!=typeof Map&&hasObjectTag(new Map),isDataView=tagTester("DataView");function alternateIsDataView(e){return null!=e&&isFunction$1(e.getInt8)&&isArrayBuffer(e.buffer)}var isDataView$1=hasDataViewBug?alternateIsDataView:isDataView,isArray=nativeIsArray||tagTester("Array");function has$1(e,r){return null!=e&&hasOwnProperty.call(e,r)}var isArguments=tagTester("Arguments");!function(){isArguments(arguments)||(isArguments=function(e){return has$1(e,"callee")})}();var isArguments$1=isArguments;function isFinite$1(e){return!isSymbol(e)&&_isFinite(e)&&!isNaN(parseFloat(e))}function isNaN$1(e){return isNumber(e)&&_isNaN(e)}function constant(e){return function(){return e}}function createSizePropertyCheck(e){return function(r){var t=e(r);return"number"==typeof t&&t>=0&&t<=MAX_ARRAY_INDEX}}function shallowProperty(e){return function(r){return null==r?void 0:r[e]}}var getByteLength=shallowProperty("byteLength"),isBufferLike=createSizePropertyCheck(getByteLength),typedArrayPattern=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function isTypedArray(e){return nativeIsView?nativeIsView(e)&&!isDataView$1(e):isBufferLike(e)&&typedArrayPattern.test(toString.call(e))}var isTypedArray$1=supportsArrayBuffer?isTypedArray:constant(!1),getLength=shallowProperty("length");function emulatedSet(e){for(var r={},t=e.length,i=0;i<t;++i)r[e[i]]=!0;return{contains:function(e){return!0===r[e]},push:function(t){return r[t]=!0,e.push(t)}}}function collectNonEnumProps(e,r){r=emulatedSet(r);var t=nonEnumerableProps.length,i=e.constructor,n=isFunction$1(i)&&i.prototype||ObjProto,a="constructor";for(has$1(e,a)&&!r.contains(a)&&r.push(a);t--;)(a=nonEnumerableProps[t])in e&&e[a]!==n[a]&&!r.contains(a)&&r.push(a)}function keys(e){if(!isObject(e))return[];if(nativeKeys)return nativeKeys(e);var r=[];for(var t in e)has$1(e,t)&&r.push(t);return hasEnumBug&&collectNonEnumProps(e,r),r}function isEmpty(e){if(null==e)return!0;var r=getLength(e);return"number"==typeof r&&(isArray(e)||isString(e)||isArguments$1(e))?0===r:0===getLength(keys(e))}function isMatch(e,r){var t=keys(r),i=t.length;if(null==e)return!i;for(var n=Object(e),a=0;a<i;a++){var o=t[a];if(r[o]!==n[o]||!(o in n))return!1}return!0}function _$1(e){return e instanceof _$1?e:this instanceof _$1?void(this._wrapped=e):new _$1(e)}function toBufferView(e){return new Uint8Array(e.buffer||e,e.byteOffset||0,getByteLength(e))}_$1.VERSION=VERSION,_$1.prototype.value=function(){return this._wrapped},_$1.prototype.valueOf=_$1.prototype.toJSON=_$1.prototype.value,_$1.prototype.toString=function(){return String(this._wrapped)};var tagDataView="[object DataView]";function isEqual(e,r){for(var t=[{a:e,b:r}],i=[],n=[];t.length;){var a=t.pop();if(!0!==a){if((e=a.a)===(r=a.b)){if(0!==e||1/e==1/r)continue;return!1}if(null==e||null==r)return!1;if(e!=e){if(r!=r)continue;return!1}var o=typeof e;if("function"!==o&&"object"!==o&&"object"!=typeof r)return!1;e instanceof _$1&&(e=e._wrapped),r instanceof _$1&&(r=r._wrapped);var u=toString.call(e);if(u!==toString.call(r))return!1;if(hasDataViewBug&&"[object Object]"==u&&isDataView$1(e)){if(!isDataView$1(r))return!1;u=tagDataView}switch(u){case"[object RegExp]":case"[object String]":if(""+e==""+r)continue;return!1;case"[object Number]":t.push({a:+e,b:+r});continue;case"[object Date]":case"[object Boolean]":if(+e===+r)continue;return!1;case"[object Symbol]":if(SymbolProto.valueOf.call(e)===SymbolProto.valueOf.call(r))continue;return!1;case"[object ArrayBuffer]":case tagDataView:t.push({a:toBufferView(e),b:toBufferView(r)});continue}var f="[object Array]"===u;if(!f&&isTypedArray$1(e)){if(getByteLength(e)!==getByteLength(r))return!1;if(e.buffer===r.buffer&&e.byteOffset===r.byteOffset)continue;f=!0}if(!f){if("object"!=typeof e||"object"!=typeof r)return!1;var s=e.constructor,l=r.constructor;if(s!==l&&!(isFunction$1(s)&&s instanceof s&&isFunction$1(l)&&l instanceof l)&&"constructor"in e&&"constructor"in r)return!1}for(var c=i.length;c--;)if(i[c]===e){if(n[c]===r)break;return!1}if(!(c>=0))if(i.push(e),n.push(r),t.push(!0),f){if((c=e.length)!==r.length)return!1;for(;c--;)t.push({a:e[c],b:r[c]})}else{var h,d=keys(e);if(c=d.length,keys(r).length!==c)return!1;for(;c--;){if(!has$1(r,h=d[c]))return!1;t.push({a:e[h],b:r[h]})}}}else i.pop(),n.pop()}return!0}function allKeys(e){if(!isObject(e))return[];var r=[];for(var t in e)r.push(t);return hasEnumBug&&collectNonEnumProps(e,r),r}function ie11fingerprint(e){var r=getLength(e);return function(t){if(null==t)return!1;var i=allKeys(t);if(getLength(i))return!1;for(var n=0;n<r;n++)if(!isFunction$1(t[e[n]]))return!1;return e!==weakMapMethods||!isFunction$1(t[forEachName])}}var forEachName="forEach",hasName="has",commonInit=["clear","delete"],mapTail=["get",hasName,"set"],mapMethods=commonInit.concat(forEachName,mapTail),weakMapMethods=commonInit.concat(mapTail),setMethods=["add"].concat(commonInit,forEachName,hasName),isMap=isIE11?ie11fingerprint(mapMethods):tagTester("Map"),isWeakMap=isIE11?ie11fingerprint(weakMapMethods):tagTester("WeakMap"),isSet=isIE11?ie11fingerprint(setMethods):tagTester("Set"),isWeakSet=tagTester("WeakSet");function values(e){for(var r=keys(e),t=r.length,i=Array(t),n=0;n<t;n++)i[n]=e[r[n]];return i}function pairs(e){for(var r=keys(e),t=r.length,i=Array(t),n=0;n<t;n++)i[n]=[r[n],e[r[n]]];return i}function invert(e){for(var r={},t=keys(e),i=0,n=t.length;i<n;i++)r[e[t[i]]]=t[i];return r}function functions(e){var r=[];for(var t in e)isFunction$1(e[t])&&r.push(t);return r.sort()}function createAssigner(e,r){return function(t){var i=arguments.length;if(r&&(t=Object(t)),i<2||null==t)return t;for(var n=1;n<i;n++)for(var a=arguments[n],o=e(a),u=o.length,f=0;f<u;f++){var s=o[f];r&&void 0!==t[s]||(t[s]=a[s])}return t}}var extend=createAssigner(allKeys),extendOwn=createAssigner(keys),defaults=createAssigner(allKeys,!0);function ctor(){return function(){}}function baseCreate(e){if(!isObject(e))return{};if(nativeCreate)return nativeCreate(e);var r=ctor();r.prototype=e;var t=new r;return r.prototype=null,t}function create(e,r){var t=baseCreate(e);return r&&extendOwn(t,r),t}function clone(e){return isObject(e)?isArray(e)?e.slice():extend({},e):e}function tap(e,r){return r(e),e}function toPath$1(e){return isArray(e)?e:[e]}function toPath(e){return _$1.toPath(e)}function deepGet(e,r){for(var t=r.length,i=0;i<t;i++){if(null==e)return;e=e[r[i]]}return t?e:void 0}function get(e,r,t){var i=deepGet(e,toPath(r));return isUndefined(i)?t:i}function has(e,r){for(var t=(r=toPath(r)).length,i=0;i<t;i++){var n=r[i];if(!has$1(e,n))return!1;e=e[n]}return!!t}function identity(e){return e}function matcher(e){return e=extendOwn({},e),function(r){return isMatch(r,e)}}function property(e){return e=toPath(e),function(r){return deepGet(r,e)}}function optimizeCb(e,r,t){if(void 0===r)return e;switch(null==t?3:t){case 1:return function(t){return e.call(r,t)};case 3:return function(t,i,n){return e.call(r,t,i,n)};case 4:return function(t,i,n,a){return e.call(r,t,i,n,a)}}return function(){return e.apply(r,arguments)}}function baseIteratee(e,r,t){return null==e?identity:isFunction$1(e)?optimizeCb(e,r,t):isObject(e)&&!isArray(e)?matcher(e):property(e)}function iteratee(e,r){return baseIteratee(e,r,1/0)}function cb(e,r,t){return _$1.iteratee!==iteratee?_$1.iteratee(e,r):baseIteratee(e,r,t)}function mapObject(e,r,t){r=cb(r,t);for(var i=keys(e),n=i.length,a={},o=0;o<n;o++){var u=i[o];a[u]=r(e[u],u,e)}return a}function noop(){}function propertyOf(e){return null==e?noop:function(r){return get(e,r)}}function times(e,r,t){var i=Array(Math.max(0,e));r=optimizeCb(r,t,1);for(var n=0;n<e;n++)i[n]=r(n);return i}function random(e,r){return null==r&&(r=e,e=0),e+Math.floor(Math.random()*(r-e+1))}_$1.toPath=toPath$1,_$1.iteratee=iteratee;var now=Date.now||function(){return(new Date).getTime()};function createEscaper(e){var r=function(r){return e[r]},t="(?:"+keys(e).join("|")+")",i=RegExp(t),n=RegExp(t,"g");return function(e){return e=null==e?"":""+e,i.test(e)?e.replace(n,r):e}}var escapeMap={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},escape=createEscaper(escapeMap),unescapeMap=invert(escapeMap),unescape$1=createEscaper(unescapeMap),templateSettings=_$1.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},noMatch=/(.)^/,escapes={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},escapeRegExp=/\\|'|\r|\n|\u2028|\u2029/g;function escapeChar(e){return"\\"+escapes[e]}var bareIdentifier=/^\s*(\w|\$)+\s*$/;function template(e,r,t){!r&&t&&(r=t),r=defaults({},r,_$1.templateSettings);var i=RegExp([(r.escape||noMatch).source,(r.interpolate||noMatch).source,(r.evaluate||noMatch).source].join("|")+"|$","g"),n=0,a="__p+='";e.replace(i,function(r,t,i,o,u){return a+=e.slice(n,u).replace(escapeRegExp,escapeChar),n=u+r.length,t?a+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":i?a+="'+\n((__t=("+i+"))==null?'':__t)+\n'":o&&(a+="';\n"+o+"\n__p+='"),r}),a+="';\n";var o,u=r.variable;if(u){if(!bareIdentifier.test(u))throw new Error("variable is not a bare identifier: "+u)}else a="with(obj||{}){\n"+a+"}\n",u="obj";a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{o=new Function(u,"_",a)}catch(e){throw e.source=a,e}var f=function(e){return o.call(this,e,_$1)};return f.source="function("+u+"){\n"+a+"}",f}function result(e,r,t){var i=(r=toPath(r)).length;if(!i)return isFunction$1(t)?t.call(e):t;for(var n=0;n<i;n++){var a=null==e?void 0:e[r[n]];void 0===a&&(a=t,n=i),e=isFunction$1(a)?a.call(e):a}return e}var idCounter=0;function uniqueId(e){var r=++idCounter+"";return e?e+r:r}function chain(e){var r=_$1(e);return r._chain=!0,r}function executeBound(e,r,t,i,n){if(!(i instanceof r))return e.apply(t,n);var a=baseCreate(e.prototype),o=e.apply(a,n);return isObject(o)?o:a}var partial=restArguments(function(e,r){var t=partial.placeholder,i=function(){for(var n=0,a=r.length,o=Array(a),u=0;u<a;u++)o[u]=r[u]===t?arguments[n++]:r[u];for(;n<arguments.length;)o.push(arguments[n++]);return executeBound(e,i,this,this,o)};return i});partial.placeholder=_$1;var bind=restArguments(function(e,r,t){if(!isFunction$1(e))throw new TypeError("Bind must be called on a function");var i=restArguments(function(n){return executeBound(e,i,r,this,t.concat(n))});return i}),isArrayLike=createSizePropertyCheck(getLength);function flatten$1(e,r,t){r||0===r||(r=1/0);for(var i=[],n=0,a=0,o=getLength(e)||0,u=[];;)if(a>=o){if(!u.length)break;var f=u.pop();a=f.i,e=f.v,o=getLength(e)}else{var s=e[a++];u.length>=r?i[n++]=s:isArrayLike(s)&&(isArray(s)||isArguments$1(s))?(u.push({i:a,v:e}),a=0,o=getLength(e=s)):t||(i[n++]=s)}return i}var bindAll=restArguments(function(e,r){var t=(r=flatten$1(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var i=r[t];e[i]=bind(e[i],e)}return e});function memoize(e,r){var t=function(i){var n=t.cache,a=""+(r?r.apply(this,arguments):i);return has$1(n,a)||(n[a]=e.apply(this,arguments)),n[a]};return t.cache={},t}var delay=restArguments(function(e,r,t){return setTimeout(function(){return e.apply(null,t)},r)}),defer=partial(delay,_$1,1);function throttle(e,r,t){var i,n,a,o,u=0;t||(t={});var f=function(){u=!1===t.leading?0:now(),i=null,o=e.apply(n,a),i||(n=a=null)},s=function(){var s=now();u||!1!==t.leading||(u=s);var l=r-(s-u);return n=this,a=arguments,l<=0||l>r?(i&&(clearTimeout(i),i=null),u=s,o=e.apply(n,a),i||(n=a=null)):i||!1===t.trailing||(i=setTimeout(f,l)),o};return s.cancel=function(){clearTimeout(i),u=0,i=n=a=null},s}function debounce(e,r,t){var i,n,a,o,u,f=function(){var s=now()-n;r>s?i=setTimeout(f,r-s):(i=null,t||(o=e.apply(u,a)),i||(a=u=null))},s=restArguments(function(s){return u=this,a=s,n=now(),i||(i=setTimeout(f,r),t&&(o=e.apply(u,a))),o});return s.cancel=function(){clearTimeout(i),i=a=u=null},s}function wrap(e,r){return partial(r,e)}function negate(e){return function(){return!e.apply(this,arguments)}}function compose(){var e=arguments,r=e.length-1;return function(){for(var t=r,i=e[r].apply(this,arguments);t--;)i=e[t].call(this,i);return i}}function after(e,r){return function(){if(--e<1)return r.apply(this,arguments)}}function before(e,r){var t;return function(){return--e>0&&(t=r.apply(this,arguments)),e<=1&&(r=null),t}}var once=partial(before,2);function findKey(e,r,t){r=cb(r,t);for(var i,n=keys(e),a=0,o=n.length;a<o;a++)if(r(e[i=n[a]],i,e))return i}function createPredicateIndexFinder(e){return function(r,t,i){t=cb(t,i);for(var n=getLength(r),a=e>0?0:n-1;a>=0&&a<n;a+=e)if(t(r[a],a,r))return a;return-1}}var findIndex=createPredicateIndexFinder(1),findLastIndex=createPredicateIndexFinder(-1);function sortedIndex(e,r,t,i){for(var n=(t=cb(t,i,1))(r),a=0,o=getLength(e);a<o;){var u=Math.floor((a+o)/2);t(e[u])<n?a=u+1:o=u}return a}function createIndexFinder(e,r,t){return function(i,n,a){var o=0,u=getLength(i);if("number"==typeof a)e>0?o=a>=0?a:Math.max(a+u,o):u=a>=0?Math.min(a+1,u):a+u+1;else if(t&&a&&u)return i[a=t(i,n)]===n?a:-1;if(n!=n)return(a=r(slice.call(i,o,u),isNaN$1))>=0?a+o:-1;for(a=e>0?o:u-1;a>=0&&a<u;a+=e)if(i[a]===n)return a;return-1}}var indexOf=createIndexFinder(1,findIndex,sortedIndex),lastIndexOf=createIndexFinder(-1,findLastIndex);function find(e,r,t){var i=(isArrayLike(e)?findIndex:findKey)(e,r,t);if(void 0!==i&&-1!==i)return e[i]}function findWhere(e,r){return find(e,matcher(r))}function each(e,r,t){var i,n;if(r=optimizeCb(r,t),isArrayLike(e))for(i=0,n=e.length;i<n;i++)r(e[i],i,e);else{var a=keys(e);for(i=0,n=a.length;i<n;i++)r(e[a[i]],a[i],e)}return e}function map(e,r,t){r=cb(r,t);for(var i=!isArrayLike(e)&&keys(e),n=(i||e).length,a=Array(n),o=0;o<n;o++){var u=i?i[o]:o;a[o]=r(e[u],u,e)}return a}function createReduce(e){return function(r,t,i,n){var a=arguments.length>=3;return function(r,t,i,n){var a=!isArrayLike(r)&&keys(r),o=(a||r).length,u=e>0?0:o-1;for(n||(i=r[a?a[u]:u],u+=e);u>=0&&u<o;u+=e){var f=a?a[u]:u;i=t(i,r[f],f,r)}return i}(r,optimizeCb(t,n,4),i,a)}}var reduce=createReduce(1),reduceRight=createReduce(-1);function filter(e,r,t){var i=[];return r=cb(r,t),each(e,function(e,t,n){r(e,t,n)&&i.push(e)}),i}function reject(e,r,t){return filter(e,negate(cb(r)),t)}function every(e,r,t){r=cb(r,t);for(var i=!isArrayLike(e)&&keys(e),n=(i||e).length,a=0;a<n;a++){var o=i?i[a]:a;if(!r(e[o],o,e))return!1}return!0}function some(e,r,t){r=cb(r,t);for(var i=!isArrayLike(e)&&keys(e),n=(i||e).length,a=0;a<n;a++){var o=i?i[a]:a;if(r(e[o],o,e))return!0}return!1}function contains(e,r,t,i){return isArrayLike(e)||(e=values(e)),("number"!=typeof t||i)&&(t=0),indexOf(e,r,t)>=0}var invoke=restArguments(function(e,r,t){var i,n;return isFunction$1(r)?n=r:(r=toPath(r),i=r.slice(0,-1),r=r[r.length-1]),map(e,function(e){var a=n;if(!a){if(i&&i.length&&(e=deepGet(e,i)),null==e)return;a=e[r]}return null==a?a:a.apply(e,t)})});function pluck(e,r){return map(e,property(r))}function where(e,r){return filter(e,matcher(r))}function max(e,r,t){var i,n,a=-1/0,o=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof e[0]&&null!=e)for(var u=0,f=(e=isArrayLike(e)?e:values(e)).length;u<f;u++)null!=(i=e[u])&&i>a&&(a=i);else r=cb(r,t),each(e,function(e,t,i){((n=r(e,t,i))>o||n===-1/0&&a===-1/0)&&(a=e,o=n)});return a}function min(e,r,t){var i,n,a=1/0,o=1/0;if(null==r||"number"==typeof r&&"object"!=typeof e[0]&&null!=e)for(var u=0,f=(e=isArrayLike(e)?e:values(e)).length;u<f;u++)null!=(i=e[u])&&i<a&&(a=i);else r=cb(r,t),each(e,function(e,t,i){((n=r(e,t,i))<o||n===1/0&&a===1/0)&&(a=e,o=n)});return a}var reStrSymbol=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function toArray(e){return e?isArray(e)?slice.call(e):isString(e)?e.match(reStrSymbol):isArrayLike(e)?map(e,identity):values(e):[]}function sample(e,r,t){if(null==r||t)return isArrayLike(e)||(e=values(e)),e[random(e.length-1)];var i=toArray(e),n=getLength(i);r=Math.max(Math.min(r,n),0);for(var a=n-1,o=0;o<r;o++){var u=random(o,a),f=i[o];i[o]=i[u],i[u]=f}return i.slice(0,r)}function shuffle(e){return sample(e,1/0)}function sortBy(e,r,t){var i=0;return r=cb(r,t),pluck(map(e,function(e,t,n){return{value:e,index:i++,criteria:r(e,t,n)}}).sort(function(e,r){var t=e.criteria,i=r.criteria;if(t!==i){if(t>i||void 0===t)return 1;if(t<i||void 0===i)return-1}return e.index-r.index}),"value")}function group(e,r){return function(t,i,n){var a=r?[[],[]]:{};return i=cb(i,n),each(t,function(r,n){var o=i(r,n,t);e(a,r,o)}),a}}var groupBy=group(function(e,r,t){has$1(e,t)?e[t].push(r):e[t]=[r]}),indexBy=group(function(e,r,t){e[t]=r}),countBy=group(function(e,r,t){has$1(e,t)?e[t]++:e[t]=1}),partition=group(function(e,r,t){e[t?0:1].push(r)},!0);function size(e){return null==e?0:isArrayLike(e)?e.length:keys(e).length}function keyInObj(e,r,t){return r in t}var pick=restArguments(function(e,r){var t={},i=r[0];if(null==e)return t;isFunction$1(i)?(r.length>1&&(i=optimizeCb(i,r[1])),r=allKeys(e)):(i=keyInObj,r=flatten$1(r,!1,!1),e=Object(e));for(var n=0,a=r.length;n<a;n++){var o=r[n],u=e[o];i(u,o,e)&&(t[o]=u)}return t}),omit=restArguments(function(e,r){var t,i=r[0];return isFunction$1(i)?(i=negate(i),r.length>1&&(t=r[1])):(r=map(flatten$1(r,!1,!1),String),i=function(e,t){return!contains(r,t)}),pick(e,i,t)});function initial(e,r,t){return slice.call(e,0,Math.max(0,e.length-(null==r||t?1:r)))}function first(e,r,t){return null==e||e.length<1?null==r||t?void 0:[]:null==r||t?e[0]:initial(e,e.length-r)}function rest(e,r,t){return slice.call(e,null==r||t?1:r)}function last(e,r,t){return null==e||e.length<1?null==r||t?void 0:[]:null==r||t?e[e.length-1]:rest(e,Math.max(0,e.length-r))}function compact(e){return filter(e,Boolean)}function flatten(e,r){return flatten$1(e,r,!1)}var difference=restArguments(function(e,r){return r=flatten$1(r,!0,!0),filter(e,function(e){return!contains(r,e)})}),without=restArguments(function(e,r){return difference(e,r)});function uniq(e,r,t,i){isBoolean(r)||(i=t,t=r,r=!1),null!=t&&(t=cb(t,i));for(var n=[],a=[],o=0,u=getLength(e);o<u;o++){var f=e[o],s=t?t(f,o,e):f;r&&!t?(o&&a===s||n.push(f),a=s):t?contains(a,s)||(a.push(s),n.push(f)):contains(n,f)||n.push(f)}return n}var union=restArguments(function(e){return uniq(flatten$1(e,!0,!0))});function intersection(e){for(var r=[],t=arguments.length,i=0,n=getLength(e);i<n;i++){var a=e[i];if(!contains(r,a)){var o;for(o=1;o<t&&contains(arguments[o],a);o++);o===t&&r.push(a)}}return r}function unzip(e){for(var r=e&&max(e,getLength).length||0,t=Array(r),i=0;i<r;i++)t[i]=pluck(e,i);return t}var zip=restArguments(unzip);function object(e,r){for(var t={},i=0,n=getLength(e);i<n;i++)r?t[e[i]]=r[i]:t[e[i][0]]=e[i][1];return t}function range(e,r,t){null==r&&(r=e||0,e=0),t||(t=r<e?-1:1);for(var i=Math.max(Math.ceil((r-e)/t),0),n=Array(i),a=0;a<i;a++,e+=t)n[a]=e;return n}function chunk(e,r){if(null==r||r<1)return[];for(var t=[],i=0,n=e.length;i<n;)t.push(slice.call(e,i,i+=r));return t}function chainResult(e,r){return e._chain?_$1(r).chain():r}function mixin(e){return each(functions(e),function(r){var t=_$1[r]=e[r];_$1.prototype[r]=function(){var e=[this._wrapped];return push.apply(e,arguments),chainResult(this,t.apply(_$1,e))}}),_$1}each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var r=ArrayProto[e];_$1.prototype[e]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),"shift"!==e&&"splice"!==e||0!==t.length||delete t[0]),chainResult(this,t)}}),each(["concat","join","slice"],function(e){var r=ArrayProto[e];_$1.prototype[e]=function(){var e=this._wrapped;return null!=e&&(e=r.apply(e,arguments)),chainResult(this,e)}});var allExports=Object.freeze({__proto__:null,VERSION:VERSION,after:after,all:every,allKeys:allKeys,any:some,assign:extendOwn,before:before,bind:bind,bindAll:bindAll,chain:chain,chunk:chunk,clone:clone,collect:map,compact:compact,compose:compose,constant:constant,contains:contains,countBy:countBy,create:create,debounce:debounce,default:_$1,defaults:defaults,defer:defer,delay:delay,detect:find,difference:difference,drop:rest,each:each,escape:escape,every:every,extend:extend,extendOwn:extendOwn,filter:filter,find:find,findIndex:findIndex,findKey:findKey,findLastIndex:findLastIndex,findWhere:findWhere,first:first,flatten:flatten,foldl:reduce,foldr:reduceRight,forEach:each,functions:functions,get:get,groupBy:groupBy,has:has,head:first,identity:identity,include:contains,includes:contains,indexBy:indexBy,indexOf:indexOf,initial:initial,inject:reduce,intersection:intersection,invert:invert,invoke:invoke,isArguments:isArguments$1,isArray:isArray,isArrayBuffer:isArrayBuffer,isBoolean:isBoolean,isDataView:isDataView$1,isDate:isDate,isElement:isElement,isEmpty:isEmpty,isEqual:isEqual,isError:isError,isFinite:isFinite$1,isFunction:isFunction$1,isMap:isMap,isMatch:isMatch,isNaN:isNaN$1,isNull:isNull,isNumber:isNumber,isObject:isObject,isRegExp:isRegExp,isSet:isSet,isString:isString,isSymbol:isSymbol,isTypedArray:isTypedArray$1,isUndefined:isUndefined,isWeakMap:isWeakMap,isWeakSet:isWeakSet,iteratee:iteratee,keys:keys,last:last,lastIndexOf:lastIndexOf,map:map,mapObject:mapObject,matcher:matcher,matches:matcher,max:max,memoize:memoize,methods:functions,min:min,mixin:mixin,negate:negate,noop:noop,now:now,object:object,omit:omit,once:once,pairs:pairs,partial:partial,partition:partition,pick:pick,pluck:pluck,property:property,propertyOf:propertyOf,random:random,range:range,reduce:reduce,reduceRight:reduceRight,reject:reject,rest:rest,restArguments:restArguments,result:result,sample:sample,select:filter,shuffle:shuffle,size:size,some:some,sortBy:sortBy,sortedIndex:sortedIndex,tail:rest,take:first,tap:tap,template:template,templateSettings:templateSettings,throttle:throttle,times:times,toArray:toArray,toPath:toPath$1,transpose:unzip,unescape:unescape$1,union:union,uniq:uniq,unique:uniq,uniqueId:uniqueId,unzip:unzip,values:values,where:where,without:without,wrap:wrap,zip:zip}),_=mixin(allExports);_._=_;var indexAll=Object.freeze({__proto__:null,VERSION:VERSION,after:after,all:every,allKeys:allKeys,any:some,assign:extendOwn,before:before,bind:bind,bindAll:bindAll,chain:chain,chunk:chunk,clone:clone,collect:map,compact:compact,compose:compose,constant:constant,contains:contains,countBy:countBy,create:create,debounce:debounce,default:_,defaults:defaults,defer:defer,delay:delay,detect:find,difference:difference,drop:rest,each:each,escape:escape,every:every,extend:extend,extendOwn:extendOwn,filter:filter,find:find,findIndex:findIndex,findKey:findKey,findLastIndex:findLastIndex,findWhere:findWhere,first:first,flatten:flatten,foldl:reduce,foldr:reduceRight,forEach:each,functions:functions,get:get,groupBy:groupBy,has:has,head:first,identity:identity,include:contains,includes:contains,indexBy:indexBy,indexOf:indexOf,initial:initial,inject:reduce,intersection:intersection,invert:invert,invoke:invoke,isArguments:isArguments$1,isArray:isArray,isArrayBuffer:isArrayBuffer,isBoolean:isBoolean,isDataView:isDataView$1,isDate:isDate,isElement:isElement,isEmpty:isEmpty,isEqual:isEqual,isError:isError,isFinite:isFinite$1,isFunction:isFunction$1,isMap:isMap,isMatch:isMatch,isNaN:isNaN$1,isNull:isNull,isNumber:isNumber,isObject:isObject,isRegExp:isRegExp,isSet:isSet,isString:isString,isSymbol:isSymbol,isTypedArray:isTypedArray$1,isUndefined:isUndefined,isWeakMap:isWeakMap,isWeakSet:isWeakSet,iteratee:iteratee,keys:keys,last:last,lastIndexOf:lastIndexOf,map:map,mapObject:mapObject,matcher:matcher,matches:matcher,max:max,memoize:memoize,methods:functions,min:min,mixin:mixin,negate:negate,noop:noop,now:now,object:object,omit:omit,once:once,pairs:pairs,partial:partial,partition:partition,pick:pick,pluck:pluck,property:property,propertyOf:propertyOf,random:random,range:range,reduce:reduce,reduceRight:reduceRight,reject:reject,rest:rest,restArguments:restArguments,result:result,sample:sample,select:filter,shuffle:shuffle,size:size,some:some,sortBy:sortBy,sortedIndex:sortedIndex,tail:rest,take:first,tap:tap,template:template,templateSettings:templateSettings,throttle:throttle,times:times,toArray:toArray,toPath:toPath$1,transpose:unzip,unescape:unescape$1,union:union,uniq:uniq,unique:uniq,uniqueId:uniqueId,unzip:unzip,values:values,where:where,without:without,wrap:wrap,zip:zip}),require$$1=_commonjsHelpers.getAugmentedNamespace(indexAll),minisat_wrapper,hasRequiredMinisat_wrapper,logicSolver$1,hasRequiredLogicSolver;function requireMinisat_wrapper(){if(hasRequiredMinisat_wrapper)return minisat_wrapper;hasRequiredMinisat_wrapper=1;var e,r=requireMinisat(),t=require$$1;return(e=function(){var e=this._C=r();this._native={getStackPointer:function(){return e.Runtime.stackSave()},setStackPointer:function(r){e.Runtime.stackRestore(r)},allocateBytes:function(r){return e.allocate(r,"i8",e.ALLOC_STACK)},pushString:function(r){return this.allocateBytes(e.intArrayFromString(r))},savingStack:function(r){var t=this.getStackPointer();try{return r(this,e)}finally{this.setStackPointer(t)}}},e._createTheSolver(),this._clauses=[]}).prototype.ensureVar=function(e){this._C._ensureVar(e)},e.prototype.addClause=function(e){return this._clauses.push(e),this._native.savingStack(function(r,i){var n=i.allocate(4*(e.length+1),"i32",i.ALLOC_STACK);return t.each(e,function(e,r){i.setValue(n+4*r,e,"i32")}),i.setValue(n+4*e.length,0,"i32"),!!i._addClause(n)})},e.prototype.solve=function(){return!!this._C._solve()},e.prototype.solveAssuming=function(e){return!!this._C._solveAssuming(e)},e.prototype.getSolution=function(){for(var e=[null],r=this._C,t=r._getNumVars(),i=r._getSolution(),n=0;n<t;n++)e[n+1]=0===r.getValue(i+n,"i8");return e},e.prototype.retireVar=function(e){this._C._retireVar(e)},e.prototype.getConflictClause=function(){for(var e=this._C,r=e._getConflictClauseSize(),t=e._getConflictClause(),i=[],n=0;n<r;n++){var a=e.getValue(t+4*n,"i32"),o=a>>>1,u=1&a?-1:1;i[n]=o*u}return i},minisat_wrapper=e}function requireLogicSolver(){if(hasRequiredLogicSolver)return logicSolver$1;hasRequiredLogicSolver=1;var e,r=requireMinisat_wrapper(),t=require$$1,i=function(e,r){return r.description=e,r},n=function(e,r,t){return i(e,function(e){return e instanceof r[t]})};(e={}).isNumTerm=i("a NumTerm (non-zero integer)",function(e){return e===(0|e)&&0!==e}),e.isNameTerm=i("a NameTerm (string)",function(e){return"string"==typeof e&&!/^-*[0-9]*$/.test(e)}),e.isTerm=i("a Term (appropriate string or number)",function(r){return e.isNumTerm(r)||e.isNameTerm(r)}),e.isWholeNumber=i("a whole number (integer >= 0)",function(e){return e===(0|e)&&e>=0}),e.isFormula=n("a Formula",e,"Formula"),e.isClause=n("a Clause",e,"Clause"),e.isBits=n("a Bits",e,"Bits"),e._isInteger=i("an integer",function(e){return e===(0|e)}),e._isFunction=i("a Function",function(e){return"function"==typeof e}),e._isString=i("a String",function(e){return"string"==typeof e}),e._isArrayWhere=function(e){var r="an array";return e.description&&(r+=" of "+e.description),i(r,function(r){if(t.isArray(r)){for(var i=0;i<r.length;i++)if(!e(r[i]))return!1;return!0}return!1})},e._isFormulaOrTerm=i("a Formula or Term",function(r){return e.isFormula(r)||e.isTerm(r)}),e._isFormulaOrTermOrBits=i("a Formula, Term, or Bits",function(r){return e.isFormula(r)||e.isBits(r)||e.isTerm(r)}),e._MiniSat=r;var a=e._isInteger,o=e._isFunction,u=e._isString,f=e._isArrayWhere,s=e._isFormulaOrTerm,l=e._isFormulaOrTermOrBits;e._assert=function(e,r,t){if(!r(e)){var i="string"==typeof e?JSON.stringify(e):e;throw new Error(i+" is not "+(r.description||t))}};var c=function(e,r,t){if(e!==r)throw new Error("Expected "+r+" args in "+t+", got "+e)},h=e._assert;e._assertIfEnabled=function(e,r,t){h&&h(e,r,t)},e.disablingAssertions=function(e){var r=h;try{return h=null,e()}finally{h=r}},e._disablingTypeChecks=e.disablingAssertions,e.not=function(r){return h&&h(r,s),r instanceof e.Formula?new e.NotFormula(r):"number"==typeof r?-r:"-"===r.charAt(0)?r.slice(1):"-"+r},e.NAME_FALSE="$F",e.NAME_TRUE="$T",e.NUM_FALSE=1,e.NUM_TRUE=2,e.TRUE=e.NAME_TRUE,e.FALSE=e.NAME_FALSE,e.Formula=function(){},e._defineFormula=function(r,i,n){h&&h(r,o),h&&h(i,u),r.prototype=new e.Formula,r.prototype.type=i,n&&t.extend(r.prototype,n)},e.Formula.prototype.generateClauses=function(e,r){throw new Error("Cannot generate this Formula; it must be expanded")},e.Formula._nextGuid=1,e.Formula.prototype._guid=null,e.Formula.prototype.guid=function(){return null===this._guid&&(this._guid=e.Formula._nextGuid++),this._guid},e.Clause=function(){var r=t.flatten(arguments);h&&h(r,f(e.isNumTerm)),this.terms=r},e.Clause.prototype.append=function(){return new e.Clause(this.terms.concat(t.flatten(arguments)))};var d=function(){this.varName=null,this.varNum=null,this.occursPositively=!1,this.occursNegatively=!1,this.isRequired=!1,this.isForbidden=!1};e.Termifier=function(e){this.solver=e},e.Termifier.prototype.clause=function(){var r=this,i=t.flatten(arguments);return h&&h(i,f(s)),new e.Clause(t.map(i,function(e){return r.term(e)}))},e.Termifier.prototype.term=function(e){return this.solver._formulaToTerm(e)},e.Termifier.prototype.generate=function(e,r){return this.solver._generateFormula(e,r,this)},e.Solver=function(){var t=this;t.clauses=[],t._num2name=[null],t._name2num={};var i=t.getVarNum(e.NAME_FALSE,!1,!0),n=t.getVarNum(e.NAME_TRUE,!1,!0);if(i!==e.NUM_FALSE||n!==e.NUM_TRUE)throw new Error("Assertion failure: $T and $F have wrong numeric value");t._F_used=!1,t._T_used=!1,t.clauses.push(new e.Clause(-e.NUM_FALSE)),t.clauses.push(new e.Clause(e.NUM_TRUE)),t._formulaInfo={},t._nextFormulaNumByType={},t._ungeneratedFormulas={},t._numClausesAddedToMiniSat=0,t._unsat=!1,t._minisat=new r,t._termifier=new e.Termifier(t)},e.Solver.prototype.getVarNum=function(e,r,i){var n=" "+e;if(t.has(this._name2num,n))return this._name2num[n];if(r)return 0;if("$"===e.charAt(0)&&!i)throw new Error("Only generated variable names can start with $");var a=this._num2name.length;return this._name2num[n]=a,this._num2name.push(e),a},e.Solver.prototype.getVarName=function(e){h&&h(e,a);var r=this._num2name;if(e<1||e>=r.length)throw new Error("Bad variable num: "+e);return r[e]},e.Solver.prototype.toNumTerm=function(r,t){if(h&&h(r,e.isTerm),"number"==typeof r)return r;for(var i=!1;"-"===r.charAt(0);)r=r.slice(1),i=!i;var n=this.getVarNum(r,t);return n?i?-n:n:0},e.Solver.prototype.toNameTerm=function(r){if(h&&h(r,e.isTerm),"string"==typeof r){for(;"--"===r.slice(0,2);)r=r.slice(2);return r}var t=!1;return r<0&&(t=!0,r=-r),r=this.getVarName(r),t&&(r="-"+r),r},e.Solver.prototype._addClause=function(r,t,i){h&&h(r,e.isClause);var n=null;t&&(n=t,h&&h(n,f(e.isNumTerm)));var a=!1,o=!1,u=r.terms.length;n&&(r=r.append(n));for(var s=0;s<r.terms.length;s++){var l=r.terms[s],c=l<0?-l:l;if(c===e.NUM_FALSE)a=!0;else if(c===e.NUM_TRUE)o=!0;else{if(c<1||c>=this._num2name.length)throw new Error("Bad variable number: "+c);s<u&&(i?i(l):this._useFormulaTerm(l))}}this._F_used=this._F_used||a,this._T_used=this._T_used||o,this.clauses.push(r)},e.Solver.prototype._useFormulaTerm=function(r,i){var n=this;h&&h(r,e.isNumTerm);var a=r<0?-r:r;if(t.has(n._ungeneratedFormulas,a)){var o,u=n._ungeneratedFormulas[a],f=n._getFormulaInfo(u),s=r>0,l=null;if(i?o=i:(l=[],o=function(e,r){l.push({clauses:e,extraTerms:r})}),s&&!f.occursPositively){f.occursPositively=!0;var c=n._generateFormula(!0,u);o(c,[-a])}else if(!s&&!f.occursNegatively){f.occursNegatively=!0;c=n._generateFormula(!1,u);o(c,[a])}if(f.occursPositively&&f.occursNegatively&&delete n._ungeneratedFormulas[a],l&&l.length)for(var d=function(e){n._useFormulaTerm(e,o)};l.length;){var _=l.pop();n._addClauses(_.clauses,_.extraTerms,d)}}},e.Solver.prototype._addClauses=function(r,i,n){h&&h(r,f(e.isClause));var a=this;t.each(r,function(e){a._addClause(e,i,n)})},e.Solver.prototype.require=function(){this._requireForbidImpl(!0,t.flatten(arguments))},e.Solver.prototype.forbid=function(){this._requireForbidImpl(!1,t.flatten(arguments))},e.Solver.prototype._requireForbidImpl=function(r,i){var n=this;h&&h(i,f(s)),t.each(i,function(t){if(t instanceof e.NotFormula)n._requireForbidImpl(!r,[t.operand]);else if(t instanceof e.Formula){var i=n._getFormulaInfo(t);if(null!==i.varNum){var a=r?1:-1;n._addClause(new e.Clause(a*i.varNum))}else n._addClauses(n._generateFormula(r,t));r?i.isRequired=!0:i.isForbidden=!0}else n._addClauses(n._generateFormula(r,t))})},e.Solver.prototype._generateFormula=function(r,i,n){var a=this;if(h&&h(i,s),i instanceof e.NotFormula)return a._generateFormula(!r,i.operand);if(i instanceof e.Formula){var o=a._getFormulaInfo(i);if(r&&o.isRequired||!r&&o.isForbidden)return[];if(r&&o.isForbidden||!r&&o.isRequired)return[new e.Clause];var u=i.generateClauses(r,n||a._termifier);return t.isArray(u)?u:[u]}var f=a.toNumTerm(i),l=r?1:-1;return f===l*e.NUM_TRUE||f===-l*e.NUM_FALSE?[]:f===l*e.NUM_FALSE||f===-l*e.NUM_TRUE?[new e.Clause]:[new e.Clause(l*f)]},e.Solver.prototype._clauseData=function(){var e=t.pluck(this.clauses,"terms");return this._T_used||e.splice(1,1),this._F_used||e.splice(0,1),e},e.Solver.prototype._clauseStrings=function(){var e=this,r=e._clauseData();return t.map(r,function(r){return t.map(r,function(r){var t=e.toNameTerm(r);if(/\s/.test(t)){var i="";"-"===t.charAt(0)&&(i="-",t=t.slice(1)),t=i+'"'+t+'"'}return t}).join(" v ")})},e.Solver.prototype._getFormulaInfo=function(e,r){var t=this,i=e.guid();if(!t._formulaInfo[i]){if(r)return null;t._formulaInfo[i]=new d}return t._formulaInfo[i]},e.Solver.prototype._formulaToTerm=function(r){var i=this;if(t.isArray(r))return h&&h(r,f(s)),t.map(r,t.bind(i._formulaToTerm,i));if(h&&h(r,s),r instanceof e.NotFormula)return e.not(i._formulaToTerm(r.operand));if(r instanceof e.Formula){var n=this._getFormulaInfo(r);if(n.isRequired)return e.NUM_TRUE;if(n.isForbidden)return e.NUM_FALSE;if(null===n.varNum){var a=r.type;this._nextFormulaNumByType[a]||(this._nextFormulaNumByType[a]=1);var o=this._nextFormulaNumByType[a]++;n.varName="$"+r.type+o,n.varNum=this.getVarNum(n.varName,!1,!0),this._ungeneratedFormulas[n.varNum]=r}return n.varNum}return i.toNumTerm(r)},e.or=function(){var r=t.flatten(arguments);return 0===r.length?e.FALSE:1===r.length?(h&&h(r[0],s),r[0]):new e.OrFormula(r)},e.OrFormula=function(e){h&&h(e,f(s)),this.operands=e},e._defineFormula(e.OrFormula,"or",{generateClauses:function(e,r){if(e)return r.clause(this.operands);var i=[];return t.each(this.operands,function(e){i.push.apply(i,r.generate(!1,e))}),i}}),e.NotFormula=function(e){h&&h(e,s),this.operand=e},e._defineFormula(e.NotFormula,"not"),e.and=function(){var r=t.flatten(arguments);return 0===r.length?e.TRUE:1===r.length?(h&&h(r[0],s),r[0]):new e.AndFormula(r)},e.AndFormula=function(e){h&&h(e,f(s)),this.operands=e},e._defineFormula(e.AndFormula,"and",{generateClauses:function(r,i){if(r){var n=[];return t.each(this.operands,function(e){n.push.apply(n,i.generate(!0,e))}),n}return i.clause(t.map(this.operands,e.not))}});var _=function(e,r){for(var t=[],i=0;i<e.length;i+=r)t.push(e.slice(i,i+r));return t};e.xor=function(){var r=t.flatten(arguments);return 0===r.length?e.FALSE:1===r.length?(h&&h(r[0],s),r[0]):new e.XorFormula(r)},e.XorFormula=function(e){h&&h(e,f(s)),this.operands=e},e._defineFormula(e.XorFormula,"xor",{generateClauses:function(r,i){var n=this.operands,a=e.not;if(n.length>3)return i.generate(r,e.xor(t.map(_(this.operands,3),function(r){return e.xor(r)})));if(r){if(0===n.length)return i.clause();if(1===n.length)return i.clause(n[0]);if(2===n.length){var o=n[0],u=n[1];return[i.clause(o,u),i.clause(a(o),a(u))]}if(3===n.length){o=n[0],u=n[1];var f=n[2];return[i.clause(o,u,f),i.clause(o,a(u),a(f)),i.clause(a(o),u,a(f)),i.clause(a(o),a(u),f)]}}else{if(0===n.length)return[];if(1===n.length)return i.clause(a(n[0]));if(2===n.length){o=n[0],u=n[1];return[i.clause(o,a(u)),i.clause(a(o),u)]}if(3===n.length){o=n[0],u=n[1],f=n[2];return[i.clause(a(o),a(u),a(f)),i.clause(a(o),u,f),i.clause(o,a(u),f),i.clause(o,u,a(f))]}}}}),e.atMostOne=function(){var r=t.flatten(arguments);return r.length<=1?e.TRUE:new e.AtMostOneFormula(r)},e.AtMostOneFormula=function(e){h&&h(e,f(s)),this.operands=e},e._defineFormula(e.AtMostOneFormula,"atMostOne",{generateClauses:function(r,i){var n=this.operands,a=e.not;if(n.length<=1)return[];if(2===n.length)return i.generate(r,e.not(e.and(n)));if(r&&3===n.length){for(var o=[],u=0;u<n.length;u++)for(var f=u+1;f<n.length;f++)o.push(i.clause(a(n[u]),a(n[f])));return o}if(r||3!==n.length){var s=_(n,3),l=t.map(s,function(r){return e.or(r)});s[s.length-1].length<2&&s.pop();var c=t.map(s,function(r){return e.atMostOne(r)});return i.generate(r,e.and(e.atMostOne(l),c))}var h=n[0],d=n[1],p=n[2];return[i.clause(h,d),i.clause(h,p),i.clause(d,p)]}}),e.implies=function(r,t){return h&&c(arguments.length,2,"Logic.implies"),new e.ImpliesFormula(r,t)},e.ImpliesFormula=function(e,r){h&&h(e,s),h&&h(r,s),h&&c(arguments.length,2,"Logic.implies"),this.A=e,this.B=r},e._defineFormula(e.ImpliesFormula,"implies",{generateClauses:function(r,t){return t.generate(r,e.or(e.not(this.A),this.B))}}),e.equiv=function(r,t){return h&&c(arguments.length,2,"Logic.equiv"),new e.EquivFormula(r,t)},e.EquivFormula=function(e,r){h&&h(e,s),h&&h(r,s),h&&c(arguments.length,2,"Logic.equiv"),this.A=e,this.B=r},e._defineFormula(e.EquivFormula,"equiv",{generateClauses:function(r,t){return t.generate(!r,e.xor(this.A,this.B))}}),e.exactlyOne=function(){var r=t.flatten(arguments);return 0===r.length?e.FALSE:1===r.length?(h&&h(r[0],s),r[0]):new e.ExactlyOneFormula(r)},e.ExactlyOneFormula=function(e){h&&h(e,f(s)),this.operands=e},e._defineFormula(e.ExactlyOneFormula,"exactlyOne",{generateClauses:function(r,t){var i=this.operands;return i.length<3?t.generate(r,e.xor(i)):t.generate(r,e.and(e.atMostOne(i),e.or(i)))}}),e.Bits=function(e){h&&h(e,f(s)),this.bits=e},e.constantBits=function(r){h&&h(r,e.isWholeNumber);for(var t=[];r;)t.push(1&r?e.TRUE:e.FALSE),r>>>=1;return new e.Bits(t)},e.variableBits=function(r,t){h&&h(t,e.isWholeNumber);for(var i=[],n=0;n<t;n++)i.push(r+"$"+n);return new e.Bits(i)},e.lessThanOrEqual=function(r,t){return new e.LessThanOrEqualFormula(r,t)},e.LessThanOrEqualFormula=function(r,t){h&&h(r,e.isBits),h&&h(t,e.isBits),h&&c(arguments.length,2,"Bits comparison function"),this.bits1=r,this.bits2=t};var p=function(r,i,n,a){var o=[],u=r.bits.slice(),f=i.bits.slice();if(a&&!i.bits.length)return n.clause();for(;u.length>f.length;){var s=u.pop();o.push(n.clause(e.not(s)))}for(var l=t.map(f,function(r,t){return t<u.length?e.xor(u[t],r):r}),c=u.length-1;c>=0;c--)o.push(n.clause(l.slice(c+1),e.not(u[c]),f[c]));return a&&o.push.apply(o,n.generate(!0,e.or(l))),o};e._defineFormula(e.LessThanOrEqualFormula,"lte",{generateClauses:function(e,r){return e?p(this.bits1,this.bits2,r,!1):p(this.bits2,this.bits1,r,!0)}}),e.lessThan=function(r,t){return new e.LessThanFormula(r,t)},e.LessThanFormula=function(r,t){h&&h(r,e.isBits),h&&h(t,e.isBits),h&&c(arguments.length,2,"Bits comparison function"),this.bits1=r,this.bits2=t},e._defineFormula(e.LessThanFormula,"lt",{generateClauses:function(e,r){return e?p(this.bits1,this.bits2,r,!0):p(this.bits2,this.bits1,r,!1)}}),e.greaterThan=function(r,t){return e.lessThan(t,r)},e.greaterThanOrEqual=function(r,t){return e.lessThanOrEqual(t,r)},e.equalBits=function(r,t){return new e.EqualBitsFormula(r,t)},e.EqualBitsFormula=function(r,t){h&&h(r,e.isBits),h&&h(t,e.isBits),h&&c(arguments.length,2,"Logic.equalBits"),this.bits1=r,this.bits2=t},e._defineFormula(e.EqualBitsFormula,"equalBits",{generateClauses:function(r,t){for(var i=this.bits1.bits,n=this.bits2.bits,a=Math.max(i.length,n.length),o=[],u=0;u<a;u++)u>=i.length?o.push(e.not(n[u])):u>=n.length?o.push(e.not(i[u])):o.push(e.equiv(i[u],n[u]));return t.generate(r,e.and(o))}}),e.HalfAdderSum=function(e,r){h&&h(e,s),h&&h(r,s),h&&c(arguments.length,2,"Logic.HalfAdderSum"),this.a=e,this.b=r},e._defineFormula(e.HalfAdderSum,"hsum",{generateClauses:function(r,t){return t.generate(r,e.xor(this.a,this.b))}}),e.HalfAdderCarry=function(e,r){h&&h(e,s),h&&h(r,s),h&&c(arguments.length,2,"Logic.HalfAdderCarry"),this.a=e,this.b=r},e._defineFormula(e.HalfAdderCarry,"hcarry",{generateClauses:function(r,t){return t.generate(r,e.and(this.a,this.b))}}),e.FullAdderSum=function(e,r,t){h&&h(e,s),h&&h(r,s),h&&h(t,s),h&&c(arguments.length,3,"Logic.FullAdderSum"),this.a=e,this.b=r,this.c=t},e._defineFormula(e.FullAdderSum,"fsum",{generateClauses:function(r,t){return t.generate(r,e.xor(this.a,this.b,this.c))}}),e.FullAdderCarry=function(e,r,t){h&&h(e,s),h&&h(r,s),h&&h(t,s),h&&c(arguments.length,3,"Logic.FullAdderCarry"),this.a=e,this.b=r,this.c=t},e._defineFormula(e.FullAdderCarry,"fcarry",{generateClauses:function(r,t){return t.generate(!r,e.atMostOne(this.a,this.b,this.c))}});var m=function(r){h&&h(r,f(f(s)));for(var i=t.map(r,t.clone),n=0,a=[];n<i.length;){var o=i[n];if(o.length)if(1===o.length)a.push(o[0]),n++;else if(2===o.length){var u=new e.HalfAdderSum(o[0],o[1]),l=new e.HalfAdderCarry(o[0],o[1]);o.length=0,o.push(u),g(i,n+1,l)}else{var c=o.pop(),d=o.pop(),_=o.pop();u=new e.FullAdderSum(_,d,c),l=new e.FullAdderCarry(_,d,c);o.push(u),g(i,n+1,l)}else a.push(e.FALSE),n++}return a},g=function(e,r,t){for(;r>=e.length;)e.push([]);e[r].push(t)},v=function(r,t){if(h&&h(r,f(s)),"number"==typeof t)h&&h(t,e.isWholeNumber);else if(h&&h(t,f(e.isWholeNumber)),r.length!==t.length)throw new Error("Formula array and weight array must be same length; they are "+r.length+" and "+t.length)};e.weightedSum=function(r,i){if(v(r,i),0===r.length)return new e.Bits([]);"number"==typeof i&&(i=t.map(r,function(){return i}));var n=[];return t.each(r,function(e,r){for(var t=i[r],a=0;t;)1&t&&g(n,a,e),t>>>=1,a++}),new e.Bits(m(n))},e.sum=function(){var r=t.flatten(arguments);h&&h(r,f(l));var i=[];return t.each(r,function(r){r instanceof e.Bits?t.each(r.bits,function(e,r){g(i,r,e)}):g(i,0,r)}),new e.Bits(m(i))},e.Solver.prototype.solve=function(r){var t=this;if(void 0!==r&&!(r>=1))throw new Error("_assumpVar must be a variable number");if(t._unsat)return null;for(;t._numClausesAddedToMiniSat<t.clauses.length;){var i=t._numClausesAddedToMiniSat,n=t.clauses[i].terms;h&&h(n,f(e.isNumTerm));var a=t._minisat.addClause(n);if(t._numClausesAddedToMiniSat++,!a)return t._unsat=!0,null}return h&&h(this._num2name.length-1,e.isWholeNumber),t._minisat.ensureVar(this._num2name.length-1),(a=r?t._minisat.solveAssuming(r):t._minisat.solve())?new e.Solution(t,t._minisat.getSolution()):(r||(t._unsat=!0),null)},e.Solver.prototype.solveAssuming=function(r){h&&h(r,s);var t=new e.Assumption(r),i=this._formulaToTerm(t);if(!("number"==typeof i&&i>0))throw new Error("Assertion failure: not a positive numeric term");this._useFormulaTerm(i);var n=this.solve(i);return this._minisat.retireVar(i),n},e.Assumption=function(e){h&&h(e,s),this.formula=e},e._defineFormula(e.Assumption,"assump",{generateClauses:function(r,t){return r?t.clause(this.formula):t.clause(e.not(this.formula))}}),e.Solution=function(r,i){var n=this;n._solver=r,n._assignment=i,n._ungeneratedFormulas=t.clone(r._ungeneratedFormulas),n._formulaValueCache={},n._termifier=new e.Termifier(n._solver),n._termifier.term=function(r){return n.evaluate(r)?e.NUM_TRUE:e.NUM_FALSE},n._ignoreUnknownVariables=!1},e.Solution.prototype.ignoreUnknownVariables=function(){this._ignoreUnknownVariables=!0},e.Solution.prototype.getMap=function(){for(var e=this._solver,r=this._assignment,t={},i=1;i<r.length;i++){var n=e.getVarName(i);n&&"$"!==n.charAt(0)&&(t[n]=r[i])}return t},e.Solution.prototype.getTrueVars=function(){for(var e=this._solver,r=this._assignment,t=[],i=1;i<r.length;i++)if(r[i]){var n=e.getVarName(i);n&&"$"!==n.charAt(0)&&t.push(n)}return t.sort(),t},e.Solution.prototype.getFormula=function(){for(var r=this._solver,t=this._assignment,i=[],n=1;n<t.length;n++){var a=r.getVarName(n);a&&"$"!==a.charAt(0)&&i.push(t[n]?n:-n)}return e.and(i)},e.Solution.prototype.evaluate=function(r){var i=this;if(h&&h(r,l),r instanceof e.Bits){var n=0;return t.each(r.bits,function(e,r){i.evaluate(e)&&(n+=1<<r)}),n}var a=i._solver,o=i._ignoreUnknownVariables,u=i._assignment,f=r;if(f instanceof e.NotFormula)return!i.evaluate(f.operand);if(f instanceof e.Formula){var s=i._formulaValueCache[f.guid()];if("boolean"==typeof s)return s;var c=a._getFormulaInfo(f,!0);if(c&&c.varNum&&c.varNum<u.length&&!t.has(i._ungeneratedFormulas,c.varNum))_=u[c.varNum];else var d=a._generateFormula(!0,f,i._termifier),_=t.all(d,function(e){return t.any(e.terms,function(e){return i.evaluate(e)})});return i._formulaValueCache[f.guid()]=_,_}var p=a.toNumTerm(f,!0);if(!p){if(o)return!1;var m=String(f).replace(/^-*/,"");throw new Error("No such variable: "+m)}var g=p,v=!1;if(p<0&&(g=-g,v=!0),g<1||g>=u.length){m=g;if(g>=1&&g<a._num2name.length&&(m=a._num2name[g]),o)return!1;throw new Error("Variable not part of solution: "+m)}n=u[g];return v&&(n=!n),n},e.Solution.prototype.getWeightedSum=function(e,r){v(e,r);var t=0;if("number"==typeof r)for(var i=0;i<e.length;i++)t+=r*(this.evaluate(e[i])?1:0);else for(i=0;i<e.length;i++)t+=r[i]*(this.evaluate(e[i])?1:0);return t};var b=function(e,r){if("number"==typeof r)return r?e:[];for(var t=[],i=0;i<e.length;i++)r[i]&&t.push(e[i]);return t},y=function(r,t,i,n,a,o){var u=t,f=u.getWeightedSum(i,n),s=a&&a.formula||e.weightedSum(i,n),l=a&&a.progress,c=a&&a.strategy,h=null;if(o&&f>0){l&&l("trying",0);var d=null;h=b(i,n),(d=r.solveAssuming(e.not(e.or(h))))&&(u=d,f=0)}if(o&&"bottom-up"===c)for(var _=1;_<f;_++){l&&l("trying",_);var p=e.equalBits(s,e.constantBits(_));if(m=r.solveAssuming(p)){u=m,f=_;break}}else{if(c&&"default"!==c)throw new Error("Bad strategy: "+c);c="default"}if("default"===c)for(;!o||f>0;){l&&l("improving",f);var m,g=(o?e.lessThan:e.greaterThan)(s,e.constantBits(f));if(!(m=r.solveAssuming(g)))break;r.require(g),f=(u=m).getWeightedSum(i,n)}return o&&0===f?(h||(h=b(i,n)),r.forbid(h)):r.require(e.equalBits(s,e.constantBits(f))),l&&l("finished",f),u};return e.Solver.prototype.minimizeWeightedSum=function(e,r,t,i){return y(this,e,r,t,i,!0)},e.Solver.prototype.maximizeWeightedSum=function(e,r,t,i){return y(this,e,r,t,i,!1)},logicSolver$1=e}var logicSolverExports=requireLogicSolver(),logicSolver=_mergeNamespaces({__proto__:null},[logicSolverExports]);const{Solver:Solver,exactlyOne:exactlyOne,atMostOne:atMostOne,implies:implies,or:or}=logicSolver;async function solveSat(e,r){const t=e.root.dependencies.concat(e.root.devDependencies);await resolveDependencies(t,r);const i=await optimizeResolved(r.graph,t),n=new Solver;for(const[e,t]of r){const{registered:r}=t,a=i.includes(e),o=r.map(e=>e.id);a?n.require(exactlyOne(...o)):n.require(atMostOne(...o))}const a=[...r].reverse();for(const[e,t]of a){const{registered:e}=t;for(const t of e)for(const e of t.dependencies){const i=r.graph.get(e.name);require$$5.ok(i,`Dependency "${e.name}" hasn't been resolved`);const a=getMatching(e,i);n.require(implies(t.id,or(...a)))}}const o=n.solve();if(!o)throw new Error("Failed to resolve dependency graph for given manifest");return o.getTrueVars().map(e=>r.getRegistration(e)).filter(function(e){return null!=e})}async function resolveDependencies(e,r){const t=await Promise.all(e.map(e=>r.get(e)));for(const e of t){const{registered:t}=e;await Promise.all(t.map(e=>resolveDependencies(e.dependencies,r)))}}async function optimizeResolved(e,r){const t=[],i={};for(const e of r){const{name:r}=e;t.push(r),index.isRegistryDependency(e)&&(i[r]=e.version)}for(const[r,t]of e){const{registered:e}=t,n=i[r]||project.unique(t.range).join(" || ");t.registered=e.filter(e=>index$1.semverExports.satisfies(e.version,n)).reverse()}return t}function getMatching(e,r){const{registered:t}=r;if(index.isRegistryDependency(e)){const{version:r}=e;return t.filter(e=>index$1.semverExports.satisfies(e.version,r)).map(e=>e.id)}return[]}exports.optimizeResolved=optimizeResolved,exports.resolveDependencies=resolveDependencies,exports.solveSat=solveSat;
|