tildefriends/deps/perfetto/traceconv_bundle.js.map

1 line
497 KiB
Plaintext

{"version":3,"file":"traceconv_bundle.js","sources":["../../node_modules/tslib/tslib.js","../../../out/ui/src/base/deferred.ts","../../../out/ui/src/gen/perfetto_version.ts","../../../out/ui/src/base/logging.ts","../../../out/ui/src/common/conversion_jobs.ts","../../../out/ui/ui/tsc/gen/trace_to_text.js","../../../out/ui/src/traceconv/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// tslint:disable:no-any\n\n/**\n * Promise wrapper with exposed resolve and reject callbacks.\n */\nexport interface Deferred<T> extends Promise<T> {\n readonly resolve: (value?: T|PromiseLike<T>) => void;\n readonly reject: (reason?: any) => void;\n}\n\n/**\n * Create a promise with exposed resolve and reject callbacks.\n */\nexport function defer<T>(): Deferred<T> {\n let resolve = null as any;\n let reject = null as any;\n const p = new Promise((res, rej) => [resolve, reject] = [res, rej]);\n return Object.assign(p, {resolve, reject}) as any;\n}\n","export const VERSION = \"v23.0-d7b55ea62\";\nexport const SCM_REVISION = \"d7b55ea623d1106cb4e1961a4180caf1280ec6ab\";","// Copyright (C) 2018 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport * as version from '../gen/perfetto_version';\n\nexport type ErrorHandler = (err: string) => void;\n\nlet errorHandler: ErrorHandler = (_: string) => {};\n\nexport function assertExists<A>(value: A | null | undefined): A {\n if (value === null || value === undefined) {\n throw new Error('Value doesn\\'t exist');\n }\n return value;\n}\n\nexport function assertTrue(value: boolean, optMsg?: string) {\n if (value !== true) {\n throw new Error(optMsg ? optMsg : 'Failed assertion');\n }\n}\n\nexport function assertFalse(value: boolean, optMsg?: string) {\n assertTrue(!value, optMsg);\n}\n\nexport function setErrorHandler(handler: ErrorHandler) {\n errorHandler = handler;\n}\n\nexport function reportError(err: ErrorEvent|PromiseRejectionEvent|{}) {\n let errLog = '';\n let errorObj = undefined;\n\n if (err instanceof ErrorEvent) {\n errLog = err.message;\n errorObj = err.error;\n } else if (err instanceof PromiseRejectionEvent) {\n errLog = `${err.reason}`;\n errorObj = err.reason;\n } else {\n errLog = `${err}`;\n }\n if (errorObj !== undefined && errorObj !== null) {\n const errStack = (errorObj as {stack?: string}).stack;\n errLog += '\\n';\n errLog += errStack !== undefined ? errStack : JSON.stringify(errorObj);\n }\n errLog += '\\n\\n';\n errLog += `${version.VERSION} ${version.SCM_REVISION}\\n`;\n errLog += `UA: ${navigator.userAgent}\\n`;\n\n console.error(errLog, err);\n errorHandler(errLog);\n}\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport enum ConversionJobStatus {\n InProgress = 'InProgress',\n NotRunning = 'NotRunning',\n}\n\nexport type ConversionJobName = 'convert_systrace'|'convert_json'|\n 'open_in_legacy'|'convert_pprof'|'create_permalink';\n\nexport interface ConversionJobStatusUpdate {\n jobName: ConversionJobName;\n jobStatus: ConversionJobStatus;\n}\n","\nvar trace_to_text_wasm = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(trace_to_text_wasm) {\n trace_to_text_wasm = trace_to_text_wasm || {};\n\nvar Module = typeof trace_to_text_wasm !== \"undefined\" ? trace_to_text_wasm : {};\n\nvar readyPromiseResolve, readyPromiseReject;\n\nModule[\"ready\"] = new Promise(function(resolve, reject) {\n readyPromiseResolve = resolve;\n readyPromiseReject = reject;\n});\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_main\")) {\n Object.defineProperty(Module[\"ready\"], \"_main\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_main\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_emscripten_stack_get_end\")) {\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_get_end\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_get_end\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_emscripten_stack_get_free\")) {\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_get_free\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_get_free\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_emscripten_stack_init\")) {\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_init\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_emscripten_stack_init\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_stackSave\")) {\n Object.defineProperty(Module[\"ready\"], \"_stackSave\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_stackSave\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_stackRestore\")) {\n Object.defineProperty(Module[\"ready\"], \"_stackRestore\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_stackRestore\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_stackAlloc\")) {\n Object.defineProperty(Module[\"ready\"], \"_stackAlloc\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_stackAlloc\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"___wasm_call_ctors\")) {\n Object.defineProperty(Module[\"ready\"], \"___wasm_call_ctors\", {\n configurable: true,\n get: function() {\n abort(\"You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"___wasm_call_ctors\", {\n configurable: true,\n set: function() {\n abort(\"You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_fflush\")) {\n Object.defineProperty(Module[\"ready\"], \"_fflush\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_fflush\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"___errno_location\")) {\n Object.defineProperty(Module[\"ready\"], \"___errno_location\", {\n configurable: true,\n get: function() {\n abort(\"You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"___errno_location\", {\n configurable: true,\n set: function() {\n abort(\"You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_malloc\")) {\n Object.defineProperty(Module[\"ready\"], \"_malloc\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_malloc\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_free\")) {\n Object.defineProperty(Module[\"ready\"], \"_free\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_free\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_memalign\")) {\n Object.defineProperty(Module[\"ready\"], \"_memalign\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_memalign\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_memset\")) {\n Object.defineProperty(Module[\"ready\"], \"_memset\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _memset on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_memset\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _memset on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"__get_tzname\")) {\n Object.defineProperty(Module[\"ready\"], \"__get_tzname\", {\n configurable: true,\n get: function() {\n abort(\"You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"__get_tzname\", {\n configurable: true,\n set: function() {\n abort(\"You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"__get_daylight\")) {\n Object.defineProperty(Module[\"ready\"], \"__get_daylight\", {\n configurable: true,\n get: function() {\n abort(\"You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"__get_daylight\", {\n configurable: true,\n set: function() {\n abort(\"You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"__get_timezone\")) {\n Object.defineProperty(Module[\"ready\"], \"__get_timezone\", {\n configurable: true,\n get: function() {\n abort(\"You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"__get_timezone\", {\n configurable: true,\n set: function() {\n abort(\"You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_emscripten_main_thread_process_queued_calls\")) {\n Object.defineProperty(Module[\"ready\"], \"_emscripten_main_thread_process_queued_calls\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_emscripten_main_thread_process_queued_calls\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"_usleep\")) {\n Object.defineProperty(Module[\"ready\"], \"_usleep\", {\n configurable: true,\n get: function() {\n abort(\"You are getting _usleep on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"_usleep\", {\n configurable: true,\n set: function() {\n abort(\"You are setting _usleep on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nif (!Object.getOwnPropertyDescriptor(Module[\"ready\"], \"onRuntimeInitialized\")) {\n Object.defineProperty(Module[\"ready\"], \"onRuntimeInitialized\", {\n configurable: true,\n get: function() {\n abort(\"You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n Object.defineProperty(Module[\"ready\"], \"onRuntimeInitialized\", {\n configurable: true,\n set: function() {\n abort(\"You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js\");\n }\n });\n}\n\nvar moduleOverrides = {};\n\nvar key;\n\nfor (key in Module) {\n if (Module.hasOwnProperty(key)) {\n moduleOverrides[key] = Module[key];\n }\n}\n\nvar arguments_ = [];\n\nvar thisProgram = \"./this.program\";\n\nvar quit_ = function(status, toThrow) {\n throw toThrow;\n};\n\nvar ENVIRONMENT_IS_WEB = false;\n\nvar ENVIRONMENT_IS_WORKER = false;\n\nvar ENVIRONMENT_IS_NODE = false;\n\nvar ENVIRONMENT_IS_SHELL = false;\n\nENVIRONMENT_IS_WEB = typeof window === \"object\";\n\nENVIRONMENT_IS_WORKER = typeof importScripts === \"function\";\n\nENVIRONMENT_IS_NODE = typeof process === \"object\" && typeof process.versions === \"object\" && typeof process.versions.node === \"string\";\n\nENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\n\nif (Module[\"ENVIRONMENT\"]) {\n throw new Error(\"Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)\");\n}\n\nvar scriptDirectory = \"\";\n\nfunction locateFile(path) {\n if (Module[\"locateFile\"]) {\n return Module[\"locateFile\"](path, scriptDirectory);\n }\n return scriptDirectory + path;\n}\n\nvar read_, readAsync, readBinary, setWindowTitle;\n\nvar nodeFS;\n\nvar nodePath;\n\nif (ENVIRONMENT_IS_NODE) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = require(\"path\").dirname(scriptDirectory) + \"/\";\n } else {\n scriptDirectory = __dirname + \"/\";\n }\n read_ = function shell_read(filename, binary) {\n if (!nodeFS) nodeFS = require(\"fs\");\n if (!nodePath) nodePath = require(\"path\");\n filename = nodePath[\"normalize\"](filename);\n return nodeFS[\"readFileSync\"](filename, binary ? null : \"utf8\");\n };\n readBinary = function readBinary(filename) {\n var ret = read_(filename, true);\n if (!ret.buffer) {\n ret = new Uint8Array(ret);\n }\n assert(ret.buffer);\n return ret;\n };\n if (process[\"argv\"].length > 1) {\n thisProgram = process[\"argv\"][1].replace(/\\\\/g, \"/\");\n }\n arguments_ = process[\"argv\"].slice(2);\n process[\"on\"](\"uncaughtException\", function(ex) {\n if (!(ex instanceof ExitStatus)) {\n throw ex;\n }\n });\n process[\"on\"](\"unhandledRejection\", abort);\n quit_ = function(status) {\n process[\"exit\"](status);\n };\n Module[\"inspect\"] = function() {\n return \"[Emscripten Module object]\";\n };\n} else if (ENVIRONMENT_IS_SHELL) {\n if (typeof read != \"undefined\") {\n read_ = function shell_read(f) {\n return read(f);\n };\n }\n readBinary = function readBinary(f) {\n var data;\n if (typeof readbuffer === \"function\") {\n return new Uint8Array(readbuffer(f));\n }\n data = read(f, \"binary\");\n assert(typeof data === \"object\");\n return data;\n };\n if (typeof scriptArgs != \"undefined\") {\n arguments_ = scriptArgs;\n } else if (typeof arguments != \"undefined\") {\n arguments_ = arguments;\n }\n if (typeof quit === \"function\") {\n quit_ = function(status) {\n quit(status);\n };\n }\n if (typeof print !== \"undefined\") {\n if (typeof console === \"undefined\") console = {};\n console.log = print;\n console.warn = console.error = typeof printErr !== \"undefined\" ? printErr : print;\n }\n} else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {\n scriptDirectory = self.location.href;\n } else if (typeof document !== \"undefined\" && document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n if (_scriptDir) {\n scriptDirectory = _scriptDir;\n }\n if (scriptDirectory.indexOf(\"blob:\") !== 0) {\n scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf(\"/\") + 1);\n } else {\n scriptDirectory = \"\";\n }\n {\n read_ = function(url) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.send(null);\n return xhr.responseText;\n };\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = function(url) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n readAsync = function(url, onload, onerror) {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = function() {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n onload(xhr.response);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n }\n setWindowTitle = function(title) {\n document.title = title;\n };\n} else {\n throw new Error(\"environment detection error\");\n}\n\nvar out = Module[\"print\"] || console.log.bind(console);\n\nvar err = Module[\"printErr\"] || console.warn.bind(console);\n\nfor (key in moduleOverrides) {\n if (moduleOverrides.hasOwnProperty(key)) {\n Module[key] = moduleOverrides[key];\n }\n}\n\nmoduleOverrides = null;\n\nif (Module[\"arguments\"]) arguments_ = Module[\"arguments\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"arguments\")) Object.defineProperty(Module, \"arguments\", {\n configurable: true,\n get: function() {\n abort(\"Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (Module[\"thisProgram\"]) thisProgram = Module[\"thisProgram\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"thisProgram\")) Object.defineProperty(Module, \"thisProgram\", {\n configurable: true,\n get: function() {\n abort(\"Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (Module[\"quit\"]) quit_ = Module[\"quit\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"quit\")) Object.defineProperty(Module, \"quit\", {\n configurable: true,\n get: function() {\n abort(\"Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nassert(typeof Module[\"memoryInitializerPrefixURL\"] === \"undefined\", \"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead\");\n\nassert(typeof Module[\"pthreadMainPrefixURL\"] === \"undefined\", \"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead\");\n\nassert(typeof Module[\"cdInitializerPrefixURL\"] === \"undefined\", \"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead\");\n\nassert(typeof Module[\"filePackagePrefixURL\"] === \"undefined\", \"Module.filePackagePrefixURL option was removed, use Module.locateFile instead\");\n\nassert(typeof Module[\"read\"] === \"undefined\", \"Module.read option was removed (modify read_ in JS)\");\n\nassert(typeof Module[\"readAsync\"] === \"undefined\", \"Module.readAsync option was removed (modify readAsync in JS)\");\n\nassert(typeof Module[\"readBinary\"] === \"undefined\", \"Module.readBinary option was removed (modify readBinary in JS)\");\n\nassert(typeof Module[\"setWindowTitle\"] === \"undefined\", \"Module.setWindowTitle option was removed (modify setWindowTitle in JS)\");\n\nassert(typeof Module[\"TOTAL_MEMORY\"] === \"undefined\", \"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY\");\n\nif (!Object.getOwnPropertyDescriptor(Module, \"read\")) Object.defineProperty(Module, \"read\", {\n configurable: true,\n get: function() {\n abort(\"Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readAsync\")) Object.defineProperty(Module, \"readAsync\", {\n configurable: true,\n get: function() {\n abort(\"Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readBinary\")) Object.defineProperty(Module, \"readBinary\", {\n configurable: true,\n get: function() {\n abort(\"Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setWindowTitle\")) Object.defineProperty(Module, \"setWindowTitle\", {\n configurable: true,\n get: function() {\n abort(\"Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nvar STACK_ALIGN = 16;\n\nfunction alignMemory(size, factor) {\n if (!factor) factor = STACK_ALIGN;\n return Math.ceil(size / factor) * factor;\n}\n\nfunction warnOnce(text) {\n if (!warnOnce.shown) warnOnce.shown = {};\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n}\n\nfunction convertJsFunctionToWasm(func, sig) {\n if (typeof WebAssembly.Function === \"function\") {\n var typeNames = {\n \"i\": \"i32\",\n \"j\": \"i64\",\n \"f\": \"f32\",\n \"d\": \"f64\"\n };\n var type = {\n parameters: [],\n results: sig[0] == \"v\" ? [] : [ typeNames[sig[0]] ]\n };\n for (var i = 1; i < sig.length; ++i) {\n type.parameters.push(typeNames[sig[i]]);\n }\n return new WebAssembly.Function(type, func);\n }\n var typeSection = [ 1, 0, 1, 96 ];\n var sigRet = sig.slice(0, 1);\n var sigParam = sig.slice(1);\n var typeCodes = {\n \"i\": 127,\n \"j\": 126,\n \"f\": 125,\n \"d\": 124\n };\n typeSection.push(sigParam.length);\n for (var i = 0; i < sigParam.length; ++i) {\n typeSection.push(typeCodes[sigParam[i]]);\n }\n if (sigRet == \"v\") {\n typeSection.push(0);\n } else {\n typeSection = typeSection.concat([ 1, typeCodes[sigRet] ]);\n }\n typeSection[1] = typeSection.length - 2;\n var bytes = new Uint8Array([ 0, 97, 115, 109, 1, 0, 0, 0 ].concat(typeSection, [ 2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0 ]));\n var module = new WebAssembly.Module(bytes);\n var instance = new WebAssembly.Instance(module, {\n \"e\": {\n \"f\": func\n }\n });\n var wrappedFunc = instance.exports[\"f\"];\n return wrappedFunc;\n}\n\nvar freeTableIndexes = [];\n\nvar functionsInTableMap;\n\nfunction getEmptyTableSlot() {\n if (freeTableIndexes.length) {\n return freeTableIndexes.pop();\n }\n try {\n wasmTable.grow(1);\n } catch (err) {\n if (!(err instanceof RangeError)) {\n throw err;\n }\n throw \"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\";\n }\n return wasmTable.length - 1;\n}\n\nfunction addFunctionWasm(func, sig) {\n if (!functionsInTableMap) {\n functionsInTableMap = new WeakMap();\n for (var i = 0; i < wasmTable.length; i++) {\n var item = wasmTable.get(i);\n if (item) {\n functionsInTableMap.set(item, i);\n }\n }\n }\n if (functionsInTableMap.has(func)) {\n return functionsInTableMap.get(func);\n }\n var ret = getEmptyTableSlot();\n try {\n wasmTable.set(ret, func);\n } catch (err) {\n if (!(err instanceof TypeError)) {\n throw err;\n }\n assert(typeof sig !== \"undefined\", \"Missing signature argument to addFunction: \" + func);\n var wrapped = convertJsFunctionToWasm(func, sig);\n wasmTable.set(ret, wrapped);\n }\n functionsInTableMap.set(func, ret);\n return ret;\n}\n\nfunction addFunction(func, sig) {\n assert(typeof func !== \"undefined\");\n return addFunctionWasm(func, sig);\n}\n\nvar tempRet0 = 0;\n\nvar setTempRet0 = function(value) {\n tempRet0 = value;\n};\n\nvar wasmBinary;\n\nif (Module[\"wasmBinary\"]) wasmBinary = Module[\"wasmBinary\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"wasmBinary\")) Object.defineProperty(Module, \"wasmBinary\", {\n configurable: true,\n get: function() {\n abort(\"Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nvar noExitRuntime;\n\nif (Module[\"noExitRuntime\"]) noExitRuntime = Module[\"noExitRuntime\"];\n\nif (!Object.getOwnPropertyDescriptor(Module, \"noExitRuntime\")) Object.defineProperty(Module, \"noExitRuntime\", {\n configurable: true,\n get: function() {\n abort(\"Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nif (typeof WebAssembly !== \"object\") {\n abort(\"no native wasm support detected\");\n}\n\nvar wasmMemory;\n\nvar ABORT = false;\n\nvar EXITSTATUS;\n\nfunction assert(condition, text) {\n if (!condition) {\n abort(\"Assertion failed: \" + text);\n }\n}\n\nfunction getCFunc(ident) {\n var func = Module[\"_\" + ident];\n assert(func, \"Cannot call unknown function \" + ident + \", make sure it is exported\");\n return func;\n}\n\nfunction ccall(ident, returnType, argTypes, args, opts) {\n var toC = {\n \"string\": function(str) {\n var ret = 0;\n if (str !== null && str !== undefined && str !== 0) {\n var len = (str.length << 2) + 1;\n ret = stackAlloc(len);\n stringToUTF8(str, ret, len);\n }\n return ret;\n },\n \"array\": function(arr) {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n }\n };\n function convertReturnValue(ret) {\n if (returnType === \"string\") return UTF8ToString(ret);\n if (returnType === \"boolean\") return Boolean(ret);\n return ret;\n }\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n assert(returnType !== \"array\", 'Return type should not be \"array\".');\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n if (converter) {\n if (stack === 0) stack = stackSave();\n cArgs[i] = converter(args[i]);\n } else {\n cArgs[i] = args[i];\n }\n }\n }\n var ret = func.apply(null, cArgs);\n ret = convertReturnValue(ret);\n if (stack !== 0) stackRestore(stack);\n return ret;\n}\n\nvar ALLOC_STACK = 1;\n\nvar UTF8Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf8\") : undefined;\n\nfunction UTF8ArrayToString(heap, idx, maxBytesToRead) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {\n return UTF8Decoder.decode(heap.subarray(idx, endPtr));\n } else {\n var str = \"\";\n while (idx < endPtr) {\n var u0 = heap[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n var u1 = heap[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n var u2 = heap[idx++] & 63;\n if ((u0 & 240) == 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n if ((u0 & 248) != 240) warnOnce(\"Invalid UTF-8 leading byte 0x\" + u0.toString(16) + \" encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!\");\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heap[idx++] & 63;\n }\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n }\n return str;\n}\n\nfunction UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\";\n}\n\nfunction stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n }\n if (u <= 127) {\n if (outIdx >= endIdx) break;\n heap[outIdx++] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) break;\n heap[outIdx++] = 192 | u >> 6;\n heap[outIdx++] = 128 | u & 63;\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) break;\n heap[outIdx++] = 224 | u >> 12;\n heap[outIdx++] = 128 | u >> 6 & 63;\n heap[outIdx++] = 128 | u & 63;\n } else {\n if (outIdx + 3 >= endIdx) break;\n if (u >= 2097152) warnOnce(\"Invalid Unicode code point 0x\" + u.toString(16) + \" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF).\");\n heap[outIdx++] = 240 | u >> 18;\n heap[outIdx++] = 128 | u >> 12 & 63;\n heap[outIdx++] = 128 | u >> 6 & 63;\n heap[outIdx++] = 128 | u & 63;\n }\n }\n heap[outIdx] = 0;\n return outIdx - startIdx;\n}\n\nfunction stringToUTF8(str, outPtr, maxBytesToWrite) {\n assert(typeof maxBytesToWrite == \"number\", \"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n}\n\nfunction lengthBytesUTF8(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;\n if (u <= 127) ++len; else if (u <= 2047) len += 2; else if (u <= 65535) len += 3; else len += 4;\n }\n return len;\n}\n\nvar UTF16Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\") : undefined;\n\nfunction allocateUTF8(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = _malloc(size);\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n}\n\nfunction allocateUTF8OnStack(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = stackAlloc(size);\n stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n}\n\nfunction writeArrayToMemory(array, buffer) {\n assert(array.length >= 0, \"writeArrayToMemory array must have a length (should be an array or typed array)\");\n HEAP8.set(array, buffer);\n}\n\nfunction writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n assert(str.charCodeAt(i) === str.charCodeAt(i) & 255);\n HEAP8[buffer++ >> 0] = str.charCodeAt(i);\n }\n if (!dontAddNull) HEAP8[buffer >> 0] = 0;\n}\n\nfunction alignUp(x, multiple) {\n if (x % multiple > 0) {\n x += multiple - x % multiple;\n }\n return x;\n}\n\nvar buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n\nfunction updateGlobalBufferAndViews(buf) {\n buffer = buf;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(buf);\n Module[\"HEAP16\"] = HEAP16 = new Int16Array(buf);\n Module[\"HEAP32\"] = HEAP32 = new Int32Array(buf);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(buf);\n Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(buf);\n Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(buf);\n Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(buf);\n Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(buf);\n}\n\nvar TOTAL_STACK = 5242880;\n\nif (Module[\"TOTAL_STACK\"]) assert(TOTAL_STACK === Module[\"TOTAL_STACK\"], \"the stack size can no longer be determined at runtime\");\n\nvar INITIAL_MEMORY = Module[\"INITIAL_MEMORY\"] || 33554432;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"INITIAL_MEMORY\")) Object.defineProperty(Module, \"INITIAL_MEMORY\", {\n configurable: true,\n get: function() {\n abort(\"Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)\");\n }\n});\n\nassert(INITIAL_MEMORY >= TOTAL_STACK, \"INITIAL_MEMORY should be larger than TOTAL_STACK, was \" + INITIAL_MEMORY + \"! (TOTAL_STACK=\" + TOTAL_STACK + \")\");\n\nassert(typeof Int32Array !== \"undefined\" && typeof Float64Array !== \"undefined\" && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, \"JS engine does not provide full typed array support\");\n\nassert(!Module[\"wasmMemory\"], \"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally\");\n\nassert(INITIAL_MEMORY == 33554432, \"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically\");\n\nvar wasmTable;\n\nfunction writeStackCookie() {\n var max = _emscripten_stack_get_end();\n assert((max & 3) == 0);\n HEAPU32[(max >> 2) + 1] = 34821223;\n HEAPU32[(max >> 2) + 2] = 2310721022;\n HEAP32[0] = 1668509029;\n}\n\nfunction checkStackCookie() {\n if (ABORT) return;\n var max = _emscripten_stack_get_end();\n var cookie1 = HEAPU32[(max >> 2) + 1];\n var cookie2 = HEAPU32[(max >> 2) + 2];\n if (cookie1 != 34821223 || cookie2 != 2310721022) {\n abort(\"Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x\" + cookie2.toString(16) + \" \" + cookie1.toString(16));\n }\n if (HEAP32[0] !== 1668509029) abort(\"Runtime error: The application has corrupted its heap memory area (address zero)!\");\n}\n\n(function() {\n var h16 = new Int16Array(1);\n var h8 = new Int8Array(h16.buffer);\n h16[0] = 25459;\n if (h8[0] !== 115 || h8[1] !== 99) throw \"Runtime error: expected the system to be little-endian!\";\n})();\n\nvar __ATPRERUN__ = [];\n\nvar __ATINIT__ = [];\n\nvar __ATMAIN__ = [];\n\nvar __ATPOSTRUN__ = [];\n\nvar runtimeInitialized = false;\n\nvar runtimeExited = false;\n\n__ATINIT__.push({\n func: function() {\n ___wasm_call_ctors();\n }\n});\n\nfunction preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\") Module[\"preRun\"] = [ Module[\"preRun\"] ];\n while (Module[\"preRun\"].length) {\n addOnPreRun(Module[\"preRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPRERUN__);\n}\n\nfunction initRuntime() {\n checkStackCookie();\n assert(!runtimeInitialized);\n runtimeInitialized = true;\n if (!Module[\"noFSInit\"] && !FS.init.initialized) FS.init();\n TTY.init();\n callRuntimeCallbacks(__ATINIT__);\n}\n\nfunction preMain() {\n checkStackCookie();\n FS.ignorePermissions = false;\n callRuntimeCallbacks(__ATMAIN__);\n}\n\nfunction exitRuntime() {\n checkStackCookie();\n runtimeExited = true;\n}\n\nfunction postRun() {\n checkStackCookie();\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\") Module[\"postRun\"] = [ Module[\"postRun\"] ];\n while (Module[\"postRun\"].length) {\n addOnPostRun(Module[\"postRun\"].shift());\n }\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n}\n\nfunction addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n}\n\nfunction addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n}\n\nassert(Math.imul, \"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");\n\nassert(Math.fround, \"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");\n\nassert(Math.clz32, \"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");\n\nassert(Math.trunc, \"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill\");\n\nvar runDependencies = 0;\n\nvar runDependencyWatcher = null;\n\nvar dependenciesFulfilled = null;\n\nvar runDependencyTracking = {};\n\nfunction getUniqueRunDependency(id) {\n var orig = id;\n while (1) {\n if (!runDependencyTracking[id]) return id;\n id = orig + Math.random();\n }\n}\n\nfunction addRunDependency(id) {\n runDependencies++;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n if (id) {\n assert(!runDependencyTracking[id]);\n runDependencyTracking[id] = 1;\n if (runDependencyWatcher === null && typeof setInterval !== \"undefined\") {\n runDependencyWatcher = setInterval(function() {\n if (ABORT) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n return;\n }\n var shown = false;\n for (var dep in runDependencyTracking) {\n if (!shown) {\n shown = true;\n err(\"still waiting on run dependencies:\");\n }\n err(\"dependency: \" + dep);\n }\n if (shown) {\n err(\"(end of list)\");\n }\n }, 1e4);\n }\n } else {\n err(\"warning: run dependency added without ID\");\n }\n}\n\nfunction removeRunDependency(id) {\n runDependencies--;\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n if (id) {\n assert(runDependencyTracking[id]);\n delete runDependencyTracking[id];\n } else {\n err(\"warning: run dependency removed without ID\");\n }\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n}\n\nModule[\"preloadedImages\"] = {};\n\nModule[\"preloadedAudios\"] = {};\n\nfunction abort(what) {\n if (Module[\"onAbort\"]) {\n Module[\"onAbort\"](what);\n }\n what += \"\";\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n var output = \"abort(\" + what + \") at \" + stackTrace();\n what = output;\n var e = new WebAssembly.RuntimeError(what);\n readyPromiseReject(e);\n throw e;\n}\n\nfunction hasPrefix(str, prefix) {\n return String.prototype.startsWith ? str.startsWith(prefix) : str.indexOf(prefix) === 0;\n}\n\nvar dataURIPrefix = \"data:application/octet-stream;base64,\";\n\nfunction isDataURI(filename) {\n return hasPrefix(filename, dataURIPrefix);\n}\n\nvar fileURIPrefix = \"file://\";\n\nfunction isFileURI(filename) {\n return hasPrefix(filename, fileURIPrefix);\n}\n\nfunction createExportWrapper(name, fixedasm) {\n return function() {\n var displayName = name;\n var asm = fixedasm;\n if (!fixedasm) {\n asm = Module[\"asm\"];\n }\n assert(runtimeInitialized, \"native function `\" + displayName + \"` called before runtime initialization\");\n assert(!runtimeExited, \"native function `\" + displayName + \"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)\");\n if (!asm[name]) {\n assert(asm[name], \"exported native function `\" + displayName + \"` not found\");\n }\n return asm[name].apply(null, arguments);\n };\n}\n\nvar wasmBinaryFile = \"trace_to_text.wasm\";\n\nif (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n}\n\nfunction getBinary(file) {\n try {\n if (file == wasmBinaryFile && wasmBinary) {\n return new Uint8Array(wasmBinary);\n }\n if (readBinary) {\n return readBinary(file);\n } else {\n throw \"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)\";\n }\n } catch (err) {\n abort(err);\n }\n}\n\nfunction getBinaryPromise() {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n if (typeof fetch === \"function\" && !isFileURI(wasmBinaryFile)) {\n return fetch(wasmBinaryFile, {\n credentials: \"same-origin\"\n }).then(function(response) {\n if (!response[\"ok\"]) {\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\n }\n return response[\"arrayBuffer\"]();\n }).catch(function() {\n return getBinary(wasmBinaryFile);\n });\n } else {\n if (readAsync) {\n return new Promise(function(resolve, reject) {\n readAsync(wasmBinaryFile, function(response) {\n resolve(new Uint8Array(response));\n }, reject);\n });\n }\n }\n }\n return Promise.resolve().then(function() {\n return getBinary(wasmBinaryFile);\n });\n}\n\nfunction instantiateSync(file, info) {\n var instance;\n var module;\n var binary;\n try {\n binary = getBinary(file);\n module = new WebAssembly.Module(binary);\n instance = new WebAssembly.Instance(module, info);\n } catch (e) {\n var str = e.toString();\n err(\"failed to compile wasm module: \" + str);\n if (str.indexOf(\"imported Memory\") >= 0 || str.indexOf(\"memory import\") >= 0) {\n err(\"Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time).\");\n }\n throw e;\n }\n return [ instance, module ];\n}\n\nfunction createWasm() {\n var info = {\n \"env\": asmLibraryArg,\n \"wasi_snapshot_preview1\": asmLibraryArg\n };\n function receiveInstance(instance, module) {\n var exports = instance.exports;\n Module[\"asm\"] = exports;\n wasmMemory = Module[\"asm\"][\"memory\"];\n assert(wasmMemory, \"memory not found in wasm exports\");\n updateGlobalBufferAndViews(wasmMemory.buffer);\n wasmTable = Module[\"asm\"][\"__indirect_function_table\"];\n assert(wasmTable, \"table not found in wasm exports\");\n removeRunDependency(\"wasm-instantiate\");\n }\n addRunDependency(\"wasm-instantiate\");\n var trueModule = Module;\n if (Module[\"instantiateWasm\"]) {\n try {\n var exports = Module[\"instantiateWasm\"](info, receiveInstance);\n return exports;\n } catch (e) {\n err(\"Module.instantiateWasm callback failed with error: \" + e);\n return false;\n }\n }\n var result = instantiateSync(wasmBinaryFile, info);\n receiveInstance(result[0], result[1]);\n return Module[\"asm\"];\n}\n\nvar tempDouble;\n\nvar tempI64;\n\nfunction callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n var callback = callbacks.shift();\n if (typeof callback == \"function\") {\n callback(Module);\n continue;\n }\n var func = callback.func;\n if (typeof func === \"number\") {\n if (callback.arg === undefined) {\n wasmTable.get(func)();\n } else {\n wasmTable.get(func)(callback.arg);\n }\n } else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n}\n\nfunction demangle(func) {\n warnOnce(\"warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling\");\n return func;\n}\n\nfunction demangleAll(text) {\n var regex = /\\b_Z[\\w\\d_]+/g;\n return text.replace(regex, function(x) {\n var y = demangle(x);\n return x === y ? x : y + \" [\" + x + \"]\";\n });\n}\n\nfunction jsStackTrace() {\n var error = new Error();\n if (!error.stack) {\n try {\n throw new Error();\n } catch (e) {\n error = e;\n }\n if (!error.stack) {\n return \"(no stack trace available)\";\n }\n }\n return error.stack.toString();\n}\n\nfunction stackTrace() {\n var js = jsStackTrace();\n if (Module[\"extraStackTrace\"]) js += \"\\n\" + Module[\"extraStackTrace\"]();\n return demangleAll(js);\n}\n\nvar _emscripten_get_now;\n\nif (ENVIRONMENT_IS_NODE) {\n _emscripten_get_now = function() {\n var t = process[\"hrtime\"]();\n return t[0] * 1e3 + t[1] / 1e6;\n };\n} else if (typeof dateNow !== \"undefined\") {\n _emscripten_get_now = dateNow;\n} else _emscripten_get_now = function() {\n return performance.now();\n};\n\nvar _emscripten_get_now_is_monotonic = true;\n\nfunction setErrNo(value) {\n HEAP32[___errno_location() >> 2] = value;\n return value;\n}\n\nfunction _clock_gettime(clk_id, tp) {\n var now;\n if (clk_id === 0) {\n now = Date.now();\n } else if ((clk_id === 1 || clk_id === 4) && _emscripten_get_now_is_monotonic) {\n now = _emscripten_get_now();\n } else {\n setErrNo(28);\n return -1;\n }\n HEAP32[tp >> 2] = now / 1e3 | 0;\n HEAP32[tp + 4 >> 2] = now % 1e3 * 1e3 * 1e3 | 0;\n return 0;\n}\n\nfunction ___clock_gettime(a0, a1) {\n return _clock_gettime(a0, a1);\n}\n\nfunction _atexit(func, arg) {}\n\nfunction ___cxa_atexit(a0, a1) {\n return _atexit(a0, a1);\n}\n\nfunction _tzset() {\n if (_tzset.called) return;\n _tzset.called = true;\n var currentYear = new Date().getFullYear();\n var winter = new Date(currentYear, 0, 1);\n var summer = new Date(currentYear, 6, 1);\n var winterOffset = winter.getTimezoneOffset();\n var summerOffset = summer.getTimezoneOffset();\n var stdTimezoneOffset = Math.max(winterOffset, summerOffset);\n HEAP32[__get_timezone() >> 2] = stdTimezoneOffset * 60;\n HEAP32[__get_daylight() >> 2] = Number(winterOffset != summerOffset);\n function extractZone(date) {\n var match = date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);\n return match ? match[1] : \"GMT\";\n }\n var winterName = extractZone(winter);\n var summerName = extractZone(summer);\n var winterNamePtr = allocateUTF8(winterName);\n var summerNamePtr = allocateUTF8(summerName);\n if (summerOffset < winterOffset) {\n HEAP32[__get_tzname() >> 2] = winterNamePtr;\n HEAP32[__get_tzname() + 4 >> 2] = summerNamePtr;\n } else {\n HEAP32[__get_tzname() >> 2] = summerNamePtr;\n HEAP32[__get_tzname() + 4 >> 2] = winterNamePtr;\n }\n}\n\nfunction _localtime_r(time, tmPtr) {\n _tzset();\n var date = new Date(HEAP32[time >> 2] * 1e3);\n HEAP32[tmPtr >> 2] = date.getSeconds();\n HEAP32[tmPtr + 4 >> 2] = date.getMinutes();\n HEAP32[tmPtr + 8 >> 2] = date.getHours();\n HEAP32[tmPtr + 12 >> 2] = date.getDate();\n HEAP32[tmPtr + 16 >> 2] = date.getMonth();\n HEAP32[tmPtr + 20 >> 2] = date.getFullYear() - 1900;\n HEAP32[tmPtr + 24 >> 2] = date.getDay();\n var start = new Date(date.getFullYear(), 0, 1);\n var yday = (date.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24) | 0;\n HEAP32[tmPtr + 28 >> 2] = yday;\n HEAP32[tmPtr + 36 >> 2] = -(date.getTimezoneOffset() * 60);\n var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();\n var winterOffset = start.getTimezoneOffset();\n var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;\n HEAP32[tmPtr + 32 >> 2] = dst;\n var zonePtr = HEAP32[__get_tzname() + (dst ? 4 : 0) >> 2];\n HEAP32[tmPtr + 40 >> 2] = zonePtr;\n return tmPtr;\n}\n\nfunction ___localtime_r(a0, a1) {\n return _localtime_r(a0, a1);\n}\n\nvar PATH = {\n splitPath: function(filename) {\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n return splitPathRe.exec(filename).slice(1);\n },\n normalizeArray: function(parts, allowAboveRoot) {\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === \".\") {\n parts.splice(i, 1);\n } else if (last === \"..\") {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n if (allowAboveRoot) {\n for (;up; up--) {\n parts.unshift(\"..\");\n }\n }\n return parts;\n },\n normalize: function(path) {\n var isAbsolute = path.charAt(0) === \"/\", trailingSlash = path.substr(-1) === \"/\";\n path = PATH.normalizeArray(path.split(\"/\").filter(function(p) {\n return !!p;\n }), !isAbsolute).join(\"/\");\n if (!path && !isAbsolute) {\n path = \".\";\n }\n if (path && trailingSlash) {\n path += \"/\";\n }\n return (isAbsolute ? \"/\" : \"\") + path;\n },\n dirname: function(path) {\n var result = PATH.splitPath(path), root = result[0], dir = result[1];\n if (!root && !dir) {\n return \".\";\n }\n if (dir) {\n dir = dir.substr(0, dir.length - 1);\n }\n return root + dir;\n },\n basename: function(path) {\n if (path === \"/\") return \"/\";\n path = PATH.normalize(path);\n path = path.replace(/\\/$/, \"\");\n var lastSlash = path.lastIndexOf(\"/\");\n if (lastSlash === -1) return path;\n return path.substr(lastSlash + 1);\n },\n extname: function(path) {\n return PATH.splitPath(path)[3];\n },\n join: function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return PATH.normalize(paths.join(\"/\"));\n },\n join2: function(l, r) {\n return PATH.normalize(l + \"/\" + r);\n }\n};\n\nfunction getRandomDevice() {\n if (typeof crypto === \"object\" && typeof crypto[\"getRandomValues\"] === \"function\") {\n var randomBuffer = new Uint8Array(1);\n return function() {\n crypto.getRandomValues(randomBuffer);\n return randomBuffer[0];\n };\n } else if (ENVIRONMENT_IS_NODE) {\n try {\n var crypto_module = require(\"crypto\");\n return function() {\n return crypto_module[\"randomBytes\"](1)[0];\n };\n } catch (e) {}\n }\n return function() {\n abort(\"no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };\");\n };\n}\n\nvar PATH_FS = {\n resolve: function() {\n var resolvedPath = \"\", resolvedAbsolute = false;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : FS.cwd();\n if (typeof path !== \"string\") {\n throw new TypeError(\"Arguments to path.resolve must be strings\");\n } else if (!path) {\n return \"\";\n }\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charAt(0) === \"/\";\n }\n resolvedPath = PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p) {\n return !!p;\n }), !resolvedAbsolute).join(\"/\");\n return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n },\n relative: function(from, to) {\n from = PATH_FS.resolve(from).substr(1);\n to = PATH_FS.resolve(to).substr(1);\n function trim(arr) {\n var start = 0;\n for (;start < arr.length; start++) {\n if (arr[start] !== \"\") break;\n }\n var end = arr.length - 1;\n for (;end >= 0; end--) {\n if (arr[end] !== \"\") break;\n }\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n var fromParts = trim(from.split(\"/\"));\n var toParts = trim(to.split(\"/\"));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push(\"..\");\n }\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join(\"/\");\n }\n};\n\nvar TTY = {\n ttys: [],\n init: function() {},\n shutdown: function() {},\n register: function(dev, ops) {\n TTY.ttys[dev] = {\n input: [],\n output: [],\n ops: ops\n };\n FS.registerDevice(dev, TTY.stream_ops);\n },\n stream_ops: {\n open: function(stream) {\n var tty = TTY.ttys[stream.node.rdev];\n if (!tty) {\n throw new FS.ErrnoError(43);\n }\n stream.tty = tty;\n stream.seekable = false;\n },\n close: function(stream) {\n stream.tty.ops.flush(stream.tty);\n },\n flush: function(stream) {\n stream.tty.ops.flush(stream.tty);\n },\n read: function(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.get_char) {\n throw new FS.ErrnoError(60);\n }\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = stream.tty.ops.get_char(stream.tty);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (result === undefined && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n },\n write: function(stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.put_char) {\n throw new FS.ErrnoError(60);\n }\n try {\n for (var i = 0; i < length; i++) {\n stream.tty.ops.put_char(stream.tty, buffer[offset + i]);\n }\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n }\n },\n default_tty_ops: {\n get_char: function(tty) {\n if (!tty.input.length) {\n var result = null;\n if (ENVIRONMENT_IS_NODE) {\n var BUFSIZE = 256;\n var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE);\n var bytesRead = 0;\n try {\n bytesRead = nodeFS.readSync(process.stdin.fd, buf, 0, BUFSIZE, null);\n } catch (e) {\n if (e.toString().indexOf(\"EOF\") != -1) bytesRead = 0; else throw e;\n }\n if (bytesRead > 0) {\n result = buf.slice(0, bytesRead).toString(\"utf-8\");\n } else {\n result = null;\n }\n } else if (typeof window != \"undefined\" && typeof window.prompt == \"function\") {\n result = window.prompt(\"Input: \");\n if (result !== null) {\n result += \"\\n\";\n }\n } else if (typeof readline == \"function\") {\n result = readline();\n if (result !== null) {\n result += \"\\n\";\n }\n }\n if (!result) {\n return null;\n }\n tty.input = intArrayFromString(result, true);\n }\n return tty.input.shift();\n },\n put_char: function(tty, val) {\n if (val === null || val === 10) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0) tty.output.push(val);\n }\n },\n flush: function(tty) {\n if (tty.output && tty.output.length > 0) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }\n },\n default_tty1_ops: {\n put_char: function(tty, val) {\n if (val === null || val === 10) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {\n if (val != 0) tty.output.push(val);\n }\n },\n flush: function(tty) {\n if (tty.output && tty.output.length > 0) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }\n }\n};\n\nfunction mmapAlloc(size) {\n var alignedSize = alignMemory(size, 16384);\n var ptr = _malloc(alignedSize);\n while (size < alignedSize) HEAP8[ptr + size++] = 0;\n return ptr;\n}\n\nvar MEMFS = {\n ops_table: null,\n mount: function(mount) {\n return MEMFS.createNode(null, \"/\", 16384 | 511, 0);\n },\n createNode: function(parent, name, mode, dev) {\n if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {\n throw new FS.ErrnoError(63);\n }\n if (!MEMFS.ops_table) {\n MEMFS.ops_table = {\n dir: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr,\n lookup: MEMFS.node_ops.lookup,\n mknod: MEMFS.node_ops.mknod,\n rename: MEMFS.node_ops.rename,\n unlink: MEMFS.node_ops.unlink,\n rmdir: MEMFS.node_ops.rmdir,\n readdir: MEMFS.node_ops.readdir,\n symlink: MEMFS.node_ops.symlink\n },\n stream: {\n llseek: MEMFS.stream_ops.llseek\n }\n },\n file: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr\n },\n stream: {\n llseek: MEMFS.stream_ops.llseek,\n read: MEMFS.stream_ops.read,\n write: MEMFS.stream_ops.write,\n allocate: MEMFS.stream_ops.allocate,\n mmap: MEMFS.stream_ops.mmap,\n msync: MEMFS.stream_ops.msync\n }\n },\n link: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr,\n readlink: MEMFS.node_ops.readlink\n },\n stream: {}\n },\n chrdev: {\n node: {\n getattr: MEMFS.node_ops.getattr,\n setattr: MEMFS.node_ops.setattr\n },\n stream: FS.chrdev_stream_ops\n }\n };\n }\n var node = FS.createNode(parent, name, mode, dev);\n if (FS.isDir(node.mode)) {\n node.node_ops = MEMFS.ops_table.dir.node;\n node.stream_ops = MEMFS.ops_table.dir.stream;\n node.contents = {};\n } else if (FS.isFile(node.mode)) {\n node.node_ops = MEMFS.ops_table.file.node;\n node.stream_ops = MEMFS.ops_table.file.stream;\n node.usedBytes = 0;\n node.contents = null;\n } else if (FS.isLink(node.mode)) {\n node.node_ops = MEMFS.ops_table.link.node;\n node.stream_ops = MEMFS.ops_table.link.stream;\n } else if (FS.isChrdev(node.mode)) {\n node.node_ops = MEMFS.ops_table.chrdev.node;\n node.stream_ops = MEMFS.ops_table.chrdev.stream;\n }\n node.timestamp = Date.now();\n if (parent) {\n parent.contents[name] = node;\n parent.timestamp = node.timestamp;\n }\n return node;\n },\n getFileDataAsRegularArray: function(node) {\n if (node.contents && node.contents.subarray) {\n var arr = [];\n for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]);\n return arr;\n }\n return node.contents;\n },\n getFileDataAsTypedArray: function(node) {\n if (!node.contents) return new Uint8Array(0);\n if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes);\n return new Uint8Array(node.contents);\n },\n expandFileStorage: function(node, newCapacity) {\n var prevCapacity = node.contents ? node.contents.length : 0;\n if (prevCapacity >= newCapacity) return;\n var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);\n if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);\n var oldContents = node.contents;\n node.contents = new Uint8Array(newCapacity);\n if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0);\n return;\n },\n resizeFileStorage: function(node, newSize) {\n if (node.usedBytes == newSize) return;\n if (newSize == 0) {\n node.contents = null;\n node.usedBytes = 0;\n return;\n }\n if (!node.contents || node.contents.subarray) {\n var oldContents = node.contents;\n node.contents = new Uint8Array(newSize);\n if (oldContents) {\n node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));\n }\n node.usedBytes = newSize;\n return;\n }\n if (!node.contents) node.contents = [];\n if (node.contents.length > newSize) node.contents.length = newSize; else while (node.contents.length < newSize) node.contents.push(0);\n node.usedBytes = newSize;\n },\n node_ops: {\n getattr: function(node) {\n var attr = {};\n attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n attr.ino = node.id;\n attr.mode = node.mode;\n attr.nlink = 1;\n attr.uid = 0;\n attr.gid = 0;\n attr.rdev = node.rdev;\n if (FS.isDir(node.mode)) {\n attr.size = 4096;\n } else if (FS.isFile(node.mode)) {\n attr.size = node.usedBytes;\n } else if (FS.isLink(node.mode)) {\n attr.size = node.link.length;\n } else {\n attr.size = 0;\n }\n attr.atime = new Date(node.timestamp);\n attr.mtime = new Date(node.timestamp);\n attr.ctime = new Date(node.timestamp);\n attr.blksize = 4096;\n attr.blocks = Math.ceil(attr.size / attr.blksize);\n return attr;\n },\n setattr: function(node, attr) {\n if (attr.mode !== undefined) {\n node.mode = attr.mode;\n }\n if (attr.timestamp !== undefined) {\n node.timestamp = attr.timestamp;\n }\n if (attr.size !== undefined) {\n MEMFS.resizeFileStorage(node, attr.size);\n }\n },\n lookup: function(parent, name) {\n throw FS.genericErrors[44];\n },\n mknod: function(parent, name, mode, dev) {\n return MEMFS.createNode(parent, name, mode, dev);\n },\n rename: function(old_node, new_dir, new_name) {\n if (FS.isDir(old_node.mode)) {\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {}\n if (new_node) {\n for (var i in new_node.contents) {\n throw new FS.ErrnoError(55);\n }\n }\n }\n delete old_node.parent.contents[old_node.name];\n old_node.parent.timestamp = Date.now();\n old_node.name = new_name;\n new_dir.contents[new_name] = old_node;\n new_dir.timestamp = old_node.parent.timestamp;\n old_node.parent = new_dir;\n },\n unlink: function(parent, name) {\n delete parent.contents[name];\n parent.timestamp = Date.now();\n },\n rmdir: function(parent, name) {\n var node = FS.lookupNode(parent, name);\n for (var i in node.contents) {\n throw new FS.ErrnoError(55);\n }\n delete parent.contents[name];\n parent.timestamp = Date.now();\n },\n readdir: function(node) {\n var entries = [ \".\", \"..\" ];\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n entries.push(key);\n }\n return entries;\n },\n symlink: function(parent, newname, oldpath) {\n var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);\n node.link = oldpath;\n return node;\n },\n readlink: function(node) {\n if (!FS.isLink(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n return node.link;\n }\n },\n stream_ops: {\n read: function(stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= stream.node.usedBytes) return 0;\n var size = Math.min(stream.node.usedBytes - position, length);\n assert(size >= 0);\n if (size > 8 && contents.subarray) {\n buffer.set(contents.subarray(position, position + size), offset);\n } else {\n for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i];\n }\n return size;\n },\n write: function(stream, buffer, offset, length, position, canOwn) {\n assert(!(buffer instanceof ArrayBuffer));\n if (buffer.buffer === HEAP8.buffer) {\n canOwn = false;\n }\n if (!length) return 0;\n var node = stream.node;\n node.timestamp = Date.now();\n if (buffer.subarray && (!node.contents || node.contents.subarray)) {\n if (canOwn) {\n assert(position === 0, \"canOwn must imply no weird position inside the file\");\n node.contents = buffer.subarray(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (node.usedBytes === 0 && position === 0) {\n node.contents = buffer.slice(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (position + length <= node.usedBytes) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n return length;\n }\n }\n MEMFS.expandFileStorage(node, position + length);\n if (node.contents.subarray && buffer.subarray) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n } else {\n for (var i = 0; i < length; i++) {\n node.contents[position + i] = buffer[offset + i];\n }\n }\n node.usedBytes = Math.max(node.usedBytes, position + length);\n return length;\n },\n llseek: function(stream, offset, whence) {\n var position = offset;\n if (whence === 1) {\n position += stream.position;\n } else if (whence === 2) {\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.usedBytes;\n }\n }\n if (position < 0) {\n throw new FS.ErrnoError(28);\n }\n return position;\n },\n allocate: function(stream, offset, length) {\n MEMFS.expandFileStorage(stream.node, offset + length);\n stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n },\n mmap: function(stream, address, length, position, prot, flags) {\n if (address !== 0) {\n throw new FS.ErrnoError(28);\n }\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n var ptr;\n var allocated;\n var contents = stream.node.contents;\n if (!(flags & 2) && contents.buffer === buffer) {\n allocated = false;\n ptr = contents.byteOffset;\n } else {\n if (position > 0 || position + length < contents.length) {\n if (contents.subarray) {\n contents = contents.subarray(position, position + length);\n } else {\n contents = Array.prototype.slice.call(contents, position, position + length);\n }\n }\n allocated = true;\n ptr = mmapAlloc(length);\n if (!ptr) {\n throw new FS.ErrnoError(48);\n }\n HEAP8.set(contents, ptr);\n }\n return {\n ptr: ptr,\n allocated: allocated\n };\n },\n msync: function(stream, buffer, offset, length, mmapFlags) {\n if (!FS.isFile(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n if (mmapFlags & 2) {\n return 0;\n }\n var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n return 0;\n }\n }\n};\n\nvar WORKERFS = {\n DIR_MODE: 16895,\n FILE_MODE: 33279,\n reader: null,\n mount: function(mount) {\n assert(ENVIRONMENT_IS_WORKER);\n if (!WORKERFS.reader) WORKERFS.reader = new FileReaderSync();\n var root = WORKERFS.createNode(null, \"/\", WORKERFS.DIR_MODE, 0);\n var createdParents = {};\n function ensureParent(path) {\n var parts = path.split(\"/\");\n var parent = root;\n for (var i = 0; i < parts.length - 1; i++) {\n var curr = parts.slice(0, i + 1).join(\"/\");\n if (!createdParents[curr]) {\n createdParents[curr] = WORKERFS.createNode(parent, parts[i], WORKERFS.DIR_MODE, 0);\n }\n parent = createdParents[curr];\n }\n return parent;\n }\n function base(path) {\n var parts = path.split(\"/\");\n return parts[parts.length - 1];\n }\n Array.prototype.forEach.call(mount.opts[\"files\"] || [], function(file) {\n WORKERFS.createNode(ensureParent(file.name), base(file.name), WORKERFS.FILE_MODE, 0, file, file.lastModifiedDate);\n });\n (mount.opts[\"blobs\"] || []).forEach(function(obj) {\n WORKERFS.createNode(ensureParent(obj[\"name\"]), base(obj[\"name\"]), WORKERFS.FILE_MODE, 0, obj[\"data\"]);\n });\n (mount.opts[\"packages\"] || []).forEach(function(pack) {\n pack[\"metadata\"].files.forEach(function(file) {\n var name = file.filename.substr(1);\n WORKERFS.createNode(ensureParent(name), base(name), WORKERFS.FILE_MODE, 0, pack[\"blob\"].slice(file.start, file.end));\n });\n });\n return root;\n },\n createNode: function(parent, name, mode, dev, contents, mtime) {\n var node = FS.createNode(parent, name, mode);\n node.mode = mode;\n node.node_ops = WORKERFS.node_ops;\n node.stream_ops = WORKERFS.stream_ops;\n node.timestamp = (mtime || new Date()).getTime();\n assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE);\n if (mode === WORKERFS.FILE_MODE) {\n node.size = contents.size;\n node.contents = contents;\n } else {\n node.size = 4096;\n node.contents = {};\n }\n if (parent) {\n parent.contents[name] = node;\n }\n return node;\n },\n node_ops: {\n getattr: function(node) {\n return {\n dev: 1,\n ino: node.id,\n mode: node.mode,\n nlink: 1,\n uid: 0,\n gid: 0,\n rdev: undefined,\n size: node.size,\n atime: new Date(node.timestamp),\n mtime: new Date(node.timestamp),\n ctime: new Date(node.timestamp),\n blksize: 4096,\n blocks: Math.ceil(node.size / 4096)\n };\n },\n setattr: function(node, attr) {\n if (attr.mode !== undefined) {\n node.mode = attr.mode;\n }\n if (attr.timestamp !== undefined) {\n node.timestamp = attr.timestamp;\n }\n },\n lookup: function(parent, name) {\n throw new FS.ErrnoError(44);\n },\n mknod: function(parent, name, mode, dev) {\n throw new FS.ErrnoError(63);\n },\n rename: function(oldNode, newDir, newName) {\n throw new FS.ErrnoError(63);\n },\n unlink: function(parent, name) {\n throw new FS.ErrnoError(63);\n },\n rmdir: function(parent, name) {\n throw new FS.ErrnoError(63);\n },\n readdir: function(node) {\n var entries = [ \".\", \"..\" ];\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {\n continue;\n }\n entries.push(key);\n }\n return entries;\n },\n symlink: function(parent, newName, oldPath) {\n throw new FS.ErrnoError(63);\n },\n readlink: function(node) {\n throw new FS.ErrnoError(63);\n }\n },\n stream_ops: {\n read: function(stream, buffer, offset, length, position) {\n if (position >= stream.node.size) return 0;\n var chunk = stream.node.contents.slice(position, position + length);\n var ab = WORKERFS.reader.readAsArrayBuffer(chunk);\n buffer.set(new Uint8Array(ab), offset);\n return chunk.size;\n },\n write: function(stream, buffer, offset, length, position) {\n throw new FS.ErrnoError(29);\n },\n llseek: function(stream, offset, whence) {\n var position = offset;\n if (whence === 1) {\n position += stream.position;\n } else if (whence === 2) {\n if (FS.isFile(stream.node.mode)) {\n position += stream.node.size;\n }\n }\n if (position < 0) {\n throw new FS.ErrnoError(28);\n }\n return position;\n }\n }\n};\n\nvar ERRNO_MESSAGES = {\n 0: \"Success\",\n 1: \"Arg list too long\",\n 2: \"Permission denied\",\n 3: \"Address already in use\",\n 4: \"Address not available\",\n 5: \"Address family not supported by protocol family\",\n 6: \"No more processes\",\n 7: \"Socket already connected\",\n 8: \"Bad file number\",\n 9: \"Trying to read unreadable message\",\n 10: \"Mount device busy\",\n 11: \"Operation canceled\",\n 12: \"No children\",\n 13: \"Connection aborted\",\n 14: \"Connection refused\",\n 15: \"Connection reset by peer\",\n 16: \"File locking deadlock error\",\n 17: \"Destination address required\",\n 18: \"Math arg out of domain of func\",\n 19: \"Quota exceeded\",\n 20: \"File exists\",\n 21: \"Bad address\",\n 22: \"File too large\",\n 23: \"Host is unreachable\",\n 24: \"Identifier removed\",\n 25: \"Illegal byte sequence\",\n 26: \"Connection already in progress\",\n 27: \"Interrupted system call\",\n 28: \"Invalid argument\",\n 29: \"I/O error\",\n 30: \"Socket is already connected\",\n 31: \"Is a directory\",\n 32: \"Too many symbolic links\",\n 33: \"Too many open files\",\n 34: \"Too many links\",\n 35: \"Message too long\",\n 36: \"Multihop attempted\",\n 37: \"File or path name too long\",\n 38: \"Network interface is not configured\",\n 39: \"Connection reset by network\",\n 40: \"Network is unreachable\",\n 41: \"Too many open files in system\",\n 42: \"No buffer space available\",\n 43: \"No such device\",\n 44: \"No such file or directory\",\n 45: \"Exec format error\",\n 46: \"No record locks available\",\n 47: \"The link has been severed\",\n 48: \"Not enough core\",\n 49: \"No message of desired type\",\n 50: \"Protocol not available\",\n 51: \"No space left on device\",\n 52: \"Function not implemented\",\n 53: \"Socket is not connected\",\n 54: \"Not a directory\",\n 55: \"Directory not empty\",\n 56: \"State not recoverable\",\n 57: \"Socket operation on non-socket\",\n 59: \"Not a typewriter\",\n 60: \"No such device or address\",\n 61: \"Value too large for defined data type\",\n 62: \"Previous owner died\",\n 63: \"Not super-user\",\n 64: \"Broken pipe\",\n 65: \"Protocol error\",\n 66: \"Unknown protocol\",\n 67: \"Protocol wrong type for socket\",\n 68: \"Math result not representable\",\n 69: \"Read only file system\",\n 70: \"Illegal seek\",\n 71: \"No such process\",\n 72: \"Stale file handle\",\n 73: \"Connection timed out\",\n 74: \"Text file busy\",\n 75: \"Cross-device link\",\n 100: \"Device not a stream\",\n 101: \"Bad font file fmt\",\n 102: \"Invalid slot\",\n 103: \"Invalid request code\",\n 104: \"No anode\",\n 105: \"Block device required\",\n 106: \"Channel number out of range\",\n 107: \"Level 3 halted\",\n 108: \"Level 3 reset\",\n 109: \"Link number out of range\",\n 110: \"Protocol driver not attached\",\n 111: \"No CSI structure available\",\n 112: \"Level 2 halted\",\n 113: \"Invalid exchange\",\n 114: \"Invalid request descriptor\",\n 115: \"Exchange full\",\n 116: \"No data (for no delay io)\",\n 117: \"Timer expired\",\n 118: \"Out of streams resources\",\n 119: \"Machine is not on the network\",\n 120: \"Package not installed\",\n 121: \"The object is remote\",\n 122: \"Advertise error\",\n 123: \"Srmount error\",\n 124: \"Communication error on send\",\n 125: \"Cross mount point (not really error)\",\n 126: \"Given log. name not unique\",\n 127: \"f.d. invalid for this operation\",\n 128: \"Remote address changed\",\n 129: \"Can access a needed shared lib\",\n 130: \"Accessing a corrupted shared lib\",\n 131: \".lib section in a.out corrupted\",\n 132: \"Attempting to link in too many libs\",\n 133: \"Attempting to exec a shared library\",\n 135: \"Streams pipe error\",\n 136: \"Too many users\",\n 137: \"Socket type not supported\",\n 138: \"Not supported\",\n 139: \"Protocol family not supported\",\n 140: \"Can't send after socket shutdown\",\n 141: \"Too many references\",\n 142: \"Host is down\",\n 148: \"No medium (in tape drive)\",\n 156: \"Level 2 not synchronized\"\n};\n\nvar ERRNO_CODES = {\n EPERM: 63,\n ENOENT: 44,\n ESRCH: 71,\n EINTR: 27,\n EIO: 29,\n ENXIO: 60,\n E2BIG: 1,\n ENOEXEC: 45,\n EBADF: 8,\n ECHILD: 12,\n EAGAIN: 6,\n EWOULDBLOCK: 6,\n ENOMEM: 48,\n EACCES: 2,\n EFAULT: 21,\n ENOTBLK: 105,\n EBUSY: 10,\n EEXIST: 20,\n EXDEV: 75,\n ENODEV: 43,\n ENOTDIR: 54,\n EISDIR: 31,\n EINVAL: 28,\n ENFILE: 41,\n EMFILE: 33,\n ENOTTY: 59,\n ETXTBSY: 74,\n EFBIG: 22,\n ENOSPC: 51,\n ESPIPE: 70,\n EROFS: 69,\n EMLINK: 34,\n EPIPE: 64,\n EDOM: 18,\n ERANGE: 68,\n ENOMSG: 49,\n EIDRM: 24,\n ECHRNG: 106,\n EL2NSYNC: 156,\n EL3HLT: 107,\n EL3RST: 108,\n ELNRNG: 109,\n EUNATCH: 110,\n ENOCSI: 111,\n EL2HLT: 112,\n EDEADLK: 16,\n ENOLCK: 46,\n EBADE: 113,\n EBADR: 114,\n EXFULL: 115,\n ENOANO: 104,\n EBADRQC: 103,\n EBADSLT: 102,\n EDEADLOCK: 16,\n EBFONT: 101,\n ENOSTR: 100,\n ENODATA: 116,\n ETIME: 117,\n ENOSR: 118,\n ENONET: 119,\n ENOPKG: 120,\n EREMOTE: 121,\n ENOLINK: 47,\n EADV: 122,\n ESRMNT: 123,\n ECOMM: 124,\n EPROTO: 65,\n EMULTIHOP: 36,\n EDOTDOT: 125,\n EBADMSG: 9,\n ENOTUNIQ: 126,\n EBADFD: 127,\n EREMCHG: 128,\n ELIBACC: 129,\n ELIBBAD: 130,\n ELIBSCN: 131,\n ELIBMAX: 132,\n ELIBEXEC: 133,\n ENOSYS: 52,\n ENOTEMPTY: 55,\n ENAMETOOLONG: 37,\n ELOOP: 32,\n EOPNOTSUPP: 138,\n EPFNOSUPPORT: 139,\n ECONNRESET: 15,\n ENOBUFS: 42,\n EAFNOSUPPORT: 5,\n EPROTOTYPE: 67,\n ENOTSOCK: 57,\n ENOPROTOOPT: 50,\n ESHUTDOWN: 140,\n ECONNREFUSED: 14,\n EADDRINUSE: 3,\n ECONNABORTED: 13,\n ENETUNREACH: 40,\n ENETDOWN: 38,\n ETIMEDOUT: 73,\n EHOSTDOWN: 142,\n EHOSTUNREACH: 23,\n EINPROGRESS: 26,\n EALREADY: 7,\n EDESTADDRREQ: 17,\n EMSGSIZE: 35,\n EPROTONOSUPPORT: 66,\n ESOCKTNOSUPPORT: 137,\n EADDRNOTAVAIL: 4,\n ENETRESET: 39,\n EISCONN: 30,\n ENOTCONN: 53,\n ETOOMANYREFS: 141,\n EUSERS: 136,\n EDQUOT: 19,\n ESTALE: 72,\n ENOTSUP: 138,\n ENOMEDIUM: 148,\n EILSEQ: 25,\n EOVERFLOW: 61,\n ECANCELED: 11,\n ENOTRECOVERABLE: 56,\n EOWNERDEAD: 62,\n ESTRPIPE: 135\n};\n\nvar FS = {\n root: null,\n mounts: [],\n devices: {},\n streams: [],\n nextInode: 1,\n nameTable: null,\n currentPath: \"/\",\n initialized: false,\n ignorePermissions: true,\n trackingDelegate: {},\n tracking: {\n openFlags: {\n READ: 1,\n WRITE: 2\n }\n },\n ErrnoError: null,\n genericErrors: {},\n filesystems: null,\n syncFSRequests: 0,\n lookupPath: function(path, opts) {\n path = PATH_FS.resolve(FS.cwd(), path);\n opts = opts || {};\n if (!path) return {\n path: \"\",\n node: null\n };\n var defaults = {\n follow_mount: true,\n recurse_count: 0\n };\n for (var key in defaults) {\n if (opts[key] === undefined) {\n opts[key] = defaults[key];\n }\n }\n if (opts.recurse_count > 8) {\n throw new FS.ErrnoError(32);\n }\n var parts = PATH.normalizeArray(path.split(\"/\").filter(function(p) {\n return !!p;\n }), false);\n var current = FS.root;\n var current_path = \"/\";\n for (var i = 0; i < parts.length; i++) {\n var islast = i === parts.length - 1;\n if (islast && opts.parent) {\n break;\n }\n current = FS.lookupNode(current, parts[i]);\n current_path = PATH.join2(current_path, parts[i]);\n if (FS.isMountpoint(current)) {\n if (!islast || islast && opts.follow_mount) {\n current = current.mounted.root;\n }\n }\n if (!islast || opts.follow) {\n var count = 0;\n while (FS.isLink(current.mode)) {\n var link = FS.readlink(current_path);\n current_path = PATH_FS.resolve(PATH.dirname(current_path), link);\n var lookup = FS.lookupPath(current_path, {\n recurse_count: opts.recurse_count\n });\n current = lookup.node;\n if (count++ > 40) {\n throw new FS.ErrnoError(32);\n }\n }\n }\n }\n return {\n path: current_path,\n node: current\n };\n },\n getPath: function(node) {\n var path;\n while (true) {\n if (FS.isRoot(node)) {\n var mount = node.mount.mountpoint;\n if (!path) return mount;\n return mount[mount.length - 1] !== \"/\" ? mount + \"/\" + path : mount + path;\n }\n path = path ? node.name + \"/\" + path : node.name;\n node = node.parent;\n }\n },\n hashName: function(parentid, name) {\n var hash = 0;\n for (var i = 0; i < name.length; i++) {\n hash = (hash << 5) - hash + name.charCodeAt(i) | 0;\n }\n return (parentid + hash >>> 0) % FS.nameTable.length;\n },\n hashAddNode: function(node) {\n var hash = FS.hashName(node.parent.id, node.name);\n node.name_next = FS.nameTable[hash];\n FS.nameTable[hash] = node;\n },\n hashRemoveNode: function(node) {\n var hash = FS.hashName(node.parent.id, node.name);\n if (FS.nameTable[hash] === node) {\n FS.nameTable[hash] = node.name_next;\n } else {\n var current = FS.nameTable[hash];\n while (current) {\n if (current.name_next === node) {\n current.name_next = node.name_next;\n break;\n }\n current = current.name_next;\n }\n }\n },\n lookupNode: function(parent, name) {\n var errCode = FS.mayLookup(parent);\n if (errCode) {\n throw new FS.ErrnoError(errCode, parent);\n }\n var hash = FS.hashName(parent.id, name);\n for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n var nodeName = node.name;\n if (node.parent.id === parent.id && nodeName === name) {\n return node;\n }\n }\n return FS.lookup(parent, name);\n },\n createNode: function(parent, name, mode, rdev) {\n assert(typeof parent === \"object\");\n var node = new FS.FSNode(parent, name, mode, rdev);\n FS.hashAddNode(node);\n return node;\n },\n destroyNode: function(node) {\n FS.hashRemoveNode(node);\n },\n isRoot: function(node) {\n return node === node.parent;\n },\n isMountpoint: function(node) {\n return !!node.mounted;\n },\n isFile: function(mode) {\n return (mode & 61440) === 32768;\n },\n isDir: function(mode) {\n return (mode & 61440) === 16384;\n },\n isLink: function(mode) {\n return (mode & 61440) === 40960;\n },\n isChrdev: function(mode) {\n return (mode & 61440) === 8192;\n },\n isBlkdev: function(mode) {\n return (mode & 61440) === 24576;\n },\n isFIFO: function(mode) {\n return (mode & 61440) === 4096;\n },\n isSocket: function(mode) {\n return (mode & 49152) === 49152;\n },\n flagModes: {\n \"r\": 0,\n \"r+\": 2,\n \"w\": 577,\n \"w+\": 578,\n \"a\": 1089,\n \"a+\": 1090\n },\n modeStringToFlags: function(str) {\n var flags = FS.flagModes[str];\n if (typeof flags === \"undefined\") {\n throw new Error(\"Unknown file open mode: \" + str);\n }\n return flags;\n },\n flagsToPermissionString: function(flag) {\n var perms = [ \"r\", \"w\", \"rw\" ][flag & 3];\n if (flag & 512) {\n perms += \"w\";\n }\n return perms;\n },\n nodePermissions: function(node, perms) {\n if (FS.ignorePermissions) {\n return 0;\n }\n if (perms.indexOf(\"r\") !== -1 && !(node.mode & 292)) {\n return 2;\n } else if (perms.indexOf(\"w\") !== -1 && !(node.mode & 146)) {\n return 2;\n } else if (perms.indexOf(\"x\") !== -1 && !(node.mode & 73)) {\n return 2;\n }\n return 0;\n },\n mayLookup: function(dir) {\n var errCode = FS.nodePermissions(dir, \"x\");\n if (errCode) return errCode;\n if (!dir.node_ops.lookup) return 2;\n return 0;\n },\n mayCreate: function(dir, name) {\n try {\n var node = FS.lookupNode(dir, name);\n return 20;\n } catch (e) {}\n return FS.nodePermissions(dir, \"wx\");\n },\n mayDelete: function(dir, name, isdir) {\n var node;\n try {\n node = FS.lookupNode(dir, name);\n } catch (e) {\n return e.errno;\n }\n var errCode = FS.nodePermissions(dir, \"wx\");\n if (errCode) {\n return errCode;\n }\n if (isdir) {\n if (!FS.isDir(node.mode)) {\n return 54;\n }\n if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {\n return 10;\n }\n } else {\n if (FS.isDir(node.mode)) {\n return 31;\n }\n }\n return 0;\n },\n mayOpen: function(node, flags) {\n if (!node) {\n return 44;\n }\n if (FS.isLink(node.mode)) {\n return 32;\n } else if (FS.isDir(node.mode)) {\n if (FS.flagsToPermissionString(flags) !== \"r\" || flags & 512) {\n return 31;\n }\n }\n return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n },\n MAX_OPEN_FDS: 4096,\n nextfd: function(fd_start, fd_end) {\n fd_start = fd_start || 0;\n fd_end = fd_end || FS.MAX_OPEN_FDS;\n for (var fd = fd_start; fd <= fd_end; fd++) {\n if (!FS.streams[fd]) {\n return fd;\n }\n }\n throw new FS.ErrnoError(33);\n },\n getStream: function(fd) {\n return FS.streams[fd];\n },\n createStream: function(stream, fd_start, fd_end) {\n if (!FS.FSStream) {\n FS.FSStream = function() {};\n FS.FSStream.prototype = {\n object: {\n get: function() {\n return this.node;\n },\n set: function(val) {\n this.node = val;\n }\n },\n isRead: {\n get: function() {\n return (this.flags & 2097155) !== 1;\n }\n },\n isWrite: {\n get: function() {\n return (this.flags & 2097155) !== 0;\n }\n },\n isAppend: {\n get: function() {\n return this.flags & 1024;\n }\n }\n };\n }\n var newStream = new FS.FSStream();\n for (var p in stream) {\n newStream[p] = stream[p];\n }\n stream = newStream;\n var fd = FS.nextfd(fd_start, fd_end);\n stream.fd = fd;\n FS.streams[fd] = stream;\n return stream;\n },\n closeStream: function(fd) {\n FS.streams[fd] = null;\n },\n chrdev_stream_ops: {\n open: function(stream) {\n var device = FS.getDevice(stream.node.rdev);\n stream.stream_ops = device.stream_ops;\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n },\n llseek: function() {\n throw new FS.ErrnoError(70);\n }\n },\n major: function(dev) {\n return dev >> 8;\n },\n minor: function(dev) {\n return dev & 255;\n },\n makedev: function(ma, mi) {\n return ma << 8 | mi;\n },\n registerDevice: function(dev, ops) {\n FS.devices[dev] = {\n stream_ops: ops\n };\n },\n getDevice: function(dev) {\n return FS.devices[dev];\n },\n getMounts: function(mount) {\n var mounts = [];\n var check = [ mount ];\n while (check.length) {\n var m = check.pop();\n mounts.push(m);\n check.push.apply(check, m.mounts);\n }\n return mounts;\n },\n syncfs: function(populate, callback) {\n if (typeof populate === \"function\") {\n callback = populate;\n populate = false;\n }\n FS.syncFSRequests++;\n if (FS.syncFSRequests > 1) {\n err(\"warning: \" + FS.syncFSRequests + \" FS.syncfs operations in flight at once, probably just doing extra work\");\n }\n var mounts = FS.getMounts(FS.root.mount);\n var completed = 0;\n function doCallback(errCode) {\n assert(FS.syncFSRequests > 0);\n FS.syncFSRequests--;\n return callback(errCode);\n }\n function done(errCode) {\n if (errCode) {\n if (!done.errored) {\n done.errored = true;\n return doCallback(errCode);\n }\n return;\n }\n if (++completed >= mounts.length) {\n doCallback(null);\n }\n }\n mounts.forEach(function(mount) {\n if (!mount.type.syncfs) {\n return done(null);\n }\n mount.type.syncfs(mount, populate, done);\n });\n },\n mount: function(type, opts, mountpoint) {\n if (typeof type === \"string\") {\n throw type;\n }\n var root = mountpoint === \"/\";\n var pseudo = !mountpoint;\n var node;\n if (root && FS.root) {\n throw new FS.ErrnoError(10);\n } else if (!root && !pseudo) {\n var lookup = FS.lookupPath(mountpoint, {\n follow_mount: false\n });\n mountpoint = lookup.path;\n node = lookup.node;\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n if (!FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n }\n var mount = {\n type: type,\n opts: opts,\n mountpoint: mountpoint,\n mounts: []\n };\n var mountRoot = type.mount(mount);\n mountRoot.mount = mount;\n mount.root = mountRoot;\n if (root) {\n FS.root = mountRoot;\n } else if (node) {\n node.mounted = mount;\n if (node.mount) {\n node.mount.mounts.push(mount);\n }\n }\n return mountRoot;\n },\n unmount: function(mountpoint) {\n var lookup = FS.lookupPath(mountpoint, {\n follow_mount: false\n });\n if (!FS.isMountpoint(lookup.node)) {\n throw new FS.ErrnoError(28);\n }\n var node = lookup.node;\n var mount = node.mounted;\n var mounts = FS.getMounts(mount);\n Object.keys(FS.nameTable).forEach(function(hash) {\n var current = FS.nameTable[hash];\n while (current) {\n var next = current.name_next;\n if (mounts.indexOf(current.mount) !== -1) {\n FS.destroyNode(current);\n }\n current = next;\n }\n });\n node.mounted = null;\n var idx = node.mount.mounts.indexOf(mount);\n assert(idx !== -1);\n node.mount.mounts.splice(idx, 1);\n },\n lookup: function(parent, name) {\n return parent.node_ops.lookup(parent, name);\n },\n mknod: function(path, mode, dev) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n if (!name || name === \".\" || name === \"..\") {\n throw new FS.ErrnoError(28);\n }\n var errCode = FS.mayCreate(parent, name);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.mknod) {\n throw new FS.ErrnoError(63);\n }\n return parent.node_ops.mknod(parent, name, mode, dev);\n },\n create: function(path, mode) {\n mode = mode !== undefined ? mode : 438;\n mode &= 4095;\n mode |= 32768;\n return FS.mknod(path, mode, 0);\n },\n mkdir: function(path, mode) {\n mode = mode !== undefined ? mode : 511;\n mode &= 511 | 512;\n mode |= 16384;\n return FS.mknod(path, mode, 0);\n },\n mkdirTree: function(path, mode) {\n var dirs = path.split(\"/\");\n var d = \"\";\n for (var i = 0; i < dirs.length; ++i) {\n if (!dirs[i]) continue;\n d += \"/\" + dirs[i];\n try {\n FS.mkdir(d, mode);\n } catch (e) {\n if (e.errno != 20) throw e;\n }\n }\n },\n mkdev: function(path, mode, dev) {\n if (typeof dev === \"undefined\") {\n dev = mode;\n mode = 438;\n }\n mode |= 8192;\n return FS.mknod(path, mode, dev);\n },\n symlink: function(oldpath, newpath) {\n if (!PATH_FS.resolve(oldpath)) {\n throw new FS.ErrnoError(44);\n }\n var lookup = FS.lookupPath(newpath, {\n parent: true\n });\n var parent = lookup.node;\n if (!parent) {\n throw new FS.ErrnoError(44);\n }\n var newname = PATH.basename(newpath);\n var errCode = FS.mayCreate(parent, newname);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.symlink) {\n throw new FS.ErrnoError(63);\n }\n return parent.node_ops.symlink(parent, newname, oldpath);\n },\n rename: function(old_path, new_path) {\n var old_dirname = PATH.dirname(old_path);\n var new_dirname = PATH.dirname(new_path);\n var old_name = PATH.basename(old_path);\n var new_name = PATH.basename(new_path);\n var lookup, old_dir, new_dir;\n lookup = FS.lookupPath(old_path, {\n parent: true\n });\n old_dir = lookup.node;\n lookup = FS.lookupPath(new_path, {\n parent: true\n });\n new_dir = lookup.node;\n if (!old_dir || !new_dir) throw new FS.ErrnoError(44);\n if (old_dir.mount !== new_dir.mount) {\n throw new FS.ErrnoError(75);\n }\n var old_node = FS.lookupNode(old_dir, old_name);\n var relative = PATH_FS.relative(old_path, new_dirname);\n if (relative.charAt(0) !== \".\") {\n throw new FS.ErrnoError(28);\n }\n relative = PATH_FS.relative(new_path, old_dirname);\n if (relative.charAt(0) !== \".\") {\n throw new FS.ErrnoError(55);\n }\n var new_node;\n try {\n new_node = FS.lookupNode(new_dir, new_name);\n } catch (e) {}\n if (old_node === new_node) {\n return;\n }\n var isdir = FS.isDir(old_node.mode);\n var errCode = FS.mayDelete(old_dir, old_name, isdir);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!old_dir.node_ops.rename) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {\n throw new FS.ErrnoError(10);\n }\n if (new_dir !== old_dir) {\n errCode = FS.nodePermissions(old_dir, \"w\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n }\n try {\n if (FS.trackingDelegate[\"willMovePath\"]) {\n FS.trackingDelegate[\"willMovePath\"](old_path, new_path);\n }\n } catch (e) {\n err(\"FS.trackingDelegate['willMovePath']('\" + old_path + \"', '\" + new_path + \"') threw an exception: \" + e.message);\n }\n FS.hashRemoveNode(old_node);\n try {\n old_dir.node_ops.rename(old_node, new_dir, new_name);\n } catch (e) {\n throw e;\n } finally {\n FS.hashAddNode(old_node);\n }\n try {\n if (FS.trackingDelegate[\"onMovePath\"]) FS.trackingDelegate[\"onMovePath\"](old_path, new_path);\n } catch (e) {\n err(\"FS.trackingDelegate['onMovePath']('\" + old_path + \"', '\" + new_path + \"') threw an exception: \" + e.message);\n }\n },\n rmdir: function(path) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, true);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.rmdir) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n try {\n if (FS.trackingDelegate[\"willDeletePath\"]) {\n FS.trackingDelegate[\"willDeletePath\"](path);\n }\n } catch (e) {\n err(\"FS.trackingDelegate['willDeletePath']('\" + path + \"') threw an exception: \" + e.message);\n }\n parent.node_ops.rmdir(parent, name);\n FS.destroyNode(node);\n try {\n if (FS.trackingDelegate[\"onDeletePath\"]) FS.trackingDelegate[\"onDeletePath\"](path);\n } catch (e) {\n err(\"FS.trackingDelegate['onDeletePath']('\" + path + \"') threw an exception: \" + e.message);\n }\n },\n readdir: function(path) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n var node = lookup.node;\n if (!node.node_ops.readdir) {\n throw new FS.ErrnoError(54);\n }\n return node.node_ops.readdir(node);\n },\n unlink: function(path) {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, false);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n if (!parent.node_ops.unlink) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isMountpoint(node)) {\n throw new FS.ErrnoError(10);\n }\n try {\n if (FS.trackingDelegate[\"willDeletePath\"]) {\n FS.trackingDelegate[\"willDeletePath\"](path);\n }\n } catch (e) {\n err(\"FS.trackingDelegate['willDeletePath']('\" + path + \"') threw an exception: \" + e.message);\n }\n parent.node_ops.unlink(parent, name);\n FS.destroyNode(node);\n try {\n if (FS.trackingDelegate[\"onDeletePath\"]) FS.trackingDelegate[\"onDeletePath\"](path);\n } catch (e) {\n err(\"FS.trackingDelegate['onDeletePath']('\" + path + \"') threw an exception: \" + e.message);\n }\n },\n readlink: function(path) {\n var lookup = FS.lookupPath(path);\n var link = lookup.node;\n if (!link) {\n throw new FS.ErrnoError(44);\n }\n if (!link.node_ops.readlink) {\n throw new FS.ErrnoError(28);\n }\n return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n },\n stat: function(path, dontFollow) {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n var node = lookup.node;\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n if (!node.node_ops.getattr) {\n throw new FS.ErrnoError(63);\n }\n return node.node_ops.getattr(node);\n },\n lstat: function(path) {\n return FS.stat(path, true);\n },\n chmod: function(path, mode, dontFollow) {\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n node.node_ops.setattr(node, {\n mode: mode & 4095 | node.mode & ~4095,\n timestamp: Date.now()\n });\n },\n lchmod: function(path, mode) {\n FS.chmod(path, mode, true);\n },\n fchmod: function(fd, mode) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n FS.chmod(stream.node, mode);\n },\n chown: function(path, uid, gid, dontFollow) {\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, {\n follow: !dontFollow\n });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n node.node_ops.setattr(node, {\n timestamp: Date.now()\n });\n },\n lchown: function(path, uid, gid) {\n FS.chown(path, uid, gid, true);\n },\n fchown: function(fd, uid, gid) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n FS.chown(stream.node, uid, gid);\n },\n truncate: function(path, len) {\n if (len < 0) {\n throw new FS.ErrnoError(28);\n }\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n node = lookup.node;\n } else {\n node = path;\n }\n if (!node.node_ops.setattr) {\n throw new FS.ErrnoError(63);\n }\n if (FS.isDir(node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!FS.isFile(node.mode)) {\n throw new FS.ErrnoError(28);\n }\n var errCode = FS.nodePermissions(node, \"w\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n node.node_ops.setattr(node, {\n size: len,\n timestamp: Date.now()\n });\n },\n ftruncate: function(fd, len) {\n var stream = FS.getStream(fd);\n if (!stream) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(28);\n }\n FS.truncate(stream.node, len);\n },\n utime: function(path, atime, mtime) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n var node = lookup.node;\n node.node_ops.setattr(node, {\n timestamp: Math.max(atime, mtime)\n });\n },\n open: function(path, flags, mode, fd_start, fd_end) {\n if (path === \"\") {\n throw new FS.ErrnoError(44);\n }\n flags = typeof flags === \"string\" ? FS.modeStringToFlags(flags) : flags;\n mode = typeof mode === \"undefined\" ? 438 : mode;\n if (flags & 64) {\n mode = mode & 4095 | 32768;\n } else {\n mode = 0;\n }\n var node;\n if (typeof path === \"object\") {\n node = path;\n } else {\n path = PATH.normalize(path);\n try {\n var lookup = FS.lookupPath(path, {\n follow: !(flags & 131072)\n });\n node = lookup.node;\n } catch (e) {}\n }\n var created = false;\n if (flags & 64) {\n if (node) {\n if (flags & 128) {\n throw new FS.ErrnoError(20);\n }\n } else {\n node = FS.mknod(path, mode, 0);\n created = true;\n }\n }\n if (!node) {\n throw new FS.ErrnoError(44);\n }\n if (FS.isChrdev(node.mode)) {\n flags &= ~512;\n }\n if (flags & 65536 && !FS.isDir(node.mode)) {\n throw new FS.ErrnoError(54);\n }\n if (!created) {\n var errCode = FS.mayOpen(node, flags);\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n }\n if (flags & 512) {\n FS.truncate(node, 0);\n }\n flags &= ~(128 | 512 | 131072);\n var stream = FS.createStream({\n node: node,\n path: FS.getPath(node),\n flags: flags,\n seekable: true,\n position: 0,\n stream_ops: node.stream_ops,\n ungotten: [],\n error: false\n }, fd_start, fd_end);\n if (stream.stream_ops.open) {\n stream.stream_ops.open(stream);\n }\n if (Module[\"logReadFiles\"] && !(flags & 1)) {\n if (!FS.readFiles) FS.readFiles = {};\n if (!(path in FS.readFiles)) {\n FS.readFiles[path] = 1;\n err(\"FS.trackingDelegate error on read file: \" + path);\n }\n }\n try {\n if (FS.trackingDelegate[\"onOpenFile\"]) {\n var trackingFlags = 0;\n if ((flags & 2097155) !== 1) {\n trackingFlags |= FS.tracking.openFlags.READ;\n }\n if ((flags & 2097155) !== 0) {\n trackingFlags |= FS.tracking.openFlags.WRITE;\n }\n FS.trackingDelegate[\"onOpenFile\"](path, trackingFlags);\n }\n } catch (e) {\n err(\"FS.trackingDelegate['onOpenFile']('\" + path + \"', flags) threw an exception: \" + e.message);\n }\n return stream;\n },\n close: function(stream) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (stream.getdents) stream.getdents = null;\n try {\n if (stream.stream_ops.close) {\n stream.stream_ops.close(stream);\n }\n } catch (e) {\n throw e;\n } finally {\n FS.closeStream(stream.fd);\n }\n stream.fd = null;\n },\n isClosed: function(stream) {\n return stream.fd === null;\n },\n llseek: function(stream, offset, whence) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (!stream.seekable || !stream.stream_ops.llseek) {\n throw new FS.ErrnoError(70);\n }\n if (whence != 0 && whence != 1 && whence != 2) {\n throw new FS.ErrnoError(28);\n }\n stream.position = stream.stream_ops.llseek(stream, offset, whence);\n stream.ungotten = [];\n return stream.position;\n },\n read: function(stream, buffer, offset, length, position) {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(8);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!stream.stream_ops.read) {\n throw new FS.ErrnoError(28);\n }\n var seeking = typeof position !== \"undefined\";\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n if (!seeking) stream.position += bytesRead;\n return bytesRead;\n },\n write: function(stream, buffer, offset, length, position, canOwn) {\n if (length < 0 || position < 0) {\n throw new FS.ErrnoError(28);\n }\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n if (FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(31);\n }\n if (!stream.stream_ops.write) {\n throw new FS.ErrnoError(28);\n }\n if (stream.seekable && stream.flags & 1024) {\n FS.llseek(stream, 0, 2);\n }\n var seeking = typeof position !== \"undefined\";\n if (!seeking) {\n position = stream.position;\n } else if (!stream.seekable) {\n throw new FS.ErrnoError(70);\n }\n var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n if (!seeking) stream.position += bytesWritten;\n try {\n if (stream.path && FS.trackingDelegate[\"onWriteToFile\"]) FS.trackingDelegate[\"onWriteToFile\"](stream.path);\n } catch (e) {\n err(\"FS.trackingDelegate['onWriteToFile']('\" + stream.path + \"') threw an exception: \" + e.message);\n }\n return bytesWritten;\n },\n allocate: function(stream, offset, length) {\n if (FS.isClosed(stream)) {\n throw new FS.ErrnoError(8);\n }\n if (offset < 0 || length <= 0) {\n throw new FS.ErrnoError(28);\n }\n if ((stream.flags & 2097155) === 0) {\n throw new FS.ErrnoError(8);\n }\n if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {\n throw new FS.ErrnoError(43);\n }\n if (!stream.stream_ops.allocate) {\n throw new FS.ErrnoError(138);\n }\n stream.stream_ops.allocate(stream, offset, length);\n },\n mmap: function(stream, address, length, position, prot, flags) {\n if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {\n throw new FS.ErrnoError(2);\n }\n if ((stream.flags & 2097155) === 1) {\n throw new FS.ErrnoError(2);\n }\n if (!stream.stream_ops.mmap) {\n throw new FS.ErrnoError(43);\n }\n return stream.stream_ops.mmap(stream, address, length, position, prot, flags);\n },\n msync: function(stream, buffer, offset, length, mmapFlags) {\n if (!stream || !stream.stream_ops.msync) {\n return 0;\n }\n return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n },\n munmap: function(stream) {\n return 0;\n },\n ioctl: function(stream, cmd, arg) {\n if (!stream.stream_ops.ioctl) {\n throw new FS.ErrnoError(59);\n }\n return stream.stream_ops.ioctl(stream, cmd, arg);\n },\n readFile: function(path, opts) {\n opts = opts || {};\n opts.flags = opts.flags || 0;\n opts.encoding = opts.encoding || \"binary\";\n if (opts.encoding !== \"utf8\" && opts.encoding !== \"binary\") {\n throw new Error('Invalid encoding type \"' + opts.encoding + '\"');\n }\n var ret;\n var stream = FS.open(path, opts.flags);\n var stat = FS.stat(path);\n var length = stat.size;\n var buf = new Uint8Array(length);\n FS.read(stream, buf, 0, length, 0);\n if (opts.encoding === \"utf8\") {\n ret = UTF8ArrayToString(buf, 0);\n } else if (opts.encoding === \"binary\") {\n ret = buf;\n }\n FS.close(stream);\n return ret;\n },\n writeFile: function(path, data, opts) {\n opts = opts || {};\n opts.flags = opts.flags || 577;\n var stream = FS.open(path, opts.flags, opts.mode);\n if (typeof data === \"string\") {\n var buf = new Uint8Array(lengthBytesUTF8(data) + 1);\n var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);\n } else if (ArrayBuffer.isView(data)) {\n FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);\n } else {\n throw new Error(\"Unsupported data type\");\n }\n FS.close(stream);\n },\n cwd: function() {\n return FS.currentPath;\n },\n chdir: function(path) {\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n if (lookup.node === null) {\n throw new FS.ErrnoError(44);\n }\n if (!FS.isDir(lookup.node.mode)) {\n throw new FS.ErrnoError(54);\n }\n var errCode = FS.nodePermissions(lookup.node, \"x\");\n if (errCode) {\n throw new FS.ErrnoError(errCode);\n }\n FS.currentPath = lookup.path;\n },\n createDefaultDirectories: function() {\n FS.mkdir(\"/tmp\");\n FS.mkdir(\"/home\");\n FS.mkdir(\"/home/web_user\");\n },\n createDefaultDevices: function() {\n FS.mkdir(\"/dev\");\n FS.registerDevice(FS.makedev(1, 3), {\n read: function() {\n return 0;\n },\n write: function(stream, buffer, offset, length, pos) {\n return length;\n }\n });\n FS.mkdev(\"/dev/null\", FS.makedev(1, 3));\n TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n FS.mkdev(\"/dev/tty\", FS.makedev(5, 0));\n FS.mkdev(\"/dev/tty1\", FS.makedev(6, 0));\n var random_device = getRandomDevice();\n FS.createDevice(\"/dev\", \"random\", random_device);\n FS.createDevice(\"/dev\", \"urandom\", random_device);\n FS.mkdir(\"/dev/shm\");\n FS.mkdir(\"/dev/shm/tmp\");\n },\n createSpecialDirectories: function() {\n FS.mkdir(\"/proc\");\n var proc_self = FS.mkdir(\"/proc/self\");\n FS.mkdir(\"/proc/self/fd\");\n FS.mount({\n mount: function() {\n var node = FS.createNode(proc_self, \"fd\", 16384 | 511, 73);\n node.node_ops = {\n lookup: function(parent, name) {\n var fd = +name;\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(8);\n var ret = {\n parent: null,\n mount: {\n mountpoint: \"fake\"\n },\n node_ops: {\n readlink: function() {\n return stream.path;\n }\n }\n };\n ret.parent = ret;\n return ret;\n }\n };\n return node;\n }\n }, {}, \"/proc/self/fd\");\n },\n createStandardStreams: function() {\n if (Module[\"stdin\"]) {\n FS.createDevice(\"/dev\", \"stdin\", Module[\"stdin\"]);\n } else {\n FS.symlink(\"/dev/tty\", \"/dev/stdin\");\n }\n if (Module[\"stdout\"]) {\n FS.createDevice(\"/dev\", \"stdout\", null, Module[\"stdout\"]);\n } else {\n FS.symlink(\"/dev/tty\", \"/dev/stdout\");\n }\n if (Module[\"stderr\"]) {\n FS.createDevice(\"/dev\", \"stderr\", null, Module[\"stderr\"]);\n } else {\n FS.symlink(\"/dev/tty1\", \"/dev/stderr\");\n }\n var stdin = FS.open(\"/dev/stdin\", 0);\n var stdout = FS.open(\"/dev/stdout\", 1);\n var stderr = FS.open(\"/dev/stderr\", 1);\n assert(stdin.fd === 0, \"invalid handle for stdin (\" + stdin.fd + \")\");\n assert(stdout.fd === 1, \"invalid handle for stdout (\" + stdout.fd + \")\");\n assert(stderr.fd === 2, \"invalid handle for stderr (\" + stderr.fd + \")\");\n },\n ensureErrnoError: function() {\n if (FS.ErrnoError) return;\n FS.ErrnoError = function ErrnoError(errno, node) {\n this.node = node;\n this.setErrno = function(errno) {\n this.errno = errno;\n for (var key in ERRNO_CODES) {\n if (ERRNO_CODES[key] === errno) {\n this.code = key;\n break;\n }\n }\n };\n this.setErrno(errno);\n this.message = ERRNO_MESSAGES[errno];\n if (this.stack) {\n Object.defineProperty(this, \"stack\", {\n value: new Error().stack,\n writable: true\n });\n this.stack = demangleAll(this.stack);\n }\n };\n FS.ErrnoError.prototype = new Error();\n FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n [ 44 ].forEach(function(code) {\n FS.genericErrors[code] = new FS.ErrnoError(code);\n FS.genericErrors[code].stack = \"<generic error, no stack>\";\n });\n },\n staticInit: function() {\n FS.ensureErrnoError();\n FS.nameTable = new Array(4096);\n FS.mount(MEMFS, {}, \"/\");\n FS.createDefaultDirectories();\n FS.createDefaultDevices();\n FS.createSpecialDirectories();\n FS.filesystems = {\n \"MEMFS\": MEMFS,\n \"WORKERFS\": WORKERFS\n };\n },\n init: function(input, output, error) {\n 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)\");\n FS.init.initialized = true;\n FS.ensureErrnoError();\n Module[\"stdin\"] = input || Module[\"stdin\"];\n Module[\"stdout\"] = output || Module[\"stdout\"];\n Module[\"stderr\"] = error || Module[\"stderr\"];\n FS.createStandardStreams();\n },\n quit: function() {\n FS.init.initialized = false;\n var fflush = Module[\"_fflush\"];\n if (fflush) fflush(0);\n for (var i = 0; i < FS.streams.length; i++) {\n var stream = FS.streams[i];\n if (!stream) {\n continue;\n }\n FS.close(stream);\n }\n },\n getMode: function(canRead, canWrite) {\n var mode = 0;\n if (canRead) mode |= 292 | 73;\n if (canWrite) mode |= 146;\n return mode;\n },\n findObject: function(path, dontResolveLastLink) {\n var ret = FS.analyzePath(path, dontResolveLastLink);\n if (ret.exists) {\n return ret.object;\n } else {\n return null;\n }\n },\n analyzePath: function(path, dontResolveLastLink) {\n try {\n var lookup = FS.lookupPath(path, {\n follow: !dontResolveLastLink\n });\n path = lookup.path;\n } catch (e) {}\n var ret = {\n isRoot: false,\n exists: false,\n error: 0,\n name: null,\n path: null,\n object: null,\n parentExists: false,\n parentPath: null,\n parentObject: null\n };\n try {\n var lookup = FS.lookupPath(path, {\n parent: true\n });\n ret.parentExists = true;\n ret.parentPath = lookup.path;\n ret.parentObject = lookup.node;\n ret.name = PATH.basename(path);\n lookup = FS.lookupPath(path, {\n follow: !dontResolveLastLink\n });\n ret.exists = true;\n ret.path = lookup.path;\n ret.object = lookup.node;\n ret.name = lookup.node.name;\n ret.isRoot = lookup.path === \"/\";\n } catch (e) {\n ret.error = e.errno;\n }\n return ret;\n },\n createPath: function(parent, path, canRead, canWrite) {\n parent = typeof parent === \"string\" ? parent : FS.getPath(parent);\n var parts = path.split(\"/\").reverse();\n while (parts.length) {\n var part = parts.pop();\n if (!part) continue;\n var current = PATH.join2(parent, part);\n try {\n FS.mkdir(current);\n } catch (e) {}\n parent = current;\n }\n return current;\n },\n createFile: function(parent, name, properties, canRead, canWrite) {\n var path = PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(canRead, canWrite);\n return FS.create(path, mode);\n },\n createDataFile: function(parent, name, data, canRead, canWrite, canOwn) {\n var path = name ? PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name) : parent;\n var mode = FS.getMode(canRead, canWrite);\n var node = FS.create(path, mode);\n if (data) {\n if (typeof data === \"string\") {\n var arr = new Array(data.length);\n for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);\n data = arr;\n }\n FS.chmod(node, mode | 146);\n var stream = FS.open(node, 577);\n FS.write(stream, data, 0, data.length, 0, canOwn);\n FS.close(stream);\n FS.chmod(node, mode);\n }\n return node;\n },\n createDevice: function(parent, name, input, output) {\n var path = PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(!!input, !!output);\n if (!FS.createDevice.major) FS.createDevice.major = 64;\n var dev = FS.makedev(FS.createDevice.major++, 0);\n FS.registerDevice(dev, {\n open: function(stream) {\n stream.seekable = false;\n },\n close: function(stream) {\n if (output && output.buffer && output.buffer.length) {\n output(10);\n }\n },\n read: function(stream, buffer, offset, length, pos) {\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {\n result = input();\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n if (result === undefined && bytesRead === 0) {\n throw new FS.ErrnoError(6);\n }\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {\n stream.node.timestamp = Date.now();\n }\n return bytesRead;\n },\n write: function(stream, buffer, offset, length, pos) {\n for (var i = 0; i < length; i++) {\n try {\n output(buffer[offset + i]);\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n }\n if (length) {\n stream.node.timestamp = Date.now();\n }\n return i;\n }\n });\n return FS.mkdev(path, mode, dev);\n },\n forceLoadFile: function(obj) {\n if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;\n if (typeof XMLHttpRequest !== \"undefined\") {\n 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.\");\n } else if (read_) {\n try {\n obj.contents = intArrayFromString(read_(obj.url), true);\n obj.usedBytes = obj.contents.length;\n } catch (e) {\n throw new FS.ErrnoError(29);\n }\n } else {\n throw new Error(\"Cannot load without read() or XMLHttpRequest.\");\n }\n },\n createLazyFile: function(parent, name, url, canRead, canWrite) {\n function LazyUint8Array() {\n this.lengthKnown = false;\n this.chunks = [];\n }\n LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n if (idx > this.length - 1 || idx < 0) {\n return undefined;\n }\n var chunkOffset = idx % this.chunkSize;\n var chunkNum = idx / this.chunkSize | 0;\n return this.getter(chunkNum)[chunkOffset];\n };\n LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {\n this.getter = getter;\n };\n LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n var xhr = new XMLHttpRequest();\n xhr.open(\"HEAD\", url, false);\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n var datalength = Number(xhr.getResponseHeader(\"Content-length\"));\n var header;\n var hasByteServing = (header = xhr.getResponseHeader(\"Accept-Ranges\")) && header === \"bytes\";\n var usesGzip = (header = xhr.getResponseHeader(\"Content-Encoding\")) && header === \"gzip\";\n var chunkSize = 1024 * 1024;\n if (!hasByteServing) chunkSize = datalength;\n var doXHR = function(from, to) {\n if (from > to) throw new Error(\"invalid range (\" + from + \", \" + to + \") or no bytes requested!\");\n if (to > datalength - 1) throw new Error(\"only \" + datalength + \" bytes available! programmer error!\");\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n if (datalength !== chunkSize) xhr.setRequestHeader(\"Range\", \"bytes=\" + from + \"-\" + to);\n if (typeof Uint8Array != \"undefined\") xhr.responseType = \"arraybuffer\";\n if (xhr.overrideMimeType) {\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\n }\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n if (xhr.response !== undefined) {\n return new Uint8Array(xhr.response || []);\n } else {\n return intArrayFromString(xhr.responseText || \"\", true);\n }\n };\n var lazyArray = this;\n lazyArray.setDataGetter(function(chunkNum) {\n var start = chunkNum * chunkSize;\n var end = (chunkNum + 1) * chunkSize - 1;\n end = Math.min(end, datalength - 1);\n if (typeof lazyArray.chunks[chunkNum] === \"undefined\") {\n lazyArray.chunks[chunkNum] = doXHR(start, end);\n }\n if (typeof lazyArray.chunks[chunkNum] === \"undefined\") throw new Error(\"doXHR failed!\");\n return lazyArray.chunks[chunkNum];\n });\n if (usesGzip || !datalength) {\n chunkSize = datalength = 1;\n datalength = this.getter(0).length;\n chunkSize = datalength;\n out(\"LazyFiles on gzip forces download of the whole file when length is accessed\");\n }\n this._length = datalength;\n this._chunkSize = chunkSize;\n this.lengthKnown = true;\n };\n if (typeof XMLHttpRequest !== \"undefined\") {\n if (!ENVIRONMENT_IS_WORKER) throw \"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";\n var lazyArray = new LazyUint8Array();\n Object.defineProperties(lazyArray, {\n length: {\n get: function() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n return this._length;\n }\n },\n chunkSize: {\n get: function() {\n if (!this.lengthKnown) {\n this.cacheLength();\n }\n return this._chunkSize;\n }\n }\n });\n var properties = {\n isDevice: false,\n contents: lazyArray\n };\n } else {\n var properties = {\n isDevice: false,\n url: url\n };\n }\n var node = FS.createFile(parent, name, properties, canRead, canWrite);\n if (properties.contents) {\n node.contents = properties.contents;\n } else if (properties.url) {\n node.contents = null;\n node.url = properties.url;\n }\n Object.defineProperties(node, {\n usedBytes: {\n get: function() {\n return this.contents.length;\n }\n }\n });\n var stream_ops = {};\n var keys = Object.keys(node.stream_ops);\n keys.forEach(function(key) {\n var fn = node.stream_ops[key];\n stream_ops[key] = function forceLoadLazyFile() {\n FS.forceLoadFile(node);\n return fn.apply(null, arguments);\n };\n });\n stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {\n FS.forceLoadFile(node);\n var contents = stream.node.contents;\n if (position >= contents.length) return 0;\n var size = Math.min(contents.length - position, length);\n assert(size >= 0);\n if (contents.slice) {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents[position + i];\n }\n } else {\n for (var i = 0; i < size; i++) {\n buffer[offset + i] = contents.get(position + i);\n }\n }\n return size;\n };\n node.stream_ops = stream_ops;\n return node;\n },\n createPreloadedFile: function(parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {\n Browser.init();\n var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;\n var dep = getUniqueRunDependency(\"cp \" + fullname);\n function processData(byteArray) {\n function finish(byteArray) {\n if (preFinish) preFinish();\n if (!dontCreateFile) {\n FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);\n }\n if (onload) onload();\n removeRunDependency(dep);\n }\n var handled = false;\n Module[\"preloadPlugins\"].forEach(function(plugin) {\n if (handled) return;\n if (plugin[\"canHandle\"](fullname)) {\n plugin[\"handle\"](byteArray, fullname, finish, function() {\n if (onerror) onerror();\n removeRunDependency(dep);\n });\n handled = true;\n }\n });\n if (!handled) finish(byteArray);\n }\n addRunDependency(dep);\n if (typeof url == \"string\") {\n Browser.asyncLoad(url, function(byteArray) {\n processData(byteArray);\n }, onerror);\n } else {\n processData(url);\n }\n },\n indexedDB: function() {\n return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n },\n DB_NAME: function() {\n return \"EM_FS_\" + window.location.pathname;\n },\n DB_VERSION: 20,\n DB_STORE_NAME: \"FILE_DATA\",\n saveFilesToDB: function(paths, onload, onerror) {\n onload = onload || function() {};\n onerror = onerror || function() {};\n var indexedDB = FS.indexedDB();\n try {\n var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n } catch (e) {\n return onerror(e);\n }\n openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {\n out(\"creating db\");\n var db = openRequest.result;\n db.createObjectStore(FS.DB_STORE_NAME);\n };\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n var transaction = db.transaction([ FS.DB_STORE_NAME ], \"readwrite\");\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0, fail = 0, total = paths.length;\n function finish() {\n if (fail == 0) onload(); else onerror();\n }\n paths.forEach(function(path) {\n var putRequest = files.put(FS.analyzePath(path).object.contents, path);\n putRequest.onsuccess = function putRequest_onsuccess() {\n ok++;\n if (ok + fail == total) finish();\n };\n putRequest.onerror = function putRequest_onerror() {\n fail++;\n if (ok + fail == total) finish();\n };\n });\n transaction.onerror = onerror;\n };\n openRequest.onerror = onerror;\n },\n loadFilesFromDB: function(paths, onload, onerror) {\n onload = onload || function() {};\n onerror = onerror || function() {};\n var indexedDB = FS.indexedDB();\n try {\n var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);\n } catch (e) {\n return onerror(e);\n }\n openRequest.onupgradeneeded = onerror;\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n try {\n var transaction = db.transaction([ FS.DB_STORE_NAME ], \"readonly\");\n } catch (e) {\n onerror(e);\n return;\n }\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0, fail = 0, total = paths.length;\n function finish() {\n if (fail == 0) onload(); else onerror();\n }\n paths.forEach(function(path) {\n var getRequest = files.get(path);\n getRequest.onsuccess = function getRequest_onsuccess() {\n if (FS.analyzePath(path).exists) {\n FS.unlink(path);\n }\n FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);\n ok++;\n if (ok + fail == total) finish();\n };\n getRequest.onerror = function getRequest_onerror() {\n fail++;\n if (ok + fail == total) finish();\n };\n });\n transaction.onerror = onerror;\n };\n openRequest.onerror = onerror;\n },\n absolutePath: function() {\n abort(\"FS.absolutePath has been removed; use PATH_FS.resolve instead\");\n },\n createFolder: function() {\n abort(\"FS.createFolder has been removed; use FS.mkdir instead\");\n },\n createLink: function() {\n abort(\"FS.createLink has been removed; use FS.symlink instead\");\n },\n joinPath: function() {\n abort(\"FS.joinPath has been removed; use PATH.join instead\");\n },\n mmapAlloc: function() {\n abort(\"FS.mmapAlloc has been replaced by the top level function mmapAlloc\");\n },\n standardizePath: function() {\n abort(\"FS.standardizePath has been removed; use PATH.normalize instead\");\n }\n};\n\nvar SYSCALLS = {\n mappings: {},\n DEFAULT_POLLMASK: 5,\n umask: 511,\n calculateAt: function(dirfd, path) {\n if (path[0] !== \"/\") {\n var dir;\n if (dirfd === -100) {\n dir = FS.cwd();\n } else {\n var dirstream = FS.getStream(dirfd);\n if (!dirstream) throw new FS.ErrnoError(8);\n dir = dirstream.path;\n }\n path = PATH.join2(dir, path);\n }\n return path;\n },\n doStat: function(func, path, buf) {\n try {\n var stat = func(path);\n } catch (e) {\n if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {\n return -54;\n }\n throw e;\n }\n HEAP32[buf >> 2] = stat.dev;\n HEAP32[buf + 4 >> 2] = 0;\n HEAP32[buf + 8 >> 2] = stat.ino;\n HEAP32[buf + 12 >> 2] = stat.mode;\n HEAP32[buf + 16 >> 2] = stat.nlink;\n HEAP32[buf + 20 >> 2] = stat.uid;\n HEAP32[buf + 24 >> 2] = stat.gid;\n HEAP32[buf + 28 >> 2] = stat.rdev;\n HEAP32[buf + 32 >> 2] = 0;\n tempI64 = [ stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], \n HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];\n HEAP32[buf + 48 >> 2] = 4096;\n HEAP32[buf + 52 >> 2] = stat.blocks;\n HEAP32[buf + 56 >> 2] = stat.atime.getTime() / 1e3 | 0;\n HEAP32[buf + 60 >> 2] = 0;\n HEAP32[buf + 64 >> 2] = stat.mtime.getTime() / 1e3 | 0;\n HEAP32[buf + 68 >> 2] = 0;\n HEAP32[buf + 72 >> 2] = stat.ctime.getTime() / 1e3 | 0;\n HEAP32[buf + 76 >> 2] = 0;\n tempI64 = [ stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], \n HEAP32[buf + 80 >> 2] = tempI64[0], HEAP32[buf + 84 >> 2] = tempI64[1];\n return 0;\n },\n doMsync: function(addr, stream, len, flags, offset) {\n var buffer = HEAPU8.slice(addr, addr + len);\n FS.msync(stream, buffer, offset, len, flags);\n },\n doMkdir: function(path, mode) {\n path = PATH.normalize(path);\n if (path[path.length - 1] === \"/\") path = path.substr(0, path.length - 1);\n FS.mkdir(path, mode, 0);\n return 0;\n },\n doMknod: function(path, mode, dev) {\n switch (mode & 61440) {\n case 32768:\n case 8192:\n case 24576:\n case 4096:\n case 49152:\n break;\n\n default:\n return -28;\n }\n FS.mknod(path, mode, dev);\n return 0;\n },\n doReadlink: function(path, buf, bufsize) {\n if (bufsize <= 0) return -28;\n var ret = FS.readlink(path);\n var len = Math.min(bufsize, lengthBytesUTF8(ret));\n var endChar = HEAP8[buf + len];\n stringToUTF8(ret, buf, bufsize + 1);\n HEAP8[buf + len] = endChar;\n return len;\n },\n doAccess: function(path, amode) {\n if (amode & ~7) {\n return -28;\n }\n var node;\n var lookup = FS.lookupPath(path, {\n follow: true\n });\n node = lookup.node;\n if (!node) {\n return -44;\n }\n var perms = \"\";\n if (amode & 4) perms += \"r\";\n if (amode & 2) perms += \"w\";\n if (amode & 1) perms += \"x\";\n if (perms && FS.nodePermissions(node, perms)) {\n return -2;\n }\n return 0;\n },\n doDup: function(path, flags, suggestFD) {\n var suggest = FS.getStream(suggestFD);\n if (suggest) FS.close(suggest);\n return FS.open(path, flags, 0, suggestFD, suggestFD).fd;\n },\n doReadv: function(stream, iov, iovcnt, offset) {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n var curr = FS.read(stream, HEAP8, ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n if (curr < len) break;\n }\n return ret;\n },\n doWritev: function(stream, iov, iovcnt, offset) {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n var curr = FS.write(stream, HEAP8, ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n }\n return ret;\n },\n varargs: undefined,\n get: function() {\n assert(SYSCALLS.varargs != undefined);\n SYSCALLS.varargs += 4;\n var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];\n return ret;\n },\n getStr: function(ptr) {\n var ret = UTF8ToString(ptr);\n return ret;\n },\n getStreamFromFD: function(fd) {\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(8);\n return stream;\n },\n get64: function(low, high) {\n if (low >= 0) assert(high === 0); else assert(high === -1);\n return low;\n }\n};\n\nfunction ___sys_access(path, amode) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doAccess(path, amode);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_chmod(path, mode) {\n try {\n path = SYSCALLS.getStr(path);\n FS.chmod(path, mode);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_chown32(path, owner, group) {\n try {\n path = SYSCALLS.getStr(path);\n FS.chown(path, owner, group);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_fchmod(fd, mode) {\n try {\n FS.fchmod(fd, mode);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_fchown32(fd, owner, group) {\n try {\n FS.fchown(fd, owner, group);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_fcntl64(fd, cmd, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n switch (cmd) {\n case 0:\n {\n var arg = SYSCALLS.get();\n if (arg < 0) {\n return -28;\n }\n var newStream;\n newStream = FS.open(stream.path, stream.flags, 0, arg);\n return newStream.fd;\n }\n\n case 1:\n case 2:\n return 0;\n\n case 3:\n return stream.flags;\n\n case 4:\n {\n var arg = SYSCALLS.get();\n stream.flags |= arg;\n return 0;\n }\n\n case 12:\n {\n var arg = SYSCALLS.get();\n var offset = 0;\n HEAP16[arg + offset >> 1] = 2;\n return 0;\n }\n\n case 13:\n case 14:\n return 0;\n\n case 16:\n case 8:\n return -28;\n\n case 9:\n setErrNo(28);\n return -1;\n\n default:\n {\n return -28;\n }\n }\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_fstat64(fd, buf) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n return SYSCALLS.doStat(FS.stat, stream.path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_ftruncate64(fd, zero, low, high) {\n try {\n var length = SYSCALLS.get64(low, high);\n FS.ftruncate(fd, length);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_getcwd(buf, size) {\n try {\n if (size === 0) return -28;\n var cwd = FS.cwd();\n var cwdLengthInBytes = lengthBytesUTF8(cwd);\n if (size < cwdLengthInBytes + 1) return -68;\n stringToUTF8(cwd, buf, size);\n return buf;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_getegid32() {\n return 0;\n}\n\nfunction ___sys_geteuid32() {\n return ___sys_getegid32();\n}\n\nfunction ___sys_getpid() {\n return 42;\n}\n\nfunction ___sys_ioctl(fd, op, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n switch (op) {\n case 21509:\n case 21505:\n {\n if (!stream.tty) return -59;\n return 0;\n }\n\n case 21510:\n case 21511:\n case 21512:\n case 21506:\n case 21507:\n case 21508:\n {\n if (!stream.tty) return -59;\n return 0;\n }\n\n case 21519:\n {\n if (!stream.tty) return -59;\n var argp = SYSCALLS.get();\n HEAP32[argp >> 2] = 0;\n return 0;\n }\n\n case 21520:\n {\n if (!stream.tty) return -59;\n return -28;\n }\n\n case 21531:\n {\n var argp = SYSCALLS.get();\n return FS.ioctl(stream, op, argp);\n }\n\n case 21523:\n {\n if (!stream.tty) return -59;\n return 0;\n }\n\n case 21524:\n {\n if (!stream.tty) return -59;\n return 0;\n }\n\n default:\n abort(\"bad ioctl syscall \" + op);\n }\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_lstat64(path, buf) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doStat(FS.lstat, path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_mkdir(path, mode) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doMkdir(path, mode);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction syscallMmap2(addr, len, prot, flags, fd, off) {\n off <<= 12;\n var ptr;\n var allocated = false;\n if ((flags & 16) !== 0 && addr % 16384 !== 0) {\n return -28;\n }\n if ((flags & 32) !== 0) {\n ptr = _memalign(16384, len);\n if (!ptr) return -48;\n _memset(ptr, 0, len);\n allocated = true;\n } else {\n var info = FS.getStream(fd);\n if (!info) return -8;\n var res = FS.mmap(info, addr, len, off, prot, flags);\n ptr = res.ptr;\n allocated = res.allocated;\n }\n SYSCALLS.mappings[ptr] = {\n malloc: ptr,\n len: len,\n allocated: allocated,\n fd: fd,\n prot: prot,\n flags: flags,\n offset: off\n };\n return ptr;\n}\n\nfunction ___sys_mmap2(addr, len, prot, flags, fd, off) {\n try {\n return syscallMmap2(addr, len, prot, flags, fd, off);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_mprotect(addr, len, size) {\n return 0;\n}\n\nfunction syscallMunmap(addr, len) {\n if ((addr | 0) === -1 || len === 0) {\n return -28;\n }\n var info = SYSCALLS.mappings[addr];\n if (!info) return 0;\n if (len === info.len) {\n var stream = FS.getStream(info.fd);\n if (stream) {\n if (info.prot & 2) {\n SYSCALLS.doMsync(addr, stream, len, info.flags, info.offset);\n }\n FS.munmap(stream);\n }\n SYSCALLS.mappings[addr] = null;\n if (info.allocated) {\n _free(info.malloc);\n }\n }\n return 0;\n}\n\nfunction ___sys_munmap(addr, len) {\n try {\n return syscallMunmap(addr, len);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_open(path, flags, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var pathname = SYSCALLS.getStr(path);\n var mode = varargs ? SYSCALLS.get() : 0;\n var stream = FS.open(pathname, flags, mode);\n return stream.fd;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_readlink(path, buf, bufsize) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doReadlink(path, buf, bufsize);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_rmdir(path) {\n try {\n path = SYSCALLS.getStr(path);\n FS.rmdir(path);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_stat64(path, buf) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doStat(FS.stat, path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction ___sys_unlink(path) {\n try {\n path = SYSCALLS.getStr(path);\n FS.unlink(path);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n}\n\nfunction _abort() {\n abort();\n}\n\nfunction _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.copyWithin(dest, src, src + num);\n}\n\nfunction _emscripten_get_heap_size() {\n return HEAPU8.length;\n}\n\nfunction emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch (e) {\n console.error(\"emscripten_realloc_buffer: Attempted to grow heap from \" + buffer.byteLength + \" bytes to \" + size + \" bytes, but got error: \" + e);\n }\n}\n\nfunction _emscripten_resize_heap(requestedSize) {\n requestedSize = requestedSize >>> 0;\n var oldSize = _emscripten_get_heap_size();\n assert(requestedSize > oldSize);\n var maxHeapSize = 2147483648;\n if (requestedSize > maxHeapSize) {\n err(\"Cannot enlarge memory, asked to go up to \" + requestedSize + \" bytes, but the limit is \" + maxHeapSize + \" bytes!\");\n return false;\n }\n var minHeapSize = 16777216;\n for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n var overGrownHeapSize = oldSize * (1 + .2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n var newSize = Math.min(maxHeapSize, alignUp(Math.max(minHeapSize, requestedSize, overGrownHeapSize), 65536));\n var replacement = emscripten_realloc_buffer(newSize);\n if (replacement) {\n return true;\n }\n }\n err(\"Failed to grow the heap from \" + oldSize + \" bytes to \" + newSize + \" bytes, not enough memory!\");\n return false;\n}\n\nfunction _emscripten_thread_sleep(msecs) {\n var start = _emscripten_get_now();\n while (_emscripten_get_now() - start < msecs) {}\n}\n\nvar ENV = {};\n\nfunction getExecutableName() {\n return thisProgram || \"./this.program\";\n}\n\nfunction getEnvStrings() {\n if (!getEnvStrings.strings) {\n var lang = (typeof navigator === \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n var env = {\n \"USER\": \"web_user\",\n \"LOGNAME\": \"web_user\",\n \"PATH\": \"/\",\n \"PWD\": \"/\",\n \"HOME\": \"/home/web_user\",\n \"LANG\": lang,\n \"_\": getExecutableName()\n };\n for (var x in ENV) {\n env[x] = ENV[x];\n }\n var strings = [];\n for (var x in env) {\n strings.push(x + \"=\" + env[x]);\n }\n getEnvStrings.strings = strings;\n }\n return getEnvStrings.strings;\n}\n\nfunction _environ_get(__environ, environ_buf) {\n try {\n var bufSize = 0;\n getEnvStrings().forEach(function(string, i) {\n var ptr = environ_buf + bufSize;\n HEAP32[__environ + i * 4 >> 2] = ptr;\n writeAsciiToMemory(string, ptr);\n bufSize += string.length + 1;\n });\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _environ_sizes_get(penviron_count, penviron_buf_size) {\n try {\n var strings = getEnvStrings();\n HEAP32[penviron_count >> 2] = strings.length;\n var bufSize = 0;\n strings.forEach(function(string) {\n bufSize += string.length + 1;\n });\n HEAP32[penviron_buf_size >> 2] = bufSize;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _exit(status) {\n exit(status);\n}\n\nfunction _fd_close(fd) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n FS.close(stream);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_fdstat_get(fd, pbuf) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;\n HEAP8[pbuf >> 0] = type;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_read(fd, iov, iovcnt, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doReadv(stream, iov, iovcnt);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var HIGH_OFFSET = 4294967296;\n var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);\n var DOUBLE_LIMIT = 9007199254740992;\n if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {\n return -61;\n }\n FS.llseek(stream, offset, whence);\n tempI64 = [ stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0) ], \n HEAP32[newOffset >> 2] = tempI64[0], HEAP32[newOffset + 4 >> 2] = tempI64[1];\n if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_sync(fd) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n if (stream.stream_ops && stream.stream_ops.fsync) {\n return -stream.stream_ops.fsync(stream);\n }\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _fd_write(fd, iov, iovcnt, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doWritev(stream, iov, iovcnt);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n}\n\nfunction _getentropy(buffer, size) {\n if (!_getentropy.randomDevice) {\n _getentropy.randomDevice = getRandomDevice();\n }\n for (var i = 0; i < size; i++) {\n HEAP8[buffer + i >> 0] = _getentropy.randomDevice();\n }\n return 0;\n}\n\nfunction _gettimeofday(ptr) {\n var now = Date.now();\n HEAP32[ptr >> 2] = now / 1e3 | 0;\n HEAP32[ptr + 4 >> 2] = now % 1e3 * 1e3 | 0;\n return 0;\n}\n\nfunction _setTempRet0($i) {\n setTempRet0($i | 0);\n}\n\nfunction __isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nfunction __arraySum(array, index) {\n var sum = 0;\n for (var i = 0; i <= index; sum += array[i++]) {}\n return sum;\n}\n\nvar __MONTH_DAYS_LEAP = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];\n\nvar __MONTH_DAYS_REGULAR = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];\n\nfunction __addDays(date, days) {\n var newDate = new Date(date.getTime());\n while (days > 0) {\n var leap = __isLeapYear(newDate.getFullYear());\n var currentMonth = newDate.getMonth();\n var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];\n if (days > daysInCurrentMonth - newDate.getDate()) {\n days -= daysInCurrentMonth - newDate.getDate() + 1;\n newDate.setDate(1);\n if (currentMonth < 11) {\n newDate.setMonth(currentMonth + 1);\n } else {\n newDate.setMonth(0);\n newDate.setFullYear(newDate.getFullYear() + 1);\n }\n } else {\n newDate.setDate(newDate.getDate() + days);\n return newDate;\n }\n }\n return newDate;\n}\n\nfunction _strftime(s, maxsize, format, tm) {\n var tm_zone = HEAP32[tm + 40 >> 2];\n var date = {\n tm_sec: HEAP32[tm >> 2],\n tm_min: HEAP32[tm + 4 >> 2],\n tm_hour: HEAP32[tm + 8 >> 2],\n tm_mday: HEAP32[tm + 12 >> 2],\n tm_mon: HEAP32[tm + 16 >> 2],\n tm_year: HEAP32[tm + 20 >> 2],\n tm_wday: HEAP32[tm + 24 >> 2],\n tm_yday: HEAP32[tm + 28 >> 2],\n tm_isdst: HEAP32[tm + 32 >> 2],\n tm_gmtoff: HEAP32[tm + 36 >> 2],\n tm_zone: tm_zone ? UTF8ToString(tm_zone) : \"\"\n };\n var pattern = UTF8ToString(format);\n var EXPANSION_RULES_1 = {\n \"%c\": \"%a %b %d %H:%M:%S %Y\",\n \"%D\": \"%m/%d/%y\",\n \"%F\": \"%Y-%m-%d\",\n \"%h\": \"%b\",\n \"%r\": \"%I:%M:%S %p\",\n \"%R\": \"%H:%M\",\n \"%T\": \"%H:%M:%S\",\n \"%x\": \"%m/%d/%y\",\n \"%X\": \"%H:%M:%S\",\n \"%Ec\": \"%c\",\n \"%EC\": \"%C\",\n \"%Ex\": \"%m/%d/%y\",\n \"%EX\": \"%H:%M:%S\",\n \"%Ey\": \"%y\",\n \"%EY\": \"%Y\",\n \"%Od\": \"%d\",\n \"%Oe\": \"%e\",\n \"%OH\": \"%H\",\n \"%OI\": \"%I\",\n \"%Om\": \"%m\",\n \"%OM\": \"%M\",\n \"%OS\": \"%S\",\n \"%Ou\": \"%u\",\n \"%OU\": \"%U\",\n \"%OV\": \"%V\",\n \"%Ow\": \"%w\",\n \"%OW\": \"%W\",\n \"%Oy\": \"%y\"\n };\n for (var rule in EXPANSION_RULES_1) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_1[rule]);\n }\n var WEEKDAYS = [ \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\" ];\n var MONTHS = [ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ];\n function leadingSomething(value, digits, character) {\n var str = typeof value === \"number\" ? value.toString() : value || \"\";\n while (str.length < digits) {\n str = character[0] + str;\n }\n return str;\n }\n function leadingNulls(value, digits) {\n return leadingSomething(value, digits, \"0\");\n }\n function compareByDay(date1, date2) {\n function sgn(value) {\n return value < 0 ? -1 : value > 0 ? 1 : 0;\n }\n var compare;\n if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {\n if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {\n compare = sgn(date1.getDate() - date2.getDate());\n }\n }\n return compare;\n }\n function getFirstWeekStartDate(janFourth) {\n switch (janFourth.getDay()) {\n case 0:\n return new Date(janFourth.getFullYear() - 1, 11, 29);\n\n case 1:\n return janFourth;\n\n case 2:\n return new Date(janFourth.getFullYear(), 0, 3);\n\n case 3:\n return new Date(janFourth.getFullYear(), 0, 2);\n\n case 4:\n return new Date(janFourth.getFullYear(), 0, 1);\n\n case 5:\n return new Date(janFourth.getFullYear() - 1, 11, 31);\n\n case 6:\n return new Date(janFourth.getFullYear() - 1, 11, 30);\n }\n }\n function getWeekBasedYear(date) {\n var thisDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);\n var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);\n var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {\n if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {\n return thisDate.getFullYear() + 1;\n } else {\n return thisDate.getFullYear();\n }\n } else {\n return thisDate.getFullYear() - 1;\n }\n }\n var EXPANSION_RULES_2 = {\n \"%a\": function(date) {\n return WEEKDAYS[date.tm_wday].substring(0, 3);\n },\n \"%A\": function(date) {\n return WEEKDAYS[date.tm_wday];\n },\n \"%b\": function(date) {\n return MONTHS[date.tm_mon].substring(0, 3);\n },\n \"%B\": function(date) {\n return MONTHS[date.tm_mon];\n },\n \"%C\": function(date) {\n var year = date.tm_year + 1900;\n return leadingNulls(year / 100 | 0, 2);\n },\n \"%d\": function(date) {\n return leadingNulls(date.tm_mday, 2);\n },\n \"%e\": function(date) {\n return leadingSomething(date.tm_mday, 2, \" \");\n },\n \"%g\": function(date) {\n return getWeekBasedYear(date).toString().substring(2);\n },\n \"%G\": function(date) {\n return getWeekBasedYear(date);\n },\n \"%H\": function(date) {\n return leadingNulls(date.tm_hour, 2);\n },\n \"%I\": function(date) {\n var twelveHour = date.tm_hour;\n if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12;\n return leadingNulls(twelveHour, 2);\n },\n \"%j\": function(date) {\n return leadingNulls(date.tm_mday + __arraySum(__isLeapYear(date.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon - 1), 3);\n },\n \"%m\": function(date) {\n return leadingNulls(date.tm_mon + 1, 2);\n },\n \"%M\": function(date) {\n return leadingNulls(date.tm_min, 2);\n },\n \"%n\": function() {\n return \"\\n\";\n },\n \"%p\": function(date) {\n if (date.tm_hour >= 0 && date.tm_hour < 12) {\n return \"AM\";\n } else {\n return \"PM\";\n }\n },\n \"%S\": function(date) {\n return leadingNulls(date.tm_sec, 2);\n },\n \"%t\": function() {\n return \"\\t\";\n },\n \"%u\": function(date) {\n return date.tm_wday || 7;\n },\n \"%U\": function(date) {\n var janFirst = new Date(date.tm_year + 1900, 0, 1);\n var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay());\n var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday);\n if (compareByDay(firstSunday, endDate) < 0) {\n var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;\n var firstSundayUntilEndJanuary = 31 - firstSunday.getDate();\n var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();\n return leadingNulls(Math.ceil(days / 7), 2);\n }\n return compareByDay(firstSunday, janFirst) === 0 ? \"01\" : \"00\";\n },\n \"%V\": function(date) {\n var janFourthThisYear = new Date(date.tm_year + 1900, 0, 4);\n var janFourthNextYear = new Date(date.tm_year + 1901, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n var endDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);\n if (compareByDay(endDate, firstWeekStartThisYear) < 0) {\n return \"53\";\n }\n if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {\n return \"01\";\n }\n var daysDifference;\n if (firstWeekStartThisYear.getFullYear() < date.tm_year + 1900) {\n daysDifference = date.tm_yday + 32 - firstWeekStartThisYear.getDate();\n } else {\n daysDifference = date.tm_yday + 1 - firstWeekStartThisYear.getDate();\n }\n return leadingNulls(Math.ceil(daysDifference / 7), 2);\n },\n \"%w\": function(date) {\n return date.tm_wday;\n },\n \"%W\": function(date) {\n var janFirst = new Date(date.tm_year, 0, 1);\n var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1);\n var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday);\n if (compareByDay(firstMonday, endDate) < 0) {\n var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;\n var firstMondayUntilEndJanuary = 31 - firstMonday.getDate();\n var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();\n return leadingNulls(Math.ceil(days / 7), 2);\n }\n return compareByDay(firstMonday, janFirst) === 0 ? \"01\" : \"00\";\n },\n \"%y\": function(date) {\n return (date.tm_year + 1900).toString().substring(2);\n },\n \"%Y\": function(date) {\n return date.tm_year + 1900;\n },\n \"%z\": function(date) {\n var off = date.tm_gmtoff;\n var ahead = off >= 0;\n off = Math.abs(off) / 60;\n off = off / 60 * 100 + off % 60;\n return (ahead ? \"+\" : \"-\") + String(\"0000\" + off).slice(-4);\n },\n \"%Z\": function(date) {\n return date.tm_zone;\n },\n \"%%\": function() {\n return \"%\";\n }\n };\n for (var rule in EXPANSION_RULES_2) {\n if (pattern.indexOf(rule) >= 0) {\n pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_2[rule](date));\n }\n }\n var bytes = intArrayFromString(pattern, false);\n if (bytes.length > maxsize) {\n return 0;\n }\n writeArrayToMemory(bytes, s);\n return bytes.length - 1;\n}\n\nfunction _strftime_l(s, maxsize, format, tm) {\n return _strftime(s, maxsize, format, tm);\n}\n\nfunction _sysconf(name) {\n switch (name) {\n case 30:\n return 16384;\n\n case 85:\n var maxHeapSize = 2147483648;\n return maxHeapSize / 16384;\n\n case 132:\n case 133:\n case 12:\n case 137:\n case 138:\n case 15:\n case 235:\n case 16:\n case 17:\n case 18:\n case 19:\n case 20:\n case 149:\n case 13:\n case 10:\n case 236:\n case 153:\n case 9:\n case 21:\n case 22:\n case 159:\n case 154:\n case 14:\n case 77:\n case 78:\n case 139:\n case 82:\n case 68:\n case 67:\n case 164:\n case 11:\n case 29:\n case 47:\n case 48:\n case 95:\n case 52:\n case 51:\n case 46:\n return 200809;\n\n case 27:\n case 246:\n case 127:\n case 128:\n case 23:\n case 24:\n case 160:\n case 161:\n case 181:\n case 182:\n case 242:\n case 183:\n case 184:\n case 243:\n case 244:\n case 245:\n case 165:\n case 178:\n case 179:\n case 49:\n case 50:\n case 168:\n case 169:\n case 175:\n case 170:\n case 171:\n case 172:\n case 97:\n case 76:\n case 32:\n case 173:\n case 35:\n case 80:\n case 81:\n case 79:\n return -1;\n\n case 176:\n case 177:\n case 7:\n case 155:\n case 8:\n case 157:\n case 125:\n case 126:\n case 92:\n case 93:\n case 129:\n case 130:\n case 131:\n case 94:\n case 91:\n return 1;\n\n case 74:\n case 60:\n case 69:\n case 70:\n case 4:\n return 1024;\n\n case 31:\n case 42:\n case 72:\n return 32;\n\n case 87:\n case 26:\n case 33:\n return 2147483647;\n\n case 34:\n case 1:\n return 47839;\n\n case 38:\n case 36:\n return 99;\n\n case 43:\n case 37:\n return 2048;\n\n case 0:\n return 2097152;\n\n case 3:\n return 65536;\n\n case 28:\n return 32768;\n\n case 44:\n return 32767;\n\n case 75:\n return 16384;\n\n case 39:\n return 1e3;\n\n case 89:\n return 700;\n\n case 71:\n return 256;\n\n case 40:\n return 255;\n\n case 2:\n return 100;\n\n case 180:\n return 64;\n\n case 25:\n return 20;\n\n case 5:\n return 16;\n\n case 6:\n return 6;\n\n case 73:\n return 4;\n\n case 84:\n {\n if (typeof navigator === \"object\") return navigator[\"hardwareConcurrency\"] || 1;\n return 1;\n }\n }\n setErrNo(28);\n return -1;\n}\n\nfunction _time(ptr) {\n var ret = Date.now() / 1e3 | 0;\n if (ptr) {\n HEAP32[ptr >> 2] = ret;\n }\n return ret;\n}\n\nfunction setFileTime(path, time) {\n path = UTF8ToString(path);\n try {\n FS.utime(path, time, time);\n return 0;\n } catch (e) {\n if (!(e instanceof FS.ErrnoError)) throw e + \" : \" + stackTrace();\n setErrNo(e.errno);\n return -1;\n }\n}\n\nfunction _utime(path, times) {\n var time;\n if (times) {\n time = HEAP32[times + 4 >> 2] * 1e3;\n } else {\n time = Date.now();\n }\n return setFileTime(path, time);\n}\n\nvar FSNode = function(parent, name, mode, rdev) {\n if (!parent) {\n parent = this;\n }\n this.parent = parent;\n this.mount = parent.mount;\n this.mounted = null;\n this.id = FS.nextInode++;\n this.name = name;\n this.mode = mode;\n this.node_ops = {};\n this.stream_ops = {};\n this.rdev = rdev;\n};\n\nvar readMode = 292 | 73;\n\nvar writeMode = 146;\n\nObject.defineProperties(FSNode.prototype, {\n read: {\n get: function() {\n return (this.mode & readMode) === readMode;\n },\n set: function(val) {\n val ? this.mode |= readMode : this.mode &= ~readMode;\n }\n },\n write: {\n get: function() {\n return (this.mode & writeMode) === writeMode;\n },\n set: function(val) {\n val ? this.mode |= writeMode : this.mode &= ~writeMode;\n }\n },\n isFolder: {\n get: function() {\n return FS.isDir(this.mode);\n }\n },\n isDevice: {\n get: function() {\n return FS.isChrdev(this.mode);\n }\n }\n});\n\nFS.FSNode = FSNode;\n\nFS.staticInit();\n\nvar ASSERTIONS = true;\n\nfunction intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n if (dontAddNull) u8array.length = numBytesWritten;\n return u8array;\n}\n\nvar asmLibraryArg = {\n \"__clock_gettime\": ___clock_gettime,\n \"__cxa_atexit\": ___cxa_atexit,\n \"__localtime_r\": ___localtime_r,\n \"__sys_access\": ___sys_access,\n \"__sys_chmod\": ___sys_chmod,\n \"__sys_chown32\": ___sys_chown32,\n \"__sys_fchmod\": ___sys_fchmod,\n \"__sys_fchown32\": ___sys_fchown32,\n \"__sys_fcntl64\": ___sys_fcntl64,\n \"__sys_fstat64\": ___sys_fstat64,\n \"__sys_ftruncate64\": ___sys_ftruncate64,\n \"__sys_getcwd\": ___sys_getcwd,\n \"__sys_geteuid32\": ___sys_geteuid32,\n \"__sys_getpid\": ___sys_getpid,\n \"__sys_ioctl\": ___sys_ioctl,\n \"__sys_lstat64\": ___sys_lstat64,\n \"__sys_mkdir\": ___sys_mkdir,\n \"__sys_mmap2\": ___sys_mmap2,\n \"__sys_mprotect\": ___sys_mprotect,\n \"__sys_munmap\": ___sys_munmap,\n \"__sys_open\": ___sys_open,\n \"__sys_readlink\": ___sys_readlink,\n \"__sys_rmdir\": ___sys_rmdir,\n \"__sys_stat64\": ___sys_stat64,\n \"__sys_unlink\": ___sys_unlink,\n \"abort\": _abort,\n \"emscripten_get_now\": _emscripten_get_now,\n \"emscripten_memcpy_big\": _emscripten_memcpy_big,\n \"emscripten_resize_heap\": _emscripten_resize_heap,\n \"emscripten_thread_sleep\": _emscripten_thread_sleep,\n \"environ_get\": _environ_get,\n \"environ_sizes_get\": _environ_sizes_get,\n \"exit\": _exit,\n \"fd_close\": _fd_close,\n \"fd_fdstat_get\": _fd_fdstat_get,\n \"fd_read\": _fd_read,\n \"fd_seek\": _fd_seek,\n \"fd_sync\": _fd_sync,\n \"fd_write\": _fd_write,\n \"getentropy\": _getentropy,\n \"gettimeofday\": _gettimeofday,\n \"setTempRet0\": _setTempRet0,\n \"strftime\": _strftime,\n \"strftime_l\": _strftime_l,\n \"sysconf\": _sysconf,\n \"time\": _time,\n \"utime\": _utime\n};\n\nvar asm = createWasm();\n\nvar ___wasm_call_ctors = Module[\"___wasm_call_ctors\"] = createExportWrapper(\"__wasm_call_ctors\", asm);\n\nvar ___errno_location = Module[\"___errno_location\"] = createExportWrapper(\"__errno_location\", asm);\n\nvar _memset = Module[\"_memset\"] = createExportWrapper(\"memset\", asm);\n\nvar _main = Module[\"_main\"] = createExportWrapper(\"main\", asm);\n\nvar _fflush = Module[\"_fflush\"] = createExportWrapper(\"fflush\", asm);\n\nvar _free = Module[\"_free\"] = createExportWrapper(\"free\", asm);\n\nvar _malloc = Module[\"_malloc\"] = createExportWrapper(\"malloc\", asm);\n\nvar _usleep = Module[\"_usleep\"] = createExportWrapper(\"usleep\", asm);\n\nvar __get_tzname = Module[\"__get_tzname\"] = createExportWrapper(\"_get_tzname\", asm);\n\nvar __get_daylight = Module[\"__get_daylight\"] = createExportWrapper(\"_get_daylight\", asm);\n\nvar __get_timezone = Module[\"__get_timezone\"] = createExportWrapper(\"_get_timezone\", asm);\n\nvar _emscripten_main_thread_process_queued_calls = Module[\"_emscripten_main_thread_process_queued_calls\"] = createExportWrapper(\"emscripten_main_thread_process_queued_calls\", asm);\n\nvar _emscripten_stack_get_end = Module[\"_emscripten_stack_get_end\"] = asm[\"emscripten_stack_get_end\"];\n\nvar stackSave = Module[\"stackSave\"] = createExportWrapper(\"stackSave\", asm);\n\nvar stackRestore = Module[\"stackRestore\"] = createExportWrapper(\"stackRestore\", asm);\n\nvar stackAlloc = Module[\"stackAlloc\"] = createExportWrapper(\"stackAlloc\", asm);\n\nvar _emscripten_stack_init = Module[\"_emscripten_stack_init\"] = asm[\"emscripten_stack_init\"];\n\nvar _emscripten_stack_get_free = Module[\"_emscripten_stack_get_free\"] = asm[\"emscripten_stack_get_free\"];\n\nvar _memalign = Module[\"_memalign\"] = createExportWrapper(\"memalign\", asm);\n\nvar dynCall_viijii = Module[\"dynCall_viijii\"] = createExportWrapper(\"dynCall_viijii\", asm);\n\nvar dynCall_viiiiji = Module[\"dynCall_viiiiji\"] = createExportWrapper(\"dynCall_viiiiji\", asm);\n\nvar dynCall_viiij = Module[\"dynCall_viiij\"] = createExportWrapper(\"dynCall_viiij\", asm);\n\nvar dynCall_iiiij = Module[\"dynCall_iiiij\"] = createExportWrapper(\"dynCall_iiiij\", asm);\n\nvar dynCall_iij = Module[\"dynCall_iij\"] = createExportWrapper(\"dynCall_iij\", asm);\n\nvar dynCall_iijii = Module[\"dynCall_iijii\"] = createExportWrapper(\"dynCall_iijii\", asm);\n\nvar dynCall_iiji = Module[\"dynCall_iiji\"] = createExportWrapper(\"dynCall_iiji\", asm);\n\nvar dynCall_iiiiiij = Module[\"dynCall_iiiiiij\"] = createExportWrapper(\"dynCall_iiiiiij\", asm);\n\nvar dynCall_viiiijii = Module[\"dynCall_viiiijii\"] = createExportWrapper(\"dynCall_viiiijii\", asm);\n\nvar dynCall_viiji = Module[\"dynCall_viiji\"] = createExportWrapper(\"dynCall_viiji\", asm);\n\nvar dynCall_viij = Module[\"dynCall_viij\"] = createExportWrapper(\"dynCall_viij\", asm);\n\nvar dynCall_viji = Module[\"dynCall_viji\"] = createExportWrapper(\"dynCall_viji\", asm);\n\nvar dynCall_iiij = Module[\"dynCall_iiij\"] = createExportWrapper(\"dynCall_iiij\", asm);\n\nvar dynCall_viijdi = Module[\"dynCall_viijdi\"] = createExportWrapper(\"dynCall_viijdi\", asm);\n\nvar dynCall_viijdii = Module[\"dynCall_viijdii\"] = createExportWrapper(\"dynCall_viijdii\", asm);\n\nvar dynCall_iijijii = Module[\"dynCall_iijijii\"] = createExportWrapper(\"dynCall_iijijii\", asm);\n\nvar dynCall_viijiiii = Module[\"dynCall_viijiiii\"] = createExportWrapper(\"dynCall_viijiiii\", asm);\n\nvar dynCall_viijiiiji = Module[\"dynCall_viijiiiji\"] = createExportWrapper(\"dynCall_viijiiiji\", asm);\n\nvar dynCall_viijiii = Module[\"dynCall_viijiii\"] = createExportWrapper(\"dynCall_viijiii\", asm);\n\nvar dynCall_viijiiijiii = Module[\"dynCall_viijiiijiii\"] = createExportWrapper(\"dynCall_viijiiijiii\", asm);\n\nvar dynCall_jiji = Module[\"dynCall_jiji\"] = createExportWrapper(\"dynCall_jiji\", asm);\n\nvar dynCall_iiiiij = Module[\"dynCall_iiiiij\"] = createExportWrapper(\"dynCall_iiiiij\", asm);\n\nvar dynCall_iiiiijj = Module[\"dynCall_iiiiijj\"] = createExportWrapper(\"dynCall_iiiiijj\", asm);\n\nvar dynCall_iiiiiijj = Module[\"dynCall_iiiiiijj\"] = createExportWrapper(\"dynCall_iiiiiijj\", asm);\n\nif (!Object.getOwnPropertyDescriptor(Module, \"intArrayFromString\")) Module[\"intArrayFromString\"] = function() {\n abort(\"'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"intArrayToString\")) Module[\"intArrayToString\"] = function() {\n abort(\"'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"ccall\"] = ccall;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"cwrap\")) Module[\"cwrap\"] = function() {\n abort(\"'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setValue\")) Module[\"setValue\"] = function() {\n abort(\"'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getValue\")) Module[\"getValue\"] = function() {\n abort(\"'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"allocate\")) Module[\"allocate\"] = function() {\n abort(\"'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UTF8ArrayToString\")) Module[\"UTF8ArrayToString\"] = function() {\n abort(\"'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UTF8ToString\")) Module[\"UTF8ToString\"] = function() {\n abort(\"'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToUTF8Array\")) Module[\"stringToUTF8Array\"] = function() {\n abort(\"'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToUTF8\")) Module[\"stringToUTF8\"] = function() {\n abort(\"'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"lengthBytesUTF8\")) Module[\"lengthBytesUTF8\"] = function() {\n abort(\"'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackTrace\")) Module[\"stackTrace\"] = function() {\n abort(\"'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnPreRun\")) Module[\"addOnPreRun\"] = function() {\n abort(\"'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnInit\")) Module[\"addOnInit\"] = function() {\n abort(\"'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnPreMain\")) Module[\"addOnPreMain\"] = function() {\n abort(\"'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnExit\")) Module[\"addOnExit\"] = function() {\n abort(\"'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addOnPostRun\")) Module[\"addOnPostRun\"] = function() {\n abort(\"'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeStringToMemory\")) Module[\"writeStringToMemory\"] = function() {\n abort(\"'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeArrayToMemory\")) Module[\"writeArrayToMemory\"] = function() {\n abort(\"'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeAsciiToMemory\")) Module[\"writeAsciiToMemory\"] = function() {\n abort(\"'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"addRunDependency\")) Module[\"addRunDependency\"] = function() {\n abort(\"'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"removeRunDependency\")) Module[\"removeRunDependency\"] = function() {\n abort(\"'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createFolder\")) Module[\"FS_createFolder\"] = function() {\n abort(\"'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createPath\")) Module[\"FS_createPath\"] = function() {\n abort(\"'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createDataFile\")) Module[\"FS_createDataFile\"] = function() {\n abort(\"'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createPreloadedFile\")) Module[\"FS_createPreloadedFile\"] = function() {\n abort(\"'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createLazyFile\")) Module[\"FS_createLazyFile\"] = function() {\n abort(\"'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createLink\")) Module[\"FS_createLink\"] = function() {\n abort(\"'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_createDevice\")) Module[\"FS_createDevice\"] = function() {\n abort(\"'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"FS_unlink\")) Module[\"FS_unlink\"] = function() {\n abort(\"'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getLEB\")) Module[\"getLEB\"] = function() {\n abort(\"'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getFunctionTables\")) Module[\"getFunctionTables\"] = function() {\n abort(\"'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"alignFunctionTables\")) Module[\"alignFunctionTables\"] = function() {\n abort(\"'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerFunctions\")) Module[\"registerFunctions\"] = function() {\n abort(\"'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"addFunction\"] = addFunction;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"removeFunction\")) Module[\"removeFunction\"] = function() {\n abort(\"'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getFuncWrapper\")) Module[\"getFuncWrapper\"] = function() {\n abort(\"'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"prettyPrint\")) Module[\"prettyPrint\"] = function() {\n abort(\"'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"makeBigInt\")) Module[\"makeBigInt\"] = function() {\n abort(\"'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"dynCall\")) Module[\"dynCall\"] = function() {\n abort(\"'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getCompilerSetting\")) Module[\"getCompilerSetting\"] = function() {\n abort(\"'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"print\")) Module[\"print\"] = function() {\n abort(\"'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"printErr\")) Module[\"printErr\"] = function() {\n abort(\"'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getTempRet0\")) Module[\"getTempRet0\"] = function() {\n abort(\"'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setTempRet0\")) Module[\"setTempRet0\"] = function() {\n abort(\"'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"callMain\"] = callMain;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"abort\")) Module[\"abort\"] = function() {\n abort(\"'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToNewUTF8\")) Module[\"stringToNewUTF8\"] = function() {\n abort(\"'stringToNewUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setFileTime\")) Module[\"setFileTime\"] = function() {\n abort(\"'setFileTime' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscripten_realloc_buffer\")) Module[\"emscripten_realloc_buffer\"] = function() {\n abort(\"'emscripten_realloc_buffer' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ENV\")) Module[\"ENV\"] = function() {\n abort(\"'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ERRNO_CODES\")) Module[\"ERRNO_CODES\"] = function() {\n abort(\"'ERRNO_CODES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ERRNO_MESSAGES\")) Module[\"ERRNO_MESSAGES\"] = function() {\n abort(\"'ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setErrNo\")) Module[\"setErrNo\"] = function() {\n abort(\"'setErrNo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"DNS\")) Module[\"DNS\"] = function() {\n abort(\"'DNS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getHostByName\")) Module[\"getHostByName\"] = function() {\n abort(\"'getHostByName' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GAI_ERRNO_MESSAGES\")) Module[\"GAI_ERRNO_MESSAGES\"] = function() {\n abort(\"'GAI_ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"Protocols\")) Module[\"Protocols\"] = function() {\n abort(\"'Protocols' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"Sockets\")) Module[\"Sockets\"] = function() {\n abort(\"'Sockets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getRandomDevice\")) Module[\"getRandomDevice\"] = function() {\n abort(\"'getRandomDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"traverseStack\")) Module[\"traverseStack\"] = function() {\n abort(\"'traverseStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UNWIND_CACHE\")) Module[\"UNWIND_CACHE\"] = function() {\n abort(\"'UNWIND_CACHE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"withBuiltinMalloc\")) Module[\"withBuiltinMalloc\"] = function() {\n abort(\"'withBuiltinMalloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readAsmConstArgsArray\")) Module[\"readAsmConstArgsArray\"] = function() {\n abort(\"'readAsmConstArgsArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readAsmConstArgs\")) Module[\"readAsmConstArgs\"] = function() {\n abort(\"'readAsmConstArgs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"mainThreadEM_ASM\")) Module[\"mainThreadEM_ASM\"] = function() {\n abort(\"'mainThreadEM_ASM' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"jstoi_q\")) Module[\"jstoi_q\"] = function() {\n abort(\"'jstoi_q' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"jstoi_s\")) Module[\"jstoi_s\"] = function() {\n abort(\"'jstoi_s' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getExecutableName\")) Module[\"getExecutableName\"] = function() {\n abort(\"'getExecutableName' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"listenOnce\")) Module[\"listenOnce\"] = function() {\n abort(\"'listenOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"autoResumeAudioContext\")) Module[\"autoResumeAudioContext\"] = function() {\n abort(\"'autoResumeAudioContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"dynCallLegacy\")) Module[\"dynCallLegacy\"] = function() {\n abort(\"'dynCallLegacy' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getDynCaller\")) Module[\"getDynCaller\"] = function() {\n abort(\"'getDynCaller' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"dynCall\")) Module[\"dynCall\"] = function() {\n abort(\"'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"callRuntimeCallbacks\")) Module[\"callRuntimeCallbacks\"] = function() {\n abort(\"'callRuntimeCallbacks' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"abortStackOverflow\")) Module[\"abortStackOverflow\"] = function() {\n abort(\"'abortStackOverflow' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"reallyNegative\")) Module[\"reallyNegative\"] = function() {\n abort(\"'reallyNegative' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"unSign\")) Module[\"unSign\"] = function() {\n abort(\"'unSign' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"reSign\")) Module[\"reSign\"] = function() {\n abort(\"'reSign' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"formatString\")) Module[\"formatString\"] = function() {\n abort(\"'formatString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"PATH\")) Module[\"PATH\"] = function() {\n abort(\"'PATH' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"PATH_FS\")) Module[\"PATH_FS\"] = function() {\n abort(\"'PATH_FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SYSCALLS\")) Module[\"SYSCALLS\"] = function() {\n abort(\"'SYSCALLS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"syscallMmap2\")) Module[\"syscallMmap2\"] = function() {\n abort(\"'syscallMmap2' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"syscallMunmap\")) Module[\"syscallMunmap\"] = function() {\n abort(\"'syscallMunmap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"JSEvents\")) Module[\"JSEvents\"] = function() {\n abort(\"'JSEvents' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerKeyEventCallback\")) Module[\"registerKeyEventCallback\"] = function() {\n abort(\"'registerKeyEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"specialHTMLTargets\")) Module[\"specialHTMLTargets\"] = function() {\n abort(\"'specialHTMLTargets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"maybeCStringToJsString\")) Module[\"maybeCStringToJsString\"] = function() {\n abort(\"'maybeCStringToJsString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"findEventTarget\")) Module[\"findEventTarget\"] = function() {\n abort(\"'findEventTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"findCanvasEventTarget\")) Module[\"findCanvasEventTarget\"] = function() {\n abort(\"'findCanvasEventTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getBoundingClientRect\")) Module[\"getBoundingClientRect\"] = function() {\n abort(\"'getBoundingClientRect' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillMouseEventData\")) Module[\"fillMouseEventData\"] = function() {\n abort(\"'fillMouseEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerMouseEventCallback\")) Module[\"registerMouseEventCallback\"] = function() {\n abort(\"'registerMouseEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerWheelEventCallback\")) Module[\"registerWheelEventCallback\"] = function() {\n abort(\"'registerWheelEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerUiEventCallback\")) Module[\"registerUiEventCallback\"] = function() {\n abort(\"'registerUiEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerFocusEventCallback\")) Module[\"registerFocusEventCallback\"] = function() {\n abort(\"'registerFocusEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillDeviceOrientationEventData\")) Module[\"fillDeviceOrientationEventData\"] = function() {\n abort(\"'fillDeviceOrientationEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerDeviceOrientationEventCallback\")) Module[\"registerDeviceOrientationEventCallback\"] = function() {\n abort(\"'registerDeviceOrientationEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillDeviceMotionEventData\")) Module[\"fillDeviceMotionEventData\"] = function() {\n abort(\"'fillDeviceMotionEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerDeviceMotionEventCallback\")) Module[\"registerDeviceMotionEventCallback\"] = function() {\n abort(\"'registerDeviceMotionEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"screenOrientation\")) Module[\"screenOrientation\"] = function() {\n abort(\"'screenOrientation' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillOrientationChangeEventData\")) Module[\"fillOrientationChangeEventData\"] = function() {\n abort(\"'fillOrientationChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerOrientationChangeEventCallback\")) Module[\"registerOrientationChangeEventCallback\"] = function() {\n abort(\"'registerOrientationChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillFullscreenChangeEventData\")) Module[\"fillFullscreenChangeEventData\"] = function() {\n abort(\"'fillFullscreenChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerFullscreenChangeEventCallback\")) Module[\"registerFullscreenChangeEventCallback\"] = function() {\n abort(\"'registerFullscreenChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerRestoreOldStyle\")) Module[\"registerRestoreOldStyle\"] = function() {\n abort(\"'registerRestoreOldStyle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"hideEverythingExceptGivenElement\")) Module[\"hideEverythingExceptGivenElement\"] = function() {\n abort(\"'hideEverythingExceptGivenElement' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"restoreHiddenElements\")) Module[\"restoreHiddenElements\"] = function() {\n abort(\"'restoreHiddenElements' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setLetterbox\")) Module[\"setLetterbox\"] = function() {\n abort(\"'setLetterbox' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"currentFullscreenStrategy\")) Module[\"currentFullscreenStrategy\"] = function() {\n abort(\"'currentFullscreenStrategy' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"restoreOldWindowedStyle\")) Module[\"restoreOldWindowedStyle\"] = function() {\n abort(\"'restoreOldWindowedStyle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"softFullscreenResizeWebGLRenderTarget\")) Module[\"softFullscreenResizeWebGLRenderTarget\"] = function() {\n abort(\"'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"doRequestFullscreen\")) Module[\"doRequestFullscreen\"] = function() {\n abort(\"'doRequestFullscreen' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillPointerlockChangeEventData\")) Module[\"fillPointerlockChangeEventData\"] = function() {\n abort(\"'fillPointerlockChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerPointerlockChangeEventCallback\")) Module[\"registerPointerlockChangeEventCallback\"] = function() {\n abort(\"'registerPointerlockChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerPointerlockErrorEventCallback\")) Module[\"registerPointerlockErrorEventCallback\"] = function() {\n abort(\"'registerPointerlockErrorEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"requestPointerLock\")) Module[\"requestPointerLock\"] = function() {\n abort(\"'requestPointerLock' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillVisibilityChangeEventData\")) Module[\"fillVisibilityChangeEventData\"] = function() {\n abort(\"'fillVisibilityChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerVisibilityChangeEventCallback\")) Module[\"registerVisibilityChangeEventCallback\"] = function() {\n abort(\"'registerVisibilityChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerTouchEventCallback\")) Module[\"registerTouchEventCallback\"] = function() {\n abort(\"'registerTouchEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillGamepadEventData\")) Module[\"fillGamepadEventData\"] = function() {\n abort(\"'fillGamepadEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerGamepadEventCallback\")) Module[\"registerGamepadEventCallback\"] = function() {\n abort(\"'registerGamepadEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerBeforeUnloadEventCallback\")) Module[\"registerBeforeUnloadEventCallback\"] = function() {\n abort(\"'registerBeforeUnloadEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"fillBatteryEventData\")) Module[\"fillBatteryEventData\"] = function() {\n abort(\"'fillBatteryEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"battery\")) Module[\"battery\"] = function() {\n abort(\"'battery' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"registerBatteryEventCallback\")) Module[\"registerBatteryEventCallback\"] = function() {\n abort(\"'registerBatteryEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setCanvasElementSize\")) Module[\"setCanvasElementSize\"] = function() {\n abort(\"'setCanvasElementSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getCanvasElementSize\")) Module[\"getCanvasElementSize\"] = function() {\n abort(\"'getCanvasElementSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"polyfillSetImmediate\")) Module[\"polyfillSetImmediate\"] = function() {\n abort(\"'polyfillSetImmediate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"demangle\")) Module[\"demangle\"] = function() {\n abort(\"'demangle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"demangleAll\")) Module[\"demangleAll\"] = function() {\n abort(\"'demangleAll' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"jsStackTrace\")) Module[\"jsStackTrace\"] = function() {\n abort(\"'jsStackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackTrace\")) Module[\"stackTrace\"] = function() {\n abort(\"'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getEnvStrings\")) Module[\"getEnvStrings\"] = function() {\n abort(\"'getEnvStrings' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"checkWasiClock\")) Module[\"checkWasiClock\"] = function() {\n abort(\"'checkWasiClock' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToI64\")) Module[\"writeI53ToI64\"] = function() {\n abort(\"'writeI53ToI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToI64Clamped\")) Module[\"writeI53ToI64Clamped\"] = function() {\n abort(\"'writeI53ToI64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToI64Signaling\")) Module[\"writeI53ToI64Signaling\"] = function() {\n abort(\"'writeI53ToI64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToU64Clamped\")) Module[\"writeI53ToU64Clamped\"] = function() {\n abort(\"'writeI53ToU64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeI53ToU64Signaling\")) Module[\"writeI53ToU64Signaling\"] = function() {\n abort(\"'writeI53ToU64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readI53FromI64\")) Module[\"readI53FromI64\"] = function() {\n abort(\"'readI53FromI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"readI53FromU64\")) Module[\"readI53FromU64\"] = function() {\n abort(\"'readI53FromU64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"convertI32PairToI53\")) Module[\"convertI32PairToI53\"] = function() {\n abort(\"'convertI32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"convertU32PairToI53\")) Module[\"convertU32PairToI53\"] = function() {\n abort(\"'convertU32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"uncaughtExceptionCount\")) Module[\"uncaughtExceptionCount\"] = function() {\n abort(\"'uncaughtExceptionCount' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"exceptionLast\")) Module[\"exceptionLast\"] = function() {\n abort(\"'exceptionLast' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"exceptionCaught\")) Module[\"exceptionCaught\"] = function() {\n abort(\"'exceptionCaught' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ExceptionInfoAttrs\")) Module[\"ExceptionInfoAttrs\"] = function() {\n abort(\"'ExceptionInfoAttrs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ExceptionInfo\")) Module[\"ExceptionInfo\"] = function() {\n abort(\"'ExceptionInfo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"CatchInfo\")) Module[\"CatchInfo\"] = function() {\n abort(\"'CatchInfo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"exception_addRef\")) Module[\"exception_addRef\"] = function() {\n abort(\"'exception_addRef' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"exception_decRef\")) Module[\"exception_decRef\"] = function() {\n abort(\"'exception_decRef' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"Browser\")) Module[\"Browser\"] = function() {\n abort(\"'Browser' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"funcWrappers\")) Module[\"funcWrappers\"] = function() {\n abort(\"'funcWrappers' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"getFuncWrapper\")) Module[\"getFuncWrapper\"] = function() {\n abort(\"'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"setMainLoop\")) Module[\"setMainLoop\"] = function() {\n abort(\"'setMainLoop' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"FS\"] = FS;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"mmapAlloc\")) Module[\"mmapAlloc\"] = function() {\n abort(\"'mmapAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"MEMFS\")) Module[\"MEMFS\"] = function() {\n abort(\"'MEMFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"TTY\")) Module[\"TTY\"] = function() {\n abort(\"'TTY' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"PIPEFS\")) Module[\"PIPEFS\"] = function() {\n abort(\"'PIPEFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SOCKFS\")) Module[\"SOCKFS\"] = function() {\n abort(\"'SOCKFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"tempFixedLengthArray\")) Module[\"tempFixedLengthArray\"] = function() {\n abort(\"'tempFixedLengthArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"miniTempWebGLFloatBuffers\")) Module[\"miniTempWebGLFloatBuffers\"] = function() {\n abort(\"'miniTempWebGLFloatBuffers' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"heapObjectForWebGLType\")) Module[\"heapObjectForWebGLType\"] = function() {\n abort(\"'heapObjectForWebGLType' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"heapAccessShiftForWebGLHeap\")) Module[\"heapAccessShiftForWebGLHeap\"] = function() {\n abort(\"'heapAccessShiftForWebGLHeap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GL\")) Module[\"GL\"] = function() {\n abort(\"'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscriptenWebGLGet\")) Module[\"emscriptenWebGLGet\"] = function() {\n abort(\"'emscriptenWebGLGet' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"computeUnpackAlignedImageSize\")) Module[\"computeUnpackAlignedImageSize\"] = function() {\n abort(\"'computeUnpackAlignedImageSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscriptenWebGLGetTexPixelData\")) Module[\"emscriptenWebGLGetTexPixelData\"] = function() {\n abort(\"'emscriptenWebGLGetTexPixelData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscriptenWebGLGetUniform\")) Module[\"emscriptenWebGLGetUniform\"] = function() {\n abort(\"'emscriptenWebGLGetUniform' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"emscriptenWebGLGetVertexAttrib\")) Module[\"emscriptenWebGLGetVertexAttrib\"] = function() {\n abort(\"'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"writeGLArray\")) Module[\"writeGLArray\"] = function() {\n abort(\"'writeGLArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"AL\")) Module[\"AL\"] = function() {\n abort(\"'AL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL_unicode\")) Module[\"SDL_unicode\"] = function() {\n abort(\"'SDL_unicode' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL_ttfContext\")) Module[\"SDL_ttfContext\"] = function() {\n abort(\"'SDL_ttfContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL_audio\")) Module[\"SDL_audio\"] = function() {\n abort(\"'SDL_audio' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL\")) Module[\"SDL\"] = function() {\n abort(\"'SDL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"SDL_gfx\")) Module[\"SDL_gfx\"] = function() {\n abort(\"'SDL_gfx' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GLUT\")) Module[\"GLUT\"] = function() {\n abort(\"'GLUT' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"EGL\")) Module[\"EGL\"] = function() {\n abort(\"'EGL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GLFW_Window\")) Module[\"GLFW_Window\"] = function() {\n abort(\"'GLFW_Window' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GLFW\")) Module[\"GLFW\"] = function() {\n abort(\"'GLFW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"GLEW\")) Module[\"GLEW\"] = function() {\n abort(\"'GLEW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"IDBStore\")) Module[\"IDBStore\"] = function() {\n abort(\"'IDBStore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"runAndAbortIfError\")) Module[\"runAndAbortIfError\"] = function() {\n abort(\"'runAndAbortIfError' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"WORKERFS\")) Module[\"WORKERFS\"] = function() {\n abort(\"'WORKERFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"warnOnce\")) Module[\"warnOnce\"] = function() {\n abort(\"'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackSave\")) Module[\"stackSave\"] = function() {\n abort(\"'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackRestore\")) Module[\"stackRestore\"] = function() {\n abort(\"'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stackAlloc\")) Module[\"stackAlloc\"] = function() {\n abort(\"'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"AsciiToString\")) Module[\"AsciiToString\"] = function() {\n abort(\"'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToAscii\")) Module[\"stringToAscii\"] = function() {\n abort(\"'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UTF16ToString\")) Module[\"UTF16ToString\"] = function() {\n abort(\"'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToUTF16\")) Module[\"stringToUTF16\"] = function() {\n abort(\"'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"lengthBytesUTF16\")) Module[\"lengthBytesUTF16\"] = function() {\n abort(\"'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"UTF32ToString\")) Module[\"UTF32ToString\"] = function() {\n abort(\"'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"stringToUTF32\")) Module[\"stringToUTF32\"] = function() {\n abort(\"'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"lengthBytesUTF32\")) Module[\"lengthBytesUTF32\"] = function() {\n abort(\"'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"allocateUTF8\")) Module[\"allocateUTF8\"] = function() {\n abort(\"'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nif (!Object.getOwnPropertyDescriptor(Module, \"allocateUTF8OnStack\")) Module[\"allocateUTF8OnStack\"] = function() {\n abort(\"'allocateUTF8OnStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n};\n\nModule[\"writeStackCookie\"] = writeStackCookie;\n\nModule[\"checkStackCookie\"] = checkStackCookie;\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ALLOC_NORMAL\")) Object.defineProperty(Module, \"ALLOC_NORMAL\", {\n configurable: true,\n get: function() {\n abort(\"'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n});\n\nif (!Object.getOwnPropertyDescriptor(Module, \"ALLOC_STACK\")) Object.defineProperty(Module, \"ALLOC_STACK\", {\n configurable: true,\n get: function() {\n abort(\"'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n});\n\nvar calledRun;\n\nfunction ExitStatus(status) {\n this.name = \"ExitStatus\";\n this.message = \"Program terminated with exit(\" + status + \")\";\n this.status = status;\n}\n\nvar calledMain = false;\n\ndependenciesFulfilled = function runCaller() {\n if (!calledRun) run();\n if (!calledRun) dependenciesFulfilled = runCaller;\n};\n\nfunction callMain(args) {\n assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module[\"onRuntimeInitialized\"])');\n assert(__ATPRERUN__.length == 0, \"cannot call main when preRun functions remain to be called\");\n var entryFunction = Module[\"_main\"];\n args = args || [];\n var argc = args.length + 1;\n var argv = stackAlloc((argc + 1) * 4);\n HEAP32[argv >> 2] = allocateUTF8OnStack(thisProgram);\n for (var i = 1; i < argc; i++) {\n HEAP32[(argv >> 2) + i] = allocateUTF8OnStack(args[i - 1]);\n }\n HEAP32[(argv >> 2) + argc] = 0;\n try {\n var ret = entryFunction(argc, argv);\n exit(ret, true);\n } catch (e) {\n if (e instanceof ExitStatus) {\n return;\n } else if (e == \"unwind\") {\n noExitRuntime = true;\n return;\n } else {\n var toLog = e;\n if (e && typeof e === \"object\" && e.stack) {\n toLog = [ e, e.stack ];\n }\n err(\"exception thrown: \" + toLog);\n quit_(1, e);\n }\n } finally {\n calledMain = true;\n }\n}\n\nfunction run(args) {\n args = args || arguments_;\n if (runDependencies > 0) {\n return;\n }\n _emscripten_stack_init();\n writeStackCookie();\n preRun();\n if (runDependencies > 0) return;\n function doRun() {\n if (calledRun) return;\n calledRun = true;\n Module[\"calledRun\"] = true;\n if (ABORT) return;\n initRuntime();\n preMain();\n readyPromiseResolve(Module);\n if (Module[\"onRuntimeInitialized\"]) Module[\"onRuntimeInitialized\"]();\n if (shouldRunNow) callMain(args);\n postRun();\n }\n if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");\n setTimeout(function() {\n setTimeout(function() {\n Module[\"setStatus\"](\"\");\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n checkStackCookie();\n}\n\nModule[\"run\"] = run;\n\nfunction checkUnflushedContent() {\n var oldOut = out;\n var oldErr = err;\n var has = false;\n out = err = function(x) {\n has = true;\n };\n try {\n var flush = Module[\"_fflush\"];\n if (flush) flush(0);\n [ \"stdout\", \"stderr\" ].forEach(function(name) {\n var info = FS.analyzePath(\"/dev/\" + name);\n if (!info) return;\n var stream = info.object;\n var rdev = stream.rdev;\n var tty = TTY.ttys[rdev];\n if (tty && tty.output && tty.output.length) {\n has = true;\n }\n });\n } catch (e) {}\n out = oldOut;\n err = oldErr;\n if (has) {\n warnOnce(\"stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.\");\n }\n}\n\nfunction exit(status, implicit) {\n checkUnflushedContent();\n if (implicit && noExitRuntime && status === 0) {\n return;\n }\n if (noExitRuntime) {\n if (!implicit) {\n var msg = \"program exited (with status: \" + status + \"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)\";\n readyPromiseReject(msg);\n err(msg);\n }\n } else {\n EXITSTATUS = status;\n exitRuntime();\n if (Module[\"onExit\"]) Module[\"onExit\"](status);\n ABORT = true;\n }\n quit_(status, new ExitStatus(status));\n}\n\nif (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\") Module[\"preInit\"] = [ Module[\"preInit\"] ];\n while (Module[\"preInit\"].length > 0) {\n Module[\"preInit\"].pop()();\n }\n}\n\nvar shouldRunNow = true;\n\nif (Module[\"noInitialRun\"]) shouldRunNow = false;\n\nnoExitRuntime = true;\n\nrun();\n\n\n return trace_to_text_wasm\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = trace_to_text_wasm;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return trace_to_text_wasm; });\nelse if (typeof exports === 'object')\n exports[\"trace_to_text_wasm\"] = trace_to_text_wasm;\n","// Copyright (C) 2021 The Android Open Source Project\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nimport {defer} from '../base/deferred';\nimport {assertExists, reportError, setErrorHandler} from '../base/logging';\nimport {\n ConversionJobName,\n ConversionJobStatus\n} from '../common/conversion_jobs';\nimport * as trace_to_text from '../gen/trace_to_text';\n\nconst selfWorker = self as {} as Worker;\n\n// TODO(hjd): The trace ends up being copied too many times due to how\n// blob works. We should reduce the number of copies.\n\ntype Format = 'json'|'systrace';\ntype Args = ConvertTraceAndDownloadArgs|ConvertTraceAndOpenInLegacyArgs|\n ConvertTraceToPprofArgs;\n\nfunction updateStatus(status: string) {\n selfWorker.postMessage({\n kind: 'updateStatus',\n status,\n });\n}\n\nfunction updateJobStatus(name: ConversionJobName, status: ConversionJobStatus) {\n selfWorker.postMessage({\n kind: 'updateJobStatus',\n name,\n status,\n });\n}\n\nfunction downloadFile(buffer: Uint8Array, name: string) {\n selfWorker.postMessage({\n kind: 'downloadFile',\n buffer,\n name,\n }, [buffer.buffer]);\n}\n\nfunction openTraceInLegacy(buffer: Uint8Array) {\n selfWorker.postMessage({\n kind: 'openTraceInLegacy',\n buffer,\n });\n}\n\nfunction forwardError(error: string) {\n selfWorker.postMessage({\n kind: 'error',\n error,\n });\n}\n\nfunction fsNodeToBuffer(fsNode: trace_to_text.FileSystemNode): Uint8Array {\n const fileSize = assertExists(fsNode.usedBytes);\n return new Uint8Array(fsNode.contents.buffer, 0, fileSize);\n}\n\nasync function runTraceconv(trace: Blob, args: string[]) {\n const deferredRuntimeInitialized = defer<void>();\n const module = trace_to_text({\n noInitialRun: true,\n locateFile: (s: string) => s,\n print: updateStatus,\n printErr: updateStatus,\n onRuntimeInitialized: () => deferredRuntimeInitialized.resolve()\n });\n await deferredRuntimeInitialized;\n module.FS.mkdir('/fs');\n module.FS.mount(\n assertExists(module.FS.filesystems.WORKERFS),\n {blobs: [{name: 'trace.proto', data: trace}]},\n '/fs');\n updateStatus('Converting trace');\n module.callMain(args);\n updateStatus('Trace conversion completed');\n return module;\n}\n\ninterface ConvertTraceAndDownloadArgs {\n kind: 'ConvertTraceAndDownload';\n trace: Blob;\n format: Format;\n truncate?: 'start'|'end';\n}\n\nfunction isConvertTraceAndDownload(msg: Args):\n msg is ConvertTraceAndDownloadArgs {\n if (msg.kind !== 'ConvertTraceAndDownload') {\n return false;\n }\n if (msg.trace === undefined) {\n throw new Error('ConvertTraceAndDownloadArgs missing trace');\n }\n if (msg.format !== 'json' && msg.format !== 'systrace') {\n throw new Error('ConvertTraceAndDownloadArgs has bad format');\n }\n return true;\n}\n\nasync function ConvertTraceAndDownload(\n trace: Blob,\n format: Format,\n truncate?: 'start'|'end'): Promise<void> {\n const jobName = format === 'json' ? 'convert_json' : 'convert_systrace';\n updateJobStatus(jobName, ConversionJobStatus.InProgress);\n const outPath = '/trace.json';\n const args: string[] = [format];\n if (truncate !== undefined) {\n args.push('--truncate', truncate);\n }\n args.push('/fs/trace.proto', outPath);\n try {\n const module = await runTraceconv(trace, args);\n const fsNode = module.FS.lookupPath(outPath).node;\n downloadFile(fsNodeToBuffer(fsNode), `trace.${format}`);\n module.FS.unlink(outPath);\n } finally {\n updateJobStatus(jobName, ConversionJobStatus.NotRunning);\n }\n}\n\ninterface ConvertTraceAndOpenInLegacyArgs {\n kind: 'ConvertTraceAndOpenInLegacy';\n trace: Blob;\n truncate?: 'start'|'end';\n}\n\nfunction isConvertTraceAndOpenInLegacy(msg: Args):\n msg is ConvertTraceAndOpenInLegacyArgs {\n if (msg.kind !== 'ConvertTraceAndOpenInLegacy') {\n return false;\n }\n return true;\n}\n\nasync function ConvertTraceAndOpenInLegacy(\ntrace: Blob, truncate?: 'start'|'end') {\n const jobName = 'open_in_legacy';\n updateJobStatus(jobName, ConversionJobStatus.InProgress);\n const outPath = '/trace.json';\n const args: string[] = ['json'];\n if (truncate !== undefined) {\n args.push('--truncate', truncate);\n }\n args.push('/fs/trace.proto', outPath);\n try {\n const module = await runTraceconv( trace, args);\n const fsNode = module.FS.lookupPath(outPath).node;\n const data = fsNode.contents.buffer;\n const size = fsNode.usedBytes;\n const buffer = new Uint8Array(data, 0, size);\n openTraceInLegacy(buffer);\n module.FS.unlink(outPath);\n } finally {\n updateJobStatus(jobName, ConversionJobStatus.NotRunning);\n }\n}\n\ninterface ConvertTraceToPprofArgs {\n kind: 'ConvertTraceToPprof';\n trace: Blob;\n pid: number;\n ts: number;\n}\n\nfunction isConvertTraceToPprof(msg: Args): msg is ConvertTraceToPprofArgs {\n if (msg.kind !== 'ConvertTraceToPprof') {\n return false;\n }\n return true;\n}\n\nasync function ConvertTraceToPprof(\ntrace: Blob, pid: number, ts: number) {\n const jobName = 'convert_pprof';\n updateJobStatus(jobName, ConversionJobStatus.InProgress);\n const args = [\n 'profile',\n `--pid`,\n `${pid}`,\n `--timestamps`,\n `${ts}`,\n '/fs/trace.proto'\n ];\n\n try {\n const module = await runTraceconv(trace, args);\n const heapDirName =\n Object.keys(module.FS.lookupPath('/tmp/').node.contents)[0];\n const heapDirContents =\n module.FS.lookupPath(`/tmp/${heapDirName}`).node.contents;\n const heapDumpFiles = Object.keys(heapDirContents);\n for (let i = 0; i < heapDumpFiles.length; ++i) {\n const heapDump = heapDumpFiles[i];\n const fileNode =\n module.FS.lookupPath(`/tmp/${heapDirName}/${heapDump}`).node;\n const fileName = `/heap_dump.${i}.${pid}.pb`;\n downloadFile(fsNodeToBuffer(fileNode), fileName);\n }\n } finally {\n updateJobStatus(jobName, ConversionJobStatus.NotRunning);\n }\n}\n\nselfWorker.onmessage = (msg: MessageEvent) => {\n self.addEventListener('error', e => reportError(e));\n self.addEventListener('unhandledrejection', e => reportError(e));\n setErrorHandler((err: string) => forwardError(err));\n const args = msg.data as Args;\n if (isConvertTraceAndDownload(args)) {\n ConvertTraceAndDownload(args.trace, args.format, args.truncate);\n } else if (isConvertTraceAndOpenInLegacy(args)) {\n ConvertTraceAndOpenInLegacy(args.trace, args.truncate);\n } else if (isConvertTraceToPprof(args)) {\n ConvertTraceToPprof(args.trace, args.pid, args.ts);\n } else {\n throw new Error(`Unknown method call ${JSON.stringify(args)}`);\n }\n};\n"],"names":["global","version","logging_1","deferred_1","conversion_jobs_1"],"mappings":"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"}