@honeybadger-io/js 6.16.0 → 6.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"honeybadger.ext.min.js","sources":["../../../../node_modules/.pnpm/stacktrace-parser@0.1.11/node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js","../../../core/build/src/util.js","../../../core/build/src/plugins/console_events.js","../../../core/build/src/store.js","../../../../node_modules/.pnpm/json-nd@1.0.0/node_modules/json-nd/dist/module/index.js","../../../core/build/src/defaults.js","../../../core/build/src/throttled_events_worker.js","../../../core/build/src/client.js","../../../core/build/src/types.js","../../../core/build/src/index.js","../../build/src/browser/util.js","../../build/src/browser/integrations/onerror.js","../../build/src/browser/integrations/onunhandledrejection.js","../../build/src/browser/integrations/breadcrumbs.js","../../build/src/browser/integrations/timers.js","../../build/src/browser/integrations/event_listeners.js","../../build/src/browser/transport.js","../../build/src/browser/feedback-form.js","../../build/src/browser.js"],"sourcesContent":["var UNKNOWN_FUNCTION = '<unknown>';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexport { parse };\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logDeprecatedMethod = exports.globalThisOrWindow = exports.isBrowserConfig = exports.clone = exports.formatCGIData = exports.filterUrl = exports.filter = exports.generateStackTrace = exports.endpoint = exports.instrumentConsole = exports.instrument = exports.isErrorObject = exports.makeNotice = exports.logger = exports.sanitize = exports.shallowClone = exports.runAfterNotifyHandlers = exports.shouldSampleEvent = exports.resolveInsights = exports.runBeforeEventHandlers = exports.runBeforeNotifyHandlers = exports.getSourceForBacktrace = exports.getCauses = exports.calculateBacktraceShift = exports.DEFAULT_BACKTRACE_SHIFT = exports.makeBacktrace = exports.objectIsExtensible = exports.objectIsEmpty = exports.mergeNotice = exports.merge = void 0;\n/* eslint-disable prefer-rest-params */\nvar stackTraceParser = __importStar(require(\"stacktrace-parser\"));\nfunction merge(obj1, obj2) {\n var result = {};\n for (var k in obj1) {\n result[k] = obj1[k];\n }\n for (var k in obj2) {\n result[k] = obj2[k];\n }\n return result;\n}\nexports.merge = merge;\nfunction mergeNotice(notice1, notice2) {\n var result = merge(notice1, notice2);\n if (notice1.context && notice2.context) {\n result.context = merge(notice1.context, notice2.context);\n }\n return result;\n}\nexports.mergeNotice = mergeNotice;\nfunction objectIsEmpty(obj) {\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k)) {\n return false;\n }\n }\n return true;\n}\nexports.objectIsEmpty = objectIsEmpty;\nfunction objectIsExtensible(obj) {\n if (typeof Object.isExtensible !== 'function') {\n return true;\n }\n return Object.isExtensible(obj);\n}\nexports.objectIsExtensible = objectIsExtensible;\nfunction makeBacktrace(stack, filterHbSourceCode, logger) {\n if (filterHbSourceCode === void 0) { filterHbSourceCode = false; }\n if (logger === void 0) { logger = console; }\n if (!stack) {\n return [];\n }\n try {\n var backtrace = stackTraceParser\n .parse(stack)\n .map(function (line) {\n return {\n file: line.file,\n method: line.methodName,\n number: line.lineNumber,\n column: line.column\n };\n });\n if (filterHbSourceCode) {\n backtrace.splice(0, calculateBacktraceShift(backtrace));\n }\n return backtrace;\n }\n catch (err) {\n logger.debug(err);\n return [];\n }\n}\nexports.makeBacktrace = makeBacktrace;\nfunction isFrameFromHbSourceCode(frame) {\n var hasHbFile = false;\n var hasHbMethod = false;\n if (frame.file) {\n hasHbFile = frame.file.toLowerCase().indexOf('@honeybadger-io') > -1;\n }\n if (frame.method) {\n hasHbMethod = frame.method.toLowerCase().indexOf('@honeybadger-io') > -1;\n }\n return hasHbFile || hasHbMethod;\n}\nexports.DEFAULT_BACKTRACE_SHIFT = 3;\n/**\n * If {@link generateStackTrace} is used, we want to exclude frames that come from\n * Honeybadger's source code.\n *\n * Logic:\n * - For each frame, increment the shift if source code is from Honeybadger\n * - If a frame from an <anonymous> file is encountered increment the shift ONLY if between Honeybadger source code\n * (i.e. previous and next frames are from Honeybadger)\n * - Exit when frame encountered is not from Honeybadger source code\n *\n * Note: this will not always work, especially in browser versions where code\n * is minified, uglified and bundled.\n * For those cases we default to 3:\n * - generateStackTrace\n * - makeNotice\n * - notify\n */\nfunction calculateBacktraceShift(backtrace) {\n var shift = 0;\n for (var i = 0; i < backtrace.length; i++) {\n var frame = backtrace[i];\n if (isFrameFromHbSourceCode(frame)) {\n shift++;\n continue;\n }\n if (!frame.file || frame.file === '<anonymous>') {\n var nextFrame = backtrace[i + 1];\n if (nextFrame && isFrameFromHbSourceCode(nextFrame)) {\n shift++;\n continue;\n }\n }\n break;\n }\n return shift || exports.DEFAULT_BACKTRACE_SHIFT;\n}\nexports.calculateBacktraceShift = calculateBacktraceShift;\nfunction getCauses(notice, logger) {\n if (notice.cause) {\n var causes = [];\n var cause = notice;\n // @ts-ignore this throws an error if tsconfig.json has strict: true\n while (causes.length < 3 && (cause = cause.cause)) {\n causes.push({\n class: cause.name,\n message: cause.message,\n backtrace: typeof cause.stack == 'string' ? makeBacktrace(cause.stack, false, logger) : null\n });\n }\n return causes;\n }\n return [];\n}\nexports.getCauses = getCauses;\nfunction getSourceForBacktrace(backtrace, getSourceFileHandler) {\n return __awaiter(this, void 0, void 0, function () {\n var result, index, trace, fileContent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = [];\n if (!getSourceFileHandler || !backtrace || !backtrace.length) {\n return [2 /*return*/, result];\n }\n index = 0;\n _a.label = 1;\n case 1:\n if (!backtrace.length) return [3 /*break*/, 3];\n trace = backtrace.splice(0)[index];\n return [4 /*yield*/, getSourceFileHandler(trace.file)];\n case 2:\n fileContent = _a.sent();\n result[index] = getSourceCodeSnippet(fileContent, trace.number, trace.column, 2);\n index++;\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/, result];\n }\n });\n });\n}\nexports.getSourceForBacktrace = getSourceForBacktrace;\nfunction runBeforeNotifyHandlers(notice, handlers) {\n var results = [];\n var result = true;\n for (var i = 0, len = handlers.length; i < len; i++) {\n var handler = handlers[i];\n var handlerResult = handler(notice);\n if (handlerResult === false) {\n result = false;\n }\n results.push(handlerResult);\n }\n return {\n results: results,\n result: result\n };\n}\nexports.runBeforeNotifyHandlers = runBeforeNotifyHandlers;\nfunction runBeforeEventHandlers(payload, handlers, logger) {\n return __awaiter(this, void 0, void 0, function () {\n var i, len, result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n i = 0, len = handlers.length;\n _a.label = 1;\n case 1:\n if (!(i < len)) return [3 /*break*/, 7];\n result = void 0;\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, handlers[i](payload)];\n case 3:\n result = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n err_1 = _a.sent();\n // A buggy handler should not suppress unrelated events. Log and treat as no-op.\n logger === null || logger === void 0 ? void 0 : logger.error('beforeEvent handler threw; continuing', err_1);\n return [3 /*break*/, 6];\n case 5:\n if (result === false) {\n return [2 /*return*/, false];\n }\n _a.label = 6;\n case 6:\n i++;\n return [3 /*break*/, 1];\n case 7: return [2 /*return*/, true];\n }\n });\n });\n}\nexports.runBeforeEventHandlers = runBeforeEventHandlers;\nfunction resolveInsights(config) {\n var _a, _b;\n var insights = config.insights;\n if (!insights || insights.enabled !== true) {\n return { console: false, http: false };\n }\n return {\n console: (_a = insights.console) !== null && _a !== void 0 ? _a : false,\n http: (_b = insights.http) !== null && _b !== void 0 ? _b : false,\n };\n}\nexports.resolveInsights = resolveInsights;\nfunction fnv1a(str) {\n var h = 0x811c9dc5;\n for (var i = 0, len = str.length; i < len; i++) {\n h ^= str.charCodeAt(i);\n h = Math.imul(h, 0x01000193);\n }\n return h >>> 0;\n}\nfunction clampSampleRate(rate) {\n if (rate < 0)\n return 0;\n if (rate > 100)\n return 100;\n return rate;\n}\nfunction shouldSampleEvent(event, configRate) {\n var meta = event._hb;\n var override = meta && Number.isFinite(meta.sampleRate) ? meta.sampleRate : undefined;\n var rawRate = override !== undefined ? override : configRate;\n // Guard against non-finite rates (e.g. NaN from Number(invalidConfig)); an\n // unusable rate must not silently drop every event, so fall back to send-all.\n var rate = clampSampleRate(Number.isFinite(rawRate) ? rawRate : 100);\n if (rate <= 0)\n return false;\n if (rate >= 100)\n return true;\n var requestId = event.request_id;\n if (typeof requestId === 'string' && requestId.length > 0) {\n return fnv1a(requestId) % 100 < rate;\n }\n return Math.random() * 100 < rate;\n}\nexports.shouldSampleEvent = shouldSampleEvent;\nfunction runAfterNotifyHandlers(notice, handlers, error) {\n if (notice && notice.afterNotify) {\n notice.afterNotify(error, notice);\n }\n for (var i = 0, len = handlers.length; i < len; i++) {\n handlers[i](error, notice);\n }\n return true;\n}\nexports.runAfterNotifyHandlers = runAfterNotifyHandlers;\n// Returns a new object with properties from other object.\nfunction shallowClone(obj) {\n if (typeof (obj) !== 'object' || obj === null) {\n return {};\n }\n var result = {};\n for (var k in obj) {\n result[k] = obj[k];\n }\n return result;\n}\nexports.shallowClone = shallowClone;\nfunction sanitize(obj, maxDepth) {\n if (maxDepth === void 0) { maxDepth = 8; }\n var seenObjects = [];\n function seen(obj) {\n if (!obj || typeof (obj) !== 'object') {\n return false;\n }\n for (var i = 0; i < seenObjects.length; i++) {\n var value = seenObjects[i];\n if (value === obj) {\n return true;\n }\n }\n seenObjects.push(obj);\n return false;\n }\n function canSerialize(obj) {\n var typeOfObj = typeof obj;\n // Functions are TMI\n if (/function/.test(typeOfObj)) {\n // Let special toJSON method pass as it's used by JSON.stringify (#722)\n return obj.name === 'toJSON';\n }\n // Symbols can't convert to strings.\n if (/symbol/.test(typeOfObj)) {\n return false;\n }\n if (obj === null) {\n return false;\n }\n // No prototype, likely created with `Object.create(null)`.\n if (typeof obj === 'object' && typeof obj.hasOwnProperty === 'undefined') {\n return false;\n }\n return true;\n }\n function serialize(obj, depth) {\n if (depth === void 0) { depth = 0; }\n if (depth >= maxDepth) {\n return '[DEPTH]';\n }\n // Inspect invalid types\n if (!canSerialize(obj)) {\n return Object.prototype.toString.call(obj);\n }\n // Halt circular references\n if (seen(obj)) {\n return '[RECURSION]';\n }\n // Serialize inside arrays\n if (Array.isArray(obj)) {\n return obj.map(function (o) { return safeSerialize(o, depth + 1); });\n }\n // Serialize inside objects\n if (typeof (obj) === 'object') {\n var ret = {};\n for (var k in obj) {\n var v = obj[k];\n if (Object.prototype.hasOwnProperty.call(obj, k) && (k != null) && (v != null)) {\n ret[k] = safeSerialize(v, depth + 1);\n }\n }\n return ret;\n }\n // Return everything else untouched\n return obj;\n }\n function safeSerialize(obj, depth) {\n if (depth === void 0) { depth = 0; }\n try {\n return serialize(obj, depth);\n }\n catch (e) {\n return \"[ERROR] \".concat(e);\n }\n }\n return safeSerialize(obj);\n}\nexports.sanitize = sanitize;\nfunction logger(client) {\n var log = function (method) {\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (method === 'debug') {\n if (!client.config.debug) {\n return;\n }\n // Log at default level so that you don't need to also enable verbose\n // logging in Chrome.\n method = 'log';\n }\n args.unshift('[Honeybadger]');\n (_a = client.config.logger)[method].apply(_a, args);\n };\n };\n return {\n log: log('log'),\n info: log('info'),\n debug: log('debug'),\n warn: log('warn'),\n error: log('error')\n };\n}\nexports.logger = logger;\n/**\n * Converts any object into a notice object (which at minimum has the same\n * properties as Error, but supports additional Honeybadger properties.)\n */\nfunction makeNotice(thing) {\n var notice;\n if (!thing) {\n notice = {};\n }\n else if (isErrorObject(thing)) {\n var e = thing;\n notice = merge(thing, { name: e.name, message: e.message, stack: e.stack, cause: e.cause, originalError: e });\n }\n else if (typeof thing === 'object') {\n notice = shallowClone(thing);\n }\n else {\n var m = String(thing);\n notice = { message: m };\n }\n return notice;\n}\nexports.makeNotice = makeNotice;\nfunction isErrorObject(thing) {\n return thing instanceof Error\n || Object.prototype.toString.call(thing) === '[object Error]'; // Important for cross-realm objects\n}\nexports.isErrorObject = isErrorObject;\n/**\n * Instrument an existing function inside an object (usually global).\n * @param {!Object} object\n * @param {!String} name\n * @param {!Function} replacement\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction instrument(object, name, replacement) {\n if (!object || !name || !replacement || !(name in object)) {\n return;\n }\n try {\n var original = object[name];\n while (original && original.__hb_original) {\n original = original.__hb_original;\n }\n object[name] = replacement(original);\n object[name].__hb_original = original;\n }\n catch (_e) {\n // Ignores errors where \"original\" is a restricted object (see #1001)\n // Uncaught Error: Permission denied to access property \"__hb_original\"\n // Also ignores:\n // Error: TypeError: Cannot set property onunhandledrejection of [object Object] which has only a getter\n // User-Agent: Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-G960F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/12.1 Chrome/79.0.3945.136 Mobile Safari/537.36\n }\n}\nexports.instrument = instrument;\nvar _consoleAlreadyInstrumented = false;\nvar listeners = [];\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction instrumentConsole(_window, handler) {\n if (!_window || !_window.console || !handler) {\n return;\n }\n listeners.push(handler);\n if (_consoleAlreadyInstrumented) {\n return;\n }\n _consoleAlreadyInstrumented = true;\n ['debug', 'info', 'warn', 'error', 'log'].forEach(function (level) {\n instrument(_window.console, level, function hbLogger(original) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n listeners.forEach(function (listener) {\n try {\n listener(level, args);\n }\n catch (_e) {\n // ignore\n // should never reach here because instrument method already wraps with try/catch block\n }\n });\n if (typeof original === 'function') {\n Function.prototype.apply.call(original, _window.console, arguments);\n }\n };\n });\n });\n}\nexports.instrumentConsole = instrumentConsole;\nfunction endpoint(base, path) {\n var endpoint = base.trim().replace(/\\/$/, '');\n path = path.trim().replace(/(^\\/|\\/$)/g, '');\n return \"\".concat(endpoint, \"/\").concat(path);\n}\nexports.endpoint = endpoint;\nfunction generateStackTrace() {\n try {\n throw new Error('');\n }\n catch (e) {\n if (e.stack) {\n return e.stack;\n }\n }\n var maxStackSize = 10;\n var stack = [];\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize) {\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(RegExp.$1 || '<anonymous>');\n }\n else {\n stack.push('<anonymous>');\n }\n try {\n curr = curr.caller;\n }\n catch (e) {\n break;\n }\n }\n return stack.join('\\n');\n}\nexports.generateStackTrace = generateStackTrace;\nfunction filter(obj, filters) {\n if (!is('Object', obj)) {\n return;\n }\n if (!is('Array', filters)) {\n filters = [];\n }\n var seen = [];\n function filter(obj) {\n var k, newObj;\n if (is('Object', obj) || is('Array', obj)) {\n if (seen.indexOf(obj) !== -1) {\n return '[CIRCULAR DATA STRUCTURE]';\n }\n seen.push(obj);\n }\n if (is('Object', obj)) {\n newObj = {};\n for (k in obj) {\n if (filterMatch(k, filters)) {\n newObj[k] = '[FILTERED]';\n }\n else {\n newObj[k] = filter(obj[k]);\n }\n }\n return newObj;\n }\n if (is('Array', obj)) {\n return obj.map(function (v) {\n return filter(v);\n });\n }\n if (is('Function', obj)) {\n return '[FUNC]';\n }\n return obj;\n }\n return filter(obj);\n}\nexports.filter = filter;\nfunction filterMatch(key, filters) {\n for (var i = 0; i < filters.length; i++) {\n if (key.toLowerCase().indexOf(filters[i].toLowerCase()) !== -1) {\n return true;\n }\n }\n return false;\n}\nfunction is(type, obj) {\n var klass = Object.prototype.toString.call(obj).slice(8, -1);\n return obj !== undefined && obj !== null && klass === type;\n}\nfunction filterUrl(url, filters) {\n if (!filters) {\n return url;\n }\n if (typeof url !== 'string') {\n return url;\n }\n var query = url.split(/\\?/, 2)[1];\n if (!query) {\n return url;\n }\n var result = url;\n query.split(/[&]\\s?/).forEach(function (pair) {\n var _a = pair.split('=', 2), key = _a[0], value = _a[1];\n if (filterMatch(key, filters)) {\n result = result.replace(\"\".concat(key, \"=\").concat(value), \"\".concat(key, \"=[FILTERED]\"));\n }\n });\n return result;\n}\nexports.filterUrl = filterUrl;\nfunction formatCGIData(vars, prefix) {\n if (prefix === void 0) { prefix = ''; }\n var formattedVars = {};\n Object.keys(vars).forEach(function (key) {\n var formattedKey = prefix + key.replace(/\\W/g, '_').toUpperCase();\n formattedVars[formattedKey] = vars[key];\n });\n return formattedVars;\n}\nexports.formatCGIData = formatCGIData;\nfunction clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\nexports.clone = clone;\nvar THRESHOLD_COLUMN_NUMBER = 10000;\nvar THRESHOLD_LINE_LENGTH = 10000;\nvar THRESHOLD_FILE_SIZE = 200000; // 200KB threshold\nfunction getThresholdExceededSnippet(lineNumber) {\n var _a;\n return _a = {}, _a[lineNumber] = 'SOURCE_SIZE_TOO_LARGE', _a;\n}\nfunction getSourceCodeSnippet(fileData, lineNumber, columnNumber, sourceRadius) {\n if (sourceRadius === void 0) { sourceRadius = 2; }\n if (!fileData) {\n return null;\n }\n // If column number is provided and very high, it's likely a bundled/minified file\n if (columnNumber && columnNumber > THRESHOLD_COLUMN_NUMBER) {\n return getThresholdExceededSnippet(lineNumber);\n }\n // If file is very large, it's likely bundled\n if (fileData.length > THRESHOLD_FILE_SIZE) {\n return getThresholdExceededSnippet(lineNumber);\n }\n var lines = fileData.split('\\n');\n // add one empty line because array index starts from 0, but error line number is counted from 1\n lines.unshift('');\n // Check if the target line is extremely long\n var targetLine = lines[lineNumber];\n if (targetLine && targetLine.length > THRESHOLD_LINE_LENGTH) {\n return getThresholdExceededSnippet(lineNumber);\n }\n var start = lineNumber - sourceRadius;\n var end = lineNumber + sourceRadius;\n var result = {};\n for (var i = start; i <= end; i++) {\n var line = lines[i];\n if (typeof line === 'string') {\n result[i] = line;\n }\n }\n return result;\n}\nfunction isBrowserConfig(config) {\n return config.async !== undefined;\n}\nexports.isBrowserConfig = isBrowserConfig;\n/** globalThis has fairly good support. But just in case, lets check its defined.\n * @see {https://caniuse.com/?search=globalThis}\n */\nfunction globalThisOrWindow() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n return window;\n}\nexports.globalThisOrWindow = globalThisOrWindow;\nvar _deprecatedMethodCalls = {};\n/**\n * Logs a deprecation warning, every X calls to the method.\n */\nfunction logDeprecatedMethod(logger, oldMethod, newMethod, callCountThreshold) {\n if (callCountThreshold === void 0) { callCountThreshold = 100; }\n var key = \"\".concat(oldMethod, \"-\").concat(newMethod);\n if (typeof _deprecatedMethodCalls[key] === 'undefined') {\n _deprecatedMethodCalls[key] = 0;\n }\n if (_deprecatedMethodCalls[key] % callCountThreshold !== 0) {\n _deprecatedMethodCalls[key]++;\n return;\n }\n var msg = \"Deprecation warning: \".concat(oldMethod, \" has been deprecated; please use \").concat(newMethod, \" instead.\");\n logger.warn(msg);\n _deprecatedMethodCalls[key]++;\n}\nexports.logDeprecatedMethod = logDeprecatedMethod;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = require(\"../util\");\nfunction default_1(_window) {\n if (_window === void 0) { _window = (0, util_1.globalThisOrWindow)(); }\n return {\n shouldReloadOnConfigure: false,\n load: function (client) {\n function sendEventsToInsights() {\n return (0, util_1.resolveInsights)(client.config).console;\n }\n if (!sendEventsToInsights()) {\n return;\n }\n (0, util_1.instrumentConsole)(_window, function (level, args) {\n if (!sendEventsToInsights()) {\n return;\n }\n if (args.length === 0) {\n return;\n }\n var data = {\n severity: level,\n };\n if (typeof args[0] === 'string') {\n data.message = args[0];\n data.args = args.slice(1);\n }\n else {\n data.args = args;\n }\n client.event('log', data);\n });\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=console_events.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalStore = void 0;\nvar util_1 = require(\"./util\");\nvar GlobalStore = /** @class */ (function () {\n function GlobalStore(contents, breadcrumbsLimit) {\n this.contents = contents;\n this.breadcrumbsLimit = breadcrumbsLimit;\n }\n GlobalStore.create = function (contents, breadcrumbsLimit) {\n return new GlobalStore(contents, breadcrumbsLimit);\n };\n GlobalStore.prototype.available = function () {\n return true;\n };\n GlobalStore.prototype.getContents = function (key) {\n var value = key ? this.contents[key] : this.contents;\n return JSON.parse(JSON.stringify(value));\n };\n GlobalStore.prototype.setContext = function (context) {\n this.contents.context = (0, util_1.merge)(this.contents.context, context || {});\n };\n GlobalStore.prototype.setEventContext = function (eventContext) {\n this.contents.eventContext = (0, util_1.merge)(this.contents.eventContext, eventContext || {});\n };\n GlobalStore.prototype.clearEventContext = function () {\n this.contents.eventContext = {};\n };\n GlobalStore.prototype.addBreadcrumb = function (breadcrumb) {\n if (this.contents.breadcrumbs.length == this.breadcrumbsLimit) {\n this.contents.breadcrumbs.shift();\n }\n this.contents.breadcrumbs.push(breadcrumb);\n };\n GlobalStore.prototype.clear = function () {\n this.contents.context = {};\n this.contents.eventContext = {};\n this.contents.breadcrumbs = [];\n };\n GlobalStore.prototype.run = function (callback) {\n return callback();\n };\n return GlobalStore;\n}());\nexports.GlobalStore = GlobalStore;\n//# sourceMappingURL=store.js.map","export class NdJson {\n static parse(data) {\n const lines = data.trim().split('\\n');\n return lines.map(line => JSON.parse(line));\n }\n static stringify(data) {\n return data.map(item => JSON.stringify(item)).join('\\n');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BREADCRUMBS_SELECTOR_ATTRIBUTES = exports.CONFIG = void 0;\nexports.CONFIG = {\n apiKey: null,\n endpoint: 'https://api.honeybadger.io',\n appEndpoint: 'https://app.honeybadger.io',\n environment: null,\n hostname: null,\n projectRoot: null,\n component: null,\n action: null,\n revision: null,\n reportData: null,\n breadcrumbsEnabled: true,\n // deprecated: `eventsEnabled: true` auto-enables insights.enabled + insights.console\n eventsEnabled: false,\n insights: {\n enabled: false,\n console: false,\n http: false,\n },\n events: {\n dispatchIntervalSeconds: 10,\n bulkThreshold: 500,\n sampleRatePercentage: 100,\n },\n maxBreadcrumbs: 40,\n maxObjectDepth: 8,\n logger: console,\n developmentEnvironments: ['dev', 'development', 'test'],\n debug: false,\n tags: null,\n enableUncaught: true,\n enableUnhandledRejection: true,\n afterUncaught: function () { return true; },\n filters: ['creditcard', 'password'],\n __plugins: [],\n};\n// Browser-only, so it lives outside CONFIG (which is shared with Node).\nexports.BREADCRUMBS_SELECTOR_ATTRIBUTES = ['data-hb-name'];\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThrottledEventsWorker = void 0;\nvar json_nd_1 = require(\"json-nd\");\nvar util_1 = require(\"./util\");\nvar defaults_1 = require(\"./defaults\");\nvar ThrottledEventsWorker = /** @class */ (function () {\n function ThrottledEventsWorker(config, transport) {\n this.config = config;\n this.transport = transport;\n this.queue = [];\n this.cooldownTimer = null;\n // Timestamp (ms) until which the post-send cooldown window is active. A timer\n // is only armed while there are queued events waiting for this window; when the\n // queue drains empty we keep the timestamp but drop the timer, so an idle worker\n // never holds a pending timer (which would otherwise keep a Node process alive\n // for the full interval.\n this.cooldownUntil = 0;\n this.inFlight = null;\n this.config = __assign(__assign({}, defaults_1.CONFIG), config);\n this.logger = this.originalLogger();\n }\n ThrottledEventsWorker.prototype.configure = function (opts) {\n for (var k in opts) {\n this.config[k] = opts[k];\n }\n };\n ThrottledEventsWorker.prototype.log = function (payload) {\n this.queue.push(payload);\n if (this.inFlight) {\n return;\n }\n // Crossing the bulk threshold preempts any pending cooldown and dispatches now.\n if (this.queue.length >= this.bulkThreshold()) {\n this.clearCooldownTimer();\n this.processQueue();\n return;\n }\n // A timer is already counting down the cooldown window; the queued event\n // will be picked up when it fires.\n if (this.cooldownTimer) {\n return;\n }\n // We're inside a cooldown window but no timer is armed (the queue had drained\n // empty after the previous send). Arm one for the remaining time so this event\n // still respects the interval.\n var remaining = this.cooldownRemainingMs();\n if (remaining > 0) {\n this.scheduleCooldownTimer(remaining);\n return;\n }\n this.processQueue();\n };\n ThrottledEventsWorker.prototype.flushAsync = function () {\n var _this = this;\n var _a;\n this.logger.debug('[Honeybadger] Flushing events');\n this.clearCooldownTimer();\n var previous = (_a = this.inFlight) !== null && _a !== void 0 ? _a : Promise.resolve();\n var flush = previous.then(function () { return _this.drainAll(); });\n // Mark the flush as in-flight so a concurrent log() doesn't start an\n // overlapping processQueue() drain while we're draining here.\n this.inFlight = flush;\n var clear = function () {\n if (_this.inFlight === flush) {\n _this.inFlight = null;\n }\n };\n flush.then(clear, clear);\n return flush;\n };\n ThrottledEventsWorker.prototype.drainAll = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.queue.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.send()];\n case 1:\n _a.sent();\n return [3 /*break*/, 0];\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n ThrottledEventsWorker.prototype.processQueue = function () {\n var _this = this;\n if (this.queue.length === 0 || this.inFlight) {\n return;\n }\n var inFlight = this.send()\n .catch(function (error) {\n _this.logger.error('[Honeybadger] Error making HTTP request:', error);\n })\n .then(function () {\n // Only reset if we're still the current operation; a flushAsync() may\n // have taken ownership of inFlight while this send was resolving.\n if (_this.inFlight === inFlight) {\n _this.inFlight = null;\n _this.scheduleNextDispatch();\n }\n });\n this.inFlight = inFlight;\n };\n ThrottledEventsWorker.prototype.scheduleNextDispatch = function () {\n var intervalMs = this.dispatchIntervalMs();\n // Capture the cooldown deadline at dispatch time so a later config change to\n // the interval doesn't retroactively shorten a window already in progress.\n this.cooldownUntil = Date.now() + intervalMs;\n if (this.queue.length >= this.bulkThreshold()) {\n this.processQueue();\n return;\n }\n // Only arm a timer when there's queued work waiting for it. If the queue is\n // empty, `cooldownUntil` alone enforces the window: the next log() will arm a\n // timer for whatever time remains, and an idle worker holds no timer at all.\n if (this.queue.length > 0) {\n this.scheduleCooldownTimer(intervalMs);\n }\n };\n ThrottledEventsWorker.prototype.cooldownRemainingMs = function () {\n if (!this.cooldownUntil) {\n return 0;\n }\n return Math.max(0, this.cooldownUntil - Date.now());\n };\n ThrottledEventsWorker.prototype.scheduleCooldownTimer = function (ms) {\n var _this = this;\n this.cooldownTimer = setTimeout(function () {\n _this.cooldownTimer = null;\n _this.processQueue();\n }, ms);\n // In Node, don't let a pending cooldown timer keep the process alive for the\n // whole batching interval. `unref` lets the event loop go idle so the process\n // can exit (or a shutdown / `beforeExit` handler can run) promptly instead of\n // blocking for `dispatchIntervalSeconds`. Queued events aren't lost: a\n // `flushAsync()` on the way out still drains them before exit. (`unref` is\n // Node-only; the browser's numeric setTimeout handle has no such method.)\n if (typeof this.cooldownTimer === 'object' && this.cooldownTimer !== null && typeof this.cooldownTimer.unref === 'function') {\n this.cooldownTimer.unref();\n }\n };\n ThrottledEventsWorker.prototype.clearCooldownTimer = function () {\n if (this.cooldownTimer) {\n clearTimeout(this.cooldownTimer);\n this.cooldownTimer = null;\n }\n };\n ThrottledEventsWorker.prototype.send = function () {\n return __awaiter(this, void 0, void 0, function () {\n var eventsData, data;\n return __generator(this, function (_a) {\n if (this.queue.length === 0) {\n return [2 /*return*/];\n }\n eventsData = this.queue.splice(0, this.bulkThreshold());\n data = json_nd_1.NdJson.stringify(eventsData);\n return [2 /*return*/, this.makeHttpRequest(data)];\n });\n });\n };\n ThrottledEventsWorker.prototype.bulkThreshold = function () {\n var _a;\n var v = (_a = this.config.events) === null || _a === void 0 ? void 0 : _a.bulkThreshold;\n return typeof v === 'number' && v > 0 ? v : defaults_1.CONFIG.events.bulkThreshold;\n };\n ThrottledEventsWorker.prototype.dispatchIntervalMs = function () {\n var _a;\n var v = (_a = this.config.events) === null || _a === void 0 ? void 0 : _a.dispatchIntervalSeconds;\n var seconds = typeof v === 'number' && v >= 0 ? v : defaults_1.CONFIG.events.dispatchIntervalSeconds;\n return seconds * 1000;\n };\n ThrottledEventsWorker.prototype.makeHttpRequest = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.transport\n .send({\n headers: {\n 'X-API-Key': this.config.apiKey,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n endpoint: (0, util_1.endpoint)(this.config.endpoint, '/v1/events'),\n maxObjectDepth: this.config.maxObjectDepth,\n logger: this.logger,\n }, data)\n .then(function (resp) {\n if ([200, 201].includes(resp.statusCode)) {\n _this.logger.debug('[Honeybadger] Events sent successfully');\n }\n else {\n _this.logger.debug(\"[Honeybadger] Events failed[\".concat(resp.statusCode, \"]: \").concat(resp.body));\n }\n })\n .catch(function (err) {\n _this.logger.error(\"[Honeybadger] Error sending events: \".concat(err.message));\n })];\n });\n });\n };\n /**\n * todo: improve this\n *\n * The events plugin overrides the console methods to enable automatic instrumentation\n * of console logs to the Honeybadger API.\n * So if we want to log something in here we need to use the original methods.\n */\n ThrottledEventsWorker.prototype.originalLogger = function () {\n var _this = this;\n var _a, _b, _c, _d;\n return {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n log: (_a = console.log.__hb_original) !== null && _a !== void 0 ? _a : console.log,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n info: (_b = console.info.__hb_original) !== null && _b !== void 0 ? _b : console.info,\n debug: function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!_this.config.debug) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var func = (_a = console.debug.__hb_original) !== null && _a !== void 0 ? _a : console.debug;\n return func.apply(void 0, args);\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n warn: (_c = console.warn.__hb_original) !== null && _c !== void 0 ? _c : console.warn,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: (_d = console.error.__hb_original) !== null && _d !== void 0 ? _d : console.error,\n };\n };\n return ThrottledEventsWorker;\n}());\nexports.ThrottledEventsWorker = ThrottledEventsWorker;\n//# sourceMappingURL=throttled_events_worker.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Client = void 0;\nvar util_1 = require(\"./util\");\nvar store_1 = require(\"./store\");\nvar throttled_events_worker_1 = require(\"./throttled_events_worker\");\nvar defaults_1 = require(\"./defaults\");\n// Split at commas and spaces\nvar TAG_SEPARATOR = /,|\\s+/;\n// Checks for non-blank characters\nvar NOT_BLANK = /\\S/;\nvar Client = /** @class */ (function () {\n function Client(opts, transport) {\n if (opts === void 0) { opts = {}; }\n this.__pluginsLoaded = false;\n this.__store = null;\n this.__beforeNotifyHandlers = [];\n this.__beforeEventHandlers = [];\n this.__afterNotifyHandlers = [];\n this.__pendingEvents = new Set();\n this.__notifier = {\n name: '@honeybadger-io/core',\n url: 'https://github.com/honeybadger-io/honeybadger-js/tree/master/packages/core',\n version: '__VERSION__'\n };\n this.config = __assign(__assign({}, defaults_1.CONFIG), opts);\n this.__initStore();\n this.__transport = transport;\n this.__eventsWorker = new throttled_events_worker_1.ThrottledEventsWorker(this.config, this.__transport);\n this.logger = (0, util_1.logger)(this);\n this.__applyEventsEnabledShim(opts);\n }\n Client.prototype.getVersion = function () {\n return this.__notifier.version;\n };\n Client.prototype.getNotifier = function () {\n return this.__notifier;\n };\n /**\n * CAREFUL: When adding a new notifier or updating the name of an existing notifier,\n * the Honeybadger rails project may need its mappings updated.\n * See https://github.com/honeybadger-io/honeybadger/blob/master/app/presenters/breadcrumbs_presenter.rb\n * https://github.com/honeybadger-io/honeybadger/blob/master/app/models/parser/java_script.rb\n * https://github.com/honeybadger-io/honeybadger/blob/master/app/models/language.rb\n **/\n Client.prototype.setNotifier = function (notifier) {\n this.__notifier = notifier;\n };\n Client.prototype.configure = function (opts) {\n if (opts === void 0) { opts = {}; }\n for (var k in opts) {\n this.config[k] = opts[k];\n }\n this.__applyEventsEnabledShim(opts);\n this.__eventsWorker.configure(this.config);\n this.loadPlugins();\n return this;\n };\n /**\n * Backwards compatibility: `eventsEnabled: true` used to opt into console events.\n * The deprecated flag auto-enables `insights.enabled` and `insights.console`;\n * explicit user-provided insights values win over the shim.\n */\n Client.prototype.__applyEventsEnabledShim = function (opts) {\n var _a;\n if (opts.eventsEnabled !== true) {\n return;\n }\n this.logger.warn('Deprecation warning: `eventsEnabled` has been deprecated; please use `insights.enabled` and `insights.console` instead.');\n this.config.insights = __assign(__assign(__assign({}, ((_a = this.config.insights) !== null && _a !== void 0 ? _a : {})), { enabled: true, console: true }), opts.insights);\n };\n Client.prototype.loadPlugins = function () {\n var _this = this;\n var pluginsToLoad = this.__pluginsLoaded\n ? this.config.__plugins.filter(function (plugin) { return plugin.shouldReloadOnConfigure; })\n : this.config.__plugins;\n pluginsToLoad.forEach(function (plugin) { return plugin.load(_this); });\n this.__pluginsLoaded = true;\n };\n Client.prototype.__initStore = function () {\n this.__store = new store_1.GlobalStore({ context: {}, eventContext: {}, breadcrumbs: [] }, this.config.maxBreadcrumbs);\n };\n Client.prototype.beforeNotify = function (handler) {\n this.__beforeNotifyHandlers.push(handler);\n return this;\n };\n Client.prototype.beforeEvent = function (handler) {\n this.__beforeEventHandlers.push(handler);\n return this;\n };\n Client.prototype.afterNotify = function (handler) {\n this.__afterNotifyHandlers.push(handler);\n return this;\n };\n Client.prototype.setContext = function (context) {\n if (typeof context === 'object' && context != null) {\n this.__store.setContext(context);\n }\n return this;\n };\n Client.prototype.setEventContext = function (eventContext) {\n if (typeof eventContext === 'object' && eventContext != null) {\n this.__store.setEventContext(eventContext);\n }\n return this;\n };\n Client.prototype.clearEventContext = function () {\n this.__store.clearEventContext();\n return this;\n };\n Client.prototype.resetContext = function (context) {\n this.logger.warn('Deprecation warning: `Honeybadger.resetContext()` has been deprecated; please use `Honeybadger.clear()` instead.');\n this.__store.clear();\n if (typeof context === 'object' && context !== null) {\n this.__store.setContext(context);\n }\n return this;\n };\n Client.prototype.clear = function () {\n this.__store.clear();\n return this;\n };\n Client.prototype.notify = function (noticeable, name, extra) {\n var _this = this;\n if (name === void 0) { name = undefined; }\n if (extra === void 0) { extra = undefined; }\n var notice = this.makeNotice(noticeable, name, extra);\n // we need to have the source file data before the beforeNotifyHandlers,\n // in case they modify them\n var sourceCodeData = notice && notice.backtrace ? notice.backtrace.map(function (trace) { return (0, util_1.shallowClone)(trace); }) : null;\n var preConditionsResult = this.__runPreconditions(notice);\n if (preConditionsResult instanceof Error) {\n (0, util_1.runAfterNotifyHandlers)(notice, this.__afterNotifyHandlers, preConditionsResult);\n return false;\n }\n if (preConditionsResult instanceof Promise) {\n preConditionsResult.then(function (result) {\n if (result instanceof Error) {\n (0, util_1.runAfterNotifyHandlers)(notice, _this.__afterNotifyHandlers, result);\n return false;\n }\n return _this.__send(notice, sourceCodeData);\n });\n return true;\n }\n this.__send(notice, sourceCodeData).catch(function (_err) { });\n return true;\n };\n /**\n * An async version of {@link notify} that resolves only after the notice has been reported to Honeybadger.\n * Implemented using the {@link afterNotify} hook.\n * Rejects if for any reason the report failed to be reported.\n * Useful in serverless environments (AWS Lambda).\n */\n Client.prototype.notifyAsync = function (noticeable, name, extra) {\n var _this = this;\n if (name === void 0) { name = undefined; }\n if (extra === void 0) { extra = undefined; }\n return new Promise(function (resolve, reject) {\n var applyAfterNotify = function (partialNotice) {\n var originalAfterNotify = partialNotice.afterNotify;\n partialNotice.afterNotify = function (err) {\n originalAfterNotify === null || originalAfterNotify === void 0 ? void 0 : originalAfterNotify.call(_this, err);\n if (err) {\n return reject(err);\n }\n resolve();\n };\n };\n // We have to respect any afterNotify hooks that come from the arguments\n var objectToOverride;\n if (noticeable.afterNotify) {\n objectToOverride = noticeable;\n }\n else if (name && name.afterNotify) {\n objectToOverride = name;\n }\n else if (extra && extra.afterNotify) {\n objectToOverride = extra;\n }\n else if (name && typeof name === 'object') {\n objectToOverride = name;\n }\n else if (extra) {\n objectToOverride = extra;\n }\n else {\n objectToOverride = name = {};\n }\n applyAfterNotify(objectToOverride);\n _this.notify(noticeable, name, extra);\n });\n };\n Client.prototype.makeNotice = function (noticeable, name, extra) {\n if (name === void 0) { name = undefined; }\n if (extra === void 0) { extra = undefined; }\n var notice = (0, util_1.makeNotice)(noticeable);\n if (name && !(typeof name === 'object')) {\n var n = String(name);\n name = { name: n };\n }\n if (name) {\n notice = (0, util_1.mergeNotice)(notice, name);\n }\n if (typeof extra === 'object' && extra !== null) {\n notice = (0, util_1.mergeNotice)(notice, extra);\n }\n if ((0, util_1.objectIsEmpty)(notice)) {\n return null;\n }\n var context = this.__store.getContents('context');\n var noticeTags = this.__constructTags(notice.tags);\n var contextTags = this.__constructTags(context['tags']);\n var configTags = this.__constructTags(this.config.tags);\n // Turning into a Set will remove duplicates\n var tags = noticeTags.concat(contextTags).concat(configTags);\n var uniqueTags = tags.filter(function (item, index) { return tags.indexOf(item) === index; });\n notice = (0, util_1.merge)(notice, {\n name: notice.name || 'Error',\n context: (0, util_1.merge)(context, notice.context),\n projectRoot: notice.projectRoot || this.config.projectRoot,\n environment: notice.environment || this.config.environment,\n component: notice.component || this.config.component,\n action: notice.action || this.config.action,\n revision: notice.revision || this.config.revision,\n tags: uniqueTags,\n });\n // If we're passed a custom backtrace array, use it\n // Otherwise we make one.\n if (!Array.isArray(notice.backtrace) || !notice.backtrace.length) {\n if (typeof notice.stack !== 'string' || !notice.stack.trim()) {\n notice.stack = (0, util_1.generateStackTrace)();\n notice.backtrace = (0, util_1.makeBacktrace)(notice.stack, true, this.logger);\n }\n else {\n notice.backtrace = (0, util_1.makeBacktrace)(notice.stack, false, this.logger);\n }\n }\n return notice;\n };\n Client.prototype.addBreadcrumb = function (message, opts) {\n if (!this.config.breadcrumbsEnabled) {\n return;\n }\n opts = opts || {};\n var metadata = (0, util_1.shallowClone)(opts.metadata);\n var category = opts.category || 'custom';\n var timestamp = new Date().toISOString();\n this.__store.addBreadcrumb({\n category: category,\n message: message,\n metadata: metadata,\n timestamp: timestamp\n });\n return this;\n };\n /**\n * @deprecated Use {@link event} instead.\n */\n Client.prototype.logEvent = function (data) {\n (0, util_1.logDeprecatedMethod)(this.logger, 'Honeybadger.logEvent', 'Honeybadger.event');\n this.event('log', data);\n };\n Client.prototype.event = function (type, data) {\n var _this = this;\n var _a;\n if (typeof type === 'object') {\n data = type;\n type = (_a = type['event_type']) !== null && _a !== void 0 ? _a : undefined;\n }\n var eventContext = this.__store.getContents('eventContext') || {};\n var payload = __assign(__assign({ event_type: type, ts: new Date().toISOString() }, eventContext), data);\n // Track in-flight handler chains so flushAsync() can await them before\n // delegating to the events logger; otherwise a caller that awaits flushAsync()\n // immediately after event() may flush before the payload enters the queue.\n var inFlight = (0, util_1.runBeforeEventHandlers)(payload, this.__beforeEventHandlers, this.logger)\n .then(function (shouldSend) {\n var _a, _b;\n if (!shouldSend) {\n _this.logger.debug('skipping event: beforeEvent handler returned false');\n return;\n }\n var sampleRate = (_b = (_a = _this.config.events) === null || _a === void 0 ? void 0 : _a.sampleRatePercentage) !== null && _b !== void 0 ? _b : 100;\n if (!(0, util_1.shouldSampleEvent)(payload, sampleRate)) {\n _this.logger.debug('skipping event: dropped by sampleRatePercentage');\n return;\n }\n delete payload._hb;\n _this.__eventsWorker.log(payload);\n })\n .catch(function (err) {\n // should not happen, because each handler is wrapped with a try/catch\n _this.logger.error('beforeEvent handler chain failed; dropping event', err);\n })\n .finally(function () {\n _this.__pendingEvents.delete(inFlight);\n });\n this.__pendingEvents.add(inFlight);\n };\n /**\n * This method currently flushes the event (Insights) queue.\n * In the future, it should also flush the error queue (assuming an error throttler is implemented).\n */\n Client.prototype.flushAsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.__pendingEvents.size > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.allSettled(Array.from(this.__pendingEvents))];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, this.__eventsWorker.flushAsync()];\n }\n });\n });\n };\n Client.prototype.__getBreadcrumbs = function () {\n return this.__store.getContents('breadcrumbs').slice();\n };\n Client.prototype.__getContext = function () {\n return this.__store.getContents('context');\n };\n Client.prototype.__developmentMode = function () {\n if (this.config.reportData === true) {\n return false;\n }\n return (this.config.environment && this.config.developmentEnvironments.includes(this.config.environment));\n };\n Client.prototype.__buildPayload = function (notice) {\n var headers = (0, util_1.filter)(notice.headers, this.config.filters) || {};\n var cgiData = (0, util_1.filter)(__assign(__assign({}, notice.cgiData), (0, util_1.formatCGIData)(headers, 'HTTP_')), this.config.filters);\n return {\n notifier: this.__notifier,\n breadcrumbs: {\n enabled: !!this.config.breadcrumbsEnabled,\n trail: notice.__breadcrumbs || []\n },\n error: {\n class: notice.name,\n message: notice.message,\n backtrace: notice.backtrace,\n fingerprint: notice.fingerprint,\n tags: notice.tags,\n causes: (0, util_1.getCauses)(notice, this.logger),\n },\n request: {\n url: (0, util_1.filterUrl)(notice.url, this.config.filters),\n component: notice.component,\n action: notice.action,\n context: notice.context,\n cgi_data: cgiData,\n params: (0, util_1.filter)(notice.params, this.config.filters) || {},\n session: (0, util_1.filter)(notice.session, this.config.filters) || {}\n },\n server: {\n project_root: notice.projectRoot,\n environment_name: notice.environment,\n revision: notice.revision,\n hostname: this.config.hostname,\n time: new Date().toUTCString()\n },\n details: notice.details || {}\n };\n };\n Client.prototype.__constructTags = function (tags) {\n if (!tags) {\n return [];\n }\n return tags.toString().split(TAG_SEPARATOR).filter(function (tag) { return NOT_BLANK.test(tag); });\n };\n Client.prototype.__runPreconditions = function (notice) {\n var _this = this;\n var preConditionError = null;\n if (!notice) {\n this.logger.debug('failed to build error report');\n preConditionError = new Error('failed to build error report');\n }\n if (this.config.reportData === false) {\n this.logger.debug('skipping error report: honeybadger.js is disabled', notice);\n preConditionError = new Error('honeybadger.js is disabled');\n }\n if (this.__developmentMode()) {\n this.logger.log('honeybadger.js is in development mode; the following error report will be sent in production.', notice);\n preConditionError = new Error('honeybadger.js is in development mode');\n }\n if (!this.config.apiKey) {\n this.logger.warn('could not send error report: no API key has been configured', notice);\n preConditionError = new Error('missing API key');\n }\n var beforeNotifyResult = (0, util_1.runBeforeNotifyHandlers)(notice, this.__beforeNotifyHandlers);\n if (!preConditionError && !beforeNotifyResult.result) {\n this.logger.debug('skipping error report: one or more beforeNotify handlers returned false', notice);\n preConditionError = new Error('beforeNotify handlers returned false');\n }\n if (beforeNotifyResult.results.length && beforeNotifyResult.results.some(function (result) { return result instanceof Promise; })) {\n return Promise.allSettled(beforeNotifyResult.results)\n .then(function (results) {\n if (!preConditionError && (results.some(function (result) { return result.status === 'rejected' || result.value === false; }))) {\n _this.logger.debug('skipping error report: one or more beforeNotify handlers returned false', notice);\n preConditionError = new Error('beforeNotify handlers (async) returned false');\n }\n if (preConditionError) {\n return preConditionError;\n }\n });\n }\n return preConditionError;\n };\n Client.prototype.__send = function (notice, originalBacktrace) {\n var _this = this;\n if (this.config.breadcrumbsEnabled) {\n this.addBreadcrumb('Honeybadger Notice', {\n category: 'notice',\n metadata: {\n message: notice.message,\n name: notice.name,\n stack: notice.stack\n }\n });\n notice.__breadcrumbs = this.__store.getContents('breadcrumbs');\n }\n else {\n notice.__breadcrumbs = [];\n }\n return (0, util_1.getSourceForBacktrace)(originalBacktrace, this.__getSourceFileHandler)\n .then(function (sourcePerTrace) { return __awaiter(_this, void 0, void 0, function () {\n var payload;\n return __generator(this, function (_a) {\n sourcePerTrace.forEach(function (source, index) {\n notice.backtrace[index].source = source;\n });\n payload = this.__buildPayload(notice);\n return [2 /*return*/, this.__transport\n .send({\n headers: {\n 'X-API-Key': this.config.apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'text/json, application/json'\n },\n method: 'POST',\n endpoint: (0, util_1.endpoint)(this.config.endpoint, '/v1/notices/js'),\n maxObjectDepth: this.config.maxObjectDepth,\n logger: this.logger,\n }, payload)];\n });\n }); })\n .then(function (res) {\n if (res.statusCode !== 201) {\n (0, util_1.runAfterNotifyHandlers)(notice, _this.__afterNotifyHandlers, new Error(\"Bad HTTP response: \".concat(res.statusCode)));\n _this.logger.warn(\"Error report failed: unknown response from server. code=\".concat(res.statusCode));\n return false;\n }\n var uuid = JSON.parse(res.body).id;\n (0, util_1.runAfterNotifyHandlers)((0, util_1.merge)(notice, {\n id: uuid\n }), _this.__afterNotifyHandlers);\n var noticeUrl = (0, util_1.endpoint)(_this.config.appEndpoint, \"notice/\".concat(uuid));\n _this.logger.info(\"Error report sent \\u26A1 \".concat(noticeUrl));\n return true;\n })\n .catch(function (err) {\n _this.logger.error('Error report failed: an unknown error occurred.', \"message=\".concat(err.message));\n (0, util_1.runAfterNotifyHandlers)(notice, _this.__afterNotifyHandlers, err);\n return false;\n });\n };\n return Client;\n}());\nexports.Client = Client;\n//# sourceMappingURL=client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Plugins = exports.Defaults = exports.Util = exports.Types = exports.Client = void 0;\nvar console_events_1 = __importDefault(require(\"./plugins/console_events\"));\nvar client_1 = require(\"./client\");\nObject.defineProperty(exports, \"Client\", { enumerable: true, get: function () { return client_1.Client; } });\n__exportStar(require(\"./store\"), exports);\nexports.Types = __importStar(require(\"./types\"));\nexports.Util = __importStar(require(\"./util\"));\nexports.Defaults = __importStar(require(\"./defaults\"));\nexports.Plugins = {\n consoleEvents: console_events_1.default,\n /**\n * @deprecated Use `consoleEvents` instead. Kept as an alias for backwards\n * compatibility and will be removed in a future major version.\n */\n events: console_events_1.default,\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.preferCatch = exports.encodeCookie = exports.decodeCookie = exports.localURLPathname = exports.parseURL = exports.nativeFetch = exports.stringTextOfElement = exports.stringSelectorOfElement = exports.stringNameOfElement = void 0;\nvar core_1 = require(\"@honeybadger-io/core\");\nvar globalThisOrWindow = core_1.Util.globalThisOrWindow;\nvar BREADCRUMBS_SELECTOR_ATTRIBUTES = core_1.Defaults.BREADCRUMBS_SELECTOR_ATTRIBUTES;\n/**\n * Converts an HTMLElement into a human-readable string.\n * @param {!HTMLElement} element\n * @return {string}\n */\nfunction cleanNameOfElement(element, attributes) {\n if (!Array.isArray(attributes)) {\n return undefined;\n }\n if (!element || typeof element.getAttribute !== 'function') {\n return undefined;\n }\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var attr = attributes_1[_i];\n if (typeof attr !== 'string' || attr.length === 0) {\n continue;\n }\n var value = element.getAttribute(attr);\n if (value && value.trim()) {\n var normalized = value.trim().replace(/\\s+/g, ' ');\n return truncate(normalized, 100);\n }\n }\n return undefined;\n}\nfunction stringNameOfElement(element, attributes) {\n if (attributes === void 0) { attributes = BREADCRUMBS_SELECTOR_ATTRIBUTES; }\n if (!element || !element.tagName) {\n return '';\n }\n var name = element.tagName.toLowerCase();\n // Ignore the root <html> element in selectors and events.\n if (name === 'html') {\n return '';\n }\n var cleanName = cleanNameOfElement(element, attributes);\n if (cleanName) {\n return cleanName;\n }\n if (element.id) {\n name += \"#\".concat(element.id);\n }\n var stringClassNames = element.getAttribute('class');\n if (stringClassNames) {\n stringClassNames.split(/\\s+/).forEach(function (className) {\n name += \".\".concat(className);\n });\n }\n ['alt', 'name', 'title', 'type'].forEach(function (attrName) {\n var attr = element.getAttribute(attrName);\n if (attr) {\n name += \"[\".concat(attrName, \"=\\\"\").concat(attr, \"\\\"]\");\n }\n });\n var siblings = getSiblings(element);\n if (siblings.length > 1) {\n name += \":nth-child(\".concat(Array.prototype.indexOf.call(siblings, element) + 1, \")\");\n }\n return name;\n}\nexports.stringNameOfElement = stringNameOfElement;\nfunction stringSelectorOfElement(element, attributes) {\n if (attributes === void 0) { attributes = BREADCRUMBS_SELECTOR_ATTRIBUTES; }\n var name = stringNameOfElement(element, attributes);\n // A named element anchors the selector: stop walking up.\n if (name && cleanNameOfElement(element, attributes)) {\n return name;\n }\n if (element.parentNode && element.parentNode.tagName) {\n var parentName = stringSelectorOfElement(element.parentNode, attributes);\n if (parentName.length > 0) {\n return \"\".concat(parentName, \" > \").concat(name);\n }\n }\n return name;\n}\nexports.stringSelectorOfElement = stringSelectorOfElement;\nfunction stringTextOfElement(element) {\n var text = element.textContent || element.innerText || '';\n if (!text && (element.type === 'submit' || element.type === 'button')) {\n text = element.value;\n }\n return truncate(text.trim(), 300);\n}\nexports.stringTextOfElement = stringTextOfElement;\nfunction nativeFetch() {\n var global = globalThisOrWindow();\n if (!global.fetch) {\n return false;\n }\n if (isNative(global.fetch)) {\n return true;\n }\n if (typeof document === 'undefined') {\n return false;\n }\n // If fetch isn't native, it may be wrapped by someone else. Try to get\n // a pristine function from an iframe.\n try {\n var sandbox = document.createElement('iframe');\n sandbox.style.display = 'none';\n document.head.appendChild(sandbox);\n var result = sandbox.contentWindow.fetch && isNative(sandbox.contentWindow.fetch);\n document.head.removeChild(sandbox);\n return result;\n }\n catch (err) {\n if (console && console.warn) {\n console.warn('failed to detect native fetch via iframe: ' + err);\n }\n }\n return false;\n}\nexports.nativeFetch = nativeFetch;\nfunction isNative(func) {\n return func.toString().indexOf('native') !== -1;\n}\nfunction parseURL(url) {\n // Regexp: https://tools.ietf.org/html/rfc3986#appendix-B\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/) || {};\n return {\n protocol: match[2],\n host: match[4],\n pathname: match[5]\n };\n}\nexports.parseURL = parseURL;\nfunction localURLPathname(url) {\n var parsed = parseURL(url);\n var parsedDocURL = parseURL(document.URL);\n // URL must be relative\n if (!parsed.host || !parsed.protocol) {\n return parsed.pathname;\n }\n // Same domain\n if (parsed.protocol === parsedDocURL.protocol && parsed.host === parsedDocURL.host) {\n return parsed.pathname;\n }\n // x-domain\n return \"\".concat(parsed.protocol, \"://\").concat(parsed.host).concat(parsed.pathname);\n}\nexports.localURLPathname = localURLPathname;\nfunction decodeCookie(string) {\n var result = {};\n string.split(/[;,]\\s?/).forEach(function (pair) {\n var _a = pair.split('=', 2), key = _a[0], value = _a[1];\n result[key] = value;\n });\n return result;\n}\nexports.decodeCookie = decodeCookie;\nfunction encodeCookie(object) {\n if (typeof object !== 'object') {\n return undefined;\n }\n var cookies = [];\n for (var k in object) {\n cookies.push(k + '=' + object[k]);\n }\n return cookies.join(';');\n}\nexports.encodeCookie = encodeCookie;\n// Helpers\nfunction getSiblings(element) {\n try {\n var nodes = element.parentNode.childNodes;\n var siblings_1 = [];\n Array.prototype.forEach.call(nodes, function (node) {\n if (node.tagName && node.tagName === element.tagName) {\n siblings_1.push(node);\n }\n });\n return siblings_1;\n }\n catch (e) {\n return [];\n }\n}\nfunction truncate(string, length) {\n if (string.length > length) {\n string = string.substr(0, length) + '...';\n }\n return string;\n}\n// Used to decide which error handling method to use when wrapping async\n// handlers: try/catch, or `window.onerror`. When available, `window.onerror`\n// will provide more information in modern browsers.\nexports.preferCatch = (function () {\n var preferCatch = true;\n // In case we're in an environment without access to \"window\", lets make sure theres a window.\n if (typeof window === 'undefined')\n return preferCatch;\n // IE < 10\n if (!window.atob) {\n preferCatch = false;\n }\n // Modern browsers support the full ErrorEvent API\n // See https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent\n if (window.ErrorEvent) {\n try {\n if ((new window.ErrorEvent('')).colno === 0) {\n preferCatch = false;\n }\n // eslint-disable-next-line no-empty\n }\n catch (_e) { }\n }\n return preferCatch;\n})();\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.onError = exports.ignoreNextOnError = void 0;\n/* eslint-disable prefer-rest-params */\nvar core_1 = require(\"@honeybadger-io/core\");\nvar instrument = core_1.Util.instrument, makeNotice = core_1.Util.makeNotice, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nvar ignoreOnError = 0;\nvar currentTimeout;\nfunction ignoreNextOnError() {\n ignoreOnError += 1;\n clearTimeout(currentTimeout);\n currentTimeout = setTimeout(function () {\n ignoreOnError = 0;\n });\n}\nexports.ignoreNextOnError = ignoreNextOnError;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction onError(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n instrument(_window, 'onerror', function (original) {\n var onerror = function (msg, url, line, col, err) {\n client.logger.debug('window.onerror callback invoked', arguments);\n if (ignoreOnError > 0) {\n client.logger.debug('Ignoring window.onerror (error likely reported earlier)', arguments);\n ignoreOnError -= 1;\n return;\n }\n // See https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers/onerror#Notes\n if (line === 0 && /Script error\\.?/.test(msg)) {\n if (client.config.enableUncaught) {\n // Log only if the user wants to report uncaught errors\n client.logger.warn('Ignoring cross-domain script error: enable CORS to track these types of errors', arguments);\n }\n return;\n }\n var notice = makeNotice(err);\n if (!notice.name) {\n notice.name = 'window.onerror';\n }\n if (!notice.message) {\n notice.message = msg;\n }\n if (!notice.stack) {\n // Simulate v8 stack\n notice.stack = [notice.message, '\\n at ? (', url || 'unknown', ':', line || 0, ':', col || 0, ')'].join('');\n }\n client.addBreadcrumb((notice.name === 'window.onerror' || !notice.name) ? 'window.onerror' : \"window.onerror: \".concat(notice.name), {\n category: 'error',\n metadata: {\n name: notice.name,\n message: notice.message,\n stack: notice.stack\n }\n });\n if (client.config.enableUncaught) {\n client.notify(notice);\n }\n };\n return function (msg, url, line, col, err) {\n onerror(msg, url, line, col, err);\n if (typeof original === 'function') {\n return original.apply(_window, arguments);\n }\n return false;\n };\n });\n }\n };\n}\nexports.onError = onError;\n//# sourceMappingURL=onerror.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable prefer-rest-params */\nvar core_1 = require(\"@honeybadger-io/core\");\nvar instrument = core_1.Util.instrument, makeNotice = core_1.Util.makeNotice, globalThisOrWindow = core_1.Util.globalThisOrWindow;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction default_1(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n if (!client.config.enableUnhandledRejection) {\n return;\n }\n instrument(_window, 'onunhandledrejection', function (original) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event\n function onunhandledrejection(promiseRejectionEvent) {\n var _a;\n client.logger.debug('window.onunhandledrejection callback invoked', arguments);\n if (!client.config.enableUnhandledRejection) {\n return;\n }\n var reason = promiseRejectionEvent.reason;\n if (reason instanceof Error) {\n var notice = makeNotice(reason);\n if (!notice.stack) {\n notice.stack = \"\".concat(reason.message, \"\\n at ? (unknown:0)\");\n }\n notice.message = \"UnhandledPromiseRejectionWarning: \".concat(reason);\n client.addBreadcrumb(\"window.onunhandledrejection: \".concat(notice.name), {\n category: 'error',\n metadata: { name: notice.name, message: notice.message, stack: notice.stack }\n });\n client.notify(notice);\n return;\n }\n var message;\n if (typeof reason === 'string') {\n message = reason;\n }\n else {\n try {\n message = (_a = JSON.stringify(reason)) !== null && _a !== void 0 ? _a : 'Unspecified reason';\n }\n catch (_err) {\n // Circular structures (e.g. DOM nodes with React fiber expandos) can't be stringified\n var name_1 = reason != null && reason.constructor ? reason.constructor.name : null;\n message = name_1 ? \"[\".concat(name_1, \"]\") : Object.prototype.toString.call(reason);\n }\n }\n client.notify({\n name: 'window.onunhandledrejection',\n message: \"UnhandledPromiseRejectionWarning: \".concat(message)\n });\n }\n return function (promiseRejectionEvent) {\n onunhandledrejection(promiseRejectionEvent);\n if (typeof original === 'function') {\n original.apply(this, arguments);\n }\n };\n });\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=onunhandledrejection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable prefer-rest-params */\nvar core_1 = require(\"@honeybadger-io/core\");\nvar util_1 = require(\"../util\");\nvar sanitize = core_1.Util.sanitize, instrument = core_1.Util.instrument, instrumentConsole = core_1.Util.instrumentConsole, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nfunction default_1(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n function breadcrumbsEnabled(type) {\n if (client.config.breadcrumbsEnabled === true) {\n return true;\n }\n if (type) {\n return client.config.breadcrumbsEnabled[type] === true;\n }\n return client.config.breadcrumbsEnabled !== false;\n }\n // Breadcrumbs: instrument console\n (function () {\n if (!breadcrumbsEnabled('console')) {\n return;\n }\n function inspectArray(obj) {\n if (!Array.isArray(obj)) {\n return '';\n }\n return obj.map(function (value) {\n try {\n return String(value);\n }\n catch (e) {\n return '[unknown]';\n }\n }).join(' ');\n }\n instrumentConsole(_window, function (level, args) {\n var message = inspectArray(args);\n var opts = {\n category: 'log',\n metadata: {\n level: level,\n arguments: sanitize(args, 3)\n }\n };\n client.addBreadcrumb(message, opts);\n });\n })();\n // Breadcrumbs: instrument click events\n (function () {\n if (!breadcrumbsEnabled('dom')) {\n return;\n }\n if (typeof _window.addEventListener !== 'function') {\n return;\n }\n _window.addEventListener('click', function (event) {\n var message, selector, text;\n try {\n var attributes = client.config.breadcrumbsSelectorAttributes;\n message = (0, util_1.stringNameOfElement)(event.target, attributes);\n selector = (0, util_1.stringSelectorOfElement)(event.target, attributes);\n text = (0, util_1.stringTextOfElement)(event.target);\n }\n catch (e) {\n message = 'UI Click';\n selector = '[unknown]';\n text = '[unknown]';\n }\n // There's nothing to display\n if (message.length === 0) {\n return;\n }\n client.addBreadcrumb(message, {\n category: 'ui.click',\n metadata: {\n selector: selector,\n text: text,\n event: event\n }\n });\n }, _window.location ? true : false); // In CloudFlare workers useCapture must be false. window.location is a hacky way to detect it.\n })();\n // Breadcrumbs: instrument XMLHttpRequest\n (function () {\n if (!breadcrumbsEnabled('network')) {\n return;\n }\n // Some environments may not support XMLHttpRequest.\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n // -- On xhr.open: capture initial metadata\n instrument(XMLHttpRequest.prototype, 'open', function (original) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var rawUrl = arguments[1];\n // in case of url being URL object (which is valid input) we need to stringify it\n var url = typeof rawUrl === 'string' ? rawUrl : String(rawUrl);\n var method = typeof arguments[0] === 'string' ? arguments[0].toUpperCase() : arguments[0];\n var message = \"\".concat(method, \" \").concat((0, util_1.localURLPathname)(url));\n this.__hb_xhr = {\n type: 'xhr',\n method: method,\n url: url,\n message: message\n };\n if (typeof original === 'function') {\n original.apply(xhr, arguments);\n }\n };\n });\n // -- On xhr.send: set up xhr.onreadystatechange to report breadcrumb\n instrument(XMLHttpRequest.prototype, 'send', function (original) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n function onreadystatechangeHandler() {\n if (xhr.readyState === 4) {\n var message = void 0;\n if (xhr.__hb_xhr) {\n xhr.__hb_xhr.status_code = xhr.status;\n message = xhr.__hb_xhr.message;\n delete xhr.__hb_xhr.message;\n }\n client.addBreadcrumb(message || 'XMLHttpRequest', {\n category: 'request',\n metadata: xhr.__hb_xhr\n });\n }\n }\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n instrument(xhr, 'onreadystatechange', function (original) {\n return function () {\n onreadystatechangeHandler();\n if (typeof original === 'function') {\n // eslint-disable-next-line prefer-rest-params\n original.apply(this, arguments);\n }\n };\n });\n }\n else {\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line prefer-rest-params\n original.apply(xhr, arguments);\n }\n };\n });\n })();\n // Breadcrumbs: instrument fetch\n (function () {\n if (!breadcrumbsEnabled('network')) {\n return;\n }\n if (!(0, util_1.nativeFetch)()) {\n // Polyfills use XHR.\n return;\n }\n instrument(_window, 'fetch', function (original) {\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var input = arguments[0];\n var method = 'GET';\n var url;\n if (typeof input === 'string') {\n url = input;\n }\n else if ('Request' in _window && input instanceof Request) {\n url = input.url;\n if (input.method) {\n method = input.method;\n }\n }\n else {\n url = String(input);\n }\n if (arguments[1] && arguments[1].method) {\n method = arguments[1].method;\n }\n if (typeof method === 'string') {\n method = method.toUpperCase();\n }\n // localURLPathname cant be constructed for CF workers due to reliance on \"document\".\n var message = \"\".concat(method, \" \").concat(typeof document === 'undefined' ? url : (0, util_1.localURLPathname)(url));\n var metadata = {\n type: 'fetch',\n method: method,\n url: url\n };\n return original\n .apply(this, arguments)\n .then(function (response) {\n metadata['status_code'] = response.status;\n client.addBreadcrumb(message, {\n category: 'request',\n metadata: metadata\n });\n return response;\n })\n .catch(function (error) {\n client.addBreadcrumb('fetch error', {\n category: 'error',\n metadata: metadata\n });\n throw error;\n });\n };\n });\n })();\n // Breadcrumbs: instrument navigation\n (function () {\n if (!breadcrumbsEnabled('navigation')) {\n return;\n }\n if (_window.location == null) {\n // Most likely in a CF worker, we should be listening to fetch requests instead.\n return;\n }\n // The last known href of the current page\n var lastHref = _window.location.href;\n function recordUrlChange(from, to) {\n lastHref = to;\n client.addBreadcrumb('Page changed', {\n category: 'navigation',\n metadata: {\n from: from,\n to: to\n }\n });\n }\n if (typeof addEventListener === 'function') {\n addEventListener('popstate', function (_event) {\n recordUrlChange(lastHref, _window.location.href);\n });\n }\n if (typeof _window.history === 'undefined') {\n return;\n }\n // https://developer.mozilla.org/en-US/docs/Web/API/History/pushState\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n function historyWrapper(original) {\n return function () {\n var url = arguments.length > 2 ? arguments[2] : undefined;\n if (url) {\n recordUrlChange(lastHref, String(url));\n }\n return original.apply(this, arguments);\n };\n }\n instrument(_window.history, 'pushState', historyWrapper);\n instrument(_window.history, 'replaceState', historyWrapper);\n })();\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=breadcrumbs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable prefer-rest-params */\nvar core_1 = require(\"@honeybadger-io/core\");\nvar instrument = core_1.Util.instrument, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nfunction default_1(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n // Wrap timers\n (function () {\n function instrumentTimer(wrapOpts) {\n return function (original) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout\n return function (func, delay) {\n if (typeof func === 'function') {\n var args_1 = Array.prototype.slice.call(arguments, 2);\n func = client.__wrap(func, wrapOpts);\n return original(function () {\n func.apply(void 0, args_1);\n }, delay);\n }\n else {\n return original(func, delay);\n }\n };\n };\n }\n instrument(_window, 'setTimeout', instrumentTimer({ component: 'setTimeout' }));\n instrument(_window, 'setInterval', instrumentTimer({ component: 'setInterval' }));\n })();\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=timers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@honeybadger-io/core\");\nvar instrument = core_1.Util.instrument, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nfunction default_1(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n // Wrap event listeners\n // Event targets borrowed from bugsnag-js:\n // See https://github.com/bugsnag/bugsnag-js/blob/d55af916a4d3c7757f979d887f9533fe1a04cc93/src/bugsnag.js#L542\n var targets = ['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'];\n targets.forEach(function (prop) {\n var prototype = _window[prop] && _window[prop].prototype;\n if (prototype && Object.prototype.hasOwnProperty.call(prototype, 'addEventListener')) {\n instrument(prototype, 'addEventListener', function (original) {\n var wrapOpts = { component: \"\".concat(prop, \".prototype.addEventListener\") };\n // See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n return function (type, listener, useCapture, wantsUntrusted) {\n try {\n if (listener && listener.handleEvent != null) {\n listener.handleEvent = client.__wrap(listener.handleEvent, wrapOpts);\n }\n }\n catch (e) {\n // Ignore 'Permission denied to access property \"handleEvent\"' errors.\n client.logger.error(e);\n }\n return original.call(this, type, client.__wrap(listener, wrapOpts), useCapture, wantsUntrusted);\n };\n });\n instrument(prototype, 'removeEventListener', function (original) {\n return function (type, listener, useCapture, wantsUntrusted) {\n original.call(this, type, listener, useCapture, wantsUntrusted);\n return original.call(this, type, client.__wrap(listener), useCapture, wantsUntrusted);\n };\n });\n }\n });\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=event_listeners.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserTransport = void 0;\nvar core_1 = require(\"@honeybadger-io/core\");\nvar sanitize = core_1.Util.sanitize, globalThisOrWindow = core_1.Util.globalThisOrWindow;\n/**\n * Helper function to get typesafe Object.entries()\n * https://twitter.com/mattpocockuk/status/1502264005251018754?lang=en\n */\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nvar BrowserTransport = /** @class */ (function () {\n function BrowserTransport(headers) {\n if (headers === void 0) { headers = {}; }\n this.headers = {};\n this.headers = headers;\n }\n BrowserTransport.prototype.defaultHeaders = function () {\n return this.headers;\n };\n BrowserTransport.prototype.send = function (options, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var headerArray, headers, requestInit, response, body;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n headerArray = options.headers ? objectEntries(options.headers) : [];\n headers = this.defaultHeaders();\n headerArray.forEach(function (_a) {\n var key = _a[0], value = _a[1];\n if (key != null && value != null) {\n headers[String(key)] = String(value);\n }\n });\n requestInit = {\n method: options.method,\n headers: headers\n };\n // GET methods cannot have a body.\n if (options.method === 'POST' && payload) {\n requestInit.body = typeof payload === 'string' ? payload : JSON.stringify(sanitize(payload, options.maxObjectDepth));\n }\n return [4 /*yield*/, globalThisOrWindow().fetch(options.endpoint, requestInit)];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.text()];\n case 2:\n body = _a.sent();\n return [2 /*return*/, Promise.resolve({ statusCode: response.status, body: body })];\n }\n });\n });\n };\n return BrowserTransport;\n}());\nexports.BrowserTransport = BrowserTransport;\n//# sourceMappingURL=transport.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserFeedbackForm = void 0;\nvar core_1 = require(\"@honeybadger-io/core\");\nvar globalThisOrWindow = core_1.Util.globalThisOrWindow;\nvar BrowserFeedbackForm = /** @class */ (function () {\n function BrowserFeedbackForm(config, logger, scriptUrl) {\n this.config = config;\n this.logger = logger;\n this.scriptUrl = scriptUrl;\n }\n /* ROLLUP_STRIP_CODE_CHROME_EXTENSION_START */\n BrowserFeedbackForm.prototype.appendUserFeedbackTag = function (window, options) {\n if (options === void 0) { options = {}; }\n var script = window.document.createElement('script');\n script.setAttribute('src', this.scriptUrl);\n script.setAttribute('async', 'true');\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n (global.document.head || global.document.body).appendChild(script);\n };\n BrowserFeedbackForm.prototype.isUserFeedbackUrlAlreadyVisible = function () {\n var global = globalThisOrWindow();\n var feedbackScriptUrl = this.scriptUrl;\n for (var i = 0; i < global.document.scripts.length; i++) {\n var script = global.document.scripts[i];\n if (script.src === feedbackScriptUrl) {\n return true;\n }\n }\n return false;\n };\n /* ROLLUP_STRIP_CODE_CHROME_EXTENSION_END */\n BrowserFeedbackForm.prototype.show = function (lastNoticeId, options) {\n if (options === void 0) { options = {}; }\n if (typeof (this.appendUserFeedbackTag) !== 'function') {\n this.logger.debug('Feedback form is not available in this environment');\n return;\n }\n if (!this.config || !this.config.apiKey) {\n this.logger.debug('Client not initialized');\n return;\n }\n if (!lastNoticeId) {\n this.logger.debug(\"Can't show user feedback form without a notice already reported\");\n return;\n }\n var global = globalThisOrWindow();\n if (typeof global.document === 'undefined') {\n this.logger.debug('global.document is undefined. Cannot attach script');\n return;\n }\n if (this.isUserFeedbackUrlAlreadyVisible()) {\n this.logger.debug('User feedback form is already visible');\n return;\n }\n global['honeybadgerUserFeedbackOptions'] = __assign(__assign({}, options), { apiKey: this.config.apiKey, endpoint: this.config.userFeedbackEndpoint, noticeId: lastNoticeId });\n this.appendUserFeedbackTag(global, options);\n };\n return BrowserFeedbackForm;\n}());\nexports.BrowserFeedbackForm = BrowserFeedbackForm;\n//# sourceMappingURL=feedback-form.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Types = exports.getUserFeedbackScriptUrl = void 0;\nvar core_1 = require(\"@honeybadger-io/core\");\nvar util_1 = require(\"./browser/util\");\nvar onerror_1 = require(\"./browser/integrations/onerror\");\nvar onunhandledrejection_1 = __importDefault(require(\"./browser/integrations/onunhandledrejection\"));\nvar breadcrumbs_1 = __importDefault(require(\"./browser/integrations/breadcrumbs\"));\nvar timers_1 = __importDefault(require(\"./browser/integrations/timers\"));\nvar event_listeners_1 = __importDefault(require(\"./browser/integrations/event_listeners\"));\nvar transport_1 = require(\"./browser/transport\");\nvar feedback_form_1 = require(\"./browser/feedback-form\");\nvar merge = core_1.Util.merge, filter = core_1.Util.filter, objectIsExtensible = core_1.Util.objectIsExtensible, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nvar getProjectRoot = function () {\n var global = globalThisOrWindow();\n var projectRoot = '';\n // Cloudflare workers do not have access to location API.\n if (global.location != null) {\n projectRoot = global.location.protocol + '//' + global.location.host;\n }\n return projectRoot;\n};\nvar getUserFeedbackScriptUrl = function (version) {\n var majorMinorVersion = version.split('.').slice(0, 2).join('.');\n return \"https://js.honeybadger.io/v\".concat(majorMinorVersion, \"/honeybadger-feedback-form.js\");\n};\nexports.getUserFeedbackScriptUrl = getUserFeedbackScriptUrl;\nvar Honeybadger = /** @class */ (function (_super) {\n __extends(Honeybadger, _super);\n function Honeybadger(opts) {\n if (opts === void 0) { opts = {}; }\n var _this = _super.call(this, __assign({ userFeedbackEndpoint: 'https://api.honeybadger.io/v2/feedback', async: true, maxErrors: null, ignoreBrowserExtensionErrors: false, breadcrumbsSelectorAttributes: core_1.Defaults.BREADCRUMBS_SELECTOR_ATTRIBUTES, projectRoot: getProjectRoot() }, opts), new transport_1.BrowserTransport({\n 'User-Agent': userAgent(),\n })) || this;\n /** @internal */\n _this.__errorsSent = 0;\n /** @internal */\n _this.__lastWrapErr = undefined;\n /** @internal */\n _this.__lastNoticeId = undefined;\n /** @internal */\n _this.__beforeNotifyHandlers = [\n function (notice) {\n if (_this.config.ignoreBrowserExtensionErrors &&\n notice && notice.backtrace && notice.backtrace.length) {\n var topFrame = notice.backtrace[0];\n if (topFrame && typeof topFrame.file === 'string' &&\n (topFrame.file.startsWith('chrome-extension://') ||\n topFrame.file.startsWith('moz-extension://') ||\n topFrame.file.startsWith('safari-extension://') ||\n topFrame.file.startsWith('safari-web-extension://'))) {\n _this.logger.debug('Dropping notice: browser extension error', notice);\n return false;\n }\n }\n if (_this.__exceedsMaxErrors()) {\n _this.logger.debug('Dropping notice: max errors exceeded', notice);\n return false;\n }\n if (notice && !notice.url && typeof document !== 'undefined') {\n notice.url = document.URL;\n }\n _this.__incrementErrorsCount();\n return true;\n }\n ];\n _this.__afterNotifyHandlers = [\n function (_error, notice) {\n if (notice) {\n _this.__lastNoticeId = notice.id;\n }\n }\n ];\n return _this;\n }\n Honeybadger.prototype.configure = function (opts) {\n if (opts === void 0) { opts = {}; }\n return _super.prototype.configure.call(this, opts);\n };\n Honeybadger.prototype.resetMaxErrors = function () {\n return (this.__errorsSent = 0);\n };\n Honeybadger.prototype.factory = function (opts) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var clone = new Honeybadger(opts);\n clone.setNotifier(this.getNotifier());\n return clone;\n };\n Honeybadger.prototype.checkIn = function (_id) {\n throw new Error('Honeybadger.checkIn() is not supported on the browser');\n };\n Honeybadger.prototype.showUserFeedbackForm = function (options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var form;\n return __generator(this, function (_a) {\n form = new feedback_form_1.BrowserFeedbackForm(this.config, this.logger, this.getUserFeedbackSubmitUrl());\n form.show(this.__lastNoticeId, options);\n return [2 /*return*/];\n });\n });\n };\n Honeybadger.prototype.getUserFeedbackSubmitUrl = function () {\n return (0, exports.getUserFeedbackScriptUrl)(this.getVersion());\n };\n /** @internal */\n Honeybadger.prototype.__buildPayload = function (notice) {\n var cgiData = {\n HTTP_USER_AGENT: undefined,\n HTTP_REFERER: undefined,\n HTTP_COOKIE: undefined\n };\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\n cgiData.HTTP_USER_AGENT = navigator.userAgent;\n }\n if (typeof document !== 'undefined' && document.referrer.match(/\\S/)) {\n cgiData.HTTP_REFERER = document.referrer;\n }\n var cookiesObject;\n if (typeof notice.cookies === 'string') {\n cookiesObject = (0, util_1.decodeCookie)(notice.cookies);\n }\n else {\n cookiesObject = notice.cookies;\n }\n if (cookiesObject) {\n cgiData.HTTP_COOKIE = (0, util_1.encodeCookie)(filter(cookiesObject, this.config.filters));\n }\n var payload = _super.prototype.__buildPayload.call(this, notice);\n payload.request.cgi_data = merge(cgiData, payload.request.cgi_data);\n return payload;\n };\n /**\n * wrap always returns the same function so that callbacks can be removed via\n * removeEventListener.\n * @internal\n */\n Honeybadger.prototype.__wrap = function (f, opts) {\n if (opts === void 0) { opts = {}; }\n var func = f;\n if (!opts) {\n opts = {};\n }\n try {\n if (typeof func !== 'function') {\n return func;\n }\n if (!objectIsExtensible(func)) {\n return func;\n }\n if (!func.___hb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var client_1 = this;\n func.___hb = function () {\n if (util_1.preferCatch) {\n try {\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n catch (err) {\n if (client_1.__lastWrapErr === err) {\n throw (err);\n }\n client_1.__lastWrapErr = err;\n (0, onerror_1.ignoreNextOnError)();\n client_1.addBreadcrumb(opts.component ? \"\".concat(opts.component, \": \").concat(err.name) : err.name, {\n category: 'error',\n metadata: {\n message: err.message,\n name: err.name,\n stack: err.stack\n }\n });\n if (client_1.config.enableUncaught) {\n client_1.notify(err);\n }\n throw (err);\n }\n }\n else {\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n };\n }\n func.___hb.___hb = func.___hb;\n return func.___hb;\n }\n catch (_e) {\n return func;\n }\n };\n /** @internal */\n Honeybadger.prototype.__incrementErrorsCount = function () {\n return this.__errorsSent++;\n };\n /** @internal */\n Honeybadger.prototype.__exceedsMaxErrors = function () {\n return this.config.maxErrors && this.__errorsSent >= this.config.maxErrors;\n };\n return Honeybadger;\n}(core_1.Client));\nvar NOTIFIER = {\n name: '@honeybadger-io/js',\n url: 'https://github.com/honeybadger-io/honeybadger-js/tree/master/packages/js',\n version: '__VERSION__'\n};\nvar userAgent = function () {\n if (typeof navigator !== 'undefined') {\n return \"Honeybadger JS Browser Client \".concat(NOTIFIER.version, \"; \").concat(navigator.userAgent);\n }\n return \"Honeybadger JS Browser Client \".concat(NOTIFIER.version, \"; n/a; n/a\");\n};\nvar singleton = new Honeybadger({\n __plugins: [\n (0, onerror_1.onError)(),\n (0, onunhandledrejection_1.default)(),\n (0, timers_1.default)(),\n (0, event_listeners_1.default)(),\n (0, breadcrumbs_1.default)(),\n core_1.Plugins.consoleEvents(),\n ]\n});\nsingleton.setNotifier(NOTIFIER);\nvar core_2 = require(\"@honeybadger-io/core\");\nObject.defineProperty(exports, \"Types\", { enumerable: true, get: function () { return core_2.Types; } });\nexports.default = singleton;\n//# sourceMappingURL=browser.js.map"],"names":["UNKNOWN_FUNCTION","chromeRe","chromeEvalRe","winjsRe","geckoRe","geckoEvalRe","javaScriptCoreRe","nodeRe","stackString","split","reduce","stack","line","parseResult","parts","exec","isNative","indexOf","isEval","submatch","file","methodName","arguments","lineNumber","column","parseChrome","parseWinjs","parseGecko","parseNode","parseJSC","push","__createBinding","this","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__setModuleDefault","v","value","__importStar","mod","result","prototype","hasOwnProperty","call","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","op","TypeError","pop","length","exports","logDeprecatedMethod","globalThisOrWindow","isBrowserConfig","clone","formatCGIData","filterUrl","filter","generateStackTrace","endpoint","instrumentConsole","instrument","isErrorObject","makeNotice","sanitize","shallowClone","runAfterNotifyHandlers","shouldSampleEvent","resolveInsights","runBeforeEventHandlers","runBeforeNotifyHandlers","getSourceForBacktrace","calculateBacktraceShift","DEFAULT_BACKTRACE_SHIFT","makeBacktrace","objectIsExtensible","objectIsEmpty","mergeNotice","merge","stackTraceParser","require$$0","obj1","obj2","filterHbSourceCode","logger","console","backtrace","parse","map","method","number","splice","err","debug","isFrameFromHbSourceCode","frame","hasHbFile","hasHbMethod","toLowerCase","shift","i","nextFrame","obj","thing","Error","toString","object","name","replacement","original","__hb_original","_e","notice1","notice2","context","isExtensible","getCauses","notice","cause","causes","class","message","getSourceFileHandler","index","trace","fileContent","_a","fileData","columnNumber","sourceRadius","THRESHOLD_COLUMN_NUMBER","getThresholdExceededSnippet","THRESHOLD_FILE_SIZE","lines","unshift","targetLine","THRESHOLD_LINE_LENGTH","end","getSourceCodeSnippet","handlers","results","len","handlerResult","handler","payload","err_1","error","config","_b","insights","enabled","http","event","configRate","meta","_hb","override","Number","isFinite","sampleRate","rawRate","rate","clampSampleRate","requestId","request_id","str","h","charCodeAt","Math","imul","fnv1a","random","afterNotify","maxDepth","seenObjects","serialize","depth","typeOfObj","test","canSerialize","seen","Array","isArray","safeSerialize","ret","concat","client","log","args","_i","info","warn","originalError","String","_consoleAlreadyInstrumented","listeners","filterMatch","key","filters","is","type","klass","slice","_window","forEach","level","listener","Function","base","path","trim","replace","curr","callee","RegExp","$1","caller","join","newObj","url","query","pair","vars","prefix","formattedVars","keys","formattedKey","toUpperCase","JSON","stringify","async","globalThis","self","window","_deprecatedMethodCalls","oldMethod","newMethod","callCountThreshold","msg","console_events","util_1","default","shouldReloadOnConfigure","load","sendEventsToInsights","data","severity","store","GlobalStore","contents","breadcrumbsLimit","available","getContents","setContext","setEventContext","eventContext","clearEventContext","addBreadcrumb","breadcrumb","breadcrumbs","clear","run","callback","item","defaults","BREADCRUMBS_SELECTOR_ATTRIBUTES","CONFIG","apiKey","appEndpoint","environment","hostname","projectRoot","component","action","revision","reportData","breadcrumbsEnabled","eventsEnabled","events","dispatchIntervalSeconds","bulkThreshold","sampleRatePercentage","maxBreadcrumbs","maxObjectDepth","developmentEnvironments","tags","enableUncaught","enableUnhandledRejection","afterUncaught","__plugins","__assign","assign","s","p","throttled_events_worker","ThrottledEventsWorker","json_nd_1","require$$1","defaults_1","require$$2","transport","queue","cooldownTimer","cooldownUntil","inFlight","originalLogger","configure","opts","clearCooldownTimer","processQueue","remaining","cooldownRemainingMs","scheduleCooldownTimer","flushAsync","_this","flush","drainAll","send","catch","scheduleNextDispatch","intervalMs","dispatchIntervalMs","Date","now","max","ms","setTimeout","unref","clearTimeout","eventsData","NdJson","makeHttpRequest","headers","resp","includes","statusCode","_c","_d","Client","store_1","throttled_events_worker_1","require$$3","TAG_SEPARATOR","NOT_BLANK","__pluginsLoaded","__store","__beforeNotifyHandlers","__beforeEventHandlers","__afterNotifyHandlers","__pendingEvents","Set","__notifier","version","__initStore","__transport","__eventsWorker","__applyEventsEnabledShim","getVersion","getNotifier","setNotifier","notifier","loadPlugins","plugin","beforeNotify","beforeEvent","resetContext","notify","noticeable","extra","sourceCodeData","preConditionsResult","__runPreconditions","__send","_err","notifyAsync","objectToOverride","partialNotice","originalAfterNotify","noticeTags","__constructTags","contextTags","configTags","uniqueTags","metadata","category","timestamp","toISOString","logEvent","event_type","ts","shouldSend","finally","delete","add","size","allSettled","from","__getBreadcrumbs","__getContext","__developmentMode","__buildPayload","cgiData","trail","__breadcrumbs","fingerprint","request","cgi_data","params","session","server","project_root","environment_name","time","toUTCString","details","tag","preConditionError","beforeNotifyResult","some","status","originalBacktrace","__getSourceFileHandler","sourcePerTrace","source","Accept","res","uuid","id","noticeUrl","types","__exportStar","__importDefault","Plugins","Util","Types","console_events_1","client_1","require$$4","Defaults","require$$5","consoleEvents","util","preferCatch","encodeCookie","localURLPathname","parseURL","stringTextOfElement","stringSelectorOfElement","core_1","cleanNameOfElement","element","attributes","getAttribute","attributes_1","attr","truncate","stringNameOfElement","tagName","cleanName","stringClassNames","className","attrName","siblings","nodes","parentNode","childNodes","siblings_1","node","getSiblings","func","match","protocol","host","pathname","string","substr","parentName","text","textContent","innerText","nativeFetch","global","fetch","document","sandbox","createElement","style","display","head","appendChild","contentWindow","removeChild","parsed","parsedDocURL","URL","decodeCookie","cookies","atob","ErrorEvent","colno","onerror","onError","ignoreNextOnError","currentTimeout","ignoreOnError","col","onunhandledrejection","promiseRejectionEvent","reason","name_1","constructor","addEventListener","selector","breadcrumbsSelectorAttributes","target","location","XMLHttpRequest","rawUrl","__hb_xhr","xhr","onreadystatechangeHandler","readyState","status_code","onreadystatechange","input","Request","response","lastHref","href","_event","recordUrlChange","history","historyWrapper","to","timers","instrumentTimer","wrapOpts","delay","args_1","__wrap","event_listeners","prop","useCapture","wantsUntrusted","handleEvent","BrowserTransport","defaultHeaders","options","headerArray","requestInit","entries","feedbackForm","BrowserFeedbackForm","scriptUrl","show","lastNoticeId","isUserFeedbackUrlAlreadyVisible","userFeedbackEndpoint","noticeId","appendUserFeedbackTag","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","getUserFeedbackScriptUrl","onerror_1","onunhandledrejection_1","breadcrumbs_1","timers_1","event_listeners_1","require$$6","transport_1","require$$7","feedback_form_1","require$$8","getProjectRoot","majorMinorVersion","Honeybadger","_super","maxErrors","ignoreBrowserExtensionErrors","userAgent","__errorsSent","__lastWrapErr","__lastNoticeId","topFrame","startsWith","__exceedsMaxErrors","__incrementErrorsCount","_error","resetMaxErrors","factory","checkIn","_id","showUserFeedbackForm","getUserFeedbackSubmitUrl","cookiesObject","HTTP_USER_AGENT","HTTP_REFERER","HTTP_COOKIE","navigator","referrer","___hb","NOTIFIER","singleton","core_2"],"mappings":"+1BAAIA,EAAmB,YAkBvB,IAAIC,EAAW,gJACXC,EAAe,gCAiCnB,IAAIC,EAAU,oHAkBd,IAAIC,EAAU,sIACVC,EAAc,gDA4BlB,IAAIC,EAAmB,+DAkBvB,IAAIC,EAAS,0IA/Gb,SAAeC,GAEb,OADYA,EAAYC,MAAM,MACjBC,OAAO,SAAUC,EAAOC,GACnC,IAAIC,EAYR,SAAqBD,GACnB,IAAIE,EAAQb,EAASc,KAAKH,GAE1B,IAAKE,EACH,OAAO,KAGT,IAAIE,EAAWF,EAAM,IAAqC,IAA/BA,EAAM,GAAGG,QAAQ,UAExCC,EAASJ,EAAM,IAAmC,IAA7BA,EAAM,GAAGG,QAAQ,QAEtCE,EAAWjB,EAAaa,KAAKD,EAAM,IAEnCI,GAAsB,MAAZC,IAEZL,EAAM,GAAKK,EAAS,GAEpBL,EAAM,GAAKK,EAAS,GAEpBL,EAAM,GAAKK,EAAS,IAGtB,MAAO,CACLC,KAAOJ,EAAsB,KAAXF,EAAM,GACxBO,WAAYP,EAAM,IAAMd,EACxBsB,UAAWN,EAAW,CAACF,EAAM,IAAM,GACnCS,WAAYT,EAAM,IAAMA,EAAM,GAAK,KACnCU,OAAQV,EAAM,IAAMA,EAAM,GAAK,KAEnC,CAzCsBW,CAAYb,IA6ClC,SAAoBA,GAClB,IAAIE,EAAQX,EAAQY,KAAKH,GAEzB,IAAKE,EACH,OAAO,KAGT,MAAO,CACLM,KAAMN,EAAM,GACZO,WAAYP,EAAM,IAAMd,EACxBsB,UAAW,GACXC,YAAaT,EAAM,GACnBU,OAAQV,EAAM,IAAMA,EAAM,GAAK,KAEnC,CA3D2CY,CAAWd,IAgEtD,SAAoBA,GAClB,IAAIE,EAAQV,EAAQW,KAAKH,GAEzB,IAAKE,EACH,OAAO,KAGT,IAAII,EAASJ,EAAM,IAAMA,EAAM,GAAGG,QAAQ,YAAc,EACpDE,EAAWd,EAAYU,KAAKD,EAAM,IAElCI,GAAsB,MAAZC,IAEZL,EAAM,GAAKK,EAAS,GACpBL,EAAM,GAAKK,EAAS,GACpBL,EAAM,GAAK,MAGb,MAAO,CACLM,KAAMN,EAAM,GACZO,WAAYP,EAAM,IAAMd,EACxBsB,UAAWR,EAAM,GAAKA,EAAM,GAAGL,MAAM,KAAO,GAC5Cc,WAAYT,EAAM,IAAMA,EAAM,GAAK,KACnCU,OAAQV,EAAM,IAAMA,EAAM,GAAK,KAEnC,CAxF+Da,CAAWf,IA8G1E,SAAmBA,GACjB,IAAIE,EAAQP,EAAOQ,KAAKH,GAExB,IAAKE,EACH,OAAO,KAGT,MAAO,CACLM,KAAMN,EAAM,GACZO,WAAYP,EAAM,IAAMd,EACxBsB,UAAW,GACXC,YAAaT,EAAM,GACnBU,OAAQV,EAAM,IAAMA,EAAM,GAAK,KAEnC,CA5HmFc,CAAUhB,IA4F7F,SAAkBA,GAChB,IAAIE,EAAQR,EAAiBS,KAAKH,GAElC,IAAKE,EACH,OAAO,KAGT,MAAO,CACLM,KAAMN,EAAM,GACZO,WAAYP,EAAM,IAAMd,EACxBsB,UAAW,GACXC,YAAaT,EAAM,GACnBU,OAAQV,EAAM,IAAMA,EAAM,GAAK,KAEnC,CA1GsGe,CAASjB,GAM3G,OAJIC,GACFF,EAAMmB,KAAKjB,GAGNF,CACR,EAAE,GACL,wBChBA,IAAIoB,EAAmBC,GAAQA,EAAKD,kBAAqBE,OAAOC,OAAM,SAAaC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOP,OAAOQ,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOV,EAAEC,EAAG,IAE3DJ,OAAOc,eAAeZ,EAAGG,EAAIE,EAChC,EAAA,SAAcL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGW,EAAsBhB,GAAQA,EAAKgB,qBAAwBf,OAAOC,OAAM,SAAaC,EAAGc,GACxFhB,OAAOc,eAAeZ,EAAG,UAAW,CAAEU,YAAY,EAAMK,MAAOD,GAClE,EAAI,SAASd,EAAGc,GACbd,EAAW,QAAIc,CACnB,GACIE,EAAgBnB,GAAQA,EAAKmB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIV,WAAY,OAAOU,EAClC,IAAIC,EAAS,CAAA,EACb,GAAW,MAAPD,EAAa,IAAK,IAAIf,KAAKe,EAAe,YAANf,GAAmBJ,OAAOqB,UAAUC,eAAeC,KAAKJ,EAAKf,IAAIN,EAAgBsB,EAAQD,EAAKf,GAEtI,OADAW,EAAmBK,EAAQD,GACpBC,CACX,EACII,EAAazB,GAAQA,EAAKyB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,UAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUf,GAAS,IAAMgB,EAAKL,EAAUM,KAAKjB,GAAQ,CAAG,MAAOkB,GAAKJ,EAAOI,GAAO,CAC3F,SAASC,EAASnB,GAAS,IAAMgB,EAAKL,EAAiB,MAAEX,GAAU,CAAC,MAAOkB,GAAKJ,EAAOI,GAAO,CAC9F,SAASF,EAAKb,GAJlB,IAAeH,EAIaG,EAAOiB,KAAOP,EAAQV,EAAOH,QAJ1CA,EAIyDG,EAAOH,MAJhDA,aAAiBU,EAAIV,EAAQ,IAAIU,EAAE,SAAUG,GAAWA,EAAQb,EAAO,IAIhBqB,KAAKN,EAAWI,EAAY,CAC9GH,GAAML,EAAYA,EAAUW,MAAMd,EAASC,GAAc,KAAKQ,OACtE,EACA,EACIM,EAAezC,GAAQA,EAAKyC,aAAgB,SAAUf,EAASgB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAK,EAAEK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEX,KAAMiB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOxD,IAAO,GAAG8C,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUxC,GAAK,OACzC,SAAcyC,GACV,GAAIf,EAAG,MAAM,IAAIgB,UAAU,mCAC3B,KAAOb,IAAMA,EAAI,EAAGY,EAAG,KAAOX,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARa,EAAG,GAASd,EAAU,OAAIc,EAAG,GAAKd,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAErB,KAAKoB,GAAI,GAAKA,EAAET,SAAWU,EAAIA,EAAErB,KAAKoB,EAAGc,EAAG,KAAKpB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGa,EAAK,CAAS,EAARA,EAAG,GAAQb,EAAE3B,QACzBwC,EAAG,IACP,KAAK,EAAG,KAAK,EAAGb,EAAIa,EAAI,MACxB,KAAK,EAAc,OAAXX,EAAEC,QAAgB,CAAE9B,MAAOwC,EAAG,GAAIpB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIc,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKX,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMf,EAAIE,EAAEG,MAAML,EAAIA,EAAEgB,OAAS,GAAKhB,EAAEA,EAAEgB,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEX,EAAI,EAAG,QAAW,CAC5G,GAAc,IAAVW,EAAG,MAAcb,GAAMa,EAAG,GAAKb,EAAE,IAAMa,EAAG,GAAKb,EAAE,IAAM,CAAEE,EAAEC,MAAQU,EAAG,GAAI,KAAQ,CACtF,GAAc,IAAVA,EAAG,IAAYX,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIa,EAAI,KAAQ,CACrE,GAAIb,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIrD,KAAK4D,GAAK,KAAQ,CAC/Db,EAAE,IAAIE,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBF,EAAKhB,EAAKlB,KAAKE,EAASqB,EAC3B,CAAC,MAAOX,GAAKsB,EAAK,CAAC,EAAGtB,GAAIQ,EAAI,CAAE,CAAW,QAAED,EAAIE,EAAI,CAAI,CAC1D,GAAY,EAARa,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAExC,MAAOwC,EAAG,GAAKA,EAAG,QAAU,EAAGpB,MAAM,EAC7E,CAtB+CJ,CAAK,CAACuB,EAAGxC,GAAM,CAAG,CAuBtE,EACAhB,OAAOc,eAAc+C,EAAU,aAAc,CAAE5C,OAAO,IACtD4C,EAAAC,oBAA8BD,EAA6BE,mBAAAF,EAAAG,gBAA0BH,EAAgBI,MAAAJ,EAAAK,cAAwBL,EAAoBM,UAAAN,EAAAO,OAAiBP,EAA6BQ,mBAAAR,EAAAS,SAAmBT,EAA4BU,kBAAAV,EAAAW,WAAqBX,EAAwBY,cAAAZ,EAAAa,WAAqBb,SAAiBA,EAAmBc,SAAAd,EAAAe,aAAuBf,EAAiCgB,uBAAAhB,EAAAiB,kBAA4BjB,EAA0BkB,gBAAAlB,EAAAmB,uBAAiCnB,EAAkCoB,wBAAApB,EAAAqB,sBAAgCrB,YAAoBA,EAAkCsB,wBAAAtB,EAAAuB,wBAAkCvB,EAAwBwB,cAAAxB,EAAAyB,mBAA6BzB,EAAwB0B,cAAA1B,EAAA2B,YAAsB3B,EAAgB4B,WAAK,EAErvB,IAAIC,EAAmBxE,EAAayE,GACpC,SAASF,EAAMG,EAAMC,GACjB,IAAIzE,EAAS,CAAA,EACb,IAAK,IAAIhB,KAAKwF,EACVxE,EAAOhB,GAAKwF,EAAKxF,GAErB,IAAK,IAAIA,KAAKyF,EACVzE,EAAOhB,GAAKyF,EAAKzF,GAErB,OAAOgB,CACV,CA0BD,SAASiE,EAAc3G,EAAOoH,EAAoBC,GAG9C,QAFgC,IAA5BD,IAAiCA,GAAqB,QACtC,IAAhBC,IAAqBA,EAASC,UAC7BtH,EACD,MAAO,GAEX,IACI,IAAIuH,EAAYP,EACXQ,MAAMxH,GACNyH,IAAI,SAAUxH,GACf,MAAO,CACHQ,KAAMR,EAAKQ,KACXiH,OAAQzH,EAAKS,WACbiH,OAAQ1H,EAAKW,WACbC,OAAQZ,EAAKY,OAE7B,GAIQ,OAHIuG,GACAG,EAAUK,OAAO,EAAGnB,EAAwBc,IAEzCA,CACV,CACD,MAAOM,GAEH,OADAR,EAAOS,MAAMD,GACN,EACV,CACJ,CAED,SAASE,EAAwBC,GAC7B,IAAIC,GAAY,EACZC,GAAc,EAOlB,OANIF,EAAMvH,OACNwH,EAAYD,EAAMvH,KAAK0H,cAAc7H,QAAQ,oBAAsB,GAEnE0H,EAAMN,SACNQ,EAAcF,EAAMN,OAAOS,cAAc7H,QAAQ,oBAAsB,GAEpE2H,GAAaC,CACvB,CAmBD,SAASzB,EAAwBc,GAE7B,IADA,IAAIa,EAAQ,EACHC,EAAI,EAAGA,EAAId,EAAUrC,OAAQmD,IAAK,CACvC,IAAIL,EAAQT,EAAUc,GACtB,IAAIN,EAAwBC,GAA5B,CAIA,IAAKA,EAAMvH,MAAuB,gBAAfuH,EAAMvH,KAAwB,CAC7C,IAAI6H,EAAYf,EAAUc,EAAI,GAC9B,GAAIC,GAAaP,EAAwBO,GAAY,CACjDF,IACA,QACH,CACJ,CACD,KARC,CAFGA,GAWP,CACD,OAAOA,GAASjD,EAAQuB,uBAC3B,CA4JD,SAASR,EAAaqC,GAClB,GAAqB,iBAAT,GAA6B,OAARA,EAC7B,MAAO,GAEX,IAAI7F,EAAS,CAAA,EACb,IAAK,IAAIhB,KAAK6G,EACV7F,EAAOhB,GAAK6G,EAAI7G,GAEpB,OAAOgB,CACV,CAqID,SAASqD,EAAcyC,GACnB,OAAOA,aAAiBC,OACyB,mBAA1CnH,OAAOqB,UAAU+F,SAAS7F,KAAK2F,EACzC,CASD,SAAS1C,EAAW6C,EAAQC,EAAMC,GAC9B,GAAKF,GAAWC,GAASC,GAAiBD,KAAQD,EAGlD,IAEI,IADA,IAAIG,EAAWH,EAAOC,GACfE,GAAYA,EAASC,eACxBD,EAAWA,EAASC,cAExBJ,EAAOC,GAAQC,EAAYC,GAC3BH,EAAOC,GAAMG,cAAgBD,CAChC,CACD,MAAOE,GAMN,CACJ,CA7aD7D,EAAA4B,MAAgBA,EAQhB5B,EAAA2B,YAPA,SAAqBmC,EAASC,GAC1B,IAAIxG,EAASqE,EAAMkC,EAASC,GAI5B,OAHID,EAAQE,SAAWD,EAAQC,UAC3BzG,EAAOyG,QAAUpC,EAAMkC,EAAQE,QAASD,EAAQC,UAE7CzG,CACV,EAUDyC,EAAA0B,cARA,SAAuB0B,GACnB,IAAK,IAAI7G,KAAK6G,EACV,GAAIjH,OAAOqB,UAAUC,eAAeC,KAAK0F,EAAK7G,GAC1C,OAAO,EAGf,OAAO,CACV,EAQDyD,EAAAyB,mBANA,SAA4B2B,GACxB,MAAmC,mBAAxBjH,OAAO8H,cAGX9H,OAAO8H,aAAab,EAC9B,EA6BDpD,EAAAwB,cAAwBA,EAYxBxB,EAAAuB,wBAAkC,EAqClCvB,EAAAsB,wBAAkCA,EAiBlCtB,EAAAkE,UAhBA,SAAmBC,EAAQjC,GACvB,GAAIiC,EAAOC,MAAO,CAId,IAHA,IAAIC,EAAS,GACTD,EAAQD,EAELE,EAAOtE,OAAS,IAAMqE,EAAQA,EAAMA,QACvCC,EAAOrI,KAAK,CACRsI,MAAOF,EAAMX,KACbc,QAASH,EAAMG,QACfnC,UAAiC,iBAAfgC,EAAMvJ,MAAoB2G,EAAc4C,EAAMvJ,OAAO,EAAOqH,GAAU,OAGhG,OAAOmC,CACV,CACD,MAAO,EACV,EA4BDrE,EAAAqB,sBA1BA,SAA+Be,EAAWoC,GACtC,OAAO7G,EAAUzB,UAAW,OAAQ,EAAG,WACnC,IAAIqB,EAAQkH,EAAOC,EAAOC,EAC1B,OAAOhG,EAAYzC,KAAM,SAAU0I,GAC/B,OAAQA,EAAG1F,OACP,KAAK,EAED,GADA3B,EAAS,IACJiH,IAAyBpC,IAAcA,EAAUrC,OAClD,MAAO,CAAC,EAAcxC,GAE1BkH,EAAQ,EACRG,EAAG1F,MAAQ,EACf,KAAK,EACD,OAAKkD,EAAUrC,QACf2E,EAAQtC,EAAUK,OAAO,GAAGgC,GACrB,CAAC,EAAaD,EAAqBE,EAAMpJ,QAFlB,CAAC,EAAa,GAGhD,KAAK,EAID,OAHAqJ,EAAcC,EAAGzF,OACjB5B,EAAOkH,GAyc3B,SAA8BI,EAAUpJ,EAAYqJ,EAAcC,QACpC,IAAtBA,IAA2BA,EAAe,GAC9C,IAAKF,EACD,OAAO,KAGX,GAAIC,GAAgBA,EAAeE,EAC/B,OAAOC,EAA4BxJ,GAGvC,GAAIoJ,EAAS9E,OAASmF,EAClB,OAAOD,EAA4BxJ,GAEvC,IAAI0J,EAAQN,EAASlK,MAAM,MAE3BwK,EAAMC,QAAQ,IAEd,IAAIC,EAAaF,EAAM1J,GACvB,GAAI4J,GAAcA,EAAWtF,OAASuF,EAClC,OAAOL,EAA4BxJ,GAKvC,IAHA,IACI8J,EAAM9J,EAAasJ,EACnBxH,EAAS,CAAA,EACJ2F,EAHGzH,EAAasJ,EAGL7B,GAAKqC,EAAKrC,IAAK,CAC/B,IAAIpI,EAAOqK,EAAMjC,GACG,iBAATpI,IACPyC,EAAO2F,GAAKpI,EAEnB,CACD,OAAOyC,CACV,CAxemCiI,CAAqBb,EAAaD,EAAMlC,OAAQkC,EAAMhJ,OAAQ,GAC9E+I,IACO,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAclH,GAE9C,EACA,EACC,EAkBDyC,EAAAoB,wBAhBA,SAAiC+C,EAAQsB,GAGrC,IAFA,IAAIC,EAAU,GACVnI,GAAS,EACJ2F,EAAI,EAAGyC,EAAMF,EAAS1F,OAAQmD,EAAIyC,EAAKzC,IAAK,CACjD,IACI0C,GAAgBC,EADNJ,EAASvC,IACKiB,IACN,IAAlByB,IACArI,GAAS,GAEbmI,EAAQ1J,KAAK4J,EAChB,CACD,MAAO,CACHF,QAASA,EACTnI,OAAQA,EAEf,EAsCDyC,EAAAmB,uBApCA,SAAgC2E,EAASL,EAAUvD,GAC/C,OAAOvE,EAAUzB,UAAW,OAAQ,EAAG,WACnC,IAAIgH,EAAGyC,EAAKpI,EAAQwI,EACpB,OAAOpH,EAAYzC,KAAM,SAAU0I,GAC/B,OAAQA,EAAG1F,OACP,KAAK,EACDgE,EAAI,EAAGyC,EAAMF,EAAS1F,OACtB6E,EAAG1F,MAAQ,EACf,KAAK,EACD,KAAMgE,EAAIyC,GAAM,MAAO,CAAC,EAAa,GACrCpI,OAAc,EACdqH,EAAG1F,MAAQ,EACf,KAAK,EAED,OADA0F,EAAGxF,KAAKpD,KAAK,CAAC,EAAG,EAAC,CAAI,IACf,CAAC,EAAayJ,EAASvC,GAAG4C,IACrC,KAAK,EAED,OADAvI,EAASqH,EAAGzF,OACL,CAAC,EAAa,GACzB,KAAK,EAID,OAHA4G,EAAQnB,EAAGzF,OAEX+C,SAAgDA,EAAO8D,MAAM,wCAAyCD,GAC/F,CAAC,EAAa,GACzB,KAAK,EACD,IAAe,IAAXxI,EACA,MAAO,CAAC,GAAc,GAE1BqH,EAAG1F,MAAQ,EACf,KAAK,EAED,OADAgE,IACO,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAAc,GAE9C,EACA,EACC,EAaDlD,EAAAkB,gBAXA,SAAyB+E,GACrB,IAAIrB,EAAIsB,EACJC,EAAWF,EAAOE,SACtB,OAAKA,IAAiC,IAArBA,EAASC,QAGnB,CACHjE,QAAqC,QAA3ByC,EAAKuB,EAAShE,eAAiC,IAAZyC,GAAgBA,EAC7DyB,KAA+B,QAAxBH,EAAKC,EAASE,YAA8B,IAAZH,GAAgBA,GAJhD,CAAE/D,SAAS,EAAOkE,MAAM,EAMtC,EAkCDrG,EAAAiB,kBAjBA,SAA2BqF,EAAOC,GAC9B,IAAIC,EAAOF,EAAMG,IACbC,EAAWF,GAAQG,OAAOC,SAASJ,EAAKK,YAAcL,EAAKK,gBAAapK,EACxEqK,OAAuBrK,IAAbiK,EAAyBA,EAAWH,EAG9CQ,EAbR,SAAyBA,GACrB,OAAIA,EAAO,EACA,EACPA,EAAO,IACA,IACJA,CACV,CAOcC,CAAgBL,OAAOC,SAASE,GAAWA,EAAU,KAChE,GAAIC,GAAQ,EACR,OAAO,EACX,GAAIA,GAAQ,IACR,OAAO,EACX,IAAIE,EAAYX,EAAMY,WACtB,MAAyB,iBAAdD,GAA0BA,EAAUlH,OAAS,EA3B5D,SAAeoH,GAEX,IADA,IAAIC,EAAI,WACClE,EAAI,EAAGyC,EAAMwB,EAAIpH,OAAQmD,EAAIyC,EAAKzC,IACvCkE,GAAKD,EAAIE,WAAWnE,GACpBkE,EAAIE,KAAKC,KAAKH,EAAG,UAErB,OAAOA,IAAM,CAChB,CAqBcI,CAAMP,GAAa,IAAMF,EAEb,IAAhBO,KAAKG,SAAiBV,CAChC,EAWD/G,EAAAgB,uBATA,SAAgCmD,EAAQsB,EAAUO,GAC1C7B,GAAUA,EAAOuD,aACjBvD,EAAOuD,YAAY1B,EAAO7B,GAE9B,IAAK,IAAIjB,EAAI,EAAGyC,EAAMF,EAAS1F,OAAQmD,EAAIyC,EAAKzC,IAC5CuC,EAASvC,GAAG8C,EAAO7B,GAEvB,OAAO,CACV,EAaDnE,EAAAe,aAAuBA,EA+EvBf,EAAAc,SA9EA,SAAkBsC,EAAKuE,QACG,IAAlBA,IAAuBA,EAAW,GACtC,IAAIC,EAAc,GAkClB,SAASC,EAAUzE,EAAK0E,GAEpB,QADmB,IAAfA,IAAoBA,EAAQ,GAC5BA,GAASH,EACT,MAAO,UAGX,IA1BJ,SAAsBvE,GAClB,IAAI2E,SAAmB3E,EAEvB,MAAI,WAAW4E,KAAKD,GAEI,WAAb3E,EAAIK,MAGX,SAASuE,KAAKD,IAGN,OAAR3E,IAIe,iBAARA,QAAkD,IAAvBA,EAAI3F,eAI7C,CAOQwK,CAAa7E,GACd,OAAOjH,OAAOqB,UAAU+F,SAAS7F,KAAK0F,GAG1C,GA3CJ,SAAcA,GACV,IAAKA,GAAwB,mBACzB,OAAO,EAEX,IAAK,IAAIF,EAAI,EAAGA,EAAI0E,EAAY7H,OAAQmD,IAEpC,GADY0E,EAAY1E,KACVE,EACV,OAAO,EAIf,OADAwE,EAAY5L,KAAKoH,IACV,CACV,CA+BO8E,CAAK9E,GACL,MAAO,cAGX,GAAI+E,MAAMC,QAAQhF,GACd,OAAOA,EAAId,IAAI,SAAUjG,GAAK,OAAOgM,EAAchM,EAAGyL,EAAQ,EAAK,GAGvE,GAAqB,iBAAT,EAAmB,CAC3B,IAAIQ,EAAM,CAAA,EACV,IAAK,IAAI/L,KAAK6G,EAAK,CACf,IAAIjG,EAAIiG,EAAI7G,GACRJ,OAAOqB,UAAUC,eAAeC,KAAK0F,EAAK7G,IAAY,MAALA,GAAoB,MAALY,IAChEmL,EAAI/L,GAAK8L,EAAclL,EAAG2K,EAAQ,GAEzC,CACD,OAAOQ,CACV,CAED,OAAOlF,CACV,CACD,SAASiF,EAAcjF,EAAK0E,QACL,IAAfA,IAAoBA,EAAQ,GAChC,IACI,OAAOD,EAAUzE,EAAK0E,EACzB,CACD,MAAOxJ,GACH,MAAO,WAAWiK,OAAOjK,EAC5B,CACJ,CACD,OAAO+J,EAAcjF,EACxB,EA8BDpD,EAAAkC,OA5BA,SAAgBsG,GACZ,IAAIC,EAAM,SAAUlG,GAChB,OAAO,WAGH,IAFA,IAAIqC,EACA8D,EAAO,GACFC,EAAK,EAAGA,EAAKnN,UAAUuE,OAAQ4I,IACpCD,EAAKC,GAAMnN,UAAUmN,GAEzB,GAAe,UAAXpG,EAAoB,CACpB,IAAKiG,EAAOvC,OAAOtD,MACf,OAIJJ,EAAS,KACZ,CACDmG,EAAKtD,QAAQ,kBACZR,EAAK4D,EAAOvC,OAAO/D,QAAQK,GAAQ7D,MAAMkG,EAAI8D,EAC1D,CACA,EACI,MAAO,CACHD,IAAKA,EAAI,OACTG,KAAMH,EAAI,QACV9F,MAAO8F,EAAI,SACXI,KAAMJ,EAAI,QACVzC,MAAOyC,EAAI,SAElB,EAwBDzI,EAAAa,WAlBA,SAAoBwC,GAChB,IAAIc,EACJ,GAAKd,EAGA,GAAIzC,EAAcyC,GAAQ,CAC3B,IAAI/E,EAAI+E,EACRc,EAASvC,EAAMyB,EAAO,CAAEI,KAAMnF,EAAEmF,KAAMc,QAASjG,EAAEiG,QAAS1J,MAAOyD,EAAEzD,MAAOuJ,MAAO9F,EAAE8F,MAAO0E,cAAexK,GAC5G,MACI,GAAqB,iBAAV+E,EACZc,EAASpD,EAAasC,OAErB,CAEDc,EAAS,CAAEI,QADHwE,OAAO1F,GAElB,MAZGc,EAAS,CAAA,EAab,OAAOA,CACV,EAMDnE,EAAAY,cAAwBA,EA4BxBZ,EAAAW,WAAqBA,EACrB,IAAIqI,GAA8B,EAC9BC,EAAY,GA4GhB,SAASC,EAAYC,EAAKC,GACtB,IAAK,IAAIlG,EAAI,EAAGA,EAAIkG,EAAQrJ,OAAQmD,IAChC,IAA6D,IAAzDiG,EAAInG,cAAc7H,QAAQiO,EAAQlG,GAAGF,eACrC,OAAO,EAGf,OAAO,CACV,CACD,SAASqG,EAAGC,EAAMlG,GACd,IAAImG,EAAQpN,OAAOqB,UAAU+F,SAAS7F,KAAK0F,GAAKoG,MAAM,GAAI,GAC1D,OAAOpG,SAAqCmG,IAAUD,CACzD,CAxFDtJ,EAAAU,kBA7BA,SAA2B+I,EAAS5D,GAC3B4D,GAAYA,EAAQtH,SAAY0D,IAGrCoD,EAAUjN,KAAK6J,GACXmD,IAGJA,GAA8B,EAC9B,CAAC,QAAS,OAAQ,OAAQ,QAAS,OAAOU,QAAQ,SAAUC,GACxDhJ,EAAW8I,EAAQtH,QAASwH,EAAO,SAAkBhG,GACjD,OAAO,WACH,IAAI+E,EAAOP,MAAM3K,UAAUgM,MAAM9L,KAAKlC,WACtCyN,EAAUS,QAAQ,SAAUE,GACxB,IACIA,EAASD,EAAOjB,EACnB,CACD,MAAO7E,GAGN,CACrB,GACwC,mBAAbF,GACPkG,SAASrM,UAAUkB,MAAMhB,KAAKiG,EAAU8F,EAAQtH,QAAS3G,UAE7E,CACA,EACA,IACC,EAODwE,EAAAS,SALA,SAAkBqJ,EAAMC,GACpB,IAAItJ,EAAWqJ,EAAKE,OAAOC,QAAQ,MAAO,IAE1C,OADAF,EAAOA,EAAKC,OAAOC,QAAQ,aAAc,IAClC,GAAG1B,OAAO9H,EAAU,KAAK8H,OAAOwB,EAC1C,EA8BD/J,EAAAQ,mBA5BA,WACI,IACI,MAAM,IAAI8C,MAAM,GACnB,CACD,MAAOhF,GACH,GAAIA,EAAEzD,MACF,OAAOyD,EAAEzD,KAEhB,CAID,IAHA,IACIA,EAAQ,GACRqP,EAAO1O,UAAU2O,OACdD,GAAQrP,EAAMkF,OAHF,IAGyB,CACpC,gCAAgCiI,KAAKkC,EAAK3G,YAC1C1I,EAAMmB,KAAKoO,OAAOC,IAAM,eAGxBxP,EAAMmB,KAAK,eAEf,IACIkO,EAAOA,EAAKI,MACf,CACD,MAAOhM,GACH,KACH,CACJ,CACD,OAAOzD,EAAM0P,KAAK,KACrB,EA0CDvK,EAAAO,OAxCA,SAAgB6C,EAAKgG,GACjB,GAAKC,EAAG,SAAUjG,GAAlB,CAGKiG,EAAG,QAASD,KACbA,EAAU,IAEd,IAAIlB,EAAO,GA+BX,OA9BA,SAAS3H,EAAO6C,GACZ,IAAI7G,EAAGiO,EACP,GAAInB,EAAG,SAAUjG,IAAQiG,EAAG,QAASjG,GAAM,CACvC,IAA2B,IAAvB8E,EAAK/M,QAAQiI,GACb,MAAO,4BAEX8E,EAAKlM,KAAKoH,EACb,CACD,GAAIiG,EAAG,SAAUjG,GAAM,CAEnB,IAAK7G,KADLiO,EAAS,CAAA,EACCpH,EACF8F,EAAY3M,EAAG6M,GACfoB,EAAOjO,GAAK,aAGZiO,EAAOjO,GAAKgE,EAAO6C,EAAI7G,IAG/B,OAAOiO,CACV,CACD,OAAInB,EAAG,QAASjG,GACLA,EAAId,IAAI,SAAUnF,GACrB,OAAOoD,EAAOpD,EAC9B,GAEYkM,EAAG,WAAYjG,GACR,SAEJA,CACV,CACM7C,CAAO6C,EAnCb,CAoCJ,EAkCDpD,EAAAM,UApBA,SAAmBmK,EAAKrB,GACpB,IAAKA,EACD,OAAOqB,EAEX,GAAmB,iBAARA,EACP,OAAOA,EAEX,IAAIC,EAAQD,EAAI9P,MAAM,KAAM,GAAG,GAC/B,IAAK+P,EACD,OAAOD,EAEX,IAAIlN,EAASkN,EAOb,OANAC,EAAM/P,MAAM,UAAU+O,QAAQ,SAAUiB,GACpC,IAAI/F,EAAK+F,EAAKhQ,MAAM,IAAK,GAAIwO,EAAMvE,EAAG,GAAIxH,EAAQwH,EAAG,GACjDsE,EAAYC,EAAKC,KACjB7L,EAASA,EAAO0M,QAAQ,GAAG1B,OAAOY,EAAK,KAAKZ,OAAOnL,GAAQ,GAAGmL,OAAOY,EAAK,gBAEtF,GACW5L,CACV,EAWDyC,EAAAK,cATA,SAAuBuK,EAAMC,QACL,IAAhBA,IAAqBA,EAAS,IAClC,IAAIC,EAAgB,CAAA,EAKpB,OAJA3O,OAAO4O,KAAKH,GAAMlB,QAAQ,SAAUP,GAChC,IAAI6B,EAAeH,EAAS1B,EAAIc,QAAQ,MAAO,KAAKgB,cACpDH,EAAcE,GAAgBJ,EAAKzB,EAC3C,GACW2B,CACV,EAKD9K,EAAAI,MAHA,SAAegD,GACX,OAAO8H,KAAK7I,MAAM6I,KAAKC,UAAU/H,GACpC,EAED,IAAI4B,EAA0B,IAC1BM,EAAwB,IACxBJ,EAAsB,IAC1B,SAASD,EAA4BxJ,GACjC,IAAImJ,EACJ,OAAOA,EAAK,CAAA,GAAOnJ,GAAc,wBAAyBmJ,CAC7D,CAoCD5E,EAAAG,gBAHA,SAAyB8F,GACrB,YAAwBxJ,IAAjBwJ,EAAOmF,KACjB,EAcDpL,EAAAE,mBATA,WACI,MAA0B,oBAAfmL,WACAA,WAES,oBAATC,KACAA,KAEJC,MACV,EAED,IAAIC,EAAyB,CAAA,EAkB7BxL,EAAAC,oBAdA,SAA6BiC,EAAQuJ,EAAWC,EAAWC,QACvB,IAA5BA,IAAiCA,EAAqB,KAC1D,IAAIxC,EAAM,GAAGZ,OAAOkD,EAAW,KAAKlD,OAAOmD,GAI3C,QAH2C,IAAhCF,EAAuBrC,KAC9BqC,EAAuBrC,GAAO,GAE9BqC,EAAuBrC,GAAOwC,IAAuB,EAAzD,CAIA,IAAIC,EAAM,wBAAwBrD,OAAOkD,EAAW,qCAAqClD,OAAOmD,EAAW,aAC3GxJ,EAAO2G,KAAK+C,GACZJ,EAAuBrC,IAHtB,MAFGqC,EAAuBrC,IAM9B,MC7tBDhN,OAAOc,eAAe4O,EAAS,aAAc,CAAEzO,OAAO,IACtD,IAAI0O,EAAShK,EAkCE+J,EAAAE,QAjCf,SAAmBtC,GAEf,YADqB,IAAjBA,IAAsBA,GAAU,EAAIqC,EAAO5L,uBACxC,CACH8L,yBAAyB,EACzBC,KAAM,SAAUzD,GACZ,SAAS0D,IACL,OAAO,EAAIJ,EAAO5K,iBAAiBsH,EAAOvC,QAAQ9D,OACrD,CACI+J,MAGL,EAAIJ,EAAOpL,mBAAmB+I,EAAS,SAAUE,EAAOjB,GACpD,GAAKwD,KAGe,IAAhBxD,EAAK3I,OAAT,CAGA,IAAIoM,EAAO,CACPC,SAAUzC,GAES,iBAAZjB,EAAK,IACZyD,EAAK5H,QAAUmE,EAAK,GACpByD,EAAKzD,KAAOA,EAAKc,MAAM,IAGvB2C,EAAKzD,KAAOA,EAEhBF,EAAOlC,MAAM,MAAO6F,EAXnB,CAYjB,EACS,EAET,gBClCAhQ,OAAOc,eAAeoP,EAAS,aAAc,CAAEjP,OAAO,IACnCiP,EAAAC,iBAAQ,EAC3B,IAAIR,EAAShK,EACTwK,EAA6B,WAC7B,SAASA,EAAYC,EAAUC,GAC3BtQ,KAAKqQ,SAAWA,EAChBrQ,KAAKsQ,iBAAmBA,CAC3B,CAkCD,OAjCAF,EAAYlQ,OAAS,SAAUmQ,EAAUC,GACrC,OAAO,IAAIF,EAAYC,EAAUC,EACzC,EACIF,EAAY9O,UAAUiP,UAAY,WAC9B,OAAO,CACf,EACIH,EAAY9O,UAAUkP,YAAc,SAAUvD,GAC1C,IAAI/L,EAAQ+L,EAAMjN,KAAKqQ,SAASpD,GAAOjN,KAAKqQ,SAC5C,OAAOrB,KAAK7I,MAAM6I,KAAKC,UAAU/N,GACzC,EACIkP,EAAY9O,UAAUmP,WAAa,SAAU3I,GACzC9H,KAAKqQ,SAASvI,SAAU,EAAI8H,EAAOlK,OAAO1F,KAAKqQ,SAASvI,QAASA,GAAW,CAAE,EACtF,EACIsI,EAAY9O,UAAUoP,gBAAkB,SAAUC,GAC9C3Q,KAAKqQ,SAASM,cAAe,EAAIf,EAAOlK,OAAO1F,KAAKqQ,SAASM,aAAcA,GAAgB,CAAE,EACrG,EACIP,EAAY9O,UAAUsP,kBAAoB,WACtC5Q,KAAKqQ,SAASM,aAAe,EACrC,EACIP,EAAY9O,UAAUuP,cAAgB,SAAUC,GACxC9Q,KAAKqQ,SAASU,YAAYlN,QAAU7D,KAAKsQ,kBACzCtQ,KAAKqQ,SAASU,YAAYhK,QAE9B/G,KAAKqQ,SAASU,YAAYjR,KAAKgR,EACvC,EACIV,EAAY9O,UAAU0P,MAAQ,WAC1BhR,KAAKqQ,SAASvI,QAAU,GACxB9H,KAAKqQ,SAASM,aAAe,GAC7B3Q,KAAKqQ,SAASU,YAAc,EACpC,EACIX,EAAY9O,UAAU2P,IAAM,SAAUC,GAClC,OAAOA,GACf,EACWd,CACX,IACmBD,EAAAC,YAAGA,wDC5Cf,MACH,YAAOjK,CAAM8J,GAET,OADcA,EAAKnC,OAAOrP,MAAM,MACnB2H,IAAIxH,GAAQoQ,KAAK7I,MAAMvH,GACvC,CACD,gBAAOqQ,CAAUgB,GACb,OAAOA,EAAK7J,IAAI+K,GAAQnC,KAAKC,UAAUkC,IAAO9C,KAAK,KACtD,WCNLpO,OAAOc,eAAeqQ,EAAS,aAAc,CAAElQ,OAAO,IACtDkQ,EAAAC,gCAA0CD,EAAAE,YAAsB,EAChEF,EAAAE,OAAiB,CACbC,OAAQ,KACRhN,SAAU,6BACViN,YAAa,6BACbC,YAAa,KACbC,SAAU,KACVC,YAAa,KACbC,UAAW,KACXC,OAAQ,KACRC,SAAU,KACVC,WAAY,KACZC,oBAAoB,EAEpBC,eAAe,EACfhI,SAAU,CACNC,SAAS,EACTjE,SAAS,EACTkE,MAAM,GAEV+H,OAAQ,CACJC,wBAAyB,GACzBC,cAAe,IACfC,qBAAsB,KAE1BC,eAAgB,GAChBC,eAAgB,EAChBvM,OAAQC,QACRuM,wBAAyB,CAAC,MAAO,cAAe,QAChD/L,OAAO,EACPgM,KAAM,KACNC,gBAAgB,EAChBC,0BAA0B,EAC1BC,cAAe,WAAc,OAAO,CAAO,EAC3C1F,QAAS,CAAC,aAAc,YACxB2F,UAAW,IAGfzB,EAAAC,gCAA0C,CAAC,gBCvC3C,IAAIyB,EAAY9S,GAAQA,EAAK8S,UAAa,WAStC,OARAA,EAAW7S,OAAO8S,QAAU,SAASlQ,GACjC,IAAK,IAAImQ,EAAGhM,EAAI,EAAGvD,EAAInE,UAAUuE,OAAQmD,EAAIvD,EAAGuD,IAE5C,IAAK,IAAIiM,KADTD,EAAI1T,UAAU0H,GACO/G,OAAOqB,UAAUC,eAAeC,KAAKwR,EAAGC,KACzDpQ,EAAEoQ,GAAKD,EAAEC,IAEjB,OAAOpQ,CACf,EACWiQ,EAAStQ,MAAMxC,KAAMV,UAChC,EACImC,EAAazB,GAAQA,EAAKyB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,UAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUf,GAAS,IAAMgB,EAAKL,EAAUM,KAAKjB,GAAQ,CAAG,MAAOkB,GAAKJ,EAAOI,GAAO,CAC3F,SAASC,EAASnB,GAAS,IAAMgB,EAAKL,EAAiB,MAAEX,GAAU,CAAC,MAAOkB,GAAKJ,EAAOI,GAAO,CAC9F,SAASF,EAAKb,GAJlB,IAAeH,EAIaG,EAAOiB,KAAOP,EAAQV,EAAOH,QAJ1CA,EAIyDG,EAAOH,MAJhDA,aAAiBU,EAAIV,EAAQ,IAAIU,EAAE,SAAUG,GAAWA,EAAQb,EAAO,IAIhBqB,KAAKN,EAAWI,EAAY,CAC9GH,GAAML,EAAYA,EAAUW,MAAMd,EAASC,GAAc,KAAKQ,OACtE,EACA,EACIM,EAAezC,GAAQA,EAAKyC,aAAgB,SAAUf,EAASgB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAK,EAAEK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEX,KAAMiB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOxD,IAAO,GAAG8C,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUxC,GAAK,OACzC,SAAcyC,GACV,GAAIf,EAAG,MAAM,IAAIgB,UAAU,mCAC3B,KAAOb,IAAMA,EAAI,EAAGY,EAAG,KAAOX,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARa,EAAG,GAASd,EAAU,OAAIc,EAAG,GAAKd,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAErB,KAAKoB,GAAI,GAAKA,EAAET,SAAWU,EAAIA,EAAErB,KAAKoB,EAAGc,EAAG,KAAKpB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGa,EAAK,CAAS,EAARA,EAAG,GAAQb,EAAE3B,QACzBwC,EAAG,IACP,KAAK,EAAG,KAAK,EAAGb,EAAIa,EAAI,MACxB,KAAK,EAAc,OAAXX,EAAEC,QAAgB,CAAE9B,MAAOwC,EAAG,GAAIpB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIc,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKX,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMf,EAAIE,EAAEG,MAAML,EAAIA,EAAEgB,OAAS,GAAKhB,EAAEA,EAAEgB,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEX,EAAI,EAAG,QAAW,CAC5G,GAAc,IAAVW,EAAG,MAAcb,GAAMa,EAAG,GAAKb,EAAE,IAAMa,EAAG,GAAKb,EAAE,IAAM,CAAEE,EAAEC,MAAQU,EAAG,GAAI,KAAQ,CACtF,GAAc,IAAVA,EAAG,IAAYX,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIa,EAAI,KAAQ,CACrE,GAAIb,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIrD,KAAK4D,GAAK,KAAQ,CAC/Db,EAAE,IAAIE,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBF,EAAKhB,EAAKlB,KAAKE,EAASqB,EAC3B,CAAC,MAAOX,GAAKsB,EAAK,CAAC,EAAGtB,GAAIQ,EAAI,CAAE,CAAW,QAAED,EAAIE,EAAI,CAAI,CAC1D,GAAY,EAARa,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAExC,MAAOwC,EAAG,GAAKA,EAAG,QAAU,EAAGpB,MAAM,EAC7E,CAtB+CJ,CAAK,CAACuB,EAAGxC,GAAM,CAAG,CAuBtE,EACAhB,OAAOc,eAAemS,EAAS,aAAc,CAAEhS,OAAO,IACzBgS,EAAAC,2BAAQ,EACrC,IAAIC,EAAYxN,EACZgK,EAASyD,EACTC,EAAaC,EACbJ,EAAuC,WACvC,SAASA,EAAsBpJ,EAAQyJ,GACnCxT,KAAK+J,OAASA,EACd/J,KAAKwT,UAAYA,EACjBxT,KAAKyT,MAAQ,GACbzT,KAAK0T,cAAgB,KAMrB1T,KAAK2T,cAAgB,EACrB3T,KAAK4T,SAAW,KAChB5T,KAAK+J,OAAS+I,EAASA,EAAS,CAAE,EAAEQ,EAAWhC,QAASvH,GACxD/J,KAAKgG,OAAShG,KAAK6T,gBACtB,CAuND,OAtNAV,EAAsB7R,UAAUwS,UAAY,SAAUC,GAClD,IAAK,IAAI1T,KAAK0T,EACV/T,KAAK+J,OAAO1J,GAAK0T,EAAK1T,EAElC,EACI8S,EAAsB7R,UAAUiL,IAAM,SAAU3C,GAE5C,GADA5J,KAAKyT,MAAM3T,KAAK8J,IACZ5J,KAAK4T,SAAT,CAIA,GAAI5T,KAAKyT,MAAM5P,QAAU7D,KAAKoS,gBAG1B,OAFApS,KAAKgU,0BACLhU,KAAKiU,eAKT,IAAIjU,KAAK0T,cAAT,CAMA,IAAIQ,EAAYlU,KAAKmU,sBACjBD,EAAY,EACZlU,KAAKoU,sBAAsBF,GAG/BlU,KAAKiU,cATJ,CAXA,CAqBT,EACId,EAAsB7R,UAAU+S,WAAa,WACzC,IACI3L,EADA4L,EAAQtU,KAEZA,KAAKgG,OAAOS,MAAM,iCAClBzG,KAAKgU,qBACL,IACIO,GADoC,QAAxB7L,EAAK1I,KAAK4T,gBAAkC,IAAZlL,EAAgBA,EAAK5G,QAAQC,WACxDQ,KAAK,WAAc,OAAO+R,EAAME,UAAW,GAGhExU,KAAK4T,SAAWW,EAChB,IAAIvD,EAAQ,WACJsD,EAAMV,WAAaW,IACnBD,EAAMV,SAAW,KAEjC,EAEQ,OADAW,EAAMhS,KAAKyO,EAAOA,GACXuD,CACf,EACIpB,EAAsB7R,UAAUkT,SAAW,WACvC,OAAO/S,EAAUzB,UAAW,OAAQ,EAAG,WACnC,OAAOyC,EAAYzC,KAAM,SAAU0I,GAC/B,OAAQA,EAAG1F,OACP,KAAK,EACD,OAAMhD,KAAKyT,MAAM5P,OAAS,EACnB,CAAC,EAAa7D,KAAKyU,QADW,CAAC,EAAa,GAEvD,KAAK,EAED,OADA/L,EAAGzF,OACI,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAEpC,EACA,EACA,EACIkQ,EAAsB7R,UAAU2S,aAAe,WAC3C,IAAIK,EAAQtU,KACZ,GAA0B,IAAtBA,KAAKyT,MAAM5P,SAAgB7D,KAAK4T,SAApC,CAGA,IAAIA,EAAW5T,KAAKyU,OACfC,MAAM,SAAU5K,GACjBwK,EAAMtO,OAAO8D,MAAM,2CAA4CA,EAC3E,GACavH,KAAK,WAGF+R,EAAMV,WAAaA,IACnBU,EAAMV,SAAW,KACjBU,EAAMK,uBAEtB,GACQ3U,KAAK4T,SAAWA,CAbf,CAcT,EACIT,EAAsB7R,UAAUqT,qBAAuB,WACnD,IAAIC,EAAa5U,KAAK6U,qBAGtB7U,KAAK2T,cAAgBmB,KAAKC,MAAQH,EAC9B5U,KAAKyT,MAAM5P,QAAU7D,KAAKoS,gBAC1BpS,KAAKiU,eAMLjU,KAAKyT,MAAM5P,OAAS,GACpB7D,KAAKoU,sBAAsBQ,EAEvC,EACIzB,EAAsB7R,UAAU6S,oBAAsB,WAClD,OAAKnU,KAAK2T,cAGHvI,KAAK4J,IAAI,EAAGhV,KAAK2T,cAAgBmB,KAAKC,OAFlC,CAGnB,EACI5B,EAAsB7R,UAAU8S,sBAAwB,SAAUa,GAC9D,IAAIX,EAAQtU,KACZA,KAAK0T,cAAgBwB,WAAW,WAC5BZ,EAAMZ,cAAgB,KACtBY,EAAML,cACT,EAAEgB,GAO+B,iBAAvBjV,KAAK0T,eAAqD,OAAvB1T,KAAK0T,eAA8D,mBAA7B1T,KAAK0T,cAAcyB,OACnGnV,KAAK0T,cAAcyB,OAE/B,EACIhC,EAAsB7R,UAAU0S,mBAAqB,WAC7ChU,KAAK0T,gBACL0B,aAAapV,KAAK0T,eAClB1T,KAAK0T,cAAgB,KAEjC,EACIP,EAAsB7R,UAAUmT,KAAO,WACnC,OAAOhT,EAAUzB,UAAW,OAAQ,EAAG,WACnC,IAAIqV,EAAYpF,EAChB,OAAOxN,EAAYzC,KAAM,SAAU0I,GAC/B,OAA0B,IAAtB1I,KAAKyT,MAAM5P,OACJ,CAAC,IAEZwR,EAAarV,KAAKyT,MAAMlN,OAAO,EAAGvG,KAAKoS,iBACvCnC,EAAOmD,EAAUkC,OAAOrG,UAAUoG,GAC3B,CAAC,EAAcrV,KAAKuV,gBAAgBtF,IAC3D,EACA,EACA,EACIkD,EAAsB7R,UAAU8Q,cAAgB,WAC5C,IAAI1J,EACAzH,EAAkC,QAA7ByH,EAAK1I,KAAK+J,OAAOmI,cAAgC,IAAZxJ,OAAqB,EAAIA,EAAG0J,cAC1E,MAAoB,iBAANnR,GAAkBA,EAAI,EAAIA,EAAIqS,EAAWhC,OAAOY,OAAOE,aAC7E,EACIe,EAAsB7R,UAAUuT,mBAAqB,WACjD,IAAInM,EACAzH,EAAkC,QAA7ByH,EAAK1I,KAAK+J,OAAOmI,cAAgC,IAAZxJ,OAAqB,EAAIA,EAAGyJ,wBAE1E,OAAiB,KADU,iBAANlR,GAAkBA,GAAK,EAAIA,EAAIqS,EAAWhC,OAAOY,OAAOC,wBAErF,EACIgB,EAAsB7R,UAAUiU,gBAAkB,SAAUtF,GACxD,OAAOxO,EAAUzB,UAAW,OAAQ,EAAG,WACnC,IAAIsU,EAAQtU,KACZ,OAAOyC,EAAYzC,KAAM,SAAU0I,GAC/B,MAAO,CAAC,EAAc1I,KAAKwT,UAClBiB,KAAK,CACNe,QAAS,CACL,YAAaxV,KAAK+J,OAAOwH,OACzB,eAAgB,oBAEpBlL,OAAQ,OACR9B,UAAU,EAAIqL,EAAOrL,UAAUvE,KAAK+J,OAAOxF,SAAU,cACrDgO,eAAgBvS,KAAK+J,OAAOwI,eAC5BvM,OAAQhG,KAAKgG,QACdiK,GACE1N,KAAK,SAAUkT,GACZ,CAAC,IAAK,KAAKC,SAASD,EAAKE,YACzBrB,EAAMtO,OAAOS,MAAM,0CAGnB6N,EAAMtO,OAAOS,MAAM,+BAA+B4F,OAAOoJ,EAAKE,WAAY,OAAOtJ,OAAOoJ,EAAK/S,MAEzH,GACyBgS,MAAM,SAAUlO,GACjB8N,EAAMtO,OAAO8D,MAAM,uCAAuCuC,OAAO7F,EAAI6B,SACxE,GACrB,EACA,EACA,EAQI8K,EAAsB7R,UAAUuS,eAAiB,WAC7C,IACInL,EAAIsB,EAAI4L,EAAIC,EADZvB,EAAQtU,KAEZ,MAAO,CAEHuM,IAA0C,QAApC7D,EAAKzC,QAAQsG,IAAI7E,qBAAuC,IAAZgB,EAAgBA,EAAKzC,QAAQsG,IAE/EG,KAA4C,QAArC1C,EAAK/D,QAAQyG,KAAKhF,qBAAuC,IAAZsC,EAAgBA,EAAK/D,QAAQyG,KACjFjG,MAAO,WAGH,IAFA,IAAIiC,EACA8D,EAAO,GACFC,EAAK,EAAGA,EAAKnN,UAAUuE,OAAQ4I,IACpCD,EAAKC,GAAMnN,UAAUmN,GAEzB,GAAK6H,EAAMvK,OAAOtD,MAKlB,OADkD,QAAtCiC,EAAKzC,QAAQQ,MAAMiB,qBAAuC,IAAZgB,EAAgBA,EAAKzC,QAAQQ,OAC3EjE,WAAW,EAAGgK,EAC7B,EAEDG,KAA4C,QAArCiJ,EAAK3P,QAAQ0G,KAAKjF,qBAAuC,IAAZkO,EAAgBA,EAAK3P,QAAQ0G,KAEjF7C,MAA8C,QAAtC+L,EAAK5P,QAAQ6D,MAAMpC,qBAAuC,IAAZmO,EAAgBA,EAAK5P,QAAQ6D,MAE/F,EACWqJ,CACX,IAC6BD,EAAAC,sBAAGA,EC5RhC,IAAIL,EAAY9S,GAAQA,EAAK8S,UAAa,WAStC,OARAA,EAAW7S,OAAO8S,QAAU,SAASlQ,GACjC,IAAK,IAAImQ,EAAGhM,EAAI,EAAGvD,EAAInE,UAAUuE,OAAQmD,EAAIvD,EAAGuD,IAE5C,IAAK,IAAIiM,KADTD,EAAI1T,UAAU0H,GACO/G,OAAOqB,UAAUC,eAAeC,KAAKwR,EAAGC,KACzDpQ,EAAEoQ,GAAKD,EAAEC,IAEjB,OAAOpQ,CACf,EACWiQ,EAAStQ,MAAMxC,KAAMV,UAChC,EACImC,EAAazB,GAAQA,EAAKyB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,UAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUf,GAAS,IAAMgB,EAAKL,EAAUM,KAAKjB,GAAQ,CAAG,MAAOkB,GAAKJ,EAAOI,GAAM,CAC1F,SAASC,EAASnB,GAAS,IAAMgB,EAAKL,EAAiB,MAAEX,GAAU,CAAC,MAAOkB,GAAKJ,EAAOI,GAAM,CAC7F,SAASF,EAAKb,GAJlB,IAAeH,EAIaG,EAAOiB,KAAOP,EAAQV,EAAOH,QAJ1CA,EAIyDG,EAAOH,MAJhDA,aAAiBU,EAAIV,EAAQ,IAAIU,EAAE,SAAUG,GAAWA,EAAQb,EAAO,IAIhBqB,KAAKN,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUW,MAAMd,EAASC,GAAc,KAAKQ,OACtE,EACA,EACIM,EAAezC,GAAQA,EAAKyC,aAAgB,SAAUf,EAASgB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAK,EAAEK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEX,KAAMiB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOxD,IAAO,GAAG8C,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUxC,GAAK,OACzC,SAAcyC,GACV,GAAIf,EAAG,MAAM,IAAIgB,UAAU,mCAC3B,KAAOb,IAAMA,EAAI,EAAGY,EAAG,KAAOX,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARa,EAAG,GAASd,EAAU,OAAIc,EAAG,GAAKd,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAErB,KAAKoB,GAAI,GAAKA,EAAET,SAAWU,EAAIA,EAAErB,KAAKoB,EAAGc,EAAG,KAAKpB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGa,EAAK,CAAS,EAARA,EAAG,GAAQb,EAAE3B,QACzBwC,EAAG,IACP,KAAK,EAAG,KAAK,EAAGb,EAAIa,EAAI,MACxB,KAAK,EAAc,OAAXX,EAAEC,QAAgB,CAAE9B,MAAOwC,EAAG,GAAIpB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIc,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKX,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMf,EAAIE,EAAEG,MAAML,EAAIA,EAAEgB,OAAS,GAAKhB,EAAEA,EAAEgB,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEX,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVW,EAAG,MAAcb,GAAMa,EAAG,GAAKb,EAAE,IAAMa,EAAG,GAAKb,EAAE,IAAM,CAAEE,EAAEC,MAAQU,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYX,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIa,EAAI,KAAO,CACpE,GAAIb,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIrD,KAAK4D,GAAK,KAAO,CAC9Db,EAAE,IAAIE,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBF,EAAKhB,EAAKlB,KAAKE,EAASqB,EAC3B,CAAC,MAAOX,GAAKsB,EAAK,CAAC,EAAGtB,GAAIQ,EAAI,CAAE,CAAW,QAAED,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARa,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAExC,MAAOwC,EAAG,GAAKA,EAAG,QAAU,EAAGpB,MAAM,EAC9E,CAtBgDJ,CAAK,CAACuB,EAAGxC,GAAM,CAAE,CAuBrE,EACAhB,OAAOc,eAAeuL,EAAS,aAAc,CAAEpL,OAAO,IACxCoL,EAAAwJ,YAAQ,EACtB,IAAIlG,EAAShK,EACTmQ,EAAU1C,EACV2C,EAA4BzC,EAC5BD,EAAa2C,EAEbC,EAAgB,QAEhBC,EAAY,KACZL,EAAwB,WACxB,SAASA,EAAO/B,EAAMP,QACA,IAAdO,IAAmBA,EAAO,CAAE,GAChC/T,KAAKoW,iBAAkB,EACvBpW,KAAKqW,QAAU,KACfrW,KAAKsW,uBAAyB,GAC9BtW,KAAKuW,sBAAwB,GAC7BvW,KAAKwW,sBAAwB,GAC7BxW,KAAKyW,gBAAkB,IAAIC,IAC3B1W,KAAK2W,WAAa,CACdpP,KAAM,uBACNgH,IAAK,6EACLqI,QAAS,UAEb5W,KAAK+J,OAAS+I,EAASA,EAAS,CAAE,EAAEQ,EAAWhC,QAASyC,GACxD/T,KAAK6W,cACL7W,KAAK8W,YAActD,EACnBxT,KAAK+W,eAAiB,IAAIf,EAA0B7C,sBAAsBnT,KAAK+J,OAAQ/J,KAAK8W,aAC5F9W,KAAKgG,QAAS,EAAI4J,EAAO5J,QAAQhG,MACjCA,KAAKgX,yBAAyBjD,EAClC,CAqbA,OApbA+B,EAAOxU,UAAU2V,WAAa,WAC1B,OAAOjX,KAAK2W,WAAWC,OAC/B,EACId,EAAOxU,UAAU4V,YAAc,WAC3B,OAAOlX,KAAK2W,UACpB,EAQIb,EAAOxU,UAAU6V,YAAc,SAAUC,GACrCpX,KAAK2W,WAAaS,CAC1B,EACItB,EAAOxU,UAAUwS,UAAY,SAAUC,GAEnC,IAAK,IAAI1T,UADS,IAAd0T,IAAmBA,EAAO,CAAE,GAClBA,EACV/T,KAAK+J,OAAO1J,GAAK0T,EAAK1T,GAK1B,OAHAL,KAAKgX,yBAAyBjD,GAC9B/T,KAAK+W,eAAejD,UAAU9T,KAAK+J,QACnC/J,KAAKqX,cACErX,IACf,EAMI8V,EAAOxU,UAAU0V,yBAA2B,SAAUjD,GAClD,IAAIrL,GACuB,IAAvBqL,EAAK9B,gBAGTjS,KAAKgG,OAAO2G,KAAK,2HACjB3M,KAAK+J,OAAOE,SAAW6I,EAASA,EAASA,EAAS,CAAE,EAAmC,QAA/BpK,EAAK1I,KAAK+J,OAAOE,gBAAkC,IAAZvB,EAAgBA,EAAK,CAAE,GAAI,CAAEwB,SAAS,EAAMjE,SAAS,IAAS8N,EAAK9J,UAC1K,EACI6L,EAAOxU,UAAU+V,YAAc,WAC3B,IAAI/C,EAAQtU,MACQA,KAAKoW,gBACnBpW,KAAK+J,OAAO8I,UAAUxO,OAAO,SAAUiT,GAAU,OAAOA,EAAOxH,0BAC/D9P,KAAK+J,OAAO8I,WACJrF,QAAQ,SAAU8J,GAAU,OAAOA,EAAOvH,KAAKuE,EAAO,GACpEtU,KAAKoW,iBAAkB,CAC/B,EACIN,EAAOxU,UAAUuV,YAAc,WAC3B7W,KAAKqW,QAAU,IAAIN,EAAQ3F,YAAY,CAAEtI,QAAS,CAAE,EAAE6I,aAAc,CAAE,EAAEI,YAAa,IAAM/Q,KAAK+J,OAAOuI,eAC/G,EACIwD,EAAOxU,UAAUiW,aAAe,SAAU5N,GAEtC,OADA3J,KAAKsW,uBAAuBxW,KAAK6J,GAC1B3J,IACf,EACI8V,EAAOxU,UAAUkW,YAAc,SAAU7N,GAErC,OADA3J,KAAKuW,sBAAsBzW,KAAK6J,GACzB3J,IACf,EACI8V,EAAOxU,UAAUkK,YAAc,SAAU7B,GAErC,OADA3J,KAAKwW,sBAAsB1W,KAAK6J,GACzB3J,IACf,EACI8V,EAAOxU,UAAUmP,WAAa,SAAU3I,GAIpC,MAHuB,iBAAZA,GAAmC,MAAXA,GAC/B9H,KAAKqW,QAAQ5F,WAAW3I,GAErB9H,IACf,EACI8V,EAAOxU,UAAUoP,gBAAkB,SAAUC,GAIzC,MAH4B,iBAAjBA,GAA6C,MAAhBA,GACpC3Q,KAAKqW,QAAQ3F,gBAAgBC,GAE1B3Q,IACf,EACI8V,EAAOxU,UAAUsP,kBAAoB,WAEjC,OADA5Q,KAAKqW,QAAQzF,oBACN5Q,IACf,EACI8V,EAAOxU,UAAUmW,aAAe,SAAU3P,GAMtC,OALA9H,KAAKgG,OAAO2G,KAAK,oHACjB3M,KAAKqW,QAAQrF,QACU,iBAAZlJ,GAAoC,OAAZA,GAC/B9H,KAAKqW,QAAQ5F,WAAW3I,GAErB9H,IACf,EACI8V,EAAOxU,UAAU0P,MAAQ,WAErB,OADAhR,KAAKqW,QAAQrF,QACNhR,IACf,EACI8V,EAAOxU,UAAUoW,OAAS,SAAUC,EAAYpQ,EAAMqQ,GAClD,IAAItD,EAAQtU,UACM,IAAduH,IAAmBA,OAAOhH,QACX,IAAfqX,IAAoBA,OAAQrX,GAChC,IAAI0H,EAASjI,KAAK2E,WAAWgT,EAAYpQ,EAAMqQ,GAG3CC,EAAiB5P,GAAUA,EAAO/B,UAAY+B,EAAO/B,UAAUE,IAAI,SAAUoC,GAAS,OAAO,EAAIoH,EAAO/K,cAAc2D,EAAO,GAAM,KACnIsP,EAAsB9X,KAAK+X,mBAAmB9P,GAClD,OAAI6P,aAA+B1Q,QAC/B,EAAIwI,EAAO9K,wBAAwBmD,EAAQjI,KAAKwW,sBAAuBsB,IAChE,GAEPA,aAA+BhW,SAC/BgW,EAAoBvV,KAAK,SAAUlB,GAC/B,OAAIA,aAAkB+F,QAClB,EAAIwI,EAAO9K,wBAAwBmD,EAAQqM,EAAMkC,sBAAuBnV,IACjE,GAEJiT,EAAM0D,OAAO/P,EAAQ4P,EAC5C,IACmB,IAEX7X,KAAKgY,OAAO/P,EAAQ4P,GAAgBnD,MAAM,SAAUuD,GAAM,IACnD,EACf,EAOInC,EAAOxU,UAAU4W,YAAc,SAAUP,EAAYpQ,EAAMqQ,GACvD,IAAItD,EAAQtU,KAGZ,YAFkB,IAAduH,IAAmBA,OAAOhH,QACX,IAAfqX,IAAoBA,OAAQrX,GACzB,IAAIuB,QAAQ,SAAUC,EAASC,GAClC,IAWImW,EAX6BC,EACzBC,EAYJF,EADAR,EAAWnM,YACQmM,EAEdpQ,GAAQA,EAAKiE,YACCjE,EAEdqQ,GAASA,EAAMpM,YACDoM,EAEdrQ,GAAwB,iBAATA,EACDA,EAEdqQ,IAIcrQ,EAAO,IA3BtB8Q,GADyBD,EA8BhBD,GA7B2B3M,YACxC4M,EAAc5M,YAAc,SAAUhF,GAElC,GADA6R,SAA0EA,EAAoB7W,KAAK8S,EAAO9N,GACtGA,EACA,OAAOxE,EAAOwE,GAElBzE,GACpB,EAuBYuS,EAAMoD,OAAOC,EAAYpQ,EAAMqQ,EAC3C,EACA,EACI9B,EAAOxU,UAAUqD,WAAa,SAAUgT,EAAYpQ,EAAMqQ,QACpC,IAAdrQ,IAAmBA,OAAOhH,QACX,IAAfqX,IAAoBA,OAAQrX,GAChC,IAAI0H,GAAS,EAAI2H,EAAOjL,YAAYgT,GAChCpQ,GAA0B,iBAATA,IAEjBA,EAAO,CAAEA,KADDsF,OAAOtF,KASnB,GANIA,IACAU,GAAS,EAAI2H,EAAOnK,aAAawC,EAAQV,IAExB,iBAAVqQ,GAAgC,OAAVA,IAC7B3P,GAAS,EAAI2H,EAAOnK,aAAawC,EAAQ2P,KAEzC,EAAIhI,EAAOpK,eAAeyC,GAC1B,OAAO,KAEX,IAAIH,EAAU9H,KAAKqW,QAAQ7F,YAAY,WACnC8H,EAAatY,KAAKuY,gBAAgBtQ,EAAOwK,MACzC+F,EAAcxY,KAAKuY,gBAAgBzQ,EAAc,MACjD2Q,EAAazY,KAAKuY,gBAAgBvY,KAAK+J,OAAO0I,MAE9CA,EAAO6F,EAAWjM,OAAOmM,GAAanM,OAAOoM,GAC7CC,EAAajG,EAAKpO,OAAO,SAAU8M,EAAM5I,GAAS,OAAOkK,EAAKxT,QAAQkS,KAAU5I,CAAQ,GAsB5F,OArBAN,GAAS,EAAI2H,EAAOlK,OAAOuC,EAAQ,CAC/BV,KAAMU,EAAOV,MAAQ,QACrBO,SAAS,EAAI8H,EAAOlK,OAAOoC,EAASG,EAAOH,SAC3C6J,YAAa1J,EAAO0J,aAAe3R,KAAK+J,OAAO4H,YAC/CF,YAAaxJ,EAAOwJ,aAAezR,KAAK+J,OAAO0H,YAC/CG,UAAW3J,EAAO2J,WAAa5R,KAAK+J,OAAO6H,UAC3CC,OAAQ5J,EAAO4J,QAAU7R,KAAK+J,OAAO8H,OACrCC,SAAU7J,EAAO6J,UAAY9R,KAAK+J,OAAO+H,SACzCW,KAAMiG,IAILzM,MAAMC,QAAQjE,EAAO/B,YAAe+B,EAAO/B,UAAUrC,SAC1B,iBAAjBoE,EAAOtJ,OAAuBsJ,EAAOtJ,MAAMmP,OAKlD7F,EAAO/B,WAAY,EAAI0J,EAAOtK,eAAe2C,EAAOtJ,OAAO,EAAOqB,KAAKgG,SAJvEiC,EAAOtJ,OAAQ,EAAIiR,EAAOtL,sBAC1B2D,EAAO/B,WAAY,EAAI0J,EAAOtK,eAAe2C,EAAOtJ,OAAO,EAAMqB,KAAKgG,UAMvEiC,CACf,EACI6N,EAAOxU,UAAUuP,cAAgB,SAAUxI,EAAS0L,GAChD,GAAK/T,KAAK+J,OAAOiI,mBAAjB,CAIA,IAAI2G,GAAW,EAAI/I,EAAO/K,eAD1BkP,EAAOA,GAAQ,IAC8B4E,UACzCC,EAAW7E,EAAK6E,UAAY,SAC5BC,GAAY,IAAI/D,MAAOgE,cAO3B,OANA9Y,KAAKqW,QAAQxF,cAAc,CACvB+H,SAAUA,EACVvQ,QAASA,EACTsQ,SAAUA,EACVE,UAAWA,IAER7Y,IAXP,CAYR,EAII8V,EAAOxU,UAAUyX,SAAW,SAAU9I,IAClC,EAAIL,EAAO7L,qBAAqB/D,KAAKgG,OAAQ,uBAAwB,qBACrEhG,KAAKoK,MAAM,MAAO6F,EAC1B,EACI6F,EAAOxU,UAAU8I,MAAQ,SAAUgD,EAAM6C,GACrC,IACIvH,EADA4L,EAAQtU,KAEQ,iBAAToN,IACP6C,EAAO7C,EACPA,EAAqC,QAA7B1E,EAAK0E,EAAiB,kBAA2B,IAAZ1E,EAAgBA,OAAKnI,GAEtE,IAAIoQ,EAAe3Q,KAAKqW,QAAQ7F,YAAY,iBAAmB,GAC3D5G,EAAUkJ,EAASA,EAAS,CAAEkG,WAAY5L,EAAM6L,IAAI,IAAInE,MAAOgE,eAAiBnI,GAAeV,GAI/F2D,GAAW,EAAIhE,EAAO3K,wBAAwB2E,EAAS5J,KAAKuW,sBAAuBvW,KAAKgG,QACvFzD,KAAK,SAAU2W,GAChB,IAAIxQ,EAAIsB,EACR,GAAKkP,EAAL,CAIA,IAAIvO,EAAgH,QAAlGX,EAAoC,QAA9BtB,EAAK4L,EAAMvK,OAAOmI,cAAgC,IAAZxJ,OAAqB,EAAIA,EAAG2J,4BAA8C,IAAZrI,EAAgBA,EAAK,KAC5I,EAAI4F,EAAO7K,mBAAmB6E,EAASe,WAIrCf,EAAQW,IACf+J,EAAMyC,eAAexK,IAAI3C,IAJrB0K,EAAMtO,OAAOS,MAAM,kDAHvB,MAFI6N,EAAMtO,OAAOS,MAAM,qDAUnC,GACaiO,MAAM,SAAUlO,GAEjB8N,EAAMtO,OAAO8D,MAAM,mDAAoDtD,EACnF,GACa2S,QAAQ,WACT7E,EAAMmC,gBAAgB2C,OAAOxF,EACzC,GACQ5T,KAAKyW,gBAAgB4C,IAAIzF,EACjC,EAKIkC,EAAOxU,UAAU+S,WAAa,WAC1B,OAAO5S,EAAUzB,UAAW,OAAQ,EAAG,WACnC,OAAOyC,EAAYzC,KAAM,SAAU0I,GAC/B,OAAQA,EAAG1F,OACP,KAAK,EACD,OAAMhD,KAAKyW,gBAAgB6C,KAAO,EAC3B,CAAC,EAAaxX,QAAQyX,WAAWtN,MAAMuN,KAAKxZ,KAAKyW,mBADX,CAAC,EAAa,GAE/D,KAAK,EACD/N,EAAGzF,OACHyF,EAAG1F,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAchD,KAAK+W,eAAe1C,cAEtE,EACA,EACA,EACIyB,EAAOxU,UAAUmY,iBAAmB,WAChC,OAAOzZ,KAAKqW,QAAQ7F,YAAY,eAAelD,OACvD,EACIwI,EAAOxU,UAAUoY,aAAe,WAC5B,OAAO1Z,KAAKqW,QAAQ7F,YAAY,UACxC,EACIsF,EAAOxU,UAAUqY,kBAAoB,WACjC,OAA+B,IAA3B3Z,KAAK+J,OAAOgI,aAGR/R,KAAK+J,OAAO0H,aAAezR,KAAK+J,OAAOyI,wBAAwBkD,SAAS1V,KAAK+J,OAAO0H,aACpG,EACIqE,EAAOxU,UAAUsY,eAAiB,SAAU3R,GACxC,IAAIuN,GAAU,EAAI5F,EAAOvL,QAAQ4D,EAAOuN,QAASxV,KAAK+J,OAAOmD,UAAY,GACrE2M,GAAU,EAAIjK,EAAOvL,QAAQyO,EAASA,EAAS,CAAA,EAAI7K,EAAO4R,UAAU,EAAIjK,EAAOzL,eAAeqR,EAAS,UAAWxV,KAAK+J,OAAOmD,SAClI,MAAO,CACHkK,SAAUpX,KAAK2W,WACf5F,YAAa,CACT7G,UAAWlK,KAAK+J,OAAOiI,mBACvB8H,MAAO7R,EAAO8R,eAAiB,IAEnCjQ,MAAO,CACH1B,MAAOH,EAAOV,KACdc,QAASJ,EAAOI,QAChBnC,UAAW+B,EAAO/B,UAClB8T,YAAa/R,EAAO+R,YACpBvH,KAAMxK,EAAOwK,KACbtK,QAAQ,EAAIyH,EAAO5H,WAAWC,EAAQjI,KAAKgG,SAE/CiU,QAAS,CACL1L,KAAK,EAAIqB,EAAOxL,WAAW6D,EAAOsG,IAAKvO,KAAK+J,OAAOmD,SACnD0E,UAAW3J,EAAO2J,UAClBC,OAAQ5J,EAAO4J,OACf/J,QAASG,EAAOH,QAChBoS,SAAUL,EACVM,QAAQ,EAAIvK,EAAOvL,QAAQ4D,EAAOkS,OAAQna,KAAK+J,OAAOmD,UAAY,CAAE,EACpEkN,SAAS,EAAIxK,EAAOvL,QAAQ4D,EAAOmS,QAASpa,KAAK+J,OAAOmD,UAAY,CAAC,GAEzEmN,OAAQ,CACJC,aAAcrS,EAAO0J,YACrB4I,iBAAkBtS,EAAOwJ,YACzBK,SAAU7J,EAAO6J,SACjBJ,SAAU1R,KAAK+J,OAAO2H,SACtB8I,MAAM,IAAI1F,MAAO2F,eAErBC,QAASzS,EAAOyS,SAAW,CAAC,EAExC,EACI5E,EAAOxU,UAAUiX,gBAAkB,SAAU9F,GACzC,OAAKA,EAGEA,EAAKpL,WAAW5I,MAAMyX,GAAe7R,OAAO,SAAUsW,GAAO,OAAOxE,EAAUrK,KAAK6O,EAAO,GAFtF,EAGnB,EACI7E,EAAOxU,UAAUyW,mBAAqB,SAAU9P,GAC5C,IAAIqM,EAAQtU,KACR4a,EAAoB,KACnB3S,IACDjI,KAAKgG,OAAOS,MAAM,gCAClBmU,EAAoB,IAAIxT,MAAM,kCAEH,IAA3BpH,KAAK+J,OAAOgI,aACZ/R,KAAKgG,OAAOS,MAAM,oDAAqDwB,GACvE2S,EAAoB,IAAIxT,MAAM,+BAE9BpH,KAAK2Z,sBACL3Z,KAAKgG,OAAOuG,IAAI,gGAAiGtE,GACjH2S,EAAoB,IAAIxT,MAAM,0CAE7BpH,KAAK+J,OAAOwH,SACbvR,KAAKgG,OAAO2G,KAAK,8DAA+D1E,GAChF2S,EAAoB,IAAIxT,MAAM,oBAElC,IAAIyT,GAAqB,EAAIjL,EAAO1K,yBAAyB+C,EAAQjI,KAAKsW,wBAK1E,OAJKsE,GAAsBC,EAAmBxZ,SAC1CrB,KAAKgG,OAAOS,MAAM,0EAA2EwB,GAC7F2S,EAAoB,IAAIxT,MAAM,yCAE9ByT,EAAmBrR,QAAQ3F,QAAUgX,EAAmBrR,QAAQsR,KAAK,SAAUzZ,GAAU,OAAOA,aAAkBS,OAAU,GACrHA,QAAQyX,WAAWsB,EAAmBrR,SACxCjH,KAAK,SAAUiH,GAKhB,IAJKoR,GAAsBpR,EAAQsR,KAAK,SAAUzZ,GAAU,MAAyB,aAAlBA,EAAO0Z,SAA0C,IAAjB1Z,EAAOH,KAAgB,KACtHoT,EAAMtO,OAAOS,MAAM,0EAA2EwB,GAC9F2S,EAAoB,IAAIxT,MAAM,iDAE9BwT,EACA,OAAOA,CAE3B,GAEeA,CACf,EACI9E,EAAOxU,UAAU0W,OAAS,SAAU/P,EAAQ+S,GACxC,IAAI1G,EAAQtU,KAeZ,OAdIA,KAAK+J,OAAOiI,oBACZhS,KAAK6Q,cAAc,qBAAsB,CACrC+H,SAAU,SACVD,SAAU,CACNtQ,QAASJ,EAAOI,QAChBd,KAAMU,EAAOV,KACb5I,MAAOsJ,EAAOtJ,SAGtBsJ,EAAO8R,cAAgB/Z,KAAKqW,QAAQ7F,YAAY,gBAGhDvI,EAAO8R,cAAgB,IAEpB,EAAInK,EAAOzK,uBAAuB6V,EAAmBhb,KAAKib,wBAC5D1Y,KAAK,SAAU2Y,GAAkB,OAAOzZ,EAAU6S,OAAY,OAAQ,EAAG,WAC1E,IAAI1K,EACJ,OAAOnH,EAAYzC,KAAM,SAAU0I,GAK/B,OAJAwS,EAAe1N,QAAQ,SAAU2N,EAAQ5S,GACrCN,EAAO/B,UAAUqC,GAAO4S,OAASA,CACrD,GACgBvR,EAAU5J,KAAK4Z,eAAe3R,GACvB,CAAC,EAAcjI,KAAK8W,YAClBrC,KAAK,CACNe,QAAS,CACL,YAAaxV,KAAK+J,OAAOwH,OACzB,eAAgB,mBAChB6J,OAAU,+BAEd/U,OAAQ,OACR9B,UAAU,EAAIqL,EAAOrL,UAAUvE,KAAK+J,OAAOxF,SAAU,kBACrDgO,eAAgBvS,KAAK+J,OAAOwI,eAC5BvM,OAAQhG,KAAKgG,QACd4D,GACvB,EACS,EAAE,GACErH,KAAK,SAAU8Y,GAChB,GAAuB,MAAnBA,EAAI1F,WAGJ,OAFA,EAAI/F,EAAO9K,wBAAwBmD,EAAQqM,EAAMkC,sBAAuB,IAAIpP,MAAM,sBAAsBiF,OAAOgP,EAAI1F,cACnHrB,EAAMtO,OAAO2G,KAAK,2DAA2DN,OAAOgP,EAAI1F,cACjF,EAEX,IAAI2F,EAAOtM,KAAK7I,MAAMkV,EAAI3Y,MAAM6Y,IAChC,EAAI3L,EAAO9K,yBAAwB,EAAI8K,EAAOlK,OAAOuC,EAAQ,CACzDsT,GAAID,IACJhH,EAAMkC,uBACV,IAAIgF,GAAY,EAAI5L,EAAOrL,UAAU+P,EAAMvK,OAAOyH,YAAa,UAAUnF,OAAOiP,IAEhF,OADAhH,EAAMtO,OAAO0G,KAAK,uBAA4BL,OAAOmP,KAC9C,CACnB,GACa9G,MAAM,SAAUlO,GAGjB,OAFA8N,EAAMtO,OAAO8D,MAAM,kDAAmD,WAAWuC,OAAO7F,EAAI6B,WAC5F,EAAIuH,EAAO9K,wBAAwBmD,EAAQqM,EAAMkC,sBAAuBhQ,IACjE,CACnB,EACA,EACWsP,CACX,IACcxJ,EAAAwJ,OAAGA,WCpgBjB7V,OAAOc,eAAe0a,EAAS,aAAc,CAAEva,OAAO,gBCAtD,IAAInB,EAAmBC,GAAQA,EAAKD,kBAAqBE,OAAOC,OAAM,SAAaC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOP,OAAOQ,yBAAyBL,EAAGC,GACzCG,KAAS,QAASA,GAAQJ,EAAEM,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOV,EAAEC,EAAG,IAE3DJ,OAAOc,eAAeZ,EAAGG,EAAIE,EAChC,EAAA,SAAcL,EAAGC,EAAGC,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,EACb,GACGW,EAAsBhB,GAAQA,EAAKgB,qBAAwBf,OAAOC,OAAM,SAAaC,EAAGc,GACxFhB,OAAOc,eAAeZ,EAAG,UAAW,CAAEU,YAAY,EAAMK,MAAOD,GAClE,EAAI,SAASd,EAAGc,GACbd,EAAW,QAAIc,CACnB,GACIya,EAAgB1b,GAAQA,EAAK0b,cAAiB,SAAStb,EAAG0D,GAC1D,IAAK,IAAImP,KAAK7S,EAAa,YAAN6S,GAAoBhT,OAAOqB,UAAUC,eAAeC,KAAKsC,EAASmP,IAAIlT,EAAgB+D,EAAS1D,EAAG6S,EAC3H,EACI9R,EAAgBnB,GAAQA,EAAKmB,cAAiB,SAAUC,GACxD,GAAIA,GAAOA,EAAIV,WAAY,OAAOU,EAClC,IAAIC,EAAS,CAAA,EACb,GAAW,MAAPD,EAAa,IAAK,IAAIf,KAAKe,EAAe,YAANf,GAAmBJ,OAAOqB,UAAUC,eAAeC,KAAKJ,EAAKf,IAAIN,EAAgBsB,EAAQD,EAAKf,GAEtI,OADAW,EAAmBK,EAAQD,GACpBC,CACX,EACIsa,EAAmB3b,GAAQA,EAAK2b,iBAAoB,SAAUva,GAC9D,OAAQA,GAAOA,EAAIV,WAAcU,EAAM,CAAEyO,QAAWzO,EACxD,EACAnB,OAAOc,eAAc+C,EAAU,aAAc,CAAE5C,OAAO,IACtD4C,EAAA8X,QAAkB9X,WAAmBA,EAAe+X,KAAA/X,EAAAgY,MAAgBhY,EAAiBgS,YAAK,EAC1F,IAAIiG,EAAmBJ,EAAgB/V,GACnCoW,EAAW3I,EACfpT,OAAOc,eAAe+C,EAAS,SAAU,CAAEjD,YAAY,EAAMC,IAAK,WAAc,OAAOkb,EAASlG,MAAO,IACvG4F,EAAanI,EAAoBzP,GACjCA,EAAAgY,MAAgB3a,EAAa8U,GAC7BnS,EAAA+X,KAAe1a,EAAa8a,GAC5BnY,EAAAoY,SAAmB/a,EAAagb,GAChCrY,EAAkB8X,QAAA,CACdQ,cAAeL,EAAiBlM,QAKhCqC,OAAQ6J,EAAiBlM,sBC5C7B5P,OAAOc,eAAesb,EAAS,aAAc,CAAEnb,OAAO,IACtDmb,EAAAC,YAA0CD,EAAAE,4BAA0BF,EAAAG,iBAA2CH,EAAAI,uBAAyBJ,EAAAK,oBAA6DL,EAAAM,mDAAsC,EAC3O,IAAIC,EAAShX,EACT5B,EAAqB4Y,EAAOf,KAAK7X,mBACjCqN,EAAkCuL,EAAOV,SAAS7K,gCAMtD,SAASwL,EAAmBC,EAASC,GACjC,GAAK9Q,MAAMC,QAAQ6Q,IAGdD,GAA2C,mBAAzBA,EAAQE,aAG/B,IAAK,IAAIvQ,EAAK,EAAGwQ,EAAeF,EAAYtQ,EAAKwQ,EAAapZ,OAAQ4I,IAAM,CACxE,IAAIyQ,EAAOD,EAAaxQ,GACxB,GAAoB,iBAATyQ,GAAqC,IAAhBA,EAAKrZ,OAArC,CAGA,IAAI3C,EAAQ4b,EAAQE,aAAaE,GACjC,GAAIhc,GAASA,EAAM4M,OAEf,OAAOqP,EADUjc,EAAM4M,OAAOC,QAAQ,OAAQ,KAClB,IAJ/B,CAMJ,CAEL,CACA,SAASqP,EAAoBN,EAASC,GAElC,QADwB,IAApBA,IAAyBA,EAAa1L,IACrCyL,IAAYA,EAAQO,QACrB,MAAO,GAEX,IAAI9V,EAAOuV,EAAQO,QAAQvW,cAE3B,GAAa,SAATS,EACA,MAAO,GAEX,IAAI+V,EAAYT,EAAmBC,EAASC,GAC5C,GAAIO,EACA,OAAOA,EAEPR,EAAQvB,KACRhU,GAAQ,IAAI8E,OAAOyQ,EAAQvB,KAE/B,IAAIgC,EAAmBT,EAAQE,aAAa,SACxCO,GACAA,EAAiB9e,MAAM,OAAO+O,QAAQ,SAAUgQ,GAC5CjW,GAAQ,IAAI8E,OAAOmR,EAC/B,GAEI,CAAC,MAAO,OAAQ,QAAS,QAAQhQ,QAAQ,SAAUiQ,GAC/C,IAAIP,EAAOJ,EAAQE,aAAaS,GAC5BP,IACA3V,GAAQ,IAAI8E,OAAOoR,EAAU,MAAOpR,OAAO6Q,EAAM,MAE7D,GACI,IAAIQ,EA6GR,SAAqBZ,GACjB,IACI,IAAIa,EAAQb,EAAQc,WAAWC,WAC3BC,EAAa,GAMjB,OALA7R,MAAM3K,UAAUkM,QAAQhM,KAAKmc,EAAO,SAAUI,GACtCA,EAAKV,SAAWU,EAAKV,UAAYP,EAAQO,SACzCS,EAAWhe,KAAKie,EAEhC,GACeD,CACV,CACD,MAAO1b,GACH,MAAO,EACV,CACL,CA3HmB4b,CAAYlB,GAI3B,OAHIY,EAAS7Z,OAAS,IAClB0D,GAAQ,cAAc8E,OAAOJ,MAAM3K,UAAUrC,QAAQuC,KAAKkc,EAAUZ,GAAW,EAAG,MAE/EvV,CACX,CAuDA,SAASvI,EAASif,GACd,OAA8C,IAAvCA,EAAK5W,WAAWpI,QAAQ,SACnC,CACA,SAASwd,EAASlO,GAEd,IAAI2P,EAAQ3P,EAAI2P,MAAM,iEAAmE,CAAA,EACzF,MAAO,CACHC,SAAUD,EAAM,GAChBE,KAAMF,EAAM,GACZG,SAAUH,EAAM,GAExB,CAqDA,SAASf,EAASmB,EAAQza,GAItB,OAHIya,EAAOza,OAASA,IAChBya,EAASA,EAAOC,OAAO,EAAG1a,GAAU,OAEjCya,CACX,CA3H2BjC,EAAAe,oBAAGA,EAgBCf,EAAAM,wBAf/B,SAASA,EAAwBG,EAASC,QACd,IAApBA,IAAyBA,EAAa1L,GAC1C,IAAI9J,EAAO6V,EAAoBN,EAASC,GAExC,GAAIxV,GAAQsV,EAAmBC,EAASC,GACpC,OAAOxV,EAEX,GAAIuV,EAAQc,YAAcd,EAAQc,WAAWP,QAAS,CAClD,IAAImB,EAAa7B,EAAwBG,EAAQc,WAAYb,GAC7D,GAAIyB,EAAW3a,OAAS,EACpB,MAAO,GAAGwI,OAAOmS,EAAY,OAAOnS,OAAO9E,EAElD,CACD,OAAOA,CACX,EAS2B8U,EAAAK,oBAP3B,SAA6BI,GACzB,IAAI2B,EAAO3B,EAAQ4B,aAAe5B,EAAQ6B,WAAa,GAIvD,OAHKF,GAA0B,WAAjB3B,EAAQ1P,MAAsC,WAAjB0P,EAAQ1P,OAC/CqR,EAAO3B,EAAQ5b,OAEZic,EAASsB,EAAK3Q,OAAQ,IACjC,EA8BmBuO,EAAAuC,YA5BnB,WACI,IAAIC,EAAS7a,IACb,IAAK6a,EAAOC,MACR,OAAO,EAEX,GAAI9f,EAAS6f,EAAOC,OAChB,OAAO,EAEX,GAAwB,oBAAbC,SACP,OAAO,EAIX,IACI,IAAIC,EAAUD,SAASE,cAAc,UACrCD,EAAQE,MAAMC,QAAU,OACxBJ,SAASK,KAAKC,YAAYL,GAC1B,IAAI3d,EAAS2d,EAAQM,cAAcR,OAAS9f,EAASggB,EAAQM,cAAcR,OAE3E,OADAC,SAASK,KAAKG,YAAYP,GACnB3d,CACV,CACD,MAAOmF,GACCP,SAAWA,QAAQ0G,MACnB1G,QAAQ0G,KAAK,6CAA+CnG,EAEnE,CACD,OAAO,CACX,EAcgB6V,EAAAI,SAAGA,EAeKJ,EAAAG,iBAdxB,SAA0BjO,GACtB,IAAIiR,EAAS/C,EAASlO,GAClBkR,EAAehD,EAASsC,SAASW,KAErC,OAAKF,EAAOpB,MAASoB,EAAOrB,SAIxBqB,EAAOrB,WAAasB,EAAatB,UAAYqB,EAAOpB,OAASqB,EAAarB,KACnEoB,EAAOnB,SAGX,GAAGhS,OAAOmT,EAAOrB,SAAU,OAAO9R,OAAOmT,EAAOpB,MAAM/R,OAAOmT,EAAOnB,UAPhEmB,EAAOnB,QAQtB,EAUoBhC,EAAAsD,aARpB,SAAsBrB,GAClB,IAAIjd,EAAS,CAAA,EAKb,OAJAid,EAAO7f,MAAM,WAAW+O,QAAQ,SAAUiB,GACtC,IAAI/F,EAAK+F,EAAKhQ,MAAM,IAAK,GAAIwO,EAAMvE,EAAG,GAAIxH,EAAQwH,EAAG,GACrDrH,EAAO4L,GAAO/L,CACtB,GACWG,CACX,EAYoBgb,EAAAE,aAVpB,SAAsBjV,GAClB,GAAsB,iBAAXA,EAAX,CAGA,IAAIsY,EAAU,GACd,IAAK,IAAIvf,KAAKiH,EACVsY,EAAQ9f,KAAKO,EAAI,IAAMiH,EAAOjH,IAElC,OAAOuf,EAAQvR,KAAK,IALnB,CAML,EA2BmBgO,EAAAC,YAAG,WAClB,IAAIA,GAAc,EAElB,GAAsB,oBAAXjN,OACP,OAAOiN,EAOX,GALKjN,OAAOwQ,OACRvD,GAAc,GAIdjN,OAAOyQ,WACP,IAC8C,IAAtC,IAAKzQ,OAAOyQ,WAAW,IAAKC,QAC5BzD,GAAc,EAGrB,CACD,MAAO3U,GAAO,CAElB,OAAO2U,CACV,CArBqB,YChMtBrc,OAAOc,eAAeif,EAAS,aAAc,CAAE9e,OAAO,IACtD8e,EAAAC,QAAkBD,EAAAE,uBAAiC,EAEnD,IAGIC,EAHAvD,GAAShX,EACTnB,GAAamY,GAAOf,KAAKpX,WAAYE,GAAaiY,GAAOf,KAAKlX,WAAYX,GAAqB4Y,GAAOf,KAAK7X,mBAC3Goc,GAAgB,EASKJ,EAAAE,kBAPzB,WACIE,IAAiB,EACjBhL,aAAa+K,GACbA,EAAiBjL,WAAW,WACxBkL,GAAgB,CACxB,EACA,EAyDeJ,EAAAC,QAtDf,SAAiB1S,GAEb,YADqB,IAAjBA,IAAsBA,EAAUvJ,MAC7B,CACH+L,KAAM,SAAUzD,GACZ7H,GAAW8I,EAAS,UAAW,SAAU9F,GAuCrC,OAAO,SAAUiI,EAAKnB,EAAK3P,EAAMyhB,EAAK7Z,GAElC,OAxCU,SAAUkJ,EAAKnB,EAAK3P,EAAMyhB,EAAK7Z,GAEzC,GADA8F,EAAOtG,OAAOS,MAAM,kCAAmCnH,WACnD8gB,GAAgB,EAGhB,OAFA9T,EAAOtG,OAAOS,MAAM,0DAA2DnH,gBAC/E8gB,IAAiB,GAIrB,GAAa,IAATxhB,GAAc,kBAAkBkN,KAAK4D,GACjCpD,EAAOvC,OAAO2I,gBAEdpG,EAAOtG,OAAO2G,KAAK,iFAAkFrN,eAH7G,CAOA,IAAI2I,EAAStD,GAAW6B,GACnByB,EAAOV,OACRU,EAAOV,KAAO,kBAEbU,EAAOI,UACRJ,EAAOI,QAAUqH,GAEhBzH,EAAOtJ,QAERsJ,EAAOtJ,MAAQ,CAACsJ,EAAOI,QAAS,eAAgBkG,GAAO,UAAW,IAAK3P,GAAQ,EAAG,IAAKyhB,GAAO,EAAG,KAAKhS,KAAK,KAE/G/B,EAAOuE,cAA+B,mBAAhB5I,EAAOV,MAA8BU,EAAOV,KAA2B,mBAAmB8E,OAAOpE,EAAOV,MAApD,iBAA2D,CACjIqR,SAAU,QACVD,SAAU,CACNpR,KAAMU,EAAOV,KACbc,QAASJ,EAAOI,QAChB1J,MAAOsJ,EAAOtJ,SAGlB2N,EAAOvC,OAAO2I,gBACdpG,EAAOoL,OAAOzP,EArBjB,CAuBrB,CAEoB+X,CAAQtQ,EAAKnB,EAAK3P,EAAMyhB,EAAK7Z,GACL,mBAAbiB,GACAA,EAASjF,MAAM+K,EAASjO,UAGvD,CACA,EACS,EAET,YCrEAW,OAAOc,eAAeuf,GAAS,aAAc,CAAEpf,OAAO,IAEtD,IAAI0b,GAAShX,EACTnB,GAAamY,GAAOf,KAAKpX,WAAYE,GAAaiY,GAAOf,KAAKlX,WAAYX,GAAqB4Y,GAAOf,KAAK7X,mBA4DhGsc,GAAAzQ,QA1Df,SAAmBtC,GAEf,YADqB,IAAjBA,IAAsBA,EAAUvJ,MAC7B,CACH+L,KAAM,SAAUzD,GACPA,EAAOvC,OAAO4I,0BAGnBlO,GAAW8I,EAAS,uBAAwB,SAAU9F,GAyClD,OAAO,SAAU8Y,IAvCjB,SAA8BA,GAC1B,IAAI7X,EAEJ,GADA4D,EAAOtG,OAAOS,MAAM,+CAAgDnH,WAC/DgN,EAAOvC,OAAO4I,yBAAnB,CAGA,IAcItK,EAdAmY,EAASD,EAAsBC,OACnC,GAAIA,aAAkBpZ,MAAO,CACzB,IAAIa,EAAStD,GAAW6b,GAUxB,OATKvY,EAAOtJ,QACRsJ,EAAOtJ,MAAQ,GAAG0N,OAAOmU,EAAOnY,QAAS,2BAE7CJ,EAAOI,QAAU,qCAAqCgE,OAAOmU,GAC7DlU,EAAOuE,cAAc,gCAAgCxE,OAAOpE,EAAOV,MAAO,CACtEqR,SAAU,QACVD,SAAU,CAAEpR,KAAMU,EAAOV,KAAMc,QAASJ,EAAOI,QAAS1J,MAAOsJ,EAAOtJ,cAE1E2N,EAAOoL,OAAOzP,EAEjB,CAED,GAAsB,iBAAXuY,EACPnY,EAAUmY,OAGV,IACInY,EAA4C,QAAjCK,EAAKsG,KAAKC,UAAUuR,UAAiC,IAAZ9X,EAAgBA,EAAK,oBAC5E,CACD,MAAOuP,GAEH,IAAIwI,EAAmB,MAAVD,GAAkBA,EAAOE,YAAcF,EAAOE,YAAYnZ,KAAO,KAC9Ec,EAAUoY,EAAS,IAAIpU,OAAOoU,EAAQ,KAAOxgB,OAAOqB,UAAU+F,SAAS7F,KAAKgf,EAC/E,CAELlU,EAAOoL,OAAO,CACVnQ,KAAM,8BACNc,QAAS,qCAAqCgE,OAAOhE,IA/BxD,CAiCJ,CAEGiY,CAAqBC,GACG,mBAAb9Y,GACPA,EAASjF,MAAMxC,KAAMV,UAE7C,CACA,EACS,EAET,YC9DAW,OAAOc,eAAegQ,GAAS,aAAc,CAAE7P,OAAO,IAEtD,IAAI0b,GAAShX,EACTgK,GAASyD,EACTzO,GAAWgY,GAAOf,KAAKjX,SAAUH,GAAamY,GAAOf,KAAKpX,WAAYD,GAAoBoY,GAAOf,KAAKrX,kBAAmBR,GAAqB4Y,GAAOf,KAAK7X,mBA+P/I+M,GAAAlB,QA9Pf,SAAmBtC,GAEf,YADqB,IAAjBA,IAAsBA,EAAUvJ,MAC7B,CACH+L,KAAM,SAAUzD,GACZ,SAAS0F,EAAmB5E,GACxB,OAAyC,IAArCd,EAAOvC,OAAOiI,qBAGd5E,GACkD,IAA3Cd,EAAOvC,OAAOiI,mBAAmB5E,IAEA,IAArCd,EAAOvC,OAAOiI,mBACxB,CAGQA,EAAmB,YAgBxBxN,GAAkB+I,EAAS,SAAUE,EAAOjB,GACxC,IAdkBtF,EAcdmB,GAdcnB,EAcSsF,EAbtBP,MAAMC,QAAQhF,GAGZA,EAAId,IAAI,SAAUlF,GACrB,IACI,OAAO2L,OAAO3L,EACjB,CACD,MAAOkB,GACH,MAAO,WACV,CACzB,GAAuBiM,KAAK,KATG,IAaP0F,EAAO,CACP6E,SAAU,MACVD,SAAU,CACNlL,MAAOA,EACPnO,UAAWsF,GAAS4H,EAAM,KAGlCF,EAAOuE,cAAcxI,EAAS0L,EAClD,GAIqB/B,EAAmB,QAGgB,mBAA7BzE,EAAQoT,kBAGnBpT,EAAQoT,iBAAiB,QAAS,SAAUvW,GACxC,IAAI/B,EAASuY,EAAUnC,EACvB,IACI,IAAI1B,EAAazQ,EAAOvC,OAAO8W,8BAC/BxY,GAAU,EAAIuH,GAAOwN,qBAAqBhT,EAAM0W,OAAQ/D,GACxD6D,GAAW,EAAIhR,GAAO+M,yBAAyBvS,EAAM0W,OAAQ/D,GAC7D0B,GAAO,EAAI7O,GAAO8M,qBAAqBtS,EAAM0W,OAChD,CACD,MAAO1e,GACHiG,EAAU,WACVuY,EAAW,YACXnC,EAAO,WACV,CAEsB,IAAnBpW,EAAQxE,QAGZyI,EAAOuE,cAAcxI,EAAS,CAC1BuQ,SAAU,WACVD,SAAU,CACNiI,SAAUA,EACVnC,KAAMA,EACNrU,MAAOA,IAGlB,IAAEmD,EAAQwT,UAIN/O,EAAmB,YAIM,oBAAnBgP,iBAIXvc,GAAWuc,eAAe1f,UAAW,OAAQ,SAAUmG,GACnD,OAAO,WAEH,IACIwZ,EAAS3hB,UAAU,GAEnBiP,EAAwB,iBAAX0S,EAAsBA,EAASpU,OAAOoU,GACnD5a,EAAiC,iBAAjB/G,UAAU,GAAkBA,UAAU,GAAGyP,cAAgBzP,UAAU,GACnF+I,EAAU,GAAGgE,OAAOhG,EAAQ,KAAKgG,QAAO,EAAIuD,GAAO4M,kBAAkBjO,IACzEvO,KAAKkhB,SAAW,CACZ9T,KAAM,MACN/G,OAAQA,EACRkI,IAAKA,EACLlG,QAASA,GAEW,mBAAbZ,GACPA,EAASjF,MAbHxC,KAacV,UAEhD,CACA,GAEgBmF,GAAWuc,eAAe1f,UAAW,OAAQ,SAAUmG,GACnD,OAAO,WAEH,IAAI0Z,EAAMnhB,KACV,SAASohB,IACL,GAAuB,IAAnBD,EAAIE,WAAkB,CACtB,IAAIhZ,OAAe,EACf8Y,EAAID,WACJC,EAAID,SAASI,YAAcH,EAAIpG,OAC/B1S,EAAU8Y,EAAID,SAAS7Y,eAChB8Y,EAAID,SAAS7Y,SAExBiE,EAAOuE,cAAcxI,GAAW,iBAAkB,CAC9CuQ,SAAU,UACVD,SAAUwI,EAAID,UAErB,CACJ,CACG,uBAAwBC,GAAyC,mBAA3BA,EAAII,mBAC1C9c,GAAW0c,EAAK,qBAAsB,SAAU1Z,GAC5C,OAAO,WACH2Z,IACwB,mBAAb3Z,GAEPA,EAASjF,MAAMxC,KAAMV,UAE7D,CACA,GAG4B6hB,EAAII,mBAAqBH,EAEL,mBAAb3Z,GAEPA,EAASjF,MAAM2e,EAAK7hB,UAEhD,CACA,IAIqB0S,EAAmB,aAGnB,EAAIpC,GAAOgP,gBAIhBna,GAAW8I,EAAS,QAAS,SAAU9F,GACnC,OAAO,WAEH,IAEI8G,EAFAiT,EAAQliB,UAAU,GAClB+G,EAAS,MAEQ,iBAAVmb,EACPjT,EAAMiT,EAED,YAAajU,GAAWiU,aAAiBC,SAC9ClT,EAAMiT,EAAMjT,IACRiT,EAAMnb,SACNA,EAASmb,EAAMnb,SAInBkI,EAAM1B,OAAO2U,GAEbliB,UAAU,IAAMA,UAAU,GAAG+G,SAC7BA,EAAS/G,UAAU,GAAG+G,QAEJ,iBAAXA,IACPA,EAASA,EAAO0I,eAGpB,IAAI1G,EAAU,GAAGgE,OAAOhG,EAAQ,KAAKgG,OAA2B,oBAAb0S,SAA2BxQ,GAAM,EAAIqB,GAAO4M,kBAAkBjO,IAC7GoK,EAAW,CACXvL,KAAM,QACN/G,OAAQA,EACRkI,IAAKA,GAET,OAAO9G,EACFjF,MAAMxC,KAAMV,WACZiD,KAAK,SAAUmf,GAMhB,OALA/I,EAAsB,YAAI+I,EAAS3G,OACnCzO,EAAOuE,cAAcxI,EAAS,CAC1BuQ,SAAU,UACVD,SAAUA,IAEP+I,CACnC,GAC6BhN,MAAM,SAAU5K,GAKjB,MAJAwC,EAAOuE,cAAc,cAAe,CAChC+H,SAAU,QACVD,SAAUA,IAER7O,CAClC,EACA,CACA,GAGY,WACI,GAAKkI,EAAmB,eAGA,MAApBzE,EAAQwT,SAAZ,CAKA,IAAIY,EAAWpU,EAAQwT,SAASa,KAWA,mBAArBjB,kBACPA,iBAAiB,WAAY,SAAUkB,GACnCC,EAAgBH,EAAUpU,EAAQwT,SAASa,KACnE,QAE+C,IAApBrU,EAAQwU,UAcnBtd,GAAW8I,EAAQwU,QAAS,YAAaC,GACzCvd,GAAW8I,EAAQwU,QAAS,eAAgBC,GAjC3C,CAGD,SAASF,EAAgBtI,EAAMyI,GAC3BN,EAAWM,EACX3V,EAAOuE,cAAc,eAAgB,CACjC+H,SAAU,aACVD,SAAU,CACNa,KAAMA,EACNyI,GAAIA,IAGf,CAWD,SAASD,EAAeva,GACpB,OAAO,WACH,IAAI8G,EAAMjP,UAAUuE,OAAS,EAAIvE,UAAU,QAAKiB,EAIhD,OAHIgO,GACAuT,EAAgBH,EAAU9U,OAAO0B,IAE9B9G,EAASjF,MAAMxC,KAAMV,UACpD,CACiB,CAGJ,CAzCD,EA0CH,EAET,YClQAW,OAAOc,eAAemhB,GAAS,aAAc,CAAEhhB,OAAO,IAEtD,IAAI0b,GAAShX,EACTnB,GAAamY,GAAOf,KAAKpX,WAAYT,GAAqB4Y,GAAOf,KAAK7X,mBA8B3Dke,GAAArS,QA7Bf,SAAmBtC,GAEf,YADqB,IAAjBA,IAAsBA,EAAUvJ,MAC7B,CACH+L,KAAM,SAAUzD,IAEZ,WACI,SAAS6V,EAAgBC,GACrB,OAAO,SAAU3a,GAEb,OAAO,SAAUwW,EAAMoE,GACnB,GAAoB,mBAATpE,EAAqB,CAC5B,IAAIqE,EAASrW,MAAM3K,UAAUgM,MAAM9L,KAAKlC,UAAW,GAEnD,OADA2e,EAAO3R,EAAOiW,OAAOtE,EAAMmE,GACpB3a,EAAS,WACZwW,EAAKzb,WAAW,EAAG8f,EACtB,EAAED,EACN,CAEG,OAAO5a,EAASwW,EAAMoE,EAEtD,CACA,CACiB,CACD5d,GAAW8I,EAAS,aAAc4U,EAAgB,CAAEvQ,UAAW,gBAC/DnN,GAAW8I,EAAS,cAAe4U,EAAgB,CAAEvQ,UAAW,gBACnE,CApBD,EAqBH,EAET,YChCA3R,OAAOc,eAAeyhB,GAAS,aAAc,CAAEthB,OAAO,IACtD,IAAI0b,GAAShX,EACTnB,GAAamY,GAAOf,KAAKpX,WAAYT,GAAqB4Y,GAAOf,KAAK7X,mBAuC3Dwe,GAAA3S,QAtCf,SAAmBtC,GAEf,YADqB,IAAjBA,IAAsBA,EAAUvJ,MAC7B,CACH+L,KAAM,SAAUzD,GAIE,CAAC,cAAe,SAAU,OAAQ,mBAAoB,iBAAkB,oBAAqB,kBAAmB,cAAe,aAAc,qBAAsB,cAAe,aAAc,iBAAkB,eAAgB,kBAAmB,cAAe,cAAe,eAAgB,qBAAsB,SAAU,YAAa,eAAgB,gBAAiB,YAAa,kBAAmB,SAAU,iBAAkB,4BAA6B,wBAChdkB,QAAQ,SAAUiV,GACtB,IAAInhB,EAAYiM,EAAQkV,IAASlV,EAAQkV,GAAMnhB,UAC3CA,GAAarB,OAAOqB,UAAUC,eAAeC,KAAKF,EAAW,sBAC7DmD,GAAWnD,EAAW,mBAAoB,SAAUmG,GAChD,IAAI2a,EAAW,CAAExQ,UAAW,GAAGvF,OAAOoW,EAAM,gCAE5C,OAAO,SAAUrV,EAAMM,EAAUgV,EAAYC,GACzC,IACQjV,GAAoC,MAAxBA,EAASkV,cACrBlV,EAASkV,YAActW,EAAOiW,OAAO7U,EAASkV,YAAaR,GAElE,CACD,MAAOhgB,GAEHkK,EAAOtG,OAAO8D,MAAM1H,EACvB,CACD,OAAOqF,EAASjG,KAAKxB,KAAMoN,EAAMd,EAAOiW,OAAO7U,EAAU0U,GAAWM,EAAYC,EAC5G,CACA,GACoBle,GAAWnD,EAAW,sBAAuB,SAAUmG,GACnD,OAAO,SAAU2F,EAAMM,EAAUgV,EAAYC,GAEzC,OADAlb,EAASjG,KAAKxB,KAAMoN,EAAMM,EAAUgV,EAAYC,GACzClb,EAASjG,KAAKxB,KAAMoN,EAAMd,EAAOiW,OAAO7U,GAAWgV,EAAYC,EAClG,CACA,GAEA,EACS,EAET,YCxCIlhB,GAAazB,GAAQA,EAAKyB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,UAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUf,GAAS,IAAMgB,EAAKL,EAAUM,KAAKjB,GAAQ,CAAG,MAAOkB,GAAKJ,EAAOI,GAAO,CAC3F,SAASC,EAASnB,GAAS,IAAMgB,EAAKL,EAAiB,MAAEX,GAAU,CAAC,MAAOkB,GAAKJ,EAAOI,GAAO,CAC9F,SAASF,EAAKb,GAJlB,IAAeH,EAIaG,EAAOiB,KAAOP,EAAQV,EAAOH,QAJ1CA,EAIyDG,EAAOH,MAJhDA,aAAiBU,EAAIV,EAAQ,IAAIU,EAAE,SAAUG,GAAWA,EAAQb,EAAO,IAIhBqB,KAAKN,EAAWI,EAAY,CAC9GH,GAAML,EAAYA,EAAUW,MAAMd,EAASC,GAAc,KAAKQ,OACtE,EACA,EACIM,GAAezC,GAAQA,EAAKyC,aAAgB,SAAUf,EAASgB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAK,EAAEK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEX,KAAMiB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOxD,IAAO,GAAG8C,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUxC,GAAK,OACzC,SAAcyC,GACV,GAAIf,EAAG,MAAM,IAAIgB,UAAU,mCAC3B,KAAOb,IAAMA,EAAI,EAAGY,EAAG,KAAOX,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARa,EAAG,GAASd,EAAU,OAAIc,EAAG,GAAKd,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAErB,KAAKoB,GAAI,GAAKA,EAAET,SAAWU,EAAIA,EAAErB,KAAKoB,EAAGc,EAAG,KAAKpB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGa,EAAK,CAAS,EAARA,EAAG,GAAQb,EAAE3B,QACzBwC,EAAG,IACP,KAAK,EAAG,KAAK,EAAGb,EAAIa,EAAI,MACxB,KAAK,EAAc,OAAXX,EAAEC,QAAgB,CAAE9B,MAAOwC,EAAG,GAAIpB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIc,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKX,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMf,EAAIE,EAAEG,MAAML,EAAIA,EAAEgB,OAAS,GAAKhB,EAAEA,EAAEgB,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEX,EAAI,EAAG,QAAW,CAC5G,GAAc,IAAVW,EAAG,MAAcb,GAAMa,EAAG,GAAKb,EAAE,IAAMa,EAAG,GAAKb,EAAE,IAAM,CAAEE,EAAEC,MAAQU,EAAG,GAAI,KAAQ,CACtF,GAAc,IAAVA,EAAG,IAAYX,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIa,EAAI,KAAQ,CACrE,GAAIb,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIrD,KAAK4D,GAAK,KAAQ,CAC/Db,EAAE,IAAIE,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBF,EAAKhB,EAAKlB,KAAKE,EAASqB,EAC3B,CAAC,MAAOX,GAAKsB,EAAK,CAAC,EAAGtB,GAAIQ,EAAI,CAAE,CAAW,QAAED,EAAIE,EAAI,CAAI,CAC1D,GAAY,EAARa,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAExC,MAAOwC,EAAG,GAAKA,EAAG,QAAU,EAAGpB,MAAM,EAC7E,CAtB+CJ,CAAK,CAACuB,EAAGxC,GAAM,CAAG,CAuBtE,EACAhB,OAAOc,eAAeyS,GAAS,aAAc,CAAEtS,OAAO,IAC9BsS,GAAAqP,sBAAQ,EAChC,IAAIjG,GAAShX,EACThB,GAAWgY,GAAOf,KAAKjX,SAAUZ,GAAqB4Y,GAAOf,KAAK7X,mBAQtE,IAAI6e,GAAkC,WAClC,SAASA,EAAiBrN,QACD,IAAjBA,IAAsBA,EAAU,CAAE,GACtCxV,KAAKwV,QAAU,GACfxV,KAAKwV,QAAUA,CAClB,CAqCD,OApCAqN,EAAiBvhB,UAAUwhB,eAAiB,WACxC,OAAO9iB,KAAKwV,OACpB,EACIqN,EAAiBvhB,UAAUmT,KAAO,SAAUsO,EAASnZ,GACjD,OAAOnI,GAAUzB,UAAW,OAAQ,EAAG,WACnC,IAAIgjB,EAAaxN,EAASyN,EAAavB,EAAUhf,EACjD,OAAOD,GAAYzC,KAAM,SAAU0I,GAC/B,OAAQA,EAAG1F,OACP,KAAK,EAiBD,OAhBAggB,EAAcD,EAAQvN,SAlBvBtO,EAkB+C6b,EAAQvN,QAjBnEvV,OAAOijB,QAAQhc,IAiB+D,GACjEsO,EAAUxV,KAAK8iB,iBACfE,EAAYxV,QAAQ,SAAU9E,GAC1B,IAAIuE,EAAMvE,EAAG,GAAIxH,EAAQwH,EAAG,GACjB,MAAPuE,GAAwB,MAAT/L,IACfsU,EAAQ3I,OAAOI,IAAQJ,OAAO3L,GAE9D,GACwB+hB,EAAc,CACV5c,OAAQ0c,EAAQ1c,OAChBmP,QAASA,GAGU,SAAnBuN,EAAQ1c,QAAqBuD,IAC7BqZ,EAAYvgB,KAA0B,iBAAZkH,EAAuBA,EAAUoF,KAAKC,UAAUrK,GAASgF,EAASmZ,EAAQxQ,kBAEjG,CAAC,EAAavO,KAAqB8a,MAAMiE,EAAQxe,SAAU0e,IACtE,KAAK,EAED,MAAO,CAAC,GADRvB,EAAWhZ,EAAGzF,QACgBwb,QAClC,KAAK,EAED,OADA/b,EAAOgG,EAAGzF,OACH,CAAC,EAAcnB,QAAQC,QAAQ,CAAE4T,WAAY+L,EAAS3G,OAAQrY,KAAMA,KAxCnG,IAAuBwE,CA0CvB,EACA,EACA,EACW2b,CACX,IACwBrP,GAAAqP,iBAAGA,aC3FvB/P,GAAY9S,GAAQA,EAAK8S,UAAa,WAStC,OARAA,GAAW7S,OAAO8S,QAAU,SAASlQ,GACjC,IAAK,IAAImQ,EAAGhM,EAAI,EAAGvD,EAAInE,UAAUuE,OAAQmD,EAAIvD,EAAGuD,IAE5C,IAAK,IAAIiM,KADTD,EAAI1T,UAAU0H,GACO/G,OAAOqB,UAAUC,eAAeC,KAAKwR,EAAGC,KACzDpQ,EAAEoQ,GAAKD,EAAEC,IAEjB,OAAOpQ,CACf,EACWiQ,GAAStQ,MAAMxC,KAAMV,UAChC,EACAW,OAAOc,eAAeoiB,GAAS,aAAc,CAAEjiB,OAAO,IAC3BiiB,GAAAC,yBAAQ,EACnC,IACIpf,GADS4B,EACmBiW,KAAK7X,mBACjCof,GAAqC,WACrC,SAASA,EAAoBrZ,EAAQ/D,EAAQqd,GACzCrjB,KAAK+J,OAASA,EACd/J,KAAKgG,OAASA,EACdhG,KAAKqjB,UAAYA,CACpB,CA2BD,OA1BAD,EAAoB9hB,UAAUgiB,KAAO,SAAUC,EAAcR,GAEzD,QADqB,IAAjBA,IAAsBA,EAAU,CAAE,GACM,mBAAhC/iB,KAA0B,sBAItC,GAAKA,KAAK+J,QAAW/J,KAAK+J,OAAOwH,OAIjC,GAAKgS,EAAL,CAIA,IAAI1E,EAAS7a,UACkB,IAApB6a,EAAOE,SAId/e,KAAKwjB,kCACLxjB,KAAKgG,OAAOS,MAAM,0CAGtBoY,EAAuC,+BAAI/L,GAASA,GAAS,CAAA,EAAIiQ,GAAU,CAAExR,OAAQvR,KAAK+J,OAAOwH,OAAQhN,SAAUvE,KAAK+J,OAAO0Z,qBAAsBC,SAAUH,IAC/JvjB,KAAK2jB,sBAAsB9E,EAAQkE,IAR/B/iB,KAAKgG,OAAOS,MAAM,qDAHrB,MAFGzG,KAAKgG,OAAOS,MAAM,wEAJlBzG,KAAKgG,OAAOS,MAAM,+BAJlBzG,KAAKgG,OAAOS,MAAM,qDAsB9B,EACW2c,CACX,WAC2BD,GAAAC,oBAAGA,eCjD9B,IACQQ,EADJC,EAAa7jB,GAAQA,EAAK6jB,YACtBD,EAAgB,SAAUE,EAAGC,GAI7B,OAHAH,EAAgB3jB,OAAO+jB,gBAClB,CAAEC,UAAW,cAAgBhY,OAAS,SAAU6X,EAAGC,GAAKD,EAAEG,UAAYF,CAAE,GACzE,SAAUD,EAAGC,GAAK,IAAK,IAAI9Q,KAAK8Q,EAAO9jB,OAAOqB,UAAUC,eAAeC,KAAKuiB,EAAG9Q,KAAI6Q,EAAE7Q,GAAK8Q,EAAE9Q,KACzF2Q,EAAcE,EAAGC,EAChC,EACW,SAAUD,EAAGC,GAChB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIpgB,UAAU,uBAAyBkJ,OAAOkX,GAAK,iCAE7D,SAASG,IAAOlkB,KAAK0gB,YAAcoD,CAAG,CADtCF,EAAcE,EAAGC,GAEjBD,EAAExiB,UAAkB,OAANyiB,EAAa9jB,OAAOC,OAAO6jB,IAAMG,EAAG5iB,UAAYyiB,EAAEziB,UAAW,IAAI4iB,EACvF,GAEIpR,EAAY9S,GAAQA,EAAK8S,UAAa,WAStC,OARAA,EAAW7S,OAAO8S,QAAU,SAASlQ,GACjC,IAAK,IAAImQ,EAAGhM,EAAI,EAAGvD,EAAInE,UAAUuE,OAAQmD,EAAIvD,EAAGuD,IAE5C,IAAK,IAAIiM,KADTD,EAAI1T,UAAU0H,GACO/G,OAAOqB,UAAUC,eAAeC,KAAKwR,EAAGC,KACzDpQ,EAAEoQ,GAAKD,EAAEC,IAEjB,OAAOpQ,CACf,EACWiQ,EAAStQ,MAAMxC,KAAMV,UAChC,EACImC,EAAazB,GAAQA,EAAKyB,WAAc,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,UAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUf,GAAS,IAAMgB,EAAKL,EAAUM,KAAKjB,GAAQ,CAAG,MAAOkB,GAAKJ,EAAOI,GAAM,CAC1F,SAASC,EAASnB,GAAS,IAAMgB,EAAKL,EAAiB,MAAEX,GAAU,CAAC,MAAOkB,GAAKJ,EAAOI,GAAM,CAC7F,SAASF,EAAKb,GAJlB,IAAeH,EAIaG,EAAOiB,KAAOP,EAAQV,EAAOH,QAJ1CA,EAIyDG,EAAOH,MAJhDA,aAAiBU,EAAIV,EAAQ,IAAIU,EAAE,SAAUG,GAAWA,EAAQb,EAAO,IAIhBqB,KAAKN,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUW,MAAMd,EAASC,GAAc,KAAKQ,OACtE,EACA,EACIM,EAAezC,GAAQA,EAAKyC,aAAgB,SAAUf,EAASgB,GAC/D,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAK,EAAEK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEX,KAAMiB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOxD,IAAO,GAAG8C,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUxC,GAAK,OACzC,SAAcyC,GACV,GAAIf,EAAG,MAAM,IAAIgB,UAAU,mCAC3B,KAAOb,IAAMA,EAAI,EAAGY,EAAG,KAAOX,EAAI,IAAKA,OACnC,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARa,EAAG,GAASd,EAAU,OAAIc,EAAG,GAAKd,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAErB,KAAKoB,GAAI,GAAKA,EAAET,SAAWU,EAAIA,EAAErB,KAAKoB,EAAGc,EAAG,KAAKpB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGa,EAAK,CAAS,EAARA,EAAG,GAAQb,EAAE3B,QACzBwC,EAAG,IACP,KAAK,EAAG,KAAK,EAAGb,EAAIa,EAAI,MACxB,KAAK,EAAc,OAAXX,EAAEC,QAAgB,CAAE9B,MAAOwC,EAAG,GAAIpB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIc,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKX,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMf,EAAIE,EAAEG,MAAML,EAAIA,EAAEgB,OAAS,GAAKhB,EAAEA,EAAEgB,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEX,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVW,EAAG,MAAcb,GAAMa,EAAG,GAAKb,EAAE,IAAMa,EAAG,GAAKb,EAAE,IAAM,CAAEE,EAAEC,MAAQU,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYX,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIa,EAAI,KAAO,CACpE,GAAIb,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIrD,KAAK4D,GAAK,KAAO,CAC9Db,EAAE,IAAIE,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBF,EAAKhB,EAAKlB,KAAKE,EAASqB,EAC3B,CAAC,MAAOX,GAAKsB,EAAK,CAAC,EAAGtB,GAAIQ,EAAI,CAAE,CAAW,QAAED,EAAIE,EAAI,CAAG,CACzD,GAAY,EAARa,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAExC,MAAOwC,EAAG,GAAKA,EAAG,QAAU,EAAGpB,MAAM,EAC9E,CAtBgDJ,CAAK,CAACuB,EAAGxC,GAAM,CAAE,CAuBrE,EACI0a,EAAmB3b,GAAQA,EAAK2b,iBAAoB,SAAUva,GAC9D,OAAQA,GAAOA,EAAIV,WAAcU,EAAM,CAAEyO,QAAWzO,EACxD,EACAnB,OAAOc,eAAc+C,EAAU,aAAc,CAAE5C,OAAO,IACtD4C,EAAgBgY,MAAAhY,EAAAqgB,8BAAwC,EACxD,IAAIvH,EAAShX,EACTgK,EAASyD,EACT+Q,EAAY7Q,EACZ8Q,EAAyB1I,EAAgB1F,IACzCqO,EAAgB3I,EAAgBM,IAChCsI,EAAW5I,EAAgBQ,IAC3BqI,EAAoB7I,EAAgB8I,IACpCC,EAAcC,GACdC,EAAkBC,GAClBnf,EAAQkX,EAAOf,KAAKnW,MAAOrB,EAASuY,EAAOf,KAAKxX,OAAQkB,EAAqBqX,EAAOf,KAAKtW,mBAAoBvB,EAAqB4Y,EAAOf,KAAK7X,mBAC9I8gB,EAAiB,WACjB,IAAIjG,EAAS7a,IACT2N,EAAc,GAKlB,OAHuB,MAAnBkN,EAAOkC,WACPpP,EAAckN,EAAOkC,SAAS5C,SAAW,KAAOU,EAAOkC,SAAS3C,MAE7DzM,CACX,EAKA7N,EAAAqgB,yBAJ+B,SAAUvN,GACrC,IAAImO,EAAoBnO,EAAQnY,MAAM,KAAK6O,MAAM,EAAG,GAAGe,KAAK,KAC5D,MAAO,8BAA8BhC,OAAO0Y,EAAmB,gCACnE,EAEA,IAAIC,EAA6B,SAAUC,GAEvC,SAASD,EAAYjR,QACC,IAAdA,IAAmBA,EAAO,CAAE,GAChC,IAAIO,EAAQ2Q,EAAOzjB,KAAKxB,KAAM8S,EAAS,CAAE2Q,qBAAsB,yCAA0CvU,OAAO,EAAMgW,UAAW,KAAMC,8BAA8B,EAAOtE,8BAA+BjE,EAAOV,SAAS7K,gCAAiCM,YAAamT,KAAoB/Q,GAAO,IAAI2Q,EAAY7B,iBAAiB,CACjU,aAAcuC,QACXplB,KAwCP,OAtCAsU,EAAM+Q,aAAe,EAErB/Q,EAAMgR,mBAAgB/kB,EAEtB+T,EAAMiR,oBAAiBhlB,EAEvB+T,EAAMgC,uBAAyB,CAC3B,SAAUrO,GACN,GAAIqM,EAAMvK,OAAOob,8BACbld,GAAUA,EAAO/B,WAAa+B,EAAO/B,UAAUrC,OAAQ,CACvD,IAAI2hB,EAAWvd,EAAO/B,UAAU,GAChC,GAAIsf,GAAqC,iBAAlBA,EAASpmB,OAC3BomB,EAASpmB,KAAKqmB,WAAW,wBACtBD,EAASpmB,KAAKqmB,WAAW,qBACzBD,EAASpmB,KAAKqmB,WAAW,wBACzBD,EAASpmB,KAAKqmB,WAAW,4BAE7B,OADAnR,EAAMtO,OAAOS,MAAM,2CAA4CwB,IACxD,CAEf,CACA,OAAIqM,EAAMoR,sBACNpR,EAAMtO,OAAOS,MAAM,uCAAwCwB,IACpD,IAEPA,IAAWA,EAAOsG,KAA2B,oBAAbwQ,WAChC9W,EAAOsG,IAAMwQ,SAASW,KAE1BpL,EAAMqR,0BACC,EACX,GAEJrR,EAAMkC,sBAAwB,CAC1B,SAAUoP,EAAQ3d,GACVA,IACAqM,EAAMiR,eAAiBtd,EAAOsT,GAEtC,GAEGjH,CACX,CA8HA,OA5KAuP,EAAUmB,EAAaC,GA+CvBD,EAAY1jB,UAAUwS,UAAY,SAAUC,GAExC,YADkB,IAAdA,IAAmBA,EAAO,CAAE,GACzBkR,EAAO3jB,UAAUwS,UAAUtS,KAAKxB,KAAM+T,EACrD,EACIiR,EAAY1jB,UAAUukB,eAAiB,WACnC,OAAQ7lB,KAAKqlB,aAAe,CACpC,EACIL,EAAY1jB,UAAUwkB,QAAU,SAAU/R,GAEtC,IAAI7P,EAAQ,IAAI8gB,EAAYjR,GAE5B,OADA7P,EAAMiT,YAAYnX,KAAKkX,eAChBhT,CACf,EACI8gB,EAAY1jB,UAAUykB,QAAU,SAAUC,GACtC,MAAM,IAAI5e,MAAM,wDACxB,EACI4d,EAAY1jB,UAAU2kB,qBAAuB,SAAUlD,GAEnD,YADqB,IAAjBA,IAAsBA,EAAU,CAAE,GAC/BthB,EAAUzB,UAAW,OAAQ,EAAG,WAEnC,OAAOyC,EAAYzC,KAAM,SAAU0I,GAG/B,OAFO,IAAIkc,EAAgBxB,oBAAoBpjB,KAAK+J,OAAQ/J,KAAKgG,OAAQhG,KAAKkmB,4BACzE5C,KAAKtjB,KAAKulB,eAAgBxC,GACxB,CAAC,EACxB,EACA,EACA,EACIiC,EAAY1jB,UAAU4kB,yBAA2B,WAC7C,OAAO,EAAIpiB,EAAQqgB,0BAA0BnkB,KAAKiX,aAC1D,EAEI+N,EAAY1jB,UAAUsY,eAAiB,SAAU3R,GAC7C,IAWIke,EAXAtM,EAAU,CACVuM,qBAAiB7lB,EACjB8lB,kBAAc9lB,EACd+lB,iBAAa/lB,GAEQ,oBAAdgmB,WAA6BA,UAAUnB,YAC9CvL,EAAQuM,gBAAkBG,UAAUnB,WAEhB,oBAAbrG,UAA4BA,SAASyH,SAAStI,MAAM,QAC3DrE,EAAQwM,aAAetH,SAASyH,WAIhCL,EAD0B,iBAAnBle,EAAO2X,SACE,EAAIhQ,EAAO+P,cAAc1X,EAAO2X,SAGhC3X,EAAO2X,WAGvB/F,EAAQyM,aAAc,EAAI1W,EAAO2M,cAAclY,EAAO8hB,EAAenmB,KAAK+J,OAAOmD,WAErF,IAAItD,EAAUqb,EAAO3jB,UAAUsY,eAAepY,KAAKxB,KAAMiI,GAEzD,OADA2B,EAAQqQ,QAAQC,SAAWxU,EAAMmU,EAASjQ,EAAQqQ,QAAQC,UACnDtQ,CACf,EAMIob,EAAY1jB,UAAUihB,OAAS,SAAU5f,EAAGoR,QACtB,IAAdA,IAAmBA,EAAO,CAAE,GAChC,IAAIkK,EAAOtb,EACNoR,IACDA,EAAO,CAAA,GAEX,IACI,GAAoB,mBAATkK,EACP,OAAOA,EAEX,IAAK1Y,EAAmB0Y,GACpB,OAAOA,EAEX,IAAKA,EAAKwI,MAAO,CAEb,IAAIzK,EAAWhc,KACfie,EAAKwI,MAAQ,WACT,IAAI7W,EAAO0M,YA2BP,OAAO2B,EAAKzb,MAAMxC,KAAMV,WA1BxB,IAEI,OAAO2e,EAAKzb,MAAMxC,KAAMV,UAC5B,CACA,MAAOkH,GACH,GAAIwV,EAASsJ,gBAAkB9e,EAC3B,MAAA,EAeJ,MAbAwV,EAASsJ,cAAgB9e,GACzB,EAAI4d,EAAUlE,qBACdlE,EAASnL,cAAckD,EAAKnC,UAAY,GAAGvF,OAAO0H,EAAKnC,UAAW,MAAMvF,OAAO7F,EAAIe,MAAQf,EAAIe,KAAM,CACjGqR,SAAU,QACVD,SAAU,CACNtQ,QAAS7B,EAAI6B,QACbd,KAAMf,EAAIe,KACV5I,MAAO6H,EAAI7H,SAGfqd,EAASjS,OAAO2I,gBAChBsJ,EAAStE,OAAOlR,GAEpB,CACJ,CAMxB,CACY,CAEA,OADAyX,EAAKwI,MAAMA,MAAQxI,EAAKwI,MACjBxI,EAAKwI,KAChB,CACA,MAAO9e,GACH,OAAOsW,CACX,CACR,EAEI+G,EAAY1jB,UAAUqkB,uBAAyB,WAC3C,OAAO3lB,KAAKqlB,cACpB,EAEIL,EAAY1jB,UAAUokB,mBAAqB,WACvC,OAAO1lB,KAAK+J,OAAOmb,WAAallB,KAAKqlB,cAAgBrlB,KAAK+J,OAAOmb,SACzE,EACWF,CACX,CA9KiC,CA8K/BpI,EAAO9G,QACL4Q,EAAW,CACXnf,KAAM,qBACNgH,IAAK,2EACLqI,QAAS,UAETwO,EAAY,WACZ,MAAyB,oBAAdmB,UACA,iCAAiCla,OAAOqa,EAAS9P,QAAS,MAAMvK,OAAOka,UAAUnB,WAErF,iCAAiC/Y,OAAOqa,EAAS9P,QAAS,aACrE,EACI+P,EAAY,IAAI3B,EAAY,CAC5BnS,UAAW,EACP,EAAIuR,EAAUnE,YACd,EAAIoE,EAAuBxU,YAC3B,EAAI0U,EAAS1U,YACb,EAAI2U,EAAkB3U,YACtB,EAAIyU,EAAczU,WAClB+M,EAAOhB,QAAQQ,mBAGvBuK,EAAUxP,YAAYuP,GACtB,IAAIE,EAAShhB,EACb3F,OAAOc,eAAe+C,EAAS,QAAS,CAAEjD,YAAY,EAAMC,IAAK,WAAc,OAAO8lB,EAAO9K,KAAM,IACnGhY,EAAA+L,QAAkB8W"}
1
+ {"version":3,"file":"honeybadger.ext.min.js","sources":["../../../../node_modules/.pnpm/stacktrace-parser@0.1.11/node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js","../../../core/build/src/util.js","../../../core/build/src/plugins/console_events.js","../../../core/build/src/store.js","../../../../node_modules/.pnpm/json-nd@1.0.0/node_modules/json-nd/dist/module/index.js","../../../core/build/src/defaults.js","../../../core/build/src/throttled_events_worker.js","../../../core/build/src/client.js","../../../core/build/src/types.js","../../../core/build/src/index.js","../../build/src/browser/util.js","../../build/src/browser/integrations/onerror.js","../../build/src/browser/integrations/onunhandledrejection.js","../../build/src/browser/integrations/breadcrumbs.js","../../build/src/browser/integrations/timers.js","../../build/src/browser/integrations/event_listeners.js","../../build/src/browser/transport.js","../../build/src/browser/feedback-form.js","../../build/src/browser.js"],"sourcesContent":["var UNKNOWN_FUNCTION = '<unknown>';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n var lines = stackString.split('\\n');\n return lines.reduce(function (stack, line) {\n var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n if (parseResult) {\n stack.push(parseResult);\n }\n\n return stack;\n }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n var parts = chromeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n var submatch = chromeEvalRe.exec(parts[2]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n\n parts[3] = submatch[2]; // line\n\n parts[4] = submatch[3]; // column\n }\n\n return {\n file: !isNative ? parts[2] : null,\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: isNative ? [parts[2]] : [],\n lineNumber: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n var parts = winjsRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n var parts = geckoRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = geckoEvalRe.exec(parts[3]);\n\n if (isEval && submatch != null) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: parts[2] ? parts[2].split(',') : [],\n lineNumber: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n var parts = javaScriptCoreRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[3],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[4],\n column: parts[5] ? +parts[5] : null\n };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n var parts = nodeRe.exec(line);\n\n if (!parts) {\n return null;\n }\n\n return {\n file: parts[2],\n methodName: parts[1] || UNKNOWN_FUNCTION,\n arguments: [],\n lineNumber: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n}\n\nexport { parse };\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logDeprecatedMethod = exports.globalThisOrWindow = exports.isBrowserConfig = exports.clone = exports.formatCGIData = exports.filterUrl = exports.filter = exports.generateStackTrace = exports.endpoint = exports.instrumentConsole = exports.instrument = exports.isErrorObject = exports.makeNotice = exports.logger = exports.sanitize = exports.shallowClone = exports.runAfterNotifyHandlers = exports.shouldSampleEvent = exports.resolveInsights = exports.runBeforeEventHandlers = exports.runBeforeNotifyHandlers = exports.getSourceForBacktrace = exports.getCauses = exports.calculateBacktraceShift = exports.DEFAULT_BACKTRACE_SHIFT = exports.makeBacktrace = exports.objectIsExtensible = exports.objectIsEmpty = exports.mergeNotice = exports.merge = void 0;\n/* eslint-disable prefer-rest-params */\nvar stackTraceParser = __importStar(require(\"stacktrace-parser\"));\nfunction merge(obj1, obj2) {\n var result = {};\n for (var k in obj1) {\n result[k] = obj1[k];\n }\n for (var k in obj2) {\n result[k] = obj2[k];\n }\n return result;\n}\nexports.merge = merge;\nfunction mergeNotice(notice1, notice2) {\n var result = merge(notice1, notice2);\n if (notice1.context && notice2.context) {\n result.context = merge(notice1.context, notice2.context);\n }\n return result;\n}\nexports.mergeNotice = mergeNotice;\nfunction objectIsEmpty(obj) {\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k)) {\n return false;\n }\n }\n return true;\n}\nexports.objectIsEmpty = objectIsEmpty;\nfunction objectIsExtensible(obj) {\n if (typeof Object.isExtensible !== 'function') {\n return true;\n }\n return Object.isExtensible(obj);\n}\nexports.objectIsExtensible = objectIsExtensible;\nfunction makeBacktrace(stack, filterHbSourceCode, logger) {\n if (filterHbSourceCode === void 0) { filterHbSourceCode = false; }\n if (logger === void 0) { logger = console; }\n if (!stack) {\n return [];\n }\n try {\n var backtrace = stackTraceParser\n .parse(stack)\n .map(function (line) {\n return {\n file: line.file,\n method: line.methodName,\n number: line.lineNumber,\n column: line.column\n };\n });\n if (filterHbSourceCode) {\n backtrace.splice(0, calculateBacktraceShift(backtrace));\n }\n return backtrace;\n }\n catch (err) {\n logger.debug(err);\n return [];\n }\n}\nexports.makeBacktrace = makeBacktrace;\nfunction isFrameFromHbSourceCode(frame) {\n var hasHbFile = false;\n var hasHbMethod = false;\n if (frame.file) {\n hasHbFile = frame.file.toLowerCase().indexOf('@honeybadger-io') > -1;\n }\n if (frame.method) {\n hasHbMethod = frame.method.toLowerCase().indexOf('@honeybadger-io') > -1;\n }\n return hasHbFile || hasHbMethod;\n}\nexports.DEFAULT_BACKTRACE_SHIFT = 3;\n/**\n * If {@link generateStackTrace} is used, we want to exclude frames that come from\n * Honeybadger's source code.\n *\n * Logic:\n * - For each frame, increment the shift if source code is from Honeybadger\n * - If a frame from an <anonymous> file is encountered increment the shift ONLY if between Honeybadger source code\n * (i.e. previous and next frames are from Honeybadger)\n * - Exit when frame encountered is not from Honeybadger source code\n *\n * Note: this will not always work, especially in browser versions where code\n * is minified, uglified and bundled.\n * For those cases we default to 3:\n * - generateStackTrace\n * - makeNotice\n * - notify\n */\nfunction calculateBacktraceShift(backtrace) {\n var shift = 0;\n for (var i = 0; i < backtrace.length; i++) {\n var frame = backtrace[i];\n if (isFrameFromHbSourceCode(frame)) {\n shift++;\n continue;\n }\n if (!frame.file || frame.file === '<anonymous>') {\n var nextFrame = backtrace[i + 1];\n if (nextFrame && isFrameFromHbSourceCode(nextFrame)) {\n shift++;\n continue;\n }\n }\n break;\n }\n return shift || exports.DEFAULT_BACKTRACE_SHIFT;\n}\nexports.calculateBacktraceShift = calculateBacktraceShift;\nfunction getCauses(notice, logger) {\n if (notice.cause) {\n var causes = [];\n var cause = notice;\n // @ts-ignore this throws an error if tsconfig.json has strict: true\n while (causes.length < 3 && (cause = cause.cause)) {\n causes.push({\n class: cause.name,\n message: cause.message,\n backtrace: typeof cause.stack == 'string' ? makeBacktrace(cause.stack, false, logger) : null\n });\n }\n return causes;\n }\n return [];\n}\nexports.getCauses = getCauses;\nfunction getSourceForBacktrace(backtrace, getSourceFileHandler) {\n return __awaiter(this, void 0, void 0, function () {\n var result, index, trace, fileContent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = [];\n if (!getSourceFileHandler || !backtrace || !backtrace.length) {\n return [2 /*return*/, result];\n }\n index = 0;\n _a.label = 1;\n case 1:\n if (!backtrace.length) return [3 /*break*/, 3];\n trace = backtrace.splice(0)[index];\n return [4 /*yield*/, getSourceFileHandler(trace.file)];\n case 2:\n fileContent = _a.sent();\n result[index] = getSourceCodeSnippet(fileContent, trace.number, trace.column, 2);\n index++;\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/, result];\n }\n });\n });\n}\nexports.getSourceForBacktrace = getSourceForBacktrace;\nfunction runBeforeNotifyHandlers(notice, handlers) {\n var results = [];\n var result = true;\n for (var i = 0, len = handlers.length; i < len; i++) {\n var handler = handlers[i];\n var handlerResult = handler(notice);\n if (handlerResult === false) {\n result = false;\n }\n results.push(handlerResult);\n }\n return {\n results: results,\n result: result\n };\n}\nexports.runBeforeNotifyHandlers = runBeforeNotifyHandlers;\nfunction runBeforeEventHandlers(payload, handlers, logger) {\n return __awaiter(this, void 0, void 0, function () {\n var i, len, result, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n i = 0, len = handlers.length;\n _a.label = 1;\n case 1:\n if (!(i < len)) return [3 /*break*/, 7];\n result = void 0;\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, handlers[i](payload)];\n case 3:\n result = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n err_1 = _a.sent();\n // A buggy handler should not suppress unrelated events. Log and treat as no-op.\n logger === null || logger === void 0 ? void 0 : logger.error('beforeEvent handler threw; continuing', err_1);\n return [3 /*break*/, 6];\n case 5:\n if (result === false) {\n return [2 /*return*/, false];\n }\n _a.label = 6;\n case 6:\n i++;\n return [3 /*break*/, 1];\n case 7: return [2 /*return*/, true];\n }\n });\n });\n}\nexports.runBeforeEventHandlers = runBeforeEventHandlers;\nfunction resolveInsights(config) {\n var _a, _b;\n var insights = config.insights;\n if (!insights || insights.enabled !== true) {\n return { console: false, http: false };\n }\n return {\n console: (_a = insights.console) !== null && _a !== void 0 ? _a : false,\n http: (_b = insights.http) !== null && _b !== void 0 ? _b : false,\n };\n}\nexports.resolveInsights = resolveInsights;\nfunction fnv1a(str) {\n var h = 0x811c9dc5;\n for (var i = 0, len = str.length; i < len; i++) {\n h ^= str.charCodeAt(i);\n h = Math.imul(h, 0x01000193);\n }\n return h >>> 0;\n}\nfunction clampSampleRate(rate) {\n if (rate < 0)\n return 0;\n if (rate > 100)\n return 100;\n return rate;\n}\nfunction shouldSampleEvent(event, configRate) {\n var meta = event._hb;\n var override = meta && Number.isFinite(meta.sampleRate) ? meta.sampleRate : undefined;\n var rawRate = override !== undefined ? override : configRate;\n // Guard against non-finite rates (e.g. NaN from Number(invalidConfig)); an\n // unusable rate must not silently drop every event, so fall back to send-all.\n var rate = clampSampleRate(Number.isFinite(rawRate) ? rawRate : 100);\n if (rate <= 0)\n return false;\n if (rate >= 100)\n return true;\n var requestId = event.request_id;\n if (typeof requestId === 'string' && requestId.length > 0) {\n return fnv1a(requestId) % 100 < rate;\n }\n return Math.random() * 100 < rate;\n}\nexports.shouldSampleEvent = shouldSampleEvent;\nfunction runAfterNotifyHandlers(notice, handlers, error) {\n if (notice && notice.afterNotify) {\n notice.afterNotify(error, notice);\n }\n for (var i = 0, len = handlers.length; i < len; i++) {\n handlers[i](error, notice);\n }\n return true;\n}\nexports.runAfterNotifyHandlers = runAfterNotifyHandlers;\n// Returns a new object with properties from other object.\nfunction shallowClone(obj) {\n if (typeof (obj) !== 'object' || obj === null) {\n return {};\n }\n var result = {};\n for (var k in obj) {\n result[k] = obj[k];\n }\n return result;\n}\nexports.shallowClone = shallowClone;\nfunction sanitize(obj, maxDepth) {\n if (maxDepth === void 0) { maxDepth = 8; }\n var seenObjects = [];\n function seen(obj) {\n if (!obj || typeof (obj) !== 'object') {\n return false;\n }\n for (var i = 0; i < seenObjects.length; i++) {\n var value = seenObjects[i];\n if (value === obj) {\n return true;\n }\n }\n seenObjects.push(obj);\n return false;\n }\n function canSerialize(obj) {\n var typeOfObj = typeof obj;\n // Functions are TMI\n if (/function/.test(typeOfObj)) {\n // Let special toJSON method pass as it's used by JSON.stringify (#722)\n return obj.name === 'toJSON';\n }\n // Symbols can't convert to strings.\n if (/symbol/.test(typeOfObj)) {\n return false;\n }\n if (obj === null) {\n return false;\n }\n // No prototype, likely created with `Object.create(null)`.\n if (typeof obj === 'object' && typeof obj.hasOwnProperty === 'undefined') {\n return false;\n }\n return true;\n }\n function serialize(obj, depth) {\n if (depth === void 0) { depth = 0; }\n if (depth >= maxDepth) {\n return '[DEPTH]';\n }\n // Inspect invalid types\n if (!canSerialize(obj)) {\n return Object.prototype.toString.call(obj);\n }\n // Halt circular references\n if (seen(obj)) {\n return '[RECURSION]';\n }\n // Serialize inside arrays\n if (Array.isArray(obj)) {\n return obj.map(function (o) { return safeSerialize(o, depth + 1); });\n }\n // Serialize inside objects\n if (typeof (obj) === 'object') {\n var ret = {};\n for (var k in obj) {\n var v = obj[k];\n if (Object.prototype.hasOwnProperty.call(obj, k) && (k != null) && (v != null)) {\n ret[k] = safeSerialize(v, depth + 1);\n }\n }\n return ret;\n }\n // Return everything else untouched\n return obj;\n }\n function safeSerialize(obj, depth) {\n if (depth === void 0) { depth = 0; }\n try {\n return serialize(obj, depth);\n }\n catch (e) {\n return \"[ERROR] \".concat(e);\n }\n }\n return safeSerialize(obj);\n}\nexports.sanitize = sanitize;\nfunction logger(client) {\n var log = function (method) {\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (method === 'debug') {\n if (!client.config.debug) {\n return;\n }\n // Log at default level so that you don't need to also enable verbose\n // logging in Chrome.\n method = 'log';\n }\n args.unshift('[Honeybadger]');\n (_a = client.config.logger)[method].apply(_a, args);\n };\n };\n return {\n log: log('log'),\n info: log('info'),\n debug: log('debug'),\n warn: log('warn'),\n error: log('error')\n };\n}\nexports.logger = logger;\n/**\n * Converts any object into a notice object (which at minimum has the same\n * properties as Error, but supports additional Honeybadger properties.)\n */\nfunction makeNotice(thing) {\n var notice;\n if (!thing) {\n notice = {};\n }\n else if (isErrorObject(thing)) {\n var e = thing;\n notice = merge(thing, { name: e.name, message: e.message, stack: e.stack, cause: e.cause, originalError: e });\n }\n else if (typeof thing === 'object') {\n notice = shallowClone(thing);\n }\n else {\n var m = String(thing);\n notice = { message: m };\n }\n return notice;\n}\nexports.makeNotice = makeNotice;\nfunction isErrorObject(thing) {\n return thing instanceof Error\n || Object.prototype.toString.call(thing) === '[object Error]'; // Important for cross-realm objects\n}\nexports.isErrorObject = isErrorObject;\n/**\n * Instrument an existing function inside an object (usually global).\n * @param {!Object} object\n * @param {!String} name\n * @param {!Function} replacement\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction instrument(object, name, replacement) {\n if (!object || !name || !replacement || !(name in object)) {\n return;\n }\n try {\n var original = object[name];\n while (original && original.__hb_original) {\n original = original.__hb_original;\n }\n object[name] = replacement(original);\n object[name].__hb_original = original;\n }\n catch (_e) {\n // Ignores errors where \"original\" is a restricted object (see #1001)\n // Uncaught Error: Permission denied to access property \"__hb_original\"\n // Also ignores:\n // Error: TypeError: Cannot set property onunhandledrejection of [object Object] which has only a getter\n // User-Agent: Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-G960F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/12.1 Chrome/79.0.3945.136 Mobile Safari/537.36\n }\n}\nexports.instrument = instrument;\nvar _consoleAlreadyInstrumented = false;\nvar listeners = [];\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction instrumentConsole(_window, handler) {\n if (!_window || !_window.console || !handler) {\n return;\n }\n listeners.push(handler);\n if (_consoleAlreadyInstrumented) {\n return;\n }\n _consoleAlreadyInstrumented = true;\n ['debug', 'info', 'warn', 'error', 'log'].forEach(function (level) {\n instrument(_window.console, level, function hbLogger(original) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n listeners.forEach(function (listener) {\n try {\n listener(level, args);\n }\n catch (_e) {\n // ignore\n // should never reach here because instrument method already wraps with try/catch block\n }\n });\n if (typeof original === 'function') {\n Function.prototype.apply.call(original, _window.console, arguments);\n }\n };\n });\n });\n}\nexports.instrumentConsole = instrumentConsole;\nfunction endpoint(base, path) {\n var endpoint = base.trim().replace(/\\/$/, '');\n path = path.trim().replace(/(^\\/|\\/$)/g, '');\n return \"\".concat(endpoint, \"/\").concat(path);\n}\nexports.endpoint = endpoint;\nfunction generateStackTrace() {\n try {\n throw new Error('');\n }\n catch (e) {\n if (e.stack) {\n return e.stack;\n }\n }\n var maxStackSize = 10;\n var stack = [];\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize) {\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(RegExp.$1 || '<anonymous>');\n }\n else {\n stack.push('<anonymous>');\n }\n try {\n curr = curr.caller;\n }\n catch (e) {\n break;\n }\n }\n return stack.join('\\n');\n}\nexports.generateStackTrace = generateStackTrace;\nfunction filter(obj, filters) {\n if (!is('Object', obj)) {\n return;\n }\n if (!is('Array', filters)) {\n filters = [];\n }\n var seen = [];\n function filter(obj) {\n var k, newObj;\n if (is('Object', obj) || is('Array', obj)) {\n if (seen.indexOf(obj) !== -1) {\n return '[CIRCULAR DATA STRUCTURE]';\n }\n seen.push(obj);\n }\n if (is('Object', obj)) {\n newObj = {};\n for (k in obj) {\n if (filterMatch(k, filters)) {\n newObj[k] = '[FILTERED]';\n }\n else {\n newObj[k] = filter(obj[k]);\n }\n }\n return newObj;\n }\n if (is('Array', obj)) {\n return obj.map(function (v) {\n return filter(v);\n });\n }\n if (is('Function', obj)) {\n return '[FUNC]';\n }\n return obj;\n }\n return filter(obj);\n}\nexports.filter = filter;\nfunction filterMatch(key, filters) {\n for (var i = 0; i < filters.length; i++) {\n if (key.toLowerCase().indexOf(filters[i].toLowerCase()) !== -1) {\n return true;\n }\n }\n return false;\n}\nfunction is(type, obj) {\n var klass = Object.prototype.toString.call(obj).slice(8, -1);\n return obj !== undefined && obj !== null && klass === type;\n}\nfunction filterUrl(url, filters) {\n if (!filters) {\n return url;\n }\n if (typeof url !== 'string') {\n return url;\n }\n var query = url.split(/\\?/, 2)[1];\n if (!query) {\n return url;\n }\n var result = url;\n query.split(/[&]\\s?/).forEach(function (pair) {\n var _a = pair.split('=', 2), key = _a[0], value = _a[1];\n if (filterMatch(key, filters)) {\n result = result.replace(\"\".concat(key, \"=\").concat(value), \"\".concat(key, \"=[FILTERED]\"));\n }\n });\n return result;\n}\nexports.filterUrl = filterUrl;\nfunction formatCGIData(vars, prefix) {\n if (prefix === void 0) { prefix = ''; }\n var formattedVars = {};\n Object.keys(vars).forEach(function (key) {\n var formattedKey = prefix + key.replace(/\\W/g, '_').toUpperCase();\n formattedVars[formattedKey] = vars[key];\n });\n return formattedVars;\n}\nexports.formatCGIData = formatCGIData;\n/**\n * Deep-copies a value exactly the way a JSON round trip does -- `toJSON` is\n * honored, so dates become ISO strings -- except that circular references are\n * replaced with '[RECURSION]' instead of throwing.\n *\n * Only true cycles are replaced: a value referenced twice in sibling branches\n * is copied twice, as a JSON round trip would.\n *\n * Anything else a round trip rejects (a BigInt, a getter that throws) still\n * throws here. Callers that must not fail are expected to handle it: silently\n * substituting a placeholder would let a malformed value -- a string where an\n * object is expected, say -- travel on as though it were valid.\n */\nfunction clone(obj) {\n var ancestors = [];\n return JSON.parse(JSON.stringify(obj, function (_key, value) {\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n // `this` is the object `value` sits in, so anything stacked above it has\n // been fully visited and is no longer an ancestor of `value`.\n while (ancestors.length > 0 && ancestors[ancestors.length - 1] !== this) {\n ancestors.pop();\n }\n if (ancestors.indexOf(value) !== -1) {\n return '[RECURSION]';\n }\n ancestors.push(value);\n return value;\n }));\n}\nexports.clone = clone;\nvar THRESHOLD_COLUMN_NUMBER = 10000;\nvar THRESHOLD_LINE_LENGTH = 10000;\nvar THRESHOLD_FILE_SIZE = 200000; // 200KB threshold\nfunction getThresholdExceededSnippet(lineNumber) {\n var _a;\n return _a = {}, _a[lineNumber] = 'SOURCE_SIZE_TOO_LARGE', _a;\n}\nfunction getSourceCodeSnippet(fileData, lineNumber, columnNumber, sourceRadius) {\n if (sourceRadius === void 0) { sourceRadius = 2; }\n if (!fileData) {\n return null;\n }\n // If column number is provided and very high, it's likely a bundled/minified file\n if (columnNumber && columnNumber > THRESHOLD_COLUMN_NUMBER) {\n return getThresholdExceededSnippet(lineNumber);\n }\n // If file is very large, it's likely bundled\n if (fileData.length > THRESHOLD_FILE_SIZE) {\n return getThresholdExceededSnippet(lineNumber);\n }\n var lines = fileData.split('\\n');\n // add one empty line because array index starts from 0, but error line number is counted from 1\n lines.unshift('');\n // Check if the target line is extremely long\n var targetLine = lines[lineNumber];\n if (targetLine && targetLine.length > THRESHOLD_LINE_LENGTH) {\n return getThresholdExceededSnippet(lineNumber);\n }\n var start = lineNumber - sourceRadius;\n var end = lineNumber + sourceRadius;\n var result = {};\n for (var i = start; i <= end; i++) {\n var line = lines[i];\n if (typeof line === 'string') {\n result[i] = line;\n }\n }\n return result;\n}\nfunction isBrowserConfig(config) {\n return config.async !== undefined;\n}\nexports.isBrowserConfig = isBrowserConfig;\n/** globalThis has fairly good support. But just in case, lets check its defined.\n * @see {https://caniuse.com/?search=globalThis}\n */\nfunction globalThisOrWindow() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n return window;\n}\nexports.globalThisOrWindow = globalThisOrWindow;\nvar _deprecatedMethodCalls = {};\n/**\n * Logs a deprecation warning, every X calls to the method.\n */\nfunction logDeprecatedMethod(logger, oldMethod, newMethod, callCountThreshold) {\n if (callCountThreshold === void 0) { callCountThreshold = 100; }\n var key = \"\".concat(oldMethod, \"-\").concat(newMethod);\n if (typeof _deprecatedMethodCalls[key] === 'undefined') {\n _deprecatedMethodCalls[key] = 0;\n }\n if (_deprecatedMethodCalls[key] % callCountThreshold !== 0) {\n _deprecatedMethodCalls[key]++;\n return;\n }\n var msg = \"Deprecation warning: \".concat(oldMethod, \" has been deprecated; please use \").concat(newMethod, \" instead.\");\n logger.warn(msg);\n _deprecatedMethodCalls[key]++;\n}\nexports.logDeprecatedMethod = logDeprecatedMethod;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = require(\"../util\");\nfunction default_1(_window) {\n if (_window === void 0) { _window = (0, util_1.globalThisOrWindow)(); }\n return {\n shouldReloadOnConfigure: false,\n load: function (client) {\n function sendEventsToInsights() {\n return (0, util_1.resolveInsights)(client.config).console;\n }\n if (!sendEventsToInsights()) {\n return;\n }\n (0, util_1.instrumentConsole)(_window, function (level, args) {\n if (!sendEventsToInsights()) {\n return;\n }\n if (args.length === 0) {\n return;\n }\n var data = {\n severity: level,\n };\n if (typeof args[0] === 'string') {\n data.message = args[0];\n data.args = args.slice(1);\n }\n else {\n data.args = args;\n }\n client.event('log', data);\n });\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=console_events.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GlobalStore = void 0;\nvar util_1 = require(\"./util\");\nvar GlobalStore = /** @class */ (function () {\n function GlobalStore(contents, breadcrumbsLimit) {\n this.contents = contents;\n this.breadcrumbsLimit = breadcrumbsLimit;\n }\n GlobalStore.create = function (contents, breadcrumbsLimit) {\n return new GlobalStore(contents, breadcrumbsLimit);\n };\n GlobalStore.prototype.available = function () {\n return true;\n };\n GlobalStore.prototype.getContents = function (key) {\n var value = key ? this.contents[key] : this.contents;\n // `clone` keeps JSON round trip semantics but tolerates values a bare\n // round trip throws on -- notably circular references, which arrive via\n // context or breadcrumb metadata the host application controls.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (0, util_1.clone)(value);\n };\n GlobalStore.prototype.setContext = function (context) {\n this.contents.context = (0, util_1.merge)(this.contents.context, context || {});\n };\n GlobalStore.prototype.setEventContext = function (eventContext) {\n this.contents.eventContext = (0, util_1.merge)(this.contents.eventContext, eventContext || {});\n };\n GlobalStore.prototype.clearEventContext = function () {\n this.contents.eventContext = {};\n };\n GlobalStore.prototype.addBreadcrumb = function (breadcrumb) {\n if (this.contents.breadcrumbs.length == this.breadcrumbsLimit) {\n this.contents.breadcrumbs.shift();\n }\n this.contents.breadcrumbs.push(breadcrumb);\n };\n GlobalStore.prototype.clear = function () {\n this.contents.context = {};\n this.contents.eventContext = {};\n this.contents.breadcrumbs = [];\n };\n GlobalStore.prototype.run = function (callback) {\n return callback();\n };\n return GlobalStore;\n}());\nexports.GlobalStore = GlobalStore;\n//# sourceMappingURL=store.js.map","export class NdJson {\n static parse(data) {\n const lines = data.trim().split('\\n');\n return lines.map(line => JSON.parse(line));\n }\n static stringify(data) {\n return data.map(item => JSON.stringify(item)).join('\\n');\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BREADCRUMBS_SELECTOR_ATTRIBUTES = exports.CONFIG = void 0;\nexports.CONFIG = {\n apiKey: null,\n endpoint: 'https://api.honeybadger.io',\n appEndpoint: 'https://app.honeybadger.io',\n environment: null,\n hostname: null,\n projectRoot: null,\n component: null,\n action: null,\n revision: null,\n reportData: null,\n breadcrumbsEnabled: true,\n // deprecated: `eventsEnabled: true` auto-enables insights.enabled + insights.console\n eventsEnabled: false,\n insights: {\n enabled: false,\n console: false,\n http: false,\n },\n events: {\n dispatchIntervalSeconds: 10,\n bulkThreshold: 500,\n sampleRatePercentage: 100,\n },\n maxBreadcrumbs: 40,\n maxObjectDepth: 8,\n logger: console,\n developmentEnvironments: ['dev', 'development', 'test'],\n debug: false,\n tags: null,\n enableUncaught: true,\n enableUnhandledRejection: true,\n afterUncaught: function () { return true; },\n filters: ['creditcard', 'password'],\n __plugins: [],\n};\n// Browser-only, so it lives outside CONFIG (which is shared with Node).\nexports.BREADCRUMBS_SELECTOR_ATTRIBUTES = ['data-hb-name'];\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThrottledEventsWorker = void 0;\nvar json_nd_1 = require(\"json-nd\");\nvar util_1 = require(\"./util\");\nvar defaults_1 = require(\"./defaults\");\nvar ThrottledEventsWorker = /** @class */ (function () {\n function ThrottledEventsWorker(config, transport) {\n this.config = config;\n this.transport = transport;\n this.queue = [];\n this.cooldownTimer = null;\n // Timestamp (ms) until which the post-send cooldown window is active. A timer\n // is only armed while there are queued events waiting for this window; when the\n // queue drains empty we keep the timestamp but drop the timer, so an idle worker\n // never holds a pending timer (which would otherwise keep a Node process alive\n // for the full interval.\n this.cooldownUntil = 0;\n this.inFlight = null;\n this.config = __assign(__assign({}, defaults_1.CONFIG), config);\n this.logger = this.originalLogger();\n }\n ThrottledEventsWorker.prototype.configure = function (opts) {\n for (var k in opts) {\n this.config[k] = opts[k];\n }\n };\n ThrottledEventsWorker.prototype.log = function (payload) {\n this.queue.push(payload);\n if (this.inFlight) {\n return;\n }\n // Crossing the bulk threshold preempts any pending cooldown and dispatches now.\n if (this.queue.length >= this.bulkThreshold()) {\n this.clearCooldownTimer();\n this.processQueue();\n return;\n }\n // A timer is already counting down the cooldown window; the queued event\n // will be picked up when it fires.\n if (this.cooldownTimer) {\n return;\n }\n // We're inside a cooldown window but no timer is armed (the queue had drained\n // empty after the previous send). Arm one for the remaining time so this event\n // still respects the interval.\n var remaining = this.cooldownRemainingMs();\n if (remaining > 0) {\n this.scheduleCooldownTimer(remaining);\n return;\n }\n this.processQueue();\n };\n ThrottledEventsWorker.prototype.flushAsync = function () {\n var _this = this;\n var _a;\n this.logger.debug('[Honeybadger] Flushing events');\n this.clearCooldownTimer();\n var previous = (_a = this.inFlight) !== null && _a !== void 0 ? _a : Promise.resolve();\n var flush = previous.then(function () { return _this.drainAll(); });\n // Mark the flush as in-flight so a concurrent log() doesn't start an\n // overlapping processQueue() drain while we're draining here.\n this.inFlight = flush;\n var clear = function () {\n if (_this.inFlight === flush) {\n _this.inFlight = null;\n }\n };\n flush.then(clear, clear);\n return flush;\n };\n ThrottledEventsWorker.prototype.drainAll = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.queue.length > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.send()];\n case 1:\n _a.sent();\n return [3 /*break*/, 0];\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n ThrottledEventsWorker.prototype.processQueue = function () {\n var _this = this;\n if (this.queue.length === 0 || this.inFlight) {\n return;\n }\n var inFlight = this.send()\n .catch(function (error) {\n _this.logger.error('[Honeybadger] Error making HTTP request:', error);\n })\n .then(function () {\n // Only reset if we're still the current operation; a flushAsync() may\n // have taken ownership of inFlight while this send was resolving.\n if (_this.inFlight === inFlight) {\n _this.inFlight = null;\n _this.scheduleNextDispatch();\n }\n });\n this.inFlight = inFlight;\n };\n ThrottledEventsWorker.prototype.scheduleNextDispatch = function () {\n var intervalMs = this.dispatchIntervalMs();\n // Capture the cooldown deadline at dispatch time so a later config change to\n // the interval doesn't retroactively shorten a window already in progress.\n this.cooldownUntil = Date.now() + intervalMs;\n if (this.queue.length >= this.bulkThreshold()) {\n this.processQueue();\n return;\n }\n // Only arm a timer when there's queued work waiting for it. If the queue is\n // empty, `cooldownUntil` alone enforces the window: the next log() will arm a\n // timer for whatever time remains, and an idle worker holds no timer at all.\n if (this.queue.length > 0) {\n this.scheduleCooldownTimer(intervalMs);\n }\n };\n ThrottledEventsWorker.prototype.cooldownRemainingMs = function () {\n if (!this.cooldownUntil) {\n return 0;\n }\n return Math.max(0, this.cooldownUntil - Date.now());\n };\n ThrottledEventsWorker.prototype.scheduleCooldownTimer = function (ms) {\n var _this = this;\n this.cooldownTimer = setTimeout(function () {\n _this.cooldownTimer = null;\n _this.processQueue();\n }, ms);\n // In Node, don't let a pending cooldown timer keep the process alive for the\n // whole batching interval. `unref` lets the event loop go idle so the process\n // can exit (or a shutdown / `beforeExit` handler can run) promptly instead of\n // blocking for `dispatchIntervalSeconds`. Queued events aren't lost: a\n // `flushAsync()` on the way out still drains them before exit. (`unref` is\n // Node-only; the browser's numeric setTimeout handle has no such method.)\n if (typeof this.cooldownTimer === 'object' && this.cooldownTimer !== null && typeof this.cooldownTimer.unref === 'function') {\n this.cooldownTimer.unref();\n }\n };\n ThrottledEventsWorker.prototype.clearCooldownTimer = function () {\n if (this.cooldownTimer) {\n clearTimeout(this.cooldownTimer);\n this.cooldownTimer = null;\n }\n };\n ThrottledEventsWorker.prototype.send = function () {\n return __awaiter(this, void 0, void 0, function () {\n var eventsData, data;\n return __generator(this, function (_a) {\n if (this.queue.length === 0) {\n return [2 /*return*/];\n }\n eventsData = this.queue.splice(0, this.bulkThreshold());\n data = json_nd_1.NdJson.stringify(eventsData);\n return [2 /*return*/, this.makeHttpRequest(data)];\n });\n });\n };\n ThrottledEventsWorker.prototype.bulkThreshold = function () {\n var _a;\n var v = (_a = this.config.events) === null || _a === void 0 ? void 0 : _a.bulkThreshold;\n return typeof v === 'number' && v > 0 ? v : defaults_1.CONFIG.events.bulkThreshold;\n };\n ThrottledEventsWorker.prototype.dispatchIntervalMs = function () {\n var _a;\n var v = (_a = this.config.events) === null || _a === void 0 ? void 0 : _a.dispatchIntervalSeconds;\n var seconds = typeof v === 'number' && v >= 0 ? v : defaults_1.CONFIG.events.dispatchIntervalSeconds;\n return seconds * 1000;\n };\n ThrottledEventsWorker.prototype.makeHttpRequest = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, this.transport\n .send({\n headers: {\n 'X-API-Key': this.config.apiKey,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n endpoint: (0, util_1.endpoint)(this.config.endpoint, '/v1/events'),\n maxObjectDepth: this.config.maxObjectDepth,\n logger: this.logger,\n }, data)\n .then(function (resp) {\n if ([200, 201].includes(resp.statusCode)) {\n _this.logger.debug('[Honeybadger] Events sent successfully');\n }\n else {\n _this.logger.debug(\"[Honeybadger] Events failed[\".concat(resp.statusCode, \"]: \").concat(resp.body));\n }\n })\n .catch(function (err) {\n _this.logger.error(\"[Honeybadger] Error sending events: \".concat(err.message));\n })];\n });\n });\n };\n /**\n * todo: improve this\n *\n * The events plugin overrides the console methods to enable automatic instrumentation\n * of console logs to the Honeybadger API.\n * So if we want to log something in here we need to use the original methods.\n */\n ThrottledEventsWorker.prototype.originalLogger = function () {\n var _this = this;\n var _a, _b, _c, _d;\n return {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n log: (_a = console.log.__hb_original) !== null && _a !== void 0 ? _a : console.log,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n info: (_b = console.info.__hb_original) !== null && _b !== void 0 ? _b : console.info,\n debug: function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!_this.config.debug) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var func = (_a = console.debug.__hb_original) !== null && _a !== void 0 ? _a : console.debug;\n return func.apply(void 0, args);\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n warn: (_c = console.warn.__hb_original) !== null && _c !== void 0 ? _c : console.warn,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error: (_d = console.error.__hb_original) !== null && _d !== void 0 ? _d : console.error,\n };\n };\n return ThrottledEventsWorker;\n}());\nexports.ThrottledEventsWorker = ThrottledEventsWorker;\n//# sourceMappingURL=throttled_events_worker.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Client = void 0;\nvar util_1 = require(\"./util\");\nvar store_1 = require(\"./store\");\nvar throttled_events_worker_1 = require(\"./throttled_events_worker\");\nvar defaults_1 = require(\"./defaults\");\n// Split at commas and spaces\nvar TAG_SEPARATOR = /,|\\s+/;\n// Checks for non-blank characters\nvar NOT_BLANK = /\\S/;\nvar Client = /** @class */ (function () {\n function Client(opts, transport) {\n if (opts === void 0) { opts = {}; }\n this.__pluginsLoaded = false;\n this.__store = null;\n this.__beforeNotifyHandlers = [];\n this.__beforeEventHandlers = [];\n this.__afterNotifyHandlers = [];\n this.__pendingEvents = new Set();\n this.__notifier = {\n name: '@honeybadger-io/core',\n url: 'https://github.com/honeybadger-io/honeybadger-js/tree/master/packages/core',\n version: '__VERSION__'\n };\n this.config = __assign(__assign({}, defaults_1.CONFIG), opts);\n this.__initStore();\n this.__transport = transport;\n this.__eventsWorker = new throttled_events_worker_1.ThrottledEventsWorker(this.config, this.__transport);\n this.logger = (0, util_1.logger)(this);\n this.__applyEventsEnabledShim(opts);\n }\n Client.prototype.getVersion = function () {\n return this.__notifier.version;\n };\n Client.prototype.getNotifier = function () {\n return this.__notifier;\n };\n /**\n * CAREFUL: When adding a new notifier or updating the name of an existing notifier,\n * the Honeybadger rails project may need its mappings updated.\n * See https://github.com/honeybadger-io/honeybadger/blob/master/app/presenters/breadcrumbs_presenter.rb\n * https://github.com/honeybadger-io/honeybadger/blob/master/app/models/parser/java_script.rb\n * https://github.com/honeybadger-io/honeybadger/blob/master/app/models/language.rb\n **/\n Client.prototype.setNotifier = function (notifier) {\n this.__notifier = notifier;\n };\n Client.prototype.configure = function (opts) {\n if (opts === void 0) { opts = {}; }\n for (var k in opts) {\n this.config[k] = opts[k];\n }\n this.__applyEventsEnabledShim(opts);\n this.__eventsWorker.configure(this.config);\n this.loadPlugins();\n return this;\n };\n /**\n * Backwards compatibility: `eventsEnabled: true` used to opt into console events.\n * The deprecated flag auto-enables `insights.enabled` and `insights.console`;\n * explicit user-provided insights values win over the shim.\n */\n Client.prototype.__applyEventsEnabledShim = function (opts) {\n var _a;\n if (opts.eventsEnabled !== true) {\n return;\n }\n this.logger.warn('Deprecation warning: `eventsEnabled` has been deprecated; please use `insights.enabled` and `insights.console` instead.');\n this.config.insights = __assign(__assign(__assign({}, ((_a = this.config.insights) !== null && _a !== void 0 ? _a : {})), { enabled: true, console: true }), opts.insights);\n };\n Client.prototype.loadPlugins = function () {\n var _this = this;\n var pluginsToLoad = this.__pluginsLoaded\n ? this.config.__plugins.filter(function (plugin) { return plugin.shouldReloadOnConfigure; })\n : this.config.__plugins;\n pluginsToLoad.forEach(function (plugin) { return plugin.load(_this); });\n this.__pluginsLoaded = true;\n };\n Client.prototype.__initStore = function () {\n this.__store = new store_1.GlobalStore({ context: {}, eventContext: {}, breadcrumbs: [] }, this.config.maxBreadcrumbs);\n };\n Client.prototype.beforeNotify = function (handler) {\n this.__beforeNotifyHandlers.push(handler);\n return this;\n };\n Client.prototype.beforeEvent = function (handler) {\n this.__beforeEventHandlers.push(handler);\n return this;\n };\n Client.prototype.afterNotify = function (handler) {\n this.__afterNotifyHandlers.push(handler);\n return this;\n };\n Client.prototype.setContext = function (context) {\n if (typeof context === 'object' && context != null) {\n this.__store.setContext(context);\n }\n return this;\n };\n Client.prototype.setEventContext = function (eventContext) {\n if (typeof eventContext === 'object' && eventContext != null) {\n this.__store.setEventContext(eventContext);\n }\n return this;\n };\n Client.prototype.clearEventContext = function () {\n this.__store.clearEventContext();\n return this;\n };\n Client.prototype.resetContext = function (context) {\n this.logger.warn('Deprecation warning: `Honeybadger.resetContext()` has been deprecated; please use `Honeybadger.clear()` instead.');\n this.__store.clear();\n if (typeof context === 'object' && context !== null) {\n this.__store.setContext(context);\n }\n return this;\n };\n Client.prototype.clear = function () {\n this.__store.clear();\n return this;\n };\n /**\n * Reporting an error must never break the host application, so any failure\n * inside the reporting path is logged and swallowed rather than thrown back\n * into the caller.\n */\n Client.prototype.notify = function (noticeable, name, extra) {\n var _this = this;\n if (name === void 0) { name = undefined; }\n if (extra === void 0) { extra = undefined; }\n // The body is inlined in this try/catch rather than delegated to a private\n // method: generated backtraces are trimmed by a fixed frame count\n // (DEFAULT_BACKTRACE_SHIFT), so an extra call frame here would shift every\n // generated backtrace into Honeybadger's own source.\n try {\n var notice_1 = this.makeNotice(noticeable, name, extra);\n // we need to have the source file data before the beforeNotifyHandlers,\n // in case they modify them\n var sourceCodeData_1 = notice_1 && notice_1.backtrace ? notice_1.backtrace.map(function (trace) { return (0, util_1.shallowClone)(trace); }) : null;\n var preConditionsResult = this.__runPreconditions(notice_1);\n if (preConditionsResult instanceof Error) {\n (0, util_1.runAfterNotifyHandlers)(notice_1, this.__afterNotifyHandlers, preConditionsResult);\n return false;\n }\n if (preConditionsResult instanceof Promise) {\n preConditionsResult.then(function (result) {\n if (result instanceof Error) {\n (0, util_1.runAfterNotifyHandlers)(notice_1, _this.__afterNotifyHandlers, result);\n return false;\n }\n return _this.__send(notice_1, sourceCodeData_1);\n }).catch(function (err) {\n // __send installs its own catch, which logs and runs the afterNotify\n // handlers. Anything arriving here failed before that chain existed,\n // so it is still unreported -- and notify() has already returned\n // true, leaving notifyAsync() waiting on those handlers.\n _this.__logReportingFailure(err);\n (0, util_1.runAfterNotifyHandlers)(notice_1, _this.__afterNotifyHandlers, err instanceof Error ? err : new Error(String(err)));\n });\n return true;\n }\n this.__send(notice_1, sourceCodeData_1).catch(function (_err) { });\n return true;\n }\n catch (err) {\n // Reporting an error must never break the host application, so a failure\n // in the reporting path is logged rather than thrown back at the caller.\n // notifyAsync() settles on the false return below.\n this.__logReportingFailure(err);\n return false;\n }\n };\n /** The logger is host-supplied, so even reporting a failure gets a guard. */\n Client.prototype.__logReportingFailure = function (err) {\n try {\n this.logger.error('Error report failed: an internal error occurred while reporting', err);\n }\n catch (_loggerErr) { /* nothing left to report it with */ }\n };\n /**\n * An async version of {@link notify} that resolves only after the notice has been reported to Honeybadger.\n * Implemented using the {@link afterNotify} hook.\n * Rejects if for any reason the report failed to be reported.\n * Useful in serverless environments (AWS Lambda).\n */\n Client.prototype.notifyAsync = function (noticeable, name, extra) {\n var _this = this;\n if (name === void 0) { name = undefined; }\n if (extra === void 0) { extra = undefined; }\n return new Promise(function (resolve, reject) {\n var applyAfterNotify = function (partialNotice) {\n var originalAfterNotify = partialNotice.afterNotify;\n partialNotice.afterNotify = function (err) {\n // Settle from a `finally` so a throwing handler cannot leave the\n // caller awaiting forever; its error propagates as it always has.\n try {\n originalAfterNotify === null || originalAfterNotify === void 0 ? void 0 : originalAfterNotify.call(_this, err);\n }\n finally {\n if (err) {\n reject(err);\n }\n else {\n resolve();\n }\n }\n };\n };\n // We have to respect any afterNotify hooks that come from the arguments\n var objectToOverride;\n if (noticeable.afterNotify) {\n objectToOverride = noticeable;\n }\n else if (name && name.afterNotify) {\n objectToOverride = name;\n }\n else if (extra && extra.afterNotify) {\n objectToOverride = extra;\n }\n else if (name && typeof name === 'object') {\n objectToOverride = name;\n }\n else if (extra) {\n objectToOverride = extra;\n }\n else {\n objectToOverride = name = {};\n }\n applyAfterNotify(objectToOverride);\n // `notify` never throws, so a false return is the only signal that the\n // report was abandoned. Every expected failure has already settled this\n // promise through the afterNotify hook above (a second reject is a\n // no-op); this catches the unexpected ones, which would otherwise leave\n // the caller awaiting forever.\n if (!_this.notify(noticeable, name, extra)) {\n reject(new Error('Error report failed: see logs for details'));\n }\n });\n };\n Client.prototype.makeNotice = function (noticeable, name, extra) {\n if (name === void 0) { name = undefined; }\n if (extra === void 0) { extra = undefined; }\n var notice = (0, util_1.makeNotice)(noticeable);\n if (name && !(typeof name === 'object')) {\n var n = String(name);\n name = { name: n };\n }\n if (name) {\n notice = (0, util_1.mergeNotice)(notice, name);\n }\n if (typeof extra === 'object' && extra !== null) {\n notice = (0, util_1.mergeNotice)(notice, extra);\n }\n if ((0, util_1.objectIsEmpty)(notice)) {\n return null;\n }\n var context = this.__store.getContents('context');\n var noticeTags = this.__constructTags(notice.tags);\n var contextTags = this.__constructTags(context['tags']);\n var configTags = this.__constructTags(this.config.tags);\n // Turning into a Set will remove duplicates\n var tags = noticeTags.concat(contextTags).concat(configTags);\n var uniqueTags = tags.filter(function (item, index) { return tags.indexOf(item) === index; });\n notice = (0, util_1.merge)(notice, {\n name: notice.name || 'Error',\n context: (0, util_1.merge)(context, notice.context),\n projectRoot: notice.projectRoot || this.config.projectRoot,\n environment: notice.environment || this.config.environment,\n component: notice.component || this.config.component,\n action: notice.action || this.config.action,\n revision: notice.revision || this.config.revision,\n tags: uniqueTags,\n });\n // If we're passed a custom backtrace array, use it\n // Otherwise we make one.\n if (!Array.isArray(notice.backtrace) || !notice.backtrace.length) {\n if (typeof notice.stack !== 'string' || !notice.stack.trim()) {\n notice.stack = (0, util_1.generateStackTrace)();\n notice.backtrace = (0, util_1.makeBacktrace)(notice.stack, true, this.logger);\n }\n else {\n notice.backtrace = (0, util_1.makeBacktrace)(notice.stack, false, this.logger);\n }\n }\n return notice;\n };\n Client.prototype.addBreadcrumb = function (message, opts) {\n if (!this.config.breadcrumbsEnabled) {\n return;\n }\n opts = opts || {};\n var metadata = (0, util_1.shallowClone)(opts.metadata);\n var category = opts.category || 'custom';\n var timestamp = new Date().toISOString();\n this.__store.addBreadcrumb({\n category: category,\n message: message,\n metadata: metadata,\n timestamp: timestamp\n });\n return this;\n };\n /**\n * @deprecated Use {@link event} instead.\n */\n Client.prototype.logEvent = function (data) {\n (0, util_1.logDeprecatedMethod)(this.logger, 'Honeybadger.logEvent', 'Honeybadger.event');\n this.event('log', data);\n };\n Client.prototype.event = function (type, data) {\n var _this = this;\n var _a;\n if (typeof type === 'object') {\n data = type;\n type = (_a = type['event_type']) !== null && _a !== void 0 ? _a : undefined;\n }\n var eventContext = this.__store.getContents('eventContext') || {};\n var payload = __assign(__assign({ event_type: type, ts: new Date().toISOString() }, eventContext), data);\n // Track in-flight handler chains so flushAsync() can await them before\n // delegating to the events logger; otherwise a caller that awaits flushAsync()\n // immediately after event() may flush before the payload enters the queue.\n var inFlight = (0, util_1.runBeforeEventHandlers)(payload, this.__beforeEventHandlers, this.logger)\n .then(function (shouldSend) {\n var _a, _b;\n if (!shouldSend) {\n _this.logger.debug('skipping event: beforeEvent handler returned false');\n return;\n }\n var sampleRate = (_b = (_a = _this.config.events) === null || _a === void 0 ? void 0 : _a.sampleRatePercentage) !== null && _b !== void 0 ? _b : 100;\n if (!(0, util_1.shouldSampleEvent)(payload, sampleRate)) {\n _this.logger.debug('skipping event: dropped by sampleRatePercentage');\n return;\n }\n delete payload._hb;\n _this.__eventsWorker.log(payload);\n })\n .catch(function (err) {\n // should not happen, because each handler is wrapped with a try/catch\n _this.logger.error('beforeEvent handler chain failed; dropping event', err);\n })\n .finally(function () {\n _this.__pendingEvents.delete(inFlight);\n });\n this.__pendingEvents.add(inFlight);\n };\n /**\n * This method currently flushes the event (Insights) queue.\n * In the future, it should also flush the error queue (assuming an error throttler is implemented).\n */\n Client.prototype.flushAsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.__pendingEvents.size > 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, Promise.allSettled(Array.from(this.__pendingEvents))];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, this.__eventsWorker.flushAsync()];\n }\n });\n });\n };\n Client.prototype.__getBreadcrumbs = function () {\n return this.__store.getContents('breadcrumbs').slice();\n };\n Client.prototype.__getContext = function () {\n return this.__store.getContents('context');\n };\n Client.prototype.__developmentMode = function () {\n if (this.config.reportData === true) {\n return false;\n }\n return (this.config.environment && this.config.developmentEnvironments.includes(this.config.environment));\n };\n Client.prototype.__buildPayload = function (notice) {\n var headers = (0, util_1.filter)(notice.headers, this.config.filters) || {};\n var cgiData = (0, util_1.filter)(__assign(__assign({}, notice.cgiData), (0, util_1.formatCGIData)(headers, 'HTTP_')), this.config.filters);\n return {\n notifier: this.__notifier,\n breadcrumbs: {\n enabled: !!this.config.breadcrumbsEnabled,\n trail: notice.__breadcrumbs || []\n },\n error: {\n class: notice.name,\n message: notice.message,\n backtrace: notice.backtrace,\n fingerprint: notice.fingerprint,\n tags: notice.tags,\n causes: (0, util_1.getCauses)(notice, this.logger),\n },\n request: {\n url: (0, util_1.filterUrl)(notice.url, this.config.filters),\n component: notice.component,\n action: notice.action,\n context: notice.context,\n cgi_data: cgiData,\n params: (0, util_1.filter)(notice.params, this.config.filters) || {},\n session: (0, util_1.filter)(notice.session, this.config.filters) || {}\n },\n server: {\n project_root: notice.projectRoot,\n environment_name: notice.environment,\n revision: notice.revision,\n hostname: this.config.hostname,\n time: new Date().toUTCString()\n },\n details: notice.details || {}\n };\n };\n Client.prototype.__constructTags = function (tags) {\n if (!tags) {\n return [];\n }\n return tags.toString().split(TAG_SEPARATOR).filter(function (tag) { return NOT_BLANK.test(tag); });\n };\n Client.prototype.__runPreconditions = function (notice) {\n var _this = this;\n var preConditionError = null;\n if (!notice) {\n this.logger.debug('failed to build error report');\n preConditionError = new Error('failed to build error report');\n }\n if (this.config.reportData === false) {\n this.logger.debug('skipping error report: honeybadger.js is disabled', notice);\n preConditionError = new Error('honeybadger.js is disabled');\n }\n if (this.__developmentMode()) {\n this.logger.log('honeybadger.js is in development mode; the following error report will be sent in production.', notice);\n preConditionError = new Error('honeybadger.js is in development mode');\n }\n if (!this.config.apiKey) {\n this.logger.warn('could not send error report: no API key has been configured', notice);\n preConditionError = new Error('missing API key');\n }\n var beforeNotifyResult = (0, util_1.runBeforeNotifyHandlers)(notice, this.__beforeNotifyHandlers);\n if (!preConditionError && !beforeNotifyResult.result) {\n this.logger.debug('skipping error report: one or more beforeNotify handlers returned false', notice);\n preConditionError = new Error('beforeNotify handlers returned false');\n }\n if (beforeNotifyResult.results.length && beforeNotifyResult.results.some(function (result) { return result instanceof Promise; })) {\n return Promise.allSettled(beforeNotifyResult.results)\n .then(function (results) {\n if (!preConditionError && (results.some(function (result) { return result.status === 'rejected' || result.value === false; }))) {\n _this.logger.debug('skipping error report: one or more beforeNotify handlers returned false', notice);\n preConditionError = new Error('beforeNotify handlers (async) returned false');\n }\n if (preConditionError) {\n return preConditionError;\n }\n });\n }\n return preConditionError;\n };\n Client.prototype.__send = function (notice, originalBacktrace) {\n var _this = this;\n if (this.config.breadcrumbsEnabled) {\n this.addBreadcrumb('Honeybadger Notice', {\n category: 'notice',\n metadata: {\n message: notice.message,\n name: notice.name,\n stack: notice.stack\n }\n });\n notice.__breadcrumbs = this.__store.getContents('breadcrumbs');\n }\n else {\n notice.__breadcrumbs = [];\n }\n return (0, util_1.getSourceForBacktrace)(originalBacktrace, this.__getSourceFileHandler)\n .then(function (sourcePerTrace) { return __awaiter(_this, void 0, void 0, function () {\n var payload;\n return __generator(this, function (_a) {\n sourcePerTrace.forEach(function (source, index) {\n notice.backtrace[index].source = source;\n });\n payload = this.__buildPayload(notice);\n return [2 /*return*/, this.__transport\n .send({\n headers: {\n 'X-API-Key': this.config.apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'text/json, application/json'\n },\n method: 'POST',\n endpoint: (0, util_1.endpoint)(this.config.endpoint, '/v1/notices/js'),\n maxObjectDepth: this.config.maxObjectDepth,\n logger: this.logger,\n }, payload)];\n });\n }); })\n .then(function (res) {\n if (res.statusCode !== 201) {\n (0, util_1.runAfterNotifyHandlers)(notice, _this.__afterNotifyHandlers, new Error(\"Bad HTTP response: \".concat(res.statusCode)));\n _this.logger.warn(\"Error report failed: unknown response from server. code=\".concat(res.statusCode));\n return false;\n }\n var uuid = JSON.parse(res.body).id;\n (0, util_1.runAfterNotifyHandlers)((0, util_1.merge)(notice, {\n id: uuid\n }), _this.__afterNotifyHandlers);\n var noticeUrl = (0, util_1.endpoint)(_this.config.appEndpoint, \"notice/\".concat(uuid));\n _this.logger.info(\"Error report sent \\u26A1 \".concat(noticeUrl));\n return true;\n })\n .catch(function (err) {\n _this.logger.error('Error report failed: an unknown error occurred.', \"message=\".concat(err.message));\n (0, util_1.runAfterNotifyHandlers)(notice, _this.__afterNotifyHandlers, err);\n return false;\n });\n };\n return Client;\n}());\nexports.Client = Client;\n//# sourceMappingURL=client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=types.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Plugins = exports.Defaults = exports.Util = exports.Types = exports.Client = void 0;\nvar console_events_1 = __importDefault(require(\"./plugins/console_events\"));\nvar client_1 = require(\"./client\");\nObject.defineProperty(exports, \"Client\", { enumerable: true, get: function () { return client_1.Client; } });\n__exportStar(require(\"./store\"), exports);\nexports.Types = __importStar(require(\"./types\"));\nexports.Util = __importStar(require(\"./util\"));\nexports.Defaults = __importStar(require(\"./defaults\"));\nexports.Plugins = {\n consoleEvents: console_events_1.default,\n /**\n * @deprecated Use `consoleEvents` instead. Kept as an alias for backwards\n * compatibility and will be removed in a future major version.\n */\n events: console_events_1.default,\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.preferCatch = exports.encodeCookie = exports.decodeCookie = exports.localURLPathname = exports.parseURL = exports.nativeFetch = exports.stringTextOfElement = exports.stringSelectorOfElement = exports.stringNameOfElement = void 0;\nvar core_1 = require(\"@honeybadger-io/core\");\nvar globalThisOrWindow = core_1.Util.globalThisOrWindow;\nvar BREADCRUMBS_SELECTOR_ATTRIBUTES = core_1.Defaults.BREADCRUMBS_SELECTOR_ATTRIBUTES;\n/**\n * Converts an HTMLElement into a human-readable string.\n * @param {!HTMLElement} element\n * @return {string}\n */\nfunction cleanNameOfElement(element, attributes) {\n if (!Array.isArray(attributes)) {\n return undefined;\n }\n if (!element || typeof element.getAttribute !== 'function') {\n return undefined;\n }\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var attr = attributes_1[_i];\n if (typeof attr !== 'string' || attr.length === 0) {\n continue;\n }\n var value = element.getAttribute(attr);\n if (value && value.trim()) {\n var normalized = value.trim().replace(/\\s+/g, ' ');\n return truncate(normalized, 100);\n }\n }\n return undefined;\n}\nfunction stringNameOfElement(element, attributes) {\n if (attributes === void 0) { attributes = BREADCRUMBS_SELECTOR_ATTRIBUTES; }\n if (!element || !element.tagName) {\n return '';\n }\n var name = element.tagName.toLowerCase();\n // Ignore the root <html> element in selectors and events.\n if (name === 'html') {\n return '';\n }\n var cleanName = cleanNameOfElement(element, attributes);\n if (cleanName) {\n return cleanName;\n }\n if (element.id) {\n name += \"#\".concat(element.id);\n }\n var stringClassNames = element.getAttribute('class');\n if (stringClassNames) {\n stringClassNames.split(/\\s+/).forEach(function (className) {\n name += \".\".concat(className);\n });\n }\n ['alt', 'name', 'title', 'type'].forEach(function (attrName) {\n var attr = element.getAttribute(attrName);\n if (attr) {\n name += \"[\".concat(attrName, \"=\\\"\").concat(attr, \"\\\"]\");\n }\n });\n var siblings = getSiblings(element);\n if (siblings.length > 1) {\n name += \":nth-child(\".concat(Array.prototype.indexOf.call(siblings, element) + 1, \")\");\n }\n return name;\n}\nexports.stringNameOfElement = stringNameOfElement;\nfunction stringSelectorOfElement(element, attributes) {\n if (attributes === void 0) { attributes = BREADCRUMBS_SELECTOR_ATTRIBUTES; }\n var name = stringNameOfElement(element, attributes);\n // A named element anchors the selector: stop walking up.\n if (name && cleanNameOfElement(element, attributes)) {\n return name;\n }\n if (element.parentNode && element.parentNode.tagName) {\n var parentName = stringSelectorOfElement(element.parentNode, attributes);\n if (parentName.length > 0) {\n return \"\".concat(parentName, \" > \").concat(name);\n }\n }\n return name;\n}\nexports.stringSelectorOfElement = stringSelectorOfElement;\nfunction stringTextOfElement(element) {\n var text = element.textContent || element.innerText || '';\n if (!text && (element.type === 'submit' || element.type === 'button')) {\n text = element.value;\n }\n return truncate(text.trim(), 300);\n}\nexports.stringTextOfElement = stringTextOfElement;\nfunction nativeFetch() {\n var global = globalThisOrWindow();\n if (!global.fetch) {\n return false;\n }\n if (isNative(global.fetch)) {\n return true;\n }\n if (typeof document === 'undefined') {\n return false;\n }\n // If fetch isn't native, it may be wrapped by someone else. Try to get\n // a pristine function from an iframe.\n try {\n var sandbox = document.createElement('iframe');\n sandbox.style.display = 'none';\n document.head.appendChild(sandbox);\n var result = sandbox.contentWindow.fetch && isNative(sandbox.contentWindow.fetch);\n document.head.removeChild(sandbox);\n return result;\n }\n catch (err) {\n if (console && console.warn) {\n console.warn('failed to detect native fetch via iframe: ' + err);\n }\n }\n return false;\n}\nexports.nativeFetch = nativeFetch;\nfunction isNative(func) {\n return func.toString().indexOf('native') !== -1;\n}\nfunction parseURL(url) {\n // Regexp: https://tools.ietf.org/html/rfc3986#appendix-B\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/) || {};\n return {\n protocol: match[2],\n host: match[4],\n pathname: match[5]\n };\n}\nexports.parseURL = parseURL;\nfunction localURLPathname(url) {\n var parsed = parseURL(url);\n var parsedDocURL = parseURL(document.URL);\n // URL must be relative\n if (!parsed.host || !parsed.protocol) {\n return parsed.pathname;\n }\n // Same domain\n if (parsed.protocol === parsedDocURL.protocol && parsed.host === parsedDocURL.host) {\n return parsed.pathname;\n }\n // x-domain\n return \"\".concat(parsed.protocol, \"://\").concat(parsed.host).concat(parsed.pathname);\n}\nexports.localURLPathname = localURLPathname;\nfunction decodeCookie(string) {\n var result = {};\n string.split(/[;,]\\s?/).forEach(function (pair) {\n var _a = pair.split('=', 2), key = _a[0], value = _a[1];\n result[key] = value;\n });\n return result;\n}\nexports.decodeCookie = decodeCookie;\nfunction encodeCookie(object) {\n if (typeof object !== 'object') {\n return undefined;\n }\n var cookies = [];\n for (var k in object) {\n cookies.push(k + '=' + object[k]);\n }\n return cookies.join(';');\n}\nexports.encodeCookie = encodeCookie;\n// Helpers\nfunction getSiblings(element) {\n try {\n var nodes = element.parentNode.childNodes;\n var siblings_1 = [];\n Array.prototype.forEach.call(nodes, function (node) {\n if (node.tagName && node.tagName === element.tagName) {\n siblings_1.push(node);\n }\n });\n return siblings_1;\n }\n catch (e) {\n return [];\n }\n}\nfunction truncate(string, length) {\n if (string.length > length) {\n string = string.substr(0, length) + '...';\n }\n return string;\n}\n// Used to decide which error handling method to use when wrapping async\n// handlers: try/catch, or `window.onerror`. When available, `window.onerror`\n// will provide more information in modern browsers.\nexports.preferCatch = (function () {\n var preferCatch = true;\n // In case we're in an environment without access to \"window\", lets make sure theres a window.\n if (typeof window === 'undefined')\n return preferCatch;\n // IE < 10\n if (!window.atob) {\n preferCatch = false;\n }\n // Modern browsers support the full ErrorEvent API\n // See https://developer.mozilla.org/en-US/docs/Web/API/ErrorEvent\n if (window.ErrorEvent) {\n try {\n if ((new window.ErrorEvent('')).colno === 0) {\n preferCatch = false;\n }\n // eslint-disable-next-line no-empty\n }\n catch (_e) { }\n }\n return preferCatch;\n})();\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.onError = exports.ignoreNextOnError = void 0;\n/* eslint-disable prefer-rest-params */\nvar core_1 = require(\"@honeybadger-io/core\");\nvar instrument = core_1.Util.instrument, makeNotice = core_1.Util.makeNotice, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nvar ignoreOnError = 0;\nvar currentTimeout;\nfunction ignoreNextOnError() {\n ignoreOnError += 1;\n clearTimeout(currentTimeout);\n currentTimeout = setTimeout(function () {\n ignoreOnError = 0;\n });\n}\nexports.ignoreNextOnError = ignoreNextOnError;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction onError(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n instrument(_window, 'onerror', function (original) {\n var onerror = function (msg, url, line, col, err) {\n client.logger.debug('window.onerror callback invoked', arguments);\n if (ignoreOnError > 0) {\n client.logger.debug('Ignoring window.onerror (error likely reported earlier)', arguments);\n ignoreOnError -= 1;\n return;\n }\n // See https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers/onerror#Notes\n if (line === 0 && /Script error\\.?/.test(msg)) {\n if (client.config.enableUncaught) {\n // Log only if the user wants to report uncaught errors\n client.logger.warn('Ignoring cross-domain script error: enable CORS to track these types of errors', arguments);\n }\n return;\n }\n var notice = makeNotice(err);\n if (!notice.name) {\n notice.name = 'window.onerror';\n }\n if (!notice.message) {\n notice.message = msg;\n }\n if (!notice.stack) {\n // Simulate v8 stack\n notice.stack = [notice.message, '\\n at ? (', url || 'unknown', ':', line || 0, ':', col || 0, ')'].join('');\n }\n client.addBreadcrumb((notice.name === 'window.onerror' || !notice.name) ? 'window.onerror' : \"window.onerror: \".concat(notice.name), {\n category: 'error',\n metadata: {\n name: notice.name,\n message: notice.message,\n stack: notice.stack\n }\n });\n if (client.config.enableUncaught) {\n client.notify(notice);\n }\n };\n return function (msg, url, line, col, err) {\n onerror(msg, url, line, col, err);\n if (typeof original === 'function') {\n return original.apply(_window, arguments);\n }\n return false;\n };\n });\n }\n };\n}\nexports.onError = onError;\n//# sourceMappingURL=onerror.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable prefer-rest-params */\nvar core_1 = require(\"@honeybadger-io/core\");\nvar instrument = core_1.Util.instrument, makeNotice = core_1.Util.makeNotice, globalThisOrWindow = core_1.Util.globalThisOrWindow;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction default_1(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n if (!client.config.enableUnhandledRejection) {\n return;\n }\n instrument(_window, 'onunhandledrejection', function (original) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/Window/unhandledrejection_event\n function onunhandledrejection(promiseRejectionEvent) {\n var _a;\n client.logger.debug('window.onunhandledrejection callback invoked', arguments);\n if (!client.config.enableUnhandledRejection) {\n return;\n }\n var reason = promiseRejectionEvent.reason;\n if (reason instanceof Error) {\n var notice = makeNotice(reason);\n if (!notice.stack) {\n notice.stack = \"\".concat(reason.message, \"\\n at ? (unknown:0)\");\n }\n notice.message = \"UnhandledPromiseRejectionWarning: \".concat(reason);\n client.addBreadcrumb(\"window.onunhandledrejection: \".concat(notice.name), {\n category: 'error',\n metadata: { name: notice.name, message: notice.message, stack: notice.stack }\n });\n client.notify(notice);\n return;\n }\n var message;\n if (typeof reason === 'string') {\n message = reason;\n }\n else {\n try {\n message = (_a = JSON.stringify(reason)) !== null && _a !== void 0 ? _a : 'Unspecified reason';\n }\n catch (_err) {\n // Circular structures (e.g. DOM nodes with React fiber expandos) can't be stringified\n var name_1 = reason != null && reason.constructor ? reason.constructor.name : null;\n message = name_1 ? \"[\".concat(name_1, \"]\") : Object.prototype.toString.call(reason);\n }\n }\n client.notify({\n name: 'window.onunhandledrejection',\n message: \"UnhandledPromiseRejectionWarning: \".concat(message)\n });\n }\n return function (promiseRejectionEvent) {\n onunhandledrejection(promiseRejectionEvent);\n if (typeof original === 'function') {\n original.apply(this, arguments);\n }\n };\n });\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=onunhandledrejection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable prefer-rest-params */\nvar core_1 = require(\"@honeybadger-io/core\");\nvar util_1 = require(\"../util\");\nvar sanitize = core_1.Util.sanitize, instrument = core_1.Util.instrument, instrumentConsole = core_1.Util.instrumentConsole, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nfunction default_1(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n function breadcrumbsEnabled(type) {\n if (client.config.breadcrumbsEnabled === true) {\n return true;\n }\n if (type) {\n return client.config.breadcrumbsEnabled[type] === true;\n }\n return client.config.breadcrumbsEnabled !== false;\n }\n // Breadcrumbs: instrument console\n (function () {\n if (!breadcrumbsEnabled('console')) {\n return;\n }\n function inspectArray(obj) {\n if (!Array.isArray(obj)) {\n return '';\n }\n return obj.map(function (value) {\n try {\n return String(value);\n }\n catch (e) {\n return '[unknown]';\n }\n }).join(' ');\n }\n instrumentConsole(_window, function (level, args) {\n var message = inspectArray(args);\n var opts = {\n category: 'log',\n metadata: {\n level: level,\n arguments: sanitize(args, 3)\n }\n };\n client.addBreadcrumb(message, opts);\n });\n })();\n // Breadcrumbs: instrument click events\n (function () {\n if (!breadcrumbsEnabled('dom')) {\n return;\n }\n if (typeof _window.addEventListener !== 'function') {\n return;\n }\n _window.addEventListener('click', function (event) {\n var message, selector, text;\n try {\n var attributes = client.config.breadcrumbsSelectorAttributes;\n message = (0, util_1.stringNameOfElement)(event.target, attributes);\n selector = (0, util_1.stringSelectorOfElement)(event.target, attributes);\n text = (0, util_1.stringTextOfElement)(event.target);\n }\n catch (e) {\n message = 'UI Click';\n selector = '[unknown]';\n text = '[unknown]';\n }\n // There's nothing to display\n if (message.length === 0) {\n return;\n }\n client.addBreadcrumb(message, {\n category: 'ui.click',\n metadata: {\n selector: selector,\n text: text,\n // Frameworks decorate the native event with their own properties\n // (preact/compat adds a `nativeEvent` back-reference), so the raw\n // event may be circular. Sanitize it here rather than storing a\n // value we cannot serialize later.\n event: sanitize(event, 3)\n }\n });\n }, _window.location ? true : false); // In CloudFlare workers useCapture must be false. window.location is a hacky way to detect it.\n })();\n // Breadcrumbs: instrument XMLHttpRequest\n (function () {\n if (!breadcrumbsEnabled('network')) {\n return;\n }\n // Some environments may not support XMLHttpRequest.\n if (typeof XMLHttpRequest === 'undefined') {\n return;\n }\n // -- On xhr.open: capture initial metadata\n instrument(XMLHttpRequest.prototype, 'open', function (original) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var rawUrl = arguments[1];\n // in case of url being URL object (which is valid input) we need to stringify it\n var url = typeof rawUrl === 'string' ? rawUrl : String(rawUrl);\n var method = typeof arguments[0] === 'string' ? arguments[0].toUpperCase() : arguments[0];\n var message = \"\".concat(method, \" \").concat((0, util_1.localURLPathname)(url));\n this.__hb_xhr = {\n type: 'xhr',\n method: method,\n url: url,\n message: message\n };\n if (typeof original === 'function') {\n original.apply(xhr, arguments);\n }\n };\n });\n // -- On xhr.send: set up xhr.onreadystatechange to report breadcrumb\n instrument(XMLHttpRequest.prototype, 'send', function (original) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n function onreadystatechangeHandler() {\n if (xhr.readyState === 4) {\n var message = void 0;\n if (xhr.__hb_xhr) {\n xhr.__hb_xhr.status_code = xhr.status;\n message = xhr.__hb_xhr.message;\n delete xhr.__hb_xhr.message;\n }\n client.addBreadcrumb(message || 'XMLHttpRequest', {\n category: 'request',\n metadata: xhr.__hb_xhr\n });\n }\n }\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n instrument(xhr, 'onreadystatechange', function (original) {\n return function () {\n onreadystatechangeHandler();\n if (typeof original === 'function') {\n // eslint-disable-next-line prefer-rest-params\n original.apply(this, arguments);\n }\n };\n });\n }\n else {\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line prefer-rest-params\n original.apply(xhr, arguments);\n }\n };\n });\n })();\n // Breadcrumbs: instrument fetch\n (function () {\n if (!breadcrumbsEnabled('network')) {\n return;\n }\n if (!(0, util_1.nativeFetch)()) {\n // Polyfills use XHR.\n return;\n }\n instrument(_window, 'fetch', function (original) {\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var input = arguments[0];\n var method = 'GET';\n var url;\n if (typeof input === 'string') {\n url = input;\n }\n else if ('Request' in _window && input instanceof Request) {\n url = input.url;\n if (input.method) {\n method = input.method;\n }\n }\n else {\n url = String(input);\n }\n if (arguments[1] && arguments[1].method) {\n method = arguments[1].method;\n }\n if (typeof method === 'string') {\n method = method.toUpperCase();\n }\n // localURLPathname cant be constructed for CF workers due to reliance on \"document\".\n var message = \"\".concat(method, \" \").concat(typeof document === 'undefined' ? url : (0, util_1.localURLPathname)(url));\n var metadata = {\n type: 'fetch',\n method: method,\n url: url\n };\n return original\n .apply(this, arguments)\n .then(function (response) {\n metadata['status_code'] = response.status;\n client.addBreadcrumb(message, {\n category: 'request',\n metadata: metadata\n });\n return response;\n })\n .catch(function (error) {\n client.addBreadcrumb('fetch error', {\n category: 'error',\n metadata: metadata\n });\n throw error;\n });\n };\n });\n })();\n // Breadcrumbs: instrument navigation\n (function () {\n if (!breadcrumbsEnabled('navigation')) {\n return;\n }\n if (_window.location == null) {\n // Most likely in a CF worker, we should be listening to fetch requests instead.\n return;\n }\n // The last known href of the current page\n var lastHref = _window.location.href;\n function recordUrlChange(from, to) {\n lastHref = to;\n client.addBreadcrumb('Page changed', {\n category: 'navigation',\n metadata: {\n from: from,\n to: to\n }\n });\n }\n if (typeof addEventListener === 'function') {\n addEventListener('popstate', function (_event) {\n recordUrlChange(lastHref, _window.location.href);\n });\n }\n if (typeof _window.history === 'undefined') {\n return;\n }\n // https://developer.mozilla.org/en-US/docs/Web/API/History/pushState\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n function historyWrapper(original) {\n return function () {\n var url = arguments.length > 2 ? arguments[2] : undefined;\n if (url) {\n recordUrlChange(lastHref, String(url));\n }\n return original.apply(this, arguments);\n };\n }\n instrument(_window.history, 'pushState', historyWrapper);\n instrument(_window.history, 'replaceState', historyWrapper);\n })();\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=breadcrumbs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable prefer-rest-params */\nvar core_1 = require(\"@honeybadger-io/core\");\nvar instrument = core_1.Util.instrument, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nfunction default_1(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n // Wrap timers\n (function () {\n function instrumentTimer(wrapOpts) {\n return function (original) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout\n return function (func, delay) {\n if (typeof func === 'function') {\n var args_1 = Array.prototype.slice.call(arguments, 2);\n func = client.__wrap(func, wrapOpts);\n return original(function () {\n func.apply(void 0, args_1);\n }, delay);\n }\n else {\n return original(func, delay);\n }\n };\n };\n }\n instrument(_window, 'setTimeout', instrumentTimer({ component: 'setTimeout' }));\n instrument(_window, 'setInterval', instrumentTimer({ component: 'setInterval' }));\n })();\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=timers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@honeybadger-io/core\");\nvar instrument = core_1.Util.instrument, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nfunction default_1(_window) {\n if (_window === void 0) { _window = globalThisOrWindow(); }\n return {\n load: function (client) {\n // Wrap event listeners\n // Event targets borrowed from bugsnag-js:\n // See https://github.com/bugsnag/bugsnag-js/blob/d55af916a4d3c7757f979d887f9533fe1a04cc93/src/bugsnag.js#L542\n var targets = ['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'];\n targets.forEach(function (prop) {\n var prototype = _window[prop] && _window[prop].prototype;\n if (prototype && Object.prototype.hasOwnProperty.call(prototype, 'addEventListener')) {\n instrument(prototype, 'addEventListener', function (original) {\n var wrapOpts = { component: \"\".concat(prop, \".prototype.addEventListener\") };\n // See https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n return function (type, listener, useCapture, wantsUntrusted) {\n try {\n if (listener && listener.handleEvent != null) {\n listener.handleEvent = client.__wrap(listener.handleEvent, wrapOpts);\n }\n }\n catch (e) {\n // Ignore 'Permission denied to access property \"handleEvent\"' errors.\n client.logger.error(e);\n }\n return original.call(this, type, client.__wrap(listener, wrapOpts), useCapture, wantsUntrusted);\n };\n });\n instrument(prototype, 'removeEventListener', function (original) {\n return function (type, listener, useCapture, wantsUntrusted) {\n original.call(this, type, listener, useCapture, wantsUntrusted);\n return original.call(this, type, client.__wrap(listener), useCapture, wantsUntrusted);\n };\n });\n }\n });\n }\n };\n}\nexports.default = default_1;\n//# sourceMappingURL=event_listeners.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserTransport = void 0;\nvar core_1 = require(\"@honeybadger-io/core\");\nvar sanitize = core_1.Util.sanitize, globalThisOrWindow = core_1.Util.globalThisOrWindow;\n/**\n * Helper function to get typesafe Object.entries()\n * https://twitter.com/mattpocockuk/status/1502264005251018754?lang=en\n */\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nvar BrowserTransport = /** @class */ (function () {\n function BrowserTransport(headers) {\n if (headers === void 0) { headers = {}; }\n this.headers = {};\n this.headers = headers;\n }\n BrowserTransport.prototype.defaultHeaders = function () {\n return this.headers;\n };\n BrowserTransport.prototype.send = function (options, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var headerArray, headers, requestInit, response, body;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n headerArray = options.headers ? objectEntries(options.headers) : [];\n headers = this.defaultHeaders();\n headerArray.forEach(function (_a) {\n var key = _a[0], value = _a[1];\n if (key != null && value != null) {\n headers[String(key)] = String(value);\n }\n });\n requestInit = {\n method: options.method,\n headers: headers\n };\n // GET methods cannot have a body.\n if (options.method === 'POST' && payload) {\n requestInit.body = typeof payload === 'string' ? payload : JSON.stringify(sanitize(payload, options.maxObjectDepth));\n }\n return [4 /*yield*/, globalThisOrWindow().fetch(options.endpoint, requestInit)];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.text()];\n case 2:\n body = _a.sent();\n return [2 /*return*/, Promise.resolve({ statusCode: response.status, body: body })];\n }\n });\n });\n };\n return BrowserTransport;\n}());\nexports.BrowserTransport = BrowserTransport;\n//# sourceMappingURL=transport.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserFeedbackForm = void 0;\nvar core_1 = require(\"@honeybadger-io/core\");\nvar globalThisOrWindow = core_1.Util.globalThisOrWindow;\nvar BrowserFeedbackForm = /** @class */ (function () {\n function BrowserFeedbackForm(config, logger, scriptUrl) {\n this.config = config;\n this.logger = logger;\n this.scriptUrl = scriptUrl;\n }\n /* ROLLUP_STRIP_CODE_CHROME_EXTENSION_START */\n BrowserFeedbackForm.prototype.appendUserFeedbackTag = function (window, options) {\n if (options === void 0) { options = {}; }\n var script = window.document.createElement('script');\n script.setAttribute('src', this.scriptUrl);\n script.setAttribute('async', 'true');\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n (global.document.head || global.document.body).appendChild(script);\n };\n BrowserFeedbackForm.prototype.isUserFeedbackUrlAlreadyVisible = function () {\n var global = globalThisOrWindow();\n var feedbackScriptUrl = this.scriptUrl;\n for (var i = 0; i < global.document.scripts.length; i++) {\n var script = global.document.scripts[i];\n if (script.src === feedbackScriptUrl) {\n return true;\n }\n }\n return false;\n };\n /* ROLLUP_STRIP_CODE_CHROME_EXTENSION_END */\n BrowserFeedbackForm.prototype.show = function (lastNoticeId, options) {\n if (options === void 0) { options = {}; }\n if (typeof (this.appendUserFeedbackTag) !== 'function') {\n this.logger.debug('Feedback form is not available in this environment');\n return;\n }\n if (!this.config || !this.config.apiKey) {\n this.logger.debug('Client not initialized');\n return;\n }\n if (!lastNoticeId) {\n this.logger.debug(\"Can't show user feedback form without a notice already reported\");\n return;\n }\n var global = globalThisOrWindow();\n if (typeof global.document === 'undefined') {\n this.logger.debug('global.document is undefined. Cannot attach script');\n return;\n }\n if (this.isUserFeedbackUrlAlreadyVisible()) {\n this.logger.debug('User feedback form is already visible');\n return;\n }\n global['honeybadgerUserFeedbackOptions'] = __assign(__assign({}, options), { apiKey: this.config.apiKey, endpoint: this.config.userFeedbackEndpoint, noticeId: lastNoticeId });\n this.appendUserFeedbackTag(global, options);\n };\n return BrowserFeedbackForm;\n}());\nexports.BrowserFeedbackForm = BrowserFeedbackForm;\n//# sourceMappingURL=feedback-form.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Types = exports.getUserFeedbackScriptUrl = void 0;\nvar core_1 = require(\"@honeybadger-io/core\");\nvar util_1 = require(\"./browser/util\");\nvar onerror_1 = require(\"./browser/integrations/onerror\");\nvar onunhandledrejection_1 = __importDefault(require(\"./browser/integrations/onunhandledrejection\"));\nvar breadcrumbs_1 = __importDefault(require(\"./browser/integrations/breadcrumbs\"));\nvar timers_1 = __importDefault(require(\"./browser/integrations/timers\"));\nvar event_listeners_1 = __importDefault(require(\"./browser/integrations/event_listeners\"));\nvar transport_1 = require(\"./browser/transport\");\nvar feedback_form_1 = require(\"./browser/feedback-form\");\nvar merge = core_1.Util.merge, filter = core_1.Util.filter, objectIsExtensible = core_1.Util.objectIsExtensible, globalThisOrWindow = core_1.Util.globalThisOrWindow;\nvar getProjectRoot = function () {\n var global = globalThisOrWindow();\n var projectRoot = '';\n // Cloudflare workers do not have access to location API.\n if (global.location != null) {\n projectRoot = global.location.protocol + '//' + global.location.host;\n }\n return projectRoot;\n};\nvar getUserFeedbackScriptUrl = function (version) {\n var majorMinorVersion = version.split('.').slice(0, 2).join('.');\n return \"https://js.honeybadger.io/v\".concat(majorMinorVersion, \"/honeybadger-feedback-form.js\");\n};\nexports.getUserFeedbackScriptUrl = getUserFeedbackScriptUrl;\nvar Honeybadger = /** @class */ (function (_super) {\n __extends(Honeybadger, _super);\n function Honeybadger(opts) {\n if (opts === void 0) { opts = {}; }\n var _this = _super.call(this, __assign({ userFeedbackEndpoint: 'https://api.honeybadger.io/v2/feedback', async: true, maxErrors: null, ignoreBrowserExtensionErrors: false, breadcrumbsSelectorAttributes: core_1.Defaults.BREADCRUMBS_SELECTOR_ATTRIBUTES, projectRoot: getProjectRoot() }, opts), new transport_1.BrowserTransport({\n 'User-Agent': userAgent(),\n })) || this;\n /** @internal */\n _this.__errorsSent = 0;\n /** @internal */\n _this.__lastWrapErr = undefined;\n /** @internal */\n _this.__lastNoticeId = undefined;\n /** @internal */\n _this.__beforeNotifyHandlers = [\n function (notice) {\n if (_this.config.ignoreBrowserExtensionErrors &&\n notice && notice.backtrace && notice.backtrace.length) {\n var topFrame = notice.backtrace[0];\n if (topFrame && typeof topFrame.file === 'string' &&\n (topFrame.file.startsWith('chrome-extension://') ||\n topFrame.file.startsWith('moz-extension://') ||\n topFrame.file.startsWith('safari-extension://') ||\n topFrame.file.startsWith('safari-web-extension://'))) {\n _this.logger.debug('Dropping notice: browser extension error', notice);\n return false;\n }\n }\n if (_this.__exceedsMaxErrors()) {\n _this.logger.debug('Dropping notice: max errors exceeded', notice);\n return false;\n }\n if (notice && !notice.url && typeof document !== 'undefined') {\n notice.url = document.URL;\n }\n _this.__incrementErrorsCount();\n return true;\n }\n ];\n _this.__afterNotifyHandlers = [\n function (_error, notice) {\n if (notice) {\n _this.__lastNoticeId = notice.id;\n }\n }\n ];\n return _this;\n }\n Honeybadger.prototype.configure = function (opts) {\n if (opts === void 0) { opts = {}; }\n return _super.prototype.configure.call(this, opts);\n };\n Honeybadger.prototype.resetMaxErrors = function () {\n return (this.__errorsSent = 0);\n };\n Honeybadger.prototype.factory = function (opts) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var clone = new Honeybadger(opts);\n clone.setNotifier(this.getNotifier());\n return clone;\n };\n Honeybadger.prototype.checkIn = function (_id) {\n throw new Error('Honeybadger.checkIn() is not supported on the browser');\n };\n Honeybadger.prototype.showUserFeedbackForm = function (options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var form;\n return __generator(this, function (_a) {\n form = new feedback_form_1.BrowserFeedbackForm(this.config, this.logger, this.getUserFeedbackSubmitUrl());\n form.show(this.__lastNoticeId, options);\n return [2 /*return*/];\n });\n });\n };\n Honeybadger.prototype.getUserFeedbackSubmitUrl = function () {\n return (0, exports.getUserFeedbackScriptUrl)(this.getVersion());\n };\n /** @internal */\n Honeybadger.prototype.__buildPayload = function (notice) {\n var cgiData = {\n HTTP_USER_AGENT: undefined,\n HTTP_REFERER: undefined,\n HTTP_COOKIE: undefined\n };\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\n cgiData.HTTP_USER_AGENT = navigator.userAgent;\n }\n if (typeof document !== 'undefined' && document.referrer.match(/\\S/)) {\n cgiData.HTTP_REFERER = document.referrer;\n }\n var cookiesObject;\n if (typeof notice.cookies === 'string') {\n cookiesObject = (0, util_1.decodeCookie)(notice.cookies);\n }\n else {\n cookiesObject = notice.cookies;\n }\n if (cookiesObject) {\n cgiData.HTTP_COOKIE = (0, util_1.encodeCookie)(filter(cookiesObject, this.config.filters));\n }\n var payload = _super.prototype.__buildPayload.call(this, notice);\n payload.request.cgi_data = merge(cgiData, payload.request.cgi_data);\n return payload;\n };\n /**\n * wrap always returns the same function so that callbacks can be removed via\n * removeEventListener.\n * @internal\n */\n Honeybadger.prototype.__wrap = function (f, opts) {\n if (opts === void 0) { opts = {}; }\n var func = f;\n if (!opts) {\n opts = {};\n }\n try {\n if (typeof func !== 'function') {\n return func;\n }\n if (!objectIsExtensible(func)) {\n return func;\n }\n if (!func.___hb) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var client_1 = this;\n func.___hb = function () {\n if (util_1.preferCatch) {\n try {\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n catch (err) {\n if (client_1.__lastWrapErr === err) {\n throw (err);\n }\n client_1.__lastWrapErr = err;\n (0, onerror_1.ignoreNextOnError)();\n client_1.addBreadcrumb(opts.component ? \"\".concat(opts.component, \": \").concat(err.name) : err.name, {\n category: 'error',\n metadata: {\n message: err.message,\n name: err.name,\n stack: err.stack\n }\n });\n if (client_1.config.enableUncaught) {\n client_1.notify(err);\n }\n throw (err);\n }\n }\n else {\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n };\n }\n func.___hb.___hb = func.___hb;\n return func.___hb;\n }\n catch (_e) {\n return func;\n }\n };\n /** @internal */\n Honeybadger.prototype.__incrementErrorsCount = function () {\n return this.__errorsSent++;\n };\n /** @internal */\n Honeybadger.prototype.__exceedsMaxErrors = function () {\n return this.config.maxErrors && this.__errorsSent >= this.config.maxErrors;\n };\n return Honeybadger;\n}(core_1.Client));\nvar NOTIFIER = {\n name: '@honeybadger-io/js',\n url: 'https://github.com/honeybadger-io/honeybadger-js/tree/master/packages/js',\n version: '__VERSION__'\n};\nvar userAgent = function () {\n if (typeof navigator !== 'undefined') {\n return \"Honeybadger JS Browser Client \".concat(NOTIFIER.version, \"; \").concat(navigator.userAgent);\n }\n return \"Honeybadger JS Browser Client \".concat(NOTIFIER.version, \"; n/a; n/a\");\n};\nvar singleton = new Honeybadger({\n __plugins: [\n (0, onerror_1.onError)(),\n (0, onunhandledrejection_1.default)(),\n (0, timers_1.default)(),\n (0, event_listeners_1.default)(),\n (0, breadcrumbs_1.default)(),\n core_1.Plugins.consoleEvents(),\n ]\n});\nsingleton.setNotifier(NOTIFIER);\nvar core_2 = require(\"@honeybadger-io/core\");\nObject.defineProperty(exports, \"Types\", { enumerable: true, get: function () { return core_2.Types; } });\nexports.default = singleton;\n//# sourceMappingURL=browser.js.map"],"names":["UNKNOWN_FUNCTION","chromeRe","chromeEvalRe","winjsRe","geckoRe","geckoEvalRe","javaScriptCoreRe","nodeRe","stackString","split","reduce","stack","line","parseResult","parts","exec","isNative","indexOf","isEval","submatch","file","methodName","arguments","lineNumber","column","parseChrome","parseWinjs","parseGecko","parseNode","parseJSC","push","__createBinding","this","Object","create","o","m","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__setModuleDefault","v","value","__importStar","mod","result","prototype","hasOwnProperty","call","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","op","TypeError","pop","length","exports","logDeprecatedMethod","globalThisOrWindow","isBrowserConfig","clone","formatCGIData","filterUrl","filter","generateStackTrace","endpoint","instrumentConsole","instrument","isErrorObject","makeNotice","sanitize","shallowClone","runAfterNotifyHandlers","shouldSampleEvent","resolveInsights","runBeforeEventHandlers","runBeforeNotifyHandlers","getSourceForBacktrace","calculateBacktraceShift","DEFAULT_BACKTRACE_SHIFT","makeBacktrace","objectIsExtensible","objectIsEmpty","mergeNotice","merge","stackTraceParser","require$$0","obj1","obj2","filterHbSourceCode","logger","console","backtrace","parse","map","method","number","splice","err","debug","isFrameFromHbSourceCode","frame","hasHbFile","hasHbMethod","toLowerCase","shift","i","nextFrame","obj","thing","Error","toString","object","name","replacement","original","__hb_original","_e","notice1","notice2","context","isExtensible","getCauses","notice","cause","causes","class","message","getSourceFileHandler","index","trace","fileContent","_a","fileData","columnNumber","sourceRadius","THRESHOLD_COLUMN_NUMBER","getThresholdExceededSnippet","THRESHOLD_FILE_SIZE","lines","unshift","targetLine","THRESHOLD_LINE_LENGTH","end","getSourceCodeSnippet","handlers","results","len","handlerResult","handler","payload","err_1","error","config","_b","insights","enabled","http","event","configRate","meta","_hb","override","Number","isFinite","sampleRate","rawRate","rate","clampSampleRate","requestId","request_id","str","h","charCodeAt","Math","imul","fnv1a","random","afterNotify","maxDepth","seenObjects","serialize","depth","typeOfObj","test","canSerialize","seen","Array","isArray","safeSerialize","ret","concat","client","log","args","_i","info","warn","originalError","String","_consoleAlreadyInstrumented","listeners","filterMatch","key","filters","is","type","klass","slice","_window","forEach","level","listener","Function","base","path","trim","replace","curr","callee","RegExp","$1","caller","join","newObj","url","query","pair","vars","prefix","formattedVars","keys","formattedKey","toUpperCase","ancestors","JSON","stringify","_key","async","globalThis","self","window","_deprecatedMethodCalls","oldMethod","newMethod","callCountThreshold","msg","console_events","util_1","default","shouldReloadOnConfigure","load","sendEventsToInsights","data","severity","store","GlobalStore","contents","breadcrumbsLimit","available","getContents","setContext","setEventContext","eventContext","clearEventContext","addBreadcrumb","breadcrumb","breadcrumbs","clear","run","callback","item","defaults","BREADCRUMBS_SELECTOR_ATTRIBUTES","CONFIG","apiKey","appEndpoint","environment","hostname","projectRoot","component","action","revision","reportData","breadcrumbsEnabled","eventsEnabled","events","dispatchIntervalSeconds","bulkThreshold","sampleRatePercentage","maxBreadcrumbs","maxObjectDepth","developmentEnvironments","tags","enableUncaught","enableUnhandledRejection","afterUncaught","__plugins","__assign","assign","s","p","throttled_events_worker","ThrottledEventsWorker","json_nd_1","require$$1","defaults_1","require$$2","transport","queue","cooldownTimer","cooldownUntil","inFlight","originalLogger","configure","opts","clearCooldownTimer","processQueue","remaining","cooldownRemainingMs","scheduleCooldownTimer","flushAsync","_this","flush","drainAll","send","catch","scheduleNextDispatch","intervalMs","dispatchIntervalMs","Date","now","max","ms","setTimeout","unref","clearTimeout","eventsData","NdJson","makeHttpRequest","headers","resp","includes","statusCode","_c","_d","Client","store_1","throttled_events_worker_1","require$$3","TAG_SEPARATOR","NOT_BLANK","__pluginsLoaded","__store","__beforeNotifyHandlers","__beforeEventHandlers","__afterNotifyHandlers","__pendingEvents","Set","__notifier","version","__initStore","__transport","__eventsWorker","__applyEventsEnabledShim","getVersion","getNotifier","setNotifier","notifier","loadPlugins","plugin","beforeNotify","beforeEvent","resetContext","notify","noticeable","extra","notice_1","sourceCodeData_1","preConditionsResult","__runPreconditions","__send","__logReportingFailure","_err","_loggerErr","notifyAsync","objectToOverride","partialNotice","originalAfterNotify","noticeTags","__constructTags","contextTags","configTags","uniqueTags","metadata","category","timestamp","toISOString","logEvent","event_type","ts","shouldSend","finally","delete","add","size","allSettled","from","__getBreadcrumbs","__getContext","__developmentMode","__buildPayload","cgiData","trail","__breadcrumbs","fingerprint","request","cgi_data","params","session","server","project_root","environment_name","time","toUTCString","details","tag","preConditionError","beforeNotifyResult","some","status","originalBacktrace","__getSourceFileHandler","sourcePerTrace","source","Accept","res","uuid","id","noticeUrl","types","__exportStar","__importDefault","Plugins","Util","Types","console_events_1","client_1","require$$4","Defaults","require$$5","consoleEvents","util","preferCatch","encodeCookie","localURLPathname","parseURL","stringTextOfElement","stringSelectorOfElement","core_1","cleanNameOfElement","element","attributes","getAttribute","attributes_1","attr","truncate","stringNameOfElement","tagName","cleanName","stringClassNames","className","attrName","siblings","nodes","parentNode","childNodes","siblings_1","node","getSiblings","func","match","protocol","host","pathname","string","substr","parentName","text","textContent","innerText","nativeFetch","global","fetch","document","sandbox","createElement","style","display","head","appendChild","contentWindow","removeChild","parsed","parsedDocURL","URL","decodeCookie","cookies","atob","ErrorEvent","colno","onerror","onError","ignoreNextOnError","currentTimeout","ignoreOnError","col","onunhandledrejection","promiseRejectionEvent","reason","name_1","constructor","addEventListener","selector","breadcrumbsSelectorAttributes","target","location","XMLHttpRequest","rawUrl","__hb_xhr","xhr","onreadystatechangeHandler","readyState","status_code","onreadystatechange","input","Request","response","lastHref","href","_event","recordUrlChange","history","historyWrapper","to","timers","instrumentTimer","wrapOpts","delay","args_1","__wrap","event_listeners","prop","useCapture","wantsUntrusted","handleEvent","BrowserTransport","defaultHeaders","options","headerArray","requestInit","entries","feedbackForm","BrowserFeedbackForm","scriptUrl","show","lastNoticeId","isUserFeedbackUrlAlreadyVisible","userFeedbackEndpoint","noticeId","appendUserFeedbackTag","extendStatics","__extends","d","b","setPrototypeOf","__proto__","__","getUserFeedbackScriptUrl","onerror_1","onunhandledrejection_1","breadcrumbs_1","timers_1","event_listeners_1","require$$6","transport_1","require$$7","feedback_form_1","require$$8","getProjectRoot","majorMinorVersion","Honeybadger","_super","maxErrors","ignoreBrowserExtensionErrors","userAgent","__errorsSent","__lastWrapErr","__lastNoticeId","topFrame","startsWith","__exceedsMaxErrors","__incrementErrorsCount","_error","resetMaxErrors","factory","checkIn","_id","showUserFeedbackForm","getUserFeedbackSubmitUrl","cookiesObject","HTTP_USER_AGENT","HTTP_REFERER","HTTP_COOKIE","navigator","referrer","___hb","NOTIFIER","singleton","core_2"],"mappings":"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"}