Page MenuHomeSoftware Heritage

webapp.861b6cb932cbd498601c.js.map
No OneTemporary

webapp.861b6cb932cbd498601c.js.map

{
"version": 3,
"file": "js/webapp.861b6cb932cbd498601c.js",
"mappings": "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S,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,IAAS,KAAK,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,KAAK,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,OAAO,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,KAAK,IAAO,QAAQ,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,UAAU,IAAS,UAAU,IAAS,KAAK,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,UAAU,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAA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",
"sources": [
"webpack://swh/webpack/universalModuleDefinition",
"webpack://swh/webpack/runtime/create fake namespace object",
"webpack://swh/webpack/runtime/load script",
"webpack://swh/webpack/runtime/css loading",
"webpack://swh/./node_modules/@babel/runtime/regenerator/index.js",
"webpack://swh/./node_modules/@sentry/browser/esm/client.js",
"webpack://swh/./node_modules/@sentry/browser/esm/eventbuilder.js",
"webpack://swh/./node_modules/@sentry/browser/esm/helpers.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/dedupe.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/httpcontext.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/linkederrors.js",
"webpack://swh/./node_modules/@sentry/browser/esm/integrations/trycatch.js",
"webpack://swh/./node_modules/@sentry/browser/esm/sdk.js",
"webpack://swh/./node_modules/@sentry/browser/esm/stack-parsers.js",
"webpack://swh/./node_modules/@sentry/browser/esm/transports/fetch.js",
"webpack://swh/./node_modules/@sentry/browser/esm/transports/utils.js",
"webpack://swh/./node_modules/@sentry/browser/esm/transports/xhr.js",
"webpack://swh/./node_modules/@sentry/core/esm/api.js",
"webpack://swh/./node_modules/@sentry/core/esm/baseclient.js",
"webpack://swh/./node_modules/@sentry/core/esm/envelope.js",
"webpack://swh/./node_modules/@sentry/core/esm/integration.js",
"webpack://swh/./node_modules/@sentry/core/esm/integrations/functiontostring.js",
"webpack://swh/./node_modules/@sentry/core/esm/integrations/inboundfilters.js",
"webpack://swh/./node_modules/@sentry/core/esm/sdk.js",
"webpack://swh/./node_modules/@sentry/core/esm/transports/base.js",
"webpack://swh/./node_modules/@sentry/core/esm/version.js",
"webpack://swh/./node_modules/@sentry/hub/esm/exports.js",
"webpack://swh/./node_modules/@sentry/hub/esm/hub.js",
"webpack://swh/./node_modules/@sentry/hub/esm/scope.js",
"webpack://swh/./node_modules/@sentry/hub/esm/session.js",
"webpack://swh/./node_modules/@sentry/utils/esm/baggage.js",
"webpack://swh/./node_modules/@sentry/utils/esm/browser.js",
"webpack://swh/./node_modules/@sentry/utils/esm/clientreport.js",
"webpack://swh/./node_modules/@sentry/utils/esm/dsn.js",
"webpack://swh/./node_modules/@sentry/utils/esm/env.js",
"webpack://swh/./node_modules/@sentry/utils/esm/envelope.js",
"webpack://swh/./node_modules/@sentry/utils/esm/error.js",
"webpack://swh/./node_modules/@sentry/utils/esm/global.js",
"webpack://swh/./node_modules/@sentry/utils/esm/instrument.js",
"webpack://swh/./node_modules/@sentry/utils/esm/is.js",
"webpack://swh/./node_modules/@sentry/utils/esm/logger.js",
"webpack://swh/./node_modules/@sentry/utils/esm/memo.js",
"webpack://swh/./node_modules/@sentry/utils/esm/misc.js",
"webpack://swh/./node_modules/@sentry/utils/esm/node.js",
"webpack://swh/./node_modules/@sentry/utils/esm/normalize.js",
"webpack://swh/./node_modules/@sentry/utils/esm/object.js",
"webpack://swh/./node_modules/@sentry/utils/esm/promisebuffer.js",
"webpack://swh/./node_modules/@sentry/utils/esm/ratelimit.js",
"webpack://swh/./node_modules/@sentry/utils/esm/severity.js",
"webpack://swh/./node_modules/@sentry/utils/esm/stacktrace.js",
"webpack://swh/./node_modules/@sentry/utils/esm/string.js",
"webpack://swh/./node_modules/@sentry/utils/esm/supports.js",
"webpack://swh/./node_modules/@sentry/utils/esm/syncpromise.js",
"webpack://swh/./node_modules/@sentry/utils/esm/time.js",
"webpack://swh/./node_modules/@sentry/utils/esm/url.js",
"webpack://swh/./node_modules/ansi_up/ansi_up.js",
"webpack://swh/./assets/src/bundles/webapp/badges.js",
"webpack://swh/./assets/src/bundles/webapp/code-highlighting.js",
"webpack://swh/./assets/src/bundles/webapp/history-counters.js",
"webpack://swh/./assets/src/bundles/webapp/iframes.js",
"webpack://swh/./assets/src/bundles/webapp/math-typesetting.js",
"webpack://swh/./assets/src/bundles/webapp/notebook-rendering.js",
"webpack://swh/./assets/src/bundles/webapp/pdf-rendering.js",
"webpack://swh/./assets/src/bundles/webapp/readme-rendering.js",
"webpack://swh/./assets/src/bundles/webapp/sentry.js",
"webpack://swh/./assets/src/bundles/webapp/status-widget.js",
"webpack://swh/./assets/src/bundles/webapp/webapp-utils.js",
"webpack://swh/./assets/src/bundles/webapp/xss-filtering.js",
"webpack://swh/./assets/src/utils/constants.js",
"webpack://swh/./assets/src/utils/functions.js",
"webpack://swh/./node_modules/dompurify/dist/purify.js",
"webpack://swh/./node_modules/he/he.js",
"webpack://swh/./node_modules/html-encoder-decoder/lib/index.js",
"webpack://swh/./node_modules/iterate-object/lib/index.js",
"webpack://swh/./node_modules/object-fit-images/dist/ofi.common-js.js",
"webpack://swh/./node_modules/notebookjs/notebook.js",
"webpack://swh/./node_modules/regenerator-runtime/runtime.js",
"webpack://swh/./node_modules/regex-escape/lib/index.js",
"webpack://swh/./node_modules/script-loader/addScript.js",
"webpack://swh/./node_modules/notebookjs/notebook.js?2bc4",
"webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js",
"webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs",
"webpack://swh/webpack/bootstrap",
"webpack://swh/webpack/runtime/compat get default export",
"webpack://swh/webpack/runtime/define property getters",
"webpack://swh/webpack/runtime/ensure chunk",
"webpack://swh/webpack/runtime/get javascript chunk filename",
"webpack://swh/webpack/runtime/get mini-css chunk filename",
"webpack://swh/webpack/runtime/global",
"webpack://swh/webpack/runtime/harmony module decorator",
"webpack://swh/webpack/runtime/hasOwnProperty shorthand",
"webpack://swh/webpack/runtime/make namespace object",
"webpack://swh/webpack/runtime/node module decorator",
"webpack://swh/webpack/runtime/publicPath",
"webpack://swh/webpack/runtime/jsonp chunk loading",
"webpack://swh/./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js"
],
"sourcesContent": [
"(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"swh\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"webapp\"] = factory();\n})(self, function() {\nreturn ",
"var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};",
"var inProgress = {};\nvar dataWebpackPrefix = \"swh:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};",
"var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t836: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"46\":1,\"399\":1,\"522\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr",
"module.exports = require(\"regenerator-runtime\");\n",
"import { BaseClient, SDK_VERSION, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { getGlobalObject, getEventDescription, logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\nimport { sendReport } from './transports/utils.js';\n\nvar globalObject = getGlobalObject();\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && globalObject.document) {\n globalObject.document.addEventListener('visibilitychange', () => {\n if (globalObject.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n var breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n if (\n breadcrumbIntegration &&\n // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n // not have an`options` field\n breadcrumbIntegration.options &&\n breadcrumbIntegration.options.sentry\n ) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n super.sendEvent(event, hint);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n var outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options);\n var envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(e);\n }\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n",
"import { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n var frames = parseStackFrames(stackParser, ex);\n\n var exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace || ex.stack || '';\n\n var popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception ) || isDOMException(exception )) {\n var domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n var name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n var objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n input,\n syntheticException,\n attachStacktrace,\n) {\n var event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n",
"import { withScope, captureException } from '@sentry/core';\nimport { getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n ) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n var wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n var wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope) => {\n scope.addEventProcessor((event) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n \n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} \n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n",
"import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, htmlTreeAsString, severityLevelFromString, safeJoin, getGlobalObject, parseUrl } from '@sentry/utils';\n\n/** JSDoc */\n\nvar BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Breadcrumbs.id;}\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n \n\n /**\n * @inheritDoc\n */\n constructor(options) {;Breadcrumbs.prototype.__init.call(this);\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _domBreadcrumb(dom) {\n function _innerDomBreadcrumb(handlerData) {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target , keyAttrs)\n : htmlTreeAsString(handlerData.event , keyAttrs);\n } catch (e) {\n target = '<unknown>';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _consoleBreadcrumb(handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _xhrBreadcrumb(handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _fetchBreadcrumb(handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _historyBreadcrumb(handlerData) {\n var global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n",
"import { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nclass Dedupe {constructor() { Dedupe.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Dedupe';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Dedupe.id;}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcessor = currentEvent => {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n var previousException = _getExceptionFromEvent(previousEvent);\n var currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n var exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n",
"import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/** Global handlers */\nclass GlobalHandlers {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'GlobalHandlers';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = GlobalHandlers.id;}\n\n /** JSDoc */\n \n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n __init2() {this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };}\n\n /** JSDoc */\n constructor(options) {;GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n setupOnce() {\n Error.stackTraceLimit = 50;\n var options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n for (var key in options) {\n var installFunc = this._installFunc[key ];\n if (installFunc && options[key ]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key ] = undefined;\n }\n }\n }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler(\n 'error',\n (data) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n var event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler(\n 'unhandledrejection',\n (e) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n var event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n var ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n var event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n var e = (event.exception = event.exception || {});\n // event.exception.values\n var ev = (e.values = e.values || []);\n // event.exception.values[0]\n var ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n var ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n var ev0sf = (ev0s.frames = ev0s.frames || []);\n\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions() {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n",
"import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\n\nvar global = getGlobalObject();\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext {constructor() { HttpContext.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'HttpContext';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = HttpContext.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n addGlobalEventProcessor((event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n var url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n var headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n var request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n",
"import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'LinkedErrors';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = LinkedErrors.id;}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n constructor(options = {}) {;LinkedErrors.prototype.__init.call(this);\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n var client = getCurrentHub().getClient();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event, hint) => {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n parser,\n limit,\n error,\n key,\n stack = [],\n) {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n var exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n",
"import { getGlobalObject, fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { wrap } from '../helpers.js';\n\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'TryCatch';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = TryCatch.id;}\n\n /** JSDoc */\n \n\n /**\n * @inheritDoc\n */\n constructor(options) {;TryCatch.prototype.__init.call(this);\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n setupOnce() {\n var global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n var eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n return function ( ...args) {\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapRAF(original) {\n return function ( callback) {\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n return function ( ...args) {\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n var originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n var global = getGlobalObject() ;\n var proto = global[target] && global[target].prototype;\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original)\n\n {\n return function (\n \n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n ) {\n return function (\n \n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn ;\n try {\n var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n",
"import { Integrations, getIntegrationsToSetup, initAndBind, getCurrentHub, getReportDialogEndpoint } from '@sentry/core';\nimport { getGlobalObject, stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nvar defaultIntegrations = [\n new Integrations.InboundFilters(),\n new Integrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(options = {}) {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n var clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n // doesn't work without a document (React Native)\n var global = getGlobalObject();\n if (!global.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n var dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n var script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n var injectionPoint = global.document.head || global.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n\n if (typeof document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n var hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n",
"import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n\nvar OPERA10_PRIORITY = 10;\nvar OPERA11_PRIORITY = 20;\nvar CHROME_PRIORITY = 30;\nvar WINJS_PRIORITY = 40;\nvar GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n var frame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chromeRegex =\n /^\\s*at (?:(.*\\).*?|.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nvar chrome = line => {\n var parts = chromeRegex.exec(line);\n\n if (parts) {\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n var subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nvar chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nvar gecko = line => {\n var parts = geckoREgex.exec(line);\n\n if (parts) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n var subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nvar geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nvar winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nvar winjs = line => {\n var parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nvar winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nvar opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nvar opera10 = line => {\n var parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nvar opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nvar opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nvar opera11 = line => {\n var parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nvar opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nvar defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nvar defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nvar extractSafariExtensionDetails = (func, filename) => {\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n",
"import { createTransport } from '@sentry/core';\nimport { getNativeFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeFetchImplementation(),\n) {\n function makeRequest(request) {\n var requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n ...options.fetchOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => ({\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n }));\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n",
"import { getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nvar global = getGlobalObject();\nlet cachedFetchImpl;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * var f = window.fetch;\n * window.fetch = function () {\n * var p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n var document = global.document;\n let fetchImpl = global.fetch;\n if (document && typeof document.createElement === 'function') {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n var contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n }\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nfunction sendReport(url, body) {\n var isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n var hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n var sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n sendBeacon(url, body);\n } else if (supportsFetch()) {\n var fetch = getNativeFetchImplementation();\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }).then(null, error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(error);\n });\n }\n}\n\nexport { getNativeFetchImplementation, sendReport };\n//# sourceMappingURL=utils.js.map\n",
"import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nvar XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (var header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n",
"import { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\n\nvar SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n var protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n var port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n ...(sdkInfo && { sentry_client: `${sdkInfo.name}/${sdkInfo.version}` }),\n });\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(\n dsn,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions = {} ,\n) {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n var tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n var sdkInfo =\n typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;\n\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n var dsn = makeDsn(dsnLike);\n var endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n var user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n",
"import { updateSession, Scope } from '@sentry/hub';\nimport { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations } from './integration.js';\n\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n \n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n \n\n /** Array of set up integrations. */\n __init() {this._integrations = {};}\n\n /** Indicates whether this client's integrations have been set up. */\n __init2() {this._integrationsInitialized = false;}\n\n /** Number of calls being processed */\n __init3() {this._numProcessing = 0;}\n\n /** Holds flushable */\n __init4() {this._outcomes = {};}\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {;BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint, scope) {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n scope,\n ) {\n let eventId = hint && hint.event_id;\n\n var promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n var transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n try {\n return (this._integrations[integration.id] ) || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (var attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n if (this._dsn) {\n var env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n // With typescript 4.1 we could even use template literal types\n var key = `${reason}:${category}`;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n var exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (var ex of exceptions) {\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === 'ok';\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n var tick = 1;\n\n var interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, scope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = this.getOptions();\n var prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // Collect attachments from the hint and scope\n var attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n _normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n var normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n _applyClientOptions(event) {\n var options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n _applyIntegrationsMetadata(event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for\n // control flow, log just the message (no stack) as a log-level log.\n var sentryError = reason ;\n if (sentryError.logLevel === 'log') {\n logger.log(sentryError.message);\n } else {\n logger.warn(sentryError);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, scope) {\n const { beforeSend, sampleRate } = this.getOptions();\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.', 'log'));\n }\n\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n 'log',\n ),\n );\n }\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', event.type || 'error');\n throw new SentryError('An event processor returned null, will not send event.', 'log');\n }\n\n var isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n var beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', event.type || 'error');\n throw new SentryError('`beforeSend` returned `null`, will not send event.', 'log');\n }\n\n var session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason ,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n var outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n \n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n",
"import { dsnToString, createEnvelope, dropUndefinedKeys, getSentryBaggageItems } from '@sentry/utils';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(metadata) {\n if (!metadata || !metadata.sdk) {\n return;\n }\n const { name, version } = metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n };\n\n var envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var eventType = event.type || 'event';\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n var envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n var eventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n var baggage = event.sdkProcessingMetadata && event.sdkProcessingMetadata.baggage;\n var dynamicSamplingContext = baggage && getSentryBaggageItems(baggage);\n\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(event.type === 'transaction' &&\n dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }) ,\n }),\n };\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
"import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\nvar installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] );\n}\n\n/** Gets integration to install */\nfunction getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n var userIntegrations = options.integrations;\n\n let integrations = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(i => i.name);\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(integrations) {\n var integrationIndex = {};\n\n integrations.forEach(integration => {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Integration installed: ${integration.name}`);\n }\n });\n\n return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n",
"import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString {constructor() { FunctionToString.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'FunctionToString';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = FunctionToString.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n originalFunctionToString = Function.prototype.toString;\n\n Function.prototype.toString = function ( ...args) {\n var context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n",
"import { logger, getEventDescription, isMatchingPattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'InboundFilters';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = InboundFilters.id;}\n\n constructor( _options = {}) {;this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcess = (event) => {\n var hub = getCurrentHub();\n if (hub) {\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n var url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n var url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n\n if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n",
"import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n",
"import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError } from '@sentry/utils';\n\nvar DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n) {\n let rateLimits = {};\n\n var flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n var filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n var envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n var filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n var recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (_, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n var requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n },\n error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Failed while sending event:', error);\n recordEnvelopeLoss('network_error');\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event due to full buffer');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n",
"var SDK_VERSION = '7.11.1';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n",
"import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType<Hub[HUB_FUNCTION]>`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call\n * `startTransaction` directly on the hub.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction(\n {\n metadata: { source: 'custom' },\n ...context,\n },\n customSamplingContext,\n );\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n",
"import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, getGlobalObject, getGlobalSingleton, isNodeEnv } from '@sentry/utils';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nvar API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n __init() {this._stack = [{}];}\n\n /** Contains the last event id of a captured event. */\n \n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n constructor(client, scope = new Scope(), _version = API_VERSION) {;this._version = _version;Hub.prototype.__init.call(this);\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n ) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = { timestamp, ...breadcrumb };\n var finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n var scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n var scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n var scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n var scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n var scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n setContext(name, context) {\n var scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n var client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n var layer = this.getStackTop();\n var scope = layer && layer.scope;\n var session = scope && scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n const { userAgent } = global.navigator || {};\n\n var session = makeSession({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n var client = this.getClient();\n var options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n var session = scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n _callExtensionMethod(method, ...args) {\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n var sentry = getMainCarrier().__SENTRY__;\n var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n var __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n",
"import { isPlainObject, dateTimestampInSeconds, getGlobalSingleton, SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n \n\n /** Callback for client to receive scope changes. */\n \n\n /** Callback list that will be called after {@link applyToEvent}. */\n \n\n /** Array of breadcrumbs. */\n \n\n /** User */\n \n\n /** Tags */\n \n\n /** Extra */\n \n\n /** Contexts */\n \n\n /** Attachments */\n \n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n \n\n /** Fingerprint */\n \n\n /** Severity */\n \n\n /** Transaction Name */\n \n\n /** Span */\n \n\n /** Session */\n \n\n /** Request Mode Session Status */\n \n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n var span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n var updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n var mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n var transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n var result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n",
"import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n\n var session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. \u2014 Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n var duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n",
"import { isString } from './is.js';\nimport { logger } from './logger.js';\n\nvar BAGGAGE_HEADER_NAME = 'baggage';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nvar MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/** Create an instance of Baggage */\nfunction createBaggage(initItems, baggageString = '', mutable = true) {\n return [{ ...initItems }, baggageString, mutable];\n}\n\n/** Get a value from baggage */\nfunction getBaggageValue(baggage, key) {\n return baggage[0][key];\n}\n\n/** Add a value to baggage */\nfunction setBaggageValue(baggage, key, value) {\n if (isBaggageMutable(baggage)) {\n baggage[0][key] = value;\n }\n}\n\n/** Check if the Sentry part of the passed baggage (i.e. the first element in the tuple) is empty */\nfunction isSentryBaggageEmpty(baggage) {\n return Object.keys(baggage[0]).length === 0;\n}\n\n/** Returns Sentry specific baggage values */\nfunction getSentryBaggageItems(baggage) {\n return baggage[0];\n}\n\n/**\n * Returns 3rd party baggage string of @param baggage\n * @param baggage\n */\nfunction getThirdPartyBaggage(baggage) {\n return baggage[1];\n}\n\n/**\n * Checks if baggage is mutable\n * @param baggage\n * @returns true if baggage is mutable, else false\n */\nfunction isBaggageMutable(baggage) {\n return baggage[2];\n}\n\n/**\n * Sets the passed baggage immutable\n * @param baggage\n */\nfunction setBaggageImmutable(baggage) {\n baggage[2] = false;\n}\n\n/** Serialize a baggage object */\nfunction serializeBaggage(baggage) {\n return Object.keys(baggage[0]).reduce((prev, key) => {\n var val = baggage[0][key] ;\n var baggageEntry = `${SENTRY_BAGGAGE_KEY_PREFIX}${encodeURIComponent(key)}=${encodeURIComponent(val)}`;\n var newVal = prev === '' ? baggageEntry : `${prev},${baggageEntry}`;\n if (newVal.length > MAX_BAGGAGE_STRING_LENGTH) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Not adding key: ${key} with val: ${val} to baggage due to exceeding baggage size limits.`);\n return prev;\n } else {\n return newVal;\n }\n }, baggage[1]);\n}\n\n/**\n * Parse a baggage header from a string or a string array and return a Baggage object\n *\n * If @param includeThirdPartyEntries is set to true, third party baggage entries are added to the Baggage object\n * (This is necessary for merging potentially pre-existing baggage headers in outgoing requests with\n * our `sentry-` values)\n */\nfunction parseBaggageHeader(\n inputBaggageValue,\n includeThirdPartyEntries = false,\n) {\n // Adding this check here because we got reports of this function failing due to the input value\n // not being a string. This debug log might help us determine what's going on here.\n if ((!Array.isArray(inputBaggageValue) && !isString(inputBaggageValue)) || typeof inputBaggageValue === 'number') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n '[parseBaggageHeader] Received input value of incompatible type: ',\n typeof inputBaggageValue,\n inputBaggageValue,\n );\n\n // Gonna early-return an empty baggage object so that we don't fail later on\n return createBaggage({}, '');\n }\n\n var baggageEntries = (isString(inputBaggageValue) ? inputBaggageValue : inputBaggageValue.join(','))\n .split(',')\n .map(entry => entry.trim())\n .filter(entry => entry !== '' && (includeThirdPartyEntries || SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(entry)));\n\n return baggageEntries.reduce(\n ([baggageObj, baggageString], curr) => {\n const [key, val] = curr.split('=');\n if (SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(key)) {\n var baggageKey = decodeURIComponent(key.split('-')[1]);\n return [\n {\n ...baggageObj,\n [baggageKey]: decodeURIComponent(val),\n },\n baggageString,\n true,\n ];\n } else {\n return [baggageObj, baggageString === '' ? curr : `${baggageString},${curr}`, true];\n }\n },\n [{}, '', true],\n );\n}\n\n/**\n * Merges the baggage header we saved from the incoming request (or meta tag) with\n * a possibly created or modified baggage header by a third party that's been added\n * to the outgoing request header.\n *\n * In case @param headerBaggageString exists, we can safely add the the 3rd party part of @param headerBaggage\n * with our @param incomingBaggage. This is possible because if we modified anything beforehand,\n * it would only affect parts of the sentry baggage (@see Baggage interface).\n *\n * @param incomingBaggage the baggage header of the incoming request that might contain sentry entries\n * @param thirdPartyBaggageHeader possibly existing baggage header string or string[] added from a third\n * party to the request headers\n *\n * @return a merged and serialized baggage string to be propagated with the outgoing request\n */\nfunction mergeAndSerializeBaggage(incomingBaggage, thirdPartyBaggageHeader) {\n if (!incomingBaggage && !thirdPartyBaggageHeader) {\n return '';\n }\n\n var headerBaggage = (thirdPartyBaggageHeader && parseBaggageHeader(thirdPartyBaggageHeader, true)) || undefined;\n var thirdPartyHeaderBaggage = headerBaggage && getThirdPartyBaggage(headerBaggage);\n\n var finalBaggage = createBaggage((incomingBaggage && incomingBaggage[0]) || {}, thirdPartyHeaderBaggage || '');\n return serializeBaggage(finalBaggage);\n}\n\n/**\n * Helper function that takes a raw baggage string (if available) and the processed sentry-trace header\n * data (if available), parses the baggage string and creates a Baggage object\n * If there is no baggage string, it will create an empty Baggage object.\n * In a second step, this functions determines if the created Baggage object should be set immutable\n * to prevent mutation of the Sentry data.\n *\n * Extracted this logic to a function because it's duplicated in a lot of places.\n *\n * @param rawBaggageValue\n * @param sentryTraceHeader\n */\nfunction parseBaggageSetMutability(\n rawBaggageValue,\n sentryTraceHeader,\n) {\n var baggage = parseBaggageHeader(rawBaggageValue || '');\n\n // Because we are always creating a Baggage object by calling `parseBaggageHeader` above\n // (either a filled one or an empty one, even if we didn't get a `baggage` header),\n // we only need to check if we have a sentry-trace header or not. As soon as we have it,\n // we set baggage immutable. In case we don't get a sentry-trace header, we can assume that\n // this SDK is the head of the trace and thus we still permit mutation at this time.\n // There is one exception though, which is that we get a baggage-header with `sentry-`\n // items but NO sentry-trace header. In this case we also set the baggage immutable for now\n // but if smoething like this would ever happen, we should revisit this and determine\n // what this would actually mean for the trace (i.e. is this SDK the head?, what happened\n // before that we don't have a sentry-trace header?, etc)\n (sentryTraceHeader || !isSentryBaggageEmpty(baggage)) && setBaggageImmutable(baggage);\n\n return baggage;\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, createBaggage, getBaggageValue, getSentryBaggageItems, getThirdPartyBaggage, isBaggageMutable, isSentryBaggageEmpty, mergeAndSerializeBaggage, parseBaggageHeader, parseBaggageSetMutability, serializeBaggage, setBaggageImmutable, setBaggageValue };\n//# sourceMappingURL=baggage.js.map\n",
"import { getGlobalObject } from './global.js';\nimport { isString } from './is.js';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(elem, keyAttrs) {\n \n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n let height = 0;\n let len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n let nextStr;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el \n\n;\n\n var out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\nexport { getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n",
"import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n var clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n",
"import { SentryError } from './error.js';\n\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n var match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n",
"/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n",
"import { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n var envelopeItems = envelope[1];\n envelopeItems.forEach((envelopeItem) => {\n var envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\nfunction encodeUTF8(input, textEncoder) {\n var utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (var item of items) {\n const [itemHeaders, payload] = item ;\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n append(typeof payload === 'string' || payload instanceof Uint8Array ? payload : JSON.stringify(payload));\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n var totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n var merged = new Uint8Array(totalLength);\n let offset = 0;\n for (var buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n attachment,\n textEncoder,\n) {\n var buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nvar ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, envelopeItemTypeToDataCategory, forEachEnvelopeItem, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n",
"/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n \n\n constructor( message, logLevel = 'warn') {\n super(message);this.message = message;;\n\n this.name = new.target.prototype.constructor.name;\n // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line\n // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes\n // instances of `SentryError` fail `obj instanceof SentryError` checks.\n Object.setPrototypeOf(this, new.target.prototype);\n this.logLevel = logLevel;\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n",
"import { isNodeEnv } from './node.js';\n\n/** Internal */\n\nvar fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nfunction getGlobalObject() {\n return (\n isNodeEnv()\n ? global\n : typeof window !== 'undefined' ? window : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject\n ) ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n var global = (obj || getGlobalObject()) ;\n var __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=global.js.map\n",
"import { getGlobalObject } from './global.js';\nimport { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\n\nvar global = getGlobalObject();\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nvar handlers = {};\nvar instrumented = {};\n\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (var handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod) {\n return function (...args) {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch) {\n return function (...args) {\n var handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n return originalFetch.apply(global, args).then(\n (response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs = []) {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs = []) {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n var xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen) {\n return function ( ...args) {\n var xhr = this;\n var url = args[1];\n var xhrInfo = (xhr.__sentry_xhr__ = {\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function (...readyStateArgs) {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend) {\n return function ( ...args) {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function ( ...args) {\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nvar debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n var target = event.target ;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n var name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n var proto = (global )[target] && (global )[target].prototype;\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n \n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n \n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n\nexport { addInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n",
"var objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\nfunction isBuiltin(wat, ty) {\n return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n",
"import { getGlobalObject, getGlobalSingleton } from './global.js';\n\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n\nvar CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n var global = getGlobalObject();\n\n if (!('console' in global)) {\n return callback();\n }\n\n var originalConsole = global.console ;\n var wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n var originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n var logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n global.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n",
"/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n var hasWeakSet = typeof WeakSet === 'function';\n var inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n for (let i = 0; i < inner.length; i++) {\n var value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n",
"import { getGlobalObject } from './global.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n var global = getGlobalObject() ;\n var crypto = (global.crypto || global.msCrypto) ;\n\n if (crypto && crypto.randomUUID) {\n return crypto.randomUUID().replace(/-/g, '');\n }\n\n var getRandomByte =\n crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16;\n\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n return (([1e7] ) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n ((c ) ^ ((getRandomByte() & 15) >> ((c ) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '<unknown>';\n }\n return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nfunction addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n",
"import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n",
"import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n var normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n var stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n var valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n var jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n var normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n var visitable = convertToPlainObject(value );\n\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n",
"import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n var original = source[name] ;\n var wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n var newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '<unknown>';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n var extractedProps = {};\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n var memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (var key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n",
"import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n var buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n * PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n",
"// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nvar DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n var headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n var headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n var updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n var rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n var retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n * <header>,<header>,..\n * where each <header> is of the form\n * <retry_after>: <categories>: <scope>: <reason_code>\n * where\n * <retry_after> is a delay in seconds\n * <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * <category>;<category>;...\n * <scope> is what's being limited (org, project, or key) - ignored by SDK\n * <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (var limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n var headerDelay = parseInt(retryAfter, 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (var category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n",
"// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nvar validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n",
"import { _optionalChain } from './buildPolyfills';\n\nvar STACKTRACE_LIMIT = 50;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n var sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirst = 0) => {\n var frames = [];\n\n for (var line of stack.split('\\n').slice(skipFirst)) {\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n var cleanedLine = line.replace(/\\(error: (.*)\\)/, '$1');\n\n for (var parser of sortedParsers) {\n var frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n var firstFrameFunction = localStack[0].function || '';\n var lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nvar defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\nfunction node(getModule) {\n var FILENAME_MATCH = /^\\s*[-]{4,}$/;\n var FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n\n return (line) => {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n var lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) {\n return undefined;\n }\n\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '<anonymous>') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '<anonymous>';\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n var filename = _optionalChain([lineMatch, 'access', _ => _[2], 'optionalAccess', _2 => _2.startsWith, 'call', _3 => _3('file://')]) ? lineMatch[2].substr(7) : lineMatch[2];\n var isNative = lineMatch[5] === 'native';\n var isInternal =\n isNative || (filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1);\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n var in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n\n return {\n filename,\n module: _optionalChain([getModule, 'optionalCall', _4 => _4(filename)]),\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app,\n };\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nexport { createStackParser, getFunctionName, nodeStackLineParser, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n",
"import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n var lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n var output = [];\n for (let i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nfunction isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nfunction escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, truncate };\n//# sourceMappingURL=string.js.map\n",
"import { getGlobalObject } from './global.js';\nimport { logger } from './logger.js';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n var global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n var doc = global.document;\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n var chrome = (global ).chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n",
"import { isThenable } from './is.js';\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n var PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n var RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n var REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n \n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: \u00af\\_(\u30c4)_/\u00af\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n var cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n",
"import { getGlobalObject } from './global.js';\nimport { dynamicRequire, isNodeEnv } from './node.js';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nvar timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nvar dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nvar timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nvar timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nvar usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nvar browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n",
"/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url)\n\n {\n if (!url) {\n return {};\n }\n\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Returns number of URL segments of a passed string URL.\n */\nfunction getNumberOfUrlSegments(url) {\n // split at '/' or at '\\/' to split regex urls correctly\n return url.split(/\\\\?\\//).filter(s => s.length > 0 && s !== ',').length;\n}\n\nexport { getNumberOfUrlSegments, parseUrl, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n",
"/* ansi_up.js\n * author : Dru Nelson\n * license : MIT\n * http://github.com/drudru/ansi_up\n */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['exports'], factory);\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\n // CommonJS\n factory(exports);\n } else {\n // Browser globals\n var exp = {};\n factory(exp);\n root.AnsiUp = exp.default;\n }\n}(this, function (exports) {\n\"use strict\";\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar PacketKind;\n(function (PacketKind) {\n PacketKind[PacketKind[\"EOS\"] = 0] = \"EOS\";\n PacketKind[PacketKind[\"Text\"] = 1] = \"Text\";\n PacketKind[PacketKind[\"Incomplete\"] = 2] = \"Incomplete\";\n PacketKind[PacketKind[\"ESC\"] = 3] = \"ESC\";\n PacketKind[PacketKind[\"Unknown\"] = 4] = \"Unknown\";\n PacketKind[PacketKind[\"SGR\"] = 5] = \"SGR\";\n PacketKind[PacketKind[\"OSCURL\"] = 6] = \"OSCURL\";\n})(PacketKind || (PacketKind = {}));\nvar AnsiUp = (function () {\n function AnsiUp() {\n this.VERSION = \"5.1.0\";\n this.setup_palettes();\n this._use_classes = false;\n this.bold = false;\n this.italic = false;\n this.underline = false;\n this.fg = this.bg = null;\n this._buffer = '';\n this._url_whitelist = { 'http': 1, 'https': 1 };\n }\n Object.defineProperty(AnsiUp.prototype, \"use_classes\", {\n get: function () {\n return this._use_classes;\n },\n set: function (arg) {\n this._use_classes = arg;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AnsiUp.prototype, \"url_whitelist\", {\n get: function () {\n return this._url_whitelist;\n },\n set: function (arg) {\n this._url_whitelist = arg;\n },\n enumerable: false,\n configurable: true\n });\n AnsiUp.prototype.setup_palettes = function () {\n var _this = this;\n this.ansi_colors =\n [\n [\n { rgb: [0, 0, 0], class_name: \"ansi-black\" },\n { rgb: [187, 0, 0], class_name: \"ansi-red\" },\n { rgb: [0, 187, 0], class_name: \"ansi-green\" },\n { rgb: [187, 187, 0], class_name: \"ansi-yellow\" },\n { rgb: [0, 0, 187], class_name: \"ansi-blue\" },\n { rgb: [187, 0, 187], class_name: \"ansi-magenta\" },\n { rgb: [0, 187, 187], class_name: \"ansi-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-white\" }\n ],\n [\n { rgb: [85, 85, 85], class_name: \"ansi-bright-black\" },\n { rgb: [255, 85, 85], class_name: \"ansi-bright-red\" },\n { rgb: [0, 255, 0], class_name: \"ansi-bright-green\" },\n { rgb: [255, 255, 85], class_name: \"ansi-bright-yellow\" },\n { rgb: [85, 85, 255], class_name: \"ansi-bright-blue\" },\n { rgb: [255, 85, 255], class_name: \"ansi-bright-magenta\" },\n { rgb: [85, 255, 255], class_name: \"ansi-bright-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-bright-white\" }\n ]\n ];\n this.palette_256 = [];\n this.ansi_colors.forEach(function (palette) {\n palette.forEach(function (rec) {\n _this.palette_256.push(rec);\n });\n });\n var levels = [0, 95, 135, 175, 215, 255];\n for (var r = 0; r < 6; ++r) {\n for (var g = 0; g < 6; ++g) {\n for (var b = 0; b < 6; ++b) {\n var col = { rgb: [levels[r], levels[g], levels[b]], class_name: 'truecolor' };\n this.palette_256.push(col);\n }\n }\n }\n var grey_level = 8;\n for (var i = 0; i < 24; ++i, grey_level += 10) {\n var gry = { rgb: [grey_level, grey_level, grey_level], class_name: 'truecolor' };\n this.palette_256.push(gry);\n }\n };\n AnsiUp.prototype.escape_txt_for_html = function (txt) {\n return txt.replace(/[&<>\"']/gm, function (str) {\n if (str === \"&\")\n return \"&amp;\";\n if (str === \"<\")\n return \"&lt;\";\n if (str === \">\")\n return \"&gt;\";\n if (str === \"\\\"\")\n return \"&quot;\";\n if (str === \"'\")\n return \"&#x27;\";\n });\n };\n AnsiUp.prototype.append_buffer = function (txt) {\n var str = this._buffer + txt;\n this._buffer = str;\n };\n AnsiUp.prototype.get_next_packet = function () {\n var pkt = {\n kind: PacketKind.EOS,\n text: '',\n url: ''\n };\n var len = this._buffer.length;\n if (len == 0)\n return pkt;\n var pos = this._buffer.indexOf(\"\\x1B\");\n if (pos == -1) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer;\n this._buffer = '';\n return pkt;\n }\n if (pos > 0) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer.slice(0, pos);\n this._buffer = this._buffer.slice(pos);\n return pkt;\n }\n if (pos == 0) {\n if (len == 1) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n var next_char = this._buffer.charAt(1);\n if ((next_char != '[') && (next_char != ']')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (next_char == '[') {\n if (!this._csi_regex) {\n this._csi_regex = rgx(__makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\u001B[ # CSI\\n ([<-?]?) # private-mode char\\n ([d;]*) # any digits or semicolons\\n ([ -/]? # an intermediate modifier\\n [@-~]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\u001B[ # CSI\\n [ -~]* # anything legal\\n ([\\0-\\u001F:]) # anything illegal\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\\\x1b\\\\[ # CSI\\n ([\\\\x3c-\\\\x3f]?) # private-mode char\\n ([\\\\d;]*) # any digits or semicolons\\n ([\\\\x20-\\\\x2f]? # an intermediate modifier\\n [\\\\x40-\\\\x7e]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\\\x1b\\\\[ # CSI\\n [\\\\x20-\\\\x7e]* # anything legal\\n ([\\\\x00-\\\\x1f:]) # anything illegal\\n )\\n \"]));\n }\n var match = this._buffer.match(this._csi_regex);\n if (match === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match[4]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if ((match[1] != '') || (match[3] != 'm'))\n pkt.kind = PacketKind.Unknown;\n else\n pkt.kind = PacketKind.SGR;\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n if (next_char == ']') {\n if (len < 4) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if ((this._buffer.charAt(2) != '8')\n || (this._buffer.charAt(3) != ';')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (!this._osc_st) {\n this._osc_st = rgxG(__makeTemplateObject([\"\\n (?: # legal sequence\\n (\\u001B\\\\) # ESC | # alternate\\n (\\u0007) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\0-\\u0006] # anything illegal\\n | # alternate\\n [\\b-\\u001A] # anything illegal\\n | # alternate\\n [\\u001C-\\u001F] # anything illegal\\n )\\n \"], [\"\\n (?: # legal sequence\\n (\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (\\\\x07) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\\\x00-\\\\x06] # anything illegal\\n | # alternate\\n [\\\\x08-\\\\x1a] # anything illegal\\n | # alternate\\n [\\\\x1c-\\\\x1f] # anything illegal\\n )\\n \"]));\n }\n this._osc_st.lastIndex = 0;\n {\n var match_1 = this._osc_st.exec(this._buffer);\n if (match_1 === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match_1[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n {\n var match_2 = this._osc_st.exec(this._buffer);\n if (match_2 === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match_2[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n if (!this._osc_regex) {\n this._osc_regex = rgx(__makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n \\u001B]8; # OSC Hyperlink\\n [ -:<-~]* # params (excluding ;)\\n ; # end of params\\n ([!-~]{0,512}) # URL capture\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n ([ -~]+) # TEXT capture\\n \\u001B]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n \\\\x1b\\\\]8; # OSC Hyperlink\\n [\\\\x20-\\\\x3a\\\\x3c-\\\\x7e]* # params (excluding ;)\\n ; # end of params\\n ([\\\\x21-\\\\x7e]{0,512}) # URL capture\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n ([\\\\x20-\\\\x7e]+) # TEXT capture\\n \\\\x1b\\\\]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n \"]));\n }\n var match = this._buffer.match(this._osc_regex);\n if (match === null) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n pkt.kind = PacketKind.OSCURL;\n pkt.url = match[1];\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n }\n };\n AnsiUp.prototype.ansi_to_html = function (txt) {\n this.append_buffer(txt);\n var blocks = [];\n while (true) {\n var packet = this.get_next_packet();\n if ((packet.kind == PacketKind.EOS)\n || (packet.kind == PacketKind.Incomplete))\n break;\n if ((packet.kind == PacketKind.ESC)\n || (packet.kind == PacketKind.Unknown))\n continue;\n if (packet.kind == PacketKind.Text)\n blocks.push(this.transform_to_html(this.with_state(packet)));\n else if (packet.kind == PacketKind.SGR)\n this.process_ansi(packet);\n else if (packet.kind == PacketKind.OSCURL)\n blocks.push(this.process_hyperlink(packet));\n }\n return blocks.join(\"\");\n };\n AnsiUp.prototype.with_state = function (pkt) {\n return { bold: this.bold, italic: this.italic, underline: this.underline, fg: this.fg, bg: this.bg, text: pkt.text };\n };\n AnsiUp.prototype.process_ansi = function (pkt) {\n var sgr_cmds = pkt.text.split(';');\n while (sgr_cmds.length > 0) {\n var sgr_cmd_str = sgr_cmds.shift();\n var num = parseInt(sgr_cmd_str, 10);\n if (isNaN(num) || num === 0) {\n this.fg = this.bg = null;\n this.bold = false;\n this.italic = false;\n this.underline = false;\n }\n else if (num === 1) {\n this.bold = true;\n }\n else if (num === 3) {\n this.italic = true;\n }\n else if (num === 4) {\n this.underline = true;\n }\n else if (num === 22) {\n this.bold = false;\n }\n else if (num === 23) {\n this.italic = false;\n }\n else if (num === 24) {\n this.underline = false;\n }\n else if (num === 39) {\n this.fg = null;\n }\n else if (num === 49) {\n this.bg = null;\n }\n else if ((num >= 30) && (num < 38)) {\n this.fg = this.ansi_colors[0][(num - 30)];\n }\n else if ((num >= 40) && (num < 48)) {\n this.bg = this.ansi_colors[0][(num - 40)];\n }\n else if ((num >= 90) && (num < 98)) {\n this.fg = this.ansi_colors[1][(num - 90)];\n }\n else if ((num >= 100) && (num < 108)) {\n this.bg = this.ansi_colors[1][(num - 100)];\n }\n else if (num === 38 || num === 48) {\n if (sgr_cmds.length > 0) {\n var is_foreground = (num === 38);\n var mode_cmd = sgr_cmds.shift();\n if (mode_cmd === '5' && sgr_cmds.length > 0) {\n var palette_index = parseInt(sgr_cmds.shift(), 10);\n if (palette_index >= 0 && palette_index <= 255) {\n if (is_foreground)\n this.fg = this.palette_256[palette_index];\n else\n this.bg = this.palette_256[palette_index];\n }\n }\n if (mode_cmd === '2' && sgr_cmds.length > 2) {\n var r = parseInt(sgr_cmds.shift(), 10);\n var g = parseInt(sgr_cmds.shift(), 10);\n var b = parseInt(sgr_cmds.shift(), 10);\n if ((r >= 0 && r <= 255) && (g >= 0 && g <= 255) && (b >= 0 && b <= 255)) {\n var c = { rgb: [r, g, b], class_name: 'truecolor' };\n if (is_foreground)\n this.fg = c;\n else\n this.bg = c;\n }\n }\n }\n }\n }\n };\n AnsiUp.prototype.transform_to_html = function (fragment) {\n var txt = fragment.text;\n if (txt.length === 0)\n return txt;\n txt = this.escape_txt_for_html(txt);\n if (!fragment.bold && !fragment.italic && !fragment.underline && fragment.fg === null && fragment.bg === null)\n return txt;\n var styles = [];\n var classes = [];\n var fg = fragment.fg;\n var bg = fragment.bg;\n if (fragment.bold)\n styles.push('font-weight:bold');\n if (fragment.italic)\n styles.push('font-style:italic');\n if (fragment.underline)\n styles.push('text-decoration:underline');\n if (!this._use_classes) {\n if (fg)\n styles.push(\"color:rgb(\" + fg.rgb.join(',') + \")\");\n if (bg)\n styles.push(\"background-color:rgb(\" + bg.rgb + \")\");\n }\n else {\n if (fg) {\n if (fg.class_name !== 'truecolor') {\n classes.push(fg.class_name + \"-fg\");\n }\n else {\n styles.push(\"color:rgb(\" + fg.rgb.join(',') + \")\");\n }\n }\n if (bg) {\n if (bg.class_name !== 'truecolor') {\n classes.push(bg.class_name + \"-bg\");\n }\n else {\n styles.push(\"background-color:rgb(\" + bg.rgb.join(',') + \")\");\n }\n }\n }\n var class_string = '';\n var style_string = '';\n if (classes.length)\n class_string = \" class=\\\"\" + classes.join(' ') + \"\\\"\";\n if (styles.length)\n style_string = \" style=\\\"\" + styles.join(';') + \"\\\"\";\n return \"<span\" + style_string + class_string + \">\" + txt + \"</span>\";\n };\n ;\n AnsiUp.prototype.process_hyperlink = function (pkt) {\n var parts = pkt.url.split(':');\n if (parts.length < 1)\n return '';\n if (!this._url_whitelist[parts[0]])\n return '';\n var result = \"<a href=\\\"\" + this.escape_txt_for_html(pkt.url) + \"\\\">\" + this.escape_txt_for_html(pkt.text) + \"</a>\";\n return result;\n };\n return AnsiUp;\n}());\nfunction rgx(tmplObj) {\n var subst = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n subst[_i - 1] = arguments[_i];\n }\n var regexText = tmplObj.raw[0];\n var wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n var txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2);\n}\nfunction rgxG(tmplObj) {\n var subst = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n subst[_i - 1] = arguments[_i];\n }\n var regexText = tmplObj.raw[0];\n var wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n var txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2, 'g');\n}\n//# sourceMappingURL=ansi_up.js.map\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.default = AnsiUp;\n}));\n",
"/**\n * Copyright (C) 2019-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function showBadgeInfoModal(objectType, objectSWHID) {\n let badgeImageUrl;\n let badgeLinkUrl;\n if (objectType === 'origin') {\n badgeImageUrl = Urls.swh_badge(objectType, objectSWHID);\n badgeLinkUrl = `${Urls.browse_origin()}?origin_url=${objectSWHID}`;\n } else {\n const pos = objectSWHID.indexOf(';');\n if (pos !== -1) {\n const objectSWHIDNoContext = objectSWHID.slice(0, pos);\n badgeImageUrl = Urls.swh_badge_swhid(objectSWHIDNoContext);\n $('.swhid').each((i, swhid) => {\n if (swhid.id === objectSWHIDNoContext) {\n badgeLinkUrl = swhid.pathname;\n }\n });\n } else {\n badgeImageUrl = Urls.swh_badge_swhid(objectSWHID);\n badgeLinkUrl = Urls.browse_swhid(objectSWHID);\n }\n }\n const absoluteBadgeImageUrl = `${window.location.origin}${badgeImageUrl}`;\n const absoluteBadgeLinkUrl = `${window.location.origin}${badgeLinkUrl}`;\n const html = `\n <a href=\"${absoluteBadgeLinkUrl}\">\n <img class=\"swh-badge\" src=\"${absoluteBadgeImageUrl}\">\n </a>\n <div>\n <label>HTML</label>\n <pre><code class=\"swh-badge-html html\">&lt;a href=\"${absoluteBadgeLinkUrl}\"&gt;\n &lt;img src=\"${absoluteBadgeImageUrl}\"&gt;\n&lt;/a&gt;</code></pre>\n </div>\n <div>\n <label>Markdown</label>\n <pre><code class=\"swh-badge-md markdown\">[![SWH](${absoluteBadgeImageUrl})](${absoluteBadgeLinkUrl})</code></pre>\n </div>\n <div>\n <label>reStructuredText</label>\n <pre class=\"swh-badge-rst\">.. image:: ${absoluteBadgeImageUrl}\n :target: ${absoluteBadgeLinkUrl}</pre>\n </div>`;\n swh.webapp.showModalHtml('Software Heritage badge integration', html);\n swh.webapp.highlightCode(false, '.swh-badge-html');\n swh.webapp.highlightCode(false, '.swh-badge-md');\n}\n",
"/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {removeUrlFragment} from 'utils/functions';\n\n// keep track of the first highlighted line\nlet firstHighlightedLine = null;\n// highlighting color\nconst lineHighlightColor = 'rgb(193, 255, 193)';\n\n// function to highlight a line\nexport function highlightLine(i, firstHighlighted = false) {\n const lineTd = $(`.hljs-ln-line[data-line-number=\"${i}\"]`);\n lineTd.css('background-color', lineHighlightColor);\n if (firstHighlighted) {\n firstHighlightedLine = i;\n }\n return lineTd;\n}\n\n// function to highlight a range of lines\nexport function highlightLines(first, last) {\n if (!first) {\n return;\n }\n if (!last) {\n last = first;\n }\n for (let i = first; i <= last; ++i) {\n highlightLine(i);\n }\n}\n\n// function to reset highlighting\nexport function resetHighlightedLines() {\n firstHighlightedLine = null;\n $('.hljs-ln-line[data-line-number]').css('background-color', 'inherit');\n}\n\nexport function scrollToLine(lineDomElt, offset = 70) {\n if ($(lineDomElt).closest('.swh-content').length > 0) {\n $('html, body').animate({\n scrollTop: $(lineDomElt).offset().top - offset\n }, 500);\n }\n}\n\nexport async function highlightCode(showLineNumbers = true, selector = 'code',\n enableLinesSelection = true) {\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // function to highlight lines based on a url fragment\n // in the form '#Lx' or '#Lx-Ly'\n function parseUrlFragmentForLinesToHighlight() {\n const lines = [];\n const linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n if (line === null) {\n return;\n }\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n resetHighlightedLines();\n if (lines.length === 1) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n } else if (lines[0] < lines[lines.length - 1]) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n highlightLines(lines[0] + 1, lines[lines.length - 1]);\n }\n }\n\n $(document).ready(() => {\n // highlight code and add line numbers\n $(selector).each((i, elt) => {\n hljs.highlightElement(elt);\n if (showLineNumbers) {\n hljs.lineNumbersElement(elt, {singleLine: true});\n }\n });\n\n if (!showLineNumbers || !enableLinesSelection) {\n return;\n }\n\n // click handler to dynamically highlight line(s)\n // when the user clicks on a line number (lines range\n // can also be highlighted while holding the shift key)\n $('.swh-content').click(evt => {\n if (evt.target.classList.contains('hljs-ln-n')) {\n const line = parseInt($(evt.target).data('line-number'));\n if (evt.shiftKey && firstHighlightedLine && line > firstHighlightedLine) {\n const firstLine = firstHighlightedLine;\n resetHighlightedLines();\n highlightLines(firstLine, line);\n firstHighlightedLine = firstLine;\n window.location.hash = `#L${firstLine}-L${line}`;\n } else {\n resetHighlightedLines();\n highlightLine(line);\n window.location.hash = `#L${line}`;\n scrollToLine(evt.target);\n }\n } else if ($(evt.target).closest('.hljs-ln').length) {\n resetHighlightedLines();\n removeUrlFragment();\n }\n });\n\n // update lines highlighting when the url fragment changes\n $(window).on('hashchange', () => parseUrlFragmentForLinesToHighlight());\n\n // schedule lines highlighting if any as hljs.lineNumbersElement() is async\n setTimeout(() => {\n parseUrlFragmentForLinesToHighlight();\n });\n\n });\n}\n",
"/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport './history-counters.css';\n\nexport async function drawHistoryCounterGraph(container, historyData) {\n\n const d3 = await import(/* webpackChunkName: \"d3\" */ 'utils/d3');\n\n // remove previously created histogram and tooltip if any\n d3.select(container).select('svg').remove();\n d3.select(`${container}-tooltip`).remove();\n\n // histogram size and margins\n let width = 400;\n let height = 300;\n const margin = {top: 20, right: 50, bottom: 70, left: 30};\n\n // create responsive svg\n const svg = d3.select(container)\n .attr('style',\n `padding-bottom: ${Math.ceil(height * 100 / width)}%`)\n .append('svg')\n .attr('viewBox', `0 0 ${width} ${height}`);\n\n // create tooltip div\n const tooltip = d3.select('body')\n .append('div')\n .attr('class', 'd3-tooltip')\n .attr('id', `${container}-tooltip`)\n .style('opacity', 0);\n\n // update width and height without margins\n width = width - margin.left - margin.right;\n height = height - margin.top - margin.bottom;\n\n // Make sure data points are sorted, by x coordinate then y coordinate.\n historyData.sort(function(a, b) {\n return a[0] - b[0] !== 0 ? a[0] - b[0] : a[1] - b[1];\n });\n\n const firstPoint = historyData[0];\n const lastPoint = historyData[historyData.length - 1];\n\n // create main svg group element\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n // create x scale\n const xScale = d3.scaleTime()\n .rangeRound([0, width])\n .domain([firstPoint[0], lastPoint[0]])\n .nice();\n\n // create y scale\n const yScale = d3.scaleLinear()\n .range([height, 0])\n .domain([firstPoint[1], lastPoint[1]])\n .nice();\n\n // create line generator\n const line = d3.line()\n .x(d => xScale(d[0]))\n .y(d => yScale(d[1]));\n\n // utility functions\n const dateFormatter = d3.timeFormat('%d %b %Y');\n const valueFormatter = (v) => {\n return d3.format('.3s')(v).replace(/G/, 'B');\n };\n const bisectDate = d3.bisector(d => d[0]).left;\n\n // add x axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(0, ${height})`)\n .call(\n d3.axisBottom(xScale)\n .ticks(10)\n .tickFormat(dateFormatter)\n )\n .selectAll('text')\n .style('text-anchor', 'end')\n .attr('dx', '-.8em')\n .attr('dy', '.15em')\n .attr('transform', 'rotate(-65)');\n\n // add y axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(${width}, 0)`)\n .call(\n d3.axisRight(yScale)\n .ticks(10)\n .tickFormat(valueFormatter)\n );\n\n // add data plot\n g.append('path')\n .datum(historyData)\n .attr('class', 'swh-history-counter-line')\n .attr('d', line);\n\n // add tooltip\n const focus = g.append('g')\n .attr('class', 'swh-history-counter-focus')\n .style('display', 'none');\n\n focus.append('circle')\n .attr('r', 8);\n\n g.append('rect')\n .attr('class', 'swh-history-counter-overlay')\n .attr('width', width)\n .attr('height', height)\n .on('mouseover', function(event) {\n focus.style('display', null);\n updateTooltip(event);\n tooltip.transition()\n .duration(200)\n .style('opacity', 1);\n })\n .on('mouseout', () => {\n focus.style('display', 'none');\n tooltip.transition()\n .duration(200)\n .style('opacity', 0);\n })\n .on('mousemove', function(event) {\n updateTooltip(event);\n });\n\n function updateTooltip(event) {\n const x0 = xScale.invert(d3.pointer(event)[0]);\n const i = bisectDate(historyData, x0, 1);\n if (i >= historyData.length) return;\n const d0 = historyData[i - 1];\n const d1 = historyData[i];\n const d = x0 - d0[0] > d1[0] - x0 ? d1 : d0;\n focus.attr('transform', `translate(${xScale(d[0])}, ${yScale(d[1])})`);\n const tooltipText = `${dateFormatter(d[0])} ${valueFormatter(d[1])}`;\n tooltip.html(tooltipText)\n .style('left', event.pageX + 15 + 'px')\n .style('top', event.pageY + 'px');\n }\n}\n",
"/**\n * Copyright (C) 2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function showIframeInfoModal(objectType, objectSWHID) {\n const html = `\n <p>\n You can embed that ${objectType} view in an external website\n through the use of an iframe. Use the following HTML code\n to do so.\n </p>\n <pre><code class=\"swh-iframe-html html\">&lt;iframe style=\"width: 100%; height: 500px; border: 1px solid rgba(0, 0, 0, 0.125);\"\n src=\"${window.location.origin}${Urls.swhid_iframe(objectSWHID.replaceAll('\\n', ''))}\"&gt;\n&lt;/iframe&gt;</code></pre>\n <iframe style=\"width: 100%; height: 500px; border: 1px solid rgba(0, 0, 0, 0.125);\"\n src=\"${window.location.origin}${Urls.swhid_iframe(objectSWHID.replaceAll('\\n', ''))}\">\n </iframe>`;\n swh.webapp.showModalHtml(`Software Heritage ${objectType} iframe`, html, '1000px');\n swh.webapp.highlightCode(false, '.swh-iframe-html');\n}\n",
"/**\n * Copyright (C) 2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\nexport async function typesetMath() {\n\n window.MathJax = {\n chtml: {\n fontURL: staticAsset('fonts/')\n },\n tex: {\n tags: 'ams',\n useLabelIds: true,\n inlineMath: [ ['$', '$'], ['\\\\(', '\\\\)'] ],\n displayMath: [ ['$$', '$$'], ['\\\\[', '\\\\]'] ],\n processEscapes: true,\n processEnvironments: true\n }\n };\n\n await import(/* webpackChunkName: \"mathjax\" */ 'utils/mathjax');\n}\n",
"/**\n * Copyright (C) 2019-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport 'script-loader!notebookjs';\nimport AnsiUp from 'ansi_up';\nimport './notebook.css';\n\nconst ansiup = new AnsiUp();\nansiup.escape_for_html = false;\n\nfunction escapeHTML(text) {\n text = text.replace(/</g, '&lt;');\n text = text.replace(/>/g, '&gt;');\n return text;\n}\n\nfunction unescapeHTML(text) {\n text = text.replace(/&lt;/g, '<');\n text = text.replace(/&gt;/g, '>');\n return text;\n}\n\nfunction escapeLaTeX(text) {\n\n const blockMath = /\\$\\$(.+?)\\$\\$|\\\\\\\\\\[(.+?)\\\\\\\\\\]/msg;\n const inlineMath = /\\$(.+?)\\$|\\\\\\\\\\((.+?)\\\\\\\\\\)/g;\n const latexEnvironment = /\\\\begin\\{([a-z]*\\*?)\\}(.+?)\\\\end\\{\\1\\}/msg;\n\n const mathTextFound = [];\n let bm;\n while ((bm = blockMath.exec(text)) !== null) {\n mathTextFound.push(bm[1]);\n }\n\n let im;\n while ((im = inlineMath.exec(text)) !== null) {\n mathTextFound.push(im[1]);\n }\n\n let le;\n while ((le = latexEnvironment.exec(text)) !== null) {\n mathTextFound.push(le[1]);\n }\n\n for (const mathText of mathTextFound) {\n // showdown will remove line breaks in LaTex array and\n // some escaping sequences when converting md to html.\n // So we use the following escaping hacks to keep them in the html\n // output and avoid MathJax typesetting errors.\n let escapedText = mathText.replace('\\\\\\\\', '\\\\\\\\\\\\\\\\');\n for (const specialLaTexChar of ['{', '}', '#', '%', '&', '_']) {\n escapedText = escapedText.replace(new RegExp(`\\\\\\\\${specialLaTexChar}`, 'g'),\n `\\\\\\\\${specialLaTexChar}`);\n }\n\n // some html escaping is also needed\n escapedText = escapeHTML(escapedText);\n\n // hack to prevent showdown to replace _ characters\n // by html em tags as it will break some math typesetting\n // (setting the literalMidWordUnderscores option is not\n // enough as iy only works for _ characters contained in words)\n escapedText = escapedText.replace(/_/g, '{@}underscore{@}');\n\n if (mathText !== escapedText) {\n text = text.replace(mathText, escapedText);\n }\n }\n\n return text;\n}\n\nexport async function renderNotebook(nbJsonUrl, domElt) {\n\n const showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n function renderMarkdown(text) {\n const converter = new showdown.Converter({\n tables: true,\n simplifiedAutoLink: true,\n rawHeaderId: true,\n literalMidWordUnderscores: true\n });\n\n // some LaTeX escaping is required to get correct math typesetting\n text = escapeLaTeX(text);\n\n // render markdown\n let rendered = converter.makeHtml(text);\n\n // restore underscores in rendered HTML (see escapeLaTeX function)\n rendered = rendered.replace(/{@}underscore{@}/g, '_');\n\n return rendered;\n }\n\n function highlightCode(text, preElt, codeElt, lang) {\n // no need to unescape text processed by ansiup\n if (text.indexOf('<span style=\"color:rgb(') === -1) {\n text = unescapeHTML(text);\n }\n if (lang && hljs.getLanguage(lang)) {\n return hljs.highlight(text, {language: lang}).value;\n } else {\n return text;\n }\n }\n\n function renderAnsi(text) {\n return ansiup.ansi_to_html(text);\n }\n\n nb.markdown = renderMarkdown;\n nb.highlighter = highlightCode;\n nb.ansi = renderAnsi;\n\n const response = await fetch(nbJsonUrl);\n const nbJson = await response.json();\n\n // parse the notebook\n const notebook = nb.parse(nbJson);\n // render it to HTML and apply XSS filtering\n const rendered = swh.webapp.filterXSS(notebook.render());\n // insert rendered notebook in the DOM\n $(domElt).append(rendered);\n // set light red background color for stderr output cells\n $('pre.nb-stderr').parent().css('background', '#fdd');\n // load MathJax library for math typesetting\n swh.webapp.typesetMath();\n}\n",
"/**\n * Copyright (C) 2018-2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// adapted from pdf.js examples located at http://mozilla.github.io/pdf.js/examples/\n\nimport {staticAsset} from 'utils/functions';\n\nexport async function renderPdf(pdfUrl) {\n\n let pdfDoc = null;\n let pageNum = 1;\n let pageRendering = false;\n let pageNumPending = null;\n const defaultScale = 1.5;\n const canvas = $('#pdf-canvas')[0];\n const ctx = canvas.getContext('2d');\n\n // Get page info from document, resize canvas accordingly, and render page.\n async function renderPage(num) {\n pageRendering = true;\n // Using promise to fetch the page\n const page = await pdfDoc.getPage(num);\n\n const divWidth = $('.swh-content').width();\n const scale = Math.min(defaultScale, divWidth / page.getViewport({scale: 1.0}).width);\n\n const viewport = page.getViewport({scale: scale});\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: ctx,\n viewport: viewport\n };\n\n // Wait for rendering to finish\n await page.render(renderContext);\n\n pageRendering = false;\n if (pageNumPending !== null) {\n // New page rendering is pending\n renderPage(pageNumPending);\n pageNumPending = null;\n }\n\n // Update page counters\n $('#pdf-page-num').text(num);\n }\n\n // If another page rendering in progress, waits until the rendering is\n // finished. Otherwise, executes rendering immediately.\n function queueRenderPage(num) {\n if (pageRendering) {\n pageNumPending = num;\n } else {\n renderPage(num);\n }\n }\n\n // Displays previous page.\n function onPrevPage() {\n if (pageNum <= 1) {\n return;\n }\n pageNum--;\n queueRenderPage(pageNum);\n }\n\n // Displays next page.\n function onNextPage() {\n if (pageNum >= pdfDoc.numPages) {\n return;\n }\n pageNum++;\n queueRenderPage(pageNum);\n }\n\n const pdfjs = await import(/* webpackChunkName: \"pdfjs\" */ 'pdfjs-dist');\n\n pdfjs.GlobalWorkerOptions.workerSrc = staticAsset('js/pdf.worker.min.js');\n\n $(document).ready(async() => {\n $('#pdf-prev').click(onPrevPage);\n $('#pdf-next').click(onNextPage);\n try {\n const pdf = await pdfjs.getDocument(pdfUrl).promise;\n pdfDoc = pdf;\n $('#pdf-page-count').text(pdfDoc.numPages);\n // Initial/first page rendering\n renderPage(pageNum);\n } catch (reason) {\n // PDF loading error\n console.error(reason);\n }\n\n // Render PDF on resize\n $(window).on('resize', function() {\n queueRenderPage(pageNum);\n });\n });\n\n}\n",
"/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError} from 'utils/functions';\n\nimport {decode} from 'html-encoder-decoder';\n\nexport async function renderMarkdown(domElt, markdownDocUrl) {\n\n const showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // Adapted from https://github.com/Bloggify/showdown-highlight\n // Copyright (c) 2016-19 Bloggify <support@bloggify.org> (https://bloggify.org)\n function showdownHighlight() {\n return [{\n type: 'output',\n filter: function(text, converter, options) {\n const left = '<pre><code\\\\b[^>]*>';\n const right = '</code></pre>';\n const flags = 'g';\n const classAttr = 'class=\"';\n const replacement = (wholeMatch, match, left, right) => {\n match = decode(match);\n const lang = (left.match(/class=\"([^ \"]+)/) || [])[1];\n\n if (left.includes(classAttr)) {\n const attrIndex = left.indexOf(classAttr) + classAttr.length;\n left = left.slice(0, attrIndex) + 'hljs ' + left.slice(attrIndex);\n } else {\n left = left.slice(0, -1) + ' class=\"hljs\">';\n }\n\n if (lang && hljs.getLanguage(lang)) {\n return left + hljs.highlight(match, {language: lang}).value + right;\n } else {\n return left + match + right;\n }\n };\n\n return showdown.helper.replaceRecursiveRegExp(text, replacement, left, right, flags);\n }\n }];\n }\n\n $(document).ready(async() => {\n const converter = new showdown.Converter({\n tables: true,\n extensions: [showdownHighlight]\n });\n const url = new URL(window.location.href);\n if (url.searchParams.has('origin_url')) {\n try {\n const originUrl = new URL(url.searchParams.get('origin_url'));\n if (originUrl.hostname === 'github.com') {\n converter.setFlavor('github');\n }\n } catch (TypeError) {}\n }\n\n try {\n const response = await fetch(markdownDocUrl);\n handleFetchError(response);\n const data = await response.text();\n $(domElt).addClass('swh-showdown');\n $(domElt).html(swh.webapp.filterXSS(converter.makeHtml(data)));\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n\n}\n\nexport async function renderOrgData(domElt, orgDocData) {\n\n const org = await import(/* webpackChunkName: \"org\" */ 'utils/org');\n\n const parser = new org.Parser();\n const orgDocument = parser.parse(orgDocData, {toc: false});\n const orgHTMLDocument = orgDocument.convert(org.ConverterHTML, {});\n $(domElt).addClass('swh-org');\n $(domElt).html(swh.webapp.filterXSS(orgHTMLDocument.toString()));\n // remove toc and section numbers to get consistent\n // with other readme renderings\n $('.swh-org ul').first().remove();\n $('.section-number').remove();\n\n}\n\nexport function renderOrg(domElt, orgDocUrl) {\n $(document).ready(async() => {\n try {\n const response = await fetch(orgDocUrl);\n handleFetchError(response);\n const data = await response.text();\n renderOrgData(domElt, data);\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n}\n\nexport function renderTxt(domElt, txtDocUrl) {\n $(document).ready(async() => {\n try {\n const response = await fetch(txtDocUrl);\n handleFetchError(response);\n const data = await response.text();\n\n const orgMode = '-*- mode: org -*-';\n if (data.indexOf(orgMode) !== -1) {\n renderOrgData(domElt, data.replace(orgMode, ''));\n } else {\n $(domElt).addClass('swh-readme-txt');\n $(domElt)\n .html('')\n .append($('<pre></pre>').text(data));\n }\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n}\n",
"/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport * as Sentry from '@sentry/browser';\n\n// Called by a <script> object in the header, after the configuration is\n// loaded.\nexport function sentryInit(sentryDsn) {\n if (sentryDsn !== undefined) {\n Sentry.init({dsn: sentryDsn});\n }\n}\n\n// May be used in other scripts to report exceptions.\nexport function sentryCaptureException(exc) {\n Sentry.captureException(exc);\n}\n",
"/**\n * Copyright (C) 2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport './status-widget.css';\n\nconst statusCodeColor = {\n '100': 'green', // Operational\n '200': 'blue', // Scheduled Maintenance\n '300': 'yellow', // Degraded Performance\n '400': 'yellow', // Partial Service Disruption\n '500': 'red', // Service Disruption\n '600': 'red' // Security Event\n};\n\nexport function initStatusWidget(statusDataURL) {\n $('.swh-current-status-indicator').ready(async() => {\n let maxStatusCode = '';\n let maxStatusDescription = '';\n let sc = '';\n let sd = '';\n try {\n const response = await fetch(statusDataURL);\n const data = await response.json();\n\n for (const s of data.result.status) {\n sc = s.status_code;\n sd = s.status;\n if (maxStatusCode < sc) {\n maxStatusCode = sc;\n maxStatusDescription = sd;\n }\n }\n if (maxStatusCode === '') {\n $('.swh-current-status').remove();\n return;\n }\n $('.swh-current-status-indicator').removeClass('green');\n $('.swh-current-status-indicator').addClass(statusCodeColor[maxStatusCode]);\n $('#swh-current-status-description').text(maxStatusDescription);\n\n } catch (e) {\n console.log(e);\n $('.swh-current-status').remove();\n }\n });\n}\n",
"/**\n * Copyright (C) 2018-2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport objectFitImages from 'object-fit-images';\nimport {selectText} from 'utils/functions';\nimport {BREAKPOINT_MD} from 'utils/constants';\nimport Cookies from 'js-cookie';\n\n$(document).on('collapsed.lte.pushmenu', event => {\n if ($('body').width() >= BREAKPOINT_MD) {\n $('.swh-words-logo-swh').css('visibility', 'visible');\n }\n});\n\n$(document).on('shown.lte.pushmenu', event => {\n $('.swh-words-logo-swh').css('visibility', 'hidden');\n});\n\nfunction ensureNoFooterOverflow() {\n $('body').css('padding-bottom', $('footer').outerHeight() + 'px');\n}\n\n$(document).ready(() => {\n // redirect to last browse page if any when clicking on the 'Browse' entry\n // in the sidebar\n $(`.swh-browse-link`).click(event => {\n const lastBrowsePage = sessionStorage.getItem('last-browse-page');\n if (lastBrowsePage) {\n event.preventDefault();\n window.location = lastBrowsePage;\n }\n });\n\n const mainSideBar = $('.main-sidebar');\n\n function updateSidebarState() {\n const body = $('body');\n if (body.hasClass('sidebar-collapse') &&\n !mainSideBar.hasClass('swh-sidebar-collapsed')) {\n mainSideBar.removeClass('swh-sidebar-expanded');\n mainSideBar.addClass('swh-sidebar-collapsed');\n $('.swh-words-logo-swh').css('visibility', 'visible');\n Cookies.set('sidebar-state', 'collapsed');\n } else if (!body.hasClass('sidebar-collapse') &&\n !mainSideBar.hasClass('swh-sidebar-expanded')) {\n mainSideBar.removeClass('swh-sidebar-collapsed');\n mainSideBar.addClass('swh-sidebar-expanded');\n $('.swh-words-logo-swh').css('visibility', 'hidden');\n Cookies.set('sidebar-state', 'expanded');\n }\n // ensure correct sidebar state when loading a page\n if (body.hasClass('hold-transition')) {\n setTimeout(() => {\n updateSidebarState();\n });\n }\n }\n\n // set sidebar state after collapse / expand animation\n mainSideBar.on('transitionend', evt => {\n updateSidebarState();\n });\n\n updateSidebarState();\n\n // ensure footer do not overflow main content for mobile devices\n // or after resizing the browser window\n ensureNoFooterOverflow();\n $(window).resize(function() {\n ensureNoFooterOverflow();\n if ($('body').hasClass('sidebar-collapse') && $('body').width() >= BREAKPOINT_MD) {\n $('.swh-words-logo-swh').css('visibility', 'visible');\n }\n });\n // activate css polyfill 'object-fit: contain' in old browsers\n objectFitImages();\n\n // reparent the modals to the top navigation div in order to be able\n // to display them\n $('.swh-browse-top-navigation').append($('.modal'));\n\n let selectedCode = null;\n\n function getCodeOrPreEltUnderPointer(e) {\n if (e.clientX && e.clientY) {\n const elts = document.elementsFromPoint(e.clientX, e.clientY);\n for (const elt of elts) {\n if (elt.nodeName === 'CODE' || elt.nodeName === 'PRE') {\n return elt;\n }\n }\n }\n return null;\n }\n\n // click handler to set focus on code block for copy\n $(document).click(e => {\n selectedCode = getCodeOrPreEltUnderPointer(e);\n });\n\n function selectCode(event, selectedCode) {\n if (selectedCode) {\n const hljsLnCodeElts = $(selectedCode).find('.hljs-ln-code');\n if (hljsLnCodeElts.length) {\n selectText(hljsLnCodeElts[0], hljsLnCodeElts[hljsLnCodeElts.length - 1]);\n } else {\n selectText(selectedCode.firstChild, selectedCode.lastChild);\n }\n event.preventDefault();\n }\n }\n\n // select the whole text of focused code block when user\n // double clicks or hits Ctrl+A\n $(document).dblclick(e => {\n if ((e.ctrlKey || e.metaKey)) {\n selectCode(e, getCodeOrPreEltUnderPointer(e));\n }\n });\n\n $(document).keydown(e => {\n if ((e.ctrlKey || e.metaKey) && e.key === 'a') {\n selectCode(e, selectedCode);\n }\n });\n\n // show/hide back-to-top button\n let scrollThreshold = 0;\n scrollThreshold += $('.swh-top-bar').height() || 0;\n scrollThreshold += $('.navbar').height() || 0;\n $(window).scroll(() => {\n if ($(window).scrollTop() > scrollThreshold) {\n $('#back-to-top').css('display', 'block');\n } else {\n $('#back-to-top').css('display', 'none');\n }\n });\n\n // navbar search form submission callback\n $('#swh-origins-search-top').submit(event => {\n event.preventDefault();\n if (event.target.checkValidity()) {\n $(event.target).removeClass('was-validated');\n const searchQueryText = $('#swh-origins-search-top-input').val().trim();\n const queryParameters = new URLSearchParams();\n queryParameters.append('q', searchQueryText);\n queryParameters.append('with_visit', true);\n queryParameters.append('with_content', true);\n window.location = `${Urls.browse_search()}?${queryParameters.toString()}`;\n } else {\n $(event.target).addClass('was-validated');\n }\n });\n});\n\nexport function initPage(page) {\n\n $(document).ready(() => {\n // set relevant sidebar link to page active\n $(`.swh-${page}-item`).addClass('active');\n $(`.swh-${page}-link`).addClass('active');\n\n // triggered when unloading the current page\n $(window).on('unload', () => {\n // backup current browse page\n if (page === 'browse') {\n sessionStorage.setItem('last-browse-page', window.location);\n }\n });\n });\n}\n\nexport function initHomePage() {\n $(document).ready(async() => {\n $('.swh-coverage-list').iFrameResize({heightCalculationMethod: 'taggedElement'});\n const response = await fetch(Urls.stat_counters());\n const data = await response.json();\n\n if (data.stat_counters && !$.isEmptyObject(data.stat_counters)) {\n for (const objectType of ['content', 'revision', 'origin', 'directory', 'person', 'release']) {\n const count = data.stat_counters[objectType];\n if (count !== undefined) {\n $(`#swh-${objectType}-count`).html(count.toLocaleString());\n } else {\n $(`#swh-${objectType}-count`).closest('.swh-counter-container').hide();\n }\n }\n } else {\n $('.swh-counter').html('0');\n }\n if (data.stat_counters_history && !$.isEmptyObject(data.stat_counters_history)) {\n for (const objectType of ['content', 'revision', 'origin']) {\n const history = data.stat_counters_history[objectType];\n if (history) {\n swh.webapp.drawHistoryCounterGraph(`#swh-${objectType}-count-history`, history);\n } else {\n $(`#swh-${objectType}-count-history`).hide();\n }\n\n }\n } else {\n $('.swh-counter-history').hide();\n }\n });\n initPage('home');\n}\n\nexport function showModalMessage(title, message) {\n $('#swh-web-modal-message .modal-title').text(title);\n $('#swh-web-modal-message .modal-content p').text(message);\n $('#swh-web-modal-message').modal('show');\n}\n\nexport function showModalConfirm(title, message, callback) {\n $('#swh-web-modal-confirm .modal-title').text(title);\n $('#swh-web-modal-confirm .modal-content p').text(message);\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').bind('click', () => {\n callback();\n $('#swh-web-modal-confirm').modal('hide');\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').unbind('click');\n });\n $('#swh-web-modal-confirm').modal('show');\n}\n\nexport function showModalHtml(title, html, width = '500px') {\n $('#swh-web-modal-html .modal-title').text(title);\n $('#swh-web-modal-html .modal-body').html(html);\n $('#swh-web-modal-html .modal-dialog').css('max-width', width);\n $('#swh-web-modal-html .modal-dialog').css('width', width);\n $('#swh-web-modal-html').modal('show');\n}\n\nexport function addJumpToPagePopoverToDataTable(dataTableElt) {\n dataTableElt.on('draw.dt', function() {\n $('.paginate_button.disabled').css('cursor', 'pointer');\n $('.paginate_button.disabled').on('click', event => {\n const pageInfo = dataTableElt.page.info();\n let content = '<select class=\"jump-to-page\">';\n for (let i = 1; i <= pageInfo.pages; ++i) {\n let selected = '';\n if (i === pageInfo.page + 1) {\n selected = 'selected';\n }\n content += `<option value=\"${i}\" ${selected}>${i}</option>`;\n }\n content += `</select><span> / ${pageInfo.pages}</span>`;\n $(event.target).popover({\n 'title': 'Jump to page',\n 'content': content,\n 'html': true,\n 'placement': 'top',\n 'sanitizeFn': swh.webapp.filterXSS\n });\n $(event.target).popover('show');\n $('.jump-to-page').on('change', function() {\n $('.paginate_button.disabled').popover('hide');\n const pageNumber = parseInt($(this).val()) - 1;\n dataTableElt.page(pageNumber).draw('page');\n });\n });\n });\n\n dataTableElt.on('preXhr.dt', () => {\n $('.paginate_button.disabled').popover('hide');\n });\n}\n\nlet swhObjectIcons;\n\nexport function setSwhObjectIcons(icons) {\n swhObjectIcons = icons;\n}\n\nexport function getSwhObjectIcon(swhObjectType) {\n return swhObjectIcons[swhObjectType];\n}\n\nlet browsedSwhObjectMetadata = {};\n\nexport function setBrowsedSwhObjectMetadata(metadata) {\n browsedSwhObjectMetadata = metadata;\n}\n\nexport function getBrowsedSwhObjectMetadata() {\n return browsedSwhObjectMetadata;\n}\n\n// This will contain a mapping between an archived object type\n// and its related SWHID metadata for each object reachable from\n// the current browse view.\n// SWHID metadata contain the following keys:\n// * object_type: type of archived object\n// * object_id: sha1 object identifier\n// * swhid: SWHID without contextual info\n// * swhid_url: URL to resolve SWHID without contextual info\n// * context: object describing SWHID context\n// * swhid_with_context: SWHID with contextual info\n// * swhid_with_context_url: URL to resolve SWHID with contextual info\nlet swhidsContext_ = {};\n\nexport function setSwhIdsContext(swhidsContext) {\n swhidsContext_ = {};\n for (const swhidContext of swhidsContext) {\n swhidsContext_[swhidContext.object_type] = swhidContext;\n }\n}\n\nexport function getSwhIdsContext() {\n return swhidsContext_;\n}\n\nfunction setFullWidth(fullWidth) {\n if (fullWidth) {\n $('#swh-web-content').removeClass('container');\n $('#swh-web-content').addClass('container-fluid');\n } else {\n $('#swh-web-content').removeClass('container-fluid');\n $('#swh-web-content').addClass('container');\n }\n localStorage.setItem('swh-web-full-width', JSON.stringify(fullWidth));\n $('#swh-full-width-switch').prop('checked', fullWidth);\n}\n\nexport function fullWidthToggled(event) {\n setFullWidth($(event.target).prop('checked'));\n}\n\nexport function setContainerFullWidth() {\n const previousFullWidthState = JSON.parse(localStorage.getItem('swh-web-full-width'));\n if (previousFullWidthState !== null) {\n setFullWidth(previousFullWidthState);\n }\n}\n\nfunction coreSWHIDIsLowerCase(swhid) {\n const qualifiersPos = swhid.indexOf(';');\n let coreSWHID = swhid;\n if (qualifiersPos !== -1) {\n coreSWHID = swhid.slice(0, qualifiersPos);\n }\n return coreSWHID.toLowerCase() === coreSWHID;\n}\n\nexport async function validateSWHIDInput(swhidInputElt) {\n const swhidInput = swhidInputElt.value.trim();\n let customValidity = '';\n if (swhidInput.toLowerCase().startsWith('swh:')) {\n if (coreSWHIDIsLowerCase(swhidInput)) {\n const resolveSWHIDUrl = Urls.api_1_resolve_swhid(swhidInput);\n const response = await fetch(resolveSWHIDUrl);\n const responseData = await response.json();\n if (responseData.hasOwnProperty('exception')) {\n customValidity = responseData.reason;\n }\n } else {\n const qualifiersPos = swhidInput.indexOf(';');\n if (qualifiersPos === -1) {\n customValidity = 'Invalid SWHID: all characters must be in lowercase. ';\n customValidity += `Valid SWHID is ${swhidInput.toLowerCase()}`;\n } else {\n customValidity = 'Invalid SWHID: the core part must be in lowercase. ';\n const coreSWHID = swhidInput.slice(0, qualifiersPos);\n customValidity += `Valid SWHID is ${swhidInput.replace(coreSWHID, coreSWHID.toLowerCase())}`;\n }\n }\n }\n swhidInputElt.setCustomValidity(customValidity);\n $(swhidInputElt).siblings('.invalid-feedback').text(customValidity);\n}\n\nexport function isUserLoggedIn() {\n return JSON.parse($('#swh_user_logged_in').text());\n}\n",
"/**\n * Copyright (C) 2019-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport DOMPurify from 'dompurify';\n\n// we register a hook when performing XSS filtering in order to\n// possibly replace a relative image url with the one for getting\n// the image bytes from the archive content\nDOMPurify.addHook('uponSanitizeAttribute', function(node, data) {\n if (node.nodeName === 'IMG' && data.attrName === 'src') {\n\n // image url does not need any processing here\n if (data.attrValue.startsWith('data:image') ||\n data.attrValue.startsWith('http:') ||\n data.attrValue.startsWith('https:')) {\n return;\n }\n\n // get currently browsed swh object metadata\n const swhObjectMetadata = swh.webapp.getBrowsedSwhObjectMetadata();\n\n // the swh object is provided without any useful context\n // to get the image checksums from the web api\n if (!swhObjectMetadata.hasOwnProperty('directory')) {\n return;\n }\n\n let directory;\n // get directory from which to check path existence\n if (swhObjectMetadata.object_type === 'directory') {\n // case when a README is rendered in a directory view\n directory = swhObjectMetadata.object_id;\n } else {\n // otherwise we browse a content, get its directory\n directory = swhObjectMetadata.directory;\n }\n\n // used internal endpoint as image url to possibly get the image data\n // from the archive content\n let directoryUrl = Urls.browse_directory_resolve_content_path(directory);\n let path = data.attrValue;\n // strip any query parameters appended to path\n let processedPath = path;\n if (!processedPath.startsWith('/')) {\n processedPath = '/' + processedPath;\n }\n const url = new URL(window.location.origin + processedPath);\n if (url.search) {\n path = path.replace(url.search, '');\n }\n // update img src attribute with archive URL\n directoryUrl += `?path=${encodeURIComponent(path)}`;\n data.attrValue = directoryUrl;\n }\n});\n\nexport function filterXSS(html) {\n return DOMPurify.sanitize(html);\n}\n",
"/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n",
"/**\n * Copyright (C) 2018-2022 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, pathPrefix = '/') {\n const allowedProtocols = ['http:', 'https:', 'git:'];\n if (allowedProtocols.find(protocol => protocol === url.protocol) === undefined) {\n return false;\n }\n if (!url.pathname.startsWith(pathPrefix)) {\n return false;\n }\n const re = new RegExp('[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git\\\\/?)?$');\n return re.test(url.pathname.slice(pathPrefix.length));\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n const selection = window.getSelection();\n selection.removeAllRanges();\n const range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n\nexport function validateUrl(url, allowedProtocols = []) {\n let originUrl = null;\n let validUrl = true;\n\n try {\n originUrl = new URL(url);\n } catch (TypeError) {\n validUrl = false;\n }\n\n if (validUrl && allowedProtocols.length) {\n validUrl = (\n allowedProtocols.find(protocol => protocol === originUrl.protocol) !== undefined\n );\n }\n\n return validUrl ? originUrl : null;\n}\n\nexport async function isArchivedOrigin(originPath) {\n if (!validateUrl(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n const response = await fetch(Urls.api_1_origin(originPath));\n return response.ok && response.status === 200; // Success response represents an archived origin\n }\n}\n\nasync function getCanonicalGithubOriginURL(ownerRepo) {\n const ghApiResponse = await fetch(`https://api.github.com/repos/${ownerRepo}`);\n if (ghApiResponse.ok && ghApiResponse.status === 200) {\n const ghApiResponseData = await ghApiResponse.json();\n return ghApiResponseData.html_url;\n }\n}\n\nexport async function getCanonicalOriginURL(originUrl) {\n let originUrlLower = originUrl.toLowerCase();\n // github.com URL processing\n const ghUrlRegex = /^http[s]*:\\/\\/github.com\\//;\n if (originUrlLower.match(ghUrlRegex)) {\n // remove trailing .git\n if (originUrlLower.endsWith('.git')) {\n originUrlLower = originUrlLower.slice(0, -4);\n }\n // remove trailing slash\n if (originUrlLower.endsWith('/')) {\n originUrlLower = originUrlLower.slice(0, -1);\n }\n // extract {owner}/{repo}\n const ownerRepo = originUrlLower.replace(ghUrlRegex, '');\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n const ghpagesUrlRegex = /^http[s]*:\\/\\/(?<owner>[^/]+).github.io\\/(?<repo>[^/]+)\\/?.*/;\n const parsedUrl = originUrlLower.match(ghpagesUrlRegex);\n if (parsedUrl) {\n const ownerRepo = `${parsedUrl.groups.owner}/${parsedUrl.groups.repo}`;\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n return originUrl;\n}\n\nexport function getHumanReadableDate(data) {\n // Display iso format date string into a human readable date\n // This is expected to be used by date field in datatable listing views\n // Example: 3/24/2022, 10:31:08 AM\n const date = new Date(data);\n return date.toLocaleString();\n}\n\nexport function genLink(sanitizedUrl, type, openInNewTab = false, linkText = '') {\n // Display link. It's up to the caller to sanitize sanitizedUrl first.\n if (type === 'display' && sanitizedUrl) {\n const encodedSanitizedUrl = encodeURI(sanitizedUrl);\n if (!linkText) {\n linkText = encodedSanitizedUrl;\n }\n let attrs = '';\n if (openInNewTab) {\n attrs = 'target=\"_blank\" rel=\"noopener noreferrer\"';\n }\n return `<a href=\"${encodedSanitizedUrl}\" ${attrs}>${linkText}</a>`;\n }\n return sanitizedUrl;\n}\n",
"/*! @license DOMPurify 2.3.10 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.10/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return _construct(Func, _toConsumableArray(args));\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n var regExpTest = unapply(RegExp.prototype.test);\n var typeErrorCreate = unconstruct(TypeError);\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n /* Add properties to a lookup table */\n\n function addToSet(set, array, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n\n while (l--) {\n var element = array[l];\n\n if (typeof element === 'string') {\n var lcElement = transformCaseFunc(element);\n\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n /* Shallow clone an object */\n\n function clone(object) {\n var newObject = create(null);\n var property;\n\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG\n\n var svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n var mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']); // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n var text = freeze(['#text']);\n\n var html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n var svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n var mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\n var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n var DOCTYPE_NAME = seal(/^html$/i);\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n\n\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n } // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n\n\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html) {\n return html;\n },\n createScriptURL: function createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n\n\n DOMPurify.version = '2.3.10';\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n /* Allowed attribute names */\n\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n var FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n var FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n\n var ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n\n var ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n\n var SAFE_FOR_TEMPLATES = false;\n /* Decide if document with <html>... should be returned */\n\n var WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n\n var SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n\n var FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n\n var RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n\n var RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n\n var RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks? */\n\n var SANITIZE_DOM = true;\n /* Keep element content when removing element? */\n\n var KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n\n var IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n\n var USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n /* Parsing of strict XHTML documents */\n\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n /* Keep a reference to config to pass to hooks */\n\n var CONFIG = null;\n /* Ideally, do not touch anything below this line */\n\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n\n\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n\n\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n\n\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n /* Set configuration parameters */\n\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n\n\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n\n\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n\n\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n } // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n\n\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n } // The only way to switch from MathML to SVG is via\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n\n\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n } // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n\n\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n } // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n\n\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n } // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n\n\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n } // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n\n\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n } // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n\n\n return false;\n };\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n\n\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n\n\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name); // We void attribute values for unremovable \"is\"\" attributes\n\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n\n\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc;\n var leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n\n\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {// Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n\n\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n\n\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n\n\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');\n };\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n\n\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n\n\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n\n\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeElements', currentNode, null);\n /* Check if element is clobbered or can clobber */\n\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check if tagname contains Unicode */\n\n\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Now let's check the element's type and name */\n\n\n var tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n\n\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Mitigate a problem with templates inside select */\n\n\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Remove element if anything forbids its presence */\n\n\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n }\n /* Keep content except for bad-listed elements */\n\n\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n\n for (var i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check whether element has a valid namespace */\n\n\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Sanitize element content to be template-safe */\n\n\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$1, ' ');\n content = stringReplace(content, ERB_EXPR$1, ' ');\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n\n\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n\n\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if ( // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n\n\n var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n return tagName.indexOf('-') > 0;\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n\n\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr;\n var value;\n var lcName;\n var l;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n /* Execute a hook if present */\n\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n\n\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n\n\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n\n\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n\n\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$1, ' ');\n value = stringReplace(value, ERB_EXPR$1, ' ');\n }\n /* Is `value` valid for this attribute? */\n\n\n var lcTag = transformCaseFunc(currentNode.nodeName);\n\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Handle attributes that require Trusted Types */\n\n\n if (trustedTypesPolicy && _typeof(trustedTypes) === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n value = trustedTypesPolicy.createHTML(value);\n break;\n\n case 'TrustedScriptURL':\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n\n\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n\n\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode;\n\n var shadowIterator = _createIterator(fragment);\n /* Execute a hook if present */\n\n\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n /* Sanitize tags and elements */\n\n\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n /* Deep shadow DOM detected */\n\n\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n /* Check attributes, sanitize if necessary */\n\n\n _sanitizeAttributes(shadowNode);\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n\n\n DOMPurify.sanitize = function (dirty, cfg) {\n var body;\n var importedNode;\n var currentNode;\n var oldNode;\n var returnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n\n IS_EMPTY_INPUT = !dirty;\n\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n\n\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n /* Check we can run. Otherwise fall back or ignore */\n\n\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n /* Assign config vars */\n\n\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n\n\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n var tagName = transformCaseFunc(dirty.nodeName);\n\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n\n\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n\n\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n\n\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n\n\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n /* Sanitize tags and elements */\n\n\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n /* Shadow DOM detected, sanitize it */\n\n\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n /* Check attributes, sanitize if necessary */\n\n\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n /* If we sanitized `dirty` in-place, return it. */\n\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n\n\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n\n\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n\n\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n\n SET_CONFIG = true;\n };\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n\n\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n\n\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n\n\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n\n\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n\n\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n\n\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n",
"/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '&quot;',\n\t\t'&': '&amp;',\n\t\t'\\'': '&#x27;',\n\t\t'<': '&lt;',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it\u2019s part of a tag or an\n\t\t// unquoted attribute value. We\u2019re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '&gt;',\n\t\t// In Internet Explorer \u2264 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '&#x60;'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// \u201cOtherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.\u201d\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;')\n\t\t\t\t\t.replace(/&#x66;&#x6A;/g, '&fjlig;');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they\u2019re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&amp`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `&#119558;`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `&#x1D306;`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we\u2019re still here, `if ($7)` is implied; it\u2019s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n",
"\"use strict\";\n\nvar iterateObject = require(\"iterate-object\"),\n regexEscape = require(\"regex-escape\"),\n he = require(\"he\");\n\n//const DECODE_MAP = require(\"./character-map\")\n//const ENCODE_MAP = {};\n//\n//iterateObject(DECODE_MAP, (value, name) => {\n// ENCODE_MAP[value] = name;\n//});\n\nmodule.exports = {\n /**\n * decode\n * Decodes an encoded string.\n *\n * @name decode\n * @function\n * @param {String} input The encoded string.\n * @returns {String} The decoded string.\n */\n decode: function decode(input) {\n return he.decode(input);\n }\n\n /**\n * encode\n * Encodes a string.\n *\n * @name encode\n * @function\n * @param {String} input The string that must be encoded.\n * @returns {String} The encoded string.\n */\n ,\n encode: function encode(input) {\n return he.encode(input);\n }\n};",
"\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * iterateObject\n * Iterates an object. Note the object field order may differ.\n *\n * @name iterateObject\n * @function\n * @param {Object} obj The input object.\n * @param {Function} fn A function that will be called with the current value, field name and provided object.\n * @return {Function} The `iterateObject` function.\n */\nfunction iterateObject(obj, fn) {\n var i = 0,\n keys = [];\n\n if (Array.isArray(obj)) {\n for (; i < obj.length; ++i) {\n if (fn(obj[i], i, obj) === false) {\n break;\n }\n }\n } else if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj !== null) {\n keys = Object.keys(obj);\n for (; i < keys.length; ++i) {\n if (fn(obj[keys[i]], keys[i], obj) === false) {\n break;\n }\n }\n }\n}\n\nmodule.exports = iterateObject;",
"/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n",
"module.exports = \"// http://github.com/jsvine/notebookjs\\n// notebook.js may be freely distributed under the MIT license.\\n(function () {\\n var VERSION = \\\"0.6.7\\\";\\n var root = this;\\n var isBrowser = root.window !== undefined;\\n var doc;\\n\\n // Get browser or JSDOM document\\n if (isBrowser) {\\n doc = root.document;\\n } else {\\n var jsdom = require(\\\"jsdom\\\");\\n var dom = new jsdom.JSDOM();\\n doc = dom.window.document;\\n }\\n\\n // Helper functions\\n var ident = function (x) { return x; };\\n\\n var makeElement = function (tag, classNames) {\\n var el = doc.createElement(tag);\\n el.className = (classNames || []).map(function (cn) {\\n return nb.prefix + cn;\\n }).join(\\\" \\\");\\n return el;\\n };\\n\\n var escapeHTML = function (raw) {\\n var replaced = raw\\n .replace(/</g, \\\"&lt;\\\")\\n .replace(/>/g, \\\"&gt;\\\");\\n return replaced;\\n };\\n\\n var joinText = function (text) {\\n if (text.join) {\\n return text.map(joinText).join(\\\"\\\");\\n } else {\\n return text;\\n }\\n };\\n\\n // Get supporting libraries\\n var getMarkdown = function () {\\n return root.marked || (typeof require === \\\"function\\\" && require(\\\"marked\\\"));\\n };\\n\\n var getAnsi = function () {\\n var lib = root.ansi_up || (typeof require === \\\"function\\\" && require(\\\"ansi_up\\\"));\\n return lib && lib.ansi_to_html;\\n };\\n\\n var getSanitizer = function () {\\n var lib = root.DOMPurify || (typeof require === \\\"function\\\" && require(\\\"dompurify\\\"));\\n if (isBrowser) {\\n return lib && lib.sanitize;\\n } else {\\n return lib(dom.window).sanitize;\\n }\\n };\\n\\n // Set up `nb` namespace\\n var nb = {\\n prefix: \\\"nb-\\\",\\n markdown: getMarkdown() || ident,\\n ansi: getAnsi() || ident,\\n sanitizer: getSanitizer() || ident,\\n highlighter: ident,\\n VERSION: VERSION\\n };\\n\\n // Inputs\\n nb.Input = function (raw, cell) {\\n this.raw = raw;\\n this.cell = cell;\\n };\\n\\n nb.Input.prototype.render = function () {\\n if (!this.raw.length) { return makeElement(\\\"div\\\"); }\\n var holder = makeElement(\\\"div\\\", [ \\\"input\\\" ]);\\n var cell = this.cell;\\n if (typeof cell.number === \\\"number\\\") {\\n holder.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var pre_el = makeElement(\\\"pre\\\");\\n var code_el = makeElement(\\\"code\\\");\\n var notebook = cell.worksheet.notebook;\\n var m = notebook.metadata;\\n var lang = this.cell.raw.language || m.language || (m.kernelspec && m.kernelspec.language) || (m.language_info && m.language_info.name);\\n code_el.setAttribute(\\\"data-language\\\", lang);\\n code_el.className = \\\"lang-\\\" + lang;\\n code_el.innerHTML = nb.highlighter(escapeHTML(joinText(this.raw)), pre_el, code_el, lang);\\n pre_el.appendChild(code_el);\\n holder.appendChild(pre_el);\\n this.el = holder;\\n return holder;\\n };\\n\\n // Outputs and output-renderers\\n var imageCreator = function (format) {\\n return function (data) {\\n var el = makeElement(\\\"img\\\", [ \\\"image-output\\\" ]);\\n el.src = \\\"data:image/\\\" + format + \\\";base64,\\\" + joinText(data).replace(/\\\\n/g, \\\"\\\");\\n return el;\\n };\\n };\\n\\n nb.display = {};\\n nb.display.text = function (text) {\\n var el = makeElement(\\\"pre\\\", [ \\\"text-output\\\" ]);\\n el.innerHTML = nb.highlighter(nb.ansi(joinText(text)), el);\\n return el;\\n };\\n nb.display[\\\"text/plain\\\"] = nb.display.text;\\n\\n nb.display.html = function (html) {\\n var el = makeElement(\\\"div\\\", [ \\\"html-output\\\" ]);\\n el.innerHTML = nb.sanitizer(joinText(html));\\n return el;\\n };\\n nb.display[\\\"text/html\\\"] = nb.display.html;\\n\\n nb.display.marked = function(md) {\\n return nb.display.html(nb.markdown(joinText(md)));\\n };\\n nb.display[\\\"text/markdown\\\"] = nb.display.marked;\\n\\n nb.display.svg = function (svg) {\\n var el = makeElement(\\\"div\\\", [ \\\"svg-output\\\" ]);\\n el.innerHTML = joinText(svg);\\n return el;\\n };\\n nb.display[\\\"text/svg+xml\\\"] = nb.display.svg;\\n nb.display[\\\"image/svg+xml\\\"] = nb.display.svg;\\n\\n nb.display.latex = function (latex) {\\n var el = makeElement(\\\"div\\\", [ \\\"latex-output\\\" ]);\\n el.innerHTML = joinText(latex);\\n return el;\\n };\\n nb.display[\\\"text/latex\\\"] = nb.display.latex;\\n\\n nb.display.javascript = function (js) {\\n var el = makeElement(\\\"script\\\");\\n el.innerHTML = joinText(js);\\n return el;\\n };\\n nb.display[\\\"application/javascript\\\"] = nb.display.javascript;\\n\\n nb.display.png = imageCreator(\\\"png\\\");\\n nb.display[\\\"image/png\\\"] = nb.display.png;\\n nb.display.jpeg = imageCreator(\\\"jpeg\\\");\\n nb.display[\\\"image/jpeg\\\"] = nb.display.jpeg;\\n\\n nb.display_priority = [\\n \\\"png\\\", \\\"image/png\\\", \\\"jpeg\\\", \\\"image/jpeg\\\",\\n \\\"svg\\\", \\\"image/svg+xml\\\", \\\"text/svg+xml\\\", \\\"html\\\", \\\"text/html\\\",\\n \\\"text/markdown\\\", \\\"latex\\\", \\\"text/latex\\\",\\n \\\"javascript\\\", \\\"application/javascript\\\",\\n \\\"text\\\", \\\"text/plain\\\"\\n ];\\n\\n var render_display_data = function () {\\n var o = this;\\n var formats = nb.display_priority.filter(function (d) {\\n return o.raw.data ? o.raw.data[d] : o.raw[d];\\n });\\n var format = formats[0];\\n if (format) {\\n if (nb.display[format]) {\\n return nb.display[format](o.raw[format] || o.raw.data[format]);\\n }\\n }\\n return makeElement(\\\"div\\\", [ \\\"empty-output\\\" ]);\\n };\\n\\n var render_error = function () {\\n var el = makeElement(\\\"pre\\\", [ \\\"pyerr\\\" ]);\\n var raw = this.raw.traceback.join(\\\"\\\\n\\\");\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n };\\n\\n nb.Output = function (raw, cell) {\\n this.raw = raw;\\n this.cell = cell;\\n this.type = raw.output_type;\\n };\\n\\n nb.Output.prototype.renderers = {\\n \\\"display_data\\\": render_display_data,\\n \\\"execute_result\\\": render_display_data,\\n \\\"pyout\\\": render_display_data,\\n \\\"pyerr\\\": render_error,\\n \\\"error\\\": render_error,\\n \\\"stream\\\": function () {\\n var el = makeElement(\\\"pre\\\", [ (this.raw.stream || this.raw.name) ]);\\n var raw = joinText(this.raw.text);\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n }\\n };\\n\\n nb.Output.prototype.render = function () {\\n var outer = makeElement(\\\"div\\\", [ \\\"output\\\" ]);\\n if (typeof this.cell.number === \\\"number\\\") {\\n outer.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var inner = this.renderers[this.type].call(this);\\n outer.appendChild(inner);\\n this.el = outer;\\n return outer;\\n };\\n\\n // Post-processing\\n nb.coalesceStreams = function (outputs) {\\n if (!outputs.length) { return outputs; }\\n var last = outputs[0];\\n var new_outputs = [ last ];\\n outputs.slice(1).forEach(function (o) {\\n if (o.raw.output_type === \\\"stream\\\" &&\\n last.raw.output_type === \\\"stream\\\" &&\\n o.raw.stream === last.raw.stream &&\\n o.raw.name === last.raw.name) {\\n last.raw.text = last.raw.text.concat(o.raw.text);\\n } else {\\n new_outputs.push(o);\\n last = o;\\n }\\n });\\n return new_outputs;\\n };\\n\\n // Cells\\n nb.Cell = function (raw, worksheet) {\\n var cell = this;\\n cell.raw = raw;\\n cell.worksheet = worksheet;\\n cell.type = raw.cell_type;\\n if (cell.type === \\\"code\\\") {\\n cell.number = raw.prompt_number > -1 ? raw.prompt_number : raw.execution_count;\\n var source = raw.input || [ raw.source ];\\n cell.input = new nb.Input(source, cell);\\n var raw_outputs = (cell.raw.outputs || []).map(function (o) {\\n return new nb.Output(o, cell);\\n });\\n cell.outputs = nb.coalesceStreams(raw_outputs);\\n }\\n };\\n\\n var math_delimiters = [\\n {left: \\\"$$\\\", right: \\\"$$\\\", display: true},\\n {left: \\\"\\\\\\\\[\\\", right: \\\"\\\\\\\\]\\\", display: true},\\n {left: \\\"\\\\\\\\(\\\", right: \\\"\\\\\\\\)\\\", display: false},\\n {left: \\\"$\\\", right: \\\"$\\\", display: false}\\n ];\\n\\n nb.Cell.prototype.renderers = {\\n markdown: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"markdown-cell\\\" ]);\\n\\n var joined = joinText(this.raw.source);\\n\\n // Pre-render math via KaTeX's auto-render extension, if available\\n if (root.renderMathInElement != null) {\\n el.innerHTML = nb.sanitizer(joined);\\n root.renderMathInElement(el, { delimiters: math_delimiters });\\n el.innerHTML = nb.sanitizer(nb.markdown(\\n el.innerHTML\\n .replace(/&gt;/g, \\\">\\\") // Necessary to enable blockquote syntax\\n ));\\n } else {\\n el.innerHTML = nb.sanitizer(nb.markdown(joined));\\n }\\n\\n return el;\\n },\\n heading: function () {\\n var el = makeElement(\\\"h\\\" + this.raw.level, [ \\\"cell\\\", \\\"heading-cell\\\" ]);\\n el.innerHTML = nb.sanitizer(joinText(this.raw.source));\\n return el;\\n },\\n raw: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"raw-cell\\\" ]);\\n el.innerHTML = escapeHTML(joinText(this.raw.source));\\n return el;\\n },\\n code: function () {\\n var cell_el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"code-cell\\\" ]);\\n cell_el.appendChild(this.input.render());\\n var output_els = this.outputs.forEach(function (o) {\\n cell_el.appendChild(o.render());\\n });\\n return cell_el;\\n }\\n };\\n\\n nb.Cell.prototype.render = function () {\\n var el = this.renderers[this.type].call(this);\\n this.el = el;\\n return el;\\n };\\n\\n // Worksheets\\n nb.Worksheet = function (raw, notebook) {\\n var worksheet = this;\\n this.raw = raw;\\n this.notebook = notebook;\\n this.cells = raw.cells.map(function (c) {\\n return new nb.Cell(c, worksheet);\\n });\\n this.render = function () {\\n var worksheet_el = makeElement(\\\"div\\\", [ \\\"worksheet\\\" ]);\\n worksheet.cells.forEach(function (c) {\\n worksheet_el.appendChild(c.render());\\n });\\n this.el = worksheet_el;\\n return worksheet_el;\\n };\\n };\\n\\n // Notebooks\\n nb.Notebook = function (raw, config) {\\n var notebook = this;\\n this.raw = raw;\\n this.config = config;\\n var meta = this.metadata = raw.metadata || {};\\n this.title = meta.title || meta.name;\\n var _worksheets = raw.worksheets || [ { cells: raw.cells } ];\\n this.worksheets = _worksheets.map(function (ws) {\\n return new nb.Worksheet(ws, notebook);\\n });\\n this.sheet = this.worksheets[0];\\n };\\n\\n nb.Notebook.prototype.render = function () {\\n var notebook_el = makeElement(\\\"div\\\", [ \\\"notebook\\\" ]);\\n this.worksheets.forEach(function (w) {\\n notebook_el.appendChild(w.render());\\n });\\n this.el = notebook_el;\\n return notebook_el;\\n };\\n\\n nb.parse = function (nbjson, config) {\\n return new nb.Notebook(nbjson, config);\\n };\\n\\n // Exports\\n if (typeof define === 'function' && define.amd) {\\n define(function() {\\n return nb;\\n });\\n }\\n if (typeof exports !== 'undefined') {\\n if (typeof module !== 'undefined' && module.exports) {\\n exports = module.exports = nb;\\n }\\n exports.nb = nb;\\n } else {\\n root.nb = nb;\\n }\\n\\n}).call(this);\\n\"",
"/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n",
"\"use strict\";\n\n/**\n * RegexEscape\n * Escapes a string for using it in a regular expression.\n *\n * @name RegexEscape\n * @function\n * @param {String} input The string that must be escaped.\n * @return {String} The escaped string.\n */\nfunction RegexEscape(input) {\n return input.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\n\n/**\n * proto\n * Adds the `RegexEscape` function to `RegExp` class.\n *\n * @name proto\n * @function\n * @return {Function} The `RegexEscape` function.\n */\nRegexEscape.proto = function () {\n RegExp.escape = RegexEscape;\n return RegexEscape;\n};\n\nmodule.exports = RegexEscape;",
"/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n",
"require(\"!!/var/lib/jenkins/workspace/DWAPPS/pypi-upload/node_modules/script-loader/addScript.js\")(require(\"!!/var/lib/jenkins/workspace/DWAPPS/pypi-upload/node_modules/raw-loader/index.js!/var/lib/jenkins/workspace/DWAPPS/pypi-upload/node_modules/notebookjs/notebook.js\"))",
"function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}",
"/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n",
"// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n",
"// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};",
"// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};",
"__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};",
"// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + {\"46\":\"org\",\"399\":\"highlightjs\",\"509\":\"pdfjs\",\"522\":\"showdown\",\"684\":\"mathjax\",\"891\":\"d3\"}[chunkId] + \".\" + {\"46\":\"9adc9a39a210c2fb4be0\",\"399\":\"ea9ab9de27a6e276ec47\",\"509\":\"da9364bd2ae7c04974d3\",\"522\":\"b448e42a34c43d6a7de5\",\"684\":\"8052aaae7f18c4bbf50f\",\"891\":\"9a0d48ae00854a5a1b5d\"}[chunkId] + \".js\";\n};",
"// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + {\"46\":\"org\",\"399\":\"highlightjs\",\"522\":\"showdown\"}[chunkId] + \".\" + {\"46\":\"6851b70c924e28f6bf51\",\"399\":\"ae43064ab38a65a04d81\",\"522\":\"426fbf6a7a6653fd4cbb\"}[chunkId] + \".css\";\n};",
"__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();",
"__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};",
"__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }",
"// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};",
"__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};",
"__webpack_require__.p = \"/static/\";",
"// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t836: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkswh\"] = self[\"webpackChunkswh\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));",
"var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"0.0.399\"};\n _global.SENTRY_RELEASES=_global.SENTRY_RELEASES || {};\n _global.SENTRY_RELEASES[\"swh-webapp@swh\"]={id:\"0.0.399\"};\n "
],
"names": [
"root",
"factory",
"exports",
"module",
"define",
"amd",
"self",
"leafPrototypes",
"getProto",
"inProgress",
"dataWebpackPrefix",
"loadStylesheet",
"installedCssChunks",
"globalObject",
"BrowserClient",
"constructor",
"options",
"_metadata",
"sdk",
"name",
"packages",
"version",
"super",
"sendClientReports",
"document",
"addEventListener",
"visibilityState",
"this",
"_flushOutcomes",
"eventFromException",
"exception",
"hint",
"_options",
"stackParser",
"attachStacktrace",
"eventFromMessage",
"message",
"level",
"sendEvent",
"event",
"breadcrumbIntegration",
"getIntegrationById",
"sentry",
"addBreadcrumb",
"category",
"type",
"event_id",
"_prepareEvent",
"scope",
"platform",
"outcomes",
"_clearOutcomes",
"length",
"_dsn",
"__SENTRY_DEBUG__",
"log",
"url",
"envelope",
"tunnel",
"e",
"exceptionFromError",
"ex",
"frames",
"parseStackFrames",
"value",
"extractMessage",
"stacktrace",
"undefined",
"eventFromError",
"values",
"stack",
"popSize",
"framesToPop",
"reactMinifiedRegexp",
"test",
"getPopSize",
"error",
"eventFromUnknownInput",
"syntheticException",
"eventFromString",
"isUnhandledRejection",
"domException",
"tags",
"code",
"extra",
"__serialized__",
"eventFromPlainObject",
"synthetic",
"input",
"ignoreOnError",
"shouldIgnoreOnError",
"ignoreNextOnError",
"setTimeout",
"wrap",
"fn",
"before",
"wrapper",
"__sentry_wrapped__",
"sentryWrapped",
"args",
"Array",
"prototype",
"slice",
"call",
"arguments",
"apply",
"wrappedArguments",
"map",
"arg",
"addEventProcessor",
"mechanism",
"property",
"Object",
"hasOwnProperty",
"_oO",
"getOwnPropertyDescriptor",
"configurable",
"defineProperty",
"get",
"BREADCRUMB_INTEGRATION_ID",
"Breadcrumbs",
"static",
"id",
"__init",
"console",
"dom",
"fetch",
"history",
"xhr",
"setupOnce",
"_consoleBreadcrumb",
"_innerDomBreadcrumb",
"handlerData",
"target",
"keyAttrs",
"serializeAttribute",
"global",
"_domBreadcrumb",
"_xhrBreadcrumb",
"_fetchBreadcrumb",
"_historyBreadcrumb",
"breadcrumb",
"data",
"logger",
"endTimestamp",
"__sentry_own_request__",
"method",
"status_code",
"body",
"__sentry_xhr__",
"fetchData",
"match",
"response",
"status",
"from",
"to",
"parsedLoc",
"location",
"href",
"parsedFrom",
"parsedTo",
"path",
"protocol",
"host",
"relative",
"__initStatic",
"Dedupe",
"addGlobalEventProcessor",
"getCurrentHub",
"eventProcessor",
"currentEvent",
"getIntegration",
"previousEvent",
"currentMessage",
"previousMessage",
"_isSameFingerprint",
"_isSameStacktrace",
"_isSameMessageEvent",
"previousException",
"_getExceptionFromEvent",
"currentException",
"_isSameExceptionEvent",
"_shouldDropEvent",
"_previousEvent",
"currentFrames",
"_getFramesFromEvent",
"previousFrames",
"i",
"frameA",
"frameB",
"filename",
"lineno",
"colno",
"function",
"currentFingerprint",
"fingerprint",
"previousFingerprint",
"join",
"GlobalHandlers",
"__init2",
"_installFunc",
"onerror",
"_installGlobalOnErrorHandler",
"onunhandledrejection",
"_installGlobalOnUnhandledRejectionHandler",
"Error",
"stackTraceLimit",
"key",
"installFunc",
"hub",
"getHubAndOptions",
"msg",
"line",
"column",
"ERROR_TYPES_RE",
"groups",
"_enhanceEventWithInitialFrame",
"_eventFromIncompleteOnError",
"addMechanismAndCapture",
"reason",
"detail",
"String",
"ev",
"ev0",
"ev0s",
"ev0sf",
"isNaN",
"parseInt",
"push",
"in_app",
"handled",
"captureEvent",
"originalException",
"client",
"getClient",
"getOptions",
"HttpContext",
"navigator",
"request",
"referrer",
"userAgent",
"headers",
"Referer",
"LinkedErrors",
"_key",
"_limit",
"limit",
"parser",
"linkedErrors",
"_walkErrorTree",
"_handler",
"DEFAULT_EVENT_TARGET",
"TryCatch",
"XMLHttpRequest",
"eventTarget",
"requestAnimationFrame",
"setInterval",
"_wrapTimeFunction",
"_wrapRAF",
"_wrapXHR",
"eventTargetOption",
"isArray",
"forEach",
"_wrapEventTarget",
"original",
"originalCallback",
"callback",
"handler",
"originalSend",
"prop",
"wrapOptions",
"originalFunction",
"proto",
"eventName",
"handleEvent",
"err",
"originalRemoveEventListener",
"wrappedEventHandler",
"originalEventHandler",
"defaultIntegrations",
"init",
"release",
"window",
"SENTRY_RELEASE",
"autoSessionTracking",
"clientOptions",
"integrations",
"transport",
"captureSession",
"startSessionOnHub",
"startSessionTracking",
"startSession",
"ignoreDuration",
"UNKNOWN_FUNCTION",
"createFrame",
"func",
"frame",
"chromeRegex",
"chromeEvalRegex",
"geckoREgex",
"geckoEvalRegex",
"winjsRegex",
"defaultStackLineParsers",
"parts",
"exec",
"indexOf",
"subMatch",
"extractSafariExtensionDetails",
"defaultStackParser",
"isSafariExtension",
"isSafariWebExtension",
"split",
"makeFetchTransport",
"nativeFetch",
"requestOptions",
"referrerPolicy",
"fetchOptions",
"then",
"statusCode",
"cachedFetchImpl",
"getNativeFetchImplementation",
"bind",
"fetchImpl",
"createElement",
"sandbox",
"hidden",
"head",
"appendChild",
"contentWindow",
"removeChild",
"sendReport",
"toString",
"sendBeacon",
"credentials",
"keepalive",
"makeXHRTransport",
"resolve",
"reject",
"header",
"onreadystatechange",
"readyState",
"getResponseHeader",
"open",
"setRequestHeader",
"send",
"getBaseApiEndpoint",
"dsn",
"port",
"getEnvelopeEndpointWithUrlEncodedAuth",
"tunnelOrOptions",
"sdkInfo",
"projectId",
"_getIngestEndpoint",
"sentry_key",
"publicKey",
"sentry_version",
"sentry_client",
"_encodedAuth",
"ALREADY_SEEN_ERROR",
"BaseClient",
"_integrations",
"_integrationsInitialized",
"__init3",
"_numProcessing",
"__init4",
"_outcomes",
"_transport",
"recordDroppedEvent",
"transportOptions",
"captureException",
"eventId",
"_process",
"_captureEvent",
"result",
"captureMessage",
"promisedEvent",
"session",
"_isEnabled",
"sendSession",
"getDsn",
"getTransport",
"flush",
"timeout",
"_isClientDoneProcessing",
"clientFinished",
"transportFlushed",
"close",
"enabled",
"setupIntegrations",
"integrationId",
"integration",
"env",
"attachment",
"attachments",
"textEncoder",
"_sendEnvelope",
"_updateSessionFromEvent",
"crashed",
"errored",
"exceptions",
"sessionNonTerminal",
"errors",
"Number",
"ticked",
"interval",
"clearInterval",
"normalizeDepth",
"normalizeMaxBreadth",
"prepared",
"timestamp",
"_applyClientOptions",
"_applyIntegrationsMetadata",
"finalScope",
"captureContext",
"update",
"getAttachments",
"applyToEvent",
"evt",
"_normalizeEvent",
"depth",
"maxBreadth",
"normalized",
"breadcrumbs",
"b",
"user",
"contexts",
"trace",
"spans",
"span",
"environment",
"dist",
"maxValueLength",
"integrationsArray",
"keys",
"_processEvent",
"finalEvent",
"sentryError",
"logLevel",
"beforeSend",
"sampleRate",
"isTransaction",
"Math",
"random",
"__sentry__",
"rv",
"nullErr",
"_ensureBeforeSendRv",
"processedEvent",
"getSession",
"promise",
"quantity",
"getSdkMetadataForEnvelopeHeader",
"metadata",
"createSessionEnvelope",
"envelopeHeaders",
"sent_at",
"Date",
"toISOString",
"envelopeItem",
"createEventEnvelope",
"eventType",
"transactionSampling",
"sdkProcessingMetadata",
"samplingMethod",
"rate",
"enhanceEventWithSdkInfo",
"baggage",
"dynamicSamplingContext",
"createEventEnvelopeHeaders",
"eventItem",
"sample_rates",
"installedIntegrations",
"filterDuplicates",
"reduce",
"acc",
"every",
"accIntegration",
"getIntegrationsToSetup",
"userIntegrations",
"filter",
"userIntegration",
"integrationsNames",
"alwaysLastToRun",
"splice",
"integrationIndex",
"originalFunctionToString",
"FunctionToString",
"Function",
"context",
"DEFAULT_IGNORE_ERRORS",
"InboundFilters",
"eventProcess",
"internalOptions",
"allowUrls",
"denyUrls",
"ignoreErrors",
"ignoreInternal",
"_mergeOptions",
"_isSentryError",
"oO",
"_getPossibleEventMessages",
"some",
"pattern",
"_isIgnoredError",
"_getEventFilterUrl",
"_isDeniedUrl",
"_isAllowedUrl",
"_getLastValidUrl",
"initAndBind",
"clientClass",
"debug",
"warn",
"getScope",
"initialScope",
"bindClient",
"createTransport",
"makeRequest",
"buffer",
"bufferSize",
"rateLimits",
"filteredEnvelopeItems",
"item",
"envelopeItemDataCategory",
"filteredEnvelope",
"recordEnvelopeLoss",
"_",
"add",
"drain",
"SDK_VERSION",
"withScope",
"DEFAULT_BREADCRUMBS",
"Hub",
"_stack",
"_version",
"getStackTop",
"isOlderThan",
"pushScope",
"getStack",
"popScope",
"pop",
"_lastEventId",
"_withClient",
"lastEventId",
"beforeBreadcrumb",
"maxBreadcrumbs",
"mergedBreadcrumb",
"finalBreadcrumb",
"setUser",
"setTags",
"setExtras",
"extras",
"setTag",
"setExtra",
"setContext",
"configureScope",
"run",
"oldHub",
"makeMain",
"startTransaction",
"customSamplingContext",
"_callExtensionMethod",
"traceHeaders",
"endSession",
"_sendSessionUpdate",
"layer",
"setSession",
"getUser",
"currentSession",
"shouldSendDefaultPii",
"Boolean",
"sendDefaultPii",
"getMainCarrier",
"__SENTRY__",
"extensions",
"carrier",
"registry",
"getHubFromCarrier",
"setHubOnCarrier",
"hasHubOnCarrier",
"activeDomain",
"domain",
"active",
"registryHubTopStack",
"_Oo",
"getHubFromActiveDomain",
"Scope",
"_notifyingListeners",
"_scopeListeners",
"_eventProcessors",
"_breadcrumbs",
"_attachments",
"_user",
"_tags",
"_extra",
"_contexts",
"_sdkProcessingMetadata",
"newScope",
"_level",
"_span",
"_session",
"_transactionName",
"_fingerprint",
"_requestSession",
"addScopeListener",
"_notifyScopeListeners",
"getRequestSession",
"setRequestSession",
"requestSession",
"setFingerprint",
"setLevel",
"setTransactionName",
"setSpan",
"getSpan",
"getTransaction",
"transaction",
"updatedScope",
"clear",
"maxCrumbs",
"min",
"clearBreadcrumbs",
"addAttachment",
"clearAttachments",
"getTraceContext",
"transactionName",
"_applyFingerprint",
"_notifyEventProcessors",
"getGlobalEventProcessors",
"setSDKProcessingMetadata",
"newData",
"processors",
"index",
"processor",
"final",
"concat",
"makeSession",
"startingTime",
"sid",
"started",
"duration",
"toJSON",
"did",
"attrs",
"ip_address",
"ipAddress",
"user_agent",
"sessionToJSON",
"updateSession",
"email",
"username",
"closeSession",
"getSentryBaggageItems",
"htmlTreeAsString",
"elem",
"currentElem",
"out",
"height",
"len",
"sepLength",
"nextStr",
"_htmlElementAsString",
"parentNode",
"reverse",
"el",
"className",
"classes",
"attr",
"tagName",
"toLowerCase",
"keyAttrPairs",
"keyAttr",
"getAttribute",
"keyAttrPair",
"allowedAttrs",
"getLocationHref",
"createClientReportEnvelope",
"discarded_events",
"clientReportItem",
"DSN_REGEX",
"dsnToString",
"withPassword",
"pass",
"dsnFromComponents",
"components",
"makeDsn",
"str",
"lastPath",
"projectMatch",
"dsnFromString",
"component",
"isValidProtocol",
"validateDsn",
"isBrowserBundle",
"__SENTRY_BROWSER_BUNDLE__",
"createEnvelope",
"items",
"addItemToEnvelope",
"newItem",
"forEachEnvelopeItem",
"envelopeItemType",
"encodeUTF8",
"TextEncoder",
"encode",
"serializeEnvelope",
"envHeaders",
"JSON",
"stringify",
"append",
"next",
"itemHeaders",
"payload",
"Uint8Array",
"buffers",
"totalLength",
"buf",
"merged",
"offset",
"set",
"concatBuffers",
"createAttachmentEnvelopeItem",
"content_type",
"contentType",
"attachment_type",
"attachmentType",
"ITEM_TYPE_TO_DATA_CATEGORY_MAP",
"sessions",
"client_report",
"user_report",
"envelopeItemTypeToDataCategory",
"SentryError",
"setPrototypeOf",
"fallbackGlobalObject",
"getGlobalObject",
"g",
"getGlobalSingleton",
"creator",
"obj",
"handlers",
"instrumented",
"instrument",
"originalConsoleMethod",
"triggerHandlers",
"instrumentConsole",
"triggerDOMHandler",
"globalDOMEventHandler",
"makeDOMEventHandler",
"originalAddEventListener",
"listener",
"__sentry_instrumentation_handlers__",
"handlerForType",
"refCount",
"instrumentDOM",
"xhrproto",
"originalOpen",
"xhrInfo",
"toUpperCase",
"onreadystatechangeHandler",
"now",
"startTimestamp",
"readyStateArgs",
"instrumentXHR",
"originalFetch",
"getFetchMethod",
"getFetchUrl",
"instrumentFetch",
"oldOnPopState",
"onpopstate",
"historyReplacementFunction",
"originalHistoryFunction",
"lastHref",
"instrumentHistory",
"_oldOnErrorHandler",
"_oldOnUnhandledRejectionHandler",
"addInstrumentationHandler",
"fetchArgs",
"Request",
"debounceTimerID",
"lastCapturedEvent",
"globalListener",
"isContentEditable",
"shouldSkipDOMEvent",
"previous",
"current",
"shouldShortcircuitPreviousDebounce",
"clearTimeout",
"objectToString",
"isError",
"wat",
"isInstanceOf",
"isBuiltin",
"ty",
"isErrorEvent",
"isDOMError",
"isDOMException",
"isString",
"isPrimitive",
"isPlainObject",
"isEvent",
"Event",
"isElement",
"Element",
"isRegExp",
"isThenable",
"isSyntheticEvent",
"base",
"_e",
"CONSOLE_LEVELS",
"consoleSandbox",
"originalConsole",
"wrappedLevels",
"originalWrappedFunc",
"__sentry_original__",
"makeLogger",
"enable",
"disable",
"memoBuilder",
"hasWeakSet",
"WeakSet",
"inner",
"has",
"delete",
"uuid4",
"crypto",
"msCrypto",
"randomUUID",
"replace",
"getRandomByte",
"getRandomValues",
"c",
"getFirstException",
"getEventDescription",
"firstException",
"addExceptionTypeValue",
"addExceptionMechanism",
"newMechanism",
"currentMechanism",
"mergedData",
"checkOrSetAlreadyCaught",
"__sentry_captured__",
"isNodeEnv",
"process",
"dynamicRequire",
"mod",
"require",
"normalize",
"Infinity",
"maxProperties",
"visit",
"ERROR",
"normalizeToSize",
"object",
"maxSize",
"encodeURI",
"utf8Length",
"memo",
"memoize",
"unmemoize",
"includes",
"stringified",
"_events",
"getPrototypeOf",
"stringifyValue",
"startsWith",
"valueWithToJSON",
"numAdded",
"visitable",
"visitKey",
"visitValue",
"fill",
"source",
"replacementFactory",
"wrapped",
"markFunctionWrapped",
"addNonEnumerableProperty",
"writable",
"getOriginalFunction",
"urlEncode",
"encodeURIComponent",
"convertToPlainObject",
"getOwnProperties",
"newObj",
"serializeEventTarget",
"currentTarget",
"CustomEvent",
"extractedProps",
"extractExceptionKeysForMessage",
"maxLength",
"sort",
"includedKeys",
"serialized",
"dropUndefinedKeys",
"inputValue",
"_dropUndefinedKeys",
"Map",
"memoizationMap",
"memoVal",
"returnValue",
"makePromiseBuffer",
"remove",
"task",
"$",
"taskProducer",
"counter",
"capturedSetTimeout",
"isRateLimited",
"limits",
"all",
"disabledUntil",
"updateRateLimits",
"updatedRateLimits",
"rateLimitHeader",
"retryAfterHeader",
"trim",
"retryAfter",
"categories",
"headerDelay",
"delay",
"headerDate",
"parse",
"parseRetryAfterHeader",
"validSeverityLevels",
"severityLevelFromString",
"createStackParser",
"parsers",
"sortedParsers",
"a",
"p",
"skipFirst",
"cleanedLine",
"localStack",
"firstFrameFunction",
"lastFrameFunction",
"stripSentryFramesAndReverse",
"stackParserFromStackParserOptions",
"defaultFunctionName",
"getFunctionName",
"truncate",
"max",
"substr",
"safeJoin",
"delimiter",
"output",
"isMatchingPattern",
"supportsFetch",
"Headers",
"Response",
"isNativeFetch",
"supportsNativeFetch",
"doc",
"supportsHistory",
"chrome",
"isChromePackagedApp",
"app",
"runtime",
"hasHistoryApi",
"pushState",
"replaceState",
"States",
"resolvedSyncPromise",
"SyncPromise",
"rejectedSyncPromise",
"_state",
"PENDING",
"_handlers",
"executor",
"__init5",
"__init6",
"_resolve",
"_reject",
"onfulfilled",
"onrejected",
"_executeHandlers",
"catch",
"val",
"finally",
"onfinally",
"isRejected",
"_setResult",
"RESOLVED",
"REJECTED",
"state",
"_value",
"cachedHandlers",
"dateTimestampSource",
"nowSeconds",
"platformPerformance",
"performance",
"getNodePerformance",
"timeOrigin",
"getBrowserPerformance",
"timestampSource",
"dateTimestampInSeconds",
"timestampInSeconds",
"_browserPerformanceTimeOriginMode",
"threshold",
"performanceNow",
"dateNow",
"timeOriginDelta",
"abs",
"timeOriginIsReliable",
"navigationStart",
"timing",
"navigationStartDelta",
"parseUrl",
"query",
"fragment",
"PacketKind",
"__makeTemplateObject",
"cooked",
"raw",
"AnsiUp",
"VERSION",
"setup_palettes",
"_use_classes",
"bold",
"italic",
"underline",
"fg",
"bg",
"_buffer",
"_url_whitelist",
"enumerable",
"_this",
"ansi_colors",
"rgb",
"class_name",
"palette_256",
"palette",
"rec",
"levels",
"r",
"col",
"grey_level",
"gry",
"escape_txt_for_html",
"txt",
"append_buffer",
"get_next_packet",
"pkt",
"kind",
"EOS",
"text",
"pos",
"Text",
"Incomplete",
"next_char",
"charAt",
"ESC",
"_csi_regex",
"rgx",
"Unknown",
"SGR",
"rpos",
"_osc_st",
"rgxG",
"lastIndex",
"match_1",
"match_2",
"_osc_regex",
"OSCURL",
"ansi_to_html",
"blocks",
"packet",
"transform_to_html",
"with_state",
"process_ansi",
"process_hyperlink",
"sgr_cmds",
"sgr_cmd_str",
"shift",
"num",
"is_foreground",
"mode_cmd",
"palette_index",
"styles",
"class_string",
"style_string",
"tmplObj",
"subst",
"_i",
"wsrgx",
"txt2",
"RegExp",
"default",
"showBadgeInfoModal",
"objectType",
"objectSWHID",
"badgeImageUrl",
"badgeLinkUrl",
"Urls",
"swh_badge",
"browse_origin",
"objectSWHIDNoContext",
"swh_badge_swhid",
"each",
"swhid",
"pathname",
"browse_swhid",
"absoluteBadgeImageUrl",
"origin",
"absoluteBadgeLinkUrl",
"html",
"swh",
"webapp",
"showModalHtml",
"highlightCode",
"firstHighlightedLine",
"highlightLine",
"firstHighlighted",
"lineTd",
"css",
"highlightLines",
"first",
"last",
"resetHighlightedLines",
"scrollToLine",
"lineDomElt",
"closest",
"animate",
"scrollTop",
"top",
"showLineNumbers",
"selector",
"enableLinesSelection",
"parseUrlFragmentForLinesToHighlight",
"lines",
"linesRegexp",
"hash",
"ready",
"elt",
"hljs",
"highlightElement",
"lineNumbersElement",
"singleLine",
"click",
"classList",
"contains",
"shiftKey",
"firstLine",
"removeUrlFragment",
"on",
"drawHistoryCounterGraph",
"container",
"historyData",
"updateTooltip",
"x0",
"xScale",
"invert",
"d3",
"pointer",
"bisectDate",
"d0",
"d1",
"d",
"focus",
"yScale",
"tooltipText",
"dateFormatter",
"valueFormatter",
"tooltip",
"style",
"pageX",
"pageY",
"select",
"width",
"margin",
"right",
"bottom",
"left",
"svg",
"ceil",
"firstPoint",
"lastPoint",
"scaleTime",
"rangeRound",
"nice",
"scaleLinear",
"range",
"x",
"y",
"timeFormat",
"v",
"format",
"bisector",
"axisBottom",
"ticks",
"tickFormat",
"selectAll",
"axisRight",
"datum",
"transition",
"showIframeInfoModal",
"swhid_iframe",
"replaceAll",
"typesetMath",
"MathJax",
"chtml",
"fontURL",
"staticAsset",
"tex",
"useLabelIds",
"inlineMath",
"displayMath",
"processEscapes",
"processEnvironments",
"ansiup",
"escapeHTML",
"unescapeHTML",
"escapeLaTeX",
"bm",
"im",
"le",
"blockMath",
"latexEnvironment",
"mathTextFound",
"mathText",
"escapedText",
"specialLaTexChar",
"renderNotebook",
"nbJsonUrl",
"domElt",
"renderMarkdown",
"renderAnsi",
"preElt",
"codeElt",
"lang",
"getLanguage",
"highlight",
"language",
"converter",
"showdown",
"Converter",
"tables",
"simplifiedAutoLink",
"rawHeaderId",
"literalMidWordUnderscores",
"rendered",
"makeHtml",
"nb",
"markdown",
"highlighter",
"ansi",
"json",
"nbJson",
"notebook",
"filterXSS",
"render",
"parent",
"escape_for_html",
"renderPdf",
"pdfUrl",
"renderPage",
"queueRenderPage",
"onPrevPage",
"onNextPage",
"pageNum",
"pdfDoc",
"numPages",
"pageRendering",
"pageNumPending",
"getPage",
"page",
"divWidth",
"scale",
"defaultScale",
"getViewport",
"viewport",
"canvas",
"renderContext",
"canvasContext",
"ctx",
"getContext",
"pdfjs",
"GlobalWorkerOptions",
"workerSrc",
"getDocument",
"pdf",
"markdownDocUrl",
"showdownHighlight",
"classAttr",
"helper",
"replaceRecursiveRegExp",
"wholeMatch",
"decode",
"attrIndex",
"URL",
"searchParams",
"hostname",
"setFlavor",
"TypeError",
"handleFetchError",
"addClass",
"renderOrgData",
"orgDocData",
"org",
"Parser",
"orgDocument",
"toc",
"orgHTMLDocument",
"convert",
"ConverterHTML",
"renderOrg",
"orgDocUrl",
"renderTxt",
"txtDocUrl",
"orgMode",
"sentryInit",
"sentryDsn",
"Sentry",
"sentryCaptureException",
"exc",
"statusCodeColor",
"initStatusWidget",
"statusDataURL",
"maxStatusCode",
"maxStatusDescription",
"sc",
"sd",
"s",
"removeClass",
"swhObjectIcons",
"ensureNoFooterOverflow",
"outerHeight",
"initPage",
"sessionStorage",
"setItem",
"initHomePage",
"iFrameResize",
"heightCalculationMethod",
"stat_counters",
"isEmptyObject",
"count",
"toLocaleString",
"hide",
"stat_counters_history",
"showModalMessage",
"title",
"modal",
"showModalConfirm",
"unbind",
"addJumpToPagePopoverToDataTable",
"dataTableElt",
"pageInfo",
"info",
"content",
"pages",
"selected",
"popover",
"pageNumber",
"draw",
"setSwhObjectIcons",
"icons",
"getSwhObjectIcon",
"swhObjectType",
"BREAKPOINT_MD",
"lastBrowsePage",
"getItem",
"preventDefault",
"mainSideBar",
"updateSidebarState",
"hasClass",
"Cookies",
"resize",
"objectFitImages",
"selectedCode",
"getCodeOrPreEltUnderPointer",
"clientX",
"clientY",
"elementsFromPoint",
"nodeName",
"selectCode",
"hljsLnCodeElts",
"find",
"selectText",
"firstChild",
"lastChild",
"dblclick",
"ctrlKey",
"metaKey",
"keydown",
"scrollThreshold",
"scroll",
"submit",
"checkValidity",
"searchQueryText",
"queryParameters",
"URLSearchParams",
"browse_search",
"browsedSwhObjectMetadata",
"setBrowsedSwhObjectMetadata",
"getBrowsedSwhObjectMetadata",
"swhidsContext_",
"setSwhIdsContext",
"swhidsContext",
"swhidContext",
"object_type",
"getSwhIdsContext",
"setFullWidth",
"fullWidth",
"localStorage",
"fullWidthToggled",
"setContainerFullWidth",
"previousFullWidthState",
"coreSWHIDIsLowerCase",
"qualifiersPos",
"coreSWHID",
"validateSWHIDInput",
"swhidInputElt",
"swhidInput",
"customValidity",
"resolveSWHIDUrl",
"api_1_resolve_swhid",
"responseData",
"setCustomValidity",
"siblings",
"isUserLoggedIn",
"DOMPurify",
"node",
"attrName",
"attrValue",
"directory",
"swhObjectMetadata",
"object_id",
"directoryUrl",
"browse_directory_resolve_content_path",
"processedPath",
"search",
"ok",
"asset",
"__STATIC__",
"startNode",
"endNode",
"selection",
"getSelection",
"removeAllRanges",
"createRange",
"setStart",
"setEnd",
"childNodes",
"textContent",
"addRange",
"_typeof",
"Symbol",
"iterator",
"_setPrototypeOf",
"o",
"__proto__",
"_isNativeReflectConstruct",
"Reflect",
"construct",
"sham",
"Proxy",
"valueOf",
"_construct",
"Parent",
"Class",
"instance",
"_toConsumableArray",
"arr",
"_arrayWithoutHoles",
"_iterableToArray",
"_unsupportedIterableToArray",
"_nonIterableSpread",
"_arrayLikeToArray",
"iter",
"minLen",
"n",
"arr2",
"isFrozen",
"freeze",
"seal",
"create",
"_ref",
"fun",
"thisValue",
"Func",
"arrayForEach",
"unapply",
"arrayPop",
"arrayPush",
"stringToLowerCase",
"stringMatch",
"stringReplace",
"stringIndexOf",
"stringTrim",
"regExpTest",
"typeErrorCreate",
"unconstruct",
"thisArg",
"_len",
"_len2",
"_key2",
"addToSet",
"array",
"transformCaseFunc",
"l",
"element",
"lcElement",
"clone",
"newObject",
"lookupGetter",
"desc",
"fallbackValue",
"html$1",
"svg$1",
"svgFilters",
"svgDisallowed",
"mathMl$1",
"mathMlDisallowed",
"mathMl",
"xml",
"MUSTACHE_EXPR",
"ERB_EXPR",
"DATA_ATTR",
"ARIA_ATTR",
"IS_ALLOWED_URI",
"IS_SCRIPT_OR_DATA",
"ATTR_WHITESPACE",
"DOCTYPE_NAME",
"getGlobal",
"_createTrustedTypesPolicy",
"trustedTypes",
"createPolicy",
"suffix",
"ATTR_NAME",
"currentScript",
"hasAttribute",
"policyName",
"createHTML",
"createScriptURL",
"scriptUrl",
"createDOMPurify",
"removed",
"nodeType",
"isSupported",
"originalDocument",
"DocumentFragment",
"HTMLTemplateElement",
"Node",
"NodeFilter",
"_window$NamedNodeMap",
"NamedNodeMap",
"MozNamedAttrMap",
"HTMLFormElement",
"DOMParser",
"ElementPrototype",
"cloneNode",
"getNextSibling",
"getChildNodes",
"getParentNode",
"template",
"ownerDocument",
"trustedTypesPolicy",
"emptyHTML",
"_document",
"implementation",
"createNodeIterator",
"createDocumentFragment",
"getElementsByTagName",
"importNode",
"documentMode",
"hooks",
"createHTMLDocument",
"PARSER_MEDIA_TYPE",
"MUSTACHE_EXPR$1",
"ERB_EXPR$1",
"DATA_ATTR$1",
"ARIA_ATTR$1",
"IS_SCRIPT_OR_DATA$1",
"ATTR_WHITESPACE$1",
"IS_ALLOWED_URI$1",
"ALLOWED_TAGS",
"DEFAULT_ALLOWED_TAGS",
"ALLOWED_ATTR",
"DEFAULT_ALLOWED_ATTR",
"CUSTOM_ELEMENT_HANDLING",
"tagNameCheck",
"attributeNameCheck",
"allowCustomizedBuiltInElements",
"FORBID_TAGS",
"FORBID_ATTR",
"ALLOW_ARIA_ATTR",
"ALLOW_DATA_ATTR",
"ALLOW_UNKNOWN_PROTOCOLS",
"SAFE_FOR_TEMPLATES",
"WHOLE_DOCUMENT",
"SET_CONFIG",
"FORCE_BODY",
"RETURN_DOM",
"RETURN_DOM_FRAGMENT",
"RETURN_TRUSTED_TYPE",
"SANITIZE_DOM",
"KEEP_CONTENT",
"IN_PLACE",
"USE_PROFILES",
"FORBID_CONTENTS",
"DEFAULT_FORBID_CONTENTS",
"DATA_URI_TAGS",
"DEFAULT_DATA_URI_TAGS",
"URI_SAFE_ATTRIBUTES",
"DEFAULT_URI_SAFE_ATTRIBUTES",
"MATHML_NAMESPACE",
"SVG_NAMESPACE",
"HTML_NAMESPACE",
"NAMESPACE",
"IS_EMPTY_INPUT",
"SUPPORTED_PARSER_MEDIA_TYPES",
"DEFAULT_PARSER_MEDIA_TYPE",
"CONFIG",
"formElement",
"isRegexOrFunction",
"testValue",
"_parseConfig",
"cfg",
"ADD_URI_SAFE_ATTR",
"ADD_DATA_URI_TAGS",
"ALLOWED_URI_REGEXP",
"ADD_TAGS",
"ADD_ATTR",
"table",
"tbody",
"MATHML_TEXT_INTEGRATION_POINTS",
"HTML_INTEGRATION_POINTS",
"COMMON_SVG_AND_HTML_ELEMENTS",
"ALL_SVG_TAGS",
"ALL_MATHML_TAGS",
"_checkValidNamespace",
"namespaceURI",
"parentTagName",
"_forceRemove",
"outerHTML",
"_removeAttribute",
"attribute",
"getAttributeNode",
"removeAttribute",
"setAttribute",
"_initDocument",
"dirty",
"leadingWhitespace",
"matches",
"dirtyPayload",
"parseFromString",
"documentElement",
"createDocument",
"innerHTML",
"insertBefore",
"createTextNode",
"_createIterator",
"SHOW_ELEMENT",
"SHOW_COMMENT",
"SHOW_TEXT",
"_isClobbered",
"elm",
"attributes",
"_isNode",
"_executeHook",
"entryPoint",
"currentNode",
"hook",
"_sanitizeElements",
"allowedTags",
"hasChildNodes",
"firstElementChild",
"_basicCustomElementTest",
"_isValidAttribute",
"lcTag",
"lcName",
"_sanitizeAttributes",
"hookEvent",
"keepAttr",
"allowedAttributes",
"_attr",
"forceKeepAttr",
"getAttributeType",
"setAttributeNS",
"_sanitizeShadowDOM",
"shadowNode",
"shadowIterator",
"nextNode",
"sanitize",
"importedNode",
"oldNode",
"returnNode",
"toStaticHTML",
"nodeIterator",
"shadowroot",
"serializedHTML",
"doctype",
"setConfig",
"clearConfig",
"isValidAttribute",
"tag",
"addHook",
"hookFunction",
"removeHook",
"removeHooks",
"removeAllHooks",
"freeExports",
"freeGlobal",
"regexAstralSymbols",
"regexAsciiWhitelist",
"regexBmpWhitelist",
"regexEncodeNonAscii",
"encodeMap",
"regexEscape",
"escapeMap",
"regexInvalidEntity",
"regexInvalidRawCodePoint",
"regexDecode",
"decodeMap",
"decodeMapLegacy",
"decodeMapNumeric",
"invalidReferenceCodePoints",
"stringFromCharCode",
"fromCharCode",
"propertyName",
"merge",
"defaults",
"codePointToSymbol",
"codePoint",
"strict",
"parseError",
"hexEscape",
"decEscape",
"string",
"encodeEverything",
"useNamedReferences",
"allowUnsafeSymbols",
"escapeCodePoint",
"decimal",
"escapeBmpSymbol",
"symbol",
"charCodeAt",
"$0",
"high",
"low",
"$1",
"$2",
"$3",
"$4",
"$5",
"$6",
"$7",
"$8",
"semicolon",
"decDigits",
"hexDigits",
"reference",
"isAttributeValue",
"he",
"OFI",
"propRegex",
"testImg",
"Image",
"supportsObjectFit",
"supportsObjectPosition",
"supportsOFI",
"supportsCurrentSrc",
"currentSrc",
"nativeGetAttribute",
"nativeSetAttribute",
"autoModeEnabled",
"setPlaceholder",
"img",
"placeholder",
"onImageReady",
"naturalWidth",
"fixOne",
"parsed",
"getComputedStyle",
"fontFamily",
"props",
"getStyle",
"ofi",
"skipTest",
"srcset",
"src",
"naturalHeight",
"descriptors",
"ss",
"keepSrcUsable",
"picturefill",
"pf",
"ns",
"evaled",
"fillImg",
"reselect",
"curSrc",
"supported",
"polyfillCurrentSrc",
"backgroundImage",
"backgroundPosition",
"backgroundRepeat",
"backgroundOrigin",
"backgroundSize",
"fix",
"imgs",
"opts",
"startAutoMode",
"querySelectorAll",
"watchMQ",
"getOfiImageMaybe",
"HTMLImageElement",
"hijackAttributes",
"Op",
"hasOwn",
"$Symbol",
"iteratorSymbol",
"asyncIteratorSymbol",
"asyncIterator",
"toStringTagSymbol",
"toStringTag",
"innerFn",
"outerFn",
"tryLocsList",
"protoGenerator",
"Generator",
"generator",
"Context",
"_invoke",
"GenStateSuspendedStart",
"GenStateExecuting",
"GenStateCompleted",
"doneResult",
"delegate",
"delegateResult",
"maybeInvokeDelegate",
"ContinueSentinel",
"sent",
"_sent",
"dispatchException",
"abrupt",
"record",
"tryCatch",
"done",
"GenStateSuspendedYield",
"makeInvokeMethod",
"GeneratorFunction",
"GeneratorFunctionPrototype",
"IteratorPrototype",
"NativeIteratorPrototype",
"Gp",
"defineIteratorMethods",
"AsyncIterator",
"PromiseImpl",
"invoke",
"__await",
"unwrapped",
"previousPromise",
"callInvokeWithMethodAndArg",
"resultName",
"nextLoc",
"pushTryEntry",
"locs",
"entry",
"tryLoc",
"catchLoc",
"finallyLoc",
"afterLoc",
"tryEntries",
"resetTryEntry",
"completion",
"reset",
"iterable",
"iteratorMethod",
"displayName",
"isGeneratorFunction",
"genFun",
"ctor",
"mark",
"awrap",
"async",
"Promise",
"skipTempReset",
"prev",
"stop",
"rootRecord",
"rval",
"handle",
"loc",
"caught",
"hasCatch",
"hasFinally",
"finallyEntry",
"complete",
"finish",
"thrown",
"delegateYield",
"regeneratorRuntime",
"accidentalStrictMode",
"RegexEscape",
"escape",
"execScript",
"attachEvent",
"eval",
"asyncGeneratorStep",
"gen",
"_next",
"_throw",
"_asyncToGenerator",
"assign",
"api",
"defaultAttributes",
"expires",
"toUTCString",
"decodeURIComponent",
"stringifiedAttributes",
"attributeName",
"cookie",
"write",
"cookies",
"jar",
"foundKey",
"read",
"withAttributes",
"withConverter",
"__webpack_module_cache__",
"__webpack_require__",
"moduleId",
"cachedModule",
"loaded",
"__webpack_modules__",
"m",
"getter",
"__esModule",
"t",
"mode",
"def",
"getOwnPropertyNames",
"definition",
"f",
"chunkId",
"promises",
"u",
"miniCssF",
"globalThis",
"hmd",
"children",
"script",
"needAttach",
"scripts",
"charset",
"nc",
"onScriptComplete",
"onload",
"doneFns",
"nmd",
"paths",
"fullhref",
"existingLinkTags",
"dataHref",
"rel",
"existingStyleTags",
"findStylesheet",
"linkTag",
"errorType",
"realHref",
"createStylesheet",
"miniCss",
"installedChunks",
"j",
"installedChunkData",
"realSrc",
"webpackJsonpCallback",
"parentChunkLoadingFunction",
"chunkIds",
"moreModules",
"chunkLoadingGlobal",
"_global",
"SENTRY_RELEASES"
],
"sourceRoot": ""
}

File Metadata

Mime Type
application/json
Expires
Wed, Jun 4, 7:23 PM (6 d, 10 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3394656

Event Timeline