web播放amr格式音频/微信语音amr播放器/JS播放amr
首先来认识下AMR:
AMR 是一种文件格式,存储AMR 语音编码文件. 很多手机允许用户存储短时间的AMR 格式录音。但是AMR也是一种语音格式,并未针对其他声音进行优化。普通文件扩展名是 .amr。
因amr为音频文件格式,所以能够打开amr文件的软件有很多,电脑上很多软件都可以直接打开,但在web网页HTML5是不能直接打开的,很多网友说用ffmpeg转成MP3再audio标签来播放,这是可行的,但总感觉转后音质比不上原音高,所以作者还是拼命去找解决方法直接在网页上播放amr格式音频。呵呵——还是被找到了,就是利用JS解码然后再播放,感觉amr-js开发者,参考官网:https://www.npmjs.com/package/amr-js
现在我们开始说说怎么播放amr语音吧。
一、本人的web环境是IIS,IIS默认是不支持amr格式的,所以首先我得先加MIME类型,方法:
1.打开Internet 信息服务(IIS)
2.进入IIS管理界面,选择要设置的网站
3.在站点对应的主页下面iis,双击mime类型
4.打开mime类型界面,点击右上角的“添加”
5.输入文件扩展名:.amr, MIME类型为: audio/amr,确定保存即可。
二、下载BenzAMRRecorder.min.js,下载地址:https://benzleung.github.io/benz-amr-recorder/demo.html,下载完后按上面官网教程进行操作,这里我简单缕缕几行代码:
var amr = new BenzAMRRecorder(); amr.initWithUrl(url); //url为amr音频地址,比如:./audio/123.amr amr.onEnded(function() { //监听结束后执行代码 }); amr.onPlay(function () { //监听播放后执行代码 }); amr.onPause(function () { //监听暂停后执行代码 }); amr.onResume(function () { //监听中断后执行代码 }); //下面是常用操作 amr.play(); //播放 amr.pause(); //暂停 amr.stop(); //停止 amr.playOrPauseOrResume(); //播放或暂停切换
来源 :http://www.hilo8.com/index/share/thread?id=1671
引用js文件 BenzAMRRecorder.min.js
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.BenzAMRRecorder = factory()); })(this, (function () { function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; var recorder_build = {exports: {}}; (function (module, exports) { (function (global, factory) { module.exports = factory() ; }(commonjsGlobal, (function () { var recorderWorker = function () { var recLength = 0, recBuffersL = [], recBuffersR = [], sampleRate; self.onmessage = function (e) { switch (e.data.command) { case 'init': init(e.data.config); break; case 'record': record(e.data.buffer); break; case 'exportWAV': exportWAV(e.data.type); break; case 'getBuffer': getBuffer(); break; case 'clear': clear(); break; } }; function init(config) { sampleRate = config.sampleRate; } function record(inputBuffer) { recBuffersL.push(inputBuffer[0]); recBuffersR.push(inputBuffer[1]); recLength += inputBuffer[0].length; } function exportWAV(type) { var bufferL = mergeBuffers(recBuffersL, recLength); var bufferR = mergeBuffers(recBuffersR, recLength); var interleaved = interleave(bufferL, bufferR); var dataview = encodeWAV(interleaved); var audioBlob = new Blob([dataview], {type: type}); self.postMessage({ type: 'blob', data: audioBlob }); } function getBuffer() { var buffers = []; buffers.push(mergeBuffers(recBuffersL, recLength)); buffers.push(mergeBuffers(recBuffersR, recLength)); self.postMessage({ type: 'buffer', data: buffers }); } function clear() { recLength = 0; recBuffersL = []; recBuffersR = []; } function mergeBuffers(recBuffers, recLength) { var result = new Float32Array(recLength); var offset = 0; for (var i = 0; i < recBuffers.length; i++) { result.set(recBuffers[i], offset); offset += recBuffers[i].length; } return result; } function interleave(inputL, inputR) { var length = inputL.length + inputR.length; var result = new Float32Array(length); var index = 0, inputIndex = 0; while (index < length) { result[index++] = inputL[inputIndex]; result[index++] = inputR[inputIndex]; inputIndex++; } return result; } function floatTo16BitPCM(output, offset, input) { for (var i = 0; i < input.length; i++, offset += 2) { var s = Math.max(-1, Math.min(1, input[i])); output.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true); } } function writeString(view, offset, string) { for (var i = 0; i < string.length; i++) { view.setUint8(offset + i, string.charCodeAt(i)); } } function encodeWAV(samples) { var buffer = new ArrayBuffer(44 + samples.length * 2); var view = new DataView(buffer); /* RIFF identifier */ writeString(view, 0, 'RIFF'); /* RIFF chunk length */ view.setUint32(4, 36 + samples.length * 2, true); /* RIFF type */ writeString(view, 8, 'WAVE'); /* format chunk identifier */ writeString(view, 12, 'fmt '); /* format chunk length */ view.setUint32(16, 16, true); /* sample format (raw) */ view.setUint16(20, 1, true); /* channel count */ view.setUint16(22, 2, true); /* sample rate */ view.setUint32(24, sampleRate, true); /* byte rate (sample rate * block align) */ view.setUint32(28, sampleRate * 4, true); /* block align (channel count * bytes per sample) */ view.setUint16(32, 4, true); /* bits per sample */ view.setUint16(34, 16, true); /* data chunk identifier */ writeString(view, 36, 'data'); /* data chunk length */ view.setUint32(40, samples.length * 2, true); floatTo16BitPCM(view, 44, samples); return view; } }; var recorderWorkerStr = recorderWorker.toString() .replace(/^\s*function.*?\(\)\s*{/, '') .replace(/}\s*$/, ''); // var WORKER_PATH = './recorderWorker.js'; var Recorder = function(source, cfg){ var config = cfg || {}; var bufferLen = config.bufferLen || 4096; this.context = source.context; this.node = (this.context.createScriptProcessor || this.context.createJavaScriptNode).call(this.context, bufferLen, 2, 2); var worker = new Worker((window.URL || window.webkitURL).createObjectURL(new Blob([recorderWorkerStr], {type:"text/javascript"}))); worker.onmessage = function(e){ if (e.data.type === 'blob') { currCallbackWithBlob(e.data.data); } else { currCallbackWithBuffer(e.data.data); } }; worker.postMessage({ command: 'init', config: { sampleRate: this.context.sampleRate } }); var recording = false, currCallbackWithBuffer, currCallbackWithBlob; this.node.onaudioprocess = function(e){ if (!recording) return; worker.postMessage({ command: 'record', buffer: [ e.inputBuffer.getChannelData(0), e.inputBuffer.getChannelData(1) ] }); }; this.configure = function(cfg){ for (var prop in cfg){ if (cfg.hasOwnProperty(prop)){ config[prop] = cfg[prop]; } } }; this.record = function(){ recording = true; }; this.stop = function(){ recording = false; }; this.clear = function(){ worker.postMessage({ command: 'clear' }); }; this.getBuffer = function(cb) { currCallbackWithBuffer = cb || config.callback; worker.postMessage({ command: 'getBuffer' }); }; this.exportWAV = function(cb, type){ currCallbackWithBlob = cb || config.callback; type = type || config.type || 'audio/wav'; if (!currCallbackWithBlob) throw new Error('Callback not set'); worker.postMessage({ command: 'exportWAV', type: type }); }; this.release = function() { this.stop(); this.clear(); this.configure = this.record = this.stop = this.clear = this.getBuffer = this.exportWAV = function () {}; source.disconnect(this.node); this.node.onaudioprocess = null; this.node.disconnect(); worker.terminate(); }; source.connect(this.node); this.node.connect(this.context.destination); //this should not be necessary }; Recorder.forceDownload = function(blob, filename){ var url = (window.URL || window.webkitURL).createObjectURL(blob); var link = window.document.createElement('a'); link.href = url; link.download = filename || 'output.wav'; var click = document.createEvent("Event"); click.initEvent("click", true, true); link.dispatchEvent(click); }; var recorder = Recorder; return recorder; }))); } (recorder_build)); var Recorder = recorder_build.exports; var AudioContext = window.AudioContext || window.webkitAudioContext || window.mozAudioContext; var ctx = null; var isSupport = true; if (!AudioContext) { isSupport = false; console.warn('Web Audio API is Unsupported.'); } var RecorderControl = /*#__PURE__*/ function () { function RecorderControl() { _classCallCheck(this, RecorderControl); this._recorderStream = null; this._recorderStreamSourceNode = null; this._recorder = null; this._isRecording = false; this._curSourceNode = null; } _createClass(RecorderControl, [{ key: "playPcm", value: function playPcm(samples, sampleRate, onEnded, startPos) { if (!ctx || ctx.state === 'closed') { ctx = new AudioContext(); } if (ctx.state === 'interrupted' || ctx.state === 'suspended') { ctx.resume(); } sampleRate = sampleRate || 8000; this.stopPcm(); var _samples = startPos && startPos > 0.001 ? // 根据开始位置(秒数)截取播放采样 samples.slice(sampleRate * startPos) : samples; if (!_samples.length) { return onEnded(); } var buffer, channelBuffer; this._curSourceNode = ctx['createBufferSource'](); try { buffer = ctx['createBuffer'](1, _samples.length, sampleRate); } catch (e) { // iOS 不支持 22050 以下的采样率,于是先提升采样率,然后用慢速播放 if (sampleRate < 11025) { /*buffer = ctx['createBuffer'](1, _samples.length * 3, sampleRate * 3); _samples = this._increaseSampleRate(_samples, 3);*/ buffer = ctx['createBuffer'](1, _samples.length, sampleRate * 4); this._curSourceNode['playbackRate'].value = 0.25; } else { /*buffer = ctx['createBuffer'](1, _samples.length * 2, sampleRate * 2); _samples = this._increaseSampleRate(_samples, 2);*/ buffer = ctx['createBuffer'](1, _samples.length, sampleRate * 2); this._curSourceNode['playbackRate'].value = 0.5; } } if (buffer['copyToChannel']) { buffer['copyToChannel'](_samples, 0, 0); } else { channelBuffer = buffer['getChannelData'](0); channelBuffer.set(_samples); } this._curSourceNode['buffer'] = buffer; this._curSourceNode['loop'] = false; this._curSourceNode['connect'](ctx['destination']); this._curSourceNode.onended = onEnded; this._curSourceNode.start(); } }, { key: "stopPcm", value: function stopPcm() { if (this._curSourceNode) { this._curSourceNode.stop(); this._curSourceNode = null; } } }, { key: "stopPcmSilently", value: function stopPcmSilently() { this._curSourceNode.onended = null; this.stopPcm(); } }, { key: "initRecorder", value: function initRecorder() { var _this = this; return new Promise(function (resolve, reject) { var s = function s(stream) { _this._recorderStream = stream; _this._recorderStreamSourceNode = ctx.createMediaStreamSource(stream); _this._recorder = new Recorder(_this._recorderStreamSourceNode); _this._isRecording = false; resolve(); }; var j = function j(e) { reject(e); }; if (!_this._recorder) { if (window.navigator.mediaDevices && window.navigator.mediaDevices.getUserMedia) { window.navigator.mediaDevices.getUserMedia({ audio: true }).then(s).catch(j); } else if (window.navigator.getUserMedia) { window.navigator.getUserMedia({ audio: true }, s, j); } else { j(); } } else { resolve(); } }); } }, { key: "isRecording", value: function isRecording() { return this._recorder && this._isRecording; } }, { key: "startRecord", value: function startRecord() { if (this._recorder) { this._recorder.clear(); this._recorder.record(); this._isRecording = true; } } }, { key: "stopRecord", value: function stopRecord() { if (this._recorder) { this._recorder.stop(); this._isRecording = false; } } }, { key: "generateRecordSamples", value: function generateRecordSamples() { var _this2 = this; return new Promise(function (resolve) { if (_this2._recorder) { _this2._recorder.getBuffer(function (buffers) { resolve(buffers[0]); }); } }); } }, { key: "releaseRecord", value: function releaseRecord() { if (this._recorderStream && this._recorderStream.getTracks) { this._recorderStream.getTracks().forEach(function (track) { track.stop(); }); this._recorderStream = null; } if (this._recorder) { this._recorder.release(); this._recorder = null; } } }], [{ key: "isPlaySupported", value: function isPlaySupported() { return isSupport; } }, { key: "isRecordSupported", value: function isRecordSupported() { return !!(window.navigator.mediaDevices && window.navigator.mediaDevices.getUserMedia || window.navigator.getUserMedia); } }, { key: "getCtxSampleRate", value: function getCtxSampleRate() { return ctx && ctx.sampleRate || 0; } }, { key: "getCtxTime", value: function getCtxTime() { return ctx && ctx.currentTime || 0; } }, { key: "decodeAudioArrayBufferByContext", value: function decodeAudioArrayBufferByContext(array) { return new Promise(function (resolve, reject) { ctx['decodeAudioData'](array, function (audioBuf) { // 把多声道音频 mix 成单声道 var numberOfChannels = audioBuf.numberOfChannels; var dest = new Float32Array(audioBuf.length); switch (numberOfChannels) { default: case 1: { dest = audioBuf.getChannelData(0); break; } case 2: { var left = audioBuf.getChannelData(0); var right = audioBuf.getChannelData(1); for (var i = 0, l = dest.length; i < l; i++) { dest[i] = .5 * (left[i] + right[i]); } break; } case 4: { var _left = audioBuf.getChannelData(0); var _right = audioBuf.getChannelData(1); var sLeft = audioBuf.getChannelData(2); var sRight = audioBuf.getChannelData(3); for (var _i = 0, _l = dest.length; _i < _l; _i++) { dest[_i] = .25 * (_left[_i] + _right[_i] + sLeft[_i] + sRight[_i]); } break; } case 6: { var _left2 = audioBuf.getChannelData(0); var _right2 = audioBuf.getChannelData(1); var center = audioBuf.getChannelData(2); var _sLeft = audioBuf.getChannelData(4); var _sRight = audioBuf.getChannelData(5); for (var _i2 = 0, _l2 = dest.length; _i2 < _l2; _i2++) { dest[_i2] = 0.7071 * (_left2[_i2] + _right2[_i2]) + center[_i2] + 0.5 * (_sLeft[_i2] + _sRight[_i2]); } break; } } resolve(dest); }, reject); }); } /* static _increaseSampleRate(samples, multiple) { let sampleLen = samples.length; let newSamples = new Float32Array(sampleLen * multiple); for (let i = 0; i < sampleLen; i ++) { for (let j = 0; j < multiple; j ++) { newSamples[i * multiple + j] = samples[i]; } } return newSamples; }; */ }]); return RecorderControl; }(); var amrnb = function() { var AMR = (function () { var AMR = { toWAV: (function (amr) { var decoded = this._decode(amr); if (!decoded) { return null } var raw = new Uint8Array(decoded.buffer, decoded.byteOffset, decoded.byteLength); var out = new Uint8Array(raw.length + this.WAV_HEADER_SIZE); var offset = 0; var write_int16 = (function (value) { var a = new Uint8Array(2); (new Int16Array(a.buffer))[0] = value; out.set(a, offset); offset += 2; }); var write_int32 = (function (value) { var a = new Uint8Array(4); (new Int32Array(a.buffer))[0] = value; out.set(a, offset); offset += 4; }); var write_string = (function (value) { var d = (new TextEncoder("utf-8")).encode(value); out.set(d, offset); offset += d.length; }); write_string("RIFF"); write_int32(4 + 8 + 16 + 8 + raw.length); write_string("WAVEfmt "); write_int32(16); var bits_per_sample = 16; var sample_rate = 8e3; var channels = 1; var bytes_per_frame = bits_per_sample / 8 * channels; var bytes_per_sec = bytes_per_frame * sample_rate; write_int16(1); write_int16(1); write_int32(sample_rate); write_int32(bytes_per_sec); write_int16(bytes_per_frame); write_int16(bits_per_sample); write_string("data"); write_int32(raw.length); out.set(raw, offset); return out }), decode: (function (amr) { var raw = this._decode(amr); if (!raw) { return null } var out = new Float32Array(raw.length); for (var i = 0; i < out.length; i++) { out[i] = raw[i] / 32768; } return out }), _decode: (function (amr) { if (String.fromCharCode.apply(null, amr.subarray(0, this.AMR_HEADER.length)) !== this.AMR_HEADER) { return null } var decoder = this.Decoder_Interface_init(); if (!decoder) { return null } var out = new Int16Array(Math.floor(amr.length / 6 * this.PCM_BUFFER_COUNT)); var buf = Module._malloc(this.AMR_BUFFER_COUNT); var decodeInBuffer = new Uint8Array(Module.HEAPU8.buffer, buf, this.AMR_BUFFER_COUNT); buf = Module._malloc(this.PCM_BUFFER_COUNT * 2); var decodeOutBuffer = new Int16Array(Module.HEAPU8.buffer, buf, this.PCM_BUFFER_COUNT); var inOffset = 6; var outOffset = 0; while (inOffset + 1 < amr.length && outOffset + 1 < out.length) { var size = this.SIZES[amr[inOffset] >> 3 & 15]; if (inOffset + size + 1 > amr.length) { break } decodeInBuffer.set(amr.subarray(inOffset, inOffset + size + 1)); this.Decoder_Interface_Decode(decoder, decodeInBuffer.byteOffset, decodeOutBuffer.byteOffset, 0); if (outOffset + this.PCM_BUFFER_COUNT > out.length) { var newOut = new Int16Array(out.length * 2); newOut.set(out.subarray(0, outOffset)); out = newOut; } out.set(decodeOutBuffer, outOffset); outOffset += this.PCM_BUFFER_COUNT; inOffset += size + 1; } Module._free(decodeInBuffer.byteOffset); Module._free(decodeOutBuffer.byteOffset); this.Decoder_Interface_exit(decoder); return out.subarray(0, outOffset) }), encode: (function (pcm, pcmSampleRate, mode) { if (pcmSampleRate < 8e3) { console.error("pcmSampleRate should not be less than 8000."); return null } if (typeof mode === "undefined") { mode = this.Mode.MR795; } var encoder = this.Encoder_Interface_init(); if (!encoder) { return null } var buf = Module._malloc(this.PCM_BUFFER_COUNT * 2); var encodeInBuffer = new Int16Array(Module.HEAPU8.buffer, buf, this.PCM_BUFFER_COUNT); buf = Module._malloc(this.AMR_BUFFER_COUNT); var encodeOutBuffer = new Uint8Array(Module.HEAPU8.buffer, buf, this.AMR_BUFFER_COUNT); var ratio = pcmSampleRate / 8e3; var inLength = Math.floor(pcm.length / ratio); var inData = new Int16Array(inLength); for (var i = 0; i < inLength; i++) { inData[i] = pcm[Math.floor(i * ratio)] * (32768 - 1); } var blockSize = this.SIZES[mode] + 1; var out = new Uint8Array(Math.ceil(inLength / this.PCM_BUFFER_COUNT * blockSize) + this.AMR_HEADER.length); out.set((new TextEncoder("utf-8")).encode(this.AMR_HEADER)); var inOffset = 0; var outOffset = this.AMR_HEADER.length; while (inOffset + this.PCM_BUFFER_COUNT < inData.length && outOffset + blockSize < out.length) { encodeInBuffer.set(inData.subarray(inOffset, inOffset + this.PCM_BUFFER_COUNT)); var n = this.Encoder_Interface_Encode(encoder, mode, encodeInBuffer.byteOffset, encodeOutBuffer.byteOffset, 0); if (n != blockSize) { console.error([n, blockSize]); break } out.set(encodeOutBuffer.subarray(0, n), outOffset); inOffset += this.PCM_BUFFER_COUNT; outOffset += n; } Module._free(encodeInBuffer.byteOffset); Module._free(encodeOutBuffer.byteOffset); this.Encoder_Interface_exit(encoder); return out.subarray(0, outOffset) }), Decoder_Interface_init: (function () { console.warn("Decoder_Interface_init not initialized."); return 0 }), Decoder_Interface_exit: (function (state) { console.warn("Decoder_Interface_exit not initialized."); }), Decoder_Interface_Decode: (function (state, inBuffer, outBuffer, bfi) { console.warn("Decoder_Interface_Decode not initialized."); }), Encoder_Interface_init: (function (dtx) { console.warn("Encoder_Interface_init not initialized."); return 0 }), Encoder_Interface_exit: (function (state) { console.warn("Encoder_Interface_exit not initialized."); }), Encoder_Interface_Encode: (function (state, mode, speech, out, forceSpeech) { console.warn("Encoder_Interface_Encode not initialized."); }), Mode: {MR475: 0, MR515: 1, MR59: 2, MR67: 3, MR74: 4, MR795: 5, MR102: 6, MR122: 7, MRDTX: 8}, SIZES: [12, 13, 15, 17, 19, 20, 26, 31, 5, 6, 5, 5, 0, 0, 0, 0], AMR_BUFFER_COUNT: 32, PCM_BUFFER_COUNT: 160, AMR_HEADER: "#!AMR\n", WAV_HEADER_SIZE: 44 }; var Module = { canvas: {}, print: (function (text) { console.log(text); }), _main: (function () { AMR.Decoder_Interface_init = Module._Decoder_Interface_init; AMR.Decoder_Interface_exit = Module._Decoder_Interface_exit; AMR.Decoder_Interface_Decode = Module._Decoder_Interface_Decode; AMR.Encoder_Interface_init = Module._Encoder_Interface_init; AMR.Encoder_Interface_exit = Module._Encoder_Interface_exit; AMR.Encoder_Interface_Encode = Module._Encoder_Interface_Encode; return 0 }) }; var Module; if (!Module) Module = (typeof Module !== "undefined" ? Module : null) || {}; var moduleOverrides = {}; for (var key in Module) { if (Module.hasOwnProperty(key)) { moduleOverrides[key] = Module[key]; } } var ENVIRONMENT_IS_WEB = typeof window === "object"; var ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; var ENVIRONMENT_IS_NODE = false;/*typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;*/ var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; if (ENVIRONMENT_IS_SHELL) { if (!Module["print"]) Module["print"] = print; if (typeof printErr != "undefined") Module["printErr"] = printErr; if (typeof read != "undefined") { Module["read"] = read; } else { Module["read"] = function read() { throw "no read() available (jsc?)" }; } Module["readBinary"] = function readBinary(f) { if (typeof readbuffer === "function") { return new Uint8Array(readbuffer(f)) } var data = read(f, "binary"); assert(typeof data === "object"); return data }; if (typeof scriptArgs != "undefined") { Module["arguments"] = scriptArgs; } else if (typeof arguments != "undefined") { Module["arguments"] = arguments; } } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { Module["read"] = function read(url) { var xhr = new XMLHttpRequest; xhr.open("GET", url, false); xhr.send(null); return xhr.responseText }; if (typeof arguments != "undefined") { Module["arguments"] = arguments; } if (typeof console !== "undefined") { if (!Module["print"]) Module["print"] = function print(x) { console.log(x); }; if (!Module["printErr"]) Module["printErr"] = function printErr(x) { console.log(x); }; } else { var TRY_USE_DUMP = false; if (!Module["print"]) Module["print"] = TRY_USE_DUMP && typeof dump !== "undefined" ? (function (x) { dump(x); }) : (function (x) { }); } if (ENVIRONMENT_IS_WORKER) { Module["load"] = importScripts; } if (typeof Module["setWindowTitle"] === "undefined") { Module["setWindowTitle"] = (function (title) { document.title = title; }); } } else { throw "Unknown runtime environment. Where are we?" } function globalEval(x) { eval.call(null, x); } if (!Module["load"] && Module["read"]) { Module["load"] = function load(f) { globalEval(Module["read"](f)); }; } if (!Module["print"]) { Module["print"] = (function () { }); } if (!Module["printErr"]) { Module["printErr"] = Module["print"]; } if (!Module["arguments"]) { Module["arguments"] = []; } if (!Module["thisProgram"]) { Module["thisProgram"] = "./this.program"; } Module.print = Module["print"]; Module.printErr = Module["printErr"]; Module["preRun"] = []; Module["postRun"] = []; for (var key in moduleOverrides) { if (moduleOverrides.hasOwnProperty(key)) { Module[key] = moduleOverrides[key]; } } var Runtime = { setTempRet0: (function (value) { tempRet0 = value; }), getTempRet0: (function () { return tempRet0 }), stackSave: (function () { return STACKTOP }), stackRestore: (function (stackTop) { STACKTOP = stackTop; }), getNativeTypeSize: (function (type) { switch (type) { case"i1": case"i8": return 1; case"i16": return 2; case"i32": return 4; case"i64": return 8; case"float": return 4; case"double": return 8; default: { if (type[type.length - 1] === "*") { return Runtime.QUANTUM_SIZE } else if (type[0] === "i") { var bits = parseInt(type.substr(1)); assert(bits % 8 === 0); return bits / 8 } else { return 0 } } } }), getNativeFieldSize: (function (type) { return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE) }), STACK_ALIGN: 16, prepVararg: (function (ptr, type) { if (type === "double" || type === "i64") { if (ptr & 7) { assert((ptr & 7) === 4); ptr += 4; } } else { assert((ptr & 3) === 0); } return ptr }), getAlignSize: (function (type, size, vararg) { if (!vararg && (type == "i64" || type == "double")) return 8; if (!type) return Math.min(size, 8); return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE) }), dynCall: (function (sig, ptr, args) { if (args && args.length) { if (!args.splice) args = Array.prototype.slice.call(args); args.splice(0, 0, ptr); return Module["dynCall_" + sig].apply(null, args) } else { return Module["dynCall_" + sig].call(null, ptr) } }), functionPointers: [], addFunction: (function (func) { for (var i = 0; i < Runtime.functionPointers.length; i++) { if (!Runtime.functionPointers[i]) { Runtime.functionPointers[i] = func; return 2 * (1 + i) } } throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS." }), removeFunction: (function (index) { Runtime.functionPointers[(index - 2) / 2] = null; }), warnOnce: (function (text) { if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; if (!Runtime.warnOnce.shown[text]) { Runtime.warnOnce.shown[text] = 1; Module.printErr(text); } }), funcWrappers: {}, getFuncWrapper: (function (func, sig) { assert(sig); if (!Runtime.funcWrappers[sig]) { Runtime.funcWrappers[sig] = {}; } var sigCache = Runtime.funcWrappers[sig]; if (!sigCache[func]) { sigCache[func] = function dynCall_wrapper() { return Runtime.dynCall(sig, func, arguments) }; } return sigCache[func] }), getCompilerSetting: (function (name) { throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work" }), stackAlloc: (function (size) { var ret = STACKTOP; STACKTOP = STACKTOP + size | 0; STACKTOP = STACKTOP + 15 & -16; return ret }), staticAlloc: (function (size) { var ret = STATICTOP; STATICTOP = STATICTOP + size | 0; STATICTOP = STATICTOP + 15 & -16; return ret }), dynamicAlloc: (function (size) { var ret = DYNAMICTOP; DYNAMICTOP = DYNAMICTOP + size | 0; DYNAMICTOP = DYNAMICTOP + 15 & -16; if (DYNAMICTOP >= TOTAL_MEMORY) { var success = enlargeMemory(); if (!success) { DYNAMICTOP = ret; return 0 } } return ret }), alignMemory: (function (size, quantum) { var ret = size = Math.ceil(size / (quantum ? quantum : 16)) * (quantum ? quantum : 16); return ret }), makeBigInt: (function (low, high, unsigned) { var ret = unsigned ? +(low >>> 0) + +(high >>> 0) * +4294967296 : +(low >>> 0) + +(high | 0) * +4294967296; return ret }), GLOBAL_BASE: 8, QUANTUM_SIZE: 4, __dummy__: 0 }; Module["Runtime"] = Runtime; var ABORT = false; var tempDouble; var tempI64; var tempRet0; function assert(condition, text) { if (!condition) { abort("Assertion failed: " + text); } } function getCFunc(ident) { var func = Module["_" + ident]; if (!func) { try { func = [eval][0]("_" + ident); } catch (e) { } } assert(func, "Cannot call unknown function " + ident + " (perhaps LLVM optimizations or closure removed it?)"); return func } var cwrap, ccall; ((function () { var JSfuncs = { "stackSave": (function () { Runtime.stackSave(); }), "stackRestore": (function () { Runtime.stackRestore(); }), "arrayToC": (function (arr) { var ret = Runtime.stackAlloc(arr.length); writeArrayToMemory(arr, ret); return ret }), "stringToC": (function (str) { var ret = 0; if (str !== null && str !== undefined && str !== 0) { ret = Runtime.stackAlloc((str.length << 2) + 1); writeStringToMemory(str, ret); } return ret }) }; var toC = {"string": JSfuncs["stringToC"], "array": JSfuncs["arrayToC"]}; ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { var func = getCFunc(ident); var cArgs = []; var stack = 0; if (args) { for (var i = 0; i < args.length; i++) { var converter = toC[argTypes[i]]; if (converter) { if (stack === 0) stack = Runtime.stackSave(); cArgs[i] = converter(args[i]); } else { cArgs[i] = args[i]; } } } var ret = func.apply(null, cArgs); if (returnType === "string") ret = Pointer_stringify(ret); if (stack !== 0) { if (opts && opts.async) { EmterpreterAsync.asyncFinalizers.push((function () { Runtime.stackRestore(stack); })); return } Runtime.stackRestore(stack); } return ret }; var sourceRegex = /^function\s\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; function parseJSFunc(jsfunc) { // Match the body and the return value of a javascript function source var parsed = jsfunc.toString().match(sourceRegex); if (!parsed) { return {}; } parsed = parsed.slice(1); return {arguments: parsed[0], body: parsed[1], returnValue: parsed[2]} } var JSsource = {}; for (var fun in JSfuncs) { if (JSfuncs.hasOwnProperty(fun)) { JSsource[fun] = parseJSFunc(JSfuncs[fun]); } } cwrap = function cwrap(ident, returnType, argTypes) { argTypes = argTypes || []; var cfunc = getCFunc(ident); var numericArgs = argTypes.every((function (type) { return type === "number" })); var numericRet = returnType !== "string"; if (numericRet && numericArgs) { return cfunc } var argNames = argTypes.map((function (x, i) { return "$" + i })); var funcstr = "(function(" + argNames.join(",") + ") {"; var 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 (type === "number") continue; var convertCode = JSsource[type + "ToC"]; funcstr += "var " + convertCode.arguments + " = " + arg + ";"; funcstr += convertCode.body + ";"; funcstr += arg + "=" + convertCode.returnValue + ";"; } } var cfuncname = parseJSFunc((function () { return cfunc })).returnValue; funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");"; if (!numericRet) { var strgfy = parseJSFunc((function () { return Pointer_stringify })).returnValue; funcstr += "ret = " + strgfy + "(ret);"; } if (!numericArgs) { funcstr += JSsource["stackRestore"].body.replace("()", "(stack)") + ";"; } funcstr += "return ret})"; return [eval][0](funcstr) }; }))(); Module["ccall"] = ccall; Module["cwrap"] = cwrap; function setValue(ptr, value, type, noSafe) { type = type || "i8"; if (type.charAt(type.length - 1) === "*") type = "i32"; switch (type) { case"i1": HEAP8[ptr >> 0] = value; break; case"i8": HEAP8[ptr >> 0] = value; break; case"i16": HEAP16[ptr >> 1] = value; break; case"i32": HEAP32[ptr >> 2] = value; break; case"i64": tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= +1 ? tempDouble > +0 ? (Math_min(+Math_floor(tempDouble / +4294967296), +4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / +4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1]; break; case"float": HEAPF32[ptr >> 2] = value; break; case"double": HEAPF64[ptr >> 3] = value; break; default: abort("invalid type for setValue: " + type); } } Module["setValue"] = setValue; function getValue(ptr, type, noSafe) { type = type || "i8"; if (type.charAt(type.length - 1) === "*") type = "i32"; switch (type) { case"i1": return HEAP8[ptr >> 0]; case"i8": return HEAP8[ptr >> 0]; case"i16": return HEAP16[ptr >> 1]; case"i32": return HEAP32[ptr >> 2]; case"i64": return HEAP32[ptr >> 2]; case"float": return HEAPF32[ptr >> 2]; case"double": return HEAPF64[ptr >> 3]; default: abort("invalid type for setValue: " + type); } return null } Module["getValue"] = getValue; var ALLOC_NORMAL = 0; var ALLOC_STACK = 1; var ALLOC_STATIC = 2; var ALLOC_DYNAMIC = 3; var ALLOC_NONE = 4; 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; function allocate(slab, types, allocator, ptr) { var zeroinit, size; if (typeof slab === "number") { zeroinit = true; size = slab; } else { zeroinit = false; size = slab.length; } var singleType = typeof types === "string" ? types : null; var ret; if (allocator == ALLOC_NONE) { ret = ptr; } else { ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); } if (zeroinit) { var ptr = ret, stop; assert((ret & 3) == 0); stop = ret + (size & ~3); for (; ptr < stop; ptr += 4) { HEAP32[ptr >> 2] = 0; } stop = ret + size; while (ptr < stop) { HEAP8[ptr++ >> 0] = 0; } return ret } if (singleType === "i8") { if (slab.subarray || slab.slice) { HEAPU8.set(slab, ret); } else { HEAPU8.set(new Uint8Array(slab), ret); } return ret } var i = 0, type, typeSize, previousType; while (i < size) { var curr = slab[i]; if (typeof curr === "function") { curr = Runtime.getFunctionIndex(curr); } type = singleType || types[i]; if (type === 0) { i++; continue } if (type == "i64") type = "i32"; setValue(ret + i, curr, type); if (previousType !== type) { typeSize = Runtime.getNativeTypeSize(type); previousType = type; } i += typeSize; } return ret } Module["allocate"] = allocate; function getMemory(size) { if (!staticSealed) return Runtime.staticAlloc(size); if (typeof _sbrk !== "undefined" && !_sbrk.called || !runtimeInitialized) return Runtime.dynamicAlloc(size); return _malloc(size) } Module["getMemory"] = getMemory; function Pointer_stringify(ptr, length) { if (length === 0 || !ptr) return ""; var hasUtf = 0; var t; var i = 0; while (1) { t = HEAPU8[ptr + i >> 0]; hasUtf |= t; if (t == 0 && !length) break; i++; if (length && i == length) break } if (!length) length = i; var ret = ""; if (hasUtf < 128) { var MAX_CHUNK = 1024; var curr; while (length > 0) { curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); ret = ret ? ret + curr : curr; ptr += MAX_CHUNK; length -= MAX_CHUNK; } return ret } return Module["UTF8ToString"](ptr) } Module["Pointer_stringify"] = Pointer_stringify; function AsciiToString(ptr) { var str = ""; while (1) { var ch = HEAP8[ptr++ >> 0]; if (!ch) return str; str += String.fromCharCode(ch); } } Module["AsciiToString"] = AsciiToString; function stringToAscii(str, outPtr) { return writeAsciiToMemory(str, outPtr, false) } Module["stringToAscii"] = stringToAscii; function UTF8ArrayToString(u8Array, idx) { var u0, u1, u2, u3, u4, u5; var str = ""; while (1) { u0 = u8Array[idx++]; if (!u0) return str; if (!(u0 & 128)) { str += String.fromCharCode(u0); continue } u1 = u8Array[idx++] & 63; if ((u0 & 224) == 192) { str += String.fromCharCode((u0 & 31) << 6 | u1); continue } u2 = u8Array[idx++] & 63; if ((u0 & 240) == 224) { u0 = (u0 & 15) << 12 | u1 << 6 | u2; } else { u3 = u8Array[idx++] & 63; if ((u0 & 248) == 240) { u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3; } else { u4 = u8Array[idx++] & 63; if ((u0 & 252) == 248) { u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4; } else { u5 = u8Array[idx++] & 63; u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5; } } } if (u0 < 65536) { str += String.fromCharCode(u0); } else { var ch = u0 - 65536; str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); } } } Module["UTF8ArrayToString"] = UTF8ArrayToString; function UTF8ToString(ptr) { return UTF8ArrayToString(HEAPU8, ptr) } Module["UTF8ToString"] = UTF8ToString; function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { if (!(maxBytesToWrite > 0)) return 0; var startIdx = outIdx; var endIdx = outIdx + maxBytesToWrite - 1; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; if (u <= 127) { if (outIdx >= endIdx) break; outU8Array[outIdx++] = u; } else if (u <= 2047) { if (outIdx + 1 >= endIdx) break; outU8Array[outIdx++] = 192 | u >> 6; outU8Array[outIdx++] = 128 | u & 63; } else if (u <= 65535) { if (outIdx + 2 >= endIdx) break; outU8Array[outIdx++] = 224 | u >> 12; outU8Array[outIdx++] = 128 | u >> 6 & 63; outU8Array[outIdx++] = 128 | u & 63; } else if (u <= 2097151) { if (outIdx + 3 >= endIdx) break; outU8Array[outIdx++] = 240 | u >> 18; outU8Array[outIdx++] = 128 | u >> 12 & 63; outU8Array[outIdx++] = 128 | u >> 6 & 63; outU8Array[outIdx++] = 128 | u & 63; } else if (u <= 67108863) { if (outIdx + 4 >= endIdx) break; outU8Array[outIdx++] = 248 | u >> 24; outU8Array[outIdx++] = 128 | u >> 18 & 63; outU8Array[outIdx++] = 128 | u >> 12 & 63; outU8Array[outIdx++] = 128 | u >> 6 & 63; outU8Array[outIdx++] = 128 | u & 63; } else { if (outIdx + 5 >= endIdx) break; outU8Array[outIdx++] = 252 | u >> 30; outU8Array[outIdx++] = 128 | u >> 24 & 63; outU8Array[outIdx++] = 128 | u >> 18 & 63; outU8Array[outIdx++] = 128 | u >> 12 & 63; outU8Array[outIdx++] = 128 | u >> 6 & 63; outU8Array[outIdx++] = 128 | u & 63; } } outU8Array[outIdx] = 0; return outIdx - startIdx } Module["stringToUTF8Array"] = stringToUTF8Array; function stringToUTF8(str, outPtr, maxBytesToWrite) { return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite) } Module["stringToUTF8"] = stringToUTF8; function lengthBytesUTF8(str) { var len = 0; for (var i = 0; i < str.length; ++i) { var u = str.charCodeAt(i); if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; if (u <= 127) { ++len; } else if (u <= 2047) { len += 2; } else if (u <= 65535) { len += 3; } else if (u <= 2097151) { len += 4; } else if (u <= 67108863) { len += 5; } else { len += 6; } } return len } Module["lengthBytesUTF8"] = lengthBytesUTF8; function UTF16ToString(ptr) { var i = 0; var str = ""; while (1) { var codeUnit = HEAP16[ptr + i * 2 >> 1]; if (codeUnit == 0) return str; ++i; str += String.fromCharCode(codeUnit); } } Module["UTF16ToString"] = UTF16ToString; function stringToUTF16(str, outPtr, maxBytesToWrite) { if (maxBytesToWrite === undefined) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 2) return 0; maxBytesToWrite -= 2; var startPtr = outPtr; var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length; for (var i = 0; i < numCharsToWrite; ++i) { var codeUnit = str.charCodeAt(i); HEAP16[outPtr >> 1] = codeUnit; outPtr += 2; } HEAP16[outPtr >> 1] = 0; return outPtr - startPtr } Module["stringToUTF16"] = stringToUTF16; function lengthBytesUTF16(str) { return str.length * 2 } Module["lengthBytesUTF16"] = lengthBytesUTF16; function UTF32ToString(ptr) { var i = 0; var str = ""; while (1) { var utf32 = HEAP32[ptr + i * 4 >> 2]; if (utf32 == 0) return str; ++i; if (utf32 >= 65536) { var ch = utf32 - 65536; str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023); } else { str += String.fromCharCode(utf32); } } } Module["UTF32ToString"] = UTF32ToString; function stringToUTF32(str, outPtr, maxBytesToWrite) { if (maxBytesToWrite === undefined) { maxBytesToWrite = 2147483647; } if (maxBytesToWrite < 4) return 0; var startPtr = outPtr; var endPtr = startPtr + maxBytesToWrite - 4; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); if (codeUnit >= 55296 && codeUnit <= 57343) { var trailSurrogate = str.charCodeAt(++i); codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023; } HEAP32[outPtr >> 2] = codeUnit; outPtr += 4; if (outPtr + 4 > endPtr) break } HEAP32[outPtr >> 2] = 0; return outPtr - startPtr } Module["stringToUTF32"] = stringToUTF32; function lengthBytesUTF32(str) { var len = 0; for (var i = 0; i < str.length; ++i) { var codeUnit = str.charCodeAt(i); if (codeUnit >= 55296 && codeUnit <= 57343) ++i; len += 4; } return len } Module["lengthBytesUTF32"] = lengthBytesUTF32; function demangle(func) { var hasLibcxxabi = !!Module["___cxa_demangle"]; if (hasLibcxxabi) { try { var buf = _malloc(func.length); writeStringToMemory(func.substr(1), buf); var status = _malloc(4); var ret = Module["___cxa_demangle"](buf, 0, 0, status); if (getValue(status, "i32") === 0 && ret) { return Pointer_stringify(ret) } } catch (e) { } finally { if (buf) _free(buf); if (status) _free(status); if (ret) _free(ret); } } var i = 3; var basicTypes = { "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": "..." }; var subs = []; var first = true; function parseNested() { i++; if (func[i] === "K") i++; var parts = []; while (func[i] !== "E") { if (func[i] === "S") { i++; var next = func.indexOf("_", i); var num = func.substring(i, next) || 0; parts.push(subs[num] || "?"); i = next + 1; continue } if (func[i] === "C") { parts.push(parts[parts.length - 1]); i += 2; continue } var size = parseInt(func.substr(i)); var pre = size.toString().length; if (!size || !pre) { i--; break } var curr = func.substr(i + pre, size); parts.push(curr); subs.push(curr); i += pre + size; } i++; return parts } function parse(rawList, limit, allowVoid) { limit = limit || Infinity; var ret = "", list = []; function flushList() { return "(" + list.join(", ") + ")" } var name; if (func[i] === "N") { name = parseNested().join("::"); limit--; if (limit === 0) return rawList ? [name] : name } else { if (func[i] === "K" || first && func[i] === "L") i++; var size = parseInt(func.substr(i)); if (size) { var pre = size.toString().length; name = func.substr(i + pre, size); i += pre + size; } } first = false; if (func[i] === "I") { i++; var iList = parse(true); var iRet = parse(true, 1, true); ret += iRet[0] + " " + name + "<" + iList.join(", ") + ">"; } else { ret = name; } paramLoop:while (i < func.length && limit-- > 0) { var c = func[i++]; if (c in basicTypes) { list.push(basicTypes[c]); } else { switch (c) { case"P": list.push(parse(true, 1, true)[0] + "*"); break; case"R": list.push(parse(true, 1, true)[0] + "&"); break; case"L": { i++; var end = func.indexOf("E", i); var size = end - i; list.push(func.substr(i, size)); i += size + 2; break } case"A": { var size = parseInt(func.substr(i)); i += size.toString().length; if (func[i] !== "_") throw "?"; i++; list.push(parse(true, 1, true)[0] + " [" + size + "]"); break } case"E": break paramLoop; default: ret += "?" + c; break paramLoop } } } if (!allowVoid && list.length === 1 && list[0] === "void") list = []; if (rawList) { if (ret) { list.push(ret + "?"); } return list } else { return ret + flushList() } } var parsed = func; try { if (func == "Object._main" || func == "_main") { return "main()" } if (typeof func === "number") func = Pointer_stringify(func); if (func[0] !== "_") return func; if (func[1] !== "_") return func; if (func[2] !== "Z") return func; switch (func[3]) { case"n": return "operator new()"; case"d": return "operator delete()" } parsed = parse(); } catch (e) { parsed += "?"; } if (parsed.indexOf("?") >= 0 && !hasLibcxxabi) { Runtime.warnOnce("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"); } return parsed } function demangleAll(text) { return text.replace(/__Z[\w\d_]+/g, (function (x) { var y = demangle(x); return x === y ? x : x + " [" + y + "]" })) } function jsStackTrace() { var err = new Error; if (!err.stack) { try { throw new Error(0) } catch (e) { err = e; } if (!err.stack) { return "(no stack trace available)" } } return err.stack.toString() } function stackTrace() { return demangleAll(jsStackTrace()) } Module["stackTrace"] = stackTrace; var PAGE_SIZE = 4096; function alignMemoryPage(x) { if (x % 4096 > 0) { x += 4096 - x % 4096; } return x } var HEAP; var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; var 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"] || 65536; var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 524288; var totalMemory = 64 * 1024; while (totalMemory < TOTAL_MEMORY || totalMemory < 2 * TOTAL_STACK) { if (totalMemory < 16 * 1024 * 1024) { totalMemory *= 2; } else { totalMemory += 16 * 1024 * 1024; } } if (totalMemory !== TOTAL_MEMORY) { Module.printErr("increasing TOTAL_MEMORY to " + totalMemory + " to be compliant with the asm.js spec (and given that TOTAL_STACK=" + TOTAL_STACK + ")"); TOTAL_MEMORY = totalMemory; } assert(typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && !!(new Int32Array(1))["subarray"] && !!(new Int32Array(1))["set"], "JS engine does not provide full typed array support"); var buffer; buffer = new ArrayBuffer(TOTAL_MEMORY); 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(HEAPU8[0] === 255 && HEAPU8[3] === 0, "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; function callRuntimeCallbacks(callbacks) { while (callbacks.length > 0) { var callback = callbacks.shift(); if (typeof callback == "function") { callback(); continue } var func = callback.func; if (typeof func === "number") { if (callback.arg === undefined) { Runtime.dynCall("v", func); } else { Runtime.dynCall("vi", func, [callback.arg]); } } else { func(callback.arg === undefined ? null : callback.arg); } } } var __ATPRERUN__ = []; var __ATINIT__ = []; var __ATMAIN__ = []; var __ATEXIT__ = []; var __ATPOSTRUN__ = []; var runtimeInitialized = false; function preRun() { if (Module["preRun"]) { if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; while (Module["preRun"].length) { addOnPreRun(Module["preRun"].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function ensureInitRuntime() { if (runtimeInitialized) return; runtimeInitialized = true; callRuntimeCallbacks(__ATINIT__); } function preMain() { callRuntimeCallbacks(__ATMAIN__); } function exitRuntime() { callRuntimeCallbacks(__ATEXIT__); } function postRun() { if (Module["postRun"]) { if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; while (Module["postRun"].length) { addOnPostRun(Module["postRun"].shift()); } } callRuntimeCallbacks(__ATPOSTRUN__); } function addOnPreRun(cb) { __ATPRERUN__.unshift(cb); } Module["addOnPreRun"] = addOnPreRun; function addOnInit(cb) { __ATINIT__.unshift(cb); } Module["addOnInit"] = addOnInit; function addOnPreMain(cb) { __ATMAIN__.unshift(cb); } Module["addOnPreMain"] = addOnPreMain; function addOnExit(cb) { __ATEXIT__.unshift(cb); } Module["addOnExit"] = addOnExit; function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } Module["addOnPostRun"] = addOnPostRun; function intArrayFromString(stringy, dontAddNull, length) { var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; var u8array = new Array(len); var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); if (dontAddNull) u8array.length = numBytesWritten; return u8array } Module["intArrayFromString"] = intArrayFromString; function intArrayToString(array) { var ret = []; for (var i = 0; i < array.length; i++) { var chr = array[i]; if (chr > 255) { chr &= 255; } ret.push(String.fromCharCode(chr)); } return ret.join("") } Module["intArrayToString"] = intArrayToString; function writeStringToMemory(string, buffer, dontAddNull) { var array = intArrayFromString(string, dontAddNull); var i = 0; while (i < array.length) { var chr = array[i]; HEAP8[buffer + i >> 0] = chr; i = i + 1; } } Module["writeStringToMemory"] = writeStringToMemory; function writeArrayToMemory(array, buffer) { for (var i = 0; i < array.length; i++) { HEAP8[buffer++ >> 0] = array[i]; } } Module["writeArrayToMemory"] = writeArrayToMemory; function writeAsciiToMemory(str, buffer, dontAddNull) { for (var i = 0; i < str.length; ++i) { HEAP8[buffer++ >> 0] = str.charCodeAt(i); } if (!dontAddNull) HEAP8[buffer >> 0] = 0; } Module["writeAsciiToMemory"] = writeAsciiToMemory; if (!Math["imul"] || Math["imul"](4294967295, 5) !== -5) Math["imul"] = function imul(a, b) { var ah = a >>> 16; var al = a & 65535; var bh = b >>> 16; var bl = b & 65535; return al * bl + (ah * bl + al * bh << 16) | 0 }; Math.imul = Math["imul"]; if (!Math["clz32"]) Math["clz32"] = (function (x) { x = x >>> 0; for (var i = 0; i < 32; i++) { if (x & 1 << 31 - i) return i } return 32 }); Math.clz32 = Math["clz32"]; var Math_abs = Math.abs; var Math_ceil = Math.ceil; var Math_floor = Math.floor; var Math_min = Math.min; var runDependencies = 0; var dependenciesFulfilled = null; function addRunDependency(id) { runDependencies++; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } } Module["addRunDependency"] = addRunDependency; function removeRunDependency(id) { runDependencies--; if (Module["monitorRunDependencies"]) { Module["monitorRunDependencies"](runDependencies); } if (runDependencies == 0) { if (dependenciesFulfilled) { var callback = dependenciesFulfilled; dependenciesFulfilled = null; callback(); } } } Module["removeRunDependency"] = removeRunDependency; Module["preloadedImages"] = {}; Module["preloadedAudios"] = {}; STATIC_BASE = 8; STATICTOP = STATIC_BASE + 31776; __ATINIT__.push(); allocate([154, 14, 0, 0, 188, 14, 0, 0, 226, 14, 0, 0, 8, 15, 0, 0, 46, 15, 0, 0, 84, 15, 0, 0, 130, 15, 0, 0, 208, 15, 0, 0, 66, 16, 0, 0, 108, 16, 0, 0, 42, 17, 0, 0, 248, 17, 0, 0, 228, 18, 0, 0, 240, 19, 0, 0, 24, 21, 0, 0, 86, 22, 0, 0, 238, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 15, 0, 17, 0, 19, 0, 20, 0, 26, 0, 31, 0, 5, 0, 6, 0, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 252, 146, 252, 36, 253, 182, 253, 72, 254, 218, 254, 108, 255, 0, 0, 0, 0, 32, 78, 32, 78, 32, 78, 32, 78, 32, 78, 80, 70, 0, 64, 0, 32, 0, 0, 0, 0, 255, 127, 112, 125, 112, 125, 112, 125, 112, 125, 112, 125, 153, 89, 255, 127, 112, 125, 112, 125, 102, 102, 102, 38, 153, 25, 153, 25, 154, 89, 185, 62, 232, 43, 188, 30, 132, 21, 16, 15, 139, 10, 97, 7, 42, 5, 157, 3, 0, 96, 0, 72, 0, 54, 128, 40, 96, 30, 200, 22, 22, 17, 209, 12, 157, 9, 54, 7, 102, 70, 184, 38, 75, 21, 182, 11, 113, 6, 139, 3, 243, 1, 18, 1, 151, 0, 83, 0, 154, 89, 185, 62, 232, 43, 188, 30, 132, 21, 16, 15, 139, 10, 97, 7, 42, 5, 157, 3, 44, 3, 128, 0, 30, 2, 140, 0, 57, 11, 111, 4, 218, 8, 74, 13, 19, 8, 51, 2, 133, 49, 135, 2, 36, 16, 6, 7, 225, 21, 165, 20, 9, 30, 118, 1, 151, 14, 185, 1, 160, 42, 78, 10, 31, 46, 190, 9, 10, 80, 29, 3, 98, 20, 163, 2, 68, 26, 162, 32, 162, 20, 160, 6, 208, 5, 172, 1, 250, 22, 196, 1, 212, 20, 232, 15, 255, 13, 244, 4, 165, 9, 133, 3, 22, 62, 237, 3, 134, 58, 199, 12, 91, 40, 250, 18, 51, 14, 229, 7, 36, 10, 67, 3, 72, 48, 28, 19, 174, 47, 168, 6, 120, 52, 68, 6, 158, 35, 37, 9, 128, 15, 2, 6, 103, 21, 208, 38, 211, 14, 161, 1, 79, 5, 158, 1, 56, 14, 33, 6, 59, 31, 213, 13, 141, 44, 133, 2, 104, 33, 123, 2, 216, 15, 97, 5, 224, 64, 236, 23, 156, 44, 188, 2, 215, 7, 95, 2, 127, 48, 42, 6, 111, 43, 46, 18, 112, 53, 172, 6, 214, 46, 205, 4, 60, 31, 129, 28, 175, 51, 83, 22, 124, 9, 135, 4, 25, 8, 149, 7, 74, 24, 233, 23, 218, 13, 12, 7, 221, 34, 10, 7, 231, 33, 44, 6, 111, 54, 248, 13, 1, 52, 93, 24, 254, 23, 106, 4, 106, 23, 198, 6, 61, 55, 54, 18, 7, 44, 249, 12, 194, 47, 15, 6, 107, 54, 199, 11, 217, 19, 224, 40, 228, 36, 50, 26, 153, 6, 171, 2, 156, 5, 26, 5, 44, 28, 93, 15, 242, 15, 153, 10, 113, 30, 192, 2, 222, 58, 34, 3, 155, 24, 92, 20, 241, 16, 237, 20, 20, 26, 29, 2, 174, 23, 114, 2, 83, 53, 116, 14, 234, 44, 104, 9, 28, 63, 204, 2, 145, 47, 239, 2, 129, 31, 225, 44, 170, 24, 208, 8, 114, 17, 240, 1, 125, 28, 11, 2, 229, 39, 249, 14, 202, 32, 221, 11, 211, 32, 198, 3, 148, 55, 88, 7, 255, 33, 33, 21, 11, 64, 255, 18, 252, 28, 187, 7, 201, 23, 206, 4, 155, 36, 46, 17, 222, 56, 35, 13, 247, 52, 57, 11, 107, 51, 185, 5, 158, 21, 142, 6, 82, 51, 179, 57, 170, 28, 88, 2, 38, 5, 36, 2, 156, 16, 211, 13, 60, 39, 60, 9, 91, 41, 110, 2, 32, 51, 157, 2, 46, 55, 198, 13, 175, 19, 56, 38, 234, 59, 107, 2, 43, 12, 78, 2, 58, 64, 197, 11, 182, 60, 72, 16, 177, 60, 75, 6, 45, 60, 204, 4, 151, 62, 83, 36, 110, 29, 112, 19, 198, 7, 189, 4, 183, 44, 133, 4, 224, 48, 143, 21, 3, 37, 84, 10, 36, 30, 242, 7, 224, 51, 191, 8, 139, 62, 229, 19, 130, 31, 105, 26, 99, 39, 133, 5, 138, 19, 43, 9, 235, 48, 87, 23, 22, 59, 83, 11, 88, 71, 241, 8, 211, 61, 223, 9, 137, 63, 14, 40, 59, 57, 55, 44, 5, 7, 81, 1, 43, 12, 141, 1, 182, 13, 112, 11, 240, 17, 110, 10, 95, 29, 116, 2, 151, 44, 144, 2, 58, 23, 131, 9, 144, 25, 199, 28, 46, 32, 61, 3, 160, 15, 95, 3, 48, 39, 188, 9, 185, 62, 223, 13, 28, 71, 30, 4, 215, 23, 174, 5, 252, 22, 220, 30, 64, 73, 140, 13, 72, 7, 32, 2, 238, 35, 171, 2, 103, 45, 64, 16, 242, 17, 108, 6, 86, 12, 133, 4, 81, 62, 0, 10, 61, 48, 149, 14, 12, 68, 140, 20, 218, 23, 212, 7, 101, 11, 206, 6, 83, 64, 137, 20, 147, 65, 144, 6, 53, 67, 223, 6, 165, 18, 159, 12, 218, 28, 147, 23, 6, 56, 28, 39, 195, 15, 186, 1, 98, 16, 202, 1, 254, 35, 194, 8, 3, 29, 121, 16, 60, 50, 33, 3, 178, 43, 57, 3, 104, 49, 36, 8, 156, 50, 154, 25, 33, 37, 228, 3, 229, 25, 217, 3, 41, 41, 198, 9, 185, 59, 142, 19, 58, 49, 7, 8, 124, 60, 117, 6, 66, 63, 9, 27, 151, 55, 158, 22, 66, 10, 60, 3, 239, 21, 150, 6, 95, 53, 146, 22, 84, 14, 18, 6, 49, 44, 73, 10, 42, 38, 179, 5, 179, 54, 125, 18, 25, 62, 147, 24, 134, 24, 78, 7, 230, 30, 237, 8, 82, 66, 219, 17, 192, 64, 9, 15, 144, 59, 7, 9, 151, 62, 172, 12, 123, 56, 144, 69, 71, 46, 203, 10, 189, 7, 127, 5, 120, 5, 108, 3, 239, 16, 219, 13, 39, 17, 114, 16, 29, 21, 168, 2, 53, 68, 13, 3, 101, 25, 254, 19, 155, 31, 253, 29, 187, 28, 26, 3, 141, 32, 158, 4, 193, 58, 88, 12, 80, 58, 223, 11, 197, 79, 112, 3, 209, 56, 84, 3, 49, 48, 116, 57, 248, 26, 128, 7, 129, 16, 165, 3, 26, 32, 63, 4, 163, 41, 244, 15, 98, 39, 181, 17, 175, 10, 72, 3, 177, 80, 57, 4, 71, 65, 78, 23, 1, 62, 226, 17, 119, 42, 14, 10, 189, 14, 142, 4, 183, 56, 204, 15, 219, 80, 67, 10, 115, 59, 174, 10, 170, 59, 138, 8, 113, 24, 154, 12, 69, 51, 24, 76, 28, 28, 162, 3, 158, 9, 82, 6, 163, 17, 20, 12, 28, 54, 181, 16, 220, 40, 65, 3, 187, 67, 42, 3, 251, 65, 241, 8, 186, 60, 25, 32, 35, 53, 148, 6, 125, 12, 42, 7, 76, 62, 4, 11, 196, 61, 207, 20, 110, 66, 134, 9, 148, 65, 46, 5, 55, 61, 220, 31, 206, 45, 108, 33, 178, 14, 5, 8, 91, 37, 37, 5, 249, 52, 134, 26, 195, 47, 144, 7, 244, 31, 222, 13, 231, 51, 242, 6, 171, 63, 199, 25, 163, 63, 78, 30, 73, 33, 247, 9, 57, 28, 85, 10, 93, 71, 65, 29, 245, 65, 200, 8, 218, 69, 68, 11, 113, 67, 0, 13, 201, 36, 194, 78, 34, 43, 128, 32, 6, 5, 108, 2, 151, 5, 71, 2, 105, 23, 241, 8, 138, 15, 42, 14, 24, 20, 240, 2, 97, 52, 62, 3, 177, 21, 44, 11, 244, 45, 20, 23, 241, 41, 48, 2, 70, 21, 52, 2, 9, 52, 192, 11, 170, 46, 99, 14, 175, 77, 30, 3, 97, 38, 216, 2, 95, 53, 44, 34, 223, 28, 237, 11, 211, 9, 10, 3, 162, 23, 65, 3, 69, 25, 210, 19, 113, 32, 159, 9, 253, 23, 73, 7, 204, 59, 238, 4, 72, 56, 195, 17, 95, 53, 163, 17, 65, 12, 167, 11, 175, 9, 235, 4, 240, 58, 39, 18, 22, 60, 47, 10, 156, 56, 88, 9, 174, 48, 233, 9, 115, 29, 133, 11, 109, 50, 28, 47, 92, 21, 172, 2, 69, 12, 210, 2, 217, 19, 250, 4, 188, 49, 104, 16, 198, 59, 169, 2, 139, 30, 80, 2, 134, 25, 229, 7, 94, 64, 33, 34, 52, 52, 114, 3, 21, 21, 131, 3, 64, 57, 130, 8, 149, 57, 131, 16, 190, 55, 18, 5, 105, 54, 237, 7, 117, 60, 58, 29, 199, 61, 220, 17, 217, 9, 221, 7, 198, 19, 12, 7, 39, 20, 182, 25, 218, 27, 13, 14, 168, 42, 75, 6, 209, 45, 172, 6, 7, 66, 127, 13, 140, 63, 240, 25, 90, 36, 239, 3, 153, 36, 58, 8, 238, 74, 173, 19, 153, 48, 173, 16, 47, 62, 52, 5, 253, 59, 184, 13, 122, 46, 61, 55, 229, 62, 198, 26, 218, 7, 225, 2, 195, 14, 93, 3, 190, 44, 64, 11, 236, 13, 212, 13, 97, 35, 217, 4, 103, 48, 128, 3, 98, 33, 21, 18, 41, 45, 144, 22, 193, 31, 77, 2, 26, 32, 76, 2, 40, 73, 171, 14, 173, 50, 77, 12, 113, 61, 246, 2, 250, 64, 242, 2, 118, 59, 130, 43, 255, 61, 160, 8, 65, 18, 98, 2, 234, 39, 166, 2, 153, 59, 50, 16, 97, 22, 255, 12, 185, 32, 134, 6, 150, 77, 17, 9, 90, 60, 135, 21, 230, 54, 105, 21, 96, 22, 72, 11, 156, 29, 66, 5, 48, 56, 205, 20, 108, 63, 110, 15, 14, 59, 160, 14, 202, 59, 155, 5, 5, 57, 230, 15, 13, 48, 80, 61, 193, 29, 163, 6, 122, 8, 116, 3, 107, 17, 215, 17, 174, 70, 234, 12, 198, 49, 47, 3, 78, 58, 139, 3, 168, 58, 185, 16, 158, 60, 176, 32, 74, 70, 63, 4, 54, 9, 97, 3, 153, 63, 203, 14, 63, 61, 244, 17, 228, 63, 254, 5, 200, 64, 162, 8, 193, 65, 225, 37, 57, 62, 161, 17, 205, 12, 61, 4, 171, 37, 139, 8, 197, 46, 180, 23, 239, 35, 110, 17, 251, 34, 93, 6, 49, 40, 246, 11, 97, 64, 35, 20, 106, 60, 154, 27, 110, 53, 239, 9, 153, 20, 229, 8, 106, 65, 69, 24, 15, 65, 80, 13, 80, 79, 35, 13, 0, 73, 193, 7, 92, 55, 67, 50, 50, 59, 87, 61, 121, 17, 252, 3, 145, 6, 118, 3, 215, 16, 205, 16, 248, 34, 73, 14, 5, 23, 123, 4, 127, 45, 172, 5, 14, 62, 179, 8, 230, 17, 244, 25, 17, 27, 181, 4, 76, 24, 31, 3, 127, 48, 81, 13, 96, 62, 37, 15, 147, 77, 61, 8, 217, 37, 93, 8, 150, 57, 126, 34, 144, 56, 39, 10, 25, 7, 214, 4, 91, 30, 45, 3, 135, 74, 58, 17, 178, 21, 16, 8, 103, 14, 28, 11, 27, 68, 208, 8, 57, 65, 134, 17, 71, 63, 12, 21, 92, 31, 203, 10, 77, 13, 71, 8, 18, 68, 101, 21, 130, 53, 226, 10, 167, 77, 160, 10, 138, 35, 40, 15, 252, 70, 225, 18, 184, 67, 175, 47, 252, 19, 228, 3, 71, 19, 220, 3, 160, 38, 9, 12, 126, 23, 251, 20, 9, 62, 131, 6, 213, 32, 159, 4, 239, 58, 62, 9, 65, 77, 90, 27, 187, 46, 26, 6, 111, 28, 104, 4, 219, 65, 252, 5, 146, 61, 5, 21, 116, 57, 17, 8, 137, 78, 107, 8, 6, 67, 53, 32, 247, 69, 174, 24, 91, 21, 224, 5, 4, 16, 14, 10, 13, 68, 154, 26, 41, 22, 72, 11, 252, 64, 54, 13, 15, 35, 39, 7, 191, 78, 129, 18, 94, 76, 126, 28, 2, 26, 221, 10, 208, 44, 249, 12, 197, 75, 190, 19, 190, 73, 114, 18, 55, 64, 69, 9, 206, 79, 34, 17, 89, 44, 158, 103, 73, 45, 252, 11, 50, 11, 30, 6, 244, 19, 46, 4, 142, 37, 51, 19, 75, 19, 208, 13, 117, 29, 110, 3, 237, 80, 83, 3, 26, 27, 43, 17, 159, 65, 53, 30, 153, 39, 251, 3, 117, 38, 196, 3, 134, 60, 115, 15, 99, 60, 102, 13, 175, 73, 214, 3, 152, 78, 195, 3, 236, 65, 87, 50, 254, 55, 104, 16, 199, 25, 196, 4, 6, 36, 46, 3, 46, 66, 14, 20, 29, 22, 34, 19, 112, 21, 6, 7, 34, 79, 122, 15, 109, 66, 34, 24, 9, 70, 41, 23, 149, 36, 92, 13, 50, 29, 179, 7, 81, 76, 57, 20, 59, 74, 190, 11, 70, 64, 204, 14, 198, 62, 63, 9, 216, 33, 183, 10, 229, 36, 246, 102, 104, 42, 7, 5, 227, 13, 241, 3, 230, 21, 38, 14, 253, 75, 136, 21, 165, 48, 29, 3, 154, 80, 143, 3, 67, 60, 250, 11, 141, 66, 35, 40, 195, 73, 73, 10, 73, 15, 244, 4, 63, 76, 43, 13, 132, 70, 110, 20, 91, 75, 142, 6, 52, 76, 100, 12, 152, 70, 2, 42, 241, 64, 189, 26, 62, 12, 250, 8, 117, 42, 133, 9, 220, 60, 1, 27, 53, 49, 53, 13, 108, 43, 225, 12, 122, 65, 120, 9, 165, 73, 59, 26, 19, 67, 159, 38, 199, 49, 45, 10, 233, 34, 68, 12, 89, 74, 84, 30, 171, 71, 40, 15, 251, 79, 98, 14, 146, 76, 52, 13, 244, 50, 173, 75, 30, 41, 84, 90, 1, 0, 3, 0, 0, 0, 1, 0, 2, 0, 4, 0, 82, 120, 26, 113, 81, 106, 240, 99, 241, 93, 78, 88, 2, 83, 7, 78, 89, 73, 242, 68, 51, 115, 174, 103, 80, 93, 251, 83, 149, 75, 6, 68, 56, 61, 25, 55, 150, 49, 161, 44, 205, 76, 21, 46, 166, 27, 151, 16, 244, 9, 249, 5, 149, 3, 38, 2, 74, 1, 198, 0, 249, 79, 26, 80, 59, 80, 92, 80, 125, 80, 164, 80, 197, 80, 236, 80, 13, 81, 52, 81, 85, 81, 124, 81, 157, 81, 196, 81, 236, 81, 19, 82, 58, 82, 97, 82, 137, 82, 176, 82, 215, 82, 255, 82, 38, 83, 84, 83, 123, 83, 169, 83, 208, 83, 254, 83, 38, 84, 84, 84, 129, 84, 175, 84, 221, 84, 11, 85, 57, 85, 103, 85, 149, 85, 201, 85, 247, 85, 43, 86, 89, 86, 142, 86, 194, 86, 247, 86, 43, 87, 95, 87, 148, 87, 200, 87, 3, 88, 56, 88, 115, 88, 174, 88, 233, 88, 36, 89, 95, 89, 154, 89, 219, 89, 22, 90, 88, 90, 153, 90, 212, 90, 28, 91, 94, 91, 159, 91, 231, 91, 48, 92, 113, 92, 192, 92, 8, 93, 80, 93, 159, 93, 237, 93, 60, 94, 138, 94, 224, 94, 46, 95, 131, 95, 217, 95, 52, 96, 138, 96, 229, 96, 72, 97, 163, 97, 6, 98, 104, 98, 209, 98, 51, 99, 156, 99, 11, 100, 123, 100, 234, 100, 96, 101, 214, 101, 76, 102, 201, 102, 76, 103, 207, 103, 82, 104, 220, 104, 108, 105, 252, 105, 147, 106, 48, 107, 205, 107, 113, 108, 27, 109, 204, 109, 125, 110, 59, 111, 249, 111, 197, 112, 150, 113, 111, 114, 84, 115, 64, 116, 50, 117, 50, 118, 63, 119, 88, 120, 225, 122, 255, 127, 255, 127, 255, 127, 255, 127, 255, 127, 255, 127, 255, 127, 225, 122, 88, 120, 63, 119, 50, 118, 50, 117, 64, 116, 84, 115, 111, 114, 150, 113, 197, 112, 249, 111, 59, 111, 125, 110, 204, 109, 27, 109, 113, 108, 205, 107, 48, 107, 147, 106, 252, 105, 108, 105, 220, 104, 82, 104, 207, 103, 76, 103, 201, 102, 76, 102, 214, 101, 96, 101, 234, 100, 123, 100, 11, 100, 156, 99, 51, 99, 209, 98, 104, 98, 6, 98, 163, 97, 72, 97, 229, 96, 138, 96, 52, 96, 217, 95, 131, 95, 46, 95, 224, 94, 138, 94, 60, 94, 237, 93, 159, 93, 80, 93, 8, 93, 192, 92, 113, 92, 48, 92, 231, 91, 159, 91, 94, 91, 28, 91, 212, 90, 153, 90, 88, 90, 22, 90, 219, 89, 154, 89, 95, 89, 36, 89, 233, 88, 174, 88, 115, 88, 56, 88, 3, 88, 200, 87, 148, 87, 95, 87, 43, 87, 247, 86, 194, 86, 142, 86, 89, 86, 43, 86, 247, 85, 201, 85, 149, 85, 103, 85, 57, 85, 11, 85, 221, 84, 175, 84, 129, 84, 84, 84, 38, 84, 254, 83, 208, 83, 169, 83, 123, 83, 84, 83, 38, 83, 255, 82, 215, 82, 176, 82, 137, 82, 97, 82, 58, 82, 19, 82, 236, 81, 196, 81, 157, 81, 124, 81, 85, 81, 52, 81, 13, 81, 236, 80, 197, 80, 164, 80, 125, 80, 92, 80, 59, 80, 26, 80, 249, 79, 210, 79, 177, 79, 145, 79, 112, 79, 13, 0, 14, 0, 16, 0, 18, 0, 20, 0, 21, 0, 27, 0, 32, 0, 6, 0, 7, 0, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 13, 0, 14, 0, 16, 0, 18, 0, 19, 0, 21, 0, 26, 0, 31, 0, 6, 0, 6, 0, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 79, 115, 156, 110, 74, 97, 126, 77, 72, 54, 9, 31, 195, 10, 153, 251, 125, 242, 48, 239, 127, 240, 173, 244, 231, 249, 176, 254, 22, 2, 202, 3, 255, 3, 55, 3, 4, 2, 220, 0, 0, 0, 125, 255, 62, 255, 41, 255, 0, 0, 216, 127, 107, 127, 182, 126, 187, 125, 123, 124, 248, 122, 53, 121, 53, 119, 250, 116, 137, 114, 128, 46, 128, 67, 0, 120, 0, 101, 128, 94, 64, 113, 64, 95, 192, 28, 64, 76, 192, 57, 84, 0, 1, 0, 254, 255, 2, 0, 5, 0, 10, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 5, 0, 10, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 5, 0, 9, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 10, 0, 19, 0, 20, 0, 84, 0, 1, 0, 254, 255, 2, 0, 3, 0, 6, 0, 5, 0, 9, 0, 20, 0, 94, 0, 0, 0, 253, 255, 3, 0, 3, 0, 6, 0, 5, 0, 9, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 19, 0, 19, 0, 19, 0, 19, 0, 23, 0, 39, 0, 57, 0, 5, 0, 8, 0, 8, 0, 7, 0, 8, 0, 7, 0, 2, 0, 8, 0, 4, 0, 7, 0, 2, 0, 4, 0, 7, 0, 2, 0, 8, 0, 4, 0, 7, 0, 2, 0, 8, 0, 8, 0, 7, 0, 8, 0, 7, 0, 2, 0, 6, 0, 4, 0, 7, 0, 2, 0, 6, 0, 4, 0, 7, 0, 2, 0, 6, 0, 4, 0, 7, 0, 2, 0, 6, 0, 8, 0, 9, 0, 9, 0, 8, 0, 9, 0, 2, 0, 6, 0, 4, 0, 9, 0, 2, 0, 6, 0, 8, 0, 9, 0, 2, 0, 6, 0, 4, 0, 9, 0, 2, 0, 6, 0, 8, 0, 9, 0, 9, 0, 8, 0, 11, 0, 3, 0, 7, 0, 4, 0, 11, 0, 3, 0, 7, 0, 8, 0, 11, 0, 3, 0, 7, 0, 4, 0, 11, 0, 3, 0, 7, 0, 8, 0, 9, 0, 9, 0, 8, 0, 13, 0, 4, 0, 7, 0, 5, 0, 13, 0, 4, 0, 7, 0, 8, 0, 13, 0, 4, 0, 7, 0, 5, 0, 13, 0, 4, 0, 7, 0, 9, 0, 9, 0, 9, 0, 8, 0, 13, 0, 4, 0, 4, 0, 5, 0, 6, 0, 13, 0, 4, 0, 4, 0, 5, 0, 8, 0, 13, 0, 4, 0, 4, 0, 5, 0, 6, 0, 13, 0, 4, 0, 4, 0, 5, 0, 8, 0, 9, 0, 9, 0, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 10, 0, 10, 0, 7, 0, 7, 0, 5, 0, 1, 0, 1, 0, 1, 0, 1, 0, 10, 0, 10, 0, 7, 0, 7, 0, 8, 0, 1, 0, 1, 0, 1, 0, 1, 0, 10, 0, 10, 0, 7, 0, 7, 0, 5, 0, 1, 0, 1, 0, 1, 0, 1, 0, 10, 0, 10, 0, 7, 0, 7, 0, 7, 0, 8, 0, 9, 0, 8, 0, 6, 0, 9, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 6, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 9, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 6, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 3, 0, 8, 0, 9, 0, 9, 0, 6, 0, 95, 0, 103, 0, 118, 0, 134, 0, 148, 0, 159, 0, 204, 0, 244, 0, 39, 0, 43, 0, 38, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 48, 0, 49, 0, 61, 0, 62, 0, 82, 0, 83, 0, 47, 0, 46, 0, 45, 0, 44, 0, 81, 0, 80, 0, 79, 0, 78, 0, 17, 0, 18, 0, 20, 0, 22, 0, 77, 0, 76, 0, 75, 0, 74, 0, 29, 0, 30, 0, 43, 0, 42, 0, 41, 0, 40, 0, 38, 0, 39, 0, 16, 0, 19, 0, 21, 0, 50, 0, 51, 0, 59, 0, 60, 0, 63, 0, 64, 0, 72, 0, 73, 0, 84, 0, 85, 0, 93, 0, 94, 0, 32, 0, 33, 0, 35, 0, 36, 0, 53, 0, 54, 0, 56, 0, 57, 0, 66, 0, 67, 0, 69, 0, 70, 0, 87, 0, 88, 0, 90, 0, 91, 0, 34, 0, 55, 0, 68, 0, 89, 0, 37, 0, 58, 0, 71, 0, 92, 0, 31, 0, 52, 0, 65, 0, 86, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 1, 0, 0, 0, 15, 0, 14, 0, 13, 0, 12, 0, 11, 0, 10, 0, 9, 0, 8, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 46, 0, 65, 0, 84, 0, 45, 0, 44, 0, 43, 0, 64, 0, 63, 0, 62, 0, 83, 0, 82, 0, 81, 0, 102, 0, 101, 0, 100, 0, 42, 0, 61, 0, 80, 0, 99, 0, 28, 0, 47, 0, 66, 0, 85, 0, 18, 0, 41, 0, 60, 0, 79, 0, 98, 0, 29, 0, 48, 0, 67, 0, 17, 0, 20, 0, 22, 0, 40, 0, 59, 0, 78, 0, 97, 0, 21, 0, 30, 0, 49, 0, 68, 0, 86, 0, 19, 0, 16, 0, 87, 0, 39, 0, 38, 0, 58, 0, 57, 0, 77, 0, 35, 0, 54, 0, 73, 0, 92, 0, 76, 0, 96, 0, 95, 0, 36, 0, 55, 0, 74, 0, 93, 0, 32, 0, 51, 0, 33, 0, 52, 0, 70, 0, 71, 0, 89, 0, 90, 0, 31, 0, 50, 0, 69, 0, 88, 0, 37, 0, 56, 0, 75, 0, 94, 0, 34, 0, 53, 0, 72, 0, 91, 0, 0, 0, 1, 0, 4, 0, 5, 0, 3, 0, 6, 0, 7, 0, 2, 0, 13, 0, 15, 0, 8, 0, 9, 0, 11, 0, 12, 0, 14, 0, 10, 0, 16, 0, 28, 0, 74, 0, 29, 0, 75, 0, 27, 0, 73, 0, 26, 0, 72, 0, 30, 0, 76, 0, 51, 0, 97, 0, 50, 0, 71, 0, 96, 0, 117, 0, 31, 0, 77, 0, 52, 0, 98, 0, 49, 0, 70, 0, 95, 0, 116, 0, 53, 0, 99, 0, 32, 0, 78, 0, 33, 0, 79, 0, 48, 0, 69, 0, 94, 0, 115, 0, 47, 0, 68, 0, 93, 0, 114, 0, 46, 0, 67, 0, 92, 0, 113, 0, 19, 0, 21, 0, 23, 0, 22, 0, 18, 0, 17, 0, 20, 0, 24, 0, 111, 0, 43, 0, 89, 0, 110, 0, 64, 0, 65, 0, 44, 0, 90, 0, 25, 0, 45, 0, 66, 0, 91, 0, 112, 0, 54, 0, 100, 0, 40, 0, 61, 0, 86, 0, 107, 0, 39, 0, 60, 0, 85, 0, 106, 0, 36, 0, 57, 0, 82, 0, 103, 0, 35, 0, 56, 0, 81, 0, 102, 0, 34, 0, 55, 0, 80, 0, 101, 0, 42, 0, 63, 0, 88, 0, 109, 0, 41, 0, 62, 0, 87, 0, 108, 0, 38, 0, 59, 0, 84, 0, 105, 0, 37, 0, 58, 0, 83, 0, 104, 0, 0, 0, 1, 0, 4, 0, 3, 0, 5, 0, 6, 0, 13, 0, 7, 0, 2, 0, 8, 0, 9, 0, 11, 0, 15, 0, 12, 0, 14, 0, 10, 0, 28, 0, 82, 0, 29, 0, 83, 0, 27, 0, 81, 0, 26, 0, 80, 0, 30, 0, 84, 0, 16, 0, 55, 0, 109, 0, 56, 0, 110, 0, 31, 0, 85, 0, 57, 0, 111, 0, 48, 0, 73, 0, 102, 0, 127, 0, 32, 0, 86, 0, 51, 0, 76, 0, 105, 0, 130, 0, 52, 0, 77, 0, 106, 0, 131, 0, 58, 0, 112, 0, 33, 0, 87, 0, 19, 0, 23, 0, 53, 0, 78, 0, 107, 0, 132, 0, 21, 0, 22, 0, 18, 0, 17, 0, 20, 0, 24, 0, 25, 0, 50, 0, 75, 0, 104, 0, 129, 0, 47, 0, 72, 0, 101, 0, 126, 0, 54, 0, 79, 0, 108, 0, 133, 0, 46, 0, 71, 0, 100, 0, 125, 0, 128, 0, 103, 0, 74, 0, 49, 0, 45, 0, 70, 0, 99, 0, 124, 0, 42, 0, 67, 0, 96, 0, 121, 0, 39, 0, 64, 0, 93, 0, 118, 0, 38, 0, 63, 0, 92, 0, 117, 0, 35, 0, 60, 0, 89, 0, 114, 0, 34, 0, 59, 0, 88, 0, 113, 0, 44, 0, 69, 0, 98, 0, 123, 0, 43, 0, 68, 0, 97, 0, 122, 0, 41, 0, 66, 0, 95, 0, 120, 0, 40, 0, 65, 0, 94, 0, 119, 0, 37, 0, 62, 0, 91, 0, 116, 0, 36, 0, 61, 0, 90, 0, 115, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 26, 0, 87, 0, 27, 0, 88, 0, 28, 0, 89, 0, 29, 0, 90, 0, 30, 0, 91, 0, 51, 0, 80, 0, 112, 0, 141, 0, 52, 0, 81, 0, 113, 0, 142, 0, 54, 0, 83, 0, 115, 0, 144, 0, 55, 0, 84, 0, 116, 0, 145, 0, 58, 0, 119, 0, 59, 0, 120, 0, 21, 0, 22, 0, 23, 0, 17, 0, 18, 0, 19, 0, 31, 0, 60, 0, 92, 0, 121, 0, 56, 0, 85, 0, 117, 0, 146, 0, 20, 0, 24, 0, 25, 0, 50, 0, 79, 0, 111, 0, 140, 0, 57, 0, 86, 0, 118, 0, 147, 0, 49, 0, 78, 0, 110, 0, 139, 0, 48, 0, 77, 0, 53, 0, 82, 0, 114, 0, 143, 0, 109, 0, 138, 0, 47, 0, 76, 0, 108, 0, 137, 0, 32, 0, 33, 0, 61, 0, 62, 0, 93, 0, 94, 0, 122, 0, 123, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 102, 0, 103, 0, 104, 0, 105, 0, 106, 0, 107, 0, 131, 0, 132, 0, 133, 0, 134, 0, 135, 0, 136, 0, 34, 0, 63, 0, 95, 0, 124, 0, 35, 0, 64, 0, 96, 0, 125, 0, 36, 0, 65, 0, 97, 0, 126, 0, 37, 0, 66, 0, 98, 0, 127, 0, 38, 0, 67, 0, 99, 0, 128, 0, 39, 0, 68, 0, 100, 0, 129, 0, 40, 0, 69, 0, 101, 0, 130, 0, 8, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 14, 0, 16, 0, 9, 0, 10, 0, 12, 0, 13, 0, 15, 0, 11, 0, 17, 0, 20, 0, 22, 0, 24, 0, 23, 0, 19, 0, 18, 0, 21, 0, 56, 0, 88, 0, 122, 0, 154, 0, 57, 0, 89, 0, 123, 0, 155, 0, 58, 0, 90, 0, 124, 0, 156, 0, 52, 0, 84, 0, 118, 0, 150, 0, 53, 0, 85, 0, 119, 0, 151, 0, 27, 0, 93, 0, 28, 0, 94, 0, 29, 0, 95, 0, 30, 0, 96, 0, 31, 0, 97, 0, 61, 0, 127, 0, 62, 0, 128, 0, 63, 0, 129, 0, 59, 0, 91, 0, 125, 0, 157, 0, 32, 0, 98, 0, 64, 0, 130, 0, 1, 0, 0, 0, 25, 0, 26, 0, 33, 0, 99, 0, 34, 0, 100, 0, 65, 0, 131, 0, 66, 0, 132, 0, 54, 0, 86, 0, 120, 0, 152, 0, 60, 0, 92, 0, 126, 0, 158, 0, 55, 0, 87, 0, 121, 0, 153, 0, 117, 0, 116, 0, 115, 0, 46, 0, 78, 0, 112, 0, 144, 0, 43, 0, 75, 0, 109, 0, 141, 0, 40, 0, 72, 0, 106, 0, 138, 0, 36, 0, 68, 0, 102, 0, 134, 0, 114, 0, 149, 0, 148, 0, 147, 0, 146, 0, 83, 0, 82, 0, 81, 0, 80, 0, 51, 0, 50, 0, 49, 0, 48, 0, 47, 0, 45, 0, 44, 0, 42, 0, 39, 0, 35, 0, 79, 0, 77, 0, 76, 0, 74, 0, 71, 0, 67, 0, 113, 0, 111, 0, 110, 0, 108, 0, 105, 0, 101, 0, 145, 0, 143, 0, 142, 0, 140, 0, 137, 0, 133, 0, 41, 0, 73, 0, 107, 0, 139, 0, 37, 0, 69, 0, 103, 0, 135, 0, 38, 0, 70, 0, 104, 0, 136, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 1, 0, 0, 0, 16, 0, 15, 0, 14, 0, 13, 0, 12, 0, 11, 0, 10, 0, 9, 0, 8, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 115, 0, 116, 0, 117, 0, 118, 0, 119, 0, 120, 0, 72, 0, 73, 0, 161, 0, 162, 0, 65, 0, 68, 0, 69, 0, 108, 0, 111, 0, 112, 0, 154, 0, 157, 0, 158, 0, 197, 0, 200, 0, 201, 0, 32, 0, 33, 0, 121, 0, 122, 0, 74, 0, 75, 0, 163, 0, 164, 0, 66, 0, 109, 0, 155, 0, 198, 0, 19, 0, 23, 0, 21, 0, 22, 0, 18, 0, 17, 0, 20, 0, 24, 0, 25, 0, 37, 0, 36, 0, 35, 0, 34, 0, 80, 0, 79, 0, 78, 0, 77, 0, 126, 0, 125, 0, 124, 0, 123, 0, 169, 0, 168, 0, 167, 0, 166, 0, 70, 0, 67, 0, 71, 0, 113, 0, 110, 0, 114, 0, 159, 0, 156, 0, 160, 0, 202, 0, 199, 0, 203, 0, 76, 0, 165, 0, 81, 0, 82, 0, 92, 0, 91, 0, 93, 0, 83, 0, 95, 0, 85, 0, 84, 0, 94, 0, 101, 0, 102, 0, 96, 0, 104, 0, 86, 0, 103, 0, 87, 0, 97, 0, 127, 0, 128, 0, 138, 0, 137, 0, 139, 0, 129, 0, 141, 0, 131, 0, 130, 0, 140, 0, 147, 0, 148, 0, 142, 0, 150, 0, 132, 0, 149, 0, 133, 0, 143, 0, 170, 0, 171, 0, 181, 0, 180, 0, 182, 0, 172, 0, 184, 0, 174, 0, 173, 0, 183, 0, 190, 0, 191, 0, 185, 0, 193, 0, 175, 0, 192, 0, 176, 0, 186, 0, 38, 0, 39, 0, 49, 0, 48, 0, 50, 0, 40, 0, 52, 0, 42, 0, 41, 0, 51, 0, 58, 0, 59, 0, 53, 0, 61, 0, 43, 0, 60, 0, 44, 0, 54, 0, 194, 0, 179, 0, 189, 0, 196, 0, 177, 0, 195, 0, 178, 0, 187, 0, 188, 0, 151, 0, 136, 0, 146, 0, 153, 0, 134, 0, 152, 0, 135, 0, 144, 0, 145, 0, 105, 0, 90, 0, 100, 0, 107, 0, 88, 0, 106, 0, 89, 0, 98, 0, 99, 0, 62, 0, 47, 0, 57, 0, 64, 0, 45, 0, 63, 0, 46, 0, 55, 0, 56, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 23, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 38, 0, 141, 0, 39, 0, 142, 0, 40, 0, 143, 0, 41, 0, 144, 0, 42, 0, 145, 0, 43, 0, 146, 0, 44, 0, 147, 0, 45, 0, 148, 0, 46, 0, 149, 0, 47, 0, 97, 0, 150, 0, 200, 0, 48, 0, 98, 0, 151, 0, 201, 0, 49, 0, 99, 0, 152, 0, 202, 0, 86, 0, 136, 0, 189, 0, 239, 0, 87, 0, 137, 0, 190, 0, 240, 0, 88, 0, 138, 0, 191, 0, 241, 0, 91, 0, 194, 0, 92, 0, 195, 0, 93, 0, 196, 0, 94, 0, 197, 0, 95, 0, 198, 0, 29, 0, 30, 0, 31, 0, 32, 0, 33, 0, 34, 0, 35, 0, 50, 0, 100, 0, 153, 0, 203, 0, 89, 0, 139, 0, 192, 0, 242, 0, 51, 0, 101, 0, 154, 0, 204, 0, 55, 0, 105, 0, 158, 0, 208, 0, 90, 0, 140, 0, 193, 0, 243, 0, 59, 0, 109, 0, 162, 0, 212, 0, 63, 0, 113, 0, 166, 0, 216, 0, 67, 0, 117, 0, 170, 0, 220, 0, 36, 0, 37, 0, 54, 0, 53, 0, 52, 0, 58, 0, 57, 0, 56, 0, 62, 0, 61, 0, 60, 0, 66, 0, 65, 0, 64, 0, 70, 0, 69, 0, 68, 0, 104, 0, 103, 0, 102, 0, 108, 0, 107, 0, 106, 0, 112, 0, 111, 0, 110, 0, 116, 0, 115, 0, 114, 0, 120, 0, 119, 0, 118, 0, 157, 0, 156, 0, 155, 0, 161, 0, 160, 0, 159, 0, 165, 0, 164, 0, 163, 0, 169, 0, 168, 0, 167, 0, 173, 0, 172, 0, 171, 0, 207, 0, 206, 0, 205, 0, 211, 0, 210, 0, 209, 0, 215, 0, 214, 0, 213, 0, 219, 0, 218, 0, 217, 0, 223, 0, 222, 0, 221, 0, 73, 0, 72, 0, 71, 0, 76, 0, 75, 0, 74, 0, 79, 0, 78, 0, 77, 0, 82, 0, 81, 0, 80, 0, 85, 0, 84, 0, 83, 0, 123, 0, 122, 0, 121, 0, 126, 0, 125, 0, 124, 0, 129, 0, 128, 0, 127, 0, 132, 0, 131, 0, 130, 0, 135, 0, 134, 0, 133, 0, 176, 0, 175, 0, 174, 0, 179, 0, 178, 0, 177, 0, 182, 0, 181, 0, 180, 0, 185, 0, 184, 0, 183, 0, 188, 0, 187, 0, 186, 0, 226, 0, 225, 0, 224, 0, 229, 0, 228, 0, 227, 0, 232, 0, 231, 0, 230, 0, 235, 0, 234, 0, 233, 0, 238, 0, 237, 0, 236, 0, 96, 0, 199, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 3, 0, 1, 0, 3, 0, 2, 0, 4, 0, 1, 0, 4, 0, 1, 0, 4, 0, 0, 0, 205, 12, 156, 25, 0, 32, 102, 38, 205, 44, 0, 48, 51, 51, 102, 54, 154, 57, 205, 60, 0, 64, 51, 67, 102, 70, 154, 73, 205, 76, 159, 0, 64, 241, 53, 167, 206, 0, 190, 242, 52, 176, 12, 1, 67, 244, 88, 185, 93, 1, 201, 245, 133, 194, 163, 1, 215, 246, 223, 200, 226, 1, 166, 247, 189, 205, 42, 2, 116, 248, 147, 210, 125, 2, 66, 249, 109, 215, 221, 2, 18, 250, 77, 220, 74, 3, 222, 250, 30, 225, 201, 3, 174, 251, 0, 230, 90, 4, 124, 252, 216, 234, 1, 5, 74, 253, 179, 239, 193, 5, 25, 254, 141, 244, 158, 6, 231, 254, 104, 249, 156, 7, 181, 255, 67, 254, 193, 8, 133, 0, 33, 3, 17, 10, 83, 1, 252, 7, 147, 11, 33, 2, 213, 12, 80, 13, 240, 2, 178, 17, 79, 15, 190, 3, 140, 22, 155, 17, 141, 4, 104, 27, 63, 20, 91, 5, 67, 32, 72, 23, 41, 6, 29, 37, 199, 26, 248, 6, 249, 41, 203, 30, 199, 7, 212, 46, 105, 35, 149, 8, 175, 51, 185, 40, 100, 9, 138, 56, 222, 48, 113, 10, 224, 62, 135, 63, 244, 11, 253, 71, 150, 82, 120, 13, 27, 81, 93, 107, 252, 14, 57, 90, 93, 107, 252, 14, 57, 90, 0, 0, 1, 0, 3, 0, 2, 0, 6, 0, 4, 0, 5, 0, 7, 0, 0, 0, 1, 0, 3, 0, 2, 0, 5, 0, 6, 0, 4, 0, 7, 0, 248, 127, 211, 127, 76, 127, 108, 126, 51, 125, 163, 123, 188, 121, 127, 119, 239, 116, 12, 114, 217, 110, 89, 107, 141, 103, 121, 99, 31, 95, 130, 90, 166, 85, 141, 80, 60, 75, 182, 69, 0, 64, 28, 58, 15, 52, 223, 45, 141, 39, 32, 33, 156, 26, 6, 20, 97, 13, 178, 6, 0, 0, 78, 249, 159, 242, 250, 235, 100, 229, 224, 222, 115, 216, 33, 210, 241, 203, 228, 197, 0, 192, 74, 186, 196, 180, 115, 175, 90, 170, 126, 165, 225, 160, 135, 156, 115, 152, 167, 148, 39, 145, 244, 141, 17, 139, 129, 136, 68, 134, 93, 132, 205, 130, 148, 129, 180, 128, 45, 128, 8, 128, 255, 127, 46, 124, 174, 120, 118, 117, 125, 114, 186, 111, 41, 109, 194, 106, 131, 104, 102, 102, 105, 100, 137, 98, 194, 96, 19, 95, 122, 93, 245, 91, 130, 90, 33, 89, 207, 87, 139, 86, 85, 85, 44, 84, 15, 83, 252, 81, 244, 80, 246, 79, 1, 79, 20, 78, 48, 77, 83, 76, 126, 75, 175, 74, 231, 73, 37, 73, 104, 72, 178, 71, 0, 71, 84, 70, 173, 69, 10, 69, 107, 68, 209, 67, 59, 67, 168, 66, 25, 66, 142, 65, 6, 65, 130, 64, 0, 64, 0, 0, 175, 5, 50, 11, 140, 16, 192, 21, 207, 26, 188, 31, 136, 36, 53, 41, 196, 45, 55, 50, 143, 54, 206, 58, 245, 62, 4, 67, 252, 70, 223, 74, 174, 78, 105, 82, 17, 86, 167, 89, 44, 93, 159, 96, 3, 100, 87, 103, 155, 106, 209, 109, 250, 112, 20, 116, 33, 119, 34, 122, 23, 125, 255, 127, 255, 127, 217, 127, 98, 127, 157, 126, 138, 125, 42, 124, 125, 122, 133, 120, 66, 118, 182, 115, 227, 112, 202, 109, 110, 106, 208, 102, 242, 98, 215, 94, 130, 90, 246, 85, 52, 81, 64, 76, 29, 71, 206, 65, 87, 60, 186, 54, 252, 48, 31, 43, 40, 37, 26, 31, 249, 24, 200, 18, 140, 12, 72, 6, 0, 0, 184, 249, 116, 243, 56, 237, 7, 231, 230, 224, 216, 218, 225, 212, 4, 207, 70, 201, 169, 195, 50, 190, 227, 184, 192, 179, 204, 174, 10, 170, 126, 165, 41, 161, 14, 157, 48, 153, 146, 149, 54, 146, 29, 143, 74, 140, 190, 137, 123, 135, 131, 133, 214, 131, 118, 130, 99, 129, 158, 128, 39, 128, 0, 128, 249, 150, 148, 221, 53, 235, 27, 241, 93, 244, 116, 246, 223, 247, 237, 248, 184, 249, 86, 250, 214, 250, 61, 251, 148, 251, 221, 251, 26, 252, 78, 252, 123, 252, 163, 252, 197, 252, 227, 252, 252, 252, 18, 253, 38, 253, 55, 253, 69, 253, 81, 253, 91, 253, 100, 253, 106, 253, 111, 253, 114, 253, 116, 253, 116, 253, 114, 253, 111, 253, 106, 253, 100, 253, 91, 253, 81, 253, 69, 253, 55, 253, 38, 253, 18, 253, 252, 252, 227, 252, 197, 252, 163, 252, 123, 252, 78, 252, 26, 252, 221, 251, 148, 251, 61, 251, 214, 250, 86, 250, 184, 249, 237, 248, 223, 247, 116, 246, 93, 244, 27, 241, 53, 235, 148, 221, 249, 150, 48, 117, 144, 101, 8, 82, 152, 58, 64, 31, 0, 0, 192, 224, 104, 197, 248, 173, 112, 154, 153, 104, 33, 3, 201, 9, 85, 253, 154, 250, 70, 2, 92, 2, 6, 251, 183, 13, 250, 232, 182, 17, 13, 254, 108, 248, 195, 11, 62, 236, 238, 21, 58, 248, 219, 251, 77, 250, 90, 17, 68, 253, 41, 235, 1, 18, 196, 1, 179, 253, 232, 242, 137, 11, 243, 4, 68, 251, 226, 245, 195, 6, 86, 14, 133, 238, 49, 252, 39, 17, 23, 246, 181, 3, 173, 250, 45, 252, 102, 22, 66, 118, 247, 14, 60, 240, 156, 11, 232, 251, 22, 252, 173, 9, 29, 244, 255, 10, 73, 247, 217, 6, 181, 249, 178, 6, 17, 249, 7, 6, 16, 252, 173, 1, 87, 255, 216, 1, 16, 251, 128, 8, 110, 245, 219, 9, 171, 249, 88, 1, 58, 3, 7, 250, 188, 6, 135, 249, 165, 6, 241, 247, 84, 10, 12, 244, 81, 11, 70, 248, 45, 2, 12, 3, 167, 250, 74, 3, 143, 2, 98, 57, 254, 44, 244, 4, 55, 245, 217, 233, 90, 29, 221, 255, 9, 245, 32, 244, 215, 18, 136, 11, 24, 223, 201, 14, 175, 5, 131, 8, 67, 222, 115, 31, 201, 247, 82, 250, 9, 3, 84, 4, 175, 246, 206, 8, 149, 254, 94, 253, 201, 247, 158, 23, 207, 233, 48, 4, 51, 12, 62, 236, 192, 20, 231, 246, 112, 241, 12, 27, 207, 240, 163, 2, 17, 249, 29, 0, 161, 39, 66, 118, 247, 14, 60, 240, 156, 11, 232, 251, 22, 252, 173, 9, 29, 244, 255, 10, 73, 247, 217, 6, 181, 249, 178, 6, 17, 249, 7, 6, 16, 252, 173, 1, 87, 255, 216, 1, 16, 251, 128, 8, 110, 245, 219, 9, 171, 249, 88, 1, 58, 3, 7, 250, 188, 6, 135, 249, 165, 6, 241, 247, 84, 10, 12, 244, 81, 11, 70, 248, 45, 2, 12, 3, 167, 250, 74, 3, 143, 2, 0, 64, 103, 65, 213, 66, 76, 68, 203, 69, 82, 71, 226, 72, 122, 74, 28, 76, 199, 77, 123, 79, 56, 81, 255, 82, 209, 84, 172, 86, 146, 88, 130, 90, 126, 92, 132, 94, 150, 96, 180, 98, 221, 100, 18, 103, 84, 105, 162, 107, 254, 109, 102, 112, 221, 114, 96, 117, 242, 119, 147, 122, 66, 125, 255, 127, 3, 115, 186, 110, 119, 98, 225, 79, 109, 57, 245, 33, 71, 12, 184, 250, 206, 238, 23, 233, 38, 233, 191, 237, 33, 245, 96, 253, 187, 4, 232, 9, 58, 12, 175, 11, 211, 8, 146, 4, 0, 0, 23, 252, 140, 249, 180, 248, 126, 249, 133, 251, 48, 254, 218, 0, 244, 2, 36, 4, 75, 4, 136, 3, 38, 2, 135, 0, 11, 255, 254, 253, 134, 253, 166, 253, 61, 254, 25, 255, 0, 0, 191, 0, 52, 1, 84, 1, 40, 1, 198, 0, 78, 0, 220, 255, 136, 255, 93, 255, 91, 255, 124, 255, 177, 255, 237, 255, 34, 0, 73, 0, 91, 0, 89, 0, 70, 0, 38, 0, 0, 0, 254, 254, 194, 254, 73, 254, 134, 253, 112, 253, 251, 252, 57, 253, 10, 254, 244, 254, 63, 255, 254, 255, 125, 0, 122, 0, 217, 255, 247, 255, 105, 0, 129, 0, 27, 1, 116, 1, 63, 2, 235, 254, 188, 254, 59, 255, 25, 254, 67, 254, 150, 254, 220, 254, 229, 255, 177, 0, 31, 2, 86, 1, 5, 2, 4, 2, 130, 0, 27, 0, 152, 255, 136, 255, 116, 255, 182, 255, 200, 255, 204, 253, 81, 252, 16, 250, 59, 252, 210, 252, 242, 253, 190, 254, 254, 255, 159, 0, 145, 2, 200, 254, 228, 254, 126, 254, 171, 253, 19, 254, 242, 253, 94, 254, 27, 255, 105, 0, 193, 1, 211, 253, 154, 252, 205, 251, 105, 252, 74, 252, 16, 253, 59, 253, 196, 254, 62, 0, 230, 1, 198, 254, 65, 255, 53, 255, 182, 254, 96, 255, 153, 255, 205, 255, 131, 0, 82, 1, 3, 2, 10, 6, 224, 8, 194, 14, 112, 21, 60, 27, 190, 32, 63, 39, 221, 43, 222, 49, 146, 53, 84, 37, 17, 42, 27, 49, 236, 51, 45, 56, 131, 45, 92, 41, 39, 38, 145, 33, 84, 25, 6, 0, 82, 0, 125, 255, 154, 0, 200, 255, 33, 253, 183, 0, 191, 255, 247, 254, 9, 0, 46, 255, 151, 254, 113, 0, 206, 2, 25, 7, 242, 3, 190, 4, 37, 6, 89, 3, 53, 5, 228, 8, 59, 3, 32, 6, 141, 7, 205, 2, 197, 7, 158, 8, 70, 3, 148, 4, 31, 7, 209, 2, 232, 3, 106, 8, 30, 1, 220, 1, 229, 5, 9, 255, 237, 253, 230, 0, 147, 0, 174, 255, 57, 2, 26, 0, 79, 255, 80, 252, 229, 255, 239, 254, 180, 2, 92, 255, 248, 254, 73, 255, 224, 0, 22, 3, 15, 4, 131, 3, 178, 3, 89, 2, 229, 1, 3, 3, 126, 4, 12, 2, 165, 2, 135, 3, 116, 255, 119, 1, 10, 3, 154, 1, 164, 2, 173, 1, 45, 1, 18, 2, 241, 3, 207, 2, 134, 2, 38, 0, 226, 0, 111, 1, 40, 0, 145, 0, 211, 255, 7, 254, 34, 1, 121, 0, 135, 255, 46, 1, 127, 0, 166, 0, 132, 255, 129, 254, 68, 252, 154, 254, 57, 254, 47, 252, 203, 2, 110, 3, 126, 3, 210, 3, 155, 3, 211, 0, 221, 1, 16, 1, 64, 0, 188, 0, 178, 255, 17, 0, 113, 255, 191, 255, 38, 0, 131, 2, 74, 2, 109, 2, 122, 255, 86, 254, 117, 253, 91, 1, 33, 2, 4, 11, 164, 4, 166, 10, 138, 9, 142, 0, 176, 255, 199, 6, 27, 1, 130, 0, 205, 1, 250, 254, 113, 254, 135, 251, 101, 254, 155, 0, 174, 1, 73, 1, 119, 1, 11, 3, 53, 0, 30, 255, 117, 255, 127, 255, 20, 255, 146, 6, 29, 1, 232, 2, 47, 5, 226, 2, 185, 2, 128, 6, 56, 1, 153, 1, 10, 1, 69, 1, 208, 2, 135, 0, 1, 0, 221, 0, 197, 1, 8, 0, 203, 0, 145, 0, 43, 1, 128, 2, 248, 2, 29, 0, 212, 1, 126, 2, 103, 0, 173, 1, 123, 1, 164, 1, 186, 3, 164, 3, 46, 5, 186, 4, 234, 4, 192, 2, 244, 3, 128, 4, 90, 255, 68, 254, 246, 254, 196, 254, 126, 255, 136, 254, 191, 0, 127, 4, 112, 7, 16, 255, 225, 253, 20, 251, 144, 255, 12, 1, 183, 4, 70, 0, 38, 4, 47, 6, 22, 1, 80, 5, 38, 6, 254, 254, 240, 254, 0, 253, 19, 0, 51, 2, 192, 8, 253, 255, 247, 254, 135, 0, 217, 254, 177, 253, 124, 254, 140, 0, 98, 1, 50, 255, 252, 254, 8, 254, 229, 252, 79, 254, 50, 253, 217, 250, 109, 0, 75, 1, 194, 3, 83, 254, 169, 255, 140, 2, 216, 254, 170, 1, 251, 3, 17, 255, 7, 3, 83, 3, 233, 1, 54, 5, 49, 4, 178, 254, 180, 254, 25, 0, 31, 2, 182, 4, 15, 7, 70, 1, 61, 0, 215, 2, 66, 2, 81, 3, 125, 5, 48, 255, 235, 254, 73, 1, 104, 255, 64, 0, 157, 2, 78, 254, 90, 253, 41, 253, 58, 254, 185, 255, 251, 0, 93, 2, 224, 1, 254, 0, 30, 254, 11, 0, 228, 3, 223, 254, 139, 1, 230, 1, 210, 2, 25, 4, 160, 5, 226, 255, 196, 254, 238, 252, 150, 255, 141, 255, 149, 253, 93, 3, 194, 5, 132, 5, 31, 4, 86, 5, 160, 4, 44, 3, 213, 4, 157, 3, 42, 0, 5, 255, 192, 253, 86, 1, 141, 0, 58, 254, 88, 255, 176, 255, 79, 5, 170, 254, 112, 253, 29, 249, 100, 0, 53, 3, 213, 2, 222, 3, 235, 2, 32, 3, 76, 1, 184, 1, 56, 2, 151, 2, 123, 1, 84, 3, 112, 0, 165, 0, 143, 254, 85, 2, 142, 3, 26, 1, 248, 255, 66, 3, 1, 5, 160, 254, 60, 2, 183, 2, 206, 1, 198, 8, 14, 7, 89, 1, 190, 0, 94, 5, 160, 1, 147, 3, 118, 8, 168, 0, 174, 255, 24, 1, 252, 253, 66, 254, 72, 3, 47, 0, 21, 2, 44, 0, 150, 254, 57, 253, 137, 251, 22, 0, 193, 0, 192, 5, 171, 255, 233, 0, 21, 7, 194, 255, 67, 2, 224, 5, 38, 2, 176, 3, 213, 6, 211, 2, 138, 2, 124, 4, 204, 3, 116, 3, 115, 5, 87, 254, 131, 2, 0, 0, 232, 3, 184, 3, 74, 4, 249, 0, 166, 5, 160, 2, 178, 254, 169, 255, 124, 8, 214, 253, 90, 7, 112, 10, 140, 0, 34, 7, 61, 7, 152, 3, 213, 6, 30, 10, 52, 4, 141, 7, 246, 7, 119, 255, 69, 254, 237, 249, 245, 4, 150, 4, 212, 1, 19, 254, 134, 255, 241, 5, 61, 254, 9, 4, 190, 4, 226, 1, 159, 6, 94, 4, 47, 3, 137, 2, 128, 1, 66, 254, 76, 253, 107, 0, 193, 254, 163, 253, 138, 255, 49, 255, 7, 254, 13, 2, 44, 254, 244, 255, 176, 10, 75, 0, 142, 7, 25, 5, 112, 3, 54, 9, 219, 8, 5, 5, 39, 6, 212, 7, 208, 255, 208, 254, 94, 251, 77, 254, 51, 254, 5, 255, 146, 254, 108, 254, 221, 253, 223, 254, 163, 253, 171, 253, 230, 253, 214, 252, 91, 255, 136, 255, 3, 0, 100, 1, 127, 2, 217, 4, 222, 5, 96, 0, 177, 0, 238, 2, 77, 254, 183, 253, 106, 251, 156, 254, 109, 0, 177, 255, 27, 254, 32, 1, 213, 7, 9, 0, 92, 4, 219, 2, 112, 3, 86, 8, 178, 3, 247, 254, 49, 6, 41, 4, 133, 4, 186, 4, 75, 3, 14, 254, 100, 253, 175, 1, 118, 1, 65, 1, 27, 255, 160, 5, 53, 8, 101, 5, 193, 1, 205, 1, 131, 4, 151, 255, 39, 0, 128, 254, 249, 254, 111, 1, 182, 0, 141, 254, 108, 253, 5, 3, 68, 255, 127, 4, 203, 3, 53, 5, 96, 6, 155, 5, 6, 3, 243, 4, 197, 4, 30, 254, 192, 252, 47, 250, 19, 255, 46, 255, 92, 3, 122, 3, 79, 6, 40, 4, 216, 1, 38, 4, 168, 4, 185, 0, 53, 4, 221, 3, 200, 253, 32, 252, 88, 249, 63, 254, 122, 252, 5, 248, 114, 255, 135, 254, 54, 254, 46, 255, 214, 253, 251, 251, 245, 255, 109, 4, 217, 8, 183, 254, 93, 253, 131, 252, 6, 255, 145, 2, 163, 4, 7, 2, 230, 5, 243, 6, 8, 2, 27, 2, 123, 5, 15, 2, 141, 5, 22, 5, 205, 253, 153, 252, 32, 251, 109, 255, 49, 254, 111, 3, 180, 255, 30, 9, 24, 11, 51, 2, 13, 10, 81, 9, 120, 2, 134, 7, 104, 11, 207, 2, 231, 7, 48, 7, 223, 253, 45, 253, 84, 4, 129, 0, 131, 255, 116, 3, 137, 5, 96, 6, 157, 3, 162, 255, 30, 6, 215, 6, 171, 254, 253, 5, 15, 6, 79, 2, 139, 1, 238, 254, 180, 255, 213, 3, 15, 11, 153, 0, 169, 11, 52, 7, 8, 4, 5, 10, 189, 10, 228, 5, 16, 11, 87, 7, 23, 3, 175, 4, 26, 2, 66, 255, 59, 254, 209, 5, 234, 254, 220, 253, 134, 4, 11, 255, 149, 7, 252, 7, 0, 4, 24, 6, 114, 6, 0, 2, 253, 0, 210, 1, 194, 255, 189, 254, 127, 4, 39, 254, 136, 254, 251, 1, 79, 254, 100, 5, 114, 8, 131, 3, 151, 7, 165, 5, 134, 0, 192, 2, 184, 1, 204, 1, 13, 2, 228, 255, 62, 254, 23, 1, 58, 5, 0, 0, 203, 3, 252, 0, 67, 254, 141, 253, 33, 252, 164, 254, 166, 253, 112, 250, 142, 1, 200, 2, 120, 6, 149, 255, 58, 1, 78, 255, 93, 0, 178, 8, 190, 8, 6, 2, 81, 3, 144, 2, 50, 254, 57, 253, 65, 254, 174, 0, 222, 255, 167, 4, 137, 255, 42, 0, 237, 3, 140, 254, 18, 1, 246, 2, 12, 4, 48, 9, 46, 7, 163, 2, 188, 6, 218, 5, 174, 1, 6, 5, 85, 8, 127, 255, 73, 254, 0, 0, 139, 254, 32, 3, 96, 8, 6, 0, 51, 6, 174, 9, 222, 1, 84, 2, 80, 8, 84, 254, 32, 253, 225, 5, 129, 1, 178, 0, 212, 3, 139, 0, 193, 1, 201, 4, 242, 253, 182, 252, 42, 252, 145, 0, 18, 6, 218, 4, 111, 2, 168, 5, 144, 2, 93, 1, 248, 3, 202, 5, 31, 0, 232, 254, 159, 1, 196, 254, 212, 2, 105, 6, 104, 1, 34, 4, 44, 2, 76, 254, 154, 254, 177, 4, 157, 254, 99, 4, 147, 7, 145, 1, 48, 6, 200, 8, 241, 253, 12, 252, 99, 1, 233, 0, 238, 0, 185, 8, 218, 253, 127, 252, 129, 253, 147, 254, 11, 254, 165, 7, 133, 1, 68, 7, 85, 6, 162, 0, 108, 4, 240, 4, 19, 255, 150, 4, 110, 5, 128, 253, 101, 254, 116, 0, 28, 255, 158, 6, 250, 8, 103, 6, 138, 8, 219, 8, 50, 2, 249, 4, 98, 10, 67, 1, 82, 1, 238, 6, 66, 2, 83, 4, 84, 3, 22, 0, 82, 2, 166, 3, 113, 255, 206, 2, 190, 1, 50, 0, 71, 0, 247, 255, 174, 254, 70, 253, 129, 250, 102, 0, 118, 255, 204, 252, 202, 254, 43, 254, 133, 251, 158, 1, 67, 0, 245, 254, 36, 4, 46, 3, 161, 5, 12, 6, 80, 5, 248, 4, 218, 6, 103, 7, 125, 6, 227, 7, 85, 8, 28, 7, 16, 7, 14, 9, 53, 7, 132, 2, 163, 255, 198, 1, 90, 3, 73, 1, 120, 255, 233, 1, 254, 254, 128, 255, 58, 255, 23, 253, 215, 255, 204, 255, 247, 254, 39, 252, 90, 1, 137, 0, 223, 1, 51, 249, 20, 253, 84, 253, 117, 251, 67, 249, 145, 254, 129, 252, 135, 251, 240, 252, 24, 254, 78, 252, 56, 252, 171, 255, 122, 254, 43, 253, 215, 0, 172, 254, 85, 255, 252, 3, 148, 3, 177, 7, 52, 2, 179, 0, 234, 2, 150, 2, 209, 3, 198, 6, 119, 3, 110, 2, 146, 3, 171, 3, 88, 3, 141, 4, 53, 1, 176, 2, 35, 3, 149, 3, 161, 0, 58, 2, 118, 0, 236, 255, 229, 254, 208, 252, 214, 255, 204, 0, 52, 251, 187, 254, 50, 254, 61, 252, 54, 255, 113, 255, 36, 252, 28, 254, 151, 254, 66, 253, 46, 252, 35, 254, 210, 254, 234, 252, 92, 251, 156, 255, 238, 252, 192, 251, 226, 251, 77, 252, 108, 249, 54, 255, 181, 252, 242, 252, 241, 251, 158, 250, 123, 252, 144, 253, 146, 255, 171, 255, 100, 1, 213, 0, 246, 255, 19, 254, 108, 1, 6, 3, 169, 1, 54, 3, 223, 1, 173, 255, 45, 2, 8, 2, 32, 252, 232, 249, 196, 253, 165, 253, 27, 253, 230, 255, 10, 254, 130, 253, 121, 252, 209, 0, 50, 1, 147, 0, 196, 254, 175, 253, 172, 253, 171, 255, 45, 255, 31, 255, 106, 252, 239, 253, 117, 0, 233, 0, 73, 254, 30, 253, 77, 4, 239, 2, 121, 2, 177, 5, 180, 6, 231, 5, 229, 6, 177, 5, 142, 3, 98, 4, 132, 4, 81, 3, 74, 5, 100, 3, 214, 1, 153, 252, 130, 251, 252, 248, 153, 252, 163, 252, 32, 252, 138, 255, 155, 0, 212, 0, 229, 251, 175, 252, 162, 253, 163, 251, 199, 248, 66, 245, 5, 252, 109, 250, 179, 248, 114, 1, 72, 255, 98, 254, 191, 3, 237, 1, 104, 0, 190, 3, 15, 4, 31, 2, 154, 0, 141, 2, 201, 0, 225, 4, 251, 1, 150, 0, 151, 2, 247, 1, 230, 0, 111, 2, 9, 3, 163, 2, 147, 2, 88, 0, 146, 255, 75, 3, 244, 0, 224, 0, 126, 1, 29, 2, 46, 1, 212, 2, 177, 1, 154, 2, 142, 4, 222, 2, 85, 1, 118, 255, 20, 0, 115, 254, 97, 251, 88, 254, 210, 255, 191, 254, 160, 254, 132, 255, 53, 5, 253, 3, 56, 4, 6, 1, 110, 1, 211, 2, 154, 3, 27, 1, 217, 253, 31, 0, 132, 253, 157, 253, 79, 253, 71, 253, 97, 254, 72, 252, 245, 252, 55, 255, 207, 250, 170, 253, 153, 254, 71, 252, 251, 250, 166, 0, 237, 1, 49, 1, 221, 0, 78, 3, 191, 2], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); allocate([98, 2, 72, 3, 168, 3, 6, 3, 45, 253, 212, 250, 19, 251, 155, 254, 255, 251, 148, 250, 184, 251, 160, 250, 147, 254, 120, 250, 167, 248, 160, 253, 250, 248, 65, 249, 94, 253, 223, 253, 107, 251, 65, 253, 166, 2, 18, 3, 148, 0, 133, 255, 184, 2, 8, 5, 132, 2, 94, 1, 246, 255, 158, 1, 102, 2, 15, 0, 137, 0, 88, 1, 45, 255, 210, 252, 24, 250, 205, 252, 121, 254, 94, 252, 180, 253, 47, 0, 177, 253, 126, 252, 115, 252, 183, 251, 93, 255, 8, 251, 113, 251, 99, 255, 72, 250, 11, 250, 123, 254, 6, 251, 92, 251, 144, 253, 159, 2, 213, 0, 198, 1, 124, 0, 238, 254, 243, 253, 39, 253, 16, 254, 104, 255, 192, 250, 122, 0, 135, 0, 167, 244, 179, 253, 118, 254, 64, 249, 185, 1, 206, 255, 196, 5, 136, 3, 19, 3, 60, 1, 236, 0, 72, 254, 165, 254, 217, 0, 157, 1, 113, 252, 107, 252, 121, 0, 57, 254, 92, 252, 202, 0, 164, 255, 47, 254, 137, 254, 232, 1, 134, 1, 218, 1, 108, 3, 217, 2, 60, 1, 233, 248, 224, 250, 99, 253, 87, 0, 194, 3, 176, 1, 51, 2, 7, 255, 222, 251, 250, 0, 29, 1, 81, 4, 117, 4, 171, 1, 184, 2, 242, 251, 128, 249, 210, 249, 76, 252, 90, 1, 160, 0, 203, 254, 240, 254, 166, 252, 158, 2, 112, 2, 226, 4, 80, 252, 104, 254, 102, 253, 162, 253, 192, 254, 128, 254, 20, 254, 230, 0, 65, 0, 78, 1, 206, 255, 240, 255, 240, 255, 78, 253, 139, 250, 255, 6, 180, 6, 119, 5, 174, 9, 15, 8, 124, 5, 221, 4, 191, 5, 146, 5, 130, 254, 243, 251, 254, 255, 173, 0, 114, 254, 121, 4, 211, 5, 232, 7, 9, 7, 4, 3, 250, 4, 226, 5, 149, 5, 199, 6, 209, 7, 55, 4, 194, 4, 249, 4, 126, 251, 197, 248, 207, 250, 216, 252, 147, 251, 184, 251, 61, 254, 247, 251, 70, 249, 65, 0, 66, 2, 172, 255, 60, 250, 126, 246, 14, 249, 3, 253, 170, 250, 18, 254, 38, 255, 174, 253, 93, 252, 81, 1, 20, 255, 50, 2, 53, 9, 102, 10, 146, 7, 209, 5, 252, 4, 106, 3, 189, 0, 102, 1, 118, 1, 17, 250, 23, 247, 214, 246, 57, 252, 9, 251, 209, 247, 140, 253, 92, 251, 250, 249, 125, 6, 19, 4, 34, 2, 53, 2, 37, 4, 220, 2, 192, 255, 188, 252, 78, 254, 76, 254, 160, 255, 203, 0, 54, 4, 192, 4, 100, 6, 139, 3, 254, 5, 218, 3, 70, 1, 197, 3, 77, 3, 142, 0, 172, 255, 197, 0, 214, 1, 75, 9, 34, 6, 109, 4, 214, 1, 190, 4, 139, 1, 96, 5, 176, 4, 101, 4, 18, 4, 92, 1, 225, 253, 46, 251, 136, 254, 41, 255, 75, 255, 225, 1, 101, 248, 171, 249, 46, 255, 18, 253, 95, 251, 134, 1, 29, 0, 113, 254, 27, 0, 52, 3, 212, 4, 243, 2, 183, 2, 211, 3, 153, 1, 82, 255, 173, 4, 11, 4, 144, 3, 76, 5, 54, 7, 32, 252, 99, 250, 228, 1, 51, 250, 92, 249, 208, 0, 100, 254, 180, 4, 152, 5, 241, 254, 128, 3, 120, 4, 96, 254, 241, 6, 154, 5, 96, 249, 172, 245, 52, 255, 3, 249, 241, 249, 9, 4, 136, 249, 233, 249, 23, 5, 27, 251, 203, 249, 57, 4, 99, 253, 185, 251, 190, 255, 86, 253, 64, 1, 167, 254, 147, 2, 49, 1, 45, 4, 244, 250, 220, 252, 237, 255, 157, 249, 245, 250, 29, 0, 109, 249, 15, 254, 71, 0, 225, 254, 249, 255, 156, 255, 18, 254, 62, 252, 19, 255, 84, 3, 89, 7, 204, 6, 63, 251, 149, 250, 227, 0, 108, 253, 46, 1, 117, 1, 96, 0, 63, 4, 233, 4, 206, 251, 123, 249, 160, 0, 229, 1, 28, 8, 6, 7, 90, 252, 36, 255, 40, 2, 172, 253, 156, 253, 237, 0, 80, 1, 184, 6, 111, 3, 131, 2, 117, 2, 178, 1, 243, 4, 10, 2, 97, 6, 15, 0, 244, 0, 71, 254, 195, 5, 205, 2, 184, 0, 27, 7, 54, 6, 173, 6, 220, 3, 5, 1, 169, 3, 45, 8, 41, 9, 240, 5, 91, 8, 66, 7, 70, 6, 191, 253, 189, 253, 77, 251, 68, 252, 135, 0, 24, 254, 48, 254, 51, 0, 174, 254, 139, 253, 164, 254, 45, 253, 122, 4, 25, 8, 162, 5, 144, 8, 186, 5, 143, 3, 92, 250, 220, 249, 26, 247, 120, 5, 198, 2, 17, 5, 55, 5, 121, 2, 160, 3, 154, 5, 146, 8, 34, 10, 118, 9, 156, 8, 89, 7, 214, 3, 194, 8, 62, 7, 124, 1, 24, 3, 121, 4, 193, 255, 229, 253, 158, 1, 4, 255, 60, 252, 198, 254, 19, 251, 85, 253, 244, 252, 193, 252, 242, 253, 19, 252, 126, 249, 145, 251, 88, 254, 181, 249, 60, 254, 213, 254, 244, 4, 24, 4, 130, 2, 123, 4, 85, 3, 88, 3, 93, 253, 176, 254, 139, 0, 220, 8, 63, 5, 138, 5, 29, 0, 0, 3, 29, 3, 56, 251, 167, 1, 52, 2, 218, 250, 198, 251, 245, 0, 234, 250, 212, 252, 61, 2, 238, 250, 175, 249, 134, 2, 56, 252, 66, 3, 211, 2, 225, 3, 116, 6, 235, 7, 65, 255, 207, 252, 176, 1, 150, 2, 60, 0, 198, 0, 114, 2, 229, 3, 50, 5, 112, 6, 171, 7, 9, 5, 195, 249, 163, 255, 211, 255, 192, 251, 37, 0, 172, 255, 117, 6, 47, 10, 33, 9, 41, 4, 248, 7, 73, 9, 115, 4, 22, 9, 70, 8, 91, 3, 101, 1, 230, 5, 152, 2, 203, 4, 75, 4, 223, 1, 80, 5, 144, 3, 105, 7, 218, 6, 227, 7, 144, 4, 117, 7, 248, 6, 143, 1, 34, 0, 0, 1, 175, 253, 208, 254, 227, 251, 35, 2, 158, 6, 127, 5, 135, 2, 157, 255, 171, 254, 212, 5, 111, 6, 166, 4, 38, 0, 124, 253, 44, 255, 139, 1, 78, 3, 222, 0, 64, 253, 3, 253, 52, 253, 44, 253, 84, 248, 12, 245, 106, 255, 35, 1, 174, 255, 209, 4, 179, 5, 239, 3, 116, 255, 101, 255, 153, 0, 183, 1, 41, 1, 32, 6, 7, 250, 102, 254, 132, 253, 0, 6, 199, 1, 19, 255, 208, 250, 117, 255, 252, 254, 19, 2, 42, 2, 100, 3, 13, 1, 240, 4, 94, 2, 23, 255, 115, 3, 207, 1, 230, 2, 88, 2, 136, 255, 183, 255, 165, 1, 212, 0, 73, 254, 198, 255, 36, 3, 250, 250, 39, 251, 216, 2, 38, 1, 22, 254, 50, 0, 177, 253, 119, 252, 26, 251, 42, 0, 81, 253, 147, 0, 231, 255, 17, 1, 84, 2, 201, 254, 189, 4, 89, 2, 14, 253, 81, 3, 72, 2, 173, 1, 95, 2, 75, 2, 166, 253, 90, 255, 205, 1, 228, 252, 201, 252, 9, 3, 100, 5, 142, 3, 219, 6, 119, 0, 137, 5, 204, 3, 37, 255, 144, 252, 196, 249, 231, 251, 14, 252, 182, 1, 55, 253, 157, 250, 78, 0, 0, 0, 65, 254, 101, 251, 144, 251, 217, 250, 219, 249, 200, 8, 231, 6, 29, 5, 178, 3, 47, 6, 152, 5, 126, 4, 226, 1, 180, 1, 43, 254, 172, 251, 106, 2, 65, 254, 58, 252, 64, 4, 28, 251, 21, 250, 142, 255, 176, 251, 40, 248, 189, 253, 210, 0, 101, 2, 241, 1, 73, 248, 99, 250, 130, 2, 11, 251, 168, 252, 243, 3, 146, 249, 95, 251, 39, 4, 237, 249, 96, 253, 180, 4, 100, 249, 166, 251, 111, 2, 45, 252, 210, 250, 3, 251, 27, 2, 109, 255, 126, 3, 182, 250, 127, 252, 78, 254, 120, 3, 219, 1, 172, 1, 153, 0, 128, 254, 82, 1, 44, 250, 1, 254, 103, 1, 50, 252, 165, 251, 42, 254, 105, 0, 218, 253, 165, 2, 87, 252, 135, 251, 109, 3, 124, 1, 252, 254, 210, 0, 149, 6, 156, 3, 232, 4, 239, 6, 166, 4, 71, 4, 139, 5, 119, 2, 21, 2, 115, 2, 43, 1, 165, 254, 101, 254, 234, 253, 135, 2, 118, 253, 29, 0, 173, 253, 134, 254, 169, 250, 27, 6, 122, 5, 97, 4, 185, 5, 65, 4, 130, 5, 136, 2, 208, 247, 190, 251, 250, 255, 55, 1, 62, 255, 155, 252, 129, 253, 193, 252, 160, 1, 118, 251, 56, 251, 69, 5, 33, 251, 83, 252, 21, 7, 111, 247, 61, 248, 197, 1, 149, 253, 169, 250, 68, 252, 186, 249, 76, 248, 29, 250, 105, 251, 223, 251, 176, 251, 135, 254, 89, 2, 201, 0, 84, 7, 57, 3, 118, 1, 82, 254, 213, 250, 29, 0, 139, 250, 31, 251, 205, 250, 17, 252, 32, 250, 192, 3, 135, 250, 39, 248, 197, 0, 157, 250, 99, 248, 20, 255, 203, 251, 123, 0, 166, 1, 103, 2, 245, 4, 34, 2, 206, 254, 246, 5, 136, 3, 170, 4, 252, 6, 153, 4, 142, 253, 140, 252, 10, 250, 199, 0, 254, 2, 224, 5, 215, 251, 94, 3, 197, 0, 246, 251, 19, 249, 137, 252, 224, 252, 145, 0, 87, 2, 146, 251, 249, 253, 114, 2, 75, 251, 122, 248, 244, 1, 114, 252, 239, 251, 141, 250, 60, 250, 225, 249, 55, 252, 245, 253, 74, 3, 34, 0, 2, 7, 134, 2, 94, 3, 73, 251, 160, 248, 22, 252, 178, 255, 247, 255, 96, 253, 20, 4, 247, 2, 80, 0, 168, 253, 115, 4, 251, 3, 57, 0, 208, 7, 142, 5, 191, 252, 134, 5, 97, 4, 78, 251, 94, 6, 236, 4, 51, 254, 140, 5, 220, 4, 1, 6, 207, 3, 253, 0, 229, 254, 68, 1, 153, 254, 87, 2, 61, 255, 106, 0, 76, 2, 62, 0, 181, 253, 11, 253, 133, 2, 205, 0, 51, 0, 177, 4, 246, 2, 71, 251, 161, 2, 122, 254, 144, 253, 45, 6, 173, 3, 105, 255, 255, 3, 223, 2, 4, 11, 21, 5, 178, 2, 210, 254, 12, 2, 157, 255, 124, 252, 204, 249, 91, 251, 60, 4, 251, 0, 238, 0, 222, 7, 0, 7, 242, 3, 221, 4, 97, 6, 205, 6, 53, 251, 252, 249, 72, 251, 147, 253, 200, 1, 147, 255, 40, 0, 191, 255, 20, 3, 219, 252, 69, 253, 186, 250, 185, 253, 136, 3, 64, 3, 223, 252, 20, 2, 82, 2, 180, 7, 128, 5, 71, 5, 103, 251, 168, 248, 190, 247, 251, 252, 56, 2, 180, 3, 9, 252, 55, 4, 236, 4, 169, 251, 226, 1, 126, 255, 242, 6, 20, 4, 12, 3, 45, 250, 245, 0, 144, 3, 196, 254, 139, 251, 107, 252, 232, 253, 94, 250, 214, 246, 239, 252, 246, 249, 60, 248, 45, 248, 1, 1, 141, 3, 199, 248, 135, 253, 71, 251, 254, 249, 130, 248, 226, 251, 70, 6, 191, 8, 40, 6, 201, 253, 36, 250, 248, 249, 1, 251, 195, 0, 89, 5, 207, 252, 37, 1, 195, 4, 243, 253, 118, 2, 173, 4, 94, 249, 135, 246, 208, 248, 209, 254, 219, 2, 235, 2, 111, 251, 5, 255, 13, 1, 74, 252, 181, 255, 148, 6, 98, 251, 59, 254, 237, 3, 193, 249, 73, 2, 122, 1, 229, 247, 197, 253, 85, 254, 239, 253, 121, 251, 109, 251, 229, 254, 51, 255, 204, 253, 228, 252, 222, 4, 205, 2, 229, 8, 159, 3, 27, 2, 58, 254, 47, 2, 184, 1, 51, 253, 180, 5, 79, 6, 250, 251, 28, 4, 74, 6, 111, 251, 118, 255, 79, 3, 226, 0, 39, 0, 156, 253, 29, 251, 150, 255, 39, 253, 117, 253, 200, 3, 22, 5, 54, 253, 132, 253, 191, 6, 97, 1, 45, 4, 154, 1, 226, 252, 100, 255, 75, 4, 194, 253, 150, 3, 190, 1, 226, 250, 244, 3, 210, 1, 128, 5, 55, 6, 253, 2, 149, 5, 100, 5, 221, 6, 157, 7, 164, 7, 74, 9, 42, 6, 255, 7, 100, 8, 148, 3, 98, 0, 249, 255, 101, 7, 138, 5, 93, 8, 92, 1, 125, 5, 43, 6, 152, 0, 110, 4, 9, 7, 245, 254, 154, 0, 115, 5, 114, 251, 213, 1, 30, 4, 138, 251, 107, 254, 207, 251, 195, 250, 40, 247, 211, 249, 148, 254, 101, 3, 170, 6, 118, 251, 37, 2, 14, 6, 55, 251, 116, 248, 126, 249, 51, 250, 71, 248, 249, 247, 65, 249, 118, 252, 158, 255, 151, 248, 233, 0, 212, 5, 124, 3, 108, 0, 181, 254, 64, 249, 110, 251, 92, 249, 220, 251, 188, 7, 254, 6, 210, 251, 51, 249, 139, 248, 245, 255, 3, 6, 37, 5, 192, 249, 94, 0, 241, 1, 165, 1, 187, 1, 59, 255, 214, 249, 163, 254, 30, 252, 169, 253, 229, 253, 116, 4, 59, 252, 117, 250, 127, 255, 195, 250, 175, 0, 65, 254, 137, 254, 31, 5, 7, 8, 141, 254, 118, 253, 205, 254, 207, 251, 93, 2, 109, 1, 247, 247, 143, 255, 174, 1, 140, 2, 146, 3, 199, 3, 12, 252, 206, 249, 237, 246, 225, 5, 224, 4, 47, 2, 6, 1, 26, 254, 111, 254, 65, 249, 62, 5, 10, 6, 50, 0, 56, 0, 176, 1, 182, 254, 119, 0, 164, 253, 19, 250, 200, 251, 214, 252, 178, 3, 103, 4, 31, 4, 136, 250, 89, 249, 80, 249, 10, 251, 64, 253, 219, 250, 39, 3, 29, 7, 119, 4, 200, 10, 70, 6, 123, 8, 96, 4, 153, 1, 106, 255, 109, 255, 148, 1, 191, 3, 135, 9, 119, 7, 141, 8, 118, 252, 115, 255, 158, 252, 120, 252, 114, 255, 54, 254, 211, 253, 60, 253, 113, 249, 194, 252, 105, 250, 209, 249, 206, 248, 190, 250, 194, 251, 188, 249, 240, 254, 147, 3, 84, 251, 4, 3, 32, 4, 130, 253, 46, 251, 151, 248, 12, 254, 175, 255, 202, 252, 247, 250, 179, 249, 33, 253, 139, 255, 17, 3, 168, 0, 190, 251, 109, 4, 154, 3, 184, 251, 22, 253, 104, 5, 31, 1, 221, 253, 217, 251, 160, 250, 103, 247, 76, 251, 128, 247, 222, 249, 35, 249, 25, 250, 63, 247, 253, 252, 55, 249, 75, 4, 62, 3, 204, 249, 212, 2, 219, 4, 250, 249, 181, 2, 37, 3, 102, 249, 16, 255, 129, 6, 92, 249, 252, 255, 100, 253, 101, 8, 48, 3, 18, 4, 206, 252, 207, 248, 22, 0, 4, 253, 5, 254, 193, 1, 129, 251, 151, 253, 33, 1, 181, 252, 196, 249, 16, 255, 242, 1, 22, 255, 111, 253, 16, 253, 224, 1, 142, 6, 193, 254, 31, 254, 193, 0, 213, 252, 171, 0, 137, 255, 176, 247, 54, 255, 176, 252, 181, 6, 116, 4, 164, 6, 67, 0, 239, 255, 66, 0, 244, 255, 102, 249, 187, 253, 152, 255, 240, 254, 204, 251, 94, 251, 203, 248, 136, 254, 140, 251, 98, 252, 92, 254, 198, 255, 253, 254, 112, 253, 146, 251, 215, 253, 252, 6, 203, 4, 199, 1, 129, 0, 206, 1, 185, 1, 16, 255, 240, 253, 72, 3, 2, 2, 130, 0, 181, 255, 90, 4, 111, 2, 153, 0, 216, 0, 44, 4, 52, 2, 250, 255, 236, 254, 95, 4, 215, 2, 190, 0, 188, 255, 192, 2, 50, 1, 119, 0, 248, 254, 73, 1, 61, 0, 156, 255, 156, 0, 108, 1, 123, 0, 183, 0, 48, 255, 85, 255, 133, 255, 220, 0, 191, 255, 206, 254, 194, 255, 146, 1, 17, 0, 108, 253, 86, 252, 246, 254, 0, 0, 129, 1, 235, 0, 20, 1, 29, 1, 64, 1, 12, 1, 176, 254, 56, 255, 44, 253, 17, 0, 172, 255, 125, 1, 224, 253, 173, 1, 238, 1, 7, 2, 139, 255, 32, 1, 48, 1, 73, 1, 131, 2, 157, 0, 189, 2, 252, 1, 176, 4, 113, 2, 28, 3, 96, 2, 230, 3, 165, 1, 236, 1, 120, 2, 180, 4, 12, 3, 190, 1, 132, 0, 233, 4, 76, 3, 35, 2, 193, 1, 61, 3, 146, 2, 29, 2, 214, 1, 108, 4, 234, 4, 150, 3, 127, 2, 35, 2, 51, 0, 167, 1, 23, 1, 9, 0, 136, 1, 83, 0, 94, 0, 30, 2, 31, 2, 229, 0, 109, 255, 58, 255, 129, 0, 194, 0, 71, 255, 161, 252, 215, 250, 210, 254, 30, 0, 171, 253, 139, 253, 237, 255, 114, 0, 124, 252, 199, 251, 210, 1, 97, 1, 53, 250, 219, 249, 15, 0, 113, 255, 84, 249, 245, 247, 17, 253, 196, 0, 172, 248, 237, 247, 126, 253, 254, 254, 225, 246, 66, 250, 62, 254, 204, 253, 184, 253, 70, 255, 152, 252, 98, 254, 243, 248, 36, 252, 155, 251, 226, 250, 42, 253, 151, 251, 28, 0, 169, 0, 241, 251, 160, 252, 50, 253, 10, 255, 228, 1, 36, 0, 23, 255, 207, 255, 9, 1, 67, 0, 33, 1, 211, 1, 178, 0, 31, 2, 42, 3, 28, 2, 84, 0, 26, 1, 160, 2, 191, 2, 49, 252, 247, 252, 129, 0, 31, 1, 86, 252, 29, 255, 187, 3, 83, 2, 175, 249, 223, 254, 68, 3, 137, 2, 201, 248, 41, 255, 82, 4, 206, 2, 14, 248, 195, 251, 138, 2, 184, 1, 203, 247, 239, 253, 139, 3, 63, 2, 37, 248, 176, 254, 158, 2, 204, 0, 171, 246, 76, 253, 104, 1, 137, 0, 148, 247, 100, 247, 247, 255, 24, 1, 246, 254, 119, 0, 39, 0, 193, 0, 78, 0, 197, 255, 136, 255, 226, 0, 49, 252, 166, 252, 243, 252, 185, 251, 149, 253, 99, 254, 61, 254, 182, 252, 64, 251, 215, 250, 211, 252, 141, 252, 160, 250, 177, 249, 118, 254, 84, 254, 31, 253, 167, 251, 219, 253, 234, 252, 144, 252, 49, 252, 57, 252, 126, 253, 39, 252, 138, 252, 7, 251, 175, 250, 39, 254, 220, 252, 135, 250, 129, 250, 160, 0, 247, 254, 105, 252, 237, 254, 8, 255, 6, 255, 50, 253, 132, 254, 97, 0, 153, 255, 137, 254, 27, 255, 97, 254, 63, 255, 121, 255, 213, 253, 116, 2, 105, 1, 119, 0, 216, 0, 67, 2, 108, 1, 135, 1, 209, 0, 122, 2, 10, 2, 102, 255, 108, 255, 14, 2, 133, 1, 170, 0, 33, 0, 105, 0, 11, 1, 64, 0, 124, 1, 33, 250, 24, 252, 226, 255, 143, 254, 210, 251, 58, 0, 135, 2, 223, 0, 16, 250, 221, 254, 109, 2, 51, 1, 5, 250, 156, 0, 250, 2, 148, 1, 19, 248, 141, 0, 222, 2, 243, 1, 199, 248, 118, 253, 50, 1, 0, 2, 69, 255, 152, 255, 197, 255, 182, 1, 134, 0, 26, 255, 156, 0, 70, 255, 195, 255, 252, 254, 240, 255, 10, 0, 199, 253, 253, 255, 91, 254, 215, 254, 67, 249, 247, 253, 166, 254, 178, 0, 174, 250, 197, 255, 212, 255, 157, 0, 158, 247, 51, 254, 42, 254, 163, 254, 134, 247, 255, 255, 143, 254, 135, 255, 213, 249, 139, 254, 124, 252, 9, 252, 163, 251, 177, 253, 155, 253, 240, 252, 207, 253, 122, 0, 181, 255, 63, 254, 252, 255, 85, 255, 133, 255, 140, 254, 192, 0, 168, 0, 180, 255, 124, 255, 252, 0, 149, 255, 84, 1, 210, 0, 136, 1, 253, 1, 16, 1, 181, 0, 147, 255, 145, 0, 218, 0, 119, 0, 96, 254, 249, 254, 229, 1, 9, 1, 75, 255, 248, 255, 226, 254, 226, 0, 12, 255, 38, 255, 69, 0, 222, 254, 98, 255, 191, 0, 255, 255, 192, 255, 176, 253, 166, 255, 213, 0, 160, 255, 255, 0, 179, 1, 178, 0, 176, 255, 143, 254, 238, 255, 223, 255, 176, 255, 214, 255, 159, 1, 140, 0, 34, 255, 119, 4, 139, 2, 137, 2, 73, 1, 255, 2, 44, 2, 249, 0, 235, 0, 180, 3, 157, 1, 186, 1, 23, 1, 141, 0, 83, 1, 100, 1, 45, 2, 42, 254, 86, 255, 99, 0, 237, 0, 199, 253, 224, 252, 96, 1, 53, 2, 26, 1, 217, 1, 214, 1, 76, 1, 57, 255, 78, 253, 252, 250, 107, 252, 63, 255, 86, 254, 224, 252, 158, 251, 230, 255, 141, 254, 22, 254, 63, 255, 125, 2, 83, 2, 7, 2, 74, 1, 152, 1, 141, 255, 79, 0, 12, 0, 221, 1, 87, 0, 153, 255, 136, 254, 102, 253, 165, 254, 235, 254, 221, 254, 2, 254, 31, 254, 169, 0, 41, 1, 195, 252, 30, 253, 51, 255, 85, 255, 192, 254, 228, 253, 72, 1, 27, 1, 165, 252, 66, 252, 186, 1, 254, 255, 44, 2, 174, 2, 130, 0, 56, 0, 103, 5, 244, 3, 243, 2, 171, 1, 100, 2, 229, 2, 116, 2, 41, 2, 173, 254, 228, 252, 134, 0, 21, 1, 135, 253, 195, 251, 254, 255, 10, 255, 144, 252, 245, 251, 185, 249, 216, 251, 30, 252, 38, 254, 142, 251, 24, 254, 98, 254, 229, 252, 73, 0, 50, 255, 248, 255, 117, 255, 183, 1, 204, 0, 80, 255, 190, 253, 23, 0, 131, 0, 243, 254, 11, 253, 65, 255, 245, 0, 147, 255, 174, 254, 112, 0, 60, 1, 120, 0, 106, 254, 138, 255, 99, 2, 76, 255, 70, 255, 123, 253, 115, 0, 83, 255, 34, 0, 250, 253, 23, 254, 105, 255, 61, 0, 185, 253, 180, 252, 220, 0, 118, 255, 87, 253, 4, 252, 135, 1, 239, 255, 170, 253, 191, 254, 157, 0, 217, 254, 129, 0, 155, 0, 98, 252, 149, 252, 37, 252, 29, 1, 241, 0, 173, 255, 131, 255, 131, 255, 108, 2, 85, 2, 176, 1, 92, 0, 137, 1, 78, 0, 153, 1, 61, 0, 119, 254, 29, 253, 99, 254, 20, 253, 83, 0, 54, 0, 105, 1, 27, 0, 196, 251, 130, 0, 175, 254, 74, 253, 227, 249, 41, 1, 62, 1, 237, 255, 175, 248, 36, 0, 51, 0, 195, 254, 237, 246, 10, 255, 231, 0, 172, 255, 254, 246, 241, 252, 40, 0, 77, 255, 71, 247, 94, 252, 38, 254, 50, 254, 14, 253, 170, 255, 224, 254, 142, 253, 149, 246, 57, 254, 193, 255, 171, 0, 181, 251, 186, 251, 230, 255, 113, 255, 87, 251, 57, 254, 106, 254, 131, 254, 163, 253, 46, 255, 160, 255, 205, 255, 188, 253, 36, 254, 236, 254, 241, 255, 85, 251, 134, 253, 77, 251, 143, 252, 134, 254, 35, 255, 99, 253, 72, 252, 82, 2, 178, 0, 109, 254, 92, 253, 251, 2, 71, 1, 89, 2, 34, 1, 172, 0, 44, 1, 203, 0, 157, 0, 200, 255, 176, 254, 100, 1, 24, 0, 28, 255, 216, 254, 253, 254, 227, 255, 70, 255, 7, 1, 160, 1, 14, 0, 159, 254, 117, 1, 244, 255, 40, 255, 1, 1, 96, 0, 174, 0, 57, 0, 10, 250, 152, 253, 70, 252, 13, 254, 15, 254, 104, 255, 179, 254, 125, 0, 105, 0, 200, 0, 179, 0, 159, 255, 181, 254, 32, 255, 253, 2, 185, 2, 248, 2, 0, 1, 45, 1, 59, 0, 199, 1, 171, 255, 204, 0, 32, 1, 254, 253, 240, 0, 251, 0, 147, 255, 0, 1, 161, 1, 222, 255, 99, 254, 101, 0, 174, 1, 128, 1, 156, 0, 225, 255, 246, 255, 206, 0, 170, 1, 77, 2, 145, 0, 143, 0, 71, 0, 40, 3, 138, 3, 77, 1, 93, 1, 218, 3, 170, 3, 77, 2, 75, 1, 20, 5, 56, 3, 187, 0, 253, 1, 38, 4, 141, 2, 123, 1, 210, 1, 182, 5, 169, 3, 145, 1, 18, 1, 19, 3, 93, 3, 9, 1, 2, 0, 97, 2, 41, 2, 28, 0, 49, 1, 158, 3, 84, 1, 106, 0, 130, 1, 241, 0, 245, 254, 109, 255, 225, 0, 78, 255, 234, 253, 91, 1, 246, 1, 125, 253, 131, 254, 141, 1, 30, 0, 117, 253, 35, 253, 77, 254, 142, 1, 105, 254, 42, 253, 28, 254, 8, 255, 235, 252, 110, 252, 74, 254, 36, 254, 14, 254, 122, 254, 75, 0, 217, 254, 60, 252, 178, 253, 162, 253, 150, 0, 135, 255, 207, 255, 101, 255, 178, 255, 167, 3, 38, 2, 133, 1, 38, 0, 191, 254, 127, 0, 168, 1, 59, 1, 227, 254, 143, 255, 27, 1, 3, 1, 146, 2, 203, 0, 66, 1, 230, 1, 135, 3, 249, 1, 236, 2, 161, 1, 99, 2, 167, 1, 43, 2, 0, 2, 239, 0, 173, 255, 190, 253, 237, 255, 173, 254, 37, 253, 93, 1, 13, 0, 90, 252, 137, 250, 142, 255, 152, 254, 107, 0, 180, 2, 182, 0, 90, 0, 37, 251, 254, 249, 241, 249, 43, 253, 200, 253, 121, 252, 173, 250, 243, 253, 251, 253, 171, 252, 163, 252, 20, 252, 88, 255, 78, 253, 189, 252, 63, 0, 119, 255, 212, 253, 221, 253, 144, 0, 226, 254, 207, 252, 229, 1, 63, 1, 109, 255, 104, 254, 14, 2, 246, 0, 165, 254, 78, 254, 41, 1, 228, 255, 222, 254, 41, 254, 170, 251, 251, 250, 52, 254, 153, 254, 36, 252, 230, 252, 67, 5, 19, 5, 178, 2, 11, 2, 192, 4, 44, 4, 70, 4, 245, 2, 57, 3, 116, 4, 240, 2, 238, 1, 228, 4, 85, 5, 171, 4, 130, 3, 9, 2, 29, 4, 20, 2, 176, 1, 178, 254, 40, 255, 199, 254, 249, 254, 96, 255, 52, 0, 40, 254, 101, 255, 127, 0, 136, 0, 132, 254, 44, 0, 83, 3, 154, 1, 94, 255, 23, 254, 123, 0, 1, 255, 228, 252, 101, 253, 66, 4, 149, 3, 21, 3, 237, 1, 117, 5, 173, 4, 46, 2, 202, 0, 205, 255, 138, 255, 170, 254, 67, 253, 83, 0, 108, 0, 214, 255, 71, 254, 61, 0, 95, 0, 31, 1, 0, 1, 229, 255, 89, 0, 12, 2, 19, 2, 95, 1, 227, 0, 80, 2, 33, 2, 185, 2, 155, 0, 92, 255, 51, 1, 126, 2, 18, 1, 23, 254, 206, 255, 242, 2, 240, 0, 90, 255, 132, 255, 140, 255, 189, 253, 68, 251, 193, 255, 190, 0, 217, 254, 240, 251, 240, 250, 147, 0, 136, 254, 79, 255, 143, 255, 73, 3, 217, 4, 27, 4, 156, 2, 2, 0, 37, 1, 39, 2, 48, 1, 184, 251, 71, 252, 8, 255, 120, 1, 18, 253, 59, 252, 87, 0, 4, 2, 237, 254, 252, 253, 177, 2, 135, 1, 133, 254, 125, 253, 108, 3, 82, 2, 122, 254, 11, 252, 123, 253, 61, 2, 149, 255, 200, 253, 79, 253, 198, 252, 255, 251, 229, 255, 184, 254, 53, 255, 93, 3, 237, 2, 36, 2, 233, 0, 132, 249, 237, 251, 195, 1, 108, 0, 108, 253, 148, 253, 174, 1, 236, 0, 21, 0, 116, 254, 122, 251, 137, 253, 92, 5, 18, 5, 199, 3, 65, 2, 101, 4, 101, 4, 77, 2, 198, 1, 189, 254, 159, 252, 45, 254, 153, 0, 44, 254, 69, 253, 220, 252, 3, 254, 120, 254, 50, 253, 52, 255, 221, 255, 165, 253, 187, 251, 201, 253, 94, 255, 7, 254, 20, 252, 154, 255, 94, 1, 219, 0, 224, 0, 167, 1, 252, 0, 139, 1, 79, 2, 96, 2, 107, 1, 22, 253, 160, 255, 117, 1, 172, 0, 171, 0, 39, 1, 202, 2, 83, 1, 233, 0, 77, 0, 107, 0, 21, 1, 157, 0, 153, 0, 13, 254, 156, 254, 11, 6, 49, 4, 64, 2, 238, 1, 220, 254, 173, 254, 8, 254, 176, 253, 121, 252, 184, 255, 149, 253, 31, 254, 198, 249, 163, 251, 201, 253, 2, 255, 231, 252, 5, 254, 204, 253, 221, 254, 20, 254, 236, 253, 246, 1, 48, 2, 130, 254, 171, 1, 88, 2, 230, 0, 29, 255, 221, 1, 251, 0, 75, 0, 29, 1, 74, 3, 45, 3, 220, 1, 226, 250, 203, 250, 186, 0, 121, 1, 181, 253, 107, 252, 131, 2, 125, 1, 94, 251, 215, 253, 155, 1, 82, 0, 153, 251, 204, 252, 82, 255, 228, 253, 164, 253, 119, 0, 31, 2, 205, 0, 132, 254, 145, 2, 141, 3, 55, 2, 112, 0, 214, 254, 138, 254, 114, 0, 167, 252, 5, 255, 56, 0, 159, 0, 145, 1, 89, 1, 222, 255, 116, 255, 145, 255, 161, 253, 41, 0, 102, 2, 99, 1, 142, 255, 179, 255, 218, 1, 66, 2, 56, 0, 170, 5, 156, 3, 74, 4, 140, 5, 229, 2, 144, 1, 246, 0, 22, 0, 76, 2, 57, 1, 135, 255, 71, 1, 63, 3, 216, 1, 142, 251, 160, 253, 88, 3, 40, 2, 39, 251, 208, 251, 126, 2, 88, 2, 154, 254, 254, 0, 179, 254, 209, 254, 122, 253, 227, 2, 102, 1, 74, 0, 202, 4, 135, 6, 197, 4, 81, 3, 193, 8, 88, 6, 215, 3, 124, 2, 49, 7, 197, 5, 237, 2, 128, 1, 94, 1, 7, 1, 87, 0, 128, 0, 146, 248, 83, 252, 112, 255, 192, 255, 58, 249, 1, 255, 32, 1, 225, 255, 172, 245, 42, 251, 110, 1, 235, 0, 149, 249, 188, 251, 192, 250, 208, 254, 227, 253, 205, 251, 164, 251, 123, 0, 102, 251, 4, 255, 208, 252, 76, 255, 8, 252, 21, 2, 53, 2, 233, 0, 25, 254, 82, 254, 68, 255, 78, 1, 99, 3, 212, 4, 22, 2, 171, 0, 202, 249, 185, 249, 123, 2, 118, 2, 108, 247, 54, 1, 156, 3, 156, 1, 202, 246, 184, 254, 188, 3, 17, 2, 177, 245, 135, 254, 118, 2, 22, 1, 214, 245, 61, 1, 31, 3, 43, 1, 154, 246, 133, 0, 84, 1, 31, 0, 148, 247, 68, 250, 131, 0, 125, 0, 96, 251, 22, 254, 117, 255, 46, 0, 24, 253, 191, 1, 123, 3, 52, 2, 67, 0, 61, 254, 134, 2, 92, 2, 215, 253, 83, 254, 148, 252, 140, 1, 162, 0, 190, 255, 25, 5, 147, 3, 223, 1, 67, 2, 64, 4, 26, 3, 194, 1, 22, 1, 54, 2, 68, 1, 223, 251, 102, 255, 148, 0, 79, 255, 15, 246, 168, 0, 46, 4, 80, 2, 209, 246, 214, 255, 51, 3, 89, 1, 216, 246, 61, 253, 209, 2, 250, 0, 129, 247, 39, 250, 203, 254, 122, 0, 178, 255, 183, 255, 120, 0, 173, 0, 252, 255, 6, 1, 249, 254, 251, 254, 81, 254, 192, 255, 107, 254, 36, 253, 207, 245, 116, 0, 173, 255, 63, 255, 11, 250, 80, 252, 35, 254, 43, 253, 4, 254, 51, 1, 170, 0, 172, 0, 64, 3, 161, 1, 64, 3, 174, 2, 31, 255, 177, 0, 126, 3, 50, 3, 30, 254, 123, 254, 255, 4, 15, 4, 129, 254, 201, 0, 162, 254, 40, 0, 218, 2, 123, 2, 226, 0, 14, 2, 247, 1, 206, 1, 82, 1, 142, 1, 23, 2, 202, 2, 40, 0, 230, 254, 202, 5, 191, 5, 61, 4, 219, 2, 25, 6, 48, 4, 141, 3, 181, 2, 139, 5, 2, 5, 121, 3, 111, 3, 129, 4, 216, 2, 162, 4, 72, 3, 30, 255, 106, 4, 181, 3, 177, 2, 18, 254, 38, 252, 236, 249, 128, 255, 200, 253, 47, 253, 55, 253, 230, 255, 61, 1, 12, 2, 70, 0, 135, 0, 107, 254, 159, 252, 26, 249, 116, 253, 82, 255, 223, 252, 117, 3, 5, 3, 103, 255, 165, 255, 75, 4, 239, 2, 6, 254, 131, 251, 85, 3, 134, 2, 241, 0, 14, 3, 7, 2, 27, 2, 61, 7, 164, 6, 77, 4, 172, 2, 31, 251, 50, 250, 48, 254, 188, 0, 131, 252, 127, 250, 224, 250, 171, 254, 121, 255, 182, 1, 81, 255, 18, 0, 87, 4, 208, 3, 63, 1, 208, 0, 106, 250, 24, 249, 83, 0, 202, 1, 238, 253, 24, 252, 51, 1, 129, 0, 184, 252, 241, 255, 227, 255, 156, 254, 113, 252, 100, 252, 133, 251, 14, 255, 137, 255, 240, 253, 127, 0, 123, 255, 7, 253, 3, 253, 190, 0, 173, 255, 197, 254, 127, 3, 10, 2, 231, 0, 34, 255, 102, 0, 193, 255, 84, 254, 60, 1, 187, 2, 123, 1, 70, 0, 25, 0, 204, 2, 58, 1, 148, 255, 251, 1, 106, 3, 54, 2, 238, 0, 108, 0, 173, 3, 7, 2, 195, 0, 169, 1, 196, 255, 85, 254, 1, 1, 139, 0, 153, 255, 138, 253, 190, 1, 78, 1, 114, 1, 156, 1, 48, 0, 84, 255, 78, 253, 229, 254, 45, 2, 187, 0, 226, 254, 158, 0, 227, 1, 140, 0, 14, 1, 168, 254, 137, 253, 156, 3, 67, 2, 140, 255, 132, 0, 142, 0, 210, 1, 188, 255, 192, 255, 230, 0, 111, 255, 210, 254, 226, 253, 221, 252, 112, 252, 250, 3, 225, 2, 251, 252, 247, 3, 118, 2, 41, 1, 220, 245, 95, 0, 189, 1, 80, 1, 182, 247, 235, 1, 254, 1, 191, 0, 27, 251, 161, 0, 254, 255, 188, 254, 86, 250, 135, 253, 56, 253, 151, 255, 182, 252, 2, 255, 101, 254, 100, 0, 128, 253, 222, 254, 242, 3, 251, 2, 118, 253, 57, 1, 145, 4, 218, 2, 140, 0, 249, 1, 6, 4, 254, 2, 4, 3, 31, 1, 43, 4, 55, 3, 239, 1, 237, 2, 49, 1, 67, 1, 92, 255, 206, 1, 78, 0, 143, 1, 170, 254, 150, 252, 69, 0, 85, 2, 240, 255, 108, 2, 109, 2, 81, 1, 118, 255, 68, 254, 247, 254, 218, 0, 84, 0, 62, 254, 185, 3, 154, 2, 34, 255, 221, 252, 29, 2, 92, 2, 103, 252, 160, 250, 244, 0, 116, 0, 183, 252, 45, 253, 118, 2, 76, 2, 140, 0, 151, 2, 38, 1, 112, 1, 167, 3, 22, 4, 113, 3, 247, 2, 210, 6, 184, 5, 148, 3, 116, 2, 180, 1, 195, 3, 25, 1, 1, 0, 137, 255, 74, 0, 30, 2, 213, 0, 1, 0, 201, 253, 45, 1, 241, 0, 4, 1, 179, 1, 222, 0, 140, 1, 168, 3, 189, 3, 84, 4, 191, 2, 254, 1, 250, 1, 40, 3, 222, 1, 89, 2, 182, 2, 192, 3, 108, 2, 204, 3, 229, 2, 212, 3, 88, 2, 66, 3, 205, 2, 255, 2, 172, 2, 131, 2, 204, 3, 167, 3, 126, 2, 245, 1, 149, 2, 208, 2, 83, 3, 151, 255, 136, 253, 209, 254, 139, 255, 83, 254, 130, 0, 21, 3, 186, 1, 246, 253, 68, 255, 192, 2, 117, 1, 9, 253, 42, 0, 46, 3, 11, 2, 237, 253, 143, 251, 117, 1, 66, 2, 86, 253, 77, 251, 57, 254, 29, 1, 117, 251, 215, 249, 182, 251, 44, 0, 81, 0, 174, 255, 200, 2, 107, 1, 221, 1, 246, 0, 186, 3, 110, 2, 68, 6, 86, 6, 253, 4, 123, 3, 129, 5, 91, 3, 156, 3, 124, 3, 6, 3, 17, 4, 179, 3, 118, 4, 40, 0, 222, 253, 181, 255, 32, 1, 152, 253, 150, 255, 71, 253, 230, 255, 87, 255, 96, 255, 133, 252, 29, 253, 233, 254, 128, 254, 251, 251, 162, 254, 245, 6, 28, 5, 22, 4, 48, 3, 44, 6, 253, 5, 192, 5, 154, 4, 225, 5, 52, 4, 192, 4, 131, 3, 122, 3, 136, 3, 52, 2, 142, 2, 152, 3, 180, 2, 253, 3, 88, 3, 19, 254, 132, 0, 177, 0, 249, 1, 71, 0, 195, 0, 228, 255, 97, 0, 200, 1, 95, 1, 92, 255, 88, 0, 183, 1, 22, 1, 216, 255, 94, 1, 115, 5, 181, 3, 234, 0, 161, 255, 219, 252, 40, 254, 38, 0, 93, 255, 111, 1, 158, 255, 233, 1, 11, 2, 1, 4, 154, 4, 188, 4, 138, 3, 63, 1, 34, 5, 46, 3, 205, 1, 133, 255, 225, 253, 220, 252, 191, 1, 20, 253, 188, 254, 127, 252, 153, 251, 31, 253, 11, 254, 235, 252, 55, 253, 203, 2, 9, 3, 215, 4, 154, 3, 157, 7, 147, 7, 88, 5, 97, 3, 218, 2, 112, 3, 246, 2, 132, 1, 153, 252, 198, 1, 17, 0, 5, 255, 131, 254, 214, 252, 209, 249, 239, 0, 247, 253, 58, 252, 232, 252, 3, 1, 134, 252, 178, 250, 254, 252, 183, 255, 166, 0, 93, 1, 44, 255, 67, 1, 184, 252, 211, 254, 217, 1, 179, 1, 89, 253, 48, 254, 216, 2, 95, 1, 100, 255, 57, 255, 155, 2, 176, 1, 29, 0, 4, 255, 159, 1, 224, 1, 37, 253, 133, 254, 145, 0, 47, 2, 240, 253, 137, 253, 122, 251, 97, 255, 189, 1, 17, 1, 123, 0, 127, 2, 117, 1, 130, 255, 32, 3, 56, 2, 84, 0, 94, 255, 208, 2, 200, 2, 194, 252, 232, 253, 71, 255, 222, 0, 152, 1, 196, 1, 245, 1, 3, 3, 127, 252, 181, 250, 189, 255, 186, 1, 232, 252, 130, 250, 54, 2, 90, 2, 167, 0, 186, 254, 253, 1, 74, 1, 161, 255, 142, 253, 38, 253, 168, 254, 132, 6, 193, 4, 11, 3, 199, 1, 36, 5, 60, 3, 72, 2, 207, 2, 148, 1, 225, 255, 245, 3, 21, 3, 89, 0, 107, 0, 123, 3, 37, 2, 103, 3, 45, 6, 149, 3, 159, 2, 98, 3, 199, 5, 9, 5, 86, 3, 135, 1, 44, 4, 98, 4, 44, 3, 78, 0, 206, 253, 89, 1, 51, 2, 173, 1, 153, 255, 161, 1, 19, 3, 134, 255, 75, 254, 155, 1, 20, 3, 111, 252, 95, 254, 90, 2, 242, 2, 30, 255, 240, 255, 151, 0, 248, 2, 68, 253, 118, 0, 152, 255, 242, 255, 152, 251, 48, 0, 28, 1, 137, 1, 122, 254, 93, 254, 129, 253, 140, 255, 114, 252, 50, 1, 60, 1, 243, 255, 183, 4, 216, 3, 53, 3, 157, 2, 85, 251, 75, 253, 140, 0, 43, 255, 140, 252, 96, 254, 57, 255, 210, 253, 152, 253, 245, 0, 108, 254, 104, 253, 6, 1, 56, 0, 151, 253, 44, 253, 171, 255, 21, 254, 192, 254, 112, 253, 198, 253, 193, 252, 127, 255, 240, 253, 30, 250, 193, 255, 145, 254, 127, 254, 154, 254, 191, 254, 4, 0, 51, 0, 146, 254, 42, 255, 63, 1, 255, 1, 146, 0, 159, 2, 239, 255, 221, 254, 146, 255, 208, 1, 117, 255, 16, 254, 54, 255, 220, 0, 200, 254, 137, 253, 108, 253, 183, 255, 113, 253, 204, 252, 106, 253, 115, 253, 248, 250, 167, 252, 82, 254, 71, 252, 65, 252, 248, 254, 207, 255, 44, 254, 184, 255, 131, 254, 162, 254, 205, 253, 63, 255, 105, 254, 55, 0, 104, 254, 221, 252, 11, 0, 203, 254, 137, 2, 188, 0, 58, 255, 0, 254, 205, 1, 177, 255, 54, 254, 218, 250, 249, 254, 122, 255, 245, 253, 135, 249, 77, 254, 17, 254, 3, 253, 57, 0, 165, 254, 98, 254, 178, 1, 139, 251, 14, 255, 104, 253, 167, 252, 34, 0, 188, 255, 61, 253, 174, 254, 163, 1, 163, 0, 226, 255, 250, 254, 57, 254, 235, 252, 106, 250, 47, 253, 238, 3, 152, 2, 13, 1, 25, 0, 107, 2, 4, 1, 183, 0, 96, 0, 56, 252, 178, 250, 124, 254, 135, 0, 75, 253, 67, 3, 200, 1, 154, 0, 81, 4, 191, 2, 57, 2, 107, 1, 89, 6, 46, 5, 217, 3, 236, 2, 36, 255, 219, 0, 76, 0, 48, 255, 81, 250, 130, 249, 49, 0, 149, 0, 60, 252, 84, 255, 16, 253, 176, 254, 113, 2, 209, 0, 6, 255, 190, 255, 7, 252, 186, 252, 254, 255, 61, 1, 136, 247, 51, 250, 118, 255, 123, 0, 172, 248, 205, 247, 247, 253, 85, 0, 57, 252, 146, 254, 73, 253, 143, 252, 103, 252, 13, 252, 5, 253, 75, 252, 132, 255, 0, 255, 160, 254, 108, 253, 178, 0, 207, 1, 98, 1, 48, 1, 48, 249, 177, 253, 230, 254, 79, 0, 55, 247, 175, 0, 99, 3, 243, 1, 118, 255, 76, 255, 75, 255, 235, 255, 13, 247, 39, 251, 52, 254, 248, 253, 253, 252, 195, 1, 246, 255, 204, 254, 15, 1, 191, 255, 4, 0, 214, 0, 233, 254, 77, 254, 213, 255, 164, 254, 98, 253, 35, 0, 191, 255, 45, 255, 38, 3, 23, 2, 85, 0, 41, 1, 57, 0, 239, 0, 210, 2, 237, 1, 225, 0, 149, 2, 72, 3, 35, 2, 228, 253, 136, 254, 14, 0, 93, 1, 213, 1, 209, 2, 75, 1, 162, 0, 224, 253, 16, 253, 194, 255, 246, 255, 142, 1, 168, 255, 212, 2, 189, 2, 237, 255, 235, 253, 162, 255, 89, 2, 136, 0, 185, 255, 87, 253, 21, 253, 90, 255, 168, 254, 5, 1, 206, 255, 161, 0, 204, 255, 229, 1, 81, 1, 117, 249, 50, 0, 190, 0, 163, 255, 22, 247, 25, 255, 62, 255, 174, 255, 161, 255, 173, 253, 102, 255, 128, 0, 126, 3, 245, 1, 76, 2, 201, 1, 167, 254, 206, 0, 122, 0, 110, 0, 137, 253, 29, 255, 199, 253, 3, 0, 152, 1, 239, 0, 141, 1, 226, 0, 59, 255, 254, 255, 128, 0, 235, 1, 1, 5, 136, 3, 36, 1, 215, 0, 26, 2, 50, 1, 3, 1, 253, 1, 91, 253, 233, 251, 13, 0, 65, 1, 89, 253, 180, 253, 154, 254, 44, 255, 210, 253, 243, 0, 134, 2, 223, 1, 230, 1, 86, 1, 122, 2, 20, 2, 107, 0, 34, 3, 75, 1, 136, 0, 144, 255, 114, 254, 249, 251, 226, 254, 186, 254, 63, 253, 32, 1, 16, 1, 19, 5, 120, 4, 154, 4, 92, 3, 89, 254, 121, 0, 127, 254, 108, 255, 217, 254, 210, 254, 190, 252, 205, 252, 16, 0, 232, 255, 55, 255, 36, 254, 43, 2, 91, 0, 11, 255, 38, 1, 218, 255, 133, 254, 62, 252, 59, 251, 89, 251, 18, 250, 239, 254, 117, 254, 122, 254, 11, 252, 123, 253, 61, 2, 205, 248, 250, 251, 249, 1, 212, 1, 232, 2, 179, 3, 97, 2, 237, 1, 79, 253, 108, 251, 140, 253, 121, 255, 254, 251, 195, 0, 155, 1, 196, 0, 46, 6, 123, 4, 63, 2, 81, 1, 41, 251, 247, 252, 120, 253, 114, 255, 83, 2, 57, 3, 199, 3, 223, 2, 74, 251, 54, 252, 175, 255, 170, 254, 23, 253, 13, 0, 184, 255, 119, 1, 198, 1, 19, 0, 127, 5, 153, 3, 145, 249, 84, 255, 93, 3, 50, 2, 160, 3, 1, 6, 39, 4, 228, 2, 88, 246, 72, 252, 8, 1, 82, 0, 10, 254, 59, 252, 202, 250, 123, 0, 99, 3, 212, 4, 22, 2, 171, 0, 240, 246, 52, 254, 12, 3, 107, 1, 90, 251, 151, 253, 252, 0, 195, 255, 82, 255, 34, 0, 243, 3, 20, 3, 227, 246, 247, 0, 167, 1, 153, 0, 240, 255, 157, 254, 6, 1, 193, 1, 216, 249, 207, 251, 224, 253, 141, 254, 153, 253, 207, 254, 27, 4, 37, 3, 175, 2, 16, 2, 6, 0, 74, 255, 167, 3, 107, 3, 234, 3, 41, 3, 199, 0, 1, 1, 126, 0, 76, 0, 184, 253, 142, 251, 87, 2, 44, 2, 175, 251, 145, 250, 201, 249, 249, 253, 47, 252, 211, 250, 108, 0, 91, 1, 46, 253, 49, 252, 109, 1, 101, 0, 111, 255, 169, 2, 249, 0, 103, 255, 0, 0, 178, 254, 198, 253, 159, 0, 156, 1, 29, 1, 176, 254, 151, 253, 71, 252, 58, 252, 119, 3, 177, 2, 29, 251, 84, 0, 71, 255, 114, 254, 176, 253, 177, 1, 20, 4, 141, 2, 85, 0, 73, 1, 216, 255, 105, 1, 79, 254, 63, 253, 210, 1, 62, 2, 102, 255, 142, 2, 80, 2, 34, 1, 89, 255, 72, 0, 93, 1, 175, 0, 162, 2, 41, 1, 209, 3, 208, 2, 211, 4, 180, 4, 245, 2, 232, 1, 112, 254, 243, 254, 26, 2, 116, 1, 186, 250, 149, 250, 86, 251, 165, 255, 238, 4, 108, 3, 7, 3, 188, 2, 169, 253, 218, 255, 82, 254, 46, 253, 184, 7, 94, 6, 223, 3, 96, 2, 111, 0, 20, 1, 30, 255, 160, 255, 77, 252, 124, 254, 245, 255, 249, 255, 209, 254, 237, 253, 185, 252, 82, 1, 198, 6, 174, 6, 125, 5, 245, 3, 252, 253, 169, 252, 123, 253, 210, 0, 80, 253, 96, 254, 1, 2, 230, 0, 202, 252, 131, 253, 134, 251, 192, 254, 72, 252, 110, 253, 74, 253, 183, 0, 142, 255, 145, 253, 50, 3, 162, 2, 65, 255, 52, 255, 219, 2, 123, 2, 51, 0, 197, 4, 115, 3, 64, 2, 70, 252, 81, 254, 58, 3, 86, 2, 170, 254, 13, 253, 124, 252, 105, 254, 154, 251, 158, 254, 50, 255, 0, 254, 221, 253, 214, 252, 155, 254, 148, 253, 66, 0, 3, 2, 183, 255, 102, 254, 152, 252, 79, 252, 92, 250, 53, 251, 191, 0, 239, 255, 224, 253, 25, 255, 252, 249, 224, 253, 123, 252, 138, 252, 134, 252, 242, 249, 19, 246, 205, 252, 54, 252, 175, 0, 198, 252, 46, 251, 6, 253, 169, 253, 234, 255, 122, 2, 213, 252, 37, 252, 122, 252, 189, 254, 203, 0, 26, 0, 129, 254, 21, 255, 243, 252, 113, 254, 238, 4, 138, 3, 92, 252, 137, 250, 156, 250, 144, 253, 93, 0, 87, 0, 98, 254, 229, 253, 77, 253, 37, 0, 121, 2, 254, 1, 125, 254, 36, 254, 206, 250, 143, 1, 66, 0, 7, 1, 105, 254, 207, 255, 177, 254, 95, 254, 17, 4, 73, 7, 245, 252, 191, 251, 96, 250, 22, 253, 166, 252, 64, 3, 187, 253, 9, 253, 141, 254, 95, 253, 6, 254, 40, 8, 208, 253, 134, 253, 101, 251, 15, 1, 241, 0, 14, 0, 74, 254, 12, 255, 115, 254, 207, 1, 178, 4, 23, 4, 162, 253, 227, 252, 98, 250, 205, 255, 189, 254, 225, 1, 32, 255, 184, 253, 241, 253, 238, 1, 113, 3, 170, 2, 79, 254, 206, 254, 22, 252, 42, 2, 147, 2, 222, 0, 171, 0, 96, 255, 159, 254, 169, 2, 6, 7, 29, 6, 172, 252, 99, 251, 97, 249, 176, 254, 102, 253, 114, 0, 187, 253, 12, 253, 24, 253, 61, 255, 119, 1, 241, 1, 47, 254, 220, 252, 182, 251, 154, 0, 26, 1, 125, 255, 206, 255, 65, 255, 49, 253, 67, 1, 220, 2, 6, 6, 46, 253, 205, 252, 132, 250, 105, 0, 6, 255, 185, 0, 78, 255, 10, 254, 26, 253, 65, 1, 254, 1, 87, 4, 189, 254, 201, 253, 58, 252, 127, 0, 228, 1, 82, 1, 96, 255, 52, 0, 174, 254, 220, 2, 87, 5, 18, 6, 142, 253, 222, 252, 96, 249, 226, 254, 182, 253, 164, 2, 73, 253, 169, 254, 142, 254, 22, 254, 39, 1, 101, 7, 138, 253, 194, 253, 10, 252, 176, 255, 133, 2, 187, 255, 250, 255, 194, 254, 148, 254, 14, 3, 170, 5, 14, 4, 199, 254, 35, 253, 141, 250, 120, 0, 60, 0, 221, 1, 248, 254, 183, 253, 133, 255, 199, 2, 221, 4, 121, 2, 165, 255, 157, 254, 8, 252, 3, 3, 246, 2, 5, 1, 253, 0, 81, 0, 38, 254, 162, 3, 167, 8, 184, 6, 216, 252, 181, 251, 123, 248, 208, 253, 242, 252, 169, 0, 220, 252, 206, 251, 68, 255, 142, 253, 201, 255, 125, 5, 74, 253, 52, 253, 86, 251, 108, 253, 98, 1, 73, 1, 254, 253, 201, 255, 225, 253, 110, 1, 9, 4, 158, 4, 110, 253, 65, 252, 179, 250, 201, 255, 72, 255, 93, 0, 163, 253, 226, 254, 106, 253, 148, 1, 193, 1, 59, 3, 226, 254, 162, 254, 17, 251, 116, 2, 50, 1, 227, 0, 240, 255, 147, 0, 145, 253, 186, 0, 155, 3, 98, 8, 94, 253, 134, 252, 186, 249, 69, 254, 28, 255, 83, 1, 143, 254, 234, 252, 103, 254, 231, 0, 86, 0, 189, 5, 64, 254, 187, 253, 219, 251, 82, 2, 194, 1, 79, 255, 132, 255, 86, 255, 65, 254, 159, 2, 135, 4, 124, 5, 36, 254, 101, 253, 25, 250, 179, 255, 118, 255, 204, 2, 79, 255, 140, 254, 131, 254, 195, 1, 166, 3, 147, 3, 6, 255, 80, 254, 202, 252, 16, 1, 60, 3, 190, 1, 26, 0, 19, 0, 225, 255, 186, 2, 156, 6, 120, 8, 122, 253, 47, 252, 124, 248, 77, 255, 39, 254, 12, 1, 133, 254, 23, 253, 77, 253, 11, 0, 127, 0, 9, 4, 24, 254, 107, 252, 199, 252, 61, 0, 67, 1, 135, 0, 147, 0, 111, 255, 82, 253, 173, 2, 18, 3, 146, 6, 6, 254, 176, 252, 239, 250, 35, 0, 90, 0, 222, 0, 233, 255, 166, 254, 98, 253, 199, 1, 79, 2, 7, 5, 53, 255, 175, 253, 194, 251, 140, 2, 96, 1, 181, 1, 39, 0, 63, 0, 55, 254, 73, 3, 241, 4, 57, 8, 248, 253, 142, 252, 208, 249, 184, 254, 57, 253, 141, 5, 172, 253, 170, 254, 186, 255, 209, 0, 173, 0, 136, 7, 89, 254, 170, 253, 103, 252, 165, 1, 93, 2, 218, 255, 254, 255, 11, 255, 129, 255, 128, 3, 177, 7, 111, 4, 133, 254, 250, 253, 213, 249, 173, 0, 118, 0, 241, 2, 201, 255, 131, 254, 204, 255, 217, 3, 253, 3, 241, 2, 254, 255, 221, 254, 133, 252, 241, 2, 224, 3, 167, 1, 8, 1, 131, 0, 60, 255, 127, 3, 226, 8, 239, 9, 133, 253, 192, 251, 61, 246, 239, 253, 42, 252, 14, 2, 4, 253, 194, 252, 220, 253, 76, 254, 60, 1, 87, 2, 93, 253, 84, 252, 22, 253, 199, 255, 236, 0, 245, 255, 55, 255, 175, 255, 226, 252, 16, 0, 77, 3, 22, 6, 31, 253, 39, 252, 68, 251, 44, 254, 17, 0, 34, 1, 233, 254, 184, 253, 68, 253, 183, 0, 54, 3, 193, 2, 247, 254, 20, 254, 93, 251, 165, 1, 152, 0, 212, 1, 122, 254, 166, 0, 244, 254, 39, 0, 14, 6, 76, 7, 133, 253, 58, 252, 221, 249, 59, 254, 20, 254, 142, 3, 228, 254, 253, 251, 181, 255, 75, 255, 123, 255, 60, 7, 67, 254, 144, 253, 106, 251, 164, 1, 111, 1, 207, 255, 123, 254, 44, 255, 87, 255, 195, 2, 49, 4, 184, 4, 229, 253, 58, 253, 87, 250, 83, 0, 93, 255, 228, 1, 20, 255, 225, 253, 157, 254, 82, 1, 151, 4, 46, 3, 10, 255, 203, 254, 66, 252, 94, 2, 248, 2, 60, 0, 166, 0, 248, 255, 93, 255, 206, 254, 57, 7, 3, 10, 21, 253, 255, 251, 9, 249, 93, 254, 66, 254, 209, 0, 50, 253, 202, 253, 234, 253, 6, 254, 181, 2, 89, 3, 49, 254, 71, 253, 198, 251, 69, 1, 175, 1, 50, 255, 241, 255, 248, 255, 5, 253, 33, 2, 151, 3, 238, 5, 157, 253, 241, 252, 223, 250, 0, 1, 201, 255, 208, 0, 91, 255, 164, 254, 106, 253, 65, 1, 168, 2, 162, 3, 186, 254, 83, 254, 73, 252, 228, 1, 190, 1, 58, 2, 59, 255, 72, 0, 183, 255, 141, 3, 175, 5, 205, 6, 205, 253, 31, 253, 74, 248, 132, 255, 96, 254, 206, 2, 34, 254, 108, 254, 198, 254, 240, 255, 190, 1, 100, 6, 217, 253, 231, 253, 18, 253, 198, 255, 126, 2, 214, 0, 55, 0, 71, 255, 241, 254, 124, 4, 21, 5, 188, 4, 29, 254, 97, 253, 16, 251, 117, 0, 29, 1, 31, 2, 52, 255, 121, 254, 145, 255, 1, 2, 2, 6, 86, 3, 142, 255, 66, 255, 46, 252, 109, 3, 83, 2, 208, 1, 4, 1, 4, 1, 201, 254, 236, 2, 235, 8, 168, 8, 251, 253, 79, 252, 133, 247, 186, 254, 60, 253, 122, 1, 212, 252, 77, 253, 24, 255, 208, 253, 175, 2, 129, 5, 36, 253, 78, 253, 188, 252, 153, 254, 133, 2, 130, 1, 247, 254, 62, 0, 90, 253, 145, 0, 108, 6, 184, 4, 213, 253, 36, 252, 47, 251, 178, 255, 14, 0, 114, 0, 185, 254, 154, 254, 23, 254, 136, 1, 165, 2, 185, 2, 55, 255, 20, 255, 140, 251, 181, 2, 193, 1, 178, 0, 13, 255, 0, 1, 79, 254, 99, 2, 105, 5, 152, 9, 156, 253, 123, 252, 72, 250, 205, 254, 239, 255, 243, 1, 197, 254, 101, 253, 2, 255, 0, 1, 172, 1, 183, 5, 26, 254, 90, 254, 224, 251, 143, 2, 114, 1, 18, 0, 154, 255, 71, 255, 236, 254, 243, 2, 42, 6, 55, 5, 24, 254, 165, 253, 118, 250, 182, 0, 163, 255, 102, 3, 183, 255, 54, 254, 164, 254, 67, 3, 94, 3, 189, 3, 230, 254, 179, 254, 22, 253, 35, 2, 71, 3, 172, 1, 17, 1, 167, 255, 13, 0, 172, 3, 172, 6, 16, 10, 94, 254, 196, 251, 34, 249, 212, 255, 154, 254, 3, 1, 15, 254, 125, 253, 208, 253, 99, 0, 45, 2, 193, 3, 91, 254, 2, 253, 107, 252, 39, 1, 70, 1, 184, 0, 175, 0, 15, 0, 142, 253, 20, 2, 110, 3, 189, 7, 69, 254, 0, 253, 5, 251, 221, 0, 156, 0, 12, 1, 39, 0, 149, 254, 7, 254, 183, 2, 4, 3, 116, 4, 94, 255, 53, 254, 112, 252, 197, 2, 188, 1, 146, 2, 25, 0, 47, 1, 200, 254, 244, 4, 130, 5, 179, 6, 215, 254, 2, 253, 212, 248, 249, 254, 148, 255, 46, 4, 106, 254, 243, 255, 127, 255, 57, 0, 182, 1, 174, 10, 138, 254, 25, 254, 189, 252, 48, 1, 184, 2, 164, 0, 104, 0, 21, 255, 5, 0, 75, 6, 108, 7, 119, 5, 27, 255, 186, 253, 211, 250, 149, 1, 192, 0, 49, 3, 169, 255, 74, 254, 111, 0, 4, 4, 175, 4, 225, 3, 68, 0, 81, 255, 90, 252, 9, 4, 93, 4, 195, 1, 222, 1, 200, 0, 8, 255, 79, 8, 136, 10, 250, 7, 189, 252, 213, 250, 173, 247, 225, 252, 76, 253, 210, 1, 212, 252, 248, 251, 43, 254, 146, 253, 32, 1, 152, 3, 67, 253, 183, 252, 210, 251, 101, 254, 0, 2, 8, 0, 122, 254, 165, 255, 24, 253, 226, 255, 19, 4, 137, 4, 202, 252, 132, 251, 124, 251, 218, 254, 210, 255, 110, 0, 101, 254, 138, 254, 90, 253, 214, 0, 19, 2, 156, 2, 106, 254, 92, 254, 86, 251, 231, 1, 232, 0, 47, 1, 194, 254, 91, 0, 40, 254, 123, 0, 208, 4, 141, 9, 46, 253, 72, 252, 41, 250, 30, 253, 93, 253, 52, 5, 225, 253, 162, 253, 45, 255, 161, 255, 158, 255, 228, 5, 219, 253, 254, 253, 87, 251, 217, 1, 211, 0, 73, 0, 224, 254, 144, 255, 123, 254, 25, 2, 52, 5, 234, 4, 201, 253, 13, 253, 247, 249, 71, 0, 229, 254, 120, 2, 86, 255, 31, 254, 19, 254, 169, 2, 234, 3, 49, 3, 156, 254, 181, 254, 147, 252, 163, 1, 194, 2, 90, 1, 241, 0, 222, 255, 186, 254, 121, 1, 158, 7, 91, 7, 41, 253, 205, 251, 167, 249, 23, 255, 225, 253, 116, 0, 244, 253, 218, 252, 183, 253, 183, 255, 222, 1, 217, 2, 224, 254, 99, 252, 137, 251, 173, 0, 191, 1, 204, 255, 68, 0, 27, 255, 162, 253, 193, 1, 17, 2, 5, 7, 177, 253, 149, 252, 173, 250, 183, 0, 112, 255, 68, 1, 153, 255, 60, 254, 102, 253, 111, 2, 232, 1, 152, 4, 18, 255, 1, 254, 20, 252, 70, 1, 40, 2, 202, 1, 136, 0, 108, 0, 193, 254, 114, 2, 63, 5, 91, 7, 22, 254, 122, 253, 62, 249, 70, 255, 63, 254, 216, 3, 30, 253, 180, 255, 86, 255, 218, 253, 243, 2, 0, 10, 16, 254, 2, 254, 77, 252, 210, 0, 182, 2, 204, 255, 84, 0, 190, 254, 57, 255, 66, 4, 89, 6, 200, 4, 136, 254, 165, 253, 140, 250, 87, 1, 74, 0, 120, 2, 81, 255, 10, 254, 224, 255, 204, 3, 52, 5, 222, 2, 52, 0, 217, 254, 167, 251, 41, 4, 150, 3, 160, 0, 137, 1, 107, 0, 115, 254, 190, 4, 89, 10, 205, 6, 136, 253, 79, 251, 157, 248, 49, 253, 235, 254, 97, 1, 117, 253, 144, 252, 134, 255, 45, 255, 209, 0, 58, 5, 206, 253, 54, 253, 221, 251, 48, 255, 132, 1, 159, 0, 192, 254, 195, 255, 217, 253, 37, 1, 68, 4, 163, 5, 120, 253, 159, 252, 27, 251, 207, 255, 113, 255, 49, 1, 111, 254, 29, 255, 183, 253, 49, 2, 20, 2, 159, 3, 139, 255, 69, 254, 92, 251, 251, 1, 180, 1, 36, 1, 177, 255, 233, 0, 54, 254, 159, 2, 1, 4, 92, 9, 135, 253, 182, 252, 11, 250, 204, 254, 226, 254, 128, 2, 139, 254, 147, 253, 105, 254, 162, 1, 253, 0, 25, 5, 197, 254, 187, 253, 143, 251, 60, 2, 173, 2, 231, 254, 61, 0, 188, 255, 141, 254, 223, 3, 77, 4, 218, 5, 19, 254, 85, 253, 174, 250, 209, 255, 164, 0, 192, 2, 0, 255, 198, 254, 244, 254, 119, 2, 181, 3, 28, 4, 138, 255, 164, 254, 191, 252, 68, 0, 156, 4, 56, 2, 152, 0, 117, 0, 34, 0, 89, 4, 110, 7, 191, 8, 167, 253, 65, 252, 86, 249, 113, 255, 23, 254, 224, 1, 180, 254, 113, 253, 194, 253, 54, 0, 97, 1, 168, 4, 50, 254, 116, 253, 228, 252, 150, 0, 37, 2, 112, 0, 195, 0, 145, 255, 253, 253, 167, 2, 84, 4, 111, 6, 210, 253, 19, 253, 63, 251, 247, 255, 16, 1, 85, 1, 203, 255, 247, 254, 233, 253, 233, 1, 75, 3, 18, 5, 136, 255, 30, 254, 248, 251, 120, 2, 31, 2, 152, 1, 179, 0, 50, 1, 242, 253, 100, 4, 184, 5, 196, 8, 95, 254, 238, 252, 230, 249, 32, 255, 128, 254, 84, 5, 135, 254, 53, 254, 231, 255, 129, 1, 233, 1, 126, 8, 180, 254, 117, 253, 195, 252, 32, 2, 41, 2, 61, 0, 22, 0, 143, 255, 167, 255, 104, 4, 189, 6, 244, 5, 40, 255, 139, 254, 139, 249, 161, 0, 60, 1, 140, 3, 91, 255, 34, 255, 189, 255, 82, 5, 151, 4, 21, 3, 73, 0, 4, 255, 1, 253, 226, 2, 164, 3, 104, 2, 106, 1, 246, 0, 130, 255, 19, 3, 94, 10, 211, 11, 77, 253, 174, 251, 114, 247, 203, 253, 180, 253, 12, 2, 178, 253, 45, 252, 22, 254, 249, 254, 141, 1, 214, 3, 191, 253, 187, 252, 79, 252, 234, 255, 179, 1, 207, 255, 66, 255, 138, 255, 139, 253, 168, 255, 216, 4, 233, 5, 132, 253, 229, 251, 5, 252, 221, 254, 189, 0, 3, 1, 255, 254, 42, 254, 139, 253, 145, 0, 177, 3, 126, 3, 186, 254, 148, 254, 186, 251, 31, 2, 4, 1, 118, 2, 54, 255, 189, 0, 47, 255, 101, 1, 99, 5, 43, 8, 199, 253, 205, 251, 87, 250, 54, 253, 17, 255, 151, 3, 92, 254, 63, 253, 172, 255, 147, 255, 142, 255, 103, 9, 99, 254, 239, 253, 103, 251, 226, 1, 112, 1, 131, 0, 70, 255, 184, 255, 125, 255, 93, 3, 231, 4, 196, 4, 157, 253, 110, 253, 195, 250, 227, 0, 135, 255, 119, 2, 80, 255, 23, 254, 38, 255, 233, 2, 151, 4, 189, 3, 191, 254, 108, 255, 88, 252, 159, 2, 198, 3, 216, 0, 84, 1, 253, 255, 113, 255, 213, 1, 56, 7, 133, 9, 39, 253, 63, 252, 109, 249, 43, 255, 2, 255, 65, 1, 1, 254, 74, 254, 247, 253, 130, 255, 213, 2, 135, 3, 172, 254, 83, 253, 248, 251, 60, 1, 224, 1, 20, 0, 23, 0, 167, 255, 217, 253, 97, 1, 27, 4, 253, 6, 224, 253, 11, 253, 172, 250, 42, 1, 231, 255, 180, 1, 156, 255, 120, 254, 249, 253, 211, 1, 242, 2, 54, 4, 46, 255, 114, 254, 202, 251, 108, 2, 146, 2, 118, 2], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 10240); allocate([33, 0, 147, 0, 78, 255, 153, 3, 151, 6, 129, 7, 187, 254, 240, 253, 70, 248, 2, 0, 227, 254, 142, 3, 141, 254, 22, 254, 26, 255, 0, 0, 85, 2, 218, 7, 16, 254, 117, 254, 190, 252, 37, 0, 177, 3, 245, 0, 181, 0, 96, 255, 112, 255, 201, 5, 93, 5, 77, 5, 157, 254, 167, 253, 10, 251, 42, 1, 66, 1, 160, 2, 63, 255, 176, 254, 77, 0, 65, 4, 253, 5, 154, 3, 177, 0, 217, 255, 155, 251, 228, 3, 13, 3, 24, 2, 200, 1, 110, 1, 80, 254, 135, 5, 136, 9, 231, 8, 46, 254, 10, 253, 235, 246, 209, 254, 3, 254, 131, 1, 41, 253, 211, 253, 66, 0, 111, 255, 131, 2, 224, 4, 224, 253, 92, 253, 108, 252, 31, 255, 94, 3, 76, 2, 104, 255, 40, 0, 235, 253, 167, 1, 143, 5, 22, 6, 196, 253, 181, 252, 135, 251, 128, 255, 85, 0, 205, 1, 18, 255, 255, 254, 184, 253, 93, 2, 236, 2, 93, 3, 24, 0, 54, 255, 127, 250, 29, 3, 231, 1, 47, 1, 75, 255, 108, 1, 74, 255, 104, 2, 98, 5, 126, 11, 18, 254, 172, 252, 95, 250, 220, 254, 61, 0, 44, 3, 172, 255, 45, 253, 74, 255, 43, 2, 20, 2, 226, 5, 147, 254, 19, 254, 223, 251, 54, 3, 76, 2, 11, 0, 242, 255, 238, 255, 26, 255, 233, 3, 121, 5, 171, 5, 38, 254, 199, 253, 244, 250, 46, 1, 62, 0, 38, 4, 186, 255, 136, 254, 34, 255, 214, 3, 206, 3, 125, 4, 60, 255, 22, 255, 229, 252, 223, 1, 74, 4, 243, 1, 106, 1, 58, 0, 70, 0, 123, 4, 21, 8, 41, 11, 25, 254, 146, 252, 224, 248, 73, 0, 224, 254, 92, 1, 154, 254, 12, 254, 4, 254, 199, 0, 209, 2, 218, 4, 178, 255, 71, 253, 229, 252, 105, 1, 24, 2, 196, 0, 118, 1, 110, 0, 33, 253, 79, 3, 27, 4, 104, 7, 146, 254, 55, 253, 98, 251, 59, 1, 64, 1, 173, 1, 72, 0, 41, 255, 62, 254, 247, 2, 118, 3, 83, 5, 226, 255, 84, 254, 190, 252, 93, 3, 115, 2, 28, 3, 118, 0, 212, 1, 233, 254, 75, 5, 91, 7, 101, 7, 68, 255, 126, 253, 180, 249, 63, 0, 81, 255, 174, 4, 94, 254, 45, 255, 51, 0, 158, 1, 75, 2, 41, 10, 22, 255, 211, 253, 166, 252, 168, 1, 121, 3, 222, 0, 136, 0, 155, 255, 83, 0, 133, 5, 230, 8, 103, 5, 172, 255, 67, 254, 147, 250, 158, 1, 57, 1, 21, 4, 29, 0, 169, 254, 65, 0, 16, 6, 111, 6, 212, 3, 183, 0, 165, 255, 195, 252, 249, 4, 133, 5, 104, 1, 41, 2, 16, 1, 149, 255, 51, 6, 77, 12, 43, 10, 104, 5, 29, 8, 92, 13, 244, 19, 86, 26, 186, 31, 135, 38, 84, 43, 170, 49, 133, 53, 61, 254, 215, 251, 239, 253, 231, 250, 62, 254, 12, 253, 15, 254, 161, 252, 128, 254, 149, 253, 99, 254, 99, 253, 195, 254, 230, 253, 181, 254, 212, 253, 98, 254, 4, 254, 88, 254, 134, 254, 238, 254, 188, 254, 78, 254, 154, 253, 30, 255, 12, 254, 24, 255, 254, 253, 249, 254, 135, 254, 214, 254, 102, 254, 105, 255, 58, 253, 82, 255, 206, 252, 107, 255, 100, 254, 100, 255, 83, 254, 224, 254, 50, 254, 70, 255, 53, 255, 86, 255, 210, 254, 65, 255, 191, 254, 125, 255, 109, 255, 215, 254, 117, 254, 28, 255, 42, 255, 11, 255, 64, 255, 189, 255, 196, 254, 185, 255, 185, 254, 152, 255, 51, 255, 162, 255, 73, 255, 113, 255, 218, 255, 63, 255, 161, 255, 16, 0, 180, 255, 132, 255, 8, 255, 23, 0, 19, 255, 24, 0, 12, 255, 18, 0, 120, 255, 44, 0, 145, 255, 223, 255, 232, 255, 231, 255, 0, 0, 149, 0, 19, 0, 23, 0, 113, 255, 158, 0, 87, 255, 174, 0, 75, 255, 133, 0, 201, 255, 165, 0, 230, 255, 111, 0, 84, 0, 98, 0, 75, 0, 87, 0, 183, 0, 141, 255, 245, 255, 248, 255, 130, 0, 11, 0, 170, 0, 254, 0, 77, 0, 205, 0, 17, 0, 183, 0, 112, 0, 6, 1, 194, 0, 202, 0, 31, 1, 95, 0, 189, 0, 214, 255, 151, 255, 234, 0, 179, 0, 39, 0, 186, 0, 163, 0, 89, 1, 76, 1, 199, 0, 43, 1, 161, 0, 202, 255, 29, 1, 178, 255, 25, 1, 123, 255, 141, 0, 74, 255, 111, 0, 249, 0, 85, 1, 15, 1, 108, 1, 93, 0, 147, 1, 75, 0, 135, 1, 92, 0, 254, 1, 118, 255, 220, 0, 71, 255, 227, 255, 222, 255, 105, 1, 141, 255, 64, 1, 3, 0, 42, 2, 99, 0, 30, 1, 218, 0, 79, 2, 11, 255, 150, 1, 244, 254, 197, 1, 0, 0, 68, 2, 25, 0, 94, 2, 19, 1, 20, 2, 148, 0, 194, 1, 183, 255, 227, 2, 227, 254, 6, 2, 224, 254, 94, 0, 53, 255, 162, 2, 116, 255, 182, 255, 205, 0, 202, 2, 142, 255, 43, 1, 176, 0, 155, 3, 182, 0, 45, 2, 240, 0, 193, 2, 240, 255, 1, 2, 229, 1, 81, 2, 37, 1, 128, 1, 195, 1, 105, 2, 218, 255, 50, 0, 51, 2, 17, 2, 47, 1, 209, 0, 203, 1, 107, 1, 177, 1, 196, 1, 194, 1, 198, 1, 111, 1, 94, 2, 221, 1, 229, 2, 176, 1, 97, 1, 112, 1, 11, 1, 105, 1, 204, 2, 17, 1, 71, 2, 197, 1, 166, 0, 254, 1, 172, 0, 201, 0, 117, 2, 18, 1, 191, 0, 56, 2, 127, 2, 46, 1, 42, 1, 122, 2, 131, 1, 131, 2, 94, 1, 75, 2, 48, 2, 100, 2, 53, 2, 88, 2, 20, 3, 231, 1, 160, 2, 0, 2, 247, 3, 65, 1, 77, 1, 101, 1, 86, 3, 131, 255, 157, 1, 218, 1, 200, 2, 17, 0, 105, 255, 52, 2, 29, 1, 14, 1, 15, 255, 203, 3, 121, 3, 233, 1, 220, 0, 254, 1, 128, 3, 37, 2, 156, 3, 71, 1, 57, 3, 34, 1, 143, 3, 28, 2, 84, 4, 158, 0, 37, 3, 199, 0, 189, 3, 255, 1, 218, 2, 100, 0, 106, 3, 13, 0, 23, 3, 179, 1, 120, 2, 164, 2, 204, 3, 249, 0, 132, 3, 211, 1, 194, 4, 13, 3, 50, 4, 73, 2, 17, 3, 233, 255, 157, 2, 11, 1, 19, 4, 107, 2, 60, 4, 103, 2, 121, 4, 110, 2, 137, 3, 148, 3, 25, 4, 80, 0, 75, 1, 72, 2, 51, 4, 89, 0, 127, 2, 220, 3, 193, 3, 2, 3, 208, 2, 30, 3, 187, 2, 236, 1, 191, 1, 131, 3, 115, 2, 15, 1, 164, 4, 213, 2, 53, 5, 87, 0, 91, 2, 64, 3, 67, 6, 104, 2, 103, 4, 122, 3, 225, 5, 232, 3, 132, 4, 98, 3, 241, 3, 227, 3, 59, 3, 125, 4, 90, 3, 49, 3, 170, 5, 5, 3, 40, 5, 244, 1, 109, 5, 56, 1, 129, 4, 236, 255, 60, 4, 64, 0, 3, 5, 2, 0, 148, 4, 143, 1, 77, 7, 2, 2, 170, 6, 246, 1, 100, 6, 118, 3, 242, 5, 160, 1, 88, 2, 107, 4, 70, 5, 251, 4, 110, 5, 121, 3, 3, 7, 146, 3, 230, 6, 227, 0, 159, 4, 226, 4, 34, 7, 249, 1, 62, 7, 151, 3, 49, 9, 57, 255, 175, 1, 152, 0, 199, 6, 43, 255, 228, 255, 136, 1, 54, 5, 103, 255, 204, 255, 210, 3, 127, 4, 189, 254, 112, 254, 45, 3, 167, 6, 120, 255, 84, 0, 169, 5, 223, 7, 181, 254, 113, 255, 119, 255, 168, 4, 0, 255, 22, 2, 99, 255, 7, 4, 205, 254, 73, 254, 30, 2, 219, 2, 183, 254, 92, 254, 159, 255, 104, 2, 150, 254, 88, 255, 190, 254, 110, 1, 9, 255, 146, 255, 45, 255, 89, 0, 60, 255, 203, 254, 20, 0, 59, 0, 148, 254, 49, 254, 226, 254, 89, 0, 176, 254, 175, 0, 80, 254, 141, 0, 133, 254, 66, 255, 78, 254, 60, 255, 177, 255, 150, 0, 234, 254, 29, 255, 232, 254, 166, 0, 213, 253, 90, 254, 101, 255, 29, 2, 146, 254, 54, 0, 227, 255, 173, 255, 211, 254, 250, 252, 186, 0, 116, 2, 115, 254, 248, 254, 242, 0, 37, 1, 59, 255, 183, 253, 124, 0, 154, 1, 53, 0, 123, 255, 10, 0, 84, 1, 198, 253, 215, 251, 65, 0, 66, 254, 68, 0, 19, 254, 127, 1, 169, 3, 155, 254, 57, 253, 153, 254, 6, 255, 91, 253, 212, 251, 36, 1, 230, 255, 107, 1, 6, 0, 95, 2, 33, 5, 129, 255, 246, 255, 233, 5, 94, 7, 201, 2, 204, 3, 189, 5, 133, 8, 163, 5, 224, 7, 161, 249, 192, 249, 252, 248, 14, 247, 253, 251, 22, 249, 180, 251, 23, 248, 3, 251, 148, 250, 169, 250, 2, 250, 77, 252, 75, 250, 52, 252, 12, 250, 25, 252, 58, 251, 4, 252, 108, 251, 209, 252, 37, 252, 32, 252, 165, 250, 64, 251, 18, 252, 247, 250, 186, 251, 24, 253, 12, 251, 13, 253, 243, 250, 162, 252, 101, 252, 119, 252, 40, 252, 90, 253, 229, 251, 83, 253, 230, 251, 193, 251, 39, 252, 218, 251, 89, 253, 35, 252, 127, 253, 153, 251, 48, 252, 6, 253, 114, 253, 134, 252, 218, 252, 191, 252, 189, 251, 62, 253, 139, 253, 147, 253, 218, 252, 128, 253, 212, 252, 249, 252, 134, 253, 245, 252, 225, 253, 28, 252, 203, 253, 205, 251, 188, 253, 222, 253, 157, 253, 196, 253, 149, 253, 8, 253, 222, 254, 145, 252, 242, 253, 201, 252, 50, 254, 229, 252, 3, 255, 215, 253, 97, 254, 179, 253, 73, 254, 235, 253, 172, 254, 76, 253, 89, 252, 7, 254, 252, 252, 66, 253, 149, 251, 249, 254, 206, 254, 53, 252, 29, 254, 67, 254, 182, 255, 213, 253, 220, 253, 154, 253, 127, 255, 75, 253, 22, 255, 116, 254, 10, 255, 37, 254, 6, 255, 247, 254, 108, 254, 136, 254, 254, 253, 95, 254, 2, 254, 212, 254, 199, 254, 178, 254, 104, 253, 49, 254, 210, 252, 126, 254, 64, 253, 175, 254, 153, 253, 22, 255, 55, 255, 23, 255, 17, 255, 89, 255, 201, 253, 53, 255, 149, 253, 109, 255, 97, 254, 141, 255, 160, 254, 90, 255, 18, 253, 85, 255, 7, 253, 242, 254, 145, 252, 248, 254, 121, 252, 145, 254, 24, 253, 43, 0, 37, 254, 14, 0, 115, 253, 43, 0, 98, 253, 11, 0, 64, 254, 197, 255, 247, 253, 130, 255, 137, 255, 101, 255, 155, 253, 214, 255, 161, 252, 229, 255, 93, 252, 136, 0, 29, 254, 183, 0, 44, 254, 55, 0, 214, 254, 55, 0, 208, 254, 57, 1, 159, 253, 57, 1, 48, 253, 66, 1, 89, 255, 100, 0, 227, 253, 253, 255, 137, 255, 145, 255, 69, 255, 233, 0, 20, 255, 4, 1, 22, 255, 26, 0, 91, 255, 134, 0, 211, 255, 216, 255, 219, 253, 104, 1, 53, 255, 122, 1, 124, 254, 194, 1, 129, 254, 19, 1, 20, 0, 182, 0, 153, 255, 246, 0, 145, 255, 175, 1, 37, 0, 206, 1, 110, 255, 231, 1, 99, 255, 228, 254, 197, 255, 247, 1, 72, 255, 24, 0, 53, 0, 253, 255, 54, 0, 122, 0, 3, 1, 77, 1, 66, 0, 228, 1, 104, 0, 180, 1, 68, 0, 195, 0, 116, 0, 190, 0, 206, 0, 13, 1, 247, 255, 226, 1, 96, 1, 126, 1, 29, 1, 143, 1, 21, 1, 196, 1, 0, 1, 69, 0, 186, 0, 13, 0, 41, 1, 243, 255, 3, 1, 161, 255, 30, 0, 56, 0, 138, 1, 196, 0, 169, 1, 205, 0, 200, 1, 25, 1, 65, 2, 15, 0, 191, 0, 119, 1, 34, 1, 151, 1, 64, 2, 200, 255, 227, 0, 32, 2, 149, 1, 0, 0, 37, 2, 164, 255, 16, 2, 27, 255, 95, 1, 11, 255, 82, 1, 150, 254, 179, 1, 167, 0, 15, 2, 181, 255, 46, 1, 91, 0, 56, 3, 129, 0, 87, 2, 240, 1, 167, 2, 186, 0, 237, 2, 153, 0, 225, 2, 231, 254, 88, 2, 164, 254, 103, 2, 20, 255, 1, 3, 41, 0, 113, 3, 38, 0, 122, 3, 36, 255, 73, 3, 155, 254, 115, 3, 119, 254, 135, 3, 134, 253, 218, 1, 68, 254, 82, 3, 81, 255, 166, 2, 19, 254, 242, 0, 249, 253, 17, 3, 54, 253, 70, 2, 227, 253, 110, 1, 225, 253, 178, 1, 171, 253, 244, 1, 3, 253, 222, 0, 66, 253, 149, 3, 25, 253, 194, 3, 155, 252, 245, 1, 125, 252, 36, 2, 133, 254, 200, 0, 77, 254, 157, 0, 205, 252, 214, 0, 163, 252, 157, 0, 154, 253, 40, 0, 136, 253, 94, 0, 141, 252, 202, 255, 27, 253, 4, 2, 11, 254, 42, 1, 154, 253, 85, 255, 154, 252, 95, 255, 159, 252, 233, 255, 206, 252, 93, 0, 9, 252, 245, 254, 106, 253, 153, 254, 219, 253, 2, 0, 70, 254, 135, 255, 135, 254, 0, 0, 29, 255, 33, 0, 98, 254, 130, 255, 127, 255, 212, 0, 90, 252, 34, 0, 198, 251, 230, 254, 161, 251, 244, 254, 58, 253, 199, 252, 92, 254, 65, 255, 204, 251, 96, 252, 107, 252, 163, 255, 140, 253, 154, 254, 97, 0, 7, 0, 50, 255, 119, 254, 155, 255, 24, 0, 53, 255, 38, 0, 88, 255, 83, 0, 169, 253, 89, 254, 233, 254, 170, 1, 68, 253, 118, 0, 181, 255, 206, 0, 43, 252, 95, 253, 88, 253, 161, 1, 145, 254, 37, 0, 233, 254, 218, 1, 127, 255, 194, 254, 63, 1, 40, 1, 142, 253, 217, 255, 87, 1, 90, 2, 72, 253, 217, 255, 209, 254, 172, 3, 104, 0, 233, 0, 132, 254, 137, 0, 220, 255, 13, 1, 181, 255, 42, 255, 120, 0, 43, 0, 239, 253, 35, 254, 203, 1, 164, 0, 54, 255, 27, 255, 207, 255, 89, 255, 97, 2, 24, 3, 98, 0, 36, 255, 147, 3, 148, 0, 37, 1, 27, 1, 101, 3, 91, 0, 63, 2, 138, 1, 70, 1, 178, 255, 205, 2, 67, 0, 109, 1, 189, 254, 104, 2, 220, 255, 219, 2, 27, 0, 107, 2, 238, 0, 120, 2, 17, 1, 192, 1, 99, 0, 33, 3, 220, 1, 101, 3, 17, 1, 173, 2, 64, 0, 21, 3, 72, 0, 253, 3, 217, 0, 25, 3, 203, 1, 222, 2, 104, 1, 134, 2, 224, 1, 104, 1, 66, 1, 173, 1, 208, 1, 126, 2, 174, 1, 244, 2, 107, 1, 232, 3, 148, 1, 171, 2, 16, 2, 90, 2, 103, 2, 143, 2, 157, 1, 178, 3, 175, 2, 169, 3, 90, 2, 136, 3, 92, 2, 43, 2, 225, 2, 18, 3, 150, 2, 211, 1, 142, 2, 106, 1, 77, 2, 161, 3, 198, 2, 242, 1, 222, 1, 159, 1, 164, 1, 181, 2, 115, 3, 45, 3, 171, 2, 13, 3, 157, 3, 145, 3, 171, 3, 214, 2, 220, 2, 235, 1, 85, 3, 19, 2, 180, 3, 222, 2, 195, 3, 59, 1, 40, 3, 249, 2, 243, 2, 120, 4, 248, 2, 143, 2, 52, 4, 58, 3, 33, 4, 67, 4, 70, 3, 235, 3, 40, 3, 23, 4, 109, 4, 147, 2, 77, 4, 224, 3, 26, 4, 50, 4, 51, 4, 203, 3, 182, 2, 202, 4, 30, 4, 59, 2, 73, 3, 116, 3, 124, 5, 99, 5, 72, 4, 56, 4, 93, 3, 207, 4, 223, 2, 4, 5, 248, 2, 248, 4, 223, 3, 87, 5, 29, 4, 233, 4, 188, 2, 26, 4, 22, 2, 220, 3, 197, 1, 240, 4, 87, 2, 116, 4, 167, 2, 85, 6, 47, 3, 104, 5, 9, 2, 37, 5, 137, 1, 28, 6, 37, 3, 168, 5, 174, 2, 44, 4, 136, 2, 107, 3, 51, 1, 59, 4, 105, 1, 23, 4, 61, 1, 137, 5, 196, 3, 163, 2, 59, 2, 128, 4, 79, 0, 90, 4, 209, 255, 250, 5, 55, 1, 185, 6, 58, 1, 142, 4, 177, 2, 2, 2, 162, 255, 93, 1, 26, 1, 132, 5, 72, 1, 1, 4, 231, 1, 191, 255, 57, 0, 37, 3, 202, 3, 36, 0, 62, 0, 1, 3, 249, 254, 23, 3, 166, 254, 125, 2, 187, 2, 119, 255, 108, 2, 22, 2, 29, 2, 33, 253, 194, 0, 199, 2, 44, 1, 244, 254, 161, 252, 158, 3, 1, 3, 60, 253, 84, 254, 250, 1, 174, 0, 132, 252, 138, 253, 179, 1, 35, 2, 101, 250, 254, 254, 109, 2, 215, 1, 6, 252, 168, 250, 119, 254, 9, 2, 104, 252, 82, 253, 231, 255, 20, 0, 42, 252, 124, 251, 84, 1, 9, 0, 234, 249, 145, 251, 160, 254, 48, 0, 213, 249, 110, 254, 137, 252, 6, 0, 124, 251, 136, 252, 220, 253, 160, 254, 149, 249, 112, 251, 97, 255, 98, 2, 24, 248, 61, 252, 31, 255, 193, 0, 136, 249, 88, 248, 11, 255, 19, 254, 60, 252, 112, 249, 88, 252, 133, 253, 237, 250, 48, 249, 148, 250, 164, 253, 252, 249, 189, 252, 139, 250, 121, 255, 204, 249, 222, 254, 122, 249, 56, 253, 37, 248, 160, 249, 129, 249, 229, 255, 46, 247, 213, 252, 123, 251, 184, 0, 15, 251, 189, 0, 169, 250, 74, 2, 37, 248, 201, 0, 234, 252, 200, 2, 70, 251, 3, 0, 247, 251, 40, 3, 29, 251, 62, 3, 145, 255, 123, 2, 156, 249, 191, 1, 49, 254, 75, 252, 67, 254, 96, 252, 8, 254, 118, 251, 11, 254, 69, 251, 144, 0, 161, 254, 140, 254, 228, 251, 229, 254, 221, 251, 233, 254, 157, 251, 193, 253, 98, 250, 181, 253, 178, 249, 89, 252, 40, 252, 229, 0, 178, 2, 103, 252, 49, 253, 109, 254, 82, 5, 83, 253, 47, 254, 106, 3, 141, 1, 3, 254, 210, 255, 61, 1, 54, 5, 27, 254, 200, 1, 45, 3, 183, 1, 101, 254, 83, 1, 130, 3, 43, 4, 87, 254, 46, 0, 161, 5, 241, 1, 115, 252, 224, 252, 185, 5, 22, 4, 2, 255, 191, 254, 150, 5, 141, 4, 68, 0, 94, 1, 10, 4, 154, 2, 114, 1, 11, 0, 31, 5, 22, 3, 143, 0, 232, 0, 17, 4, 26, 6, 142, 255, 151, 2, 80, 6, 54, 4, 198, 1, 67, 2, 251, 4, 16, 4, 180, 255, 141, 3, 240, 2, 43, 4, 153, 0, 0, 2, 92, 1, 190, 4, 102, 2, 129, 1, 51, 7, 40, 3, 13, 1, 10, 4, 203, 0, 62, 4, 140, 2, 249, 3, 247, 6, 106, 4, 173, 1, 47, 5, 131, 1, 104, 5, 207, 255, 159, 4, 184, 255, 191, 4, 96, 254, 233, 3, 32, 2, 213, 6, 160, 254, 199, 4, 10, 254, 175, 4, 179, 253, 57, 2, 29, 255, 94, 6, 114, 255, 42, 6, 26, 255, 179, 6, 54, 253, 8, 5, 186, 252, 118, 5, 107, 4, 77, 5, 48, 255, 208, 4, 181, 1, 197, 3, 95, 252, 50, 3, 43, 3, 130, 5, 91, 3, 227, 5, 164, 0, 188, 4, 107, 5, 1, 7, 228, 1, 82, 7, 200, 1, 15, 8, 228, 3, 146, 4, 46, 5, 122, 5, 36, 5, 80, 5, 111, 4, 238, 4, 210, 4, 82, 6, 81, 5, 232, 6, 141, 5, 203, 4, 48, 6, 67, 5, 86, 3, 160, 2, 149, 6, 30, 6, 115, 4, 246, 4, 224, 7, 33, 7, 237, 6, 45, 6, 252, 5, 180, 5, 207, 5, 178, 3, 123, 6, 253, 3, 208, 6, 188, 4, 112, 5, 209, 3, 236, 6, 137, 4, 34, 7, 140, 4, 182, 6, 149, 5, 181, 7, 55, 6, 161, 4, 96, 3, 84, 8, 37, 4, 7, 7, 46, 3, 46, 7, 245, 2, 56, 8, 35, 5, 6, 8, 234, 4, 65, 8, 147, 3, 27, 9, 162, 3, 187, 5, 123, 4, 30, 10, 159, 5, 197, 8, 208, 6, 42, 8, 84, 6, 54, 9, 174, 5, 106, 10, 226, 5, 84, 7, 45, 7, 22, 8, 183, 7, 203, 6, 41, 6, 170, 2, 9, 5, 48, 6, 253, 7, 174, 5, 50, 8, 194, 9, 212, 7, 151, 10, 18, 8, 214, 2, 52, 6, 196, 10, 32, 9, 228, 0, 79, 3, 152, 9, 123, 6, 36, 0, 45, 1, 150, 7, 165, 7, 66, 254, 160, 255, 106, 8, 116, 5, 253, 5, 77, 4, 14, 0, 96, 2, 101, 252, 36, 253, 103, 5, 190, 7, 65, 5, 184, 3, 88, 253, 65, 1, 1, 5, 244, 4, 198, 249, 109, 1, 173, 3, 178, 3, 55, 249, 202, 252, 70, 9, 227, 10, 29, 7, 228, 10, 236, 248, 29, 247, 169, 248, 23, 246, 152, 249, 200, 248, 97, 249, 44, 248, 60, 251, 136, 248, 59, 251, 198, 247, 233, 249, 204, 249, 219, 249, 236, 249, 85, 251, 177, 249, 56, 251, 65, 249, 177, 250, 129, 251, 176, 249, 100, 248, 6, 251, 145, 250, 231, 250, 133, 250, 185, 249, 101, 251, 116, 249, 225, 250, 93, 250, 58, 250, 169, 250, 126, 252, 24, 251, 221, 251, 205, 250, 146, 251, 42, 252, 147, 251, 131, 251, 32, 250, 200, 251, 228, 250, 4, 252, 97, 251, 44, 252, 50, 250, 57, 252, 41, 250, 36, 252, 102, 252, 233, 251, 203, 251, 186, 252, 101, 251, 166, 252, 58, 251, 149, 251, 239, 251, 216, 251, 1, 253, 152, 252, 123, 251, 67, 253, 144, 252, 62, 253, 118, 252, 250, 252, 8, 252, 190, 253, 200, 251, 223, 252, 58, 250, 177, 253, 169, 251, 176, 253, 134, 251, 55, 253, 148, 250, 128, 253, 160, 250, 171, 253, 221, 251, 96, 254, 121, 252, 82, 253, 192, 252, 107, 253, 60, 253, 68, 254, 156, 252, 22, 254, 103, 252, 138, 254, 248, 252, 149, 253, 110, 251, 183, 253, 219, 253, 255, 252, 229, 252, 77, 254, 109, 253, 238, 253, 27, 253, 14, 254, 187, 252, 155, 254, 171, 253, 233, 254, 153, 252, 13, 255, 137, 252, 230, 254, 103, 253, 232, 254, 101, 253, 91, 255, 208, 253, 118, 254, 121, 252, 150, 254, 102, 254, 64, 254, 185, 253, 103, 254, 194, 253, 199, 254, 155, 254, 131, 253, 220, 253, 198, 253, 76, 254, 128, 252, 8, 254, 130, 254, 11, 253, 198, 255, 31, 254, 91, 255, 150, 253, 65, 255, 138, 254, 22, 255, 130, 254, 34, 255, 85, 253, 231, 255, 32, 254, 94, 254, 153, 254, 38, 253, 159, 254, 188, 254, 99, 255, 80, 254, 190, 254, 118, 254, 209, 254, 228, 254, 152, 255, 167, 253, 223, 254, 212, 253, 60, 255, 180, 253, 106, 255, 109, 253, 160, 253, 39, 254, 232, 255, 188, 255, 64, 254, 38, 254, 248, 255, 6, 254, 211, 255, 20, 253, 72, 255, 180, 252, 4, 255, 123, 252, 165, 255, 184, 253, 159, 255, 116, 253, 138, 0, 4, 253, 125, 255, 90, 253, 244, 255, 98, 253, 165, 0, 253, 254, 253, 255, 184, 252, 149, 255, 115, 252, 37, 0, 32, 252, 44, 0, 170, 252, 97, 254, 185, 252, 13, 0, 23, 252, 241, 254, 254, 251, 203, 254, 226, 252, 34, 254, 192, 252, 24, 254, 81, 252, 168, 0, 168, 251, 125, 254, 95, 251, 155, 255, 97, 251, 216, 255, 83, 252, 196, 254, 250, 251, 254, 252, 236, 251, 143, 253, 199, 251, 230, 253, 56, 251, 213, 254, 224, 250, 76, 254, 83, 251, 105, 253, 113, 251, 95, 255, 64, 251, 78, 253, 43, 251, 193, 252, 104, 250, 48, 253, 133, 250, 19, 254, 126, 252, 28, 253, 102, 252, 223, 252, 178, 251, 110, 254, 213, 249, 60, 252, 219, 251, 130, 253, 11, 251, 98, 250, 37, 250, 90, 252, 34, 250, 129, 252, 194, 249, 204, 253, 69, 249, 51, 253, 162, 253, 171, 253, 114, 251, 195, 251, 167, 250, 44, 254, 102, 248, 43, 250, 210, 248, 71, 252, 116, 248, 93, 252, 37, 250, 68, 255, 157, 249, 91, 254, 79, 250, 174, 254, 88, 250, 234, 255, 106, 248, 90, 254, 42, 248, 7, 255, 16, 254, 142, 255, 138, 248, 13, 253, 247, 250, 174, 0, 85, 250, 147, 255, 30, 254, 255, 254, 59, 251, 4, 254, 175, 249, 151, 0, 98, 249, 208, 0, 114, 253, 107, 0, 141, 249, 29, 0, 139, 251, 23, 1, 65, 251, 50, 1, 52, 251, 6, 254, 38, 253, 81, 255, 44, 251, 155, 255, 55, 252, 39, 2, 154, 252, 22, 1, 201, 252, 59, 1, 205, 253, 120, 1, 229, 251, 228, 0, 5, 254, 24, 1, 169, 253, 25, 1, 10, 253, 253, 0, 207, 254, 123, 1, 13, 253, 122, 255, 157, 253, 148, 2, 200, 252, 24, 2, 207, 252, 134, 2, 99, 254, 49, 0, 171, 254, 177, 0, 59, 254, 14, 2, 30, 254, 77, 2, 185, 255, 83, 1, 111, 253, 8, 1, 12, 255, 39, 1, 19, 255, 59, 1, 125, 254, 57, 2, 6, 254, 247, 255, 135, 254, 14, 0, 96, 255, 149, 2, 40, 255, 40, 0, 204, 254, 210, 255, 95, 0, 214, 0, 14, 255, 167, 0, 170, 255, 192, 0, 200, 255, 27, 0, 180, 255, 31, 0, 36, 0, 53, 1, 150, 255, 74, 255, 143, 255, 74, 0, 71, 254, 234, 255, 23, 0, 139, 0, 81, 0, 245, 255, 44, 0, 15, 0, 169, 255, 119, 255, 138, 255, 49, 255, 98, 255, 198, 255, 16, 1, 164, 255, 100, 255, 71, 254, 8, 0, 120, 255, 128, 0, 35, 255, 101, 0, 38, 255, 40, 0, 59, 255, 180, 255, 56, 254, 9, 0, 67, 254, 33, 0, 89, 254, 226, 0, 60, 0, 73, 0, 34, 255, 156, 0, 113, 254, 24, 1, 194, 254, 245, 0, 171, 254, 166, 0, 13, 254, 83, 1, 66, 255, 71, 1, 37, 255, 69, 1, 119, 255, 167, 255, 172, 253, 100, 0, 141, 253, 144, 0, 91, 253, 231, 1, 28, 0, 252, 0, 121, 254, 214, 0, 215, 255, 26, 1, 228, 255, 99, 0, 226, 254, 75, 1, 49, 0, 203, 1, 124, 254, 53, 2, 143, 254, 180, 1, 28, 0, 80, 1, 247, 255, 141, 1, 89, 255, 106, 2, 34, 0, 84, 2, 239, 255, 49, 2, 116, 255, 43, 1, 79, 0, 10, 2, 125, 0, 203, 0, 2, 0, 244, 0, 32, 1, 255, 0, 211, 0, 175, 0, 82, 0, 84, 2, 187, 0, 5, 2, 108, 0, 125, 1, 255, 0, 109, 1, 41, 1, 241, 1, 96, 1, 71, 1, 174, 255, 25, 0, 210, 0, 115, 1, 245, 0, 5, 1, 3, 0, 33, 2, 193, 1, 140, 0, 38, 1, 44, 0, 39, 1, 212, 0, 91, 1, 244, 0, 238, 1, 75, 1, 16, 2, 201, 0, 51, 1, 93, 1, 155, 1, 101, 2, 28, 1, 102, 2, 157, 1, 208, 1, 66, 1, 112, 2, 141, 1, 97, 0, 200, 0, 96, 255, 128, 1, 149, 0, 106, 1, 239, 1, 13, 2, 13, 1, 73, 2, 33, 0, 235, 1, 135, 255, 177, 1, 171, 1, 99, 2, 242, 1, 4, 2, 171, 0, 187, 1, 241, 1, 154, 2, 184, 1, 19, 1, 54, 2, 63, 2, 146, 0, 127, 2, 155, 0, 158, 2, 223, 255, 173, 0, 212, 0, 184, 2, 90, 255, 89, 2, 65, 255, 183, 2, 23, 254, 247, 1, 175, 0, 230, 2, 214, 0, 220, 1, 116, 1, 59, 4, 66, 2, 18, 2, 74, 2, 9, 3, 169, 1, 106, 3, 59, 1, 73, 3, 118, 1, 80, 3, 91, 255, 53, 2, 35, 0, 223, 3, 217, 255, 38, 4, 73, 1, 200, 2, 18, 3, 72, 3, 133, 2, 27, 3, 149, 2, 164, 2, 59, 2, 150, 3, 120, 2, 55, 4, 161, 2, 49, 3, 62, 1, 132, 1, 106, 3, 244, 3, 52, 2, 80, 3, 112, 3, 108, 2, 45, 2, 223, 1, 159, 2, 197, 1, 180, 2, 212, 1, 72, 3, 130, 2, 76, 3, 133, 2, 250, 1, 172, 1, 129, 3, 55, 2, 69, 3, 131, 1, 194, 3, 243, 1, 179, 2, 49, 2, 171, 3, 158, 3, 15, 3, 40, 1, 22, 3, 12, 1, 4, 4, 18, 2, 106, 3, 73, 1, 36, 2, 143, 0, 163, 2, 35, 1, 247, 1, 66, 0, 17, 4, 103, 1, 18, 3, 97, 0, 37, 3, 33, 0, 69, 3, 214, 1, 255, 1, 49, 0, 68, 4, 71, 1, 150, 4, 67, 1, 3, 0, 242, 0, 104, 3, 218, 1, 177, 2, 173, 1, 49, 5, 166, 2, 18, 4, 108, 2, 85, 4, 152, 2, 65, 1, 193, 0, 121, 3, 182, 3, 129, 4, 106, 3, 125, 3, 123, 2, 109, 3, 94, 3, 180, 3, 145, 3, 13, 5, 153, 2, 40, 5, 127, 2, 229, 3, 25, 3, 122, 5, 6, 4, 152, 4, 244, 3, 86, 4, 191, 3, 130, 5, 157, 3, 123, 5, 147, 3, 31, 2, 94, 3, 92, 4, 198, 4, 67, 3, 166, 4, 67, 3, 166, 4, 191, 3, 124, 4, 123, 4, 96, 5, 20, 5, 169, 4, 135, 5, 207, 4, 55, 5, 61, 5, 234, 2, 68, 4, 175, 6, 3, 5, 109, 5, 49, 4, 54, 5, 30, 6, 129, 4, 195, 5, 109, 6, 113, 4, 33, 7, 196, 4, 32, 4, 102, 5, 241, 5, 194, 6, 96, 6, 9, 6, 84, 6, 6, 6, 87, 3, 60, 6, 97, 3, 131, 6, 181, 2, 117, 3, 180, 6, 239, 5, 143, 4, 16, 5, 161, 8, 224, 6, 160, 7, 213, 5, 228, 7, 202, 5, 254, 5, 74, 7, 158, 6, 216, 7, 30, 6, 236, 2, 225, 6, 57, 3, 38, 1, 112, 5, 60, 4, 10, 8, 109, 2, 35, 5, 109, 1, 7, 5, 198, 0, 4, 4, 232, 1, 128, 5, 249, 0, 147, 1, 246, 3, 25, 6, 68, 1, 107, 1, 109, 6, 20, 4, 193, 0, 111, 1, 242, 7, 67, 7, 5, 255, 67, 2, 238, 2, 226, 3, 13, 255, 30, 0, 45, 5, 111, 3, 228, 255, 87, 255, 112, 2, 149, 3, 59, 254, 159, 0, 186, 0, 90, 5, 154, 253, 6, 0, 25, 2, 136, 1, 162, 255, 221, 254, 13, 3, 229, 0, 128, 255, 214, 254, 245, 0, 235, 1, 67, 253, 120, 253, 204, 3, 21, 3, 11, 254, 128, 253, 178, 0, 255, 0, 147, 254, 122, 254, 1, 255, 61, 1, 66, 252, 218, 254, 65, 255, 228, 0, 249, 252, 65, 254, 157, 0, 19, 255, 111, 253, 48, 253, 105, 254, 92, 0, 139, 255, 157, 253, 78, 1, 26, 255, 89, 253, 196, 251, 112, 255, 195, 254, 123, 252, 163, 252, 30, 253, 152, 254, 171, 255, 41, 253, 166, 255, 237, 252, 100, 0, 234, 255, 121, 254, 249, 254, 200, 255, 183, 255, 175, 254, 14, 253, 5, 0, 67, 255, 62, 253, 144, 253, 89, 0, 168, 254, 121, 255, 167, 251, 159, 254, 19, 255, 84, 253, 145, 251, 237, 254, 178, 251, 243, 254, 77, 251, 152, 0, 145, 0, 46, 253, 48, 251, 49, 0, 80, 0, 32, 251, 248, 252, 8, 255, 135, 1, 36, 253, 221, 253, 213, 1, 218, 0, 1, 255, 160, 252, 69, 0, 110, 1, 90, 255, 27, 254, 80, 253, 191, 0, 68, 251, 84, 251, 86, 255, 87, 255, 228, 250, 161, 249, 65, 1, 214, 1, 117, 250, 37, 251, 192, 255, 16, 1, 175, 250, 8, 255, 236, 1, 53, 2, 47, 253, 159, 253, 195, 0, 229, 1, 195, 253, 123, 255, 171, 1, 202, 0, 85, 255, 138, 255, 199, 0, 63, 2, 2, 0, 225, 255, 182, 2, 243, 2, 170, 250, 217, 255, 40, 2, 45, 2, 23, 254, 15, 1, 168, 2, 25, 2, 13, 0, 59, 254, 87, 3, 186, 3, 123, 255, 204, 255, 175, 255, 226, 2, 111, 251, 125, 2, 31, 4, 35, 4, 161, 255, 164, 2, 235, 4, 57, 4, 233, 1, 49, 1, 63, 254, 186, 3, 234, 253, 228, 3, 55, 252, 98, 3, 222, 251, 35, 4, 242, 250, 106, 2, 120, 250, 105, 2, 54, 254, 86, 5, 97, 255, 29, 7, 250, 252, 240, 253, 242, 255, 86, 4, 78, 251, 123, 252, 252, 252, 177, 1, 24, 251, 25, 251, 13, 252, 210, 254, 166, 253, 183, 253, 9, 253, 174, 249, 8, 253, 243, 249, 184, 252, 127, 248, 208, 252, 229, 253, 23, 249, 69, 247, 29, 255, 220, 255, 14, 248, 217, 248, 197, 247, 154, 251, 89, 246, 232, 248, 66, 250, 252, 0, 115, 245, 97, 254, 197, 253, 45, 254, 229, 5, 18, 6, 132, 8, 183, 7, 22, 9, 228, 7, 191, 248, 111, 249, 191, 248, 37, 249, 248, 247, 130, 251, 170, 247, 138, 249, 173, 249, 181, 251, 88, 249, 149, 251, 191, 250, 184, 249, 177, 250, 154, 249, 198, 250, 243, 250, 211, 250, 15, 251, 128, 249, 143, 249, 49, 250, 173, 252, 190, 250, 216, 248, 123, 250, 116, 247, 254, 250, 87, 253, 7, 249, 143, 249, 58, 252, 198, 251, 97, 251, 116, 249, 226, 251, 207, 251, 138, 251, 122, 251, 73, 251, 24, 253, 6, 251, 27, 252, 90, 252, 153, 250, 97, 252, 120, 250, 14, 252, 231, 250, 241, 252, 69, 252, 231, 251, 124, 252, 31, 252, 207, 252, 31, 253, 201, 252, 52, 252, 91, 251, 30, 253, 186, 251, 30, 253, 126, 251, 240, 252, 223, 252, 214, 252, 238, 252, 132, 252, 248, 253, 24, 252, 206, 252, 124, 253, 59, 252, 191, 253, 142, 252, 227, 253, 74, 253, 97, 253, 107, 252, 173, 253, 126, 253, 122, 253, 153, 253, 68, 252, 147, 253, 99, 252, 253, 253, 41, 253, 29, 254, 209, 252, 27, 254, 184, 252, 190, 253, 72, 254, 55, 253, 190, 253, 187, 254, 111, 253, 98, 253, 126, 254, 198, 253, 71, 254, 102, 253, 254, 253, 237, 252, 120, 254, 239, 253, 246, 253, 59, 254, 25, 254, 89, 254, 152, 253, 183, 253, 151, 253, 99, 255, 106, 253, 244, 254, 88, 253, 164, 254, 190, 254, 189, 254, 136, 253, 68, 254, 208, 254, 82, 254, 180, 254, 54, 254, 235, 254, 44, 254, 109, 253, 231, 252, 193, 254, 132, 253, 29, 255, 214, 253, 139, 254, 165, 254, 178, 254, 46, 255, 56, 254, 64, 255, 238, 253, 14, 255, 40, 255, 58, 255, 146, 254, 142, 254, 174, 254, 95, 255, 103, 254, 20, 253, 149, 255, 132, 254, 218, 254, 125, 253, 33, 255, 103, 253, 22, 255, 27, 253, 115, 255, 16, 254, 126, 255, 2, 254, 117, 255, 185, 254, 84, 255, 207, 254, 206, 254, 188, 253, 92, 255, 249, 254, 250, 254, 84, 255, 189, 255, 110, 254, 31, 0, 146, 254, 246, 255, 76, 254, 170, 255, 241, 253, 71, 0, 135, 254, 234, 255, 159, 253, 244, 255, 90, 253, 189, 255, 193, 254, 63, 0, 65, 255, 35, 0, 75, 255, 217, 255, 14, 255, 126, 0, 89, 255, 116, 255, 224, 253, 155, 0, 215, 254, 174, 0, 215, 254, 38, 0, 248, 255, 117, 0, 132, 254, 197, 0, 60, 254, 240, 0, 246, 253, 223, 0, 153, 255, 110, 0, 69, 255, 87, 0, 101, 255, 169, 0, 209, 255, 157, 0, 26, 0, 173, 255, 156, 255, 128, 0, 80, 0, 209, 0, 194, 255, 6, 0, 7, 0, 22, 0, 5, 0, 62, 1, 236, 255, 248, 0, 211, 255, 56, 255, 193, 255, 156, 0, 187, 255, 250, 0, 73, 255, 113, 1, 130, 255, 143, 255, 180, 255, 114, 255, 134, 255, 192, 255, 2, 255, 225, 255, 35, 0, 79, 255, 185, 255, 249, 255, 171, 0, 93, 0, 27, 0, 108, 0, 212, 0, 182, 254, 47, 255, 133, 255, 186, 255, 233, 254, 95, 0, 160, 255, 20, 0, 68, 255, 195, 255, 198, 254, 87, 0, 212, 254, 178, 255, 158, 254, 122, 255, 11, 0, 122, 0, 116, 255, 122, 0, 237, 254, 152, 0, 219, 254, 140, 0, 174, 255, 138, 0, 191, 254, 145, 255, 32, 254, 100, 255, 153, 254, 76, 0, 2, 255, 216, 255, 133, 253, 160, 255, 246, 253, 79, 0, 5, 254, 8, 0, 244, 254, 47, 1, 229, 253, 68, 0, 66, 254, 61, 0, 246, 253, 50, 1, 111, 0, 189, 0, 77, 254, 122, 0, 133, 254, 166, 0, 197, 253, 114, 254, 136, 253, 182, 255, 21, 253, 161, 255, 57, 254, 194, 0, 72, 252, 83, 0, 226, 252, 192, 0, 13, 253, 192, 0, 243, 252, 94, 255, 149, 253, 234, 0, 105, 253, 215, 254, 24, 254, 147, 255, 60, 252, 124, 255, 186, 252, 188, 255, 181, 252, 58, 0, 168, 251, 170, 255, 219, 252, 213, 254, 80, 252, 3, 255, 246, 252, 206, 255, 59, 252, 219, 253, 160, 254, 158, 255, 32, 252, 169, 254, 163, 251, 197, 254, 163, 251, 205, 254, 125, 251, 138, 254, 131, 253, 26, 255, 114, 251, 213, 255, 237, 250, 156, 255, 99, 252, 119, 254, 6, 251, 168, 253, 79, 253, 126, 255, 57, 250, 200, 254, 215, 250, 2, 255, 72, 250, 70, 254, 244, 250, 155, 253, 19, 251, 9, 254, 35, 250, 144, 254, 214, 250, 26, 0, 104, 250, 190, 255, 49, 249, 95, 255, 148, 249, 45, 254, 32, 249, 220, 253, 143, 250, 200, 253, 236, 249, 153, 252, 41, 250, 246, 251, 149, 250, 197, 253, 131, 248, 240, 253, 9, 249, 133, 255, 151, 248, 25, 255, 250, 247, 189, 254, 252, 247, 118, 252, 72, 248, 201, 253, 131, 248, 148, 253, 1, 248, 35, 252, 203, 251, 142, 254, 17, 248, 64, 253, 205, 246, 19, 253, 76, 245, 191, 251, 139, 248, 159, 0, 36, 248, 248, 0, 142, 253, 133, 255, 221, 246, 62, 252, 99, 253, 104, 254, 157, 250, 106, 251, 60, 254, 148, 254, 236, 251, 33, 253, 124, 255, 183, 0, 172, 249, 16, 253, 221, 253, 205, 254, 247, 252, 19, 251, 158, 255, 41, 0, 144, 252, 189, 251, 255, 254, 97, 0, 190, 249, 215, 248, 31, 0, 230, 255, 124, 253, 207, 253, 76, 255, 222, 253, 127, 254, 185, 251, 102, 254, 222, 252, 98, 254, 197, 252, 55, 254, 54, 252, 22, 254, 171, 251, 41, 255, 108, 252, 112, 255, 87, 252, 19, 254, 11, 251, 251, 253, 29, 250, 181, 0, 101, 0, 180, 254, 135, 252, 188, 252, 87, 252, 209, 253, 83, 254, 139, 253, 221, 253, 73, 255, 175, 254, 223, 253, 174, 255, 6, 255, 226, 254, 5, 0, 124, 255, 164, 254, 4, 255, 219, 254, 40, 254, 98, 255, 100, 0, 227, 255, 197, 0, 20, 255, 88, 254, 163, 252, 43, 255, 116, 255, 249, 255, 85, 254, 69, 254, 187, 0, 159, 255, 84, 253, 32, 253, 219, 254, 2, 1, 144, 254, 104, 255, 106, 255, 136, 1, 159, 253, 175, 0, 114, 255, 43, 1, 118, 255, 152, 0, 137, 255, 73, 1, 26, 254, 204, 255, 37, 1, 198, 0, 73, 255, 117, 0, 175, 0, 75, 1, 198, 255, 238, 254, 231, 0, 44, 1, 224, 254, 74, 1, 207, 254, 116, 1, 145, 255, 153, 1, 247, 255, 167, 1, 83, 0, 0, 1, 67, 0, 111, 1, 237, 255, 248, 0, 91, 0, 113, 0, 221, 255, 150, 1, 65, 255, 154, 0, 238, 0, 40, 1, 5, 0, 197, 0, 141, 0, 221, 0, 57, 1, 198, 0, 211, 0, 165, 1, 244, 0, 78, 1, 88, 0, 170, 1, 13, 255, 198, 1, 202, 0, 40, 2, 251, 255, 147, 1, 35, 1, 185, 0, 219, 0, 45, 1, 251, 0, 138, 0, 128, 0, 69, 0, 197, 0, 32, 1, 116, 255, 195, 255, 188, 0, 105, 1, 197, 0, 86, 2, 186, 1, 17, 1, 34, 1, 143, 0, 216, 1, 226, 1, 157, 0, 114, 1, 159, 1, 65, 1, 116, 1, 129, 1, 146, 1, 40, 2, 155, 0, 24, 0, 38, 2, 7, 1, 245, 255, 21, 0, 104, 1, 227, 0, 147, 0, 2, 255, 168, 1, 97, 0, 110, 1, 243, 255, 119, 1, 141, 0, 193, 1, 232, 0, 140, 1, 251, 1, 218, 1, 16, 1, 189, 2, 68, 1, 106, 1, 209, 255, 75, 2, 148, 0, 31, 2, 69, 0, 144, 1, 205, 255, 49, 2, 59, 0, 220, 0, 246, 255, 96, 1, 147, 0, 206, 0, 211, 0, 141, 2, 185, 0, 51, 2, 41, 1, 53, 2, 28, 1, 82, 2, 121, 0, 254, 2, 192, 0, 142, 1, 118, 0, 130, 2, 178, 1, 233, 0, 8, 1, 225, 1, 211, 1, 129, 0, 91, 255, 187, 2, 239, 0, 90, 0, 26, 0, 86, 1, 218, 1, 201, 255, 27, 0, 132, 1, 94, 0, 84, 255, 0, 0, 213, 2, 123, 1, 196, 255, 81, 1, 114, 1, 209, 1, 95, 0, 63, 1, 38, 3, 83, 2, 78, 0, 4, 1, 241, 1, 83, 3, 210, 0, 48, 2, 202, 1, 62, 2, 48, 254, 202, 0, 241, 1, 113, 2, 54, 255, 152, 0, 48, 0, 200, 2, 236, 255, 54, 2, 100, 0, 203, 2, 199, 1, 212, 1, 155, 1, 93, 2, 63, 1, 134, 2, 195, 0, 103, 2, 145, 1, 26, 2, 168, 2, 227, 2, 201, 0, 155, 2, 178, 1, 186, 3, 198, 1, 169, 1, 134, 2, 235, 1, 94, 2, 169, 2, 160, 1, 252, 1, 241, 1, 54, 3, 170, 1, 47, 3, 148, 2, 135, 2, 116, 2, 204, 2, 185, 2, 210, 1, 106, 2, 201, 1, 173, 2, 204, 1, 109, 1, 53, 1, 209, 2, 55, 2, 68, 3, 89, 2, 97, 2, 44, 1, 57, 3, 203, 1, 175, 3, 175, 2, 169, 2, 21, 2, 147, 3, 86, 2, 79, 2, 243, 0, 108, 3, 195, 1, 106, 3, 164, 1, 18, 3, 61, 1, 220, 2, 220, 0, 154, 3, 61, 1, 84, 4, 111, 1, 19, 2, 210, 1, 4, 4, 137, 2, 29, 4, 103, 2, 10, 4, 41, 2, 61, 3, 90, 2, 253, 3, 31, 3, 159, 3, 35, 3, 110, 3, 251, 2, 31, 3, 240, 1, 93, 5, 5, 3, 73, 2, 2, 3, 35, 3, 162, 3, 75, 4, 25, 3, 198, 4, 94, 3, 185, 4, 127, 3, 1, 4, 215, 2, 4, 3, 77, 3, 148, 4, 91, 4, 99, 3, 253, 3, 62, 3, 245, 3, 73, 3, 142, 3, 250, 1, 191, 2, 215, 4, 53, 4, 108, 2, 51, 3, 172, 4, 59, 4, 131, 4, 57, 4, 118, 4, 139, 3, 11, 6, 97, 4, 29, 5, 136, 2, 63, 5, 100, 2, 204, 5, 220, 3, 199, 5, 169, 3, 217, 3, 48, 5, 187, 3, 61, 5, 173, 1, 142, 3, 73, 3, 58, 5, 52, 2, 155, 4, 156, 1, 132, 4, 147, 5, 40, 5, 154, 5, 50, 5, 128, 2, 248, 2, 190, 6, 130, 5, 190, 0, 43, 2, 49, 4, 237, 3, 170, 1, 1, 1, 71, 3, 212, 3, 235, 0, 231, 0, 240, 5, 143, 4, 109, 0, 37, 1, 246, 3, 33, 6, 49, 1, 142, 0, 124, 4, 27, 2, 221, 254, 148, 255, 189, 4, 204, 3, 22, 0, 40, 255, 155, 2, 60, 3, 30, 254, 182, 1, 197, 1, 151, 5, 187, 253, 90, 254, 21, 3, 131, 1, 154, 254, 58, 254, 174, 0, 12, 3, 220, 255, 140, 254, 134, 1, 122, 255, 139, 253, 160, 0, 206, 254, 239, 2, 22, 251, 181, 254, 177, 0, 10, 2, 8, 255, 62, 2, 5, 255, 127, 2, 237, 253, 151, 1, 172, 253, 138, 1, 93, 254, 21, 3, 151, 253, 33, 3, 38, 252, 143, 1, 167, 252, 215, 2, 249, 255, 6, 2, 65, 253, 54, 1, 137, 251, 232, 255, 22, 252, 31, 1, 64, 252, 107, 1, 237, 250, 56, 1, 2, 250, 245, 0, 235, 249, 49, 1, 28, 0, 153, 0, 165, 252, 81, 255, 223, 255, 76, 1, 138, 250, 102, 255, 212, 0, 154, 1, 175, 253, 59, 255, 188, 251, 64, 253, 120, 252, 191, 255, 26, 1, 111, 1, 106, 252, 82, 253, 89, 1, 93, 0, 254, 254, 155, 254, 184, 2, 132, 2, 75, 253, 228, 255, 192, 1, 237, 1, 239, 254, 193, 0, 15, 2, 34, 2, 13, 255, 255, 253, 128, 1, 120, 255, 17, 1, 159, 254, 0, 2, 114, 255, 25, 2, 58, 255, 173, 3, 238, 2, 83, 0, 248, 0, 66, 2, 93, 3, 200, 255, 80, 2, 74, 3, 44, 0, 124, 3, 24, 0, 33, 0, 122, 3, 240, 255, 214, 3, 63, 3, 118, 5, 255, 5, 106, 7, 180, 6, 96, 5, 156, 7, 185, 5, 22, 252, 95, 252, 184, 251, 77, 251, 127, 253, 93, 252, 164, 253, 63, 252, 245, 252, 95, 253, 189, 252, 236, 252, 96, 254, 104, 253, 54, 254, 2, 253, 116, 253, 247, 253, 106, 253, 17, 254, 1, 252, 3, 254, 1, 252, 84, 254, 68, 254, 216, 253, 144, 254, 63, 254, 33, 254, 45, 255, 226, 251, 121, 252, 196, 254, 7, 255, 199, 253, 177, 253, 199, 253, 237, 254, 227, 253, 65, 255, 52, 253, 68, 255, 182, 252, 248, 254, 179, 254, 8, 255, 194, 254, 28, 255, 237, 254, 1, 0, 201, 253, 28, 255, 141, 255, 35, 255, 18, 255, 138, 254, 59, 255, 5, 254, 34, 255, 189, 253, 254, 254, 80, 254, 195, 255, 12, 255, 167, 254, 2, 0, 174, 254, 39, 0, 41, 255, 87, 255, 198, 255, 0, 0, 200, 255, 250, 255, 53, 255, 125, 255, 1, 0, 70, 255, 251, 255, 45, 255, 6, 0, 132, 254, 11, 0, 94, 254, 140, 255, 131, 0, 122, 255, 113, 0, 89, 0, 252, 255, 71, 0, 254, 255, 237, 255, 64, 255, 6, 1, 24, 0, 189, 0, 151, 0, 123, 255, 147, 255, 186, 0, 103, 255, 166, 0, 37, 255, 37, 0, 139, 0, 193, 0, 171, 0, 81, 1, 124, 0, 158, 0, 195, 255, 141, 0, 226, 0, 243, 255, 190, 0, 231, 0, 34, 0, 98, 1, 109, 0, 60, 1, 201, 0, 244, 0, 164, 0, 74, 1, 171, 255, 134, 1, 172, 255, 254, 0, 71, 1, 1, 1, 79, 1, 235, 1, 147, 0, 220, 1, 105, 0, 54, 0, 77, 0, 181, 1, 114, 1, 165, 1, 58, 1, 193, 1, 86, 1, 73, 1, 126, 0, 161, 2, 36, 1, 59, 2, 132, 1, 243, 0, 193, 0, 141, 2, 64, 1, 109, 2, 24, 1, 194, 0, 124, 1, 5, 2, 69, 2, 45, 0, 67, 1, 111, 0, 166, 1, 233, 1, 139, 1, 222, 2, 22, 2, 110, 2, 34, 2, 230, 1, 246, 1, 62, 1, 60, 2, 189, 0, 38, 2, 129, 1, 166, 1, 99, 255, 153, 0, 131, 255, 126, 1, 59, 255, 130, 1, 249, 254, 78, 1, 228, 0, 185, 2, 68, 255, 1, 0, 51, 0, 41, 1, 5, 254, 213, 0, 136, 254, 141, 1, 232, 255, 255, 0, 221, 253, 89, 0, 10, 254, 162, 255, 131, 1, 179, 0, 148, 253, 68, 0, 84, 253, 112, 0, 126, 253, 162, 254, 252, 254, 172, 0, 74, 254, 188, 254, 8, 1, 136, 2, 60, 252, 252, 255, 159, 251, 7, 0, 122, 255, 134, 0, 147, 251, 206, 254, 143, 0, 96, 0, 92, 254, 15, 254, 59, 251, 162, 254, 9, 250, 83, 253, 95, 255, 72, 0, 105, 3, 179, 2, 220, 2, 27, 1, 153, 3, 97, 1, 78, 1, 219, 1, 71, 4, 53, 3, 96, 3, 12, 2, 75, 3, 241, 1, 202, 2, 199, 2, 20, 3, 238, 2, 52, 4, 202, 2, 180, 4, 241, 2, 65, 2, 150, 2, 124, 245, 170, 192, 38, 3, 44, 7, 95, 251, 33, 228, 37, 12, 28, 4, 40, 248, 202, 208, 85, 16, 107, 5, 192, 249, 99, 218, 69, 9, 145, 5, 232, 249, 78, 219, 176, 12, 193, 7, 210, 251, 214, 230, 35, 7, 16, 9, 184, 252, 64, 236, 173, 3, 242, 12, 199, 254, 163, 248, 47, 9, 161, 11, 41, 254, 234, 244, 32, 14, 116, 9, 247, 252, 183, 237, 123, 13, 24, 12, 98, 254, 70, 246, 139, 11, 205, 16, 72, 0, 178, 1, 56, 7, 148, 17, 139, 0, 68, 3, 44, 15, 40, 21, 157, 1, 180, 9, 163, 4, 42, 28, 67, 3, 166, 19, 11, 12, 40, 35, 139, 4, 90, 27, 216, 28, 115, 3, 37, 247, 177, 202, 74, 23, 226, 5, 58, 250, 60, 221, 35, 20, 86, 8, 61, 252, 88, 233, 8, 31, 217, 7, 228, 251, 65, 231, 107, 25, 202, 8, 139, 252, 49, 235, 246, 29, 192, 10, 180, 253, 47, 242, 64, 23, 200, 11, 60, 254, 92, 245, 34, 19, 180, 14, 131, 255, 17, 253, 77, 27, 4, 14, 60, 255, 103, 251, 238, 31, 138, 15, 213, 255, 252, 254, 176, 23, 52, 17, 107, 0, 133, 2, 29, 30, 223, 19, 64, 1, 136, 7, 147, 21, 133, 23, 57, 2, 98, 13, 89, 30, 214, 27, 50, 3, 62, 19, 172, 23, 2, 31, 209, 3, 253, 22, 218, 21, 223, 44, 243, 5, 212, 35, 85, 41, 76, 5, 159, 249, 153, 217, 89, 35, 61, 6, 145, 250, 68, 223, 66, 38, 243, 7, 247, 251, 180, 231, 242, 34, 111, 9, 244, 252, 164, 237, 56, 40, 24, 10, 87, 253, 253, 239, 191, 36, 174, 10, 171, 253, 245, 241, 252, 33, 146, 12, 156, 254, 160, 247, 29, 38, 67, 13, 235, 254, 123, 249, 193, 39, 52, 15, 181, 255, 58, 254, 210, 35, 176, 17, 148, 0, 123, 3, 168, 39, 140, 19, 40, 1, 245, 6, 154, 35, 103, 22, 241, 1, 177, 11, 4, 41, 122, 24, 116, 2, 198, 14, 126, 39, 207, 29, 151, 3, 158, 21, 140, 34, 23, 34, 93, 4, 72, 26, 252, 34, 208, 48, 112, 6, 193, 38, 124, 50, 208, 3, 185, 247, 47, 206, 171, 44, 219, 6, 28, 251, 141, 226, 106, 47, 24, 9, 189, 252, 96, 236, 124, 44, 64, 9, 214, 252, 248, 236, 204, 41, 248, 11, 83, 254, 236, 245, 44, 48, 45, 11, 238, 253, 136, 243, 202, 45, 255, 12, 205, 254, 200, 248, 6, 44, 116, 14, 106, 255, 120, 252, 109, 42, 61, 17, 110, 0, 151, 2, 50, 47, 181, 17, 150, 0, 134, 3, 19, 44, 85, 20, 98, 1, 84, 8, 184, 46, 161, 24, 125, 2, 253, 14, 159, 43, 110, 29, 132, 3, 44, 21, 96, 47, 137, 32, 25, 4, 168, 24, 217, 42, 25, 42, 149, 5, 156, 33, 60, 40, 224, 67, 87, 8, 53, 50, 75, 54, 145, 6, 220, 250, 15, 225, 36, 49, 253, 7, 254, 251, 221, 231, 209, 51, 135, 9, 2, 253, 254, 237, 209, 54, 173, 11, 47, 254, 14, 245, 140, 52, 26, 12, 99, 254, 78, 246, 108, 48, 74, 14, 89, 255, 18, 252, 198, 52, 196, 14, 137, 255, 55, 253, 80, 50, 176, 16, 62, 0, 118, 1, 221, 52, 253, 18, 253, 0, 243, 5, 123, 49, 81, 21, 168, 1, 248, 9, 30, 54, 218, 23, 78, 2, 223, 13, 231, 50, 83, 25, 166, 2, 244, 15, 245, 52, 41, 30, 169, 3, 7, 22, 157, 50, 95, 36, 189, 4, 136, 28, 146, 53, 31, 45, 252, 5, 5, 36, 47, 49, 102, 59, 146, 7, 147, 45, 9, 59, 4, 6, 91, 250, 4, 222, 224, 58, 29, 9, 192, 252, 113, 236, 191, 56, 207, 9, 45, 253, 0, 239, 100, 57, 127, 12, 147, 254, 107, 247, 22, 60, 232, 13, 49, 255, 33, 251, 53, 55, 120, 15, 206, 255, 212, 254, 254, 58, 140, 16, 50, 0, 42, 1, 252, 55, 216, 18, 242, 0, 174, 5, 254, 57, 75, 21, 166, 1, 238, 9, 202, 59, 195, 23, 72, 2, 190, 13, 249, 55, 232, 26, 0, 3, 15, 18, 212, 58, 9, 30, 162, 3, 226, 21, 70, 56, 210, 36, 207, 4, 245, 28, 27, 60, 13, 38, 0, 5, 26, 30, 232, 57, 191, 55, 52, 7, 94, 43, 32, 53, 107, 97, 109, 10, 195, 62, 12, 64, 177, 7, 198, 251, 139, 230, 177, 65, 16, 11, 223, 253, 45, 243, 97, 61, 27, 11, 229, 253, 80, 243, 232, 62, 8, 13, 209, 254, 223, 248, 0, 64, 123, 15, 207, 255, 218, 254, 44, 66, 227, 17, 165, 0, 224, 3, 95, 61, 247, 17, 171, 0, 6, 4, 94, 63, 72, 21, 165, 1, 233, 9, 192, 65, 238, 24, 143, 2, 105, 15, 129, 61, 229, 27, 53, 3, 80, 19, 198, 63, 45, 29, 120, 3, 223, 20, 227, 64, 176, 33, 76, 4, 222, 25, 132, 66, 178, 40, 99, 5, 111, 32, 33, 62, 41, 46, 29, 6, 207, 36, 238, 65, 98, 57, 95, 7, 96, 44, 131, 64, 134, 81, 102, 9, 147, 56, 222, 70, 35, 8, 25, 252, 131, 232, 201, 75, 106, 12, 137, 254, 47, 247, 100, 68, 98, 13, 248, 254, 203, 249, 86, 78, 187, 15, 231, 255, 105, 255, 149, 70, 153, 16, 54, 0, 70, 1, 8, 74, 202, 19, 58, 1, 98, 7, 47, 69, 26, 21, 153, 1, 157, 9, 123, 77, 48, 24, 98, 2, 92, 14, 30, 70, 102, 27, 27, 3, 176, 18, 70, 83, 197, 30, 198, 3, 184, 22, 246, 69, 73, 36, 186, 4, 115, 28, 200, 74, 74, 36, 186, 4, 116, 28, 37, 80, 117, 44, 230, 5, 129, 35, 155, 70, 149, 56, 74, 7, 226, 43, 31, 78, 218, 69, 129, 8, 52, 51, 154, 73, 252, 127, 0, 12, 62, 72, 61, 42, 81, 112, 63, 11, 181, 67, 0, 80, 225, 10, 198, 253, 153, 242, 153, 73, 194, 25, 191, 2, 139, 16, 81, 24, 245, 28, 108, 3, 156, 20, 51, 67, 204, 40, 103, 5, 133, 32, 122, 84, 245, 4, 61, 249, 74, 215, 143, 82, 71, 17, 113, 0, 171, 2, 40, 44, 20, 6, 106, 250, 95, 222, 61, 74, 20, 50, 150, 6, 164, 39, 215, 67, 194, 9, 37, 253, 210, 238, 194, 69, 225, 18, 244, 0, 192, 5, 10, 39, 194, 9, 37, 253, 210, 238, 122, 68, 184, 30, 196, 3, 170, 22, 174, 55, 92, 7, 133, 251, 5, 229, 20, 62, 81, 12, 125, 254, 233, 246, 61, 26, 10, 7, 67, 251, 121, 227, 10, 71, 225, 78, 53, 9, 109, 55, 102, 70, 215, 11, 67, 254, 138, 245, 71, 65, 225, 22, 16, 2, 109, 12, 143, 34, 174, 15, 226, 255, 76, 255, 20, 62, 10, 35, 134, 4, 60, 27, 102, 70, 112, 5, 198, 249, 129, 218, 71, 65, 0, 16, 0, 0, 0, 0, 0, 32, 143, 2, 108, 245, 79, 192, 133, 59, 102, 54, 16, 7, 132, 42, 174, 55, 40, 12, 106, 254, 116, 246, 10, 55, 61, 18, 193, 0, 141, 4, 30, 21, 143, 10, 154, 253, 143, 241, 122, 52, 153, 25, 182, 2, 84, 16, 163, 48, 133, 3, 67, 247, 100, 203, 163, 48, 102, 10, 131, 253, 7, 241, 184, 14, 143, 2, 108, 245, 79, 192, 153, 57, 215, 91, 22, 10, 183, 60, 225, 74, 153, 9, 13, 253, 62, 238, 184, 78, 215, 19, 62, 1, 121, 7, 225, 26, 0, 16, 0, 0, 0, 0, 0, 80, 112, 33, 65, 4, 156, 25, 204, 76, 225, 2, 26, 246, 105, 196, 61, 74, 163, 16, 58, 0, 91, 1, 184, 30, 40, 8, 29, 252, 151, 232, 204, 44, 0, 48, 87, 6, 43, 38, 20, 62, 194, 5, 26, 250, 126, 220, 112, 61, 20, 18, 180, 0, 62, 4, 215, 35, 153, 5, 240, 249, 131, 219, 184, 62, 92, 27, 25, 3, 164, 18, 235, 57, 225, 2, 26, 246, 105, 196, 225, 58, 204, 8, 140, 252, 55, 235, 215, 19, 204, 4, 12, 249, 38, 214, 215, 51, 174, 67, 83, 8, 27, 50, 163, 64, 30, 9, 193, 252, 118, 236, 225, 58, 184, 22, 6, 2, 46, 12, 92, 15, 102, 14, 100, 255, 86, 252, 174, 55, 153, 33, 72, 4, 198, 25, 235, 65, 10, 3, 106, 246, 74, 198, 225, 58, 225, 14, 149, 255, 122, 253, 174, 23, 102, 2, 12, 245, 17, 190, 122, 36, 40, 36, 180, 4, 83, 28, 215, 51, 225, 6, 33, 251, 172, 226, 215, 51, 194, 13, 33, 255, 193, 250, 153, 9, 174, 7, 196, 251, 127, 230, 204, 44, 153, 21, 187, 1, 108, 10, 245, 40, 225, 2, 26, 246, 105, 196, 112, 45, 122, 12, 145, 254, 92, 247, 194, 5, 10, 3, 106, 246, 74, 198, 0, 64, 248, 65, 226, 67, 190, 69, 142, 71, 82, 73, 12, 75, 188, 76, 98, 78, 0, 80, 150, 81, 35, 83, 170, 84, 42, 86, 163, 87, 22, 89, 130, 90, 234, 91, 76, 93, 168, 94, 0, 96, 83, 97, 161, 98, 236, 99, 49, 101, 115, 102, 177, 103, 235, 104, 34, 106, 85, 107, 132, 108, 177, 109, 218, 110, 0, 112, 35, 113, 67, 114, 97, 115, 123, 116, 147, 117, 169, 118, 188, 119, 204, 120, 218, 121, 230, 122, 239, 123, 247, 124, 252, 125, 255, 126, 255, 127, 255, 127, 61, 10, 63, 10, 69, 10, 78, 10, 91, 10, 108, 10, 129, 10, 153, 10, 181, 10, 212, 10, 248, 10, 31, 11, 74, 11, 120, 11, 170, 11, 224, 11, 25, 12, 86, 12, 151, 12, 219, 12, 35, 13, 110, 13, 189, 13, 15, 14, 101, 14, 190, 14, 27, 15, 123, 15, 223, 15, 70, 16, 176, 16, 30, 17, 143, 17, 3, 18, 123, 18, 245, 18, 115, 19, 244, 19, 120, 20, 0, 21, 138, 21, 23, 22, 168, 22, 59, 23, 209, 23, 106, 24, 6, 25, 165, 25, 70, 26, 234, 26, 145, 27, 59, 28, 231, 28, 149, 29, 70, 30, 250, 30, 176, 31, 104, 32, 35, 33, 224, 33, 159, 34, 97, 35, 36, 36, 234, 36, 178, 37, 124, 38, 71, 39, 21, 40, 228, 40, 181, 41, 136, 42, 93, 43, 51, 44, 11, 45, 228, 45, 191, 46, 155, 47, 121, 48, 88, 49, 56, 50, 26, 51, 252, 51, 224, 52, 196, 53, 170, 54, 145, 55, 120, 56, 96, 57, 73, 58, 51, 59, 29, 60, 8, 61, 243, 61, 223, 62, 203, 63, 184, 64, 165, 65, 146, 66, 127, 67, 108, 68, 90, 69, 71, 70, 52, 71, 33, 72, 14, 73, 251, 73, 231, 74, 211, 75, 191, 76, 170, 77, 149, 78, 126, 79, 104, 80, 80, 81, 56, 82, 31, 83, 5, 84, 234, 84, 207, 85, 178, 86, 148, 87, 116, 88, 84, 89, 50, 90, 15, 91, 235, 91, 197, 92, 157, 93, 117, 94, 74, 95, 30, 96, 240, 96, 192, 97, 143, 98, 91, 99, 38, 100, 239, 100, 181, 101, 122, 102, 60, 103, 253, 103, 187, 104, 119, 105, 48, 106, 232, 106, 156, 107, 79, 108, 255, 108, 172, 109, 87, 110, 255, 110, 165, 111, 71, 112, 231, 112, 133, 113, 31, 114, 183, 114, 75, 115, 221, 115, 108, 116, 248, 116, 129, 117, 6, 118, 137, 118, 8, 119, 133, 119, 254, 119, 116, 120, 230, 120, 86, 121, 194, 121, 42, 122, 144, 122, 242, 122, 80, 123, 171, 123, 3, 124, 87, 124, 167, 124, 244, 124, 62, 125, 132, 125, 198, 125, 5, 126, 64, 126, 120, 126, 172, 126, 220, 126, 9, 127, 49, 127, 87, 127, 120, 127, 150, 127, 176, 127, 199, 127, 217, 127, 232, 127, 243, 127, 251, 127, 255, 127, 255, 127, 229, 127, 153, 127, 25, 127, 103, 126, 129, 125], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 20480); allocate([106, 124, 33, 123, 167, 121, 252, 119, 34, 118, 24, 116, 223, 113, 122, 111, 231, 108, 41, 106, 65, 103, 47, 100, 245, 96, 149, 93, 15, 90, 101, 86, 153, 82, 171, 78, 158, 74, 116, 70, 45, 66, 204, 61, 82, 57, 193, 52, 27, 48, 98, 43, 151, 38, 189, 33, 213, 28, 226, 23, 230, 18, 226, 13, 216, 8, 203, 3, 61, 10, 64, 10, 73, 10, 88, 10, 108, 10, 135, 10, 167, 10, 205, 10, 249, 10, 43, 11, 99, 11, 160, 11, 227, 11, 44, 12, 122, 12, 207, 12, 40, 13, 136, 13, 237, 13, 87, 14, 199, 14, 60, 15, 183, 15, 55, 16, 189, 16, 71, 17, 215, 17, 108, 18, 6, 19, 165, 19, 73, 20, 242, 20, 159, 21, 82, 22, 9, 23, 196, 23, 133, 24, 73, 25, 18, 26, 224, 26, 177, 27, 135, 28, 97, 29, 62, 30, 32, 31, 5, 32, 238, 32, 219, 33, 203, 34, 191, 35, 182, 36, 176, 37, 174, 38, 174, 39, 177, 40, 184, 41, 193, 42, 204, 43, 218, 44, 235, 45, 254, 46, 19, 48, 42, 49, 67, 50, 94, 51, 123, 52, 154, 53, 186, 54, 219, 55, 254, 56, 34, 58, 71, 59, 109, 60, 148, 61, 188, 62, 228, 63, 13, 65, 54, 66, 96, 67, 138, 68, 180, 69, 221, 70, 7, 72, 48, 73, 89, 74, 130, 75, 169, 76, 208, 77, 246, 78, 27, 80, 63, 81, 98, 82, 132, 83, 164, 84, 194, 85, 223, 86, 250, 87, 19, 89, 43, 90, 64, 91, 83, 92, 99, 93, 113, 94, 125, 95, 134, 96, 140, 97, 143, 98, 144, 99, 141, 100, 135, 101, 126, 102, 114, 103, 98, 104, 79, 105, 56, 106, 30, 107, 255, 107, 221, 108, 183, 109, 140, 110, 94, 111, 43, 112, 244, 112, 185, 113, 121, 114, 53, 115, 236, 115, 158, 116, 76, 117, 245, 117, 153, 118, 55, 119, 209, 119, 102, 120, 246, 120, 129, 121, 6, 122, 134, 122, 1, 123, 118, 123, 230, 123, 81, 124, 182, 124, 21, 125, 111, 125, 195, 125, 17, 126, 90, 126, 157, 126, 219, 126, 18, 127, 68, 127, 112, 127, 150, 127, 183, 127, 209, 127, 230, 127, 244, 127, 253, 127, 255, 127, 255, 127, 244, 127, 208, 127, 149, 127, 66, 127, 215, 126, 85, 126, 188, 125, 12, 125, 69, 124, 104, 123, 117, 122, 108, 121, 78, 120, 28, 119, 213, 117, 122, 116, 13, 115, 140, 113, 250, 111, 87, 110, 162, 108, 222, 106, 11, 105, 40, 103, 57, 101, 60, 99, 51, 97, 30, 95, 255, 92, 215, 90, 165, 88, 108, 86, 44, 84, 229, 81, 154, 79, 74, 77, 247, 74, 161, 72, 74, 70, 243, 67, 156, 65, 71, 63, 244, 60, 164, 58, 88, 56, 18, 54, 209, 51, 152, 49, 103, 47, 62, 45, 31, 43, 11, 41, 2, 39, 5, 37, 21, 35, 51, 33, 95, 31, 155, 29, 231, 27, 67, 26, 177, 24, 49, 23, 195, 21, 105, 20, 34, 19, 239, 17, 209, 16, 201, 15, 214, 14, 249, 13, 50, 13, 130, 12, 232, 11, 102, 11, 252, 10, 169, 10, 109, 10, 73, 10, 61, 10, 61, 10, 63, 10, 67, 10, 74, 10, 84, 10, 96, 10, 111, 10, 129, 10, 150, 10, 174, 10, 200, 10, 229, 10, 5, 11, 39, 11, 77, 11, 117, 11, 159, 11, 205, 11, 253, 11, 48, 12, 101, 12, 157, 12, 216, 12, 22, 13, 86, 13, 153, 13, 222, 13, 38, 14, 113, 14, 190, 14, 13, 15, 96, 15, 181, 15, 12, 16, 102, 16, 194, 16, 33, 17, 130, 17, 230, 17, 76, 18, 180, 18, 31, 19, 140, 19, 252, 19, 110, 20, 226, 20, 88, 21, 209, 21, 76, 22, 201, 22, 72, 23, 202, 23, 77, 24, 211, 24, 91, 25, 229, 25, 113, 26, 254, 26, 142, 27, 32, 28, 180, 28, 74, 29, 225, 29, 123, 30, 22, 31, 179, 31, 82, 32, 242, 32, 149, 33, 57, 34, 222, 34, 133, 35, 46, 36, 216, 36, 132, 37, 50, 38, 224, 38, 145, 39, 66, 40, 245, 40, 169, 41, 95, 42, 22, 43, 206, 43, 135, 44, 66, 45, 253, 45, 186, 46, 120, 47, 54, 48, 246, 48, 183, 49, 120, 50, 59, 51, 254, 51, 194, 52, 135, 53, 77, 54, 19, 55, 218, 55, 161, 56, 106, 57, 50, 58, 252, 58, 197, 59, 144, 60, 90, 61, 37, 62, 240, 62, 188, 63, 136, 64, 84, 65, 32, 66, 236, 66, 185, 67, 133, 68, 82, 69, 30, 70, 235, 70, 183, 71, 132, 72, 80, 73, 28, 74, 231, 74, 179, 75, 126, 76, 73, 77, 19, 78, 221, 78, 166, 79, 111, 80, 56, 81, 0, 82, 199, 82, 142, 83, 84, 84, 25, 85, 221, 85, 161, 86, 100, 87, 38, 88, 231, 88, 167, 89, 103, 90, 37, 91, 226, 91, 158, 92, 89, 93, 19, 94, 204, 94, 131, 95, 57, 96, 238, 96, 162, 97, 84, 98, 5, 99, 181, 99, 99, 100, 15, 101, 186, 101, 100, 102, 12, 103, 178, 103, 87, 104, 250, 104, 155, 105, 59, 106, 217, 106, 117, 107, 16, 108, 168, 108, 63, 109, 211, 109, 102, 110, 247, 110, 134, 111, 19, 112, 158, 112, 39, 113, 174, 113, 50, 114, 181, 114, 53, 115, 179, 115, 47, 116, 169, 116, 33, 117, 150, 117, 9, 118, 122, 118, 232, 118, 84, 119, 190, 119, 37, 120, 138, 120, 236, 120, 76, 121, 170, 121, 5, 122, 94, 122, 180, 122, 7, 123, 88, 123, 167, 123, 242, 123, 60, 124, 130, 124, 198, 124, 8, 125, 71, 125, 131, 125, 188, 125, 243, 125, 39, 126, 89, 126, 136, 126, 180, 126, 221, 126, 4, 127, 40, 127, 73, 127, 103, 127, 131, 127, 156, 127, 178, 127, 197, 127, 214, 127, 228, 127, 239, 127, 247, 127, 253, 127, 255, 127, 255, 127, 97, 125, 160, 117, 15, 105, 48, 88, 181, 67, 116, 44, 98, 19, 68, 101, 99, 111, 100, 101, 114, 0, 101, 110, 99, 111, 100, 101, 114, 0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE + 30720); var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8); assert(tempDoublePtr % 8 == 0); function _sbrk(bytes) { var self = _sbrk; if (!self.called) { DYNAMICTOP = alignMemoryPage(DYNAMICTOP); self.called = true; assert(Runtime.dynamicAlloc); self.alloc = Runtime.dynamicAlloc; Runtime.dynamicAlloc = (function () { abort("cannot dynamically allocate, sbrk now has control"); }); } var ret = DYNAMICTOP; if (bytes != 0) { var success = self.alloc(bytes); if (!success) return -1 >>> 0 } return ret } function ___setErrNo(value) { if (Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value; return value } var ERRNO_CODES = { EPERM: 1, ENOENT: 2, ESRCH: 3, EINTR: 4, EIO: 5, ENXIO: 6, E2BIG: 7, ENOEXEC: 8, EBADF: 9, ECHILD: 10, EAGAIN: 11, EWOULDBLOCK: 11, ENOMEM: 12, EACCES: 13, EFAULT: 14, ENOTBLK: 15, EBUSY: 16, EEXIST: 17, EXDEV: 18, ENODEV: 19, ENOTDIR: 20, EISDIR: 21, EINVAL: 22, ENFILE: 23, EMFILE: 24, ENOTTY: 25, ETXTBSY: 26, EFBIG: 27, ENOSPC: 28, ESPIPE: 29, EROFS: 30, EMLINK: 31, EPIPE: 32, EDOM: 33, ERANGE: 34, ENOMSG: 42, EIDRM: 43, ECHRNG: 44, EL2NSYNC: 45, EL3HLT: 46, EL3RST: 47, ELNRNG: 48, EUNATCH: 49, ENOCSI: 50, EL2HLT: 51, EDEADLK: 35, ENOLCK: 37, EBADE: 52, EBADR: 53, EXFULL: 54, ENOANO: 55, EBADRQC: 56, EBADSLT: 57, EDEADLOCK: 35, EBFONT: 59, ENOSTR: 60, ENODATA: 61, ETIME: 62, ENOSR: 63, ENONET: 64, ENOPKG: 65, EREMOTE: 66, ENOLINK: 67, EADV: 68, ESRMNT: 69, ECOMM: 70, EPROTO: 71, EMULTIHOP: 72, EDOTDOT: 73, EBADMSG: 74, ENOTUNIQ: 76, EBADFD: 77, EREMCHG: 78, ELIBACC: 79, ELIBBAD: 80, ELIBSCN: 81, ELIBMAX: 82, ELIBEXEC: 83, ENOSYS: 38, ENOTEMPTY: 39, ENAMETOOLONG: 36, ELOOP: 40, EOPNOTSUPP: 95, EPFNOSUPPORT: 96, ECONNRESET: 104, ENOBUFS: 105, EAFNOSUPPORT: 97, EPROTOTYPE: 91, ENOTSOCK: 88, ENOPROTOOPT: 92, ESHUTDOWN: 108, ECONNREFUSED: 111, EADDRINUSE: 98, ECONNABORTED: 103, ENETUNREACH: 101, ENETDOWN: 100, ETIMEDOUT: 110, EHOSTDOWN: 112, EHOSTUNREACH: 113, EINPROGRESS: 115, EALREADY: 114, EDESTADDRREQ: 89, EMSGSIZE: 90, EPROTONOSUPPORT: 93, ESOCKTNOSUPPORT: 94, EADDRNOTAVAIL: 99, ENETRESET: 102, EISCONN: 106, ENOTCONN: 107, ETOOMANYREFS: 109, EUSERS: 87, EDQUOT: 122, ESTALE: 116, ENOTSUP: 95, ENOMEDIUM: 123, EILSEQ: 84, EOVERFLOW: 75, ECANCELED: 125, ENOTRECOVERABLE: 131, EOWNERDEAD: 130, ESTRPIPE: 86 }; function _sysconf(name) { switch (name) { case 30: return PAGE_SIZE; case 85: return totalMemory / 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 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 79: return 0; 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: { if (typeof navigator === "object") return navigator["hardwareConcurrency"] || 1; return 1 } } ___setErrNo(ERRNO_CODES.EINVAL); return -1 } function _emscripten_memcpy_big(dest, src, num) { HEAPU8.set(HEAPU8.subarray(src, src + num), dest); return dest } Module["_memcpy"] = _memcpy; Module["_memmove"] = _memmove; Module["_memset"] = _memset; function _abort() { Module["abort"](); } var ERRNO_MESSAGES = { 0: "Success", 1: "Not super-user", 2: "No such file or directory", 3: "No such process", 4: "Interrupted system call", 5: "I/O error", 6: "No such device or address", 7: "Arg list too long", 8: "Exec format error", 9: "Bad file number", 10: "No children", 11: "No more processes", 12: "Not enough core", 13: "Permission denied", 14: "Bad address", 15: "Block device required", 16: "Mount device busy", 17: "File exists", 18: "Cross-device link", 19: "No such device", 20: "Not a directory", 21: "Is a directory", 22: "Invalid argument", 23: "Too many open files in system", 24: "Too many open files", 25: "Not a typewriter", 26: "Text file busy", 27: "File too large", 28: "No space left on device", 29: "Illegal seek", 30: "Read only file system", 31: "Too many links", 32: "Broken pipe", 33: "Math arg out of domain of func", 34: "Math result not representable", 35: "File locking deadlock error", 36: "File or path name too long", 37: "No record locks available", 38: "Function not implemented", 39: "Directory not empty", 40: "Too many symbolic links", 42: "No message of desired type", 43: "Identifier removed", 44: "Channel number out of range", 45: "Level 2 not synchronized", 46: "Level 3 halted", 47: "Level 3 reset", 48: "Link number out of range", 49: "Protocol driver not attached", 50: "No CSI structure available", 51: "Level 2 halted", 52: "Invalid exchange", 53: "Invalid request descriptor", 54: "Exchange full", 55: "No anode", 56: "Invalid request code", 57: "Invalid slot", 59: "Bad font file fmt", 60: "Device not a stream", 61: "No data (for no delay io)", 62: "Timer expired", 63: "Out of streams resources", 64: "Machine is not on the network", 65: "Package not installed", 66: "The object is remote", 67: "The link has been severed", 68: "Advertise error", 69: "Srmount error", 70: "Communication error on send", 71: "Protocol error", 72: "Multihop attempted", 73: "Cross mount point (not really error)", 74: "Trying to read unreadable message", 75: "Value too large for defined data type", 76: "Given log. name not unique", 77: "f.d. invalid for this operation", 78: "Remote address changed", 79: "Can access a needed shared lib", 80: "Accessing a corrupted shared lib", 81: ".lib section in a.out corrupted", 82: "Attempting to link in too many libs", 83: "Attempting to exec a shared library", 84: "Illegal byte sequence", 86: "Streams pipe error", 87: "Too many users", 88: "Socket operation on non-socket", 89: "Destination address required", 90: "Message too long", 91: "Protocol wrong type for socket", 92: "Protocol not available", 93: "Unknown protocol", 94: "Socket type not supported", 95: "Not supported", 96: "Protocol family not supported", 97: "Address family not supported by protocol family", 98: "Address already in use", 99: "Address not available", 100: "Network interface is not configured", 101: "Network is unreachable", 102: "Connection reset by network", 103: "Connection aborted", 104: "Connection reset by peer", 105: "No buffer space available", 106: "Socket is already connected", 107: "Socket is not connected", 108: "Can't send after socket shutdown", 109: "Too many references", 110: "Connection timed out", 111: "Connection refused", 112: "Host is down", 113: "Host is unreachable", 114: "Socket already connected", 115: "Connection already in progress", 116: "Stale file handle", 122: "Quota exceeded", 123: "No medium (in tape drive)", 125: "Operation canceled", 130: "Previous owner died", 131: "State not recoverable" }; var TTY = { ttys: [], init: (function () { }), shutdown: (function () { }), register: (function (dev, ops) { TTY.ttys[dev] = {input: [], output: [], ops: ops}; FS.registerDevice(dev, TTY.stream_ops); }), stream_ops: { open: (function (stream) { var tty = TTY.ttys[stream.node.rdev]; if (!tty) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV) } stream.tty = tty; stream.seekable = false; }), close: (function (stream) { stream.tty.ops.flush(stream.tty); }), flush: (function (stream) { stream.tty.ops.flush(stream.tty); }), read: (function (stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.get_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO) } var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = stream.tty.ops.get_char(stream.tty); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO) } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN) } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead }), write: (function (stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.put_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO) } for (var i = 0; i < length; i++) { try { stream.tty.ops.put_char(stream.tty, buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO) } } if (length) { stream.node.timestamp = Date.now(); } return i }) }, default_tty_ops: { get_char: (function (tty) { if (!tty.input.length) { var result = null; if (typeof window != "undefined" && typeof window.prompt == "function") { result = window.prompt("Input: "); if (result !== null) { result += "\n"; } } else if (typeof readline == "function") { result = readline(); if (result !== null) { result += "\n"; } } if (!result) { return null } tty.input = intArrayFromString(result, true); } return tty.input.shift() }), put_char: (function (tty, val) { if (val === null || val === 10) { Module["print"](UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }), flush: (function (tty) { if (tty.output && tty.output.length > 0) { Module["print"](UTF8ArrayToString(tty.output, 0)); tty.output = []; } }) }, default_tty1_ops: { put_char: (function (tty, val) { if (val === null || val === 10) { Module["printErr"](UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } }), flush: (function (tty) { if (tty.output && tty.output.length > 0) { Module["printErr"](UTF8ArrayToString(tty.output, 0)); tty.output = []; } }) } }; var MEMFS = { ops_table: null, mount: (function (mount) { return MEMFS.createNode(null, "/", 16384 | 511, 0) }), createNode: (function (parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } if (!MEMFS.ops_table) { MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: {llseek: MEMFS.stream_ops.llseek} }, file: { node: {getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr}, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: {getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr}, stream: FS.chrdev_stream_ops } }; } var node = FS.createNode(parent, name, mode, dev); if (FS.isDir(node.mode)) { node.node_ops = MEMFS.ops_table.dir.node; node.stream_ops = MEMFS.ops_table.dir.stream; node.contents = {}; } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; node.usedBytes = 0; node.contents = null; } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; } else if (FS.isChrdev(node.mode)) { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } node.timestamp = Date.now(); if (parent) { parent.contents[name] = node; } return node }), getFileDataAsRegularArray: (function (node) { if (node.contents && node.contents.subarray) { var arr = []; for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); return arr } return node.contents }), getFileDataAsTypedArray: (function (node) { if (!node.contents) return new Uint8Array; if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); return new Uint8Array(node.contents) }), expandFileStorage: (function (node, newCapacity) { if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { node.contents = MEMFS.getFileDataAsRegularArray(node); node.usedBytes = node.contents.length; } if (!node.contents || node.contents.subarray) { var prevCapacity = node.contents ? node.contents.buffer.byteLength : 0; if (prevCapacity >= newCapacity) return; var CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) | 0); if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); var oldContents = node.contents; node.contents = new Uint8Array(newCapacity); if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); return } if (!node.contents && newCapacity > 0) node.contents = []; while (node.contents.length < newCapacity) node.contents.push(0); }), resizeFileStorage: (function (node, newSize) { if (node.usedBytes == newSize) return; if (newSize == 0) { node.contents = null; node.usedBytes = 0; return } if (!node.contents || node.contents.subarray) { var oldContents = node.contents; node.contents = new Uint8Array(new ArrayBuffer(newSize)); if (oldContents) { node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); } node.usedBytes = newSize; return } if (!node.contents) node.contents = []; if (node.contents.length > newSize) node.contents.length = newSize; else while (node.contents.length < newSize) node.contents.push(0); node.usedBytes = newSize; }), node_ops: { getattr: (function (node) { var attr = {}; attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; attr.mode = node.mode; attr.nlink = 1; attr.uid = 0; attr.gid = 0; attr.rdev = node.rdev; if (FS.isDir(node.mode)) { attr.size = 4096; } else if (FS.isFile(node.mode)) { attr.size = node.usedBytes; } else if (FS.isLink(node.mode)) { attr.size = node.link.length; } else { attr.size = 0; } attr.atime = new Date(node.timestamp); attr.mtime = new Date(node.timestamp); attr.ctime = new Date(node.timestamp); attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr }), setattr: (function (node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } if (attr.size !== undefined) { MEMFS.resizeFileStorage(node, attr.size); } }), lookup: (function (parent, name) { throw FS.genericErrors[ERRNO_CODES.ENOENT] }), mknod: (function (parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev) }), rename: (function (old_node, new_dir, new_name) { if (FS.isDir(old_node.mode)) { var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { } if (new_node) { for (var i in new_node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY) } } } delete old_node.parent.contents[old_node.name]; old_node.name = new_name; new_dir.contents[new_name] = old_node; old_node.parent = new_dir; }), unlink: (function (parent, name) { delete parent.contents[name]; }), rmdir: (function (parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY) } delete parent.contents[name]; }), readdir: (function (node) { var entries = [".", ".."]; for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue } entries.push(key); } return entries }), symlink: (function (parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); node.link = oldpath; return node }), readlink: (function (node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } return node.link }) }, stream_ops: { read: (function (stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min(stream.node.usedBytes - position, length); assert(size >= 0); if (size > 8 && contents.subarray) { buffer.set(contents.subarray(position, position + size), offset); } else { for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; } return size }), write: (function (stream, buffer, offset, length, position, canOwn) { if (!length) return 0; var node = stream.node; node.timestamp = Date.now(); if (buffer.subarray && (!node.contents || node.contents.subarray)) { if (canOwn) { node.contents = buffer.subarray(offset, offset + length); node.usedBytes = length; return length } else if (node.usedBytes === 0 && position === 0) { node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); node.usedBytes = length; return length } else if (position + length <= node.usedBytes) { node.contents.set(buffer.subarray(offset, offset + length), position); return length } } MEMFS.expandFileStorage(node, position + length); if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); else { for (var i = 0; i < length; i++) { node.contents[position + i] = buffer[offset + i]; } } node.usedBytes = Math.max(node.usedBytes, position + length); return length }), llseek: (function (stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.usedBytes; } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } return position }), allocate: (function (stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); }), mmap: (function (stream, buffer, offset, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV) } var ptr; var allocated; var contents = stream.node.contents; if (!(flags & 2) && (contents.buffer === buffer || contents.buffer === buffer.buffer)) { allocated = false; ptr = contents.byteOffset; } else { if (position > 0 || position + length < stream.node.usedBytes) { if (contents.subarray) { contents = contents.subarray(position, position + length); } else { contents = Array.prototype.slice.call(contents, position, position + length); } } allocated = true; ptr = _malloc(length); if (!ptr) { throw new FS.ErrnoError(ERRNO_CODES.ENOMEM) } buffer.set(contents, ptr); } return {ptr: ptr, allocated: allocated} }), msync: (function (stream, buffer, offset, length, mmapFlags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV) } if (mmapFlags & 2) { return 0 } MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); return 0 }) } }; var IDBFS = { dbs: {}, indexedDB: (function () { if (typeof indexedDB !== "undefined") return indexedDB; var ret = null; if (typeof window === "object") ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; assert(ret, "IDBFS used, but indexedDB not supported"); return ret }), DB_VERSION: 21, DB_STORE_NAME: "FILE_DATA", mount: (function (mount) { return MEMFS.mount.apply(null, arguments) }), syncfs: (function (mount, populate, callback) { IDBFS.getLocalSet(mount, (function (err, local) { if (err) return callback(err); IDBFS.getRemoteSet(mount, (function (err, remote) { if (err) return callback(err); var src = populate ? remote : local; var dst = populate ? local : remote; IDBFS.reconcile(src, dst, callback); })); })); }), getDB: (function (name, callback) { var db = IDBFS.dbs[name]; if (db) { return callback(null, db) } var req; try { req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); } catch (e) { return callback(e) } req.onupgradeneeded = (function (e) { var db = e.target.result; var transaction = e.target.transaction; var fileStore; if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); } else { fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); } if (!fileStore.indexNames.contains("timestamp")) { fileStore.createIndex("timestamp", "timestamp", {unique: false}); } }); req.onsuccess = (function () { db = req.result; IDBFS.dbs[name] = db; callback(null, db); }); req.onerror = (function (e) { callback(this.error); e.preventDefault(); }); }), getLocalSet: (function (mount, callback) { var entries = {}; function isRealDir(p) { return p !== "." && p !== ".." } function toAbsolute(root) { return (function (p) { return PATH.join2(root, p) }) } var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); while (check.length) { var path = check.pop(); var stat; try { stat = FS.stat(path); } catch (e) { return callback(e) } if (FS.isDir(stat.mode)) { check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); } entries[path] = {timestamp: stat.mtime}; } return callback(null, {type: "local", entries: entries}) }), getRemoteSet: (function (mount, callback) { var entries = {}; IDBFS.getDB(mount.mountpoint, (function (err, db) { if (err) return callback(err); var transaction = db.transaction([IDBFS.DB_STORE_NAME], "readonly"); transaction.onerror = (function (e) { callback(this.error); e.preventDefault(); }); var store = transaction.objectStore(IDBFS.DB_STORE_NAME); var index = store.index("timestamp"); index.openKeyCursor().onsuccess = (function (event) { var cursor = event.target.result; if (!cursor) { return callback(null, {type: "remote", db: db, entries: entries}) } entries[cursor.primaryKey] = {timestamp: cursor.key}; cursor.continue(); }); })); }), loadLocalEntry: (function (path, callback) { var stat, node; try { var lookup = FS.lookupPath(path); node = lookup.node; stat = FS.stat(path); } catch (e) { return callback(e) } if (FS.isDir(stat.mode)) { return callback(null, {timestamp: stat.mtime, mode: stat.mode}) } else if (FS.isFile(stat.mode)) { node.contents = MEMFS.getFileDataAsTypedArray(node); return callback(null, {timestamp: stat.mtime, mode: stat.mode, contents: node.contents}) } else { return callback(new Error("node type not supported")) } }), storeLocalEntry: (function (path, entry, callback) { try { if (FS.isDir(entry.mode)) { FS.mkdir(path, entry.mode); } else if (FS.isFile(entry.mode)) { FS.writeFile(path, entry.contents, {encoding: "binary", canOwn: true}); } else { return callback(new Error("node type not supported")) } FS.chmod(path, entry.mode); FS.utime(path, entry.timestamp, entry.timestamp); } catch (e) { return callback(e) } callback(null); }), removeLocalEntry: (function (path, callback) { try { var lookup = FS.lookupPath(path); var stat = FS.stat(path); if (FS.isDir(stat.mode)) { FS.rmdir(path); } else if (FS.isFile(stat.mode)) { FS.unlink(path); } } catch (e) { return callback(e) } callback(null); }), loadRemoteEntry: (function (store, path, callback) { var req = store.get(path); req.onsuccess = (function (event) { callback(null, event.target.result); }); req.onerror = (function (e) { callback(this.error); e.preventDefault(); }); }), storeRemoteEntry: (function (store, path, entry, callback) { var req = store.put(entry, path); req.onsuccess = (function () { callback(null); }); req.onerror = (function (e) { callback(this.error); e.preventDefault(); }); }), removeRemoteEntry: (function (store, path, callback) { var req = store.delete(path); req.onsuccess = (function () { callback(null); }); req.onerror = (function (e) { callback(this.error); e.preventDefault(); }); }), reconcile: (function (src, dst, callback) { var total = 0; var create = []; Object.keys(src.entries).forEach((function (key) { var e = src.entries[key]; var e2 = dst.entries[key]; if (!e2 || e.timestamp > e2.timestamp) { create.push(key); total++; } })); var remove = []; Object.keys(dst.entries).forEach((function (key) { dst.entries[key]; var e2 = src.entries[key]; if (!e2) { remove.push(key); total++; } })); if (!total) { return callback(null) } var completed = 0; var db = src.type === "remote" ? src.db : dst.db; var transaction = db.transaction([IDBFS.DB_STORE_NAME], "readwrite"); var store = transaction.objectStore(IDBFS.DB_STORE_NAME); function done(err) { if (err) { if (!done.errored) { done.errored = true; return callback(err) } return } if (++completed >= total) { return callback(null) } } transaction.onerror = (function (e) { done(this.error); e.preventDefault(); }); create.sort().forEach((function (path) { if (dst.type === "local") { IDBFS.loadRemoteEntry(store, path, (function (err, entry) { if (err) return done(err); IDBFS.storeLocalEntry(path, entry, done); })); } else { IDBFS.loadLocalEntry(path, (function (err, entry) { if (err) return done(err); IDBFS.storeRemoteEntry(store, path, entry, done); })); } })); remove.sort().reverse().forEach((function (path) { if (dst.type === "local") { IDBFS.removeLocalEntry(path, done); } else { IDBFS.removeRemoteEntry(store, path, done); } })); }) }; var WORKERFS = { DIR_MODE: 16895, FILE_MODE: 33279, reader: null, mount: (function (mount) { assert(ENVIRONMENT_IS_WORKER); if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync; var root = WORKERFS.createNode(null, "/", WORKERFS.DIR_MODE, 0); var createdParents = {}; function ensureParent(path) { var parts = path.split("/"); var parent = root; for (var i = 0; i < parts.length - 1; i++) { var curr = parts.slice(0, i + 1).join("/"); if (!createdParents[curr]) { createdParents[curr] = WORKERFS.createNode(parent, curr, WORKERFS.DIR_MODE, 0); } parent = createdParents[curr]; } return parent } function base(path) { var parts = path.split("/"); return parts[parts.length - 1] } Array.prototype.forEach.call(mount.opts["files"] || [], (function (file) { WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate); })); (mount.opts["blobs"] || []).forEach((function (obj) { WORKERFS.createNode(ensureParent(obj["name"]), base(obj["name"]), WORKERFS.FILE_MODE, 0, obj["data"]); })); (mount.opts["packages"] || []).forEach((function (pack) { pack["metadata"].files.forEach((function (file) { var name = file.filename.substr(1); WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack["blob"].slice(file.start, file.end)); })); })); return root }), createNode: (function (parent, name, mode, dev, contents, mtime) { var node = FS.createNode(parent, name, mode); node.mode = mode; node.node_ops = WORKERFS.node_ops; node.stream_ops = WORKERFS.stream_ops; node.timestamp = (mtime || new Date).getTime(); assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE); if (mode === WORKERFS.FILE_MODE) { node.size = contents.size; node.contents = contents; } else { node.size = 4096; node.contents = {}; } if (parent) { parent.contents[name] = node; } return node }), node_ops: { getattr: (function (node) { return { dev: 1, ino: undefined, mode: node.mode, nlink: 1, uid: 0, gid: 0, rdev: undefined, size: node.size, atime: new Date(node.timestamp), mtime: new Date(node.timestamp), ctime: new Date(node.timestamp), blksize: 4096, blocks: Math.ceil(node.size / 4096) } }), setattr: (function (node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } }), lookup: (function (parent, name) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT) }), mknod: (function (parent, name, mode, dev) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) }), rename: (function (oldNode, newDir, newName) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) }), unlink: (function (parent, name) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) }), rmdir: (function (parent, name) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) }), readdir: (function (node) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) }), symlink: (function (parent, newName, oldPath) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) }), readlink: (function (node) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) }) }, stream_ops: { read: (function (stream, buffer, offset, length, position) { if (position >= stream.node.size) return 0; var chunk = stream.node.contents.slice(position, position + length); var ab = WORKERFS.reader.readAsArrayBuffer(chunk); buffer.set(new Uint8Array(ab), offset); return chunk.size }), write: (function (stream, buffer, offset, length, position) { throw new FS.ErrnoError(ERRNO_CODES.EIO) }), llseek: (function (stream, offset, whence) { var position = offset; if (whence === 1) { position += stream.position; } else if (whence === 2) { if (FS.isFile(stream.node.mode)) { position += stream.node.size; } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } return position }) } }; allocate(1, "i32*", ALLOC_STATIC); allocate(1, "i32*", ALLOC_STATIC); allocate(1, "i32*", ALLOC_STATIC); var FS = { root: null, mounts: [], devices: [null], streams: [], nextInode: 1, nameTable: null, currentPath: "/", initialized: false, ignorePermissions: true, trackingDelegate: {}, tracking: {openFlags: {READ: 1, WRITE: 2}}, ErrnoError: null, genericErrors: {}, filesystems: null, handleFSError: (function (e) { if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace(); return ___setErrNo(e.errno) }), lookupPath: (function (path, opts) { path = PATH.resolve(FS.cwd(), path); opts = opts || {}; if (!path) return {path: "", node: null}; var defaults = {follow_mount: true, recurse_count: 0}; for (var key in defaults) { if (opts[key] === undefined) { opts[key] = defaults[key]; } } if (opts.recurse_count > 8) { throw new FS.ErrnoError(ERRNO_CODES.ELOOP) } var parts = PATH.normalizeArray(path.split("/").filter((function (p) { return !!p })), false); var current = FS.root; var current_path = "/"; for (var i = 0; i < parts.length; i++) { var islast = i === parts.length - 1; if (islast && opts.parent) { break } current = FS.lookupNode(current, parts[i]); current_path = PATH.join2(current_path, parts[i]); if (FS.isMountpoint(current)) { if (!islast || islast && opts.follow_mount) { current = current.mounted.root; } } if (!islast || opts.follow) { var count = 0; while (FS.isLink(current.mode)) { var link = FS.readlink(current_path); current_path = PATH.resolve(PATH.dirname(current_path), link); var lookup = FS.lookupPath(current_path, {recurse_count: opts.recurse_count}); current = lookup.node; if (count++ > 40) { throw new FS.ErrnoError(ERRNO_CODES.ELOOP) } } } } return {path: current_path, node: current} }), getPath: (function (node) { var path; while (true) { if (FS.isRoot(node)) { var mount = node.mount.mountpoint; if (!path) return mount; return mount[mount.length - 1] !== "/" ? mount + "/" + path : mount + path } path = path ? node.name + "/" + path : node.name; node = node.parent; } }), hashName: (function (parentid, name) { var hash = 0; for (var i = 0; i < name.length; i++) { hash = (hash << 5) - hash + name.charCodeAt(i) | 0; } return (parentid + hash >>> 0) % FS.nameTable.length }), hashAddNode: (function (node) { var hash = FS.hashName(node.parent.id, node.name); node.name_next = FS.nameTable[hash]; FS.nameTable[hash] = node; }), hashRemoveNode: (function (node) { var hash = FS.hashName(node.parent.id, node.name); if (FS.nameTable[hash] === node) { FS.nameTable[hash] = node.name_next; } else { var current = FS.nameTable[hash]; while (current) { if (current.name_next === node) { current.name_next = node.name_next; break } current = current.name_next; } } }), lookupNode: (function (parent, name) { var err = FS.mayLookup(parent); if (err) { throw new FS.ErrnoError(err, parent) } var hash = FS.hashName(parent.id, name); for (var node = FS.nameTable[hash]; node; node = node.name_next) { var nodeName = node.name; if (node.parent.id === parent.id && nodeName === name) { return node } } return FS.lookup(parent, name) }), createNode: (function (parent, name, mode, rdev) { if (!FS.FSNode) { FS.FSNode = (function (parent, name, mode, rdev) { if (!parent) { parent = this; } this.parent = parent; this.mount = parent.mount; this.mounted = null; this.id = FS.nextInode++; this.name = name; this.mode = mode; this.node_ops = {}; this.stream_ops = {}; this.rdev = rdev; }); FS.FSNode.prototype = {}; var readMode = 292 | 73; var writeMode = 146; Object.defineProperties(FS.FSNode.prototype, { read: { get: (function () { return (this.mode & readMode) === readMode }), set: (function (val) { val ? this.mode |= readMode : this.mode &= ~readMode; }) }, write: { get: (function () { return (this.mode & writeMode) === writeMode }), set: (function (val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }) }, isFolder: { get: (function () { return FS.isDir(this.mode) }) }, isDevice: { get: (function () { return FS.isChrdev(this.mode) }) } }); } var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); return node }), destroyNode: (function (node) { FS.hashRemoveNode(node); }), isRoot: (function (node) { return node === node.parent }), isMountpoint: (function (node) { return !!node.mounted }), isFile: (function (mode) { return (mode & 61440) === 32768 }), isDir: (function (mode) { return (mode & 61440) === 16384 }), isLink: (function (mode) { return (mode & 61440) === 40960 }), isChrdev: (function (mode) { return (mode & 61440) === 8192 }), isBlkdev: (function (mode) { return (mode & 61440) === 24576 }), isFIFO: (function (mode) { return (mode & 61440) === 4096 }), isSocket: (function (mode) { return (mode & 49152) === 49152 }), flagModes: { "r": 0, "rs": 1052672, "r+": 2, "w": 577, "wx": 705, "xw": 705, "w+": 578, "wx+": 706, "xw+": 706, "a": 1089, "ax": 1217, "xa": 1217, "a+": 1090, "ax+": 1218, "xa+": 1218 }, modeStringToFlags: (function (str) { var flags = FS.flagModes[str]; if (typeof flags === "undefined") { throw new Error("Unknown file open mode: " + str) } return flags }), flagsToPermissionString: (function (flag) { var perms = ["r", "w", "rw"][flag & 3]; if (flag & 512) { perms += "w"; } return perms }), nodePermissions: (function (node, perms) { if (FS.ignorePermissions) { return 0 } if (perms.indexOf("r") !== -1 && !(node.mode & 292)) { return ERRNO_CODES.EACCES } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) { return ERRNO_CODES.EACCES } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) { return ERRNO_CODES.EACCES } return 0 }), mayLookup: (function (dir) { var err = FS.nodePermissions(dir, "x"); if (err) return err; if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; return 0 }), mayCreate: (function (dir, name) { try { var node = FS.lookupNode(dir, name); return ERRNO_CODES.EEXIST } catch (e) { } return FS.nodePermissions(dir, "wx") }), mayDelete: (function (dir, name, isdir) { var node; try { node = FS.lookupNode(dir, name); } catch (e) { return e.errno } var err = FS.nodePermissions(dir, "wx"); if (err) { return err } if (isdir) { if (!FS.isDir(node.mode)) { return ERRNO_CODES.ENOTDIR } if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return ERRNO_CODES.EBUSY } } else { if (FS.isDir(node.mode)) { return ERRNO_CODES.EISDIR } } return 0 }), mayOpen: (function (node, flags) { if (!node) { return ERRNO_CODES.ENOENT } if (FS.isLink(node.mode)) { return ERRNO_CODES.ELOOP } else if (FS.isDir(node.mode)) { if ((flags & 2097155) !== 0 || flags & 512) { return ERRNO_CODES.EISDIR } } return FS.nodePermissions(node, FS.flagsToPermissionString(flags)) }), MAX_OPEN_FDS: 4096, nextfd: (function (fd_start, fd_end) { fd_start = fd_start || 0; fd_end = fd_end || FS.MAX_OPEN_FDS; for (var fd = fd_start; fd <= fd_end; fd++) { if (!FS.streams[fd]) { return fd } } throw new FS.ErrnoError(ERRNO_CODES.EMFILE) }), getStream: (function (fd) { return FS.streams[fd] }), createStream: (function (stream, fd_start, fd_end) { if (!FS.FSStream) { FS.FSStream = (function () { }); FS.FSStream.prototype = {}; Object.defineProperties(FS.FSStream.prototype, { object: { get: (function () { return this.node }), set: (function (val) { this.node = val; }) }, isRead: { get: (function () { return (this.flags & 2097155) !== 1 }) }, isWrite: { get: (function () { return (this.flags & 2097155) !== 0 }) }, isAppend: { get: (function () { return this.flags & 1024 }) } }); } var newStream = new FS.FSStream; for (var p in stream) { newStream[p] = stream[p]; } stream = newStream; var fd = FS.nextfd(fd_start, fd_end); stream.fd = fd; FS.streams[fd] = stream; return stream }), closeStream: (function (fd) { FS.streams[fd] = null; }), chrdev_stream_ops: { open: (function (stream) { var device = FS.getDevice(stream.node.rdev); stream.stream_ops = device.stream_ops; if (stream.stream_ops.open) { stream.stream_ops.open(stream); } }), llseek: (function () { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE) }) }, major: (function (dev) { return dev >> 8 }), minor: (function (dev) { return dev & 255 }), makedev: (function (ma, mi) { return ma << 8 | mi }), registerDevice: (function (dev, ops) { FS.devices[dev] = {stream_ops: ops}; }), getDevice: (function (dev) { return FS.devices[dev] }), getMounts: (function (mount) { var mounts = []; var check = [mount]; while (check.length) { var m = check.pop(); mounts.push(m); check.push.apply(check, m.mounts); } return mounts }), syncfs: (function (populate, callback) { if (typeof populate === "function") { callback = populate; populate = false; } var mounts = FS.getMounts(FS.root.mount); var completed = 0; function done(err) { if (err) { if (!done.errored) { done.errored = true; return callback(err) } return } if (++completed >= mounts.length) { callback(null); } } mounts.forEach((function (mount) { if (!mount.type.syncfs) { return done(null) } mount.type.syncfs(mount, populate, done); })); }), mount: (function (type, opts, mountpoint) { var root = mountpoint === "/"; var pseudo = !mountpoint; var node; if (root && FS.root) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY) } else if (!root && !pseudo) { var lookup = FS.lookupPath(mountpoint, {follow_mount: false}); mountpoint = lookup.path; node = lookup.node; if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY) } if (!FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR) } } var mount = {type: type, opts: opts, mountpoint: mountpoint, mounts: []}; var mountRoot = type.mount(mount); mountRoot.mount = mount; mount.root = mountRoot; if (root) { FS.root = mountRoot; } else if (node) { node.mounted = mount; if (node.mount) { node.mount.mounts.push(mount); } } return mountRoot }), unmount: (function (mountpoint) { var lookup = FS.lookupPath(mountpoint, {follow_mount: false}); if (!FS.isMountpoint(lookup.node)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } var node = lookup.node; var mount = node.mounted; var mounts = FS.getMounts(mount); Object.keys(FS.nameTable).forEach((function (hash) { var current = FS.nameTable[hash]; while (current) { var next = current.name_next; if (mounts.indexOf(current.mount) !== -1) { FS.destroyNode(current); } current = next; } })); node.mounted = null; var idx = node.mount.mounts.indexOf(mount); assert(idx !== -1); node.mount.mounts.splice(idx, 1); }), lookup: (function (parent, name) { return parent.node_ops.lookup(parent, name) }), mknod: (function (path, mode, dev) { var lookup = FS.lookupPath(path, {parent: true}); var parent = lookup.node; var name = PATH.basename(path); if (!name || name === "." || name === "..") { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } var err = FS.mayCreate(parent, name); if (err) { throw new FS.ErrnoError(err) } if (!parent.node_ops.mknod) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } return parent.node_ops.mknod(parent, name, mode, dev) }), create: (function (path, mode) { mode = mode !== undefined ? mode : 438; mode &= 4095; mode |= 32768; return FS.mknod(path, mode, 0) }), mkdir: (function (path, mode) { mode = mode !== undefined ? mode : 511; mode &= 511 | 512; mode |= 16384; return FS.mknod(path, mode, 0) }), mkdev: (function (path, mode, dev) { if (typeof dev === "undefined") { dev = mode; mode = 438; } mode |= 8192; return FS.mknod(path, mode, dev) }), symlink: (function (oldpath, newpath) { if (!PATH.resolve(oldpath)) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT) } var lookup = FS.lookupPath(newpath, {parent: true}); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT) } var newname = PATH.basename(newpath); var err = FS.mayCreate(parent, newname); if (err) { throw new FS.ErrnoError(err) } if (!parent.node_ops.symlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } return parent.node_ops.symlink(parent, newname, oldpath) }), rename: (function (old_path, new_path) { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); var old_name = PATH.basename(old_path); var new_name = PATH.basename(new_path); var lookup, old_dir, new_dir; try { lookup = FS.lookupPath(old_path, {parent: true}); old_dir = lookup.node; lookup = FS.lookupPath(new_path, {parent: true}); new_dir = lookup.node; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY) } if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); if (old_dir.mount !== new_dir.mount) { throw new FS.ErrnoError(ERRNO_CODES.EXDEV) } var old_node = FS.lookupNode(old_dir, old_name); var relative = PATH.relative(old_path, new_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } relative = PATH.relative(new_path, old_dirname); if (relative.charAt(0) !== ".") { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY) } var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { } if (old_node === new_node) { return } var isdir = FS.isDir(old_node.mode); var err = FS.mayDelete(old_dir, old_name, isdir); if (err) { throw new FS.ErrnoError(err) } err = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); if (err) { throw new FS.ErrnoError(err) } if (!old_dir.node_ops.rename) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY) } if (new_dir !== old_dir) { err = FS.nodePermissions(old_dir, "w"); if (err) { throw new FS.ErrnoError(err) } } try { if (FS.trackingDelegate["willMovePath"]) { FS.trackingDelegate["willMovePath"](old_path, new_path); } } catch (e) { console.log("FS.trackingDelegate['willMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message); } FS.hashRemoveNode(old_node); try { old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e } finally { FS.hashAddNode(old_node); } try { if (FS.trackingDelegate["onMovePath"]) FS.trackingDelegate["onMovePath"](old_path, new_path); } catch (e) { console.log("FS.trackingDelegate['onMovePath']('" + old_path + "', '" + new_path + "') threw an exception: " + e.message); } }), rmdir: (function (path) { var lookup = FS.lookupPath(path, {parent: true}); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, true); if (err) { throw new FS.ErrnoError(err) } if (!parent.node_ops.rmdir) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY) } try { if (FS.trackingDelegate["willDeletePath"]) { FS.trackingDelegate["willDeletePath"](path); } } catch (e) { console.log("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message); } parent.node_ops.rmdir(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path); } catch (e) { console.log("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message); } }), readdir: (function (path) { var lookup = FS.lookupPath(path, {follow: true}); var node = lookup.node; if (!node.node_ops.readdir) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR) } return node.node_ops.readdir(node) }), unlink: (function (path) { var lookup = FS.lookupPath(path, {parent: true}); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, false); if (err) { if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM; throw new FS.ErrnoError(err) } if (!parent.node_ops.unlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY) } try { if (FS.trackingDelegate["willDeletePath"]) { FS.trackingDelegate["willDeletePath"](path); } } catch (e) { console.log("FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e.message); } parent.node_ops.unlink(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate["onDeletePath"]) FS.trackingDelegate["onDeletePath"](path); } catch (e) { console.log("FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e.message); } }), readlink: (function (path) { var lookup = FS.lookupPath(path); var link = lookup.node; if (!link) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT) } if (!link.node_ops.readlink) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } return PATH.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)) }), stat: (function (path, dontFollow) { var lookup = FS.lookupPath(path, {follow: !dontFollow}); var node = lookup.node; if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT) } if (!node.node_ops.getattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } return node.node_ops.getattr(node) }), lstat: (function (path) { return FS.stat(path, true) }), chmod: (function (path, mode, dontFollow) { var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, {follow: !dontFollow}); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } node.node_ops.setattr(node, {mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now()}); }), lchmod: (function (path, mode) { FS.chmod(path, mode, true); }), fchmod: (function (fd, mode) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF) } FS.chmod(stream.node, mode); }), chown: (function (path, uid, gid, dontFollow) { var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, {follow: !dontFollow}); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } node.node_ops.setattr(node, {timestamp: Date.now()}); }), lchown: (function (path, uid, gid) { FS.chown(path, uid, gid, true); }), fchown: (function (fd, uid, gid) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF) } FS.chown(stream.node, uid, gid); }), truncate: (function (path, len) { if (len < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } var node; if (typeof path === "string") { var lookup = FS.lookupPath(path, {follow: true}); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM) } if (FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR) } if (!FS.isFile(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } var err = FS.nodePermissions(node, "w"); if (err) { throw new FS.ErrnoError(err) } node.node_ops.setattr(node, {size: len, timestamp: Date.now()}); }), ftruncate: (function (fd, len) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF) } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } FS.truncate(stream.node, len); }), utime: (function (path, atime, mtime) { var lookup = FS.lookupPath(path, {follow: true}); var node = lookup.node; node.node_ops.setattr(node, {timestamp: Math.max(atime, mtime)}); }), open: (function (path, flags, mode, fd_start, fd_end) { if (path === "") { throw new FS.ErrnoError(ERRNO_CODES.ENOENT) } flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags; mode = typeof mode === "undefined" ? 438 : mode; if (flags & 64) { mode = mode & 4095 | 32768; } else { mode = 0; } var node; if (typeof path === "object") { node = path; } else { path = PATH.normalize(path); try { var lookup = FS.lookupPath(path, {follow: !(flags & 131072)}); node = lookup.node; } catch (e) { } } var created = false; if (flags & 64) { if (node) { if (flags & 128) { throw new FS.ErrnoError(ERRNO_CODES.EEXIST) } } else { node = FS.mknod(path, mode, 0); created = true; } } if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT) } if (FS.isChrdev(node.mode)) { flags &= ~512; } if (flags & 65536 && !FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR) } if (!created) { var err = FS.mayOpen(node, flags); if (err) { throw new FS.ErrnoError(err) } } if (flags & 512) { FS.truncate(node, 0); } flags &= ~(128 | 512); var stream = FS.createStream({ node: node, path: FS.getPath(node), flags: flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }, fd_start, fd_end); if (stream.stream_ops.open) { stream.stream_ops.open(stream); } if (Module["logReadFiles"] && !(flags & 1)) { if (!FS.readFiles) FS.readFiles = {}; if (!(path in FS.readFiles)) { FS.readFiles[path] = 1; Module["printErr"]("read file: " + path); } } try { if (FS.trackingDelegate["onOpenFile"]) { var trackingFlags = 0; if ((flags & 2097155) !== 1) { trackingFlags |= FS.tracking.openFlags.READ; } if ((flags & 2097155) !== 0) { trackingFlags |= FS.tracking.openFlags.WRITE; } FS.trackingDelegate["onOpenFile"](path, trackingFlags); } } catch (e) { console.log("FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e.message); } return stream }), close: (function (stream) { if (stream.getdents) stream.getdents = null; try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); } } catch (e) { throw e } finally { FS.closeStream(stream.fd); } }), llseek: (function (stream, offset, whence) { if (!stream.seekable || !stream.stream_ops.llseek) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE) } stream.position = stream.stream_ops.llseek(stream, offset, whence); stream.ungotten = []; return stream.position }), read: (function (stream, buffer, offset, length, position) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EBADF) } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR) } if (!stream.stream_ops.read) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } var seeking = true; if (typeof position === "undefined") { position = stream.position; seeking = false; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE) } var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); if (!seeking) stream.position += bytesRead; return bytesRead }), write: (function (stream, buffer, offset, length, position, canOwn) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF) } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR) } if (!stream.stream_ops.write) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } if (stream.flags & 1024) { FS.llseek(stream, 0, 2); } var seeking = true; if (typeof position === "undefined") { position = stream.position; seeking = false; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE) } var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); if (!seeking) stream.position += bytesWritten; try { if (stream.path && FS.trackingDelegate["onWriteToFile"]) FS.trackingDelegate["onWriteToFile"](stream.path); } catch (e) { console.log("FS.trackingDelegate['onWriteToFile']('" + path + "') threw an exception: " + e.message); } return bytesWritten }), allocate: (function (stream, offset, length) { if (offset < 0 || length <= 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL) } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF) } if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV) } if (!stream.stream_ops.allocate) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP) } stream.stream_ops.allocate(stream, offset, length); }), mmap: (function (stream, buffer, offset, length, position, prot, flags) { if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EACCES) } if (!stream.stream_ops.mmap) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV) } return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags) }), msync: (function (stream, buffer, offset, length, mmapFlags) { if (!stream || !stream.stream_ops.msync) { return 0 } return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags) }), munmap: (function (stream) { return 0 }), ioctl: (function (stream, cmd, arg) { if (!stream.stream_ops.ioctl) { throw new FS.ErrnoError(ERRNO_CODES.ENOTTY) } return stream.stream_ops.ioctl(stream, cmd, arg) }), readFile: (function (path, opts) { opts = opts || {}; opts.flags = opts.flags || "r"; opts.encoding = opts.encoding || "binary"; if (opts.encoding !== "utf8" && opts.encoding !== "binary") { throw new Error('Invalid encoding type "' + opts.encoding + '"') } var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === "utf8") { ret = UTF8ArrayToString(buf, 0); } else if (opts.encoding === "binary") { ret = buf; } FS.close(stream); return ret }), writeFile: (function (path, data, opts) { opts = opts || {}; opts.flags = opts.flags || "w"; opts.encoding = opts.encoding || "utf8"; if (opts.encoding !== "utf8" && opts.encoding !== "binary") { throw new Error('Invalid encoding type "' + opts.encoding + '"') } var stream = FS.open(path, opts.flags, opts.mode); if (opts.encoding === "utf8") { var buf = new Uint8Array(lengthBytesUTF8(data) + 1); var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn); } else if (opts.encoding === "binary") { FS.write(stream, data, 0, data.length, 0, opts.canOwn); } FS.close(stream); }), cwd: (function () { return FS.currentPath }), chdir: (function (path) { var lookup = FS.lookupPath(path, {follow: true}); if (!FS.isDir(lookup.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR) } var err = FS.nodePermissions(lookup.node, "x"); if (err) { throw new FS.ErrnoError(err) } FS.currentPath = lookup.path; }), createDefaultDirectories: (function () { FS.mkdir("/tmp"); FS.mkdir("/home"); FS.mkdir("/home/web_user"); }), createDefaultDevices: (function () { FS.mkdir("/dev"); FS.registerDevice(FS.makedev(1, 3), { read: (function () { return 0 }), write: (function (stream, buffer, offset, length, pos) { return length }) }); FS.mkdev("/dev/null", FS.makedev(1, 3)); TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); FS.mkdev("/dev/tty", FS.makedev(5, 0)); FS.mkdev("/dev/tty1", FS.makedev(6, 0)); var random_device; if (typeof crypto !== "undefined") { var randomBuffer = new Uint8Array(1); random_device = (function () { crypto.getRandomValues(randomBuffer); return randomBuffer[0] }); } else { random_device = (function () { return Math.random() * 256 | 0 }); } FS.createDevice("/dev", "random", random_device); FS.createDevice("/dev", "urandom", random_device); FS.mkdir("/dev/shm"); FS.mkdir("/dev/shm/tmp"); }), createSpecialDirectories: (function () { FS.mkdir("/proc"); FS.mkdir("/proc/self"); FS.mkdir("/proc/self/fd"); FS.mount({ mount: (function () { var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73); node.node_ops = { lookup: (function (parent, name) { var fd = +name; var stream = FS.getStream(fd); if (!stream) throw new FS.ErrnoError(ERRNO_CODES.EBADF); var ret = { parent: null, mount: {mountpoint: "fake"}, node_ops: { readlink: (function () { return stream.path }) } }; ret.parent = ret; return ret }) }; return node }) }, {}, "/proc/self/fd"); }), createStandardStreams: (function () { if (Module["stdin"]) { FS.createDevice("/dev", "stdin", Module["stdin"]); } else { FS.symlink("/dev/tty", "/dev/stdin"); } if (Module["stdout"]) { FS.createDevice("/dev", "stdout", null, Module["stdout"]); } else { FS.symlink("/dev/tty", "/dev/stdout"); } if (Module["stderr"]) { FS.createDevice("/dev", "stderr", null, Module["stderr"]); } else { FS.symlink("/dev/tty1", "/dev/stderr"); } var stdin = FS.open("/dev/stdin", "r"); assert(stdin.fd === 0, "invalid handle for stdin (" + stdin.fd + ")"); var stdout = FS.open("/dev/stdout", "w"); assert(stdout.fd === 1, "invalid handle for stdout (" + stdout.fd + ")"); var stderr = FS.open("/dev/stderr", "w"); assert(stderr.fd === 2, "invalid handle for stderr (" + stderr.fd + ")"); }), ensureErrnoError: (function () { if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { this.node = node; this.setErrno = (function (errno) { this.errno = errno; for (var key in ERRNO_CODES) { if (ERRNO_CODES[key] === errno) { this.code = key; break } } }); this.setErrno(errno); this.message = ERRNO_MESSAGES[errno]; }; FS.ErrnoError.prototype = new Error; FS.ErrnoError.prototype.constructor = FS.ErrnoError; [ERRNO_CODES.ENOENT].forEach((function (code) { FS.genericErrors[code] = new FS.ErrnoError(code); FS.genericErrors[code].stack = "<generic error, no stack>"; })); }), staticInit: (function () { FS.ensureErrnoError(); FS.nameTable = new Array(4096); FS.mount(MEMFS, {}, "/"); FS.createDefaultDirectories(); FS.createDefaultDevices(); FS.createSpecialDirectories(); FS.filesystems = {"MEMFS": MEMFS, "IDBFS": IDBFS, "NODEFS": {}, "WORKERFS": WORKERFS}; }), init: (function (input, output, error) { assert(!FS.init.initialized, "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"); FS.init.initialized = true; FS.ensureErrnoError(); Module["stdin"] = input || Module["stdin"]; Module["stdout"] = output || Module["stdout"]; Module["stderr"] = error || Module["stderr"]; FS.createStandardStreams(); }), quit: (function () { FS.init.initialized = false; var fflush = Module["_fflush"]; if (fflush) fflush(0); for (var i = 0; i < FS.streams.length; i++) { var stream = FS.streams[i]; if (!stream) { continue } FS.close(stream); } }), getMode: (function (canRead, canWrite) { var mode = 0; if (canRead) mode |= 292 | 73; if (canWrite) mode |= 146; return mode }), joinPath: (function (parts, forceRelative) { var path = PATH.join.apply(null, parts); if (forceRelative && path[0] == "/") path = path.substr(1); return path }), absolutePath: (function (relative, base) { return PATH.resolve(base, relative) }), standardizePath: (function (path) { return PATH.normalize(path) }), findObject: (function (path, dontResolveLastLink) { var ret = FS.analyzePath(path, dontResolveLastLink); if (ret.exists) { return ret.object } else { ___setErrNo(ret.error); return null } }), analyzePath: (function (path, dontResolveLastLink) { try { var lookup = FS.lookupPath(path, {follow: !dontResolveLastLink}); path = lookup.path; } catch (e) { } var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; try { var lookup = FS.lookupPath(path, {parent: true}); ret.parentExists = true; ret.parentPath = lookup.path; ret.parentObject = lookup.node; ret.name = PATH.basename(path); lookup = FS.lookupPath(path, {follow: !dontResolveLastLink}); ret.exists = true; ret.path = lookup.path; ret.object = lookup.node; ret.name = lookup.node.name; ret.isRoot = lookup.path === "/"; } catch (e) { ret.error = e.errno; } return ret }), createFolder: (function (parent, name, canRead, canWrite) { var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name); var mode = FS.getMode(canRead, canWrite); return FS.mkdir(path, mode) }), createPath: (function (parent, path, canRead, canWrite) { parent = typeof parent === "string" ? parent : FS.getPath(parent); var parts = path.split("/").reverse(); while (parts.length) { var part = parts.pop(); if (!part) continue; var current = PATH.join2(parent, part); try { FS.mkdir(current); } catch (e) { } parent = current; } return current }), createFile: (function (parent, name, properties, canRead, canWrite) { var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name); var mode = FS.getMode(canRead, canWrite); return FS.create(path, mode) }), createDataFile: (function (parent, name, data, canRead, canWrite, canOwn) { var path = name ? PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name) : parent; var mode = FS.getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data === "string") { var arr = new Array(data.length); for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); data = arr; } FS.chmod(node, mode | 146); var stream = FS.open(node, "w"); FS.write(stream, data, 0, data.length, 0, canOwn); FS.close(stream); FS.chmod(node, mode); } return node }), createDevice: (function (parent, name, input, output) { var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name); var mode = FS.getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); FS.registerDevice(dev, { open: (function (stream) { stream.seekable = false; }), close: (function (stream) { if (output && output.buffer && output.buffer.length) { output(10); } }), read: (function (stream, buffer, offset, length, pos) { var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = input(); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO) } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN) } if (result === null || result === undefined) break; bytesRead++; buffer[offset + i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead }), write: (function (stream, buffer, offset, length, pos) { for (var i = 0; i < length; i++) { try { output(buffer[offset + i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO) } } if (length) { stream.node.timestamp = Date.now(); } return i }) }); return FS.mkdev(path, mode, dev) }), createLink: (function (parent, name, target, canRead, canWrite) { var path = PATH.join2(typeof parent === "string" ? parent : FS.getPath(parent), name); return FS.symlink(target, path) }), forceLoadFile: (function (obj) { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; var success = true; if (typeof XMLHttpRequest !== "undefined") { throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.") } else if (Module["read"]) { try { obj.contents = intArrayFromString(Module["read"](obj.url), true); obj.usedBytes = obj.contents.length; } catch (e) { success = false; } } else { throw new Error("Cannot load without read() or XMLHttpRequest.") } if (!success) ___setErrNo(ERRNO_CODES.EIO); return success }), createLazyFile: (function (parent, name, url, canRead, canWrite) { function LazyUint8Array() { this.lengthKnown = false; this.chunks = []; } LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { if (idx > this.length - 1 || idx < 0) { return undefined } var chunkOffset = idx % this.chunkSize; var chunkNum = idx / this.chunkSize | 0; return this.getter(chunkNum)[chunkOffset] }; LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { this.getter = getter; }; LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { var xhr = new XMLHttpRequest; xhr.open("HEAD", url, false); xhr.send(null); if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); var datalength = Number(xhr.getResponseHeader("Content-length")); var header; var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; var chunkSize = 1024 * 1024; if (!hasByteServing) chunkSize = datalength; var doXHR = (function (from, to) { if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!"); var xhr = new XMLHttpRequest; xhr.open("GET", url, false); if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer"; if (xhr.overrideMimeType) { xhr.overrideMimeType("text/plain; charset=x-user-defined"); } xhr.send(null); if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); if (xhr.response !== undefined) { return new Uint8Array(xhr.response || []) } else { return intArrayFromString(xhr.responseText || "", true) } }); var lazyArray = this; lazyArray.setDataGetter((function (chunkNum) { var start = chunkNum * chunkSize; var end = (chunkNum + 1) * chunkSize - 1; end = Math.min(end, datalength - 1); if (typeof lazyArray.chunks[chunkNum] === "undefined") { lazyArray.chunks[chunkNum] = doXHR(start, end); } if (typeof lazyArray.chunks[chunkNum] === "undefined") throw new Error("doXHR failed!"); return lazyArray.chunks[chunkNum] })); this._length = datalength; this._chunkSize = chunkSize; this.lengthKnown = true; }; if (typeof XMLHttpRequest !== "undefined") { if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; var lazyArray = new LazyUint8Array; Object.defineProperty(lazyArray, "length", { get: (function () { if (!this.lengthKnown) { this.cacheLength(); } return this._length }) }); Object.defineProperty(lazyArray, "chunkSize", { get: (function () { if (!this.lengthKnown) { this.cacheLength(); } return this._chunkSize }) }); var properties = {isDevice: false, contents: lazyArray}; } else { var properties = {isDevice: false, url: url}; } var node = FS.createFile(parent, name, properties, canRead, canWrite); if (properties.contents) { node.contents = properties.contents; } else if (properties.url) { node.contents = null; node.url = properties.url; } Object.defineProperty(node, "usedBytes", { get: (function () { return this.contents.length }) }); var stream_ops = {}; var keys = Object.keys(node.stream_ops); keys.forEach((function (key) { var fn = node.stream_ops[key]; stream_ops[key] = function forceLoadLazyFile() { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO) } return fn.apply(null, arguments) }; })); stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO) } var contents = stream.node.contents; if (position >= contents.length) return 0; var size = Math.min(contents.length - position, length); assert(size >= 0); if (contents.slice) { for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } else { for (var i = 0; i < size; i++) { buffer[offset + i] = contents.get(position + i); } } return size }; node.stream_ops = stream_ops; return node }), createPreloadedFile: (function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { Browser.init(); var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; function processData(byteArray) { function finish(byteArray) { if (preFinish) preFinish(); if (!dontCreateFile) { FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); } if (onload) onload(); removeRunDependency(); } var handled = false; Module["preloadPlugins"].forEach((function (plugin) { if (handled) return; if (plugin["canHandle"](fullname)) { plugin["handle"](byteArray, fullname, finish, (function () { if (onerror) onerror(); removeRunDependency(); })); handled = true; } })); if (!handled) finish(byteArray); } addRunDependency(); if (typeof url == "string") { Browser.asyncLoad(url, (function (byteArray) { processData(byteArray); }), onerror); } else { processData(url); } }), indexedDB: (function () { return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB }), DB_NAME: (function () { return "EM_FS_" + window.location.pathname }), DB_VERSION: 20, DB_STORE_NAME: "FILE_DATA", saveFilesToDB: (function (paths, onload, onerror) { onload = onload || (function () { }); onerror = onerror || (function () { }); var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e) } openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { console.log("creating db"); var db = openRequest.result; db.createObjectStore(FS.DB_STORE_NAME); }; openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach((function (path) { var putRequest = files.put(FS.analyzePath(path).object.contents, path); putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish(); }; putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish(); }; })); transaction.onerror = onerror; }; openRequest.onerror = onerror; }), loadFilesFromDB: (function (paths, onload, onerror) { onload = onload || (function () { }); onerror = onerror || (function () { }); var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e) } openRequest.onupgradeneeded = onerror; openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; try { var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); } catch (e) { onerror(e); return } var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach((function (path) { var getRequest = files.get(path); getRequest.onsuccess = function getRequest_onsuccess() { if (FS.analyzePath(path).exists) { FS.unlink(path); } FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); ok++; if (ok + fail == total) finish(); }; getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish(); }; })); transaction.onerror = onerror; }; openRequest.onerror = onerror; }) }; var PATH = { splitPath: (function (filename) { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1) }), normalizeArray: (function (parts, allowAboveRoot) { var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === ".") { parts.splice(i, 1); } else if (last === "..") { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } if (allowAboveRoot) { for (; up--; up) { parts.unshift(".."); } } return parts }), normalize: (function (path) { var isAbsolute = path.charAt(0) === "/", trailingSlash = path.substr(-1) === "/"; path = PATH.normalizeArray(path.split("/").filter((function (p) { return !!p })), !isAbsolute).join("/"); if (!path && !isAbsolute) { path = "."; } if (path && trailingSlash) { path += "/"; } return (isAbsolute ? "/" : "") + path }), dirname: (function (path) { var result = PATH.splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { return "." } if (dir) { dir = dir.substr(0, dir.length - 1); } return root + dir }), basename: (function (path) { if (path === "/") return "/"; var lastSlash = path.lastIndexOf("/"); if (lastSlash === -1) return path; return path.substr(lastSlash + 1) }), extname: (function (path) { return PATH.splitPath(path)[3] }), join: (function () { var paths = Array.prototype.slice.call(arguments, 0); return PATH.normalize(paths.join("/")) }), join2: (function (l, r) { return PATH.normalize(l + "/" + r) }), resolve: (function () { var resolvedPath = "", resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = i >= 0 ? arguments[i] : FS.cwd(); if (typeof path !== "string") { throw new TypeError("Arguments to path.resolve must be strings") } else if (!path) { return "" } resolvedPath = path + "/" + resolvedPath; resolvedAbsolute = path.charAt(0) === "/"; } resolvedPath = PATH.normalizeArray(resolvedPath.split("/").filter((function (p) { return !!p })), !resolvedAbsolute).join("/"); return (resolvedAbsolute ? "/" : "") + resolvedPath || "." }), relative: (function (from, to) { from = PATH.resolve(from).substr(1); to = PATH.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== "") break } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== "") break } if (start > end) return []; return arr.slice(start, end - start + 1) } var fromParts = trim(from.split("/")); var toParts = trim(to.split("/")); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push(".."); } outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join("/") }) }; function _emscripten_set_main_loop_timing(mode, value) { Browser.mainLoop.timingMode = mode; Browser.mainLoop.timingValue = value; if (!Browser.mainLoop.func) { return 1 } if (mode == 0) { Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() { setTimeout(Browser.mainLoop.runner, value); }; Browser.mainLoop.method = "timeout"; } else if (mode == 1) { Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() { Browser.requestAnimationFrame(Browser.mainLoop.runner); }; Browser.mainLoop.method = "rAF"; } else if (mode == 2) { if (!window["setImmediate"]) { var setImmediates = []; var emscriptenMainLoopMessageId = "__emcc"; function Browser_setImmediate_messageHandler(event) { if (event.source === window && event.data === emscriptenMainLoopMessageId) { event.stopPropagation(); setImmediates.shift()(); } } window.addEventListener("message", Browser_setImmediate_messageHandler, true); window["setImmediate"] = function Browser_emulated_setImmediate(func) { setImmediates.push(func); window.postMessage(emscriptenMainLoopMessageId, "*"); }; } Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() { window["setImmediate"](Browser.mainLoop.runner); }; Browser.mainLoop.method = "immediate"; } return 0 } function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { Module["noExitRuntime"] = true; assert(!Browser.mainLoop.func, "emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."); Browser.mainLoop.func = func; Browser.mainLoop.arg = arg; var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; Browser.mainLoop.runner = function Browser_mainLoop_runner() { if (ABORT) return; if (Browser.mainLoop.queue.length > 0) { var start = Date.now(); var blocker = Browser.mainLoop.queue.shift(); blocker.func(blocker.arg); if (Browser.mainLoop.remainingBlockers) { var remaining = Browser.mainLoop.remainingBlockers; var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining); if (blocker.counted) { Browser.mainLoop.remainingBlockers = next; } else { next = next + .5; Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9; } } console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + " ms"); Browser.mainLoop.updateStatus(); setTimeout(Browser.mainLoop.runner, 0); return } if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { Browser.mainLoop.scheduler(); return } if (Browser.mainLoop.method === "timeout" && Module.ctx) { Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"); Browser.mainLoop.method = ""; } Browser.mainLoop.runIter((function () { if (typeof arg !== "undefined") { Runtime.dynCall("vi", func, [arg]); } else { Runtime.dynCall("v", func); } })); if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; if (typeof SDL === "object" && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); Browser.mainLoop.scheduler(); }; if (!noSetTiming) { if (fps && fps > 0) _emscripten_set_main_loop_timing(0, 1e3 / fps); else _emscripten_set_main_loop_timing(1, 1); Browser.mainLoop.scheduler(); } if (simulateInfiniteLoop) { throw "SimulateInfiniteLoop" } } var Browser = { mainLoop: { scheduler: null, method: "", currentlyRunningMainloop: 0, func: null, arg: 0, timingMode: 0, timingValue: 0, currentFrameNumber: 0, queue: [], pause: (function () { Browser.mainLoop.scheduler = null; Browser.mainLoop.currentlyRunningMainloop++; }), resume: (function () { Browser.mainLoop.currentlyRunningMainloop++; var timingMode = Browser.mainLoop.timingMode; var timingValue = Browser.mainLoop.timingValue; var func = Browser.mainLoop.func; Browser.mainLoop.func = null; _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true); _emscripten_set_main_loop_timing(timingMode, timingValue); Browser.mainLoop.scheduler(); }), updateStatus: (function () { if (Module["setStatus"]) { var message = Module["statusMessage"] || "Please wait..."; var remaining = Browser.mainLoop.remainingBlockers; var expected = Browser.mainLoop.expectedBlockers; if (remaining) { if (remaining < expected) { Module["setStatus"](message + " (" + (expected - remaining) + "/" + expected + ")"); } else { Module["setStatus"](message); } } else { Module["setStatus"](""); } } }), runIter: (function (func) { if (ABORT) return; if (Module["preMainLoop"]) { var preRet = Module["preMainLoop"](); if (preRet === false) { return } } try { func(); } catch (e) { if (e instanceof ExitStatus) { return } else { if (e && typeof e === "object" && e.stack) Module.printErr("exception thrown: " + [e, e.stack]); throw e } } if (Module["postMainLoop"]) Module["postMainLoop"](); }) }, isFullScreen: false, pointerLock: false, moduleContextCreatedCallbacks: [], workers: [], init: (function () { if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; if (Browser.initted) return; Browser.initted = true; try { new Blob; Browser.hasBlobConstructor = true; } catch (e) { Browser.hasBlobConstructor = false; console.log("warning: no blob constructor, cannot create blobs with mimetypes"); } Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null; Browser.URLObject = typeof window != "undefined" ? window.URL ? window.URL : window.webkitURL : undefined; if (!Module.noImageDecoding && typeof Browser.URLObject === "undefined") { console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); Module.noImageDecoding = true; } var imagePlugin = {}; imagePlugin["canHandle"] = function imagePlugin_canHandle(name) { return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name) }; imagePlugin["handle"] = function imagePlugin_handle(byteArray, name, onload, onerror) { var b = null; if (Browser.hasBlobConstructor) { try { b = new Blob([byteArray], {type: Browser.getMimetype(name)}); if (b.size !== byteArray.length) { b = new Blob([(new Uint8Array(byteArray)).buffer], {type: Browser.getMimetype(name)}); } } catch (e) { Runtime.warnOnce("Blob constructor present but fails: " + e + "; falling back to blob builder"); } } if (!b) { var bb = new Browser.BlobBuilder; bb.append((new Uint8Array(byteArray)).buffer); b = bb.getBlob(); } var url = Browser.URLObject.createObjectURL(b); var img = new Image; img.onload = function img_onload() { assert(img.complete, "Image " + name + " could not be decoded"); var canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0); Module["preloadedImages"][name] = canvas; Browser.URLObject.revokeObjectURL(url); if (onload) onload(byteArray); }; img.onerror = function img_onerror(event) { console.log("Image " + url + " could not be decoded"); if (onerror) onerror(); }; img.src = url; }; Module["preloadPlugins"].push(imagePlugin); var audioPlugin = {}; audioPlugin["canHandle"] = function audioPlugin_canHandle(name) { return !Module.noAudioDecoding && name.substr(-4) in {".ogg": 1, ".wav": 1, ".mp3": 1} }; audioPlugin["handle"] = function audioPlugin_handle(byteArray, name, onload, onerror) { var done = false; function finish(audio) { if (done) return; done = true; Module["preloadedAudios"][name] = audio; if (onload) onload(byteArray); } function fail() { if (done) return; done = true; Module["preloadedAudios"][name] = new Audio; if (onerror) onerror(); } if (Browser.hasBlobConstructor) { try { var b = new Blob([byteArray], {type: Browser.getMimetype(name)}); } catch (e) { return fail() } var url = Browser.URLObject.createObjectURL(b); var audio = new Audio; audio.addEventListener("canplaythrough", (function () { finish(audio); }), false); audio.onerror = function audio_onerror(event) { if (done) return; console.log("warning: browser could not fully decode audio " + name + ", trying slower base64 approach"); function encode64(data) { var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var PAD = "="; var ret = ""; var leftchar = 0; var leftbits = 0; for (var i = 0; i < data.length; i++) { leftchar = leftchar << 8 | data[i]; leftbits += 8; while (leftbits >= 6) { var curr = leftchar >> leftbits - 6 & 63; leftbits -= 6; ret += BASE[curr]; } } if (leftbits == 2) { ret += BASE[(leftchar & 3) << 4]; ret += PAD + PAD; } else if (leftbits == 4) { ret += BASE[(leftchar & 15) << 2]; ret += PAD; } return ret } audio.src = "data:audio/x-" + name.substr(-3) + ";base64," + encode64(byteArray); finish(audio); }; audio.src = url; Browser.safeSetTimeout((function () { finish(audio); }), 1e4); } else { return fail() } }; Module["preloadPlugins"].push(audioPlugin); var canvas = Module["canvas"]; function pointerLockChange() { Browser.pointerLock = document["pointerLockElement"] === canvas || document["mozPointerLockElement"] === canvas || document["webkitPointerLockElement"] === canvas || document["msPointerLockElement"] === canvas; } if (canvas) { canvas.requestPointerLock = canvas["requestPointerLock"] || canvas["mozRequestPointerLock"] || canvas["webkitRequestPointerLock"] || canvas["msRequestPointerLock"] || (function () { }); canvas.exitPointerLock = document["exitPointerLock"] || document["mozExitPointerLock"] || document["webkitExitPointerLock"] || document["msExitPointerLock"] || (function () { }); canvas.exitPointerLock = canvas.exitPointerLock.bind(document); document.addEventListener("pointerlockchange", pointerLockChange, false); document.addEventListener("mozpointerlockchange", pointerLockChange, false); document.addEventListener("webkitpointerlockchange", pointerLockChange, false); document.addEventListener("mspointerlockchange", pointerLockChange, false); if (Module["elementPointerLock"]) { canvas.addEventListener("click", (function (ev) { if (!Browser.pointerLock && canvas.requestPointerLock) { canvas.requestPointerLock(); ev.preventDefault(); } }), false); } } }), createContext: (function (canvas, useWebGL, setInModule, webGLContextAttributes) { if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; var ctx; var contextHandle; if (useWebGL) { var contextAttributes = {antialias: false, alpha: false}; if (webGLContextAttributes) { for (var attribute in webGLContextAttributes) { contextAttributes[attribute] = webGLContextAttributes[attribute]; } } contextHandle = GL.createContext(canvas, contextAttributes); if (contextHandle) { ctx = GL.getContext(contextHandle).GLctx; } canvas.style.backgroundColor = "black"; } else { ctx = canvas.getContext("2d"); } if (!ctx) return null; if (setInModule) { if (!useWebGL) assert(typeof GLctx === "undefined", "cannot set in module if GLctx is used, but we are a non-GL context that would replace it"); Module.ctx = ctx; if (useWebGL) GL.makeContextCurrent(contextHandle); Module.useWebGL = useWebGL; Browser.moduleContextCreatedCallbacks.forEach((function (callback) { callback(); })); Browser.init(); } return ctx }), destroyContext: (function (canvas, useWebGL, setInModule) { }), fullScreenHandlersInstalled: false, lockPointer: undefined, resizeCanvas: undefined, requestFullScreen: (function (lockPointer, resizeCanvas, vrDevice) { Browser.lockPointer = lockPointer; Browser.resizeCanvas = resizeCanvas; Browser.vrDevice = vrDevice; if (typeof Browser.lockPointer === "undefined") Browser.lockPointer = true; if (typeof Browser.resizeCanvas === "undefined") Browser.resizeCanvas = false; if (typeof Browser.vrDevice === "undefined") Browser.vrDevice = null; var canvas = Module["canvas"]; function fullScreenChange() { Browser.isFullScreen = false; var canvasContainer = canvas.parentNode; if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvasContainer) { canvas.cancelFullScreen = document["cancelFullScreen"] || document["mozCancelFullScreen"] || document["webkitCancelFullScreen"] || document["msExitFullscreen"] || document["exitFullscreen"] || (function () { }); canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document); if (Browser.lockPointer) canvas.requestPointerLock(); Browser.isFullScreen = true; if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize(); } else { canvasContainer.parentNode.insertBefore(canvas, canvasContainer); canvasContainer.parentNode.removeChild(canvasContainer); if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); } if (Module["onFullScreen"]) Module["onFullScreen"](Browser.isFullScreen); Browser.updateCanvasDimensions(canvas); } if (!Browser.fullScreenHandlersInstalled) { Browser.fullScreenHandlersInstalled = true; document.addEventListener("fullscreenchange", fullScreenChange, false); document.addEventListener("mozfullscreenchange", fullScreenChange, false); document.addEventListener("webkitfullscreenchange", fullScreenChange, false); document.addEventListener("MSFullscreenChange", fullScreenChange, false); } var canvasContainer = document.createElement("div"); canvas.parentNode.insertBefore(canvasContainer, canvas); canvasContainer.appendChild(canvas); canvasContainer.requestFullScreen = canvasContainer["requestFullScreen"] || canvasContainer["mozRequestFullScreen"] || canvasContainer["msRequestFullscreen"] || (canvasContainer["webkitRequestFullScreen"] ? (function () { canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]); }) : null); if (vrDevice) { canvasContainer.requestFullScreen({vrDisplay: vrDevice}); } else { canvasContainer.requestFullScreen(); } }), nextRAF: 0, fakeRequestAnimationFrame: (function (func) { var now = Date.now(); if (Browser.nextRAF === 0) { Browser.nextRAF = now + 1e3 / 60; } else { while (now + 2 >= Browser.nextRAF) { Browser.nextRAF += 1e3 / 60; } } var delay = Math.max(Browser.nextRAF - now, 0); setTimeout(func, delay); }), requestAnimationFrame: function requestAnimationFrame(func) { if (typeof window === "undefined") { Browser.fakeRequestAnimationFrame(func); } else { if (!window.requestAnimationFrame) { window.requestAnimationFrame = window["requestAnimationFrame"] || window["mozRequestAnimationFrame"] || window["webkitRequestAnimationFrame"] || window["msRequestAnimationFrame"] || window["oRequestAnimationFrame"] || Browser.fakeRequestAnimationFrame; } window.requestAnimationFrame(func); } }, safeCallback: (function (func) { return (function () { if (!ABORT) return func.apply(null, arguments) }) }), allowAsyncCallbacks: true, queuedAsyncCallbacks: [], pauseAsyncCallbacks: (function () { Browser.allowAsyncCallbacks = false; }), resumeAsyncCallbacks: (function () { Browser.allowAsyncCallbacks = true; if (Browser.queuedAsyncCallbacks.length > 0) { var callbacks = Browser.queuedAsyncCallbacks; Browser.queuedAsyncCallbacks = []; callbacks.forEach((function (func) { func(); })); } }), safeRequestAnimationFrame: (function (func) { return Browser.requestAnimationFrame((function () { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func(); } else { Browser.queuedAsyncCallbacks.push(func); } })) }), safeSetTimeout: (function (func, timeout) { Module["noExitRuntime"] = true; return setTimeout((function () { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func(); } else { Browser.queuedAsyncCallbacks.push(func); } }), timeout) }), safeSetInterval: (function (func, timeout) { Module["noExitRuntime"] = true; return setInterval((function () { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func(); } }), timeout) }), getMimetype: (function (name) { return { "jpg": "image/jpeg", "jpeg": "image/jpeg", "png": "image/png", "bmp": "image/bmp", "ogg": "audio/ogg", "wav": "audio/wav", "mp3": "audio/mpeg" }[name.substr(name.lastIndexOf(".") + 1)] }), getUserMedia: (function (func) { if (!window.getUserMedia) { window.getUserMedia = navigator["getUserMedia"] || navigator["mozGetUserMedia"]; } window.getUserMedia(func); }), getMovementX: (function (event) { return event["movementX"] || event["mozMovementX"] || event["webkitMovementX"] || 0 }), getMovementY: (function (event) { return event["movementY"] || event["mozMovementY"] || event["webkitMovementY"] || 0 }), getMouseWheelDelta: (function (event) { var delta = 0; switch (event.type) { case"DOMMouseScroll": delta = event.detail; break; case"mousewheel": delta = event.wheelDelta; break; case"wheel": delta = event["deltaY"]; break; default: throw "unrecognized mouse wheel event: " + event.type } return delta }), mouseX: 0, mouseY: 0, mouseMovementX: 0, mouseMovementY: 0, touches: {}, lastTouches: {}, calculateMouseEvent: (function (event) { if (Browser.pointerLock) { if (event.type != "mousemove" && "mozMovementX" in event) { Browser.mouseMovementX = Browser.mouseMovementY = 0; } else { Browser.mouseMovementX = Browser.getMovementX(event); Browser.mouseMovementY = Browser.getMovementY(event); } if (typeof SDL != "undefined") { Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; } else { Browser.mouseX += Browser.mouseMovementX; Browser.mouseY += Browser.mouseMovementY; } } else { var rect = Module["canvas"].getBoundingClientRect(); var cw = Module["canvas"].width; var ch = Module["canvas"].height; var scrollX = typeof window.scrollX !== "undefined" ? window.scrollX : window.pageXOffset; var scrollY = typeof window.scrollY !== "undefined" ? window.scrollY : window.pageYOffset; if (event.type === "touchstart" || event.type === "touchend" || event.type === "touchmove") { var touch = event.touch; if (touch === undefined) { return } var adjustedX = touch.pageX - (scrollX + rect.left); var adjustedY = touch.pageY - (scrollY + rect.top); adjustedX = adjustedX * (cw / rect.width); adjustedY = adjustedY * (ch / rect.height); var coords = {x: adjustedX, y: adjustedY}; if (event.type === "touchstart") { Browser.lastTouches[touch.identifier] = coords; Browser.touches[touch.identifier] = coords; } else if (event.type === "touchend" || event.type === "touchmove") { var last = Browser.touches[touch.identifier]; if (!last) last = coords; Browser.lastTouches[touch.identifier] = last; Browser.touches[touch.identifier] = coords; } return } var x = event.pageX - (scrollX + rect.left); var y = event.pageY - (scrollY + rect.top); x = x * (cw / rect.width); y = y * (ch / rect.height); Browser.mouseMovementX = x - Browser.mouseX; Browser.mouseMovementY = y - Browser.mouseY; Browser.mouseX = x; Browser.mouseY = y; } }), xhrLoad: (function (url, onload, onerror) { var xhr = new XMLHttpRequest; xhr.open("GET", url, true); xhr.responseType = "arraybuffer"; xhr.onload = function xhr_onload() { if (xhr.status == 200 || xhr.status == 0 && xhr.response) { onload(xhr.response); } else { onerror(); } }; xhr.onerror = onerror; xhr.send(null); }), asyncLoad: (function (url, onload, onerror, noRunDep) { Browser.xhrLoad(url, (function (arrayBuffer) { assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); onload(new Uint8Array(arrayBuffer)); if (!noRunDep) removeRunDependency(); }), (function (event) { if (onerror) { onerror(); } else { throw 'Loading data file "' + url + '" failed.' } })); if (!noRunDep) addRunDependency(); }), resizeListeners: [], updateResizeListeners: (function () { var canvas = Module["canvas"]; Browser.resizeListeners.forEach((function (listener) { listener(canvas.width, canvas.height); })); }), setCanvasSize: (function (width, height, noUpdates) { var canvas = Module["canvas"]; Browser.updateCanvasDimensions(canvas, width, height); if (!noUpdates) Browser.updateResizeListeners(); }), windowedWidth: 0, windowedHeight: 0, setFullScreenCanvasSize: (function () { if (typeof SDL != "undefined") { var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2]; flags = flags | 8388608; HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags; } Browser.updateResizeListeners(); }), setWindowedCanvasSize: (function () { if (typeof SDL != "undefined") { var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2]; flags = flags & ~8388608; HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags; } Browser.updateResizeListeners(); }), updateCanvasDimensions: (function (canvas, wNative, hNative) { if (wNative && hNative) { canvas.widthNative = wNative; canvas.heightNative = hNative; } else { wNative = canvas.widthNative; hNative = canvas.heightNative; } var w = wNative; var h = hNative; if (Module["forcedAspectRatio"] && Module["forcedAspectRatio"] > 0) { if (w / h < Module["forcedAspectRatio"]) { w = Math.round(h * Module["forcedAspectRatio"]); } else { h = Math.round(w / Module["forcedAspectRatio"]); } } if ((document["webkitFullScreenElement"] || document["webkitFullscreenElement"] || document["mozFullScreenElement"] || document["mozFullscreenElement"] || document["fullScreenElement"] || document["fullscreenElement"] || document["msFullScreenElement"] || document["msFullscreenElement"] || document["webkitCurrentFullScreenElement"]) === canvas.parentNode && typeof screen != "undefined") { var factor = Math.min(screen.width / w, screen.height / h); w = Math.round(w * factor); h = Math.round(h * factor); } if (Browser.resizeCanvas) { if (canvas.width != w) canvas.width = w; if (canvas.height != h) canvas.height = h; if (typeof canvas.style != "undefined") { canvas.style.removeProperty("width"); canvas.style.removeProperty("height"); } } else { if (canvas.width != wNative) canvas.width = wNative; if (canvas.height != hNative) canvas.height = hNative; if (typeof canvas.style != "undefined") { if (w != wNative || h != hNative) { canvas.style.setProperty("width", w + "px", "important"); canvas.style.setProperty("height", h + "px", "important"); } else { canvas.style.removeProperty("width"); canvas.style.removeProperty("height"); } } } }), wgetRequests: {}, nextWgetRequestHandle: 0, getNextWgetRequestHandle: (function () { var handle = Browser.nextWgetRequestHandle; Browser.nextWgetRequestHandle++; return handle }) }; function _time(ptr) { var ret = Date.now() / 1e3 | 0; if (ptr) { HEAP32[ptr >> 2] = ret; } return ret } function _pthread_self() { return 0 } Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice); }; Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func); }; Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates); }; Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause(); }; Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume(); }; Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia(); }; Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) }; FS.staticInit(); __ATINIT__.unshift((function () { if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); })); __ATMAIN__.push((function () { FS.ignorePermissions = false; })); __ATEXIT__.push((function () { FS.quit(); })); Module["FS_createFolder"] = FS.createFolder; Module["FS_createPath"] = FS.createPath; Module["FS_createDataFile"] = FS.createDataFile; Module["FS_createPreloadedFile"] = FS.createPreloadedFile; Module["FS_createLazyFile"] = FS.createLazyFile; Module["FS_createLink"] = FS.createLink; Module["FS_createDevice"] = FS.createDevice; Module["FS_unlink"] = FS.unlink; __ATINIT__.unshift((function () { })); __ATEXIT__.push((function () { })); STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); staticSealed = true; 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"); Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; Module.asmLibraryArg = { "abort": abort, "assert": assert, "_sysconf": _sysconf, "_pthread_self": _pthread_self, "_abort": _abort, "___setErrNo": ___setErrNo, "_sbrk": _sbrk, "_time": _time, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_emscripten_set_main_loop": _emscripten_set_main_loop, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT };// EMSCRIPTEN_START_ASM var asm = (function (global, env, buffer) { "use asm"; var a = new global.Int8Array(buffer); var b = new global.Int16Array(buffer); var c = new global.Int32Array(buffer); var d = new global.Uint8Array(buffer); var e = new global.Uint16Array(buffer); var f = new global.Uint32Array(buffer); var g = new global.Float32Array(buffer); var h = new global.Float64Array(buffer); var i = env.STACKTOP | 0; var j = env.STACK_MAX | 0; var k = env.tempDoublePtr | 0; var l = env.ABORT | 0; var m = 0; var n = 0; var o = 0; var p = 0; var q = global.NaN, r = global.Infinity; var s = 0, t = 0, u = 0, v = 0, w = 0.0, x = 0, y = 0, z = 0, A = 0.0; var B = 0; var C = 0; var D = 0; var E = 0; var F = 0; var G = 0; var H = 0; var I = 0; var J = 0; var K = 0; var L = global.Math.floor; var M = global.Math.abs; var N = global.Math.sqrt; var O = global.Math.pow; var P = global.Math.cos; var Q = global.Math.sin; var R = global.Math.tan; var S = global.Math.acos; var T = global.Math.asin; var U = global.Math.atan; var V = global.Math.atan2; var W = global.Math.exp; var X = global.Math.log; var Y = global.Math.ceil; var Z = global.Math.imul; var _ = global.Math.min; var $ = global.Math.clz32; var aa = env.abort; var ba = env.assert; var ca = env._sysconf; var da = env._pthread_self; var ea = env._abort; var fa = env.___setErrNo; var ga = env._sbrk; var ha = env._time; var ia = env._emscripten_set_main_loop_timing; var ja = env._emscripten_memcpy_big; var ka = env._emscripten_set_main_loop; var la = 0.0; // EMSCRIPTEN_START_FUNCS function ma(a) { a = a | 0; var b = 0; b = i; i = i + a | 0; i = i + 15 & -16; return b | 0 } function na() { return i | 0 } function oa(a) { a = a | 0; i = a; } function pa(a, b) { a = a | 0; b = b | 0; i = a; j = b; } function qa(a, b) { a = a | 0; b = b | 0; if (!m) { m = a; n = b; } } function ra(b) { b = b | 0; a[k >> 0] = a[b >> 0]; a[k + 1 >> 0] = a[b + 1 >> 0]; a[k + 2 >> 0] = a[b + 2 >> 0]; a[k + 3 >> 0] = a[b + 3 >> 0]; } function sa(b) { b = b | 0; a[k >> 0] = a[b >> 0]; a[k + 1 >> 0] = a[b + 1 >> 0]; a[k + 2 >> 0] = a[b + 2 >> 0]; a[k + 3 >> 0] = a[b + 3 >> 0]; a[k + 4 >> 0] = a[b + 4 >> 0]; a[k + 5 >> 0] = a[b + 5 >> 0]; a[k + 6 >> 0] = a[b + 6 >> 0]; a[k + 7 >> 0] = a[b + 7 >> 0]; } function ta(a) { a = a | 0; B = a; } function ua() { return B | 0 } function va() { var a = 0, b = 0; b = i; i = i + 16 | 0; a = b; c[a >> 2] = 0; Db(a, 31756) | 0; i = b; return c[a >> 2] | 0 } function wa(a) { a = a | 0; var b = 0, d = 0; b = i; i = i + 16 | 0; d = b; c[d >> 2] = a; Eb(d); i = b; return } function xa(a, b, c, e) { a = a | 0; b = b | 0; c = c | 0; e = e | 0; Ea(a, (e | 0) == 0 ? (d[b >> 0] | 0) >>> 3 & 15 : 15, b + 1 | 0, c, 2) | 0; return } function ya(a) { a = a | 0; var b = 0; b = Je(8) | 0; Hb(b, b + 4 | 0, a) | 0; return b | 0 } function za(a) { a = a | 0; Ib(a, a + 4 | 0); Ke(a); return } function Aa(b, e, f, g, h) { b = b | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var j = 0; h = i; i = i + 16 | 0; j = h; c[j >> 2] = e; f = (Jb(c[b >> 2] | 0, c[b + 4 >> 2] | 0, e, f, g, j, 3) | 0) << 16 >> 16; a[g >> 0] = d[g >> 0] | 0 | 4; i = h; return f | 0 } function Ba(a) { a = a | 0; if (!a) a = -1; else { b[a >> 1] = 4096; a = 0; } return a | 0 } function Ca(a, d, e, f, g, h) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0; m = c[h >> 2] | 0; q = g << 16 >> 16 > 0; if (q) { i = 0; j = 0; do { l = b[e + (i << 1) >> 1] | 0; l = Z(l, l) | 0; if ((l | 0) != 1073741824) { k = (l << 1) + j | 0; if ((l ^ j | 0) > 0 & (k ^ j | 0) < 0) { c[h >> 2] = 1; j = (j >>> 31) + 2147483647 | 0; } else j = k; } else { c[h >> 2] = 1; j = 2147483647; } i = i + 1 | 0; } while ((i & 65535) << 16 >> 16 != g << 16 >> 16); if ((j | 0) == 2147483647) { c[h >> 2] = m; l = 0; k = 0; do { j = b[e + (l << 1) >> 1] >> 2; j = Z(j, j) | 0; if ((j | 0) != 1073741824) { i = (j << 1) + k | 0; if ((j ^ k | 0) > 0 & (i ^ k | 0) < 0) { c[h >> 2] = 1; k = (k >>> 31) + 2147483647 | 0; } else k = i; } else { c[h >> 2] = 1; k = 2147483647; } l = l + 1 | 0; } while ((l & 65535) << 16 >> 16 != g << 16 >> 16) } else p = 8; } else { j = 0; p = 8; } if ((p | 0) == 8) k = j >> 4; if (!k) { b[a >> 1] = 0; return } o = ((pe(k) | 0) & 65535) + 65535 | 0; j = o << 16 >> 16; if ((o & 65535) << 16 >> 16 > 0) { i = k << j; if ((i >> j | 0) == (k | 0)) k = i; else k = k >> 31 ^ 2147483647; } else { j = 0 - j << 16; if ((j | 0) < 2031616) k = k >> (j >> 16); else k = 0; } n = Ce(k, h) | 0; i = c[h >> 2] | 0; if (q) { j = 0; k = 0; do { m = b[d + (j << 1) >> 1] | 0; m = Z(m, m) | 0; if ((m | 0) != 1073741824) { l = (m << 1) + k | 0; if ((m ^ k | 0) > 0 & (l ^ k | 0) < 0) { c[h >> 2] = 1; k = (k >>> 31) + 2147483647 | 0; } else k = l; } else { c[h >> 2] = 1; k = 2147483647; } j = j + 1 | 0; } while ((j & 65535) << 16 >> 16 != g << 16 >> 16); if ((k | 0) == 2147483647) { c[h >> 2] = i; m = 0; k = 0; do { l = b[d + (m << 1) >> 1] >> 2; l = Z(l, l) | 0; if ((l | 0) != 1073741824) { j = (l << 1) + k | 0; if ((l ^ k | 0) > 0 & (j ^ k | 0) < 0) { c[h >> 2] = 1; k = (k >>> 31) + 2147483647 | 0; } else k = j; } else { c[h >> 2] = 1; k = 2147483647; } m = m + 1 | 0; } while ((m & 65535) << 16 >> 16 != g << 16 >> 16) } else p = 29; } else { k = 0; p = 29; } if ((p | 0) == 29) k = k >> 4; if (!k) l = 0; else { j = (pe(k) | 0) << 16 >> 16; i = o - j | 0; l = i & 65535; k = (Td(n, Ce(k << j, h) | 0) | 0) << 16 >> 16; j = k << 7; i = i << 16 >> 16; if (l << 16 >> 16 > 0) i = l << 16 >> 16 < 31 ? j >> i : 0; else { p = 0 - i << 16 >> 16; i = j << p; i = (i >> p | 0) == (j | 0) ? i : k >> 24 ^ 2147483647; } l = (Z(((ce(i, h) | 0) << 9) + 32768 >> 16, 32767 - (f & 65535) << 16 >> 16) | 0) >>> 15 << 16 >> 16; } i = b[a >> 1] | 0; if (q) { k = f << 16 >> 16; j = 0; while (1) { f = ((Z(i << 16 >> 16, k) | 0) >>> 15 & 65535) + l | 0; i = f & 65535; b[e >> 1] = (Z(b[e >> 1] | 0, f << 16 >> 16) | 0) >>> 12; j = j + 1 << 16 >> 16; if (j << 16 >> 16 >= g << 16 >> 16) break; else e = e + 2 | 0; } } b[a >> 1] = i; return } function Da(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; i = c[f >> 2] | 0; g = e << 16 >> 16 > 0; if (g) { j = 0; h = 0; do { l = b[d + (j << 1) >> 1] | 0; l = Z(l, l) | 0; if ((l | 0) != 1073741824) { k = (l << 1) + h | 0; if ((l ^ h | 0) > 0 & (k ^ h | 0) < 0) { c[f >> 2] = 1; h = (h >>> 31) + 2147483647 | 0; } else h = k; } else { c[f >> 2] = 1; h = 2147483647; } j = j + 1 | 0; } while ((j & 65535) << 16 >> 16 != e << 16 >> 16); if ((h | 0) == 2147483647) { c[f >> 2] = i; l = 0; i = 0; do { k = b[d + (l << 1) >> 1] >> 2; k = Z(k, k) | 0; if ((k | 0) != 1073741824) { j = (k << 1) + i | 0; if ((k ^ i | 0) > 0 & (j ^ i | 0) < 0) { c[f >> 2] = 1; i = (i >>> 31) + 2147483647 | 0; } else i = j; } else { c[f >> 2] = 1; i = 2147483647; } l = l + 1 | 0; } while ((l & 65535) << 16 >> 16 != e << 16 >> 16) } else o = 8; } else { h = 0; o = 8; } if ((o | 0) == 8) i = h >> 4; if (!i) return; n = ((pe(i) | 0) & 65535) + 65535 | 0; k = n << 16 >> 16; if ((n & 65535) << 16 >> 16 > 0) { j = i << k; if ((j >> k | 0) == (i | 0)) i = j; else i = i >> 31 ^ 2147483647; } else { k = 0 - k << 16; if ((k | 0) < 2031616) i = i >> (k >> 16); else i = 0; } m = Ce(i, f) | 0; i = c[f >> 2] | 0; if (g) { j = 0; h = 0; do { l = b[a + (j << 1) >> 1] | 0; l = Z(l, l) | 0; if ((l | 0) != 1073741824) { k = (l << 1) + h | 0; if ((l ^ h | 0) > 0 & (k ^ h | 0) < 0) { c[f >> 2] = 1; h = (h >>> 31) + 2147483647 | 0; } else h = k; } else { c[f >> 2] = 1; h = 2147483647; } j = j + 1 | 0; } while ((j & 65535) << 16 >> 16 != e << 16 >> 16); if ((h | 0) == 2147483647) { c[f >> 2] = i; i = 0; j = 0; do { l = b[a + (i << 1) >> 1] >> 2; l = Z(l, l) | 0; if ((l | 0) != 1073741824) { k = (l << 1) + j | 0; if ((l ^ j | 0) > 0 & (k ^ j | 0) < 0) { c[f >> 2] = 1; j = (j >>> 31) + 2147483647 | 0; } else j = k; } else { c[f >> 2] = 1; j = 2147483647; } i = i + 1 | 0; } while ((i & 65535) << 16 >> 16 != e << 16 >> 16) } else o = 28; } else { h = 0; o = 28; } if ((o | 0) == 28) j = h >> 4; if (!j) g = 0; else { l = pe(j) | 0; k = l << 16 >> 16; if (l << 16 >> 16 > 0) { i = j << k; if ((i >> k | 0) == (j | 0)) j = i; else j = j >> 31 ^ 2147483647; } else { k = 0 - k << 16; if ((k | 0) < 2031616) j = j >> (k >> 16); else j = 0; } i = n - (l & 65535) | 0; k = i & 65535; h = (Td(m, Ce(j, f) | 0) | 0) << 16 >> 16; g = h << 7; i = i << 16 >> 16; if (k << 16 >> 16 > 0) g = k << 16 >> 16 < 31 ? g >> i : 0; else { n = 0 - i << 16 >> 16; a = g << n; g = (a >> n | 0) == (g | 0) ? a : h >> 24 ^ 2147483647; } g = ce(g, f) | 0; if ((g | 0) > 4194303) g = 2147483647; else g = (g | 0) < -4194304 ? -2147483648 : g << 9; g = Ce(g, f) | 0; } h = (e & 65535) + 65535 & 65535; if (h << 16 >> 16 <= -1) return; l = g << 16 >> 16; k = e + -1 << 16 >> 16 << 16 >> 16; while (1) { i = d + (k << 1) | 0; g = Z(b[i >> 1] | 0, l) | 0; do if ((g | 0) != 1073741824) { j = g << 1; if ((j | 0) <= 268435455) if ((j | 0) < -268435456) { b[i >> 1] = -32768; break } else { b[i >> 1] = g >>> 12; break } else o = 52; } else { c[f >> 2] = 1; o = 52; } while (0); if ((o | 0) == 52) { o = 0; b[i >> 1] = 32767; } h = h + -1 << 16 >> 16; if (h << 16 >> 16 <= -1) break; else k = k + -1 | 0; } return } function Ea(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, j = 0, k = 0, l = 0; l = i; i = i + 496 | 0; k = l; j = (g | 0) == 2; do if (!(j & 1 | (g | 0) == 4)) { if (g) { a = -1; i = l; return a | 0 } j = b[e >> 1] | 0; d = e + 490 | 0; g = e + 2 | 0; h = 0; while (1) { b[k + (h << 1) >> 1] = b[g >> 1] | 0; h = h + 1 | 0; if ((h | 0) == 244) break; else g = g + 2 | 0; } h = j << 16 >> 16; if (j << 16 >> 16 == 7) { g = 492; d = c[a + 1760 >> 2] | 0; break } else { g = 492; d = b[d >> 1] | 0; break } } else { h = a + 1168 | 0; if (j) { Gb(d, e, k, h); h = 604; } else { pb(d, e, k, h); h = 3436; } g = b[h + (d << 1) >> 1] | 0; do if (d >>> 0 >= 8) { if ((d | 0) == 8) { d = b[k + 76 >> 1] << 2 | (b[k + 74 >> 1] << 1 | b[k + 72 >> 1]); h = (b[k + 70 >> 1] | 0) == 0 ? 4 : 5; break } if (d >>> 0 < 15) { a = -1; i = l; return a | 0 } else { d = c[a + 1760 >> 2] | 0; h = 7; break } } else h = 0; while (0); if (g << 16 >> 16 == -1) { a = -1; i = l; return a | 0 } } while (0); Fb(a, d, k, h, f); c[a + 1760 >> 2] = d; a = g; i = l; return a | 0 } function Fa(a, d, f) { a = a | 0; d = d | 0; f = f | 0; var g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; t = i; i = i + 48 | 0; r = t + 20 | 0; s = t; h = r; g = h + 20 | 0; do { b[h >> 1] = b[a >> 1] | 0; h = h + 2 | 0; a = a + 2 | 0; } while ((h | 0) < (g | 0)); a = b[r + 18 >> 1] | 0; q = (a & 65535) - ((a & 65535) >>> 15 & 65535) | 0; a:do if (((q << 16 >> 31 ^ q) & 65535) << 16 >> 16 <= 4095) { g = 9; q = 9; while (1) { a = a << 16 >> 16; a = (a << 19 >> 19 | 0) == (a | 0) ? a << 3 : a >>> 15 ^ 32767; p = d + (g << 1) | 0; b[p >> 1] = a; a = a << 16 >> 16; a = Z(a, a) | 0; if ((a | 0) == 1073741824) { c[f >> 2] = 1; h = 2147483647; } else h = a << 1; a = 2147483647 - h | 0; if ((a & h | 0) < 0) { c[f >> 2] = 1; a = 2147483647; } n = pe(a) | 0; o = 15 - (n & 65535) & 65535; j = n << 16 >> 16; if (n << 16 >> 16 > 0) { h = a << j; if ((h >> j | 0) != (a | 0)) h = a >> 31 ^ 2147483647; } else { h = 0 - j << 16; if ((h | 0) < 2031616) h = a >> (h >> 16); else h = 0; } h = Td(16384, Ce(h, f) | 0) | 0; do if (q << 16 >> 16 > 0) { n = g + -1 | 0; k = h << 16 >> 16; l = q << 16 >> 16; m = 0; while (1) { g = e[r + (m << 1) >> 1] | 0; a = g << 16; j = Z(b[r + (n - m << 1) >> 1] | 0, b[p >> 1] | 0) | 0; if ((j | 0) == 1073741824) { c[f >> 2] = 1; h = 2147483647; } else h = j << 1; j = a - h | 0; if (((j ^ a) & (h ^ a) | 0) < 0) { c[f >> 2] = 1; j = (g >>> 15) + 2147483647 | 0; } j = Z((Ce(j, f) | 0) << 16 >> 16, k) | 0; if ((j | 0) == 1073741824) { c[f >> 2] = 1; j = 2147483647; } else j = j << 1; j = ge(j, o, f) | 0; h = j - (j >>> 31) | 0; if ((h >> 31 ^ h | 0) > 32767) { j = 24; break } b[s + (m << 1) >> 1] = j; m = m + 1 | 0; if ((l | 0) <= (m | 0)) { j = 26; break } } if ((j | 0) == 24) { j = 0; h = d; g = h + 20 | 0; do { b[h >> 1] = 0; h = h + 2 | 0; } while ((h | 0) < (g | 0)); a = 10; } else if ((j | 0) == 26) { j = 0; if (q << 16 >> 16 > 0) a = q; else { j = 28; break } } h = a + -1 << 16 >> 16; Oe(r | 0, s | 0, ((h & 65535) << 1) + 2 | 0) | 0; g = h << 16 >> 16; } else j = 28; while (0); if ((j | 0) == 28) { a = q + -1 << 16 >> 16; if (a << 16 >> 16 > -1) { g = a << 16 >> 16; h = 32767; } else break } a = b[r + (g << 1) >> 1] | 0; q = (a & 65535) - ((a & 65535) >>> 15 & 65535) | 0; if (((q << 16 >> 31 ^ q) & 65535) << 16 >> 16 > 4095) break a; else q = h; } i = t; return } while (0); h = d; g = h + 20 | 0; do { b[h >> 1] = 0; h = h + 2 | 0; } while ((h | 0) < (g | 0)); i = t; return } function Ga(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; if (b << 16 >> 16 <= 0) { a = 0; return a | 0 } e = c[a >> 2] | 0; f = 0; d = 0; do { h = e & 1; d = h | d << 1 & 131070; g = e >> 1; e = (h | 0) == (e >>> 28 & 1 | 0) ? g : g | 1073741824; f = f + 1 << 16 >> 16; } while (f << 16 >> 16 < b << 16 >> 16); c[a >> 2] = e; h = d & 65535; return h | 0 } function Ha(a, d, e) { a = a | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; g = d; f = g + 80 | 0; do { b[g >> 1] = 0; g = g + 2 | 0; } while ((g | 0) < (f | 0)); f = 0; g = c[a >> 2] | 0; do { k = g & 1; j = g >> 1; j = (k | 0) == (g >>> 28 & 1 | 0) ? j : j | 1073741824; h = j & 1; i = j >> 1; c[a >> 2] = (h | 0) == (j >>> 28 & 1 | 0) ? i : i | 1073741824; h = Rd((Z(k << 1 | h, 1310720) | 0) >>> 17 & 65535, f, e) | 0; k = c[a >> 2] | 0; i = k & 1; j = k >> 1; g = (i | 0) == (k >>> 28 & 1 | 0) ? j : j | 1073741824; c[a >> 2] = g; b[d + (h << 16 >> 16 << 1) >> 1] = ((i & 65535) << 13 & 65535) + -4096 << 16 >> 16; f = f + 1 << 16 >> 16; } while (f << 16 >> 16 < 10); return } function Ia(a, d, f, g, h, i) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0; j = b[a >> 1] | 0; if ((j * 31821 | 0) == 1073741824) { c[i >> 2] = 1; k = 1073741823; } else k = j * 63642 >> 1; j = k + 13849 | 0; if ((k | 0) > -1 & (j ^ k | 0) < 0) { c[i >> 2] = 1; j = (k >>> 31) + 2147483647 | 0; } b[a >> 1] = j; if (d << 16 >> 16 <= 0) return; k = 0; j = h + ((j & 127) << 1) | 0; while (1) { b[g + (k << 1) >> 1] = (-65536 << b[f + (k << 1) >> 1] >>> 16 ^ 65535) & e[j >> 1]; k = k + 1 | 0; if ((k & 65535) << 16 >> 16 == d << 16 >> 16) break; else j = j + 2 | 0; } return } function Ja(a) { a = a | 0; var c = 0; if (!a) { c = -1; return c | 0 } c = a + 122 | 0; do { b[a >> 1] = 0; a = a + 2 | 0; } while ((a | 0) < (c | 0)); c = 0; return c | 0 } function Ka(a, d, f, g, h) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; k = 159; j = 0; while (1) { m = b[f + (k << 1) >> 1] | 0; m = Z(m, m) | 0; m = (m | 0) == 1073741824 ? 2147483647 : m << 1; i = m + j | 0; if ((m ^ j | 0) > -1 & (i ^ j | 0) < 0) { c[h >> 2] = 1; j = (j >>> 31) + 2147483647 | 0; } else j = i; if ((k | 0) > 0) k = k + -1 | 0; else { k = j; break } } h = k >>> 14 & 65535; j = 32767; i = 59; while (1) { m = b[a + (i << 1) >> 1] | 0; j = m << 16 >> 16 < j << 16 >> 16 ? m : j; if ((i | 0) > 0) i = i + -1 | 0; else break } m = (k | 0) > 536870911 ? 32767 : h; h = j << 16 >> 16; i = h << 20 >> 16; k = j << 16 >> 16 > 0 ? 32767 : -32768; f = 55; j = b[a >> 1] | 0; while (1) { l = b[a + (f << 1) >> 1] | 0; j = j << 16 >> 16 < l << 16 >> 16 ? l : j; if ((f | 0) > 1) f = f + -1 | 0; else break } f = b[a + 80 >> 1] | 0; l = b[a + 82 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 84 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 86 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 88 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 90 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 92 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 94 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 96 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 98 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 100 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 102 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 104 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 106 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 108 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 110 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 112 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 114 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = b[a + 116 >> 1] | 0; f = f << 16 >> 16 < l << 16 >> 16 ? l : f; l = a + 118 | 0; o = b[l >> 1] | 0; do if ((m + -21 & 65535) < 17557 & j << 16 >> 16 > 20 ? ((m << 16 >> 16 | 0) < (((h << 4 | 0) == (i | 0) ? i : k) | 0) ? 1 : (f << 16 >> 16 < o << 16 >> 16 ? o : f) << 16 >> 16 < 1953) : 0) { j = a + 120 | 0; i = b[j >> 1] | 0; if (i << 16 >> 16 > 29) { b[j >> 1] = 30; f = j; k = 1; break } else { k = (i & 65535) + 1 & 65535; b[j >> 1] = k; f = j; k = k << 16 >> 16 > 1 & 1; break } } else n = 14; while (0); if ((n | 0) == 14) { f = a + 120 | 0; b[f >> 1] = 0; k = 0; } j = 0; do { o = j; j = j + 1 | 0; b[a + (o << 1) >> 1] = b[a + (j << 1) >> 1] | 0; } while ((j | 0) != 59); b[l >> 1] = m; j = b[f >> 1] | 0; j = j << 16 >> 16 > 15 ? 16383 : j << 16 >> 16 > 8 ? 15565 : 13926; i = Zd(d + 8 | 0, 5) | 0; if ((b[f >> 1] | 0) > 20) { if (((Zd(d, 9) | 0) << 16 >> 16 | 0) > (j | 0)) n = 20; } else if ((i << 16 >> 16 | 0) > (j | 0)) n = 20; if ((n | 0) == 20) { b[g >> 1] = 0; return k | 0 } i = (e[g >> 1] | 0) + 1 & 65535; if (i << 16 >> 16 > 10) { b[g >> 1] = 10; return k | 0 } else { b[g >> 1] = i; return k | 0 } return 0 } function La(a) { a = a | 0; var c = 0; if (!a) { c = -1; return c | 0 } c = a + 18 | 0; do { b[a >> 1] = 0; a = a + 2 | 0; } while ((a | 0) < (c | 0)); c = 0; return c | 0 } function Ma(a, d, f, g, h, i, j, k, l, m, n, o) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; var p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; y = a + 2 | 0; b[a >> 1] = b[y >> 1] | 0; z = a + 4 | 0; b[y >> 1] = b[z >> 1] | 0; A = a + 6 | 0; b[z >> 1] = b[A >> 1] | 0; B = a + 8 | 0; b[A >> 1] = b[B >> 1] | 0; C = a + 10 | 0; b[B >> 1] = b[C >> 1] | 0; D = a + 12 | 0; b[C >> 1] = b[D >> 1] | 0; b[D >> 1] = f; t = 0; x = 0; do { p = h + (x << 1) | 0; r = Ge(b[p >> 1] | 0, b[g + (x << 1) >> 1] | 0, o) | 0; r = (r & 65535) - ((r & 65535) >>> 15 & 65535) | 0; r = r << 16 >> 31 ^ r; w = ((qe(r & 65535) | 0) & 65535) + 65535 | 0; q = w << 16 >> 16; if ((w & 65535) << 16 >> 16 < 0) { s = 0 - q << 16; if ((s | 0) < 983040) u = r << 16 >> 16 >> (s >> 16) & 65535; else u = 0; } else { s = r << 16 >> 16; r = s << q; if ((r << 16 >> 16 >> q | 0) == (s | 0)) u = r & 65535; else u = (s >>> 15 ^ 32767) & 65535; } v = qe(b[p >> 1] | 0) | 0; r = b[p >> 1] | 0; q = v << 16 >> 16; if (v << 16 >> 16 < 0) { s = 0 - q << 16; if ((s | 0) < 983040) s = r << 16 >> 16 >> (s >> 16) & 65535; else s = 0; } else { s = r << 16 >> 16; r = s << q; if ((r << 16 >> 16 >> q | 0) == (s | 0)) s = r & 65535; else s = (s >>> 15 ^ 32767) & 65535; } q = Td(u, s) | 0; s = (w & 65535) + 2 - (v & 65535) | 0; r = s & 65535; do if (s & 32768) { if (r << 16 >> 16 != -32768) { w = 0 - s | 0; s = w << 16 >> 16; if ((w & 65535) << 16 >> 16 < 0) { s = 0 - s << 16; if ((s | 0) >= 983040) { s = 0; break } s = q << 16 >> 16 >> (s >> 16) & 65535; break } } else s = 32767; r = q << 16 >> 16; q = r << s; if ((q << 16 >> 16 >> s | 0) == (r | 0)) s = q & 65535; else s = (r >>> 15 ^ 32767) & 65535; } else s = De(q, r, o) | 0; while (0); t = Rd(t, s, o) | 0; x = x + 1 | 0; } while ((x | 0) != 10); s = t & 65535; r = t << 16 >> 16 > 5325; t = a + 14 | 0; if (r) { h = (e[t >> 1] | 0) + 1 & 65535; b[t >> 1] = h; if (h << 16 >> 16 > 10) b[a + 16 >> 1] = 0; } else b[t >> 1] = 0; switch (d | 0) { case 0: case 1: case 2: case 3: case 6: break; default: { D = a + 16 | 0; o = f; f = b[D >> 1] | 0; f = f & 65535; f = f + 1 | 0; f = f & 65535; b[D >> 1] = f; return o | 0 } } u = (j | i) << 16 >> 16 == 0; v = m << 16 >> 16 == 0; w = d >>> 0 < 3; t = s + (w & ((v | (u & (k << 16 >> 16 == 0 | l << 16 >> 16 == 0) | n << 16 >> 16 < 2)) ^ 1) ? 61030 : 62259) & 65535; t = t << 16 >> 16 > 0 ? t : 0; if (t << 16 >> 16 <= 2048) { t = t << 16 >> 16; if ((t << 18 >> 18 | 0) == (t | 0)) l = t << 2; else l = t >>> 15 ^ 32767; } else l = 8192; k = a + 16 | 0; n = r | (b[k >> 1] | 0) < 40; t = b[z >> 1] | 0; if ((t * 6554 | 0) == 1073741824) { c[o >> 2] = 1; r = 2147483647; } else r = t * 13108 | 0; t = b[A >> 1] | 0; s = t * 6554 | 0; if ((s | 0) != 1073741824) { t = (t * 13108 | 0) + r | 0; if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) { c[o >> 2] = 1; t = (r >>> 31) + 2147483647 | 0; } } else { c[o >> 2] = 1; t = 2147483647; } s = b[B >> 1] | 0; r = s * 6554 | 0; if ((r | 0) != 1073741824) { s = (s * 13108 | 0) + t | 0; if ((r ^ t | 0) > 0 & (s ^ t | 0) < 0) { c[o >> 2] = 1; s = (t >>> 31) + 2147483647 | 0; } } else { c[o >> 2] = 1; s = 2147483647; } t = b[C >> 1] | 0; r = t * 6554 | 0; if ((r | 0) != 1073741824) { t = (t * 13108 | 0) + s | 0; if ((r ^ s | 0) > 0 & (t ^ s | 0) < 0) { c[o >> 2] = 1; r = (s >>> 31) + 2147483647 | 0; } else r = t; } else { c[o >> 2] = 1; r = 2147483647; } t = b[D >> 1] | 0; s = t * 6554 | 0; if ((s | 0) != 1073741824) { t = (t * 13108 | 0) + r | 0; if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) { c[o >> 2] = 1; t = (r >>> 31) + 2147483647 | 0; } } else { c[o >> 2] = 1; t = 2147483647; } r = Ce(t, o) | 0; if (w & ((u | v) ^ 1)) { t = b[a >> 1] | 0; if ((t * 4681 | 0) == 1073741824) { c[o >> 2] = 1; r = 2147483647; } else r = t * 9362 | 0; t = b[y >> 1] | 0; s = t * 4681 | 0; if ((s | 0) != 1073741824) { t = (t * 9362 | 0) + r | 0; if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) { c[o >> 2] = 1; r = (r >>> 31) + 2147483647 | 0; } else r = t; } else { c[o >> 2] = 1; r = 2147483647; } t = b[z >> 1] | 0; s = t * 4681 | 0; if ((s | 0) != 1073741824) { t = (t * 9362 | 0) + r | 0; if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) { c[o >> 2] = 1; r = (r >>> 31) + 2147483647 | 0; } else r = t; } else { c[o >> 2] = 1; r = 2147483647; } t = b[A >> 1] | 0; s = t * 4681 | 0; if ((s | 0) != 1073741824) { t = (t * 9362 | 0) + r | 0; if ((s ^ r | 0) > 0 & (t ^ r | 0) < 0) { c[o >> 2] = 1; t = (r >>> 31) + 2147483647 | 0; } } else { c[o >> 2] = 1; t = 2147483647; } s = b[B >> 1] | 0; r = s * 4681 | 0; if ((r | 0) != 1073741824) { s = (s * 9362 | 0) + t | 0; if ((r ^ t | 0) > 0 & (s ^ t | 0) < 0) { c[o >> 2] = 1; t = (t >>> 31) + 2147483647 | 0; } else t = s; } else { c[o >> 2] = 1; t = 2147483647; } s = b[C >> 1] | 0; r = s * 4681 | 0; if ((r | 0) != 1073741824) { s = (s * 9362 | 0) + t | 0; if ((r ^ t | 0) > 0 & (s ^ t | 0) < 0) { c[o >> 2] = 1; s = (t >>> 31) + 2147483647 | 0; } } else { c[o >> 2] = 1; s = 2147483647; } r = b[D >> 1] | 0; p = r * 4681 | 0; if ((p | 0) != 1073741824) { q = (r * 9362 | 0) + s | 0; if ((p ^ s | 0) > 0 & (q ^ s | 0) < 0) { c[o >> 2] = 1; q = (s >>> 31) + 2147483647 | 0; } } else { c[o >> 2] = 1; q = 2147483647; } r = Ce(q, o) | 0; } t = n ? 8192 : l << 16 >> 16; p = Z(t, f << 16 >> 16) | 0; if ((p | 0) == 1073741824) { c[o >> 2] = 1; s = 2147483647; } else s = p << 1; r = r << 16 >> 16; q = r << 13; if ((q | 0) != 1073741824) { p = s + (r << 14) | 0; if ((s ^ q | 0) > 0 & (p ^ s | 0) < 0) { c[o >> 2] = 1; s = (s >>> 31) + 2147483647 | 0; } else s = p; } else { c[o >> 2] = 1; s = 2147483647; } p = Z(r, t) | 0; if ((p | 0) == 1073741824) { c[o >> 2] = 1; q = 2147483647; } else q = p << 1; p = s - q | 0; if (((p ^ s) & (q ^ s) | 0) < 0) { c[o >> 2] = 1; p = (s >>> 31) + 2147483647 | 0; } D = p << 2; f = k; o = Ce((D >> 2 | 0) == (p | 0) ? D : p >> 31 ^ 2147483647, o) | 0; D = b[f >> 1] | 0; D = D & 65535; D = D + 1 | 0; D = D & 65535; b[f >> 1] = D; return o | 0 } function Na(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0; f = c; g = f + 80 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (g | 0)); f = 0; do { i = b[a + (f << 1) >> 1] | 0; g = ((i & 8) << 10 & 65535 ^ 8192) + -4096 << 16 >> 16; h = f << 16; i = ((b[d + ((i & 7) << 1) >> 1] | 0) * 327680 | 0) + h >> 16; b[c + (i << 1) >> 1] = g; h = ((b[d + ((e[a + (f + 5 << 1) >> 1] & 7) << 1) >> 1] | 0) * 327680 | 0) + h >> 16; if ((h | 0) < (i | 0)) g = 0 - (g & 65535) & 65535; i = c + (h << 1) | 0; b[i >> 1] = (e[i >> 1] | 0) + (g & 65535); f = f + 1 | 0; } while ((f | 0) != 5); return } function Oa(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0; f = c << 16 >> 16; e = (f << 1 & 2 | 1) + ((f >>> 1 & 7) * 5 | 0) | 0; c = f >>> 4 & 3; c = ((f >>> 6 & 7) * 5 | 0) + ((c | 0) == 3 ? 4 : c) | 0; f = d; g = f + 80 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (g | 0)); a = a << 16 >> 16; b[d + (e << 1) >> 1] = (0 - (a & 1) & 16383) + 57344; b[d + (c << 1) >> 1] = (0 - (a >>> 1 & 1) & 16383) + 57344; return } function Pa(a, c, d, f, g, h) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0; h = d << 16 >> 16; j = h >>> 3; a = a << 16 >> 16; a = ((a << 17 >> 17 | 0) == (a | 0) ? a << 1 : a >>> 15 ^ 32767) + (j & 8) << 16; j = (e[f + (a + 65536 >> 16 << 1) >> 1] | 0) + ((j & 7) * 5 | 0) | 0; d = c << 16 >> 16; i = (0 - (d & 1) & 16383) + 57344 & 65535; a = g + ((e[f + (a >> 16 << 1) >> 1] | 0) + ((h & 7) * 5 | 0) << 16 >> 16 << 1) | 0; c = g; h = c + 80 | 0; do { b[c >> 1] = 0; c = c + 2 | 0; } while ((c | 0) < (h | 0)); b[a >> 1] = i; b[g + (j << 16 >> 16 << 1) >> 1] = (0 - (d >>> 1 & 1) & 16383) + 57344; return } function Qa(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; c = c << 16 >> 16; e = (c & 7) * 5 | 0; f = (c >>> 2 & 2 | 1) + ((c >>> 4 & 7) * 5 | 0) | 0; c = (c >>> 6 & 2) + 2 + ((c >>> 8 & 7) * 5 | 0) | 0; g = d; h = g + 80 | 0; do { b[g >> 1] = 0; g = g + 2 | 0; } while ((g | 0) < (h | 0)); a = a << 16 >> 16; b[d + (e << 1) >> 1] = (0 - (a & 1) & 16383) + 57344; b[d + (f << 1) >> 1] = (0 - (a >>> 1 & 1) & 16383) + 57344; b[d + (c << 1) >> 1] = (0 - (a >>> 2 & 1) & 16383) + 57344; return } function Ra(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; c = c << 16 >> 16; h = b[d + ((c & 7) << 1) >> 1] | 0; i = b[d + ((c >>> 3 & 7) << 1) >> 1] | 0; g = b[d + ((c >>> 6 & 7) << 1) >> 1] | 0; d = (c >>> 9 & 1) + 3 + ((b[d + ((c >>> 10 & 7) << 1) >> 1] | 0) * 5 | 0) | 0; c = e; f = c + 80 | 0; do { b[c >> 1] = 0; c = c + 2 | 0; } while ((c | 0) < (f | 0)); a = a << 16 >> 16; b[e + (h * 327680 >> 16 << 1) >> 1] = (0 - (a & 1) & 16383) + 57344; b[e + ((i * 327680 | 0) + 65536 >> 16 << 1) >> 1] = (0 - (a >>> 1 & 1) & 16383) + 57344; b[e + ((g * 327680 | 0) + 131072 >> 16 << 1) >> 1] = (0 - (a >>> 2 & 1) & 16383) + 57344; b[e + (d << 16 >> 16 << 1) >> 1] = (0 - (a >>> 3 & 1) & 16383) + 57344; return } function Sa(a, d, f) { a = a | 0; d = d | 0; f = f | 0; var g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0; q = i; i = i + 32 | 0; p = q + 16 | 0; o = q; j = d; h = j + 80 | 0; do { b[j >> 1] = 0; j = j + 2 | 0; } while ((j | 0) < (h | 0)); h = b[a >> 1] | 0; b[p >> 1] = h; b[p + 2 >> 1] = b[a + 2 >> 1] | 0; b[p + 4 >> 1] = b[a + 4 >> 1] | 0; b[p + 6 >> 1] = b[a + 6 >> 1] | 0; m = b[a + 8 >> 1] | 0; Ta(m >>> 3 & 65535, m & 7, 0, 4, 1, o, f); m = b[a + 10 >> 1] | 0; Ta(m >>> 3 & 65535, m & 7, 2, 6, 5, o, f); m = b[a + 12 >> 1] | 0; g = m >> 2; do if ((g * 25 | 0) != 1073741824) { j = (Z(g, 1638400) | 0) + 786432 >> 21; g = j * 6554 >> 15; if ((g | 0) > 32767) { c[f >> 2] = 1; k = 1; l = 1; a = 163835; n = 6; break } a = (g << 16 >> 16) * 5 | 0; k = g & 1; if ((a | 0) == 1073741824) { c[f >> 2] = 1; l = 0; a = 65535; } else { l = 0; n = 6; } } else { c[f >> 2] = 1; k = 0; g = 0; l = 0; j = 0; a = 0; n = 6; } while (0); if ((n | 0) == 6) a = a & 65535; n = j - a | 0; k = k << 16 >> 16 == 0 ? n : 4 - n | 0; n = k << 16 >> 16; b[o + 6 >> 1] = Rd(((k << 17 >> 17 | 0) == (n | 0) ? k << 1 : n >>> 15 ^ 32767) & 65535, m & 1, f) | 0; if (l) { c[f >> 2] = 1; g = 32767; } n = g << 16 >> 16; b[o + 14 >> 1] = ((g << 17 >> 17 | 0) == (n | 0) ? g << 1 : n >>> 15 ^ 32767) + (m >>> 1 & 1); g = 0; while (1) { h = h << 16 >> 16 == 0 ? 8191 : -8191; n = (b[o + (g << 1) >> 1] << 2) + g << 16; j = n >> 16; if ((n | 0) < 2621440) b[d + (j << 1) >> 1] = h; k = (b[o + (g + 4 << 1) >> 1] << 2) + g << 16; a = k >> 16; if ((a | 0) < (j | 0)) h = 0 - (h & 65535) & 65535; if ((k | 0) < 2621440) { n = d + (a << 1) | 0; b[n >> 1] = (e[n >> 1] | 0) + (h & 65535); } g = g + 1 | 0; if ((g | 0) == 4) break; h = b[p + (g << 1) >> 1] | 0; } i = q; return } function Ta(a, d, e, f, g, h, i) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0; k = a << 16 >> 16 > 124 ? 124 : a; a = (k << 16 >> 16) * 1311 >> 15; p = (a | 0) > 32767; if (!p) { j = a << 16 >> 16; if ((j * 25 | 0) == 1073741824) { c[i >> 2] = 1; j = 1073741823; } else o = 4; } else { c[i >> 2] = 1; j = 32767; o = 4; } if ((o | 0) == 4) j = (j * 50 | 0) >>> 1; m = (k & 65535) - j | 0; j = (m << 16 >> 16) * 6554 >> 15; n = (j | 0) > 32767; if (!n) { k = j << 16 >> 16; if ((k * 5 | 0) == 1073741824) { c[i >> 2] = 1; l = 1073741823; } else o = 9; } else { c[i >> 2] = 1; k = 32767; o = 9; } if ((o | 0) == 9) l = (k * 10 | 0) >>> 1; m = m - l | 0; o = m << 16 >> 16; k = d << 16 >> 16; l = k >> 2; k = k - (l << 2) | 0; b[h + (e << 16 >> 16 << 1) >> 1] = ((m << 17 >> 17 | 0) == (o | 0) ? m << 1 : o >>> 15 ^ 32767) + (k & 1); if (n) { c[i >> 2] = 1; j = 32767; } e = j << 16 >> 16; b[h + (f << 16 >> 16 << 1) >> 1] = ((j << 17 >> 17 | 0) == (e | 0) ? j << 1 : e >>> 15 ^ 32767) + (k << 16 >> 17); if (p) { c[i >> 2] = 1; a = 32767; } f = a << 16 >> 16; b[h + (g << 16 >> 16 << 1) >> 1] = Rd(l & 65535, ((a << 17 >> 17 | 0) == (f | 0) ? a << 1 : f >>> 15 ^ 32767) & 65535, i) | 0; return } function Ua(a) { a = a | 0; var d = 0, e = 0, f = 0, g = 0; if (!a) { g = -1; return g | 0 } Yd(a + 1168 | 0); b[a + 460 >> 1] = 40; c[a + 1164 >> 2] = 0; d = a + 646 | 0; e = a + 1216 | 0; f = a + 462 | 0; g = f + 22 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (g | 0)); db(d, c[e >> 2] | 0) | 0; mb(a + 686 | 0) | 0; ib(a + 700 | 0) | 0; La(a + 608 | 0) | 0; rb(a + 626 | 0, c[e >> 2] | 0) | 0; Ja(a + 484 | 0) | 0; tb(a + 730 | 0) | 0; eb(a + 748 | 0) | 0; Ud(a + 714 | 0) | 0; Va(a, 0) | 0; g = 0; return g | 0 } function Va(a, d) { a = a | 0; d = d | 0; var e = 0, f = 0; if (!a) { a = -1; return a | 0 } c[a + 388 >> 2] = a + 308; Qe(a | 0, 0, 308) | 0; d = (d | 0) != 8; if (d) { e = a + 412 | 0; f = e + 20 | 0; do { b[e >> 1] = 0; e = e + 2 | 0; } while ((e | 0) < (f | 0)); b[a + 392 >> 1] = 3e4; b[a + 394 >> 1] = 26e3; b[a + 396 >> 1] = 21e3; b[a + 398 >> 1] = 15e3; b[a + 400 >> 1] = 8e3; b[a + 402 >> 1] = 0; b[a + 404 >> 1] = -8e3; b[a + 406 >> 1] = -15e3; b[a + 408 >> 1] = -21e3; b[a + 410 >> 1] = -26e3; } b[a + 432 >> 1] = 0; b[a + 434 >> 1] = 40; c[a + 1164 >> 2] = 0; b[a + 436 >> 1] = 0; b[a + 438 >> 1] = 0; b[a + 440 >> 1] = 0; b[a + 460 >> 1] = 40; b[a + 462 >> 1] = 0; b[a + 464 >> 1] = 0; if (d) { e = a + 442 | 0; f = e + 18 | 0; do { b[e >> 1] = 0; e = e + 2 | 0; } while ((e | 0) < (f | 0)); e = a + 466 | 0; f = e + 18 | 0; do { b[e >> 1] = 0; e = e + 2 | 0; } while ((e | 0) < (f | 0)); La(a + 608 | 0) | 0; f = a + 1216 | 0; rb(a + 626 | 0, c[f >> 2] | 0) | 0; db(a + 646 | 0, c[f >> 2] | 0) | 0; mb(a + 686 | 0) | 0; ib(a + 700 | 0) | 0; Ud(a + 714 | 0) | 0; } else { e = a + 466 | 0; f = e + 18 | 0; do { b[e >> 1] = 0; e = e + 2 | 0; } while ((e | 0) < (f | 0)); La(a + 608 | 0) | 0; db(a + 646 | 0, c[a + 1216 >> 2] | 0) | 0; mb(a + 686 | 0) | 0; ib(a + 700 | 0) | 0; } Ja(a + 484 | 0) | 0; b[a + 606 >> 1] = 21845; tb(a + 730 | 0) | 0; if (!d) { a = 0; return a | 0 } eb(a + 748 | 0) | 0; a = 0; return a | 0 } function Wa(d, f, g, h, j, k) { d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ja = 0, La = 0, Ta = 0, Ua = 0, Wa = 0, bb = 0, db = 0, eb = 0, ib = 0, mb = 0, pb = 0, rb = 0, tb = 0, xb = 0, yb = 0, zb = 0, Ab = 0, Bb = 0; Bb = i; i = i + 336 | 0; r = Bb + 236 | 0; q = Bb + 216 | 0; zb = Bb + 112 | 0; yb = Bb + 12 | 0; mb = Bb + 256 | 0; rb = Bb + 136 | 0; pb = Bb + 32 | 0; eb = Bb + 8 | 0; ib = Bb + 6 | 0; xb = Bb + 4 | 0; tb = Bb + 2 | 0; Ab = Bb; Ta = d + 1164 | 0; Ua = d + 748 | 0; Wa = hb(Ua, h, Ta) | 0; if (Wa) { Va(d, 8) | 0; fb(Ua, d + 412 | 0, d + 646 | 0, d + 714 | 0, d + 608 | 0, Wa, f, g, d + 1168 | 0, j, k, Ta); Ab = d + 666 | 0; me(Ab, d + 392 | 0, 10, Ta); sb(d + 626 | 0, Ab, Ta); Ab = d + 1156 | 0; c[Ab >> 2] = Wa; i = Bb; return } switch (h | 0) { case 1: { l = 1; x = 6; break } case 2: case 7: { Ia(d + 606 | 0, b[(c[d + 1256 >> 2] | 0) + (f << 1) >> 1] | 0, c[(c[d + 1260 >> 2] | 0) + (f << 2) >> 2] | 0, g, c[d + 1276 >> 2] | 0, Ta); x = 9; break } case 3: { x = 9; break } default: { l = 0; x = 6; } } do if ((x | 0) == 6) { h = d + 440 | 0; if ((b[h >> 1] | 0) == 6) { b[h >> 1] = 5; Ja = 0; La = 0; break } else { b[h >> 1] = 0; Ja = 0; La = 0; break } } else if ((x | 0) == 9) { h = d + 440 | 0; Ja = (e[h >> 1] | 0) + 1 & 65535; b[h >> 1] = Ja << 16 >> 16 > 6 ? 6 : Ja; Ja = 1; La = 1; l = 0; } while (0); Ea = d + 1156 | 0; switch (c[Ea >> 2] | 0) { case 1: { b[h >> 1] = 5; b[d + 436 >> 1] = 0; break } case 2: { b[h >> 1] = 5; b[d + 436 >> 1] = 1; break } default: { } } n = d + 646 | 0; Fa = d + 666 | 0; m = zb; o = Fa; p = m + 20 | 0; do { a[m >> 0] = a[o >> 0] | 0; m = m + 1 | 0; o = o + 1 | 0; } while ((m | 0) < (p | 0)); Ga = (f | 0) != 7; Ha = d + 1168 | 0; if (Ga) { ab(n, f, La, g, Ha, r, Ta); m = d + 392 | 0; ae(m, r, k, Ta); g = g + 6 | 0; } else { cb(n, La, g, Ha, q, r, Ta); m = d + 392 | 0; _d(m, q, r, k, Ta); g = g + 10 | 0; } o = r; p = m + 20 | 0; do { b[m >> 1] = b[o >> 1] | 0; m = m + 2 | 0; o = o + 2 | 0; } while ((m | 0) < (p | 0)); Ca = f >>> 0 > 1; B = f >>> 0 < 4 & 1; Ba = (f | 0) == 5; Aa = Ba ? 10 : 5; Ba = Ba ? 19 : 9; E = d + 434 | 0; F = 143 - Ba & 65535; G = d + 460 | 0; H = d + 462 | 0; I = d + 464 | 0; C = f >>> 0 > 2; J = d + 388 | 0; K = (f | 0) == 0; L = f >>> 0 < 2; M = d + 1244 | 0; N = d + 432 | 0; O = f >>> 0 < 6; P = d + 1168 | 0; Q = (f | 0) == 6; R = La << 16 >> 16 == 0; S = d + 714 | 0; T = d + 686 | 0; U = d + 436 | 0; V = d + 700 | 0; W = (f | 0) == 7; X = d + 482 | 0; Y = f >>> 0 < 3; _ = d + 608 | 0; $ = d + 626 | 0; aa = d + 438 | 0; ba = f >>> 0 < 7; ca = d + 730 | 0; D = Ja ^ 1; da = l << 16 >> 16 != 0; za = da ? La ^ 1 : 0; ea = d + 442 | 0; fa = d + 458 | 0; ga = d + 412 | 0; ha = d + 80 | 0; ia = d + 1236 | 0; ja = d + 1240 | 0; ka = d + 468 | 0; la = d + 466 | 0; ma = d + 470 | 0; na = d + 472 | 0; oa = d + 474 | 0; pa = d + 476 | 0; qa = d + 478 | 0; ra = d + 480 | 0; sa = d + 444 | 0; ta = d + 446 | 0; ua = d + 448 | 0; va = d + 450 | 0; wa = d + 452 | 0; xa = d + 454 | 0; ya = d + 456 | 0; y = 0; z = 0; s = 0; t = 0; A = -1; while (1) { A = (A << 16 >> 16) + 1 | 0; p = A & 65535; z = 1 - (z << 16 >> 16) | 0; v = z & 65535; q = Ca & s << 16 >> 16 == 80 ? 0 : s; u = g + 2 | 0; r = b[g >> 1] | 0; a:do if (Ga) { w = b[E >> 1] | 0; m = (w & 65535) - Aa & 65535; m = m << 16 >> 16 < 20 ? 20 : m; o = (m & 65535) + Ba & 65535; n = o << 16 >> 16 > 143; Ya(r, n ? F : m, n ? 143 : o, q, w, eb, ib, B, Ta); q = b[eb >> 1] | 0; b[G >> 1] = q; if (Ja) { r = b[E >> 1] | 0; if (r << 16 >> 16 < 143) { r = (r & 65535) + 1 & 65535; b[E >> 1] = r; } b[eb >> 1] = r; b[ib >> 1] = 0; if ((b[H >> 1] | 0) != 0 ? !(C | (b[I >> 1] | 0) < 5) : 0) { b[eb >> 1] = q; r = q; q = 0; } else q = 0; } else { r = q; q = b[ib >> 1] | 0; } se(c[J >> 2] | 0, r, q, 40, 1, Ta); if (L) { q = g + 6 | 0; Pa(p, b[g + 4 >> 1] | 0, b[u >> 1] | 0, c[M >> 2] | 0, mb, Ta); g = b[N >> 1] | 0; w = g << 16 >> 16; r = w << 1; if ((r | 0) == (w << 17 >> 16 | 0)) { o = K; break } o = K; r = g << 16 >> 16 > 0 ? 32767 : -32768; break } switch (f | 0) { case 2: { q = g + 6 | 0; Oa(b[g + 4 >> 1] | 0, b[u >> 1] | 0, mb); g = b[N >> 1] | 0; w = g << 16 >> 16; r = w << 1; if ((r | 0) == (w << 17 >> 16 | 0)) { o = K; break a } o = K; r = g << 16 >> 16 > 0 ? 32767 : -32768; break a } case 3: { q = g + 6 | 0; Qa(b[g + 4 >> 1] | 0, b[u >> 1] | 0, mb); g = b[N >> 1] | 0; w = g << 16 >> 16; r = w << 1; if ((r | 0) == (w << 17 >> 16 | 0)) { o = K; break a } o = K; r = g << 16 >> 16 > 0 ? 32767 : -32768; break a } default: { if (O) { q = g + 6 | 0; Ra(b[g + 4 >> 1] | 0, b[u >> 1] | 0, c[P >> 2] | 0, mb); g = b[N >> 1] | 0; w = g << 16 >> 16; r = w << 1; if ((r | 0) == (w << 17 >> 16 | 0)) { o = K; break a } o = K; r = g << 16 >> 16 > 0 ? 32767 : -32768; break a } if (!Q) { o = K; x = 44; break a } Sa(u, mb, Ta); r = g + 16 | 0; g = b[N >> 1] | 0; w = g << 16 >> 16; p = w << 1; if ((p | 0) == (w << 17 >> 16 | 0)) { q = r; o = K; r = p; break a } q = r; o = K; r = g << 16 >> 16 > 0 ? 32767 : -32768; break a } } } else { Za(r, 18, 143, q, eb, ib, Ta); if (R ? q << 16 >> 16 == 0 | r << 16 >> 16 < 61 : 0) { r = b[eb >> 1] | 0; q = b[ib >> 1] | 0; } else { b[G >> 1] = b[eb >> 1] | 0; r = b[E >> 1] | 0; b[eb >> 1] = r; b[ib >> 1] = 0; q = 0; } se(c[J >> 2] | 0, r, q, 40, 0, Ta); o = 0; x = 44; } while (0); if ((x | 0) == 44) { x = 0; if (Ja) lb(T, b[h >> 1] | 0, xb, Ta); else b[xb >> 1] = $a(f, b[u >> 1] | 0, c[ja >> 2] | 0) | 0; nb(T, La, b[U >> 1] | 0, xb, Ta); Na(g + 4 | 0, mb, c[P >> 2] | 0); r = g + 24 | 0; g = b[xb >> 1] | 0; w = g << 16 >> 16; p = w << 1; if ((p | 0) == (w << 17 >> 16 | 0)) { q = r; r = p; } else { q = r; r = g << 16 >> 16 > 0 ? 32767 : -32768; } } g = b[eb >> 1] | 0; b:do if (g << 16 >> 16 < 40) { m = r << 16 >> 16; n = g; r = g << 16 >> 16; while (1) { p = mb + (r << 1) | 0; g = (Z(b[mb + (r - (n << 16 >> 16) << 1) >> 1] | 0, m) | 0) >> 15; if ((g | 0) > 32767) { c[Ta >> 2] = 1; g = 32767; } w = g & 65535; b[Ab >> 1] = w; b[p >> 1] = Rd(b[p >> 1] | 0, w, Ta) | 0; r = r + 1 | 0; if ((r & 65535) << 16 >> 16 == 40) break b; n = b[eb >> 1] | 0; } } while (0); c:do if (o) { o = (z & 65535 | 0) == 0; if (o) { g = q; p = t; } else { g = q + 2 | 0; p = b[q >> 1] | 0; } if (R) Xa(S, f, p, mb, v, xb, tb, Ha, Ta); else { lb(T, b[h >> 1] | 0, xb, Ta); jb(V, S, b[h >> 1] | 0, tb, Ta); } nb(T, La, b[U >> 1] | 0, xb, Ta); kb(V, La, b[U >> 1] | 0, tb, Ta); q = b[xb >> 1] | 0; r = q << 16 >> 16 > 13017 ? 13017 : q; if (o) x = 80; else w = p; } else { g = q + 2 | 0; r = b[q >> 1] | 0; switch (f | 0) { case 1: case 2: case 3: case 4: case 6: { if (R) Xa(S, f, r, mb, v, xb, tb, Ha, Ta); else { lb(T, b[h >> 1] | 0, xb, Ta); jb(V, S, b[h >> 1] | 0, tb, Ta); } nb(T, La, b[U >> 1] | 0, xb, Ta); kb(V, La, b[U >> 1] | 0, tb, Ta); q = b[xb >> 1] | 0; r = q << 16 >> 16 > 13017 ? 13017 : q; if (!Q) { p = t; x = 80; break c } if ((b[E >> 1] | 0) <= 45) { p = t; x = 80; break c } p = t; r = r << 16 >> 16 >>> 2 & 65535; x = 80; break c } case 5: { if (Ja) lb(T, b[h >> 1] | 0, xb, Ta); else b[xb >> 1] = $a(5, r, c[ja >> 2] | 0) | 0; nb(T, La, b[U >> 1] | 0, xb, Ta); if (R) _a(S, 5, b[g >> 1] | 0, mb, c[ia >> 2] | 0, tb, Ta); else jb(V, S, b[h >> 1] | 0, tb, Ta); kb(V, La, b[U >> 1] | 0, tb, Ta); r = b[xb >> 1] | 0; g = q + 4 | 0; q = r; p = t; r = r << 16 >> 16 > 13017 ? 13017 : r; x = 80; break c } default: { if (R) _a(S, f, r, mb, c[ia >> 2] | 0, tb, Ta); else jb(V, S, b[h >> 1] | 0, tb, Ta); kb(V, La, b[U >> 1] | 0, tb, Ta); r = b[xb >> 1] | 0; q = r; p = t; x = 80; break c } } } while (0); if ((x | 0) == 80) { x = 0; b[N >> 1] = q << 16 >> 16 > 13017 ? 13017 : q; w = p; } r = r << 16 >> 16; r = (r << 17 >> 17 | 0) == (r | 0) ? r << 1 : r >>> 15 ^ 32767; v = (r & 65535) << 16 >> 16 > 16384; d:do if (v) { u = r << 16 >> 16; if (W) q = 0; else { q = 0; while (1) { r = (Z(b[(c[J >> 2] | 0) + (q << 1) >> 1] | 0, u) | 0) >> 15; if ((r | 0) > 32767) { c[Ta >> 2] = 1; r = 32767; } b[Ab >> 1] = r; r = Z(b[xb >> 1] | 0, r << 16 >> 16) | 0; if ((r | 0) == 1073741824) { c[Ta >> 2] = 1; r = 2147483647; } else r = r << 1; b[rb + (q << 1) >> 1] = Ce(r, Ta) | 0; q = q + 1 | 0; if ((q | 0) == 40) break d } } do { r = (Z(b[(c[J >> 2] | 0) + (q << 1) >> 1] | 0, u) | 0) >> 15; if ((r | 0) > 32767) { c[Ta >> 2] = 1; r = 32767; } b[Ab >> 1] = r; r = Z(b[xb >> 1] | 0, r << 16 >> 16) | 0; if ((r | 0) != 1073741824) { r = r << 1; if ((r | 0) < 0) r = ~((r ^ -2) >> 1); else x = 88; } else { c[Ta >> 2] = 1; r = 2147483647; x = 88; } if ((x | 0) == 88) { x = 0; r = r >> 1; } b[rb + (q << 1) >> 1] = Ce(r, Ta) | 0; q = q + 1 | 0; } while ((q | 0) != 40) } while (0); if (R) { b[la >> 1] = b[ka >> 1] | 0; b[ka >> 1] = b[ma >> 1] | 0; b[ma >> 1] = b[na >> 1] | 0; b[na >> 1] = b[oa >> 1] | 0; b[oa >> 1] = b[pa >> 1] | 0; b[pa >> 1] = b[qa >> 1] | 0; b[qa >> 1] = b[ra >> 1] | 0; b[ra >> 1] = b[X >> 1] | 0; b[X >> 1] = b[xb >> 1] | 0; } if ((Ja | (b[U >> 1] | 0) != 0 ? Y & (b[H >> 1] | 0) != 0 : 0) ? (bb = b[xb >> 1] | 0, bb << 16 >> 16 > 12288) : 0) { x = (((bb << 16 >> 16) + 118784 | 0) >>> 1) + 12288 & 65535; b[xb >> 1] = x << 16 >> 16 > 14745 ? 14745 : x; } qb(zb, Fa, s, yb, Ta); r = Ma(_, f, b[tb >> 1] | 0, yb, $, La, b[U >> 1] | 0, l, b[aa >> 1] | 0, b[H >> 1] | 0, b[I >> 1] | 0, Ta) | 0; switch (f | 0) { case 0: case 1: case 2: case 3: case 6: { p = b[xb >> 1] | 0; u = 1; break } default: { r = b[tb >> 1] | 0; p = b[xb >> 1] | 0; if (ba) u = 1; else { q = p << 16 >> 16; if (p << 16 >> 16 < 0) q = ~((q ^ -2) >> 1); else q = q >>> 1; p = q & 65535; u = 2; } } } m = p << 16 >> 16; s = u & 65535; q = c[J >> 2] | 0; t = 0; do { q = q + (t << 1) | 0; b[pb + (t << 1) >> 1] = b[q >> 1] | 0; q = Z(b[q >> 1] | 0, m) | 0; if ((q | 0) == 1073741824) { c[Ta >> 2] = 1; n = 2147483647; } else n = q << 1; o = Z(b[tb >> 1] | 0, b[mb + (t << 1) >> 1] | 0) | 0; if ((o | 0) != 1073741824) { q = (o << 1) + n | 0; if ((o ^ n | 0) > 0 & (q ^ n | 0) < 0) { c[Ta >> 2] = 1; q = (n >>> 31) + 2147483647 | 0; } } else { c[Ta >> 2] = 1; q = 2147483647; } x = q << s; x = Ce((x >> s | 0) == (q | 0) ? x : q >> 31 ^ 2147483647, Ta) | 0; q = c[J >> 2] | 0; b[q + (t << 1) >> 1] = x; t = t + 1 | 0; } while ((t | 0) != 40); vb(ca); if ((Y ? (b[I >> 1] | 0) > 3 : 0) ? !((b[H >> 1] | 0) == 0 | D) : 0) ub(ca); wb(ca, f, pb, r, b[xb >> 1] | 0, mb, p, u, Ha, Ta); r = 0; o = 0; do { q = b[pb + (o << 1) >> 1] | 0; q = Z(q, q) | 0; if ((q | 0) != 1073741824) { p = (q << 1) + r | 0; if ((q ^ r | 0) > 0 & (p ^ r | 0) < 0) { c[Ta >> 2] = 1; r = (r >>> 31) + 2147483647 | 0; } else r = p; } else { c[Ta >> 2] = 1; r = 2147483647; } o = o + 1 | 0; } while ((o | 0) != 40); if ((r | 0) < 0) r = ~((r ^ -2) >> 1); else r = r >> 1; r = Fe(r, Ab, Ta) | 0; p = ((b[Ab >> 1] | 0) >>> 1) + 15 | 0; q = p & 65535; p = p << 16 >> 16; if (q << 16 >> 16 > 0) if (q << 16 >> 16 < 31) { r = r >> p; x = 135; } else { r = 0; x = 137; } else { u = 0 - p << 16 >> 16; x = r << u; r = (x >> u | 0) == (r | 0) ? x : r >> 31 ^ 2147483647; x = 135; } if ((x | 0) == 135) { x = 0; if ((r | 0) < 0) r = ~((r ^ -4) >> 2); else x = 137; } if ((x | 0) == 137) { x = 0; r = r >>> 2; } r = r & 65535; do if (Y ? (db = b[I >> 1] | 0, db << 16 >> 16 > 5) : 0) if (b[H >> 1] | 0) if ((b[h >> 1] | 0) < 4) { if (da) { if (!(Ja | (b[aa >> 1] | 0) != 0)) x = 145; } else if (!Ja) x = 145; if ((x | 0) == 145 ? (0, (b[U >> 1] | 0) == 0) : 0) { x = 147; break } ob(pb, r, ea, db, b[U >> 1] | 0, za, Ta) | 0; x = 147; } else x = 147; else x = 151; else x = 147; while (0); do if ((x | 0) == 147) { x = 0; if (b[H >> 1] | 0) { if (!Ja ? (b[U >> 1] | 0) == 0 : 0) { x = 151; break } if ((b[h >> 1] | 0) >= 4) x = 151; } else x = 151; } while (0); if ((x | 0) == 151) { x = 0; b[ea >> 1] = b[sa >> 1] | 0; b[sa >> 1] = b[ta >> 1] | 0; b[ta >> 1] = b[ua >> 1] | 0; b[ua >> 1] = b[va >> 1] | 0; b[va >> 1] = b[wa >> 1] | 0; b[wa >> 1] = b[xa >> 1] | 0; b[xa >> 1] = b[ya >> 1] | 0; b[ya >> 1] = b[fa >> 1] | 0; b[fa >> 1] = r; } if (v) { r = 0; do { v = rb + (r << 1) | 0; b[v >> 1] = Rd(b[v >> 1] | 0, b[pb + (r << 1) >> 1] | 0, Ta) | 0; r = r + 1 | 0; } while ((r | 0) != 40); Da(pb, rb, 40, Ta); c[Ta >> 2] = 0; He(k, rb, j + (y << 1) | 0, 40, ga, 0); } else { c[Ta >> 2] = 0; He(k, pb, j + (y << 1) | 0, 40, ga, 0); } if (!(c[Ta >> 2] | 0)) Pe(ga | 0, j + (y + 30 << 1) | 0, 20) | 0; else { p = 193; while (1) { q = d + (p << 1) | 0; v = b[q >> 1] | 0; r = v << 16 >> 16; if (v << 16 >> 16 < 0) r = ~((r ^ -4) >> 2); else r = r >>> 2; b[q >> 1] = r; if ((p | 0) > 0) p = p + -1 | 0; else { p = 39; break } } while (1) { q = pb + (p << 1) | 0; v = b[q >> 1] | 0; r = v << 16 >> 16; if (v << 16 >> 16 < 0) r = ~((r ^ -4) >> 2); else r = r >>> 2; b[q >> 1] = r; if ((p | 0) > 0) p = p + -1 | 0; else break } He(k, pb, j + (y << 1) | 0, 40, ga, 1); } Pe(d | 0, ha | 0, 308) | 0; b[E >> 1] = b[eb >> 1] | 0; r = y + 40 | 0; s = r & 65535; if (s << 16 >> 16 >= 160) break; else { y = r << 16 >> 16; k = k + 22 | 0; t = w; } } b[H >> 1] = Ka(d + 484 | 0, d + 466 | 0, j, I, Ta) | 0; gb(Ua, Fa, j, Ta); b[U >> 1] = La; b[aa >> 1] = l; sb(d + 626 | 0, Fa, Ta); Ab = Ea; c[Ab >> 2] = Wa; i = Bb; return } function Xa(a, d, f, g, h, j, k, l, m) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0; r = i; i = i + 16 | 0; p = r + 2 | 0; q = r; f = f << 16 >> 16; f = (f << 18 >> 18 | 0) == (f | 0) ? f << 2 : f >>> 15 ^ 32767; switch (d | 0) { case 3: case 4: case 6: { o = f << 16 >> 16; f = c[l + 84 >> 2] | 0; b[j >> 1] = b[f + (o << 1) >> 1] | 0; l = b[f + (o + 1 << 1) >> 1] | 0; n = b[f + (o + 3 << 1) >> 1] | 0; j = b[f + (o + 2 << 1) >> 1] | 0; break } case 0: { l = (f & 65535) + (h << 16 >> 16 << 1 ^ 2) | 0; l = (l & 65535) << 16 >> 16 > 1022 ? 1022 : l << 16 >> 16; b[j >> 1] = b[782 + (l << 1) >> 1] | 0; j = b[782 + (l + 1 << 1) >> 1] | 0; de(j << 16 >> 16, q, p, m); b[q >> 1] = (e[q >> 1] | 0) + 65524; l = Ee(b[p >> 1] | 0, 5, m) | 0; o = b[q >> 1] | 0; o = Rd(l, ((o << 26 >> 26 | 0) == (o | 0) ? o << 10 : o >>> 15 ^ 32767) & 65535, m) | 0; l = b[p >> 1] | 0; f = b[q >> 1] | 0; if ((f * 24660 | 0) == 1073741824) { c[m >> 2] = 1; h = 2147483647; } else h = f * 49320 | 0; n = (l << 16 >> 16) * 24660 >> 15; f = h + (n << 1) | 0; if ((h ^ n | 0) > 0 & (f ^ h | 0) < 0) { c[m >> 2] = 1; f = (h >>> 31) + 2147483647 | 0; } n = f << 13; l = j; n = Ce((n >> 13 | 0) == (f | 0) ? n : f >> 31 ^ 2147483647, m) | 0; j = o; break } default: { o = f << 16 >> 16; f = c[l + 80 >> 2] | 0; b[j >> 1] = b[f + (o << 1) >> 1] | 0; l = b[f + (o + 1 << 1) >> 1] | 0; n = b[f + (o + 3 << 1) >> 1] | 0; j = b[f + (o + 2 << 1) >> 1] | 0; } } Vd(a, d, g, q, p, 0, 0, m); h = Z((re(14, b[p >> 1] | 0, m) | 0) << 16 >> 16, l << 16 >> 16) | 0; if ((h | 0) == 1073741824) { c[m >> 2] = 1; f = 2147483647; } else f = h << 1; l = 10 - (e[q >> 1] | 0) | 0; h = l & 65535; l = l << 16 >> 16; if (h << 16 >> 16 > 0) { q = h << 16 >> 16 < 31 ? f >> l : 0; q = q >>> 16; q = q & 65535; b[k >> 1] = q; Wd(a, j, n); i = r; return } else { m = 0 - l << 16 >> 16; q = f << m; q = (q >> m | 0) == (f | 0) ? q : f >> 31 ^ 2147483647; q = q >>> 16; q = q & 65535; b[k >> 1] = q; Wd(a, j, n); i = r; return } } function Ya(a, d, e, f, g, h, i, j, k) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; if (!(f << 16 >> 16)) { j = a << 16 >> 16; if (a << 16 >> 16 >= 197) { b[h >> 1] = j + 65424; b[i >> 1] = 0; return } g = ((j << 16) + 131072 >> 16) * 10923 >> 15; if ((g | 0) > 32767) { c[k >> 2] = 1; g = 32767; } a = (g & 65535) + 19 | 0; b[h >> 1] = a; b[i >> 1] = j + 58 - ((a * 196608 | 0) >>> 16); return } if (!(j << 16 >> 16)) { k = a << 16 >> 16 << 16; a = ((k + 131072 >> 16) * 21846 | 0) + -65536 >> 16; b[h >> 1] = a + (d & 65535); b[i >> 1] = ((k + -131072 | 0) >>> 16) - ((a * 196608 | 0) >>> 16); return } if ((Ge(g, d, k) | 0) << 16 >> 16 > 5) g = (d & 65535) + 5 & 65535; j = e << 16 >> 16; j = (j - (g & 65535) & 65535) << 16 >> 16 > 4 ? j + 65532 & 65535 : g; g = a << 16 >> 16; if (a << 16 >> 16 < 4) { b[h >> 1] = ((((j & 65535) << 16) + -327680 | 0) >>> 16) + g; b[i >> 1] = 0; return } g = g << 16; if (a << 16 >> 16 < 12) { k = (((g + -327680 >> 16) * 10923 | 0) >>> 15 << 16) + -65536 | 0; a = k >> 16; b[h >> 1] = (j & 65535) + a; b[i >> 1] = ((g + -589824 | 0) >>> 16) - (k >>> 15) - a; return } else { b[h >> 1] = ((g + -786432 + ((j & 65535) << 16) | 0) >>> 16) + 1; b[i >> 1] = 0; return } } function Za(a, c, d, f, g, h, i) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; if (f << 16 >> 16) { i = (e[g >> 1] | 0) + 65531 | 0; i = (i << 16 >> 16 | 0) < (c << 16 >> 16 | 0) ? c : i & 65535; d = d << 16 >> 16; c = a << 16 >> 16 << 16; a = ((c + 327680 >> 16) * 10924 | 0) + -65536 >> 16; b[g >> 1] = (((((i & 65535) << 16) + 589824 >> 16 | 0) > (d | 0) ? d + 65527 & 65535 : i) & 65535) + a; b[h >> 1] = ((c + -196608 | 0) >>> 16) - ((a * 393216 | 0) >>> 16); return } f = a << 16 >> 16; if (a << 16 >> 16 < 463) { a = ((((f << 16) + 327680 >> 16) * 10924 | 0) >>> 16) + 17 | 0; b[g >> 1] = a; b[h >> 1] = f + 105 - ((a * 393216 | 0) >>> 16); return } else { b[g >> 1] = f + 65168; b[h >> 1] = 0; return } } function _a(a, d, e, f, g, h, j) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; var k = 0, l = 0, m = 0, n = 0; n = i; i = i + 16 | 0; l = n + 6 | 0; k = n + 4 | 0; Vd(a, d, f, l, k, n + 2 | 0, n, j); m = (e & 31) * 3 | 0; f = g + (m << 1) | 0; if (!((Ge(d & 65535, 7, j) | 0) << 16 >> 16)) { l = re(b[l >> 1] | 0, b[k >> 1] | 0, j) | 0; k = l << 16 >> 16; k = (Z(((l << 20 >> 20 | 0) == (k | 0) ? l << 4 : k >>> 15 ^ 32767) << 16 >> 16, b[f >> 1] | 0) | 0) >> 15; if ((k | 0) > 32767) { c[j >> 2] = 1; k = 32767; } f = k << 16; e = f >> 16; if ((k << 17 >> 17 | 0) == (e | 0)) k = f >> 15; else k = e >>> 15 ^ 32767; } else { e = re(14, b[k >> 1] | 0, j) | 0; e = Z(e << 16 >> 16, b[f >> 1] | 0) | 0; if ((e | 0) == 1073741824) { c[j >> 2] = 1; f = 2147483647; } else f = e << 1; e = Ge(9, b[l >> 1] | 0, j) | 0; k = e << 16 >> 16; if (e << 16 >> 16 > 0) k = e << 16 >> 16 < 31 ? f >> k : 0; else { j = 0 - k << 16 >> 16; k = f << j; k = (k >> j | 0) == (f | 0) ? k : f >> 31 ^ 2147483647; } k = k >>> 16; } b[h >> 1] = k; Wd(a, b[g + (m + 1 << 1) >> 1] | 0, b[g + (m + 2 << 1) >> 1] | 0); i = n; return } function $a(a, c, d) { a = a | 0; c = c | 0; d = d | 0; c = b[d + (c << 16 >> 16 << 1) >> 1] | 0; if ((a | 0) != 7) { a = c; return a | 0 } a = c & 65532; return a | 0 } function ab(d, e, f, g, h, j, k) { d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; v = i; i = i + 48 | 0; r = v + 20 | 0; u = v; t = c[h + 44 >> 2] | 0; s = c[h + 64 >> 2] | 0; l = c[h + 4 >> 2] | 0; q = c[h + 12 >> 2] | 0; n = c[h + 20 >> 2] | 0; m = c[h + 56 >> 2] | 0; if (!(f << 16 >> 16)) { o = e >>> 0 < 2; if (o) { f = 765; p = 508; n = c[h + 52 >> 2] | 0; } else { h = (e | 0) == 5; f = h ? 1533 : 765; p = 2044; l = h ? m : l; } m = b[g >> 1] | 0; f = ((m * 196608 >> 16 | 0) > (f & 65535 | 0) ? f : m * 3 & 65535) << 16 >> 16; m = b[l + (f << 1) >> 1] | 0; b[r >> 1] = m; b[r + 2 >> 1] = b[l + (f + 1 << 1) >> 1] | 0; b[r + 4 >> 1] = b[l + (f + 2 << 1) >> 1] | 0; f = b[g + 2 >> 1] | 0; if (o) f = f << 16 >> 16 << 1 & 65535; o = (f << 16 >> 16) * 196608 | 0; o = (o | 0) > 100466688 ? 1533 : o >> 16; b[r + 6 >> 1] = b[q + (o << 1) >> 1] | 0; b[r + 8 >> 1] = b[q + (o + 1 << 1) >> 1] | 0; b[r + 10 >> 1] = b[q + (o + 2 << 1) >> 1] | 0; g = b[g + 4 >> 1] | 0; g = ((g << 18 >> 16 | 0) > (p & 65535 | 0) ? p : g << 2 & 65535) << 16 >> 16; b[r + 12 >> 1] = b[n + (g << 1) >> 1] | 0; b[r + 14 >> 1] = b[n + ((g | 1) << 1) >> 1] | 0; b[r + 16 >> 1] = b[n + ((g | 2) << 1) >> 1] | 0; b[r + 18 >> 1] = b[n + ((g | 3) << 1) >> 1] | 0; if ((e | 0) == 8) { f = 0; while (1) { s = d + (f << 1) | 0; b[u + (f << 1) >> 1] = Rd(m, Rd(b[t + (f << 1) >> 1] | 0, b[s >> 1] | 0, k) | 0, k) | 0; b[s >> 1] = m; f = f + 1 | 0; if ((f | 0) == 10) break; m = b[r + (f << 1) >> 1] | 0; } Ae(u, 205, 10, k); l = d + 20 | 0; m = u; f = l + 20 | 0; do { a[l >> 0] = a[m >> 0] | 0; l = l + 1 | 0; m = m + 1 | 0; } while ((l | 0) < (f | 0)); me(u, j, 10, k); i = v; return } else l = 0; do { m = d + (l << 1) | 0; f = (Z(b[s + (l << 1) >> 1] | 0, b[m >> 1] | 0) | 0) >> 15; if ((f | 0) > 32767) { c[k >> 2] = 1; f = 32767; } g = Rd(b[t + (l << 1) >> 1] | 0, f & 65535, k) | 0; e = b[r + (l << 1) >> 1] | 0; b[u + (l << 1) >> 1] = Rd(e, g, k) | 0; b[m >> 1] = e; l = l + 1 | 0; } while ((l | 0) != 10); Ae(u, 205, 10, k); l = d + 20 | 0; m = u; f = l + 20 | 0; do { a[l >> 0] = a[m >> 0] | 0; l = l + 1 | 0; m = m + 1 | 0; } while ((l | 0) < (f | 0)); me(u, j, 10, k); i = v; return } else { l = 0; do { f = (b[d + 20 + (l << 1) >> 1] | 0) * 29491 >> 15; if ((f | 0) > 32767) { c[k >> 2] = 1; f = 32767; } m = (b[t + (l << 1) >> 1] | 0) * 3277 >> 15; if ((m | 0) > 32767) { c[k >> 2] = 1; m = 32767; } b[u + (l << 1) >> 1] = Rd(m & 65535, f & 65535, k) | 0; l = l + 1 | 0; } while ((l | 0) != 10); if ((e | 0) == 8) { l = 0; do { s = d + (l << 1) | 0; r = Rd(b[t + (l << 1) >> 1] | 0, b[s >> 1] | 0, k) | 0; b[s >> 1] = Ge(b[u + (l << 1) >> 1] | 0, r, k) | 0; l = l + 1 | 0; } while ((l | 0) != 10); Ae(u, 205, 10, k); l = d + 20 | 0; m = u; f = l + 20 | 0; do { a[l >> 0] = a[m >> 0] | 0; l = l + 1 | 0; m = m + 1 | 0; } while ((l | 0) < (f | 0)); me(u, j, 10, k); i = v; return } else l = 0; do { m = d + (l << 1) | 0; f = (Z(b[s + (l << 1) >> 1] | 0, b[m >> 1] | 0) | 0) >> 15; if ((f | 0) > 32767) { c[k >> 2] = 1; f = 32767; } r = Rd(b[t + (l << 1) >> 1] | 0, f & 65535, k) | 0; b[m >> 1] = Ge(b[u + (l << 1) >> 1] | 0, r, k) | 0; l = l + 1 | 0; } while ((l | 0) != 10); Ae(u, 205, 10, k); l = d + 20 | 0; m = u; f = l + 20 | 0; do { a[l >> 0] = a[m >> 0] | 0; l = l + 1 | 0; m = m + 1 | 0; } while ((l | 0) < (f | 0)); me(u, j, 10, k); i = v; return } } function bb(a, b, c) { a = a | 0; b = b | 0; c = c | 0; Pe(a | 0, c + ((b << 16 >> 16) * 10 << 1) | 0, 20) | 0; return } function cb(d, e, f, g, h, j, k) { d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; v = i; i = i + 80 | 0; q = v + 60 | 0; r = v + 40 | 0; t = v + 20 | 0; u = v; s = c[g + 48 >> 2] | 0; n = c[g + 24 >> 2] | 0; o = c[g + 28 >> 2] | 0; p = c[g + 32 >> 2] | 0; if (e << 16 >> 16) { l = 0; do { q = s + (l << 1) | 0; f = Rd(((b[q >> 1] | 0) * 1639 | 0) >>> 15 & 65535, ((b[d + 20 + (l << 1) >> 1] | 0) * 31128 | 0) >>> 15 & 65535, k) | 0; b[t + (l << 1) >> 1] = f; b[u + (l << 1) >> 1] = f; r = d + (l << 1) | 0; b[r >> 1] = Ge(f, Rd(b[q >> 1] | 0, ((b[r >> 1] | 0) * 21299 | 0) >>> 15 & 65535, k) | 0, k) | 0; l = l + 1 | 0; } while ((l | 0) != 10); Ae(t, 205, 10, k); Ae(u, 205, 10, k); l = d + 20 | 0; g = u; e = l + 20 | 0; do { a[l >> 0] = a[g >> 0] | 0; l = l + 1 | 0; g = g + 1 | 0; } while ((l | 0) < (e | 0)); me(t, h, 10, k); me(u, j, 10, k); i = v; return } e = c[g + 16 >> 2] | 0; g = c[g + 8 >> 2] | 0; m = b[f >> 1] | 0; m = ((m << 18 >> 18 | 0) == (m | 0) ? m << 2 : m >>> 15 ^ 32767) << 16 >> 16; b[q >> 1] = b[g + (m << 1) >> 1] | 0; b[q + 2 >> 1] = b[g + (m + 1 << 1) >> 1] | 0; b[r >> 1] = b[g + (m + 2 << 1) >> 1] | 0; b[r + 2 >> 1] = b[g + (m + 3 << 1) >> 1] | 0; m = b[f + 2 >> 1] | 0; m = ((m << 18 >> 18 | 0) == (m | 0) ? m << 2 : m >>> 15 ^ 32767) << 16 >> 16; b[q + 4 >> 1] = b[e + (m << 1) >> 1] | 0; b[q + 6 >> 1] = b[e + (m + 1 << 1) >> 1] | 0; b[r + 4 >> 1] = b[e + (m + 2 << 1) >> 1] | 0; b[r + 6 >> 1] = b[e + (m + 3 << 1) >> 1] | 0; m = b[f + 4 >> 1] | 0; g = m << 16 >> 16; if (m << 16 >> 16 < 0) e = ~((g ^ -2) >> 1); else e = g >>> 1; m = e << 16 >> 16; m = ((e << 18 >> 18 | 0) == (m | 0) ? e << 2 : m >>> 15 ^ 32767) << 16 >> 16; l = n + (m + 1 << 1) | 0; e = b[n + (m << 1) >> 1] | 0; if (!(g & 1)) { b[q + 8 >> 1] = e; b[q + 10 >> 1] = b[l >> 1] | 0; b[r + 8 >> 1] = b[n + (m + 2 << 1) >> 1] | 0; b[r + 10 >> 1] = b[n + (m + 3 << 1) >> 1] | 0; } else { if (e << 16 >> 16 == -32768) e = 32767; else e = 0 - (e & 65535) & 65535; b[q + 8 >> 1] = e; e = b[l >> 1] | 0; if (e << 16 >> 16 == -32768) e = 32767; else e = 0 - (e & 65535) & 65535; b[q + 10 >> 1] = e; e = b[n + (m + 2 << 1) >> 1] | 0; if (e << 16 >> 16 == -32768) e = 32767; else e = 0 - (e & 65535) & 65535; b[r + 8 >> 1] = e; e = b[n + (m + 3 << 1) >> 1] | 0; if (e << 16 >> 16 == -32768) e = 32767; else e = 0 - (e & 65535) & 65535; b[r + 10 >> 1] = e; } l = b[f + 6 >> 1] | 0; l = ((l << 18 >> 18 | 0) == (l | 0) ? l << 2 : l >>> 15 ^ 32767) << 16 >> 16; b[q + 12 >> 1] = b[o + (l << 1) >> 1] | 0; b[q + 14 >> 1] = b[o + (l + 1 << 1) >> 1] | 0; b[r + 12 >> 1] = b[o + (l + 2 << 1) >> 1] | 0; b[r + 14 >> 1] = b[o + (l + 3 << 1) >> 1] | 0; l = b[f + 8 >> 1] | 0; l = ((l << 18 >> 18 | 0) == (l | 0) ? l << 2 : l >>> 15 ^ 32767) << 16 >> 16; b[q + 16 >> 1] = b[p + (l << 1) >> 1] | 0; b[q + 18 >> 1] = b[p + (l + 1 << 1) >> 1] | 0; b[r + 16 >> 1] = b[p + (l + 2 << 1) >> 1] | 0; b[r + 18 >> 1] = b[p + (l + 3 << 1) >> 1] | 0; l = 0; do { g = d + (l << 1) | 0; e = (b[g >> 1] | 0) * 21299 >> 15; if ((e | 0) > 32767) { c[k >> 2] = 1; e = 32767; } p = Rd(b[s + (l << 1) >> 1] | 0, e & 65535, k) | 0; b[t + (l << 1) >> 1] = Rd(b[q + (l << 1) >> 1] | 0, p, k) | 0; f = b[r + (l << 1) >> 1] | 0; b[u + (l << 1) >> 1] = Rd(f, p, k) | 0; b[g >> 1] = f; l = l + 1 | 0; } while ((l | 0) != 10); Ae(t, 205, 10, k); Ae(u, 205, 10, k); l = d + 20 | 0; g = u; e = l + 20 | 0; do { a[l >> 0] = a[g >> 0] | 0; l = l + 1 | 0; g = g + 1 | 0; } while ((l | 0) < (e | 0)); me(t, h, 10, k); me(u, j, 10, k); i = v; return } function db(a, c) { a = a | 0; c = c | 0; var d = 0, e = 0; if (!a) { e = -1; return e | 0 } d = a; e = d + 20 | 0; do { b[d >> 1] = 0; d = d + 2 | 0; } while ((d | 0) < (e | 0)); Pe(a + 20 | 0, c | 0, 20) | 0; e = 0; return e | 0 } function eb(d) { d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0; if (!d) { i = -1; return i | 0 } b[d >> 1] = 0; b[d + 2 >> 1] = 8192; e = d + 4 | 0; b[e >> 1] = 3500; b[d + 6 >> 1] = 3500; c[d + 8 >> 2] = 1887529304; b[d + 12 >> 1] = 3e4; b[d + 14 >> 1] = 26e3; b[d + 16 >> 1] = 21e3; b[d + 18 >> 1] = 15e3; b[d + 20 >> 1] = 8e3; b[d + 22 >> 1] = 0; b[d + 24 >> 1] = -8e3; b[d + 26 >> 1] = -15e3; b[d + 28 >> 1] = -21e3; b[d + 30 >> 1] = -26e3; b[d + 32 >> 1] = 3e4; b[d + 34 >> 1] = 26e3; b[d + 36 >> 1] = 21e3; b[d + 38 >> 1] = 15e3; b[d + 40 >> 1] = 8e3; b[d + 42 >> 1] = 0; b[d + 44 >> 1] = -8e3; b[d + 46 >> 1] = -15e3; b[d + 48 >> 1] = -21e3; b[d + 50 >> 1] = -26e3; b[d + 212 >> 1] = 0; b[d + 374 >> 1] = 0; b[d + 392 >> 1] = 0; f = d + 52 | 0; b[f >> 1] = 1384; b[d + 54 >> 1] = 2077; b[d + 56 >> 1] = 3420; b[d + 58 >> 1] = 5108; b[d + 60 >> 1] = 6742; b[d + 62 >> 1] = 8122; b[d + 64 >> 1] = 9863; b[d + 66 >> 1] = 11092; b[d + 68 >> 1] = 12714; b[d + 70 >> 1] = 13701; g = d + 72 | 0; h = f; i = g + 20 | 0; do { a[g >> 0] = a[h >> 0] | 0; g = g + 1 | 0; h = h + 1 | 0; } while ((g | 0) < (i | 0)); g = d + 92 | 0; h = f; i = g + 20 | 0; do { a[g >> 0] = a[h >> 0] | 0; g = g + 1 | 0; h = h + 1 | 0; } while ((g | 0) < (i | 0)); g = d + 112 | 0; h = f; i = g + 20 | 0; do { a[g >> 0] = a[h >> 0] | 0; g = g + 1 | 0; h = h + 1 | 0; } while ((g | 0) < (i | 0)); g = d + 132 | 0; h = f; i = g + 20 | 0; do { a[g >> 0] = a[h >> 0] | 0; g = g + 1 | 0; h = h + 1 | 0; } while ((g | 0) < (i | 0)); g = d + 152 | 0; h = f; i = g + 20 | 0; do { a[g >> 0] = a[h >> 0] | 0; g = g + 1 | 0; h = h + 1 | 0; } while ((g | 0) < (i | 0)); g = d + 172 | 0; h = f; i = g + 20 | 0; do { a[g >> 0] = a[h >> 0] | 0; g = g + 1 | 0; h = h + 1 | 0; } while ((g | 0) < (i | 0)); g = d + 192 | 0; h = f; i = g + 20 | 0; do { a[g >> 0] = a[h >> 0] | 0; g = g + 1 | 0; h = h + 1 | 0; } while ((g | 0) < (i | 0)); Qe(d + 214 | 0, 0, 160) | 0; b[d + 376 >> 1] = 3500; b[d + 378 >> 1] = 3500; i = b[e >> 1] | 0; b[d + 380 >> 1] = i; b[d + 382 >> 1] = i; b[d + 384 >> 1] = i; b[d + 386 >> 1] = i; b[d + 388 >> 1] = i; b[d + 390 >> 1] = i; b[d + 394 >> 1] = 0; b[d + 396 >> 1] = 7; b[d + 398 >> 1] = 32767; b[d + 400 >> 1] = 0; b[d + 402 >> 1] = 0; b[d + 404 >> 1] = 0; c[d + 408 >> 2] = 1; b[d + 412 >> 1] = 0; i = 0; return i | 0 } function fb(d, f, g, h, j, k, l, m, n, o, p, q) { d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; q = q | 0; var r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, _ = 0; _ = i; i = i + 304 | 0; Q = _ + 192 | 0; N = _ + 168 | 0; S = _ + 148 | 0; W = _ + 216 | 0; T = _ + 146 | 0; U = _ + 144 | 0; O = _ + 124 | 0; P = _ + 104 | 0; R = _ + 84 | 0; V = _ + 60 | 0; L = _ + 40 | 0; K = _; Y = d + 404 | 0; X = d + 400 | 0; if ((b[Y >> 1] | 0) != 0 ? (b[X >> 1] | 0) != 0 : 0) { J = d + 394 | 0; b[J >> 1] = b[636 + (l << 1) >> 1] | 0; z = b[d + 212 >> 1] | 0; y = z + 10 | 0; Pe(d + 52 + (((y & 65535 | 0) == 80 ? 0 : y << 16 >> 16) << 1) | 0, d + 52 + (z << 1) | 0, 20) | 0; z = b[d + 392 >> 1] | 0; y = z + 1 | 0; b[d + 376 + (((y & 65535 | 0) == 8 ? 0 : y << 16 >> 16) << 1) >> 1] = b[d + 376 + (z << 1) >> 1] | 0; y = d + 4 | 0; b[y >> 1] = 0; z = K + 36 | 0; A = K + 32 | 0; B = K + 28 | 0; C = K + 24 | 0; D = K + 20 | 0; E = K + 16 | 0; F = K + 12 | 0; G = K + 8 | 0; H = K + 4 | 0; I = d + 52 | 0; t = K; M = t + 40 | 0; do { c[t >> 2] = 0; t = t + 4 | 0; } while ((t | 0) < (M | 0)); s = 0; r = 7; while (1) { M = b[d + 376 + (r << 1) >> 1] | 0; x = M << 16 >> 16; if (M << 16 >> 16 < 0) x = ~((x ^ -8) >> 3); else x = x >>> 3; s = Rd(s, x & 65535, q) | 0; b[y >> 1] = s; v = r * 10 | 0; t = 9; while (1) { u = K + (t << 2) | 0; w = c[u >> 2] | 0; M = b[d + 52 + (t + v << 1) >> 1] | 0; x = M + w | 0; if ((M ^ w | 0) > -1 & (x ^ w | 0) < 0) { c[q >> 2] = 1; x = (w >>> 31) + 2147483647 | 0; } c[u >> 2] = x; if ((t | 0) > 0) t = t + -1 | 0; else break } if ((r | 0) <= 0) break; else r = r + -1 | 0; } b[L + 18 >> 1] = (c[z >> 2] | 0) >>> 3; b[L + 16 >> 1] = (c[A >> 2] | 0) >>> 3; b[L + 14 >> 1] = (c[B >> 2] | 0) >>> 3; b[L + 12 >> 1] = (c[C >> 2] | 0) >>> 3; b[L + 10 >> 1] = (c[D >> 2] | 0) >>> 3; b[L + 8 >> 1] = (c[E >> 2] | 0) >>> 3; b[L + 6 >> 1] = (c[F >> 2] | 0) >>> 3; b[L + 4 >> 1] = (c[G >> 2] | 0) >>> 3; b[L + 2 >> 1] = (c[H >> 2] | 0) >>> 3; b[L >> 1] = (c[K >> 2] | 0) >>> 3; me(L, d + 12 | 0, 10, q); b[y >> 1] = Ge(b[y >> 1] | 0, b[J >> 1] | 0, q) | 0; Oe(d + 214 | 0, I | 0, 160) | 0; L = 9; while (1) { M = b[d + 214 + (L + 70 << 1) >> 1] | 0; u = M << 16 >> 16; K = b[d + 214 + (L + 60 << 1) >> 1] | 0; t = (K << 16 >> 16) + u | 0; if ((K ^ M) << 16 >> 16 > -1 & (t ^ u | 0) < 0) { c[q >> 2] = 1; t = (u >>> 31) + 2147483647 | 0; } M = b[d + 214 + (L + 50 << 1) >> 1] | 0; u = M + t | 0; if ((M ^ t | 0) > -1 & (u ^ t | 0) < 0) { c[q >> 2] = 1; u = (t >>> 31) + 2147483647 | 0; } M = b[d + 214 + (L + 40 << 1) >> 1] | 0; t = M + u | 0; if ((M ^ u | 0) > -1 & (t ^ u | 0) < 0) { c[q >> 2] = 1; t = (u >>> 31) + 2147483647 | 0; } M = b[d + 214 + (L + 30 << 1) >> 1] | 0; u = M + t | 0; if ((M ^ t | 0) > -1 & (u ^ t | 0) < 0) { c[q >> 2] = 1; u = (t >>> 31) + 2147483647 | 0; } M = b[d + 214 + (L + 20 << 1) >> 1] | 0; t = M + u | 0; if ((M ^ u | 0) > -1 & (t ^ u | 0) < 0) { c[q >> 2] = 1; t = (u >>> 31) + 2147483647 | 0; } M = b[d + 214 + (L + 10 << 1) >> 1] | 0; u = M + t | 0; if ((M ^ t | 0) > -1 & (u ^ t | 0) < 0) { c[q >> 2] = 1; t = (t >>> 31) + 2147483647 | 0; } else t = u; M = b[d + 214 + (L << 1) >> 1] | 0; u = M + t | 0; if ((M ^ t | 0) > -1 & (u ^ t | 0) < 0) { c[q >> 2] = 1; u = (t >>> 31) + 2147483647 | 0; } if ((u | 0) < 0) u = ~((u ^ -8) >> 3); else u = u >>> 3; x = u & 65535; v = b[654 + (L << 1) >> 1] | 0; w = 7; while (1) { r = d + 214 + ((w * 10 | 0) + L << 1) | 0; u = Ge(b[r >> 1] | 0, x, q) | 0; b[r >> 1] = u; u = (Z(v, u << 16 >> 16) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[r >> 1] = u; s = (u & 65535) - (u >>> 15 & 1) | 0; s = s << 16 >> 31 ^ s; t = s & 65535; if (t << 16 >> 16 > 655) t = (((s << 16 >> 16) + 261489 | 0) >>> 2) + 655 & 65535; t = t << 16 >> 16 > 1310 ? 1310 : t; if (!(u & 32768)) u = t; else u = 0 - (t & 65535) & 65535; b[r >> 1] = u; if ((w | 0) > 0) w = w + -1 | 0; else break } if ((L | 0) > 0) L = L + -1 | 0; else break } } if (b[X >> 1] | 0) { x = d + 32 | 0; w = d + 12 | 0; t = x; v = w; M = t + 20 | 0; do { a[t >> 0] = a[v >> 0] | 0; t = t + 1 | 0; v = v + 1 | 0; } while ((t | 0) < (M | 0)); v = d + 4 | 0; s = b[v >> 1] | 0; r = d + 6 | 0; b[r >> 1] = s; do if (b[d + 402 >> 1] | 0) { t = b[d >> 1] | 0; b[d >> 1] = 0; t = t << 16 >> 16 < 32 ? t : 32; M = t << 16 >> 16; u = M << 10; if ((u | 0) != (M << 26 >> 16 | 0)) { c[q >> 2] = 1; u = t << 16 >> 16 > 0 ? 32767 : -32768; } if (t << 16 >> 16 > 1) u = Td(1024, u & 65535) | 0; else u = 16384; b[d + 2 >> 1] = u; bb(g, b[m >> 1] | 0, c[n + 60 >> 2] | 0); ab(g, 8, 0, m + 2 | 0, n, w, q); t = g; M = t + 20 | 0; do { a[t >> 0] = 0; t = t + 1 | 0; } while ((t | 0) < (M | 0)); s = b[m + 8 >> 1] | 0; s = s << 16 >> 16 == 0 ? -32768 : ((s + 64 & 65535) > 127 ? (s << 16 >> 16 > 0 ? 32767 : 32768) : s << 16 >> 16 << 9) + 60416 & 65535; b[v >> 1] = s; if ((b[d + 412 >> 1] | 0) != 0 ? (c[d + 408 >> 2] | 0) != 0 : 0) break; t = x; v = w; M = t + 20 | 0; do { a[t >> 0] = a[v >> 0] | 0; t = t + 1 | 0; v = v + 1 | 0; } while ((t | 0) < (M | 0)); b[r >> 1] = s; } while (0); t = s << 16 >> 16; if (s << 16 >> 16 < 0) t = ~((t ^ -2) >> 1); else t = t >>> 1; t = t + 56536 | 0; u = t << 16; if ((u | 0) > 0) t = 0; else t = (u | 0) < -946077696 ? -14436 : t & 65535; b[h >> 1] = t; b[h + 2 >> 1] = t; b[h + 4 >> 1] = t; b[h + 6 >> 1] = t; m = ((t << 16 >> 16) * 5443 | 0) >>> 15 & 65535; b[h + 8 >> 1] = m; b[h + 10 >> 1] = m; b[h + 12 >> 1] = m; b[h + 14 >> 1] = m; } t = ((b[636 + (l << 1) >> 1] | 0) * 104864 | 0) >>> 15 << 16; if ((t | 0) < 0) t = ~((t >> 16 ^ -32) >> 5); else t = t >> 21; l = d + 394 | 0; b[l >> 1] = Rd(((b[l >> 1] | 0) * 29491 | 0) >>> 15 & 65535, t & 65535, q) | 0; h = (e[d >> 1] << 16) + 65536 | 0; t = h >> 16; n = d + 2 | 0; t = (Z(((h << 10 >> 26 | 0) == (t | 0) ? h >>> 6 : t >>> 15 ^ 32767) << 16 >> 16, b[n >> 1] | 0) | 0) >> 15; if ((t | 0) > 32767) { c[q >> 2] = 1; t = 32767; } s = t & 65535; if (s << 16 >> 16 <= 1024) if (s << 16 >> 16 < -2048) w = -32768; else w = t << 4 & 65535; else w = 16384; m = d + 4 | 0; x = w << 16 >> 16; u = Z(b[m >> 1] | 0, x) | 0; if ((u | 0) == 1073741824) { c[q >> 2] = 1; L = 2147483647; } else L = u << 1; u = (Z(b[d + 30 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } y = u & 65535; b[Q + 18 >> 1] = y; u = (Z(b[d + 28 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q + 16 >> 1] = u; u = (Z(b[d + 26 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q + 14 >> 1] = u; u = (Z(b[d + 24 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q + 12 >> 1] = u; u = (Z(b[d + 22 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q + 10 >> 1] = u; u = (Z(b[d + 20 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q + 8 >> 1] = u; u = (Z(b[d + 18 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q + 6 >> 1] = u; u = (Z(b[d + 16 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q + 4 >> 1] = u; u = (Z(b[d + 14 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q + 2 >> 1] = u; u = (Z(b[d + 12 >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[Q >> 1] = u; h = d + 6 | 0; x = 16384 - (w & 65535) << 16 >> 16; u = Z(b[h >> 1] | 0, x) | 0; if ((u | 0) != 1073741824) { t = (u << 1) + L | 0; if ((u ^ L | 0) > 0 & (t ^ L | 0) < 0) { c[q >> 2] = 1; K = (L >>> 31) + 2147483647 | 0; } else K = t; } else { c[q >> 2] = 1; K = 2147483647; } t = y; v = 9; while (1) { s = Q + (v << 1) | 0; u = (Z(b[d + 32 + (v << 1) >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } t = Rd(t, u & 65535, q) | 0; b[s >> 1] = t; M = t << 16 >> 16; u = M << 1; if ((u | 0) != (M << 17 >> 16 | 0)) { c[q >> 2] = 1; u = t << 16 >> 16 > 0 ? 32767 : -32768; } b[s >> 1] = u; u = v + -1 | 0; if ((v | 0) <= 0) break; t = b[Q + (u << 1) >> 1] | 0; v = u; } L = d + 374 | 0; u = ((e[L >> 1] << 16) + -161021952 >> 16) * 9830 >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } u = 4096 - (u & 65535) | 0; t = u << 16; if ((t | 0) > 268369920) x = 32767; else x = (t | 0) < 0 ? 0 : u << 19 >> 16; J = d + 8 | 0; u = Ga(J, 3) | 0; ne(Q, O, 10, q); t = P; v = O; M = t + 20 | 0; do { b[t >> 1] = b[v >> 1] | 0; t = t + 2 | 0; v = v + 2 | 0; } while ((t | 0) < (M | 0)); t = (u << 16 >> 16) * 10 | 0; v = 9; while (1) { s = P + (v << 1) | 0; r = b[s >> 1] | 0; u = (Z(b[d + 214 + (v + t << 1) >> 1] | 0, x) | 0) >> 15; if ((u | 0) > 32767) { c[q >> 2] = 1; u = 32767; } b[s >> 1] = Rd(r, u & 65535, q) | 0; if ((v | 0) > 0) v = v + -1 | 0; else break } Ae(O, 205, 10, q); Ae(P, 205, 10, q); t = g + 20 | 0; v = O; M = t + 20 | 0; do { a[t >> 0] = a[v >> 0] | 0; t = t + 1 | 0; v = v + 1 | 0; } while ((t | 0) < (M | 0)); me(O, Q, 10, q); me(P, R, 10, q); he(Q, N, q); he(R, V, q); t = p; v = N; M = t + 22 | 0; do { a[t >> 0] = a[v >> 0] | 0; t = t + 1 | 0; v = v + 1 | 0; } while ((t | 0) < (M | 0)); t = p + 22 | 0; v = N; M = t + 22 | 0; do { a[t >> 0] = a[v >> 0] | 0; t = t + 1 | 0; v = v + 1 | 0; } while ((t | 0) < (M | 0)); t = p + 44 | 0; v = N; M = t + 22 | 0; do { a[t >> 0] = a[v >> 0] | 0; t = t + 1 | 0; v = v + 1 | 0; } while ((t | 0) < (M | 0)); t = p + 66 | 0; v = N; M = t + 22 | 0; do { a[t >> 0] = a[v >> 0] | 0; t = t + 1 | 0; v = v + 1 | 0; } while ((t | 0) < (M | 0)); Fa(N + 2 | 0, S, q); u = 0; t = 32767; do { s = b[S + (u << 1) >> 1] | 0; s = Z(s, s) | 0; if (s >>> 0 < 1073741824) s = 32767 - (s >>> 15) | 0; else { c[q >> 2] = 1; s = 0; } t = (Z(s << 16 >> 16, t << 16 >> 16) | 0) >> 15; if ((t | 0) > 32767) { c[q >> 2] = 1; t = 32767; } u = u + 1 | 0; } while ((u | 0) != 10); de(t << 16 >> 16, T, U, q); t = (e[T >> 1] << 16) + -983040 | 0; s = t >> 16; s = De(Ge(0, Rd(((t << 12 >> 28 | 0) == (s | 0) ? t >>> 4 : s >>> 15 ^ 32767) & 65535, De(b[U >> 1] | 0, 3, q) | 0, q) | 0, q) | 0, 1, q) | 0; t = (b[L >> 1] | 0) * 29491 >> 15; if ((t | 0) > 32767) { c[q >> 2] = 1; t = 32767; } u = s << 16 >> 16; s = u * 3277 >> 15; if ((s | 0) > 32767) { c[q >> 2] = 1; s = 32767; } b[L >> 1] = Rd(t & 65535, s & 65535, q) | 0; s = K >> 10; r = s + 262144 | 0; if ((s | 0) > -1 & (r ^ s | 0) < 0) { c[q >> 2] = 1; r = (s >>> 31) + 2147483647 | 0; } U = u << 4; s = r - U | 0; if (((s ^ r) & (r ^ U) | 0) < 0) { c[q >> 2] = 1; r = (r >>> 31) + 2147483647 | 0; } else r = s; U = b[l >> 1] << 5; s = U + r | 0; if ((U ^ r | 0) > -1 & (s ^ r | 0) < 0) { c[q >> 2] = 1; s = (r >>> 31) + 2147483647 | 0; } u = (re(s >>> 16 & 65535, s >>> 1 & 32767, q) | 0) << 16 >> 16; Ha(J, W, q); r = 39; while (1) { t = W + (r << 1) | 0; s = (Z(b[t >> 1] | 0, u) | 0) >> 15; if ((s | 0) > 32767) { c[q >> 2] = 1; s = 32767; } b[t >> 1] = s; if ((r | 0) > 0) r = r + -1 | 0; else break } He(V, W, o, 40, f, 1); Ha(J, W, q); r = 39; while (1) { t = W + (r << 1) | 0; s = (Z(b[t >> 1] | 0, u) | 0) >> 15; if ((s | 0) > 32767) { c[q >> 2] = 1; s = 32767; } b[t >> 1] = s; if ((r | 0) > 0) r = r + -1 | 0; else break } He(V, W, o + 80 | 0, 40, f, 1); Ha(J, W, q); r = 39; while (1) { t = W + (r << 1) | 0; s = (Z(b[t >> 1] | 0, u) | 0) >> 15; if ((s | 0) > 32767) { c[q >> 2] = 1; s = 32767; } b[t >> 1] = s; if ((r | 0) > 0) r = r + -1 | 0; else break } He(V, W, o + 160 | 0, 40, f, 1); Ha(J, W, q); t = 39; while (1) { r = W + (t << 1) | 0; s = (Z(b[r >> 1] | 0, u) | 0) >> 15; if ((s | 0) > 32767) { c[q >> 2] = 1; s = 32767; } b[r >> 1] = s; if ((t | 0) > 0) t = t + -1 | 0; else break } He(V, W, o + 240 | 0, 40, f, 1); b[j + 14 >> 1] = 20; b[j + 16 >> 1] = 0; if ((k | 0) == 2) { s = b[d >> 1] | 0; s = s << 16 >> 16 > 32 ? 32 : s << 16 >> 16 < 1 ? 8 : s; o = s << 16 >> 16; r = o << 10; if ((r | 0) != (o << 26 >> 16 | 0)) { c[q >> 2] = 1; r = s << 16 >> 16 > 0 ? 32767 : -32768; } b[n >> 1] = Td(1024, r & 65535) | 0; b[d >> 1] = 0; t = d + 32 | 0; v = d + 12 | 0; M = t + 20 | 0; do { a[t >> 0] = a[v >> 0] | 0; t = t + 1 | 0; v = v + 1 | 0; } while ((t | 0) < (M | 0)); q = b[m >> 1] | 0; b[h >> 1] = q; b[m >> 1] = (q & 65535) + 65280; } if (!(b[X >> 1] | 0)) { i = _; return } do if (!(b[d + 402 >> 1] | 0)) { if (b[Y >> 1] | 0) break; i = _; return } while (0); b[d >> 1] = 0; b[d + 412 >> 1] = 1; i = _; return } function gb(a, d, f, g) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0; m = i; i = i + 16 | 0; k = m + 2 | 0; l = m; b[l >> 1] = 0; j = a + 212 | 0; h = (e[j >> 1] | 0) + 10 | 0; h = (h & 65535 | 0) == 80 ? 0 : h & 65535; b[j >> 1] = h; Pe(a + 52 + (h << 16 >> 16 << 1) | 0, d | 0, 20) | 0; h = 0; j = 159; while (1) { n = b[f + (j << 1) >> 1] | 0; n = Z(n, n) | 0; n = (n | 0) == 1073741824 ? 2147483647 : n << 1; d = n + h | 0; if ((n ^ h | 0) > -1 & (d ^ h | 0) < 0) { c[g >> 2] = 1; h = (h >>> 31) + 2147483647 | 0; } else h = d; if ((j | 0) > 0) j = j + -1 | 0; else break } de(h, k, l, g); h = b[k >> 1] | 0; n = h << 16 >> 16; d = n << 10; if ((d | 0) != (n << 26 >> 16 | 0)) { c[g >> 2] = 1; d = h << 16 >> 16 > 0 ? 32767 : -32768; } b[k >> 1] = d; n = b[l >> 1] | 0; h = n << 16 >> 16; if (n << 16 >> 16 < 0) h = ~((h ^ -32) >> 5); else h = h >>> 5; l = a + 392 | 0; n = (e[l >> 1] | 0) + 1 | 0; n = (n & 65535 | 0) == 8 ? 0 : n & 65535; b[l >> 1] = n; b[a + 376 + (n << 16 >> 16 << 1) >> 1] = h + 57015 + d; i = m; return } function hb(a, d, f) { a = a | 0; d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; l = (d | 0) == 4; m = (d | 0) == 5; n = (d | 0) == 6; g = c[a + 408 >> 2] | 0; a:do if ((d + -4 | 0) >>> 0 < 3) k = 4; else { if ((g + -1 | 0) >>> 0 < 2) switch (d | 0) { case 2: case 3: case 7: { k = 4; break a } default: { } } b[a >> 1] = 0; j = 0; } while (0); if ((k | 0) == 4) { b:do if ((g | 0) == 2) { switch (d | 0) { case 2: case 4: case 6: case 7: break; default: { h = 1; break b } } h = 2; } else h = 1; while (0); j = (e[a >> 1] | 0) + 1 & 65535; b[a >> 1] = j; j = (d | 0) != 5 & j << 16 >> 16 > 50 ? 2 : h; } i = a + 398 | 0; if (m & (b[a + 412 >> 1] | 0) == 0) { b[i >> 1] = 0; h = 0; } else h = b[i >> 1] | 0; h = Rd(h, 1, f) | 0; b[i >> 1] = h; f = a + 404 | 0; b[f >> 1] = 0; c:do switch (d | 0) { case 2: case 4: case 5: case 6: case 7: { if (!((d | 0) == 7 & (j | 0) == 0)) { if (h << 16 >> 16 > 30) { b[f >> 1] = 1; b[i >> 1] = 0; b[a + 396 >> 1] = 0; break c } h = a + 396 | 0; g = b[h >> 1] | 0; if (!(g << 16 >> 16)) { b[i >> 1] = 0; break c } else { b[h >> 1] = (g & 65535) + 65535; break c } } else k = 14; break } default: k = 14; } while (0); if ((k | 0) == 14) b[a + 396 >> 1] = 7; if (!j) return j | 0; h = a + 400 | 0; b[h >> 1] = 0; g = a + 402 | 0; b[g >> 1] = 0; if (l) { b[h >> 1] = 1; return j | 0 } if (m) { b[h >> 1] = 1; b[g >> 1] = 1; return j | 0 } if (!n) return j | 0; b[h >> 1] = 1; b[f >> 1] = 0; return j | 0 } function ib(a) { a = a | 0; if (!a) { a = -1; return a | 0 } b[a >> 1] = 1; b[a + 2 >> 1] = 1; b[a + 4 >> 1] = 1; b[a + 6 >> 1] = 1; b[a + 8 >> 1] = 1; b[a + 10 >> 1] = 0; b[a + 12 >> 1] = 1; a = 0; return a | 0 } function jb(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, j = 0, k = 0, l = 0; l = i; i = i + 16 | 0; k = l + 2 | 0; j = l; h = Zd(a, 5) | 0; a = a + 10 | 0; if ((Ge(h, b[a >> 1] | 0, g) | 0) << 16 >> 16 > 0) h = b[a >> 1] | 0; h = (Z(b[674 + (e << 16 >> 16 << 1) >> 1] | 0, h << 16 >> 16) | 0) >> 15; if ((h | 0) > 32767) { c[g >> 2] = 1; h = 32767; } b[f >> 1] = h; Xd(d, k, j, g); Wd(d, b[k >> 1] | 0, b[j >> 1] | 0); i = l; return } function kb(a, c, d, e, f) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; if (!(c << 16 >> 16)) { if (d << 16 >> 16) { c = a + 12 | 0; if ((Ge(b[e >> 1] | 0, b[c >> 1] | 0, f) | 0) << 16 >> 16 > 0) b[e >> 1] = b[c >> 1] | 0; } else c = a + 12 | 0; b[c >> 1] = b[e >> 1] | 0; } b[a + 10 >> 1] = b[e >> 1] | 0; f = a + 2 | 0; b[a >> 1] = b[f >> 1] | 0; d = a + 4 | 0; b[f >> 1] = b[d >> 1] | 0; f = a + 6 | 0; b[d >> 1] = b[f >> 1] | 0; a = a + 8 | 0; b[f >> 1] = b[a >> 1] | 0; b[a >> 1] = b[e >> 1] | 0; return } function lb(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0; g = Zd(a, 5) | 0; a = a + 10 | 0; if ((Ge(g, b[a >> 1] | 0, f) | 0) << 16 >> 16 > 0) g = b[a >> 1] | 0; g = (Z(b[688 + (d << 16 >> 16 << 1) >> 1] | 0, g << 16 >> 16) | 0) >> 15; if ((g | 0) <= 32767) { f = g; f = f & 65535; b[e >> 1] = f; return } c[f >> 2] = 1; f = 32767; f = f & 65535; b[e >> 1] = f; return } function mb(a) { a = a | 0; if (!a) { a = -1; return a | 0 } b[a >> 1] = 1640; b[a + 2 >> 1] = 1640; b[a + 4 >> 1] = 1640; b[a + 6 >> 1] = 1640; b[a + 8 >> 1] = 1640; b[a + 10 >> 1] = 0; b[a + 12 >> 1] = 16384; a = 0; return a | 0 } function nb(a, c, d, e, f) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; if (!(c << 16 >> 16)) { if (d << 16 >> 16) { c = a + 12 | 0; if ((Ge(b[e >> 1] | 0, b[c >> 1] | 0, f) | 0) << 16 >> 16 > 0) b[e >> 1] = b[c >> 1] | 0; } else c = a + 12 | 0; b[c >> 1] = b[e >> 1] | 0; } e = b[e >> 1] | 0; c = a + 10 | 0; b[c >> 1] = e; if ((Ge(e, 16384, f) | 0) << 16 >> 16 > 0) { b[c >> 1] = 16384; c = 16384; } else c = b[c >> 1] | 0; f = a + 2 | 0; b[a >> 1] = b[f >> 1] | 0; e = a + 4 | 0; b[f >> 1] = b[e >> 1] | 0; f = a + 6 | 0; b[e >> 1] = b[f >> 1] | 0; a = a + 8 | 0; b[f >> 1] = b[a >> 1] | 0; b[a >> 1] = c; return } function ob(a, d, e, f, g, h, i) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, l = 0; k = Zd(e, 9) | 0; l = b[e + 16 >> 1] | 0; j = l << 16 >> 16; e = (j + (b[e + 14 >> 1] | 0) | 0) >>> 1; e = (j | 0) < (e << 16 >> 16 | 0) ? l : e & 65535; if (!(d << 16 >> 16 > 5 ? k << 16 >> 16 > d << 16 >> 16 : 0)) return 0; j = e << 16 >> 16; j = ((j << 18 >> 18 | 0) == (j | 0) ? j << 2 : j >>> 15 ^ 32767) & 65535; if (!(f << 16 >> 16 > 6 & g << 16 >> 16 == 0)) j = Ge(j, e, i) | 0; k = k << 16 >> 16 > j << 16 >> 16 ? j : k; l = qe(d) | 0; j = l << 16 >> 16; if (l << 16 >> 16 < 0) { e = 0 - j << 16; if ((e | 0) < 983040) j = d << 16 >> 16 >> (e >> 16) & 65535; else j = 0; } else { e = d << 16 >> 16; g = e << j; if ((g << 16 >> 16 >> j | 0) == (e | 0)) j = g & 65535; else j = (e >>> 15 ^ 32767) & 65535; } f = Z((Td(16383, j) | 0) << 16 >> 16, k << 16 >> 16) | 0; if ((f | 0) == 1073741824) { c[i >> 2] = 1; g = 2147483647; } else g = f << 1; f = Ge(20, l, i) | 0; j = f << 16 >> 16; if (f << 16 >> 16 > 0) f = f << 16 >> 16 < 31 ? g >> j : 0; else { d = 0 - j << 16 >> 16; f = g << d; f = (f >> d | 0) == (g | 0) ? f : g >> 31 ^ 2147483647; } f = (f | 0) > 32767 ? 32767 : f & 65535; f = h << 16 >> 16 != 0 & f << 16 >> 16 > 3072 ? 3072 : f << 16 >> 16; e = 0; do { g = a + (e << 1) | 0; j = Z(b[g >> 1] | 0, f) | 0; if ((j | 0) == 1073741824) { c[i >> 2] = 1; j = 2147483647; } else j = j << 1; b[g >> 1] = j >>> 11; e = e + 1 | 0; } while ((e | 0) != 40); return 0 } function pb(a, e, f, g) { a = a | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0; h = c[g + 104 >> 2] | 0; i = c[g + 96 >> 2] | 0; if (a >>> 0 >= 8) { b[f >> 1] = (d[e >> 0] | 0) >>> 4 & 1; b[f + 2 >> 1] = (d[e >> 0] | 0) >>> 5 & 1; b[f + 4 >> 1] = (d[e >> 0] | 0) >>> 6 & 1; b[f + 6 >> 1] = (d[e >> 0] | 0) >>> 7 & 255; h = h + (a << 1) | 0; if ((b[h >> 1] | 0) > 1) { a = 1; g = 1; i = 4; } else return; while (1) { j = e + a | 0; a = i | 1; b[f + (i << 16 >> 16 << 1) >> 1] = d[j >> 0] & 1; b[f + (a << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 1 & 1; k = i | 3; b[f + (a + 1 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 2 & 1; b[f + (k << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 3 & 1; b[f + (k + 1 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 4 & 1; b[f + (k + 2 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 5 & 1; b[f + (k + 3 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 6 & 1; b[f + (k + 4 << 16 >> 16 << 16 >> 16 << 1) >> 1] = (d[j >> 0] | 0) >>> 7 & 255; g = g + 1 << 16 >> 16; if (g << 16 >> 16 < (b[h >> 1] | 0)) { a = g << 16 >> 16; i = i + 8 << 16 >> 16; } else break } return } k = c[(c[g + 100 >> 2] | 0) + (a << 2) >> 2] | 0; b[f + (b[k >> 1] << 1) >> 1] = (d[e >> 0] | 0) >>> 4 & 1; b[f + (b[k + 2 >> 1] << 1) >> 1] = (d[e >> 0] | 0) >>> 5 & 1; b[f + (b[k + 4 >> 1] << 1) >> 1] = (d[e >> 0] | 0) >>> 6 & 1; b[f + (b[k + 6 >> 1] << 1) >> 1] = (d[e >> 0] | 0) >>> 7 & 255; j = h + (a << 1) | 0; if ((b[j >> 1] | 0) <= 1) return; g = i + (a << 1) | 0; h = 1; a = 1; i = 4; while (1) { h = e + h | 0; i = i << 16 >> 16; if ((i | 0) < (b[g >> 1] | 0)) { b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = d[h >> 0] & 1; i = i + 1 | 0; if ((i | 0) < (b[g >> 1] | 0)) { b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 1 & 1; i = i + 1 | 0; if ((i | 0) < (b[g >> 1] | 0)) { b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 2 & 1; i = i + 1 | 0; if ((i | 0) < (b[g >> 1] | 0)) { b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 3 & 1; i = i + 1 | 0; if ((i | 0) < (b[g >> 1] | 0)) { b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 4 & 1; i = i + 1 | 0; if ((i | 0) < (b[g >> 1] | 0)) { b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 5 & 1; i = i + 1 | 0; if ((i | 0) < (b[g >> 1] | 0)) { b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 6 & 1; i = i + 1 | 0; if ((i | 0) < (b[g >> 1] | 0)) { b[f + (b[k + (i << 1) >> 1] << 1) >> 1] = (d[h >> 0] | 0) >>> 7 & 1; i = i + 1 | 0; } } } } } } } } a = a + 1 << 16 >> 16; if (a << 16 >> 16 < (b[j >> 1] | 0)) h = a << 16 >> 16; else break } return } function qb(a, c, d, e, f) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; switch (d << 16 >> 16) { case 0: { j = 9; while (1) { i = b[a + (j << 1) >> 1] | 0; d = i << 16 >> 16; if (i << 16 >> 16 < 0) d = ~((d ^ -4) >> 2); else d = d >>> 2; h = b[c + (j << 1) >> 1] | 0; g = h << 16 >> 16; if (h << 16 >> 16 < 0) h = ~((g ^ -4) >> 2); else h = g >>> 2; b[e + (j << 1) >> 1] = Rd((i & 65535) - d & 65535, h & 65535, f) | 0; if ((j | 0) > 0) j = j + -1 | 0; else break } return } case 40: { h = 9; while (1) { f = b[a + (h << 1) >> 1] | 0; d = f << 16 >> 16; if (f << 16 >> 16 < 0) g = ~((d ^ -2) >> 1); else g = d >>> 1; f = b[c + (h << 1) >> 1] | 0; d = f << 16 >> 16; if (f << 16 >> 16 < 0) d = ~((d ^ -2) >> 1); else d = d >>> 1; b[e + (h << 1) >> 1] = d + g; if ((h | 0) > 0) h = h + -1 | 0; else break } return } case 80: { j = 9; while (1) { i = b[a + (j << 1) >> 1] | 0; d = i << 16 >> 16; if (i << 16 >> 16 < 0) i = ~((d ^ -4) >> 2); else i = d >>> 2; d = b[c + (j << 1) >> 1] | 0; g = d << 16 >> 16; if (d << 16 >> 16 < 0) h = ~((g ^ -4) >> 2); else h = g >>> 2; b[e + (j << 1) >> 1] = Rd(i & 65535, (d & 65535) - h & 65535, f) | 0; if ((j | 0) > 0) j = j + -1 | 0; else break } return } case 120: { b[e + 18 >> 1] = b[c + 18 >> 1] | 0; b[e + 16 >> 1] = b[c + 16 >> 1] | 0; b[e + 14 >> 1] = b[c + 14 >> 1] | 0; b[e + 12 >> 1] = b[c + 12 >> 1] | 0; b[e + 10 >> 1] = b[c + 10 >> 1] | 0; b[e + 8 >> 1] = b[c + 8 >> 1] | 0; b[e + 6 >> 1] = b[c + 6 >> 1] | 0; b[e + 4 >> 1] = b[c + 4 >> 1] | 0; b[e + 2 >> 1] = b[c + 2 >> 1] | 0; b[e >> 1] = b[c >> 1] | 0; return } default: return } } function rb(a, b) { a = a | 0; b = b | 0; if (!a) { a = -1; return a | 0 } Pe(a | 0, b | 0, 20) | 0; a = 0; return a | 0 } function sb(a, d, e) { a = a | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0; l = 0; do { k = a + (l << 1) | 0; f = b[k >> 1] | 0; i = f & 65535; j = i << 16; f = f << 16 >> 16; if ((f * 5243 | 0) == 1073741824) { c[e >> 2] = 1; h = 2147483647; } else h = f * 10486 | 0; g = j - h | 0; if (((g ^ j) & (h ^ j) | 0) < 0) { c[e >> 2] = 1; h = (i >>> 15) + 2147483647 | 0; } else h = g; f = b[d + (l << 1) >> 1] | 0; g = f * 5243 | 0; if ((g | 0) != 1073741824) { f = (f * 10486 | 0) + h | 0; if ((g ^ h | 0) > 0 & (f ^ h | 0) < 0) { c[e >> 2] = 1; f = (h >>> 31) + 2147483647 | 0; } } else { c[e >> 2] = 1; f = 2147483647; } b[k >> 1] = Ce(f, e) | 0; l = l + 1 | 0; } while ((l | 0) != 10); return } function tb(a) { a = a | 0; var c = 0; if (!a) { c = -1; return c | 0 } c = a + 18 | 0; do { b[a >> 1] = 0; a = a + 2 | 0; } while ((a | 0) < (c | 0)); c = 0; return c | 0 } function ub(a) { a = a | 0; b[a + 14 >> 1] = 1; return } function vb(a) { a = a | 0; b[a + 14 >> 1] = 0; return } function wb(a, d, e, f, g, h, j, k, l, m) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; C = i; i = i + 160 | 0; z = C + 80 | 0; A = C; v = c[l + 120 >> 2] | 0; w = c[l + 124 >> 2] | 0; x = c[l + 128 >> 2] | 0; u = c[l + 132 >> 2] | 0; o = a + 6 | 0; t = a + 8 | 0; b[t >> 1] = b[o >> 1] | 0; r = a + 4 | 0; b[o >> 1] = b[r >> 1] | 0; s = a + 2 | 0; b[r >> 1] = b[s >> 1] | 0; b[s >> 1] = b[a >> 1] | 0; b[a >> 1] = g; l = g << 16 >> 16 < 14746 ? g << 16 >> 16 > 9830 & 1 : 2; n = a + 12 | 0; g = b[n >> 1] | 0; p = g << 15; do if ((p | 0) <= 536870911) if ((p | 0) < -536870912) { c[m >> 2] = 1; g = -2147483648; break } else { g = g << 17; break } else { c[m >> 2] = 1; g = 2147483647; } while (0); y = f << 16 >> 16; q = a + 16 | 0; if ((Ce(g, m) | 0) << 16 >> 16 >= f << 16 >> 16) { p = b[q >> 1] | 0; if (p << 16 >> 16 > 0) { p = (p & 65535) + 65535 & 65535; b[q >> 1] = p; } if (!(p << 16 >> 16)) { g = (b[a >> 1] | 0) < 9830; g = (b[s >> 1] | 0) < 9830 ? (g ? 2 : 1) : g & 1; if ((b[r >> 1] | 0) < 9830) g = (g & 65535) + 1 & 65535; if ((b[o >> 1] | 0) < 9830) g = (g & 65535) + 1 & 65535; if ((b[t >> 1] | 0) < 9830) g = (g & 65535) + 1 & 65535; p = 0; l = g << 16 >> 16 > 2 ? 0 : l; } } else { b[q >> 1] = 2; p = 2; } s = l << 16 >> 16; t = a + 10 | 0; s = (p << 16 >> 16 == 0 ? (s | 0) > ((b[t >> 1] | 0) + 1 | 0) : 0) ? s + 65535 & 65535 : l; a = (b[a + 14 >> 1] | 0) == 1 ? 0 : f << 16 >> 16 < 10 ? 2 : s << 16 >> 16 < 2 & p << 16 >> 16 > 0 ? (s & 65535) + 1 & 65535 : s; b[t >> 1] = a; b[n >> 1] = f; switch (d | 0) { case 4: case 6: case 7: break; default: if (a << 16 >> 16 < 2) { p = 0; l = 0; o = h; n = z; while (1) { if (!(b[o >> 1] | 0)) g = 0; else { l = l << 16 >> 16; b[A + (l << 1) >> 1] = p; g = b[o >> 1] | 0; l = l + 1 & 65535; } b[n >> 1] = g; b[o >> 1] = 0; p = p + 1 << 16 >> 16; if (p << 16 >> 16 >= 40) { t = l; break } else { o = o + 2 | 0; n = n + 2 | 0; } } s = a << 16 >> 16 == 0; s = (d | 0) == 5 ? (s ? v : w) : s ? x : u; if (t << 16 >> 16 > 0) { r = 0; do { q = b[A + (r << 1) >> 1] | 0; l = q << 16 >> 16; a = b[z + (l << 1) >> 1] | 0; if (q << 16 >> 16 < 40) { p = a << 16 >> 16; o = 39 - q & 65535; n = q; l = h + (l << 1) | 0; g = s; while (1) { d = (Z(b[g >> 1] | 0, p) | 0) >>> 15 & 65535; b[l >> 1] = Rd(b[l >> 1] | 0, d, m) | 0; n = n + 1 << 16 >> 16; if (n << 16 >> 16 >= 40) break; else { l = l + 2 | 0; g = g + 2 | 0; } } if (q << 16 >> 16 > 0) { l = s + (o + 1 << 1) | 0; B = 36; } } else { l = s; B = 36; } if ((B | 0) == 36) { B = 0; g = a << 16 >> 16; p = 0; o = h; while (1) { d = (Z(b[l >> 1] | 0, g) | 0) >>> 15 & 65535; b[o >> 1] = Rd(b[o >> 1] | 0, d, m) | 0; p = p + 1 << 16 >> 16; if (p << 16 >> 16 >= q << 16 >> 16) break; else { o = o + 2 | 0; l = l + 2 | 0; } } } r = r + 1 | 0; } while ((r & 65535) << 16 >> 16 != t << 16 >> 16) } } } r = j << 16 >> 16; s = y << 1; g = k << 16 >> 16; n = 0 - g << 16; l = n >> 16; if (k << 16 >> 16 > 0) { p = 0; o = e; while (1) { a = Z(b[e + (p << 1) >> 1] | 0, r) | 0; if ((a | 0) == 1073741824) { c[m >> 2] = 1; n = 2147483647; } else n = a << 1; k = Z(s, b[h >> 1] | 0) | 0; a = k + n | 0; if ((k ^ n | 0) > -1 & (a ^ n | 0) < 0) { c[m >> 2] = 1; a = (n >>> 31) + 2147483647 | 0; } k = a << g; b[o >> 1] = Ce((k >> g | 0) == (a | 0) ? k : a >> 31 ^ 2147483647, m) | 0; p = p + 1 | 0; if ((p | 0) == 40) break; else { h = h + 2 | 0; o = o + 2 | 0; } } i = C; return } if ((n | 0) < 2031616) { p = 0; o = e; while (1) { a = Z(b[e + (p << 1) >> 1] | 0, r) | 0; if ((a | 0) == 1073741824) { c[m >> 2] = 1; n = 2147483647; } else n = a << 1; k = Z(s, b[h >> 1] | 0) | 0; a = k + n | 0; if ((k ^ n | 0) > -1 & (a ^ n | 0) < 0) { c[m >> 2] = 1; a = (n >>> 31) + 2147483647 | 0; } b[o >> 1] = Ce(a >> l, m) | 0; p = p + 1 | 0; if ((p | 0) == 40) break; else { h = h + 2 | 0; o = o + 2 | 0; } } i = C; return } else { o = 0; n = e; while (1) { a = Z(b[e + (o << 1) >> 1] | 0, r) | 0; if ((a | 0) == 1073741824) { c[m >> 2] = 1; a = 2147483647; } else a = a << 1; k = Z(s, b[h >> 1] | 0) | 0; if ((k ^ a | 0) > -1 & (k + a ^ a | 0) < 0) c[m >> 2] = 1; b[n >> 1] = Ce(0, m) | 0; o = o + 1 | 0; if ((o | 0) == 40) break; else { h = h + 2 | 0; n = n + 2 | 0; } } i = C; return } } function xb(a) { a = a | 0; if (!a) { a = -1; return a | 0 } ;b[a >> 1] = 0; b[a + 2 >> 1] = 0; b[a + 4 >> 1] = 0; b[a + 6 >> 1] = 0; b[a + 8 >> 1] = 0; b[a + 10 >> 1] = 0; a = 0; return a | 0 } function yb(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; if (d << 16 >> 16 <= 0) return; f = a + 10 | 0; j = a + 8 | 0; l = a + 4 | 0; m = a + 6 | 0; n = a + 2 | 0; g = b[l >> 1] | 0; h = b[m >> 1] | 0; i = b[a >> 1] | 0; k = b[n >> 1] | 0; o = 0; while (1) { p = b[f >> 1] | 0; q = b[j >> 1] | 0; b[f >> 1] = q; r = b[c >> 1] | 0; b[j >> 1] = r; p = ((r << 16 >> 16) * 7699 | 0) + ((Z(i << 16 >> 16, -7667) | 0) + (((g << 16 >> 16) * 15836 | 0) + ((h << 16 >> 16) * 15836 >> 15)) + ((Z(k << 16 >> 16, -7667) | 0) >> 15)) + (Z(q << 16 >> 16, -15398) | 0) + ((p << 16 >> 16) * 7699 | 0) | 0; q = p << 3; p = (q >> 3 | 0) == (p | 0) ? q : p >> 31 ^ 2147483647; q = p << 1; b[c >> 1] = Ce((q >> 1 | 0) == (p | 0) ? q : p >> 31 ^ 2147483647, e) | 0; i = b[l >> 1] | 0; b[a >> 1] = i; k = b[m >> 1] | 0; b[n >> 1] = k; g = p >>> 16 & 65535; b[l >> 1] = g; h = (p >>> 1) - (p >> 16 << 15) & 65535; b[m >> 1] = h; o = o + 1 << 16 >> 16; if (o << 16 >> 16 >= d << 16 >> 16) break; else c = c + 2 | 0; } return } function zb(a) { a = a | 0; if (!a) a = -1; else { b[a >> 1] = 0; a = 0; } return a | 0 } function Ab(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0; j = f << 16 >> 16; h = d + (j + -1 << 1) | 0; j = j + -2 | 0; k = b[h >> 1] | 0; if (f << 16 >> 16 < 2) f = e << 16 >> 16; else { f = e << 16 >> 16; i = 0; d = d + (j << 1) | 0; while (1) { e = (Z(b[d >> 1] | 0, f) | 0) >> 15; if ((e | 0) > 32767) { c[g >> 2] = 1; e = 32767; } b[h >> 1] = Ge(b[h >> 1] | 0, e & 65535, g) | 0; h = h + -2 | 0; i = i + 1 << 16 >> 16; if ((i << 16 >> 16 | 0) > (j | 0)) break; else d = d + -2 | 0; } } f = (Z(b[a >> 1] | 0, f) | 0) >> 15; if ((f | 0) <= 32767) { j = f; j = j & 65535; i = b[h >> 1] | 0; g = Ge(i, j, g) | 0; b[h >> 1] = g; b[a >> 1] = k; return } c[g >> 2] = 1; j = 32767; j = j & 65535; i = b[h >> 1] | 0; g = Ge(i, j, g) | 0; b[h >> 1] = g; b[a >> 1] = k; return } function Bb(a) { a = a | 0; var c = 0, d = 0, e = 0; if (!a) { e = -1; return e | 0 } Qe(a + 104 | 0, 0, 340) | 0; c = a + 102 | 0; d = a; e = d + 100 | 0; do { b[d >> 1] = 0; d = d + 2 | 0; } while ((d | 0) < (e | 0)); Ba(c) | 0; zb(a + 100 | 0) | 0; e = 0; return e | 0 } function Cb(d, e, f, g, h) { d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; w = i; i = i + 96 | 0; s = w + 22 | 0; t = w; u = w + 44 | 0; Pe(d + 124 | 0, f | 0, 320) | 0; o = u + 22 | 0; p = d + 100 | 0; q = d + 80 | 0; r = d + 102 | 0; if ((e & -2 | 0) == 6) { n = 0; while (1) { Ie(g, 702, s); Ie(g, 722, t); m = d + 104 + (n + 10 << 1) | 0; Be(s, m, d, 40); k = u; j = s; e = k + 22 | 0; do { b[k >> 1] = b[j >> 1] | 0; k = k + 2 | 0; j = j + 2 | 0; } while ((k | 0) < (e | 0)); k = o; e = k + 22 | 0; do { b[k >> 1] = 0; k = k + 2 | 0; } while ((k | 0) < (e | 0)); He(t, u, u, 22, o, 0); e = 0; k = 21; do { j = b[u + (k << 16 >> 16 << 1) >> 1] | 0; j = Z(j, j) | 0; if ((j | 0) == 1073741824) { v = 7; break } l = j << 1; j = l + e | 0; if ((l ^ e | 0) > -1 & (j ^ e | 0) < 0) { c[h >> 2] = 1; e = (e >>> 31) + 2147483647 | 0; } else e = j; k = k + -1 << 16 >> 16; } while (k << 16 >> 16 > -1); if ((v | 0) == 7) { v = 0; c[h >> 2] = 1; } l = e >>> 16 & 65535; j = 20; e = 0; k = 20; while (1) { j = Z(b[u + (j + 1 << 1) >> 1] | 0, b[u + (j << 1) >> 1] | 0) | 0; if ((j | 0) == 1073741824) { v = 13; break } x = j << 1; j = x + e | 0; if ((x ^ e | 0) > -1 & (j ^ e | 0) < 0) { c[h >> 2] = 1; e = (e >>> 31) + 2147483647 | 0; } else e = j; j = (k & 65535) + -1 << 16 >> 16; if (j << 16 >> 16 > -1) { j = j << 16 >> 16; k = k + -1 | 0; } else break } if ((v | 0) == 13) { v = 0; c[h >> 2] = 1; } e = e >> 16; if ((e | 0) < 1) e = 0; else e = Td((e * 26214 | 0) >>> 15 & 65535, l) | 0; Ab(p, d, e, 40, h); e = f + (n << 1) | 0; He(t, d, e, 40, q, 1); Ca(r, m, e, 29491, 40, h); e = (n << 16) + 2621440 | 0; if ((e | 0) < 10485760) { n = e >> 16; g = g + 22 | 0; } else break } k = d + 104 | 0; j = d + 424 | 0; e = k + 20 | 0; do { a[k >> 0] = a[j >> 0] | 0; k = k + 1 | 0; j = j + 1 | 0; } while ((k | 0) < (e | 0)); i = w; return } else { n = 0; while (1) { Ie(g, 742, s); Ie(g, 762, t); m = d + 104 + (n + 10 << 1) | 0; Be(s, m, d, 40); k = u; j = s; e = k + 22 | 0; do { b[k >> 1] = b[j >> 1] | 0; k = k + 2 | 0; j = j + 2 | 0; } while ((k | 0) < (e | 0)); k = o; e = k + 22 | 0; do { b[k >> 1] = 0; k = k + 2 | 0; } while ((k | 0) < (e | 0)); He(t, u, u, 22, o, 0); e = 0; k = 21; do { j = b[u + (k << 16 >> 16 << 1) >> 1] | 0; j = Z(j, j) | 0; if ((j | 0) == 1073741824) { v = 22; break } x = j << 1; j = x + e | 0; if ((x ^ e | 0) > -1 & (j ^ e | 0) < 0) { c[h >> 2] = 1; e = (e >>> 31) + 2147483647 | 0; } else e = j; k = k + -1 << 16 >> 16; } while (k << 16 >> 16 > -1); if ((v | 0) == 22) { v = 0; c[h >> 2] = 1; } l = e >>> 16 & 65535; j = 20; e = 0; k = 20; while (1) { j = Z(b[u + (j + 1 << 1) >> 1] | 0, b[u + (j << 1) >> 1] | 0) | 0; if ((j | 0) == 1073741824) { v = 28; break } x = j << 1; j = x + e | 0; if ((x ^ e | 0) > -1 & (j ^ e | 0) < 0) { c[h >> 2] = 1; e = (e >>> 31) + 2147483647 | 0; } else e = j; j = (k & 65535) + -1 << 16 >> 16; if (j << 16 >> 16 > -1) { j = j << 16 >> 16; k = k + -1 | 0; } else break } if ((v | 0) == 28) { v = 0; c[h >> 2] = 1; } e = e >> 16; if ((e | 0) < 1) e = 0; else e = Td((e * 26214 | 0) >>> 15 & 65535, l) | 0; Ab(p, d, e, 40, h); e = f + (n << 1) | 0; He(t, d, e, 40, q, 1); Ca(r, m, e, 29491, 40, h); e = (n << 16) + 2621440 | 0; if ((e | 0) < 10485760) { n = e >> 16; g = g + 22 | 0; } else break } k = d + 104 | 0; j = d + 424 | 0; e = k + 20 | 0; do { a[k >> 0] = a[j >> 0] | 0; k = k + 1 | 0; j = j + 1 | 0; } while ((k | 0) < (e | 0)); i = w; return } } function Db(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; d = Je(1764) | 0; if (!d) { a = -1; return a | 0 } if ((Ua(d) | 0) << 16 >> 16 == 0 ? (e = d + 1748 | 0, (xb(e) | 0) << 16 >> 16 == 0) : 0) { Va(d, 0) | 0; Bb(d + 1304 | 0) | 0; xb(e) | 0; c[d + 1760 >> 2] = 0; c[a >> 2] = d; a = 0; return a | 0 } b = c[d >> 2] | 0; if (!b) { a = -1; return a | 0 } Ke(b); c[d >> 2] = 0; a = -1; return a | 0 } function Eb(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function Fb(a, d, f, g, h) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; v = i; i = i + 208 | 0; u = v + 88 | 0; t = v; s = a + 1164 | 0; j = c[a + 1256 >> 2] | 0; if ((g + -5 | 0) >>> 0 < 2) { r = j + 16 | 0; if ((b[r >> 1] | 0) > 0) { q = c[(c[a + 1260 >> 2] | 0) + 32 >> 2] | 0; p = 0; j = 0; while (1) { o = q + (p << 1) | 0; m = b[o >> 1] | 0; if (m << 16 >> 16 > 0) { l = f; n = 0; k = 0; while (1) { k = e[l >> 1] | k << 1 & 131070; n = n + 1 << 16 >> 16; if (n << 16 >> 16 >= m << 16 >> 16) break; else l = l + 2 | 0; } k = k & 65535; } else k = 0; b[u + (p << 1) >> 1] = k; j = j + 1 << 16 >> 16; if (j << 16 >> 16 < (b[r >> 1] | 0)) { f = f + (b[o >> 1] << 1) | 0; p = j << 16 >> 16; } else break } } } else { q = j + (d << 1) | 0; if ((b[q >> 1] | 0) > 0) { r = c[(c[a + 1260 >> 2] | 0) + (d << 2) >> 2] | 0; o = 0; j = 0; while (1) { p = r + (o << 1) | 0; m = b[p >> 1] | 0; if (m << 16 >> 16 > 0) { l = f; n = 0; k = 0; while (1) { k = e[l >> 1] | k << 1 & 131070; n = n + 1 << 16 >> 16; if (n << 16 >> 16 >= m << 16 >> 16) break; else l = l + 2 | 0; } k = k & 65535; } else k = 0; b[u + (o << 1) >> 1] = k; j = j + 1 << 16 >> 16; if (j << 16 >> 16 < (b[q >> 1] | 0)) { f = f + (b[p >> 1] << 1) | 0; o = j << 16 >> 16; } else break } } } Wa(a, d, u, g, h, t); Cb(a + 1304 | 0, d, h, t, s); yb(a + 1748 | 0, h, 160, s); j = 0; do { a = h + (j << 1) | 0; b[a >> 1] = e[a >> 1] & 65528; j = j + 1 | 0; } while ((j | 0) != 160); i = v; return } function Gb(a, f, g, h) { a = a | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0; j = c[h + 100 >> 2] | 0; k = (e[(c[h + 96 >> 2] | 0) + (a << 1) >> 1] | 0) + 65535 | 0; h = k & 65535; i = h << 16 >> 16 > -1; if (a >>> 0 < 8) { if (!i) return; j = c[j + (a << 2) >> 2] | 0; i = k << 16 >> 16; while (1) { b[g + (b[j + (i << 1) >> 1] << 1) >> 1] = (d[f + (i >> 3) >> 0] | 0) >>> (i & 7 ^ 7) & 1; h = h + -1 << 16 >> 16; if (h << 16 >> 16 > -1) i = h << 16 >> 16; else break } return } else { if (!i) return; i = k << 16 >> 16; while (1) { b[g + (i << 1) >> 1] = (d[f + (i >> 3) >> 0] | 0) >>> (i & 7 ^ 7) & 1; h = h + -1 << 16 >> 16; if (h << 16 >> 16 > -1) i = h << 16 >> 16; else break } return } } function Hb(a, b, c) { a = a | 0; b = b | 0; c = c | 0; a = vd(a, c, 31764) | 0; return ((sd(b) | 0 | a) << 16 >> 16 != 0) << 31 >> 31 | 0 } function Ib(a, b) { a = a | 0; b = b | 0; wd(a); td(b); return } function Jb(d, f, g, h, j, k, l) { d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; var m = 0, n = 0, o = 0, p = 0, q = 0; q = i; i = i + 512 | 0; m = q + 8 | 0; n = q + 4 | 0; o = q; c[o >> 2] = 0; p = l << 16 >> 16 == 3; if (!((l & 65535) < 2 | p & 1)) { if (l << 16 >> 16 != 2) { j = -1; i = q; return j | 0 } xd(d, g, h, m + 2 | 0, o); d = c[o >> 2] | 0; c[k >> 2] = d; ud(f, d, n); f = c[n >> 2] | 0; b[m >> 1] = f; b[m + 490 >> 1] = (f | 0) == 3 ? -1 : g & 65535; a[j >> 0] = f; f = 1; do { m = m + 1 | 0; a[j + f >> 0] = a[m >> 0] | 0; f = f + 1 | 0; } while ((f | 0) != 492); m = 492; i = q; return m | 0 } xd(d, g, h, m, o); ud(f, c[o >> 2] | 0, n); h = c[n >> 2] | 0; if ((h | 0) != 3) { f = c[o >> 2] | 0; c[k >> 2] = f; if ((f | 0) == 8) { switch (h | 0) { case 1: { b[m + 70 >> 1] = 0; break } case 2: { o = m + 70 | 0; b[o >> 1] = e[o >> 1] | 0 | 1; break } default: { } } b[m + 72 >> 1] = g & 1; b[m + 74 >> 1] = g >>> 1 & 1; b[m + 76 >> 1] = g >>> 2 & 1; f = 8; } } else { c[k >> 2] = 15; f = 15; } if (p) { tc(f, m, j, (c[d + 4 >> 2] | 0) + 2392 | 0); j = b[3404 + (c[k >> 2] << 16 >> 16 << 1) >> 1] | 0; i = q; return j | 0 } switch (l << 16 >> 16) { case 0: { sc(f, m, j, (c[d + 4 >> 2] | 0) + 2392 | 0); j = b[3404 + (c[k >> 2] << 16 >> 16 << 1) >> 1] | 0; i = q; return j | 0 } case 1: { rc(f, m, j, (c[d + 4 >> 2] | 0) + 2392 | 0); j = b[3436 + (c[k >> 2] << 16 >> 16 << 1) >> 1] | 0; i = q; return j | 0 } default: { j = -1; i = q; return j | 0 } } return 0 } function Kb(a, c, d, e, f, g) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; y = i; i = i + 480 | 0; x = y; g = 240; l = f; k = a; j = x; h = 0; while (1) { w = ((Z(b[l >> 1] | 0, b[k >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[j >> 1] = w; w = w << 16; h = (Z(w >> 15, w >> 16) | 0) + h | 0; if ((h | 0) < 0) { m = 4; break } g = g + -1 | 0; if (!((g & 65535) << 16 >> 16)) { g = 0; break } else { l = l + 2 | 0; k = k + 2 | 0; j = j + 2 | 0; } } if ((m | 0) == 4) { h = g & 65535; j = 240 - g | 0; if (!(h << 16 >> 16)) g = 0; else { l = h; k = f + (j << 1) | 0; g = a + (j << 1) | 0; h = x + (j << 1) | 0; while (1) { b[h >> 1] = ((Z(b[k >> 1] | 0, b[g >> 1] | 0) | 0) + 16384 | 0) >>> 15; l = l + -1 << 16 >> 16; if (!(l << 16 >> 16)) { g = 0; break } else { k = k + 2 | 0; g = g + 2 | 0; h = h + 2 | 0; } } } do { k = g & 65535; g = 120; j = x; h = 0; while (1) { w = (b[j >> 1] | 0) >>> 2; u = j + 2 | 0; b[j >> 1] = w; w = w << 16 >> 16; w = Z(w, w) | 0; v = (b[u >> 1] | 0) >>> 2; b[u >> 1] = v; v = v << 16 >> 16; h = ((Z(v, v) | 0) + w << 1) + h | 0; g = g + -1 << 16 >> 16; if (!(g << 16 >> 16)) break; else j = j + 4 | 0; } g = k + 4 | 0; } while ((h | 0) < 1) } w = h + 1 | 0; v = (pe(w) | 0) << 16 >> 16; w = w << v; b[d >> 1] = w >>> 16; b[e >> 1] = (w >>> 1) - (w >> 16 << 15); w = x + 478 | 0; l = c << 16 >> 16; if (c << 16 >> 16 <= 0) { x = v - g | 0; x = x & 65535; i = y; return x | 0 } r = x + 476 | 0; s = v + 1 | 0; t = 239 - l | 0; u = x + (236 - l << 1) | 0; c = l; d = d + (l << 1) | 0; e = e + (l << 1) | 0; while (1) { m = Z((t >>> 1) + 65535 & 65535, -2) | 0; k = x + (m + 236 << 1) | 0; m = u + (m << 1) | 0; f = 240 - c | 0; q = f + -1 | 0; j = x + (q << 1) | 0; a = q >>> 1 & 65535; f = x + (f + -2 << 1) | 0; l = Z(b[w >> 1] | 0, b[j >> 1] | 0) | 0; if (!(a << 16 >> 16)) { m = f; k = r; } else { p = r; o = w; while (1) { h = j + -4 | 0; n = o + -4 | 0; l = (Z(b[p >> 1] | 0, b[f >> 1] | 0) | 0) + l | 0; a = a + -1 << 16 >> 16; l = (Z(b[n >> 1] | 0, b[h >> 1] | 0) | 0) + l | 0; if (!(a << 16 >> 16)) break; else { f = j + -6 | 0; p = o + -6 | 0; j = h; o = n; } } } if (q & 1) l = (Z(b[k >> 1] | 0, b[m >> 1] | 0) | 0) + l | 0; q = l << s; b[d >> 1] = q >>> 16; b[e >> 1] = (q >>> 1) - (q >> 16 << 15); if ((c & 65535) + -1 << 16 >> 16 << 16 >> 16 > 0) { t = t + 1 | 0; u = u + 2 | 0; c = c + -1 | 0; d = d + -2 | 0; e = e + -2 | 0; } else break } x = v - g | 0; x = x & 65535; i = y; return x | 0 } function Lb(a, c, d, f, g, h, j, k) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; E = i; i = i + 3440 | 0; D = E + 3420 | 0; z = E + 3400 | 0; A = E + 3224 | 0; C = E; x = E + 3320 | 0; B = E + 3240 | 0; y = E + 24 | 0; hc(d, a, x, 2, k); rd(x, c, B, A, 5, z, 5, k); fc(d, B, y, k); pd(10, 5, 5, x, y, z, A, C, k); c = f; k = c + 80 | 0; do { b[c >> 1] = 0; c = c + 2 | 0; } while ((c | 0) < (k | 0)); b[h >> 1] = 65535; b[h + 2 >> 1] = 65535; b[h + 4 >> 1] = 65535; b[h + 6 >> 1] = 65535; b[h + 8 >> 1] = 65535; p = 0; q = C; r = D; do { a = b[q >> 1] | 0; q = q + 2 | 0; l = (a * 6554 | 0) >>> 15; m = l << 16 >> 16; c = f + (a << 1) | 0; k = b[c >> 1] | 0; if ((b[B + (a << 1) >> 1] | 0) > 0) { b[c >> 1] = k + 4096; b[r >> 1] = 8192; n = l; } else { b[c >> 1] = k + 61440; b[r >> 1] = -8192; n = m + 8 | 0; } r = r + 2 | 0; o = n & 65535; c = a - (l << 2) - m << 16 >> 16; l = h + (c << 1) | 0; k = b[l >> 1] | 0; a = k << 16 >> 16; do if (k << 16 >> 16 >= 0) { m = n << 16 >> 16; if (!((m ^ a) & 8)) { c = h + (c + 5 << 1) | 0; if ((a | 0) > (m | 0)) { b[c >> 1] = k; b[l >> 1] = o; break } else { b[c >> 1] = o; break } } else { c = h + (c + 5 << 1) | 0; if ((a & 7) >>> 0 > (m & 7) >>> 0) { b[c >> 1] = o; break } else { b[c >> 1] = k; b[l >> 1] = o; break } } } else b[l >> 1] = o; while (0); p = p + 1 << 16 >> 16; } while (p << 16 >> 16 < 10); r = D + 2 | 0; p = D + 4 | 0; n = D + 6 | 0; m = D + 8 | 0; l = D + 10 | 0; c = D + 12 | 0; k = D + 14 | 0; a = D + 16 | 0; s = D + 18 | 0; t = 40; u = d + (0 - (b[C >> 1] | 0) << 1) | 0; v = d + (0 - (b[C + 2 >> 1] | 0) << 1) | 0; w = d + (0 - (b[C + 4 >> 1] | 0) << 1) | 0; x = d + (0 - (b[C + 6 >> 1] | 0) << 1) | 0; y = d + (0 - (b[C + 8 >> 1] | 0) << 1) | 0; z = d + (0 - (b[C + 10 >> 1] | 0) << 1) | 0; A = d + (0 - (b[C + 12 >> 1] | 0) << 1) | 0; B = d + (0 - (b[C + 14 >> 1] | 0) << 1) | 0; f = d + (0 - (b[C + 16 >> 1] | 0) << 1) | 0; q = d + (0 - (b[C + 18 >> 1] | 0) << 1) | 0; o = g; while (1) { K = (Z(b[D >> 1] | 0, b[u >> 1] | 0) | 0) >> 7; J = (Z(b[r >> 1] | 0, b[v >> 1] | 0) | 0) >> 7; I = (Z(b[p >> 1] | 0, b[w >> 1] | 0) | 0) >> 7; H = (Z(b[n >> 1] | 0, b[x >> 1] | 0) | 0) >> 7; G = (Z(b[m >> 1] | 0, b[y >> 1] | 0) | 0) >> 7; F = (Z(b[l >> 1] | 0, b[z >> 1] | 0) | 0) >> 7; C = (Z(b[c >> 1] | 0, b[A >> 1] | 0) | 0) >> 7; d = (Z(b[k >> 1] | 0, b[B >> 1] | 0) | 0) >>> 7; g = (Z(b[a >> 1] | 0, b[f >> 1] | 0) | 0) >>> 7; b[o >> 1] = (K + 128 + J + I + H + G + F + C + d + g + ((Z(b[s >> 1] | 0, b[q >> 1] | 0) | 0) >>> 7) | 0) >>> 8; t = t + -1 << 16 >> 16; if (!(t << 16 >> 16)) break; else { u = u + 2 | 0; v = v + 2 | 0; w = w + 2 | 0; x = x + 2 | 0; y = y + 2 | 0; z = z + 2 | 0; A = A + 2 | 0; B = B + 2 | 0; f = f + 2 | 0; q = q + 2 | 0; o = o + 2 | 0; } } c = 0; do { k = h + (c << 1) | 0; a = b[k >> 1] | 0; if ((c | 0) < 5) a = (e[j + ((a & 7) << 1) >> 1] | a & 8) & 65535; else a = b[j + ((a & 7) << 1) >> 1] | 0; b[k >> 1] = a; c = c + 1 | 0; } while ((c | 0) != 10); i = E; return } function Mb(a, d, e, f, g, h, j, k) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0; N = i; i = i + 3456 | 0; I = N + 3448 | 0; G = N + 3360 | 0; E = N + 3368 | 0; p = N + 3280 | 0; H = N + 3200 | 0; F = N; K = (f & 65535) << 17; M = e << 16 >> 16; J = e << 16 >> 16 < 40; if (J) { f = K >> 16; e = M; do { m = (Z(b[d + (e - M << 1) >> 1] | 0, f) | 0) >> 15; if ((m | 0) > 32767) { c[k >> 2] = 1; m = 32767; } D = d + (e << 1) | 0; b[D >> 1] = Rd(b[D >> 1] | 0, m & 65535, k) | 0; e = e + 1 | 0; } while ((e & 65535) << 16 >> 16 != 40) } hc(d, a, E, 1, k); qd(E, H, p, 8); fc(d, H, F, k); D = G + 2 | 0; b[G >> 1] = 0; b[D >> 1] = 1; a = 1; m = 0; o = 1; p = 0; n = -1; do { B = b[2830 + (p << 1) >> 1] | 0; C = B << 16 >> 16; A = 0; do { y = b[2834 + (A << 1) >> 1] | 0; z = y << 16 >> 16; x = a; v = C; u = o; w = B; t = n; while (1) { l = b[E + (v << 1) >> 1] | 0; r = b[F + (v * 80 | 0) + (v << 1) >> 1] | 0; e = z; o = 1; s = y; a = y; n = -1; while (1) { f = Rd(l, b[E + (e << 1) >> 1] | 0, k) | 0; f = f << 16 >> 16; f = (Z(f, f) | 0) >>> 15; q = (b[F + (v * 80 | 0) + (e << 1) >> 1] << 15) + 32768 + ((b[F + (e * 80 | 0) + (e << 1) >> 1] | 0) + r << 14) | 0; if (((Z(f << 16 >> 16, o << 16 >> 16) | 0) - (Z(q >> 16, n << 16 >> 16) | 0) << 1 | 0) > 0) { o = q >>> 16 & 65535; a = s; n = f & 65535; } q = e + 5 | 0; s = q & 65535; if (s << 16 >> 16 >= 40) break; else e = q << 16 >> 16; } if (((Z(n << 16 >> 16, u << 16 >> 16) | 0) - (Z(o << 16 >> 16, t << 16 >> 16) | 0) << 1 | 0) > 0) { b[G >> 1] = w; b[D >> 1] = a; m = w; } else { a = x; o = u; n = t; } q = v + 5 | 0; w = q & 65535; if (w << 16 >> 16 >= 40) break; else { x = a; v = q << 16 >> 16; u = o; t = n; } } A = A + 1 | 0; } while ((A | 0) != 4); p = p + 1 | 0; } while ((p | 0) != 2); r = a; s = m; f = g; e = f + 80 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (e | 0)); o = s; e = 0; q = 0; f = 0; while (1) { m = o << 16 >> 16; l = b[H + (m << 1) >> 1] | 0; a = (m * 6554 | 0) >>> 15; o = a << 16; p = o >> 15; n = m - (p + (a << 3) << 16 >> 17) | 0; switch (n << 16 >> 16 | 0) { case 0: { p = o >> 10; a = 1; break } case 1: { if (!((e & 65535) << 16 >> 16)) a = 0; else { p = a << 22 >> 16 | 16; a = 1; } break } case 2: { p = a << 22 >> 16 | 32; a = 1; break } case 3: { p = a << 17 >> 16 | 1; a = 0; break } case 4: { p = a << 22 >> 16 | 48; a = 1; break } default: { p = a; a = n & 65535; } } p = p & 65535; n = g + (m << 1) | 0; if (l << 16 >> 16 > 0) { b[n >> 1] = 8191; b[I + (e << 1) >> 1] = 32767; m = a << 16 >> 16; if (a << 16 >> 16 < 0) { m = 0 - m << 16; if ((m | 0) < 983040) m = 1 >>> (m >> 16) & 65535; else m = 0; } else { F = 1 << m; m = (F << 16 >> 16 >> m | 0) == 1 ? F & 65535 : 32767; } f = Rd(f, m, k) | 0; } else { b[n >> 1] = -8192; b[I + (e << 1) >> 1] = -32768; } m = Rd(q, p, k) | 0; e = e + 1 | 0; if ((e | 0) == 2) { q = m; break } o = b[G + (e << 1) >> 1] | 0; q = m; } b[j >> 1] = f; p = I + 2 | 0; o = b[I >> 1] | 0; a = 0; n = d + (0 - (s << 16 >> 16) << 1) | 0; m = d + (0 - (r << 16 >> 16) << 1) | 0; do { f = Z(b[n >> 1] | 0, o) | 0; n = n + 2 | 0; if ((f | 0) != 1073741824 ? (L = f << 1, !((f | 0) > 0 & (L | 0) < 0)) : 0) l = L; else { c[k >> 2] = 1; l = 2147483647; } e = Z(b[p >> 1] | 0, b[m >> 1] | 0) | 0; m = m + 2 | 0; if ((e | 0) != 1073741824) { f = (e << 1) + l | 0; if ((e ^ l | 0) > 0 & (f ^ l | 0) < 0) { c[k >> 2] = 1; f = (l >>> 31) + 2147483647 | 0; } } else { c[k >> 2] = 1; f = 2147483647; } b[h + (a << 1) >> 1] = Ce(f, k) | 0; a = a + 1 | 0; } while ((a | 0) != 40); if (!J) { i = N; return q | 0 } e = K >> 16; f = M; do { l = (Z(b[g + (f - M << 1) >> 1] | 0, e) | 0) >> 15; if ((l | 0) > 32767) { c[k >> 2] = 1; l = 32767; } h = g + (f << 1) | 0; b[h >> 1] = Rd(b[h >> 1] | 0, l & 65535, k) | 0; f = f + 1 | 0; } while ((f & 65535) << 16 >> 16 != 40); i = N; return q | 0 } function Nb(a, d, e, f, g, h, j, k, l, m) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; x = i; i = i + 3456 | 0; r = x + 3360 | 0; s = x + 3368 | 0; t = x + 3280 | 0; u = x + 3200 | 0; v = x; w = g << 16 >> 16; p = w << 1; if ((p | 0) == (w << 17 >> 16 | 0)) q = p; else { c[m >> 2] = 1; q = g << 16 >> 16 > 0 ? 32767 : -32768; } w = f << 16 >> 16; n = f << 16 >> 16 < 40; if (n) { g = q << 16 >> 16; o = w; do { f = e + (o << 1) | 0; p = (Z(b[e + (o - w << 1) >> 1] | 0, g) | 0) >> 15; if ((p | 0) > 32767) { c[m >> 2] = 1; p = 32767; } b[f >> 1] = Rd(b[f >> 1] | 0, p & 65535, m) | 0; o = o + 1 | 0; } while ((o & 65535) << 16 >> 16 != 40) } hc(e, d, s, 1, m); qd(s, u, t, 8); fc(e, u, v, m); Ob(a, s, v, l, r); p = Pb(a, r, u, h, e, j, k, m) | 0; if (!n) { i = x; return p | 0 } o = q << 16 >> 16; g = w; do { f = h + (g << 1) | 0; n = (Z(b[h + (g - w << 1) >> 1] | 0, o) | 0) >> 15; if ((n | 0) > 32767) { c[m >> 2] = 1; n = 32767; } b[f >> 1] = Rd(b[f >> 1] | 0, n & 65535, m) | 0; g = g + 1 | 0; } while ((g & 65535) << 16 >> 16 != 40); i = x; return p | 0 } function Ob(a, c, d, f, g) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0; x = g + 2 | 0; b[g >> 1] = 0; b[x >> 1] = 1; v = a << 16 >> 16 << 1; h = 1; w = 0; a = -1; do { u = (w << 3) + v << 16 >> 16; k = b[f + (u << 1) >> 1] | 0; u = b[f + ((u | 1) << 1) >> 1] | 0; i = k << 16 >> 16; a:do if (k << 16 >> 16 < 40) { t = u << 16 >> 16; if (u << 16 >> 16 < 40) s = h; else while (1) { if ((a << 16 >> 16 | 0) < (0 - (h << 16 >> 16) | 0)) { b[g >> 1] = k; b[x >> 1] = u; j = 1; a = -1; } else j = h; h = i + 5 | 0; k = h & 65535; if (k << 16 >> 16 >= 40) { h = j; break a } else { i = h << 16 >> 16; h = j; } } while (1) { q = b[d + (i * 80 | 0) + (i << 1) >> 1] | 0; p = e[c + (i << 1) >> 1] | 0; o = t; h = 1; r = u; j = u; l = -1; while (1) { n = (e[c + (o << 1) >> 1] | 0) + p << 16 >> 16; n = (Z(n, n) | 0) >>> 15; m = (b[d + (i * 80 | 0) + (o << 1) >> 1] << 15) + 32768 + ((b[d + (o * 80 | 0) + (o << 1) >> 1] | 0) + q << 14) | 0; if (((Z(n << 16 >> 16, h << 16 >> 16) | 0) - (Z(m >> 16, l << 16 >> 16) | 0) << 1 | 0) > 0) { h = m >>> 16 & 65535; j = r; l = n & 65535; } m = o + 5 | 0; r = m & 65535; if (r << 16 >> 16 >= 40) break; else o = m << 16 >> 16; } if (((Z(l << 16 >> 16, s << 16 >> 16) | 0) - (Z(h << 16 >> 16, a << 16 >> 16) | 0) << 1 | 0) > 0) { b[g >> 1] = k; b[x >> 1] = j; a = l; } else h = s; i = i + 5 | 0; k = i & 65535; if (k << 16 >> 16 >= 40) break; else { i = i << 16 >> 16; s = h; } } } while (0); w = w + 1 | 0; } while ((w | 0) != 2); return } function Pb(a, d, e, f, g, h, i, j) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, l = 0, m = 0, n = 0, o = 0, p = 0; k = f; l = k + 80 | 0; do { b[k >> 1] = 0; k = k + 2 | 0; } while ((k | 0) < (l | 0)); k = b[d >> 1] | 0; o = (k * 6554 | 0) >>> 15; l = o << 16 >> 16; n = (748250 >>> ((k + (Z(l, -5) | 0) << 16 >> 16) + ((a << 16 >> 16) * 5 | 0) | 0) & 1 | 0) == 0; m = (b[e + (k << 1) >> 1] | 0) > 0; p = m ? 32767 : -32768; b[f + (k << 1) >> 1] = m ? 8191 : -8192; k = d + 2 | 0; a = b[k >> 1] | 0; f = f + (a << 1) | 0; if ((b[e + (a << 1) >> 1] | 0) > 0) { b[f >> 1] = 8191; e = 32767; f = (m & 1 | 2) & 65535; } else { b[f >> 1] = -8192; e = -32768; f = m & 1; } o = ((a * 6554 | 0) >>> 15 << 3) + (n ? o : l + 64 | 0) & 65535; b[i >> 1] = f; n = 0; m = g + (0 - (b[d >> 1] | 0) << 1) | 0; f = g + (0 - (b[k >> 1] | 0) << 1) | 0; do { k = Z(p, b[m >> 1] | 0) | 0; m = m + 2 | 0; if ((k | 0) == 1073741824) { c[j >> 2] = 1; a = 2147483647; } else a = k << 1; l = Z(e, b[f >> 1] | 0) | 0; f = f + 2 | 0; if ((l | 0) != 1073741824) { k = (l << 1) + a | 0; if ((l ^ a | 0) > 0 & (k ^ a | 0) < 0) { c[j >> 2] = 1; k = (a >>> 31) + 2147483647 | 0; } } else { c[j >> 2] = 1; k = 2147483647; } b[h + (n << 1) >> 1] = Ce(k, j) | 0; n = n + 1 | 0; } while ((n | 0) != 40); return o | 0 } function Qb(a, d, f, g, h, j, k, l) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0; U = i; i = i + 3440 | 0; M = U + 3360 | 0; N = U + 3280 | 0; P = U + 3200 | 0; O = U; R = (g & 65535) << 17; T = f << 16 >> 16; Q = f << 16 >> 16 < 40; if (Q) { f = R >> 16; m = T; do { g = (Z(b[d + (m - T << 1) >> 1] | 0, f) | 0) >> 15; if ((g | 0) > 32767) { c[l >> 2] = 1; g = 32767; } L = d + (m << 1) | 0; b[L >> 1] = Rd(b[L >> 1] | 0, g & 65535, l) | 0; m = m + 1 | 0; } while ((m & 65535) << 16 >> 16 != 40) } hc(d, a, M, 1, l); qd(M, P, N, 6); fc(d, P, O, l); L = 1; n = 2; o = 1; g = 0; m = 1; a = -1; p = 1; while (1) { K = 2; s = 2; while (1) { H = 0; I = 0; J = p; G = s; while (1) { if (I << 16 >> 16 < 40) { C = J << 16 >> 16; D = J << 16 >> 16 < 40; E = G << 16 >> 16; F = G << 16 >> 16 < 40; A = I << 16 >> 16; B = I; while (1) { if ((b[N + (A << 1) >> 1] | 0) > -1) { x = b[O + (A * 80 | 0) + (A << 1) >> 1] | 0; if (D) { y = e[M + (A << 1) >> 1] | 0; w = C; r = 1; z = J; f = J; s = 0; q = -1; while (1) { u = (e[M + (w << 1) >> 1] | 0) + y | 0; v = u << 16 >> 16; v = (Z(v, v) | 0) >>> 15; t = (b[O + (A * 80 | 0) + (w << 1) >> 1] << 15) + 32768 + ((b[O + (w * 80 | 0) + (w << 1) >> 1] | 0) + x << 14) | 0; if (((Z(v << 16 >> 16, r << 16 >> 16) | 0) - (Z(t >> 16, q << 16 >> 16) | 0) << 1 | 0) > 0) { r = t >>> 16 & 65535; f = z; s = u & 65535; q = v & 65535; } t = w + 5 | 0; z = t & 65535; if (z << 16 >> 16 >= 40) break; else w = t << 16 >> 16; } } else { r = 1; f = J; s = 0; } if (F) { y = s & 65535; z = f << 16 >> 16; w = (r << 16 >> 16 << 14) + 32768 | 0; v = E; s = 1; x = G; q = G; r = -1; while (1) { u = (e[M + (v << 1) >> 1] | 0) + y << 16 >> 16; u = (Z(u, u) | 0) >>> 15; t = w + (b[O + (v * 80 | 0) + (v << 1) >> 1] << 12) + ((b[O + (A * 80 | 0) + (v << 1) >> 1] | 0) + (b[O + (z * 80 | 0) + (v << 1) >> 1] | 0) << 13) | 0; if (((Z(u << 16 >> 16, s << 16 >> 16) | 0) - (Z(t >> 16, r << 16 >> 16) | 0) << 1 | 0) > 0) { s = t >>> 16 & 65535; q = x; r = u & 65535; } t = v + 5 | 0; x = t & 65535; if (x << 16 >> 16 >= 40) { w = s; v = r; break } else v = t << 16 >> 16; } } else { w = 1; q = G; v = -1; } s = Z(v << 16 >> 16, m << 16 >> 16) | 0; if ((s | 0) == 1073741824) { c[l >> 2] = 1; t = 2147483647; } else t = s << 1; s = Z(w << 16 >> 16, a << 16 >> 16) | 0; if ((s | 0) == 1073741824) { c[l >> 2] = 1; r = 2147483647; } else r = s << 1; s = t - r | 0; if (((s ^ t) & (r ^ t) | 0) < 0) { c[l >> 2] = 1; s = (t >>> 31) + 2147483647 | 0; } z = (s | 0) > 0; n = z ? q : n; o = z ? f : o; g = z ? B : g; m = z ? w : m; a = z ? v : a; } s = A + 5 | 0; B = s & 65535; if (B << 16 >> 16 >= 40) break; else A = s << 16 >> 16; } } H = H + 1 << 16 >> 16; if (H << 16 >> 16 >= 3) break; else { F = G; G = J; J = I; I = F; } } f = K + 2 | 0; s = f & 65535; if (s << 16 >> 16 >= 5) break; else K = f & 65535; } f = L + 2 | 0; p = f & 65535; if (p << 16 >> 16 < 4) L = f & 65535; else { s = n; n = o; break } } f = h; m = f + 80 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (m | 0)); v = g << 16 >> 16; a = b[P + (v << 1) >> 1] | 0; g = (v * 6554 | 0) >>> 15; f = g << 16; m = v - (((f >> 16) * 327680 | 0) >>> 16) | 0; switch (m << 16 >> 16 | 0) { case 1: { g = f >> 12; break } case 2: { g = f >> 8; m = 2; break } case 3: { g = g << 20 >> 16 | 8; m = 1; break } case 4: { g = g << 24 >> 16 | 128; m = 2; break } default: { } } f = h + (v << 1) | 0; if (a << 16 >> 16 > 0) { b[f >> 1] = 8191; z = 32767; o = 65536 << (m << 16 >> 16) >>> 16 & 65535; } else { b[f >> 1] = -8192; z = -32768; o = 0; } t = n << 16 >> 16; n = b[P + (t << 1) >> 1] | 0; f = (t * 6554 | 0) >>> 15; m = f << 16; a = t - (((m >> 16) * 327680 | 0) >>> 16) | 0; switch (a << 16 >> 16 | 0) { case 1: { f = m >> 12; break } case 2: { f = m >> 8; a = 2; break } case 3: { f = f << 20 >> 16 | 8; a = 1; break } case 4: { f = f << 24 >> 16 | 128; a = 2; break } default: { } } m = h + (t << 1) | 0; if (n << 16 >> 16 > 0) { b[m >> 1] = 8191; u = 32767; o = (65536 << (a << 16 >> 16) >>> 16) + (o & 65535) & 65535; } else { b[m >> 1] = -8192; u = -32768; } p = f + g | 0; r = s << 16 >> 16; n = b[P + (r << 1) >> 1] | 0; g = (r * 6554 | 0) >>> 15; f = g << 16; m = r - (((f >> 16) * 327680 | 0) >>> 16) | 0; switch (m << 16 >> 16 | 0) { case 1: { f = f >> 12; break } case 2: { f = f >> 8; m = 2; break } case 3: { f = g << 20 >> 16 | 8; m = 1; break } case 4: { f = g << 24 >> 16 | 128; m = 2; break } default: f = g; } g = h + (r << 1) | 0; if (n << 16 >> 16 > 0) { b[g >> 1] = 8191; s = 32767; g = (65536 << (m << 16 >> 16) >>> 16) + (o & 65535) & 65535; } else { b[g >> 1] = -8192; s = -32768; g = o; } q = p + f | 0; b[k >> 1] = g; o = 0; p = d + (0 - v << 1) | 0; a = d + (0 - t << 1) | 0; n = d + (0 - r << 1) | 0; do { g = Z(b[p >> 1] | 0, z) | 0; p = p + 2 | 0; if ((g | 0) != 1073741824 ? (S = g << 1, !((g | 0) > 0 & (S | 0) < 0)) : 0) m = S; else { c[l >> 2] = 1; m = 2147483647; } g = Z(b[a >> 1] | 0, u) | 0; a = a + 2 | 0; if ((g | 0) != 1073741824) { f = (g << 1) + m | 0; if ((g ^ m | 0) > 0 & (f ^ m | 0) < 0) { c[l >> 2] = 1; f = (m >>> 31) + 2147483647 | 0; } } else { c[l >> 2] = 1; f = 2147483647; } m = Z(b[n >> 1] | 0, s) | 0; n = n + 2 | 0; if ((m | 0) != 1073741824) { g = (m << 1) + f | 0; if ((m ^ f | 0) > 0 & (g ^ f | 0) < 0) { c[l >> 2] = 1; g = (f >>> 31) + 2147483647 | 0; } } else { c[l >> 2] = 1; g = 2147483647; } b[j + (o << 1) >> 1] = Ce(g, l) | 0; o = o + 1 | 0; } while ((o | 0) != 40); g = q & 65535; if (!Q) { i = U; return g | 0 } m = R >> 16; f = T; do { a = (Z(b[h + (f - T << 1) >> 1] | 0, m) | 0) >> 15; if ((a | 0) > 32767) { c[l >> 2] = 1; a = 32767; } j = h + (f << 1) | 0; b[j >> 1] = Rd(b[j >> 1] | 0, a & 65535, l) | 0; f = f + 1 | 0; } while ((f & 65535) << 16 >> 16 != 40); i = U; return g | 0 } function Rb(a, d, f, g, h, j, k, l, m) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0; da = i; i = i + 3456 | 0; _ = da + 3448 | 0; X = da + 3360 | 0; U = da + 3368 | 0; V = da + 3280 | 0; Y = da + 3200 | 0; W = da; aa = (g & 65535) << 17; ca = f << 16 >> 16; $ = f << 16 >> 16 < 40; if ($) { f = aa >> 16; n = ca; do { g = (Z(b[d + (n - ca << 1) >> 1] | 0, f) | 0) >> 15; if ((g | 0) > 32767) { c[m >> 2] = 1; g = 32767; } T = d + (n << 1) | 0; b[T >> 1] = Rd(b[T >> 1] | 0, g & 65535, m) | 0; n = n + 1 | 0; } while ((n & 65535) << 16 >> 16 != 40) } hc(d, a, U, 1, m); qd(U, Y, V, 4); fc(d, Y, W, m); R = X + 2 | 0; b[X >> 1] = 0; S = X + 4 | 0; b[R >> 1] = 1; T = X + 6 | 0; b[S >> 1] = 2; b[T >> 1] = 3; r = 3; p = 2; o = 1; g = 0; f = 1; n = -1; q = 3; do { M = 0; N = 0; O = q; P = 1; Q = 2; while (1) { if (N << 16 >> 16 < 40) { G = P << 16 >> 16; H = P << 16 >> 16 < 40; I = Q << 16 >> 16; J = Q << 16 >> 16 < 40; K = O << 16 >> 16; L = O << 16 >> 16 < 40; F = N << 16 >> 16; E = p; C = o; B = f; D = N; while (1) { if ((b[V + (F << 1) >> 1] | 0) > -1) { t = b[W + (F * 80 | 0) + (F << 1) >> 1] | 0; if (H) { s = e[U + (F << 1) >> 1] | 0; u = G; z = 1; p = P; o = P; x = 0; y = -1; while (1) { w = (e[U + (u << 1) >> 1] | 0) + s | 0; v = w << 16 >> 16; v = (Z(v, v) | 0) >>> 15; A = (b[W + (F * 80 | 0) + (u << 1) >> 1] << 15) + 32768 + ((b[W + (u * 80 | 0) + (u << 1) >> 1] | 0) + t << 14) | 0; if (((Z(v << 16 >> 16, z << 16 >> 16) | 0) - (Z(A >> 16, y << 16 >> 16) | 0) << 1 | 0) > 0) { z = A >>> 16 & 65535; o = p; x = w & 65535; y = v & 65535; } A = u + 5 | 0; p = A & 65535; if (p << 16 >> 16 >= 40) break; else u = A << 16 >> 16; } } else { z = 1; o = P; x = 0; } if (J) { f = x & 65535; a = o << 16 >> 16; t = (z << 16 >> 16 << 14) + 32768 | 0; u = I; A = 1; s = Q; p = Q; y = 0; x = -1; while (1) { w = (e[U + (u << 1) >> 1] | 0) + f | 0; v = w << 16 >> 16; v = (Z(v, v) | 0) >>> 15; z = t + (b[W + (u * 80 | 0) + (u << 1) >> 1] << 12) + ((b[W + (F * 80 | 0) + (u << 1) >> 1] | 0) + (b[W + (a * 80 | 0) + (u << 1) >> 1] | 0) << 13) | 0; if (((Z(v << 16 >> 16, A << 16 >> 16) | 0) - (Z(z >> 16, x << 16 >> 16) | 0) << 1 | 0) > 0) { A = z >>> 16 & 65535; p = s; y = w & 65535; x = v & 65535; } z = u + 5 | 0; s = z & 65535; if (s << 16 >> 16 >= 40) break; else u = z << 16 >> 16; } } else { A = 1; p = Q; y = 0; } if (L) { t = y & 65535; s = p << 16 >> 16; a = o << 16 >> 16; v = (A & 65535) << 16 | 32768; w = K; f = 1; u = O; z = O; A = -1; while (1) { x = (e[U + (w << 1) >> 1] | 0) + t << 16 >> 16; x = (Z(x, x) | 0) >>> 15; y = (b[W + (w * 80 | 0) + (w << 1) >> 1] << 12) + v + ((b[W + (a * 80 | 0) + (w << 1) >> 1] | 0) + (b[W + (s * 80 | 0) + (w << 1) >> 1] | 0) + (b[W + (F * 80 | 0) + (w << 1) >> 1] | 0) << 13) | 0; if (((Z(x << 16 >> 16, f << 16 >> 16) | 0) - (Z(y >> 16, A << 16 >> 16) | 0) << 1 | 0) > 0) { f = y >>> 16 & 65535; z = u; A = x & 65535; } y = w + 5 | 0; u = y & 65535; if (u << 16 >> 16 >= 40) break; else w = y << 16 >> 16; } } else { f = 1; z = O; A = -1; } if (((Z(A << 16 >> 16, B << 16 >> 16) | 0) - (Z(f << 16 >> 16, n << 16 >> 16) | 0) << 1 | 0) > 0) { b[X >> 1] = D; b[R >> 1] = o; b[S >> 1] = p; b[T >> 1] = z; r = z; g = D; n = A; } else { p = E; o = C; f = B; } } else { p = E; o = C; f = B; } w = F + 5 | 0; D = w & 65535; if (D << 16 >> 16 >= 40) break; else { F = w << 16 >> 16; E = p; C = o; B = f; } } } M = M + 1 << 16 >> 16; if (M << 16 >> 16 >= 4) break; else { K = Q; L = O; Q = P; P = N; O = K; N = L; } } q = q + 1 << 16 >> 16; } while (q << 16 >> 16 < 5); A = r; z = p; y = o; x = g; g = h; f = g + 80 | 0; do { b[g >> 1] = 0; g = g + 2 | 0; } while ((g | 0) < (f | 0)); a = x; f = 0; n = 0; g = 0; while (1) { p = a << 16 >> 16; q = b[Y + (p << 1) >> 1] | 0; a = p * 13108 >> 16; o = p - ((a * 327680 | 0) >>> 16) | 0; a = b[l + (a << 1) >> 1] | 0; switch (o << 16 >> 16 | 0) { case 1: { r = a << 16 >> 16 << 3 & 65535; break } case 2: { r = a << 16 >> 16 << 6 & 65535; break } case 3: { r = a << 16 >> 16 << 10 & 65535; break } case 4: { r = ((a & 65535) << 10 | 512) & 65535; o = 3; break } default: r = a; } a = h + (p << 1) | 0; if (q << 16 >> 16 > 0) { b[a >> 1] = 8191; a = 32767; g = (65536 << (o << 16 >> 16) >>> 16) + (g & 65535) & 65535; } else { b[a >> 1] = -8192; a = -32768; } b[_ + (f << 1) >> 1] = a; n = (r & 65535) + (n & 65535) | 0; f = f + 1 | 0; if ((f | 0) == 4) { w = n; break } a = b[X + (f << 1) >> 1] | 0; } b[k >> 1] = g; t = _ + 2 | 0; u = _ + 4 | 0; v = _ + 6 | 0; a = b[_ >> 1] | 0; s = 0; o = d + (0 - (x << 16 >> 16) << 1) | 0; p = d + (0 - (y << 16 >> 16) << 1) | 0; q = d + (0 - (z << 16 >> 16) << 1) | 0; r = d + (0 - (A << 16 >> 16) << 1) | 0; do { g = Z(b[o >> 1] | 0, a) | 0; o = o + 2 | 0; if ((g | 0) != 1073741824 ? (ba = g << 1, !((g | 0) > 0 & (ba | 0) < 0)) : 0) n = ba; else { c[m >> 2] = 1; n = 2147483647; } g = Z(b[t >> 1] | 0, b[p >> 1] | 0) | 0; p = p + 2 | 0; if ((g | 0) != 1073741824) { f = (g << 1) + n | 0; if ((g ^ n | 0) > 0 & (f ^ n | 0) < 0) { c[m >> 2] = 1; f = (n >>> 31) + 2147483647 | 0; } } else { c[m >> 2] = 1; f = 2147483647; } g = Z(b[u >> 1] | 0, b[q >> 1] | 0) | 0; q = q + 2 | 0; if ((g | 0) != 1073741824) { n = (g << 1) + f | 0; if ((g ^ f | 0) > 0 & (n ^ f | 0) < 0) { c[m >> 2] = 1; n = (f >>> 31) + 2147483647 | 0; } } else { c[m >> 2] = 1; n = 2147483647; } f = Z(b[v >> 1] | 0, b[r >> 1] | 0) | 0; r = r + 2 | 0; if ((f | 0) != 1073741824) { g = (f << 1) + n | 0; if ((f ^ n | 0) > 0 & (g ^ n | 0) < 0) { c[m >> 2] = 1; g = (n >>> 31) + 2147483647 | 0; } } else { c[m >> 2] = 1; g = 2147483647; } b[j + (s << 1) >> 1] = Ce(g, m) | 0; s = s + 1 | 0; } while ((s | 0) != 40); g = w & 65535; if (((ca << 16) + -2621440 | 0) > -1 | $ ^ 1) { i = da; return g | 0 } n = aa >> 16; f = ca; do { a = (Z(b[h + (f - ca << 1) >> 1] | 0, n) | 0) >> 15; if ((a | 0) > 32767) { c[m >> 2] = 1; a = 32767; } j = h + (f << 1) | 0; b[j >> 1] = Rd(b[j >> 1] | 0, a & 65535, m) | 0; f = f + 1 | 0; } while ((f & 65535) << 16 >> 16 != 40); i = da; return g | 0 } function Sb(a, d, f, g, h, j, k) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0; L = i; i = i + 3440 | 0; t = L + 3424 | 0; G = L + 3408 | 0; H = L + 3240 | 0; u = L + 3224 | 0; E = L + 3328 | 0; s = L + 3248 | 0; F = L + 24 | 0; K = L + 16 | 0; J = L; gc(f, a, E, 2, 4, 4, k); rd(E, d, s, H, 4, G, 4, k); fc(f, s, F, k); pd(8, 4, 4, E, F, G, H, u, k); d = g; a = d + 80 | 0; do { b[d >> 1] = 0; d = d + 2 | 0; } while ((d | 0) < (a | 0)); b[J >> 1] = -1; b[K >> 1] = -1; C = J + 2 | 0; b[C >> 1] = -1; D = K + 2 | 0; b[D >> 1] = -1; E = J + 4 | 0; b[E >> 1] = -1; F = K + 4 | 0; b[F >> 1] = -1; H = J + 6 | 0; b[H >> 1] = -1; G = K + 6 | 0; b[G >> 1] = -1; q = 0; do { o = b[u + (q << 1) >> 1] | 0; d = o >>> 2; m = d & 65535; a = o & 3; n = (b[s + (o << 1) >> 1] | 0) > 0; o = g + (o << 1) | 0; r = n & 1 ^ 1; b[o >> 1] = (e[o >> 1] | 0) + (n ? 8191 : 57345); b[t + (q << 1) >> 1] = n ? 32767 : -32768; n = J + (a << 1) | 0; o = b[n >> 1] | 0; do if (o << 16 >> 16 >= 0) { p = K + (a << 1) | 0; l = (o << 16 >> 16 | 0) <= (d << 16 >> 16 | 0); d = J + ((a | 4) << 1) | 0; if ((r & 65535 | 0) == (e[p >> 1] & 1 | 0)) if (l) { b[d >> 1] = m; break } else { b[d >> 1] = o; b[n >> 1] = m; b[p >> 1] = r; break } else if (l) { b[d >> 1] = o; b[n >> 1] = m; b[p >> 1] = r; break } else { b[d >> 1] = m; break } } else { b[n >> 1] = m; b[K + (a << 1) >> 1] = r; } while (0); q = q + 1 | 0; } while ((q | 0) != 8); v = t + 2 | 0; w = t + 4 | 0; x = t + 6 | 0; y = t + 8 | 0; z = t + 10 | 0; A = t + 12 | 0; B = t + 14 | 0; t = b[t >> 1] | 0; q = 0; p = f + (0 - (b[u >> 1] | 0) << 1) | 0; o = f + (0 - (b[u + 2 >> 1] | 0) << 1) | 0; n = f + (0 - (b[u + 4 >> 1] | 0) << 1) | 0; m = f + (0 - (b[u + 6 >> 1] | 0) << 1) | 0; d = f + (0 - (b[u + 8 >> 1] | 0) << 1) | 0; a = f + (0 - (b[u + 10 >> 1] | 0) << 1) | 0; l = f + (0 - (b[u + 12 >> 1] | 0) << 1) | 0; f = f + (0 - (b[u + 14 >> 1] | 0) << 1) | 0; do { r = Z(b[p >> 1] | 0, t) | 0; p = p + 2 | 0; if ((r | 0) != 1073741824 ? (I = r << 1, !((r | 0) > 0 & (I | 0) < 0)) : 0) r = I; else { c[k >> 2] = 1; r = 2147483647; } s = Z(b[v >> 1] | 0, b[o >> 1] | 0) | 0; o = o + 2 | 0; if ((s | 0) != 1073741824) { g = (s << 1) + r | 0; if ((s ^ r | 0) > 0 & (g ^ r | 0) < 0) { c[k >> 2] = 1; r = (r >>> 31) + 2147483647 | 0; } else r = g; } else { c[k >> 2] = 1; r = 2147483647; } s = Z(b[w >> 1] | 0, b[n >> 1] | 0) | 0; n = n + 2 | 0; if ((s | 0) != 1073741824) { g = (s << 1) + r | 0; if ((s ^ r | 0) > 0 & (g ^ r | 0) < 0) { c[k >> 2] = 1; g = (r >>> 31) + 2147483647 | 0; } } else { c[k >> 2] = 1; g = 2147483647; } s = Z(b[x >> 1] | 0, b[m >> 1] | 0) | 0; m = m + 2 | 0; if ((s | 0) != 1073741824) { r = (s << 1) + g | 0; if ((s ^ g | 0) > 0 & (r ^ g | 0) < 0) { c[k >> 2] = 1; r = (g >>> 31) + 2147483647 | 0; } } else { c[k >> 2] = 1; r = 2147483647; } s = Z(b[y >> 1] | 0, b[d >> 1] | 0) | 0; d = d + 2 | 0; if ((s | 0) != 1073741824) { g = (s << 1) + r | 0; if ((s ^ r | 0) > 0 & (g ^ r | 0) < 0) { c[k >> 2] = 1; g = (r >>> 31) + 2147483647 | 0; } } else { c[k >> 2] = 1; g = 2147483647; } s = Z(b[z >> 1] | 0, b[a >> 1] | 0) | 0; a = a + 2 | 0; if ((s | 0) != 1073741824) { r = (s << 1) + g | 0; if ((s ^ g | 0) > 0 & (r ^ g | 0) < 0) { c[k >> 2] = 1; r = (g >>> 31) + 2147483647 | 0; } } else { c[k >> 2] = 1; r = 2147483647; } s = Z(b[A >> 1] | 0, b[l >> 1] | 0) | 0; l = l + 2 | 0; if ((s | 0) != 1073741824) { g = (s << 1) + r | 0; if ((s ^ r | 0) > 0 & (g ^ r | 0) < 0) { c[k >> 2] = 1; g = (r >>> 31) + 2147483647 | 0; } } else { c[k >> 2] = 1; g = 2147483647; } s = Z(b[B >> 1] | 0, b[f >> 1] | 0) | 0; f = f + 2 | 0; if ((s | 0) != 1073741824) { r = (s << 1) + g | 0; if ((s ^ g | 0) > 0 & (r ^ g | 0) < 0) { c[k >> 2] = 1; r = (g >>> 31) + 2147483647 | 0; } } else { c[k >> 2] = 1; r = 2147483647; } b[h + (q << 1) >> 1] = Ce(r, k) | 0; q = q + 1 | 0; } while ((q | 0) != 40); b[j >> 1] = b[K >> 1] | 0; b[j + 2 >> 1] = b[D >> 1] | 0; b[j + 4 >> 1] = b[F >> 1] | 0; b[j + 6 >> 1] = b[G >> 1] | 0; a = b[J >> 1] | 0; d = b[J + 8 >> 1] | 0; l = b[C >> 1] | 0; b[j + 8 >> 1] = d << 1 & 2 | a & 1 | l << 2 & 4 | (((d >> 1) * 327680 | 0) + (a >>> 1 << 16) + (Z(l >> 1, 1638400) | 0) | 0) >>> 13 & 65528; l = b[E >> 1] | 0; a = b[J + 12 >> 1] | 0; d = b[J + 10 >> 1] | 0; b[j + 10 >> 1] = a << 1 & 2 | l & 1 | d << 2 & 4 | (((a >> 1) * 327680 | 0) + (l >>> 1 << 16) + (Z(d >> 1, 1638400) | 0) | 0) >>> 13 & 65528; d = b[J + 14 >> 1] | 0; l = b[H >> 1] | 0; a = l << 16 >> 16 >>> 1; if (!(d & 2)) { h = a; k = d << 16 >> 16; K = k >> 1; K = K * 327680 | 0; h = h << 16; K = h + K | 0; K = K << 5; K = K >> 16; K = K | 12; K = K * 2622 | 0; K = K >>> 16; h = l & 65535; h = h & 1; k = k << 17; k = k & 131072; K = K << 18; k = K | k; k = k >>> 16; h = k | h; h = h & 65535; j = j + 12 | 0; b[j >> 1] = h; i = L; return } h = 4 - (a << 16 >> 16) | 0; k = d << 16 >> 16; K = k >> 1; K = K * 327680 | 0; h = h << 16; K = h + K | 0; K = K << 5; K = K >> 16; K = K | 12; K = K * 2622 | 0; K = K >>> 16; h = l & 65535; h = h & 1; k = k << 17; k = k & 131072; K = K << 18; k = K | k; k = k >>> 16; h = k | h; h = h & 65535; j = j + 12 | 0; b[j >> 1] = h; i = L; return } function Tb(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; r = e << 16 >> 16; h = 0 - r | 0; e = g + (h << 2) | 0; g = ((r - (f << 16 >> 16) | 0) >>> 2) + 1 & 65535; if (g << 16 >> 16 <= 0) return; r = d << 16 >> 16 >>> 1 & 65535; if (!(r << 16 >> 16)) { while (1) { c[e >> 2] = 0; c[e + 4 >> 2] = 0; c[e + 8 >> 2] = 0; c[e + 12 >> 2] = 0; if (g << 16 >> 16 > 1) { e = e + 16 | 0; g = g + -1 << 16 >> 16; } else break } return } q = a + (h << 1) | 0; while (1) { l = q + 4 | 0; n = b[l >> 1] | 0; j = b[q >> 1] | 0; m = n; k = r; o = a; p = q; q = q + 8 | 0; i = 0; h = 0; f = 0; d = 0; while (1) { t = b[o >> 1] | 0; s = (Z(j << 16 >> 16, t) | 0) + i | 0; i = b[p + 2 >> 1] | 0; h = (Z(i, t) | 0) + h | 0; j = (Z(m << 16 >> 16, t) | 0) + f | 0; f = b[p + 6 >> 1] | 0; m = (Z(f, t) | 0) + d | 0; d = b[o + 2 >> 1] | 0; i = s + (Z(d, i) | 0) | 0; h = h + (Z(n << 16 >> 16, d) | 0) | 0; l = l + 4 | 0; f = j + (Z(d, f) | 0) | 0; j = b[l >> 1] | 0; d = m + (Z(j << 16 >> 16, d) | 0) | 0; k = k + -1 << 16 >> 16; if (!(k << 16 >> 16)) break; t = n; m = j; n = b[p + 8 >> 1] | 0; o = o + 4 | 0; p = p + 4 | 0; j = t; } c[e >> 2] = i << 1; c[e + 4 >> 2] = h << 1; c[e + 8 >> 2] = f << 1; c[e + 12 >> 2] = d << 1; if (g << 16 >> 16 <= 1) break; else { e = e + 16 | 0; g = g + -1 << 16 >> 16; } } return } function Ub(a, d, f, g, h, j, k, l, m) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; y = i; i = i + 16 | 0; w = y + 2 | 0; x = y; do if (h << 16 >> 16 > 0) { s = g << 16 >> 16; u = 0; p = 0; g = 0; o = 0; t = 0; while (1) { n = b[a + (u << 1) >> 1] | 0; q = n << 16 >> 16; p = (Z(q, q) | 0) + p | 0; q = b[d + (u << 1) >> 1] | 0; g = (Z(q, q) | 0) + g | 0; o = (Z(b[f + (u << 1) >> 1] | 0, q) | 0) + o | 0; q = Z(q, s) | 0; if ((q | 0) == 1073741824) { c[m >> 2] = 1; r = 2147483647; } else r = q << 1; q = r << 1; q = (Ge(n, Ce((q >> 1 | 0) == (r | 0) ? q : r >> 31 ^ 2147483647, m) | 0, m) | 0) << 16 >> 16; q = Z(q, q) | 0; if ((q | 0) != 1073741824) { n = (q << 1) + t | 0; if ((q ^ t | 0) > 0 & (n ^ t | 0) < 0) { c[m >> 2] = 1; n = (t >>> 31) + 2147483647 | 0; } } else { c[m >> 2] = 1; n = 2147483647; } u = u + 1 | 0; if ((u & 65535) << 16 >> 16 == h << 16 >> 16) { t = n; break } else t = n; } p = p << 1; g = g << 1; o = o << 1; if ((p | 0) >= 0) { if ((p | 0) < 400) { n = t; v = 14; break } } else { c[m >> 2] = 1; p = 2147483647; } r = pe(p) | 0; q = r << 16 >> 16; if (r << 16 >> 16 > 0) { n = p << q; if ((n >> q | 0) != (p | 0)) n = p >> 31 ^ 2147483647; } else { n = 0 - q << 16; if ((n | 0) < 2031616) n = p >> (n >> 16); else n = 0; } b[j >> 1] = n >>> 16; p = g; s = o; n = t; g = 15 - (r & 65535) & 65535; } else { g = 0; o = 0; n = 0; v = 14; } while (0); if ((v | 0) == 14) { b[j >> 1] = 0; p = g; s = o; g = -15; } b[k >> 1] = g; if ((p | 0) < 0) { c[m >> 2] = 1; p = 2147483647; } q = pe(p) | 0; o = q << 16 >> 16; if (q << 16 >> 16 > 0) { g = p << o; if ((g >> o | 0) != (p | 0)) g = p >> 31 ^ 2147483647; } else { g = 0 - o << 16; if ((g | 0) < 2031616) g = p >> (g >> 16); else g = 0; } b[j + 2 >> 1] = g >>> 16; b[k + 2 >> 1] = 15 - (q & 65535); p = pe(s) | 0; o = p << 16 >> 16; if (p << 16 >> 16 > 0) { g = s << o; if ((g >> o | 0) != (s | 0)) g = s >> 31 ^ 2147483647; } else { g = 0 - o << 16; if ((g | 0) < 2031616) g = s >> (g >> 16); else g = 0; } b[j + 4 >> 1] = g >>> 16; b[k + 4 >> 1] = 2 - (p & 65535); p = pe(n) | 0; g = p << 16 >> 16; if (p << 16 >> 16 > 0) { o = n << g; if ((o >> g | 0) != (n | 0)) o = n >> 31 ^ 2147483647; } else { g = 0 - g << 16; if ((g | 0) < 2031616) o = n >> (g >> 16); else o = 0; } g = o >>> 16 & 65535; n = 15 - (p & 65535) & 65535; b[j + 6 >> 1] = g; b[k + 6 >> 1] = n; if ((o >> 16 | 0) <= 0) { m = 0; b[l >> 1] = m; i = y; return } o = b[j >> 1] | 0; if (!(o << 16 >> 16)) { m = 0; b[l >> 1] = m; i = y; return } g = Td(De(o, 1, m) | 0, g) | 0; g = (g & 65535) << 16; o = ((Ge(n, b[k >> 1] | 0, m) | 0) & 65535) + 3 | 0; n = o & 65535; o = o << 16 >> 16; if (n << 16 >> 16 > 0) n = n << 16 >> 16 < 31 ? g >> o : 0; else { k = 0 - o << 16 >> 16; n = g << k; n = (n >> k | 0) == (g | 0) ? n : g >> 31 ^ 2147483647; } de(n, w, x, m); x = Ic((e[w >> 1] | 0) + 65509 & 65535, b[x >> 1] | 0, m) | 0; w = x << 13; m = Ce((w >> 13 | 0) == (x | 0) ? w : x >> 31 ^ 2147483647, m) | 0; b[l >> 1] = m; i = y; return } function Vb(a, d, f, g, h, j, k, l, m, n, o) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; var p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; y = i; i = i + 80 | 0; v = y; b[k >> 1] = b[j >> 1] | 0; b[l >> 1] = b[j + 2 >> 1] | 0; r = b[j + 4 >> 1] | 0; if (r << 16 >> 16 == -32768) r = 32767; else r = 0 - (r & 65535) & 65535; b[k + 2 >> 1] = r; b[l + 2 >> 1] = (e[j + 6 >> 1] | 0) + 1; switch (a | 0) { case 0: case 5: { u = 0; q = 0; p = 0; t = 0; break } default: { u = 0; q = 1; p = 1; t = 1; } } while (1) { s = (b[h + (u << 1) >> 1] | 0) >>> 3; b[v + (u << 1) >> 1] = s; s = s << 16 >> 16; r = Z(s, s) | 0; if ((r | 0) != 1073741824) { j = (r << 1) + q | 0; if ((r ^ q | 0) > 0 & (j ^ q | 0) < 0) { c[o >> 2] = 1; q = (q >>> 31) + 2147483647 | 0; } else q = j; } else { c[o >> 2] = 1; q = 2147483647; } r = Z(b[d + (u << 1) >> 1] | 0, s) | 0; if ((r | 0) != 1073741824) { j = (r << 1) + p | 0; if ((r ^ p | 0) > 0 & (j ^ p | 0) < 0) { c[o >> 2] = 1; p = (p >>> 31) + 2147483647 | 0; } else p = j; } else { c[o >> 2] = 1; p = 2147483647; } r = Z(b[g + (u << 1) >> 1] | 0, s) | 0; if ((r | 0) != 1073741824) { j = (r << 1) + t | 0; if ((r ^ t | 0) > 0 & (j ^ t | 0) < 0) { c[o >> 2] = 1; j = (t >>> 31) + 2147483647 | 0; } } else { c[o >> 2] = 1; j = 2147483647; } u = u + 1 | 0; if ((u | 0) == 40) { g = j; s = p; break } else t = j; } p = pe(q) | 0; j = p << 16 >> 16; if (p << 16 >> 16 > 0) { r = q << j; if ((r >> j | 0) != (q | 0)) r = q >> 31 ^ 2147483647; } else { r = 0 - j << 16; if ((r | 0) < 2031616) r = q >> (r >> 16); else r = 0; } h = k + 4 | 0; b[h >> 1] = r >>> 16; d = l + 4 | 0; b[d >> 1] = -3 - (p & 65535); q = pe(s) | 0; j = q << 16 >> 16; if (q << 16 >> 16 > 0) { r = s << j; if ((r >> j | 0) != (s | 0)) r = s >> 31 ^ 2147483647; } else { r = 0 - j << 16; if ((r | 0) < 2031616) r = s >> (r >> 16); else r = 0; } j = r >>> 16; b[k + 6 >> 1] = (j | 0) == 32768 ? 32767 : 0 - j & 65535; b[l + 6 >> 1] = 7 - (q & 65535); q = pe(g) | 0; j = q << 16 >> 16; if (q << 16 >> 16 > 0) { r = g << j; if ((r >> j | 0) != (g | 0)) r = g >> 31 ^ 2147483647; } else { r = 0 - j << 16; if ((r | 0) < 2031616) r = g >> (r >> 16); else r = 0; } b[k + 8 >> 1] = r >>> 16; b[l + 8 >> 1] = 7 - (q & 65535); switch (a | 0) { case 0: case 5: { r = 0; p = 0; break } default: { i = y; return } } do { p = (Z(b[v + (r << 1) >> 1] | 0, b[f + (r << 1) >> 1] | 0) | 0) + p | 0; r = r + 1 | 0; } while ((r | 0) != 40); j = p << 1; r = pe(j) | 0; q = r << 16 >> 16; if (r << 16 >> 16 > 0) { p = j << q; if ((p >> q | 0) == (j | 0)) { w = p; x = 40; } else { w = j >> 31 ^ 2147483647; x = 40; } } else { p = 0 - q << 16; if ((p | 0) < 2031616) { w = j >> (p >> 16); x = 40; } } if ((x | 0) == 40 ? (w >> 16 | 0) >= 1 : 0) { o = De(w >>> 16 & 65535, 1, o) | 0; b[m >> 1] = Td(o, b[h >> 1] | 0) | 0; b[n >> 1] = 65528 - (r & 65535) - (e[d >> 1] | 0); i = y; return } b[m >> 1] = 0; b[n >> 1] = 0; i = y; return } function Wb(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; h = 0; g = 0; do { i = b[a + (h << 1) >> 1] | 0; g = (Z(i, i) | 0) + g | 0; h = h + 1 | 0; } while ((h | 0) != 40); if ((g | 0) < 0) { c[f >> 2] = 1; g = 2147483647; } f = pe(g) | 0; a = f << 16 >> 16; if (f << 16 >> 16 > 0) { h = g << a; if ((h >> a | 0) == (g | 0)) g = h; else g = g >> 31 ^ 2147483647; } else { a = 0 - a << 16; if ((a | 0) < 2031616) g = g >> (a >> 16); else g = 0; } b[e >> 1] = g >>> 16; b[d >> 1] = 16 - (f & 65535); return } function Xb(a, d, e, f, g, h, j, k, l, m, n, o, p) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; var q = 0, r = 0, s = 0, t = 0; r = i; i = i + 16 | 0; q = r; if (m >>> 0 < 2) { j = Nb(n, a, d, e, f, j, k, q, c[o + 76 >> 2] | 0, p) | 0; p = c[l >> 2] | 0; b[p >> 1] = j; j = b[q >> 1] | 0; c[l >> 2] = p + 4; b[p + 2 >> 1] = j; i = r; return } switch (m | 0) { case 2: { j = Mb(a, d, e, f, j, k, q, p) | 0; p = c[l >> 2] | 0; b[p >> 1] = j; j = b[q >> 1] | 0; c[l >> 2] = p + 4; b[p + 2 >> 1] = j; i = r; return } case 3: { j = Qb(a, d, e, f, j, k, q, p) | 0; p = c[l >> 2] | 0; b[p >> 1] = j; j = b[q >> 1] | 0; c[l >> 2] = p + 4; b[p + 2 >> 1] = j; i = r; return } default: { if ((m & -2 | 0) == 4) { j = Rb(a, d, e, f, j, k, q, c[o + 36 >> 2] | 0, p) | 0; p = c[l >> 2] | 0; b[p >> 1] = j; j = b[q >> 1] | 0; c[l >> 2] = p + 4; b[p + 2 >> 1] = j; i = r; return } if ((m | 0) != 6) { n = g << 16 >> 16; n = (n << 17 >> 17 | 0) == (n | 0) ? n << 1 : n >>> 15 ^ 32767; g = e << 16 >> 16 < 40; if (!g) { Lb(a, h, d, j, k, c[l >> 2] | 0, c[o + 36 >> 2] | 0, p); c[l >> 2] = (c[l >> 2] | 0) + 20; i = r; return } q = e << 16 >> 16; m = n << 16 >> 16; f = q; do { t = (Z(b[d + (f - q << 1) >> 1] | 0, m) | 0) >>> 15 & 65535; s = d + (f << 1) | 0; b[s >> 1] = Rd(b[s >> 1] | 0, t, p) | 0; f = f + 1 | 0; } while ((f & 65535) << 16 >> 16 != 40); Lb(a, h, d, j, k, c[l >> 2] | 0, c[o + 36 >> 2] | 0, p); c[l >> 2] = (c[l >> 2] | 0) + 20; if (!g) { i = r; return } g = e << 16 >> 16; m = n << 16 >> 16; q = g; do { f = (Z(b[j + (q - g << 1) >> 1] | 0, m) | 0) >> 15; if ((f | 0) > 32767) { c[p >> 2] = 1; f = 32767; } t = j + (q << 1) | 0; b[t >> 1] = Rd(b[t >> 1] | 0, f & 65535, p) | 0; q = q + 1 | 0; } while ((q & 65535) << 16 >> 16 != 40); i = r; return } o = f << 16 >> 16; o = (o << 17 >> 17 | 0) == (o | 0) ? o << 1 : o >>> 15 ^ 32767; n = e << 16 >> 16 < 40; if (!n) { Sb(a, h, d, j, k, c[l >> 2] | 0, p); c[l >> 2] = (c[l >> 2] | 0) + 14; i = r; return } q = e << 16 >> 16; m = o << 16 >> 16; f = q; do { g = (Z(b[d + (f - q << 1) >> 1] | 0, m) | 0) >> 15; if ((g | 0) > 32767) { c[p >> 2] = 1; g = 32767; } t = d + (f << 1) | 0; b[t >> 1] = Rd(b[t >> 1] | 0, g & 65535, p) | 0; f = f + 1 | 0; } while ((f & 65535) << 16 >> 16 != 40); Sb(a, h, d, j, k, c[l >> 2] | 0, p); c[l >> 2] = (c[l >> 2] | 0) + 14; if (!n) { i = r; return } g = e << 16 >> 16; m = o << 16 >> 16; q = g; do { f = (Z(b[j + (q - g << 1) >> 1] | 0, m) | 0) >> 15; if ((f | 0) > 32767) { c[p >> 2] = 1; f = 32767; } t = j + (q << 1) | 0; b[t >> 1] = Rd(b[t >> 1] | 0, f & 65535, p) | 0; q = q + 1 | 0; } while ((q & 65535) << 16 >> 16 != 40); i = r; return } } } function Yb(a) { a = a | 0; var b = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; b = Je(4) | 0; if (!b) { a = -1; return a | 0 } if (!((Uc(b) | 0) << 16 >> 16)) { Vc(c[b >> 2] | 0) | 0; c[a >> 2] = b; a = 0; return a | 0 } else { Wc(b); Ke(b); a = -1; return a | 0 } return 0 } function Zb(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Wc(b); Ke(c[a >> 2] | 0); c[a >> 2] = 0; return } function _b(a) { a = a | 0; if (!a) { a = -1; return a | 0 } Vc(c[a >> 2] | 0) | 0; a = 0; return a | 0 } function $b(a, d, f, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; q = q | 0; r = r | 0; s = s | 0; t = t | 0; u = u | 0; v = v | 0; w = w | 0; x = x | 0; var y = 0, z = 0, A = 0, B = 0; z = i; i = i + 16 | 0; B = z + 2 | 0; A = z; b[q >> 1] = Xc(c[a >> 2] | 0, f, h, k, m, j, 40, g, r, A, B, x) | 0; a = b[B >> 1] | 0; g = c[u >> 2] | 0; c[u >> 2] = g + 2; b[g >> 1] = a; se(k, b[q >> 1] | 0, b[r >> 1] | 0, 40, b[A >> 1] | 0, x); ec(k, j, p, 40); b[s >> 1] = Dc(f, m, p, t, 40, x) | 0; b[v >> 1] = 32767; if (n << 16 >> 16 != 0 ? (y = b[s >> 1] | 0, y << 16 >> 16 > 15565) : 0) y = Ed(d, y, x) | 0; else y = 0; if (f >>> 0 < 2) { B = b[s >> 1] | 0; b[s >> 1] = B << 16 >> 16 > 13926 ? 13926 : B; if (y << 16 >> 16) b[v >> 1] = 15565; } else { if (y << 16 >> 16) { b[v >> 1] = 15565; b[s >> 1] = 15565; } if ((f | 0) == 7) { A = nd(7, b[v >> 1] | 0, s, 0, 0, w, x) | 0; B = c[u >> 2] | 0; c[u >> 2] = B + 2; b[B >> 1] = A; } } q = b[s >> 1] | 0; y = 0; while (1) { A = Z(b[p >> 1] | 0, q) | 0; b[o >> 1] = (e[m >> 1] | 0) - (A >>> 14); A = (Z(b[k >> 1] | 0, q) | 0) >>> 14; B = l + (y << 1) | 0; b[B >> 1] = (e[B >> 1] | 0) - A; y = y + 1 | 0; if ((y | 0) == 40) break; else { k = k + 2 | 0; m = m + 2 | 0; o = o + 2 | 0; p = p + 2 | 0; } } i = z; return } function ac(a, b) { a = a | 0; b = b | 0; var d = 0, e = 0, f = 0, g = 0; g = i; i = i + 16 | 0; f = g; if (!a) { a = -1; i = g; return a | 0 } c[a >> 2] = 0; d = Je(2532) | 0; c[f >> 2] = d; if (!d) { a = -1; i = g; return a | 0 } Yd(d + 2392 | 0); c[d + 2188 >> 2] = 0; c[(c[f >> 2] | 0) + 2192 >> 2] = 0; c[(c[f >> 2] | 0) + 2196 >> 2] = 0; c[(c[f >> 2] | 0) + 2200 >> 2] = 0; c[(c[f >> 2] | 0) + 2204 >> 2] = 0; c[(c[f >> 2] | 0) + 2208 >> 2] = 0; c[(c[f >> 2] | 0) + 2212 >> 2] = 0; c[(c[f >> 2] | 0) + 2220 >> 2] = 0; e = c[f >> 2] | 0; c[e + 2216 >> 2] = b; c[e + 2528 >> 2] = 0; d = e; if ((((((((Yb(e + 2196 | 0) | 0) << 16 >> 16 == 0 ? (ie(e + 2192 | 0) | 0) << 16 >> 16 == 0 : 0) ? (yc(e + 2200 | 0) | 0) << 16 >> 16 == 0 : 0) ? (_c(e + 2204 | 0) | 0) << 16 >> 16 == 0 : 0) ? (Ad(e + 2208 | 0) | 0) << 16 >> 16 == 0 : 0) ? (Gd(e + 2212 | 0) | 0) << 16 >> 16 == 0 : 0) ? (jc(e + 2220 | 0, c[e + 2432 >> 2] | 0) | 0) << 16 >> 16 == 0 : 0) ? (Pc(e + 2188 | 0) | 0) << 16 >> 16 == 0 : 0) { cc(e) | 0; c[a >> 2] = d; a = 0; i = g; return a | 0 } bc(f); a = -1; i = g; return a | 0 } function bc(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Qc(b + 2188 | 0); ke((c[a >> 2] | 0) + 2192 | 0); zc((c[a >> 2] | 0) + 2200 | 0); Zb((c[a >> 2] | 0) + 2196 | 0); ad((c[a >> 2] | 0) + 2204 | 0); Cd((c[a >> 2] | 0) + 2208 | 0); Id((c[a >> 2] | 0) + 2212 | 0); lc((c[a >> 2] | 0) + 2220 | 0); Ke(c[a >> 2] | 0); c[a >> 2] = 0; return } function cc(a) { a = a | 0; var d = 0, e = 0, f = 0, g = 0; if (!a) { g = -1; return g | 0 } c[a + 652 >> 2] = a + 320; c[a + 640 >> 2] = a + 240; c[a + 644 >> 2] = a + 160; c[a + 648 >> 2] = a + 80; c[a + 1264 >> 2] = a + 942; c[a + 1912 >> 2] = a + 1590; f = a + 1938 | 0; c[a + 2020 >> 2] = f; c[a + 2384 >> 2] = a + 2304; d = a + 2028 | 0; c[a + 2024 >> 2] = a + 2108; c[a + 2528 >> 2] = 0; Qe(a | 0, 0, 640) | 0; Qe(a + 1282 | 0, 0, 308) | 0; Qe(a + 656 | 0, 0, 286) | 0; e = a + 2224 | 0; g = f + 80 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (g | 0)); f = d; g = f + 80 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (g | 0)); d = a + 1268 | 0; f = e; g = f + 80 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (g | 0)); b[d >> 1] = 40; b[a + 1270 >> 1] = 40; b[a + 1272 >> 1] = 40; b[a + 1274 >> 1] = 40; b[a + 1276 >> 1] = 40; Rc(c[a + 2188 >> 2] | 0) | 0; je(c[a + 2192 >> 2] | 0) | 0; _b(c[a + 2196 >> 2] | 0) | 0; Ac(c[a + 2200 >> 2] | 0) | 0; $c(c[a + 2204 >> 2] | 0) | 0; Bd(c[a + 2208 >> 2] | 0) | 0; Hd(c[a + 2212 >> 2] | 0) | 0; kc(c[a + 2220 >> 2] | 0, c[a + 2432 >> 2] | 0) | 0; b[a + 2388 >> 1] = 0; g = 0; return g | 0 } function dc(a, d, e, f, g, h) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0; qa = i; i = i + 1184 | 0; T = qa; n = qa + 1096 | 0; o = qa + 1008 | 0; l = qa + 904 | 0; ka = qa + 928 | 0; la = qa + 824 | 0; X = qa + 744 | 0; na = qa + 664 | 0; oa = qa + 584 | 0; Z = qa + 328 | 0; ha = qa + 504 | 0; ia = qa + 424 | 0; ma = qa + 344 | 0; pa = qa + 248 | 0; Y = qa + 168 | 0; da = qa + 88 | 0; fa = qa + 68 | 0; ga = qa + 48 | 0; ea = qa + 28 | 0; ja = qa + 24 | 0; ba = qa + 22 | 0; $ = qa + 20 | 0; W = qa + 16 | 0; U = qa + 12 | 0; V = qa + 10 | 0; aa = qa + 8 | 0; _ = qa + 6 | 0; ca = qa + 4 | 0; c[T >> 2] = f; S = a + 2528 | 0; j = a + 652 | 0; Oe(c[j >> 2] | 0, e | 0, 320) | 0; c[g >> 2] = d; m = a + 2216 | 0; if (!(c[m >> 2] | 0)) { e = a + 2220 | 0; f = 0; } else { f = Nd(c[a + 2212 >> 2] | 0, c[j >> 2] | 0, S) | 0; R = a + 2220 | 0; e = R; f = oc(c[R >> 2] | 0, f, g, S) | 0; } R = a + 2392 | 0; Sc(c[a + 2188 >> 2] | 0, d, c[a + 644 >> 2] | 0, c[a + 648 >> 2] | 0, n, R, S); k = a + 2192 | 0; le(c[k >> 2] | 0, d, c[g >> 2] | 0, n, o, l, T, S); nc(c[e >> 2] | 0, l, c[j >> 2] | 0, S); if ((c[g >> 2] | 0) == 8) { mc(c[e >> 2] | 0, f, c[(c[k >> 2] | 0) + 40 >> 2] | 0, (c[a + 2200 >> 2] | 0) + 32 | 0, T, S); Qe(a + 1282 | 0, 0, 308) | 0; j = a + 2244 | 0; q = j + 20 | 0; do { b[j >> 1] = 0; j = j + 2 | 0; } while ((j | 0) < (q | 0)); j = a + 2284 | 0; q = j + 20 | 0; do { b[j >> 1] = 0; j = j + 2 | 0; } while ((j | 0) < (q | 0)); j = c[a + 2020 >> 2] | 0; q = j + 80 | 0; do { b[j >> 1] = 0; j = j + 2 | 0; } while ((j | 0) < (q | 0)); j = a + 2028 | 0; q = j + 80 | 0; do { b[j >> 1] = 0; j = j + 2 | 0; } while ((j | 0) < (q | 0)); je(c[k >> 2] | 0) | 0; j = c[k >> 2] | 0; e = l; q = j + 20 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); j = (c[k >> 2] | 0) + 20 | 0; e = l; q = j + 20 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); _b(c[a + 2196 >> 2] | 0) | 0; b[a + 2388 >> 1] = 0; Q = 0; } else Q = Dd(c[a + 2208 >> 2] | 0, c[k >> 2] | 0, S) | 0; N = a + 640 | 0; k = a + 2264 | 0; j = a + 1264 | 0; e = a + 2204 | 0; f = a + 2212 | 0; O = a + 1268 | 0; P = a + 1278 | 0; cd(d, 2842, 2862, 2882, n, 0, c[N >> 2] | 0, k, c[j >> 2] | 0, S); if (d >>> 0 > 1) { Tc(c[e >> 2] | 0, c[f >> 2] | 0, d, c[j >> 2] | 0, W, O, P, 0, c[m >> 2] | 0, S); cd(d, 2842, 2862, 2882, n, 80, c[N >> 2] | 0, k, c[j >> 2] | 0, S); Tc(c[e >> 2] | 0, c[f >> 2] | 0, d, (c[j >> 2] | 0) + 160 | 0, W + 2 | 0, O, P, 1, c[m >> 2] | 0, S); } else { cd(d, 2842, 2862, 2882, n, 80, c[N >> 2] | 0, k, c[j >> 2] | 0, S); Tc(c[e >> 2] | 0, c[f >> 2] | 0, d, c[j >> 2] | 0, W, O, P, 1, c[m >> 2] | 0, S); b[W + 2 >> 1] = b[W >> 1] | 0; } if (c[m >> 2] | 0) Md(c[f >> 2] | 0, W, S); if ((c[g >> 2] | 0) == 8) { oa = a + 656 | 0; pa = a + 976 | 0; Oe(oa | 0, pa | 0, 286) | 0; pa = a + 320 | 0; Oe(a | 0, pa | 0, 320) | 0; i = qa; return 0 } z = a + 2224 | 0; A = a + 2244 | 0; B = a + 2284 | 0; C = a + 2388 | 0; D = a + 2020 | 0; E = a + 1916 | 0; F = a + 1912 | 0; G = a + 2024 | 0; H = a + 2384 | 0; I = a + 2196 | 0; J = a + 2208 | 0; K = a + 2464 | 0; L = a + 2200 | 0; M = a + 2224 | 0; w = a + 2244 | 0; x = a + 1270 | 0; y = a + 1280 | 0; v = 0; m = 0; l = 0; s = 0; t = 0; k = 0; u = -1; while (1) { p = u; u = u + 1 << 16 >> 16; s = 1 - (s << 16 >> 16) | 0; f = s & 65535; r = (s & 65535 | 0) != 0; e = c[g >> 2] | 0; j = (e | 0) == 0; do if (r) if (j) { j = fa; e = z; q = j + 20 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); j = ga; e = A; q = j + 20 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); j = ea; e = B; q = j + 20 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); b[ja >> 1] = b[C >> 1] | 0; d = (c[N >> 2] | 0) + (v << 1) | 0; j = 20; break } else { d = (c[N >> 2] | 0) + (v << 1) | 0; j = 19; break } else { d = (c[N >> 2] | 0) + (v << 1) | 0; if (j) j = 20; else j = 19; } while (0); if ((j | 0) == 19) yd(e, 2842, 2862, 2882, n, o, d, B, w, c[D >> 2] | 0, E, (c[F >> 2] | 0) + (v << 1) | 0, c[G >> 2] | 0, ka, ha, c[H >> 2] | 0); else if ((j | 0) == 20 ? (0, yd(0, 2842, 2862, 2882, n, o, d, B, ga, c[D >> 2] | 0, E, (c[F >> 2] | 0) + (v << 1) | 0, c[G >> 2] | 0, ka, ha, c[H >> 2] | 0), r) : 0) { j = da; e = c[G >> 2] | 0; q = j + 80 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)) } j = ia; e = ha; q = j + 80 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); $b(c[I >> 2] | 0, c[J >> 2] | 0, c[g >> 2] | 0, t, W, c[G >> 2] | 0, (c[F >> 2] | 0) + (v << 1) | 0, ia, ka, Q, la, na, U, V, aa, Z, T, ca, c[K >> 2] | 0, S); switch (p << 16 >> 16) { case -1: { if ((b[P >> 1] | 0) > 0) b[x >> 1] = b[U >> 1] | 0; break } case 2: { if ((b[y >> 1] | 0) > 0) b[O >> 1] = b[U >> 1] | 0; break } default: { } } Xb(la, c[G >> 2] | 0, b[U >> 1] | 0, b[C >> 1] | 0, b[aa >> 1] | 0, ia, X, oa, T, c[g >> 2] | 0, u, R, S); Bc(c[L >> 2] | 0, c[g >> 2] | 0, ha, (c[F >> 2] | 0) + (v << 1) | 0, X, ka, la, na, oa, Z, f, b[ca >> 1] | 0, ba, $, aa, _, T, R, S); Fd(c[J >> 2] | 0, b[aa >> 1] | 0, S); d = c[g >> 2] | 0; do if (!d) if (r) { j = ma; e = ka; q = j + 80 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); j = pa; e = oa; q = j + 80 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); j = Y; e = X; q = j + 80 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); l = b[U >> 1] | 0; m = b[V >> 1] | 0; zd(c[N >> 2] | 0, 0, t, b[aa >> 1] | 0, b[_ >> 1] | 0, o, h, ka, X, na, oa, fa, B, ga, c[F >> 2] | 0, C, S); b[C >> 1] = b[ja >> 1] | 0; k = t; break } else { j = B; e = ea; q = j + 20 | 0; do { b[j >> 1] = b[e >> 1] | 0; j = j + 2 | 0; e = e + 2 | 0; } while ((j | 0) < (q | 0)); r = k << 16 >> 16; se((c[F >> 2] | 0) + (r << 1) | 0, l, m, 40, 1, S); ec((c[F >> 2] | 0) + (r << 1) | 0, da, na, 40); zd(c[N >> 2] | 0, c[g >> 2] | 0, k, b[ba >> 1] | 0, b[$ >> 1] | 0, o + -22 | 0, h, ma, Y, na, pa, M, B, w, c[F >> 2] | 0, ja, S); yd(c[g >> 2] | 0, 2842, 2862, 2882, n, o, (c[N >> 2] | 0) + (v << 1) | 0, B, w, c[D >> 2] | 0, E, (c[F >> 2] | 0) + (v << 1) | 0, c[G >> 2] | 0, ka, ha, c[H >> 2] | 0); se((c[F >> 2] | 0) + (v << 1) | 0, b[U >> 1] | 0, b[V >> 1] | 0, 40, 1, S); ec((c[F >> 2] | 0) + (v << 1) | 0, c[G >> 2] | 0, na, 40); zd(c[N >> 2] | 0, c[g >> 2] | 0, t, b[aa >> 1] | 0, b[_ >> 1] | 0, o, h, ka, X, na, oa, M, B, w, c[F >> 2] | 0, C, S); break } else zd(c[N >> 2] | 0, d, t, b[aa >> 1] | 0, b[_ >> 1] | 0, o, h, ka, X, na, oa, M, B, w, c[F >> 2] | 0, C, S); while (0); d = v + 40 | 0; t = d & 65535; if (t << 16 >> 16 >= 160) break; else { v = d << 16 >> 16; n = n + 22 | 0; o = o + 22 | 0; } } Oe(a + 1282 | 0, a + 1602 | 0, 308) | 0; oa = a + 656 | 0; pa = a + 976 | 0; Oe(oa | 0, pa | 0, 286) | 0; pa = a + 320 | 0; Oe(a | 0, pa | 0, 320) | 0; i = qa; return 0 } function ec(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0; o = e << 16 >> 16; if (e << 16 >> 16 > 1) n = 1; else return; while (1) { f = b[a >> 1] | 0; i = c + (n + -1 << 1) | 0; e = Z(b[c + (n << 1) >> 1] | 0, f) | 0; k = b[i >> 1] | 0; f = Z(k << 16 >> 16, f) | 0; h = (n + 131071 | 0) >>> 1; j = h & 65535; g = b[a + 2 >> 1] | 0; if (!(j << 16 >> 16)) { c = i; h = k; } else { l = (h << 1) + 131070 & 131070; m = n - l | 0; h = a; do { q = (Z(k << 16 >> 16, g) | 0) + e | 0; p = h; h = h + 4 | 0; e = b[i + -2 >> 1] | 0; g = (Z(e, g) | 0) + f | 0; f = b[h >> 1] | 0; i = i + -4 | 0; e = q + (Z(f, e) | 0) | 0; k = b[i >> 1] | 0; f = g + (Z(k << 16 >> 16, f) | 0) | 0; j = j + -1 << 16 >> 16; g = b[p + 6 >> 1] | 0; } while (j << 16 >> 16 != 0); h = c + (m + -3 << 1) | 0; a = a + (l + 2 << 1) | 0; c = h; h = b[h >> 1] | 0; } e = (Z(h << 16 >> 16, g) | 0) + e | 0; b[d >> 1] = f >>> 12; b[d + 2 >> 1] = e >>> 12; e = (n << 16) + 131072 >> 16; if ((e | 0) < (o | 0)) { d = d + 4 | 0; a = a + (1 - n << 1) | 0; n = e; } else break } return } function fc(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; z = i; i = i + 80 | 0; y = z; h = 20; g = a; f = 1; while (1) { x = b[g >> 1] | 0; x = (Z(x, x) | 0) + f | 0; f = b[g + 2 >> 1] | 0; f = x + (Z(f, f) | 0) | 0; h = h + -1 << 16 >> 16; if (!(h << 16 >> 16)) break; else g = g + 4 | 0; } f = f << 1; if ((f | 0) < 0) { g = 20; f = a; e = y; while (1) { b[e >> 1] = (b[f >> 1] | 0) >>> 1; b[e + 2 >> 1] = (b[f + 2 >> 1] | 0) >>> 1; g = g + -1 << 16 >> 16; if (!(g << 16 >> 16)) { x = y; break } else { f = f + 4 | 0; e = e + 4 | 0; } } } else { f = ce(f >> 1, e) | 0; if ((f | 0) < 16777215) f = ((f >> 9) * 32440 | 0) >>> 15 << 16 >> 16; else f = 32440; h = 20; g = a; e = y; while (1) { b[e >> 1] = ((Z(b[g >> 1] | 0, f) | 0) + 32 | 0) >>> 6; b[e + 2 >> 1] = ((Z(b[g + 2 >> 1] | 0, f) | 0) + 32 | 0) >>> 6; h = h + -1 << 16 >> 16; if (!(h << 16 >> 16)) { x = y; break } else { g = g + 4 | 0; e = e + 4 | 0; } } } h = 20; g = x; e = d + 3198 | 0; f = 0; while (1) { w = b[g >> 1] | 0; w = (Z(w, w) | 0) + f | 0; b[e >> 1] = (w + 16384 | 0) >>> 15; v = b[g + 2 >> 1] | 0; f = (Z(v, v) | 0) + w | 0; b[e + -82 >> 1] = (f + 16384 | 0) >>> 15; h = h + -1 << 16 >> 16; if (!(h << 16 >> 16)) break; else { g = g + 4 | 0; e = e + -164 | 0; } } w = c + 78 | 0; v = 1; while (1) { f = 39 - v | 0; a = d + 3120 + (f << 1) | 0; e = d + (f * 80 | 0) + 78 | 0; f = c + (f << 1) | 0; k = y + (v << 1) | 0; g = 65575 - v | 0; j = g & 65535; h = b[x >> 1] | 0; if (!(j << 16 >> 16)) { j = w; g = 0; } else { r = g + 65535 & 65535; t = r * 41 | 0; u = (Z(v, -40) | 0) - t | 0; s = 0 - v | 0; t = s - t | 0; s = s - r | 0; q = v + r | 0; p = b[k >> 1] | 0; n = x; o = w; l = d + ((38 - v | 0) * 80 | 0) + 78 | 0; g = 0; m = 0; while (1) { k = k + 2 | 0; g = (Z(p << 16 >> 16, h) | 0) + g | 0; n = n + 2 | 0; p = b[k >> 1] | 0; m = (Z(p << 16 >> 16, h) | 0) + m | 0; B = f; f = f + -2 | 0; h = b[f >> 1] | 0; A = b[o >> 1] << 1; B = (Z((Z(A, b[B >> 1] | 0) | 0) >> 16, (g << 1) + 32768 >> 16) | 0) >>> 15 & 65535; b[e >> 1] = B; b[a >> 1] = B; h = (Z((Z(A, h) | 0) >> 16, (m << 1) + 32768 >> 16) | 0) >>> 15 & 65535; b[a + -2 >> 1] = h; b[l >> 1] = h; j = j + -1 << 16 >> 16; h = b[n >> 1] | 0; if (!(j << 16 >> 16)) break; else { o = o + -2 | 0; a = a + -82 | 0; e = e + -82 | 0; l = l + -82 | 0; } } k = y + (q + 1 << 1) | 0; j = c + (38 - r << 1) | 0; f = c + (s + 38 << 1) | 0; a = d + 3040 + (t + 38 << 1) | 0; e = d + 3040 + (u + 38 << 1) | 0; } B = (Z(b[k >> 1] | 0, h) | 0) + g | 0; B = (Z((B << 1) + 32768 >> 16, (Z(b[j >> 1] << 1, b[f >> 1] | 0) | 0) >> 16) | 0) >>> 15 & 65535; b[a >> 1] = B; b[e >> 1] = B; e = (v << 16) + 131072 | 0; if ((e | 0) < 2621440) v = e >> 16; else break } i = z; return } function gc(a, d, e, f, g, h, j) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; var k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; r = i; i = i + 160 | 0; q = r; if (g << 16 >> 16 > 0) { o = h & 65535; p = 0; k = 5; do { if ((p | 0) < 40) { n = p; m = p & 65535; h = 0; while (1) { if (m << 16 >> 16 < 40) { m = m << 16 >> 16; l = 0; do { l = (Z(b[a + (m - n << 1) >> 1] | 0, b[d + (m << 1) >> 1] | 0) | 0) + l | 0; m = m + 1 | 0; } while ((m & 65535) << 16 >> 16 != 40) } else l = 0; l = l << 1; c[q + (n << 2) >> 2] = l; l = Gc(l) | 0; h = (l | 0) > (h | 0) ? l : h; l = n + o | 0; m = l & 65535; if (m << 16 >> 16 >= 40) break; else n = l << 16 >> 16; } } else h = 0; k = (h >> 1) + k | 0; p = p + 1 | 0; } while ((p & 65535) << 16 >> 16 != g << 16 >> 16) } else k = 5; f = ((pe(k) | 0) & 65535) - (f & 65535) | 0; h = f << 16 >> 16; l = 0 - h << 16; k = (l | 0) < 2031616; l = l >> 16; if ((f & 65535) << 16 >> 16 > 0) if (k) { k = 0; do { f = c[q + (k << 2) >> 2] | 0; d = f << h; b[e + (k << 1) >> 1] = Ce((d >> h | 0) == (f | 0) ? d : f >> 31 ^ 2147483647, j) | 0; k = k + 1 | 0; } while ((k | 0) != 40); i = r; return } else { k = 0; do { f = c[q + (k << 2) >> 2] | 0; d = f << h; b[e + (k << 1) >> 1] = Ce((d >> h | 0) == (f | 0) ? d : f >> 31 ^ 2147483647, j) | 0; k = k + 1 | 0; } while ((k | 0) != 40); i = r; return } else if (k) { k = 0; do { b[e + (k << 1) >> 1] = Ce(c[q + (k << 2) >> 2] >> l, j) | 0; k = k + 1 | 0; } while ((k | 0) != 40); i = r; return } else { k = 0; do { b[e + (k << 1) >> 1] = Ce(0, j) | 0; k = k + 1 | 0; } while ((k | 0) != 40); i = r; return } } function hc(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0; z = i; i = i + 160 | 0; y = z; v = a + 2 | 0; w = b[a >> 1] | 0; x = 0; g = 5; do { u = x; k = 0; while (1) { n = d + (u << 1) | 0; t = 40 - u | 0; h = (t + 131071 | 0) >>> 1 & 65535; l = d + (u + 1 << 1) | 0; j = Z(b[n >> 1] << 1, w) | 0; if (!(h << 16 >> 16)) h = v; else { s = 131111 - u + 131070 & 131070; r = u + s | 0; q = v; p = a; o = n; while (1) { m = o + 4 | 0; n = p + 4 | 0; j = (Z(b[l >> 1] << 1, b[q >> 1] | 0) | 0) + j | 0; h = h + -1 << 16 >> 16; j = (Z(b[m >> 1] << 1, b[n >> 1] | 0) | 0) + j | 0; if (!(h << 16 >> 16)) break; else { l = o + 6 | 0; q = p + 6 | 0; p = n; o = m; } } l = d + (r + 3 << 1) | 0; h = a + (s + 3 << 1) | 0; } if (!(t & 1)) j = (Z(b[l >> 1] << 1, b[h >> 1] | 0) | 0) + j | 0; c[y + (u << 2) >> 2] = j; j = (j | 0) < 0 ? 0 - j | 0 : j; k = (j | 0) > (k | 0) ? j : k; j = u + 5 | 0; if ((j & 65535) << 16 >> 16 < 40) u = j << 16 >> 16; else break } g = (k >> 1) + g | 0; x = x + 1 | 0; } while ((x | 0) != 5); f = ((pe(g) | 0) & 65535) - (f & 65535) | 0; j = f << 16 >> 16; g = 0 - j << 16; k = g >> 16; if ((f & 65535) << 16 >> 16 > 0) { h = 20; g = y; while (1) { y = c[g >> 2] | 0; f = y << j; b[e >> 1] = (((f >> j | 0) == (y | 0) ? f : y >> 31 ^ 2147483647) + 32768 | 0) >>> 16; y = c[g + 4 >> 2] | 0; f = y << j; b[e + 2 >> 1] = (((f >> j | 0) == (y | 0) ? f : y >> 31 ^ 2147483647) + 32768 | 0) >>> 16; h = h + -1 << 16 >> 16; if (!(h << 16 >> 16)) break; else { e = e + 4 | 0; g = g + 8 | 0; } } i = z; return } if ((g | 0) < 2031616) { h = 20; g = y; while (1) { b[e >> 1] = ((c[g >> 2] >> k) + 32768 | 0) >>> 16; b[e + 2 >> 1] = ((c[g + 4 >> 2] >> k) + 32768 | 0) >>> 16; h = h + -1 << 16 >> 16; if (!(h << 16 >> 16)) break; else { e = e + 4 | 0; g = g + 8 | 0; } } i = z; return } else { b[e >> 1] = 0; y = e + 4 | 0; b[e + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; f = y + 4 | 0; b[y + 2 >> 1] = 0; b[f >> 1] = 0; y = f + 4 | 0; b[f + 2 >> 1] = 0; b[y >> 1] = 0; b[y + 2 >> 1] = 0; i = z; return } } function ic(a, b, d, e) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; h = (Td(16383, b) | 0) << 16 >> 16; b = Z(h, b << 16 >> 16) | 0; if ((b | 0) == 1073741824) { c[e >> 2] = 1; f = 2147483647; } else f = b << 1; g = (Z(h, d << 16 >> 16) | 0) >> 15; b = f + (g << 1) | 0; if ((f ^ g | 0) > 0 & (b ^ f | 0) < 0) { c[e >> 2] = 1; b = (f >>> 31) + 2147483647 | 0; } f = 2147483647 - b | 0; d = f >> 16; b = Z(d, h) | 0; if ((b | 0) == 1073741824) { c[e >> 2] = 1; g = 2147483647; } else g = b << 1; h = (Z((f >>> 1) - (d << 15) << 16 >> 16, h) | 0) >> 15; b = g + (h << 1) | 0; if ((g ^ h | 0) > 0 & (b ^ g | 0) < 0) { c[e >> 2] = 1; b = (g >>> 31) + 2147483647 | 0; } g = b >> 16; h = a >> 16; d = Z(g, h) | 0; d = (d | 0) == 1073741824 ? 2147483647 : d << 1; f = (Z((b >>> 1) - (g << 15) << 16 >> 16, h) | 0) >> 15; e = (f << 1) + d | 0; e = (f ^ d | 0) > 0 & (e ^ d | 0) < 0 ? (d >>> 31) + 2147483647 | 0 : e; h = (Z(g, (a >>> 1) - (h << 15) << 16 >> 16) | 0) >> 15; a = e + (h << 1) | 0; a = (e ^ h | 0) > 0 & (a ^ e | 0) < 0 ? (e >>> 31) + 2147483647 | 0 : a; e = a << 2; return ((e >> 2 | 0) == (a | 0) ? e : a >> 31 ^ 2147483647) | 0 } function jc(a, d) { a = a | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0; if (!a) { h = -1; return h | 0 } c[a >> 2] = 0; e = Je(192) | 0; if (!e) { h = -1; return h | 0 } f = e + 176 | 0; b[f >> 1] = 0; b[f + 2 >> 1] = 0; b[f + 4 >> 1] = 0; b[f + 6 >> 1] = 0; b[f + 8 >> 1] = 0; b[f + 10 >> 1] = 0; f = e; g = d; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = e + 20 | 0; g = d; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = e + 40 | 0; g = d; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = e + 60 | 0; g = d; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = e + 80 | 0; g = d; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = e + 100 | 0; g = d; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = e + 120 | 0; g = d; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = e + 140 | 0; g = d; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = e + 160 | 0; h = f + 20 | 0; do { b[f >> 1] = 0; f = f + 2 | 0; } while ((f | 0) < (h | 0)); b[e + 188 >> 1] = 7; b[e + 190 >> 1] = 32767; c[a >> 2] = e; h = 0; return h | 0 } function kc(a, c) { a = a | 0; c = c | 0; var d = 0, e = 0, f = 0; if (!a) { f = -1; return f | 0 } d = a + 176 | 0; b[d >> 1] = 0; b[d + 2 >> 1] = 0; b[d + 4 >> 1] = 0; b[d + 6 >> 1] = 0; b[d + 8 >> 1] = 0; b[d + 10 >> 1] = 0; d = a; e = c; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 20 | 0; e = c; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 40 | 0; e = c; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 60 | 0; e = c; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 80 | 0; e = c; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 100 | 0; e = c; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 120 | 0; e = c; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 140 | 0; e = c; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 160 | 0; f = d + 20 | 0; do { b[d >> 1] = 0; d = d + 2 | 0; } while ((d | 0) < (f | 0)); b[a + 188 >> 1] = 7; b[a + 190 >> 1] = 32767; f = 1; return f | 0 } function lc(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function mc(a, d, e, f, g, h) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; C = i; i = i + 112 | 0; z = C + 80 | 0; A = C + 60 | 0; B = C + 40 | 0; y = C; if (d << 16 >> 16 == 0 ? (j = a + 178 | 0, (b[j >> 1] | 0) != 0) : 0) { B = a + 180 | 0; h = a + 182 | 0; e = j; B = b[B >> 1] | 0; f = c[g >> 2] | 0; A = f + 2 | 0; b[f >> 1] = B; h = b[h >> 1] | 0; B = f + 4 | 0; b[A >> 1] = h; A = a + 184 | 0; A = b[A >> 1] | 0; h = f + 6 | 0; b[B >> 1] = A; B = a + 186 | 0; B = b[B >> 1] | 0; a = f + 8 | 0; b[h >> 1] = B; e = b[e >> 1] | 0; f = f + 10 | 0; c[g >> 2] = f; b[a >> 1] = e; i = C; return } s = y + 36 | 0; t = y + 32 | 0; u = y + 28 | 0; v = y + 24 | 0; w = y + 20 | 0; x = y + 16 | 0; p = y + 12 | 0; q = y + 8 | 0; r = y + 4 | 0; d = y; j = d + 40 | 0; do { c[d >> 2] = 0; d = d + 4 | 0; } while ((d | 0) < (j | 0)); o = 7; d = 0; while (1) { n = b[a + 160 + (o << 1) >> 1] | 0; j = n << 16 >> 16; if (n << 16 >> 16 < 0) j = ~((j ^ -4) >> 2); else j = j >>> 2; d = Rd(d, j & 65535, h) | 0; l = o * 10 | 0; n = 9; while (1) { m = y + (n << 2) | 0; k = c[m >> 2] | 0; D = b[a + (n + l << 1) >> 1] | 0; j = D + k | 0; if ((D ^ k | 0) > -1 & (j ^ k | 0) < 0) { c[h >> 2] = 1; j = (k >>> 31) + 2147483647 | 0; } c[m >> 2] = j; if ((n | 0) > 0) n = n + -1 | 0; else break } if ((o | 0) > 0) o = o + -1 | 0; else break } j = d << 16 >> 16; if (d << 16 >> 16 < 0) j = ~((j ^ -2) >> 1); else j = j >>> 1; b[A + 18 >> 1] = (c[s >> 2] | 0) >>> 3; b[A + 16 >> 1] = (c[t >> 2] | 0) >>> 3; b[A + 14 >> 1] = (c[u >> 2] | 0) >>> 3; b[A + 12 >> 1] = (c[v >> 2] | 0) >>> 3; b[A + 10 >> 1] = (c[w >> 2] | 0) >>> 3; b[A + 8 >> 1] = (c[x >> 2] | 0) >>> 3; b[A + 6 >> 1] = (c[p >> 2] | 0) >>> 3; b[A + 4 >> 1] = (c[q >> 2] | 0) >>> 3; b[A + 2 >> 1] = (c[r >> 2] | 0) >>> 3; b[A >> 1] = (c[y >> 2] | 0) >>> 3; d = a + 178 | 0; j = (((j << 16) + 167772160 | 0) >>> 16) + 128 | 0; b[d >> 1] = j; j = j << 16; if ((j | 0) < 0) j = ~((j >> 16 ^ -256) >> 8); else j = j >> 24; b[d >> 1] = j; if ((j | 0) <= 63) { if ((j | 0) < 0) { b[d >> 1] = 0; j = 0; } } else { b[d >> 1] = 63; j = 63; } D = Ge(j << 8 & 65535, 11560, h) | 0; D = D << 16 >> 16 > 0 ? 0 : D << 16 >> 16 < -14436 ? -14436 : D; b[f >> 1] = D; b[f + 2 >> 1] = D; b[f + 4 >> 1] = D; b[f + 6 >> 1] = D; D = ((D << 16 >> 16) * 5443 | 0) >>> 15 & 65535; b[f + 8 >> 1] = D; b[f + 10 >> 1] = D; b[f + 12 >> 1] = D; b[f + 14 >> 1] = D; ne(A, z, 10, h); Ae(z, 205, 10, h); me(z, A, 10, h); f = a + 182 | 0; D = a + 180 | 0; te(e, 8, A, B, f, D, h); h = f; f = d; D = b[D >> 1] | 0; e = c[g >> 2] | 0; B = e + 2 | 0; b[e >> 1] = D; h = b[h >> 1] | 0; D = e + 4 | 0; b[B >> 1] = h; B = a + 184 | 0; B = b[B >> 1] | 0; h = e + 6 | 0; b[D >> 1] = B; a = a + 186 | 0; a = b[a >> 1] | 0; D = e + 8 | 0; b[h >> 1] = a; a = b[f >> 1] | 0; e = e + 10 | 0; c[g >> 2] = e; b[D >> 1] = a; i = C; return } function nc(a, d, f, g) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0; n = i; i = i + 16 | 0; k = n + 2 | 0; m = n; l = a + 176 | 0; j = (e[l >> 1] | 0) + 1 | 0; j = (j & 65535 | 0) == 8 ? 0 : j & 65535; b[l >> 1] = j; j = a + ((j << 16 >> 16) * 10 << 1) | 0; h = j + 20 | 0; do { b[j >> 1] = b[d >> 1] | 0; j = j + 2 | 0; d = d + 2 | 0; } while ((j | 0) < (h | 0)); d = 0; h = 160; while (1) { j = b[f >> 1] | 0; d = (Z(j << 1, j) | 0) + d | 0; if ((d | 0) < 0) { d = 2147483647; break } h = h + -1 << 16 >> 16; if (!(h << 16 >> 16)) break; else f = f + 2 | 0; } de(d, k, m, g); d = b[k >> 1] | 0; k = d << 16 >> 16; f = k << 10; if ((f | 0) != (k << 26 >> 16 | 0)) { c[g >> 2] = 1; f = d << 16 >> 16 > 0 ? 32767 : -32768; } b[a + 160 + (b[l >> 1] << 1) >> 1] = (((b[m >> 1] | 0) >>> 5) + f << 16) + -558432256 >> 17; i = n; return } function oc(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; h = a + 190 | 0; i = Rd(b[h >> 1] | 0, 1, f) | 0; b[h >> 1] = i; g = a + 188 | 0; do if (!(d << 16 >> 16)) { a = b[g >> 1] | 0; if (!(a << 16 >> 16)) { b[h >> 1] = 0; c[e >> 2] = 8; a = 1; break } h = (a & 65535) + 65535 & 65535; b[g >> 1] = h; if ((Rd(i, h, f) | 0) << 16 >> 16 < 30) { c[e >> 2] = 8; a = 0; } else a = 0; } else { b[g >> 1] = 7; a = 0; } while (0); return a | 0 } function pc(a, b, c, d, e, f, g, h) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; if (!(f << 16 >> 16)) { f = a << 16 >> 16; if (((f << 16) + -5570560 | 0) < 65536) { b = (f * 3 | 0) + -58 + (b << 16 >> 16) | 0; b = b & 65535; return b | 0 } else { b = f + 112 | 0; b = b & 65535; return b | 0 } } if (!(g << 16 >> 16)) { h = (a & 65535) - (d & 65535) << 16; b = (b << 16 >> 16) + 2 + (h >> 15) + (h >> 16) | 0; b = b & 65535; return b | 0 } d = d << 16 >> 16; d = (((c & 65535) - d << 16) + -327680 | 0) > 0 ? d + 5 & 65535 : c; e = e << 16 >> 16; c = a << 16 >> 16; d = (((e - (d & 65535) << 16) + -262144 | 0) > 0 ? e + 65532 & 65535 : d) << 16 >> 16; e = d * 196608 | 0; a = e + -393216 >> 16; f = ((b & 65535) << 16) + (c * 196608 | 0) >> 16; if (!(a - f & 32768)) { b = c + 5 - d | 0; b = b & 65535; return b | 0 } if ((e + 196608 >> 16 | 0) > (f | 0)) { b = f + 3 - a | 0; b = b & 65535; return b | 0 } else { b = c + 11 - d | 0; b = b & 65535; return b | 0 } return 0 } function qc(a, b, c, d, e) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; e = a << 16 >> 16; do if (!(d << 16 >> 16)) if (a << 16 >> 16 < 95) { e = ((e * 393216 | 0) + -6881280 >> 16) + (b << 16 >> 16) | 0; break } else { e = e + 368 | 0; break } else e = ((((e - (c & 65535) | 0) * 393216 | 0) + 196608 | 0) >>> 16) + (b & 65535) | 0; while (0); return e & 65535 | 0 } function rc(d, f, g, h) { d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; i = c[h + 96 >> 2] | 0; if (d >>> 0 < 8) { m = (c[h + 100 >> 2] | 0) + (d << 2) | 0; l = c[m >> 2] | 0; a[g >> 0] = b[f + (b[l >> 1] << 1) >> 1] << 4 | d | b[f + (b[l + 2 >> 1] << 1) >> 1] << 5 | b[f + (b[l + 4 >> 1] << 1) >> 1] << 6 | b[f + (b[l + 6 >> 1] << 1) >> 1] << 7; l = i + (d << 1) | 0; h = b[l >> 1] | 0; if ((h + -7 | 0) > 4) { i = 4; k = 4; d = 1; while (1) { n = b[f + (b[(c[m >> 2] | 0) + (i << 1) >> 1] << 1) >> 1] | 0; h = g + (d << 16 >> 16) | 0; a[h >> 0] = n; n = e[f + (b[(c[m >> 2] | 0) + ((k | 1) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 1 | n & 65535; a[h >> 0] = n; n = e[f + (b[(c[m >> 2] | 0) + ((k | 2) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 2 | n; a[h >> 0] = n; n = e[f + (b[(c[m >> 2] | 0) + ((k | 3) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 3 | n; a[h >> 0] = n; n = e[f + (b[(c[m >> 2] | 0) + (k + 4 << 16 >> 16 << 16 >> 16 << 1) >> 1] << 1) >> 1] << 4 | n; a[h >> 0] = n; n = e[f + (b[(c[m >> 2] | 0) + (k + 5 << 16 >> 16 << 16 >> 16 << 1) >> 1] << 1) >> 1] << 5 | n; a[h >> 0] = n; n = e[f + (b[(c[m >> 2] | 0) + (k + 6 << 16 >> 16 << 16 >> 16 << 1) >> 1] << 1) >> 1] << 6 | n; a[h >> 0] = n; j = k + 8 << 16 >> 16; d = d + 1 << 16 >> 16; a[h >> 0] = e[f + (b[(c[m >> 2] | 0) + (k + 7 << 16 >> 16 << 16 >> 16 << 1) >> 1] << 1) >> 1] << 7 | n; i = j << 16 >> 16; h = b[l >> 1] | 0; if ((i | 0) >= (h + -7 | 0)) break; else k = j; } } else { j = 4; d = 1; } l = h + 4 & 7; if (!l) return; i = g + (d << 16 >> 16) | 0; a[i >> 0] = 0; h = 0; k = 0; d = 0; while (1) { k = (e[f + (b[(c[m >> 2] | 0) + (j << 16 >> 16 << 1) >> 1] << 1) >> 1] & 255) << h | k & 255; a[i >> 0] = k; d = d + 1 << 16 >> 16; h = d << 16 >> 16; if ((h | 0) >= (l | 0)) break; else j = j + 1 << 16 >> 16; } return } if ((d | 0) == 15) { a[g >> 0] = 15; return } a[g >> 0] = b[f >> 1] << 4 | d | b[f + 2 >> 1] << 5 | b[f + 4 >> 1] << 6 | b[f + 6 >> 1] << 7; h = i + (d << 1) | 0; d = b[h >> 1] | 0; i = ((d & 65535) << 16) + 262144 >> 16; m = i & -8; k = (m + 524281 | 0) >>> 3 & 65535; if (k << 16 >> 16 > 0) { i = ((i & -8) + 524281 | 0) >>> 3; l = ((i << 3) + 524280 & 524280) + 12 | 0; j = 1; d = f + 8 | 0; while (1) { a[g + (j << 16 >> 16) >> 0] = e[d + 2 >> 1] << 1 | e[d >> 1] | e[d + 4 >> 1] << 2 | e[d + 6 >> 1] << 3 | e[d + 8 >> 1] << 4 | e[d + 10 >> 1] << 5 | e[d + 12 >> 1] << 6 | e[d + 14 >> 1] << 7; if (k << 16 >> 16 > 1) { k = k + -1 << 16 >> 16; j = j + 1 << 16 >> 16; d = d + 16 | 0; } else break } d = b[h >> 1] | 0; j = (i << 16) + 65536 >> 16; } else { l = 4; j = 1; } d = (0 - m | 4) + (d & 65535) << 16; k = d >> 16; if (!k) return; j = g + j | 0; a[j >> 0] = 0; if ((d | 0) > 0) { d = 0; i = 0; h = 0; } else return; do { i = i & 255 | b[f + (l + d << 1) >> 1] << d; a[j >> 0] = i; h = h + 1 << 16 >> 16; d = h << 16 >> 16; } while ((d | 0) < (k | 0)); return } function sc(d, f, g, h) { d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0; o = c[h + 100 >> 2] | 0; n = c[h + 96 >> 2] | 0; a[g >> 0] = d & 15; n = n + (d << 1) | 0; i = b[n >> 1] | 0; if (d >>> 0 >= 8) { l = ((i & 65535) << 16) + -458752 | 0; if ((l | 0) > 0) { m = 1; k = f; while (1) { f = k + 16 | 0; h = m + 1 << 16 >> 16; a[g + (m << 16 >> 16) >> 0] = e[k + 14 >> 1] | e[k + 12 >> 1] << 1 | ((e[k + 2 >> 1] << 6 | e[k >> 1] << 7 | e[k + 4 >> 1] << 5 | e[k + 6 >> 1] << 4) & 240 | e[k + 8 >> 1] << 3 | e[k + 10 >> 1] << 2) & 252; l = l + -524288 & -65536; if ((l | 0) <= 0) break; else { m = h; k = f; } } i = b[n >> 1] | 0; } else h = 1; m = i & 7; i = g + (h << 16 >> 16) | 0; a[i >> 0] = 0; if (!m) return; else { j = 0; k = 0; l = 0; h = f; } while (1) { k = k & 255 | b[h >> 1] << 7 - j; a[i >> 0] = k; l = l + 1 << 16 >> 16; j = l << 16 >> 16; if ((j | 0) >= (m | 0)) break; else h = h + 2 | 0; } return } k = i << 16 >> 16; if (i << 16 >> 16 > 7) { i = o + (d << 2) | 0; h = 0; m = 0; j = 1; while (1) { p = e[f + (b[(c[i >> 2] | 0) + (h << 1) >> 1] << 1) >> 1] << 7; k = g + (j << 16 >> 16) | 0; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 1) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 6 | p; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 2) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 5 | p; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 3) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 4 | p; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 4) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 3 | p & 240; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 5) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 2 | p; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 6) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 1 | p; a[k >> 0] = p; l = m + 8 << 16 >> 16; j = j + 1 << 16 >> 16; a[k >> 0] = p & 254 | e[f + (b[(c[i >> 2] | 0) + ((m | 7) << 16 >> 16 << 1) >> 1] << 1) >> 1]; h = l << 16 >> 16; k = b[n >> 1] | 0; if ((h | 0) >= (k + -7 | 0)) break; else m = l; } } else { l = 0; j = 1; } n = k & 7; m = g + (j << 16 >> 16) | 0; a[m >> 0] = 0; if (!n) return; j = o + (d << 2) | 0; i = 0; h = 0; k = 0; while (1) { h = (e[f + (b[(c[j >> 2] | 0) + (l << 16 >> 16 << 1) >> 1] << 1) >> 1] & 255) << 7 - i | h & 255; a[m >> 0] = h; k = k + 1 << 16 >> 16; i = k << 16 >> 16; if ((i | 0) >= (n | 0)) break; else l = l + 1 << 16 >> 16; } return } function tc(d, f, g, h) { d = d | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0; o = c[h + 100 >> 2] | 0; n = c[h + 96 >> 2] | 0; a[g >> 0] = d << 3; n = n + (d << 1) | 0; i = b[n >> 1] | 0; if (d >>> 0 >= 8) { l = ((i & 65535) << 16) + -458752 | 0; if ((l | 0) > 0) { m = 1; k = f; while (1) { f = k + 16 | 0; h = m + 1 << 16 >> 16; a[g + (m << 16 >> 16) >> 0] = e[k + 14 >> 1] | e[k + 12 >> 1] << 1 | ((e[k + 2 >> 1] << 6 | e[k >> 1] << 7 | e[k + 4 >> 1] << 5 | e[k + 6 >> 1] << 4) & 240 | e[k + 8 >> 1] << 3 | e[k + 10 >> 1] << 2) & 252; l = l + -524288 & -65536; if ((l | 0) <= 0) break; else { m = h; k = f; } } i = b[n >> 1] | 0; } else h = 1; m = i & 7; i = g + (h << 16 >> 16) | 0; a[i >> 0] = 0; if (!m) return; else { j = 0; k = 0; l = 0; h = f; } while (1) { k = k & 255 | b[h >> 1] << 7 - j; a[i >> 0] = k; l = l + 1 << 16 >> 16; j = l << 16 >> 16; if ((j | 0) >= (m | 0)) break; else h = h + 2 | 0; } return } k = i << 16 >> 16; if (i << 16 >> 16 > 7) { i = o + (d << 2) | 0; h = 0; m = 0; j = 1; while (1) { p = e[f + (b[(c[i >> 2] | 0) + (h << 1) >> 1] << 1) >> 1] << 7; k = g + (j << 16 >> 16) | 0; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 1) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 6 | p; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 2) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 5 | p; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 3) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 4 | p; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 4) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 3 | p & 240; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 5) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 2 | p; a[k >> 0] = p; p = e[f + (b[(c[i >> 2] | 0) + ((m | 6) << 16 >> 16 << 1) >> 1] << 1) >> 1] << 1 | p; a[k >> 0] = p; l = m + 8 << 16 >> 16; j = j + 1 << 16 >> 16; a[k >> 0] = p & 254 | e[f + (b[(c[i >> 2] | 0) + ((m | 7) << 16 >> 16 << 1) >> 1] << 1) >> 1]; h = l << 16 >> 16; k = b[n >> 1] | 0; if ((h | 0) >= (k + -7 | 0)) break; else m = l; } } else { l = 0; j = 1; } n = k & 7; m = g + (j << 16 >> 16) | 0; a[m >> 0] = 0; if (!n) return; j = o + (d << 2) | 0; i = 0; h = 0; k = 0; while (1) { h = (e[f + (b[(c[j >> 2] | 0) + (l << 16 >> 16 << 1) >> 1] << 1) >> 1] & 255) << 7 - i | h & 255; a[m >> 0] = h; k = k + 1 << 16 >> 16; i = k << 16 >> 16; if ((i | 0) >= (n | 0)) break; else l = l + 1 << 16 >> 16; } return } function uc(a) { a = a | 0; var d = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; d = Je(16) | 0; if (!d) { a = -1; return a | 0 } ;b[d >> 1] = 0; b[d + 2 >> 1] = 0; b[d + 4 >> 1] = 0; b[d + 6 >> 1] = 0; b[d + 8 >> 1] = 0; b[d + 10 >> 1] = 0; b[d + 12 >> 1] = 0; b[d + 14 >> 1] = 0; c[a >> 2] = d; a = 0; return a | 0 } function vc(a) { a = a | 0; if (!a) { a = -1; return a | 0 } ;b[a >> 1] = 0; b[a + 2 >> 1] = 0; b[a + 4 >> 1] = 0; b[a + 6 >> 1] = 0; b[a + 8 >> 1] = 0; b[a + 10 >> 1] = 0; b[a + 12 >> 1] = 0; b[a + 14 >> 1] = 0; a = 0; return a | 0 } function wc(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function xc(a, d, e, f, g) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, i = 0, j = 0, k = 0, l = 0; j = d << 16 >> 16 < 2722 ? 0 : d << 16 >> 16 < 5444 ? 1 : 2; i = Ee(e, 1, g) | 0; l = a + 4 | 0; if (!(e << 16 >> 16 > 200 ? i << 16 >> 16 > (b[l >> 1] | 0) : 0)) { i = b[a >> 1] | 0; if (i << 16 >> 16) { h = i + -1 << 16 >> 16; b[a >> 1] = h; h = h << 16 >> 16 != 0; k = 5; } } else { b[a >> 1] = 8; h = 1; k = 5; } if ((k | 0) == 5) if ((j & 65535) < 2 & h) j = (j & 65535) + 1 & 65535; k = a + 6 | 0; b[k >> 1] = d; h = Zd(k, 5) | 0; if (!(j << 16 >> 16 != 0 | h << 16 >> 16 > 5443)) if (h << 16 >> 16 < 0) h = 16384; else { h = h << 16 >> 16; h = (((h << 18 >> 18 | 0) == (h | 0) ? h << 2 : h >>> 15 ^ 32767) << 16 >> 16) * 24660 >> 15; if ((h | 0) > 32767) { c[g >> 2] = 1; h = 32767; } h = 16384 - h & 65535; } else h = 0; i = a + 2 | 0; if (!(b[i >> 1] | 0)) h = De(h, 1, g) | 0; b[f >> 1] = h; b[i >> 1] = h; b[l >> 1] = e; f = a + 12 | 0; b[a + 14 >> 1] = b[f >> 1] | 0; e = a + 10 | 0; b[f >> 1] = b[e >> 1] | 0; a = a + 8 | 0; b[e >> 1] = b[a >> 1] | 0; b[a >> 1] = b[k >> 1] | 0; return } function yc(a) { a = a | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; d = Je(68) | 0; f = d; if (!d) { a = -1; return a | 0 } c[d + 28 >> 2] = 0; g = d + 64 | 0; c[g >> 2] = 0; h = d + 32 | 0; if (((Ud(h) | 0) << 16 >> 16 == 0 ? (i = d + 48 | 0, (Ud(i) | 0) << 16 >> 16 == 0) : 0) ? (uc(g) | 0) << 16 >> 16 == 0 : 0) { e = d + 32 | 0; do { b[d >> 1] = 0; d = d + 2 | 0; } while ((d | 0) < (e | 0)); Ud(h) | 0; Ud(i) | 0; vc(c[g >> 2] | 0) | 0; c[a >> 2] = f; a = 0; return a | 0 } wc(g); Ke(d); a = -1; return a | 0 } function zc(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; wc(b + 64 | 0); Ke(c[a >> 2] | 0); c[a >> 2] = 0; return } function Ac(a) { a = a | 0; var d = 0, e = 0, f = 0; if (!a) { f = -1; return f | 0 } d = a + 32 | 0; e = a; f = e + 32 | 0; do { b[e >> 1] = 0; e = e + 2 | 0; } while ((e | 0) < (f | 0)); Ud(d) | 0; Ud(a + 48 | 0) | 0; vc(c[a + 64 >> 2] | 0) | 0; f = 0; return f | 0 } function Bc(a, d, f, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; q = q | 0; r = r | 0; s = s | 0; t = t | 0; u = u | 0; v = v | 0; w = w | 0; var x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0; H = i; i = i + 48 | 0; y = H + 34 | 0; A = H + 32 | 0; C = H + 30 | 0; B = H + 28 | 0; z = H + 18 | 0; x = H + 8 | 0; D = H + 6 | 0; E = H + 4 | 0; F = H + 2 | 0; G = H; if (d) { o = a + 32 | 0; Vd(o, d, h, y, A, D, E, w); do if ((d | 0) != 7) { Vb(d, j, k, l, m, n, z, x, G, F, w); if ((d | 0) == 5) { ld(c[a + 64 >> 2] | 0, f, g, h, z, x, b[D >> 1] | 0, b[E >> 1] | 0, b[y >> 1] | 0, b[A >> 1] | 0, 40, b[G >> 1] | 0, b[F >> 1] | 0, p, s, t, C, B, u, v, w); break } else { a = od(d, b[y >> 1] | 0, b[A >> 1] | 0, z, x, p, s, t, C, B, v, w) | 0; j = c[u >> 2] | 0; c[u >> 2] = j + 2; b[j >> 1] = a; break } } else { b[t >> 1] = Cc(k, m, w) | 0; a = md(7, b[y >> 1] | 0, b[A >> 1] | 0, t, C, B, c[v + 68 >> 2] | 0, w) | 0; j = c[u >> 2] | 0; c[u >> 2] = j + 2; b[j >> 1] = a; } while (0); Wd(o, b[C >> 1] | 0, b[B >> 1] | 0); i = H; return } if (!(o << 16 >> 16)) { Vd(a + 48 | 0, 0, h, y, A, D, E, w); Vb(0, j, k, l, m, n, z, x, G, F, w); Wb(j, D, E, w); j = jd(a + 32 | 0, b[a >> 1] | 0, b[a + 2 >> 1] | 0, a + 8 | 0, a + 18 | 0, b[a + 4 >> 1] | 0, b[a + 6 >> 1] | 0, h, b[y >> 1] | 0, b[A >> 1] | 0, x, z, b[D >> 1] | 0, b[E >> 1] | 0, p, q, r, s, t, w) | 0; b[c[a + 28 >> 2] >> 1] = j; i = H; return } o = c[u >> 2] | 0; c[u >> 2] = o + 2; c[a + 28 >> 2] = o; o = a + 48 | 0; f = a + 32 | 0; q = f; q = e[q >> 1] | e[q + 2 >> 1] << 16; f = f + 4 | 0; f = e[f >> 1] | e[f + 2 >> 1] << 16; u = o; r = u; b[r >> 1] = q; b[r + 2 >> 1] = q >>> 16; u = u + 4 | 0; b[u >> 1] = f; b[u + 2 >> 1] = f >>> 16; u = a + 40 | 0; f = u; f = e[f >> 1] | e[f + 2 >> 1] << 16; u = u + 4 | 0; u = e[u >> 1] | e[u + 2 >> 1] << 16; r = a + 56 | 0; q = r; b[q >> 1] = f; b[q + 2 >> 1] = f >>> 16; r = r + 4 | 0; b[r >> 1] = u; b[r + 2 >> 1] = u >>> 16; r = a + 2 | 0; Vd(o, 0, h, a, r, D, E, w); Vb(0, j, k, l, m, n, a + 18 | 0, a + 8 | 0, G, F, w); l = (e[F >> 1] | 0) + 1 | 0; u = b[G >> 1] | 0; q = l << 16 >> 16; if ((l & 65535) << 16 >> 16 < 0) { v = 0 - q << 16; if ((v | 0) < 983040) v = u << 16 >> 16 >> (v >> 16) & 65535; else v = 0; } else { u = u << 16 >> 16; v = u << q; if ((v << 16 >> 16 >> q | 0) == (u | 0)) v = v & 65535; else v = (u >>> 15 ^ 32767) & 65535; } b[t >> 1] = v; Wb(j, a + 4 | 0, a + 6 | 0, w); id(o, b[a >> 1] | 0, b[r >> 1] | 0, b[F >> 1] | 0, b[G >> 1] | 0, w); i = H; return } function Cc(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0; f = 10; d = a; e = c; a = 0; while (1) { a = (Z(b[e >> 1] >> 1, b[d >> 1] | 0) | 0) + a | 0; a = a + (Z(b[e + 2 >> 1] >> 1, b[d + 2 >> 1] | 0) | 0) | 0; a = a + (Z(b[e + 4 >> 1] >> 1, b[d + 4 >> 1] | 0) | 0) | 0; a = a + (Z(b[e + 6 >> 1] >> 1, b[d + 6 >> 1] | 0) | 0) | 0; f = f + -1 << 16 >> 16; if (!(f << 16 >> 16)) break; else { d = d + 8 | 0; e = e + 8 | 0; } } d = a << 1; f = pe(d | 1) | 0; g = f << 16 >> 16; d = (f << 16 >> 16 < 17 ? d >> 17 - g : d << g + -17) & 65535; if (d << 16 >> 16 < 1) { c = 0; return c | 0 } else { f = 20; e = c; a = 0; } while (1) { c = b[e >> 1] >> 1; c = ((Z(c, c) | 0) >>> 2) + a | 0; a = b[e + 2 >> 1] >> 1; a = c + ((Z(a, a) | 0) >>> 2) | 0; f = f + -1 << 16 >> 16; if (!(f << 16 >> 16)) break; else e = e + 4 | 0; } a = a << 3; f = pe(a) | 0; c = f << 16 >> 16; d = Td(d, (f << 16 >> 16 < 16 ? a >> 16 - c : a << c + -16) & 65535) | 0; c = (g << 16) + 327680 - (c << 16) | 0; a = c >> 16; if ((c | 0) > 65536) a = d << 16 >> 16 >> a + -1; else a = d << 16 >> 16 << 1 - a; c = a & 65535; return c | 0 } function Dc(a, d, e, f, g, h) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; c[h >> 2] = 0; m = g << 16 >> 16; k = m >>> 2 & 65535; o = k << 16 >> 16 == 0; if (o) j = 0; else { l = k; i = e; j = 0; while (1) { p = b[i >> 1] | 0; p = (Z(p, p) | 0) + j | 0; j = b[i + 2 >> 1] | 0; j = p + (Z(j, j) | 0) | 0; p = b[i + 4 >> 1] | 0; p = j + (Z(p, p) | 0) | 0; j = b[i + 6 >> 1] | 0; j = p + (Z(j, j) | 0) | 0; l = l + -1 << 16 >> 16; if (!(l << 16 >> 16)) break; else i = i + 8 | 0; } } if (!((j >>> 31 ^ 1) & (j | 0) < 1073741824)) { j = m >>> 1 & 65535; if (!(j << 16 >> 16)) j = 1; else { i = j; l = e; j = 0; while (1) { p = b[l >> 1] >> 2; p = (Z(p, p) | 0) + j | 0; j = b[l + 2 >> 1] >> 2; j = p + (Z(j, j) | 0) | 0; i = i + -1 << 16 >> 16; if (!(i << 16 >> 16)) break; else l = l + 4 | 0; } j = j << 1 | 1; } p = (pe(j) | 0) << 16 >> 16; n = p + 65532 & 65535; p = Ce(j << p, h) | 0; } else { m = j << 1 | 1; p = pe(m) | 0; n = p; p = Ce(m << (p << 16 >> 16), h) | 0; } c[h >> 2] = 0; do if (!(g << 16 >> 16)) { j = 1; q = 14; } else { m = g; l = d; j = e; g = 0; while (1) { r = Z(b[j >> 1] | 0, b[l >> 1] | 0) | 0; i = r + g | 0; if ((r ^ g | 0) > 0 & (i ^ g | 0) < 0) break; m = m + -1 << 16 >> 16; if (!(m << 16 >> 16)) { q = 13; break } else { l = l + 2 | 0; j = j + 2 | 0; g = i; } } if ((q | 0) == 13) { j = i << 1 | 1; q = 14; break } c[h >> 2] = 1; if (o) j = 1; else { j = d; i = 0; while (1) { i = (Z(b[e >> 1] >> 2, b[j >> 1] | 0) | 0) + i | 0; i = i + (Z(b[e + 2 >> 1] >> 2, b[j + 2 >> 1] | 0) | 0) | 0; i = i + (Z(b[e + 4 >> 1] >> 2, b[j + 4 >> 1] | 0) | 0) | 0; i = i + (Z(b[e + 6 >> 1] >> 2, b[j + 6 >> 1] | 0) | 0) | 0; k = k + -1 << 16 >> 16; if (!(k << 16 >> 16)) break; else { j = j + 8 | 0; e = e + 8 | 0; } } j = i << 1 | 1; } e = (pe(j) | 0) << 16 >> 16; i = e + 65532 & 65535; e = Ce(j << e, h) | 0; } while (0); if ((q | 0) == 14) { e = pe(j) | 0; i = e; e = Ce(j << (e << 16 >> 16), h) | 0; } b[f >> 1] = p; j = n << 16 >> 16; b[f + 2 >> 1] = 15 - j; b[f + 4 >> 1] = e; i = i << 16 >> 16; b[f + 6 >> 1] = 15 - i; if (e << 16 >> 16 < 4) { r = 0; return r | 0 } i = De(Td(e << 16 >> 16 >>> 1 & 65535, p) | 0, i - j & 65535, h) | 0; i = i << 16 >> 16 > 19661 ? 19661 : i; if ((a | 0) != 7) { r = i; return r | 0 } r = i & 65532; return r | 0 } function Ec(a, d, e, f, g, h, i) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; k = (f & 65535) + 65535 & 65535; if (k << 16 >> 16 > g << 16 >> 16) { n = f + -1 << 16 >> 16 << 16 >> 16; f = -2147483648; while (1) { l = c[a + (0 - n << 2) >> 2] | 0; j = l << 1; l = (j >> 1 | 0) == (l | 0) ? j : l >> 31 ^ 2147483647; j = c[a + (~n << 2) >> 2] | 0; m = l - j | 0; if (((m ^ l) & (l ^ j) | 0) < 0) { c[i >> 2] = 1; m = (l >>> 31) + 2147483647 | 0; } l = c[a + (1 - n << 2) >> 2] | 0; j = m - l | 0; if (((j ^ m) & (l ^ m) | 0) < 0) { c[i >> 2] = 1; j = (m >>> 31) + 2147483647 | 0; } m = Gc(j) | 0; f = (m | 0) < (f | 0) ? f : m; k = k + -1 << 16 >> 16; if (k << 16 >> 16 <= g << 16 >> 16) { g = f; break } else n = n + -1 | 0; } } else g = -2147483648; a = e << 16 >> 16 > 0; if (a) { f = 0; j = d; k = 0; while (1) { m = b[j >> 1] | 0; m = Z(m, m) | 0; if ((m | 0) != 1073741824) { l = (m << 1) + k | 0; if ((m ^ k | 0) > 0 & (l ^ k | 0) < 0) { c[i >> 2] = 1; k = (k >>> 31) + 2147483647 | 0; } else k = l; } else { c[i >> 2] = 1; k = 2147483647; } f = f + 1 << 16 >> 16; if (f << 16 >> 16 >= e << 16 >> 16) break; else j = j + 2 | 0; } if (a) { a = 0; n = d; f = d + -2 | 0; j = 0; while (1) { m = Z(b[f >> 1] | 0, b[n >> 1] | 0) | 0; if ((m | 0) != 1073741824) { l = (m << 1) + j | 0; if ((m ^ j | 0) > 0 & (l ^ j | 0) < 0) { c[i >> 2] = 1; j = (j >>> 31) + 2147483647 | 0; } else j = l; } else { c[i >> 2] = 1; j = 2147483647; } a = a + 1 << 16 >> 16; if (a << 16 >> 16 >= e << 16 >> 16) break; else { n = n + 2 | 0; f = f + 2 | 0; } } } else j = 0; } else { k = 0; j = 0; } f = k << 1; f = (f >> 1 | 0) == (k | 0) ? f : k >> 31 ^ 2147483647; e = j << 1; e = (e >> 1 | 0) == (j | 0) ? e : j >> 31 ^ 2147483647; k = f - e | 0; if (((k ^ f) & (e ^ f) | 0) < 0) { c[i >> 2] = 1; k = (f >>> 31) + 2147483647 | 0; } a = Gc(k) | 0; n = ((pe(g) | 0) & 65535) + 65535 | 0; k = n << 16 >> 16; if ((n & 65535) << 16 >> 16 > 0) { f = g << k; if ((f >> k | 0) != (g | 0)) f = g >> 31 ^ 2147483647; } else { k = 0 - k << 16; if ((k | 0) < 2031616) f = g >> (k >> 16); else f = 0; } m = pe(a) | 0; j = m << 16 >> 16; if (m << 16 >> 16 > 0) { k = a << j; if ((k >> j | 0) == (a | 0)) o = 33; else { k = a >> 31 ^ 2147483647; o = 33; } } else { k = 0 - j << 16; if ((k | 0) < 2031616) { k = a >> (k >> 16); o = 33; } else l = 0; } if ((o | 0) == 33) if (k >>> 0 > 65535) l = Td(f >>> 16 & 65535, k >>> 16 & 65535) | 0; else l = 0; k = m & 65535; o = (n & 65535) - k | 0; f = o & 65535; if (!(o & 32768)) { i = De(l, f, i) | 0; b[h >> 1] = i; return 0 } if (f << 16 >> 16 != -32768) { i = k - n | 0; j = i << 16 >> 16; if ((i & 65535) << 16 >> 16 < 0) { j = 0 - j << 16; if ((j | 0) >= 983040) { i = 0; b[h >> 1] = i; return 0 } i = l << 16 >> 16 >> (j >> 16) & 65535; b[h >> 1] = i; return 0 } } else j = 32767; f = l << 16 >> 16; k = f << j; if ((k << 16 >> 16 >> j | 0) == (f | 0)) { i = k & 65535; b[h >> 1] = i; return 0 } i = (f >>> 15 ^ 32767) & 65535; b[h >> 1] = i; return 0 } function Fc(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; if (d << 16 >> 16) c = c << 16 >> 16 << 1 & 65535; if (c << 16 >> 16 < 0) { a = a + -2 | 0; c = (c & 65535) + 6 & 65535; } d = c << 16 >> 16; e = 6 - d << 16 >> 16; c = (Z(b[3468 + (d << 1) >> 1] | 0, b[a >> 1] | 0) | 0) + 16384 | 0; c = c + (Z(b[3468 + (e << 1) >> 1] | 0, b[a + 2 >> 1] | 0) | 0) | 0; c = c + (Z(b[3468 + (d + 6 << 1) >> 1] | 0, b[a + -2 >> 1] | 0) | 0) | 0; c = c + (Z(b[3468 + (e + 6 << 1) >> 1] | 0, b[a + 4 >> 1] | 0) | 0) | 0; c = (Z(b[3468 + (d + 12 << 1) >> 1] | 0, b[a + -4 >> 1] | 0) | 0) + c | 0; c = c + (Z(b[3468 + (e + 12 << 1) >> 1] | 0, b[a + 6 >> 1] | 0) | 0) | 0; d = c + (Z(b[3468 + (d + 18 << 1) >> 1] | 0, b[a + -6 >> 1] | 0) | 0) | 0; return (d + (Z(b[3468 + (e + 18 << 1) >> 1] | 0, b[a + 8 >> 1] | 0) | 0) | 0) >>> 15 & 65535 | 0 } function Gc(a) { a = a | 0; a = a - (a >>> 31) | 0; return a >> 31 ^ a | 0 } function Hc(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0; if (!(a << 16 >> 16)) return; else { f = 3518; g = 3538; e = d; } while (1) { e = e + 2 | 0; c = c + 2 | 0; j = b[c >> 1] | 0; i = b[f >> 1] | 0; d = Z(i, j) | 0; d = (d | 0) == 1073741824 ? 2147483647 : d << 1; j = (Z(b[g >> 1] | 0, j) | 0) >> 15; h = (j << 1) + d | 0; h = (d ^ j | 0) > 0 & (h ^ d | 0) < 0 ? (d >>> 31) + 2147483647 | 0 : h; i = (Z(i, b[e >> 1] | 0) | 0) >> 15; d = h + (i << 1) | 0; d = (h ^ i | 0) > 0 & (d ^ h | 0) < 0 ? (h >>> 31) + 2147483647 | 0 : d; b[c >> 1] = d >>> 16; b[e >> 1] = (d >>> 1) - (d >> 16 << 15); a = a + -1 << 16 >> 16; if (!(a << 16 >> 16)) break; else { f = f + 2 | 0; g = g + 2 | 0; } } return } function Ic(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0; e = a & 65535; f = e << 16; b = b << 16 >> 16; a = (b << 1) + f | 0; if (!((b ^ f | 0) > 0 & (a ^ f | 0) < 0)) { f = a; return f | 0 } c[d >> 2] = 1; f = (e >>> 15) + 2147483647 | 0; return f | 0 } function Jc(a) { a = a | 0; var d = 0, e = 0, f = 0; if (!a) { f = -1; return f | 0 } c[a >> 2] = 0; d = Je(22) | 0; if (!d) { f = -1; return f | 0 } b[d >> 1] = 4096; e = d + 2 | 0; f = e + 20 | 0; do { b[e >> 1] = 0; e = e + 2 | 0; } while ((e | 0) < (f | 0)); c[a >> 2] = d; f = 0; return f | 0 } function Kc(a) { a = a | 0; var c = 0; if (!a) { c = -1; return c | 0 } b[a >> 1] = 4096; a = a + 2 | 0; c = a + 20 | 0; do { b[a >> 1] = 0; a = a + 2 | 0; } while ((a | 0) < (c | 0)); c = 0; return c | 0 } function Lc(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function Mc(a, c, d, f, g, h) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0; K = i; i = i + 96 | 0; I = K + 66 | 0; J = K + 44 | 0; H = K + 22 | 0; k = K; D = c + 2 | 0; G = d + 2 | 0; F = (b[G >> 1] << 1) + (e[D >> 1] << 16) | 0; j = Gc(F) | 0; j = ic(j, b[c >> 1] | 0, b[d >> 1] | 0, h) | 0; if ((F | 0) > 0) j = Oc(j) | 0; B = j >> 16; b[g >> 1] = Ce(j, h) | 0; v = j >> 20; E = I + 2 | 0; b[E >> 1] = v; F = J + 2 | 0; b[F >> 1] = (j >>> 5) - (v << 15); v = Z(B, B) | 0; v = (v | 0) == 1073741824 ? 2147483647 : v << 1; B = (Z((j >>> 1) - (B << 15) << 16 >> 16, B) | 0) >> 15; C = B << 1; A = C + v | 0; A = (B ^ v | 0) > 0 & (A ^ v | 0) < 0 ? (v >>> 31) + 2147483647 | 0 : A; C = A + C | 0; C = 2147483647 - (Gc((A ^ B | 0) > 0 & (C ^ A | 0) < 0 ? (A >>> 31) + 2147483647 | 0 : C) | 0) | 0; A = C >> 16; B = b[c >> 1] | 0; v = Z(A, B) | 0; v = (v | 0) == 1073741824 ? 2147483647 : v << 1; B = (Z((C >>> 1) - (A << 15) << 16 >> 16, B) | 0) >> 15; C = (B << 1) + v | 0; C = (B ^ v | 0) > 0 & (C ^ v | 0) < 0 ? (v >>> 31) + 2147483647 | 0 : C; A = (Z(b[d >> 1] | 0, A) | 0) >> 15; v = C + (A << 1) | 0; v = (C ^ A | 0) > 0 & (v ^ C | 0) < 0 ? (C >>> 31) + 2147483647 | 0 : v; C = pe(v) | 0; v = v << (C << 16 >> 16); A = H + 2 | 0; B = k + 2 | 0; l = v; v = (v >>> 1) - (v >> 16 << 15) | 0; w = k + 4 | 0; x = H + 4 | 0; y = 2; z = 2; while (1) { u = l >>> 16; j = u & 65535; r = v & 65535; s = z + -1 | 0; n = I + (s << 1) | 0; t = J + (s << 1) | 0; q = 1; p = n; o = t; m = D; k = G; l = 0; while (1) { L = b[m >> 1] | 0; M = ((Z(b[o >> 1] | 0, L) | 0) >> 15) + l | 0; l = b[p >> 1] | 0; l = M + (Z(l, L) | 0) + ((Z(l, b[k >> 1] | 0) | 0) >> 15) | 0; q = q + 1 << 16 >> 16; if ((q << 16 >> 16 | 0) >= (z | 0)) break; else { p = p + -2 | 0; o = o + -2 | 0; m = m + 2 | 0; k = k + 2 | 0; } } M = (e[c + (z << 1) >> 1] << 16) + (l << 5) + (b[d + (z << 1) >> 1] << 1) | 0; l = ic(Gc(M) | 0, j, r, h) | 0; if ((M | 0) > 0) l = Oc(l) | 0; k = C << 16 >> 16; if (C << 16 >> 16 > 0) { j = l << k; if ((j >> k | 0) != (l | 0)) j = l >> 31 ^ 2147483647; } else { k = 0 - k << 16; if ((k | 0) < 2031616) j = l >> (k >> 16); else j = 0; } q = j >> 16; if ((z | 0) < 5) b[g + (s << 1) >> 1] = (j + 32768 | 0) >>> 16; M = (j >>> 16) - (j >>> 31) | 0; if (((M << 16 >> 31 ^ M) & 65535) << 16 >> 16 > 32750) { j = 16; break } o = (j >>> 1) - (q << 15) << 16 >> 16; p = 1; l = t; k = A; m = B; while (1) { L = (Z(b[l >> 1] | 0, q) | 0) >> 15; t = b[n >> 1] | 0; M = (Z(t, o) | 0) >> 15; t = Z(t, q) | 0; M = t + L + (b[J + (p << 1) >> 1] | 0) + (b[I + (p << 1) >> 1] << 15) + M | 0; b[k >> 1] = M >>> 15; b[m >> 1] = M & 32767; p = p + 1 | 0; if ((p & 65535) << 16 >> 16 == y << 16 >> 16) break; else { n = n + -2 | 0; l = l + -2 | 0; k = k + 2 | 0; m = m + 2 | 0; } } b[x >> 1] = j >> 20; b[w >> 1] = (j >>> 5) - (b[H + (z << 1) >> 1] << 15); L = Z(q, q) | 0; L = (L | 0) == 1073741824 ? 2147483647 : L << 1; j = (Z(o, q) | 0) >> 15; M = j << 1; k = M + L | 0; k = (j ^ L | 0) > 0 & (k ^ L | 0) < 0 ? (L >>> 31) + 2147483647 | 0 : k; M = k + M | 0; M = 2147483647 - (Gc((k ^ j | 0) > 0 & (M ^ k | 0) < 0 ? (k >>> 31) + 2147483647 | 0 : M) | 0) | 0; k = M >> 16; j = u << 16 >> 16; j = ((Z(k, v << 16 >> 16) | 0) >> 15) + (Z(k, j) | 0) + ((Z((M >>> 1) - (k << 15) << 16 >> 16, j) | 0) >> 15) << 1; k = (pe(j) | 0) << 16 >> 16; j = j << k; M = z << 1; Oe(E | 0, A | 0, M | 0) | 0; Oe(F | 0, B | 0, M | 0) | 0; z = z + 1 | 0; if ((z | 0) >= 11) { j = 20; break } else { C = k + (C & 65535) & 65535; l = j; v = (j >> 1) - (j >> 16 << 15) | 0; w = w + 2 | 0; x = x + 2 | 0; y = y + 1 << 16 >> 16; } } if ((j | 0) == 16) { j = f + 22 | 0; do { b[f >> 1] = b[a >> 1] | 0; f = f + 2 | 0; a = a + 2 | 0; } while ((f | 0) < (j | 0)); M = g; L = M; b[L >> 1] = 0; b[L + 2 >> 1] = 0 >>> 16; M = M + 4 | 0; b[M >> 1] = 0; b[M + 2 >> 1] = 0 >>> 16; i = K; return 0 } else if ((j | 0) == 20) { b[f >> 1] = 4096; M = ((b[F >> 1] | 0) + 8192 + (b[E >> 1] << 15) | 0) >>> 14 & 65535; b[f + 2 >> 1] = M; b[a + 2 >> 1] = M; M = ((b[J + 4 >> 1] | 0) + 8192 + (b[I + 4 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 4 >> 1] = M; b[a + 4 >> 1] = M; M = ((b[J + 6 >> 1] | 0) + 8192 + (b[I + 6 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 6 >> 1] = M; b[a + 6 >> 1] = M; M = ((b[J + 8 >> 1] | 0) + 8192 + (b[I + 8 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 8 >> 1] = M; b[a + 8 >> 1] = M; M = ((b[J + 10 >> 1] | 0) + 8192 + (b[I + 10 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 10 >> 1] = M; b[a + 10 >> 1] = M; M = ((b[J + 12 >> 1] | 0) + 8192 + (b[I + 12 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 12 >> 1] = M; b[a + 12 >> 1] = M; M = ((b[J + 14 >> 1] | 0) + 8192 + (b[I + 14 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 14 >> 1] = M; b[a + 14 >> 1] = M; M = ((b[J + 16 >> 1] | 0) + 8192 + (b[I + 16 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 16 >> 1] = M; b[a + 16 >> 1] = M; M = ((b[J + 18 >> 1] | 0) + 8192 + (b[I + 18 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 18 >> 1] = M; b[a + 18 >> 1] = M; M = ((b[J + 20 >> 1] | 0) + 8192 + (b[I + 20 >> 1] << 15) | 0) >>> 14 & 65535; b[f + 20 >> 1] = M; b[a + 20 >> 1] = M; i = K; return 0 } return 0 } function Nc(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; e = a >> 16; b[c >> 1] = e; b[d >> 1] = (a >>> 1) - (e << 15); return } function Oc(a) { a = a | 0; return ((a | 0) == -2147483648 ? 2147483647 : 0 - a | 0) | 0 } function Pc(a) { a = a | 0; var b = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; b = Je(4) | 0; if (!b) { a = -1; return a | 0 } c[b >> 2] = 0; if (!((Jc(b) | 0) << 16 >> 16)) { Kc(c[b >> 2] | 0) | 0; c[a >> 2] = b; a = 0; return a | 0 } else { Lc(b); Ke(b); a = -1; return a | 0 } return 0 } function Qc(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Lc(b); Ke(c[a >> 2] | 0); c[a >> 2] = 0; return } function Rc(a) { a = a | 0; if (!a) { a = -1; return a | 0 } Kc(c[a >> 2] | 0) | 0; a = 0; return a | 0 } function Sc(a, b, d, e, f, g, h) { a = a | 0; b = b | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var j = 0, k = 0, l = 0, m = 0; m = i; i = i + 64 | 0; l = m + 48 | 0; k = m + 22 | 0; j = m; if ((b | 0) == 7) { d = c[g + 116 >> 2] | 0; Kb(e, 10, j, k, c[g + 112 >> 2] | 0, h) | 0; Hc(10, j, k, h); Mc(c[a >> 2] | 0, j, k, f + 22 | 0, l, h) | 0; Kb(e, 10, j, k, d, h) | 0; Hc(10, j, k, h); Mc(c[a >> 2] | 0, j, k, f + 66 | 0, l, h) | 0; i = m; return } else { Kb(d, 10, j, k, c[g + 108 >> 2] | 0, h) | 0; Hc(10, j, k, h); Mc(c[a >> 2] | 0, j, k, f + 66 | 0, l, h) | 0; i = m; return } } function Tc(a, c, d, e, f, g, h, i, j, k) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; if ((d | 0) == 6) { b[f >> 1] = bd(a, c, e, 20, 143, 80, g, h, i, j, k) | 0; return } b[h >> 1] = 0; b[h + 2 >> 1] = 0; if (d >>> 0 < 2) { b[f >> 1] = Yc(c, d, e, 20, 143, 160, i, j, k) | 0; return } if (d >>> 0 < 6) { b[f >> 1] = Yc(c, d, e, 20, 143, 80, i, j, k) | 0; return } else { b[f >> 1] = Yc(c, d, e, 18, 143, 80, i, j, k) | 0; return } } function Uc(a) { a = a | 0; var d = 0; if ((a | 0) != 0 ? (c[a >> 2] = 0, d = Je(2) | 0, (d | 0) != 0) : 0) { b[d >> 1] = 0; c[a >> 2] = d; d = 0; } else d = -1; return d | 0 } function Vc(a) { a = a | 0; if (!a) a = -1; else { b[a >> 1] = 0; a = 0; } return a | 0 } function Wc(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function Xc(a, c, d, f, g, h, j, k, l, m, n, o) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; var p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0; U = i; i = i + 240 | 0; u = U + 160 | 0; v = U + 80 | 0; O = U; N = b[3558 + (c * 18 | 0) >> 1] | 0; T = b[3558 + (c * 18 | 0) + 2 >> 1] | 0; p = b[3558 + (c * 18 | 0) + 4 >> 1] | 0; P = b[3558 + (c * 18 | 0) + 6 >> 1] | 0; s = b[3558 + (c * 18 | 0) + 12 >> 1] | 0; r = b[3558 + (c * 18 | 0) + 14 >> 1] | 0; q = b[3558 + (c * 18 | 0) + 16 >> 1] | 0; a:do switch (k << 16 >> 16) { case 0: case 80: if (c >>> 0 < 2 & k << 16 >> 16 == 80) { Q = (e[a >> 1] | 0) - (s & 65535) | 0; Q = (Q << 16 >> 16 | 0) < (q << 16 >> 16 | 0) ? q : Q & 65535; M = r << 16 >> 16; R = (Q & 65535) + M & 65535; S = R << 16 >> 16 > 143; Q = S ? 143 - M & 65535 : Q; R = S ? 143 : R; S = 1; break a } else { Q = (e[d + ((k << 16 >> 16 != 0 & 1) << 1) >> 1] | 0) - (e[3558 + (c * 18 | 0) + 8 >> 1] | 0) | 0; Q = (Q << 16 >> 16 | 0) < (q << 16 >> 16 | 0) ? q : Q & 65535; M = b[3558 + (c * 18 | 0) + 10 >> 1] | 0; R = (Q & 65535) + M & 65535; S = R << 16 >> 16 > 143; Q = S ? 143 - M & 65535 : Q; R = S ? 143 : R; S = 0; break a } default: { Q = (e[a >> 1] | 0) - (s & 65535) | 0; Q = (Q << 16 >> 16 | 0) < (q << 16 >> 16 | 0) ? q : Q & 65535; M = r << 16 >> 16; R = (Q & 65535) + M & 65535; S = R << 16 >> 16 > 143; Q = S ? 143 - M & 65535 : Q; R = S ? 143 : R; S = 1; } } while (0); L = Q & 65535; k = L + 65532 | 0; t = k & 65535; K = (R & 65535) + 4 & 65535; M = k << 16 >> 16; k = 0 - (k & 65535) | 0; s = k & 65535; ec(f + (k << 16 >> 16 << 1) | 0, h, u, j); k = j << 16 >> 16; B = k >>> 1 & 65535; w = B << 16 >> 16 == 0; if (w) j = 1; else { j = B; q = u; d = v; r = 0; while (1) { J = b[q >> 1] | 0; b[d >> 1] = J >>> 2; J = (Z(J, J) | 0) + r | 0; r = b[q + 2 >> 1] | 0; b[d + 2 >> 1] = r >>> 2; r = J + (Z(r, r) | 0) | 0; j = j + -1 << 16 >> 16; if (!(j << 16 >> 16)) break; else { q = q + 4 | 0; d = d + 4 | 0; } } j = (r | 0) < 33554433; } J = j ? 0 : 2; A = j ? u : v; x = j ? u : v; b:do if (t << 16 >> 16 <= K << 16 >> 16) { y = k + -1 | 0; G = A + (y << 1) | 0; H = h + (y << 1) | 0; I = A + (k + -2 << 1) | 0; D = y >>> 1; E = D & 65535; z = E << 16 >> 16 == 0; F = j ? 12 : 14; D = (D << 1) + 131070 & 131070; d = k + -3 - D | 0; C = A + (d << 1) | 0; D = A + (k + -4 - D << 1) | 0; h = h + (d << 1) | 0; if (!w) { w = M; while (1) { v = B; u = x; q = g; r = 0; j = 0; while (1) { v = v + -1 << 16 >> 16; k = b[u >> 1] | 0; r = (Z(k, b[q >> 1] | 0) | 0) + r | 0; k = (Z(k, k) | 0) + j | 0; j = b[u + 2 >> 1] | 0; r = r + (Z(j, b[q + 2 >> 1] | 0) | 0) | 0; j = k + (Z(j, j) | 0) | 0; if (!(v << 16 >> 16)) break; else { u = u + 4 | 0; q = q + 4 | 0; } } u = ce(j << 1, o) | 0; j = u >> 16; q = r << 1 >> 16; v = Z(j, q) | 0; v = (v | 0) == 1073741824 ? 2147483647 : v << 1; q = (Z((u >>> 1) - (j << 15) << 16 >> 16, q) | 0) >> 15; u = (q << 1) + v | 0; u = (q ^ v | 0) > 0 & (u ^ v | 0) < 0 ? (v >>> 31) + 2147483647 | 0 : u; j = (Z(j, r & 32767) | 0) >> 15; v = u + (j << 1) | 0; b[O + (w - M << 1) >> 1] = (u ^ j | 0) > 0 & (v ^ u | 0) < 0 ? (u >>> 31) + 65535 | 0 : v; if (t << 16 >> 16 != K << 16 >> 16) { s = s + -1 << 16 >> 16; v = b[f + (s << 16 >> 16 << 1) >> 1] | 0; if (z) { u = y; j = I; r = H; q = G; } else { u = E; j = I; r = H; q = G; while (1) { w = (Z(b[r >> 1] | 0, v) | 0) >> F; b[q >> 1] = w + (e[j >> 1] | 0); w = (Z(b[r + -2 >> 1] | 0, v) | 0) >> F; b[q + -2 >> 1] = w + (e[j + -2 >> 1] | 0); u = u + -1 << 16 >> 16; if (!(u << 16 >> 16)) { u = d; j = D; r = h; q = C; break } else { j = j + -4 | 0; r = r + -4 | 0; q = q + -4 | 0; } } } w = (Z(b[r >> 1] | 0, v) | 0) >> F; b[q >> 1] = w + (e[j >> 1] | 0); b[A + (u + -1 << 1) >> 1] = v >> J; } t = t + 1 << 16 >> 16; if (t << 16 >> 16 > K << 16 >> 16) break b; else w = t << 16 >> 16; } } if (z) { j = A + (k + -2 << 1) | 0; r = M; while (1) { ce(0, o) | 0; b[O + (r - M << 1) >> 1] = 0; if (t << 16 >> 16 != K << 16 >> 16) { s = s + -1 << 16 >> 16; g = b[f + (s << 16 >> 16 << 1) >> 1] | 0; E = (Z(b[H >> 1] | 0, g) | 0) >> F; b[G >> 1] = E + (e[I >> 1] | 0); b[j >> 1] = g >> J; } t = t + 1 << 16 >> 16; if (t << 16 >> 16 > K << 16 >> 16) break b; else r = t << 16 >> 16; } } u = A + (d + -1 << 1) | 0; j = M; while (1) { ce(0, o) | 0; b[O + (j - M << 1) >> 1] = 0; if (t << 16 >> 16 != K << 16 >> 16) { s = s + -1 << 16 >> 16; j = b[f + (s << 16 >> 16 << 1) >> 1] | 0; r = E; q = I; d = H; k = G; while (1) { g = (Z(b[d >> 1] | 0, j) | 0) >> F; b[k >> 1] = g + (e[q >> 1] | 0); g = (Z(b[d + -2 >> 1] | 0, j) | 0) >> F; b[k + -2 >> 1] = g + (e[q + -2 >> 1] | 0); r = r + -1 << 16 >> 16; if (!(r << 16 >> 16)) break; else { q = q + -4 | 0; d = d + -4 | 0; k = k + -4 | 0; } } g = (Z(b[h >> 1] | 0, j) | 0) >> F; b[C >> 1] = g + (e[D >> 1] | 0); b[u >> 1] = j >> J; } t = t + 1 << 16 >> 16; if (t << 16 >> 16 > K << 16 >> 16) break; else j = t << 16 >> 16; } } while (0); t = Q << 16 >> 16; d = L + 1 & 65535; if (d << 16 >> 16 > R << 16 >> 16) h = Q; else { s = Q; k = b[O + (t - M << 1) >> 1] | 0; while (1) { r = b[O + ((d << 16 >> 16) - M << 1) >> 1] | 0; q = r << 16 >> 16 < k << 16 >> 16; s = q ? s : d; d = d + 1 << 16 >> 16; if (d << 16 >> 16 > R << 16 >> 16) { h = s; break } else k = q ? k : r; } } c:do if (!(S << 16 >> 16 == 0 ? h << 16 >> 16 > N << 16 >> 16 : 0)) { if (!(c >>> 0 < 4 & S << 16 >> 16 != 0)) { s = O + ((h << 16 >> 16) - M << 1) | 0; r = Fc(s, p, T, o) | 0; d = (p & 65535) + 1 & 65535; if (d << 16 >> 16 <= P << 16 >> 16) while (1) { q = Fc(s, d, T, o) | 0; k = q << 16 >> 16 > r << 16 >> 16; p = k ? d : p; d = d + 1 << 16 >> 16; if (d << 16 >> 16 > P << 16 >> 16) break; else r = k ? q : r; } if ((c + -7 | 0) >>> 0 < 2) { P = p << 16 >> 16 == -3; d = (P << 31 >> 31) + h << 16 >> 16; p = P ? 3 : p; break } switch (p << 16 >> 16) { case -2: { d = h + -1 << 16 >> 16; p = 1; break c } case 2: { d = h + 1 << 16 >> 16; p = -1; break c } default: { d = h; break c } } } N = b[a >> 1] | 0; N = ((N << 16 >> 16) - t | 0) > 5 ? t + 5 & 65535 : N; k = R << 16 >> 16; N = (k - (N << 16 >> 16) | 0) > 4 ? k + 65532 & 65535 : N; k = h << 16 >> 16; d = N << 16 >> 16; if ((k | 0) == (d + -1 | 0) ? 1 : h << 16 >> 16 == N << 16 >> 16) { s = O + (k - M << 1) | 0; k = Fc(s, p, T, o) | 0; d = (p & 65535) + 1 & 65535; if (d << 16 >> 16 <= P << 16 >> 16) while (1) { r = Fc(s, d, T, o) | 0; q = r << 16 >> 16 > k << 16 >> 16; p = q ? d : p; d = d + 1 << 16 >> 16; if (d << 16 >> 16 > P << 16 >> 16) break; else k = q ? r : k; } if ((c + -7 | 0) >>> 0 < 2) { P = p << 16 >> 16 == -3; d = (P << 31 >> 31) + h << 16 >> 16; p = P ? 3 : p; break } switch (p << 16 >> 16) { case -2: { d = h + -1 << 16 >> 16; p = 1; break c } case 2: { d = h + 1 << 16 >> 16; p = -1; break c } default: { d = h; break c } } } if ((k | 0) == (d + -2 | 0)) { d = O + (k - M << 1) | 0; k = Fc(d, 0, T, o) | 0; if ((c | 0) != 8) { p = 0; s = 1; while (1) { r = Fc(d, s, T, o) | 0; q = r << 16 >> 16 > k << 16 >> 16; p = q ? s : p; s = s + 1 << 16 >> 16; if (s << 16 >> 16 > P << 16 >> 16) break; else k = q ? r : k; } if ((c + -7 | 0) >>> 0 >= 2) switch (p << 16 >> 16) { case -2: { d = h + -1 << 16 >> 16; p = 1; break c } case 2: { d = h + 1 << 16 >> 16; p = -1; break c } default: { d = h; break c } } } else p = 0; P = p << 16 >> 16 == -3; d = (P << 31 >> 31) + h << 16 >> 16; p = P ? 3 : p; break } if ((k | 0) == (d + 1 | 0)) { s = O + (k - M << 1) | 0; d = Fc(s, p, T, o) | 0; k = (p & 65535) + 1 & 65535; if (k << 16 >> 16 <= 0) while (1) { q = Fc(s, k, T, o) | 0; r = q << 16 >> 16 > d << 16 >> 16; p = r ? k : p; k = k + 1 << 16 >> 16; if (k << 16 >> 16 > 0) break; else d = r ? q : d; } if ((c + -7 | 0) >>> 0 < 2) { P = p << 16 >> 16 == -3; d = (P << 31 >> 31) + h << 16 >> 16; p = P ? 3 : p; break } switch (p << 16 >> 16) { case -2: { d = h + -1 << 16 >> 16; p = 1; break c } case 2: { d = h + 1 << 16 >> 16; p = -1; break c } default: { d = h; break c } } } else { d = h; p = 0; } } else { d = h; p = 0; } while (0); if ((c + -7 | 0) >>> 0 > 1) { P = a; a = pc(d, p, b[a >> 1] | 0, Q, R, S, c >>> 0 < 4 & 1, o) | 0; b[n >> 1] = a; b[P >> 1] = d; b[m >> 1] = T; b[l >> 1] = p; i = U; return d | 0 } else { o = qc(d, p, Q, S, o) | 0; b[n >> 1] = o; b[a >> 1] = d; b[m >> 1] = T; b[l >> 1] = p; i = U; return d | 0 } return 0 } function Yc(a, d, e, f, g, h, j, k, l) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; D = i; i = i + 1200 | 0; B = D + 1188 | 0; A = D + 580 | 0; C = D + 578 | 0; z = D + 576 | 0; v = D; x = D + 582 | 0; y = (k | 0) != 0; do if (y) if (d >>> 0 < 2) { Ld(a, 1, l); break } else { Ld(a, 0, l); break } while (0); w = g << 16 >> 16; o = 0 - w | 0; n = e + (o << 1) | 0; o = o & 65535; s = h << 16 >> 16; do if (o << 16 >> 16 < h << 16 >> 16) { r = o; q = n; o = 0; while (1) { t = b[q >> 1] | 0; o = (Z(t << 1, t) | 0) + o | 0; if ((o | 0) < 0) break; r = r + 1 << 16 >> 16; if (r << 16 >> 16 >= h << 16 >> 16) { u = 14; break } else q = q + 2 | 0; } if ((u | 0) == 14) { if ((o | 0) < 1048576) { u = 15; break } Oe(x | 0, n | 0, s + w << 1 | 0) | 0; t = 0; break } m = s + w | 0; p = m >>> 1; r = p & 65535; if (!(r << 16 >> 16)) o = x; else { t = ((p << 1) + 131070 & 131070) + 2 | 0; s = t - w | 0; q = x; while (1) { b[q >> 1] = (b[n >> 1] | 0) >>> 3; b[q + 2 >> 1] = (b[n + 2 >> 1] | 0) >>> 3; r = r + -1 << 16 >> 16; if (!(r << 16 >> 16)) break; else { n = n + 4 | 0; q = q + 4 | 0; } } n = e + (s << 1) | 0; o = x + (t << 1) | 0; } if (!(m & 1)) t = 3; else { b[o >> 1] = (b[n >> 1] | 0) >>> 3; t = 3; } } else u = 15; while (0); if ((u | 0) == 15) { t = s + w | 0; o = t >>> 1; p = o & 65535; if (!(p << 16 >> 16)) o = x; else { s = ((o << 1) + 131070 & 131070) + 2 | 0; q = s - w | 0; r = x; while (1) { b[r >> 1] = b[n >> 1] << 3; b[r + 2 >> 1] = b[n + 2 >> 1] << 3; p = p + -1 << 16 >> 16; if (!(p << 16 >> 16)) break; else { n = n + 4 | 0; r = r + 4 | 0; } } n = e + (q << 1) | 0; o = x + (s << 1) | 0; } if (!(t & 1)) t = -3; else { b[o >> 1] = b[n >> 1] << 3; t = -3; } } s = v + (w << 2) | 0; q = x + (w << 1) | 0; Tb(q, h, g, f, s); m = (d | 0) == 7 & 1; o = f << 16 >> 16; n = o << 2; if ((n | 0) != (o << 18 >> 16 | 0)) { c[l >> 2] = 1; n = f << 16 >> 16 > 0 ? 32767 : -32768; } r = Zc(a, s, q, t, m, h, g, n & 65535, B, k, l) | 0; o = o << 1; p = Zc(a, s, q, t, m, h, n + 65535 & 65535, o & 65535, A, k, l) | 0; o = Zc(a, s, q, t, m, h, o + 65535 & 65535, f, C, k, l) | 0; if (j << 16 >> 16 == 1 & y) { Ec(s, q, h, g, f, z, l) | 0; Jd(a, b[z >> 1] | 0); } n = b[B >> 1] | 0; m = b[A >> 1] | 0; if (((n << 16 >> 16) * 55706 >> 16 | 0) >= (m << 16 >> 16 | 0)) { A = n; B = r; A = A << 16 >> 16; A = A * 55706 | 0; A = A >> 16; C = b[C >> 1] | 0; C = C << 16 >> 16; C = (A | 0) < (C | 0); C = C ? o : B; i = D; return C | 0 } b[B >> 1] = m; A = m; B = p; A = A << 16 >> 16; A = A * 55706 | 0; A = A >> 16; C = b[C >> 1] | 0; C = C << 16 >> 16; C = (A | 0) < (C | 0); C = C ? o : B; i = D; return C | 0 } function Zc(a, d, e, f, g, h, i, j, k, l, m) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; var n = 0, o = 0, p = 0, q = 0, r = 0; if (i << 16 >> 16 < j << 16 >> 16) { j = -2147483648; p = i; } else { p = i; n = -2147483648; o = d + (0 - (i << 16 >> 16) << 2) | 0; d = i; while (1) { i = c[o >> 2] | 0; r = (i | 0) < (n | 0); d = r ? d : p; n = r ? n : i; p = p + -1 << 16 >> 16; if (p << 16 >> 16 < j << 16 >> 16) { j = n; p = d; break } else o = o + 4 | 0; } } d = h << 16 >> 16 >>> 2 & 65535; if (!(d << 16 >> 16)) d = 0; else { n = d; i = e + (0 - (p << 16 >> 16) << 1) | 0; d = 0; while (1) { r = b[i >> 1] | 0; r = (Z(r, r) | 0) + d | 0; d = b[i + 2 >> 1] | 0; d = r + (Z(d, d) | 0) | 0; r = b[i + 4 >> 1] | 0; r = d + (Z(r, r) | 0) | 0; d = b[i + 6 >> 1] | 0; d = r + (Z(d, d) | 0) | 0; n = n + -1 << 16 >> 16; if (!(n << 16 >> 16)) break; else i = i + 8 | 0; } d = d << 1; } if (l) Kd(a, j, d, m); d = ce(d, m) | 0; i = g << 16 >> 16 != 0; if (i) d = (d | 0) > 1073741823 ? 2147483647 : d << 1; g = j >> 16; a = d >> 16; m = Z(a, g) | 0; m = (m | 0) == 1073741824 ? 2147483647 : m << 1; d = (Z((d >>> 1) - (a << 15) << 16 >> 16, g) | 0) >> 15; r = (d << 1) + m | 0; r = (d ^ m | 0) > 0 & (r ^ m | 0) < 0 ? (m >>> 31) + 2147483647 | 0 : r; g = (Z(a, (j >>> 1) - (g << 15) << 16 >> 16) | 0) >> 15; d = r + (g << 1) | 0; d = (r ^ g | 0) > 0 & (d ^ r | 0) < 0 ? (r >>> 31) + 2147483647 | 0 : d; if (!i) { b[k >> 1] = d; return p | 0 } i = f << 16 >> 16; if (f << 16 >> 16 > 0) if (f << 16 >> 16 < 31) { i = d >> i; q = 16; } else i = 0; else { q = 0 - i << 16 >> 16; i = d << q; i = (i >> q | 0) == (d | 0) ? i : d >> 31 ^ 2147483647; q = 16; } if ((q | 0) == 16) { if ((i | 0) > 65535) { b[k >> 1] = 32767; return p | 0 } if ((i | 0) < -65536) { b[k >> 1] = -32768; return p | 0 } } b[k >> 1] = i >>> 1; return p | 0 } function _c(a) { a = a | 0; var d = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; d = Je(6) | 0; if (!d) { a = -1; return a | 0 } b[d >> 1] = 40; b[d + 2 >> 1] = 0; b[d + 4 >> 1] = 0; c[a >> 2] = d; a = 0; return a | 0 } function $c(a) { a = a | 0; if (!a) { a = -1; return a | 0 } b[a >> 1] = 40; b[a + 2 >> 1] = 0; b[a + 4 >> 1] = 0; a = 0; return a | 0 } function ad(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function bd(a, d, e, f, g, h, j, k, l, m, n) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; var o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0; F = i; i = i + 1200 | 0; w = F + 1186 | 0; x = F + 1184 | 0; E = F + 1182 | 0; v = F; z = F + 576 | 0; y = g << 16 >> 16; D = z + (y << 1) | 0; o = (0 - y & 65535) << 16 >> 16 < h << 16 >> 16; if (o) { s = 0 - g << 16 >> 16 << 16 >> 16; p = 0; do { r = b[e + (s << 1) >> 1] | 0; r = Z(r, r) | 0; if ((r | 0) != 1073741824) { q = (r << 1) + p | 0; if ((r ^ p | 0) > 0 & (q ^ p | 0) < 0) { c[n >> 2] = 1; p = (p >>> 31) + 2147483647 | 0; } else p = q; } else { c[n >> 2] = 1; p = 2147483647; } s = s + 1 | 0; } while ((s & 65535) << 16 >> 16 != h << 16 >> 16) } else p = 0; if ((2147483646 - p & p | 0) >= 0) if ((p | 0) == 2147483647) { if (o) { p = 0 - g << 16 >> 16 << 16 >> 16; do { b[z + (p + y << 1) >> 1] = De(b[e + (p << 1) >> 1] | 0, 3, n) | 0; p = p + 1 | 0; } while ((p & 65535) << 16 >> 16 != h << 16 >> 16) } } else t = 14; else { c[n >> 2] = 1; t = 14; } do if ((t | 0) == 14) { if ((1048575 - p & p | 0) < 0) { c[n >> 2] = 1; p = (p >>> 31) + 2147483647 | 0; } else p = p + -1048576 | 0; if ((p | 0) >= 0) { if (!o) break; C = 0 - g << 16 >> 16 << 16 >> 16; Oe(z + (y + C << 1) | 0, e + (C << 1) | 0, (((h + g << 16 >> 16) + -1 & 65535) << 1) + 2 | 0) | 0; break } if (o) { p = 0 - g << 16 >> 16 << 16 >> 16; do { C = b[e + (p << 1) >> 1] | 0; b[z + (p + y << 1) >> 1] = (C << 19 >> 19 | 0) == (C | 0) ? C << 3 : C >>> 15 ^ 32767; p = p + 1 | 0; } while ((p & 65535) << 16 >> 16 != h << 16 >> 16) } } while (0); B = v + (y << 2) | 0; Tb(D, h, g, f, B); s = b[a >> 1] | 0; C = a + 4 | 0; A = k + (l << 16 >> 16 << 1) | 0; a:do if (g << 16 >> 16 < f << 16 >> 16) u = g; else { if ((b[C >> 1] | 0) <= 0) { e = g; k = -2147483648; r = g; t = 3402; while (1) { Nc(c[v + (y - (e << 16 >> 16) << 2) >> 2] | 0, w, x, n); q = b[x >> 1] | 0; p = b[t >> 1] | 0; s = Z(p, b[w >> 1] | 0) | 0; if ((s | 0) == 1073741824) { c[n >> 2] = 1; o = 2147483647; } else o = s << 1; u = (Z(p, q << 16 >> 16) | 0) >> 15; s = o + (u << 1) | 0; if ((o ^ u | 0) > 0 & (s ^ o | 0) < 0) { c[n >> 2] = 1; s = (o >>> 31) + 2147483647 | 0; } q = (s | 0) < (k | 0); r = q ? r : e; e = e + -1 << 16 >> 16; if (e << 16 >> 16 < f << 16 >> 16) { u = r; break a } else { k = q ? k : s; t = t + -2 | 0; } } } k = g; o = -2147483648; r = g; u = 2902 + (y + 123 - (s << 16 >> 16) << 1) | 0; e = 3402; while (1) { Nc(c[v + (y - (k << 16 >> 16) << 2) >> 2] | 0, w, x, n); t = b[x >> 1] | 0; q = b[e >> 1] | 0; s = Z(q, b[w >> 1] | 0) | 0; if ((s | 0) == 1073741824) { c[n >> 2] = 1; p = 2147483647; } else p = s << 1; t = (Z(q, t << 16 >> 16) | 0) >> 15; s = p + (t << 1) | 0; if ((p ^ t | 0) > 0 & (s ^ p | 0) < 0) { c[n >> 2] = 1; s = (p >>> 31) + 2147483647 | 0; } Nc(s, w, x, n); t = b[x >> 1] | 0; q = b[u >> 1] | 0; s = Z(q, b[w >> 1] | 0) | 0; if ((s | 0) == 1073741824) { c[n >> 2] = 1; p = 2147483647; } else p = s << 1; t = (Z(q, t << 16 >> 16) | 0) >> 15; s = p + (t << 1) | 0; if ((p ^ t | 0) > 0 & (s ^ p | 0) < 0) { c[n >> 2] = 1; s = (p >>> 31) + 2147483647 | 0; } q = (s | 0) < (o | 0); r = q ? r : k; k = k + -1 << 16 >> 16; if (k << 16 >> 16 < f << 16 >> 16) { u = r; break } else { o = q ? o : s; u = u + -2 | 0; e = e + -2 | 0; } } } while (0); if (h << 16 >> 16 > 0) { k = 0; e = D; t = z + (y - (u << 16 >> 16) << 1) | 0; r = 0; p = 0; while (1) { s = b[t >> 1] | 0; q = Z(s, b[e >> 1] | 0) | 0; if ((q | 0) != 1073741824) { o = (q << 1) + r | 0; if ((q ^ r | 0) > 0 & (o ^ r | 0) < 0) { c[n >> 2] = 1; r = (r >>> 31) + 2147483647 | 0; } else r = o; } else { c[n >> 2] = 1; r = 2147483647; } o = Z(s, s) | 0; if ((o | 0) != 1073741824) { q = (o << 1) + p | 0; if ((o ^ p | 0) > 0 & (q ^ p | 0) < 0) { c[n >> 2] = 1; p = (p >>> 31) + 2147483647 | 0; } else p = q; } else { c[n >> 2] = 1; p = 2147483647; } k = k + 1 << 16 >> 16; if (k << 16 >> 16 >= h << 16 >> 16) break; else { e = e + 2 | 0; t = t + 2 | 0; } } } else { r = 0; p = 0; } q = (m | 0) == 0; if (!q) { Ld(d, 0, n); Kd(d, r, p, n); } o = (Ce(p, n) | 0) << 16 >> 16; if ((o * 13107 | 0) == 1073741824) { c[n >> 2] = 1; p = 2147483647; } else p = o * 26214 | 0; o = r - p | 0; if (((o ^ r) & (p ^ r) | 0) < 0) { c[n >> 2] = 1; o = (r >>> 31) + 2147483647 | 0; } m = Ce(o, n) | 0; b[A >> 1] = m; if (m << 16 >> 16 > 0) { o = j + 6 | 0; b[j + 8 >> 1] = b[o >> 1] | 0; m = j + 4 | 0; b[o >> 1] = b[m >> 1] | 0; o = j + 2 | 0; b[m >> 1] = b[o >> 1] | 0; b[o >> 1] = b[j >> 1] | 0; b[j >> 1] = u; b[a >> 1] = Zd(j, 5) | 0; b[a + 2 >> 1] = 32767; o = 32767; } else { b[a >> 1] = u; a = a + 2 | 0; o = ((b[a >> 1] | 0) * 29491 | 0) >>> 15 & 65535; b[a >> 1] = o; } b[C >> 1] = ((Ge(o, 9830, n) | 0) & 65535) >>> 15 ^ 1; if (q) { i = F; return u | 0 } if ((Ge(l, 1, n) | 0) << 16 >> 16) { i = F; return u | 0 } Ec(B, D, h, g, f, E, n) | 0; Jd(d, b[E >> 1] | 0); i = F; return u | 0 } function cd(a, b, c, d, e, f, g, h, j, k) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0; k = i; i = i + 48 | 0; m = k + 22 | 0; l = k; b = a >>> 0 < 6 ? b : c; c = f << 16 >> 16 > 0 ? 22 : 0; a = e + (c << 1) | 0; Ie(a, b, m); Ie(a, d, l); a = f << 16 >> 16; f = j + (a << 1) | 0; Be(m, g + (a << 1) | 0, f, 40); He(l, f, f, 40, h, 1); c = e + (((c << 16) + 720896 | 0) >>> 16 << 1) | 0; Ie(c, b, m); Ie(c, d, l); a = (a << 16) + 2621440 >> 16; j = j + (a << 1) | 0; Be(m, g + (a << 1) | 0, j, 40); He(l, j, j, 40, h, 1); i = k; return } function dd(a) { a = a | 0; var d = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; d = Je(12) | 0; if (!d) { a = -1; return a | 0 } ;b[d >> 1] = 0; b[d + 2 >> 1] = 0; b[d + 4 >> 1] = 0; b[d + 6 >> 1] = 0; b[d + 8 >> 1] = 0; b[d + 10 >> 1] = 0; c[a >> 2] = d; a = 0; return a | 0 } function ed(a) { a = a | 0; if (!a) { a = -1; return a | 0 } ;b[a >> 1] = 0; b[a + 2 >> 1] = 0; b[a + 4 >> 1] = 0; b[a + 6 >> 1] = 0; b[a + 8 >> 1] = 0; b[a + 10 >> 1] = 0; a = 0; return a | 0 } function fd(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function gd(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0; m = a + 10 | 0; f = b[m >> 1] | 0; n = a + 8 | 0; e = b[n >> 1] | 0; if (!(d << 16 >> 16)) { a = e; l = f; b[m >> 1] = l; b[n >> 1] = a; return } i = a + 4 | 0; j = a + 6 | 0; k = a + 2 | 0; h = b[j >> 1] | 0; l = b[i >> 1] | 0; g = d; d = f; while (1) { o = (Z(b[a >> 1] | 0, -3733) | 0) + (((l << 16 >> 16) * 7807 | 0) + ((h << 16 >> 16) * 7807 >> 15)) | 0; b[a >> 1] = l; o = o + ((Z(b[k >> 1] | 0, -3733) | 0) >> 15) | 0; b[k >> 1] = h; o = ((d << 16 >> 16) * 1899 | 0) + o + (Z(e << 16 >> 16, -3798) | 0) | 0; d = b[c >> 1] | 0; o = o + ((d << 16 >> 16) * 1899 | 0) | 0; b[c >> 1] = (o + 2048 | 0) >>> 12; f = o >>> 12; l = f & 65535; b[i >> 1] = l; h = (o << 3) - (f << 15) & 65535; b[j >> 1] = h; g = g + -1 << 16 >> 16; if (!(g << 16 >> 16)) break; else { o = e; c = c + 2 | 0; e = d; d = o; } } b[m >> 1] = e; b[n >> 1] = d; return } function hd(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0; g = b[(c[f + 88 >> 2] | 0) + (a << 1) >> 1] | 0; if (!(g << 16 >> 16)) return; j = e; i = c[(c[f + 92 >> 2] | 0) + (a << 2) >> 2] | 0; while (1) { e = b[i >> 1] | 0; if (!(e << 16 >> 16)) e = 0; else { a = b[d >> 1] | 0; h = e; f = j + ((e << 16 >> 16) + -1 << 1) | 0; while (1) { e = a << 16 >> 16; b[f >> 1] = e & 1; h = h + -1 << 16 >> 16; if (!(h << 16 >> 16)) break; else { a = e >>> 1 & 65535; f = f + -2 | 0; } } e = b[i >> 1] | 0; } d = d + 2 | 0; g = g + -1 << 16 >> 16; if (!(g << 16 >> 16)) break; else { j = j + (e << 16 >> 16 << 1) | 0; i = i + 2 | 0; } } return } function id(a, d, f, g, h, j) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; var k = 0, l = 0, m = 0, n = 0, o = 0; o = i; i = i + 16 | 0; m = o + 2 | 0; n = o; k = h << 16 >> 16; if (h << 16 >> 16 < 1) { j = -5443; n = -32768; Wd(a, n, j); i = o; return } l = re(14, f, j) | 0; if ((k | 0) < (l << 16 >> 16 | 0)) f = g; else { f = (g & 65535) + 1 & 65535; h = k >>> 1 & 65535; } g = Td(h, l & 65535) | 0; b[n >> 1] = g; de(g << 16 >> 16, m, n, j); b[m >> 1] = ((((f & 65535) - (d & 65535) << 16) + -65536 | 0) >>> 16) + (e[m >> 1] | 0); g = Ee(b[n >> 1] | 0, 5, j) | 0; k = b[m >> 1] | 0; g = ((k & 65535) << 10) + (g & 65535) & 65535; if (g << 16 >> 16 > 18284) { j = 3037; n = 18284; Wd(a, n, j); i = o; return } h = b[n >> 1] | 0; k = k << 16 >> 16; if ((k * 24660 | 0) == 1073741824) { c[j >> 2] = 1; f = 2147483647; } else f = k * 49320 | 0; n = (h << 16 >> 16) * 24660 >> 15; k = f + (n << 1) | 0; if ((f ^ n | 0) > 0 & (k ^ f | 0) < 0) { c[j >> 2] = 1; k = (f >>> 31) + 2147483647 | 0; } n = k << 13; j = Ce((n >> 13 | 0) == (k | 0) ? n : k >> 31 ^ 2147483647, j) | 0; n = g; Wd(a, n, j); i = o; return } function jd(a, d, f, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; q = q | 0; r = r | 0; s = s | 0; t = t | 0; u = u | 0; v = v | 0; w = w | 0; x = x | 0; var y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0; ha = i; i = i + 80 | 0; da = ha + 66 | 0; ea = ha + 64 | 0; fa = ha + 62 | 0; ga = ha + 60 | 0; O = ha + 40 | 0; P = ha + 20 | 0; M = ha; b[da >> 1] = d; b[ea >> 1] = m; b[fa >> 1] = n; L = re(14, f, x) | 0; ca = L & 65535; b[ga >> 1] = ca; N = re(14, n, x) | 0; K = (e[g >> 1] | 0) + 65523 | 0; b[M >> 1] = K; E = (e[g + 2 >> 1] | 0) + 65522 | 0; F = M + 2 | 0; b[F >> 1] = E; G = ((d & 65535) << 16) + -720896 | 0; B = G >> 16; G = (G >>> 15) + 15 + (e[g + 4 >> 1] | 0) | 0; H = M + 4 | 0; b[H >> 1] = G; I = (e[g + 6 >> 1] | 0) + B | 0; J = M + 6 | 0; b[J >> 1] = I; B = B + 1 + (e[g + 8 >> 1] | 0) | 0; C = M + 8 | 0; b[C >> 1] = B; y = (e[o >> 1] | 0) + 65523 & 65535; b[M + 10 >> 1] = y; D = (e[o + 2 >> 1] | 0) + 65522 & 65535; b[M + 12 >> 1] = D; z = ((m & 65535) << 16) + -720896 | 0; g = z >> 16; z = (z >>> 15) + 15 + (e[o + 4 >> 1] | 0) & 65535; b[M + 14 >> 1] = z; A = (e[o + 6 >> 1] | 0) + g & 65535; b[M + 16 >> 1] = A; g = g + 1 + (e[o + 8 >> 1] | 0) & 65535; b[M + 18 >> 1] = g; aa = (j & 65535) - (q & 65535) << 16; m = aa >> 16; if ((aa | 0) > 0) { n = k; f = r << 16 >> 16 >> m & 65535; } else { n = k << 16 >> 16 >> 0 - m & 65535; f = r; } if ((Ee(f, 1, x) | 0) << 16 >> 16 > n << 16 >> 16) f = 1; else f = (((n << 16 >> 16) + 3 >> 2 | 0) > (f << 16 >> 16 | 0)) << 31 >> 31; o = K + f & 65535; b[M >> 1] = o; aa = E + f & 65535; b[F >> 1] = aa; $ = G + f & 65535; b[H >> 1] = $; _ = I + f & 65535; b[J >> 1] = _; Y = B + f & 65535; b[C >> 1] = Y; m = g << 16 >> 16 > o << 16 >> 16 ? g : o; m = A << 16 >> 16 > m << 16 >> 16 ? A : m; m = z << 16 >> 16 > m << 16 >> 16 ? z : m; m = D << 16 >> 16 > m << 16 >> 16 ? D : m; m = y << 16 >> 16 > m << 16 >> 16 ? y : m; m = Y << 16 >> 16 > m << 16 >> 16 ? Y : m; m = _ << 16 >> 16 > m << 16 >> 16 ? _ : m; m = $ << 16 >> 16 > m << 16 >> 16 ? $ : m; m = (aa << 16 >> 16 > m << 16 >> 16 ? aa : m) + 1 & 65535; g = 0; while (1) { f = m - (o & 65535) | 0; o = f & 65535; n = e[h >> 1] << 16; f = f << 16 >> 16; if (o << 16 >> 16 > 0) o = o << 16 >> 16 < 31 ? n >> f : 0; else { aa = 0 - f << 16 >> 16; o = n << aa; o = (o >> aa | 0) == (n | 0) ? o : n >> 31 ^ 2147483647; } aa = o >> 16; b[O + (g << 1) >> 1] = aa; b[P + (g << 1) >> 1] = (o >>> 1) - (aa << 15); g = g + 1 | 0; if ((g | 0) == 5) { f = 5; n = p; break } o = b[M + (g << 1) >> 1] | 0; h = h + 2 | 0; } while (1) { g = m - (y & 65535) | 0; y = g & 65535; o = e[n >> 1] << 16; g = g << 16 >> 16; if (y << 16 >> 16 > 0) o = y << 16 >> 16 < 31 ? o >> g : 0; else { $ = 0 - g << 16 >> 16; aa = o << $; o = (aa >> $ | 0) == (o | 0) ? aa : o >> 31 ^ 2147483647; } aa = o >> 16; b[O + (f << 1) >> 1] = aa; b[P + (f << 1) >> 1] = (o >>> 1) - (aa << 15); o = f + 1 | 0; if ((o & 65535) << 16 >> 16 == 10) break; y = b[M + (o << 1) >> 1] | 0; f = o; n = n + 2 | 0; } Q = L << 16 >> 16; R = b[O >> 1] | 0; S = b[P >> 1] | 0; T = b[O + 2 >> 1] | 0; U = b[P + 2 >> 1] | 0; V = b[O + 4 >> 1] | 0; W = b[P + 4 >> 1] | 0; X = b[O + 6 >> 1] | 0; Y = b[P + 6 >> 1] | 0; _ = b[O + 8 >> 1] | 0; $ = b[P + 8 >> 1] | 0; aa = s & 65535; q = N << 16 >> 16; j = b[O + 10 >> 1] | 0; A = b[P + 10 >> 1] | 0; z = b[O + 12 >> 1] | 0; h = b[P + 12 >> 1] | 0; f = b[O + 14 >> 1] | 0; n = b[P + 14 >> 1] | 0; g = b[O + 16 >> 1] | 0; y = b[P + 16 >> 1] | 0; B = b[O + 18 >> 1] | 0; P = b[P + 18 >> 1] | 0; m = 2147483647; O = 0; o = 0; C = 782; do { M = b[C >> 1] | 0; I = (Z(Q, b[C + 2 >> 1] | 0) | 0) >>> 15 << 16; p = I >> 16; G = M << 1; K = (Z(G, M) | 0) >> 16; r = Z(K, R) | 0; if ((r | 0) == 1073741824) { c[x >> 2] = 1; J = 2147483647; } else J = r << 1; N = (Z(S, K) | 0) >> 15; r = J + (N << 1) | 0; if ((J ^ N | 0) > 0 & (r ^ J | 0) < 0) { c[x >> 2] = 1; r = (J >>> 31) + 2147483647 | 0; } K = Z(T, M) | 0; if ((K | 0) == 1073741824) { c[x >> 2] = 1; J = 2147483647; } else J = K << 1; N = (Z(U, M) | 0) >> 15; K = J + (N << 1) | 0; if ((J ^ N | 0) > 0 & (K ^ J | 0) < 0) { c[x >> 2] = 1; K = (J >>> 31) + 2147483647 | 0; } I = (Z(I >> 15, p) | 0) >> 16; J = Z(V, I) | 0; if ((J | 0) == 1073741824) { c[x >> 2] = 1; H = 2147483647; } else H = J << 1; N = (Z(W, I) | 0) >> 15; J = H + (N << 1) | 0; if ((H ^ N | 0) > 0 & (J ^ H | 0) < 0) { c[x >> 2] = 1; J = (H >>> 31) + 2147483647 | 0; } I = Z(X, p) | 0; if ((I | 0) == 1073741824) { c[x >> 2] = 1; H = 2147483647; } else H = I << 1; N = (Z(Y, p) | 0) >> 15; I = H + (N << 1) | 0; if ((H ^ N | 0) > 0 & (I ^ H | 0) < 0) { c[x >> 2] = 1; N = (H >>> 31) + 2147483647 | 0; } else N = I; H = (Z(G, p) | 0) >> 16; I = Z(_, H) | 0; if ((I | 0) == 1073741824) { c[x >> 2] = 1; G = 2147483647; } else G = I << 1; L = (Z($, H) | 0) >> 15; I = G + (L << 1) | 0; if ((G ^ L | 0) > 0 & (I ^ G | 0) < 0) { c[x >> 2] = 1; I = (G >>> 31) + 2147483647 | 0; } H = b[C + 4 >> 1] | 0; G = b[C + 6 >> 1] | 0; C = C + 8 | 0; if ((M - aa & 65535) << 16 >> 16 < 1 ? (ba = H << 16 >> 16, H << 16 >> 16 <= s << 16 >> 16) : 0) { E = (Z(G << 16 >> 16, q) | 0) >>> 15 << 16; M = E >> 16; D = ba << 1; G = (Z(D, ba) | 0) >> 16; H = Z(j, G) | 0; if ((H | 0) == 1073741824) { c[x >> 2] = 1; F = 2147483647; } else F = H << 1; L = (Z(A, G) | 0) >> 15; H = F + (L << 1) | 0; if ((F ^ L | 0) > 0 & (H ^ F | 0) < 0) { c[x >> 2] = 1; H = (F >>> 31) + 2147483647 | 0; } G = Z(z, ba) | 0; if ((G | 0) == 1073741824) { c[x >> 2] = 1; F = 2147483647; } else F = G << 1; L = (Z(h, ba) | 0) >> 15; G = F + (L << 1) | 0; if ((F ^ L | 0) > 0 & (G ^ F | 0) < 0) { c[x >> 2] = 1; L = (F >>> 31) + 2147483647 | 0; } else L = G; F = (Z(E >> 15, M) | 0) >> 16; G = Z(f, F) | 0; if ((G | 0) == 1073741824) { c[x >> 2] = 1; E = 2147483647; } else E = G << 1; p = (Z(n, F) | 0) >> 15; G = E + (p << 1) | 0; if ((E ^ p | 0) > 0 & (G ^ E | 0) < 0) { c[x >> 2] = 1; p = (E >>> 31) + 2147483647 | 0; } else p = G; G = Z(g, M) | 0; if ((G | 0) == 1073741824) { c[x >> 2] = 1; F = 2147483647; } else F = G << 1; E = (Z(y, M) | 0) >> 15; G = F + (E << 1) | 0; if ((F ^ E | 0) > 0 & (G ^ F | 0) < 0) { c[x >> 2] = 1; k = (F >>> 31) + 2147483647 | 0; } else k = G; F = (Z(D, M) | 0) >> 16; G = Z(B, F) | 0; if ((G | 0) == 1073741824) { c[x >> 2] = 1; E = 2147483647; } else E = G << 1; M = (Z(P, F) | 0) >> 15; G = E + (M << 1) | 0; if ((E ^ M | 0) > 0 & (G ^ E | 0) < 0) { c[x >> 2] = 1; G = (E >>> 31) + 2147483647 | 0; } M = K + r + J + N + I + H + L + p + k + G | 0; N = (M | 0) < (m | 0); m = N ? M : m; o = N ? O : o; } O = O + 1 << 16 >> 16; } while (O << 16 >> 16 < 256); s = (o & 65535) << 18 >> 16; kd(a, 782 + (s << 1) | 0, ca, d, t, u, x); Vd(a, 0, l, ea, fa, da, ga, x); l = (re(14, b[fa >> 1] | 0, x) | 0) & 65535; kd(a, 782 + ((s | 2) << 1) | 0, l, b[ea >> 1] | 0, v, w, x); i = ha; return o | 0 } function kd(a, d, f, g, h, j, k) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0; o = i; i = i + 16 | 0; m = o + 2 | 0; n = o; b[h >> 1] = b[d >> 1] | 0; l = b[d + 2 >> 1] | 0; f = Z(f << 16 >> 16 << 1, l) | 0; h = 10 - (g & 65535) | 0; d = h & 65535; h = h << 16 >> 16; if (d << 16 >> 16 > 0) d = d << 16 >> 16 < 31 ? f >> h : 0; else { h = 0 - h << 16 >> 16; d = f << h; d = (d >> h | 0) == (f | 0) ? d : f >> 31 ^ 2147483647; } b[j >> 1] = d >>> 16; de(l, m, n, k); b[m >> 1] = (e[m >> 1] | 0) + 65524; h = Ee(b[n >> 1] | 0, 5, k) | 0; g = b[m >> 1] | 0; h = ((g & 65535) << 10) + (h & 65535) & 65535; f = b[n >> 1] | 0; g = g << 16 >> 16; if ((g * 24660 | 0) == 1073741824) { c[k >> 2] = 1; d = 2147483647; } else d = g * 49320 | 0; n = (f << 16 >> 16) * 24660 >> 15; g = d + (n << 1) | 0; if (!((d ^ n | 0) > 0 & (g ^ d | 0) < 0)) { k = g; k = k << 13; k = k + 32768 | 0; k = k >>> 16; k = k & 65535; Wd(a, h, k); i = o; return } c[k >> 2] = 1; k = (d >>> 31) + 2147483647 | 0; k = k << 13; k = k + 32768 | 0; k = k >>> 16; k = k & 65535; Wd(a, h, k); i = o; return } function ld(a, d, f, g, h, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; q = q | 0; r = r | 0; s = s | 0; t = t | 0; u = u | 0; v = v | 0; w = w | 0; x = x | 0; y = y | 0; var z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0; la = i; i = i + 80 | 0; ia = la + 72 | 0; ja = la + 70 | 0; ka = la + 68 | 0; ga = la + 66 | 0; ha = la + 56 | 0; _ = la + 24 | 0; Y = la + 12 | 0; W = la + 48 | 0; X = la + 40 | 0; R = la + 34 | 0; T = la + 22 | 0; P = la + 6 | 0; Q = la; nd(5, r, s, P, Q, c[x + 72 >> 2] | 0, y) | 0; B = re(14, n, y) | 0; S = x + 68 | 0; O = c[S >> 2] | 0; V = m << 16 >> 16; U = V + 65526 | 0; r = (e[j >> 1] | 0) + 65523 & 65535; b[ha >> 1] = r; x = (e[j + 2 >> 1] | 0) + 65522 & 65535; b[ha + 2 >> 1] = x; da = U << 16 >> 16; ea = ((U << 17 >> 17 | 0) == (da | 0) ? U << 1 : da >>> 15 ^ 32767) + 15 + (e[j + 4 >> 1] | 0) & 65535; b[ha + 4 >> 1] = ea; fa = (e[j + 6 >> 1] | 0) + da & 65535; b[ha + 6 >> 1] = fa; j = da + 1 + (e[j + 8 >> 1] | 0) & 65535; b[ha + 8 >> 1] = j; x = x << 16 >> 16 > r << 16 >> 16 ? x : r; x = ea << 16 >> 16 > x << 16 >> 16 ? ea : x; x = fa << 16 >> 16 > x << 16 >> 16 ? fa : x; x = (Rd(j << 16 >> 16 > x << 16 >> 16 ? j : x, 1, y) | 0) & 65535; j = r; r = 0; while (1) { n = x - (j & 65535) | 0; j = n & 65535; A = e[h + (r << 1) >> 1] << 16; n = n << 16 >> 16; if (j << 16 >> 16 > 0) n = j << 16 >> 16 < 31 ? A >> n : 0; else { fa = 0 - n << 16 >> 16; n = A << fa; n = (n >> fa | 0) == (A | 0) ? n : A >> 31 ^ 2147483647; } Nc(n, _ + (r << 1) | 0, Y + (r << 1) | 0, y); n = r + 1 | 0; if ((n | 0) == 5) break; j = b[ha + (n << 1) >> 1] | 0; r = n; } M = _ + 2 | 0; N = Y + 2 | 0; fa = B << 16 >> 16; $ = _ + 4 | 0; aa = Y + 4 | 0; ba = _ + 6 | 0; ca = Y + 6 | 0; da = _ + 8 | 0; ea = Y + 8 | 0; E = 0; j = 2147483647; h = 0; n = 0; while (1) { L = b[P + (h << 1) >> 1] | 0; B = Z(L, L) | 0; if (B >>> 0 > 1073741823) { c[y >> 2] = 1; B = 32767; } else B = B >>> 15; x = b[Y >> 1] | 0; A = B << 16 >> 16; B = Z(A, b[_ >> 1] | 0) | 0; if ((B | 0) == 1073741824) { c[y >> 2] = 1; r = 2147483647; } else r = B << 1; K = (Z(x << 16 >> 16, A) | 0) >> 15; B = r + (K << 1) | 0; if ((r ^ K | 0) > 0 & (B ^ r | 0) < 0) { c[y >> 2] = 1; B = (r >>> 31) + 2147483647 | 0; } x = b[N >> 1] | 0; A = Z(b[M >> 1] | 0, L) | 0; if ((A | 0) != 1073741824) { r = (A << 1) + B | 0; if ((A ^ B | 0) > 0 & (r ^ B | 0) < 0) { c[y >> 2] = 1; r = (B >>> 31) + 2147483647 | 0; } } else { c[y >> 2] = 1; r = 2147483647; } B = (Z(x << 16 >> 16, L) | 0) >> 15; if ((B | 0) > 32767) { c[y >> 2] = 1; B = 32767; } K = B << 16; B = (K >> 15) + r | 0; if ((K >> 16 ^ r | 0) > 0 & (B ^ r | 0) < 0) { c[y >> 2] = 1; K = (r >>> 31) + 2147483647 | 0; } else K = B; I = (K >>> 31) + 2147483647 | 0; J = h & 65535; B = E; G = 0; H = O; do { A = (Z(b[H >> 1] | 0, fa) | 0) >> 15; H = H + 6 | 0; if ((A | 0) > 32767) { c[y >> 2] = 1; A = 32767; } F = A << 16 >> 16; A = Z(F, F) | 0; if ((A | 0) == 1073741824) { c[y >> 2] = 1; D = 2147483647; } else D = A << 1; Nc(D, ia, ja, y); A = Z(F, L) | 0; if ((A | 0) == 1073741824) { c[y >> 2] = 1; D = 2147483647; } else D = A << 1; Nc(D, ka, ga, y); r = b[aa >> 1] | 0; C = b[ja >> 1] | 0; A = b[$ >> 1] | 0; x = b[ia >> 1] | 0; E = Z(x, A) | 0; if ((E | 0) != 1073741824) { D = (E << 1) + K | 0; if ((E ^ K | 0) > 0 & (D ^ K | 0) < 0) { c[y >> 2] = 1; D = I; } } else { c[y >> 2] = 1; D = 2147483647; } E = (Z(C << 16 >> 16, A) | 0) >> 15; if ((E | 0) > 32767) { c[y >> 2] = 1; E = 32767; } C = E << 16; E = (C >> 15) + D | 0; if ((C >> 16 ^ D | 0) > 0 & (E ^ D | 0) < 0) { c[y >> 2] = 1; E = (D >>> 31) + 2147483647 | 0; } D = (Z(x, r << 16 >> 16) | 0) >> 15; if ((D | 0) > 32767) { c[y >> 2] = 1; D = 32767; } C = D << 16; D = (C >> 15) + E | 0; if ((C >> 16 ^ E | 0) > 0 & (D ^ E | 0) < 0) { c[y >> 2] = 1; D = (E >>> 31) + 2147483647 | 0; } A = b[ca >> 1] | 0; E = Z(b[ba >> 1] | 0, F) | 0; if ((E | 0) != 1073741824) { C = (E << 1) + D | 0; if ((E ^ D | 0) > 0 & (C ^ D | 0) < 0) { c[y >> 2] = 1; C = (D >>> 31) + 2147483647 | 0; } } else { c[y >> 2] = 1; C = 2147483647; } A = (Z(A << 16 >> 16, F) | 0) >> 15; if ((A | 0) > 32767) { c[y >> 2] = 1; A = 32767; } F = A << 16; A = (F >> 15) + C | 0; if ((F >> 16 ^ C | 0) > 0 & (A ^ C | 0) < 0) { c[y >> 2] = 1; A = (C >>> 31) + 2147483647 | 0; } x = b[ea >> 1] | 0; C = b[ga >> 1] | 0; r = b[da >> 1] | 0; z = b[ka >> 1] | 0; E = Z(z, r) | 0; do if ((E | 0) == 1073741824) { c[y >> 2] = 1; E = 2147483647; } else { D = (E << 1) + A | 0; if (!((E ^ A | 0) > 0 & (D ^ A | 0) < 0)) { E = D; break } c[y >> 2] = 1; E = (A >>> 31) + 2147483647 | 0; } while (0); D = (Z(C << 16 >> 16, r) | 0) >> 15; if ((D | 0) > 32767) { c[y >> 2] = 1; D = 32767; } F = D << 16; D = (F >> 15) + E | 0; if ((F >> 16 ^ E | 0) > 0 & (D ^ E | 0) < 0) { c[y >> 2] = 1; D = (E >>> 31) + 2147483647 | 0; } A = (Z(z, x << 16 >> 16) | 0) >> 15; if ((A | 0) > 32767) { c[y >> 2] = 1; A = 32767; } F = A << 16; A = (F >> 15) + D | 0; if ((F >> 16 ^ D | 0) > 0 & (A ^ D | 0) < 0) { c[y >> 2] = 1; A = (D >>> 31) + 2147483647 | 0; } F = (A | 0) < (j | 0); B = F ? G : B; n = F ? J : n; j = F ? A : j; G = G + 1 << 16 >> 16; } while (G << 16 >> 16 < 32); h = h + 1 | 0; if ((h | 0) == 3) { A = B; h = n; break } else E = B; } N = (A << 16 >> 16) * 3 | 0; j = b[O + (N << 1) >> 1] | 0; b[u >> 1] = b[O + (N + 1 << 1) >> 1] | 0; b[v >> 1] = b[O + (N + 2 << 1) >> 1] | 0; j = Z(j << 16 >> 16, fa) | 0; if ((j | 0) == 1073741824) { c[y >> 2] = 1; B = 2147483647; } else B = j << 1; N = 9 - V | 0; O = N & 65535; N = N << 16 >> 16; M = O << 16 >> 16 > 0; if (M) B = O << 16 >> 16 < 31 ? B >> N : 0; else { K = 0 - N << 16 >> 16; L = B << K; B = (L >> K | 0) == (B | 0) ? L : B >> 31 ^ 2147483647; } b[t >> 1] = B >>> 16; L = h << 16 >> 16; P = b[P + (L << 1) >> 1] | 0; b[s >> 1] = P; Q = b[Q + (L << 1) >> 1] | 0; Ub(d, f, g, P, o, W, X, R, y); xc(a, b[R >> 1] | 0, b[t >> 1] | 0, T, y); if (!((b[W >> 1] | 0) != 0 & (b[T >> 1] | 0) > 0)) { y = A; u = c[w >> 2] | 0; t = u + 2 | 0; b[u >> 1] = Q; u = u + 4 | 0; c[w >> 2] = u; b[t >> 1] = y; i = la; return } F = W + 6 | 0; b[F >> 1] = l; D = X + 6 | 0; b[D >> 1] = k; m = ((Ge(q, m, y) | 0) & 65535) + 10 | 0; x = m << 16 >> 16; if ((m & 65535) << 16 >> 16 < 0) { n = 0 - x << 16; if ((n | 0) < 983040) p = p << 16 >> 16 >> (n >> 16) & 65535; else p = 0; } else { n = p << 16 >> 16; r = n << x; if ((r << 16 >> 16 >> x | 0) == (n | 0)) p = r & 65535; else p = (n >>> 15 ^ 32767) & 65535; } j = b[s >> 1] | 0; B = b[T >> 1] | 0; S = c[S >> 2] | 0; r = b[t >> 1] | 0; T = 10 - V | 0; x = T << 16 >> 16; if ((T & 65535) << 16 >> 16 < 0) { n = 0 - x << 16; if ((n | 0) < 983040) l = r << 16 >> 16 >> (n >> 16) & 65535; else l = 0; } else { n = r << 16 >> 16; r = n << x; if ((r << 16 >> 16 >> x | 0) == (n | 0)) l = r & 65535; else l = (n >>> 15 ^ 32767) & 65535; } h = j << 16 >> 16; n = Z(h, h) | 0; if (n >>> 0 > 1073741823) { c[y >> 2] = 1; j = 32767; } else j = n >>> 15; A = Rd(32767 - (B & 65535) & 65535, 1, y) | 0; B = B << 16 >> 16; n = Z(b[W + 2 >> 1] | 0, B) | 0; if ((n | 0) == 1073741824) { c[y >> 2] = 1; n = 2147483647; } else n = n << 1; T = n << 1; n = Z(((T >> 1 | 0) == (n | 0) ? T : n >> 31 ^ 2147418112) >> 16, j << 16 >> 16) | 0; if ((n | 0) == 1073741824) { c[y >> 2] = 1; E = 2147483647; } else E = n << 1; C = (e[X + 2 >> 1] | 0) + 65521 | 0; x = C & 65535; n = Z(b[W + 4 >> 1] | 0, B) | 0; if ((n | 0) == 1073741824) { c[y >> 2] = 1; j = 2147483647; } else j = n << 1; n = j << 1; n = (Z(((n >> 1 | 0) == (j | 0) ? n : j >> 31 ^ 2147418112) >> 16, h) | 0) >> 15; if ((n | 0) > 32767) { c[y >> 2] = 1; n = 32767; } b[$ >> 1] = n; j = U & 65535; b[ia >> 1] = j; j = Rd(b[X + 4 >> 1] | 0, j, y) | 0; n = Z(b[F >> 1] | 0, B) | 0; if ((n | 0) == 1073741824) { c[y >> 2] = 1; n = 2147483647; } else n = n << 1; z = n << 1; b[ba >> 1] = ((z >> 1 | 0) == (n | 0) ? z : n >> 31 ^ 2147418112) >>> 16; z = ((V << 17 >> 17 | 0) == (V | 0) ? V << 1 : V >>> 15 ^ 32767) + 65529 & 65535; b[ia >> 1] = z; z = Rd(b[D >> 1] | 0, z, y) | 0; n = (Z(b[F >> 1] | 0, A << 16 >> 16) | 0) >> 15; if ((n | 0) > 32767) { c[y >> 2] = 1; n = 32767; } b[da >> 1] = n; A = Rd(z, 1, y) | 0; r = Z(b[W >> 1] | 0, B) | 0; if ((r | 0) == 1073741824) { c[y >> 2] = 1; n = 2147483647; } else n = r << 1; D = Fe(n, ia, y) | 0; h = (e[ia >> 1] | 0) + 47 | 0; b[ia >> 1] = h; h = (e[X >> 1] | 0) - (h & 65535) | 0; B = h + 31 & 65535; B = x << 16 >> 16 > B << 16 >> 16 ? x : B; B = j << 16 >> 16 > B << 16 >> 16 ? j : B; B = z << 16 >> 16 > B << 16 >> 16 ? z : B; B = (A << 16 >> 16 > B << 16 >> 16 ? A : B) << 16 >> 16; r = B - (C & 65535) | 0; n = r & 65535; r = r << 16 >> 16; if (n << 16 >> 16 > 0) K = n << 16 >> 16 < 31 ? E >> r : 0; else { X = 0 - r << 16 >> 16; K = E << X; K = (K >> X | 0) == (E | 0) ? K : E >> 31 ^ 2147483647; } x = B - (j & 65535) | 0; n = x & 65535; r = e[$ >> 1] << 16; x = x << 16 >> 16; if (n << 16 >> 16 > 0) r = n << 16 >> 16 < 31 ? r >> x : 0; else { W = 0 - x << 16 >> 16; X = r << W; r = (X >> W | 0) == (r | 0) ? X : r >> 31 ^ 2147483647; } Nc(r, $, aa, y); z = B - (z & 65535) | 0; r = z & 65535; x = e[ba >> 1] << 16; z = z << 16 >> 16; if (r << 16 >> 16 > 0) r = r << 16 >> 16 < 31 ? x >> z : 0; else { X = 0 - z << 16 >> 16; r = x << X; r = (r >> X | 0) == (x | 0) ? r : x >> 31 ^ 2147483647; } Nc(r, ba, ca, y); z = B - (A & 65535) | 0; r = z & 65535; x = e[da >> 1] << 16; z = z << 16 >> 16; if (r << 16 >> 16 > 0) r = r << 16 >> 16 < 31 ? x >> z : 0; else { X = 0 - z << 16 >> 16; r = x << X; r = (r >> X | 0) == (x | 0) ? r : x >> 31 ^ 2147483647; } Nc(r, da, ea, y); z = B + 65505 | 0; b[ia >> 1] = z; z = z - (h & 65535) | 0; r = De(z & 65535, 1, y) | 0; x = r << 16 >> 16; if (r << 16 >> 16 > 0) x = r << 16 >> 16 < 31 ? D >> x : 0; else { X = 0 - x << 16 >> 16; x = D << X; x = (x >> X | 0) == (D | 0) ? x : D >> 31 ^ 2147483647; } do if (!(z & 1)) E = x; else { Nc(x, _, Y, y); r = b[Y >> 1] | 0; x = b[_ >> 1] | 0; if ((x * 23170 | 0) == 1073741824) { c[y >> 2] = 1; z = 2147483647; } else z = x * 46340 | 0; _ = (r << 16 >> 16) * 23170 >> 15; x = z + (_ << 1) | 0; if (!((z ^ _ | 0) > 0 & (x ^ z | 0) < 0)) { E = x; break } c[y >> 2] = 1; E = (z >>> 31) + 2147483647 | 0; } while (0); F = (K >>> 31) + 2147483647 | 0; D = 2147483647; C = 0; x = 0; G = S; while (1) { r = (Z(b[G >> 1] | 0, fa) | 0) >> 15; G = G + 6 | 0; if ((r | 0) > 32767) { c[y >> 2] = 1; r = 32767; } z = r & 65535; if (z << 16 >> 16 >= l << 16 >> 16) break; j = r << 16 >> 16; r = Z(j, j) | 0; if ((r | 0) == 1073741824) { c[y >> 2] = 1; n = 2147483647; } else n = r << 1; Nc(n, ja, ka, y); r = (Ge(z, p, y) | 0) << 16 >> 16; r = Z(r, r) | 0; if ((r | 0) == 1073741824) { c[y >> 2] = 1; r = 2147483647; } else r = r << 1; Nc(r, ga, ha, y); z = b[aa >> 1] | 0; n = Z(b[$ >> 1] | 0, j) | 0; do if ((n | 0) == 1073741824) { c[y >> 2] = 1; n = 2147483647; } else { r = (n << 1) + K | 0; if (!((n ^ K | 0) > 0 & (r ^ K | 0) < 0)) { n = r; break } c[y >> 2] = 1; n = F; } while (0); r = (Z(z << 16 >> 16, j) | 0) >> 15; if ((r | 0) > 32767) { c[y >> 2] = 1; r = 32767; } _ = r << 16; r = (_ >> 15) + n | 0; if ((_ >> 16 ^ n | 0) > 0 & (r ^ n | 0) < 0) { c[y >> 2] = 1; r = (n >>> 31) + 2147483647 | 0; } h = b[ca >> 1] | 0; A = b[ka >> 1] | 0; j = b[ba >> 1] | 0; B = b[ja >> 1] | 0; n = Z(B, j) | 0; do if ((n | 0) == 1073741824) { c[y >> 2] = 1; z = 2147483647; } else { z = (n << 1) + r | 0; if (!((n ^ r | 0) > 0 & (z ^ r | 0) < 0)) break; c[y >> 2] = 1; z = (r >>> 31) + 2147483647 | 0; } while (0); n = (Z(A << 16 >> 16, j) | 0) >> 15; if ((n | 0) > 32767) { c[y >> 2] = 1; n = 32767; } _ = n << 16; n = (_ >> 15) + z | 0; if ((_ >> 16 ^ z | 0) > 0 & (n ^ z | 0) < 0) { c[y >> 2] = 1; n = (z >>> 31) + 2147483647 | 0; } r = (Z(B, h << 16 >> 16) | 0) >> 15; if ((r | 0) > 32767) { c[y >> 2] = 1; r = 32767; } _ = r << 16; r = (_ >> 15) + n | 0; if ((_ >> 16 ^ n | 0) > 0 & (r ^ n | 0) < 0) { c[y >> 2] = 1; r = (n >>> 31) + 2147483647 | 0; } r = Fe(r, ia, y) | 0; z = De(b[ia >> 1] | 0, 1, y) | 0; n = z << 16 >> 16; if (z << 16 >> 16 > 0) z = z << 16 >> 16 < 31 ? r >> n : 0; else { _ = 0 - n << 16 >> 16; z = r << _; z = (z >> _ | 0) == (r | 0) ? z : r >> 31 ^ 2147483647; } r = z - E | 0; if (((r ^ z) & (z ^ E) | 0) < 0) { c[y >> 2] = 1; r = (z >>> 31) + 2147483647 | 0; } r = (Ce(r, y) | 0) << 16 >> 16; r = Z(r, r) | 0; if ((r | 0) == 1073741824) { c[y >> 2] = 1; z = 2147483647; } else z = r << 1; B = b[ea >> 1] | 0; j = b[ha >> 1] | 0; A = b[da >> 1] | 0; h = b[ga >> 1] | 0; n = Z(h, A) | 0; do if ((n | 0) == 1073741824) { c[y >> 2] = 1; r = 2147483647; } else { r = (n << 1) + z | 0; if (!((n ^ z | 0) > 0 & (r ^ z | 0) < 0)) break; c[y >> 2] = 1; r = (z >>> 31) + 2147483647 | 0; } while (0); n = (Z(j << 16 >> 16, A) | 0) >> 15; if ((n | 0) > 32767) { c[y >> 2] = 1; n = 32767; } _ = n << 16; n = (_ >> 15) + r | 0; if ((_ >> 16 ^ r | 0) > 0 & (n ^ r | 0) < 0) { c[y >> 2] = 1; n = (r >>> 31) + 2147483647 | 0; } r = (Z(h, B << 16 >> 16) | 0) >> 15; if ((r | 0) > 32767) { c[y >> 2] = 1; r = 32767; } _ = r << 16; r = (_ >> 15) + n | 0; if ((_ >> 16 ^ n | 0) > 0 & (r ^ n | 0) < 0) { c[y >> 2] = 1; r = (n >>> 31) + 2147483647 | 0; } n = (r | 0) < (D | 0); x = n ? C : x; C = C + 1 << 16 >> 16; if (C << 16 >> 16 >= 32) break; else D = n ? r : D; } ka = (x << 16 >> 16) * 3 | 0; z = b[S + (ka << 1) >> 1] | 0; b[u >> 1] = b[S + (ka + 1 << 1) >> 1] | 0; b[v >> 1] = b[S + (ka + 2 << 1) >> 1] | 0; z = Z(z << 16 >> 16, fa) | 0; if ((z | 0) == 1073741824) { c[y >> 2] = 1; z = 2147483647; } else z = z << 1; if (M) z = O << 16 >> 16 < 31 ? z >> N : 0; else { u = 0 - N << 16 >> 16; y = z << u; z = (y >> u | 0) == (z | 0) ? y : z >> 31 ^ 2147483647; } b[t >> 1] = z >>> 16; y = x; u = c[w >> 2] | 0; t = u + 2 | 0; b[u >> 1] = Q; u = u + 4 | 0; c[w >> 2] = u; b[t >> 1] = y; i = la; return } function md(a, c, d, e, f, g, h, i) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, l = 0, m = 0, n = 0; n = (a | 0) == 7; j = b[e >> 1] | 0; if (n) { j = j << 16 >> 16 >>> 1 & 65535; m = re(c, d, i) | 0; c = m << 16; a = c >> 16; if ((m << 20 >> 20 | 0) == (a | 0)) a = c >> 12; else a = a >>> 15 ^ 32767; } else { m = re(c, d, i) | 0; c = m << 16; a = c >> 16; if ((m << 21 >> 21 | 0) == (a | 0)) a = c >> 11; else a = a >>> 15 ^ 32767; } m = a << 16 >> 16; i = j << 16 >> 16; c = i - ((Z(m, b[h >> 1] | 0) | 0) >>> 15 & 65535) | 0; c = ((c & 32768 | 0) != 0 ? 0 - c | 0 : c) & 65535; k = 1; a = 0; l = h; while (1) { l = l + 6 | 0; j = i - ((Z(b[l >> 1] | 0, m) | 0) >>> 15 & 65535) | 0; d = j << 16; j = (d | 0) < 0 ? 0 - (d >> 16) | 0 : j; d = (j << 16 >> 16 | 0) < (c << 16 >> 16 | 0); a = d ? k : a; k = k + 1 << 16 >> 16; if (k << 16 >> 16 >= 32) break; else c = d ? j & 65535 : c; } l = (a << 16 >> 16) * 196608 >> 16; b[e >> 1] = (Z(b[h + (l << 1) >> 1] | 0, m) | 0) >>> 15 << (n & 1); b[f >> 1] = b[h + (l + 1 << 1) >> 1] | 0; b[g >> 1] = b[h + (l + 2 << 1) >> 1] | 0; return a | 0 } function nd(a, c, d, e, f, g, h) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; var i = 0, j = 0, k = 0, l = 0, m = 0, n = 0; i = Ge(b[d >> 1] | 0, b[g >> 1] | 0, h) | 0; i = (i & 65535) - ((i & 65535) >>> 15 & 65535) | 0; i = (i << 16 >> 31 ^ i) & 65535; k = 0; l = 1; while (1) { j = b[g + (l << 1) >> 1] | 0; if (j << 16 >> 16 > c << 16 >> 16) j = i; else { j = Ge(b[d >> 1] | 0, j, h) | 0; j = (j & 65535) - ((j & 65535) >>> 15 & 65535) | 0; j = (j << 16 >> 31 ^ j) & 65535; n = j << 16 >> 16 < i << 16 >> 16; j = n ? j : i; k = n ? l & 65535 : k; } l = l + 1 | 0; if ((l | 0) == 16) break; else i = j; } if ((a | 0) != 5) { i = b[g + (k << 16 >> 16 << 1) >> 1] | 0; if ((a | 0) == 7) { b[d >> 1] = i & 65532; return k | 0 } else { b[d >> 1] = i; return k | 0 } } j = k << 16 >> 16; switch (k << 16 >> 16) { case 0: { i = 0; break } case 15: { m = 8; break } default: if ((b[g + (j + 1 << 1) >> 1] | 0) > c << 16 >> 16) m = 8; else i = j + 65535 & 65535; } if ((m | 0) == 8) i = j + 65534 & 65535; b[f >> 1] = i; n = i << 16 >> 16; b[e >> 1] = b[g + (n << 1) >> 1] | 0; n = n + 1 | 0; b[f + 2 >> 1] = n; n = n << 16 >> 16; b[e + 2 >> 1] = b[g + (n << 1) >> 1] | 0; n = n + 1 | 0; b[f + 4 >> 1] = n; b[e + 4 >> 1] = b[g + (n << 16 >> 16 << 1) >> 1] | 0; b[d >> 1] = b[g + (j << 1) >> 1] | 0; return k | 0 } function od(a, d, f, g, h, j, k, l, m, n, o, p) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; var q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; K = i; i = i + 32 | 0; s = K + 20 | 0; t = K + 10 | 0; r = K; switch (a | 0) { case 3: case 4: case 6: { o = o + 84 | 0; J = 128; break } default: { o = o + 80 | 0; J = 64; } } I = c[o >> 2] | 0; q = re(14, f, p) | 0; H = d << 16 >> 16; G = H + 65525 | 0; a = (e[h >> 1] | 0) + 65523 & 65535; b[r >> 1] = a; d = (e[h + 2 >> 1] | 0) + 65522 & 65535; b[r + 2 >> 1] = d; F = G << 16 >> 16; F = Rd(b[h + 4 >> 1] | 0, ((G << 17 >> 17 | 0) == (F | 0) ? G << 1 : F >>> 15 ^ 32767) + 15 & 65535, p) | 0; b[r + 4 >> 1] = F; G = Rd(b[h + 6 >> 1] | 0, G & 65535, p) | 0; b[r + 6 >> 1] = G; h = Rd(b[h + 8 >> 1] | 0, H + 65526 & 65535, p) | 0; b[r + 8 >> 1] = h; d = d << 16 >> 16 > a << 16 >> 16 ? d : a; d = F << 16 >> 16 > d << 16 >> 16 ? F : d; d = G << 16 >> 16 > d << 16 >> 16 ? G : d; d = (h << 16 >> 16 > d << 16 >> 16 ? h : d) + 1 & 65535; h = 0; while (1) { f = d - (a & 65535) | 0; o = f & 65535; a = e[g + (h << 1) >> 1] << 16; f = f << 16 >> 16; if (o << 16 >> 16 > 0) o = o << 16 >> 16 < 31 ? a >> f : 0; else { G = 0 - f << 16 >> 16; o = a << G; o = (o >> G | 0) == (a | 0) ? o : a >> 31 ^ 2147483647; } Nc(o, s + (h << 1) | 0, t + (h << 1) | 0, p); o = h + 1 | 0; if ((o | 0) == 5) break; a = b[r + (o << 1) >> 1] | 0; h = o; } G = q << 16 >> 16; y = b[s >> 1] | 0; z = b[t >> 1] | 0; A = b[s + 2 >> 1] | 0; B = b[t + 2 >> 1] | 0; C = b[s + 4 >> 1] | 0; D = b[t + 4 >> 1] | 0; E = b[s + 6 >> 1] | 0; F = b[t + 6 >> 1] | 0; x = b[s + 8 >> 1] | 0; u = b[t + 8 >> 1] | 0; d = 2147483647; v = 0; o = 0; w = I; while (1) { h = b[w >> 1] | 0; if (h << 16 >> 16 > j << 16 >> 16) q = d; else { q = (Z(b[w + 2 >> 1] | 0, G) | 0) >> 15; if ((q | 0) > 32767) { c[p >> 2] = 1; q = 32767; } t = h << 16 >> 16; h = Z(t, t) | 0; if (h >>> 0 > 1073741823) { c[p >> 2] = 1; r = 32767; } else r = h >>> 15; f = q << 16 >> 16; q = Z(f, f) | 0; if (q >>> 0 > 1073741823) { c[p >> 2] = 1; s = 32767; } else s = q >>> 15; g = (Z(f, t) | 0) >> 15; if ((g | 0) > 32767) { c[p >> 2] = 1; g = 32767; } q = r << 16 >> 16; r = Z(y, q) | 0; if ((r | 0) == 1073741824) { c[p >> 2] = 1; h = 2147483647; } else h = r << 1; q = (Z(z, q) | 0) >> 15; r = h + (q << 1) | 0; if ((h ^ q | 0) > 0 & (r ^ h | 0) < 0) { c[p >> 2] = 1; r = (h >>> 31) + 2147483647 | 0; } q = Z(A, t) | 0; if ((q | 0) == 1073741824) { c[p >> 2] = 1; h = 2147483647; } else h = q << 1; t = (Z(B, t) | 0) >> 15; q = h + (t << 1) | 0; if ((h ^ t | 0) > 0 & (q ^ h | 0) < 0) { c[p >> 2] = 1; q = (h >>> 31) + 2147483647 | 0; } h = q + r | 0; if ((q ^ r | 0) > -1 & (h ^ r | 0) < 0) { c[p >> 2] = 1; h = (r >>> 31) + 2147483647 | 0; } q = s << 16 >> 16; r = Z(C, q) | 0; if ((r | 0) == 1073741824) { c[p >> 2] = 1; a = 2147483647; } else a = r << 1; t = (Z(D, q) | 0) >> 15; r = a + (t << 1) | 0; if ((a ^ t | 0) > 0 & (r ^ a | 0) < 0) { c[p >> 2] = 1; r = (a >>> 31) + 2147483647 | 0; } q = r + h | 0; if ((r ^ h | 0) > -1 & (q ^ h | 0) < 0) { c[p >> 2] = 1; a = (h >>> 31) + 2147483647 | 0; } else a = q; q = Z(E, f) | 0; if ((q | 0) == 1073741824) { c[p >> 2] = 1; r = 2147483647; } else r = q << 1; t = (Z(F, f) | 0) >> 15; q = r + (t << 1) | 0; if ((r ^ t | 0) > 0 & (q ^ r | 0) < 0) { c[p >> 2] = 1; q = (r >>> 31) + 2147483647 | 0; } h = q + a | 0; if ((q ^ a | 0) > -1 & (h ^ a | 0) < 0) { c[p >> 2] = 1; r = (a >>> 31) + 2147483647 | 0; } else r = h; h = g << 16 >> 16; q = Z(x, h) | 0; if ((q | 0) == 1073741824) { c[p >> 2] = 1; a = 2147483647; } else a = q << 1; t = (Z(u, h) | 0) >> 15; q = a + (t << 1) | 0; if ((a ^ t | 0) > 0 & (q ^ a | 0) < 0) { c[p >> 2] = 1; h = (a >>> 31) + 2147483647 | 0; } else h = q; q = h + r | 0; if ((h ^ r | 0) > -1 & (q ^ r | 0) < 0) { c[p >> 2] = 1; q = (r >>> 31) + 2147483647 | 0; } t = (q | 0) < (d | 0); q = t ? q : d; o = t ? v : o; } w = w + 8 | 0; v = v + 1 << 16 >> 16; if ((v << 16 >> 16 | 0) >= (J | 0)) break; else d = q; } j = o << 16 >> 16; j = ((j << 18 >> 18 | 0) == (j | 0) ? j << 2 : j >>> 15 ^ 32767) << 16 >> 16; b[k >> 1] = b[I + (j << 1) >> 1] | 0; d = b[I + (j + 1 << 1) >> 1] | 0; b[m >> 1] = b[I + (j + 2 << 1) >> 1] | 0; b[n >> 1] = b[I + (j + 3 << 1) >> 1] | 0; d = Z(d << 16 >> 16, G) | 0; if ((d | 0) == 1073741824) { c[p >> 2] = 1; a = 2147483647; } else a = d << 1; f = 10 - H | 0; d = f & 65535; f = f << 16 >> 16; if (d << 16 >> 16 > 0) { p = d << 16 >> 16 < 31 ? a >> f : 0; p = p >>> 16; p = p & 65535; b[l >> 1] = p; i = K; return o | 0 } else { m = 0 - f << 16 >> 16; p = a << m; p = (p >> m | 0) == (a | 0) ? p : a >> 31 ^ 2147483647; p = p >>> 16; p = p & 65535; b[l >> 1] = p; i = K; return o | 0 } return 0 } function pd(a, c, d, f, g, h, j, k, l) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, qa = 0, ra = 0, sa = 0, ta = 0, ua = 0, va = 0, wa = 0; wa = i; i = i + 160 | 0; va = wa; n = a << 16 >> 16; ta = a << 16 >> 16 == 10; ua = b[j + (b[h >> 1] << 1) >> 1] | 0; if (a << 16 >> 16 > 0) { l = 0; m = k; while (1) { b[m >> 1] = l; l = l + 1 << 16 >> 16; if (l << 16 >> 16 >= a << 16 >> 16) break; else m = m + 2 | 0; } } if (d << 16 >> 16 <= 1) { i = wa; return } ra = h + 2 | 0; sa = ua << 16 >> 16; oa = f + (sa << 1) | 0; pa = g + (sa * 80 | 0) + (sa << 1) | 0; qa = h + 6 | 0; X = c & 65535; Y = h + 4 | 0; _ = h + 10 | 0; $ = h + 8 | 0; aa = h + 14 | 0; ba = h + 12 | 0; ca = h + 18 | 0; da = h + 16 | 0; ea = k + 2 | 0; fa = k + 4 | 0; ga = k + 6 | 0; ha = k + 8 | 0; ia = k + 10 | 0; ja = k + 12 | 0; ka = k + 14 | 0; la = k + 16 | 0; ma = k + 18 | 0; na = a << 16 >> 16 > 2; V = h + (n + -1 << 1) | 0; T = 1; W = 1; N = 0; O = 0; U = -1; while (1) { S = b[j + (b[ra >> 1] << 1) >> 1] | 0; R = S << 16 >> 16; c = (e[f + (R << 1) >> 1] | 0) + (e[oa >> 1] | 0) | 0; m = (b[g + (sa * 80 | 0) + (R << 1) >> 1] << 13) + 32768 + ((b[g + (R * 80 | 0) + (R << 1) >> 1] | 0) + (b[pa >> 1] | 0) << 12) | 0; n = b[qa >> 1] | 0; if (n << 16 >> 16 < 40) { n = n << 16 >> 16; o = va; while (1) { P = (b[g + (n * 80 | 0) + (n << 1) >> 1] | 0) >>> 1; M = b[g + (n * 80 | 0) + (sa << 1) >> 1] | 0; Q = b[g + (n * 80 | 0) + (R << 1) >> 1] | 0; b[o >> 1] = c + (e[f + (n << 1) >> 1] | 0); b[o + 2 >> 1] = (M + 2 + P + Q | 0) >>> 2; n = n + X | 0; if ((n & 65535) << 16 >> 16 < 40) { n = n << 16 >> 16; o = o + 4 | 0; } else break } B = b[qa >> 1] | 0; } else B = n; c = b[Y >> 1] | 0; A = m >> 12; n = c << 16 >> 16; a:do if (c << 16 >> 16 < 40) { z = B << 16 >> 16; if (B << 16 >> 16 < 40) { o = 1; q = c; s = B; r = 0; p = -1; } else while (1) { n = n + X | 0; if ((n & 65535) << 16 >> 16 < 40) n = n << 16 >> 16; else { o = 1; Q = c; P = B; n = 0; break a } } while (1) { y = ((b[g + (n * 80 | 0) + (n << 1) >> 1] | 0) + A >> 1) + (b[g + (n * 80 | 0) + (sa << 1) >> 1] | 0) + (b[g + (n * 80 | 0) + (R << 1) >> 1] | 0) | 0; x = e[f + (n << 1) >> 1] | 0; v = z; w = B; u = va; t = r; while (1) { m = (e[u >> 1] | 0) + x | 0; l = m << 16 >> 16; l = (Z(l, l) | 0) >>> 15; r = (y + (b[g + (n * 80 | 0) + (v << 1) >> 1] | 0) >> 2) + (b[u + 2 >> 1] | 0) >> 1; if ((Z(l << 16 >> 16, o << 16 >> 16) | 0) > (Z(r, p << 16 >> 16) | 0)) { o = r & 65535; q = c; s = w; r = m & 65535; p = l & 65535; } else r = t; m = v + X | 0; w = m & 65535; if (w << 16 >> 16 >= 40) break; else { v = m << 16 >> 16; u = u + 4 | 0; t = r; } } n = n + X | 0; c = n & 65535; if (c << 16 >> 16 < 40) n = n << 16 >> 16; else { Q = q; P = s; n = r; break } } } else { o = 1; Q = c; P = B; n = 0; } while (0); q = o << 16 >> 16 << 15; o = b[_ >> 1] | 0; if (o << 16 >> 16 < 40) { m = Q << 16 >> 16; l = P << 16 >> 16; c = n & 65535; o = o << 16 >> 16; n = va; while (1) { J = b[g + (o * 80 | 0) + (o << 1) >> 1] >> 1; I = b[g + (o * 80 | 0) + (sa << 1) >> 1] | 0; K = b[g + (o * 80 | 0) + (R << 1) >> 1] | 0; L = b[g + (o * 80 | 0) + (m << 1) >> 1] | 0; M = b[g + (o * 80 | 0) + (l << 1) >> 1] | 0; b[n >> 1] = (e[f + (o << 1) >> 1] | 0) + c; b[n + 2 >> 1] = (I + 2 + J + K + L + M | 0) >>> 2; o = o + X | 0; if ((o & 65535) << 16 >> 16 < 40) { o = o << 16 >> 16; n = n + 4 | 0; } else break } J = b[_ >> 1] | 0; } else J = o; p = b[$ >> 1] | 0; o = p << 16 >> 16; b:do if (p << 16 >> 16 < 40) { C = Q << 16 >> 16; D = P << 16 >> 16; E = J << 16 >> 16; B = q + 32768 | 0; if (J << 16 >> 16 < 40) { r = 1; q = p; c = J; s = p; n = 0; p = -1; } else while (1) { o = o + X | 0; if ((o & 65535) << 16 >> 16 < 40) o = o << 16 >> 16; else { o = 1; M = p; L = J; n = 0; break b } } while (1) { l = e[f + (o << 1) >> 1] | 0; A = (b[g + (o * 80 | 0) + (R << 1) >> 1] | 0) + (b[g + (o * 80 | 0) + (sa << 1) >> 1] | 0) + (b[g + (o * 80 | 0) + (C << 1) >> 1] | 0) + (b[g + (o * 80 | 0) + (D << 1) >> 1] | 0) | 0; z = B + (b[g + (o * 80 | 0) + (o << 1) >> 1] << 11) | 0; x = E; v = J; y = va; while (1) { t = (e[y >> 1] | 0) + l | 0; m = z + (b[y + 2 >> 1] << 14) + (A + (b[g + (o * 80 | 0) + (x << 1) >> 1] | 0) << 12) | 0; u = t << 16 >> 16; u = (Z(u, u) | 0) >>> 15; if ((Z(u << 16 >> 16, r << 16 >> 16) | 0) > (Z(m >> 16, p << 16 >> 16) | 0)) { r = m >>> 16 & 65535; w = s; c = v; n = t & 65535; p = u & 65535; } else w = q; q = x + X | 0; v = q & 65535; if (v << 16 >> 16 >= 40) { q = w; break } else { x = q << 16 >> 16; q = w; y = y + 4 | 0; } } o = o + X | 0; s = o & 65535; if (s << 16 >> 16 < 40) o = o << 16 >> 16; else { o = r; M = q; L = c; break } } } else { o = 1; M = p; L = J; n = 0; } while (0); r = o << 16 >> 16 << 15; o = b[aa >> 1] | 0; if (o << 16 >> 16 < 40) { m = Q << 16 >> 16; l = P << 16 >> 16; p = M << 16 >> 16; q = L << 16 >> 16; c = n & 65535; o = o << 16 >> 16; n = va; while (1) { F = b[g + (o * 80 | 0) + (o << 1) >> 1] >> 1; E = b[g + (sa * 80 | 0) + (o << 1) >> 1] | 0; G = b[g + (R * 80 | 0) + (o << 1) >> 1] | 0; H = b[g + (m * 80 | 0) + (o << 1) >> 1] | 0; I = b[g + (l * 80 | 0) + (o << 1) >> 1] | 0; J = b[g + (p * 80 | 0) + (o << 1) >> 1] | 0; K = b[g + (q * 80 | 0) + (o << 1) >> 1] | 0; b[n >> 1] = (e[f + (o << 1) >> 1] | 0) + c; b[n + 2 >> 1] = (E + 4 + F + G + H + I + J + K | 0) >>> 3; o = o + X | 0; if ((o & 65535) << 16 >> 16 < 40) { o = o << 16 >> 16; n = n + 4 | 0; } else break } c = b[aa >> 1] | 0; } else c = o; s = b[ba >> 1] | 0; if (s << 16 >> 16 < 40) { J = Q << 16 >> 16; F = P << 16 >> 16; E = M << 16 >> 16; D = L << 16 >> 16; C = c << 16 >> 16; B = c << 16 >> 16 < 40; G = r + 32768 | 0; I = s << 16 >> 16; l = 1; w = s; v = c; H = s; q = 0; o = -1; while (1) { if (B) { r = e[f + (I << 1) >> 1] | 0; n = (b[g + (I * 80 | 0) + (R << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (sa << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (J << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (F << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (E << 1) >> 1] | 0) + (b[g + (I * 80 | 0) + (D << 1) >> 1] | 0) | 0; p = G + (b[g + (I * 80 | 0) + (I << 1) >> 1] << 10) | 0; u = C; s = c; z = v; A = va; while (1) { y = (e[A >> 1] | 0) + r | 0; v = p + (b[A + 2 >> 1] << 14) + (n + (b[g + (I * 80 | 0) + (u << 1) >> 1] | 0) << 11) | 0; x = y << 16 >> 16; x = (Z(x, x) | 0) >>> 15; if ((Z(x << 16 >> 16, l << 16 >> 16) | 0) > (Z(v >> 16, o << 16 >> 16) | 0)) { l = v >>> 16 & 65535; w = H; v = s; q = y & 65535; o = x & 65535; } else v = z; t = u + X | 0; s = t & 65535; if (s << 16 >> 16 >= 40) break; else { u = t << 16 >> 16; z = v; A = A + 4 | 0; } } } s = I + X | 0; H = s & 65535; if (H << 16 >> 16 >= 40) { K = v; break } else I = s << 16 >> 16; } } else { l = 1; w = s; K = c; q = 0; o = -1; } if (ta) { u = l << 16 >> 16 << 15; o = b[ca >> 1] | 0; if (o << 16 >> 16 < 40) { n = Q << 16 >> 16; c = P << 16 >> 16; m = M << 16 >> 16; l = L << 16 >> 16; r = w << 16 >> 16; s = K << 16 >> 16; p = q & 65535; o = o << 16 >> 16; q = va; while (1) { E = b[g + (o * 80 | 0) + (o << 1) >> 1] >> 1; D = b[g + (sa * 80 | 0) + (o << 1) >> 1] | 0; F = b[g + (R * 80 | 0) + (o << 1) >> 1] | 0; G = b[g + (n * 80 | 0) + (o << 1) >> 1] | 0; H = b[g + (c * 80 | 0) + (o << 1) >> 1] | 0; I = b[g + (m * 80 | 0) + (o << 1) >> 1] | 0; J = b[g + (l * 80 | 0) + (o << 1) >> 1] | 0; N = b[g + (r * 80 | 0) + (o << 1) >> 1] | 0; O = b[g + (s * 80 | 0) + (o << 1) >> 1] | 0; b[q >> 1] = (e[f + (o << 1) >> 1] | 0) + p; b[q + 2 >> 1] = (D + 4 + E + F + G + H + I + J + N + O | 0) >>> 3; o = o + X | 0; if ((o & 65535) << 16 >> 16 < 40) { o = o << 16 >> 16; q = q + 4 | 0; } else break } J = b[ca >> 1] | 0; } else J = o; r = b[da >> 1] | 0; if (r << 16 >> 16 < 40) { E = Q << 16 >> 16; D = P << 16 >> 16; C = M << 16 >> 16; m = L << 16 >> 16; F = w << 16 >> 16; G = K << 16 >> 16; H = J << 16 >> 16; I = J << 16 >> 16 < 40; B = u + 32768 | 0; n = r << 16 >> 16; l = 1; s = r; q = J; c = r; o = -1; while (1) { if (I) { u = e[f + (n << 1) >> 1] | 0; p = (b[g + (R * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (sa * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (E * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (D * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (C * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (m * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (F * 80 | 0) + (n << 1) >> 1] | 0) + (b[g + (G * 80 | 0) + (n << 1) >> 1] | 0) | 0; r = B + (b[g + (n * 80 | 0) + (n << 1) >> 1] << 9) | 0; A = H; x = J; z = va; while (1) { y = (e[z >> 1] | 0) + u << 16 >> 16; y = (Z(y, y) | 0) >>> 15; v = r + (b[z + 2 >> 1] << 13) + (p + (b[g + (n * 80 | 0) + (A << 1) >> 1] | 0) << 10) | 0; if ((Z(y << 16 >> 16, l << 16 >> 16) | 0) > (Z(v >> 16, o << 16 >> 16) | 0)) { l = v >>> 16 & 65535; s = c; q = x; o = y & 65535; } t = A + X | 0; x = t & 65535; if (x << 16 >> 16 >= 40) break; else { A = t << 16 >> 16; z = z + 4 | 0; } } } r = n + X | 0; c = r & 65535; if (c << 16 >> 16 >= 40) break; else n = r << 16 >> 16; } } else { l = 1; s = r; q = J; o = -1; } } else { s = N; q = O; } if ((Z(o << 16 >> 16, T << 16 >> 16) | 0) > (Z(l << 16 >> 16, U << 16 >> 16) | 0)) { b[k >> 1] = ua; b[ea >> 1] = S; b[fa >> 1] = Q; b[ga >> 1] = P; b[ha >> 1] = M; b[ia >> 1] = L; b[ja >> 1] = w; b[ka >> 1] = K; if (ta) { b[la >> 1] = s; b[ma >> 1] = q; } } else { l = T; o = U; } n = b[ra >> 1] | 0; if (na) { c = 1; m = 2; while (1) { b[h + (c << 1) >> 1] = b[h + (m << 1) >> 1] | 0; m = m + 1 | 0; if ((m & 65535) << 16 >> 16 == a << 16 >> 16) break; else c = c + 1 | 0; } } b[V >> 1] = n; W = W + 1 << 16 >> 16; if (W << 16 >> 16 >= d << 16 >> 16) break; else { T = l; N = s; O = q; U = o; } } i = wa; return } function qd(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0; i = 39; while (1) { h = a + (i << 1) | 0; g = b[h >> 1] | 0; f = c + (i << 1) | 0; if (g << 16 >> 16 > -1) b[f >> 1] = 32767; else { b[f >> 1] = -32767; if (g << 16 >> 16 == -32768) g = 32767; else g = 0 - (g & 65535) & 65535; b[h >> 1] = g; } b[d + (i << 1) >> 1] = g; if ((i | 0) > 0) i = i + -1 | 0; else break } k = 8 - (e << 16 >> 16) | 0; if ((k | 0) > 0) { j = 0; f = 0; } else return; do { e = 0; a = 0; h = 32767; while (1) { c = b[d + (e << 1) >> 1] | 0; i = c << 16 >> 16 > -1 ? c << 16 >> 16 < h << 16 >> 16 : 0; f = i ? a : f; g = e + 5 | 0; a = g & 65535; if (a << 16 >> 16 >= 40) break; else { e = g << 16 >> 16; h = i ? c : h; } } b[d + (f << 16 >> 16 << 1) >> 1] = -1; j = j + 1 << 16 >> 16; } while ((j << 16 >> 16 | 0) < (k | 0)); j = 0; do { c = 1; a = 1; g = 32767; while (1) { e = b[d + (c << 1) >> 1] | 0; i = e << 16 >> 16 > -1 ? e << 16 >> 16 < g << 16 >> 16 : 0; f = i ? a : f; h = c + 5 | 0; a = h & 65535; if (a << 16 >> 16 >= 40) break; else { c = h << 16 >> 16; g = i ? e : g; } } b[d + (f << 16 >> 16 << 1) >> 1] = -1; j = j + 1 << 16 >> 16; } while ((j << 16 >> 16 | 0) < (k | 0)); j = 0; do { c = 2; a = 2; g = 32767; while (1) { e = b[d + (c << 1) >> 1] | 0; i = e << 16 >> 16 > -1 ? e << 16 >> 16 < g << 16 >> 16 : 0; f = i ? a : f; h = c + 5 | 0; a = h & 65535; if (a << 16 >> 16 >= 40) break; else { c = h << 16 >> 16; g = i ? e : g; } } b[d + (f << 16 >> 16 << 1) >> 1] = -1; j = j + 1 << 16 >> 16; } while ((j << 16 >> 16 | 0) < (k | 0)); j = 0; while (1) { c = 3; a = 3; g = 32767; while (1) { e = b[d + (c << 1) >> 1] | 0; i = e << 16 >> 16 > -1 ? e << 16 >> 16 < g << 16 >> 16 : 0; f = i ? a : f; h = c + 5 | 0; a = h & 65535; if (a << 16 >> 16 >= 40) { g = f; break } else { c = h << 16 >> 16; g = i ? e : g; } } b[d + (g << 16 >> 16 << 1) >> 1] = -1; j = j + 1 << 16 >> 16; if ((j << 16 >> 16 | 0) >= (k | 0)) { f = 0; break } else f = g; } do { c = 4; a = 4; j = 32767; while (1) { e = b[d + (c << 1) >> 1] | 0; i = e << 16 >> 16 > -1 ? e << 16 >> 16 < j << 16 >> 16 : 0; g = i ? a : g; h = c + 5 | 0; a = h & 65535; if (a << 16 >> 16 >= 40) break; else { c = h << 16 >> 16; j = i ? e : j; } } b[d + (g << 16 >> 16 << 1) >> 1] = -1; f = f + 1 << 16 >> 16; } while ((f << 16 >> 16 | 0) < (k | 0)); return } function rd(a, d, e, f, g, h, j, k) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0; y = i; i = i + 80 | 0; x = y; p = 40; q = d; r = a; m = 256; n = 256; while (1) { l = b[q >> 1] | 0; q = q + 2 | 0; l = Z(l, l) | 0; if ((l | 0) != 1073741824) { o = (l << 1) + m | 0; if ((l ^ m | 0) > 0 & (o ^ m | 0) < 0) { c[k >> 2] = 1; m = (m >>> 31) + 2147483647 | 0; } else m = o; } else { c[k >> 2] = 1; m = 2147483647; } w = b[r >> 1] | 0; n = (Z(w << 1, w) | 0) + n | 0; p = p + -1 << 16 >> 16; if (!(p << 16 >> 16)) break; else r = r + 2 | 0; } w = ce(m, k) | 0; u = w << 5; w = ((u >> 5 | 0) == (w | 0) ? u : w >> 31 ^ 2147418112) >> 16; u = (ce(n, k) | 0) << 5 >> 16; v = 39; s = d + 78 | 0; t = x + 78 | 0; l = e + 78 | 0; while (1) { r = Z(b[s >> 1] | 0, w) | 0; s = s + -2 | 0; q = r << 1; d = a + (v << 1) | 0; m = b[d >> 1] | 0; p = Z(m << 16 >> 16, u) | 0; if ((p | 0) != 1073741824) { o = (p << 1) + q | 0; if ((p ^ q | 0) > 0 & (o ^ q | 0) < 0) { c[k >> 2] = 1; o = (r >>> 30 & 1) + 2147483647 | 0; } } else { c[k >> 2] = 1; o = 2147483647; } n = o << 10; n = Ce((n >> 10 | 0) == (o | 0) ? n : o >> 31 ^ 2147483647, k) | 0; if (n << 16 >> 16 > -1) b[l >> 1] = 32767; else { b[l >> 1] = -32767; if (n << 16 >> 16 == -32768) n = 32767; else n = 0 - (n & 65535) & 65535; if (m << 16 >> 16 == -32768) o = 32767; else o = 0 - (m & 65535) & 65535; b[d >> 1] = o; } l = l + -2 | 0; b[t >> 1] = n; if ((v | 0) <= 0) break; else { v = v + -1 | 0; t = t + -2 | 0; } } d = g << 16 >> 16; if (g << 16 >> 16 <= 0) { b[h + (d << 1) >> 1] = b[h >> 1] | 0; i = y; return } r = j & 65535; q = 0; p = -1; l = 0; while (1) { if ((q | 0) < 40) { n = q; o = q & 65535; m = -1; while (1) { k = b[x + (n << 1) >> 1] | 0; j = k << 16 >> 16 > m << 16 >> 16; m = j ? k : m; l = j ? o : l; n = n + r | 0; o = n & 65535; if (o << 16 >> 16 >= 40) break; else n = n << 16 >> 16; } } else m = -1; b[f + (q << 1) >> 1] = l; if (m << 16 >> 16 > p << 16 >> 16) b[h >> 1] = q; else m = p; q = q + 1 | 0; if ((q & 65535) << 16 >> 16 == g << 16 >> 16) break; else p = m; } l = b[h >> 1] | 0; b[h + (d << 1) >> 1] = l; if (g << 16 >> 16 > 1) m = 1; else { i = y; return } do { f = l + 1 << 16 >> 16; l = f << 16 >> 16 >= g << 16 >> 16 ? 0 : f; b[h + (m << 1) >> 1] = l; b[h + (m + d << 1) >> 1] = l; m = m + 1 | 0; } while ((m & 65535) << 16 >> 16 != g << 16 >> 16); i = y; return } function sd(a) { a = a | 0; var d = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; d = Je(12) | 0; if (!d) { a = -1; return a | 0 } b[d >> 1] = 8; c[a >> 2] = d; b[d + 2 >> 1] = 3; b[d + 4 >> 1] = 0; c[d + 8 >> 2] = 0; a = 0; return a | 0 } function td(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function ud(a, d, e) { a = a | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; do if ((d | 0) == 8) { f = a + 2 | 0; g = (b[f >> 1] | 0) + -1 << 16 >> 16; b[f >> 1] = g; d = a + 8 | 0; if (!(c[d >> 2] | 0)) { c[e >> 2] = 1; b[f >> 1] = 3; break } h = a + 4 | 0; if (g << 16 >> 16 > 2 & (b[h >> 1] | 0) > 0) { c[e >> 2] = 2; b[h >> 1] = (b[h >> 1] | 0) + -1 << 16 >> 16; break } if (!(g << 16 >> 16)) { c[e >> 2] = 2; b[f >> 1] = b[a >> 1] | 0; break } else { c[e >> 2] = 3; break } } else { b[a + 2 >> 1] = b[a >> 1] | 0; c[e >> 2] = 0; d = a + 8 | 0; } while (0); c[d >> 2] = c[e >> 2]; return } function vd(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0, g = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; d = Je(12) | 0; e = d; if (!d) { a = -1; return a | 0 } c[d >> 2] = 0; f = d + 4 | 0; c[f >> 2] = 0; g = d + 8 | 0; c[g >> 2] = b; if ((dd(d) | 0) << 16 >> 16 == 0 ? (ac(f, c[g >> 2] | 0) | 0) << 16 >> 16 == 0 : 0) { ed(c[d >> 2] | 0) | 0; cc(c[f >> 2] | 0) | 0; c[a >> 2] = e; a = 0; return a | 0 } fd(d); bc(f); Ke(d); a = -1; return a | 0 } function wd(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; fd(b); bc((c[a >> 2] | 0) + 4 | 0); Ke(c[a >> 2] | 0); c[a >> 2] = 0; return } function xd(a, d, f, g, h) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; var j = 0, k = 0, l = 0, m = 0, n = 0; m = i; i = i + 448 | 0; k = m + 320 | 0; l = m; Qe(g | 0, 0, 488) | 0; j = 0; do { n = f + (j << 1) | 0; b[n >> 1] = (e[n >> 1] | 0) & 65528; j = j + 1 | 0; } while ((j | 0) != 160); gd(c[a >> 2] | 0, f, 160); n = a + 4 | 0; dc(c[n >> 2] | 0, d, f, k, h, l) | 0; hd(c[h >> 2] | 0, k, g, (c[n >> 2] | 0) + 2392 | 0); i = m; return } function yd(a, c, d, e, f, g, h, j, k, l, m, n, o, p, q, r) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; q = q | 0; r = r | 0; var s = 0, t = 0, u = 0; u = i; i = i + 48 | 0; s = u + 22 | 0; t = u; Ie(f, (a & -2 | 0) == 6 ? d : c, s); Ie(f, e, t); d = m; c = s; f = d + 22 | 0; do { b[d >> 1] = b[c >> 1] | 0; d = d + 2 | 0; c = c + 2 | 0; } while ((d | 0) < (f | 0)); He(g, m, o, 40, l, 0); He(t, o, o, 40, l, 0); Be(g, h, q, 40); d = n; c = q; f = d + 80 | 0; do { b[d >> 1] = b[c >> 1] | 0; d = d + 2 | 0; c = c + 2 | 0; } while ((d | 0) < (f | 0)); He(g, n, r, 40, j, 0); Be(s, r, p, 40); He(t, p, p, 40, k, 0); i = u; return } function zd(a, c, d, f, g, h, i, j, k, l, m, n, o, p, q, r, s) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; k = k | 0; l = l | 0; m = m | 0; n = n | 0; o = o | 0; p = p | 0; q = q | 0; r = r | 0; s = s | 0; var t = 0, u = 0, v = 0, w = 0, x = 0; if ((c | 0) == 7) { v = 11; c = f << 16 >> 16 >>> 1 & 65535; t = 2; } else { v = 13; c = f; t = 1; } b[r >> 1] = f << 16 >> 16 < 13017 ? f : 13017; u = d << 16 >> 16; q = q + (u << 1) | 0; r = c << 16 >> 16; g = g << 16 >> 16; d = 20; c = k; s = q; while (1) { k = s + 2 | 0; x = Z(b[s >> 1] | 0, r) | 0; w = Z(b[k >> 1] | 0, r) | 0; x = (Z(b[c >> 1] | 0, g) | 0) + x << 1; w = (Z(b[c + 2 >> 1] | 0, g) | 0) + w << 1 << t; b[s >> 1] = ((x << t) + 32768 | 0) >>> 16; b[k >> 1] = (w + 32768 | 0) >>> 16; d = d + -1 << 16 >> 16; if (!(d << 16 >> 16)) break; else { c = c + 4 | 0; s = s + 4 | 0; } } c = f << 16 >> 16; He(h, q, i + (u << 1) | 0, 40, n, 1); d = 30; s = 0; while (1) { w = d + u | 0; b[o + (s << 1) >> 1] = (e[a + (w << 1) >> 1] | 0) - (e[i + (w << 1) >> 1] | 0); w = Z(b[l + (d << 1) >> 1] | 0, c) | 0; x = (Z(b[m + (d << 1) >> 1] | 0, g) | 0) >> v; b[p + (s << 1) >> 1] = (e[j + (d << 1) >> 1] | 0) - (w >>> 14) - x; s = s + 1 | 0; if ((s | 0) == 10) break; else d = d + 1 | 0; } return } function Ad(a) { a = a | 0; var d = 0; if (!a) { a = -1; return a | 0 } c[a >> 2] = 0; d = Je(16) | 0; if (!d) { a = -1; return a | 0 } ;b[d >> 1] = 0; b[d + 2 >> 1] = 0; b[d + 4 >> 1] = 0; b[d + 6 >> 1] = 0; b[d + 8 >> 1] = 0; b[d + 10 >> 1] = 0; b[d + 12 >> 1] = 0; b[d + 14 >> 1] = 0; c[a >> 2] = d; a = 0; return a | 0 } function Bd(a) { a = a | 0; if (!a) { a = -1; return a | 0 } ;b[a >> 1] = 0; b[a + 2 >> 1] = 0; b[a + 4 >> 1] = 0; b[a + 6 >> 1] = 0; b[a + 8 >> 1] = 0; b[a + 10 >> 1] = 0; b[a + 12 >> 1] = 0; b[a + 14 >> 1] = 0; a = 0; return a | 0 } function Cd(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function Dd(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var f = 0, g = 0, h = 0, i = 0; f = e[c + 6 >> 1] | 0; d = e[c + 8 >> 1] | 0; g = f - d | 0; g = (g & 65535 | 0) != 32767 ? g & 65535 : 32767; h = e[c + 10 >> 1] | 0; d = d - h | 0; g = (d << 16 >> 16 | 0) < (g << 16 >> 16 | 0) ? d & 65535 : g; d = e[c + 12 >> 1] | 0; h = h - d | 0; g = (h << 16 >> 16 | 0) < (g << 16 >> 16 | 0) ? h & 65535 : g; h = e[c + 14 >> 1] | 0; d = d - h | 0; g = (d << 16 >> 16 | 0) < (g << 16 >> 16 | 0) ? d & 65535 : g; h = h - (e[c + 16 >> 1] | 0) | 0; d = b[c + 2 >> 1] | 0; i = e[c + 4 >> 1] | 0; c = (d & 65535) - i | 0; c = (c & 65535 | 0) != 32767 ? c & 65535 : 32767; f = i - f | 0; if (((h << 16 >> 16 | 0) < (g << 16 >> 16 | 0) ? h & 65535 : g) << 16 >> 16 < 1500 ? 1 : (((f << 16 >> 16 | 0) < (c << 16 >> 16 | 0) ? f & 65535 : c) << 16 >> 16 | 0) < ((d << 16 >> 16 > 32e3 ? 600 : d << 16 >> 16 > 30500 ? 800 : 1100) | 0)) { h = (b[a >> 1] | 0) + 1 << 16 >> 16; i = h << 16 >> 16 > 11; b[a >> 1] = i ? 12 : h; return i & 1 | 0 } else { b[a >> 1] = 0; return 0 } return 0 } function Ed(a, c, d) { a = a | 0; c = c | 0; d = d | 0; c = De(c, 3, d) | 0; c = Rd(c, b[a + 2 >> 1] | 0, d) | 0; c = Rd(c, b[a + 4 >> 1] | 0, d) | 0; c = Rd(c, b[a + 6 >> 1] | 0, d) | 0; c = Rd(c, b[a + 8 >> 1] | 0, d) | 0; c = Rd(c, b[a + 10 >> 1] | 0, d) | 0; c = Rd(c, b[a + 12 >> 1] | 0, d) | 0; return (Rd(c, b[a + 14 >> 1] | 0, d) | 0) << 16 >> 16 > 15565 | 0 } function Fd(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var e = 0; d = a + 4 | 0; b[a + 2 >> 1] = b[d >> 1] | 0; e = a + 6 | 0; b[d >> 1] = b[e >> 1] | 0; d = a + 8 | 0; b[e >> 1] = b[d >> 1] | 0; e = a + 10 | 0; b[d >> 1] = b[e >> 1] | 0; d = a + 12 | 0; b[e >> 1] = b[d >> 1] | 0; a = a + 14 | 0; b[d >> 1] = b[a >> 1] | 0; b[a >> 1] = c << 16 >> 16 >>> 3; return } function Gd(a) { a = a | 0; var d = 0, e = 0, f = 0; if (!a) { f = -1; return f | 0 } c[a >> 2] = 0; d = Je(128) | 0; if (!d) { f = -1; return f | 0 } e = d + 72 | 0; f = e + 46 | 0; do { b[e >> 1] = 0; e = e + 2 | 0; } while ((e | 0) < (f | 0)); b[d >> 1] = 150; b[d + 36 >> 1] = 150; b[d + 18 >> 1] = 150; b[d + 54 >> 1] = 0; b[d + 2 >> 1] = 150; b[d + 38 >> 1] = 150; b[d + 20 >> 1] = 150; b[d + 56 >> 1] = 0; b[d + 4 >> 1] = 150; b[d + 40 >> 1] = 150; b[d + 22 >> 1] = 150; b[d + 58 >> 1] = 0; b[d + 6 >> 1] = 150; b[d + 42 >> 1] = 150; b[d + 24 >> 1] = 150; b[d + 60 >> 1] = 0; b[d + 8 >> 1] = 150; b[d + 44 >> 1] = 150; b[d + 26 >> 1] = 150; b[d + 62 >> 1] = 0; b[d + 10 >> 1] = 150; b[d + 46 >> 1] = 150; b[d + 28 >> 1] = 150; b[d + 64 >> 1] = 0; b[d + 12 >> 1] = 150; b[d + 48 >> 1] = 150; b[d + 30 >> 1] = 150; b[d + 66 >> 1] = 0; b[d + 14 >> 1] = 150; b[d + 50 >> 1] = 150; b[d + 32 >> 1] = 150; b[d + 68 >> 1] = 0; b[d + 16 >> 1] = 150; b[d + 52 >> 1] = 150; b[d + 34 >> 1] = 150; b[d + 70 >> 1] = 0; b[d + 118 >> 1] = 13106; b[d + 120 >> 1] = 0; b[d + 122 >> 1] = 0; b[d + 124 >> 1] = 0; b[d + 126 >> 1] = 13106; c[a >> 2] = d; f = 0; return f | 0 } function Hd(a) { a = a | 0; var c = 0, d = 0; if (!a) { d = -1; return d | 0 } c = a + 72 | 0; d = c + 46 | 0; do { b[c >> 1] = 0; c = c + 2 | 0; } while ((c | 0) < (d | 0)); b[a >> 1] = 150; b[a + 36 >> 1] = 150; b[a + 18 >> 1] = 150; b[a + 54 >> 1] = 0; b[a + 2 >> 1] = 150; b[a + 38 >> 1] = 150; b[a + 20 >> 1] = 150; b[a + 56 >> 1] = 0; b[a + 4 >> 1] = 150; b[a + 40 >> 1] = 150; b[a + 22 >> 1] = 150; b[a + 58 >> 1] = 0; b[a + 6 >> 1] = 150; b[a + 42 >> 1] = 150; b[a + 24 >> 1] = 150; b[a + 60 >> 1] = 0; b[a + 8 >> 1] = 150; b[a + 44 >> 1] = 150; b[a + 26 >> 1] = 150; b[a + 62 >> 1] = 0; b[a + 10 >> 1] = 150; b[a + 46 >> 1] = 150; b[a + 28 >> 1] = 150; b[a + 64 >> 1] = 0; b[a + 12 >> 1] = 150; b[a + 48 >> 1] = 150; b[a + 30 >> 1] = 150; b[a + 66 >> 1] = 0; b[a + 14 >> 1] = 150; b[a + 50 >> 1] = 150; b[a + 32 >> 1] = 150; b[a + 68 >> 1] = 0; b[a + 16 >> 1] = 150; b[a + 52 >> 1] = 150; b[a + 34 >> 1] = 150; b[a + 70 >> 1] = 0; b[a + 118 >> 1] = 13106; b[a + 120 >> 1] = 0; b[a + 122 >> 1] = 0; b[a + 124 >> 1] = 0; b[a + 126 >> 1] = 13106; d = 0; return d | 0 } function Id(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function Jd(a, c) { a = a | 0; c = c | 0; b[a + 118 >> 1] = c; return } function Kd(a, d, f, g) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; var h = 0; f = Ce(f, g) | 0; if (f << 16 >> 16 <= 0) return; f = f << 16 >> 16; if ((f * 21298 | 0) == 1073741824) { c[g >> 2] = 1; h = 2147483647; } else h = f * 42596 | 0; f = d - h | 0; if (((f ^ d) & (h ^ d) | 0) < 0) { c[g >> 2] = 1; f = (d >>> 31) + 2147483647 | 0; } if ((f | 0) <= 0) return; a = a + 104 | 0; b[a >> 1] = e[a >> 1] | 0 | 16384; return } function Ld(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var e = 0; a = a + 104 | 0; e = De(b[a >> 1] | 0, 1, d) | 0; b[a >> 1] = e; if (!(c << 16 >> 16)) return; b[a >> 1] = (De(e, 1, d) | 0) & 65535 | 8192; return } function Md(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var f = 0, g = 0, h = 0; g = a + 112 | 0; f = Ge(b[g >> 1] | 0, b[c >> 1] | 0, d) | 0; f = (f & 65535) - ((f & 65535) >>> 15 & 65535) | 0; f = ((f << 16 >> 31 ^ f) & 65535) << 16 >> 16 < 4; h = b[c >> 1] | 0; b[g >> 1] = h; c = c + 2 | 0; h = Ge(h, b[c >> 1] | 0, d) | 0; h = (h & 65535) - ((h & 65535) >>> 15 & 65535) | 0; f = ((h << 16 >> 31 ^ h) & 65535) << 16 >> 16 < 4 ? (f ? 2 : 1) : f & 1; b[g >> 1] = b[c >> 1] | 0; g = a + 102 | 0; b[g >> 1] = De(b[g >> 1] | 0, 1, d) | 0; c = a + 110 | 0; if ((Rd(b[c >> 1] | 0, f, d) | 0) << 16 >> 16 <= 3) { b[c >> 1] = f; return } b[g >> 1] = e[g >> 1] | 0 | 16384; b[c >> 1] = f; return } function Nd(a, d, f) { a = a | 0; d = d | 0; f = f | 0; var g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; D = i; i = i + 352 | 0; n = D + 24 | 0; B = D; k = 0; h = 0; do { g = b[d + (k + -40 << 1) >> 1] | 0; g = Z(g, g) | 0; if ((g | 0) != 1073741824) { j = (g << 1) + h | 0; if ((g ^ h | 0) > 0 & (j ^ h | 0) < 0) { c[f >> 2] = 1; h = (h >>> 31) + 2147483647 | 0; } else h = j; } else { c[f >> 2] = 1; h = 2147483647; } k = k + 1 | 0; } while ((k | 0) != 160); o = h; if ((343039 - o & o | 0) < 0) { c[f >> 2] = 1; h = (o >>> 31) + 2147483647 | 0; } else h = o + -343040 | 0; if ((h | 0) < 0) { A = a + 102 | 0; b[A >> 1] = e[A >> 1] & 16383; } m = o + -15e3 | 0; p = (14999 - o & o | 0) < 0; if (p) { c[f >> 2] = 1; j = (o >>> 31) + 2147483647 | 0; } else j = m; if ((j | 0) < 0) { A = a + 108 | 0; b[A >> 1] = e[A >> 1] & 16383; } g = a + 72 | 0; l = a + 74 | 0; j = b[g >> 1] | 0; k = b[l >> 1] | 0; h = 0; do { A = h << 2; y = Ge((b[d + (A << 1) >> 1] | 0) >>> 2 & 65535, ((j << 16 >> 16) * 21955 | 0) >>> 15 & 65535, f) | 0; v = ((y << 16 >> 16) * 21955 | 0) >>> 15 & 65535; u = Rd(j, v, f) | 0; x = A | 1; z = Ge((b[d + (x << 1) >> 1] | 0) >>> 2 & 65535, ((k << 16 >> 16) * 6390 | 0) >>> 15 & 65535, f) | 0; w = ((z << 16 >> 16) * 6390 | 0) >>> 15 & 65535; j = Rd(k, w, f) | 0; b[n + (A << 1) >> 1] = Rd(u, j, f) | 0; b[n + (x << 1) >> 1] = Ge(u, j, f) | 0; x = A | 2; j = Ge((b[d + (x << 1) >> 1] | 0) >>> 2 & 65535, v, f) | 0; y = Rd(y, ((j << 16 >> 16) * 21955 | 0) >>> 15 & 65535, f) | 0; A = A | 3; k = Ge((b[d + (A << 1) >> 1] | 0) >>> 2 & 65535, w, f) | 0; z = Rd(z, ((k << 16 >> 16) * 6390 | 0) >>> 15 & 65535, f) | 0; b[n + (x << 1) >> 1] = Rd(y, z, f) | 0; b[n + (A << 1) >> 1] = Ge(y, z, f) | 0; h = h + 1 | 0; } while ((h | 0) != 40); b[g >> 1] = j; b[l >> 1] = k; k = a + 76 | 0; j = a + 80 | 0; h = 0; do { A = h << 2; Od(n + (A << 1) | 0, n + ((A | 2) << 1) | 0, k, f); Od(n + ((A | 1) << 1) | 0, n + ((A | 3) << 1) | 0, j, f); h = h + 1 | 0; } while ((h | 0) != 40); k = a + 84 | 0; j = a + 86 | 0; h = a + 92 | 0; g = 0; do { A = g << 3; Pd(n + (A << 1) | 0, n + ((A | 4) << 1) | 0, k, f); Pd(n + ((A | 2) << 1) | 0, n + ((A | 6) << 1) | 0, j, f); Pd(n + ((A | 3) << 1) | 0, n + ((A | 7) << 1) | 0, h, f); g = g + 1 | 0; } while ((g | 0) != 20); k = a + 88 | 0; j = a + 90 | 0; h = 0; do { A = h << 4; Pd(n + (A << 1) | 0, n + ((A | 8) << 1) | 0, k, f); Pd(n + ((A | 4) << 1) | 0, n + ((A | 12) << 1) | 0, j, f); h = h + 1 | 0; } while ((h | 0) != 10); t = Qd(n, a + 70 | 0, 32, 40, 4, 1, 15, f) | 0; b[B + 16 >> 1] = t; u = Qd(n, a + 68 | 0, 16, 20, 8, 7, 16, f) | 0; b[B + 14 >> 1] = u; v = Qd(n, a + 66 | 0, 16, 20, 8, 3, 16, f) | 0; b[B + 12 >> 1] = v; w = Qd(n, a + 64 | 0, 16, 20, 8, 2, 16, f) | 0; b[B + 10 >> 1] = w; x = Qd(n, a + 62 | 0, 16, 20, 8, 6, 16, f) | 0; b[B + 8 >> 1] = x; y = Qd(n, a + 60 | 0, 8, 10, 16, 4, 16, f) | 0; b[B + 6 >> 1] = y; z = Qd(n, a + 58 | 0, 8, 10, 16, 12, 16, f) | 0; b[B + 4 >> 1] = z; A = Qd(n, a + 56 | 0, 8, 10, 16, 8, 16, f) | 0; b[B + 2 >> 1] = A; s = Qd(n, a + 54 | 0, 8, 10, 16, 0, 16, f) | 0; b[B >> 1] = s; k = 0; g = 0; do { j = a + (g << 1) | 0; d = qe(b[j >> 1] | 0) | 0; j = b[j >> 1] | 0; h = d << 16 >> 16; if (d << 16 >> 16 < 0) { l = 0 - h << 16; if ((l | 0) < 983040) l = j << 16 >> 16 >> (l >> 16) & 65535; else l = 0; } else { l = j << 16 >> 16; j = l << h; if ((j << 16 >> 16 >> h | 0) == (l | 0)) l = j & 65535; else l = (l >>> 15 ^ 32767) & 65535; } j = Td(De(b[B + (g << 1) >> 1] | 0, 1, f) | 0, l) | 0; r = Ge(d, 5, f) | 0; h = r << 16 >> 16; if (r << 16 >> 16 < 0) { l = 0 - h << 16; if ((l | 0) < 983040) l = j << 16 >> 16 >> (l >> 16); else l = 0; } else { j = j << 16 >> 16; l = j << h; if ((l << 16 >> 16 >> h | 0) != (j | 0)) l = j >>> 15 ^ 32767; } l = l << 16 >> 16; l = Z(l, l) | 0; if ((l | 0) != 1073741824) { j = (l << 1) + k | 0; if ((l ^ k | 0) > 0 & (j ^ k | 0) < 0) { c[f >> 2] = 1; k = (k >>> 31) + 2147483647 | 0; } else k = j; } else { c[f >> 2] = 1; k = 2147483647; } g = g + 1 | 0; } while ((g | 0) != 9); r = k << 6; k = (((r >> 6 | 0) == (k | 0) ? r : k >> 31 ^ 2147418112) >> 16) * 3641 >> 15; if ((k | 0) > 32767) { c[f >> 2] = 1; k = 32767; } r = b[a >> 1] | 0; l = r << 16 >> 16; q = b[a + 2 >> 1] | 0; j = (q << 16 >> 16) + l | 0; if ((q ^ r) << 16 >> 16 > -1 & (j ^ l | 0) < 0) { c[f >> 2] = 1; j = (l >>> 31) + 2147483647 | 0; } r = b[a + 4 >> 1] | 0; l = r + j | 0; if ((r ^ j | 0) > -1 & (l ^ j | 0) < 0) { c[f >> 2] = 1; l = (j >>> 31) + 2147483647 | 0; } r = b[a + 6 >> 1] | 0; j = r + l | 0; if ((r ^ l | 0) > -1 & (j ^ l | 0) < 0) { c[f >> 2] = 1; j = (l >>> 31) + 2147483647 | 0; } r = b[a + 8 >> 1] | 0; l = r + j | 0; if ((r ^ j | 0) > -1 & (l ^ j | 0) < 0) { c[f >> 2] = 1; l = (j >>> 31) + 2147483647 | 0; } r = b[a + 10 >> 1] | 0; j = r + l | 0; if ((r ^ l | 0) > -1 & (j ^ l | 0) < 0) { c[f >> 2] = 1; j = (l >>> 31) + 2147483647 | 0; } r = b[a + 12 >> 1] | 0; l = r + j | 0; if ((r ^ j | 0) > -1 & (l ^ j | 0) < 0) { c[f >> 2] = 1; l = (j >>> 31) + 2147483647 | 0; } r = b[a + 14 >> 1] | 0; j = r + l | 0; if ((r ^ l | 0) > -1 & (j ^ l | 0) < 0) { c[f >> 2] = 1; j = (l >>> 31) + 2147483647 | 0; } r = b[a + 16 >> 1] | 0; l = r + j | 0; if ((r ^ j | 0) > -1 & (l ^ j | 0) < 0) { c[f >> 2] = 1; l = (j >>> 31) + 2147483647 | 0; } q = l << 13; q = ((q >> 13 | 0) == (l | 0) ? q : l >> 31 ^ 2147418112) >>> 16 & 65535; l = (Z((Ge(q, 0, f) | 0) << 16 >> 16, -2808) | 0) >> 15; if ((l | 0) > 32767) { c[f >> 2] = 1; l = 32767; } n = Rd(l & 65535, 1260, f) | 0; r = a + 100 | 0; l = De(b[r >> 1] | 0, 1, f) | 0; if ((k << 16 >> 16 | 0) > ((n << 16 >> 16 < 720 ? 720 : n << 16 >> 16) | 0)) l = (l & 65535 | 16384) & 65535; b[r >> 1] = l; if (p) { c[f >> 2] = 1; m = (o >>> 31) + 2147483647 | 0; } h = b[a + 118 >> 1] | 0; p = a + 126 | 0; l = b[p >> 1] | 0; g = l << 16 >> 16 < 19660; g = h << 16 >> 16 < l << 16 >> 16 ? (g ? 2621 : 6553) : g ? 2621 : 655; d = l & 65535; k = d << 16; l = Z(g, l << 16 >> 16) | 0; if ((l | 0) == 1073741824) { c[f >> 2] = 1; l = 2147483647; } else l = l << 1; j = k - l | 0; if (((j ^ k) & (l ^ k) | 0) < 0) { c[f >> 2] = 1; j = (d >>> 15) + 2147483647 | 0; } k = Z(g, h << 16 >> 16) | 0; do if ((k | 0) == 1073741824) { c[f >> 2] = 1; l = 2147483647; } else { l = j + (k << 1) | 0; if (!((j ^ k | 0) > 0 & (l ^ j | 0) < 0)) break; c[f >> 2] = 1; l = (j >>> 31) + 2147483647 | 0; } while (0); d = Ce(l, f) | 0; o = (m | 0) > -1; b[p >> 1] = o ? (d << 16 >> 16 < 13106 ? 13106 : d) : 13106; d = a + 106 | 0; b[d >> 1] = De(b[d >> 1] | 0, 1, f) | 0; j = a + 108 | 0; l = De(b[j >> 1] | 0, 1, f) | 0; b[j >> 1] = l; k = b[p >> 1] | 0; a:do if (o) { do if (k << 16 >> 16 > 19660) b[d >> 1] = e[d >> 1] | 16384; else { if (k << 16 >> 16 > 16383) break; k = a + 116 | 0; l = 0; break a } while (0); b[j >> 1] = l & 65535 | 16384; C = 62; } else C = 62; while (0); do if ((C | 0) == 62) { l = a + 116 | 0; if (k << 16 >> 16 <= 22936) { k = l; l = 0; break } k = l; l = Rd(b[l >> 1] | 0, 1, f) | 0; } while (0); b[k >> 1] = l; if ((b[d >> 1] & 32640) != 32640) { n = (b[j >> 1] & 32767) == 32767; b[a + 122 >> 1] = n & 1; if (n) C = 67; } else { b[a + 122 >> 1] = 1; C = 67; } do if ((C | 0) == 67) { k = a + 98 | 0; if ((b[k >> 1] | 0) >= 5) break; b[k >> 1] = 5; } while (0); n = a + 102 | 0; do if ((b[n >> 1] & 24576) == 24576) C = 71; else { if ((b[a + 104 >> 1] & 31744) == 31744) { C = 71; break } if (!(b[r >> 1] & 32640)) { b[a + 98 >> 1] = 20; j = 32767; break } else { j = s; k = 0; l = 0; } while (1) { g = b[a + 18 + (k << 1) >> 1] | 0; h = j << 16 >> 16 > g << 16 >> 16; m = h ? j : g; j = h ? g : j; m = m << 16 >> 16 < 184 ? 184 : m; j = j << 16 >> 16 < 184 ? 184 : j; g = qe(j) | 0; h = g << 16 >> 16; do if (g << 16 >> 16 < 0) { d = 0 - h << 16; if ((d | 0) >= 983040) { d = 0; break } d = j << 16 >> 16 >> (d >> 16) & 65535; } else { d = j << 16 >> 16; j = d << h; if ((j << 16 >> 16 >> h | 0) == (d | 0)) { d = j & 65535; break } d = (d >>> 15 ^ 32767) & 65535; } while (0); m = Td(De(m, 1, f) | 0, d) | 0; l = Rd(l, De(m, Ge(8, g, f) | 0, f) | 0, f) | 0; k = k + 1 | 0; if ((k | 0) == 9) break; j = b[B + (k << 1) >> 1] | 0; } if (l << 16 >> 16 > 1e3) { b[a + 98 >> 1] = 20; j = 32767; break } j = b[r >> 1] | 0; k = a + 98 | 0; l = b[k >> 1] | 0; do if (!(j & 16384)) C = 86; else { if (!(l << 16 >> 16)) { l = j; break } l = Ge(l, 1, f) | 0; b[k >> 1] = l; C = 86; } while (0); if ((C | 0) == 86) { if (l << 16 >> 16 == 20) { j = 32767; break } l = b[r >> 1] | 0; } j = (l & 16384) == 0 ? 16383 : 3276; } while (0); if ((C | 0) == 71) { b[a + 98 >> 1] = 20; j = 32767; } k = s; l = 0; while (1) { m = a + 18 + (l << 1) | 0; d = oe(j, Ge(k, b[m >> 1] | 0, f) | 0, f) | 0; b[m >> 1] = Rd(b[m >> 1] | 0, d, f) | 0; l = l + 1 | 0; if ((l | 0) == 9) break; k = b[B + (l << 1) >> 1] | 0; } do if (!(b[r >> 1] & 30720)) { if (b[n >> 1] & 30720) { C = 95; break } if (!(b[a + 114 >> 1] | 0)) { h = 2097; g = 1638; d = 2; } else C = 95; } else C = 95; while (0); do if ((C | 0) == 95) { if ((b[a + 98 >> 1] | 0) == 0 ? (b[a + 114 >> 1] | 0) == 0 : 0) { h = 1867; g = 491; d = 2; break } h = 1638; g = 0; d = 0; } while (0); j = 0; do { k = a + (j << 1) | 0; l = Ge(b[a + 36 + (j << 1) >> 1] | 0, b[k >> 1] | 0, f) | 0; if (l << 16 >> 16 < 0) { l = oe(h, l, f) | 0; l = Rd(-2, Rd(b[k >> 1] | 0, l, f) | 0, f) | 0; l = l << 16 >> 16 < 40 ? 40 : l; } else { l = oe(g, l, f) | 0; l = Rd(d, Rd(b[k >> 1] | 0, l, f) | 0, f) | 0; l = l << 16 >> 16 > 16e3 ? 16e3 : l; } b[k >> 1] = l; j = j + 1 | 0; } while ((j | 0) != 9); b[a + 36 >> 1] = s; b[a + 38 >> 1] = A; b[a + 40 >> 1] = z; b[a + 42 >> 1] = y; b[a + 44 >> 1] = x; b[a + 46 >> 1] = w; b[a + 48 >> 1] = v; b[a + 50 >> 1] = u; b[a + 52 >> 1] = t; k = q << 16 >> 16 > 100; j = k ? 7 : 4; k = k ? 4 : 5; if (!o) { b[a + 94 >> 1] = 0; b[a + 96 >> 1] = 0; b[a + 114 >> 1] = 0; b[a + 116 >> 1] = 0; f = 0; a = a + 120 | 0; b[a >> 1] = f; i = D; return f | 0 } h = a + 114 | 0; g = b[h >> 1] | 0; do if ((b[a + 116 >> 1] | 0) <= 100) { if (g << 16 >> 16) break; g = b[r >> 1] | 0; do if (!(g & 16368)) { if ((b[p >> 1] | 0) > 21298) g = 1; else break; a = a + 120 | 0; b[a >> 1] = g; i = D; return g | 0 } while (0); h = a + 94 | 0; if (!(g & 16384)) { b[h >> 1] = 0; g = a + 96 | 0; h = b[g >> 1] | 0; if (h << 16 >> 16 <= 0) { f = 0; a = a + 120 | 0; b[a >> 1] = f; i = D; return f | 0 } b[g >> 1] = Ge(h, 1, f) | 0; f = 1; a = a + 120 | 0; b[a >> 1] = f; i = D; return f | 0 } else { f = Rd(b[h >> 1] | 0, 1, f) | 0; b[h >> 1] = f; if ((f << 16 >> 16 | 0) < (k | 0)) { f = 1; a = a + 120 | 0; b[a >> 1] = f; i = D; return f | 0 } b[a + 96 >> 1] = j; f = 1; a = a + 120 | 0; b[a >> 1] = f; i = D; return f | 0 } } else { if (g << 16 >> 16 >= 250) break; b[h >> 1] = 250; g = 250; } while (0); b[a + 94 >> 1] = 4; b[h >> 1] = Ge(g, 1, f) | 0; f = 1; a = a + 120 | 0; b[a >> 1] = f; i = D; return f | 0 } function Od(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, i = 0; g = (b[e >> 1] | 0) * 21955 >> 15; if ((g | 0) > 32767) { c[f >> 2] = 1; g = 32767; } h = Ge(b[a >> 1] | 0, g & 65535, f) | 0; g = (h << 16 >> 16) * 21955 >> 15; if ((g | 0) > 32767) { c[f >> 2] = 1; g = 32767; } i = Rd(b[e >> 1] | 0, g & 65535, f) | 0; b[e >> 1] = h; e = e + 2 | 0; g = (b[e >> 1] | 0) * 6390 >> 15; if ((g | 0) > 32767) { c[f >> 2] = 1; g = 32767; } h = Ge(b[d >> 1] | 0, g & 65535, f) | 0; g = (h << 16 >> 16) * 6390 >> 15; if ((g | 0) > 32767) { c[f >> 2] = 1; g = 32767; } g = Rd(b[e >> 1] | 0, g & 65535, f) | 0; b[e >> 1] = h; b[a >> 1] = De(Rd(i, g, f) | 0, 1, f) | 0; b[d >> 1] = De(Ge(i, g, f) | 0, 1, f) | 0; return } function Pd(a, d, e, f) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0; g = (b[e >> 1] | 0) * 13363 >> 15; if ((g | 0) > 32767) { c[f >> 2] = 1; g = 32767; } h = Ge(b[d >> 1] | 0, g & 65535, f) | 0; g = (h << 16 >> 16) * 13363 >> 15; if ((g | 0) > 32767) { c[f >> 2] = 1; g = 32767; } g = Rd(b[e >> 1] | 0, g & 65535, f) | 0; b[e >> 1] = h; b[d >> 1] = De(Ge(b[a >> 1] | 0, g, f) | 0, 1, f) | 0; b[a >> 1] = De(Rd(b[a >> 1] | 0, g, f) | 0, 1, f) | 0; return } function Qd(a, d, e, f, g, h, i, j) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; j = j | 0; var k = 0, l = 0, m = 0, n = 0, o = 0, p = 0; if (e << 16 >> 16 < f << 16 >> 16) { n = g << 16 >> 16; k = h << 16 >> 16; o = e << 16 >> 16; l = 0; do { p = b[a + ((Z(o, n) | 0) + k << 1) >> 1] | 0; p = (p & 65535) - ((p & 65535) >>> 15 & 65535) | 0; p = (p << 16 >> 31 ^ p) << 16; m = (p >> 15) + l | 0; if ((p >> 16 ^ l | 0) > 0 & (m ^ l | 0) < 0) { c[j >> 2] = 1; l = (l >>> 31) + 2147483647 | 0; } else l = m; o = o + 1 | 0; } while ((o & 65535) << 16 >> 16 != f << 16 >> 16); o = l; } else o = 0; l = b[d >> 1] | 0; p = Ge(16, i, j) | 0; k = p << 16 >> 16; if (p << 16 >> 16 > 0) { f = l << k; if ((f >> k | 0) != (l | 0)) f = l >> 31 ^ 2147483647; } else { k = 0 - k << 16; if ((k | 0) < 2031616) f = l >> (k >> 16); else f = 0; } k = f + o | 0; if ((f ^ o | 0) > -1 & (k ^ o | 0) < 0) { c[j >> 2] = 1; k = (o >>> 31) + 2147483647 | 0; } p = i << 16 >> 16; i = i << 16 >> 16 > 0; if (i) { f = o << p; if ((f >> p | 0) != (o | 0)) f = o >> 31 ^ 2147483647; } else { f = 0 - p << 16; if ((f | 0) < 2031616) f = o >> (f >> 16); else f = 0; } b[d >> 1] = f >>> 16; if (e << 16 >> 16 > 0) { n = g << 16 >> 16; l = h << 16 >> 16; m = 0; do { h = b[a + ((Z(m, n) | 0) + l << 1) >> 1] | 0; h = (h & 65535) - ((h & 65535) >>> 15 & 65535) | 0; h = (h << 16 >> 31 ^ h) << 16; f = (h >> 15) + k | 0; if ((h >> 16 ^ k | 0) > 0 & (f ^ k | 0) < 0) { c[j >> 2] = 1; k = (k >>> 31) + 2147483647 | 0; } else k = f; m = m + 1 | 0; } while ((m & 65535) << 16 >> 16 != e << 16 >> 16) } if (i) { f = k << p; if ((f >> p | 0) == (k | 0)) { j = f; j = j >>> 16; j = j & 65535; return j | 0 } j = k >> 31 ^ 2147483647; j = j >>> 16; j = j & 65535; return j | 0 } else { f = 0 - p << 16; if ((f | 0) >= 2031616) { j = 0; j = j >>> 16; j = j & 65535; return j | 0 } j = k >> (f >> 16); j = j >>> 16; j = j & 65535; return j | 0 } return 0 } function Rd(a, b, d) { a = a | 0; b = b | 0; d = d | 0; a = (b << 16 >> 16) + (a << 16 >> 16) | 0; if ((a | 0) <= 32767) { if ((a | 0) < -32768) { c[d >> 2] = 1; a = -32768; } } else { c[d >> 2] = 1; a = 32767; } return a & 65535 | 0 } function Sd(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; y = i; i = i + 32 | 0; w = y + 12 | 0; x = y; b[w >> 1] = 1024; b[x >> 1] = 1024; k = b[a + 2 >> 1] | 0; h = b[a + 20 >> 1] | 0; e = ((h + k | 0) >>> 2) + 64512 | 0; b[w + 2 >> 1] = e; h = ((k - h | 0) >>> 2) + 1024 | 0; b[x + 2 >> 1] = h; k = b[a + 4 >> 1] | 0; f = b[a + 18 >> 1] | 0; e = ((f + k | 0) >>> 2) - e | 0; b[w + 4 >> 1] = e; h = ((k - f | 0) >>> 2) + h | 0; b[x + 4 >> 1] = h; f = b[a + 6 >> 1] | 0; k = b[a + 16 >> 1] | 0; e = ((k + f | 0) >>> 2) - e | 0; b[w + 6 >> 1] = e; h = ((f - k | 0) >>> 2) + h | 0; b[x + 6 >> 1] = h; k = b[a + 8 >> 1] | 0; f = b[a + 14 >> 1] | 0; e = ((f + k | 0) >>> 2) - e | 0; b[w + 8 >> 1] = e; h = ((k - f | 0) >>> 2) + h | 0; b[x + 8 >> 1] = h; f = b[a + 10 >> 1] | 0; k = b[a + 12 >> 1] | 0; e = ((k + f | 0) >>> 2) - e | 0; b[w + 10 >> 1] = e; b[x + 10 >> 1] = ((f - k | 0) >>> 2) + h; h = b[3454] | 0; k = h << 16 >> 16; a = b[w + 2 >> 1] | 0; f = (a << 16 >> 16 << 14) + (k << 10) | 0; s = f & -65536; f = (f >>> 1) - (f >> 16 << 15) << 16; v = (((Z(f >> 16, k) | 0) >> 15) + (Z(s >> 16, k) | 0) << 2) + -16777216 | 0; v = (b[w + 4 >> 1] << 14) + v | 0; j = v >> 16; v = (v >>> 1) - (j << 15) << 16; s = (((Z(v >> 16, k) | 0) >> 15) + (Z(j, k) | 0) << 2) - ((f >> 15) + s) | 0; s = (b[w + 6 >> 1] << 14) + s | 0; f = s >> 16; s = (s >>> 1) - (f << 15) << 16; j = (((Z(s >> 16, k) | 0) >> 15) + (Z(f, k) | 0) << 2) - ((v >> 15) + (j << 16)) | 0; j = (b[w + 8 >> 1] << 14) + j | 0; v = j >> 16; f = (e << 16 >> 3) + ((((Z((j >>> 1) - (v << 15) << 16 >> 16, k) | 0) >> 15) + (Z(v, k) | 0) << 1) - ((s >> 15) + (f << 16))) | 0; s = w + 4 | 0; k = w; v = 0; j = 0; e = 0; r = w + 10 | 0; f = (f + 33554432 | 0) >>> 0 < 67108863 ? f >>> 10 & 65535 : (f | 0) > 33554431 ? 32767 : -32768; a:while (1) { t = a << 16 >> 16 << 14; q = k + 6 | 0; p = k + 8 | 0; o = j << 16 >> 16; while (1) { if ((o | 0) >= 60) break a; k = (o & 65535) + 1 << 16 >> 16; l = b[6908 + (k << 16 >> 16 << 1) >> 1] | 0; u = l << 16 >> 16; j = t + (u << 10) | 0; g = j & -65536; j = (j >>> 1) - (j >> 16 << 15) << 16; m = (((Z(j >> 16, u) | 0) >> 15) + (Z(g >> 16, u) | 0) << 2) + -16777216 | 0; n = b[s >> 1] | 0; m = (n << 16 >> 16 << 14) + m | 0; B = m >> 16; m = (m >>> 1) - (B << 15) << 16; g = (((Z(m >> 16, u) | 0) >> 15) + (Z(B, u) | 0) << 2) - ((j >> 15) + g) | 0; j = b[q >> 1] | 0; g = (j << 16 >> 16 << 14) + g | 0; a = g >> 16; g = (g >>> 1) - (a << 15) << 16; B = (((Z(g >> 16, u) | 0) >> 15) + (Z(a, u) | 0) << 2) - ((m >> 15) + (B << 16)) | 0; m = b[p >> 1] | 0; B = (m << 16 >> 16 << 14) + B | 0; A = B >> 16; a = (((Z((B >>> 1) - (A << 15) << 16 >> 16, u) | 0) >> 15) + (Z(A, u) | 0) << 1) - ((g >> 15) + (a << 16)) | 0; g = b[r >> 1] | 0; a = (g << 16 >> 16 << 13) + a | 0; a = (a + 33554432 | 0) >>> 0 < 67108863 ? a >>> 10 & 65535 : (a | 0) > 33554431 ? 32767 : -32768; if ((Z(a << 16 >> 16, f << 16 >> 16) | 0) < 1) { u = k; k = n; break } else { o = o + 1 | 0; h = l; f = a; } } s = g << 16 >> 16 << 13; r = k << 16 >> 16 << 14; n = j << 16 >> 16 << 14; p = m << 16 >> 16 << 14; g = l << 16 >> 16; o = 4; while (1) { A = (h << 16 >> 16 >>> 1) + (g >>> 1) | 0; g = A << 16; q = g >> 16; g = t + (g >> 6) | 0; B = g & -65536; g = (g >>> 1) - (g >> 16 << 15) << 16; m = r + ((((Z(g >> 16, q) | 0) >> 15) + (Z(B >> 16, q) | 0) << 2) + -16777216) | 0; k = m >> 16; m = (m >>> 1) - (k << 15) << 16; B = n + ((((Z(m >> 16, q) | 0) >> 15) + (Z(k, q) | 0) << 2) - ((g >> 15) + B)) | 0; g = B >> 16; B = (B >>> 1) - (g << 15) << 16; k = p + ((((Z(B >> 16, q) | 0) >> 15) + (Z(g, q) | 0) << 2) - ((m >> 15) + (k << 16))) | 0; m = k >> 16; A = A & 65535; g = s + ((((Z((k >>> 1) - (m << 15) << 16 >> 16, q) | 0) >> 15) + (Z(m, q) | 0) << 1) - ((B >> 15) + (g << 16))) | 0; g = (g + 33554432 | 0) >>> 0 < 67108863 ? g >>> 10 & 65535 : (g | 0) > 33554431 ? 32767 : -32768; B = (Z(g << 16 >> 16, a << 16 >> 16) | 0) < 1; q = B ? l : A; a = B ? a : g; h = B ? A : h; f = B ? g : f; o = o + -1 << 16 >> 16; g = q << 16 >> 16; if (!(o << 16 >> 16)) { l = g; j = h; h = q; break } else l = q; } k = e << 16 >> 16; g = a << 16 >> 16; a = (f & 65535) - g | 0; f = a << 16; if (f) { B = (a & 65535) - (a >>> 15 & 1) | 0; B = B << 16 >> 31 ^ B; a = (qe(B & 65535) | 0) << 16 >> 16; a = (Z((Td(16383, B << 16 >> 16 << a & 65535) | 0) << 16 >> 16, (j & 65535) - l << 16 >> 16) | 0) >> 19 - a; if ((f | 0) < 0) a = 0 - (a << 16 >> 16) | 0; h = l - ((Z(a << 16 >> 16, g) | 0) >>> 10) & 65535; } b[c + (k << 1) >> 1] = h; f = v << 16 >> 16 == 0 ? x : w; A = h << 16 >> 16; a = b[f + 2 >> 1] | 0; g = (a << 16 >> 16 << 14) + (A << 10) | 0; B = g & -65536; g = (g >>> 1) - (g >> 16 << 15) << 16; t = (((Z(g >> 16, A) | 0) >> 15) + (Z(B >> 16, A) | 0) << 2) + -16777216 | 0; t = (b[f + 4 >> 1] << 14) + t | 0; s = t >> 16; t = (t >>> 1) - (s << 15) << 16; B = (((Z(t >> 16, A) | 0) >> 15) + (Z(s, A) | 0) << 2) - ((g >> 15) + B) | 0; B = (b[f + 6 >> 1] << 14) + B | 0; g = B >> 16; B = (B >>> 1) - (g << 15) << 16; s = (((Z(B >> 16, A) | 0) >> 15) + (Z(g, A) | 0) << 2) - ((t >> 15) + (s << 16)) | 0; s = (b[f + 8 >> 1] << 14) + s | 0; t = s >> 16; e = e + 1 << 16 >> 16; g = (((Z((s >>> 1) - (t << 15) << 16 >> 16, A) | 0) >> 15) + (Z(t, A) | 0) << 1) - ((B >> 15) + (g << 16)) | 0; g = (b[f + 10 >> 1] << 13) + g | 0; if (e << 16 >> 16 < 10) { s = f + 4 | 0; k = f; v = v ^ 1; j = u; r = f + 10 | 0; f = (g + 33554432 | 0) >>> 0 < 67108863 ? g >>> 10 & 65535 : (g | 0) > 33554431 ? 32767 : -32768; } else { z = 13; break } } if ((z | 0) == 13) { i = y; return } b[c >> 1] = b[d >> 1] | 0; b[c + 2 >> 1] = b[d + 2 >> 1] | 0; b[c + 4 >> 1] = b[d + 4 >> 1] | 0; b[c + 6 >> 1] = b[d + 6 >> 1] | 0; b[c + 8 >> 1] = b[d + 8 >> 1] | 0; b[c + 10 >> 1] = b[d + 10 >> 1] | 0; b[c + 12 >> 1] = b[d + 12 >> 1] | 0; b[c + 14 >> 1] = b[d + 14 >> 1] | 0; b[c + 16 >> 1] = b[d + 16 >> 1] | 0; b[c + 18 >> 1] = b[d + 18 >> 1] | 0; i = y; return } function Td(a, b) { a = a | 0; b = b | 0; var c = 0, d = 0, e = 0, f = 0, g = 0, h = 0; e = b << 16 >> 16; if (a << 16 >> 16 < 1 ? 1 : a << 16 >> 16 > b << 16 >> 16) { e = 0; return e | 0 } if (a << 16 >> 16 == b << 16 >> 16) { e = 32767; return e | 0 } d = e << 1; c = e << 2; f = a << 16 >> 16 << 3; a = (f | 0) < (c | 0); f = f - (a ? 0 : c) | 0; a = a ? 0 : 4; g = (f | 0) < (d | 0); f = f - (g ? 0 : d) | 0; b = (f | 0) < (e | 0); a = (b & 1 | (g ? a : a | 2)) << 3 ^ 8; b = f - (b ? 0 : e) << 3; if ((b | 0) >= (c | 0)) { b = b - c | 0; a = a & 65528 | 4; } f = (b | 0) < (d | 0); g = b - (f ? 0 : d) | 0; b = (g | 0) < (e | 0); a = (b & 1 ^ 1 | (f ? a : a | 2)) << 16 >> 13; b = g - (b ? 0 : e) << 3; if ((b | 0) >= (c | 0)) { b = b - c | 0; a = a & 65528 | 4; } f = (b | 0) < (d | 0); g = b - (f ? 0 : d) | 0; b = (g | 0) < (e | 0); a = (b & 1 ^ 1 | (f ? a : a | 2)) << 16 >> 13; b = g - (b ? 0 : e) << 3; if ((b | 0) >= (c | 0)) { b = b - c | 0; a = a & 65528 | 4; } h = (b | 0) < (d | 0); f = b - (h ? 0 : d) | 0; g = (f | 0) < (e | 0); b = (g & 1 ^ 1 | (h ? a : a | 2)) << 16 >> 13; a = f - (g ? 0 : e) << 3; if ((a | 0) >= (c | 0)) { a = a - c | 0; b = b & 65528 | 4; } h = (a | 0) < (d | 0); h = ((a - (h ? 0 : d) | 0) >= (e | 0) | (h ? b : b | 2)) & 65535; return h | 0 } function Ud(a) { a = a | 0; if (!a) { a = -1; return a | 0 } b[a >> 1] = -14336; b[a + 8 >> 1] = -2381; b[a + 2 >> 1] = -14336; b[a + 10 >> 1] = -2381; b[a + 4 >> 1] = -14336; b[a + 12 >> 1] = -2381; b[a + 6 >> 1] = -14336; b[a + 14 >> 1] = -2381; a = 0; return a | 0 } function Vd(a, d, f, g, h, j, k, l) { a = a | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; l = l | 0; var m = 0, n = 0, o = 0, p = 0, q = 0, r = 0; r = i; i = i + 16 | 0; p = r + 2 | 0; q = r; m = 0; n = 10; while (1) { o = b[f >> 1] | 0; o = ((Z(o, o) | 0) >>> 3) + m | 0; m = b[f + 2 >> 1] | 0; m = o + ((Z(m, m) | 0) >>> 3) | 0; o = b[f + 4 >> 1] | 0; o = m + ((Z(o, o) | 0) >>> 3) | 0; m = b[f + 6 >> 1] | 0; m = o + ((Z(m, m) | 0) >>> 3) | 0; n = n + -1 << 16 >> 16; if (!(n << 16 >> 16)) break; else f = f + 8 | 0; } n = m << 4; n = (n | 0) < 0 ? 2147483647 : n; if ((d | 0) == 7) { de(((Ce(n, l) | 0) << 16 >> 16) * 52428 | 0, p, q, l); o = e[p >> 1] << 16; n = b[q >> 1] << 1; d = b[a + 8 >> 1] | 0; m = (d << 16 >> 16) * 88 | 0; if (d << 16 >> 16 > -1 & (m | 0) < -783741) { c[l >> 2] = 1; f = 2147483647; } else f = m + 783741 | 0; d = (b[a + 10 >> 1] | 0) * 74 | 0; m = d + f | 0; if ((d ^ f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; f = (f >>> 31) + 2147483647 | 0; } else f = m; d = (b[a + 12 >> 1] | 0) * 44 | 0; m = d + f | 0; if ((d ^ f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; f = (f >>> 31) + 2147483647 | 0; } else f = m; a = (b[a + 14 >> 1] | 0) * 24 | 0; m = a + f | 0; if ((a ^ f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; m = (f >>> 31) + 2147483647 | 0; } a = o + -1966080 + n | 0; f = m - a | 0; if (((f ^ m) & (m ^ a) | 0) < 0) { c[l >> 2] = 1; f = (m >>> 31) + 2147483647 | 0; } l = f >> 17; b[g >> 1] = l; l = (f >> 2) - (l << 15) | 0; l = l & 65535; b[h >> 1] = l; i = r; return } o = pe(n) | 0; m = o << 16 >> 16; if (o << 16 >> 16 > 0) { f = n << m; if ((f >> m | 0) == (n | 0)) n = f; else n = n >> 31 ^ 2147483647; } else { m = 0 - m << 16; if ((m | 0) < 2031616) n = n >> (m >> 16); else n = 0; } ee(n, o, p, q); p = Z(b[p >> 1] | 0, -49320) | 0; m = (Z(b[q >> 1] | 0, -24660) | 0) >> 15; m = (m & 65536 | 0) == 0 ? m : m | -65536; q = m << 1; f = q + p | 0; if ((q ^ p | 0) > -1 & (f ^ q | 0) < 0) { c[l >> 2] = 1; f = (m >>> 30 & 1) + 2147483647 | 0; } switch (d | 0) { case 6: { m = f + 2134784 | 0; if ((f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; m = (f >>> 31) + 2147483647 | 0; } break } case 5: { b[k >> 1] = n >>> 16; b[j >> 1] = -11 - (o & 65535); m = f + 2183936 | 0; if ((f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; m = (f >>> 31) + 2147483647 | 0; } break } case 4: { m = f + 2085632 | 0; if ((f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; m = (f >>> 31) + 2147483647 | 0; } break } case 3: { m = f + 2065152 | 0; if ((f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; m = (f >>> 31) + 2147483647 | 0; } break } default: { m = f + 2134784 | 0; if ((f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; m = (f >>> 31) + 2147483647 | 0; } } } do if ((m | 0) <= 2097151) if ((m | 0) < -2097152) { c[l >> 2] = 1; f = -2147483648; break } else { f = m << 10; break } else { c[l >> 2] = 1; f = 2147483647; } while (0); k = (b[a >> 1] | 0) * 11142 | 0; m = k + f | 0; if ((k ^ f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; m = (f >>> 31) + 2147483647 | 0; } k = (b[a + 2 >> 1] | 0) * 9502 | 0; f = k + m | 0; if ((k ^ m | 0) > -1 & (f ^ m | 0) < 0) { c[l >> 2] = 1; f = (m >>> 31) + 2147483647 | 0; } k = (b[a + 4 >> 1] | 0) * 5570 | 0; m = k + f | 0; if ((k ^ f | 0) > -1 & (m ^ f | 0) < 0) { c[l >> 2] = 1; m = (f >>> 31) + 2147483647 | 0; } a = (b[a + 6 >> 1] | 0) * 3112 | 0; f = a + m | 0; if ((a ^ m | 0) > -1 & (f ^ m | 0) < 0) { c[l >> 2] = 1; f = (m >>> 31) + 2147483647 | 0; } f = Z(f >> 16, (d | 0) == 4 ? 10878 : 10886) | 0; if ((f | 0) < 0) f = ~((f ^ -256) >> 8); else f = f >> 8; b[g >> 1] = f >>> 16; if ((f | 0) < 0) m = ~((f ^ -2) >> 1); else m = f >> 1; g = f >> 16 << 15; f = m - g | 0; if (((f ^ m) & (g ^ m) | 0) >= 0) { l = f; l = l & 65535; b[h >> 1] = l; i = r; return } c[l >> 2] = 1; l = (m >>> 31) + 2147483647 | 0; l = l & 65535; b[h >> 1] = l; i = r; return } function Wd(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var e = 0, f = 0, g = 0; f = a + 4 | 0; b[a + 6 >> 1] = b[f >> 1] | 0; g = a + 12 | 0; b[a + 14 >> 1] = b[g >> 1] | 0; e = a + 2 | 0; b[f >> 1] = b[e >> 1] | 0; f = a + 10 | 0; b[g >> 1] = b[f >> 1] | 0; b[e >> 1] = b[a >> 1] | 0; e = a + 8 | 0; b[f >> 1] = b[e >> 1] | 0; b[e >> 1] = c; b[a >> 1] = d; return } function Xd(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0; g = Rd(0, b[a + 8 >> 1] | 0, e) | 0; g = Rd(g, b[a + 10 >> 1] | 0, e) | 0; g = Rd(g, b[a + 12 >> 1] | 0, e) | 0; g = Rd(g, b[a + 14 >> 1] | 0, e) | 0; f = g << 16 >> 16 >> 2; f = (g << 16 >> 16 < 0 ? f | 49152 : f) & 65535; b[c >> 1] = f << 16 >> 16 < -2381 ? -2381 : f; c = Rd(0, b[a >> 1] | 0, e) | 0; c = Rd(c, b[a + 2 >> 1] | 0, e) | 0; c = Rd(c, b[a + 4 >> 1] | 0, e) | 0; e = Rd(c, b[a + 6 >> 1] | 0, e) | 0; a = e << 16 >> 16 >> 2; a = (e << 16 >> 16 < 0 ? a | 49152 : a) & 65535; b[d >> 1] = a << 16 >> 16 < -14336 ? -14336 : a; return } function Yd(a) { a = a | 0; c[a >> 2] = 6892; c[a + 4 >> 2] = 8180; c[a + 8 >> 2] = 21e3; c[a + 12 >> 2] = 9716; c[a + 16 >> 2] = 22024; c[a + 20 >> 2] = 12788; c[a + 24 >> 2] = 24072; c[a + 28 >> 2] = 26120; c[a + 32 >> 2] = 28168; c[a + 36 >> 2] = 6876; c[a + 40 >> 2] = 7452; c[a + 44 >> 2] = 8140; c[a + 48 >> 2] = 20980; c[a + 52 >> 2] = 16884; c[a + 56 >> 2] = 17908; c[a + 60 >> 2] = 7980; c[a + 64 >> 2] = 8160; c[a + 68 >> 2] = 6678; c[a + 72 >> 2] = 6646; c[a + 76 >> 2] = 6614; c[a + 80 >> 2] = 29704; c[a + 84 >> 2] = 28680; c[a + 88 >> 2] = 3720; c[a + 92 >> 2] = 8; c[a + 96 >> 2] = 4172; c[a + 100 >> 2] = 44; c[a + 104 >> 2] = 3436; c[a + 108 >> 2] = 30316; c[a + 112 >> 2] = 30796; c[a + 116 >> 2] = 31276; c[a + 120 >> 2] = 7472; c[a + 124 >> 2] = 7552; c[a + 128 >> 2] = 7632; c[a + 132 >> 2] = 7712; return } function Zd(a, c) { a = a | 0; c = c | 0; var d = 0, e = 0, f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0; n = i; i = i + 48 | 0; l = n + 18 | 0; m = n; k = c << 16 >> 16; Oe(m | 0, a | 0, k << 1 | 0) | 0; if (c << 16 >> 16 > 0) { d = 0; e = 0; } else { m = k >> 1; m = l + (m << 1) | 0; m = b[m >> 1] | 0; m = m << 16 >> 16; m = a + (m << 1) | 0; m = b[m >> 1] | 0; i = n; return m | 0 } do { j = 0; h = -32767; while (1) { f = b[m + (j << 1) >> 1] | 0; g = f << 16 >> 16 < h << 16 >> 16; e = g ? e : j & 65535; j = j + 1 | 0; if ((j & 65535) << 16 >> 16 == c << 16 >> 16) break; else h = g ? h : f; } b[m + (e << 16 >> 16 << 1) >> 1] = -32768; b[l + (d << 1) >> 1] = e; d = d + 1 | 0; } while ((d & 65535) << 16 >> 16 != c << 16 >> 16); m = k >> 1; m = l + (m << 1) | 0; m = b[m >> 1] | 0; m = m << 16 >> 16; m = a + (m << 1) | 0; m = b[m >> 1] | 0; i = n; return m | 0 } function _d(a, c, d, e, f) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; g = i; i = i + 32 | 0; h = g; A = c + 2 | 0; z = h + 2 | 0; b[h >> 1] = ((b[c >> 1] | 0) >>> 1) + ((b[a >> 1] | 0) >>> 1); y = c + 4 | 0; x = h + 4 | 0; b[z >> 1] = ((b[A >> 1] | 0) >>> 1) + ((b[a + 2 >> 1] | 0) >>> 1); w = c + 6 | 0; v = h + 6 | 0; b[x >> 1] = ((b[y >> 1] | 0) >>> 1) + ((b[a + 4 >> 1] | 0) >>> 1); u = c + 8 | 0; t = h + 8 | 0; b[v >> 1] = ((b[w >> 1] | 0) >>> 1) + ((b[a + 6 >> 1] | 0) >>> 1); s = c + 10 | 0; r = h + 10 | 0; b[t >> 1] = ((b[u >> 1] | 0) >>> 1) + ((b[a + 8 >> 1] | 0) >>> 1); q = c + 12 | 0; p = h + 12 | 0; b[r >> 1] = ((b[s >> 1] | 0) >>> 1) + ((b[a + 10 >> 1] | 0) >>> 1); o = c + 14 | 0; n = h + 14 | 0; b[p >> 1] = ((b[q >> 1] | 0) >>> 1) + ((b[a + 12 >> 1] | 0) >>> 1); m = c + 16 | 0; l = h + 16 | 0; b[n >> 1] = ((b[o >> 1] | 0) >>> 1) + ((b[a + 14 >> 1] | 0) >>> 1); k = c + 18 | 0; j = h + 18 | 0; b[l >> 1] = ((b[m >> 1] | 0) >>> 1) + ((b[a + 16 >> 1] | 0) >>> 1); b[j >> 1] = ((b[k >> 1] | 0) >>> 1) + ((b[a + 18 >> 1] | 0) >>> 1); he(h, e, f); he(c, e + 22 | 0, f); b[h >> 1] = ((b[d >> 1] | 0) >>> 1) + ((b[c >> 1] | 0) >>> 1); b[z >> 1] = ((b[d + 2 >> 1] | 0) >>> 1) + ((b[A >> 1] | 0) >>> 1); b[x >> 1] = ((b[d + 4 >> 1] | 0) >>> 1) + ((b[y >> 1] | 0) >>> 1); b[v >> 1] = ((b[d + 6 >> 1] | 0) >>> 1) + ((b[w >> 1] | 0) >>> 1); b[t >> 1] = ((b[d + 8 >> 1] | 0) >>> 1) + ((b[u >> 1] | 0) >>> 1); b[r >> 1] = ((b[d + 10 >> 1] | 0) >>> 1) + ((b[s >> 1] | 0) >>> 1); b[p >> 1] = ((b[d + 12 >> 1] | 0) >>> 1) + ((b[q >> 1] | 0) >>> 1); b[n >> 1] = ((b[d + 14 >> 1] | 0) >>> 1) + ((b[o >> 1] | 0) >>> 1); b[l >> 1] = ((b[d + 16 >> 1] | 0) >>> 1) + ((b[m >> 1] | 0) >>> 1); b[j >> 1] = ((b[d + 18 >> 1] | 0) >>> 1) + ((b[k >> 1] | 0) >>> 1); he(h, e + 44 | 0, f); he(d, e + 66 | 0, f); i = g; return } function $d(a, c, d, e, f) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; var g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0; g = i; i = i + 32 | 0; h = g; A = c + 2 | 0; z = h + 2 | 0; b[h >> 1] = ((b[c >> 1] | 0) >>> 1) + ((b[a >> 1] | 0) >>> 1); y = c + 4 | 0; x = h + 4 | 0; b[z >> 1] = ((b[A >> 1] | 0) >>> 1) + ((b[a + 2 >> 1] | 0) >>> 1); w = c + 6 | 0; v = h + 6 | 0; b[x >> 1] = ((b[y >> 1] | 0) >>> 1) + ((b[a + 4 >> 1] | 0) >>> 1); u = c + 8 | 0; t = h + 8 | 0; b[v >> 1] = ((b[w >> 1] | 0) >>> 1) + ((b[a + 6 >> 1] | 0) >>> 1); s = c + 10 | 0; r = h + 10 | 0; b[t >> 1] = ((b[u >> 1] | 0) >>> 1) + ((b[a + 8 >> 1] | 0) >>> 1); q = c + 12 | 0; p = h + 12 | 0; b[r >> 1] = ((b[s >> 1] | 0) >>> 1) + ((b[a + 10 >> 1] | 0) >>> 1); o = c + 14 | 0; n = h + 14 | 0; b[p >> 1] = ((b[q >> 1] | 0) >>> 1) + ((b[a + 12 >> 1] | 0) >>> 1); m = c + 16 | 0; l = h + 16 | 0; b[n >> 1] = ((b[o >> 1] | 0) >>> 1) + ((b[a + 14 >> 1] | 0) >>> 1); k = c + 18 | 0; j = h + 18 | 0; b[l >> 1] = ((b[m >> 1] | 0) >>> 1) + ((b[a + 16 >> 1] | 0) >>> 1); b[j >> 1] = ((b[k >> 1] | 0) >>> 1) + ((b[a + 18 >> 1] | 0) >>> 1); he(h, e, f); b[h >> 1] = ((b[d >> 1] | 0) >>> 1) + ((b[c >> 1] | 0) >>> 1); b[z >> 1] = ((b[d + 2 >> 1] | 0) >>> 1) + ((b[A >> 1] | 0) >>> 1); b[x >> 1] = ((b[d + 4 >> 1] | 0) >>> 1) + ((b[y >> 1] | 0) >>> 1); b[v >> 1] = ((b[d + 6 >> 1] | 0) >>> 1) + ((b[w >> 1] | 0) >>> 1); b[t >> 1] = ((b[d + 8 >> 1] | 0) >>> 1) + ((b[u >> 1] | 0) >>> 1); b[r >> 1] = ((b[d + 10 >> 1] | 0) >>> 1) + ((b[s >> 1] | 0) >>> 1); b[p >> 1] = ((b[d + 12 >> 1] | 0) >>> 1) + ((b[q >> 1] | 0) >>> 1); b[n >> 1] = ((b[d + 14 >> 1] | 0) >>> 1) + ((b[o >> 1] | 0) >>> 1); b[l >> 1] = ((b[d + 16 >> 1] | 0) >>> 1) + ((b[m >> 1] | 0) >>> 1); b[j >> 1] = ((b[d + 18 >> 1] | 0) >>> 1) + ((b[k >> 1] | 0) >>> 1); he(h, e + 44 | 0, f); i = g; return } function ae(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0; f = i; i = i + 32 | 0; g = f; H = b[a >> 1] | 0; b[g >> 1] = H - (H >>> 2) + ((b[c >> 1] | 0) >>> 2); H = a + 2 | 0; E = b[H >> 1] | 0; I = c + 2 | 0; G = g + 2 | 0; b[G >> 1] = E - (E >>> 2) + ((b[I >> 1] | 0) >>> 2); E = a + 4 | 0; B = b[E >> 1] | 0; F = c + 4 | 0; D = g + 4 | 0; b[D >> 1] = B - (B >>> 2) + ((b[F >> 1] | 0) >>> 2); B = a + 6 | 0; y = b[B >> 1] | 0; C = c + 6 | 0; A = g + 6 | 0; b[A >> 1] = y - (y >>> 2) + ((b[C >> 1] | 0) >>> 2); y = a + 8 | 0; v = b[y >> 1] | 0; z = c + 8 | 0; x = g + 8 | 0; b[x >> 1] = v - (v >>> 2) + ((b[z >> 1] | 0) >>> 2); v = a + 10 | 0; s = b[v >> 1] | 0; w = c + 10 | 0; u = g + 10 | 0; b[u >> 1] = s - (s >>> 2) + ((b[w >> 1] | 0) >>> 2); s = a + 12 | 0; p = b[s >> 1] | 0; t = c + 12 | 0; r = g + 12 | 0; b[r >> 1] = p - (p >>> 2) + ((b[t >> 1] | 0) >>> 2); p = a + 14 | 0; m = b[p >> 1] | 0; q = c + 14 | 0; o = g + 14 | 0; b[o >> 1] = m - (m >>> 2) + ((b[q >> 1] | 0) >>> 2); m = a + 16 | 0; j = b[m >> 1] | 0; n = c + 16 | 0; l = g + 16 | 0; b[l >> 1] = j - (j >>> 2) + ((b[n >> 1] | 0) >>> 2); j = a + 18 | 0; J = b[j >> 1] | 0; k = c + 18 | 0; h = g + 18 | 0; b[h >> 1] = J - (J >>> 2) + ((b[k >> 1] | 0) >>> 2); he(g, d, e); b[g >> 1] = ((b[a >> 1] | 0) >>> 1) + ((b[c >> 1] | 0) >>> 1); b[G >> 1] = ((b[H >> 1] | 0) >>> 1) + ((b[I >> 1] | 0) >>> 1); b[D >> 1] = ((b[E >> 1] | 0) >>> 1) + ((b[F >> 1] | 0) >>> 1); b[A >> 1] = ((b[B >> 1] | 0) >>> 1) + ((b[C >> 1] | 0) >>> 1); b[x >> 1] = ((b[y >> 1] | 0) >>> 1) + ((b[z >> 1] | 0) >>> 1); b[u >> 1] = ((b[v >> 1] | 0) >>> 1) + ((b[w >> 1] | 0) >>> 1); b[r >> 1] = ((b[s >> 1] | 0) >>> 1) + ((b[t >> 1] | 0) >>> 1); b[o >> 1] = ((b[p >> 1] | 0) >>> 1) + ((b[q >> 1] | 0) >>> 1); b[l >> 1] = ((b[m >> 1] | 0) >>> 1) + ((b[n >> 1] | 0) >>> 1); b[h >> 1] = ((b[j >> 1] | 0) >>> 1) + ((b[k >> 1] | 0) >>> 1); he(g, d + 22 | 0, e); J = b[c >> 1] | 0; b[g >> 1] = J - (J >>> 2) + ((b[a >> 1] | 0) >>> 2); a = b[I >> 1] | 0; b[G >> 1] = a - (a >>> 2) + ((b[H >> 1] | 0) >>> 2); a = b[F >> 1] | 0; b[D >> 1] = a - (a >>> 2) + ((b[E >> 1] | 0) >>> 2); a = b[C >> 1] | 0; b[A >> 1] = a - (a >>> 2) + ((b[B >> 1] | 0) >>> 2); a = b[z >> 1] | 0; b[x >> 1] = a - (a >>> 2) + ((b[y >> 1] | 0) >>> 2); a = b[w >> 1] | 0; b[u >> 1] = a - (a >>> 2) + ((b[v >> 1] | 0) >>> 2); a = b[t >> 1] | 0; b[r >> 1] = a - (a >>> 2) + ((b[s >> 1] | 0) >>> 2); a = b[q >> 1] | 0; b[o >> 1] = a - (a >>> 2) + ((b[p >> 1] | 0) >>> 2); a = b[n >> 1] | 0; b[l >> 1] = a - (a >>> 2) + ((b[m >> 1] | 0) >>> 2); a = b[k >> 1] | 0; b[h >> 1] = a - (a >>> 2) + ((b[j >> 1] | 0) >>> 2); he(g, d + 44 | 0, e); he(c, d + 66 | 0, e); i = f; return } function be(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0; f = i; i = i + 32 | 0; g = f; H = b[a >> 1] | 0; b[g >> 1] = H - (H >>> 2) + ((b[c >> 1] | 0) >>> 2); H = a + 2 | 0; E = b[H >> 1] | 0; I = c + 2 | 0; G = g + 2 | 0; b[G >> 1] = E - (E >>> 2) + ((b[I >> 1] | 0) >>> 2); E = a + 4 | 0; B = b[E >> 1] | 0; F = c + 4 | 0; D = g + 4 | 0; b[D >> 1] = B - (B >>> 2) + ((b[F >> 1] | 0) >>> 2); B = a + 6 | 0; y = b[B >> 1] | 0; C = c + 6 | 0; A = g + 6 | 0; b[A >> 1] = y - (y >>> 2) + ((b[C >> 1] | 0) >>> 2); y = a + 8 | 0; v = b[y >> 1] | 0; z = c + 8 | 0; x = g + 8 | 0; b[x >> 1] = v - (v >>> 2) + ((b[z >> 1] | 0) >>> 2); v = a + 10 | 0; s = b[v >> 1] | 0; w = c + 10 | 0; u = g + 10 | 0; b[u >> 1] = s - (s >>> 2) + ((b[w >> 1] | 0) >>> 2); s = a + 12 | 0; p = b[s >> 1] | 0; t = c + 12 | 0; r = g + 12 | 0; b[r >> 1] = p - (p >>> 2) + ((b[t >> 1] | 0) >>> 2); p = a + 14 | 0; m = b[p >> 1] | 0; q = c + 14 | 0; o = g + 14 | 0; b[o >> 1] = m - (m >>> 2) + ((b[q >> 1] | 0) >>> 2); m = a + 16 | 0; j = b[m >> 1] | 0; n = c + 16 | 0; l = g + 16 | 0; b[l >> 1] = j - (j >>> 2) + ((b[n >> 1] | 0) >>> 2); j = a + 18 | 0; J = b[j >> 1] | 0; k = c + 18 | 0; h = g + 18 | 0; b[h >> 1] = J - (J >>> 2) + ((b[k >> 1] | 0) >>> 2); he(g, d, e); b[g >> 1] = ((b[a >> 1] | 0) >>> 1) + ((b[c >> 1] | 0) >>> 1); b[G >> 1] = ((b[H >> 1] | 0) >>> 1) + ((b[I >> 1] | 0) >>> 1); b[D >> 1] = ((b[E >> 1] | 0) >>> 1) + ((b[F >> 1] | 0) >>> 1); b[A >> 1] = ((b[B >> 1] | 0) >>> 1) + ((b[C >> 1] | 0) >>> 1); b[x >> 1] = ((b[y >> 1] | 0) >>> 1) + ((b[z >> 1] | 0) >>> 1); b[u >> 1] = ((b[v >> 1] | 0) >>> 1) + ((b[w >> 1] | 0) >>> 1); b[r >> 1] = ((b[s >> 1] | 0) >>> 1) + ((b[t >> 1] | 0) >>> 1); b[o >> 1] = ((b[p >> 1] | 0) >>> 1) + ((b[q >> 1] | 0) >>> 1); b[l >> 1] = ((b[m >> 1] | 0) >>> 1) + ((b[n >> 1] | 0) >>> 1); b[h >> 1] = ((b[j >> 1] | 0) >>> 1) + ((b[k >> 1] | 0) >>> 1); he(g, d + 22 | 0, e); c = b[c >> 1] | 0; b[g >> 1] = c - (c >>> 2) + ((b[a >> 1] | 0) >>> 2); a = b[I >> 1] | 0; b[G >> 1] = a - (a >>> 2) + ((b[H >> 1] | 0) >>> 2); a = b[F >> 1] | 0; b[D >> 1] = a - (a >>> 2) + ((b[E >> 1] | 0) >>> 2); a = b[C >> 1] | 0; b[A >> 1] = a - (a >>> 2) + ((b[B >> 1] | 0) >>> 2); a = b[z >> 1] | 0; b[x >> 1] = a - (a >>> 2) + ((b[y >> 1] | 0) >>> 2); a = b[w >> 1] | 0; b[u >> 1] = a - (a >>> 2) + ((b[v >> 1] | 0) >>> 2); a = b[t >> 1] | 0; b[r >> 1] = a - (a >>> 2) + ((b[s >> 1] | 0) >>> 2); a = b[q >> 1] | 0; b[o >> 1] = a - (a >>> 2) + ((b[p >> 1] | 0) >>> 2); a = b[n >> 1] | 0; b[l >> 1] = a - (a >>> 2) + ((b[m >> 1] | 0) >>> 2); a = b[k >> 1] | 0; b[h >> 1] = a - (a >>> 2) + ((b[j >> 1] | 0) >>> 2); he(g, d + 44 | 0, e); i = f; return } function ce(a, c) { a = a | 0; c = c | 0; var d = 0, f = 0; if ((a | 0) < 1) { c = 1073741823; return c | 0 } d = (pe(a) | 0) << 16 >> 16; c = 30 - d | 0; a = a << d >> (c & 1 ^ 1); d = (a >> 25 << 16) + -1048576 >> 16; f = b[7030 + (d << 1) >> 1] | 0; c = (f << 16) - (Z(f - (e[7030 + (d + 1 << 1) >> 1] | 0) << 16 >> 15, a >>> 10 & 32767) | 0) >> (c << 16 >> 17) + 1; return c | 0 } function de(a, b, c, d) { a = a | 0; b = b | 0; c = c | 0; d = d | 0; d = pe(a) | 0; ee(a << (d << 16 >> 16), d, b, c); return } function ee(a, c, d, f) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; if ((a | 0) < 1) { b[d >> 1] = 0; d = 0; b[f >> 1] = d; return } else { b[d >> 1] = 30 - (c & 65535); d = (a >> 25 << 16) + -2097152 >> 16; c = b[7128 + (d << 1) >> 1] | 0; d = ((c << 16) - (Z(a >>> 9 & 65534, c - (e[7128 + (d + 1 << 1) >> 1] | 0) << 16 >> 16) | 0) | 0) >>> 16 & 65535; b[f >> 1] = d; return } } function fe(a, c, d) { a = a | 0; c = c | 0; d = d | 0; var f = 0, g = 0; f = a + 2 | 0; d = b[f >> 1] | 0; b[c >> 1] = d; g = a + 4 | 0; b[c + 2 >> 1] = (e[g >> 1] | 0) - (e[a >> 1] | 0); b[c + 4 >> 1] = (e[a + 6 >> 1] | 0) - (e[f >> 1] | 0); f = a + 8 | 0; b[c + 6 >> 1] = (e[f >> 1] | 0) - (e[g >> 1] | 0); b[c + 8 >> 1] = (e[a + 10 >> 1] | 0) - (e[a + 6 >> 1] | 0); g = a + 12 | 0; b[c + 10 >> 1] = (e[g >> 1] | 0) - (e[f >> 1] | 0); b[c + 12 >> 1] = (e[a + 14 >> 1] | 0) - (e[a + 10 >> 1] | 0); b[c + 14 >> 1] = (e[a + 16 >> 1] | 0) - (e[g >> 1] | 0); b[c + 16 >> 1] = (e[a + 18 >> 1] | 0) - (e[a + 14 >> 1] | 0); b[c + 18 >> 1] = 16384 - (e[a + 16 >> 1] | 0); a = 10; g = c; while (1) { d = d << 16 >> 16; c = (d << 16) + -120782848 | 0; if ((c | 0) > 0) c = 1843 - ((c >> 16) * 12484 >> 16) | 0; else c = 3427 - ((d * 56320 | 0) >>> 16) | 0; f = g + 2 | 0; b[g >> 1] = c << 3; a = a + -1 << 16 >> 16; if (!(a << 16 >> 16)) break; d = b[f >> 1] | 0; g = f; } return } function ge(a, b, c) { a = a | 0; b = b | 0; c = c | 0; c = b << 16 >> 16; if (b << 16 >> 16 > 31) { b = 0; return b | 0 } if (b << 16 >> 16 > 0) return ((1 << c + -1 & a | 0) != 0 & 1) + (b << 16 >> 16 < 31 ? a >> c : 0) | 0; c = 0 - c << 16 >> 16; b = a << c; b = (b >> c | 0) == (a | 0) ? b : a >> 31 ^ 2147483647; return b | 0 } function he(a, d, e) { a = a | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; s = i; i = i + 48 | 0; q = s + 24 | 0; r = s; o = q + 4 | 0; c[q >> 2] = 16777216; f = 0 - (b[a >> 1] | 0) | 0; p = q + 8 | 0; c[o >> 2] = f << 10; g = b[a + 4 >> 1] | 0; l = f >> 6; c[p >> 2] = 33554432 - (((Z((f << 9) - (l << 15) << 16 >> 16, g) | 0) >> 15) + (Z(l, g) | 0) << 2); l = q + 4 | 0; g = (c[l >> 2] | 0) - (g << 10) | 0; c[l >> 2] = g; l = q + 12 | 0; f = q + 4 | 0; c[l >> 2] = g; e = b[a + 8 >> 1] | 0; h = g; m = 1; while (1) { k = l + -4 | 0; j = c[k >> 2] | 0; n = j >> 16; c[l >> 2] = h + g - (((Z((j >>> 1) - (n << 15) << 16 >> 16, e) | 0) >> 15) + (Z(n, e) | 0) << 2); if ((m | 0) == 2) break; h = c[l + -12 >> 2] | 0; l = k; g = j; m = m + 1 | 0; } c[f >> 2] = (c[f >> 2] | 0) - (e << 10); e = q + 16 | 0; f = c[q + 8 >> 2] | 0; c[e >> 2] = f; k = b[a + 12 >> 1] | 0; g = f; l = 1; while (1) { j = e + -4 | 0; h = c[j >> 2] | 0; n = h >> 16; c[e >> 2] = g + f - (((Z((h >>> 1) - (n << 15) << 16 >> 16, k) | 0) >> 15) + (Z(n, k) | 0) << 2); if ((l | 0) == 3) break; g = c[e + -12 >> 2] | 0; e = j; f = h; l = l + 1 | 0; } e = q + 4 | 0; c[e >> 2] = (c[e >> 2] | 0) - (k << 10); e = q + 20 | 0; g = c[q + 12 >> 2] | 0; c[e >> 2] = g; f = b[a + 16 >> 1] | 0; h = g; l = 1; while (1) { k = e + -4 | 0; j = c[k >> 2] | 0; n = j >> 16; c[e >> 2] = h + g - (((Z((j >>> 1) - (n << 15) << 16 >> 16, f) | 0) >> 15) + (Z(n, f) | 0) << 2); if ((l | 0) == 4) break; h = c[e + -12 >> 2] | 0; e = k; g = j; l = l + 1 | 0; } l = q + 4 | 0; c[l >> 2] = (c[l >> 2] | 0) - (f << 10); c[r >> 2] = 16777216; l = 0 - (b[a + 2 >> 1] | 0) | 0; n = r + 8 | 0; c[r + 4 >> 2] = l << 10; f = b[a + 6 >> 1] | 0; m = l >> 6; c[n >> 2] = 33554432 - (((Z((l << 9) - (m << 15) << 16 >> 16, f) | 0) >> 15) + (Z(m, f) | 0) << 2); m = r + 4 | 0; f = (c[m >> 2] | 0) - (f << 10) | 0; c[m >> 2] = f; m = r + 12 | 0; l = r + 4 | 0; c[m >> 2] = f; k = b[a + 10 >> 1] | 0; g = f; e = 1; while (1) { j = m + -4 | 0; h = c[j >> 2] | 0; t = h >> 16; c[m >> 2] = g + f - (((Z((h >>> 1) - (t << 15) << 16 >> 16, k) | 0) >> 15) + (Z(t, k) | 0) << 2); if ((e | 0) == 2) break; g = c[m + -12 >> 2] | 0; m = j; f = h; e = e + 1 | 0; } c[l >> 2] = (c[l >> 2] | 0) - (k << 10); l = r + 16 | 0; f = c[r + 8 >> 2] | 0; c[l >> 2] = f; k = b[a + 14 >> 1] | 0; g = f; e = 1; while (1) { j = l + -4 | 0; h = c[j >> 2] | 0; t = h >> 16; c[l >> 2] = g + f - (((Z((h >>> 1) - (t << 15) << 16 >> 16, k) | 0) >> 15) + (Z(t, k) | 0) << 2); if ((e | 0) == 3) break; g = c[l + -12 >> 2] | 0; l = j; f = h; e = e + 1 | 0; } e = r + 4 | 0; c[e >> 2] = (c[e >> 2] | 0) - (k << 10); e = r + 20 | 0; k = c[r + 12 >> 2] | 0; c[e >> 2] = k; f = b[a + 18 >> 1] | 0; j = k; l = 1; while (1) { g = e + -4 | 0; h = c[g >> 2] | 0; t = h >> 16; c[e >> 2] = j + k - (((Z((h >>> 1) - (t << 15) << 16 >> 16, f) | 0) >> 15) + (Z(t, f) | 0) << 2); if ((l | 0) == 4) break; j = c[e + -12 >> 2] | 0; e = g; k = h; l = l + 1 | 0; } j = (c[r + 4 >> 2] | 0) - (f << 10) | 0; m = q + 20 | 0; k = r + 20 | 0; l = c[q + 16 >> 2] | 0; a = (c[m >> 2] | 0) + l | 0; c[m >> 2] = a; m = c[r + 16 >> 2] | 0; t = (c[k >> 2] | 0) - m | 0; c[k >> 2] = t; k = c[q + 12 >> 2] | 0; l = l + k | 0; c[q + 16 >> 2] = l; h = c[r + 12 >> 2] | 0; m = m - h | 0; c[r + 16 >> 2] = m; f = c[p >> 2] | 0; k = k + f | 0; c[q + 12 >> 2] = k; g = c[n >> 2] | 0; p = h - g | 0; c[r + 12 >> 2] = p; h = c[o >> 2] | 0; n = f + h | 0; c[q + 8 >> 2] = n; o = g - j | 0; c[r + 8 >> 2] = o; q = h + (c[q >> 2] | 0) | 0; r = j - (c[r >> 2] | 0) | 0; b[d >> 1] = 4096; q = q + 4096 | 0; b[d + 2 >> 1] = (q + r | 0) >>> 13; b[d + 20 >> 1] = (q - r | 0) >>> 13; r = n + 4096 | 0; b[d + 4 >> 1] = (r + o | 0) >>> 13; b[d + 18 >> 1] = (r - o | 0) >>> 13; r = k + 4096 | 0; b[d + 6 >> 1] = (r + p | 0) >>> 13; b[d + 16 >> 1] = (r - p | 0) >>> 13; r = l + 4096 | 0; b[d + 8 >> 1] = (r + m | 0) >>> 13; b[d + 14 >> 1] = (r - m | 0) >>> 13; r = a + 4096 | 0; b[d + 10 >> 1] = (r + t | 0) >>> 13; b[d + 12 >> 1] = (r - t | 0) >>> 13; i = s; return } function ie(a) { a = a | 0; var d = 0, e = 0, f = 0, g = 0, h = 0; if (!a) { h = -1; return h | 0 } c[a >> 2] = 0; d = Je(44) | 0; if (!d) { h = -1; return h | 0 } e = d + 40 | 0; if ((xe(e) | 0) << 16 >> 16) { h = -1; return h | 0 } f = d; g = 7452; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); f = d + 20 | 0; g = 7452; h = f + 20 | 0; do { b[f >> 1] = b[g >> 1] | 0; f = f + 2 | 0; g = g + 2 | 0; } while ((f | 0) < (h | 0)); ye(c[e >> 2] | 0) | 0; c[a >> 2] = d; h = 0; return h | 0 } function je(a) { a = a | 0; var d = 0, e = 0, f = 0; if (!a) { f = -1; return f | 0 } d = a; e = 7452; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); d = a + 20 | 0; e = 7452; f = d + 20 | 0; do { b[d >> 1] = b[e >> 1] | 0; d = d + 2 | 0; e = e + 2 | 0; } while ((d | 0) < (f | 0)); ye(c[a + 40 >> 2] | 0) | 0; f = 0; return f | 0 } function ke(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; ze(b + 40 | 0); Ke(c[a >> 2] | 0); c[a >> 2] = 0; return } function le(a, d, e, f, g, h, j, k) { a = a | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; k = k | 0; var l = 0, m = 0, n = 0, o = 0, p = 0; p = i; i = i + 64 | 0; o = p + 44 | 0; l = p + 24 | 0; m = p + 4 | 0; n = p; if ((d | 0) == 7) { Sd(f + 22 | 0, l, a, k); Sd(f + 66 | 0, h, l, k); $d(a, l, h, f, k); if ((e | 0) == 8) f = 6; else { ve(c[a + 40 >> 2] | 0, l, h, m, o, c[j >> 2] | 0, k); _d(a + 20 | 0, m, o, g, k); g = (c[j >> 2] | 0) + 10 | 0; f = 7; } } else { Sd(f + 66 | 0, h, a, k); be(a, h, f, k); if ((e | 0) == 8) f = 6; else { te(c[a + 40 >> 2] | 0, d, h, o, c[j >> 2] | 0, n, k); ae(a + 20 | 0, o, g, k); g = (c[j >> 2] | 0) + 6 | 0; f = 7; } } if ((f | 0) == 6) { f = a; g = f + 20 | 0; do { b[f >> 1] = b[h >> 1] | 0; f = f + 2 | 0; h = h + 2 | 0; } while ((f | 0) < (g | 0)); i = p; return } else if ((f | 0) == 7) { c[j >> 2] = g; f = a; g = f + 20 | 0; do { b[f >> 1] = b[h >> 1] | 0; f = f + 2 | 0; h = h + 2 | 0; } while ((f | 0) < (g | 0)); f = a + 20 | 0; h = o; g = f + 20 | 0; do { b[f >> 1] = b[h >> 1] | 0; f = f + 2 | 0; h = h + 2 | 0; } while ((f | 0) < (g | 0)); i = p; return } } function me(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; if (d << 16 >> 16 > 0) e = 0; else return; do { g = b[a + (e << 1) >> 1] | 0; h = g >> 8; f = b[7194 + (h << 1) >> 1] | 0; b[c + (e << 1) >> 1] = ((Z((b[7194 + (h + 1 << 1) >> 1] | 0) - f | 0, g & 255) | 0) >>> 8) + f; e = e + 1 | 0; } while ((e & 65535) << 16 >> 16 != d << 16 >> 16); return } function ne(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; e = (d << 16 >> 16) + -1 | 0; d = e & 65535; if (d << 16 >> 16 <= -1) return; f = 63; h = c + (e << 1) | 0; g = a + (e << 1) | 0; while (1) { a = b[g >> 1] | 0; c = f; while (1) { e = c << 16 >> 16; f = b[7194 + (e << 1) >> 1] | 0; if (a << 16 >> 16 > f << 16 >> 16) c = c + -1 << 16 >> 16; else break } b[h >> 1] = (((Z(b[7324 + (e << 1) >> 1] | 0, (a << 16 >> 16) - (f << 16 >> 16) | 0) | 0) + 2048 | 0) >>> 12) + (e << 8); d = d + -1 << 16 >> 16; if (d << 16 >> 16 > -1) { f = c; h = h + -2 | 0; g = g + -2 | 0; } else break } return } function oe(a, b, d) { a = a | 0; b = b | 0; d = d | 0; a = (Z(b << 16 >> 16, a << 16 >> 16) | 0) + 16384 >> 15; a = a | 0 - (a & 65536); if ((a | 0) <= 32767) { if ((a | 0) < -32768) { c[d >> 2] = 1; a = -32768; } } else { c[d >> 2] = 1; a = 32767; } return a & 65535 | 0 } function pe(a) { a = a | 0; var b = 0; a:do if ((a | 0) != 0 ? (b = a - (a >>> 31) | 0, b = b >> 31 ^ b, (b & 1073741824 | 0) == 0) : 0) { a = b; b = 0; while (1) { if (a & 536870912) { a = 7; break } if (a & 268435456) { a = 8; break } if (a & 134217728) { a = 9; break } b = b + 4 << 16 >> 16; a = a << 4; if (a & 1073741824) break a } if ((a | 0) == 7) { b = b | 1; break } else if ((a | 0) == 8) { b = b | 2; break } else if ((a | 0) == 9) { b = b | 3; break } } else b = 0; while (0); return b | 0 } function qe(a) { a = a | 0; var b = 0, c = 0; if (!(a << 16 >> 16)) { c = 0; return c | 0 } b = (a & 65535) - ((a & 65535) >>> 15 & 65535) | 0; b = (b << 16 >> 31 ^ b) << 16; a = b >> 16; if (!(a & 16384)) { c = b; b = 0; } else { c = 0; return c | 0 } while (1) { if (a & 8192) { a = b; c = 7; break } if (a & 4096) { a = b; c = 8; break } if (a & 2048) { a = b; c = 9; break } b = b + 4 << 16 >> 16; c = c << 4; a = c >> 16; if (a & 16384) { a = b; c = 10; break } } if ((c | 0) == 7) { c = a | 1; return c | 0 } else if ((c | 0) == 8) { c = a | 2; return c | 0 } else if ((c | 0) == 9) { c = a | 3; return c | 0 } else if ((c | 0) == 10) return a | 0; return 0 } function re(a, d, f) { a = a | 0; d = d | 0; f = f | 0; var g = 0, h = 0, i = 0; d = d << 16 >> 16; if ((d & 134217727 | 0) == 33554432) { c[f >> 2] = 1; d = 2147483647; } else d = d << 6; g = d >>> 16 & 31; i = b[7792 + (g << 1) >> 1] | 0; h = i << 16; d = Z(i - (e[7792 + (g + 1 << 1) >> 1] | 0) << 16 >> 16, d >>> 1 & 32767) | 0; if ((d | 0) == 1073741824) { c[f >> 2] = 1; g = 2147483647; } else g = d << 1; d = h - g | 0; if (((d ^ h) & (g ^ h) | 0) >= 0) { i = d; a = a & 65535; a = 30 - a | 0; a = a & 65535; f = ge(i, a, f) | 0; return f | 0 } c[f >> 2] = 1; i = (i >>> 15 & 1) + 2147483647 | 0; a = a & 65535; a = 30 - a | 0; a = a & 65535; f = ge(i, a, f) | 0; return f | 0 } function se(a, c, d, e, f, g) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0; o = i; i = i + 48 | 0; n = o; m = 0 - (d & 65535) | 0; m = f << 16 >> 16 == 0 ? m : m << 1 & 131070; d = m & 65535; m = (d << 16 >> 16 < 0 ? m + 6 | 0 : m) << 16 >> 16; g = 6 - m | 0; b[n >> 1] = b[7858 + (m << 1) >> 1] | 0; b[n + 2 >> 1] = b[7858 + (g << 1) >> 1] | 0; b[n + 4 >> 1] = b[7858 + (m + 6 << 1) >> 1] | 0; b[n + 6 >> 1] = b[7858 + (g + 6 << 1) >> 1] | 0; b[n + 8 >> 1] = b[7858 + (m + 12 << 1) >> 1] | 0; b[n + 10 >> 1] = b[7858 + (g + 12 << 1) >> 1] | 0; b[n + 12 >> 1] = b[7858 + (m + 18 << 1) >> 1] | 0; b[n + 14 >> 1] = b[7858 + (g + 18 << 1) >> 1] | 0; b[n + 16 >> 1] = b[7858 + (m + 24 << 1) >> 1] | 0; b[n + 18 >> 1] = b[7858 + (g + 24 << 1) >> 1] | 0; b[n + 20 >> 1] = b[7858 + (m + 30 << 1) >> 1] | 0; b[n + 22 >> 1] = b[7858 + (g + 30 << 1) >> 1] | 0; b[n + 24 >> 1] = b[7858 + (m + 36 << 1) >> 1] | 0; b[n + 26 >> 1] = b[7858 + (g + 36 << 1) >> 1] | 0; b[n + 28 >> 1] = b[7858 + (m + 42 << 1) >> 1] | 0; b[n + 30 >> 1] = b[7858 + (g + 42 << 1) >> 1] | 0; b[n + 32 >> 1] = b[7858 + (m + 48 << 1) >> 1] | 0; b[n + 34 >> 1] = b[7858 + (g + 48 << 1) >> 1] | 0; b[n + 36 >> 1] = b[7858 + (m + 54 << 1) >> 1] | 0; b[n + 38 >> 1] = b[7858 + (g + 54 << 1) >> 1] | 0; g = e << 16 >> 16 >>> 1 & 65535; if (!(g << 16 >> 16)) { i = o; return } m = a + ((d << 16 >> 16 >> 15 << 16 >> 16) - (c << 16 >> 16) << 1) | 0; while (1) { l = m + 2 | 0; h = b[l >> 1] | 0; c = h; e = m; j = 5; k = n; f = 16384; d = 16384; while (1) { q = b[k >> 1] | 0; r = (Z(q, c << 16 >> 16) | 0) + d | 0; p = b[l + -2 >> 1] | 0; d = (Z(p, q) | 0) + f | 0; q = e; e = e + 4 | 0; s = b[k + 2 >> 1] | 0; d = d + (Z(s, h << 16 >> 16) | 0) | 0; f = b[e >> 1] | 0; s = r + (Z(f, s) | 0) | 0; l = l + -4 | 0; r = b[k + 4 >> 1] | 0; p = s + (Z(r, p) | 0) | 0; c = b[l >> 1] | 0; r = d + (Z(c << 16 >> 16, r) | 0) | 0; d = b[k + 6 >> 1] | 0; f = r + (Z(d, f) | 0) | 0; h = b[q + 6 >> 1] | 0; d = p + (Z(h << 16 >> 16, d) | 0) | 0; if (j << 16 >> 16 <= 1) break; else { j = j + -1 << 16 >> 16; k = k + 8 | 0; } } b[a >> 1] = f >>> 15; b[a + 2 >> 1] = d >>> 15; g = g + -1 << 16 >> 16; if (!(g << 16 >> 16)) break; else { m = m + 4 | 0; a = a + 4 | 0; } } i = o; return } function te(a, c, d, f, g, h, j) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; var k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0; C = i; i = i + 144 | 0; t = C + 120 | 0; y = C + 100 | 0; A = C + 80 | 0; B = C + 60 | 0; z = C + 40 | 0; q = C + 20 | 0; r = C; ne(d, t, 10, j); fe(t, y, j); if ((c | 0) == 8) { b[h >> 1] = 0; l = 2147483647; s = 0; while (1) { n = s * 10 | 0; d = 0; m = 0; do { x = (e[7980 + (m + n << 1) >> 1] | 0) + (e[8140 + (m << 1) >> 1] | 0) | 0; b[r + (m << 1) >> 1] = x; x = (e[t + (m << 1) >> 1] | 0) - (x & 65535) | 0; b[q + (m << 1) >> 1] = x; x = x << 16; d = (Z(x >> 15, x >> 16) | 0) + d | 0; m = m + 1 | 0; } while ((m | 0) != 10); if ((d | 0) < (l | 0)) { u = B; p = q; o = u + 20 | 0; do { b[u >> 1] = b[p >> 1] | 0; u = u + 2 | 0; p = p + 2 | 0; } while ((u | 0) < (o | 0)); u = A; p = r; o = u + 20 | 0; do { b[u >> 1] = b[p >> 1] | 0; u = u + 2 | 0; p = p + 2 | 0; } while ((u | 0) < (o | 0)); u = a; p = 7980 + (n << 1) | 0; o = u + 20 | 0; do { b[u >> 1] = b[p >> 1] | 0; u = u + 2 | 0; p = p + 2 | 0; } while ((u | 0) < (o | 0)); b[h >> 1] = s; } else d = l; s = s + 1 | 0; if ((s | 0) == 8) break; else l = d; } } else { d = 0; do { x = Z(b[8160 + (d << 1) >> 1] | 0, b[a + (d << 1) >> 1] | 0) | 0; x = (x >>> 15) + (e[8140 + (d << 1) >> 1] | 0) | 0; b[A + (d << 1) >> 1] = x; b[B + (d << 1) >> 1] = (e[t + (d << 1) >> 1] | 0) - x; d = d + 1 | 0; } while ((d | 0) != 10) } do if (c >>> 0 >= 2) { x = B + 2 | 0; w = B + 4 | 0; v = e[B >> 1] | 0; u = b[y >> 1] << 1; t = e[x >> 1] | 0; q = b[y + 2 >> 1] << 1; p = e[w >> 1] | 0; o = b[y + 4 >> 1] << 1; if ((c | 0) == 5) { r = 2147483647; h = 0; d = 0; s = 17908; while (1) { m = (Z(v - (e[s >> 1] | 0) << 16 >> 16, u) | 0) >> 16; m = Z(m, m) | 0; n = (Z(t - (e[s + 2 >> 1] | 0) << 16 >> 16, q) | 0) >> 16; m = (Z(n, n) | 0) + m | 0; n = (Z(p - (e[s + 4 >> 1] | 0) << 16 >> 16, o) | 0) >> 16; n = m + (Z(n, n) | 0) | 0; m = (n | 0) < (r | 0); d = m ? h : d; h = h + 1 << 16 >> 16; if (h << 16 >> 16 >= 512) break; else { r = m ? n : r; s = s + 6 | 0; } } n = (d << 16 >> 16) * 3 | 0; b[B >> 1] = b[17908 + (n << 1) >> 1] | 0; b[x >> 1] = b[17908 + (n + 1 << 1) >> 1] | 0; b[w >> 1] = b[17908 + (n + 2 << 1) >> 1] | 0; b[g >> 1] = d; n = B + 6 | 0; m = B + 8 | 0; v = B + 10 | 0; s = e[n >> 1] | 0; h = b[y + 6 >> 1] << 1; r = e[m >> 1] | 0; q = b[y + 8 >> 1] << 1; p = e[v >> 1] | 0; o = b[y + 10 >> 1] << 1; k = 2147483647; t = 0; d = 0; u = 9716; while (1) { l = (Z(h, s - (e[u >> 1] | 0) << 16 >> 16) | 0) >> 16; l = Z(l, l) | 0; c = (Z(q, r - (e[u + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16; l = (Z(c, c) | 0) + l | 0; c = (Z(o, p - (e[u + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16; c = l + (Z(c, c) | 0) | 0; l = (c | 0) < (k | 0); d = l ? t : d; t = t + 1 << 16 >> 16; if (t << 16 >> 16 >= 512) break; else { k = l ? c : k; u = u + 6 | 0; } } k = (d << 16 >> 16) * 3 | 0; b[n >> 1] = b[9716 + (k << 1) >> 1] | 0; b[m >> 1] = b[9716 + (k + 1 << 1) >> 1] | 0; b[v >> 1] = b[9716 + (k + 2 << 1) >> 1] | 0; b[g + 2 >> 1] = d; k = B + 12 | 0; b[g + 4 >> 1] = ue(k, 12788, y + 12 | 0, 512) | 0; t = x; s = w; d = v; l = B; break } else { r = 2147483647; h = 0; d = 0; s = 8180; while (1) { m = (Z(v - (e[s >> 1] | 0) << 16 >> 16, u) | 0) >> 16; m = Z(m, m) | 0; n = (Z(t - (e[s + 2 >> 1] | 0) << 16 >> 16, q) | 0) >> 16; m = (Z(n, n) | 0) + m | 0; n = (Z(p - (e[s + 4 >> 1] | 0) << 16 >> 16, o) | 0) >> 16; n = m + (Z(n, n) | 0) | 0; m = (n | 0) < (r | 0); d = m ? h : d; h = h + 1 << 16 >> 16; if (h << 16 >> 16 >= 256) break; else { r = m ? n : r; s = s + 6 | 0; } } n = (d << 16 >> 16) * 3 | 0; b[B >> 1] = b[8180 + (n << 1) >> 1] | 0; b[x >> 1] = b[8180 + (n + 1 << 1) >> 1] | 0; b[w >> 1] = b[8180 + (n + 2 << 1) >> 1] | 0; b[g >> 1] = d; n = B + 6 | 0; m = B + 8 | 0; v = B + 10 | 0; s = e[n >> 1] | 0; h = b[y + 6 >> 1] << 1; r = e[m >> 1] | 0; q = b[y + 8 >> 1] << 1; p = e[v >> 1] | 0; o = b[y + 10 >> 1] << 1; k = 2147483647; t = 0; d = 0; u = 9716; while (1) { l = (Z(h, s - (e[u >> 1] | 0) << 16 >> 16) | 0) >> 16; l = Z(l, l) | 0; c = (Z(q, r - (e[u + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16; l = (Z(c, c) | 0) + l | 0; c = (Z(o, p - (e[u + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16; c = l + (Z(c, c) | 0) | 0; l = (c | 0) < (k | 0); d = l ? t : d; t = t + 1 << 16 >> 16; if (t << 16 >> 16 >= 512) break; else { k = l ? c : k; u = u + 6 | 0; } } k = (d << 16 >> 16) * 3 | 0; b[n >> 1] = b[9716 + (k << 1) >> 1] | 0; b[m >> 1] = b[9716 + (k + 1 << 1) >> 1] | 0; b[v >> 1] = b[9716 + (k + 2 << 1) >> 1] | 0; b[g + 2 >> 1] = d; k = B + 12 | 0; b[g + 4 >> 1] = ue(k, 12788, y + 12 | 0, 512) | 0; t = x; s = w; d = v; l = B; break } } else { w = B + 2 | 0; x = B + 4 | 0; n = e[B >> 1] | 0; m = b[y >> 1] << 1; l = e[w >> 1] | 0; k = b[y + 2 >> 1] << 1; c = e[x >> 1] | 0; o = b[y + 4 >> 1] << 1; r = 2147483647; h = 0; d = 0; s = 8180; while (1) { q = (Z(m, n - (e[s >> 1] | 0) << 16 >> 16) | 0) >> 16; q = Z(q, q) | 0; p = (Z(k, l - (e[s + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16; q = (Z(p, p) | 0) + q | 0; p = (Z(o, c - (e[s + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16; p = q + (Z(p, p) | 0) | 0; q = (p | 0) < (r | 0); d = q ? h : d; h = h + 1 << 16 >> 16; if (h << 16 >> 16 >= 256) break; else { r = q ? p : r; s = s + 6 | 0; } } n = (d << 16 >> 16) * 3 | 0; b[B >> 1] = b[8180 + (n << 1) >> 1] | 0; b[w >> 1] = b[8180 + (n + 1 << 1) >> 1] | 0; b[x >> 1] = b[8180 + (n + 2 << 1) >> 1] | 0; b[g >> 1] = d; n = B + 6 | 0; m = B + 8 | 0; v = B + 10 | 0; s = e[n >> 1] | 0; h = b[y + 6 >> 1] << 1; r = e[m >> 1] | 0; q = b[y + 8 >> 1] << 1; p = e[v >> 1] | 0; o = b[y + 10 >> 1] << 1; k = 2147483647; t = 0; d = 0; u = 9716; while (1) { l = (Z(h, s - (e[u >> 1] | 0) << 16 >> 16) | 0) >> 16; l = Z(l, l) | 0; c = (Z(q, r - (e[u + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16; l = (Z(c, c) | 0) + l | 0; c = (Z(o, p - (e[u + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16; c = l + (Z(c, c) | 0) | 0; l = (c | 0) < (k | 0); d = l ? t : d; t = t + 1 << 16 >> 16; if (t << 16 >> 16 >= 256) break; else { k = l ? c : k; u = u + 12 | 0; } } k = (d << 16 >> 16) * 6 | 0; b[n >> 1] = b[9716 + (k << 1) >> 1] | 0; b[m >> 1] = b[9716 + ((k | 1) << 1) >> 1] | 0; b[v >> 1] = b[9716 + (k + 2 << 1) >> 1] | 0; b[g + 2 >> 1] = d; k = B + 12 | 0; b[g + 4 >> 1] = ue(k, 16884, y + 12 | 0, 128) | 0; t = w; s = x; d = v; l = B; } while (0); u = a; p = B; o = u + 20 | 0; do { b[u >> 1] = b[p >> 1] | 0; u = u + 2 | 0; p = p + 2 | 0; } while ((u | 0) < (o | 0)); b[z >> 1] = (e[A >> 1] | 0) + (e[l >> 1] | 0); b[z + 2 >> 1] = (e[A + 2 >> 1] | 0) + (e[t >> 1] | 0); b[z + 4 >> 1] = (e[A + 4 >> 1] | 0) + (e[s >> 1] | 0); b[z + 6 >> 1] = (e[A + 6 >> 1] | 0) + (e[n >> 1] | 0); b[z + 8 >> 1] = (e[A + 8 >> 1] | 0) + (e[m >> 1] | 0); b[z + 10 >> 1] = (e[A + 10 >> 1] | 0) + (e[d >> 1] | 0); b[z + 12 >> 1] = (e[A + 12 >> 1] | 0) + (e[k >> 1] | 0); b[z + 14 >> 1] = (e[A + 14 >> 1] | 0) + (e[B + 14 >> 1] | 0); b[z + 16 >> 1] = (e[A + 16 >> 1] | 0) + (e[B + 16 >> 1] | 0); b[z + 18 >> 1] = (e[A + 18 >> 1] | 0) + (e[B + 18 >> 1] | 0); Ae(z, 205, 10, j); me(z, f, 10, j); i = C; return } function ue(a, c, d, f) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; var g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0; t = a + 2 | 0; u = a + 4 | 0; v = a + 6 | 0; if (f << 16 >> 16 > 0) { m = e[a >> 1] | 0; n = b[d >> 1] << 1; o = e[t >> 1] | 0; p = b[d + 2 >> 1] << 1; q = e[u >> 1] | 0; r = b[d + 4 >> 1] << 1; s = e[v >> 1] | 0; g = b[d + 6 >> 1] << 1; j = 2147483647; k = 0; d = 0; l = c; while (1) { h = (Z(n, m - (e[l >> 1] | 0) << 16 >> 16) | 0) >> 16; h = Z(h, h) | 0; i = (Z(p, o - (e[l + 2 >> 1] | 0) << 16 >> 16) | 0) >> 16; h = (Z(i, i) | 0) + h | 0; i = (Z(r, q - (e[l + 4 >> 1] | 0) << 16 >> 16) | 0) >> 16; i = h + (Z(i, i) | 0) | 0; h = (Z(g, s - (e[l + 6 >> 1] | 0) << 16 >> 16) | 0) >> 16; h = i + (Z(h, h) | 0) | 0; i = (h | 0) < (j | 0); d = i ? k : d; k = k + 1 << 16 >> 16; if (k << 16 >> 16 >= f << 16 >> 16) break; else { j = i ? h : j; l = l + 8 | 0; } } } else d = 0; f = d << 16 >> 16 << 2; s = f | 1; b[a >> 1] = b[c + (f << 1) >> 1] | 0; b[t >> 1] = b[c + (s << 1) >> 1] | 0; b[u >> 1] = b[c + (s + 1 << 1) >> 1] | 0; b[v >> 1] = b[c + ((f | 3) << 1) >> 1] | 0; return d | 0 } function ve(a, c, d, f, g, h, j) { a = a | 0; c = c | 0; d = d | 0; f = f | 0; g = g | 0; h = h | 0; j = j | 0; var k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0; I = i; i = i + 192 | 0; m = I + 160 | 0; l = I + 140 | 0; C = I + 120 | 0; D = I + 100 | 0; E = I + 80 | 0; F = I + 60 | 0; k = I + 40 | 0; G = I + 20 | 0; H = I; ne(c, m, 10, j); ne(d, l, 10, j); fe(m, C, j); fe(l, D, j); n = 0; d = E; c = F; o = k; while (1) { B = (((b[a + (n << 1) >> 1] | 0) * 21299 | 0) >>> 15) + (e[20980 + (n << 1) >> 1] | 0) | 0; b[d >> 1] = B; b[c >> 1] = (e[m >> 1] | 0) - B; b[o >> 1] = (e[l >> 1] | 0) - B; n = n + 1 | 0; if ((n | 0) == 10) break; else { m = m + 2 | 0; l = l + 2 | 0; d = d + 2 | 0; c = c + 2 | 0; o = o + 2 | 0; } } b[h >> 1] = we(F, k, 21e3, b[C >> 1] | 0, b[C + 2 >> 1] | 0, b[D >> 1] | 0, b[D + 2 >> 1] | 0, 128) | 0; b[h + 2 >> 1] = we(F + 4 | 0, k + 4 | 0, 22024, b[C + 4 >> 1] | 0, b[C + 6 >> 1] | 0, b[D + 4 >> 1] | 0, b[D + 6 >> 1] | 0, 256) | 0; y = F + 8 | 0; z = k + 8 | 0; A = F + 10 | 0; B = k + 10 | 0; d = b[y >> 1] | 0; p = b[C + 8 >> 1] << 1; q = b[A >> 1] | 0; r = b[C + 10 >> 1] << 1; s = b[z >> 1] | 0; t = b[D + 8 >> 1] << 1; u = b[B >> 1] | 0; v = b[D + 10 >> 1] << 1; l = 2147483647; w = 0; o = 0; x = 24072; c = 0; while (1) { m = b[x >> 1] | 0; n = (Z(d - m << 16 >> 16, p) | 0) >> 16; n = Z(n, n) | 0; m = (Z(m + d << 16 >> 16, p) | 0) >> 16; m = Z(m, m) | 0; J = b[x + 2 >> 1] | 0; K = (Z(q - J << 16 >> 16, r) | 0) >> 16; n = (Z(K, K) | 0) + n | 0; J = (Z(J + q << 16 >> 16, r) | 0) >> 16; m = (Z(J, J) | 0) + m | 0; if ((n | 0) < (l | 0) | (m | 0) < (l | 0)) { K = b[x + 4 >> 1] | 0; J = (Z(s - K << 16 >> 16, t) | 0) >> 16; J = (Z(J, J) | 0) + n | 0; K = (Z(K + s << 16 >> 16, t) | 0) >> 16; K = (Z(K, K) | 0) + m | 0; m = b[x + 6 >> 1] | 0; n = (Z(u - m << 16 >> 16, v) | 0) >> 16; n = J + (Z(n, n) | 0) | 0; m = (Z(m + u << 16 >> 16, v) | 0) >> 16; m = K + (Z(m, m) | 0) | 0; K = (n | 0) < (l | 0); n = K ? n : l; J = (m | 0) < (n | 0); n = J ? m : n; o = K | J ? w : o; c = J ? 1 : K ? 0 : c; } else n = l; w = w + 1 << 16 >> 16; if (w << 16 >> 16 >= 256) break; else { l = n; x = x + 8 | 0; } } n = o << 16 >> 16; m = n << 2; o = m | 1; l = 24072 + (o << 1) | 0; d = b[24072 + (m << 1) >> 1] | 0; if (!(c << 16 >> 16)) { b[y >> 1] = d; b[A >> 1] = b[l >> 1] | 0; b[z >> 1] = b[24072 + (o + 1 << 1) >> 1] | 0; b[B >> 1] = b[24072 + ((m | 3) << 1) >> 1] | 0; c = n << 1; } else { b[y >> 1] = 0 - (d & 65535); b[A >> 1] = 0 - (e[l >> 1] | 0); b[z >> 1] = 0 - (e[24072 + (o + 1 << 1) >> 1] | 0); b[B >> 1] = 0 - (e[24072 + ((m | 3) << 1) >> 1] | 0); c = n << 1 & 65534 | 1; } b[h + 4 >> 1] = c; b[h + 6 >> 1] = we(F + 12 | 0, k + 12 | 0, 26120, b[C + 12 >> 1] | 0, b[C + 14 >> 1] | 0, b[D + 12 >> 1] | 0, b[D + 14 >> 1] | 0, 256) | 0; b[h + 8 >> 1] = we(F + 16 | 0, k + 16 | 0, 28168, b[C + 16 >> 1] | 0, b[C + 18 >> 1] | 0, b[D + 16 >> 1] | 0, b[D + 18 >> 1] | 0, 64) | 0; l = 0; m = G; n = H; d = E; c = F; while (1) { J = e[d >> 1] | 0; b[m >> 1] = J + (e[c >> 1] | 0); K = b[k >> 1] | 0; b[n >> 1] = J + (K & 65535); b[a + (l << 1) >> 1] = K; l = l + 1 | 0; if ((l | 0) == 10) break; else { m = m + 2 | 0; n = n + 2 | 0; d = d + 2 | 0; c = c + 2 | 0; k = k + 2 | 0; } } Ae(G, 205, 10, j); Ae(H, 205, 10, j); me(G, f, 10, j); me(H, g, 10, j); i = I; return } function we(a, c, d, e, f, g, h, i) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; h = h | 0; i = i | 0; var j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0; o = b[a >> 1] | 0; u = a + 2 | 0; q = b[u >> 1] | 0; s = b[c >> 1] | 0; v = c + 2 | 0; t = b[v >> 1] | 0; if (i << 16 >> 16 > 0) { n = e << 16 >> 16 << 1; m = f << 16 >> 16 << 1; l = g << 16 >> 16 << 1; f = h << 16 >> 16 << 1; g = 2147483647; j = 0; e = 0; k = d; while (1) { h = (Z(n, o - (b[k >> 1] | 0) | 0) | 0) >> 16; h = Z(h, h) | 0; if (((h | 0) < (g | 0) ? (p = (Z(m, q - (b[k + 2 >> 1] | 0) | 0) | 0) >> 16, p = (Z(p, p) | 0) + h | 0, (p | 0) < (g | 0)) : 0) ? (r = (Z(l, s - (b[k + 4 >> 1] | 0) | 0) | 0) >> 16, r = (Z(r, r) | 0) + p | 0, (r | 0) < (g | 0)) : 0) { h = (Z(f, t - (b[k + 6 >> 1] | 0) | 0) | 0) >> 16; h = (Z(h, h) | 0) + r | 0; w = (h | 0) < (g | 0); h = w ? h : g; e = w ? j : e; } else h = g; j = j + 1 << 16 >> 16; if (j << 16 >> 16 >= i << 16 >> 16) break; else { g = h; k = k + 8 | 0; } } } else e = 0; w = e << 16 >> 16 << 2; i = w | 1; b[a >> 1] = b[d + (w << 1) >> 1] | 0; b[u >> 1] = b[d + (i << 1) >> 1] | 0; b[c >> 1] = b[d + (i + 1 << 1) >> 1] | 0; b[v >> 1] = b[d + ((w | 3) << 1) >> 1] | 0; return e | 0 } function xe(a) { a = a | 0; var d = 0, e = 0, f = 0; if (!a) { f = -1; return f | 0 } c[a >> 2] = 0; d = Je(20) | 0; if (!d) { f = -1; return f | 0 } e = d; f = e + 20 | 0; do { b[e >> 1] = 0; e = e + 2 | 0; } while ((e | 0) < (f | 0)); c[a >> 2] = d; f = 0; return f | 0 } function ye(a) { a = a | 0; var c = 0; if (!a) { c = -1; return c | 0 } c = a + 20 | 0; do { b[a >> 1] = 0; a = a + 2 | 0; } while ((a | 0) < (c | 0)); c = 0; return c | 0 } function ze(a) { a = a | 0; var b = 0; if (!a) return; b = c[a >> 2] | 0; if (!b) return; Ke(b); c[a >> 2] = 0; return } function Ae(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0; if (d << 16 >> 16 <= 0) return; f = c << 16 >> 16; g = c & 65535; h = 0; while (1) { e = b[a >> 1] | 0; if (e << 16 >> 16 < c << 16 >> 16) { b[a >> 1] = c; e = (c << 16 >> 16) + f | 0; } else e = (e & 65535) + g | 0; h = h + 1 << 16 >> 16; if (h << 16 >> 16 >= d << 16 >> 16) break; else { c = e & 65535; a = a + 2 | 0; } } return } function Be(a, c, d, e) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0; f = e << 16 >> 16; e = f >>> 2 & 65535; if (!(e << 16 >> 16)) return; n = f + -1 | 0; t = a + 20 | 0; p = c + (f + -4 << 1) | 0; q = c + (f + -3 << 1) | 0; r = c + (f + -2 << 1) | 0; s = c + (n << 1) | 0; o = c + (f + -11 << 1) | 0; n = d + (n << 1) | 0; while (1) { c = b[t >> 1] | 0; h = 5; i = t; j = o; k = o + -2 | 0; l = o + -4 | 0; m = o + -6 | 0; g = 2048; a = 2048; f = 2048; d = 2048; while (1) { g = (Z(b[j >> 1] | 0, c) | 0) + g | 0; a = (Z(b[k >> 1] | 0, c) | 0) + a | 0; f = (Z(b[l >> 1] | 0, c) | 0) + f | 0; c = (Z(b[m >> 1] | 0, c) | 0) + d | 0; d = b[i + -2 >> 1] | 0; g = g + (Z(b[j + 2 >> 1] | 0, d) | 0) | 0; a = a + (Z(b[k + 2 >> 1] | 0, d) | 0) | 0; f = f + (Z(b[l + 2 >> 1] | 0, d) | 0) | 0; i = i + -4 | 0; d = c + (Z(b[m + 2 >> 1] | 0, d) | 0) | 0; h = h + -1 << 16 >> 16; c = b[i >> 1] | 0; if (!(h << 16 >> 16)) break; else { j = j + 4 | 0; k = k + 4 | 0; l = l + 4 | 0; m = m + 4 | 0; } } j = (Z(b[s >> 1] | 0, c) | 0) + g | 0; k = (Z(b[r >> 1] | 0, c) | 0) + a | 0; l = (Z(b[q >> 1] | 0, c) | 0) + f | 0; m = (Z(b[p >> 1] | 0, c) | 0) + d | 0; b[n >> 1] = j >>> 12; b[n + -2 >> 1] = k >>> 12; b[n + -4 >> 1] = l >>> 12; b[n + -6 >> 1] = m >>> 12; e = e + -1 << 16 >> 16; if (!(e << 16 >> 16)) break; else { p = p + -8 | 0; q = q + -8 | 0; r = r + -8 | 0; s = s + -8 | 0; o = o + -8 | 0; n = n + -8 | 0; } } return } function Ce(a, b) { a = a | 0; b = b | 0; var d = 0; d = a + 32768 | 0; if ((a | 0) > -1 & (d ^ a | 0) < 0) { c[b >> 2] = 1; d = (a >>> 31) + 2147483647 | 0; } return d >>> 16 & 65535 | 0 } function De(a, b, d) { a = a | 0; b = b | 0; d = d | 0; var e = 0, f = 0; e = b << 16 >> 16; if (!(b << 16 >> 16)) return a | 0; if (b << 16 >> 16 > 0) { a = a << 16 >> 16 >> (b << 16 >> 16 > 15 ? 15 : e) & 65535; return a | 0 } f = 0 - e | 0; b = a << 16 >> 16; f = (f & 65535) << 16 >> 16 > 15 ? 15 : f << 16 >> 16; e = b << f; if ((e << 16 >> 16 >> f | 0) == (b | 0)) { f = e & 65535; return f | 0 } c[d >> 2] = 1; f = a << 16 >> 16 > 0 ? 32767 : -32768; return f | 0 } function Ee(a, b, c) { a = a | 0; b = b | 0; c = c | 0; if (b << 16 >> 16 > 15) { b = 0; return b | 0 } c = De(a, b, c) | 0; if (b << 16 >> 16 > 0) return c + ((1 << (b << 16 >> 16) + -1 & a << 16 >> 16 | 0) != 0 & 1) << 16 >> 16 | 0; else { b = c; return b | 0 } return 0 } function Fe(a, d, f) { a = a | 0; d = d | 0; f = f | 0; var g = 0, h = 0, i = 0; if ((a | 0) < 1) { b[d >> 1] = 0; f = 0; return f | 0 } h = (pe(a) | 0) & 65534; i = h & 65535; h = h << 16 >> 16; if (i << 16 >> 16 > 0) { g = a << h; if ((g >> h | 0) != (a | 0)) g = a >> 31 ^ 2147483647; } else { h = 0 - h << 16; if ((h | 0) < 2031616) g = a >> (h >> 16); else g = 0; } b[d >> 1] = i; d = g >>> 25 & 63; d = d >>> 0 > 15 ? d + -16 | 0 : d; i = b[30216 + (d << 1) >> 1] | 0; a = i << 16; g = Z(i - (e[30216 + (d + 1 << 1) >> 1] | 0) << 16 >> 16, g >>> 10 & 32767) | 0; if ((g | 0) == 1073741824) { c[f >> 2] = 1; h = 2147483647; } else h = g << 1; g = a - h | 0; if (((g ^ a) & (h ^ a) | 0) >= 0) { f = g; return f | 0 } c[f >> 2] = 1; f = (i >>> 15 & 1) + 2147483647 | 0; return f | 0 } function Ge(a, b, d) { a = a | 0; b = b | 0; d = d | 0; a = (a << 16 >> 16) - (b << 16 >> 16) | 0; if ((a + 32768 | 0) >>> 0 <= 65535) { d = a; d = d & 65535; return d | 0 } c[d >> 2] = 1; d = (a | 0) > 32767 ? 32767 : -32768; d = d & 65535; return d | 0 } function He(a, c, d, e, f, g) { a = a | 0; c = c | 0; d = d | 0; e = e | 0; f = f | 0; g = g | 0; var h = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0; A = i; i = i + 48 | 0; o = A; k = o; h = f; j = k + 20 | 0; do { b[k >> 1] = b[h >> 1] | 0; k = k + 2 | 0; h = h + 2 | 0; } while ((k | 0) < (j | 0)); n = o + 18 | 0; s = a + 2 | 0; t = a + 4 | 0; p = c + 20 | 0; u = a + 6 | 0; v = a + 8 | 0; w = a + 10 | 0; x = a + 12 | 0; y = a + 14 | 0; z = a + 16 | 0; q = a + 18 | 0; r = a + 20 | 0; j = b[n >> 1] | 0; h = 5; l = c; m = d; k = o + 20 | 0; while (1) { D = b[a >> 1] | 0; C = (Z(D, b[l >> 1] | 0) | 0) + 2048 | 0; D = (Z(b[l + 2 >> 1] | 0, D) | 0) + 2048 | 0; o = j << 16 >> 16; C = C - (Z(o, b[s >> 1] | 0) | 0) | 0; B = b[t >> 1] | 0; o = D - (Z(o, B) | 0) | 0; D = b[n + -2 >> 1] | 0; B = C - (Z(D, B) | 0) | 0; C = b[u >> 1] | 0; D = o - (Z(C, D) | 0) | 0; o = b[n + -4 >> 1] | 0; C = B - (Z(o, C) | 0) | 0; B = b[v >> 1] | 0; o = D - (Z(B, o) | 0) | 0; D = b[n + -6 >> 1] | 0; B = C - (Z(D, B) | 0) | 0; C = b[w >> 1] | 0; D = o - (Z(D, C) | 0) | 0; o = b[n + -8 >> 1] | 0; C = B - (Z(o, C) | 0) | 0; B = b[x >> 1] | 0; o = D - (Z(B, o) | 0) | 0; D = b[n + -10 >> 1] | 0; B = C - (Z(D, B) | 0) | 0; C = b[y >> 1] | 0; D = o - (Z(C, D) | 0) | 0; o = b[n + -12 >> 1] | 0; C = B - (Z(o, C) | 0) | 0; B = b[z >> 1] | 0; o = D - (Z(o, B) | 0) | 0; D = b[n + -14 >> 1] | 0; B = C - (Z(D, B) | 0) | 0; C = b[q >> 1] | 0; D = o - (Z(C, D) | 0) | 0; o = b[n + -16 >> 1] | 0; C = B - (Z(o, C) | 0) | 0; B = b[r >> 1] | 0; o = D - (Z(B, o) | 0) | 0; B = C - (Z(b[n + -18 >> 1] | 0, B) | 0) | 0; B = (B + 134217728 | 0) >>> 0 < 268435455 ? B >>> 12 & 65535 : (B | 0) > 134217727 ? 32767 : -32768; o = o - (Z(b[s >> 1] | 0, B << 16 >> 16) | 0) | 0; n = k + 2 | 0; b[k >> 1] = B; b[m >> 1] = B; j = (o + 134217728 | 0) >>> 0 < 268435455 ? o >>> 12 & 65535 : (o | 0) > 134217727 ? 32767 : -32768; b[n >> 1] = j; b[m + 2 >> 1] = j; h = h + -1 << 16 >> 16; if (!(h << 16 >> 16)) break; else { l = l + 4 | 0; m = m + 4 | 0; k = k + 4 | 0; } } e = (e << 16 >> 16) + -10 | 0; k = e >>> 1 & 65535; if (k << 16 >> 16) { o = d + 18 | 0; j = c + 16 | 0; n = b[o >> 1] | 0; l = p; h = d + 20 | 0; while (1) { B = b[a >> 1] | 0; m = (Z(B, b[l >> 1] | 0) | 0) + 2048 | 0; B = (Z(b[j + 6 >> 1] | 0, B) | 0) + 2048 | 0; j = b[s >> 1] | 0; C = n << 16 >> 16; m = m - (Z(C, j) | 0) | 0; D = b[t >> 1] | 0; C = B - (Z(C, D) | 0) | 0; B = b[o + -2 >> 1] | 0; D = m - (Z(B, D) | 0) | 0; m = b[u >> 1] | 0; B = C - (Z(m, B) | 0) | 0; C = b[o + -4 >> 1] | 0; m = D - (Z(C, m) | 0) | 0; D = b[v >> 1] | 0; C = B - (Z(D, C) | 0) | 0; B = b[o + -6 >> 1] | 0; D = m - (Z(B, D) | 0) | 0; m = b[w >> 1] | 0; B = C - (Z(B, m) | 0) | 0; C = b[o + -8 >> 1] | 0; m = D - (Z(C, m) | 0) | 0; D = b[x >> 1] | 0; C = B - (Z(D, C) | 0) | 0; B = b[o + -10 >> 1] | 0; D = m - (Z(B, D) | 0) | 0; m = b[y >> 1] | 0; B = C - (Z(m, B) | 0) | 0; C = b[o + -12 >> 1] | 0; m = D - (Z(C, m) | 0) | 0; D = b[z >> 1] | 0; C = B - (Z(C, D) | 0) | 0; B = b[o + -14 >> 1] | 0; D = m - (Z(B, D) | 0) | 0; m = b[q >> 1] | 0; B = C - (Z(m, B) | 0) | 0; C = b[o + -16 >> 1] | 0; m = D - (Z(C, m) | 0) | 0; D = b[r >> 1] | 0; C = B - (Z(D, C) | 0) | 0; D = m - (Z(b[o + -18 >> 1] | 0, D) | 0) | 0; m = l + 4 | 0; D = (D + 134217728 | 0) >>> 0 < 268435455 ? D >>> 12 & 65535 : (D | 0) > 134217727 ? 32767 : -32768; j = C - (Z(j, D << 16 >> 16) | 0) | 0; o = h + 2 | 0; b[h >> 1] = D; do if ((j + 134217728 | 0) >>> 0 >= 268435455) { h = h + 4 | 0; if ((j | 0) > 134217727) { b[o >> 1] = 32767; j = 32767; break } else { b[o >> 1] = -32768; j = -32768; break } } else { j = j >>> 12 & 65535; b[o >> 1] = j; h = h + 4 | 0; } while (0); k = k + -1 << 16 >> 16; if (!(k << 16 >> 16)) break; else { D = l; n = j; l = m; j = D; } } } if (!(g << 16 >> 16)) { i = A; return } k = f; h = d + (e << 1) | 0; j = k + 20 | 0; do { b[k >> 1] = b[h >> 1] | 0; k = k + 2 | 0; h = h + 2 | 0; } while ((k | 0) < (j | 0)); i = A; return } function Ie(a, c, d) { a = a | 0; c = c | 0; d = d | 0; b[d >> 1] = b[a >> 1] | 0; b[d + 2 >> 1] = ((Z(b[c >> 1] | 0, b[a + 2 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 4 >> 1] = ((Z(b[c + 2 >> 1] | 0, b[a + 4 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 6 >> 1] = ((Z(b[c + 4 >> 1] | 0, b[a + 6 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 8 >> 1] = ((Z(b[c + 6 >> 1] | 0, b[a + 8 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 10 >> 1] = ((Z(b[c + 8 >> 1] | 0, b[a + 10 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 12 >> 1] = ((Z(b[c + 10 >> 1] | 0, b[a + 12 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 14 >> 1] = ((Z(b[c + 12 >> 1] | 0, b[a + 14 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 16 >> 1] = ((Z(b[c + 14 >> 1] | 0, b[a + 16 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 18 >> 1] = ((Z(b[c + 16 >> 1] | 0, b[a + 18 >> 1] | 0) | 0) + 16384 | 0) >>> 15; b[d + 20 >> 1] = ((Z(b[c + 18 >> 1] | 0, b[a + 20 >> 1] | 0) | 0) + 16384 | 0) >>> 15; return } function Je(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0; do if (a >>> 0 < 245) { s = a >>> 0 < 11 ? 16 : a + 11 & -8; a = s >>> 3; m = c[26] | 0; j = m >>> a; if (j & 3) { e = (j & 1 ^ 1) + a | 0; b = e << 1; d = 144 + (b << 2) | 0; b = 144 + (b + 2 << 2) | 0; f = c[b >> 2] | 0; g = f + 8 | 0; h = c[g >> 2] | 0; do if ((d | 0) == (h | 0)) c[26] = m & ~(1 << e); else { if (h >>> 0 >= (c[30] | 0) >>> 0 ? (l = h + 12 | 0, (c[l >> 2] | 0) == (f | 0)) : 0) { c[l >> 2] = d; c[b >> 2] = h; break } ea(); } while (0); U = e << 3; c[f + 4 >> 2] = U | 3; U = f + (U | 4) | 0; c[U >> 2] = c[U >> 2] | 1; break } b = c[28] | 0; if (s >>> 0 > b >>> 0) { if (j) { f = 2 << a; f = j << a & (f | 0 - f); f = (f & 0 - f) + -1 | 0; g = f >>> 12 & 16; f = f >>> g; e = f >>> 5 & 8; f = f >>> e; d = f >>> 2 & 4; f = f >>> d; h = f >>> 1 & 2; f = f >>> h; i = f >>> 1 & 1; i = (e | g | d | h | i) + (f >>> i) | 0; f = i << 1; h = 144 + (f << 2) | 0; f = 144 + (f + 2 << 2) | 0; d = c[f >> 2] | 0; g = d + 8 | 0; e = c[g >> 2] | 0; do if ((h | 0) == (e | 0)) { c[26] = m & ~(1 << i); n = b; } else { if (e >>> 0 >= (c[30] | 0) >>> 0 ? (k = e + 12 | 0, (c[k >> 2] | 0) == (d | 0)) : 0) { c[k >> 2] = h; c[f >> 2] = e; n = c[28] | 0; break } ea(); } while (0); U = i << 3; b = U - s | 0; c[d + 4 >> 2] = s | 3; j = d + s | 0; c[d + (s | 4) >> 2] = b | 1; c[d + U >> 2] = b; if (n) { d = c[31] | 0; e = n >>> 3; h = e << 1; i = 144 + (h << 2) | 0; f = c[26] | 0; e = 1 << e; if (f & e) { f = 144 + (h + 2 << 2) | 0; h = c[f >> 2] | 0; if (h >>> 0 < (c[30] | 0) >>> 0) ea(); else { p = f; q = h; } } else { c[26] = f | e; p = 144 + (h + 2 << 2) | 0; q = i; } c[p >> 2] = d; c[q + 12 >> 2] = d; c[d + 8 >> 2] = q; c[d + 12 >> 2] = i; } c[28] = b; c[31] = j; break } a = c[27] | 0; if (a) { f = (a & 0 - a) + -1 | 0; T = f >>> 12 & 16; f = f >>> T; S = f >>> 5 & 8; f = f >>> S; U = f >>> 2 & 4; f = f >>> U; h = f >>> 1 & 2; f = f >>> h; j = f >>> 1 & 1; j = c[408 + ((S | T | U | h | j) + (f >>> j) << 2) >> 2] | 0; f = (c[j + 4 >> 2] & -8) - s | 0; h = j; while (1) { i = c[h + 16 >> 2] | 0; if (!i) { i = c[h + 20 >> 2] | 0; if (!i) { b = f; break } } h = (c[i + 4 >> 2] & -8) - s | 0; U = h >>> 0 < f >>> 0; f = U ? h : f; h = i; j = U ? i : j; } a = c[30] | 0; if (j >>> 0 >= a >>> 0 ? (v = j + s | 0, j >>> 0 < v >>> 0) : 0) { e = c[j + 24 >> 2] | 0; i = c[j + 12 >> 2] | 0; do if ((i | 0) == (j | 0)) { h = j + 20 | 0; i = c[h >> 2] | 0; if (!i) { h = j + 16 | 0; i = c[h >> 2] | 0; if (!i) { t = 0; break } } while (1) { g = i + 20 | 0; f = c[g >> 2] | 0; if (f) { i = f; h = g; continue } g = i + 16 | 0; f = c[g >> 2] | 0; if (!f) break; else { i = f; h = g; } } if (h >>> 0 < a >>> 0) ea(); else { c[h >> 2] = 0; t = i; break } } else { h = c[j + 8 >> 2] | 0; if ((h >>> 0 >= a >>> 0 ? (d = h + 12 | 0, (c[d >> 2] | 0) == (j | 0)) : 0) ? (o = i + 8 | 0, (c[o >> 2] | 0) == (j | 0)) : 0) { c[d >> 2] = i; c[o >> 2] = h; t = i; break } ea(); } while (0); do if (e) { h = c[j + 28 >> 2] | 0; g = 408 + (h << 2) | 0; if ((j | 0) == (c[g >> 2] | 0)) { c[g >> 2] = t; if (!t) { c[27] = c[27] & ~(1 << h); break } } else { if (e >>> 0 < (c[30] | 0) >>> 0) ea(); h = e + 16 | 0; if ((c[h >> 2] | 0) == (j | 0)) c[h >> 2] = t; else c[e + 20 >> 2] = t; if (!t) break } g = c[30] | 0; if (t >>> 0 < g >>> 0) ea(); c[t + 24 >> 2] = e; h = c[j + 16 >> 2] | 0; do if (h) if (h >>> 0 < g >>> 0) ea(); else { c[t + 16 >> 2] = h; c[h + 24 >> 2] = t; break } while (0); h = c[j + 20 >> 2] | 0; if (h) if (h >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[t + 20 >> 2] = h; c[h + 24 >> 2] = t; break } } while (0); if (b >>> 0 < 16) { U = b + s | 0; c[j + 4 >> 2] = U | 3; U = j + (U + 4) | 0; c[U >> 2] = c[U >> 2] | 1; } else { c[j + 4 >> 2] = s | 3; c[j + (s | 4) >> 2] = b | 1; c[j + (b + s) >> 2] = b; e = c[28] | 0; if (e) { d = c[31] | 0; f = e >>> 3; h = f << 1; i = 144 + (h << 2) | 0; g = c[26] | 0; f = 1 << f; if (g & f) { h = 144 + (h + 2 << 2) | 0; g = c[h >> 2] | 0; if (g >>> 0 < (c[30] | 0) >>> 0) ea(); else { u = h; w = g; } } else { c[26] = g | f; u = 144 + (h + 2 << 2) | 0; w = i; } c[u >> 2] = d; c[w + 12 >> 2] = d; c[d + 8 >> 2] = w; c[d + 12 >> 2] = i; } c[28] = b; c[31] = v; } g = j + 8 | 0; break } ea(); } else V = 154; } else V = 154; } else if (a >>> 0 <= 4294967231) { a = a + 11 | 0; w = a & -8; m = c[27] | 0; if (m) { j = 0 - w | 0; a = a >>> 8; if (a) if (w >>> 0 > 16777215) l = 31; else { v = (a + 1048320 | 0) >>> 16 & 8; V = a << v; u = (V + 520192 | 0) >>> 16 & 4; V = V << u; l = (V + 245760 | 0) >>> 16 & 2; l = 14 - (u | v | l) + (V << l >>> 15) | 0; l = w >>> (l + 7 | 0) & 1 | l << 1; } else l = 0; a = c[408 + (l << 2) >> 2] | 0; a:do if (!a) { i = 0; a = 0; V = 86; } else { d = j; i = 0; b = w << ((l | 0) == 31 ? 0 : 25 - (l >>> 1) | 0); k = a; a = 0; while (1) { e = c[k + 4 >> 2] & -8; j = e - w | 0; if (j >>> 0 < d >>> 0) if ((e | 0) == (w | 0)) { e = k; a = k; V = 90; break a } else a = k; else j = d; V = c[k + 20 >> 2] | 0; k = c[k + 16 + (b >>> 31 << 2) >> 2] | 0; i = (V | 0) == 0 | (V | 0) == (k | 0) ? i : V; if (!k) { V = 86; break } else { d = j; b = b << 1; } } } while (0); if ((V | 0) == 86) { if ((i | 0) == 0 & (a | 0) == 0) { a = 2 << l; a = m & (a | 0 - a); if (!a) { s = w; V = 154; break } a = (a & 0 - a) + -1 | 0; t = a >>> 12 & 16; a = a >>> t; q = a >>> 5 & 8; a = a >>> q; u = a >>> 2 & 4; a = a >>> u; v = a >>> 1 & 2; a = a >>> v; i = a >>> 1 & 1; i = c[408 + ((q | t | u | v | i) + (a >>> i) << 2) >> 2] | 0; a = 0; } if (!i) { q = j; p = a; } else { e = i; V = 90; } } if ((V | 0) == 90) while (1) { V = 0; v = (c[e + 4 >> 2] & -8) - w | 0; i = v >>> 0 < j >>> 0; j = i ? v : j; a = i ? e : a; i = c[e + 16 >> 2] | 0; if (i) { e = i; V = 90; continue } e = c[e + 20 >> 2] | 0; if (!e) { q = j; p = a; break } else V = 90; } if ((p | 0) != 0 ? q >>> 0 < ((c[28] | 0) - w | 0) >>> 0 : 0) { a = c[30] | 0; if (p >>> 0 >= a >>> 0 ? (H = p + w | 0, p >>> 0 < H >>> 0) : 0) { j = c[p + 24 >> 2] | 0; i = c[p + 12 >> 2] | 0; do if ((i | 0) == (p | 0)) { h = p + 20 | 0; i = c[h >> 2] | 0; if (!i) { h = p + 16 | 0; i = c[h >> 2] | 0; if (!i) { y = 0; break } } while (1) { g = i + 20 | 0; f = c[g >> 2] | 0; if (f) { i = f; h = g; continue } g = i + 16 | 0; f = c[g >> 2] | 0; if (!f) break; else { i = f; h = g; } } if (h >>> 0 < a >>> 0) ea(); else { c[h >> 2] = 0; y = i; break } } else { h = c[p + 8 >> 2] | 0; if ((h >>> 0 >= a >>> 0 ? (r = h + 12 | 0, (c[r >> 2] | 0) == (p | 0)) : 0) ? (s = i + 8 | 0, (c[s >> 2] | 0) == (p | 0)) : 0) { c[r >> 2] = i; c[s >> 2] = h; y = i; break } ea(); } while (0); do if (j) { i = c[p + 28 >> 2] | 0; h = 408 + (i << 2) | 0; if ((p | 0) == (c[h >> 2] | 0)) { c[h >> 2] = y; if (!y) { c[27] = c[27] & ~(1 << i); break } } else { if (j >>> 0 < (c[30] | 0) >>> 0) ea(); h = j + 16 | 0; if ((c[h >> 2] | 0) == (p | 0)) c[h >> 2] = y; else c[j + 20 >> 2] = y; if (!y) break } i = c[30] | 0; if (y >>> 0 < i >>> 0) ea(); c[y + 24 >> 2] = j; h = c[p + 16 >> 2] | 0; do if (h) if (h >>> 0 < i >>> 0) ea(); else { c[y + 16 >> 2] = h; c[h + 24 >> 2] = y; break } while (0); h = c[p + 20 >> 2] | 0; if (h) if (h >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[y + 20 >> 2] = h; c[h + 24 >> 2] = y; break } } while (0); b:do if (q >>> 0 >= 16) { c[p + 4 >> 2] = w | 3; c[p + (w | 4) >> 2] = q | 1; c[p + (q + w) >> 2] = q; i = q >>> 3; if (q >>> 0 < 256) { g = i << 1; e = 144 + (g << 2) | 0; f = c[26] | 0; h = 1 << i; if (f & h) { h = 144 + (g + 2 << 2) | 0; g = c[h >> 2] | 0; if (g >>> 0 < (c[30] | 0) >>> 0) ea(); else { z = h; A = g; } } else { c[26] = f | h; z = 144 + (g + 2 << 2) | 0; A = e; } c[z >> 2] = H; c[A + 12 >> 2] = H; c[p + (w + 8) >> 2] = A; c[p + (w + 12) >> 2] = e; break } d = q >>> 8; if (d) if (q >>> 0 > 16777215) i = 31; else { T = (d + 1048320 | 0) >>> 16 & 8; U = d << T; S = (U + 520192 | 0) >>> 16 & 4; U = U << S; i = (U + 245760 | 0) >>> 16 & 2; i = 14 - (S | T | i) + (U << i >>> 15) | 0; i = q >>> (i + 7 | 0) & 1 | i << 1; } else i = 0; h = 408 + (i << 2) | 0; c[p + (w + 28) >> 2] = i; c[p + (w + 20) >> 2] = 0; c[p + (w + 16) >> 2] = 0; g = c[27] | 0; f = 1 << i; if (!(g & f)) { c[27] = g | f; c[h >> 2] = H; c[p + (w + 24) >> 2] = h; c[p + (w + 12) >> 2] = H; c[p + (w + 8) >> 2] = H; break } d = c[h >> 2] | 0; c:do if ((c[d + 4 >> 2] & -8 | 0) != (q | 0)) { i = q << ((i | 0) == 31 ? 0 : 25 - (i >>> 1) | 0); while (1) { b = d + 16 + (i >>> 31 << 2) | 0; h = c[b >> 2] | 0; if (!h) break; if ((c[h + 4 >> 2] & -8 | 0) == (q | 0)) { C = h; break c } else { i = i << 1; d = h; } } if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[b >> 2] = H; c[p + (w + 24) >> 2] = d; c[p + (w + 12) >> 2] = H; c[p + (w + 8) >> 2] = H; break b } } else C = d; while (0); d = C + 8 | 0; b = c[d >> 2] | 0; U = c[30] | 0; if (b >>> 0 >= U >>> 0 & C >>> 0 >= U >>> 0) { c[b + 12 >> 2] = H; c[d >> 2] = H; c[p + (w + 8) >> 2] = b; c[p + (w + 12) >> 2] = C; c[p + (w + 24) >> 2] = 0; break } else ea(); } else { U = q + w | 0; c[p + 4 >> 2] = U | 3; U = p + (U + 4) | 0; c[U >> 2] = c[U >> 2] | 1; } while (0); g = p + 8 | 0; break } ea(); } else { s = w; V = 154; } } else { s = w; V = 154; } } else { s = -1; V = 154; } while (0); d:do if ((V | 0) == 154) { a = c[28] | 0; if (a >>> 0 >= s >>> 0) { b = a - s | 0; d = c[31] | 0; if (b >>> 0 > 15) { c[31] = d + s; c[28] = b; c[d + (s + 4) >> 2] = b | 1; c[d + a >> 2] = b; c[d + 4 >> 2] = s | 3; } else { c[28] = 0; c[31] = 0; c[d + 4 >> 2] = a | 3; V = d + (a + 4) | 0; c[V >> 2] = c[V >> 2] | 1; } g = d + 8 | 0; break } a = c[29] | 0; if (a >>> 0 > s >>> 0) { V = a - s | 0; c[29] = V; g = c[32] | 0; c[32] = g + s; c[g + (s + 4) >> 2] = V | 1; c[g + 4 >> 2] = s | 3; g = g + 8 | 0; break } if (!(c[144] | 0)) Me(); m = s + 48 | 0; d = c[146] | 0; l = s + 47 | 0; e = d + l | 0; d = 0 - d | 0; k = e & d; if (k >>> 0 > s >>> 0) { a = c[136] | 0; if ((a | 0) != 0 ? (C = c[134] | 0, H = C + k | 0, H >>> 0 <= C >>> 0 | H >>> 0 > a >>> 0) : 0) { g = 0; break } e:do if (!(c[137] & 4)) { a = c[32] | 0; f:do if (a) { i = 552; while (1) { j = c[i >> 2] | 0; if (j >>> 0 <= a >>> 0 ? (x = i + 4 | 0, (j + (c[x >> 2] | 0) | 0) >>> 0 > a >>> 0) : 0) { g = i; a = x; break } i = c[i + 8 >> 2] | 0; if (!i) { V = 172; break f } } j = e - (c[29] | 0) & d; if (j >>> 0 < 2147483647) { i = ga(j | 0) | 0; H = (i | 0) == ((c[g >> 2] | 0) + (c[a >> 2] | 0) | 0); a = H ? j : 0; if (H) { if ((i | 0) != (-1 | 0)) { A = i; t = a; V = 192; break e } } else V = 182; } else a = 0; } else V = 172; while (0); do if ((V | 0) == 172) { g = ga(0) | 0; if ((g | 0) != (-1 | 0)) { a = g; j = c[145] | 0; i = j + -1 | 0; if (!(i & a)) j = k; else j = k - a + (i + a & 0 - j) | 0; a = c[134] | 0; i = a + j | 0; if (j >>> 0 > s >>> 0 & j >>> 0 < 2147483647) { H = c[136] | 0; if ((H | 0) != 0 ? i >>> 0 <= a >>> 0 | i >>> 0 > H >>> 0 : 0) { a = 0; break } i = ga(j | 0) | 0; V = (i | 0) == (g | 0); a = V ? j : 0; if (V) { A = g; t = a; V = 192; break e } else V = 182; } else a = 0; } else a = 0; } while (0); g:do if ((V | 0) == 182) { g = 0 - j | 0; do if (m >>> 0 > j >>> 0 & (j >>> 0 < 2147483647 & (i | 0) != (-1 | 0)) ? (B = c[146] | 0, B = l - j + B & 0 - B, B >>> 0 < 2147483647) : 0) if ((ga(B | 0) | 0) == (-1 | 0)) { ga(g | 0) | 0; break g } else { j = B + j | 0; break } while (0); if ((i | 0) != (-1 | 0)) { A = i; t = j; V = 192; break e } } while (0); c[137] = c[137] | 4; V = 189; } else { a = 0; V = 189; } while (0); if ((((V | 0) == 189 ? k >>> 0 < 2147483647 : 0) ? (D = ga(k | 0) | 0, E = ga(0) | 0, D >>> 0 < E >>> 0 & ((D | 0) != (-1 | 0) & (E | 0) != (-1 | 0))) : 0) ? (F = E - D | 0, G = F >>> 0 > (s + 40 | 0) >>> 0, G) : 0) { A = D; t = G ? F : a; V = 192; } if ((V | 0) == 192) { j = (c[134] | 0) + t | 0; c[134] = j; if (j >>> 0 > (c[135] | 0) >>> 0) c[135] = j; q = c[32] | 0; h:do if (q) { g = 552; do { a = c[g >> 2] | 0; j = g + 4 | 0; i = c[j >> 2] | 0; if ((A | 0) == (a + i | 0)) { I = a; J = j; K = i; L = g; V = 202; break } g = c[g + 8 >> 2] | 0; } while ((g | 0) != 0); if (((V | 0) == 202 ? (c[L + 12 >> 2] & 8 | 0) == 0 : 0) ? q >>> 0 < A >>> 0 & q >>> 0 >= I >>> 0 : 0) { c[J >> 2] = K + t; V = (c[29] | 0) + t | 0; U = q + 8 | 0; U = (U & 7 | 0) == 0 ? 0 : 0 - U & 7; T = V - U | 0; c[32] = q + U; c[29] = T; c[q + (U + 4) >> 2] = T | 1; c[q + (V + 4) >> 2] = 40; c[33] = c[148]; break } j = c[30] | 0; if (A >>> 0 < j >>> 0) { c[30] = A; j = A; } i = A + t | 0; a = 552; while (1) { if ((c[a >> 2] | 0) == (i | 0)) { g = a; i = a; V = 210; break } a = c[a + 8 >> 2] | 0; if (!a) { i = 552; break } } if ((V | 0) == 210) if (!(c[i + 12 >> 2] & 8)) { c[g >> 2] = A; o = i + 4 | 0; c[o >> 2] = (c[o >> 2] | 0) + t; o = A + 8 | 0; o = (o & 7 | 0) == 0 ? 0 : 0 - o & 7; l = A + (t + 8) | 0; l = (l & 7 | 0) == 0 ? 0 : 0 - l & 7; i = A + (l + t) | 0; p = o + s | 0; n = A + p | 0; a = i - (A + o) - s | 0; c[A + (o + 4) >> 2] = s | 3; i:do if ((i | 0) != (q | 0)) { if ((i | 0) == (c[31] | 0)) { V = (c[28] | 0) + a | 0; c[28] = V; c[31] = n; c[A + (p + 4) >> 2] = V | 1; c[A + (V + p) >> 2] = V; break } b = t + 4 | 0; h = c[A + (b + l) >> 2] | 0; if ((h & 3 | 0) == 1) { k = h & -8; e = h >>> 3; j:do if (h >>> 0 >= 256) { d = c[A + ((l | 24) + t) >> 2] | 0; g = c[A + (t + 12 + l) >> 2] | 0; k:do if ((g | 0) == (i | 0)) { f = l | 16; g = A + (b + f) | 0; h = c[g >> 2] | 0; if (!h) { g = A + (f + t) | 0; h = c[g >> 2] | 0; if (!h) { R = 0; break } } while (1) { f = h + 20 | 0; e = c[f >> 2] | 0; if (e) { h = e; g = f; continue } f = h + 16 | 0; e = c[f >> 2] | 0; if (!e) break; else { h = e; g = f; } } if (g >>> 0 < j >>> 0) ea(); else { c[g >> 2] = 0; R = h; break } } else { f = c[A + ((l | 8) + t) >> 2] | 0; do if (f >>> 0 >= j >>> 0) { j = f + 12 | 0; if ((c[j >> 2] | 0) != (i | 0)) break; h = g + 8 | 0; if ((c[h >> 2] | 0) != (i | 0)) break; c[j >> 2] = g; c[h >> 2] = f; R = g; break k } while (0); ea(); } while (0); if (!d) break; j = c[A + (t + 28 + l) >> 2] | 0; h = 408 + (j << 2) | 0; do if ((i | 0) != (c[h >> 2] | 0)) { if (d >>> 0 < (c[30] | 0) >>> 0) ea(); h = d + 16 | 0; if ((c[h >> 2] | 0) == (i | 0)) c[h >> 2] = R; else c[d + 20 >> 2] = R; if (!R) break j } else { c[h >> 2] = R; if (R) break; c[27] = c[27] & ~(1 << j); break j } while (0); j = c[30] | 0; if (R >>> 0 < j >>> 0) ea(); c[R + 24 >> 2] = d; i = l | 16; h = c[A + (i + t) >> 2] | 0; do if (h) if (h >>> 0 < j >>> 0) ea(); else { c[R + 16 >> 2] = h; c[h + 24 >> 2] = R; break } while (0); i = c[A + (b + i) >> 2] | 0; if (!i) break; if (i >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[R + 20 >> 2] = i; c[i + 24 >> 2] = R; break } } else { h = c[A + ((l | 8) + t) >> 2] | 0; g = c[A + (t + 12 + l) >> 2] | 0; f = 144 + (e << 1 << 2) | 0; do if ((h | 0) != (f | 0)) { if (h >>> 0 >= j >>> 0 ? (c[h + 12 >> 2] | 0) == (i | 0) : 0) break; ea(); } while (0); if ((g | 0) == (h | 0)) { c[26] = c[26] & ~(1 << e); break } do if ((g | 0) == (f | 0)) M = g + 8 | 0; else { if (g >>> 0 >= j >>> 0 ? (N = g + 8 | 0, (c[N >> 2] | 0) == (i | 0)) : 0) { M = N; break } ea(); } while (0); c[h + 12 >> 2] = g; c[M >> 2] = h; } while (0); i = A + ((k | l) + t) | 0; a = k + a | 0; } i = i + 4 | 0; c[i >> 2] = c[i >> 2] & -2; c[A + (p + 4) >> 2] = a | 1; c[A + (a + p) >> 2] = a; i = a >>> 3; if (a >>> 0 < 256) { g = i << 1; e = 144 + (g << 2) | 0; f = c[26] | 0; h = 1 << i; do if (!(f & h)) { c[26] = f | h; S = 144 + (g + 2 << 2) | 0; T = e; } else { h = 144 + (g + 2 << 2) | 0; g = c[h >> 2] | 0; if (g >>> 0 >= (c[30] | 0) >>> 0) { S = h; T = g; break } ea(); } while (0); c[S >> 2] = n; c[T + 12 >> 2] = n; c[A + (p + 8) >> 2] = T; c[A + (p + 12) >> 2] = e; break } d = a >>> 8; do if (!d) i = 0; else { if (a >>> 0 > 16777215) { i = 31; break } T = (d + 1048320 | 0) >>> 16 & 8; V = d << T; S = (V + 520192 | 0) >>> 16 & 4; V = V << S; i = (V + 245760 | 0) >>> 16 & 2; i = 14 - (S | T | i) + (V << i >>> 15) | 0; i = a >>> (i + 7 | 0) & 1 | i << 1; } while (0); h = 408 + (i << 2) | 0; c[A + (p + 28) >> 2] = i; c[A + (p + 20) >> 2] = 0; c[A + (p + 16) >> 2] = 0; g = c[27] | 0; f = 1 << i; if (!(g & f)) { c[27] = g | f; c[h >> 2] = n; c[A + (p + 24) >> 2] = h; c[A + (p + 12) >> 2] = n; c[A + (p + 8) >> 2] = n; break } d = c[h >> 2] | 0; l:do if ((c[d + 4 >> 2] & -8 | 0) != (a | 0)) { i = a << ((i | 0) == 31 ? 0 : 25 - (i >>> 1) | 0); while (1) { b = d + 16 + (i >>> 31 << 2) | 0; h = c[b >> 2] | 0; if (!h) break; if ((c[h + 4 >> 2] & -8 | 0) == (a | 0)) { U = h; break l } else { i = i << 1; d = h; } } if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[b >> 2] = n; c[A + (p + 24) >> 2] = d; c[A + (p + 12) >> 2] = n; c[A + (p + 8) >> 2] = n; break i } } else U = d; while (0); d = U + 8 | 0; b = c[d >> 2] | 0; V = c[30] | 0; if (b >>> 0 >= V >>> 0 & U >>> 0 >= V >>> 0) { c[b + 12 >> 2] = n; c[d >> 2] = n; c[A + (p + 8) >> 2] = b; c[A + (p + 12) >> 2] = U; c[A + (p + 24) >> 2] = 0; break } else ea(); } else { V = (c[29] | 0) + a | 0; c[29] = V; c[32] = n; c[A + (p + 4) >> 2] = V | 1; } while (0); g = A + (o | 8) | 0; break d } else i = 552; while (1) { g = c[i >> 2] | 0; if (g >>> 0 <= q >>> 0 ? (h = c[i + 4 >> 2] | 0, f = g + h | 0, f >>> 0 > q >>> 0) : 0) break; i = c[i + 8 >> 2] | 0; } i = g + (h + -39) | 0; i = g + (h + -47 + ((i & 7 | 0) == 0 ? 0 : 0 - i & 7)) | 0; j = q + 16 | 0; i = i >>> 0 < j >>> 0 ? q : i; h = i + 8 | 0; g = A + 8 | 0; g = (g & 7 | 0) == 0 ? 0 : 0 - g & 7; V = t + -40 - g | 0; c[32] = A + g; c[29] = V; c[A + (g + 4) >> 2] = V | 1; c[A + (t + -36) >> 2] = 40; c[33] = c[148]; g = i + 4 | 0; c[g >> 2] = 27; c[h >> 2] = c[138]; c[h + 4 >> 2] = c[139]; c[h + 8 >> 2] = c[140]; c[h + 12 >> 2] = c[141]; c[138] = A; c[139] = t; c[141] = 0; c[140] = h; h = i + 28 | 0; c[h >> 2] = 7; if ((i + 32 | 0) >>> 0 < f >>> 0) do { V = h; h = h + 4 | 0; c[h >> 2] = 7; } while ((V + 8 | 0) >>> 0 < f >>> 0); if ((i | 0) != (q | 0)) { a = i - q | 0; c[g >> 2] = c[g >> 2] & -2; c[q + 4 >> 2] = a | 1; c[i >> 2] = a; f = a >>> 3; if (a >>> 0 < 256) { h = f << 1; i = 144 + (h << 2) | 0; g = c[26] | 0; e = 1 << f; if (g & e) { d = 144 + (h + 2 << 2) | 0; b = c[d >> 2] | 0; if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else { O = d; P = b; } } else { c[26] = g | e; O = 144 + (h + 2 << 2) | 0; P = i; } c[O >> 2] = q; c[P + 12 >> 2] = q; c[q + 8 >> 2] = P; c[q + 12 >> 2] = i; break } d = a >>> 8; if (d) if (a >>> 0 > 16777215) h = 31; else { U = (d + 1048320 | 0) >>> 16 & 8; V = d << U; T = (V + 520192 | 0) >>> 16 & 4; V = V << T; h = (V + 245760 | 0) >>> 16 & 2; h = 14 - (T | U | h) + (V << h >>> 15) | 0; h = a >>> (h + 7 | 0) & 1 | h << 1; } else h = 0; e = 408 + (h << 2) | 0; c[q + 28 >> 2] = h; c[q + 20 >> 2] = 0; c[j >> 2] = 0; d = c[27] | 0; b = 1 << h; if (!(d & b)) { c[27] = d | b; c[e >> 2] = q; c[q + 24 >> 2] = e; c[q + 12 >> 2] = q; c[q + 8 >> 2] = q; break } d = c[e >> 2] | 0; m:do if ((c[d + 4 >> 2] & -8 | 0) != (a | 0)) { h = a << ((h | 0) == 31 ? 0 : 25 - (h >>> 1) | 0); while (1) { b = d + 16 + (h >>> 31 << 2) | 0; e = c[b >> 2] | 0; if (!e) break; if ((c[e + 4 >> 2] & -8 | 0) == (a | 0)) { Q = e; break m } else { h = h << 1; d = e; } } if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[b >> 2] = q; c[q + 24 >> 2] = d; c[q + 12 >> 2] = q; c[q + 8 >> 2] = q; break h } } else Q = d; while (0); d = Q + 8 | 0; b = c[d >> 2] | 0; V = c[30] | 0; if (b >>> 0 >= V >>> 0 & Q >>> 0 >= V >>> 0) { c[b + 12 >> 2] = q; c[d >> 2] = q; c[q + 8 >> 2] = b; c[q + 12 >> 2] = Q; c[q + 24 >> 2] = 0; break } else ea(); } } else { V = c[30] | 0; if ((V | 0) == 0 | A >>> 0 < V >>> 0) c[30] = A; c[138] = A; c[139] = t; c[141] = 0; c[35] = c[144]; c[34] = -1; d = 0; do { V = d << 1; U = 144 + (V << 2) | 0; c[144 + (V + 3 << 2) >> 2] = U; c[144 + (V + 2 << 2) >> 2] = U; d = d + 1 | 0; } while ((d | 0) != 32); V = A + 8 | 0; V = (V & 7 | 0) == 0 ? 0 : 0 - V & 7; U = t + -40 - V | 0; c[32] = A + V; c[29] = U; c[A + (V + 4) >> 2] = U | 1; c[A + (t + -36) >> 2] = 40; c[33] = c[148]; } while (0); b = c[29] | 0; if (b >>> 0 > s >>> 0) { V = b - s | 0; c[29] = V; g = c[32] | 0; c[32] = g + s; c[g + (s + 4) >> 2] = V | 1; c[g + 4 >> 2] = s | 3; g = g + 8 | 0; break } } c[(Le() | 0) >> 2] = 12; g = 0; } else g = 0; } while (0); return g | 0 } function Ke(a) { a = a | 0; var b = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, k = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0; a:do if (a) { f = a + -8 | 0; k = c[30] | 0; b:do if (f >>> 0 >= k >>> 0 ? (e = c[a + -4 >> 2] | 0, d = e & 3, (d | 0) != 1) : 0) { v = e & -8; w = a + (v + -8) | 0; do if (!(e & 1)) { f = c[f >> 2] | 0; if (!d) break a; l = -8 - f | 0; n = a + l | 0; o = f + v | 0; if (n >>> 0 < k >>> 0) break b; if ((n | 0) == (c[31] | 0)) { g = a + (v + -4) | 0; f = c[g >> 2] | 0; if ((f & 3 | 0) != 3) { B = n; g = o; break } c[28] = o; c[g >> 2] = f & -2; c[a + (l + 4) >> 2] = o | 1; c[w >> 2] = o; break a } d = f >>> 3; if (f >>> 0 < 256) { e = c[a + (l + 8) >> 2] | 0; g = c[a + (l + 12) >> 2] | 0; f = 144 + (d << 1 << 2) | 0; do if ((e | 0) != (f | 0)) { if (e >>> 0 >= k >>> 0 ? (c[e + 12 >> 2] | 0) == (n | 0) : 0) break; ea(); } while (0); if ((g | 0) == (e | 0)) { c[26] = c[26] & ~(1 << d); B = n; g = o; break } do if ((g | 0) == (f | 0)) b = g + 8 | 0; else { if (g >>> 0 >= k >>> 0 ? (h = g + 8 | 0, (c[h >> 2] | 0) == (n | 0)) : 0) { b = h; break } ea(); } while (0); c[e + 12 >> 2] = g; c[b >> 2] = e; B = n; g = o; break } h = c[a + (l + 24) >> 2] | 0; f = c[a + (l + 12) >> 2] | 0; do if ((f | 0) == (n | 0)) { e = a + (l + 20) | 0; f = c[e >> 2] | 0; if (!f) { e = a + (l + 16) | 0; f = c[e >> 2] | 0; if (!f) { m = 0; break } } while (1) { d = f + 20 | 0; b = c[d >> 2] | 0; if (b) { f = b; e = d; continue } d = f + 16 | 0; b = c[d >> 2] | 0; if (!b) break; else { f = b; e = d; } } if (e >>> 0 < k >>> 0) ea(); else { c[e >> 2] = 0; m = f; break } } else { e = c[a + (l + 8) >> 2] | 0; if ((e >>> 0 >= k >>> 0 ? (i = e + 12 | 0, (c[i >> 2] | 0) == (n | 0)) : 0) ? (j = f + 8 | 0, (c[j >> 2] | 0) == (n | 0)) : 0) { c[i >> 2] = f; c[j >> 2] = e; m = f; break } ea(); } while (0); if (h) { f = c[a + (l + 28) >> 2] | 0; e = 408 + (f << 2) | 0; if ((n | 0) == (c[e >> 2] | 0)) { c[e >> 2] = m; if (!m) { c[27] = c[27] & ~(1 << f); B = n; g = o; break } } else { if (h >>> 0 < (c[30] | 0) >>> 0) ea(); f = h + 16 | 0; if ((c[f >> 2] | 0) == (n | 0)) c[f >> 2] = m; else c[h + 20 >> 2] = m; if (!m) { B = n; g = o; break } } e = c[30] | 0; if (m >>> 0 < e >>> 0) ea(); c[m + 24 >> 2] = h; f = c[a + (l + 16) >> 2] | 0; do if (f) if (f >>> 0 < e >>> 0) ea(); else { c[m + 16 >> 2] = f; c[f + 24 >> 2] = m; break } while (0); f = c[a + (l + 20) >> 2] | 0; if (f) if (f >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[m + 20 >> 2] = f; c[f + 24 >> 2] = m; B = n; g = o; break } else { B = n; g = o; } } else { B = n; g = o; } } else { B = f; g = v; } while (0); if (B >>> 0 < w >>> 0 ? (p = a + (v + -4) | 0, q = c[p >> 2] | 0, (q & 1 | 0) != 0) : 0) { if (!(q & 2)) { if ((w | 0) == (c[32] | 0)) { A = (c[29] | 0) + g | 0; c[29] = A; c[32] = B; c[B + 4 >> 2] = A | 1; if ((B | 0) != (c[31] | 0)) break a; c[31] = 0; c[28] = 0; break a } if ((w | 0) == (c[31] | 0)) { A = (c[28] | 0) + g | 0; c[28] = A; c[31] = B; c[B + 4 >> 2] = A | 1; c[B + A >> 2] = A; break a } j = (q & -8) + g | 0; d = q >>> 3; do if (q >>> 0 >= 256) { b = c[a + (v + 16) >> 2] | 0; g = c[a + (v | 4) >> 2] | 0; do if ((g | 0) == (w | 0)) { f = a + (v + 12) | 0; g = c[f >> 2] | 0; if (!g) { f = a + (v + 8) | 0; g = c[f >> 2] | 0; if (!g) { x = 0; break } } while (1) { e = g + 20 | 0; d = c[e >> 2] | 0; if (d) { g = d; f = e; continue } e = g + 16 | 0; d = c[e >> 2] | 0; if (!d) break; else { g = d; f = e; } } if (f >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[f >> 2] = 0; x = g; break } } else { f = c[a + v >> 2] | 0; if ((f >>> 0 >= (c[30] | 0) >>> 0 ? (t = f + 12 | 0, (c[t >> 2] | 0) == (w | 0)) : 0) ? (u = g + 8 | 0, (c[u >> 2] | 0) == (w | 0)) : 0) { c[t >> 2] = g; c[u >> 2] = f; x = g; break } ea(); } while (0); if (b) { g = c[a + (v + 20) >> 2] | 0; f = 408 + (g << 2) | 0; if ((w | 0) == (c[f >> 2] | 0)) { c[f >> 2] = x; if (!x) { c[27] = c[27] & ~(1 << g); break } } else { if (b >>> 0 < (c[30] | 0) >>> 0) ea(); g = b + 16 | 0; if ((c[g >> 2] | 0) == (w | 0)) c[g >> 2] = x; else c[b + 20 >> 2] = x; if (!x) break } g = c[30] | 0; if (x >>> 0 < g >>> 0) ea(); c[x + 24 >> 2] = b; f = c[a + (v + 8) >> 2] | 0; do if (f) if (f >>> 0 < g >>> 0) ea(); else { c[x + 16 >> 2] = f; c[f + 24 >> 2] = x; break } while (0); d = c[a + (v + 12) >> 2] | 0; if (d) if (d >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[x + 20 >> 2] = d; c[d + 24 >> 2] = x; break } } } else { e = c[a + v >> 2] | 0; g = c[a + (v | 4) >> 2] | 0; f = 144 + (d << 1 << 2) | 0; do if ((e | 0) != (f | 0)) { if (e >>> 0 >= (c[30] | 0) >>> 0 ? (c[e + 12 >> 2] | 0) == (w | 0) : 0) break; ea(); } while (0); if ((g | 0) == (e | 0)) { c[26] = c[26] & ~(1 << d); break } do if ((g | 0) == (f | 0)) r = g + 8 | 0; else { if (g >>> 0 >= (c[30] | 0) >>> 0 ? (s = g + 8 | 0, (c[s >> 2] | 0) == (w | 0)) : 0) { r = s; break } ea(); } while (0); c[e + 12 >> 2] = g; c[r >> 2] = e; } while (0); c[B + 4 >> 2] = j | 1; c[B + j >> 2] = j; if ((B | 0) == (c[31] | 0)) { c[28] = j; break a } else g = j; } else { c[p >> 2] = q & -2; c[B + 4 >> 2] = g | 1; c[B + g >> 2] = g; } f = g >>> 3; if (g >>> 0 < 256) { e = f << 1; g = 144 + (e << 2) | 0; b = c[26] | 0; d = 1 << f; if (b & d) { d = 144 + (e + 2 << 2) | 0; b = c[d >> 2] | 0; if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else { y = d; z = b; } } else { c[26] = b | d; y = 144 + (e + 2 << 2) | 0; z = g; } c[y >> 2] = B; c[z + 12 >> 2] = B; c[B + 8 >> 2] = z; c[B + 12 >> 2] = g; break a } b = g >>> 8; if (b) if (g >>> 0 > 16777215) f = 31; else { y = (b + 1048320 | 0) >>> 16 & 8; z = b << y; a = (z + 520192 | 0) >>> 16 & 4; z = z << a; f = (z + 245760 | 0) >>> 16 & 2; f = 14 - (a | y | f) + (z << f >>> 15) | 0; f = g >>> (f + 7 | 0) & 1 | f << 1; } else f = 0; d = 408 + (f << 2) | 0; c[B + 28 >> 2] = f; c[B + 20 >> 2] = 0; c[B + 16 >> 2] = 0; b = c[27] | 0; e = 1 << f; c:do if (b & e) { d = c[d >> 2] | 0; d:do if ((c[d + 4 >> 2] & -8 | 0) != (g | 0)) { f = g << ((f | 0) == 31 ? 0 : 25 - (f >>> 1) | 0); while (1) { b = d + 16 + (f >>> 31 << 2) | 0; e = c[b >> 2] | 0; if (!e) break; if ((c[e + 4 >> 2] & -8 | 0) == (g | 0)) { A = e; break d } else { f = f << 1; d = e; } } if (b >>> 0 < (c[30] | 0) >>> 0) ea(); else { c[b >> 2] = B; c[B + 24 >> 2] = d; c[B + 12 >> 2] = B; c[B + 8 >> 2] = B; break c } } else A = d; while (0); b = A + 8 | 0; d = c[b >> 2] | 0; z = c[30] | 0; if (d >>> 0 >= z >>> 0 & A >>> 0 >= z >>> 0) { c[d + 12 >> 2] = B; c[b >> 2] = B; c[B + 8 >> 2] = d; c[B + 12 >> 2] = A; c[B + 24 >> 2] = 0; break } else ea(); } else { c[27] = b | e; c[d >> 2] = B; c[B + 24 >> 2] = d; c[B + 12 >> 2] = B; c[B + 8 >> 2] = B; } while (0); B = (c[34] | 0) + -1 | 0; c[34] = B; if (!B) b = 560; else break a; while (1) { b = c[b >> 2] | 0; if (!b) break; else b = b + 8 | 0; } c[34] = -1; break a } } while (0); ea(); } while (0); return } function Le() { var a = 0; if (!0) a = 600; return a | 0 } function Me() { var a = 0; do if (!(c[144] | 0)) { a = ca(30) | 0; if (!(a + -1 & a)) { c[146] = a; c[145] = a; c[147] = -1; c[148] = -1; c[149] = 0; c[137] = 0; c[144] = (ha(0) | 0) & -16 ^ 1431655768; break } else ea(); } while (0); return } function Ne() { } function Oe(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0; if ((e | 0) >= 4096) return ja(b | 0, d | 0, e | 0) | 0; f = b | 0; if ((b & 3) == (d & 3)) { while (b & 3) { if (!e) return f | 0; a[b >> 0] = a[d >> 0] | 0; b = b + 1 | 0; d = d + 1 | 0; e = e - 1 | 0; } while ((e | 0) >= 4) { c[b >> 2] = c[d >> 2]; b = b + 4 | 0; d = d + 4 | 0; e = e - 4 | 0; } } while ((e | 0) > 0) { a[b >> 0] = a[d >> 0] | 0; b = b + 1 | 0; d = d + 1 | 0; e = e - 1 | 0; } return f | 0 } function Pe(b, c, d) { b = b | 0; c = c | 0; d = d | 0; var e = 0; if ((c | 0) < (b | 0) & (b | 0) < (c + d | 0)) { e = b; c = c + d | 0; b = b + d | 0; while ((d | 0) > 0) { b = b - 1 | 0; c = c - 1 | 0; d = d - 1 | 0; a[b >> 0] = a[c >> 0] | 0; } b = e; } else Oe(b, c, d) | 0; return b | 0 } function Qe(b, d, e) { b = b | 0; d = d | 0; e = e | 0; var f = 0, g = 0, h = 0, i = 0; f = b + e | 0; if ((e | 0) >= 20) { d = d & 255; h = b & 3; i = d | d << 8 | d << 16 | d << 24; g = f & ~3; if (h) { h = b + 4 - h | 0; while ((b | 0) < (h | 0)) { a[b >> 0] = d; b = b + 1 | 0; } } while ((b | 0) < (g | 0)) { c[b >> 2] = i; b = b + 4 | 0; } } while ((b | 0) < (f | 0)) { a[b >> 0] = d; b = b + 1 | 0; } return b - e | 0 } // EMSCRIPTEN_END_FUNCS return { _free: Ke, ___errno_location: Le, _memmove: Pe, _Decoder_Interface_Decode: xa, _Decoder_Interface_exit: wa, _Encoder_Interface_init: ya, _memset: Qe, _malloc: Je, _memcpy: Oe, _Encoder_Interface_exit: za, _Decoder_Interface_init: va, _Encoder_Interface_Encode: Aa, runPostSets: Ne, stackAlloc: ma, stackSave: na, stackRestore: oa, establishStackSpace: pa, setThrew: qa, setTempRet0: ta, getTempRet0: ua } }) // EMSCRIPTEN_END_ASM (Module.asmGlobalArg, Module.asmLibraryArg, buffer); Module["_Encoder_Interface_Encode"] = asm["_Encoder_Interface_Encode"]; var _free = Module["_free"] = asm["_free"]; Module["runPostSets"] = asm["runPostSets"]; var _memmove = Module["_memmove"] = asm["_memmove"]; Module["_Decoder_Interface_exit"] = asm["_Decoder_Interface_exit"]; Module["_Encoder_Interface_init"] = asm["_Encoder_Interface_init"]; var _memset = Module["_memset"] = asm["_memset"]; var _malloc = Module["_malloc"] = asm["_malloc"]; var _memcpy = Module["_memcpy"] = asm["_memcpy"]; Module["_Decoder_Interface_Decode"] = asm["_Decoder_Interface_Decode"]; Module["_Decoder_Interface_init"] = asm["_Decoder_Interface_init"]; Module["_Encoder_Interface_exit"] = asm["_Encoder_Interface_exit"]; Module["___errno_location"] = asm["___errno_location"]; Runtime.stackAlloc = asm["stackAlloc"]; Runtime.stackSave = asm["stackSave"]; Runtime.stackRestore = asm["stackRestore"]; Runtime.establishStackSpace = asm["establishStackSpace"]; Runtime.setTempRet0 = asm["setTempRet0"]; Runtime.getTempRet0 = asm["getTempRet0"]; function ExitStatus(status) { this.name = "ExitStatus"; this.message = "Program terminated with exit(" + status + ")"; this.status = status; } ExitStatus.prototype = new Error; ExitStatus.prototype.constructor = ExitStatus; var initialStackTop; dependenciesFulfilled = function runCaller() { if (!Module["calledRun"]) run(); if (!Module["calledRun"]) dependenciesFulfilled = runCaller; }; Module["callMain"] = Module.callMain = function callMain(args) { assert(runDependencies == 0, "cannot call main when async dependencies remain! (listen on __ATMAIN__)"); assert(__ATPRERUN__.length == 0, "cannot call main when preRun functions remain to be called"); args = args || []; ensureInitRuntime(); var argc = args.length + 1; function pad() { for (var i = 0; i < 4 - 1; i++) { argv.push(0); } } var argv = [allocate(intArrayFromString(Module["thisProgram"]), "i8", ALLOC_NORMAL)]; pad(); for (var i = 0; i < argc - 1; i = i + 1) { argv.push(allocate(intArrayFromString(args[i]), "i8", ALLOC_NORMAL)); pad(); } argv.push(0); argv = allocate(argv, "i32", ALLOC_NORMAL); initialStackTop = Runtime.stackSave(); try { var ret = Module["_main"](argc, argv, 0); exit(ret, true); } catch (e) { if (e instanceof ExitStatus) { return } else if (e == "SimulateInfiniteLoop") { Module["noExitRuntime"] = true; Runtime.stackRestore(initialStackTop); return } else { if (e && typeof e === "object" && e.stack) Module.printErr("exception thrown: " + [e, e.stack]); throw e } } finally { } }; function run(args) { args = args || Module["arguments"]; if (runDependencies > 0) { return } preRun(); if (runDependencies > 0) return; if (Module["calledRun"]) return; function doRun() { if (Module["calledRun"]) return; Module["calledRun"] = true; if (ABORT) return; ensureInitRuntime(); preMain(); if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); if (Module["_main"] && shouldRunNow) Module["callMain"](args); postRun(); } if (Module["setStatus"]) { Module["setStatus"]("Running..."); setTimeout((function () { setTimeout((function () { Module["setStatus"](""); }), 1); doRun(); }), 1); } else { doRun(); } } Module["run"] = Module.run = run; function exit(status, implicit) { if (implicit && Module["noExitRuntime"]) { return } if (Module["noExitRuntime"]) ; else { ABORT = true; STACKTOP = initialStackTop; exitRuntime(); if (Module["onExit"]) Module["onExit"](status); } if (ENVIRONMENT_IS_SHELL && typeof quit === "function") { quit(status); } throw new ExitStatus(status) } Module["exit"] = Module.exit = exit; var abortDecorators = []; function abort(what) { if (what !== undefined) { Module.print(what); Module.printErr(what); what = JSON.stringify(what); } else { what = ""; } ABORT = true; var extra = "\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."; var output = "abort(" + what + ") at " + stackTrace() + extra; if (abortDecorators) { abortDecorators.forEach((function (decorator) { output = decorator(output, what); })); } throw output } Module["abort"] = Module.abort = abort; if (Module["preInit"]) { if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; while (Module["preInit"].length > 0) { Module["preInit"].pop()(); } } var shouldRunNow = true; if (Module["noInitialRun"]) { shouldRunNow = false; } Module["noExitRuntime"] = true; run(); return AMR; })(); self.onmessage = function (e) { switch(e.data.command){ case 'encode': encode(e.data.samples, e.data.sampleRate); break; case 'decode': decode(e.data.buffer); break; } }; function encode(samples, sampleRate) { sampleRate = sampleRate || 8000; self.postMessage({ command: 'encode', amr: AMR.encode(samples, sampleRate, 7) }); } function decode(u8Array) { self.postMessage({ command: 'decode', amr: AMR.decode(u8Array) }); } }; var amrWorkerStr = amrnb.toString().replace(/^\s*function.*?\(\)\s*{/, '').replace(/}\s*$/, ''); var amrWorkerURLObj = (window.URL || window.webkitURL).createObjectURL(new Blob([amrWorkerStr], { type: "text/javascript" })); var BenzAMRRecorder = /*#__PURE__*/ function () { /** * @type {boolean} * @private */ /** * @type {boolean} * @private */ /** * @type {RecorderControl | null} * @private */ /** * @type {Float32Array | null} * @private */ /** * @type {Uint8Array | null} * @private */ /** * @type {Blob | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {Function | null} * @private */ /** * @type {boolean} * @private */ /** * @type {boolean} * @private */ /** * @type {number} * @private */ /** * @type {number} * @private */ function BenzAMRRecorder() { var _this = this; _classCallCheck(this, BenzAMRRecorder); this._isInit = false; this._isInitRecorder = false; this._recorderControl = new RecorderControl(); this._samples = new Float32Array(0); this._rawData = new Uint8Array(0); this._blob = null; this._onEnded = null; this._onAutoEnded = null; this._onPlay = null; this._onPause = null; this._onResume = null; this._onStop = null; this._onStartRecord = null; this._onCancelRecord = null; this._onFinishRecord = null; this._isPlaying = false; this._isPaused = false; this._startCtxTime = 0.0; this._pauseTime = 0.0; this._playEmpty = function () { _this._recorderControl.playPcm(new Float32Array(10), 24000); }; this._onEndCallback = function () { if (_this._isPlaying) { _this._isPlaying = false; if (_this._onStop) { _this._onStop(); } if (_this._onAutoEnded) { _this._onAutoEnded(); } } if (!_this._isPaused) { if (_this._onEnded) { _this._onEnded(); } } }; this._runAMRWorker = function (msg, resolve) { var amrWorker = new Worker(amrWorkerURLObj); amrWorker.postMessage(msg); amrWorker.onmessage = function (e) { resolve(e.data.amr); amrWorker.terminate(); }; }; } /** * 是否已经初始化 * @return {boolean} */ _createClass(BenzAMRRecorder, [{ key: "isInit", value: function isInit() { return this._isInit; } /** * 使用浮点数据初始化 * @param {Float32Array} array * @return {Promise} */ }, { key: "initWithArrayBuffer", value: function initWithArrayBuffer(array) { var _this2 = this; if (this._isInit || this._isInitRecorder) { BenzAMRRecorder.throwAlreadyInitialized(); } this._playEmpty(); return new Promise(function (resolve, reject) { var u8Array = new Uint8Array(array); _this2.decodeAMRAsync(u8Array).then(function (samples) { _this2._samples = samples; _this2._isInit = true; if (!_this2._samples) { RecorderControl.decodeAudioArrayBufferByContext(array).then(function (data) { _this2._isInit = true; return _this2.encodeAMRAsync(data, RecorderControl.getCtxSampleRate()); }).then(function (rawData) { _this2._rawData = rawData; _this2._blob = BenzAMRRecorder.rawAMRData2Blob(rawData); return _this2.decodeAMRAsync(rawData); }).then(function (sample) { _this2._samples = sample; resolve(); }).catch(function () { reject(new Error('Failed to decode.')); }); } else { _this2._rawData = u8Array; resolve(); } }); }); } /** * 使用 Blob 对象初始化( <input type="file">) * @param {Blob} blob * @return {Promise} */ }, { key: "initWithBlob", value: function initWithBlob(blob) { var _this3 = this; if (this._isInit || this._isInitRecorder) { BenzAMRRecorder.throwAlreadyInitialized(); } this._playEmpty(); this._blob = blob; var p = new Promise(function (resolve) { var reader = new FileReader(); reader.onload = function (e) { resolve(e.target.result); }; reader.readAsArrayBuffer(blob); }); return p.then(function (data) { return _this3.initWithArrayBuffer(data); }); } /** * 使用 url 初始化 * @param {string} url * @return {Promise} */ }, { key: "initWithUrl", value: function initWithUrl(url) { var _this4 = this; if (this._isInit || this._isInitRecorder) { BenzAMRRecorder.throwAlreadyInitialized(); } this._playEmpty(); var p = new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'arraybuffer'; xhr.onload = function () { resolve(this.response); }; xhr.onerror = function () { reject(new Error('Failed to fetch ' + url)); }; xhr.send(); }); return p.then(function (array) { return _this4.initWithArrayBuffer(array); }); } /** * 初始化录音 * @return {Promise} */ }, { key: "initWithRecord", value: function initWithRecord() { var _this5 = this; if (this._isInit || this._isInitRecorder) { BenzAMRRecorder.throwAlreadyInitialized(); } this._playEmpty(); return new Promise(function (resolve, reject) { _this5._recorderControl.initRecorder().then(function () { _this5._isInitRecorder = true; resolve(); }).catch(function (e) { reject(e); }); }); } /** * init 之前先播放一个空音频。 * 因为有些环境(如iOS)播放首个音频时禁止自动、异步播放, * 播放空音频防止加载后立即播放的功能失效。 * 但即使如此,initWith* 仍然须放入一个用户事件中 * @private */ }, { key: "on", value: function on(action, fn) { if (typeof fn === 'function' || fn === null) { switch (action) { case 'play': this._onPlay = fn; break; case 'stop': this._onStop = fn; break; case 'pause': this._onPause = fn; break; case 'resume': this._onResume = fn; break; case 'ended': this._onEnded = fn; break; case 'autoEnded': this._onAutoEnded = fn; break; case 'startRecord': this._onStartRecord = fn; break; case 'cancelRecord': this._onCancelRecord = fn; break; case 'finishRecord': this._onFinishRecord = fn; break; case '*': case 'all': this._onEnded = fn; this._onAutoEnded = fn; this._onPlay = fn; this._onPause = fn; this._onResume = fn; this._onStop = fn; this._onStartRecord = fn; this._onCancelRecord = fn; this._onFinishRecord = fn; break; } } } }, { key: "off", value: function off(action) { this.on(action, null); } /** * 播放事件 * @param {Function | null} fn */ }, { key: "onPlay", value: function onPlay(fn) { this.on('play', fn); } /** * 停止事件(包括播放结束) * @param {Function | null} fn */ }, { key: "onStop", value: function onStop(fn) { this.on('stop', fn); } /** * 暂停事件 * @param {Function | null} fn */ }, { key: "onPause", value: function onPause(fn) { this.on('pause', fn); } /** * 继续播放事件 * @param {Function | null} fn */ }, { key: "onResume", value: function onResume(fn) { this.on('resume', fn); } /** * 播放结束事件 * @param {Function | null} fn */ }, { key: "onEnded", value: function onEnded(fn) { this.on('ended', fn); } /** * 播放完毕自动结束事件 * @param {Function | null} fn */ }, { key: "onAutoEnded", value: function onAutoEnded(fn) { this.on('autoEnded', fn); } /** * 开始录音事件 * @param {Function | null} fn */ }, { key: "onStartRecord", value: function onStartRecord(fn) { this.on('startRecord', fn); } /** * 结束录音事件 * @param {Function | null} fn */ }, { key: "onFinishRecord", value: function onFinishRecord(fn) { this.on('finishRecord', fn); } /** * 放弃录音事件 * @param {Function | null} fn */ }, { key: "onCancelRecord", value: function onCancelRecord(fn) { this.on('cancelRecord', fn); } }, { key: "play", /** * 播放(重新开始,无视暂停状态) * @param {number|string?} startTime 可指定开始位置 */ value: function play(startTime) { var _startTime = startTime && startTime < this.getDuration() ? parseFloat(startTime) : 0; if (!this._isInit) { throw new Error('Please init AMR first.'); } if (this._onPlay) { this._onPlay(); } this._isPlaying = true; this._isPaused = false; this._startCtxTime = RecorderControl.getCtxTime() - _startTime; this._recorderControl.playPcm(this._samples, this._isInitRecorder ? RecorderControl.getCtxSampleRate() : 8000, this._onEndCallback.bind(this), _startTime); } /** * 停止 */ }, { key: "stop", value: function stop() { this._recorderControl.stopPcm(); this._isPlaying = false; this._isPaused = false; if (this._onStop) { this._onStop(); } } /** * 暂停 */ }, { key: "pause", value: function pause() { if (!this._isPlaying) { return; } this._isPlaying = false; this._isPaused = true; this._pauseTime = RecorderControl.getCtxTime() - this._startCtxTime; this._recorderControl.stopPcm(); if (this._onPause) { this._onPause(); } } /** * 从暂停处继续 */ }, { key: "resume", value: function resume() { if (!this._isPaused) { return; } this._isPlaying = true; this._isPaused = false; this._startCtxTime = RecorderControl.getCtxTime() - this._pauseTime; this._recorderControl.playPcm(this._samples, this._isInitRecorder ? RecorderControl.getCtxSampleRate() : 8000, this._onEndCallback.bind(this), this._pauseTime); if (this._onResume) { this._onResume(); } } /** * 整合 play() 和 resume(),若在暂停状态则继续,否则从头播放 */ }, { key: "playOrResume", value: function playOrResume() { if (this._isPaused) { this.resume(); } else { this.play(); } } /** * 整合 resume() 和 pause() */ }, { key: "pauseOrResume", value: function pauseOrResume() { if (this._isPaused) { this.resume(); } else { this.pause(); } } /** * 整合 play() 和 resume() 和 pause() */ }, { key: "playOrPauseOrResume", value: function playOrPauseOrResume() { if (this._isPaused) { this.resume(); } else if (this._isPlaying) { this.pause(); } else { this.play(); } } /** * 跳转到音频指定位置,不改变播放状态 * @param {number|string} time 指定位置(秒,浮点数) */ }, { key: "setPosition", value: function setPosition(time) { var _time = parseFloat(time); if (_time > this.getDuration()) { this.stop(); } else if (this._isPaused) { this._pauseTime = _time; } else if (this._isPlaying) { this._recorderControl.stopPcmSilently(); this._startCtxTime = RecorderControl.getCtxTime() - _time; this._recorderControl.playPcm(this._samples, this._isInitRecorder ? RecorderControl.getCtxSampleRate() : 8000, this._onEndCallback.bind(this), _time); } else { this.play(_time); } } /** * 获取当前播放位置(秒) * @return {Number} 位置,秒,浮点数 */ }, { key: "getCurrentPosition", value: function getCurrentPosition() { if (this._isPaused) { return this._pauseTime; } else if (this._isPlaying) { return RecorderControl.getCtxTime() - this._startCtxTime; } return 0; } /** * 是否正在播放 * @return {boolean} */ }, { key: "isPlaying", value: function isPlaying() { return this._isPlaying; } /** * 是否暂停中 * @return {boolean} */ }, { key: "isPaused", value: function isPaused() { return this._isPaused; } /** * 开始录音 */ }, { key: "startRecord", value: function startRecord() { this._recorderControl.startRecord(); if (this._onStartRecord) { this._onStartRecord(); } } /** * 结束录音,并把录制的音频转换成 AMR * @return {Promise} */ }, { key: "finishRecord", value: function finishRecord() { var _this6 = this; return new Promise(function (resolve) { _this6._recorderControl.stopRecord(); _this6._recorderControl.generateRecordSamples().then(function (samples) { _this6._samples = samples; return _this6.encodeAMRAsync(samples, RecorderControl.getCtxSampleRate()); }).then(function (rawData) { _this6._rawData = rawData; _this6._blob = BenzAMRRecorder.rawAMRData2Blob(_this6._rawData); _this6._isInit = true; if (_this6._onFinishRecord) { _this6._onFinishRecord(); } _this6._recorderControl.releaseRecord(); resolve(); }); }); } /** * 放弃录音 */ }, { key: "cancelRecord", value: function cancelRecord() { this._recorderControl.stopRecord(); this._recorderControl.releaseRecord(); if (this._onCancelRecord) { this._onCancelRecord(); } } /** * 是否正在录音 * @return {boolean} */ }, { key: "isRecording", value: function isRecording() { return this._recorderControl.isRecording(); } /** * 获取音频的时间长度(单位:秒) * @return {number} */ }, { key: "getDuration", value: function getDuration() { var rate = this._isInitRecorder ? RecorderControl.getCtxSampleRate() : 8000; return this._samples.length / rate; } /** * 获取 AMR 文件的 Blob 对象 * @returns {Blob|null} */ }, { key: "getBlob", value: function getBlob() { return this._blob; } /** * 注销,清理内部存储 */ }, { key: "destroy", value: function destroy() { this._recorderControl.stopPcmSilently(); this._recorderControl.stopRecord(); this._recorderControl.releaseRecord(); this.off('*'); this._recorderControl = null; this._samples = null; this._rawData = null; this._blob = null; } /* static encodeAMR(samples, sampleRate) { sampleRate = sampleRate || 8000; return AMR.encode(samples, sampleRate, 7); } */ }, { key: "encodeAMRAsync", value: function encodeAMRAsync(samples, sampleRate) { var _this7 = this; return new Promise(function (resolve) { _this7._runAMRWorker({ command: 'encode', samples: samples, sampleRate: sampleRate }, resolve); }); } }, { key: "decodeAMRAsync", value: function decodeAMRAsync(u8Array) { var _this8 = this; return new Promise(function (resolve) { _this8._runAMRWorker({ command: 'decode', buffer: u8Array }, resolve); }); } }], [{ key: "rawAMRData2Blob", value: function rawAMRData2Blob(data) { return new Blob([data.buffer], { type: 'audio/amr' }); } }, { key: "throwAlreadyInitialized", value: function throwAlreadyInitialized() { throw new Error('AMR has been initialized. For a new AMR, please generate a new BenzAMRRecorder().'); } /** * 判断浏览器是否支持播放 * @return {boolean} */ }, { key: "isPlaySupported", value: function isPlaySupported() { return RecorderControl.isPlaySupported(); } /** * 判断浏览器是否支持录音 * @return {boolean} */ }, { key: "isRecordSupported", value: function isRecordSupported() { return RecorderControl.isRecordSupported(); } }]); return BenzAMRRecorder; }(); return BenzAMRRecorder; })); //# sourceMappingURL=BenzAMRRecorder.js.map
咩咩咩