From f947f21ef39124151b3896aa58399a22c491a26f Mon Sep 17 00:00:00 2001 From: MaximePremont Date: Fri, 15 Nov 2024 22:38:18 +0100 Subject: [PATCH] feat(build) : Changed to dist build --- app/background.js | 8041 --------------------------------------------- app/preload.js | 156 - 2 files changed, 8197 deletions(-) delete mode 100644 app/background.js delete mode 100644 app/preload.js diff --git a/app/background.js b/app/background.js deleted file mode 100644 index d47c329..0000000 --- a/app/background.js +++ /dev/null @@ -1,8041 +0,0 @@ -;(function webpackUniversalModuleDefinition(root, factory) { - if (typeof exports === 'object' && typeof module === 'object') - module.exports = factory( - require('electron-serve'), - require('electron-store') - ) - else if (typeof define === 'function' && define.amd) - define(['electron-serve', 'electron-store'], factory) - else { - var a = - typeof exports === 'object' - ? factory(require('electron-serve'), require('electron-store')) - : factory(root['electron-serve'], root['electron-store']) - for (var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i] - } -})( - global, - ( - __WEBPACK_EXTERNAL_MODULE_electron_serve__, - __WEBPACK_EXTERNAL_MODULE_electron_store__ - ) => { - return /******/ (() => { - // webpackBootstrap - /******/ var __webpack_modules__ = { - /***/ './main/helpers/create-window.ts': - /*!***************************************!*\ - !*** ./main/helpers/create-window.ts ***! - \***************************************/ - /***/ ( - __unused_webpack_module, - __webpack_exports__, - __webpack_require__ - ) => { - 'use strict' - __webpack_require__.r(__webpack_exports__) - /* harmony export */ __webpack_require__.d(__webpack_exports__, { - /* harmony export */ createWindow: () => - /* binding */ createWindow - /* harmony export */ - }) - /* harmony import */ var _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = - __webpack_require__( - /*! @babel/runtime-corejs3/helpers/defineProperty */ './node_modules/@babel/runtime-corejs3/helpers/defineProperty.js' - ) - /* harmony import */ var _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_assign__WEBPACK_IMPORTED_MODULE_9__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/object/assign */ './node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_assign__WEBPACK_IMPORTED_MODULE_9___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_object_assign__WEBPACK_IMPORTED_MODULE_9__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_some__WEBPACK_IMPORTED_MODULE_10__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/instance/some */ './node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_some__WEBPACK_IMPORTED_MODULE_10___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_instance_some__WEBPACK_IMPORTED_MODULE_10__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_1__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/object/keys */ './node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_1___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_1__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_symbols__WEBPACK_IMPORTED_MODULE_2__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols */ './node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_symbols__WEBPACK_IMPORTED_MODULE_2___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_object_get_own_property_symbols__WEBPACK_IMPORTED_MODULE_2__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/instance/filter */ './node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ './node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ './node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors */ './node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_define_properties__WEBPACK_IMPORTED_MODULE_7__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/object/define-properties */ './node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_define_properties__WEBPACK_IMPORTED_MODULE_7___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_object_define_properties__WEBPACK_IMPORTED_MODULE_7__ - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_define_property__WEBPACK_IMPORTED_MODULE_8__ = - __webpack_require__( - /*! @babel/runtime-corejs3/core-js-stable/object/define-property */ './node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js' - ) - /* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_define_property__WEBPACK_IMPORTED_MODULE_8___default = - /*#__PURE__*/ __webpack_require__.n( - _babel_runtime_corejs3_core_js_stable_object_define_property__WEBPACK_IMPORTED_MODULE_8__ - ) - /* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_11__ = - __webpack_require__(/*! electron */ 'electron') - /* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_11___default = - /*#__PURE__*/ __webpack_require__.n( - electron__WEBPACK_IMPORTED_MODULE_11__ - ) - /* harmony import */ var electron_store__WEBPACK_IMPORTED_MODULE_12__ = - __webpack_require__(/*! electron-store */ 'electron-store') - /* harmony import */ var electron_store__WEBPACK_IMPORTED_MODULE_12___default = - /*#__PURE__*/ __webpack_require__.n( - electron_store__WEBPACK_IMPORTED_MODULE_12__ - ) - - function ownKeys(e, r) { - var t = - _babel_runtime_corejs3_core_js_stable_object_keys__WEBPACK_IMPORTED_MODULE_1___default()( - e - ) - if ( - _babel_runtime_corejs3_core_js_stable_object_get_own_property_symbols__WEBPACK_IMPORTED_MODULE_2___default() - ) { - var o = - _babel_runtime_corejs3_core_js_stable_object_get_own_property_symbols__WEBPACK_IMPORTED_MODULE_2___default()( - e - ) - r && - (o = - _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()( - o - ).call(o, function (r) { - return _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4___default()( - e, - r - ).enumerable - })), - t.push.apply(t, o) - } - return t - } - function _objectSpread(e) { - for (var r = 1; r < arguments.length; r++) { - var _context2, _context3 - var t = null != arguments[r] ? arguments[r] : {} - r % 2 - ? _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default()( - (_context2 = ownKeys(Object(t), !0)) - ).call(_context2, function (r) { - _babel_runtime_corejs3_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()( - e, - r, - t[r] - ) - }) - : _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6___default() - ? _babel_runtime_corejs3_core_js_stable_object_define_properties__WEBPACK_IMPORTED_MODULE_7___default()( - e, - _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_6___default()( - t - ) - ) - : _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default()( - (_context3 = ownKeys(Object(t))) - ).call(_context3, function (r) { - _babel_runtime_corejs3_core_js_stable_object_define_property__WEBPACK_IMPORTED_MODULE_8___default()( - e, - r, - _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4___default()( - t, - r - ) - ) - }) - } - return e - } - - const createWindow = (windowName, options) => { - const key = 'window-state' - const name = `window-state-${windowName}` - const store = - new (electron_store__WEBPACK_IMPORTED_MODULE_12___default())({ - name - }) - const defaultSize = { - width: options.width, - height: options.height - } - let state = {} - const restore = () => store.get(key, defaultSize) - const getCurrentPosition = () => { - const position = win.getPosition() - const size = win.getSize() - return { - x: position[0], - y: position[1], - width: size[0], - height: size[1] - } - } - const windowWithinBounds = (windowState, bounds) => { - return ( - windowState.x >= bounds.x && - windowState.y >= bounds.y && - windowState.x + windowState.width <= - bounds.x + bounds.width && - windowState.y + windowState.height <= bounds.y + bounds.height - ) - } - const resetToDefaults = () => { - const bounds = - electron__WEBPACK_IMPORTED_MODULE_11__.screen.getPrimaryDisplay() - .bounds - return _babel_runtime_corejs3_core_js_stable_object_assign__WEBPACK_IMPORTED_MODULE_9___default()( - {}, - defaultSize, - { - x: (bounds.width - defaultSize.width) / 2, - y: (bounds.height - defaultSize.height) / 2 - } - ) - } - const ensureVisibleOnSomeDisplay = windowState => { - var _context - const visible = - _babel_runtime_corejs3_core_js_stable_instance_some__WEBPACK_IMPORTED_MODULE_10___default()( - (_context = - electron__WEBPACK_IMPORTED_MODULE_11__.screen.getAllDisplays()) - ).call(_context, display => { - return windowWithinBounds(windowState, display.bounds) - }) - if (!visible) { - // Window is partially or fully not visible now. - // Reset it to safe defaults. - return resetToDefaults() - } - return windowState - } - const saveState = () => { - if (!win.isMinimized() && !win.isMaximized()) { - _babel_runtime_corejs3_core_js_stable_object_assign__WEBPACK_IMPORTED_MODULE_9___default()( - state, - getCurrentPosition() - ) - } - store.set(key, state) - } - state = ensureVisibleOnSomeDisplay(restore()) - const win = - new electron__WEBPACK_IMPORTED_MODULE_11__.BrowserWindow( - _objectSpread( - _objectSpread(_objectSpread({}, state), options), - {}, - { - webPreferences: _objectSpread( - { - nodeIntegration: false, - contextIsolation: true - }, - options.webPreferences - ) - } - ) - ) - win.on('close', saveState) - return win - } - - /***/ - }, - - /***/ './main/helpers/index.ts': - /*!*******************************!*\ - !*** ./main/helpers/index.ts ***! - \*******************************/ - /***/ ( - __unused_webpack_module, - __webpack_exports__, - __webpack_require__ - ) => { - 'use strict' - __webpack_require__.r(__webpack_exports__) - /* harmony export */ __webpack_require__.d(__webpack_exports__, { - /* harmony export */ createWindow: () => - /* reexport safe */ _create_window__WEBPACK_IMPORTED_MODULE_0__.createWindow - /* harmony export */ - }) - /* harmony import */ var _create_window__WEBPACK_IMPORTED_MODULE_0__ = - __webpack_require__( - /*! ./create-window */ './main/helpers/create-window.ts' - ) - - /***/ - }, - - /***/ electron: - /*!***************************!*\ - !*** external "electron" ***! - \***************************/ - /***/ module => { - 'use strict' - module.exports = require('electron') - - /***/ - }, - - /***/ path: - /*!***********************!*\ - !*** external "path" ***! - \***********************/ - /***/ module => { - 'use strict' - module.exports = require('path') - - /***/ - }, - - /***/ 'electron-serve': - /*!*********************************!*\ - !*** external "electron-serve" ***! - \*********************************/ - /***/ module => { - 'use strict' - module.exports = __WEBPACK_EXTERNAL_MODULE_electron_serve__ - - /***/ - }, - - /***/ 'electron-store': - /*!*********************************!*\ - !*** external "electron-store" ***! - \*********************************/ - /***/ module => { - 'use strict' - module.exports = __WEBPACK_EXTERNAL_MODULE_electron_store__ - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js': - /*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js ***! - \*******************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/instance/filter */ './node_modules/core-js-pure/stable/instance/filter.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js': - /*!*********************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js ***! - \*********************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/instance/for-each */ './node_modules/core-js-pure/stable/instance/for-each.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js': - /*!*****************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js ***! - \*****************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/instance/some */ './node_modules/core-js-pure/stable/instance/some.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js': - /*!*****************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js ***! - \*****************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/object/assign */ './node_modules/core-js-pure/stable/object/assign.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js': - /*!****************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js ***! - \****************************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/object/define-properties */ './node_modules/core-js-pure/stable/object/define-properties.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js': - /*!**************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js ***! - \**************************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/object/define-property */ './node_modules/core-js-pure/stable/object/define-property.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js': - /*!**************************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js ***! - \**************************************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/object/get-own-property-descriptor */ './node_modules/core-js-pure/stable/object/get-own-property-descriptor.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js': - /*!***************************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js ***! - \***************************************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/object/get-own-property-descriptors */ './node_modules/core-js-pure/stable/object/get-own-property-descriptors.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js': - /*!***********************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js ***! - \***********************************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/object/get-own-property-symbols */ './node_modules/core-js-pure/stable/object/get-own-property-symbols.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js': - /*!***************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js ***! - \***************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - module.exports = __webpack_require__( - /*! core-js-pure/stable/object/keys */ './node_modules/core-js-pure/stable/object/keys.js' - ) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/helpers/defineProperty.js': - /*!***********************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/defineProperty.js ***! - \***********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - var _Object$defineProperty = __webpack_require__( - /*! core-js-pure/features/object/define-property.js */ './node_modules/core-js-pure/features/object/define-property.js' - ) - var toPropertyKey = __webpack_require__( - /*! ./toPropertyKey.js */ './node_modules/@babel/runtime-corejs3/helpers/toPropertyKey.js' - ) - function _defineProperty(e, r, t) { - return ( - (r = toPropertyKey(r)) in e - ? _Object$defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) - : (e[r] = t), - e - ) - } - ;(module.exports = _defineProperty), - (module.exports.__esModule = true), - (module.exports['default'] = module.exports) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/helpers/toPrimitive.js': - /*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/toPrimitive.js ***! - \********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - var _Symbol$toPrimitive = __webpack_require__( - /*! core-js-pure/features/symbol/to-primitive.js */ './node_modules/core-js-pure/features/symbol/to-primitive.js' - ) - var _typeof = __webpack_require__( - /*! ./typeof.js */ './node_modules/@babel/runtime-corejs3/helpers/typeof.js' - )['default'] - function toPrimitive(t, r) { - if ('object' != _typeof(t) || !t) return t - var e = t[_Symbol$toPrimitive] - if (void 0 !== e) { - var i = e.call(t, r || 'default') - if ('object' != _typeof(i)) return i - throw new TypeError( - '@@toPrimitive must return a primitive value.' - ) - } - return ('string' === r ? String : Number)(t) - } - ;(module.exports = toPrimitive), - (module.exports.__esModule = true), - (module.exports['default'] = module.exports) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/helpers/toPropertyKey.js': - /*!**********************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/toPropertyKey.js ***! - \**********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - var _typeof = __webpack_require__( - /*! ./typeof.js */ './node_modules/@babel/runtime-corejs3/helpers/typeof.js' - )['default'] - var toPrimitive = __webpack_require__( - /*! ./toPrimitive.js */ './node_modules/@babel/runtime-corejs3/helpers/toPrimitive.js' - ) - function toPropertyKey(t) { - var i = toPrimitive(t, 'string') - return 'symbol' == _typeof(i) ? i : i + '' - } - ;(module.exports = toPropertyKey), - (module.exports.__esModule = true), - (module.exports['default'] = module.exports) - - /***/ - }, - - /***/ './node_modules/@babel/runtime-corejs3/helpers/typeof.js': - /*!***************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/typeof.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - var _Symbol = __webpack_require__( - /*! core-js-pure/features/symbol/index.js */ './node_modules/core-js-pure/features/symbol/index.js' - ) - var _Symbol$iterator = __webpack_require__( - /*! core-js-pure/features/symbol/iterator.js */ './node_modules/core-js-pure/features/symbol/iterator.js' - ) - function _typeof(o) { - '@babel/helpers - typeof' - - return ( - ((module.exports = _typeof = - 'function' == typeof _Symbol && - 'symbol' == typeof _Symbol$iterator - ? function (o) { - return typeof o - } - : function (o) { - return o && - 'function' == typeof _Symbol && - o.constructor === _Symbol && - o !== _Symbol.prototype - ? 'symbol' - : typeof o - }), - (module.exports.__esModule = true), - (module.exports['default'] = module.exports)), - _typeof(o) - ) - } - ;(module.exports = _typeof), - (module.exports.__esModule = true), - (module.exports['default'] = module.exports) - - /***/ - }, - - /***/ './node_modules/core-js-pure/actual/object/define-property.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/actual/object/define-property.js ***! - \********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../stable/object/define-property */ './node_modules/core-js-pure/stable/object/define-property.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/actual/symbol/index.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/actual/symbol/index.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../stable/symbol */ './node_modules/core-js-pure/stable/symbol/index.js' - ) - - __webpack_require__( - /*! ../../modules/esnext.function.metadata */ './node_modules/core-js-pure/modules/esnext.function.metadata.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.async-dispose */ './node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.dispose */ './node_modules/core-js-pure/modules/esnext.symbol.dispose.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.metadata */ './node_modules/core-js-pure/modules/esnext.symbol.metadata.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/actual/symbol/iterator.js': - /*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/actual/symbol/iterator.js ***! - \*************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../stable/symbol/iterator */ './node_modules/core-js-pure/stable/symbol/iterator.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/actual/symbol/to-primitive.js': - /*!*****************************************************************!*\ - !*** ./node_modules/core-js-pure/actual/symbol/to-primitive.js ***! - \*****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../stable/symbol/to-primitive */ './node_modules/core-js-pure/stable/symbol/to-primitive.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/array/virtual/filter.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/es/array/virtual/filter.js ***! - \**************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../../modules/es.array.filter */ './node_modules/core-js-pure/modules/es.array.filter.js' - ) - var getBuiltInPrototypeMethod = __webpack_require__( - /*! ../../../internals/get-built-in-prototype-method */ './node_modules/core-js-pure/internals/get-built-in-prototype-method.js' - ) - - module.exports = getBuiltInPrototypeMethod('Array', 'filter') - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/array/virtual/for-each.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/es/array/virtual/for-each.js ***! - \****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../../modules/es.array.for-each */ './node_modules/core-js-pure/modules/es.array.for-each.js' - ) - var getBuiltInPrototypeMethod = __webpack_require__( - /*! ../../../internals/get-built-in-prototype-method */ './node_modules/core-js-pure/internals/get-built-in-prototype-method.js' - ) - - module.exports = getBuiltInPrototypeMethod('Array', 'forEach') - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/array/virtual/some.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/es/array/virtual/some.js ***! - \************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../../modules/es.array.some */ './node_modules/core-js-pure/modules/es.array.some.js' - ) - var getBuiltInPrototypeMethod = __webpack_require__( - /*! ../../../internals/get-built-in-prototype-method */ './node_modules/core-js-pure/internals/get-built-in-prototype-method.js' - ) - - module.exports = getBuiltInPrototypeMethod('Array', 'some') - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/instance/filter.js': - /*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/es/instance/filter.js ***! - \*********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isPrototypeOf = __webpack_require__( - /*! ../../internals/object-is-prototype-of */ './node_modules/core-js-pure/internals/object-is-prototype-of.js' - ) - var method = __webpack_require__( - /*! ../array/virtual/filter */ './node_modules/core-js-pure/es/array/virtual/filter.js' - ) - - var ArrayPrototype = Array.prototype - - module.exports = function (it) { - var own = it.filter - return it === ArrayPrototype || - (isPrototypeOf(ArrayPrototype, it) && - own === ArrayPrototype.filter) - ? method - : own - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/instance/some.js': - /*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/es/instance/some.js ***! - \*******************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isPrototypeOf = __webpack_require__( - /*! ../../internals/object-is-prototype-of */ './node_modules/core-js-pure/internals/object-is-prototype-of.js' - ) - var method = __webpack_require__( - /*! ../array/virtual/some */ './node_modules/core-js-pure/es/array/virtual/some.js' - ) - - var ArrayPrototype = Array.prototype - - module.exports = function (it) { - var own = it.some - return it === ArrayPrototype || - (isPrototypeOf(ArrayPrototype, it) && - own === ArrayPrototype.some) - ? method - : own - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/object/assign.js': - /*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/es/object/assign.js ***! - \*******************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.object.assign */ './node_modules/core-js-pure/modules/es.object.assign.js' - ) - var path = __webpack_require__( - /*! ../../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - module.exports = path.Object.assign - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/object/define-properties.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/es/object/define-properties.js ***! - \******************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.object.define-properties */ './node_modules/core-js-pure/modules/es.object.define-properties.js' - ) - var path = __webpack_require__( - /*! ../../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - var Object = path.Object - - var defineProperties = (module.exports = function defineProperties( - T, - D - ) { - return Object.defineProperties(T, D) - }) - - if (Object.defineProperties.sham) defineProperties.sham = true - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/object/define-property.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/es/object/define-property.js ***! - \****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.object.define-property */ './node_modules/core-js-pure/modules/es.object.define-property.js' - ) - var path = __webpack_require__( - /*! ../../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - var Object = path.Object - - var defineProperty = (module.exports = function defineProperty( - it, - key, - desc - ) { - return Object.defineProperty(it, key, desc) - }) - - if (Object.defineProperty.sham) defineProperty.sham = true - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/object/get-own-property-descriptor.js': - /*!****************************************************************************!*\ - !*** ./node_modules/core-js-pure/es/object/get-own-property-descriptor.js ***! - \****************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.object.get-own-property-descriptor */ './node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js' - ) - var path = __webpack_require__( - /*! ../../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - var Object = path.Object - - var getOwnPropertyDescriptor = (module.exports = - function getOwnPropertyDescriptor(it, key) { - return Object.getOwnPropertyDescriptor(it, key) - }) - - if (Object.getOwnPropertyDescriptor.sham) - getOwnPropertyDescriptor.sham = true - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/object/get-own-property-descriptors.js': - /*!*****************************************************************************!*\ - !*** ./node_modules/core-js-pure/es/object/get-own-property-descriptors.js ***! - \*****************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.object.get-own-property-descriptors */ './node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js' - ) - var path = __webpack_require__( - /*! ../../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - module.exports = path.Object.getOwnPropertyDescriptors - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/object/get-own-property-symbols.js': - /*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/es/object/get-own-property-symbols.js ***! - \*************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.symbol */ './node_modules/core-js-pure/modules/es.symbol.js' - ) - var path = __webpack_require__( - /*! ../../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - module.exports = path.Object.getOwnPropertySymbols - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/object/keys.js': - /*!*****************************************************!*\ - !*** ./node_modules/core-js-pure/es/object/keys.js ***! - \*****************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.object.keys */ './node_modules/core-js-pure/modules/es.object.keys.js' - ) - var path = __webpack_require__( - /*! ../../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - module.exports = path.Object.keys - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/symbol/index.js': - /*!******************************************************!*\ - !*** ./node_modules/core-js-pure/es/symbol/index.js ***! - \******************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.array.concat */ './node_modules/core-js-pure/modules/es.array.concat.js' - ) - __webpack_require__( - /*! ../../modules/es.object.to-string */ './node_modules/core-js-pure/modules/es.object.to-string.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol */ './node_modules/core-js-pure/modules/es.symbol.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.async-iterator */ './node_modules/core-js-pure/modules/es.symbol.async-iterator.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.description */ './node_modules/core-js-pure/modules/es.symbol.description.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.has-instance */ './node_modules/core-js-pure/modules/es.symbol.has-instance.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.is-concat-spreadable */ './node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.iterator */ './node_modules/core-js-pure/modules/es.symbol.iterator.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.match */ './node_modules/core-js-pure/modules/es.symbol.match.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.match-all */ './node_modules/core-js-pure/modules/es.symbol.match-all.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.replace */ './node_modules/core-js-pure/modules/es.symbol.replace.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.search */ './node_modules/core-js-pure/modules/es.symbol.search.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.species */ './node_modules/core-js-pure/modules/es.symbol.species.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.split */ './node_modules/core-js-pure/modules/es.symbol.split.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.to-primitive */ './node_modules/core-js-pure/modules/es.symbol.to-primitive.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.to-string-tag */ './node_modules/core-js-pure/modules/es.symbol.to-string-tag.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.unscopables */ './node_modules/core-js-pure/modules/es.symbol.unscopables.js' - ) - __webpack_require__( - /*! ../../modules/es.json.to-string-tag */ './node_modules/core-js-pure/modules/es.json.to-string-tag.js' - ) - __webpack_require__( - /*! ../../modules/es.math.to-string-tag */ './node_modules/core-js-pure/modules/es.math.to-string-tag.js' - ) - __webpack_require__( - /*! ../../modules/es.reflect.to-string-tag */ './node_modules/core-js-pure/modules/es.reflect.to-string-tag.js' - ) - var path = __webpack_require__( - /*! ../../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - module.exports = path.Symbol - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/symbol/iterator.js': - /*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/es/symbol/iterator.js ***! - \*********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.array.iterator */ './node_modules/core-js-pure/modules/es.array.iterator.js' - ) - __webpack_require__( - /*! ../../modules/es.object.to-string */ './node_modules/core-js-pure/modules/es.object.to-string.js' - ) - __webpack_require__( - /*! ../../modules/es.string.iterator */ './node_modules/core-js-pure/modules/es.string.iterator.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.iterator */ './node_modules/core-js-pure/modules/es.symbol.iterator.js' - ) - var WrappedWellKnownSymbolModule = __webpack_require__( - /*! ../../internals/well-known-symbol-wrapped */ './node_modules/core-js-pure/internals/well-known-symbol-wrapped.js' - ) - - module.exports = WrappedWellKnownSymbolModule.f('iterator') - - /***/ - }, - - /***/ './node_modules/core-js-pure/es/symbol/to-primitive.js': - /*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/es/symbol/to-primitive.js ***! - \*************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - __webpack_require__( - /*! ../../modules/es.date.to-primitive */ './node_modules/core-js-pure/modules/es.date.to-primitive.js' - ) - __webpack_require__( - /*! ../../modules/es.symbol.to-primitive */ './node_modules/core-js-pure/modules/es.symbol.to-primitive.js' - ) - var WrappedWellKnownSymbolModule = __webpack_require__( - /*! ../../internals/well-known-symbol-wrapped */ './node_modules/core-js-pure/internals/well-known-symbol-wrapped.js' - ) - - module.exports = WrappedWellKnownSymbolModule.f('toPrimitive') - - /***/ - }, - - /***/ './node_modules/core-js-pure/features/object/define-property.js': - /*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/features/object/define-property.js ***! - \**********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - module.exports = __webpack_require__( - /*! ../../full/object/define-property */ './node_modules/core-js-pure/full/object/define-property.js' - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/features/symbol/index.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/features/symbol/index.js ***! - \************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - module.exports = __webpack_require__( - /*! ../../full/symbol */ './node_modules/core-js-pure/full/symbol/index.js' - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/features/symbol/iterator.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/features/symbol/iterator.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - module.exports = __webpack_require__( - /*! ../../full/symbol/iterator */ './node_modules/core-js-pure/full/symbol/iterator.js' - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/features/symbol/to-primitive.js': - /*!*******************************************************************!*\ - !*** ./node_modules/core-js-pure/features/symbol/to-primitive.js ***! - \*******************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - module.exports = __webpack_require__( - /*! ../../full/symbol/to-primitive */ './node_modules/core-js-pure/full/symbol/to-primitive.js' - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/full/object/define-property.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/full/object/define-property.js ***! - \******************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../actual/object/define-property */ './node_modules/core-js-pure/actual/object/define-property.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/full/symbol/index.js': - /*!********************************************************!*\ - !*** ./node_modules/core-js-pure/full/symbol/index.js ***! - \********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../actual/symbol */ './node_modules/core-js-pure/actual/symbol/index.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.is-registered-symbol */ './node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.is-well-known-symbol */ './node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.custom-matcher */ './node_modules/core-js-pure/modules/esnext.symbol.custom-matcher.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.observable */ './node_modules/core-js-pure/modules/esnext.symbol.observable.js' - ) - // TODO: Remove from `core-js@4` - __webpack_require__( - /*! ../../modules/esnext.symbol.is-registered */ './node_modules/core-js-pure/modules/esnext.symbol.is-registered.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.is-well-known */ './node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.matcher */ './node_modules/core-js-pure/modules/esnext.symbol.matcher.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.metadata-key */ './node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.pattern-match */ './node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js' - ) - __webpack_require__( - /*! ../../modules/esnext.symbol.replace-all */ './node_modules/core-js-pure/modules/esnext.symbol.replace-all.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/full/symbol/iterator.js': - /*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/full/symbol/iterator.js ***! - \***********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../actual/symbol/iterator */ './node_modules/core-js-pure/actual/symbol/iterator.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/full/symbol/to-primitive.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/full/symbol/to-primitive.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../actual/symbol/to-primitive */ './node_modules/core-js-pure/actual/symbol/to-primitive.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/a-callable.js': - /*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/a-callable.js ***! - \***********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var tryToString = __webpack_require__( - /*! ../internals/try-to-string */ './node_modules/core-js-pure/internals/try-to-string.js' - ) - - var $TypeError = TypeError - - // `Assert: IsCallable(argument) is true` - module.exports = function (argument) { - if (isCallable(argument)) return argument - throw new $TypeError(tryToString(argument) + ' is not a function') - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/a-possible-prototype.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/a-possible-prototype.js ***! - \*********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isPossiblePrototype = __webpack_require__( - /*! ../internals/is-possible-prototype */ './node_modules/core-js-pure/internals/is-possible-prototype.js' - ) - - var $String = String - var $TypeError = TypeError - - module.exports = function (argument) { - if (isPossiblePrototype(argument)) return argument - throw new $TypeError( - "Can't set " + $String(argument) + ' as a prototype' - ) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/add-to-unscopables.js': - /*!*******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/add-to-unscopables.js ***! - \*******************************************************************/ - /***/ module => { - 'use strict' - - module.exports = function () { - /* empty */ - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/an-object.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/an-object.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - - var $String = String - var $TypeError = TypeError - - // `Assert: Type(argument) is Object` - module.exports = function (argument) { - if (isObject(argument)) return argument - throw new $TypeError($String(argument) + ' is not an object') - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/array-for-each.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-for-each.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var $forEach = __webpack_require__( - /*! ../internals/array-iteration */ './node_modules/core-js-pure/internals/array-iteration.js' - ).forEach - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ './node_modules/core-js-pure/internals/array-method-is-strict.js' - ) - - var STRICT_METHOD = arrayMethodIsStrict('forEach') - - // `Array.prototype.forEach` method implementation - // https://tc39.es/ecma262/#sec-array.prototype.foreach - module.exports = !STRICT_METHOD - ? function forEach(callbackfn /* , thisArg */) { - return $forEach( - this, - callbackfn, - arguments.length > 1 ? arguments[1] : undefined - ) - // eslint-disable-next-line es/no-array-prototype-foreach -- safe - } - : [].forEach - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/array-includes.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-includes.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var toAbsoluteIndex = __webpack_require__( - /*! ../internals/to-absolute-index */ './node_modules/core-js-pure/internals/to-absolute-index.js' - ) - var lengthOfArrayLike = __webpack_require__( - /*! ../internals/length-of-array-like */ './node_modules/core-js-pure/internals/length-of-array-like.js' - ) - - // `Array.prototype.{ indexOf, includes }` methods implementation - var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this) - var length = lengthOfArrayLike(O) - if (length === 0) return !IS_INCLUDES && -1 - var index = toAbsoluteIndex(fromIndex, length) - var value - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare -- NaN check - if (IS_INCLUDES && el !== el) - while (length > index) { - value = O[index++] - // eslint-disable-next-line no-self-compare -- NaN check - if (value !== value) return true - // Array#indexOf ignores holes, Array#includes - not - } - else - for (; length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) - return IS_INCLUDES || index || 0 - } - return !IS_INCLUDES && -1 - } - } - - module.exports = { - // `Array.prototype.includes` method - // https://tc39.es/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.es/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/array-iteration.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-iteration.js ***! - \****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var bind = __webpack_require__( - /*! ../internals/function-bind-context */ './node_modules/core-js-pure/internals/function-bind-context.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var IndexedObject = __webpack_require__( - /*! ../internals/indexed-object */ './node_modules/core-js-pure/internals/indexed-object.js' - ) - var toObject = __webpack_require__( - /*! ../internals/to-object */ './node_modules/core-js-pure/internals/to-object.js' - ) - var lengthOfArrayLike = __webpack_require__( - /*! ../internals/length-of-array-like */ './node_modules/core-js-pure/internals/length-of-array-like.js' - ) - var arraySpeciesCreate = __webpack_require__( - /*! ../internals/array-species-create */ './node_modules/core-js-pure/internals/array-species-create.js' - ) - - var push = uncurryThis([].push) - - // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation - var createMethod = function (TYPE) { - var IS_MAP = TYPE === 1 - var IS_FILTER = TYPE === 2 - var IS_SOME = TYPE === 3 - var IS_EVERY = TYPE === 4 - var IS_FIND_INDEX = TYPE === 6 - var IS_FILTER_REJECT = TYPE === 7 - var NO_HOLES = TYPE === 5 || IS_FIND_INDEX - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this) - var self = IndexedObject(O) - var length = lengthOfArrayLike(self) - var boundFunction = bind(callbackfn, that) - var index = 0 - var create = specificCreate || arraySpeciesCreate - var target = IS_MAP - ? create($this, length) - : IS_FILTER || IS_FILTER_REJECT - ? create($this, 0) - : undefined - var value, result - for (; length > index; index++) - if (NO_HOLES || index in self) { - value = self[index] - result = boundFunction(value, index, O) - if (TYPE) { - if (IS_MAP) - target[index] = result // map - else if (result) - switch (TYPE) { - case 3: - return true // some - case 5: - return value // find - case 6: - return index // findIndex - case 2: - push(target, value) // filter - } - else - switch (TYPE) { - case 4: - return false // every - case 7: - push(target, value) // filterReject - } - } - } - return IS_FIND_INDEX - ? -1 - : IS_SOME || IS_EVERY - ? IS_EVERY - : target - } - } - - module.exports = { - // `Array.prototype.forEach` method - // https://tc39.es/ecma262/#sec-array.prototype.foreach - forEach: createMethod(0), - // `Array.prototype.map` method - // https://tc39.es/ecma262/#sec-array.prototype.map - map: createMethod(1), - // `Array.prototype.filter` method - // https://tc39.es/ecma262/#sec-array.prototype.filter - filter: createMethod(2), - // `Array.prototype.some` method - // https://tc39.es/ecma262/#sec-array.prototype.some - some: createMethod(3), - // `Array.prototype.every` method - // https://tc39.es/ecma262/#sec-array.prototype.every - every: createMethod(4), - // `Array.prototype.find` method - // https://tc39.es/ecma262/#sec-array.prototype.find - find: createMethod(5), - // `Array.prototype.findIndex` method - // https://tc39.es/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod(6), - // `Array.prototype.filterReject` method - // https://github.com/tc39/proposal-array-filtering - filterReject: createMethod(7) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/array-method-has-species-support.js': - /*!*********************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-method-has-species-support.js ***! - \*********************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - var V8_VERSION = __webpack_require__( - /*! ../internals/environment-v8-version */ './node_modules/core-js-pure/internals/environment-v8-version.js' - ) - - var SPECIES = wellKnownSymbol('species') - - module.exports = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return ( - V8_VERSION >= 51 || - !fails(function () { - var array = [] - var constructor = (array.constructor = {}) - constructor[SPECIES] = function () { - return { foo: 1 } - } - return array[METHOD_NAME](Boolean).foo !== 1 - }) - ) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/array-method-is-strict.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-method-is-strict.js ***! - \***********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - - module.exports = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME] - return ( - !!method && - fails(function () { - // eslint-disable-next-line no-useless-call -- required for testing - method.call( - null, - argument || - function () { - return 1 - }, - 1 - ) - }) - ) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/array-slice.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-slice.js ***! - \************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - - module.exports = uncurryThis([].slice) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/array-species-constructor.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-species-constructor.js ***! - \**************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isArray = __webpack_require__( - /*! ../internals/is-array */ './node_modules/core-js-pure/internals/is-array.js' - ) - var isConstructor = __webpack_require__( - /*! ../internals/is-constructor */ './node_modules/core-js-pure/internals/is-constructor.js' - ) - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - - var SPECIES = wellKnownSymbol('species') - var $Array = Array - - // a part of `ArraySpeciesCreate` abstract operation - // https://tc39.es/ecma262/#sec-arrayspeciescreate - module.exports = function (originalArray) { - var C - if (isArray(originalArray)) { - C = originalArray.constructor - // cross-realm fallback - if (isConstructor(C) && (C === $Array || isArray(C.prototype))) - C = undefined - else if (isObject(C)) { - C = C[SPECIES] - if (C === null) C = undefined - } - } - return C === undefined ? $Array : C - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/array-species-create.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-species-create.js ***! - \*********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var arraySpeciesConstructor = __webpack_require__( - /*! ../internals/array-species-constructor */ './node_modules/core-js-pure/internals/array-species-constructor.js' - ) - - // `ArraySpeciesCreate` abstract operation - // https://tc39.es/ecma262/#sec-arrayspeciescreate - module.exports = function (originalArray, length) { - return new (arraySpeciesConstructor(originalArray))( - length === 0 ? 0 : length - ) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/classof-raw.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/classof-raw.js ***! - \************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - - var toString = uncurryThis({}.toString) - var stringSlice = uncurryThis(''.slice) - - module.exports = function (it) { - return stringSlice(toString(it), 8, -1) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/classof.js': - /*!********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/classof.js ***! - \********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var TO_STRING_TAG_SUPPORT = __webpack_require__( - /*! ../internals/to-string-tag-support */ './node_modules/core-js-pure/internals/to-string-tag-support.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var classofRaw = __webpack_require__( - /*! ../internals/classof-raw */ './node_modules/core-js-pure/internals/classof-raw.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - - var TO_STRING_TAG = wellKnownSymbol('toStringTag') - var $Object = Object - - // ES3 wrong here - var CORRECT_ARGUMENTS = - classofRaw( - (function () { - return arguments - })() - ) === 'Arguments' - - // fallback for IE11 Script Access Denied error - var tryGet = function (it, key) { - try { - return it[key] - } catch (error) { - /* empty */ - } - } - - // getting tag from ES6+ `Object.prototype.toString` - module.exports = TO_STRING_TAG_SUPPORT - ? classofRaw - : function (it) { - var O, tag, result - return it === undefined - ? 'Undefined' - : it === null - ? 'Null' - : // @@toStringTag case - typeof (tag = tryGet( - (O = $Object(it)), - TO_STRING_TAG - )) == 'string' - ? tag - : // builtinTag case - CORRECT_ARGUMENTS - ? classofRaw(O) - : // ES3 arguments fallback - (result = classofRaw(O)) === 'Object' && - isCallable(O.callee) - ? 'Arguments' - : result - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/correct-prototype-getter.js': - /*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/correct-prototype-getter.js ***! - \*************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - - module.exports = !fails(function () { - function F() { - /* empty */ - } - F.prototype.constructor = null - // eslint-disable-next-line es/no-object-getprototypeof -- required for testing - return Object.getPrototypeOf(new F()) !== F.prototype - }) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/create-iter-result-object.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-iter-result-object.js ***! - \**************************************************************************/ - /***/ module => { - 'use strict' - - // `CreateIterResultObject` abstract operation - // https://tc39.es/ecma262/#sec-createiterresultobject - module.exports = function (value, done) { - return { value: value, done: done } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/create-non-enumerable-property.js': - /*!*******************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-non-enumerable-property.js ***! - \*******************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ) - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ './node_modules/core-js-pure/internals/create-property-descriptor.js' - ) - - module.exports = DESCRIPTORS - ? function (object, key, value) { - return definePropertyModule.f( - object, - key, - createPropertyDescriptor(1, value) - ) - } - : function (object, key, value) { - object[key] = value - return object - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/create-property-descriptor.js': - /*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-property-descriptor.js ***! - \***************************************************************************/ - /***/ module => { - 'use strict' - - module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/create-property.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-property.js ***! - \****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ) - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ './node_modules/core-js-pure/internals/create-property-descriptor.js' - ) - - module.exports = function (object, key, value) { - if (DESCRIPTORS) - definePropertyModule.f( - object, - key, - createPropertyDescriptor(0, value) - ) - else object[key] = value - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/define-built-in-accessor.js': - /*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/define-built-in-accessor.js ***! - \*************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ) - - module.exports = function (target, name, descriptor) { - return defineProperty.f(target, name, descriptor) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/define-built-in.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/define-built-in.js ***! - \****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ './node_modules/core-js-pure/internals/create-non-enumerable-property.js' - ) - - module.exports = function (target, key, value, options) { - if (options && options.enumerable) target[key] = value - else createNonEnumerableProperty(target, key, value) - return target - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/define-global-property.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/define-global-property.js ***! - \***********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - - // eslint-disable-next-line es/no-object-defineproperty -- safe - var defineProperty = Object.defineProperty - - module.exports = function (key, value) { - try { - defineProperty(globalThis, key, { - value: value, - configurable: true, - writable: true - }) - } catch (error) { - globalThis[key] = value - } - return value - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/descriptors.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/descriptors.js ***! - \************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - - // Detect IE8's incomplete defineProperty implementation - module.exports = !fails(function () { - // eslint-disable-next-line es/no-object-defineproperty -- required for testing - return ( - Object.defineProperty({}, 1, { - get: function () { - return 7 - } - })[1] !== 7 - ) - }) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/document-create-element.js': - /*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/document-create-element.js ***! - \************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - - var document = globalThis.document - // typeof document.createElement is 'object' in old IE - var EXISTS = isObject(document) && isObject(document.createElement) - - module.exports = function (it) { - return EXISTS ? document.createElement(it) : {} - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js': - /*!*****************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js ***! - \*****************************************************************************/ - /***/ module => { - 'use strict' - - var $TypeError = TypeError - var MAX_SAFE_INTEGER = 0x1fffffffffffff // 2 ** 53 - 1 == 9007199254740991 - - module.exports = function (it) { - if (it > MAX_SAFE_INTEGER) - throw $TypeError('Maximum allowed index exceeded') - return it - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/dom-iterables.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/dom-iterables.js ***! - \**************************************************************/ - /***/ module => { - 'use strict' - - // iterable DOM collections - // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods - module.exports = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/enum-bug-keys.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/enum-bug-keys.js ***! - \**************************************************************/ - /***/ module => { - 'use strict' - - // IE8- don't enum bug keys - module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' - ] - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/environment-user-agent.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/environment-user-agent.js ***! - \***********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - - var navigator = globalThis.navigator - var userAgent = navigator && navigator.userAgent - - module.exports = userAgent ? String(userAgent) : '' - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/environment-v8-version.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/environment-v8-version.js ***! - \***********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var userAgent = __webpack_require__( - /*! ../internals/environment-user-agent */ './node_modules/core-js-pure/internals/environment-user-agent.js' - ) - - var process = globalThis.process - var Deno = globalThis.Deno - var versions = - (process && process.versions) || (Deno && Deno.version) - var v8 = versions && versions.v8 - var match, version - - if (v8) { - match = v8.split('.') - // in old Chrome, versions of V8 isn't V8 = Chrome / 10 - // but their correct versions are not interesting for us - version = - match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]) - } - - // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` - // so check `userAgent` even if `.v8` exists, but 0 - if (!version && userAgent) { - match = userAgent.match(/Edge\/(\d+)/) - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/) - if (match) version = +match[1] - } - } - - module.exports = version - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/export.js': - /*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/export.js ***! - \*******************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var apply = __webpack_require__( - /*! ../internals/function-apply */ './node_modules/core-js-pure/internals/function-apply.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this-clause */ './node_modules/core-js-pure/internals/function-uncurry-this-clause.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var getOwnPropertyDescriptor = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ './node_modules/core-js-pure/internals/object-get-own-property-descriptor.js' - ).f - var isForced = __webpack_require__( - /*! ../internals/is-forced */ './node_modules/core-js-pure/internals/is-forced.js' - ) - var path = __webpack_require__( - /*! ../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - var bind = __webpack_require__( - /*! ../internals/function-bind-context */ './node_modules/core-js-pure/internals/function-bind-context.js' - ) - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ './node_modules/core-js-pure/internals/create-non-enumerable-property.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - // add debugging info - __webpack_require__( - /*! ../internals/shared-store */ './node_modules/core-js-pure/internals/shared-store.js' - ) - - var wrapConstructor = function (NativeConstructor) { - var Wrapper = function (a, b, c) { - if (this instanceof Wrapper) { - switch (arguments.length) { - case 0: - return new NativeConstructor() - case 1: - return new NativeConstructor(a) - case 2: - return new NativeConstructor(a, b) - } - return new NativeConstructor(a, b, c) - } - return apply(NativeConstructor, this, arguments) - } - Wrapper.prototype = NativeConstructor.prototype - return Wrapper - } - - /* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.dontCallGetSet - prevent calling a getter on target - options.name - the .name of the function if it does not match the key -*/ - module.exports = function (options, source) { - var TARGET = options.target - var GLOBAL = options.global - var STATIC = options.stat - var PROTO = options.proto - - var nativeSource = GLOBAL - ? globalThis - : STATIC - ? globalThis[TARGET] - : globalThis[TARGET] && globalThis[TARGET].prototype - - var target = GLOBAL - ? path - : path[TARGET] || - createNonEnumerableProperty(path, TARGET, {})[TARGET] - var targetPrototype = target.prototype - - var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE - var key, - sourceProperty, - targetProperty, - nativeProperty, - resultProperty, - descriptor - - for (key in source) { - FORCED = isForced( - GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, - options.forced - ) - // contains in native - USE_NATIVE = - !FORCED && nativeSource && hasOwn(nativeSource, key) - - targetProperty = target[key] - - if (USE_NATIVE) - if (options.dontCallGetSet) { - descriptor = getOwnPropertyDescriptor(nativeSource, key) - nativeProperty = descriptor && descriptor.value - } else nativeProperty = nativeSource[key] - - // export native or implementation - sourceProperty = - USE_NATIVE && nativeProperty ? nativeProperty : source[key] - - if ( - !FORCED && - !PROTO && - typeof targetProperty == typeof sourceProperty - ) - continue - - // bind methods to global for calling from export context - if (options.bind && USE_NATIVE) - resultProperty = bind(sourceProperty, globalThis) - // wrap global constructors for prevent changes in this version - else if (options.wrap && USE_NATIVE) - resultProperty = wrapConstructor(sourceProperty) - // make static versions for prototype methods - else if (PROTO && isCallable(sourceProperty)) - resultProperty = uncurryThis(sourceProperty) - // default case - else resultProperty = sourceProperty - - // add a flag to not completely full polyfills - if ( - options.sham || - (sourceProperty && sourceProperty.sham) || - (targetProperty && targetProperty.sham) - ) { - createNonEnumerableProperty(resultProperty, 'sham', true) - } - - createNonEnumerableProperty(target, key, resultProperty) - - if (PROTO) { - VIRTUAL_PROTOTYPE = TARGET + 'Prototype' - if (!hasOwn(path, VIRTUAL_PROTOTYPE)) { - createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {}) - } - // export virtual prototype methods - createNonEnumerableProperty( - path[VIRTUAL_PROTOTYPE], - key, - sourceProperty - ) - // export real prototype methods - if ( - options.real && - targetPrototype && - (FORCED || !targetPrototype[key]) - ) { - createNonEnumerableProperty( - targetPrototype, - key, - sourceProperty - ) - } - } - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/fails.js': - /*!******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/fails.js ***! - \******************************************************/ - /***/ module => { - 'use strict' - - module.exports = function (exec) { - try { - return !!exec() - } catch (error) { - return true - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/function-apply.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-apply.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var NATIVE_BIND = __webpack_require__( - /*! ../internals/function-bind-native */ './node_modules/core-js-pure/internals/function-bind-native.js' - ) - - var FunctionPrototype = Function.prototype - var apply = FunctionPrototype.apply - var call = FunctionPrototype.call - - // eslint-disable-next-line es/no-reflect -- safe - module.exports = - (typeof Reflect == 'object' && Reflect.apply) || - (NATIVE_BIND - ? call.bind(apply) - : function () { - return call.apply(apply, arguments) - }) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/function-bind-context.js': - /*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-bind-context.js ***! - \**********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this-clause */ './node_modules/core-js-pure/internals/function-uncurry-this-clause.js' - ) - var aCallable = __webpack_require__( - /*! ../internals/a-callable */ './node_modules/core-js-pure/internals/a-callable.js' - ) - var NATIVE_BIND = __webpack_require__( - /*! ../internals/function-bind-native */ './node_modules/core-js-pure/internals/function-bind-native.js' - ) - - var bind = uncurryThis(uncurryThis.bind) - - // optional / simple context binding - module.exports = function (fn, that) { - aCallable(fn) - return that === undefined - ? fn - : NATIVE_BIND - ? bind(fn, that) - : function (/* ...args */) { - return fn.apply(that, arguments) - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/function-bind-native.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-bind-native.js ***! - \*********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - - module.exports = !fails(function () { - // eslint-disable-next-line es/no-function-prototype-bind -- safe - var test = function () { - /* empty */ - }.bind() - // eslint-disable-next-line no-prototype-builtins -- safe - return ( - typeof test != 'function' || test.hasOwnProperty('prototype') - ) - }) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/function-call.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-call.js ***! - \**************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var NATIVE_BIND = __webpack_require__( - /*! ../internals/function-bind-native */ './node_modules/core-js-pure/internals/function-bind-native.js' - ) - - var call = Function.prototype.call - - module.exports = NATIVE_BIND - ? call.bind(call) - : function () { - return call.apply(call, arguments) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/function-name.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-name.js ***! - \**************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - - var FunctionPrototype = Function.prototype - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor - - var EXISTS = hasOwn(FunctionPrototype, 'name') - // additional protection from minified / mangled / dropped function names - var PROPER = - EXISTS && - function something() { - /* empty */ - }.name === 'something' - var CONFIGURABLE = - EXISTS && - (!DESCRIPTORS || - (DESCRIPTORS && - getDescriptor(FunctionPrototype, 'name').configurable)) - - module.exports = { - EXISTS: EXISTS, - PROPER: PROPER, - CONFIGURABLE: CONFIGURABLE - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/function-uncurry-this-accessor.js': - /*!*******************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-uncurry-this-accessor.js ***! - \*******************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var aCallable = __webpack_require__( - /*! ../internals/a-callable */ './node_modules/core-js-pure/internals/a-callable.js' - ) - - module.exports = function (object, key, method) { - try { - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - return uncurryThis( - aCallable( - Object.getOwnPropertyDescriptor(object, key)[method] - ) - ) - } catch (error) { - /* empty */ - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/function-uncurry-this-clause.js': - /*!*****************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-uncurry-this-clause.js ***! - \*****************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var classofRaw = __webpack_require__( - /*! ../internals/classof-raw */ './node_modules/core-js-pure/internals/classof-raw.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - - module.exports = function (fn) { - // Nashorn bug: - // https://github.com/zloirock/core-js/issues/1128 - // https://github.com/zloirock/core-js/issues/1130 - if (classofRaw(fn) === 'Function') return uncurryThis(fn) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/function-uncurry-this.js': - /*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-uncurry-this.js ***! - \**********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var NATIVE_BIND = __webpack_require__( - /*! ../internals/function-bind-native */ './node_modules/core-js-pure/internals/function-bind-native.js' - ) - - var FunctionPrototype = Function.prototype - var call = FunctionPrototype.call - var uncurryThisWithBind = - NATIVE_BIND && FunctionPrototype.bind.bind(call, call) - - module.exports = NATIVE_BIND - ? uncurryThisWithBind - : function (fn) { - return function () { - return call.apply(fn, arguments) - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/get-built-in-prototype-method.js': - /*!******************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/get-built-in-prototype-method.js ***! - \******************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var path = __webpack_require__( - /*! ../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - - module.exports = function (CONSTRUCTOR, METHOD) { - var Namespace = path[CONSTRUCTOR + 'Prototype'] - var pureMethod = Namespace && Namespace[METHOD] - if (pureMethod) return pureMethod - var NativeConstructor = globalThis[CONSTRUCTOR] - var NativePrototype = - NativeConstructor && NativeConstructor.prototype - return NativePrototype && NativePrototype[METHOD] - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/get-built-in.js': - /*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/get-built-in.js ***! - \*************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var path = __webpack_require__( - /*! ../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - - var aFunction = function (variable) { - return isCallable(variable) ? variable : undefined - } - - module.exports = function (namespace, method) { - return arguments.length < 2 - ? aFunction(path[namespace]) || aFunction(globalThis[namespace]) - : (path[namespace] && path[namespace][method]) || - (globalThis[namespace] && globalThis[namespace][method]) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/get-json-replacer-function.js': - /*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/get-json-replacer-function.js ***! - \***************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var isArray = __webpack_require__( - /*! ../internals/is-array */ './node_modules/core-js-pure/internals/is-array.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var classof = __webpack_require__( - /*! ../internals/classof-raw */ './node_modules/core-js-pure/internals/classof-raw.js' - ) - var toString = __webpack_require__( - /*! ../internals/to-string */ './node_modules/core-js-pure/internals/to-string.js' - ) - - var push = uncurryThis([].push) - - module.exports = function (replacer) { - if (isCallable(replacer)) return replacer - if (!isArray(replacer)) return - var rawLength = replacer.length - var keys = [] - for (var i = 0; i < rawLength; i++) { - var element = replacer[i] - if (typeof element == 'string') push(keys, element) - else if ( - typeof element == 'number' || - classof(element) === 'Number' || - classof(element) === 'String' - ) - push(keys, toString(element)) - } - var keysLength = keys.length - var root = true - return function (key, value) { - if (root) { - root = false - return value - } - if (isArray(this)) return value - for (var j = 0; j < keysLength; j++) - if (keys[j] === key) return value - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/get-method.js': - /*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/get-method.js ***! - \***********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var aCallable = __webpack_require__( - /*! ../internals/a-callable */ './node_modules/core-js-pure/internals/a-callable.js' - ) - var isNullOrUndefined = __webpack_require__( - /*! ../internals/is-null-or-undefined */ './node_modules/core-js-pure/internals/is-null-or-undefined.js' - ) - - // `GetMethod` abstract operation - // https://tc39.es/ecma262/#sec-getmethod - module.exports = function (V, P) { - var func = V[P] - return isNullOrUndefined(func) ? undefined : aCallable(func) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/global-this.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/global-this.js ***! - \************************************************************/ - /***/ function (module) { - 'use strict' - - var check = function (it) { - return it && it.Math === Math && it - } - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - module.exports = - // eslint-disable-next-line es/no-global-this -- safe - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - // eslint-disable-next-line no-restricted-globals -- safe - check(typeof self == 'object' && self) || - check(typeof global == 'object' && global) || - check(typeof this == 'object' && this) || - // eslint-disable-next-line no-new-func -- fallback - (function () { - return this - })() || - Function('return this')() - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/has-own-property.js': - /*!*****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/has-own-property.js ***! - \*****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var toObject = __webpack_require__( - /*! ../internals/to-object */ './node_modules/core-js-pure/internals/to-object.js' - ) - - var hasOwnProperty = uncurryThis({}.hasOwnProperty) - - // `HasOwnProperty` abstract operation - // https://tc39.es/ecma262/#sec-hasownproperty - // eslint-disable-next-line es/no-object-hasown -- safe - module.exports = - Object.hasOwn || - function hasOwn(it, key) { - return hasOwnProperty(toObject(it), key) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/hidden-keys.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/hidden-keys.js ***! - \************************************************************/ - /***/ module => { - 'use strict' - - module.exports = {} - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/html.js': - /*!*****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/html.js ***! - \*****************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - - module.exports = getBuiltIn('document', 'documentElement') - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/ie8-dom-define.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/ie8-dom-define.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var createElement = __webpack_require__( - /*! ../internals/document-create-element */ './node_modules/core-js-pure/internals/document-create-element.js' - ) - - // Thanks to IE8 for its funny defineProperty - module.exports = - !DESCRIPTORS && - !fails(function () { - // eslint-disable-next-line es/no-object-defineproperty -- required for testing - return ( - Object.defineProperty(createElement('div'), 'a', { - get: function () { - return 7 - } - }).a !== 7 - ) - }) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/indexed-object.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/indexed-object.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var classof = __webpack_require__( - /*! ../internals/classof-raw */ './node_modules/core-js-pure/internals/classof-raw.js' - ) - - var $Object = Object - var split = uncurryThis(''.split) - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - module.exports = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins -- safe - return !$Object('z').propertyIsEnumerable(0) - }) - ? function (it) { - return classof(it) === 'String' ? split(it, '') : $Object(it) - } - : $Object - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/inspect-source.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/inspect-source.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var store = __webpack_require__( - /*! ../internals/shared-store */ './node_modules/core-js-pure/internals/shared-store.js' - ) - - var functionToString = uncurryThis(Function.toString) - - // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper - if (!isCallable(store.inspectSource)) { - store.inspectSource = function (it) { - return functionToString(it) - } - } - - module.exports = store.inspectSource - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/internal-state.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/internal-state.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var NATIVE_WEAK_MAP = __webpack_require__( - /*! ../internals/weak-map-basic-detection */ './node_modules/core-js-pure/internals/weak-map-basic-detection.js' - ) - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ './node_modules/core-js-pure/internals/create-non-enumerable-property.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var shared = __webpack_require__( - /*! ../internals/shared-store */ './node_modules/core-js-pure/internals/shared-store.js' - ) - var sharedKey = __webpack_require__( - /*! ../internals/shared-key */ './node_modules/core-js-pure/internals/shared-key.js' - ) - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ './node_modules/core-js-pure/internals/hidden-keys.js' - ) - - var OBJECT_ALREADY_INITIALIZED = 'Object already initialized' - var TypeError = globalThis.TypeError - var WeakMap = globalThis.WeakMap - var set, get, has - - var enforce = function (it) { - return has(it) ? get(it) : set(it, {}) - } - - var getterFor = function (TYPE) { - return function (it) { - var state - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw new TypeError( - 'Incompatible receiver, ' + TYPE + ' required' - ) - } - return state - } - } - - if (NATIVE_WEAK_MAP || shared.state) { - var store = shared.state || (shared.state = new WeakMap()) - /* eslint-disable no-self-assign -- prototype methods protection */ - store.get = store.get - store.has = store.has - store.set = store.set - /* eslint-enable no-self-assign -- prototype methods protection */ - set = function (it, metadata) { - if (store.has(it)) - throw new TypeError(OBJECT_ALREADY_INITIALIZED) - metadata.facade = it - store.set(it, metadata) - return metadata - } - get = function (it) { - return store.get(it) || {} - } - has = function (it) { - return store.has(it) - } - } else { - var STATE = sharedKey('state') - hiddenKeys[STATE] = true - set = function (it, metadata) { - if (hasOwn(it, STATE)) - throw new TypeError(OBJECT_ALREADY_INITIALIZED) - metadata.facade = it - createNonEnumerableProperty(it, STATE, metadata) - return metadata - } - get = function (it) { - return hasOwn(it, STATE) ? it[STATE] : {} - } - has = function (it) { - return hasOwn(it, STATE) - } - } - - module.exports = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-array.js': - /*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-array.js ***! - \*********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var classof = __webpack_require__( - /*! ../internals/classof-raw */ './node_modules/core-js-pure/internals/classof-raw.js' - ) - - // `IsArray` abstract operation - // https://tc39.es/ecma262/#sec-isarray - // eslint-disable-next-line es/no-array-isarray -- safe - module.exports = - Array.isArray || - function isArray(argument) { - return classof(argument) === 'Array' - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-callable.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-callable.js ***! - \************************************************************/ - /***/ module => { - 'use strict' - - // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot - var documentAll = typeof document == 'object' && document.all - - // `IsCallable` abstract operation - // https://tc39.es/ecma262/#sec-iscallable - // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing - module.exports = - typeof documentAll == 'undefined' && documentAll !== undefined - ? function (argument) { - return ( - typeof argument == 'function' || argument === documentAll - ) - } - : function (argument) { - return typeof argument == 'function' - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-constructor.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-constructor.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var classof = __webpack_require__( - /*! ../internals/classof */ './node_modules/core-js-pure/internals/classof.js' - ) - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var inspectSource = __webpack_require__( - /*! ../internals/inspect-source */ './node_modules/core-js-pure/internals/inspect-source.js' - ) - - var noop = function () { - /* empty */ - } - var construct = getBuiltIn('Reflect', 'construct') - var constructorRegExp = /^\s*(?:class|function)\b/ - var exec = uncurryThis(constructorRegExp.exec) - var INCORRECT_TO_STRING = !constructorRegExp.test(noop) - - var isConstructorModern = function isConstructor(argument) { - if (!isCallable(argument)) return false - try { - construct(noop, [], argument) - return true - } catch (error) { - return false - } - } - - var isConstructorLegacy = function isConstructor(argument) { - if (!isCallable(argument)) return false - switch (classof(argument)) { - case 'AsyncFunction': - case 'GeneratorFunction': - case 'AsyncGeneratorFunction': - return false - } - try { - // we can't check .prototype since constructors produced by .bind haven't it - // `Function#toString` throws on some built-it function in some legacy engines - // (for example, `DOMQuad` and similar in FF41-) - return ( - INCORRECT_TO_STRING || - !!exec(constructorRegExp, inspectSource(argument)) - ) - } catch (error) { - return true - } - } - - isConstructorLegacy.sham = true - - // `IsConstructor` abstract operation - // https://tc39.es/ecma262/#sec-isconstructor - module.exports = - !construct || - fails(function () { - var called - return ( - isConstructorModern(isConstructorModern.call) || - !isConstructorModern(Object) || - !isConstructorModern(function () { - called = true - }) || - called - ) - }) - ? isConstructorLegacy - : isConstructorModern - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-forced.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-forced.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - - var replacement = /#|\.prototype\./ - - var isForced = function (feature, detection) { - var value = data[normalize(feature)] - return value === POLYFILL - ? true - : value === NATIVE - ? false - : isCallable(detection) - ? fails(detection) - : !!detection - } - - var normalize = (isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase() - }) - - var data = (isForced.data = {}) - var NATIVE = (isForced.NATIVE = 'N') - var POLYFILL = (isForced.POLYFILL = 'P') - - module.exports = isForced - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-null-or-undefined.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-null-or-undefined.js ***! - \*********************************************************************/ - /***/ module => { - 'use strict' - - // we can't use just `it == null` since of `document.all` special case - // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec - module.exports = function (it) { - return it === null || it === undefined - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-object.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-object.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - - module.exports = function (it) { - return typeof it == 'object' ? it !== null : isCallable(it) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-possible-prototype.js': - /*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-possible-prototype.js ***! - \**********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - - module.exports = function (argument) { - return isObject(argument) || argument === null - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-pure.js': - /*!********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-pure.js ***! - \********************************************************/ - /***/ module => { - 'use strict' - - module.exports = true - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/is-symbol.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-symbol.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var isPrototypeOf = __webpack_require__( - /*! ../internals/object-is-prototype-of */ './node_modules/core-js-pure/internals/object-is-prototype-of.js' - ) - var USE_SYMBOL_AS_UID = __webpack_require__( - /*! ../internals/use-symbol-as-uid */ './node_modules/core-js-pure/internals/use-symbol-as-uid.js' - ) - - var $Object = Object - - module.exports = USE_SYMBOL_AS_UID - ? function (it) { - return typeof it == 'symbol' - } - : function (it) { - var $Symbol = getBuiltIn('Symbol') - return ( - isCallable($Symbol) && - isPrototypeOf($Symbol.prototype, $Object(it)) - ) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/iterator-create-constructor.js': - /*!****************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/iterator-create-constructor.js ***! - \****************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var IteratorPrototype = __webpack_require__( - /*! ../internals/iterators-core */ './node_modules/core-js-pure/internals/iterators-core.js' - ).IteratorPrototype - var create = __webpack_require__( - /*! ../internals/object-create */ './node_modules/core-js-pure/internals/object-create.js' - ) - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ './node_modules/core-js-pure/internals/create-property-descriptor.js' - ) - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ './node_modules/core-js-pure/internals/set-to-string-tag.js' - ) - var Iterators = __webpack_require__( - /*! ../internals/iterators */ './node_modules/core-js-pure/internals/iterators.js' - ) - - var returnThis = function () { - return this - } - - module.exports = function ( - IteratorConstructor, - NAME, - next, - ENUMERABLE_NEXT - ) { - var TO_STRING_TAG = NAME + ' Iterator' - IteratorConstructor.prototype = create(IteratorPrototype, { - next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) - }) - setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true) - Iterators[TO_STRING_TAG] = returnThis - return IteratorConstructor - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/iterator-define.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/iterator-define.js ***! - \****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var call = __webpack_require__( - /*! ../internals/function-call */ './node_modules/core-js-pure/internals/function-call.js' - ) - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ './node_modules/core-js-pure/internals/is-pure.js' - ) - var FunctionName = __webpack_require__( - /*! ../internals/function-name */ './node_modules/core-js-pure/internals/function-name.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var createIteratorConstructor = __webpack_require__( - /*! ../internals/iterator-create-constructor */ './node_modules/core-js-pure/internals/iterator-create-constructor.js' - ) - var getPrototypeOf = __webpack_require__( - /*! ../internals/object-get-prototype-of */ './node_modules/core-js-pure/internals/object-get-prototype-of.js' - ) - var setPrototypeOf = __webpack_require__( - /*! ../internals/object-set-prototype-of */ './node_modules/core-js-pure/internals/object-set-prototype-of.js' - ) - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ './node_modules/core-js-pure/internals/set-to-string-tag.js' - ) - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ './node_modules/core-js-pure/internals/create-non-enumerable-property.js' - ) - var defineBuiltIn = __webpack_require__( - /*! ../internals/define-built-in */ './node_modules/core-js-pure/internals/define-built-in.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - var Iterators = __webpack_require__( - /*! ../internals/iterators */ './node_modules/core-js-pure/internals/iterators.js' - ) - var IteratorsCore = __webpack_require__( - /*! ../internals/iterators-core */ './node_modules/core-js-pure/internals/iterators-core.js' - ) - - var PROPER_FUNCTION_NAME = FunctionName.PROPER - var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE - var IteratorPrototype = IteratorsCore.IteratorPrototype - var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS - var ITERATOR = wellKnownSymbol('iterator') - var KEYS = 'keys' - var VALUES = 'values' - var ENTRIES = 'entries' - - var returnThis = function () { - return this - } - - module.exports = function ( - Iterable, - NAME, - IteratorConstructor, - next, - DEFAULT, - IS_SET, - FORCED - ) { - createIteratorConstructor(IteratorConstructor, NAME, next) - - var getIterationMethod = function (KIND) { - if (KIND === DEFAULT && defaultIterator) return defaultIterator - if ( - !BUGGY_SAFARI_ITERATORS && - KIND && - KIND in IterablePrototype - ) - return IterablePrototype[KIND] - - switch (KIND) { - case KEYS: - return function keys() { - return new IteratorConstructor(this, KIND) - } - case VALUES: - return function values() { - return new IteratorConstructor(this, KIND) - } - case ENTRIES: - return function entries() { - return new IteratorConstructor(this, KIND) - } - } - - return function () { - return new IteratorConstructor(this) - } - } - - var TO_STRING_TAG = NAME + ' Iterator' - var INCORRECT_VALUES_NAME = false - var IterablePrototype = Iterable.prototype - var nativeIterator = - IterablePrototype[ITERATOR] || - IterablePrototype['@@iterator'] || - (DEFAULT && IterablePrototype[DEFAULT]) - var defaultIterator = - (!BUGGY_SAFARI_ITERATORS && nativeIterator) || - getIterationMethod(DEFAULT) - var anyNativeIterator = - NAME === 'Array' - ? IterablePrototype.entries || nativeIterator - : nativeIterator - var CurrentIteratorPrototype, methods, KEY - - // fix native - if (anyNativeIterator) { - CurrentIteratorPrototype = getPrototypeOf( - anyNativeIterator.call(new Iterable()) - ) - if ( - CurrentIteratorPrototype !== Object.prototype && - CurrentIteratorPrototype.next - ) { - if ( - !IS_PURE && - getPrototypeOf(CurrentIteratorPrototype) !== - IteratorPrototype - ) { - if (setPrototypeOf) { - setPrototypeOf( - CurrentIteratorPrototype, - IteratorPrototype - ) - } else if ( - !isCallable(CurrentIteratorPrototype[ITERATOR]) - ) { - defineBuiltIn( - CurrentIteratorPrototype, - ITERATOR, - returnThis - ) - } - } - // Set @@toStringTag to native iterators - setToStringTag( - CurrentIteratorPrototype, - TO_STRING_TAG, - true, - true - ) - if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis - } - } - - // fix Array.prototype.{ values, @@iterator }.name in V8 / FF - if ( - PROPER_FUNCTION_NAME && - DEFAULT === VALUES && - nativeIterator && - nativeIterator.name !== VALUES - ) { - if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { - createNonEnumerableProperty(IterablePrototype, 'name', VALUES) - } else { - INCORRECT_VALUES_NAME = true - defaultIterator = function values() { - return call(nativeIterator, this) - } - } - } - - // export additional methods - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) - } - if (FORCED) - for (KEY in methods) { - if ( - BUGGY_SAFARI_ITERATORS || - INCORRECT_VALUES_NAME || - !(KEY in IterablePrototype) - ) { - defineBuiltIn(IterablePrototype, KEY, methods[KEY]) - } - } - else - $( - { - target: NAME, - proto: true, - forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME - }, - methods - ) - } - - // define iterator - if ( - (!IS_PURE || FORCED) && - IterablePrototype[ITERATOR] !== defaultIterator - ) { - defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { - name: DEFAULT - }) - } - Iterators[NAME] = defaultIterator - - return methods - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/iterators-core.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/iterators-core.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - var create = __webpack_require__( - /*! ../internals/object-create */ './node_modules/core-js-pure/internals/object-create.js' - ) - var getPrototypeOf = __webpack_require__( - /*! ../internals/object-get-prototype-of */ './node_modules/core-js-pure/internals/object-get-prototype-of.js' - ) - var defineBuiltIn = __webpack_require__( - /*! ../internals/define-built-in */ './node_modules/core-js-pure/internals/define-built-in.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ './node_modules/core-js-pure/internals/is-pure.js' - ) - - var ITERATOR = wellKnownSymbol('iterator') - var BUGGY_SAFARI_ITERATORS = false - - // `%IteratorPrototype%` object - // https://tc39.es/ecma262/#sec-%iteratorprototype%-object - var IteratorPrototype, - PrototypeOfArrayIteratorPrototype, - arrayIterator - - /* eslint-disable es/no-array-prototype-keys -- safe */ - if ([].keys) { - arrayIterator = [].keys() - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true - else { - PrototypeOfArrayIteratorPrototype = getPrototypeOf( - getPrototypeOf(arrayIterator) - ) - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) - IteratorPrototype = PrototypeOfArrayIteratorPrototype - } - } - - var NEW_ITERATOR_PROTOTYPE = - !isObject(IteratorPrototype) || - fails(function () { - var test = {} - // FF44- legacy iterators case - return IteratorPrototype[ITERATOR].call(test) !== test - }) - - if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {} - else if (IS_PURE) IteratorPrototype = create(IteratorPrototype) - - // `%IteratorPrototype%[@@iterator]()` method - // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator - if (!isCallable(IteratorPrototype[ITERATOR])) { - defineBuiltIn(IteratorPrototype, ITERATOR, function () { - return this - }) - } - - module.exports = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/iterators.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/iterators.js ***! - \**********************************************************/ - /***/ module => { - 'use strict' - - module.exports = {} - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/length-of-array-like.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/length-of-array-like.js ***! - \*********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var toLength = __webpack_require__( - /*! ../internals/to-length */ './node_modules/core-js-pure/internals/to-length.js' - ) - - // `LengthOfArrayLike` abstract operation - // https://tc39.es/ecma262/#sec-lengthofarraylike - module.exports = function (obj) { - return toLength(obj.length) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/math-trunc.js': - /*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/math-trunc.js ***! - \***********************************************************/ - /***/ module => { - 'use strict' - - var ceil = Math.ceil - var floor = Math.floor - - // `Math.trunc` method - // https://tc39.es/ecma262/#sec-math.trunc - // eslint-disable-next-line es/no-math-trunc -- safe - module.exports = - Math.trunc || - function trunc(x) { - var n = +x - return (n > 0 ? floor : ceil)(n) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-assign.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-assign.js ***! - \**************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var call = __webpack_require__( - /*! ../internals/function-call */ './node_modules/core-js-pure/internals/function-call.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var objectKeys = __webpack_require__( - /*! ../internals/object-keys */ './node_modules/core-js-pure/internals/object-keys.js' - ) - var getOwnPropertySymbolsModule = __webpack_require__( - /*! ../internals/object-get-own-property-symbols */ './node_modules/core-js-pure/internals/object-get-own-property-symbols.js' - ) - var propertyIsEnumerableModule = __webpack_require__( - /*! ../internals/object-property-is-enumerable */ './node_modules/core-js-pure/internals/object-property-is-enumerable.js' - ) - var toObject = __webpack_require__( - /*! ../internals/to-object */ './node_modules/core-js-pure/internals/to-object.js' - ) - var IndexedObject = __webpack_require__( - /*! ../internals/indexed-object */ './node_modules/core-js-pure/internals/indexed-object.js' - ) - - // eslint-disable-next-line es/no-object-assign -- safe - var $assign = Object.assign - // eslint-disable-next-line es/no-object-defineproperty -- required for testing - var defineProperty = Object.defineProperty - var concat = uncurryThis([].concat) - - // `Object.assign` method - // https://tc39.es/ecma262/#sec-object.assign - module.exports = - !$assign || - fails(function () { - // should have correct order of operations (Edge bug) - if ( - DESCRIPTORS && - $assign( - { b: 1 }, - $assign( - defineProperty({}, 'a', { - enumerable: true, - get: function () { - defineProperty(this, 'b', { - value: 3, - enumerable: false - }) - } - }), - { b: 2 } - ) - ).b !== 1 - ) - return true - // should work with symbols and should have deterministic property order (V8 bug) - var A = {} - var B = {} - // eslint-disable-next-line es/no-symbol -- safe - var symbol = Symbol('assign detection') - var alphabet = 'abcdefghijklmnopqrst' - A[symbol] = 7 - alphabet.split('').forEach(function (chr) { - B[chr] = chr - }) - return ( - $assign({}, A)[symbol] !== 7 || - objectKeys($assign({}, B)).join('') !== alphabet - ) - }) - ? function assign(target, source) { - // eslint-disable-line no-unused-vars -- required for `.length` - var T = toObject(target) - var argumentsLength = arguments.length - var index = 1 - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f - var propertyIsEnumerable = propertyIsEnumerableModule.f - while (argumentsLength > index) { - var S = IndexedObject(arguments[index++]) - var keys = getOwnPropertySymbols - ? concat(objectKeys(S), getOwnPropertySymbols(S)) - : objectKeys(S) - var length = keys.length - var j = 0 - var key - while (length > j) { - key = keys[j++] - if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) - T[key] = S[key] - } - } - return T - } - : $assign - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-create.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-create.js ***! - \**************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - /* global ActiveXObject -- old IE, WSH */ - var anObject = __webpack_require__( - /*! ../internals/an-object */ './node_modules/core-js-pure/internals/an-object.js' - ) - var definePropertiesModule = __webpack_require__( - /*! ../internals/object-define-properties */ './node_modules/core-js-pure/internals/object-define-properties.js' - ) - var enumBugKeys = __webpack_require__( - /*! ../internals/enum-bug-keys */ './node_modules/core-js-pure/internals/enum-bug-keys.js' - ) - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ './node_modules/core-js-pure/internals/hidden-keys.js' - ) - var html = __webpack_require__( - /*! ../internals/html */ './node_modules/core-js-pure/internals/html.js' - ) - var documentCreateElement = __webpack_require__( - /*! ../internals/document-create-element */ './node_modules/core-js-pure/internals/document-create-element.js' - ) - var sharedKey = __webpack_require__( - /*! ../internals/shared-key */ './node_modules/core-js-pure/internals/shared-key.js' - ) - - var GT = '>' - var LT = '<' - var PROTOTYPE = 'prototype' - var SCRIPT = 'script' - var IE_PROTO = sharedKey('IE_PROTO') - - var EmptyConstructor = function () { - /* empty */ - } - - var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT - } - - // Create object with fake `null` prototype: use ActiveX Object with cleared prototype - var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')) - activeXDocument.close() - var temp = activeXDocument.parentWindow.Object - // eslint-disable-next-line no-useless-assignment -- avoid memory leak - activeXDocument = null - return temp - } - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe') - var JS = 'java' + SCRIPT + ':' - var iframeDocument - iframe.style.display = 'none' - html.appendChild(iframe) - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS) - iframeDocument = iframe.contentWindow.document - iframeDocument.open() - iframeDocument.write(scriptTag('document.F=Object')) - iframeDocument.close() - return iframeDocument.F - } - - // Check for document.domain and active x support - // No need to use active x approach when document.domain is not set - // see https://github.com/es-shims/es5-shim/issues/150 - // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 - // avoid IE GC bug - var activeXDocument - var NullProtoObject = function () { - try { - activeXDocument = new ActiveXObject('htmlfile') - } catch (error) { - /* ignore */ - } - NullProtoObject = - typeof document != 'undefined' - ? document.domain && activeXDocument - ? NullProtoObjectViaActiveX(activeXDocument) // old IE - : NullProtoObjectViaIFrame() - : NullProtoObjectViaActiveX(activeXDocument) // WSH - var length = enumBugKeys.length - while (length--) - delete NullProtoObject[PROTOTYPE][enumBugKeys[length]] - return NullProtoObject() - } - - hiddenKeys[IE_PROTO] = true - - // `Object.create` method - // https://tc39.es/ecma262/#sec-object.create - // eslint-disable-next-line es/no-object-create -- safe - module.exports = - Object.create || - function create(O, Properties) { - var result - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O) - result = new EmptyConstructor() - EmptyConstructor[PROTOTYPE] = null - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O - } else result = NullProtoObject() - return Properties === undefined - ? result - : definePropertiesModule.f(result, Properties) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-define-properties.js': - /*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-define-properties.js ***! - \*************************************************************************/ - /***/ (__unused_webpack_module, exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__( - /*! ../internals/v8-prototype-define-bug */ './node_modules/core-js-pure/internals/v8-prototype-define-bug.js' - ) - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ) - var anObject = __webpack_require__( - /*! ../internals/an-object */ './node_modules/core-js-pure/internals/an-object.js' - ) - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var objectKeys = __webpack_require__( - /*! ../internals/object-keys */ './node_modules/core-js-pure/internals/object-keys.js' - ) - - // `Object.defineProperties` method - // https://tc39.es/ecma262/#sec-object.defineproperties - // eslint-disable-next-line es/no-object-defineproperties -- safe - exports.f = - DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG - ? Object.defineProperties - : function defineProperties(O, Properties) { - anObject(O) - var props = toIndexedObject(Properties) - var keys = objectKeys(Properties) - var length = keys.length - var index = 0 - var key - while (length > index) - definePropertyModule.f( - O, - (key = keys[index++]), - props[key] - ) - return O - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-define-property.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-define-property.js ***! - \***********************************************************************/ - /***/ (__unused_webpack_module, exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var IE8_DOM_DEFINE = __webpack_require__( - /*! ../internals/ie8-dom-define */ './node_modules/core-js-pure/internals/ie8-dom-define.js' - ) - var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__( - /*! ../internals/v8-prototype-define-bug */ './node_modules/core-js-pure/internals/v8-prototype-define-bug.js' - ) - var anObject = __webpack_require__( - /*! ../internals/an-object */ './node_modules/core-js-pure/internals/an-object.js' - ) - var toPropertyKey = __webpack_require__( - /*! ../internals/to-property-key */ './node_modules/core-js-pure/internals/to-property-key.js' - ) - - var $TypeError = TypeError - // eslint-disable-next-line es/no-object-defineproperty -- safe - var $defineProperty = Object.defineProperty - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor - var ENUMERABLE = 'enumerable' - var CONFIGURABLE = 'configurable' - var WRITABLE = 'writable' - - // `Object.defineProperty` method - // https://tc39.es/ecma262/#sec-object.defineproperty - exports.f = DESCRIPTORS - ? V8_PROTOTYPE_DEFINE_BUG - ? function defineProperty(O, P, Attributes) { - anObject(O) - P = toPropertyKey(P) - anObject(Attributes) - if ( - typeof O === 'function' && - P === 'prototype' && - 'value' in Attributes && - WRITABLE in Attributes && - !Attributes[WRITABLE] - ) { - var current = $getOwnPropertyDescriptor(O, P) - if (current && current[WRITABLE]) { - O[P] = Attributes.value - Attributes = { - configurable: - CONFIGURABLE in Attributes - ? Attributes[CONFIGURABLE] - : current[CONFIGURABLE], - enumerable: - ENUMERABLE in Attributes - ? Attributes[ENUMERABLE] - : current[ENUMERABLE], - writable: false - } - } - } - return $defineProperty(O, P, Attributes) - } - : $defineProperty - : function defineProperty(O, P, Attributes) { - anObject(O) - P = toPropertyKey(P) - anObject(Attributes) - if (IE8_DOM_DEFINE) - try { - return $defineProperty(O, P, Attributes) - } catch (error) { - /* empty */ - } - if ('get' in Attributes || 'set' in Attributes) - throw new $TypeError('Accessors not supported') - if ('value' in Attributes) O[P] = Attributes.value - return O - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-get-own-property-descriptor.js': - /*!***********************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js ***! - \***********************************************************************************/ - /***/ (__unused_webpack_module, exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var call = __webpack_require__( - /*! ../internals/function-call */ './node_modules/core-js-pure/internals/function-call.js' - ) - var propertyIsEnumerableModule = __webpack_require__( - /*! ../internals/object-property-is-enumerable */ './node_modules/core-js-pure/internals/object-property-is-enumerable.js' - ) - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ './node_modules/core-js-pure/internals/create-property-descriptor.js' - ) - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var toPropertyKey = __webpack_require__( - /*! ../internals/to-property-key */ './node_modules/core-js-pure/internals/to-property-key.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var IE8_DOM_DEFINE = __webpack_require__( - /*! ../internals/ie8-dom-define */ './node_modules/core-js-pure/internals/ie8-dom-define.js' - ) - - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor - - // `Object.getOwnPropertyDescriptor` method - // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor - exports.f = DESCRIPTORS - ? $getOwnPropertyDescriptor - : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O) - P = toPropertyKey(P) - if (IE8_DOM_DEFINE) - try { - return $getOwnPropertyDescriptor(O, P) - } catch (error) { - /* empty */ - } - if (hasOwn(O, P)) - return createPropertyDescriptor( - !call(propertyIsEnumerableModule.f, O, P), - O[P] - ) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-get-own-property-names-external.js': - /*!***************************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-own-property-names-external.js ***! - \***************************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - /* eslint-disable es/no-object-getownpropertynames -- safe */ - var classof = __webpack_require__( - /*! ../internals/classof-raw */ './node_modules/core-js-pure/internals/classof-raw.js' - ) - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var $getOwnPropertyNames = __webpack_require__( - /*! ../internals/object-get-own-property-names */ './node_modules/core-js-pure/internals/object-get-own-property-names.js' - ).f - var arraySlice = __webpack_require__( - /*! ../internals/array-slice */ './node_modules/core-js-pure/internals/array-slice.js' - ) - - var windowNames = - typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) - : [] - - var getWindowNames = function (it) { - try { - return $getOwnPropertyNames(it) - } catch (error) { - return arraySlice(windowNames) - } - } - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - module.exports.f = function getOwnPropertyNames(it) { - return windowNames && classof(it) === 'Window' - ? getWindowNames(it) - : $getOwnPropertyNames(toIndexedObject(it)) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-get-own-property-names.js': - /*!******************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-own-property-names.js ***! - \******************************************************************************/ - /***/ (__unused_webpack_module, exports, __webpack_require__) => { - 'use strict' - - var internalObjectKeys = __webpack_require__( - /*! ../internals/object-keys-internal */ './node_modules/core-js-pure/internals/object-keys-internal.js' - ) - var enumBugKeys = __webpack_require__( - /*! ../internals/enum-bug-keys */ './node_modules/core-js-pure/internals/enum-bug-keys.js' - ) - - var hiddenKeys = enumBugKeys.concat('length', 'prototype') - - // `Object.getOwnPropertyNames` method - // https://tc39.es/ecma262/#sec-object.getownpropertynames - // eslint-disable-next-line es/no-object-getownpropertynames -- safe - exports.f = - Object.getOwnPropertyNames || - function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-get-own-property-symbols.js': - /*!********************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-own-property-symbols.js ***! - \********************************************************************************/ - /***/ (__unused_webpack_module, exports) => { - 'use strict' - - // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe - exports.f = Object.getOwnPropertySymbols - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-get-prototype-of.js': - /*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-prototype-of.js ***! - \************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var toObject = __webpack_require__( - /*! ../internals/to-object */ './node_modules/core-js-pure/internals/to-object.js' - ) - var sharedKey = __webpack_require__( - /*! ../internals/shared-key */ './node_modules/core-js-pure/internals/shared-key.js' - ) - var CORRECT_PROTOTYPE_GETTER = __webpack_require__( - /*! ../internals/correct-prototype-getter */ './node_modules/core-js-pure/internals/correct-prototype-getter.js' - ) - - var IE_PROTO = sharedKey('IE_PROTO') - var $Object = Object - var ObjectPrototype = $Object.prototype - - // `Object.getPrototypeOf` method - // https://tc39.es/ecma262/#sec-object.getprototypeof - // eslint-disable-next-line es/no-object-getprototypeof -- safe - module.exports = CORRECT_PROTOTYPE_GETTER - ? $Object.getPrototypeOf - : function (O) { - var object = toObject(O) - if (hasOwn(object, IE_PROTO)) return object[IE_PROTO] - var constructor = object.constructor - if ( - isCallable(constructor) && - object instanceof constructor - ) { - return constructor.prototype - } - return object instanceof $Object ? ObjectPrototype : null - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-is-prototype-of.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-is-prototype-of.js ***! - \***********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - - module.exports = uncurryThis({}.isPrototypeOf) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-keys-internal.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-keys-internal.js ***! - \*********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var indexOf = __webpack_require__( - /*! ../internals/array-includes */ './node_modules/core-js-pure/internals/array-includes.js' - ).indexOf - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ './node_modules/core-js-pure/internals/hidden-keys.js' - ) - - var push = uncurryThis([].push) - - module.exports = function (object, names) { - var O = toIndexedObject(object) - var i = 0 - var result = [] - var key - for (key in O) - !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key) - // Don't enum bug & hidden keys - while (names.length > i) - if (hasOwn(O, (key = names[i++]))) { - ~indexOf(result, key) || push(result, key) - } - return result - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-keys.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-keys.js ***! - \************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var internalObjectKeys = __webpack_require__( - /*! ../internals/object-keys-internal */ './node_modules/core-js-pure/internals/object-keys-internal.js' - ) - var enumBugKeys = __webpack_require__( - /*! ../internals/enum-bug-keys */ './node_modules/core-js-pure/internals/enum-bug-keys.js' - ) - - // `Object.keys` method - // https://tc39.es/ecma262/#sec-object.keys - // eslint-disable-next-line es/no-object-keys -- safe - module.exports = - Object.keys || - function keys(O) { - return internalObjectKeys(O, enumBugKeys) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-property-is-enumerable.js': - /*!******************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-property-is-enumerable.js ***! - \******************************************************************************/ - /***/ (__unused_webpack_module, exports) => { - 'use strict' - - var $propertyIsEnumerable = {}.propertyIsEnumerable - // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor - - // Nashorn ~ JDK8 bug - var NASHORN_BUG = - getOwnPropertyDescriptor && - !$propertyIsEnumerable.call({ 1: 2 }, 1) - - // `Object.prototype.propertyIsEnumerable` method implementation - // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable - exports.f = NASHORN_BUG - ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V) - return !!descriptor && descriptor.enumerable - } - : $propertyIsEnumerable - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-set-prototype-of.js': - /*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-set-prototype-of.js ***! - \************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - /* eslint-disable no-proto -- safe */ - var uncurryThisAccessor = __webpack_require__( - /*! ../internals/function-uncurry-this-accessor */ './node_modules/core-js-pure/internals/function-uncurry-this-accessor.js' - ) - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ './node_modules/core-js-pure/internals/require-object-coercible.js' - ) - var aPossiblePrototype = __webpack_require__( - /*! ../internals/a-possible-prototype */ './node_modules/core-js-pure/internals/a-possible-prototype.js' - ) - - // `Object.setPrototypeOf` method - // https://tc39.es/ecma262/#sec-object.setprototypeof - // Works with __proto__ only. Old v8 can't work with null proto objects. - // eslint-disable-next-line es/no-object-setprototypeof -- safe - module.exports = - Object.setPrototypeOf || - ('__proto__' in {} - ? (function () { - var CORRECT_SETTER = false - var test = {} - var setter - try { - setter = uncurryThisAccessor( - Object.prototype, - '__proto__', - 'set' - ) - setter(test, []) - CORRECT_SETTER = test instanceof Array - } catch (error) { - /* empty */ - } - return function setPrototypeOf(O, proto) { - requireObjectCoercible(O) - aPossiblePrototype(proto) - if (!isObject(O)) return O - if (CORRECT_SETTER) setter(O, proto) - else O.__proto__ = proto - return O - } - })() - : undefined) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/object-to-string.js': - /*!*****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-to-string.js ***! - \*****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var TO_STRING_TAG_SUPPORT = __webpack_require__( - /*! ../internals/to-string-tag-support */ './node_modules/core-js-pure/internals/to-string-tag-support.js' - ) - var classof = __webpack_require__( - /*! ../internals/classof */ './node_modules/core-js-pure/internals/classof.js' - ) - - // `Object.prototype.toString` method implementation - // https://tc39.es/ecma262/#sec-object.prototype.tostring - module.exports = TO_STRING_TAG_SUPPORT - ? {}.toString - : function toString() { - return '[object ' + classof(this) + ']' - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/ordinary-to-primitive.js': - /*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/ordinary-to-primitive.js ***! - \**********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var call = __webpack_require__( - /*! ../internals/function-call */ './node_modules/core-js-pure/internals/function-call.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - - var $TypeError = TypeError - - // `OrdinaryToPrimitive` abstract operation - // https://tc39.es/ecma262/#sec-ordinarytoprimitive - module.exports = function (input, pref) { - var fn, val - if ( - pref === 'string' && - isCallable((fn = input.toString)) && - !isObject((val = call(fn, input))) - ) - return val - if ( - isCallable((fn = input.valueOf)) && - !isObject((val = call(fn, input))) - ) - return val - if ( - pref !== 'string' && - isCallable((fn = input.toString)) && - !isObject((val = call(fn, input))) - ) - return val - throw new $TypeError("Can't convert object to primitive value") - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/own-keys.js': - /*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/own-keys.js ***! - \*********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var getOwnPropertyNamesModule = __webpack_require__( - /*! ../internals/object-get-own-property-names */ './node_modules/core-js-pure/internals/object-get-own-property-names.js' - ) - var getOwnPropertySymbolsModule = __webpack_require__( - /*! ../internals/object-get-own-property-symbols */ './node_modules/core-js-pure/internals/object-get-own-property-symbols.js' - ) - var anObject = __webpack_require__( - /*! ../internals/an-object */ './node_modules/core-js-pure/internals/an-object.js' - ) - - var concat = uncurryThis([].concat) - - // all object keys, includes non-enumerable and symbols - module.exports = - getBuiltIn('Reflect', 'ownKeys') || - function ownKeys(it) { - var keys = getOwnPropertyNamesModule.f(anObject(it)) - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f - return getOwnPropertySymbols - ? concat(keys, getOwnPropertySymbols(it)) - : keys - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/path.js': - /*!*****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/path.js ***! - \*****************************************************/ - /***/ module => { - 'use strict' - - module.exports = {} - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/require-object-coercible.js': - /*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/require-object-coercible.js ***! - \*************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var isNullOrUndefined = __webpack_require__( - /*! ../internals/is-null-or-undefined */ './node_modules/core-js-pure/internals/is-null-or-undefined.js' - ) - - var $TypeError = TypeError - - // `RequireObjectCoercible` abstract operation - // https://tc39.es/ecma262/#sec-requireobjectcoercible - module.exports = function (it) { - if (isNullOrUndefined(it)) - throw new $TypeError("Can't call method on " + it) - return it - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/set-to-string-tag.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/set-to-string-tag.js ***! - \******************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var TO_STRING_TAG_SUPPORT = __webpack_require__( - /*! ../internals/to-string-tag-support */ './node_modules/core-js-pure/internals/to-string-tag-support.js' - ) - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ).f - var createNonEnumerableProperty = __webpack_require__( - /*! ../internals/create-non-enumerable-property */ './node_modules/core-js-pure/internals/create-non-enumerable-property.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var toString = __webpack_require__( - /*! ../internals/object-to-string */ './node_modules/core-js-pure/internals/object-to-string.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - - var TO_STRING_TAG = wellKnownSymbol('toStringTag') - - module.exports = function (it, TAG, STATIC, SET_METHOD) { - var target = STATIC ? it : it && it.prototype - if (target) { - if (!hasOwn(target, TO_STRING_TAG)) { - defineProperty(target, TO_STRING_TAG, { - configurable: true, - value: TAG - }) - } - if (SET_METHOD && !TO_STRING_TAG_SUPPORT) { - createNonEnumerableProperty(target, 'toString', toString) - } - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/shared-key.js': - /*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared-key.js ***! - \***********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var shared = __webpack_require__( - /*! ../internals/shared */ './node_modules/core-js-pure/internals/shared.js' - ) - var uid = __webpack_require__( - /*! ../internals/uid */ './node_modules/core-js-pure/internals/uid.js' - ) - - var keys = shared('keys') - - module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/shared-store.js': - /*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared-store.js ***! - \*************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ './node_modules/core-js-pure/internals/is-pure.js' - ) - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var defineGlobalProperty = __webpack_require__( - /*! ../internals/define-global-property */ './node_modules/core-js-pure/internals/define-global-property.js' - ) - - var SHARED = '__core-js_shared__' - var store = (module.exports = - globalThis[SHARED] || defineGlobalProperty(SHARED, {})) - - ;(store.versions || (store.versions = [])).push({ - version: '3.38.1', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', - license: - 'https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE', - source: 'https://github.com/zloirock/core-js' - }) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/shared.js': - /*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared.js ***! - \*******************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var store = __webpack_require__( - /*! ../internals/shared-store */ './node_modules/core-js-pure/internals/shared-store.js' - ) - - module.exports = function (key, value) { - return store[key] || (store[key] = value || {}) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/string-multibyte.js': - /*!*****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/string-multibyte.js ***! - \*****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var toIntegerOrInfinity = __webpack_require__( - /*! ../internals/to-integer-or-infinity */ './node_modules/core-js-pure/internals/to-integer-or-infinity.js' - ) - var toString = __webpack_require__( - /*! ../internals/to-string */ './node_modules/core-js-pure/internals/to-string.js' - ) - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ './node_modules/core-js-pure/internals/require-object-coercible.js' - ) - - var charAt = uncurryThis(''.charAt) - var charCodeAt = uncurryThis(''.charCodeAt) - var stringSlice = uncurryThis(''.slice) - - var createMethod = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = toString(requireObjectCoercible($this)) - var position = toIntegerOrInfinity(pos) - var size = S.length - var first, second - if (position < 0 || position >= size) - return CONVERT_TO_STRING ? '' : undefined - first = charCodeAt(S, position) - return first < 0xd800 || - first > 0xdbff || - position + 1 === size || - (second = charCodeAt(S, position + 1)) < 0xdc00 || - second > 0xdfff - ? CONVERT_TO_STRING - ? charAt(S, position) - : first - : CONVERT_TO_STRING - ? stringSlice(S, position, position + 2) - : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000 - } - } - - module.exports = { - // `String.prototype.codePointAt` method - // https://tc39.es/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod(true) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/symbol-constructor-detection.js': - /*!*****************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/symbol-constructor-detection.js ***! - \*****************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - /* eslint-disable es/no-symbol -- required for testing */ - var V8_VERSION = __webpack_require__( - /*! ../internals/environment-v8-version */ './node_modules/core-js-pure/internals/environment-v8-version.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - - var $String = globalThis.String - - // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing - module.exports = - !!Object.getOwnPropertySymbols && - !fails(function () { - var symbol = Symbol('symbol detection') - // Chrome 38 Symbol has incorrect toString conversion - // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances - // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, - // of course, fail. - return ( - !$String(symbol) || - !(Object(symbol) instanceof Symbol) || - // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances - (!Symbol.sham && V8_VERSION && V8_VERSION < 41) - ) - }) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/symbol-define-to-primitive.js': - /*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/symbol-define-to-primitive.js ***! - \***************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var call = __webpack_require__( - /*! ../internals/function-call */ './node_modules/core-js-pure/internals/function-call.js' - ) - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - var defineBuiltIn = __webpack_require__( - /*! ../internals/define-built-in */ './node_modules/core-js-pure/internals/define-built-in.js' - ) - - module.exports = function () { - var Symbol = getBuiltIn('Symbol') - var SymbolPrototype = Symbol && Symbol.prototype - var valueOf = SymbolPrototype && SymbolPrototype.valueOf - var TO_PRIMITIVE = wellKnownSymbol('toPrimitive') - - if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { - // `Symbol.prototype[@@toPrimitive]` method - // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive - // eslint-disable-next-line no-unused-vars -- required for .length - defineBuiltIn( - SymbolPrototype, - TO_PRIMITIVE, - function (hint) { - return call(valueOf, this) - }, - { arity: 1 } - ) - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/symbol-is-registered.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/symbol-is-registered.js ***! - \*********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - - var Symbol = getBuiltIn('Symbol') - var keyFor = Symbol.keyFor - var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf) - - // `Symbol.isRegisteredSymbol` method - // https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol - module.exports = - Symbol.isRegisteredSymbol || - function isRegisteredSymbol(value) { - try { - return keyFor(thisSymbolValue(value)) !== undefined - } catch (error) { - return false - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/symbol-is-well-known.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/symbol-is-well-known.js ***! - \*********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var shared = __webpack_require__( - /*! ../internals/shared */ './node_modules/core-js-pure/internals/shared.js' - ) - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var isSymbol = __webpack_require__( - /*! ../internals/is-symbol */ './node_modules/core-js-pure/internals/is-symbol.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - - var Symbol = getBuiltIn('Symbol') - var $isWellKnownSymbol = Symbol.isWellKnownSymbol - var getOwnPropertyNames = getBuiltIn( - 'Object', - 'getOwnPropertyNames' - ) - var thisSymbolValue = uncurryThis(Symbol.prototype.valueOf) - var WellKnownSymbolsStore = shared('wks') - - for ( - var i = 0, - symbolKeys = getOwnPropertyNames(Symbol), - symbolKeysLength = symbolKeys.length; - i < symbolKeysLength; - i++ - ) { - // some old engines throws on access to some keys like `arguments` or `caller` - try { - var symbolKey = symbolKeys[i] - if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey) - } catch (error) { - /* empty */ - } - } - - // `Symbol.isWellKnownSymbol` method - // https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol - // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected - module.exports = function isWellKnownSymbol(value) { - if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true - try { - var symbol = thisSymbolValue(value) - for ( - var j = 0, - keys = getOwnPropertyNames(WellKnownSymbolsStore), - keysLength = keys.length; - j < keysLength; - j++ - ) { - // eslint-disable-next-line eqeqeq -- polyfilled symbols case - if (WellKnownSymbolsStore[keys[j]] == symbol) return true - } - } catch (error) { - /* empty */ - } - return false - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/symbol-registry-detection.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/symbol-registry-detection.js ***! - \**************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/symbol-constructor-detection */ './node_modules/core-js-pure/internals/symbol-constructor-detection.js' - ) - - /* eslint-disable es/no-symbol -- safe */ - module.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-absolute-index.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-absolute-index.js ***! - \******************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var toIntegerOrInfinity = __webpack_require__( - /*! ../internals/to-integer-or-infinity */ './node_modules/core-js-pure/internals/to-integer-or-infinity.js' - ) - - var max = Math.max - var min = Math.min - - // Helper for a popular repeating case of the spec: - // Let integer be ? ToInteger(index). - // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). - module.exports = function (index, length) { - var integer = toIntegerOrInfinity(index) - return integer < 0 - ? max(integer + length, 0) - : min(integer, length) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-indexed-object.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-indexed-object.js ***! - \******************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - // toObject with fallback for non-array-like ES3 strings - var IndexedObject = __webpack_require__( - /*! ../internals/indexed-object */ './node_modules/core-js-pure/internals/indexed-object.js' - ) - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ './node_modules/core-js-pure/internals/require-object-coercible.js' - ) - - module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-integer-or-infinity.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-integer-or-infinity.js ***! - \***********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var trunc = __webpack_require__( - /*! ../internals/math-trunc */ './node_modules/core-js-pure/internals/math-trunc.js' - ) - - // `ToIntegerOrInfinity` abstract operation - // https://tc39.es/ecma262/#sec-tointegerorinfinity - module.exports = function (argument) { - var number = +argument - // eslint-disable-next-line no-self-compare -- NaN check - return number !== number || number === 0 ? 0 : trunc(number) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-length.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-length.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var toIntegerOrInfinity = __webpack_require__( - /*! ../internals/to-integer-or-infinity */ './node_modules/core-js-pure/internals/to-integer-or-infinity.js' - ) - - var min = Math.min - - // `ToLength` abstract operation - // https://tc39.es/ecma262/#sec-tolength - module.exports = function (argument) { - var len = toIntegerOrInfinity(argument) - return len > 0 ? min(len, 0x1fffffffffffff) : 0 // 2 ** 53 - 1 == 9007199254740991 - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-object.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-object.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var requireObjectCoercible = __webpack_require__( - /*! ../internals/require-object-coercible */ './node_modules/core-js-pure/internals/require-object-coercible.js' - ) - - var $Object = Object - - // `ToObject` abstract operation - // https://tc39.es/ecma262/#sec-toobject - module.exports = function (argument) { - return $Object(requireObjectCoercible(argument)) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-primitive.js': - /*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-primitive.js ***! - \*************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var call = __webpack_require__( - /*! ../internals/function-call */ './node_modules/core-js-pure/internals/function-call.js' - ) - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - var isSymbol = __webpack_require__( - /*! ../internals/is-symbol */ './node_modules/core-js-pure/internals/is-symbol.js' - ) - var getMethod = __webpack_require__( - /*! ../internals/get-method */ './node_modules/core-js-pure/internals/get-method.js' - ) - var ordinaryToPrimitive = __webpack_require__( - /*! ../internals/ordinary-to-primitive */ './node_modules/core-js-pure/internals/ordinary-to-primitive.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - - var $TypeError = TypeError - var TO_PRIMITIVE = wellKnownSymbol('toPrimitive') - - // `ToPrimitive` abstract operation - // https://tc39.es/ecma262/#sec-toprimitive - module.exports = function (input, pref) { - if (!isObject(input) || isSymbol(input)) return input - var exoticToPrim = getMethod(input, TO_PRIMITIVE) - var result - if (exoticToPrim) { - if (pref === undefined) pref = 'default' - result = call(exoticToPrim, input, pref) - if (!isObject(result) || isSymbol(result)) return result - throw new $TypeError("Can't convert object to primitive value") - } - if (pref === undefined) pref = 'number' - return ordinaryToPrimitive(input, pref) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-property-key.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-property-key.js ***! - \****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var toPrimitive = __webpack_require__( - /*! ../internals/to-primitive */ './node_modules/core-js-pure/internals/to-primitive.js' - ) - var isSymbol = __webpack_require__( - /*! ../internals/is-symbol */ './node_modules/core-js-pure/internals/is-symbol.js' - ) - - // `ToPropertyKey` abstract operation - // https://tc39.es/ecma262/#sec-topropertykey - module.exports = function (argument) { - var key = toPrimitive(argument, 'string') - return isSymbol(key) ? key : key + '' - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-string-tag-support.js': - /*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-string-tag-support.js ***! - \**********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - - var TO_STRING_TAG = wellKnownSymbol('toStringTag') - var test = {} - - test[TO_STRING_TAG] = 'z' - - module.exports = String(test) === '[object z]' - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/to-string.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-string.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var classof = __webpack_require__( - /*! ../internals/classof */ './node_modules/core-js-pure/internals/classof.js' - ) - - var $String = String - - module.exports = function (argument) { - if (classof(argument) === 'Symbol') - throw new TypeError('Cannot convert a Symbol value to a string') - return $String(argument) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/try-to-string.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/try-to-string.js ***! - \**************************************************************/ - /***/ module => { - 'use strict' - - var $String = String - - module.exports = function (argument) { - try { - return $String(argument) - } catch (error) { - return 'Object' - } - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/uid.js': - /*!****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/uid.js ***! - \****************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - - var id = 0 - var postfix = Math.random() - var toString = uncurryThis((1.0).toString) - - module.exports = function (key) { - return ( - 'Symbol(' + - (key === undefined ? '' : key) + - ')_' + - toString(++id + postfix, 36) - ) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/use-symbol-as-uid.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/use-symbol-as-uid.js ***! - \******************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - /* eslint-disable es/no-symbol -- required for testing */ - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/symbol-constructor-detection */ './node_modules/core-js-pure/internals/symbol-constructor-detection.js' - ) - - module.exports = - NATIVE_SYMBOL && - !Symbol.sham && - typeof Symbol.iterator == 'symbol' - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/v8-prototype-define-bug.js': - /*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/v8-prototype-define-bug.js ***! - \************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - - // V8 ~ Chrome 36- - // https://bugs.chromium.org/p/v8/issues/detail?id=3334 - module.exports = - DESCRIPTORS && - fails(function () { - // eslint-disable-next-line es/no-object-defineproperty -- required for testing - return ( - Object.defineProperty( - function () { - /* empty */ - }, - 'prototype', - { - value: 42, - writable: false - } - ).prototype !== 42 - ) - }) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/weak-map-basic-detection.js': - /*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/weak-map-basic-detection.js ***! - \*************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - - var WeakMap = globalThis.WeakMap - - module.exports = - isCallable(WeakMap) && /native code/.test(String(WeakMap)) - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/well-known-symbol-define.js': - /*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/well-known-symbol-define.js ***! - \*************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var path = __webpack_require__( - /*! ../internals/path */ './node_modules/core-js-pure/internals/path.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var wrappedWellKnownSymbolModule = __webpack_require__( - /*! ../internals/well-known-symbol-wrapped */ './node_modules/core-js-pure/internals/well-known-symbol-wrapped.js' - ) - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ).f - - module.exports = function (NAME) { - var Symbol = path.Symbol || (path.Symbol = {}) - if (!hasOwn(Symbol, NAME)) - defineProperty(Symbol, NAME, { - value: wrappedWellKnownSymbolModule.f(NAME) - }) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/well-known-symbol-wrapped.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js ***! - \**************************************************************************/ - /***/ (__unused_webpack_module, exports, __webpack_require__) => { - 'use strict' - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - - exports.f = wellKnownSymbol - - /***/ - }, - - /***/ './node_modules/core-js-pure/internals/well-known-symbol.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/well-known-symbol.js ***! - \******************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var shared = __webpack_require__( - /*! ../internals/shared */ './node_modules/core-js-pure/internals/shared.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var uid = __webpack_require__( - /*! ../internals/uid */ './node_modules/core-js-pure/internals/uid.js' - ) - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/symbol-constructor-detection */ './node_modules/core-js-pure/internals/symbol-constructor-detection.js' - ) - var USE_SYMBOL_AS_UID = __webpack_require__( - /*! ../internals/use-symbol-as-uid */ './node_modules/core-js-pure/internals/use-symbol-as-uid.js' - ) - - var Symbol = globalThis.Symbol - var WellKnownSymbolsStore = shared('wks') - var createWellKnownSymbol = USE_SYMBOL_AS_UID - ? Symbol['for'] || Symbol - : (Symbol && Symbol.withoutSetter) || uid - - module.exports = function (name) { - if (!hasOwn(WellKnownSymbolsStore, name)) { - WellKnownSymbolsStore[name] = - NATIVE_SYMBOL && hasOwn(Symbol, name) - ? Symbol[name] - : createWellKnownSymbol('Symbol.' + name) - } - return WellKnownSymbolsStore[name] - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.array.concat.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.array.concat.js ***! - \**************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var isArray = __webpack_require__( - /*! ../internals/is-array */ './node_modules/core-js-pure/internals/is-array.js' - ) - var isObject = __webpack_require__( - /*! ../internals/is-object */ './node_modules/core-js-pure/internals/is-object.js' - ) - var toObject = __webpack_require__( - /*! ../internals/to-object */ './node_modules/core-js-pure/internals/to-object.js' - ) - var lengthOfArrayLike = __webpack_require__( - /*! ../internals/length-of-array-like */ './node_modules/core-js-pure/internals/length-of-array-like.js' - ) - var doesNotExceedSafeInteger = __webpack_require__( - /*! ../internals/does-not-exceed-safe-integer */ './node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js' - ) - var createProperty = __webpack_require__( - /*! ../internals/create-property */ './node_modules/core-js-pure/internals/create-property.js' - ) - var arraySpeciesCreate = __webpack_require__( - /*! ../internals/array-species-create */ './node_modules/core-js-pure/internals/array-species-create.js' - ) - var arrayMethodHasSpeciesSupport = __webpack_require__( - /*! ../internals/array-method-has-species-support */ './node_modules/core-js-pure/internals/array-method-has-species-support.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - var V8_VERSION = __webpack_require__( - /*! ../internals/environment-v8-version */ './node_modules/core-js-pure/internals/environment-v8-version.js' - ) - - var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable') - - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/679 - var IS_CONCAT_SPREADABLE_SUPPORT = - V8_VERSION >= 51 || - !fails(function () { - var array = [] - array[IS_CONCAT_SPREADABLE] = false - return array.concat()[0] !== array - }) - - var isConcatSpreadable = function (O) { - if (!isObject(O)) return false - var spreadable = O[IS_CONCAT_SPREADABLE] - return spreadable !== undefined ? !!spreadable : isArray(O) - } - - var FORCED = - !IS_CONCAT_SPREADABLE_SUPPORT || - !arrayMethodHasSpeciesSupport('concat') - - // `Array.prototype.concat` method - // https://tc39.es/ecma262/#sec-array.prototype.concat - // with adding support of @@isConcatSpreadable and @@species - $( - { target: 'Array', proto: true, arity: 1, forced: FORCED }, - { - // eslint-disable-next-line no-unused-vars -- required for `.length` - concat: function concat(arg) { - var O = toObject(this) - var A = arraySpeciesCreate(O, 0) - var n = 0 - var i, k, length, len, E - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i] - if (isConcatSpreadable(E)) { - len = lengthOfArrayLike(E) - doesNotExceedSafeInteger(n + len) - for (k = 0; k < len; k++, n++) - if (k in E) createProperty(A, n, E[k]) - } else { - doesNotExceedSafeInteger(n + 1) - createProperty(A, n++, E) - } - } - A.length = n - return A - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.array.filter.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.array.filter.js ***! - \**************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var $filter = __webpack_require__( - /*! ../internals/array-iteration */ './node_modules/core-js-pure/internals/array-iteration.js' - ).filter - var arrayMethodHasSpeciesSupport = __webpack_require__( - /*! ../internals/array-method-has-species-support */ './node_modules/core-js-pure/internals/array-method-has-species-support.js' - ) - - var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter') - - // `Array.prototype.filter` method - // https://tc39.es/ecma262/#sec-array.prototype.filter - // with adding support of @@species - $( - { target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, - { - filter: function filter(callbackfn /* , thisArg */) { - return $filter( - this, - callbackfn, - arguments.length > 1 ? arguments[1] : undefined - ) - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.array.for-each.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.array.for-each.js ***! - \****************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var forEach = __webpack_require__( - /*! ../internals/array-for-each */ './node_modules/core-js-pure/internals/array-for-each.js' - ) - - // `Array.prototype.forEach` method - // https://tc39.es/ecma262/#sec-array.prototype.foreach - // eslint-disable-next-line es/no-array-prototype-foreach -- safe - $( - { target: 'Array', proto: true, forced: [].forEach !== forEach }, - { - forEach: forEach - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.array.iterator.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.array.iterator.js ***! - \****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var addToUnscopables = __webpack_require__( - /*! ../internals/add-to-unscopables */ './node_modules/core-js-pure/internals/add-to-unscopables.js' - ) - var Iterators = __webpack_require__( - /*! ../internals/iterators */ './node_modules/core-js-pure/internals/iterators.js' - ) - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ './node_modules/core-js-pure/internals/internal-state.js' - ) - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ).f - var defineIterator = __webpack_require__( - /*! ../internals/iterator-define */ './node_modules/core-js-pure/internals/iterator-define.js' - ) - var createIterResultObject = __webpack_require__( - /*! ../internals/create-iter-result-object */ './node_modules/core-js-pure/internals/create-iter-result-object.js' - ) - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ './node_modules/core-js-pure/internals/is-pure.js' - ) - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - - var ARRAY_ITERATOR = 'Array Iterator' - var setInternalState = InternalStateModule.set - var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR) - - // `Array.prototype.entries` method - // https://tc39.es/ecma262/#sec-array.prototype.entries - // `Array.prototype.keys` method - // https://tc39.es/ecma262/#sec-array.prototype.keys - // `Array.prototype.values` method - // https://tc39.es/ecma262/#sec-array.prototype.values - // `Array.prototype[@@iterator]` method - // https://tc39.es/ecma262/#sec-array.prototype-@@iterator - // `CreateArrayIterator` internal method - // https://tc39.es/ecma262/#sec-createarrayiterator - module.exports = defineIterator( - Array, - 'Array', - function (iterated, kind) { - setInternalState(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), // target - index: 0, // next index - kind: kind // kind - }) - // `%ArrayIteratorPrototype%.next` method - // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next - }, - function () { - var state = getInternalState(this) - var target = state.target - var index = state.index++ - if (!target || index >= target.length) { - state.target = null - return createIterResultObject(undefined, true) - } - switch (state.kind) { - case 'keys': - return createIterResultObject(index, false) - case 'values': - return createIterResultObject(target[index], false) - } - return createIterResultObject([index, target[index]], false) - }, - 'values' - ) - - // argumentsList[@@iterator] is %ArrayProto_values% - // https://tc39.es/ecma262/#sec-createunmappedargumentsobject - // https://tc39.es/ecma262/#sec-createmappedargumentsobject - var values = (Iterators.Arguments = Iterators.Array) - - // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables - addToUnscopables('keys') - addToUnscopables('values') - addToUnscopables('entries') - - // V8 ~ Chrome 45- bug - if (!IS_PURE && DESCRIPTORS && values.name !== 'values') - try { - defineProperty(values, 'name', { value: 'values' }) - } catch (error) { - /* empty */ - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.array.some.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.array.some.js ***! - \************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var $some = __webpack_require__( - /*! ../internals/array-iteration */ './node_modules/core-js-pure/internals/array-iteration.js' - ).some - var arrayMethodIsStrict = __webpack_require__( - /*! ../internals/array-method-is-strict */ './node_modules/core-js-pure/internals/array-method-is-strict.js' - ) - - var STRICT_METHOD = arrayMethodIsStrict('some') - - // `Array.prototype.some` method - // https://tc39.es/ecma262/#sec-array.prototype.some - $( - { target: 'Array', proto: true, forced: !STRICT_METHOD }, - { - some: function some(callbackfn /* , thisArg */) { - return $some( - this, - callbackfn, - arguments.length > 1 ? arguments[1] : undefined - ) - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.date.to-primitive.js': - /*!*******************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.date.to-primitive.js ***! - \*******************************************************************/ - /***/ () => { - // empty - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.json.stringify.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.json.stringify.js ***! - \****************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var apply = __webpack_require__( - /*! ../internals/function-apply */ './node_modules/core-js-pure/internals/function-apply.js' - ) - var call = __webpack_require__( - /*! ../internals/function-call */ './node_modules/core-js-pure/internals/function-call.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var isCallable = __webpack_require__( - /*! ../internals/is-callable */ './node_modules/core-js-pure/internals/is-callable.js' - ) - var isSymbol = __webpack_require__( - /*! ../internals/is-symbol */ './node_modules/core-js-pure/internals/is-symbol.js' - ) - var arraySlice = __webpack_require__( - /*! ../internals/array-slice */ './node_modules/core-js-pure/internals/array-slice.js' - ) - var getReplacerFunction = __webpack_require__( - /*! ../internals/get-json-replacer-function */ './node_modules/core-js-pure/internals/get-json-replacer-function.js' - ) - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/symbol-constructor-detection */ './node_modules/core-js-pure/internals/symbol-constructor-detection.js' - ) - - var $String = String - var $stringify = getBuiltIn('JSON', 'stringify') - var exec = uncurryThis(/./.exec) - var charAt = uncurryThis(''.charAt) - var charCodeAt = uncurryThis(''.charCodeAt) - var replace = uncurryThis(''.replace) - var numberToString = uncurryThis((1.0).toString) - - var tester = /[\uD800-\uDFFF]/g - var low = /^[\uD800-\uDBFF]$/ - var hi = /^[\uDC00-\uDFFF]$/ - - var WRONG_SYMBOLS_CONVERSION = - !NATIVE_SYMBOL || - fails(function () { - var symbol = getBuiltIn('Symbol')('stringify detection') - // MS Edge converts symbol values to JSON as {} - return ( - $stringify([symbol]) !== '[null]' || - // WebKit converts symbol values to JSON as null - $stringify({ a: symbol }) !== '{}' || - // V8 throws on boxed symbols - $stringify(Object(symbol)) !== '{}' - ) - }) - - // https://github.com/tc39/proposal-well-formed-stringify - var ILL_FORMED_UNICODE = fails(function () { - return ( - $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' || - $stringify('\uDEAD') !== '"\\udead"' - ) - }) - - var stringifyWithSymbolsFix = function (it, replacer) { - var args = arraySlice(arguments) - var $replacer = getReplacerFunction(replacer) - if (!isCallable($replacer) && (it === undefined || isSymbol(it))) - return // IE8 returns string on undefined - args[1] = function (key, value) { - // some old implementations (like WebKit) could pass numbers as keys - if (isCallable($replacer)) - value = call($replacer, this, $String(key), value) - if (!isSymbol(value)) return value - } - return apply($stringify, null, args) - } - - var fixIllFormed = function (match, offset, string) { - var prev = charAt(string, offset - 1) - var next = charAt(string, offset + 1) - if ( - (exec(low, match) && !exec(hi, next)) || - (exec(hi, match) && !exec(low, prev)) - ) { - return '\\u' + numberToString(charCodeAt(match, 0), 16) - } - return match - } - - if ($stringify) { - // `JSON.stringify` method - // https://tc39.es/ecma262/#sec-json.stringify - $( - { - target: 'JSON', - stat: true, - arity: 3, - forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE - }, - { - // eslint-disable-next-line no-unused-vars -- required for `.length` - stringify: function stringify(it, replacer, space) { - var args = arraySlice(arguments) - var result = apply( - WRONG_SYMBOLS_CONVERSION - ? stringifyWithSymbolsFix - : $stringify, - null, - args - ) - return ILL_FORMED_UNICODE && typeof result == 'string' - ? replace(result, tester, fixIllFormed) - : result - } - } - ) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.json.to-string-tag.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.json.to-string-tag.js ***! - \********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ './node_modules/core-js-pure/internals/set-to-string-tag.js' - ) - - // JSON[@@toStringTag] property - // https://tc39.es/ecma262/#sec-json-@@tostringtag - setToStringTag(globalThis.JSON, 'JSON', true) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.math.to-string-tag.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.math.to-string-tag.js ***! - \********************************************************************/ - /***/ () => { - // empty - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.object.assign.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.object.assign.js ***! - \***************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var assign = __webpack_require__( - /*! ../internals/object-assign */ './node_modules/core-js-pure/internals/object-assign.js' - ) - - // `Object.assign` method - // https://tc39.es/ecma262/#sec-object.assign - // eslint-disable-next-line es/no-object-assign -- required for testing - $( - { - target: 'Object', - stat: true, - arity: 2, - forced: Object.assign !== assign - }, - { - assign: assign - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.object.define-properties.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.object.define-properties.js ***! - \**************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var defineProperties = __webpack_require__( - /*! ../internals/object-define-properties */ './node_modules/core-js-pure/internals/object-define-properties.js' - ).f - - // `Object.defineProperties` method - // https://tc39.es/ecma262/#sec-object.defineproperties - // eslint-disable-next-line es/no-object-defineproperties -- safe - $( - { - target: 'Object', - stat: true, - forced: Object.defineProperties !== defineProperties, - sham: !DESCRIPTORS - }, - { - defineProperties: defineProperties - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.object.define-property.js': - /*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.object.define-property.js ***! - \************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ).f - - // `Object.defineProperty` method - // https://tc39.es/ecma262/#sec-object.defineproperty - // eslint-disable-next-line es/no-object-defineproperty -- safe - $( - { - target: 'Object', - stat: true, - forced: Object.defineProperty !== defineProperty, - sham: !DESCRIPTORS - }, - { - defineProperty: defineProperty - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js': - /*!************************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js ***! - \************************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var nativeGetOwnPropertyDescriptor = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ './node_modules/core-js-pure/internals/object-get-own-property-descriptor.js' - ).f - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - - var FORCED = - !DESCRIPTORS || - fails(function () { - nativeGetOwnPropertyDescriptor(1) - }) - - // `Object.getOwnPropertyDescriptor` method - // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor - $( - { - target: 'Object', - stat: true, - forced: FORCED, - sham: !DESCRIPTORS - }, - { - getOwnPropertyDescriptor: function getOwnPropertyDescriptor( - it, - key - ) { - return nativeGetOwnPropertyDescriptor( - toIndexedObject(it), - key - ) - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js': - /*!*************************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js ***! - \*************************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var ownKeys = __webpack_require__( - /*! ../internals/own-keys */ './node_modules/core-js-pure/internals/own-keys.js' - ) - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var getOwnPropertyDescriptorModule = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ './node_modules/core-js-pure/internals/object-get-own-property-descriptor.js' - ) - var createProperty = __webpack_require__( - /*! ../internals/create-property */ './node_modules/core-js-pure/internals/create-property.js' - ) - - // `Object.getOwnPropertyDescriptors` method - // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors - $( - { target: 'Object', stat: true, sham: !DESCRIPTORS }, - { - getOwnPropertyDescriptors: function getOwnPropertyDescriptors( - object - ) { - var O = toIndexedObject(object) - var getOwnPropertyDescriptor = - getOwnPropertyDescriptorModule.f - var keys = ownKeys(O) - var result = {} - var index = 0 - var key, descriptor - while (keys.length > index) { - descriptor = getOwnPropertyDescriptor( - O, - (key = keys[index++]) - ) - if (descriptor !== undefined) - createProperty(result, key, descriptor) - } - return result - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js': - /*!*********************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js ***! - \*********************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/symbol-constructor-detection */ './node_modules/core-js-pure/internals/symbol-constructor-detection.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var getOwnPropertySymbolsModule = __webpack_require__( - /*! ../internals/object-get-own-property-symbols */ './node_modules/core-js-pure/internals/object-get-own-property-symbols.js' - ) - var toObject = __webpack_require__( - /*! ../internals/to-object */ './node_modules/core-js-pure/internals/to-object.js' - ) - - // V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives - // https://bugs.chromium.org/p/v8/issues/detail?id=3443 - var FORCED = - !NATIVE_SYMBOL || - fails(function () { - getOwnPropertySymbolsModule.f(1) - }) - - // `Object.getOwnPropertySymbols` method - // https://tc39.es/ecma262/#sec-object.getownpropertysymbols - $( - { target: 'Object', stat: true, forced: FORCED }, - { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f - return $getOwnPropertySymbols - ? $getOwnPropertySymbols(toObject(it)) - : [] - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.object.keys.js': - /*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.object.keys.js ***! - \*************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var toObject = __webpack_require__( - /*! ../internals/to-object */ './node_modules/core-js-pure/internals/to-object.js' - ) - var nativeKeys = __webpack_require__( - /*! ../internals/object-keys */ './node_modules/core-js-pure/internals/object-keys.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - - var FAILS_ON_PRIMITIVES = fails(function () { - nativeKeys(1) - }) - - // `Object.keys` method - // https://tc39.es/ecma262/#sec-object.keys - $( - { target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, - { - keys: function keys(it) { - return nativeKeys(toObject(it)) - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.object.to-string.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.object.to-string.js ***! - \******************************************************************/ - /***/ () => { - // empty - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.reflect.to-string-tag.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.reflect.to-string-tag.js ***! - \***********************************************************************/ - /***/ () => { - // empty - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.string.iterator.js': - /*!*****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.string.iterator.js ***! - \*****************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var charAt = __webpack_require__( - /*! ../internals/string-multibyte */ './node_modules/core-js-pure/internals/string-multibyte.js' - ).charAt - var toString = __webpack_require__( - /*! ../internals/to-string */ './node_modules/core-js-pure/internals/to-string.js' - ) - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ './node_modules/core-js-pure/internals/internal-state.js' - ) - var defineIterator = __webpack_require__( - /*! ../internals/iterator-define */ './node_modules/core-js-pure/internals/iterator-define.js' - ) - var createIterResultObject = __webpack_require__( - /*! ../internals/create-iter-result-object */ './node_modules/core-js-pure/internals/create-iter-result-object.js' - ) - - var STRING_ITERATOR = 'String Iterator' - var setInternalState = InternalStateModule.set - var getInternalState = - InternalStateModule.getterFor(STRING_ITERATOR) - - // `String.prototype[@@iterator]` method - // https://tc39.es/ecma262/#sec-string.prototype-@@iterator - defineIterator( - String, - 'String', - function (iterated) { - setInternalState(this, { - type: STRING_ITERATOR, - string: toString(iterated), - index: 0 - }) - // `%StringIteratorPrototype%.next` method - // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next - }, - function next() { - var state = getInternalState(this) - var string = state.string - var index = state.index - var point - if (index >= string.length) - return createIterResultObject(undefined, true) - point = charAt(string, index) - state.index += point.length - return createIterResultObject(point, false) - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.async-iterator.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.async-iterator.js ***! - \***********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.asyncIterator` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.asynciterator - defineWellKnownSymbol('asyncIterator') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.constructor.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.constructor.js ***! - \********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var call = __webpack_require__( - /*! ../internals/function-call */ './node_modules/core-js-pure/internals/function-call.js' - ) - var uncurryThis = __webpack_require__( - /*! ../internals/function-uncurry-this */ './node_modules/core-js-pure/internals/function-uncurry-this.js' - ) - var IS_PURE = __webpack_require__( - /*! ../internals/is-pure */ './node_modules/core-js-pure/internals/is-pure.js' - ) - var DESCRIPTORS = __webpack_require__( - /*! ../internals/descriptors */ './node_modules/core-js-pure/internals/descriptors.js' - ) - var NATIVE_SYMBOL = __webpack_require__( - /*! ../internals/symbol-constructor-detection */ './node_modules/core-js-pure/internals/symbol-constructor-detection.js' - ) - var fails = __webpack_require__( - /*! ../internals/fails */ './node_modules/core-js-pure/internals/fails.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var isPrototypeOf = __webpack_require__( - /*! ../internals/object-is-prototype-of */ './node_modules/core-js-pure/internals/object-is-prototype-of.js' - ) - var anObject = __webpack_require__( - /*! ../internals/an-object */ './node_modules/core-js-pure/internals/an-object.js' - ) - var toIndexedObject = __webpack_require__( - /*! ../internals/to-indexed-object */ './node_modules/core-js-pure/internals/to-indexed-object.js' - ) - var toPropertyKey = __webpack_require__( - /*! ../internals/to-property-key */ './node_modules/core-js-pure/internals/to-property-key.js' - ) - var $toString = __webpack_require__( - /*! ../internals/to-string */ './node_modules/core-js-pure/internals/to-string.js' - ) - var createPropertyDescriptor = __webpack_require__( - /*! ../internals/create-property-descriptor */ './node_modules/core-js-pure/internals/create-property-descriptor.js' - ) - var nativeObjectCreate = __webpack_require__( - /*! ../internals/object-create */ './node_modules/core-js-pure/internals/object-create.js' - ) - var objectKeys = __webpack_require__( - /*! ../internals/object-keys */ './node_modules/core-js-pure/internals/object-keys.js' - ) - var getOwnPropertyNamesModule = __webpack_require__( - /*! ../internals/object-get-own-property-names */ './node_modules/core-js-pure/internals/object-get-own-property-names.js' - ) - var getOwnPropertyNamesExternal = __webpack_require__( - /*! ../internals/object-get-own-property-names-external */ './node_modules/core-js-pure/internals/object-get-own-property-names-external.js' - ) - var getOwnPropertySymbolsModule = __webpack_require__( - /*! ../internals/object-get-own-property-symbols */ './node_modules/core-js-pure/internals/object-get-own-property-symbols.js' - ) - var getOwnPropertyDescriptorModule = __webpack_require__( - /*! ../internals/object-get-own-property-descriptor */ './node_modules/core-js-pure/internals/object-get-own-property-descriptor.js' - ) - var definePropertyModule = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ) - var definePropertiesModule = __webpack_require__( - /*! ../internals/object-define-properties */ './node_modules/core-js-pure/internals/object-define-properties.js' - ) - var propertyIsEnumerableModule = __webpack_require__( - /*! ../internals/object-property-is-enumerable */ './node_modules/core-js-pure/internals/object-property-is-enumerable.js' - ) - var defineBuiltIn = __webpack_require__( - /*! ../internals/define-built-in */ './node_modules/core-js-pure/internals/define-built-in.js' - ) - var defineBuiltInAccessor = __webpack_require__( - /*! ../internals/define-built-in-accessor */ './node_modules/core-js-pure/internals/define-built-in-accessor.js' - ) - var shared = __webpack_require__( - /*! ../internals/shared */ './node_modules/core-js-pure/internals/shared.js' - ) - var sharedKey = __webpack_require__( - /*! ../internals/shared-key */ './node_modules/core-js-pure/internals/shared-key.js' - ) - var hiddenKeys = __webpack_require__( - /*! ../internals/hidden-keys */ './node_modules/core-js-pure/internals/hidden-keys.js' - ) - var uid = __webpack_require__( - /*! ../internals/uid */ './node_modules/core-js-pure/internals/uid.js' - ) - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - var wrappedWellKnownSymbolModule = __webpack_require__( - /*! ../internals/well-known-symbol-wrapped */ './node_modules/core-js-pure/internals/well-known-symbol-wrapped.js' - ) - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - var defineSymbolToPrimitive = __webpack_require__( - /*! ../internals/symbol-define-to-primitive */ './node_modules/core-js-pure/internals/symbol-define-to-primitive.js' - ) - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ './node_modules/core-js-pure/internals/set-to-string-tag.js' - ) - var InternalStateModule = __webpack_require__( - /*! ../internals/internal-state */ './node_modules/core-js-pure/internals/internal-state.js' - ) - var $forEach = __webpack_require__( - /*! ../internals/array-iteration */ './node_modules/core-js-pure/internals/array-iteration.js' - ).forEach - - var HIDDEN = sharedKey('hidden') - var SYMBOL = 'Symbol' - var PROTOTYPE = 'prototype' - - var setInternalState = InternalStateModule.set - var getInternalState = InternalStateModule.getterFor(SYMBOL) - - var ObjectPrototype = Object[PROTOTYPE] - var $Symbol = globalThis.Symbol - var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE] - var RangeError = globalThis.RangeError - var TypeError = globalThis.TypeError - var QObject = globalThis.QObject - var nativeGetOwnPropertyDescriptor = - getOwnPropertyDescriptorModule.f - var nativeDefineProperty = definePropertyModule.f - var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f - var nativePropertyIsEnumerable = propertyIsEnumerableModule.f - var push = uncurryThis([].push) - - var AllSymbols = shared('symbols') - var ObjectPrototypeSymbols = shared('op-symbols') - var WellKnownSymbolsStore = shared('wks') - - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var USE_SETTER = - !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var fallbackDefineProperty = function (O, P, Attributes) { - var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor( - ObjectPrototype, - P - ) - if (ObjectPrototypeDescriptor) delete ObjectPrototype[P] - nativeDefineProperty(O, P, Attributes) - if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { - nativeDefineProperty( - ObjectPrototype, - P, - ObjectPrototypeDescriptor - ) - } - } - - var setSymbolDescriptor = - DESCRIPTORS && - fails(function () { - return ( - nativeObjectCreate( - nativeDefineProperty({}, 'a', { - get: function () { - return nativeDefineProperty(this, 'a', { value: 7 }).a - } - }) - ).a !== 7 - ) - }) - ? fallbackDefineProperty - : nativeDefineProperty - - var wrap = function (tag, description) { - var symbol = (AllSymbols[tag] = - nativeObjectCreate(SymbolPrototype)) - setInternalState(symbol, { - type: SYMBOL, - tag: tag, - description: description - }) - if (!DESCRIPTORS) symbol.description = description - return symbol - } - - var $defineProperty = function defineProperty(O, P, Attributes) { - if (O === ObjectPrototype) - $defineProperty(ObjectPrototypeSymbols, P, Attributes) - anObject(O) - var key = toPropertyKey(P) - anObject(Attributes) - if (hasOwn(AllSymbols, key)) { - if (!Attributes.enumerable) { - if (!hasOwn(O, HIDDEN)) - nativeDefineProperty( - O, - HIDDEN, - createPropertyDescriptor(1, nativeObjectCreate(null)) - ) - O[HIDDEN][key] = true - } else { - if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) - O[HIDDEN][key] = false - Attributes = nativeObjectCreate(Attributes, { - enumerable: createPropertyDescriptor(0, false) - }) - } - return setSymbolDescriptor(O, key, Attributes) - } - return nativeDefineProperty(O, key, Attributes) - } - - var $defineProperties = function defineProperties(O, Properties) { - anObject(O) - var properties = toIndexedObject(Properties) - var keys = objectKeys(properties).concat( - $getOwnPropertySymbols(properties) - ) - $forEach(keys, function (key) { - if ( - !DESCRIPTORS || - call($propertyIsEnumerable, properties, key) - ) - $defineProperty(O, key, properties[key]) - }) - return O - } - - var $create = function create(O, Properties) { - return Properties === undefined - ? nativeObjectCreate(O) - : $defineProperties(nativeObjectCreate(O), Properties) - } - - var $propertyIsEnumerable = function propertyIsEnumerable(V) { - var P = toPropertyKey(V) - var enumerable = call(nativePropertyIsEnumerable, this, P) - if ( - this === ObjectPrototype && - hasOwn(AllSymbols, P) && - !hasOwn(ObjectPrototypeSymbols, P) - ) - return false - return enumerable || - !hasOwn(this, P) || - !hasOwn(AllSymbols, P) || - (hasOwn(this, HIDDEN) && this[HIDDEN][P]) - ? enumerable - : true - } - - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor( - O, - P - ) { - var it = toIndexedObject(O) - var key = toPropertyKey(P) - if ( - it === ObjectPrototype && - hasOwn(AllSymbols, key) && - !hasOwn(ObjectPrototypeSymbols, key) - ) - return - var descriptor = nativeGetOwnPropertyDescriptor(it, key) - if ( - descriptor && - hasOwn(AllSymbols, key) && - !(hasOwn(it, HIDDEN) && it[HIDDEN][key]) - ) { - descriptor.enumerable = true - } - return descriptor - } - - var $getOwnPropertyNames = function getOwnPropertyNames(O) { - var names = nativeGetOwnPropertyNames(toIndexedObject(O)) - var result = [] - $forEach(names, function (key) { - if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) - push(result, key) - }) - return result - } - - var $getOwnPropertySymbols = function (O) { - var IS_OBJECT_PROTOTYPE = O === ObjectPrototype - var names = nativeGetOwnPropertyNames( - IS_OBJECT_PROTOTYPE - ? ObjectPrototypeSymbols - : toIndexedObject(O) - ) - var result = [] - $forEach(names, function (key) { - if ( - hasOwn(AllSymbols, key) && - (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key)) - ) { - push(result, AllSymbols[key]) - } - }) - return result - } - - // `Symbol` constructor - // https://tc39.es/ecma262/#sec-symbol-constructor - if (!NATIVE_SYMBOL) { - $Symbol = function Symbol() { - if (isPrototypeOf(SymbolPrototype, this)) - throw new TypeError('Symbol is not a constructor') - var description = - !arguments.length || arguments[0] === undefined - ? undefined - : $toString(arguments[0]) - var tag = uid(description) - var setter = function (value) { - var $this = this === undefined ? globalThis : this - if ($this === ObjectPrototype) - call(setter, ObjectPrototypeSymbols, value) - if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) - $this[HIDDEN][tag] = false - var descriptor = createPropertyDescriptor(1, value) - try { - setSymbolDescriptor($this, tag, descriptor) - } catch (error) { - if (!(error instanceof RangeError)) throw error - fallbackDefineProperty($this, tag, descriptor) - } - } - if (DESCRIPTORS && USE_SETTER) - setSymbolDescriptor(ObjectPrototype, tag, { - configurable: true, - set: setter - }) - return wrap(tag, description) - } - - SymbolPrototype = $Symbol[PROTOTYPE] - - defineBuiltIn(SymbolPrototype, 'toString', function toString() { - return getInternalState(this).tag - }) - - defineBuiltIn($Symbol, 'withoutSetter', function (description) { - return wrap(uid(description), description) - }) - - propertyIsEnumerableModule.f = $propertyIsEnumerable - definePropertyModule.f = $defineProperty - definePropertiesModule.f = $defineProperties - getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor - getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = - $getOwnPropertyNames - getOwnPropertySymbolsModule.f = $getOwnPropertySymbols - - wrappedWellKnownSymbolModule.f = function (name) { - return wrap(wellKnownSymbol(name), name) - } - - if (DESCRIPTORS) { - // https://github.com/tc39/proposal-Symbol-description - defineBuiltInAccessor(SymbolPrototype, 'description', { - configurable: true, - get: function description() { - return getInternalState(this).description - } - }) - if (!IS_PURE) { - defineBuiltIn( - ObjectPrototype, - 'propertyIsEnumerable', - $propertyIsEnumerable, - { unsafe: true } - ) - } - } - } - - $( - { - global: true, - constructor: true, - wrap: true, - forced: !NATIVE_SYMBOL, - sham: !NATIVE_SYMBOL - }, - { - Symbol: $Symbol - } - ) - - $forEach(objectKeys(WellKnownSymbolsStore), function (name) { - defineWellKnownSymbol(name) - }) - - $( - { target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, - { - useSetter: function () { - USE_SETTER = true - }, - useSimple: function () { - USE_SETTER = false - } - } - ) - - $( - { - target: 'Object', - stat: true, - forced: !NATIVE_SYMBOL, - sham: !DESCRIPTORS - }, - { - // `Object.create` method - // https://tc39.es/ecma262/#sec-object.create - create: $create, - // `Object.defineProperty` method - // https://tc39.es/ecma262/#sec-object.defineproperty - defineProperty: $defineProperty, - // `Object.defineProperties` method - // https://tc39.es/ecma262/#sec-object.defineproperties - defineProperties: $defineProperties, - // `Object.getOwnPropertyDescriptor` method - // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors - getOwnPropertyDescriptor: $getOwnPropertyDescriptor - } - ) - - $( - { target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, - { - // `Object.getOwnPropertyNames` method - // https://tc39.es/ecma262/#sec-object.getownpropertynames - getOwnPropertyNames: $getOwnPropertyNames - } - ) - - // `Symbol.prototype[@@toPrimitive]` method - // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive - defineSymbolToPrimitive() - - // `Symbol.prototype[@@toStringTag]` property - // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag - setToStringTag($Symbol, SYMBOL) - - hiddenKeys[HIDDEN] = true - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.description.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.description.js ***! - \********************************************************************/ - /***/ () => { - // empty - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.for.js': - /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.for.js ***! - \************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var toString = __webpack_require__( - /*! ../internals/to-string */ './node_modules/core-js-pure/internals/to-string.js' - ) - var shared = __webpack_require__( - /*! ../internals/shared */ './node_modules/core-js-pure/internals/shared.js' - ) - var NATIVE_SYMBOL_REGISTRY = __webpack_require__( - /*! ../internals/symbol-registry-detection */ './node_modules/core-js-pure/internals/symbol-registry-detection.js' - ) - - var StringToSymbolRegistry = shared('string-to-symbol-registry') - var SymbolToStringRegistry = shared('symbol-to-string-registry') - - // `Symbol.for` method - // https://tc39.es/ecma262/#sec-symbol.for - $( - { target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, - { - for: function (key) { - var string = toString(key) - if (hasOwn(StringToSymbolRegistry, string)) - return StringToSymbolRegistry[string] - var symbol = getBuiltIn('Symbol')(string) - StringToSymbolRegistry[string] = symbol - SymbolToStringRegistry[symbol] = string - return symbol - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.has-instance.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.has-instance.js ***! - \*********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.hasInstance` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.hasinstance - defineWellKnownSymbol('hasInstance') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js': - /*!*****************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js ***! - \*****************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.isConcatSpreadable` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.isconcatspreadable - defineWellKnownSymbol('isConcatSpreadable') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.iterator.js': - /*!*****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.iterator.js ***! - \*****************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.iterator` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.iterator - defineWellKnownSymbol('iterator') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.js': - /*!********************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.js ***! - \********************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - // TODO: Remove this module from `core-js@4` since it's split to modules listed below - __webpack_require__( - /*! ../modules/es.symbol.constructor */ './node_modules/core-js-pure/modules/es.symbol.constructor.js' - ) - __webpack_require__( - /*! ../modules/es.symbol.for */ './node_modules/core-js-pure/modules/es.symbol.for.js' - ) - __webpack_require__( - /*! ../modules/es.symbol.key-for */ './node_modules/core-js-pure/modules/es.symbol.key-for.js' - ) - __webpack_require__( - /*! ../modules/es.json.stringify */ './node_modules/core-js-pure/modules/es.json.stringify.js' - ) - __webpack_require__( - /*! ../modules/es.object.get-own-property-symbols */ './node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js' - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.key-for.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.key-for.js ***! - \****************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var hasOwn = __webpack_require__( - /*! ../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var isSymbol = __webpack_require__( - /*! ../internals/is-symbol */ './node_modules/core-js-pure/internals/is-symbol.js' - ) - var tryToString = __webpack_require__( - /*! ../internals/try-to-string */ './node_modules/core-js-pure/internals/try-to-string.js' - ) - var shared = __webpack_require__( - /*! ../internals/shared */ './node_modules/core-js-pure/internals/shared.js' - ) - var NATIVE_SYMBOL_REGISTRY = __webpack_require__( - /*! ../internals/symbol-registry-detection */ './node_modules/core-js-pure/internals/symbol-registry-detection.js' - ) - - var SymbolToStringRegistry = shared('symbol-to-string-registry') - - // `Symbol.keyFor` method - // https://tc39.es/ecma262/#sec-symbol.keyfor - $( - { target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, - { - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) - throw new TypeError(tryToString(sym) + ' is not a symbol') - if (hasOwn(SymbolToStringRegistry, sym)) - return SymbolToStringRegistry[sym] - } - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.match-all.js': - /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.match-all.js ***! - \******************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.matchAll` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.matchall - defineWellKnownSymbol('matchAll') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.match.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.match.js ***! - \**************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.match` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.match - defineWellKnownSymbol('match') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.replace.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.replace.js ***! - \****************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.replace` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.replace - defineWellKnownSymbol('replace') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.search.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.search.js ***! - \***************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.search` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.search - defineWellKnownSymbol('search') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.species.js': - /*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.species.js ***! - \****************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.species` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.species - defineWellKnownSymbol('species') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.split.js': - /*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.split.js ***! - \**************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.split` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.split - defineWellKnownSymbol('split') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.to-primitive.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.to-primitive.js ***! - \*********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - var defineSymbolToPrimitive = __webpack_require__( - /*! ../internals/symbol-define-to-primitive */ './node_modules/core-js-pure/internals/symbol-define-to-primitive.js' - ) - - // `Symbol.toPrimitive` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.toprimitive - defineWellKnownSymbol('toPrimitive') - - // `Symbol.prototype[@@toPrimitive]` method - // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive - defineSymbolToPrimitive() - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.to-string-tag.js': - /*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js ***! - \**********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var getBuiltIn = __webpack_require__( - /*! ../internals/get-built-in */ './node_modules/core-js-pure/internals/get-built-in.js' - ) - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ './node_modules/core-js-pure/internals/set-to-string-tag.js' - ) - - // `Symbol.toStringTag` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.tostringtag - defineWellKnownSymbol('toStringTag') - - // `Symbol.prototype[@@toStringTag]` property - // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag - setToStringTag(getBuiltIn('Symbol'), 'Symbol') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/es.symbol.unscopables.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.symbol.unscopables.js ***! - \********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.unscopables` well-known symbol - // https://tc39.es/ecma262/#sec-symbol.unscopables - defineWellKnownSymbol('unscopables') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.function.metadata.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.function.metadata.js ***! - \***********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var wellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol */ './node_modules/core-js-pure/internals/well-known-symbol.js' - ) - var defineProperty = __webpack_require__( - /*! ../internals/object-define-property */ './node_modules/core-js-pure/internals/object-define-property.js' - ).f - - var METADATA = wellKnownSymbol('metadata') - var FunctionPrototype = Function.prototype - - // Function.prototype[@@metadata] - // https://github.com/tc39/proposal-decorator-metadata - if (FunctionPrototype[METADATA] === undefined) { - defineProperty(FunctionPrototype, METADATA, { - value: null - }) - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js ***! - \**************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.asyncDispose` well-known symbol - // https://github.com/tc39/proposal-async-explicit-resource-management - defineWellKnownSymbol('asyncDispose') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.custom-matcher.js': - /*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.custom-matcher.js ***! - \***************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.customMatcher` well-known symbol - // https://github.com/tc39/proposal-pattern-matching - defineWellKnownSymbol('customMatcher') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.dispose.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.dispose.js ***! - \********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.dispose` well-known symbol - // https://github.com/tc39/proposal-explicit-resource-management - defineWellKnownSymbol('dispose') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js': - /*!*********************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js ***! - \*********************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var isRegisteredSymbol = __webpack_require__( - /*! ../internals/symbol-is-registered */ './node_modules/core-js-pure/internals/symbol-is-registered.js' - ) - - // `Symbol.isRegisteredSymbol` method - // https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol - $( - { target: 'Symbol', stat: true }, - { - isRegisteredSymbol: isRegisteredSymbol - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.is-registered.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.is-registered.js ***! - \**************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var isRegisteredSymbol = __webpack_require__( - /*! ../internals/symbol-is-registered */ './node_modules/core-js-pure/internals/symbol-is-registered.js' - ) - - // `Symbol.isRegistered` method - // obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol - $( - { target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, - { - isRegistered: isRegisteredSymbol - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js': - /*!*********************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js ***! - \*********************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var isWellKnownSymbol = __webpack_require__( - /*! ../internals/symbol-is-well-known */ './node_modules/core-js-pure/internals/symbol-is-well-known.js' - ) - - // `Symbol.isWellKnownSymbol` method - // https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol - // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected - $( - { target: 'Symbol', stat: true, forced: true }, - { - isWellKnownSymbol: isWellKnownSymbol - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js ***! - \**************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var $ = __webpack_require__( - /*! ../internals/export */ './node_modules/core-js-pure/internals/export.js' - ) - var isWellKnownSymbol = __webpack_require__( - /*! ../internals/symbol-is-well-known */ './node_modules/core-js-pure/internals/symbol-is-well-known.js' - ) - - // `Symbol.isWellKnown` method - // obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol - // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected - $( - { - target: 'Symbol', - stat: true, - name: 'isWellKnownSymbol', - forced: true - }, - { - isWellKnown: isWellKnownSymbol - } - ) - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.matcher.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.matcher.js ***! - \********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.matcher` well-known symbol - // https://github.com/tc39/proposal-pattern-matching - defineWellKnownSymbol('matcher') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js': - /*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js ***! - \*************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - // TODO: Remove from `core-js@4` - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.metadataKey` well-known symbol - // https://github.com/tc39/proposal-decorator-metadata - defineWellKnownSymbol('metadataKey') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.metadata.js': - /*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.metadata.js ***! - \*********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.metadata` well-known symbol - // https://github.com/tc39/proposal-decorators - defineWellKnownSymbol('metadata') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.observable.js': - /*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.observable.js ***! - \***********************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.observable` well-known symbol - // https://github.com/tc39/proposal-observable - defineWellKnownSymbol('observable') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js': - /*!**************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js ***! - \**************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - // TODO: remove from `core-js@4` - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - // `Symbol.patternMatch` well-known symbol - // https://github.com/tc39/proposal-pattern-matching - defineWellKnownSymbol('patternMatch') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/esnext.symbol.replace-all.js': - /*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js ***! - \************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - // TODO: remove from `core-js@4` - var defineWellKnownSymbol = __webpack_require__( - /*! ../internals/well-known-symbol-define */ './node_modules/core-js-pure/internals/well-known-symbol-define.js' - ) - - defineWellKnownSymbol('replaceAll') - - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/web.dom-collections.for-each.js': - /*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/web.dom-collections.for-each.js ***! - \***************************************************************************/ - /***/ () => { - // empty - /***/ - }, - - /***/ './node_modules/core-js-pure/modules/web.dom-collections.iterator.js': - /*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/web.dom-collections.iterator.js ***! - \***************************************************************************/ - /***/ ( - __unused_webpack_module, - __unused_webpack_exports, - __webpack_require__ - ) => { - 'use strict' - - __webpack_require__( - /*! ../modules/es.array.iterator */ './node_modules/core-js-pure/modules/es.array.iterator.js' - ) - var DOMIterables = __webpack_require__( - /*! ../internals/dom-iterables */ './node_modules/core-js-pure/internals/dom-iterables.js' - ) - var globalThis = __webpack_require__( - /*! ../internals/global-this */ './node_modules/core-js-pure/internals/global-this.js' - ) - var setToStringTag = __webpack_require__( - /*! ../internals/set-to-string-tag */ './node_modules/core-js-pure/internals/set-to-string-tag.js' - ) - var Iterators = __webpack_require__( - /*! ../internals/iterators */ './node_modules/core-js-pure/internals/iterators.js' - ) - - for (var COLLECTION_NAME in DOMIterables) { - setToStringTag(globalThis[COLLECTION_NAME], COLLECTION_NAME) - Iterators[COLLECTION_NAME] = Iterators.Array - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/array/virtual/for-each.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/array/virtual/for-each.js ***! - \********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../../es/array/virtual/for-each */ './node_modules/core-js-pure/es/array/virtual/for-each.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/instance/filter.js': - /*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/instance/filter.js ***! - \*************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/instance/filter */ './node_modules/core-js-pure/es/instance/filter.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/instance/for-each.js': - /*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/instance/for-each.js ***! - \***************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var classof = __webpack_require__( - /*! ../../internals/classof */ './node_modules/core-js-pure/internals/classof.js' - ) - var hasOwn = __webpack_require__( - /*! ../../internals/has-own-property */ './node_modules/core-js-pure/internals/has-own-property.js' - ) - var isPrototypeOf = __webpack_require__( - /*! ../../internals/object-is-prototype-of */ './node_modules/core-js-pure/internals/object-is-prototype-of.js' - ) - var method = __webpack_require__( - /*! ../array/virtual/for-each */ './node_modules/core-js-pure/stable/array/virtual/for-each.js' - ) - __webpack_require__( - /*! ../../modules/web.dom-collections.for-each */ './node_modules/core-js-pure/modules/web.dom-collections.for-each.js' - ) - - var ArrayPrototype = Array.prototype - - var DOMIterables = { - DOMTokenList: true, - NodeList: true - } - - module.exports = function (it) { - var own = it.forEach - return it === ArrayPrototype || - (isPrototypeOf(ArrayPrototype, it) && - own === ArrayPrototype.forEach) || - hasOwn(DOMIterables, classof(it)) - ? method - : own - } - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/instance/some.js': - /*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/stable/instance/some.js ***! - \***********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/instance/some */ './node_modules/core-js-pure/es/instance/some.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/object/assign.js': - /*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/stable/object/assign.js ***! - \***********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/object/assign */ './node_modules/core-js-pure/es/object/assign.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/object/define-properties.js': - /*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/object/define-properties.js ***! - \**********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/object/define-properties */ './node_modules/core-js-pure/es/object/define-properties.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/object/define-property.js': - /*!********************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/object/define-property.js ***! - \********************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/object/define-property */ './node_modules/core-js-pure/es/object/define-property.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/object/get-own-property-descriptor.js': - /*!********************************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/object/get-own-property-descriptor.js ***! - \********************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/object/get-own-property-descriptor */ './node_modules/core-js-pure/es/object/get-own-property-descriptor.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/object/get-own-property-descriptors.js': - /*!*********************************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/object/get-own-property-descriptors.js ***! - \*********************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/object/get-own-property-descriptors */ './node_modules/core-js-pure/es/object/get-own-property-descriptors.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/object/get-own-property-symbols.js': - /*!*****************************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/object/get-own-property-symbols.js ***! - \*****************************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/object/get-own-property-symbols */ './node_modules/core-js-pure/es/object/get-own-property-symbols.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/object/keys.js': - /*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/stable/object/keys.js ***! - \*********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/object/keys */ './node_modules/core-js-pure/es/object/keys.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/symbol/index.js': - /*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/stable/symbol/index.js ***! - \**********************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/symbol */ './node_modules/core-js-pure/es/symbol/index.js' - ) - __webpack_require__( - /*! ../../modules/web.dom-collections.iterator */ './node_modules/core-js-pure/modules/web.dom-collections.iterator.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/symbol/iterator.js': - /*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/symbol/iterator.js ***! - \*************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/symbol/iterator */ './node_modules/core-js-pure/es/symbol/iterator.js' - ) - __webpack_require__( - /*! ../../modules/web.dom-collections.iterator */ './node_modules/core-js-pure/modules/web.dom-collections.iterator.js' - ) - - module.exports = parent - - /***/ - }, - - /***/ './node_modules/core-js-pure/stable/symbol/to-primitive.js': - /*!*****************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/symbol/to-primitive.js ***! - \*****************************************************************/ - /***/ (module, __unused_webpack_exports, __webpack_require__) => { - 'use strict' - - var parent = __webpack_require__( - /*! ../../es/symbol/to-primitive */ './node_modules/core-js-pure/es/symbol/to-primitive.js' - ) - - module.exports = parent - - /***/ - } - - /******/ - } - /************************************************************************/ - /******/ // The module cache - /******/ var __webpack_module_cache__ = {} - /******/ - /******/ // The require function - /******/ function __webpack_require__(moduleId) { - /******/ // Check if module is in cache - /******/ var cachedModule = __webpack_module_cache__[moduleId] - /******/ if (cachedModule !== undefined) { - /******/ return cachedModule.exports - /******/ - } - /******/ // Create a new module (and put it into the cache) - /******/ var module = (__webpack_module_cache__[moduleId] = { - /******/ // no module.id needed - /******/ // no module.loaded needed - /******/ exports: {} - /******/ - }) - /******/ - /******/ // Execute the module function - /******/ __webpack_modules__[moduleId].call( - module.exports, - module, - module.exports, - __webpack_require__ - ) - /******/ - /******/ // Return the exports of the module - /******/ return module.exports - /******/ - } - /******/ - /************************************************************************/ - /******/ /* webpack/runtime/compat get default export */ - /******/ ;(() => { - /******/ // getDefaultExport function for compatibility with non-harmony modules - /******/ __webpack_require__.n = module => { - /******/ var getter = - module && module.__esModule - ? /******/ () => module['default'] - : /******/ () => module - /******/ __webpack_require__.d(getter, { a: getter }) - /******/ return getter - /******/ - } - /******/ - })() - /******/ - /******/ /* webpack/runtime/define property getters */ - /******/ ;(() => { - /******/ // define getter functions for harmony exports - /******/ __webpack_require__.d = (exports, definition) => { - /******/ for (var key in definition) { - /******/ if ( - __webpack_require__.o(definition, key) && - !__webpack_require__.o(exports, key) - ) { - /******/ Object.defineProperty(exports, key, { - enumerable: true, - get: definition[key] - }) - /******/ - } - /******/ - } - /******/ - } - /******/ - })() - /******/ - /******/ /* webpack/runtime/hasOwnProperty shorthand */ - /******/ ;(() => { - /******/ __webpack_require__.o = (obj, prop) => - Object.prototype.hasOwnProperty.call(obj, prop) - /******/ - })() - /******/ - /******/ /* webpack/runtime/make namespace object */ - /******/ ;(() => { - /******/ // define __esModule on exports - /******/ __webpack_require__.r = exports => { - /******/ if (typeof Symbol !== 'undefined' && Symbol.toStringTag) { - /******/ Object.defineProperty(exports, Symbol.toStringTag, { - value: 'Module' - }) - /******/ - } - /******/ Object.defineProperty(exports, '__esModule', { value: true }) - /******/ - } - /******/ - })() - /******/ - /************************************************************************/ - var __webpack_exports__ = {} - // This entry need to be wrapped in an IIFE because it need to be in strict mode. - ;(() => { - 'use strict' - /*!****************************!*\ - !*** ./main/background.ts ***! - \****************************/ - __webpack_require__.r(__webpack_exports__) - /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = - __webpack_require__(/*! path */ 'path') - /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = - /*#__PURE__*/ __webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__) - /* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_1__ = - __webpack_require__(/*! electron */ 'electron') - /* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_1___default = - /*#__PURE__*/ __webpack_require__.n( - electron__WEBPACK_IMPORTED_MODULE_1__ - ) - /* harmony import */ var electron_serve__WEBPACK_IMPORTED_MODULE_2__ = - __webpack_require__(/*! electron-serve */ 'electron-serve') - /* harmony import */ var electron_serve__WEBPACK_IMPORTED_MODULE_2___default = - /*#__PURE__*/ __webpack_require__.n( - electron_serve__WEBPACK_IMPORTED_MODULE_2__ - ) - /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = - __webpack_require__(/*! ./helpers */ './main/helpers/index.ts') - - const isProd = 'development' === 'production' - if (isProd) { - electron_serve__WEBPACK_IMPORTED_MODULE_2___default()({ - directory: 'app' - }) - } else { - electron__WEBPACK_IMPORTED_MODULE_1__.app.setPath( - 'userData', - `${electron__WEBPACK_IMPORTED_MODULE_1__.app.getPath('userData')} (development)` - ) - } - ;(async () => { - await electron__WEBPACK_IMPORTED_MODULE_1__.app.whenReady() - const mainWindow = (0, - _helpers__WEBPACK_IMPORTED_MODULE_3__.createWindow)('main', { - width: 1000, - height: 600, - webPreferences: { - preload: path__WEBPACK_IMPORTED_MODULE_0___default().join( - __dirname, - 'preload.js' - ) - } - }) - if (isProd) { - await mainWindow.loadURL('app://./') - } else { - const port = process.argv[2] - await mainWindow.loadURL(`http://localhost:${port}/`) - mainWindow.webContents.openDevTools() - } - })() - electron__WEBPACK_IMPORTED_MODULE_1__.app.on( - 'window-all-closed', - () => { - electron__WEBPACK_IMPORTED_MODULE_1__.app.quit() - } - ) - })() - - /******/ return __webpack_exports__ - /******/ - })() - } -) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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dGUtbmV4dHJvbi1zaGFkY24vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbWFpbi9oZWxwZXJzL2NyZWF0ZS13aW5kb3cudHMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9tYWluL2hlbHBlcnMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcImVsZWN0cm9uXCIiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcInBhdGhcIiIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi9leHRlcm5hbCB1bWQgXCJlbGVjdHJvbi1zZXJ2ZVwiIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuL2V4dGVybmFsIHVtZCBcImVsZWN0cm9uLXN0b3JlXCIiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL2luc3RhbmNlL3NvbWUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvb2JqZWN0L2RlZmluZS1wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL29iamVjdC9nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9vYmplY3Qva2V5cy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9oZWxwZXJzL3RvUHJpbWl0aXZlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvaGVscGVycy90b1Byb3BlcnR5S2V5LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvaGVscGVycy90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2FjdHVhbC9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9hY3R1YWwvc3ltYm9sL2luZGV4LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9hY3R1YWwvc3ltYm9sL2l0ZXJhdG9yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9hY3R1YWwvc3ltYm9sL3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvYXJyYXkvdmlydHVhbC9maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvc29tZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2UvZmlsdGVyLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9zb21lLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3QvZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3Qva2V5cy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvc3ltYm9sL2luZGV4LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9zeW1ib2wvaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL3N5bWJvbC90by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ZlYXR1cmVzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ZlYXR1cmVzL3N5bWJvbC9pbmRleC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZmVhdHVyZXMvc3ltYm9sL2l0ZXJhdG9yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mZWF0dXJlcy9zeW1ib2wvdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mdWxsL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2Z1bGwvc3ltYm9sL2luZGV4LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mdWxsL3N5bWJvbC9pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZnVsbC9zeW1ib2wvdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYS1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2EtcG9zc2libGUtcHJvdG90eXBlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYW4tb2JqZWN0LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LXNsaWNlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY2xhc3NvZi1yYXcuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jbGFzc29mLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY29ycmVjdC1wcm90b3R5cGUtZ2V0dGVyLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLWl0ZXItcmVzdWx0LW9iamVjdC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kb2VzLW5vdC1leGNlZWQtc2FmZS1pbnRlZ2VyLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZG9tLWl0ZXJhYmxlcy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lbnZpcm9ubWVudC11c2VyLWFnZW50LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2V4cG9ydC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2ZhaWxzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHkuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1uYW1lLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWFjY2Vzc29yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2V0LWpzb24tcmVwbGFjZXItZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtbWV0aG9kLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9odG1sLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLWNhbGxhYmxlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1udWxsLW9yLXVuZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLXBvc3NpYmxlLXByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLXB1cmUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvci1jcmVhdGUtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvci1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvcnMtY29yZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvbWF0aC10cnVuYy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtY3JlYXRlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy1leHRlcm5hbC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LXRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29yZGluYXJ5LXRvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL293bi1rZXlzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvcGF0aC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3N0cmluZy1tdWx0aWJ5dGUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc3ltYm9sLWRlZmluZS10by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zeW1ib2wtaXMtcmVnaXN0ZXJlZC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3N5bWJvbC1pcy13ZWxsLWtub3duLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc3ltYm9sLXJlZ2lzdHJ5LWRldGVjdGlvbi5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tbGVuZ3RoLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tb2JqZWN0LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tc3RyaW5nLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3VpZC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdjgtcHJvdG90eXBlLWRlZmluZS1idWcuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy93ZWFrLW1hcC1iYXNpYy1kZXRlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5zb21lLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmRhdGUudG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmpzb24udG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5tYXRoLnRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LmFzc2lnbi5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5vYmplY3QuZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LmRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5yZWZsZWN0LnRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN5bWJvbC5hc3luYy1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zeW1ib2wuY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN5bWJvbC5mb3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuc3ltYm9sLmhhcy1pbnN0YW5jZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zeW1ib2wuaXMtY29uY2F0LXNwcmVhZGFibGUuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuc3ltYm9sLml0ZXJhdG9yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN5bWJvbC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zeW1ib2wua2V5LWZvci5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zeW1ib2wubWF0Y2gtYWxsLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN5bWJvbC5tYXRjaC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zeW1ib2wucmVwbGFjZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zeW1ib2wuc2VhcmNoLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN5bWJvbC5zcGVjaWVzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN5bWJvbC5zcGxpdC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zeW1ib2wudG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN5bWJvbC50by1zdHJpbmctdGFnLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN5bWJvbC51bnNjb3BhYmxlcy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lc25leHQuZnVuY3Rpb24ubWV0YWRhdGEuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5hc3luYy1kaXNwb3NlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzbmV4dC5zeW1ib2wuY3VzdG9tLW1hdGNoZXIuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5kaXNwb3NlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzbmV4dC5zeW1ib2wuaXMtcmVnaXN0ZXJlZC1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5pcy1yZWdpc3RlcmVkLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzbmV4dC5zeW1ib2wuaXMtd2VsbC1rbm93bi1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5pcy13ZWxsLWtub3duLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzbmV4dC5zeW1ib2wubWF0Y2hlci5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lc25leHQuc3ltYm9sLm1ldGFkYXRhLWtleS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lc25leHQuc3ltYm9sLm1ldGFkYXRhLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzbmV4dC5zeW1ib2wub2JzZXJ2YWJsZS5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lc25leHQuc3ltYm9sLnBhdHRlcm4tbWF0Y2guanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5yZXBsYWNlLWFsbC5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9hcnJheS92aXJ0dWFsL2Zvci1lYWNoLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZmlsdGVyLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9zb21lLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9kZWZpbmUtcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2dldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2tleXMuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9zeW1ib2wvaW5kZXguanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9zeW1ib2wvaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9zeW1ib2wvdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vLi9tYWluL2JhY2tncm91bmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeShyZXF1aXJlKFwiZWxlY3Ryb24tc2VydmVcIiksIHJlcXVpcmUoXCJlbGVjdHJvbi1zdG9yZVwiKSk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXCJlbGVjdHJvbi1zZXJ2ZVwiLCBcImVsZWN0cm9uLXN0b3JlXCJdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBmYWN0b3J5KHJlcXVpcmUoXCJlbGVjdHJvbi1zZXJ2ZVwiKSwgcmVxdWlyZShcImVsZWN0cm9uLXN0b3JlXCIpKSA6IGZhY3Rvcnkocm9vdFtcImVsZWN0cm9uLXNlcnZlXCJdLCByb290W1wiZWxlY3Ryb24tc3RvcmVcIl0pO1xuXHRcdGZvcih2YXIgaSBpbiBhKSAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnID8gZXhwb3J0cyA6IHJvb3QpW2ldID0gYVtpXTtcblx0fVxufSkoZ2xvYmFsLCAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9lbGVjdHJvbl9zZXJ2ZV9fLCBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX2VsZWN0cm9uX3N0b3JlX18pID0+IHtcbnJldHVybiAiLCJpbXBvcnQge1xuICBzY3JlZW4sXG4gIEJyb3dzZXJXaW5kb3csXG4gIEJyb3dzZXJXaW5kb3dDb25zdHJ1Y3Rvck9wdGlvbnMsXG4gIFJlY3RhbmdsZVxufSBmcm9tICdlbGVjdHJvbidcbmltcG9ydCBTdG9yZSBmcm9tICdlbGVjdHJvbi1zdG9yZSdcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVdpbmRvdyA9IChcbiAgd2luZG93TmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBCcm93c2VyV2luZG93Q29uc3RydWN0b3JPcHRpb25zXG4pOiBCcm93c2VyV2luZG93ID0+IHtcbiAgY29uc3Qga2V5ID0gJ3dpbmRvdy1zdGF0ZSdcbiAgY29uc3QgbmFtZSA9IGB3aW5kb3ctc3RhdGUtJHt3aW5kb3dOYW1lfWBcbiAgY29uc3Qgc3RvcmUgPSBuZXcgU3RvcmU8UmVjdGFuZ2xlPih7IG5hbWUgfSlcbiAgY29uc3QgZGVmYXVsdFNpemUgPSB7XG4gICAgd2lkdGg6IG9wdGlvbnMud2lkdGgsXG4gICAgaGVpZ2h0OiBvcHRpb25zLmhlaWdodFxuICB9XG4gIGxldCBzdGF0ZSA9IHt9XG5cbiAgY29uc3QgcmVzdG9yZSA9ICgpID0+IHN0b3JlLmdldChrZXksIGRlZmF1bHRTaXplKVxuXG4gIGNvbnN0IGdldEN1cnJlbnRQb3NpdGlvbiA9ICgpID0+IHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHdpbi5nZXRQb3NpdGlvbigpXG4gICAgY29uc3Qgc2l6ZSA9IHdpbi5nZXRTaXplKClcbiAgICByZXR1cm4ge1xuICAgICAgeDogcG9zaXRpb25bMF0sXG4gICAgICB5OiBwb3NpdGlvblsxXSxcbiAgICAgIHdpZHRoOiBzaXplWzBdLFxuICAgICAgaGVpZ2h0OiBzaXplWzFdXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgd2luZG93V2l0aGluQm91bmRzID0gKHdpbmRvd1N0YXRlLCBib3VuZHMpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgd2luZG93U3RhdGUueCA+PSBib3VuZHMueCAmJlxuICAgICAgd2luZG93U3RhdGUueSA+PSBib3VuZHMueSAmJlxuICAgICAgd2luZG93U3RhdGUueCArIHdpbmRvd1N0YXRlLndpZHRoIDw9IGJvdW5kcy54ICsgYm91bmRzLndpZHRoICYmXG4gICAgICB3aW5kb3dTdGF0ZS55ICsgd2luZG93U3RhdGUuaGVpZ2h0IDw9IGJvdW5kcy55ICsgYm91bmRzLmhlaWdodFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlc2V0VG9EZWZhdWx0cyA9ICgpID0+IHtcbiAgICBjb25zdCBib3VuZHMgPSBzY3JlZW4uZ2V0UHJpbWFyeURpc3BsYXkoKS5ib3VuZHNcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFNpemUsIHtcbiAgICAgIHg6IChib3VuZHMud2lkdGggLSBkZWZhdWx0U2l6ZS53aWR0aCkgLyAyLFxuICAgICAgeTogKGJvdW5kcy5oZWlnaHQgLSBkZWZhdWx0U2l6ZS5oZWlnaHQpIC8gMlxuICAgIH0pXG4gIH1cblxuICBjb25zdCBlbnN1cmVWaXNpYmxlT25Tb21lRGlzcGxheSA9IHdpbmRvd1N0YXRlID0+IHtcbiAgICBjb25zdCB2aXNpYmxlID0gc2NyZWVuLmdldEFsbERpc3BsYXlzKCkuc29tZShkaXNwbGF5ID0+IHtcbiAgICAgIHJldHVybiB3aW5kb3dXaXRoaW5Cb3VuZHMod2luZG93U3RhdGUsIGRpc3BsYXkuYm91bmRzKVxuICAgIH0pXG4gICAgaWYgKCF2aXNpYmxlKSB7XG4gICAgICAvLyBXaW5kb3cgaXMgcGFydGlhbGx5IG9yIGZ1bGx5IG5vdCB2aXNpYmxlIG5vdy5cbiAgICAgIC8vIFJlc2V0IGl0IHRvIHNhZmUgZGVmYXVsdHMuXG4gICAgICByZXR1cm4gcmVzZXRUb0RlZmF1bHRzKClcbiAgICB9XG4gICAgcmV0dXJuIHdpbmRvd1N0YXRlXG4gIH1cblxuICBjb25zdCBzYXZlU3RhdGUgPSAoKSA9PiB7XG4gICAgaWYgKCF3aW4uaXNNaW5pbWl6ZWQoKSAmJiAhd2luLmlzTWF4aW1pemVkKCkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oc3RhdGUsIGdldEN1cnJlbnRQb3NpdGlvbigpKVxuICAgIH1cbiAgICBzdG9yZS5zZXQoa2V5LCBzdGF0ZSlcbiAgfVxuXG4gIHN0YXRlID0gZW5zdXJlVmlzaWJsZU9uU29tZURpc3BsYXkocmVzdG9yZSgpKVxuXG4gIGNvbnN0IHdpbiA9IG5ldyBCcm93c2VyV2luZG93KHtcbiAgICAuLi5zdGF0ZSxcbiAgICAuLi5vcHRpb25zLFxuICAgIHdlYlByZWZlcmVuY2VzOiB7XG4gICAgICBub2RlSW50ZWdyYXRpb246IGZhbHNlLFxuICAgICAgY29udGV4dElzb2xhdGlvbjogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMud2ViUHJlZmVyZW5jZXNcbiAgICB9XG4gIH0pXG5cbiAgd2luLm9uKCdjbG9zZScsIHNhdmVTdGF0ZSlcblxuICByZXR1cm4gd2luXG59XG4iLCJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZS13aW5kb3cnXG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJwYXRoXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9lbGVjdHJvbl9zZXJ2ZV9fOyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9lbGVjdHJvbl9zdG9yZV9fOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZmlsdGVyXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZm9yLWVhY2hcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9zb21lXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2Fzc2lnblwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9kZWZpbmUtcHJvcGVydGllc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9kZWZpbmUtcHJvcGVydHlcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2dldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcnNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2tleXNcIik7IiwidmFyIF9PYmplY3QkZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL2ZlYXR1cmVzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanNcIik7XG52YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoXCIuL3RvUHJvcGVydHlLZXkuanNcIik7XG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkoZSwgciwgdCkge1xuICByZXR1cm4gKHIgPSB0b1Byb3BlcnR5S2V5KHIpKSBpbiBlID8gX09iamVjdCRkZWZpbmVQcm9wZXJ0eShlLCByLCB7XG4gICAgdmFsdWU6IHQsXG4gICAgZW51bWVyYWJsZTogITAsXG4gICAgY29uZmlndXJhYmxlOiAhMCxcbiAgICB3cml0YWJsZTogITBcbiAgfSkgOiBlW3JdID0gdCwgZTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2RlZmluZVByb3BlcnR5LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwidmFyIF9TeW1ib2wkdG9QcmltaXRpdmUgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL2ZlYXR1cmVzL3N5bWJvbC90by1wcmltaXRpdmUuanNcIik7XG52YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuL3R5cGVvZi5qc1wiKVtcImRlZmF1bHRcIl07XG5mdW5jdGlvbiB0b1ByaW1pdGl2ZSh0LCByKSB7XG4gIGlmIChcIm9iamVjdFwiICE9IF90eXBlb2YodCkgfHwgIXQpIHJldHVybiB0O1xuICB2YXIgZSA9IHRbX1N5bWJvbCR0b1ByaW1pdGl2ZV07XG4gIGlmICh2b2lkIDAgIT09IGUpIHtcbiAgICB2YXIgaSA9IGUuY2FsbCh0LCByIHx8IFwiZGVmYXVsdFwiKTtcbiAgICBpZiAoXCJvYmplY3RcIiAhPSBfdHlwZW9mKGkpKSByZXR1cm4gaTtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS5cIik7XG4gIH1cbiAgcmV0dXJuIChcInN0cmluZ1wiID09PSByID8gU3RyaW5nIDogTnVtYmVyKSh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gdG9QcmltaXRpdmUsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuL3R5cGVvZi5qc1wiKVtcImRlZmF1bHRcIl07XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKFwiLi90b1ByaW1pdGl2ZS5qc1wiKTtcbmZ1bmN0aW9uIHRvUHJvcGVydHlLZXkodCkge1xuICB2YXIgaSA9IHRvUHJpbWl0aXZlKHQsIFwic3RyaW5nXCIpO1xuICByZXR1cm4gXCJzeW1ib2xcIiA9PSBfdHlwZW9mKGkpID8gaSA6IGkgKyBcIlwiO1xufVxubW9kdWxlLmV4cG9ydHMgPSB0b1Byb3BlcnR5S2V5LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7IiwidmFyIF9TeW1ib2wgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL2ZlYXR1cmVzL3N5bWJvbC9pbmRleC5qc1wiKTtcbnZhciBfU3ltYm9sJGl0ZXJhdG9yID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9mZWF0dXJlcy9zeW1ib2wvaXRlcmF0b3IuanNcIik7XG5mdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBfU3ltYm9sICYmIFwic3ltYm9sXCIgPT0gdHlwZW9mIF9TeW1ib2wkaXRlcmF0b3IgPyBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiB0eXBlb2YgbztcbiAgfSA6IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIG8gJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBfU3ltYm9sICYmIG8uY29uc3RydWN0b3IgPT09IF9TeW1ib2wgJiYgbyAhPT0gX1N5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG87XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cyksIF90eXBlb2Yobyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF90eXBlb2YsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vc3RhYmxlL29iamVjdC9kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vc3RhYmxlL3N5bWJvbCcpO1xuXG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzbmV4dC5mdW5jdGlvbi5tZXRhZGF0YScpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lc25leHQuc3ltYm9sLmFzeW5jLWRpc3Bvc2UnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5kaXNwb3NlJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzbmV4dC5zeW1ib2wubWV0YWRhdGEnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vc3RhYmxlL3N5bWJvbC9pdGVyYXRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9zdGFibGUvc3ltYm9sL3RvLXByaW1pdGl2ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyJyk7XG52YXIgZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCA9IHJlcXVpcmUoJy4uLy4uLy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QoJ0FycmF5JywgJ2ZpbHRlcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5mb3ItZWFjaCcpO1xudmFyIGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kKCdBcnJheScsICdmb3JFYWNoJyk7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLmFycmF5LnNvbWUnKTtcbnZhciBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCgnQXJyYXknLCAnc29tZScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIG1ldGhvZCA9IHJlcXVpcmUoJy4uL2FycmF5L3ZpcnR1YWwvZmlsdGVyJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmZpbHRlcjtcbiAgcmV0dXJuIGl0ID09PSBBcnJheVByb3RvdHlwZSB8fCAoaXNQcm90b3R5cGVPZihBcnJheVByb3RvdHlwZSwgaXQpICYmIG93biA9PT0gQXJyYXlQcm90b3R5cGUuZmlsdGVyKSA/IG1ldGhvZCA6IG93bjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgbWV0aG9kID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9zb21lJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LnNvbWU7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGlzUHJvdG90eXBlT2YoQXJyYXlQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLnNvbWUpID8gbWV0aG9kIDogb3duO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LmFzc2lnbicpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGguT2JqZWN0LmFzc2lnbjtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LmRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9wYXRoJyk7XG5cbnZhciBPYmplY3QgPSBwYXRoLk9iamVjdDtcblxudmFyIGRlZmluZVByb3BlcnRpZXMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoVCwgRCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVCwgRCk7XG59O1xuXG5pZiAoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMuc2hhbSkgZGVmaW5lUHJvcGVydGllcy5zaGFtID0gdHJ1ZTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LmRlZmluZS1wcm9wZXJ0eScpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG52YXIgT2JqZWN0ID0gcGF0aC5PYmplY3Q7XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYykge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpO1xufTtcblxuaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eS5zaGFtKSBkZWZpbmVQcm9wZXJ0eS5zaGFtID0gdHJ1ZTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LmdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG52YXIgT2JqZWN0ID0gcGF0aC5PYmplY3Q7XG5cbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihpdCwga2V5KSB7XG4gIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpO1xufTtcblxuaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iuc2hhbSkgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLnNoYW0gPSB0cnVlO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9ycycpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGguT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLnN5bWJvbCcpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGguT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LmtleXMnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXRoLk9iamVjdC5rZXlzO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5jb25jYXQnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zeW1ib2wnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLnN5bWJvbC5kZXNjcmlwdGlvbicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zeW1ib2wuaGFzLWluc3RhbmNlJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLnN5bWJvbC5pcy1jb25jYXQtc3ByZWFkYWJsZScpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zeW1ib2wuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuc3ltYm9sLm1hdGNoJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLnN5bWJvbC5tYXRjaC1hbGwnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuc3ltYm9sLnJlcGxhY2UnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuc3ltYm9sLnNlYXJjaCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zeW1ib2wuc3BlY2llcycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zeW1ib2wuc3BsaXQnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuc3ltYm9sLnRvLXByaW1pdGl2ZScpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zeW1ib2wudG8tc3RyaW5nLXRhZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zeW1ib2wudW5zY29wYWJsZXMnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuanNvbi50by1zdHJpbmctdGFnJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLm1hdGgudG8tc3RyaW5nLXRhZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5yZWZsZWN0LnRvLXN0cmluZy10YWcnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXRoLlN5bWJvbDtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMuc3ltYm9sLml0ZXJhdG9yJyk7XG52YXIgV3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZSA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gV3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZS5mKCdpdGVyYXRvcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5kYXRlLnRvLXByaW1pdGl2ZScpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5zeW1ib2wudG8tcHJpbWl0aXZlJyk7XG52YXIgV3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZSA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gV3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZS5mKCd0b1ByaW1pdGl2ZScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9mdWxsL29iamVjdC9kZWZpbmUtcHJvcGVydHknKTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vZnVsbC9zeW1ib2wnKTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vZnVsbC9zeW1ib2wvaXRlcmF0b3InKTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vZnVsbC9zeW1ib2wvdG8tcHJpbWl0aXZlJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vYWN0dWFsL29iamVjdC9kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vYWN0dWFsL3N5bWJvbCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lc25leHQuc3ltYm9sLmlzLXJlZ2lzdGVyZWQtc3ltYm9sJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzbmV4dC5zeW1ib2wuaXMtd2VsbC1rbm93bi1zeW1ib2wnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5jdXN0b20tbWF0Y2hlcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lc25leHQuc3ltYm9sLm9ic2VydmFibGUnKTtcbi8vIFRPRE86IFJlbW92ZSBmcm9tIGBjb3JlLWpzQDRgXG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzbmV4dC5zeW1ib2wuaXMtcmVnaXN0ZXJlZCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lc25leHQuc3ltYm9sLmlzLXdlbGwta25vd24nKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5tYXRjaGVyJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzbmV4dC5zeW1ib2wubWV0YWRhdGEta2V5Jyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzbmV4dC5zeW1ib2wucGF0dGVybi1tYXRjaCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lc25leHQuc3ltYm9sLnJlcGxhY2UtYWxsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2FjdHVhbC9zeW1ib2wvaXRlcmF0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vYWN0dWFsL3N5bWJvbC90by1wcmltaXRpdmUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IElzQ2FsbGFibGUoYXJndW1lbnQpIGlzIHRydWVgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IodHJ5VG9TdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc1Bvc3NpYmxlUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXBvc3NpYmxlLXByb3RvdHlwZScpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNQb3NzaWJsZVByb3RvdHlwZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBzZXQgXCIgKyAkU3RyaW5nKGFyZ3VtZW50KSArICcgYXMgYSBwcm90b3R5cGUnKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyICRTdHJpbmcgPSBTdHJpbmc7XG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYEFzc2VydDogVHlwZShhcmd1bWVudCkgaXMgT2JqZWN0YFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGlzT2JqZWN0KGFyZ3VtZW50KSkgcmV0dXJuIGFyZ3VtZW50O1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcigkU3RyaW5nKGFyZ3VtZW50KSArICcgaXMgbm90IGFuIG9iamVjdCcpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5mb3JFYWNoO1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xuXG52YXIgU1RSSUNUX01FVEhPRCA9IGFycmF5TWV0aG9kSXNTdHJpY3QoJ2ZvckVhY2gnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbm1vZHVsZS5leHBvcnRzID0gIVNUUklDVF9NRVRIT0QgPyBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkZm9yRWFjaCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWZvcmVhY2ggLS0gc2FmZVxufSA6IFtdLmZvckVhY2g7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS57IGluZGV4T2YsIGluY2x1ZGVzIH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gICAgaWYgKGxlbmd0aCA9PT0gMCkgcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT09IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUgLS0gTmFOIGNoZWNrXG4gICAgICBpZiAodmFsdWUgIT09IHZhbHVlKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBBcnJheSNpbmRleE9mIGlnbm9yZXMgaG9sZXMsIEFycmF5I2luY2x1ZGVzIC0gbm90XG4gICAgfSBlbHNlIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSB7XG4gICAgICBpZiAoKElTX0lOQ0xVREVTIHx8IGluZGV4IGluIE8pICYmIE9baW5kZXhdID09PSBlbCkgcmV0dXJuIElTX0lOQ0xVREVTIHx8IGluZGV4IHx8IDA7XG4gICAgfSByZXR1cm4gIUlTX0lOQ0xVREVTICYmIC0xO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBBcnJheS5wcm90b3R5cGUuaW5jbHVkZXNgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5pbmNsdWRlc1xuICBpbmNsdWRlczogY3JlYXRlTWV0aG9kKHRydWUpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmluZGV4T2ZgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5pbmRleG9mXG4gIGluZGV4T2Y6IGNyZWF0ZU1ldGhvZChmYWxzZSlcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciBhcnJheVNwZWNpZXNDcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUnKTtcblxudmFyIHB1c2ggPSB1bmN1cnJ5VGhpcyhbXS5wdXNoKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS57IGZvckVhY2gsIG1hcCwgZmlsdGVyLCBzb21lLCBldmVyeSwgZmluZCwgZmluZEluZGV4LCBmaWx0ZXJSZWplY3QgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHZhciBJU19NQVAgPSBUWVBFID09PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PT0gMjtcbiAgdmFyIElTX1NPTUUgPSBUWVBFID09PSAzO1xuICB2YXIgSVNfRVZFUlkgPSBUWVBFID09PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9IFRZUEUgPT09IDY7XG4gIHZhciBJU19GSUxURVJfUkVKRUNUID0gVFlQRSA9PT0gNztcbiAgdmFyIE5PX0hPTEVTID0gVFlQRSA9PT0gNSB8fCBJU19GSU5EX0lOREVYO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0LCBzcGVjaWZpY0NyZWF0ZSkge1xuICAgIHZhciBPID0gdG9PYmplY3QoJHRoaXMpO1xuICAgIHZhciBzZWxmID0gSW5kZXhlZE9iamVjdChPKTtcbiAgICB2YXIgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2Uoc2VsZik7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIHRoYXQpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGNyZWF0ZSA9IHNwZWNpZmljQ3JlYXRlIHx8IGFycmF5U3BlY2llc0NyZWF0ZTtcbiAgICB2YXIgdGFyZ2V0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSIHx8IElTX0ZJTFRFUl9SRUpFQ1QgPyBjcmVhdGUoJHRoaXMsIDApIDogdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSwgcmVzdWx0O1xuICAgIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoTk9fSE9MRVMgfHwgaW5kZXggaW4gc2VsZikge1xuICAgICAgdmFsdWUgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlc3VsdCA9IGJvdW5kRnVuY3Rpb24odmFsdWUsIGluZGV4LCBPKTtcbiAgICAgIGlmIChUWVBFKSB7XG4gICAgICAgIGlmIChJU19NQVApIHRhcmdldFtpbmRleF0gPSByZXN1bHQ7IC8vIG1hcFxuICAgICAgICBlbHNlIGlmIChyZXN1bHQpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAvLyBzb21lXG4gICAgICAgICAgY2FzZSA1OiByZXR1cm4gdmFsdWU7ICAgICAgICAgICAgIC8vIGZpbmRcbiAgICAgICAgICBjYXNlIDY6IHJldHVybiBpbmRleDsgICAgICAgICAgICAgLy8gZmluZEluZGV4XG4gICAgICAgICAgY2FzZSAyOiBwdXNoKHRhcmdldCwgdmFsdWUpOyAgICAgIC8vIGZpbHRlclxuICAgICAgICB9IGVsc2Ugc3dpdGNoIChUWVBFKSB7XG4gICAgICAgICAgY2FzZSA0OiByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgIC8vIGV2ZXJ5XG4gICAgICAgICAgY2FzZSA3OiBwdXNoKHRhcmdldCwgdmFsdWUpOyAgICAgIC8vIGZpbHRlclJlamVjdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBJU19GSU5EX0lOREVYID8gLTEgOiBJU19TT01FIHx8IElTX0VWRVJZID8gSVNfRVZFUlkgOiB0YXJnZXQ7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuICBmb3JFYWNoOiBjcmVhdGVNZXRob2QoMCksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUubWFwXG4gIG1hcDogY3JlYXRlTWV0aG9kKDEpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbHRlclxuICBmaWx0ZXI6IGNyZWF0ZU1ldGhvZCgyKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5zb21lYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc29tZVxuICBzb21lOiBjcmVhdGVNZXRob2QoMyksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZXZlcnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5ldmVyeVxuICBldmVyeTogY3JlYXRlTWV0aG9kKDQpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kXG4gIGZpbmQ6IGNyZWF0ZU1ldGhvZCg1KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhcbiAgZmluZEluZGV4OiBjcmVhdGVNZXRob2QoNiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyUmVqZWN0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtYXJyYXktZmlsdGVyaW5nXG4gIGZpbHRlclJlamVjdDogY3JlYXRlTWV0aG9kKDcpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgVjhfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC12OC12ZXJzaW9uJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FKSB7XG4gIC8vIFdlIGNhbid0IHVzZSB0aGlzIGZlYXR1cmUgZGV0ZWN0aW9uIGluIFY4IHNpbmNlIGl0IGNhdXNlc1xuICAvLyBkZW9wdGltaXphdGlvbiBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjc3XG4gIHJldHVybiBWOF9WRVJTSU9OID49IDUxIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFycmF5ID0gW107XG4gICAgdmFyIGNvbnN0cnVjdG9yID0gYXJyYXkuY29uc3RydWN0b3IgPSB7fTtcbiAgICBjb25zdHJ1Y3RvcltTUEVDSUVTXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7IGZvbzogMSB9O1xuICAgIH07XG4gICAgcmV0dXJuIGFycmF5W01FVEhPRF9OQU1FXShCb29sZWFuKS5mb28gIT09IDE7XG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSwgYXJndW1lbnQpIHtcbiAgdmFyIG1ldGhvZCA9IFtdW01FVEhPRF9OQU1FXTtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gICAgbWV0aG9kLmNhbGwobnVsbCwgYXJndW1lbnQgfHwgZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfSwgMSk7XG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB1bmN1cnJ5VGhpcyhbXS5zbGljZSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIGlzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3InKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbnZhciAkQXJyYXkgPSBBcnJheTtcblxuLy8gYSBwYXJ0IG9mIGBBcnJheVNwZWNpZXNDcmVhdGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNwZWNpZXNjcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXkpIHtcbiAgdmFyIEM7XG4gIGlmIChpc0FycmF5KG9yaWdpbmFsQXJyYXkpKSB7XG4gICAgQyA9IG9yaWdpbmFsQXJyYXkuY29uc3RydWN0b3I7XG4gICAgLy8gY3Jvc3MtcmVhbG0gZmFsbGJhY2tcbiAgICBpZiAoaXNDb25zdHJ1Y3RvcihDKSAmJiAoQyA9PT0gJEFycmF5IHx8IGlzQXJyYXkoQy5wcm90b3R5cGUpKSkgQyA9IHVuZGVmaW5lZDtcbiAgICBlbHNlIGlmIChpc09iamVjdChDKSkge1xuICAgICAgQyA9IENbU1BFQ0lFU107XG4gICAgICBpZiAoQyA9PT0gbnVsbCkgQyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0gcmV0dXJuIEMgPT09IHVuZGVmaW5lZCA/ICRBcnJheSA6IEM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFycmF5U3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY29uc3RydWN0b3InKTtcblxuLy8gYEFycmF5U3BlY2llc0NyZWF0ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5c3BlY2llc2NyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWxBcnJheSwgbGVuZ3RoKSB7XG4gIHJldHVybiBuZXcgKGFycmF5U3BlY2llc0NvbnN0cnVjdG9yKG9yaWdpbmFsQXJyYXkpKShsZW5ndGggPT09IDAgPyAwIDogbGVuZ3RoKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKHt9LnRvU3RyaW5nKTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHN0cmluZ1NsaWNlKHRvU3RyaW5nKGl0KSwgOCwgLTEpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG4vLyBnZXR0aW5nIHRhZyBmcm9tIEVTNisgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgXG5tb2R1bGUuZXhwb3J0cyA9IFRPX1NUUklOR19UQUdfU1VQUE9SVCA/IGNsYXNzb2ZSYXcgOiBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIE8sIHRhZywgcmVzdWx0O1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAodGFnID0gdHJ5R2V0KE8gPSAkT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT09ICdPYmplY3QnICYmIGlzQ2FsbGFibGUoTy5jYWxsZWUpID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gRigpIHsgLyogZW1wdHkgKi8gfVxuICBGLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IG51bGw7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0cHJvdG90eXBlb2YgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgRigpKSAhPT0gRi5wcm90b3R5cGU7XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGBDcmVhdGVJdGVyUmVzdWx0T2JqZWN0YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtY3JlYXRlaXRlcnJlc3VsdG9iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsdWUsIGRvbmUpIHtcbiAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlLCBkb25lOiBkb25lIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHlNb2R1bGUuZihvYmplY3QsIGtleSwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcbiAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcbiAgICB2YWx1ZTogdmFsdWVcbiAgfTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtrZXldID0gdmFsdWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKSB7XG4gIHJldHVybiBkZWZpbmVQcm9wZXJ0eS5mKHRhcmdldCwgbmFtZSwgZGVzY3JpcHRvcik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBrZXksIHZhbHVlLCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZW51bWVyYWJsZSkgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgZWxzZSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodGFyZ2V0LCBrZXksIHZhbHVlKTtcbiAgcmV0dXJuIHRhcmdldDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICB0cnkge1xuICAgIGRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsIGtleSwgeyB2YWx1ZTogdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZ2xvYmFsVGhpc1trZXldID0gdmFsdWU7XG4gIH0gcmV0dXJuIHZhbHVlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBEZXRlY3QgSUU4J3MgaW5jb21wbGV0ZSBkZWZpbmVQcm9wZXJ0eSBpbXBsZW1lbnRhdGlvblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIDEsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pWzFdICE9PSA3O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgZG9jdW1lbnQgPSBnbG9iYWxUaGlzLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgRVhJU1RTID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gRVhJU1RTID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gMHgxRkZGRkZGRkZGRkZGRjsgLy8gMiAqKiA1MyAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPiBNQVhfU0FGRV9JTlRFR0VSKSB0aHJvdyAkVHlwZUVycm9yKCdNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGl0ZXJhYmxlIERPTSBjb2xsZWN0aW9uc1xuLy8gZmxhZyAtIGBpdGVyYWJsZWAgaW50ZXJmYWNlIC0gJ2VudHJpZXMnLCAna2V5cycsICd2YWx1ZXMnLCAnZm9yRWFjaCcgbWV0aG9kc1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIENTU1J1bGVMaXN0OiAwLFxuICBDU1NTdHlsZURlY2xhcmF0aW9uOiAwLFxuICBDU1NWYWx1ZUxpc3Q6IDAsXG4gIENsaWVudFJlY3RMaXN0OiAwLFxuICBET01SZWN0TGlzdDogMCxcbiAgRE9NU3RyaW5nTGlzdDogMCxcbiAgRE9NVG9rZW5MaXN0OiAxLFxuICBEYXRhVHJhbnNmZXJJdGVtTGlzdDogMCxcbiAgRmlsZUxpc3Q6IDAsXG4gIEhUTUxBbGxDb2xsZWN0aW9uOiAwLFxuICBIVE1MQ29sbGVjdGlvbjogMCxcbiAgSFRNTEZvcm1FbGVtZW50OiAwLFxuICBIVE1MU2VsZWN0RWxlbWVudDogMCxcbiAgTWVkaWFMaXN0OiAwLFxuICBNaW1lVHlwZUFycmF5OiAwLFxuICBOYW1lZE5vZGVNYXA6IDAsXG4gIE5vZGVMaXN0OiAxLFxuICBQYWludFJlcXVlc3RMaXN0OiAwLFxuICBQbHVnaW46IDAsXG4gIFBsdWdpbkFycmF5OiAwLFxuICBTVkdMZW5ndGhMaXN0OiAwLFxuICBTVkdOdW1iZXJMaXN0OiAwLFxuICBTVkdQYXRoU2VnTGlzdDogMCxcbiAgU1ZHUG9pbnRMaXN0OiAwLFxuICBTVkdTdHJpbmdMaXN0OiAwLFxuICBTVkdUcmFuc2Zvcm1MaXN0OiAwLFxuICBTb3VyY2VCdWZmZXJMaXN0OiAwLFxuICBTdHlsZVNoZWV0TGlzdDogMCxcbiAgVGV4dFRyYWNrQ3VlTGlzdDogMCxcbiAgVGV4dFRyYWNrTGlzdDogMCxcbiAgVG91Y2hMaXN0OiAwXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gSUU4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IFtcbiAgJ2NvbnN0cnVjdG9yJyxcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZidcbl07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG52YXIgbmF2aWdhdG9yID0gZ2xvYmFsVGhpcy5uYXZpZ2F0b3I7XG52YXIgdXNlckFnZW50ID0gbmF2aWdhdG9yICYmIG5hdmlnYXRvci51c2VyQWdlbnQ7XG5cbm1vZHVsZS5leHBvcnRzID0gdXNlckFnZW50ID8gU3RyaW5nKHVzZXJBZ2VudCkgOiAnJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcblxudmFyIHByb2Nlc3MgPSBnbG9iYWxUaGlzLnByb2Nlc3M7XG52YXIgRGVubyA9IGdsb2JhbFRoaXMuRGVubztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucyB8fCBEZW5vICYmIERlbm8udmVyc2lvbjtcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4O1xudmFyIG1hdGNoLCB2ZXJzaW9uO1xuXG5pZiAodjgpIHtcbiAgbWF0Y2ggPSB2OC5zcGxpdCgnLicpO1xuICAvLyBpbiBvbGQgQ2hyb21lLCB2ZXJzaW9ucyBvZiBWOCBpc24ndCBWOCA9IENocm9tZSAvIDEwXG4gIC8vIGJ1dCB0aGVpciBjb3JyZWN0IHZlcnNpb25zIGFyZSBub3QgaW50ZXJlc3RpbmcgZm9yIHVzXG4gIHZlcnNpb24gPSBtYXRjaFswXSA+IDAgJiYgbWF0Y2hbMF0gPCA0ID8gMSA6ICsobWF0Y2hbMF0gKyBtYXRjaFsxXSk7XG59XG5cbi8vIEJyb3dzZXJGUyBOb2RlSlMgYHByb2Nlc3NgIHBvbHlmaWxsIGluY29ycmVjdGx5IHNldCBgLnY4YCB0byBgMC4wYFxuLy8gc28gY2hlY2sgYHVzZXJBZ2VudGAgZXZlbiBpZiBgLnY4YCBleGlzdHMsIGJ1dCAwXG5pZiAoIXZlcnNpb24gJiYgdXNlckFnZW50KSB7XG4gIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9FZGdlXFwvKFxcZCspLyk7XG4gIGlmICghbWF0Y2ggfHwgbWF0Y2hbMV0gPj0gNzQpIHtcbiAgICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLyk7XG4gICAgaWYgKG1hdGNoKSB2ZXJzaW9uID0gK21hdGNoWzFdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmVyc2lvbjtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgYXBwbHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHknKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xuLy8gYWRkIGRlYnVnZ2luZyBpbmZvXG5yZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbnZhciB3cmFwQ29uc3RydWN0b3IgPSBmdW5jdGlvbiAoTmF0aXZlQ29uc3RydWN0b3IpIHtcbiAgdmFyIFdyYXBwZXIgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgV3JhcHBlcikge1xuICAgICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBOYXRpdmVDb25zdHJ1Y3RvcigpO1xuICAgICAgICBjYXNlIDE6IHJldHVybiBuZXcgTmF0aXZlQ29uc3RydWN0b3IoYSk7XG4gICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBOYXRpdmVDb25zdHJ1Y3RvcihhLCBiKTtcbiAgICAgIH0gcmV0dXJuIG5ldyBOYXRpdmVDb25zdHJ1Y3RvcihhLCBiLCBjKTtcbiAgICB9IHJldHVybiBhcHBseShOYXRpdmVDb25zdHJ1Y3RvciwgdGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgV3JhcHBlci5wcm90b3R5cGUgPSBOYXRpdmVDb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIHJldHVybiBXcmFwcGVyO1xufTtcblxuLypcbiAgb3B0aW9ucy50YXJnZXQgICAgICAgICAtIG5hbWUgb2YgdGhlIHRhcmdldCBvYmplY3RcbiAgb3B0aW9ucy5nbG9iYWwgICAgICAgICAtIHRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdFxuICBvcHRpb25zLnN0YXQgICAgICAgICAgIC0gZXhwb3J0IGFzIHN0YXRpYyBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnByb3RvICAgICAgICAgIC0gZXhwb3J0IGFzIHByb3RvdHlwZSBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnJlYWwgICAgICAgICAgIC0gcmVhbCBwcm90b3R5cGUgbWV0aG9kIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy5mb3JjZWQgICAgICAgICAtIGV4cG9ydCBldmVuIGlmIHRoZSBuYXRpdmUgZmVhdHVyZSBpcyBhdmFpbGFibGVcbiAgb3B0aW9ucy5iaW5kICAgICAgICAgICAtIGJpbmQgbWV0aG9kcyB0byB0aGUgdGFyZ2V0LCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMud3JhcCAgICAgICAgICAgLSB3cmFwIGNvbnN0cnVjdG9ycyB0byBwcmV2ZW50aW5nIGdsb2JhbCBwb2xsdXRpb24sIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy51bnNhZmUgICAgICAgICAtIHVzZSB0aGUgc2ltcGxlIGFzc2lnbm1lbnQgb2YgcHJvcGVydHkgaW5zdGVhZCBvZiBkZWxldGUgKyBkZWZpbmVQcm9wZXJ0eVxuICBvcHRpb25zLnNoYW0gICAgICAgICAgIC0gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICBvcHRpb25zLmVudW1lcmFibGUgICAgIC0gZXhwb3J0IGFzIGVudW1lcmFibGUgcHJvcGVydHlcbiAgb3B0aW9ucy5kb250Q2FsbEdldFNldCAtIHByZXZlbnQgY2FsbGluZyBhIGdldHRlciBvbiB0YXJnZXRcbiAgb3B0aW9ucy5uYW1lICAgICAgICAgICAtIHRoZSAubmFtZSBvZiB0aGUgZnVuY3Rpb24gaWYgaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGtleVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdGlvbnMsIHNvdXJjZSkge1xuICB2YXIgVEFSR0VUID0gb3B0aW9ucy50YXJnZXQ7XG4gIHZhciBHTE9CQUwgPSBvcHRpb25zLmdsb2JhbDtcbiAgdmFyIFNUQVRJQyA9IG9wdGlvbnMuc3RhdDtcbiAgdmFyIFBST1RPID0gb3B0aW9ucy5wcm90bztcblxuICB2YXIgbmF0aXZlU291cmNlID0gR0xPQkFMID8gZ2xvYmFsVGhpcyA6IFNUQVRJQyA/IGdsb2JhbFRoaXNbVEFSR0VUXSA6IGdsb2JhbFRoaXNbVEFSR0VUXSAmJiBnbG9iYWxUaGlzW1RBUkdFVF0ucHJvdG90eXBlO1xuXG4gIHZhciB0YXJnZXQgPSBHTE9CQUwgPyBwYXRoIDogcGF0aFtUQVJHRVRdIHx8IGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShwYXRoLCBUQVJHRVQsIHt9KVtUQVJHRVRdO1xuICB2YXIgdGFyZ2V0UHJvdG90eXBlID0gdGFyZ2V0LnByb3RvdHlwZTtcblxuICB2YXIgRk9SQ0VELCBVU0VfTkFUSVZFLCBWSVJUVUFMX1BST1RPVFlQRTtcbiAgdmFyIGtleSwgc291cmNlUHJvcGVydHksIHRhcmdldFByb3BlcnR5LCBuYXRpdmVQcm9wZXJ0eSwgcmVzdWx0UHJvcGVydHksIGRlc2NyaXB0b3I7XG5cbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgRk9SQ0VEID0gaXNGb3JjZWQoR0xPQkFMID8ga2V5IDogVEFSR0VUICsgKFNUQVRJQyA/ICcuJyA6ICcjJykgKyBrZXksIG9wdGlvbnMuZm9yY2VkKTtcbiAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcbiAgICBVU0VfTkFUSVZFID0gIUZPUkNFRCAmJiBuYXRpdmVTb3VyY2UgJiYgaGFzT3duKG5hdGl2ZVNvdXJjZSwga2V5KTtcblxuICAgIHRhcmdldFByb3BlcnR5ID0gdGFyZ2V0W2tleV07XG5cbiAgICBpZiAoVVNFX05BVElWRSkgaWYgKG9wdGlvbnMuZG9udENhbGxHZXRTZXQpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobmF0aXZlU291cmNlLCBrZXkpO1xuICAgICAgbmF0aXZlUHJvcGVydHkgPSBkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IudmFsdWU7XG4gICAgfSBlbHNlIG5hdGl2ZVByb3BlcnR5ID0gbmF0aXZlU291cmNlW2tleV07XG5cbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIGltcGxlbWVudGF0aW9uXG4gICAgc291cmNlUHJvcGVydHkgPSAoVVNFX05BVElWRSAmJiBuYXRpdmVQcm9wZXJ0eSkgPyBuYXRpdmVQcm9wZXJ0eSA6IHNvdXJjZVtrZXldO1xuXG4gICAgaWYgKCFGT1JDRUQgJiYgIVBST1RPICYmIHR5cGVvZiB0YXJnZXRQcm9wZXJ0eSA9PSB0eXBlb2Ygc291cmNlUHJvcGVydHkpIGNvbnRpbnVlO1xuXG4gICAgLy8gYmluZCBtZXRob2RzIHRvIGdsb2JhbCBmb3IgY2FsbGluZyBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgaWYgKG9wdGlvbnMuYmluZCAmJiBVU0VfTkFUSVZFKSByZXN1bHRQcm9wZXJ0eSA9IGJpbmQoc291cmNlUHJvcGVydHksIGdsb2JhbFRoaXMpO1xuICAgIC8vIHdyYXAgZ2xvYmFsIGNvbnN0cnVjdG9ycyBmb3IgcHJldmVudCBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvblxuICAgIGVsc2UgaWYgKG9wdGlvbnMud3JhcCAmJiBVU0VfTkFUSVZFKSByZXN1bHRQcm9wZXJ0eSA9IHdyYXBDb25zdHJ1Y3Rvcihzb3VyY2VQcm9wZXJ0eSk7XG4gICAgLy8gbWFrZSBzdGF0aWMgdmVyc2lvbnMgZm9yIHByb3RvdHlwZSBtZXRob2RzXG4gICAgZWxzZSBpZiAoUFJPVE8gJiYgaXNDYWxsYWJsZShzb3VyY2VQcm9wZXJ0eSkpIHJlc3VsdFByb3BlcnR5ID0gdW5jdXJyeVRoaXMoc291cmNlUHJvcGVydHkpO1xuICAgIC8vIGRlZmF1bHQgY2FzZVxuICAgIGVsc2UgcmVzdWx0UHJvcGVydHkgPSBzb3VyY2VQcm9wZXJ0eTtcblxuICAgIC8vIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgICBpZiAob3B0aW9ucy5zaGFtIHx8IChzb3VyY2VQcm9wZXJ0eSAmJiBzb3VyY2VQcm9wZXJ0eS5zaGFtKSB8fCAodGFyZ2V0UHJvcGVydHkgJiYgdGFyZ2V0UHJvcGVydHkuc2hhbSkpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShyZXN1bHRQcm9wZXJ0eSwgJ3NoYW0nLCB0cnVlKTtcbiAgICB9XG5cbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodGFyZ2V0LCBrZXksIHJlc3VsdFByb3BlcnR5KTtcblxuICAgIGlmIChQUk9UTykge1xuICAgICAgVklSVFVBTF9QUk9UT1RZUEUgPSBUQVJHRVQgKyAnUHJvdG90eXBlJztcbiAgICAgIGlmICghaGFzT3duKHBhdGgsIFZJUlRVQUxfUFJPVE9UWVBFKSkge1xuICAgICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocGF0aCwgVklSVFVBTF9QUk9UT1RZUEUsIHt9KTtcbiAgICAgIH1cbiAgICAgIC8vIGV4cG9ydCB2aXJ0dWFsIHByb3RvdHlwZSBtZXRob2RzXG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocGF0aFtWSVJUVUFMX1BST1RPVFlQRV0sIGtleSwgc291cmNlUHJvcGVydHkpO1xuICAgICAgLy8gZXhwb3J0IHJlYWwgcHJvdG90eXBlIG1ldGhvZHNcbiAgICAgIGlmIChvcHRpb25zLnJlYWwgJiYgdGFyZ2V0UHJvdG90eXBlICYmIChGT1JDRUQgfHwgIXRhcmdldFByb3RvdHlwZVtrZXldKSkge1xuICAgICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodGFyZ2V0UHJvdG90eXBlLCBrZXksIHNvdXJjZVByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbnZhciBhcHBseSA9IEZ1bmN0aW9uUHJvdG90eXBlLmFwcGx5O1xudmFyIGNhbGwgPSBGdW5jdGlvblByb3RvdHlwZS5jYWxsO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tcmVmbGVjdCAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiBSZWZsZWN0ID09ICdvYmplY3QnICYmIFJlZmxlY3QuYXBwbHkgfHwgKE5BVElWRV9CSU5EID8gY2FsbC5iaW5kKGFwcGx5KSA6IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbGwuYXBwbHkoYXBwbHksIGFyZ3VtZW50cyk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgYUNhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY2FsbGFibGUnKTtcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgYmluZCA9IHVuY3VycnlUaGlzKHVuY3VycnlUaGlzLmJpbmQpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0KSB7XG4gIGFDYWxsYWJsZShmbik7XG4gIHJldHVybiB0aGF0ID09PSB1bmRlZmluZWQgPyBmbiA6IE5BVElWRV9CSU5EID8gYmluZChmbiwgdGhhdCkgOiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1mdW5jdGlvbi1wcm90b3R5cGUtYmluZCAtLSBzYWZlXG4gIHZhciB0ZXN0ID0gKGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSkuYmluZCgpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zIC0tIHNhZmVcbiAgcmV0dXJuIHR5cGVvZiB0ZXN0ICE9ICdmdW5jdGlvbicgfHwgdGVzdC5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJyk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgY2FsbCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9CSU5EID8gY2FsbC5iaW5kKGNhbGwpIDogZnVuY3Rpb24gKCkge1xuICByZXR1cm4gY2FsbC5hcHBseShjYWxsLCBhcmd1bWVudHMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciBnZXREZXNjcmlwdG9yID0gREVTQ1JJUFRPUlMgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxudmFyIEVYSVNUUyA9IGhhc093bihGdW5jdGlvblByb3RvdHlwZSwgJ25hbWUnKTtcbi8vIGFkZGl0aW9uYWwgcHJvdGVjdGlvbiBmcm9tIG1pbmlmaWVkIC8gbWFuZ2xlZCAvIGRyb3BwZWQgZnVuY3Rpb24gbmFtZXNcbnZhciBQUk9QRVIgPSBFWElTVFMgJiYgKGZ1bmN0aW9uIHNvbWV0aGluZygpIHsgLyogZW1wdHkgKi8gfSkubmFtZSA9PT0gJ3NvbWV0aGluZyc7XG52YXIgQ09ORklHVVJBQkxFID0gRVhJU1RTICYmICghREVTQ1JJUFRPUlMgfHwgKERFU0NSSVBUT1JTICYmIGdldERlc2NyaXB0b3IoRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJykuY29uZmlndXJhYmxlKSk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBFWElTVFM6IEVYSVNUUyxcbiAgUFJPUEVSOiBQUk9QRVIsXG4gIENPTkZJR1VSQUJMRTogQ09ORklHVVJBQkxFXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwga2V5LCBtZXRob2QpIHtcbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG4gICAgcmV0dXJuIHVuY3VycnlUaGlzKGFDYWxsYWJsZShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwga2V5KVttZXRob2RdKSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZlJhdyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbikge1xuICAvLyBOYXNob3JuIGJ1ZzpcbiAgLy8gICBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTEyOFxuICAvLyAgIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy8xMTMwXG4gIGlmIChjbGFzc29mUmF3KGZuKSA9PT0gJ0Z1bmN0aW9uJykgcmV0dXJuIHVuY3VycnlUaGlzKGZuKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTkFUSVZFX0JJTkQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUnKTtcblxudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xudmFyIGNhbGwgPSBGdW5jdGlvblByb3RvdHlwZS5jYWxsO1xudmFyIHVuY3VycnlUaGlzV2l0aEJpbmQgPSBOQVRJVkVfQklORCAmJiBGdW5jdGlvblByb3RvdHlwZS5iaW5kLmJpbmQoY2FsbCwgY2FsbCk7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX0JJTkQgPyB1bmN1cnJ5VGhpc1dpdGhCaW5kIDogZnVuY3Rpb24gKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGNhbGwuYXBwbHkoZm4sIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ09OU1RSVUNUT1IsIE1FVEhPRCkge1xuICB2YXIgTmFtZXNwYWNlID0gcGF0aFtDT05TVFJVQ1RPUiArICdQcm90b3R5cGUnXTtcbiAgdmFyIHB1cmVNZXRob2QgPSBOYW1lc3BhY2UgJiYgTmFtZXNwYWNlW01FVEhPRF07XG4gIGlmIChwdXJlTWV0aG9kKSByZXR1cm4gcHVyZU1ldGhvZDtcbiAgdmFyIE5hdGl2ZUNvbnN0cnVjdG9yID0gZ2xvYmFsVGhpc1tDT05TVFJVQ1RPUl07XG4gIHZhciBOYXRpdmVQcm90b3R5cGUgPSBOYXRpdmVDb25zdHJ1Y3RvciAmJiBOYXRpdmVDb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIHJldHVybiBOYXRpdmVQcm90b3R5cGUgJiYgTmF0aXZlUHJvdG90eXBlW01FVEhPRF07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciBhRnVuY3Rpb24gPSBmdW5jdGlvbiAodmFyaWFibGUpIHtcbiAgcmV0dXJuIGlzQ2FsbGFibGUodmFyaWFibGUpID8gdmFyaWFibGUgOiB1bmRlZmluZWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lc3BhY2UsIG1ldGhvZCkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyBhRnVuY3Rpb24ocGF0aFtuYW1lc3BhY2VdKSB8fCBhRnVuY3Rpb24oZ2xvYmFsVGhpc1tuYW1lc3BhY2VdKVxuICAgIDogcGF0aFtuYW1lc3BhY2VdICYmIHBhdGhbbmFtZXNwYWNlXVttZXRob2RdIHx8IGdsb2JhbFRoaXNbbmFtZXNwYWNlXSAmJiBnbG9iYWxUaGlzW25hbWVzcGFjZV1bbWV0aG9kXTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG5cbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHJlcGxhY2VyKSB7XG4gIGlmIChpc0NhbGxhYmxlKHJlcGxhY2VyKSkgcmV0dXJuIHJlcGxhY2VyO1xuICBpZiAoIWlzQXJyYXkocmVwbGFjZXIpKSByZXR1cm47XG4gIHZhciByYXdMZW5ndGggPSByZXBsYWNlci5sZW5ndGg7XG4gIHZhciBrZXlzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3TGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZWxlbWVudCA9IHJlcGxhY2VyW2ldO1xuICAgIGlmICh0eXBlb2YgZWxlbWVudCA9PSAnc3RyaW5nJykgcHVzaChrZXlzLCBlbGVtZW50KTtcbiAgICBlbHNlIGlmICh0eXBlb2YgZWxlbWVudCA9PSAnbnVtYmVyJyB8fCBjbGFzc29mKGVsZW1lbnQpID09PSAnTnVtYmVyJyB8fCBjbGFzc29mKGVsZW1lbnQpID09PSAnU3RyaW5nJykgcHVzaChrZXlzLCB0b1N0cmluZyhlbGVtZW50KSk7XG4gIH1cbiAgdmFyIGtleXNMZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIHJvb3QgPSB0cnVlO1xuICByZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICBpZiAocm9vdCkge1xuICAgICAgcm9vdCA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAoaXNBcnJheSh0aGlzKSkgcmV0dXJuIHZhbHVlO1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwga2V5c0xlbmd0aDsgaisrKSBpZiAoa2V5c1tqXSA9PT0ga2V5KSByZXR1cm4gdmFsdWU7XG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcblxuLy8gYEdldE1ldGhvZGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldG1ldGhvZFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoViwgUCkge1xuICB2YXIgZnVuYyA9IFZbUF07XG4gIHJldHVybiBpc051bGxPclVuZGVmaW5lZChmdW5jKSA/IHVuZGVmaW5lZCA6IGFDYWxsYWJsZShmdW5jKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICYmIGl0Lk1hdGggPT09IE1hdGggJiYgaXQ7XG59O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxubW9kdWxlLmV4cG9ydHMgPVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZ2xvYmFsLXRoaXMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2YgZ2xvYmFsVGhpcyA9PSAnb2JqZWN0JyAmJiBnbG9iYWxUaGlzKSB8fFxuICBjaGVjayh0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdykgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAtLSBzYWZlXG4gIGNoZWNrKHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYpIHx8XG4gIGNoZWNrKHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsKSB8fFxuICBjaGVjayh0eXBlb2YgdGhpcyA9PSAnb2JqZWN0JyAmJiB0aGlzKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmMgLS0gZmFsbGJhY2tcbiAgKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pKCkgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcblxudmFyIGhhc093blByb3BlcnR5ID0gdW5jdXJyeVRoaXMoe30uaGFzT3duUHJvcGVydHkpO1xuXG4vLyBgSGFzT3duUHJvcGVydHlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1oYXNvd25wcm9wZXJ0eVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1oYXNvd24gLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuaGFzT3duIHx8IGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eSh0b09iamVjdChpdCksIGtleSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ2RvY3VtZW50JywgJ2RvY3VtZW50RWxlbWVudCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbi8vIFRoYW5rcyB0byBJRTggZm9yIGl0cyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGNyZWF0ZUVsZW1lbnQoJ2RpdicpLCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH1cbiAgfSkuYSAhPT0gNztcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcbnZhciBzcGxpdCA9IHVuY3VycnlUaGlzKCcnLnNwbGl0KTtcblxuLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3Ncbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyB0aHJvd3MgYW4gZXJyb3IgaW4gcmhpbm8sIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9yaGluby9pc3N1ZXMvMzQ2XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgLS0gc2FmZVxuICByZXR1cm4gISRPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKTtcbn0pID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBjbGFzc29mKGl0KSA9PT0gJ1N0cmluZycgPyBzcGxpdChpdCwgJycpIDogJE9iamVjdChpdCk7XG59IDogJE9iamVjdDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbnZhciBmdW5jdGlvblRvU3RyaW5nID0gdW5jdXJyeVRoaXMoRnVuY3Rpb24udG9TdHJpbmcpO1xuXG4vLyB0aGlzIGhlbHBlciBicm9rZW4gaW4gYGNvcmUtanNAMy40LjEtMy40LjRgLCBzbyB3ZSBjYW4ndCB1c2UgYHNoYXJlZGAgaGVscGVyXG5pZiAoIWlzQ2FsbGFibGUoc3RvcmUuaW5zcGVjdFNvdXJjZSkpIHtcbiAgc3RvcmUuaW5zcGVjdFNvdXJjZSA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBmdW5jdGlvblRvU3RyaW5nKGl0KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZS5pbnNwZWN0U291cmNlO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWFrLW1hcC1iYXNpYy1kZXRlY3Rpb24nKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xuXG52YXIgT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQgPSAnT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQnO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbFRoaXMuVHlwZUVycm9yO1xudmFyIFdlYWtNYXAgPSBnbG9iYWxUaGlzLldlYWtNYXA7XG52YXIgc2V0LCBnZXQsIGhhcztcblxudmFyIGVuZm9yY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGhhcyhpdCkgPyBnZXQoaXQpIDogc2V0KGl0LCB7fSk7XG59O1xuXG52YXIgZ2V0dGVyRm9yID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChpdCkge1xuICAgIHZhciBzdGF0ZTtcbiAgICBpZiAoIWlzT2JqZWN0KGl0KSB8fCAoc3RhdGUgPSBnZXQoaXQpKS50eXBlICE9PSBUWVBFKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCB8fCBzaGFyZWQuc3RhdGUpIHtcbiAgdmFyIHN0b3JlID0gc2hhcmVkLnN0YXRlIHx8IChzaGFyZWQuc3RhdGUgPSBuZXcgV2Vha01hcCgpKTtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tc2VsZi1hc3NpZ24gLS0gcHJvdG90eXBlIG1ldGhvZHMgcHJvdGVjdGlvbiAqL1xuICBzdG9yZS5nZXQgPSBzdG9yZS5nZXQ7XG4gIHN0b3JlLmhhcyA9IHN0b3JlLmhhcztcbiAgc3RvcmUuc2V0ID0gc3RvcmUuc2V0O1xuICAvKiBlc2xpbnQtZW5hYmxlIG5vLXNlbGYtYXNzaWduIC0tIHByb3RvdHlwZSBtZXRob2RzIHByb3RlY3Rpb24gKi9cbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGlmIChzdG9yZS5oYXMoaXQpKSB0aHJvdyBuZXcgVHlwZUVycm9yKE9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEKTtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBzdG9yZS5zZXQoaXQsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBzdG9yZS5nZXQoaXQpIHx8IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gc3RvcmUuaGFzKGl0KTtcbiAgfTtcbn0gZWxzZSB7XG4gIHZhciBTVEFURSA9IHNoYXJlZEtleSgnc3RhdGUnKTtcbiAgaGlkZGVuS2V5c1tTVEFURV0gPSB0cnVlO1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKGhhc093bihpdCwgU1RBVEUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKE9CSkVDVF9BTFJFQURZX0lOSVRJQUxJWkVEKTtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoaXQsIFNUQVRFLCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gaGFzT3duKGl0LCBTVEFURSkgPyBpdFtTVEFURV0gOiB7fTtcbiAgfTtcbiAgaGFzID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIGhhc093bihpdCwgU1RBVEUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBzZXQsXG4gIGdldDogZ2V0LFxuICBoYXM6IGhhcyxcbiAgZW5mb3JjZTogZW5mb3JjZSxcbiAgZ2V0dGVyRm9yOiBnZXR0ZXJGb3Jcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG4vLyBgSXNBcnJheWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzYXJyYXlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1hcnJheS1pc2FycmF5IC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZ3VtZW50KSB7XG4gIHJldHVybiBjbGFzc29mKGFyZ3VtZW50KSA9PT0gJ0FycmF5Jztcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLUlzSFRNTEREQS1pbnRlcm5hbC1zbG90XG52YXIgZG9jdW1lbnRBbGwgPSB0eXBlb2YgZG9jdW1lbnQgPT0gJ29iamVjdCcgJiYgZG9jdW1lbnQuYWxsO1xuXG4vLyBgSXNDYWxsYWJsZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzY2FsbGFibGVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLXR5cGVvZi11bmRlZmluZWQgLS0gcmVxdWlyZWQgZm9yIHRlc3Rpbmdcbm1vZHVsZS5leHBvcnRzID0gdHlwZW9mIGRvY3VtZW50QWxsID09ICd1bmRlZmluZWQnICYmIGRvY3VtZW50QWxsICE9PSB1bmRlZmluZWQgPyBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmd1bWVudCA9PSAnZnVuY3Rpb24nIHx8IGFyZ3VtZW50ID09PSBkb2N1bWVudEFsbDtcbn0gOiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmd1bWVudCA9PSAnZnVuY3Rpb24nO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGluc3BlY3RTb3VyY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UnKTtcblxudmFyIG5vb3AgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgY29uc3RydWN0ID0gZ2V0QnVpbHRJbignUmVmbGVjdCcsICdjb25zdHJ1Y3QnKTtcbnZhciBjb25zdHJ1Y3RvclJlZ0V4cCA9IC9eXFxzKig/OmNsYXNzfGZ1bmN0aW9uKVxcYi87XG52YXIgZXhlYyA9IHVuY3VycnlUaGlzKGNvbnN0cnVjdG9yUmVnRXhwLmV4ZWMpO1xudmFyIElOQ09SUkVDVF9UT19TVFJJTkcgPSAhY29uc3RydWN0b3JSZWdFeHAudGVzdChub29wKTtcblxudmFyIGlzQ29uc3RydWN0b3JNb2Rlcm4gPSBmdW5jdGlvbiBpc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSB7XG4gIGlmICghaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBmYWxzZTtcbiAgdHJ5IHtcbiAgICBjb25zdHJ1Y3Qobm9vcCwgW10sIGFyZ3VtZW50KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbnZhciBpc0NvbnN0cnVjdG9yTGVnYWN5ID0gZnVuY3Rpb24gaXNDb25zdHJ1Y3Rvcihhcmd1bWVudCkge1xuICBpZiAoIWlzQ2FsbGFibGUoYXJndW1lbnQpKSByZXR1cm4gZmFsc2U7XG4gIHN3aXRjaCAoY2xhc3NvZihhcmd1bWVudCkpIHtcbiAgICBjYXNlICdBc3luY0Z1bmN0aW9uJzpcbiAgICBjYXNlICdHZW5lcmF0b3JGdW5jdGlvbic6XG4gICAgY2FzZSAnQXN5bmNHZW5lcmF0b3JGdW5jdGlvbic6IHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIC8vIHdlIGNhbid0IGNoZWNrIC5wcm90b3R5cGUgc2luY2UgY29uc3RydWN0b3JzIHByb2R1Y2VkIGJ5IC5iaW5kIGhhdmVuJ3QgaXRcbiAgICAvLyBgRnVuY3Rpb24jdG9TdHJpbmdgIHRocm93cyBvbiBzb21lIGJ1aWx0LWl0IGZ1bmN0aW9uIGluIHNvbWUgbGVnYWN5IGVuZ2luZXNcbiAgICAvLyAoZm9yIGV4YW1wbGUsIGBET01RdWFkYCBhbmQgc2ltaWxhciBpbiBGRjQxLSlcbiAgICByZXR1cm4gSU5DT1JSRUNUX1RPX1NUUklORyB8fCAhIWV4ZWMoY29uc3RydWN0b3JSZWdFeHAsIGluc3BlY3RTb3VyY2UoYXJndW1lbnQpKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcblxuaXNDb25zdHJ1Y3RvckxlZ2FjeS5zaGFtID0gdHJ1ZTtcblxuLy8gYElzQ29uc3RydWN0b3JgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2NvbnN0cnVjdG9yXG5tb2R1bGUuZXhwb3J0cyA9ICFjb25zdHJ1Y3QgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgY2FsbGVkO1xuICByZXR1cm4gaXNDb25zdHJ1Y3Rvck1vZGVybihpc0NvbnN0cnVjdG9yTW9kZXJuLmNhbGwpXG4gICAgfHwgIWlzQ29uc3RydWN0b3JNb2Rlcm4oT2JqZWN0KVxuICAgIHx8ICFpc0NvbnN0cnVjdG9yTW9kZXJuKGZ1bmN0aW9uICgpIHsgY2FsbGVkID0gdHJ1ZTsgfSlcbiAgICB8fCBjYWxsZWQ7XG59KSA/IGlzQ29uc3RydWN0b3JMZWdhY3kgOiBpc0NvbnN0cnVjdG9yTW9kZXJuO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG52YXIgcmVwbGFjZW1lbnQgPSAvI3xcXC5wcm90b3R5cGVcXC4vO1xuXG52YXIgaXNGb3JjZWQgPSBmdW5jdGlvbiAoZmVhdHVyZSwgZGV0ZWN0aW9uKSB7XG4gIHZhciB2YWx1ZSA9IGRhdGFbbm9ybWFsaXplKGZlYXR1cmUpXTtcbiAgcmV0dXJuIHZhbHVlID09PSBQT0xZRklMTCA/IHRydWVcbiAgICA6IHZhbHVlID09PSBOQVRJVkUgPyBmYWxzZVxuICAgIDogaXNDYWxsYWJsZShkZXRlY3Rpb24pID8gZmFpbHMoZGV0ZWN0aW9uKVxuICAgIDogISFkZXRlY3Rpb247XG59O1xuXG52YXIgbm9ybWFsaXplID0gaXNGb3JjZWQubm9ybWFsaXplID0gZnVuY3Rpb24gKHN0cmluZykge1xuICByZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZShyZXBsYWNlbWVudCwgJy4nKS50b0xvd2VyQ2FzZSgpO1xufTtcblxudmFyIGRhdGEgPSBpc0ZvcmNlZC5kYXRhID0ge307XG52YXIgTkFUSVZFID0gaXNGb3JjZWQuTkFUSVZFID0gJ04nO1xudmFyIFBPTFlGSUxMID0gaXNGb3JjZWQuUE9MWUZJTEwgPSAnUCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGb3JjZWQ7XG4iLCIndXNlIHN0cmljdCc7XG4vLyB3ZSBjYW4ndCB1c2UganVzdCBgaXQgPT0gbnVsbGAgc2luY2Ugb2YgYGRvY3VtZW50LmFsbGAgc3BlY2lhbCBjYXNlXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLUlzSFRNTEREQS1pbnRlcm5hbC1zbG90LWFlY1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID09PSBudWxsIHx8IGl0ID09PSB1bmRlZmluZWQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PSAnb2JqZWN0JyA/IGl0ICE9PSBudWxsIDogaXNDYWxsYWJsZShpdCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gaXNPYmplY3QoYXJndW1lbnQpIHx8IGFyZ3VtZW50ID09PSBudWxsO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gdHJ1ZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxubW9kdWxlLmV4cG9ydHMgPSBVU0VfU1lNQk9MX0FTX1VJRCA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgJFN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpO1xuICByZXR1cm4gaXNDYWxsYWJsZSgkU3ltYm9sKSAmJiBpc1Byb3RvdHlwZU9mKCRTeW1ib2wucHJvdG90eXBlLCAkT2JqZWN0KGl0KSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEl0ZXJhdG9yUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlJykuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJdGVyYXRvckNvbnN0cnVjdG9yLCBOQU1FLCBuZXh0LCBFTlVNRVJBQkxFX05FWFQpIHtcbiAgdmFyIFRPX1NUUklOR19UQUcgPSBOQU1FICsgJyBJdGVyYXRvcic7XG4gIEl0ZXJhdG9yQ29uc3RydWN0b3IucHJvdG90eXBlID0gY3JlYXRlKEl0ZXJhdG9yUHJvdG90eXBlLCB7IG5leHQ6IGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigrIUVOVU1FUkFCTEVfTkVYVCwgbmV4dCkgfSk7XG4gIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yQ29uc3RydWN0b3IsIFRPX1NUUklOR19UQUcsIGZhbHNlLCB0cnVlKTtcbiAgSXRlcmF0b3JzW1RPX1NUUklOR19UQUddID0gcmV0dXJuVGhpcztcbiAgcmV0dXJuIEl0ZXJhdG9yQ29uc3RydWN0b3I7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgRnVuY3Rpb25OYW1lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvci1jcmVhdGUtY29uc3RydWN0b3InKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG52YXIgSXRlcmF0b3JzQ29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpO1xuXG52YXIgUFJPUEVSX0ZVTkNUSU9OX05BTUUgPSBGdW5jdGlvbk5hbWUuUFJPUEVSO1xudmFyIENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FID0gRnVuY3Rpb25OYW1lLkNPTkZJR1VSQUJMRTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IEl0ZXJhdG9yc0NvcmUuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IEl0ZXJhdG9yc0NvcmUuQlVHR1lfU0FGQVJJX0lURVJBVE9SUztcbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xudmFyIEVOVFJJRVMgPSAnZW50cmllcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmFibGUsIE5BTUUsIEl0ZXJhdG9yQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gIGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG5cbiAgdmFyIGdldEl0ZXJhdGlvbk1ldGhvZCA9IGZ1bmN0aW9uIChLSU5EKSB7XG4gICAgaWYgKEtJTkQgPT09IERFRkFVTFQgJiYgZGVmYXVsdEl0ZXJhdG9yKSByZXR1cm4gZGVmYXVsdEl0ZXJhdG9yO1xuICAgIGlmICghQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBLSU5EICYmIEtJTkQgaW4gSXRlcmFibGVQcm90b3R5cGUpIHJldHVybiBJdGVyYWJsZVByb3RvdHlwZVtLSU5EXTtcblxuICAgIHN3aXRjaCAoS0lORCkge1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzLCBLSU5EKTsgfTtcbiAgICAgIGNhc2UgRU5UUklFUzogcmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzLCBLSU5EKTsgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcyk7IH07XG4gIH07XG5cbiAgdmFyIFRPX1NUUklOR19UQUcgPSBOQU1FICsgJyBJdGVyYXRvcic7XG4gIHZhciBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgPSBmYWxzZTtcbiAgdmFyIEl0ZXJhYmxlUHJvdG90eXBlID0gSXRlcmFibGUucHJvdG90eXBlO1xuICB2YXIgbmF0aXZlSXRlcmF0b3IgPSBJdGVyYWJsZVByb3RvdHlwZVtJVEVSQVRPUl1cbiAgICB8fCBJdGVyYWJsZVByb3RvdHlwZVsnQEBpdGVyYXRvciddXG4gICAgfHwgREVGQVVMVCAmJiBJdGVyYWJsZVByb3RvdHlwZVtERUZBVUxUXTtcbiAgdmFyIGRlZmF1bHRJdGVyYXRvciA9ICFCVUdHWV9TQUZBUklfSVRFUkFUT1JTICYmIG5hdGl2ZUl0ZXJhdG9yIHx8IGdldEl0ZXJhdGlvbk1ldGhvZChERUZBVUxUKTtcbiAgdmFyIGFueU5hdGl2ZUl0ZXJhdG9yID0gTkFNRSA9PT0gJ0FycmF5JyA/IEl0ZXJhYmxlUHJvdG90eXBlLmVudHJpZXMgfHwgbmF0aXZlSXRlcmF0b3IgOiBuYXRpdmVJdGVyYXRvcjtcbiAgdmFyIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgbWV0aG9kcywgS0VZO1xuXG4gIC8vIGZpeCBuYXRpdmVcbiAgaWYgKGFueU5hdGl2ZUl0ZXJhdG9yKSB7XG4gICAgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoYW55TmF0aXZlSXRlcmF0b3IuY2FsbChuZXcgSXRlcmFibGUoKSkpO1xuICAgIGlmIChDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIGlmICghSVNfUFVSRSAmJiBnZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUpICE9PSBJdGVyYXRvclByb3RvdHlwZSkge1xuICAgICAgICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICAgICAgICBzZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIEl0ZXJhdG9yUHJvdG90eXBlKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNDYWxsYWJsZShDdXJyZW50SXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdKSkge1xuICAgICAgICAgIGRlZmluZUJ1aWx0SW4oQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRywgdHJ1ZSwgdHJ1ZSk7XG4gICAgICBpZiAoSVNfUFVSRSkgSXRlcmF0b3JzW1RPX1NUUklOR19UQUddID0gcmV0dXJuVGhpcztcbiAgICB9XG4gIH1cblxuICAvLyBmaXggQXJyYXkucHJvdG90eXBlLnsgdmFsdWVzLCBAQGl0ZXJhdG9yIH0ubmFtZSBpbiBWOCAvIEZGXG4gIGlmIChQUk9QRVJfRlVOQ1RJT05fTkFNRSAmJiBERUZBVUxUID09PSBWQUxVRVMgJiYgbmF0aXZlSXRlcmF0b3IgJiYgbmF0aXZlSXRlcmF0b3IubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgaWYgKCFJU19QVVJFICYmIENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoSXRlcmFibGVQcm90b3R5cGUsICduYW1lJywgVkFMVUVTKTtcbiAgICB9IGVsc2Uge1xuICAgICAgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gdHJ1ZTtcbiAgICAgIGRlZmF1bHRJdGVyYXRvciA9IGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIGNhbGwobmF0aXZlSXRlcmF0b3IsIHRoaXMpOyB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIGV4cG9ydCBhZGRpdGlvbmFsIG1ldGhvZHNcbiAgaWYgKERFRkFVTFQpIHtcbiAgICBtZXRob2RzID0ge1xuICAgICAgdmFsdWVzOiBnZXRJdGVyYXRpb25NZXRob2QoVkFMVUVTKSxcbiAgICAgIGtleXM6IElTX1NFVCA/IGRlZmF1bHRJdGVyYXRvciA6IGdldEl0ZXJhdGlvbk1ldGhvZChLRVlTKSxcbiAgICAgIGVudHJpZXM6IGdldEl0ZXJhdGlvbk1ldGhvZChFTlRSSUVTKVxuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChLRVkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgfHwgSU5DT1JSRUNUX1ZBTFVFU19OQU1FIHx8ICEoS0VZIGluIEl0ZXJhYmxlUHJvdG90eXBlKSkge1xuICAgICAgICBkZWZpbmVCdWlsdEluKEl0ZXJhYmxlUHJvdG90eXBlLCBLRVksIG1ldGhvZHNbS0VZXSk7XG4gICAgICB9XG4gICAgfSBlbHNlICQoeyB0YXJnZXQ6IE5BTUUsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgfHwgSU5DT1JSRUNUX1ZBTFVFU19OQU1FIH0sIG1ldGhvZHMpO1xuICB9XG5cbiAgLy8gZGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUlTX1BVUkUgfHwgRk9SQ0VEKSAmJiBJdGVyYWJsZVByb3RvdHlwZVtJVEVSQVRPUl0gIT09IGRlZmF1bHRJdGVyYXRvcikge1xuICAgIGRlZmluZUJ1aWx0SW4oSXRlcmFibGVQcm90b3R5cGUsIElURVJBVE9SLCBkZWZhdWx0SXRlcmF0b3IsIHsgbmFtZTogREVGQVVMVCB9KTtcbiAgfVxuICBJdGVyYXRvcnNbTkFNRV0gPSBkZWZhdWx0SXRlcmF0b3I7XG5cbiAgcmV0dXJuIG1ldGhvZHM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IGZhbHNlO1xuXG4vLyBgJUl0ZXJhdG9yUHJvdG90eXBlJWAgb2JqZWN0XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVpdGVyYXRvcnByb3RvdHlwZSUtb2JqZWN0XG52YXIgSXRlcmF0b3JQcm90b3R5cGUsIFByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZSwgYXJyYXlJdGVyYXRvcjtcblxuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWtleXMgLS0gc2FmZSAqL1xuaWYgKFtdLmtleXMpIHtcbiAgYXJyYXlJdGVyYXRvciA9IFtdLmtleXMoKTtcbiAgLy8gU2FmYXJpIDggaGFzIGJ1Z2d5IGl0ZXJhdG9ycyB3L28gYG5leHRgXG4gIGlmICghKCduZXh0JyBpbiBhcnJheUl0ZXJhdG9yKSkgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IHRydWU7XG4gIGVsc2Uge1xuICAgIFByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKGdldFByb3RvdHlwZU9mKGFycmF5SXRlcmF0b3IpKTtcbiAgICBpZiAoUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlKSBJdGVyYXRvclByb3RvdHlwZSA9IFByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZTtcbiAgfVxufVxuXG52YXIgTkVXX0lURVJBVE9SX1BST1RPVFlQRSA9ICFpc09iamVjdChJdGVyYXRvclByb3RvdHlwZSkgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgdGVzdCA9IHt9O1xuICAvLyBGRjQ0LSBsZWdhY3kgaXRlcmF0b3JzIGNhc2VcbiAgcmV0dXJuIEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXS5jYWxsKHRlc3QpICE9PSB0ZXN0O1xufSk7XG5cbmlmIChORVdfSVRFUkFUT1JfUFJPVE9UWVBFKSBJdGVyYXRvclByb3RvdHlwZSA9IHt9O1xuZWxzZSBpZiAoSVNfUFVSRSkgSXRlcmF0b3JQcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUpO1xuXG4vLyBgJUl0ZXJhdG9yUHJvdG90eXBlJVtAQGl0ZXJhdG9yXSgpYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJWl0ZXJhdG9ycHJvdG90eXBlJS1AQGl0ZXJhdG9yXG5pZiAoIWlzQ2FsbGFibGUoSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdKSkge1xuICBkZWZpbmVCdWlsdEluKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIEl0ZXJhdG9yUHJvdG90eXBlOiBJdGVyYXRvclByb3RvdHlwZSxcbiAgQlVHR1lfU0FGQVJJX0lURVJBVE9SUzogQlVHR1lfU0FGQVJJX0lURVJBVE9SU1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0ge307XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG5cbi8vIGBMZW5ndGhPZkFycmF5TGlrZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWxlbmd0aG9mYXJyYXlsaWtlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIHRvTGVuZ3RoKG9iai5sZW5ndGgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYE1hdGgudHJ1bmNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1tYXRoLnRydW5jXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tbWF0aC10cnVuYyAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGgudHJ1bmMgfHwgZnVuY3Rpb24gdHJ1bmMoeCkge1xuICB2YXIgbiA9ICt4O1xuICByZXR1cm4gKG4gPiAwID8gZmxvb3IgOiBjZWlsKShuKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWFzc2lnbiAtLSBzYWZlXG52YXIgJGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgY29uY2F0ID0gdW5jdXJyeVRoaXMoW10uY29uY2F0KTtcblxuLy8gYE9iamVjdC5hc3NpZ25gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuYXNzaWduXG5tb2R1bGUuZXhwb3J0cyA9ICEkYXNzaWduIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gc2hvdWxkIGhhdmUgY29ycmVjdCBvcmRlciBvZiBvcGVyYXRpb25zIChFZGdlIGJ1ZylcbiAgaWYgKERFU0NSSVBUT1JTICYmICRhc3NpZ24oeyBiOiAxIH0sICRhc3NpZ24oZGVmaW5lUHJvcGVydHkoe30sICdhJywge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICBkZWZpbmVQcm9wZXJ0eSh0aGlzLCAnYicsIHtcbiAgICAgICAgdmFsdWU6IDMsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9XG4gIH0pLCB7IGI6IDIgfSkpLmIgIT09IDEpIHJldHVybiB0cnVlO1xuICAvLyBzaG91bGQgd29yayB3aXRoIHN5bWJvbHMgYW5kIHNob3VsZCBoYXZlIGRldGVybWluaXN0aWMgcHJvcGVydHkgb3JkZXIgKFY4IGJ1ZylcbiAgdmFyIEEgPSB7fTtcbiAgdmFyIEIgPSB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLXN5bWJvbCAtLSBzYWZlXG4gIHZhciBzeW1ib2wgPSBTeW1ib2woJ2Fzc2lnbiBkZXRlY3Rpb24nKTtcbiAgdmFyIGFscGhhYmV0ID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0JztcbiAgQVtzeW1ib2xdID0gNztcbiAgYWxwaGFiZXQuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGNocikgeyBCW2Nocl0gPSBjaHI7IH0pO1xuICByZXR1cm4gJGFzc2lnbih7fSwgQSlbc3ltYm9sXSAhPT0gNyB8fCBvYmplY3RLZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPT0gYWxwaGFiZXQ7XG59KSA/IGZ1bmN0aW9uIGFzc2lnbih0YXJnZXQsIHNvdXJjZSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBgLmxlbmd0aGBcbiAgdmFyIFQgPSB0b09iamVjdCh0YXJnZXQpO1xuICB2YXIgYXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMTtcbiAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICB2YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZS5mO1xuICB3aGlsZSAoYXJndW1lbnRzTGVuZ3RoID4gaW5kZXgpIHtcbiAgICB2YXIgUyA9IEluZGV4ZWRPYmplY3QoYXJndW1lbnRzW2luZGV4KytdKTtcbiAgICB2YXIga2V5cyA9IGdldE93blByb3BlcnR5U3ltYm9scyA/IGNvbmNhdChvYmplY3RLZXlzKFMpLCBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoUykpIDogb2JqZWN0S2V5cyhTKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGogPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGopIHtcbiAgICAgIGtleSA9IGtleXNbaisrXTtcbiAgICAgIGlmICghREVTQ1JJUFRPUlMgfHwgY2FsbChwcm9wZXJ0eUlzRW51bWVyYWJsZSwgUywga2V5KSkgVFtrZXldID0gU1trZXldO1xuICAgIH1cbiAgfSByZXR1cm4gVDtcbn0gOiAkYXNzaWduO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZ2xvYmFsIEFjdGl2ZVhPYmplY3QgLS0gb2xkIElFLCBXU0ggKi9cbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcycpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG52YXIgaHRtbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9odG1sJyk7XG52YXIgZG9jdW1lbnRDcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcblxudmFyIEdUID0gJz4nO1xudmFyIExUID0gJzwnO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIFNDUklQVCA9ICdzY3JpcHQnO1xudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xuXG52YXIgRW1wdHlDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcblxudmFyIHNjcmlwdFRhZyA9IGZ1bmN0aW9uIChjb250ZW50KSB7XG4gIHJldHVybiBMVCArIFNDUklQVCArIEdUICsgY29udGVudCArIExUICsgJy8nICsgU0NSSVBUICsgR1Q7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgQWN0aXZlWCBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIE51bGxQcm90b09iamVjdFZpYUFjdGl2ZVggPSBmdW5jdGlvbiAoYWN0aXZlWERvY3VtZW50KSB7XG4gIGFjdGl2ZVhEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoJycpKTtcbiAgYWN0aXZlWERvY3VtZW50LmNsb3NlKCk7XG4gIHZhciB0ZW1wID0gYWN0aXZlWERvY3VtZW50LnBhcmVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWFzc2lnbm1lbnQgLS0gYXZvaWQgbWVtb3J5IGxlYWtcbiAgYWN0aXZlWERvY3VtZW50ID0gbnVsbDtcbiAgcmV0dXJuIHRlbXA7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gZG9jdW1lbnRDcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgdmFyIEpTID0gJ2phdmEnICsgU0NSSVBUICsgJzonO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80NzVcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhKUyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCdkb2N1bWVudC5GPU9iamVjdCcpKTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgcmV0dXJuIGlmcmFtZURvY3VtZW50LkY7XG59O1xuXG4vLyBDaGVjayBmb3IgZG9jdW1lbnQuZG9tYWluIGFuZCBhY3RpdmUgeCBzdXBwb3J0XG4vLyBObyBuZWVkIHRvIHVzZSBhY3RpdmUgeCBhcHByb2FjaCB3aGVuIGRvY3VtZW50LmRvbWFpbiBpcyBub3Qgc2V0XG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzLXNoaW1zL2VzNS1zaGltL2lzc3Vlcy8xNTBcbi8vIHZhcmlhdGlvbiBvZiBodHRwczovL2dpdGh1Yi5jb20va2l0Y2FtYnJpZGdlL2VzNS1zaGltL2NvbW1pdC80ZjczOGFjMDY2MzQ2XG4vLyBhdm9pZCBJRSBHQyBidWdcbnZhciBhY3RpdmVYRG9jdW1lbnQ7XG52YXIgTnVsbFByb3RvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdodG1sZmlsZScpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBpZ25vcmUgKi8gfVxuICBOdWxsUHJvdG9PYmplY3QgPSB0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCdcbiAgICA/IGRvY3VtZW50LmRvbWFpbiAmJiBhY3RpdmVYRG9jdW1lbnRcbiAgICAgID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIC8vIG9sZCBJRVxuICAgICAgOiBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUoKVxuICAgIDogTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpOyAvLyBXU0hcbiAgdmFyIGxlbmd0aCA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSBkZWxldGUgTnVsbFByb3RvT2JqZWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbbGVuZ3RoXV07XG4gIHJldHVybiBOdWxsUHJvdG9PYmplY3QoKTtcbn07XG5cbmhpZGRlbktleXNbSUVfUFJPVE9dID0gdHJ1ZTtcblxuLy8gYE9iamVjdC5jcmVhdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWNyZWF0ZSAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHlDb25zdHJ1Y3RvcigpO1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gTnVsbFByb3RvT2JqZWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlLmYocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1ZycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0aWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnRpZXMgLS0gc2FmZVxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgJiYgIVY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBwcm9wcyA9IHRvSW5kZXhlZE9iamVjdChQcm9wZXJ0aWVzKTtcbiAgdmFyIGtleXMgPSBvYmplY3RLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsZW5ndGggPiBpbmRleCkgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihPLCBrZXkgPSBrZXlzW2luZGV4KytdLCBwcm9wc1trZXldKTtcbiAgcmV0dXJuIE87XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUnKTtcbnZhciBWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1ZycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIEVOVU1FUkFCTEUgPSAnZW51bWVyYWJsZSc7XG52YXIgQ09ORklHVVJBQkxFID0gJ2NvbmZpZ3VyYWJsZSc7XG52YXIgV1JJVEFCTEUgPSAnd3JpdGFibGUnO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID8gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAodHlwZW9mIE8gPT09ICdmdW5jdGlvbicgJiYgUCA9PT0gJ3Byb3RvdHlwZScgJiYgJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzICYmIFdSSVRBQkxFIGluIEF0dHJpYnV0ZXMgJiYgIUF0dHJpYnV0ZXNbV1JJVEFCTEVdKSB7XG4gICAgdmFyIGN1cnJlbnQgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnRbV1JJVEFCTEVdKSB7XG4gICAgICBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgICAgIEF0dHJpYnV0ZXMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogQ09ORklHVVJBQkxFIGluIEF0dHJpYnV0ZXMgPyBBdHRyaWJ1dGVzW0NPTkZJR1VSQUJMRV0gOiBjdXJyZW50W0NPTkZJR1VSQUJMRV0sXG4gICAgICAgIGVudW1lcmFibGU6IEVOVU1FUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbRU5VTUVSQUJMRV0gOiBjdXJyZW50W0VOVU1FUkFCTEVdLFxuICAgICAgICB3cml0YWJsZTogZmFsc2VcbiAgICAgIH07XG4gICAgfVxuICB9IHJldHVybiAkZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcyk7XG59IDogJGRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJvcGVydHlLZXkoUCk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBuZXcgJFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXknKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JbmRleGVkT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXNPd24oTywgUCkpIHJldHVybiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoIWNhbGwocHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZiwgTywgUCksIE9bUF0pO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eW5hbWVzIC0tIHNhZmUgKi9cbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgJGdldE93blByb3BlcnR5TmFtZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKS5mO1xudmFyIGFycmF5U2xpY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc2xpY2UnKTtcblxudmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpIDogW107XG5cbnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkge1xuICB0cnkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlOYW1lcyhpdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGFycmF5U2xpY2Uod2luZG93TmFtZXMpO1xuICB9XG59O1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBidWdneSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB3aXRoIGlmcmFtZSBhbmQgd2luZG93XG5tb2R1bGUuZXhwb3J0cy5mID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICByZXR1cm4gd2luZG93TmFtZXMgJiYgY2xhc3NvZihpdCkgPT09ICdXaW5kb3cnXG4gICAgPyBnZXRXaW5kb3dOYW1lcyhpdClcbiAgICA6ICRnZXRPd25Qcm9wZXJ0eU5hbWVzKHRvSW5kZXhlZE9iamVjdChpdCkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbnZhciBoaWRkZW5LZXlzID0gZW51bUJ1Z0tleXMuY29uY2F0KCdsZW5ndGgnLCAncHJvdG90eXBlJyk7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eW5hbWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5bmFtZXMgLS0gc2FmZVxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgaGlkZGVuS2V5cyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gc2FmZVxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXInKTtcblxudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xudmFyICRPYmplY3QgPSBPYmplY3Q7XG52YXIgT2JqZWN0UHJvdG90eXBlID0gJE9iamVjdC5wcm90b3R5cGU7XG5cbi8vIGBPYmplY3QuZ2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0cHJvdG90eXBlb2Zcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0cHJvdG90eXBlb2YgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBDT1JSRUNUX1BST1RPVFlQRV9HRVRURVIgPyAkT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gKE8pIHtcbiAgdmFyIG9iamVjdCA9IHRvT2JqZWN0KE8pO1xuICBpZiAoaGFzT3duKG9iamVjdCwgSUVfUFJPVE8pKSByZXR1cm4gb2JqZWN0W0lFX1BST1RPXTtcbiAgdmFyIGNvbnN0cnVjdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yO1xuICBpZiAoaXNDYWxsYWJsZShjb25zdHJ1Y3RvcikgJiYgb2JqZWN0IGluc3RhbmNlb2YgY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBvYmplY3QgaW5zdGFuY2VvZiAkT2JqZWN0ID8gT2JqZWN0UHJvdG90eXBlIDogbnVsbDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gdW5jdXJyeVRoaXMoe30uaXNQcm90b3R5cGVPZik7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBpbmRleE9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5kZXhPZjtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwgbmFtZXMpIHtcbiAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3Qob2JqZWN0KTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBrZXk7XG4gIGZvciAoa2V5IGluIE8pICFoYXNPd24oaGlkZGVuS2V5cywga2V5KSAmJiBoYXNPd24oTywga2V5KSAmJiBwdXNoKHJlc3VsdCwga2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhc093bihPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5pbmRleE9mKHJlc3VsdCwga2V5KSB8fCBwdXNoKHJlc3VsdCwga2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbi8vIGBPYmplY3Qua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5rZXlzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWtleXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICEkcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh7IDE6IDIgfSwgMSk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAtLSBzYWZlICovXG52YXIgdW5jdXJyeVRoaXNBY2Nlc3NvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtYWNjZXNzb3InKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGFQb3NzaWJsZVByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLXBvc3NpYmxlLXByb3RvdHlwZScpO1xuXG4vLyBgT2JqZWN0LnNldFByb3RvdHlwZU9mYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnNldHByb3RvdHlwZW9mXG4vLyBXb3JrcyB3aXRoIF9fcHJvdG9fXyBvbmx5LiBPbGQgdjggY2FuJ3Qgd29yayB3aXRoIG51bGwgcHJvdG8gb2JqZWN0cy5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3Qtc2V0cHJvdG90eXBlb2YgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgKCdfX3Byb3RvX18nIGluIHt9ID8gZnVuY3Rpb24gKCkge1xuICB2YXIgQ09SUkVDVF9TRVRURVIgPSBmYWxzZTtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgdmFyIHNldHRlcjtcbiAgdHJ5IHtcbiAgICBzZXR0ZXIgPSB1bmN1cnJ5VGhpc0FjY2Vzc29yKE9iamVjdC5wcm90b3R5cGUsICdfX3Byb3RvX18nLCAnc2V0Jyk7XG4gICAgc2V0dGVyKHRlc3QsIFtdKTtcbiAgICBDT1JSRUNUX1NFVFRFUiA9IHRlc3QgaW5zdGFuY2VvZiBBcnJheTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICByZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoTywgcHJvdG8pIHtcbiAgICByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKE8pO1xuICAgIGFQb3NzaWJsZVByb3RvdHlwZShwcm90byk7XG4gICAgaWYgKCFpc09iamVjdChPKSkgcmV0dXJuIE87XG4gICAgaWYgKENPUlJFQ1RfU0VUVEVSKSBzZXR0ZXIoTywgcHJvdG8pO1xuICAgIGVsc2UgTy5fX3Byb3RvX18gPSBwcm90bztcbiAgICByZXR1cm4gTztcbiAgfTtcbn0oKSA6IHVuZGVmaW5lZCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8ge30udG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuICdbb2JqZWN0ICcgKyBjbGFzc29mKHRoaXMpICsgJ10nO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgT3JkaW5hcnlUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAocHJlZiA9PT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKGlzQ2FsbGFibGUoZm4gPSBpbnB1dC52YWx1ZU9mKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHByZWYgIT09ICdzdHJpbmcnICYmIGlzQ2FsbGFibGUoZm4gPSBpbnB1dC50b1N0cmluZykgJiYgIWlzT2JqZWN0KHZhbCA9IGNhbGwoZm4sIGlucHV0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG52YXIgY29uY2F0ID0gdW5jdXJyeVRoaXMoW10uY29uY2F0KTtcblxuLy8gYWxsIG9iamVjdCBrZXlzLCBpbmNsdWRlcyBub24tZW51bWVyYWJsZSBhbmQgc3ltYm9sc1xubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdSZWZsZWN0JywgJ293bktleXMnKSB8fCBmdW5jdGlvbiBvd25LZXlzKGl0KSB7XG4gIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZS5mKGFuT2JqZWN0KGl0KSk7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZjtcbiAgcmV0dXJuIGdldE93blByb3BlcnR5U3ltYm9scyA/IGNvbmNhdChrZXlzLCBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpKSA6IGtleXM7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc051bGxPclVuZGVmaW5lZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1udWxsLW9yLXVuZGVmaW5lZCcpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYFJlcXVpcmVPYmplY3RDb2VyY2libGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZXF1aXJlb2JqZWN0Y29lcmNpYmxlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoaXQpKSB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgVEFHLCBTVEFUSUMsIFNFVF9NRVRIT0QpIHtcbiAgdmFyIHRhcmdldCA9IFNUQVRJQyA/IGl0IDogaXQgJiYgaXQucHJvdG90eXBlO1xuICBpZiAodGFyZ2V0KSB7XG4gICAgaWYgKCFoYXNPd24odGFyZ2V0LCBUT19TVFJJTkdfVEFHKSkge1xuICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBUT19TVFJJTkdfVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IFRBRyB9KTtcbiAgICB9XG4gICAgaWYgKFNFVF9NRVRIT0QgJiYgIVRPX1NUUklOR19UQUdfU1VQUE9SVCkge1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHRhcmdldCwgJ3RvU3RyaW5nJywgdG9TdHJpbmcpO1xuICAgIH1cbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xuXG52YXIga2V5cyA9IHNoYXJlZCgna2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIGtleXNba2V5XSB8fCAoa2V5c1trZXldID0gdWlkKGtleSkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZGVmaW5lR2xvYmFsUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eScpO1xuXG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbFRoaXNbU0hBUkVEXSB8fCBkZWZpbmVHbG9iYWxQcm9wZXJ0eShTSEFSRUQsIHt9KTtcblxuKHN0b3JlLnZlcnNpb25zIHx8IChzdG9yZS52ZXJzaW9ucyA9IFtdKSkucHVzaCh7XG4gIHZlcnNpb246ICczLjM4LjEnLFxuICBtb2RlOiBJU19QVVJFID8gJ3B1cmUnIDogJ2dsb2JhbCcsXG4gIGNvcHlyaWdodDogJ8KpIDIwMTQtMjAyNCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KScsXG4gIGxpY2Vuc2U6ICdodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9ibG9iL3YzLjM4LjEvTElDRU5TRScsXG4gIHNvdXJjZTogJ2h0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSB8fCB7fSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciBjaGFyQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQXQpO1xudmFyIGNoYXJDb2RlQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQ29kZUF0KTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChDT05WRVJUX1RPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBwb3MpIHtcbiAgICB2YXIgUyA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICB2YXIgcG9zaXRpb24gPSB0b0ludGVnZXJPckluZmluaXR5KHBvcyk7XG4gICAgdmFyIHNpemUgPSBTLmxlbmd0aDtcbiAgICB2YXIgZmlyc3QsIHNlY29uZDtcbiAgICBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49IHNpemUpIHJldHVybiBDT05WRVJUX1RPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGZpcnN0ID0gY2hhckNvZGVBdChTLCBwb3NpdGlvbik7XG4gICAgcmV0dXJuIGZpcnN0IDwgMHhEODAwIHx8IGZpcnN0ID4gMHhEQkZGIHx8IHBvc2l0aW9uICsgMSA9PT0gc2l6ZVxuICAgICAgfHwgKHNlY29uZCA9IGNoYXJDb2RlQXQoUywgcG9zaXRpb24gKyAxKSkgPCAweERDMDAgfHwgc2Vjb25kID4gMHhERkZGXG4gICAgICAgID8gQ09OVkVSVF9UT19TVFJJTkdcbiAgICAgICAgICA/IGNoYXJBdChTLCBwb3NpdGlvbilcbiAgICAgICAgICA6IGZpcnN0XG4gICAgICAgIDogQ09OVkVSVF9UT19TVFJJTkdcbiAgICAgICAgICA/IHN0cmluZ1NsaWNlKFMsIHBvc2l0aW9uLCBwb3NpdGlvbiArIDIpXG4gICAgICAgICAgOiAoZmlyc3QgLSAweEQ4MDAgPDwgMTApICsgKHNlY29uZCAtIDB4REMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmNvZGVwb2ludGF0XG4gIGNvZGVBdDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuYXRgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc2J5bmVucy9TdHJpbmcucHJvdG90eXBlLmF0XG4gIGNoYXJBdDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tc3ltYm9sIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG52YXIgVjhfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC12OC12ZXJzaW9uJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbnZhciAkU3RyaW5nID0gZ2xvYmFsVGhpcy5TdHJpbmc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlzeW1ib2xzIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG5tb2R1bGUuZXhwb3J0cyA9ICEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgc3ltYm9sID0gU3ltYm9sKCdzeW1ib2wgZGV0ZWN0aW9uJyk7XG4gIC8vIENocm9tZSAzOCBTeW1ib2wgaGFzIGluY29ycmVjdCB0b1N0cmluZyBjb252ZXJzaW9uXG4gIC8vIGBnZXQtb3duLXByb3BlcnR5LXN5bWJvbHNgIHBvbHlmaWxsIHN5bWJvbHMgY29udmVydGVkIHRvIG9iamVjdCBhcmUgbm90IFN5bWJvbCBpbnN0YW5jZXNcbiAgLy8gbmI6IERvIG5vdCBjYWxsIGBTdHJpbmdgIGRpcmVjdGx5IHRvIGF2b2lkIHRoaXMgYmVpbmcgb3B0aW1pemVkIG91dCB0byBgc3ltYm9sKycnYCB3aGljaCB3aWxsLFxuICAvLyBvZiBjb3Vyc2UsIGZhaWwuXG4gIHJldHVybiAhJFN0cmluZyhzeW1ib2wpIHx8ICEoT2JqZWN0KHN5bWJvbCkgaW5zdGFuY2VvZiBTeW1ib2wpIHx8XG4gICAgLy8gQ2hyb21lIDM4LTQwIHN5bWJvbHMgYXJlIG5vdCBpbmhlcml0ZWQgZnJvbSBET00gY29sbGVjdGlvbnMgcHJvdG90eXBlcyB0byBpbnN0YW5jZXNcbiAgICAhU3ltYm9sLnNoYW0gJiYgVjhfVkVSU0lPTiAmJiBWOF9WRVJTSU9OIDwgNDE7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICB2YXIgU3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJyk7XG4gIHZhciBTeW1ib2xQcm90b3R5cGUgPSBTeW1ib2wgJiYgU3ltYm9sLnByb3RvdHlwZTtcbiAgdmFyIHZhbHVlT2YgPSBTeW1ib2xQcm90b3R5cGUgJiYgU3ltYm9sUHJvdG90eXBlLnZhbHVlT2Y7XG4gIHZhciBUT19QUklNSVRJVkUgPSB3ZWxsS25vd25TeW1ib2woJ3RvUHJpbWl0aXZlJyk7XG5cbiAgaWYgKFN5bWJvbFByb3RvdHlwZSAmJiAhU3ltYm9sUHJvdG90eXBlW1RPX1BSSU1JVElWRV0pIHtcbiAgICAvLyBgU3ltYm9sLnByb3RvdHlwZVtAQHRvUHJpbWl0aXZlXWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wucHJvdG90eXBlLUBAdG9wcmltaXRpdmVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMgLS0gcmVxdWlyZWQgZm9yIC5sZW5ndGhcbiAgICBkZWZpbmVCdWlsdEluKFN5bWJvbFByb3RvdHlwZSwgVE9fUFJJTUlUSVZFLCBmdW5jdGlvbiAoaGludCkge1xuICAgICAgcmV0dXJuIGNhbGwodmFsdWVPZiwgdGhpcyk7XG4gICAgfSwgeyBhcml0eTogMSB9KTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG52YXIgU3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJyk7XG52YXIga2V5Rm9yID0gU3ltYm9sLmtleUZvcjtcbnZhciB0aGlzU3ltYm9sVmFsdWUgPSB1bmN1cnJ5VGhpcyhTeW1ib2wucHJvdG90eXBlLnZhbHVlT2YpO1xuXG4vLyBgU3ltYm9sLmlzUmVnaXN0ZXJlZFN5bWJvbGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtc3ltYm9sLXByZWRpY2F0ZXMvI3NlYy1zeW1ib2wtaXNyZWdpc3RlcmVkc3ltYm9sXG5tb2R1bGUuZXhwb3J0cyA9IFN5bWJvbC5pc1JlZ2lzdGVyZWRTeW1ib2wgfHwgZnVuY3Rpb24gaXNSZWdpc3RlcmVkU3ltYm9sKHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGtleUZvcih0aGlzU3ltYm9sVmFsdWUodmFsdWUpKSAhPT0gdW5kZWZpbmVkO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1zeW1ib2wnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpO1xudmFyICRpc1dlbGxLbm93blN5bWJvbCA9IFN5bWJvbC5pc1dlbGxLbm93blN5bWJvbDtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZ2V0QnVpbHRJbignT2JqZWN0JywgJ2dldE93blByb3BlcnR5TmFtZXMnKTtcbnZhciB0aGlzU3ltYm9sVmFsdWUgPSB1bmN1cnJ5VGhpcyhTeW1ib2wucHJvdG90eXBlLnZhbHVlT2YpO1xudmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG5cbmZvciAodmFyIGkgPSAwLCBzeW1ib2xLZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhTeW1ib2wpLCBzeW1ib2xLZXlzTGVuZ3RoID0gc3ltYm9sS2V5cy5sZW5ndGg7IGkgPCBzeW1ib2xLZXlzTGVuZ3RoOyBpKyspIHtcbiAgLy8gc29tZSBvbGQgZW5naW5lcyB0aHJvd3Mgb24gYWNjZXNzIHRvIHNvbWUga2V5cyBsaWtlIGBhcmd1bWVudHNgIG9yIGBjYWxsZXJgXG4gIHRyeSB7XG4gICAgdmFyIHN5bWJvbEtleSA9IHN5bWJvbEtleXNbaV07XG4gICAgaWYgKGlzU3ltYm9sKFN5bWJvbFtzeW1ib2xLZXldKSkgd2VsbEtub3duU3ltYm9sKHN5bWJvbEtleSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbn1cblxuLy8gYFN5bWJvbC5pc1dlbGxLbm93blN5bWJvbGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtc3ltYm9sLXByZWRpY2F0ZXMvI3NlYy1zeW1ib2wtaXN3ZWxsa25vd25zeW1ib2xcbi8vIFdlIHNob3VsZCBwYXRjaCBpdCBmb3IgbmV3bHkgYWRkZWQgd2VsbC1rbm93biBzeW1ib2xzLiBJZiBpdCdzIG5vdCByZXF1aXJlZCwgdGhpcyBtb2R1bGUganVzdCB3aWxsIG5vdCBiZSBpbmplY3RlZFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc1dlbGxLbm93blN5bWJvbCh2YWx1ZSkge1xuICBpZiAoJGlzV2VsbEtub3duU3ltYm9sICYmICRpc1dlbGxLbm93blN5bWJvbCh2YWx1ZSkpIHJldHVybiB0cnVlO1xuICB0cnkge1xuICAgIHZhciBzeW1ib2wgPSB0aGlzU3ltYm9sVmFsdWUodmFsdWUpO1xuICAgIGZvciAodmFyIGogPSAwLCBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhXZWxsS25vd25TeW1ib2xzU3RvcmUpLCBrZXlzTGVuZ3RoID0ga2V5cy5sZW5ndGg7IGogPCBrZXlzTGVuZ3RoOyBqKyspIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXEgLS0gcG9seWZpbGxlZCBzeW1ib2xzIGNhc2VcbiAgICAgIGlmIChXZWxsS25vd25TeW1ib2xzU3RvcmVba2V5c1tqXV0gPT0gc3ltYm9sKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgcmV0dXJuIGZhbHNlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24nKTtcblxuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tc3ltYm9sIC0tIHNhZmUgKi9cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX1NZTUJPTCAmJiAhIVN5bWJvbFsnZm9yJ10gJiYgISFTeW1ib2wua2V5Rm9yO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xuXG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIEhlbHBlciBmb3IgYSBwb3B1bGFyIHJlcGVhdGluZyBjYXNlIG9mIHRoZSBzcGVjOlxuLy8gTGV0IGludGVnZXIgYmUgPyBUb0ludGVnZXIoaW5kZXgpLlxuLy8gSWYgaW50ZWdlciA8IDAsIGxldCByZXN1bHQgYmUgbWF4KChsZW5ndGggKyBpbnRlZ2VyKSwgMCk7IGVsc2UgbGV0IHJlc3VsdCBiZSBtaW4oaW50ZWdlciwgbGVuZ3RoKS5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgdmFyIGludGVnZXIgPSB0b0ludGVnZXJPckluZmluaXR5KGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEluZGV4ZWRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShpdCkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0cnVuYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLXRydW5jJyk7XG5cbi8vIGBUb0ludGVnZXJPckluZmluaXR5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9pbnRlZ2Vyb3JpbmZpbml0eVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIG51bWJlciA9ICthcmd1bWVudDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgcmV0dXJuIG51bWJlciAhPT0gbnVtYmVyIHx8IG51bWJlciA9PT0gMCA/IDAgOiB0cnVuYyhudW1iZXIpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcblxudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBgVG9MZW5ndGhgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2xlbmd0aFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGxlbiA9IHRvSW50ZWdlck9ySW5maW5pdHkoYXJndW1lbnQpO1xuICByZXR1cm4gbGVuID4gMCA/IG1pbihsZW4sIDB4MUZGRkZGRkZGRkZGRkYpIDogMDsgLy8gMiAqKiA1MyAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxuLy8gYFRvT2JqZWN0YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9vYmplY3Rcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiAkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgZ2V0TWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1tZXRob2QnKTtcbnZhciBvcmRpbmFyeVRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29yZGluYXJ5LXRvLXByaW1pdGl2ZScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbnZhciBUT19QUklNSVRJVkUgPSB3ZWxsS25vd25TeW1ib2woJ3RvUHJpbWl0aXZlJyk7XG5cbi8vIGBUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJpbWl0aXZlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbnB1dCwgcHJlZikge1xuICBpZiAoIWlzT2JqZWN0KGlucHV0KSB8fCBpc1N5bWJvbChpbnB1dCkpIHJldHVybiBpbnB1dDtcbiAgdmFyIGV4b3RpY1RvUHJpbSA9IGdldE1ldGhvZChpbnB1dCwgVE9fUFJJTUlUSVZFKTtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKGV4b3RpY1RvUHJpbSkge1xuICAgIGlmIChwcmVmID09PSB1bmRlZmluZWQpIHByZWYgPSAnZGVmYXVsdCc7XG4gICAgcmVzdWx0ID0gY2FsbChleG90aWNUb1ByaW0sIGlucHV0LCBwcmVmKTtcbiAgICBpZiAoIWlzT2JqZWN0KHJlc3VsdCkgfHwgaXNTeW1ib2wocmVzdWx0KSkgcmV0dXJuIHJlc3VsdDtcbiAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcbiAgfVxuICBpZiAocHJlZiA9PT0gdW5kZWZpbmVkKSBwcmVmID0gJ251bWJlcic7XG4gIHJldHVybiBvcmRpbmFyeVRvUHJpbWl0aXZlKGlucHV0LCBwcmVmKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG5cbi8vIGBUb1Byb3BlcnR5S2V5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9wcm9wZXJ0eWtleVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGtleSA9IHRvUHJpbWl0aXZlKGFyZ3VtZW50LCAnc3RyaW5nJyk7XG4gIHJldHVybiBpc1N5bWJvbChrZXkpID8ga2V5IDoga2V5ICsgJyc7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbnZhciB0ZXN0ID0ge307XG5cbnRlc3RbVE9fU1RSSU5HX1RBR10gPSAneic7XG5cbm1vZHVsZS5leHBvcnRzID0gU3RyaW5nKHRlc3QpID09PSAnW29iamVjdCB6XSc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG5cbnZhciAkU3RyaW5nID0gU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoY2xhc3NvZihhcmd1bWVudCkgPT09ICdTeW1ib2wnKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZycpO1xuICByZXR1cm4gJFN0cmluZyhhcmd1bWVudCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiAnT2JqZWN0JztcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIGlkID0gMDtcbnZhciBwb3N0Zml4ID0gTWF0aC5yYW5kb20oKTtcbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKDEuMC50b1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArIHRvU3RyaW5nKCsraWQgKyBwb3N0Zml4LCAzNik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tc3ltYm9sIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX1NZTUJPTFxuICAmJiAhU3ltYm9sLnNoYW1cbiAgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIFY4IH4gQ2hyb21lIDM2LVxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzMzNFxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0sICdwcm90b3R5cGUnLCB7XG4gICAgdmFsdWU6IDQyLFxuICAgIHdyaXRhYmxlOiBmYWxzZVxuICB9KS5wcm90b3R5cGUgIT09IDQyO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIFdlYWtNYXAgPSBnbG9iYWxUaGlzLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNDYWxsYWJsZShXZWFrTWFwKSAmJiAvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKFdlYWtNYXApKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHdyYXBwZWRXZWxsS25vd25TeW1ib2xNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtd3JhcHBlZCcpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChOQU1FKSB7XG4gIHZhciBTeW1ib2wgPSBwYXRoLlN5bWJvbCB8fCAocGF0aC5TeW1ib2wgPSB7fSk7XG4gIGlmICghaGFzT3duKFN5bWJvbCwgTkFNRSkpIGRlZmluZVByb3BlcnR5KFN5bWJvbCwgTkFNRSwge1xuICAgIHZhbHVlOiB3cmFwcGVkV2VsbEtub3duU3ltYm9sTW9kdWxlLmYoTkFNRSlcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG5leHBvcnRzLmYgPSB3ZWxsS25vd25TeW1ib2w7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24nKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgU3ltYm9sID0gZ2xvYmFsVGhpcy5TeW1ib2w7XG52YXIgV2VsbEtub3duU3ltYm9sc1N0b3JlID0gc2hhcmVkKCd3a3MnKTtcbnZhciBjcmVhdGVXZWxsS25vd25TeW1ib2wgPSBVU0VfU1lNQk9MX0FTX1VJRCA/IFN5bWJvbFsnZm9yJ10gfHwgU3ltYm9sIDogU3ltYm9sICYmIFN5bWJvbC53aXRob3V0U2V0dGVyIHx8IHVpZDtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICBpZiAoIWhhc093bihXZWxsS25vd25TeW1ib2xzU3RvcmUsIG5hbWUpKSB7XG4gICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gTkFUSVZFX1NZTUJPTCAmJiBoYXNPd24oU3ltYm9sLCBuYW1lKVxuICAgICAgPyBTeW1ib2xbbmFtZV1cbiAgICAgIDogY3JlYXRlV2VsbEtub3duU3ltYm9sKCdTeW1ib2wuJyArIG5hbWUpO1xuICB9IHJldHVybiBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciBkb2VzTm90RXhjZWVkU2FmZUludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9lcy1ub3QtZXhjZWVkLXNhZmUtaW50ZWdlcicpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIGFycmF5U3BlY2llc0NyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZScpO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcblxudmFyIElTX0NPTkNBVF9TUFJFQURBQkxFID0gd2VsbEtub3duU3ltYm9sKCdpc0NvbmNhdFNwcmVhZGFibGUnKTtcblxuLy8gV2UgY2FuJ3QgdXNlIHRoaXMgZmVhdHVyZSBkZXRlY3Rpb24gaW4gVjggc2luY2UgaXQgY2F1c2VzXG4vLyBkZW9wdGltaXphdGlvbiBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3OVxudmFyIElTX0NPTkNBVF9TUFJFQURBQkxFX1NVUFBPUlQgPSBWOF9WRVJTSU9OID49IDUxIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBhcnJheSA9IFtdO1xuICBhcnJheVtJU19DT05DQVRfU1BSRUFEQUJMRV0gPSBmYWxzZTtcbiAgcmV0dXJuIGFycmF5LmNvbmNhdCgpWzBdICE9PSBhcnJheTtcbn0pO1xuXG52YXIgaXNDb25jYXRTcHJlYWRhYmxlID0gZnVuY3Rpb24gKE8pIHtcbiAgaWYgKCFpc09iamVjdChPKSkgcmV0dXJuIGZhbHNlO1xuICB2YXIgc3ByZWFkYWJsZSA9IE9bSVNfQ09OQ0FUX1NQUkVBREFCTEVdO1xuICByZXR1cm4gc3ByZWFkYWJsZSAhPT0gdW5kZWZpbmVkID8gISFzcHJlYWRhYmxlIDogaXNBcnJheShPKTtcbn07XG5cbnZhciBGT1JDRUQgPSAhSVNfQ09OQ0FUX1NQUkVBREFCTEVfU1VQUE9SVCB8fCAhYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnY29uY2F0Jyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuY29uY2F0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmNvbmNhdFxuLy8gd2l0aCBhZGRpbmcgc3VwcG9ydCBvZiBAQGlzQ29uY2F0U3ByZWFkYWJsZSBhbmQgQEBzcGVjaWVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgYXJpdHk6IDEsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBgLmxlbmd0aGBcbiAgY29uY2F0OiBmdW5jdGlvbiBjb25jYXQoYXJnKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCh0aGlzKTtcbiAgICB2YXIgQSA9IGFycmF5U3BlY2llc0NyZWF0ZShPLCAwKTtcbiAgICB2YXIgbiA9IDA7XG4gICAgdmFyIGksIGssIGxlbmd0aCwgbGVuLCBFO1xuICAgIGZvciAoaSA9IC0xLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIEUgPSBpID09PSAtMSA/IE8gOiBhcmd1bWVudHNbaV07XG4gICAgICBpZiAoaXNDb25jYXRTcHJlYWRhYmxlKEUpKSB7XG4gICAgICAgIGxlbiA9IGxlbmd0aE9mQXJyYXlMaWtlKEUpO1xuICAgICAgICBkb2VzTm90RXhjZWVkU2FmZUludGVnZXIobiArIGxlbik7XG4gICAgICAgIGZvciAoayA9IDA7IGsgPCBsZW47IGsrKywgbisrKSBpZiAoayBpbiBFKSBjcmVhdGVQcm9wZXJ0eShBLCBuLCBFW2tdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvZXNOb3RFeGNlZWRTYWZlSW50ZWdlcihuICsgMSk7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KEEsIG4rKywgRSk7XG4gICAgICB9XG4gICAgfVxuICAgIEEubGVuZ3RoID0gbjtcbiAgICByZXR1cm4gQTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkZmlsdGVyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbHRlcjtcbnZhciBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0Jyk7XG5cbnZhciBIQVNfU1BFQ0lFU19TVVBQT1JUID0gYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnZmlsdGVyJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbHRlclxuLy8gd2l0aCBhZGRpbmcgc3VwcG9ydCBvZiBAQHNwZWNpZXNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFIQVNfU1BFQ0lFU19TVVBQT1JUIH0sIHtcbiAgZmlsdGVyOiBmdW5jdGlvbiBmaWx0ZXIoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICByZXR1cm4gJGZpbHRlcih0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mb3ItZWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LXByb3RvdHlwZS1mb3JlYWNoIC0tIHNhZmVcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IFtdLmZvckVhY2ggIT09IGZvckVhY2ggfSwge1xuICBmb3JFYWNoOiBmb3JFYWNoXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgZGVmaW5lSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3ItZGVmaW5lJyk7XG52YXIgY3JlYXRlSXRlclJlc3VsdE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlci1yZXN1bHQtb2JqZWN0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcblxudmFyIEFSUkFZX0lURVJBVE9SID0gJ0FycmF5IEl0ZXJhdG9yJztcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKEFSUkFZX0lURVJBVE9SKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5lbnRyaWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmVudHJpZXNcbi8vIGBBcnJheS5wcm90b3R5cGUua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5rZXlzXG4vLyBgQXJyYXkucHJvdG90eXBlLnZhbHVlc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS52YWx1ZXNcbi8vIGBBcnJheS5wcm90b3R5cGVbQEBpdGVyYXRvcl1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEBpdGVyYXRvclxuLy8gYENyZWF0ZUFycmF5SXRlcmF0b3JgIGludGVybmFsIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVhcnJheWl0ZXJhdG9yXG5tb2R1bGUuZXhwb3J0cyA9IGRlZmluZUl0ZXJhdG9yKEFycmF5LCAnQXJyYXknLCBmdW5jdGlvbiAoaXRlcmF0ZWQsIGtpbmQpIHtcbiAgc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgdHlwZTogQVJSQVlfSVRFUkFUT1IsXG4gICAgdGFyZ2V0OiB0b0luZGV4ZWRPYmplY3QoaXRlcmF0ZWQpLCAvLyB0YXJnZXRcbiAgICBpbmRleDogMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5leHQgaW5kZXhcbiAgICBraW5kOiBraW5kICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtpbmRcbiAgfSk7XG4vLyBgJUFycmF5SXRlcmF0b3JQcm90b3R5cGUlLm5leHRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0lYXJyYXlpdGVyYXRvcnByb3RvdHlwZSUubmV4dFxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICB2YXIgdGFyZ2V0ID0gc3RhdGUudGFyZ2V0O1xuICB2YXIgaW5kZXggPSBzdGF0ZS5pbmRleCsrO1xuICBpZiAoIXRhcmdldCB8fCBpbmRleCA+PSB0YXJnZXQubGVuZ3RoKSB7XG4gICAgc3RhdGUudGFyZ2V0ID0gbnVsbDtcbiAgICByZXR1cm4gY3JlYXRlSXRlclJlc3VsdE9iamVjdCh1bmRlZmluZWQsIHRydWUpO1xuICB9XG4gIHN3aXRjaCAoc3RhdGUua2luZCkge1xuICAgIGNhc2UgJ2tleXMnOiByZXR1cm4gY3JlYXRlSXRlclJlc3VsdE9iamVjdChpbmRleCwgZmFsc2UpO1xuICAgIGNhc2UgJ3ZhbHVlcyc6IHJldHVybiBjcmVhdGVJdGVyUmVzdWx0T2JqZWN0KHRhcmdldFtpbmRleF0sIGZhbHNlKTtcbiAgfSByZXR1cm4gY3JlYXRlSXRlclJlc3VsdE9iamVjdChbaW5kZXgsIHRhcmdldFtpbmRleF1dLCBmYWxzZSk7XG59LCAndmFsdWVzJyk7XG5cbi8vIGFyZ3VtZW50c0xpc3RbQEBpdGVyYXRvcl0gaXMgJUFycmF5UHJvdG9fdmFsdWVzJVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGV1bm1hcHBlZGFyZ3VtZW50c29iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVtYXBwZWRhcmd1bWVudHNvYmplY3RcbnZhciB2YWx1ZXMgPSBJdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcblxuLy8gVjggfiBDaHJvbWUgNDUtIGJ1Z1xuaWYgKCFJU19QVVJFICYmIERFU0NSSVBUT1JTICYmIHZhbHVlcy5uYW1lICE9PSAndmFsdWVzJykgdHJ5IHtcbiAgZGVmaW5lUHJvcGVydHkodmFsdWVzLCAnbmFtZScsIHsgdmFsdWU6ICd2YWx1ZXMnIH0pO1xufSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHNvbWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuc29tZTtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcblxudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdzb21lJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuc29tZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zb21lXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhU1RSSUNUX01FVEhPRCB9LCB7XG4gIHNvbWU6IGZ1bmN0aW9uIHNvbWUoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICByZXR1cm4gJHNvbWUodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcbiIsIi8vIGVtcHR5XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGFwcGx5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWFwcGx5Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgYXJyYXlTbGljZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zbGljZScpO1xudmFyIGdldFJlcGxhY2VyRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWpzb24tcmVwbGFjZXItZnVuY3Rpb24nKTtcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24nKTtcblxudmFyICRTdHJpbmcgPSBTdHJpbmc7XG52YXIgJHN0cmluZ2lmeSA9IGdldEJ1aWx0SW4oJ0pTT04nLCAnc3RyaW5naWZ5Jyk7XG52YXIgZXhlYyA9IHVuY3VycnlUaGlzKC8uLy5leGVjKTtcbnZhciBjaGFyQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQXQpO1xudmFyIGNoYXJDb2RlQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQ29kZUF0KTtcbnZhciByZXBsYWNlID0gdW5jdXJyeVRoaXMoJycucmVwbGFjZSk7XG52YXIgbnVtYmVyVG9TdHJpbmcgPSB1bmN1cnJ5VGhpcygxLjAudG9TdHJpbmcpO1xuXG52YXIgdGVzdGVyID0gL1tcXHVEODAwLVxcdURGRkZdL2c7XG52YXIgbG93ID0gL15bXFx1RDgwMC1cXHVEQkZGXSQvO1xudmFyIGhpID0gL15bXFx1REMwMC1cXHVERkZGXSQvO1xuXG52YXIgV1JPTkdfU1lNQk9MU19DT05WRVJTSU9OID0gIU5BVElWRV9TWU1CT0wgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgc3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJykoJ3N0cmluZ2lmeSBkZXRlY3Rpb24nKTtcbiAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge31cbiAgcmV0dXJuICRzdHJpbmdpZnkoW3N5bWJvbF0pICE9PSAnW251bGxdJ1xuICAgIC8vIFdlYktpdCBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMgbnVsbFxuICAgIHx8ICRzdHJpbmdpZnkoeyBhOiBzeW1ib2wgfSkgIT09ICd7fSdcbiAgICAvLyBWOCB0aHJvd3Mgb24gYm94ZWQgc3ltYm9sc1xuICAgIHx8ICRzdHJpbmdpZnkoT2JqZWN0KHN5bWJvbCkpICE9PSAne30nO1xufSk7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXdlbGwtZm9ybWVkLXN0cmluZ2lmeVxudmFyIElMTF9GT1JNRURfVU5JQ09ERSA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICRzdHJpbmdpZnkoJ1xcdURGMDZcXHVEODM0JykgIT09ICdcIlxcXFx1ZGYwNlxcXFx1ZDgzNFwiJ1xuICAgIHx8ICRzdHJpbmdpZnkoJ1xcdURFQUQnKSAhPT0gJ1wiXFxcXHVkZWFkXCInO1xufSk7XG5cbnZhciBzdHJpbmdpZnlXaXRoU3ltYm9sc0ZpeCA9IGZ1bmN0aW9uIChpdCwgcmVwbGFjZXIpIHtcbiAgdmFyIGFyZ3MgPSBhcnJheVNsaWNlKGFyZ3VtZW50cyk7XG4gIHZhciAkcmVwbGFjZXIgPSBnZXRSZXBsYWNlckZ1bmN0aW9uKHJlcGxhY2VyKTtcbiAgaWYgKCFpc0NhbGxhYmxlKCRyZXBsYWNlcikgJiYgKGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSkgcmV0dXJuOyAvLyBJRTggcmV0dXJucyBzdHJpbmcgb24gdW5kZWZpbmVkXG4gIGFyZ3NbMV0gPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgIC8vIHNvbWUgb2xkIGltcGxlbWVudGF0aW9ucyAobGlrZSBXZWJLaXQpIGNvdWxkIHBhc3MgbnVtYmVycyBhcyBrZXlzXG4gICAgaWYgKGlzQ2FsbGFibGUoJHJlcGxhY2VyKSkgdmFsdWUgPSBjYWxsKCRyZXBsYWNlciwgdGhpcywgJFN0cmluZyhrZXkpLCB2YWx1ZSk7XG4gICAgaWYgKCFpc1N5bWJvbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgfTtcbiAgcmV0dXJuIGFwcGx5KCRzdHJpbmdpZnksIG51bGwsIGFyZ3MpO1xufTtcblxudmFyIGZpeElsbEZvcm1lZCA9IGZ1bmN0aW9uIChtYXRjaCwgb2Zmc2V0LCBzdHJpbmcpIHtcbiAgdmFyIHByZXYgPSBjaGFyQXQoc3RyaW5nLCBvZmZzZXQgLSAxKTtcbiAgdmFyIG5leHQgPSBjaGFyQXQoc3RyaW5nLCBvZmZzZXQgKyAxKTtcbiAgaWYgKChleGVjKGxvdywgbWF0Y2gpICYmICFleGVjKGhpLCBuZXh0KSkgfHwgKGV4ZWMoaGksIG1hdGNoKSAmJiAhZXhlYyhsb3csIHByZXYpKSkge1xuICAgIHJldHVybiAnXFxcXHUnICsgbnVtYmVyVG9TdHJpbmcoY2hhckNvZGVBdChtYXRjaCwgMCksIDE2KTtcbiAgfSByZXR1cm4gbWF0Y2g7XG59O1xuXG5pZiAoJHN0cmluZ2lmeSkge1xuICAvLyBgSlNPTi5zdHJpbmdpZnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWpzb24uc3RyaW5naWZ5XG4gICQoeyB0YXJnZXQ6ICdKU09OJywgc3RhdDogdHJ1ZSwgYXJpdHk6IDMsIGZvcmNlZDogV1JPTkdfU1lNQk9MU19DT05WRVJTSU9OIHx8IElMTF9GT1JNRURfVU5JQ09ERSB9LCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBgLmxlbmd0aGBcbiAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uIHN0cmluZ2lmeShpdCwgcmVwbGFjZXIsIHNwYWNlKSB7XG4gICAgICB2YXIgYXJncyA9IGFycmF5U2xpY2UoYXJndW1lbnRzKTtcbiAgICAgIHZhciByZXN1bHQgPSBhcHBseShXUk9OR19TWU1CT0xTX0NPTlZFUlNJT04gPyBzdHJpbmdpZnlXaXRoU3ltYm9sc0ZpeCA6ICRzdHJpbmdpZnksIG51bGwsIGFyZ3MpO1xuICAgICAgcmV0dXJuIElMTF9GT1JNRURfVU5JQ09ERSAmJiB0eXBlb2YgcmVzdWx0ID09ICdzdHJpbmcnID8gcmVwbGFjZShyZXN1bHQsIHRlc3RlciwgZml4SWxsRm9ybWVkKSA6IHJlc3VsdDtcbiAgICB9XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xuXG4vLyBKU09OW0BAdG9TdHJpbmdUYWddIHByb3BlcnR5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWpzb24tQEB0b3N0cmluZ3RhZ1xuc2V0VG9TdHJpbmdUYWcoZ2xvYmFsVGhpcy5KU09OLCAnSlNPTicsIHRydWUpO1xuIiwiLy8gZW1wdHlcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtYXNzaWduJyk7XG5cbi8vIGBPYmplY3QuYXNzaWduYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmFzc2lnblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1hc3NpZ24gLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBhcml0eTogMiwgZm9yY2VkOiBPYmplY3QuYXNzaWduICE9PSBhc3NpZ24gfSwge1xuICBhc3NpZ246IGFzc2lnblxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJykuZjtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydGllcyAtLSBzYWZlXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyAhPT0gZGVmaW5lUHJvcGVydGllcywgc2hhbTogIURFU0NSSVBUT1JTIH0sIHtcbiAgZGVmaW5lUHJvcGVydGllczogZGVmaW5lUHJvcGVydGllc1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAhPT0gZGVmaW5lUHJvcGVydHksIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIGRlZmluZVByb3BlcnR5OiBkZWZpbmVQcm9wZXJ0eVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xuXG52YXIgRk9SQ0VEID0gIURFU0NSSVBUT1JTIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHsgbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKDEpOyB9KTtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRvSW5kZXhlZE9iamVjdChpdCksIGtleSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBvd25LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL293bi1rZXlzJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHknKTtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5ZGVzY3JpcHRvcnNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBzaGFtOiAhREVTQ1JJUFRPUlMgfSwge1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG9iamVjdCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KG9iamVjdCk7XG4gICAgdmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO1xuICAgIHZhciBrZXlzID0gb3duS2V5cyhPKTtcbiAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIga2V5LCBkZXNjcmlwdG9yO1xuICAgIHdoaWxlIChrZXlzLmxlbmd0aCA+IGluZGV4KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIGtleSA9IGtleXNbaW5kZXgrK10pO1xuICAgICAgaWYgKGRlc2NyaXB0b3IgIT09IHVuZGVmaW5lZCkgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBrZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLWNvbnN0cnVjdG9yLWRldGVjdGlvbicpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcblxuLy8gVjggfiBDaHJvbWUgMzggYW5kIDM5IGBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzYCBmYWlscyBvbiBwcmltaXRpdmVzXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zNDQzXG52YXIgRk9SQ0VEID0gIU5BVElWRV9TWU1CT0wgfHwgZmFpbHMoZnVuY3Rpb24gKCkgeyBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZigxKTsgfSk7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5c3ltYm9sc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgICB2YXIgJGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gJGdldE93blByb3BlcnR5U3ltYm9scyh0b09iamVjdChpdCkpIDogW107XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbmF0aXZlS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVLZXlzKDEpOyB9KTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBrZXlzOiBmdW5jdGlvbiBrZXlzKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXModG9PYmplY3QoaXQpKTtcbiAgfVxufSk7XG4iLCIvLyBlbXB0eVxuIiwiLy8gZW1wdHlcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjaGFyQXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZScpLmNoYXJBdDtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgZGVmaW5lSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3ItZGVmaW5lJyk7XG52YXIgY3JlYXRlSXRlclJlc3VsdE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlci1yZXN1bHQtb2JqZWN0Jyk7XG5cbnZhciBTVFJJTkdfSVRFUkFUT1IgPSAnU3RyaW5nIEl0ZXJhdG9yJztcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKFNUUklOR19JVEVSQVRPUik7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS1AQGl0ZXJhdG9yXG5kZWZpbmVJdGVyYXRvcihTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgdHlwZTogU1RSSU5HX0lURVJBVE9SLFxuICAgIHN0cmluZzogdG9TdHJpbmcoaXRlcmF0ZWQpLFxuICAgIGluZGV4OiAwXG4gIH0pO1xuLy8gYCVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUubmV4dGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVzdHJpbmdpdGVyYXRvcnByb3RvdHlwZSUubmV4dFxufSwgZnVuY3Rpb24gbmV4dCgpIHtcbiAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgdmFyIHN0cmluZyA9IHN0YXRlLnN0cmluZztcbiAgdmFyIGluZGV4ID0gc3RhdGUuaW5kZXg7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IHN0cmluZy5sZW5ndGgpIHJldHVybiBjcmVhdGVJdGVyUmVzdWx0T2JqZWN0KHVuZGVmaW5lZCwgdHJ1ZSk7XG4gIHBvaW50ID0gY2hhckF0KHN0cmluZywgaW5kZXgpO1xuICBzdGF0ZS5pbmRleCArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiBjcmVhdGVJdGVyUmVzdWx0T2JqZWN0KHBvaW50LCBmYWxzZSk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtZGVmaW5lJyk7XG5cbi8vIGBTeW1ib2wuYXN5bmNJdGVyYXRvcmAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLmFzeW5jaXRlcmF0b3JcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnYXN5bmNJdGVyYXRvcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG52YXIgJHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIG5hdGl2ZU9iamVjdENyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgb2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzRXh0ZXJuYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMtZXh0ZXJuYWwnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGRlZmluZVByb3BlcnRpZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIGRlZmluZUJ1aWx0SW5BY2Nlc3NvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4tYWNjZXNzb3InKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIHdyYXBwZWRXZWxsS25vd25TeW1ib2xNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtd3JhcHBlZCcpO1xudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUnKTtcbnZhciBkZWZpbmVTeW1ib2xUb1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtZGVmaW5lLXRvLXByaW1pdGl2ZScpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xudmFyICRmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZvckVhY2g7XG5cbnZhciBISURERU4gPSBzaGFyZWRLZXkoJ2hpZGRlbicpO1xudmFyIFNZTUJPTCA9ICdTeW1ib2wnO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihTWU1CT0wpO1xuXG52YXIgT2JqZWN0UHJvdG90eXBlID0gT2JqZWN0W1BST1RPVFlQRV07XG52YXIgJFN5bWJvbCA9IGdsb2JhbFRoaXMuU3ltYm9sO1xudmFyIFN5bWJvbFByb3RvdHlwZSA9ICRTeW1ib2wgJiYgJFN5bWJvbFtQUk9UT1RZUEVdO1xudmFyIFJhbmdlRXJyb3IgPSBnbG9iYWxUaGlzLlJhbmdlRXJyb3I7XG52YXIgVHlwZUVycm9yID0gZ2xvYmFsVGhpcy5UeXBlRXJyb3I7XG52YXIgUU9iamVjdCA9IGdsb2JhbFRoaXMuUU9iamVjdDtcbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZjtcbnZhciBuYXRpdmVEZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5TW9kdWxlLmY7XG52YXIgbmF0aXZlR2V0T3duUHJvcGVydHlOYW1lcyA9IGdldE93blByb3BlcnR5TmFtZXNFeHRlcm5hbC5mO1xudmFyIG5hdGl2ZVByb3BlcnR5SXNFbnVtZXJhYmxlID0gcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZjtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbnZhciBBbGxTeW1ib2xzID0gc2hhcmVkKCdzeW1ib2xzJyk7XG52YXIgT2JqZWN0UHJvdG90eXBlU3ltYm9scyA9IHNoYXJlZCgnb3Atc3ltYm9scycpO1xudmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG5cbi8vIERvbid0IHVzZSBzZXR0ZXJzIGluIFF0IFNjcmlwdCwgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzE3M1xudmFyIFVTRV9TRVRURVIgPSAhUU9iamVjdCB8fCAhUU9iamVjdFtQUk9UT1RZUEVdIHx8ICFRT2JqZWN0W1BST1RPVFlQRV0uZmluZENoaWxkO1xuXG4vLyBmYWxsYmFjayBmb3Igb2xkIEFuZHJvaWQsIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD02ODdcbnZhciBmYWxsYmFja0RlZmluZVByb3BlcnR5ID0gZnVuY3Rpb24gKE8sIFAsIEF0dHJpYnV0ZXMpIHtcbiAgdmFyIE9iamVjdFByb3RvdHlwZURlc2NyaXB0b3IgPSBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0UHJvdG90eXBlLCBQKTtcbiAgaWYgKE9iamVjdFByb3RvdHlwZURlc2NyaXB0b3IpIGRlbGV0ZSBPYmplY3RQcm90b3R5cGVbUF07XG4gIG5hdGl2ZURlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpO1xuICBpZiAoT2JqZWN0UHJvdG90eXBlRGVzY3JpcHRvciAmJiBPICE9PSBPYmplY3RQcm90b3R5cGUpIHtcbiAgICBuYXRpdmVEZWZpbmVQcm9wZXJ0eShPYmplY3RQcm90b3R5cGUsIFAsIE9iamVjdFByb3RvdHlwZURlc2NyaXB0b3IpO1xuICB9XG59O1xuXG52YXIgc2V0U3ltYm9sRGVzY3JpcHRvciA9IERFU0NSSVBUT1JTICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIG5hdGl2ZU9iamVjdENyZWF0ZShuYXRpdmVEZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBuYXRpdmVEZWZpbmVQcm9wZXJ0eSh0aGlzLCAnYScsIHsgdmFsdWU6IDcgfSkuYTsgfVxuICB9KSkuYSAhPT0gNztcbn0pID8gZmFsbGJhY2tEZWZpbmVQcm9wZXJ0eSA6IG5hdGl2ZURlZmluZVByb3BlcnR5O1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcsIGRlc2NyaXB0aW9uKSB7XG4gIHZhciBzeW1ib2wgPSBBbGxTeW1ib2xzW3RhZ10gPSBuYXRpdmVPYmplY3RDcmVhdGUoU3ltYm9sUHJvdG90eXBlKTtcbiAgc2V0SW50ZXJuYWxTdGF0ZShzeW1ib2wsIHtcbiAgICB0eXBlOiBTWU1CT0wsXG4gICAgdGFnOiB0YWcsXG4gICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uXG4gIH0pO1xuICBpZiAoIURFU0NSSVBUT1JTKSBzeW1ib2wuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgcmV0dXJuIHN5bWJvbDtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGlmIChPID09PSBPYmplY3RQcm90b3R5cGUpICRkZWZpbmVQcm9wZXJ0eShPYmplY3RQcm90b3R5cGVTeW1ib2xzLCBQLCBBdHRyaWJ1dGVzKTtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXkgPSB0b1Byb3BlcnR5S2V5KFApO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKGhhc093bihBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFBdHRyaWJ1dGVzLmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzT3duKE8sIEhJRERFTikpIG5hdGl2ZURlZmluZVByb3BlcnR5KE8sIEhJRERFTiwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIG5hdGl2ZU9iamVjdENyZWF0ZShudWxsKSkpO1xuICAgICAgT1tISURERU5dW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaGFzT3duKE8sIEhJRERFTikgJiYgT1tISURERU5dW2tleV0pIE9bSElEREVOXVtrZXldID0gZmFsc2U7XG4gICAgICBBdHRyaWJ1dGVzID0gbmF0aXZlT2JqZWN0Q3JlYXRlKEF0dHJpYnV0ZXMsIHsgZW51bWVyYWJsZTogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDAsIGZhbHNlKSB9KTtcbiAgICB9IHJldHVybiBzZXRTeW1ib2xEZXNjcmlwdG9yKE8sIGtleSwgQXR0cmlidXRlcyk7XG4gIH0gcmV0dXJuIG5hdGl2ZURlZmluZVByb3BlcnR5KE8sIGtleSwgQXR0cmlidXRlcyk7XG59O1xuXG52YXIgJGRlZmluZVByb3BlcnRpZXMgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBwcm9wZXJ0aWVzID0gdG9JbmRleGVkT2JqZWN0KFByb3BlcnRpZXMpO1xuICB2YXIga2V5cyA9IG9iamVjdEtleXMocHJvcGVydGllcykuY29uY2F0KCRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMocHJvcGVydGllcykpO1xuICAkZm9yRWFjaChrZXlzLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgaWYgKCFERVNDUklQVE9SUyB8fCBjYWxsKCRwcm9wZXJ0eUlzRW51bWVyYWJsZSwgcHJvcGVydGllcywga2V5KSkgJGRlZmluZVByb3BlcnR5KE8sIGtleSwgcHJvcGVydGllc1trZXldKTtcbiAgfSk7XG4gIHJldHVybiBPO1xufTtcblxudmFyICRjcmVhdGUgPSBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gbmF0aXZlT2JqZWN0Q3JlYXRlKE8pIDogJGRlZmluZVByb3BlcnRpZXMobmF0aXZlT2JqZWN0Q3JlYXRlKE8pLCBQcm9wZXJ0aWVzKTtcbn07XG5cbnZhciAkcHJvcGVydHlJc0VudW1lcmFibGUgPSBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBQID0gdG9Qcm9wZXJ0eUtleShWKTtcbiAgdmFyIGVudW1lcmFibGUgPSBjYWxsKG5hdGl2ZVByb3BlcnR5SXNFbnVtZXJhYmxlLCB0aGlzLCBQKTtcbiAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvdHlwZSAmJiBoYXNPd24oQWxsU3ltYm9scywgUCkgJiYgIWhhc093bihPYmplY3RQcm90b3R5cGVTeW1ib2xzLCBQKSkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gZW51bWVyYWJsZSB8fCAhaGFzT3duKHRoaXMsIFApIHx8ICFoYXNPd24oQWxsU3ltYm9scywgUCkgfHwgaGFzT3duKHRoaXMsIEhJRERFTikgJiYgdGhpc1tISURERU5dW1BdXG4gICAgPyBlbnVtZXJhYmxlIDogdHJ1ZTtcbn07XG5cbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApIHtcbiAgdmFyIGl0ID0gdG9JbmRleGVkT2JqZWN0KE8pO1xuICB2YXIga2V5ID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90b3R5cGUgJiYgaGFzT3duKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhc093bihPYmplY3RQcm90b3R5cGVTeW1ib2xzLCBrZXkpKSByZXR1cm47XG4gIHZhciBkZXNjcmlwdG9yID0gbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpO1xuICBpZiAoZGVzY3JpcHRvciAmJiBoYXNPd24oQWxsU3ltYm9scywga2V5KSAmJiAhKGhhc093bihpdCwgSElEREVOKSAmJiBpdFtISURERU5dW2tleV0pKSB7XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZGVzY3JpcHRvcjtcbn07XG5cbnZhciAkZ2V0T3duUHJvcGVydHlOYW1lcyA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoTykge1xuICB2YXIgbmFtZXMgPSBuYXRpdmVHZXRPd25Qcm9wZXJ0eU5hbWVzKHRvSW5kZXhlZE9iamVjdChPKSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgJGZvckVhY2gobmFtZXMsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAoIWhhc093bihBbGxTeW1ib2xzLCBrZXkpICYmICFoYXNPd24oaGlkZGVuS2V5cywga2V5KSkgcHVzaChyZXN1bHQsIGtleSk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxudmFyICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBmdW5jdGlvbiAoTykge1xuICB2YXIgSVNfT0JKRUNUX1BST1RPVFlQRSA9IE8gPT09IE9iamVjdFByb3RvdHlwZTtcbiAgdmFyIG5hbWVzID0gbmF0aXZlR2V0T3duUHJvcGVydHlOYW1lcyhJU19PQkpFQ1RfUFJPVE9UWVBFID8gT2JqZWN0UHJvdG90eXBlU3ltYm9scyA6IHRvSW5kZXhlZE9iamVjdChPKSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgJGZvckVhY2gobmFtZXMsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAoaGFzT3duKEFsbFN5bWJvbHMsIGtleSkgJiYgKCFJU19PQkpFQ1RfUFJPVE9UWVBFIHx8IGhhc093bihPYmplY3RQcm90b3R5cGUsIGtleSkpKSB7XG4gICAgICBwdXNoKHJlc3VsdCwgQWxsU3ltYm9sc1trZXldKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gYFN5bWJvbGAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLWNvbnN0cnVjdG9yXG5pZiAoIU5BVElWRV9TWU1CT0wpIHtcbiAgJFN5bWJvbCA9IGZ1bmN0aW9uIFN5bWJvbCgpIHtcbiAgICBpZiAoaXNQcm90b3R5cGVPZihTeW1ib2xQcm90b3R5cGUsIHRoaXMpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdTeW1ib2wgaXMgbm90IGEgY29uc3RydWN0b3InKTtcbiAgICB2YXIgZGVzY3JpcHRpb24gPSAhYXJndW1lbnRzLmxlbmd0aCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6ICR0b1N0cmluZyhhcmd1bWVudHNbMF0pO1xuICAgIHZhciB0YWcgPSB1aWQoZGVzY3JpcHRpb24pO1xuICAgIHZhciBzZXR0ZXIgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHZhciAkdGhpcyA9IHRoaXMgPT09IHVuZGVmaW5lZCA/IGdsb2JhbFRoaXMgOiB0aGlzO1xuICAgICAgaWYgKCR0aGlzID09PSBPYmplY3RQcm90b3R5cGUpIGNhbGwoc2V0dGVyLCBPYmplY3RQcm90b3R5cGVTeW1ib2xzLCB2YWx1ZSk7XG4gICAgICBpZiAoaGFzT3duKCR0aGlzLCBISURERU4pICYmIGhhc093bigkdGhpc1tISURERU5dLCB0YWcpKSAkdGhpc1tISURERU5dW3RhZ10gPSBmYWxzZTtcbiAgICAgIHZhciBkZXNjcmlwdG9yID0gY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHZhbHVlKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFN5bWJvbERlc2NyaXB0b3IoJHRoaXMsIHRhZywgZGVzY3JpcHRvcik7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpKSB0aHJvdyBlcnJvcjtcbiAgICAgICAgZmFsbGJhY2tEZWZpbmVQcm9wZXJ0eSgkdGhpcywgdGFnLCBkZXNjcmlwdG9yKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGlmIChERVNDUklQVE9SUyAmJiBVU0VfU0VUVEVSKSBzZXRTeW1ib2xEZXNjcmlwdG9yKE9iamVjdFByb3RvdHlwZSwgdGFnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgc2V0OiBzZXR0ZXIgfSk7XG4gICAgcmV0dXJuIHdyYXAodGFnLCBkZXNjcmlwdGlvbik7XG4gIH07XG5cbiAgU3ltYm9sUHJvdG90eXBlID0gJFN5bWJvbFtQUk9UT1RZUEVdO1xuXG4gIGRlZmluZUJ1aWx0SW4oU3ltYm9sUHJvdG90eXBlLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS50YWc7XG4gIH0pO1xuXG4gIGRlZmluZUJ1aWx0SW4oJFN5bWJvbCwgJ3dpdGhvdXRTZXR0ZXInLCBmdW5jdGlvbiAoZGVzY3JpcHRpb24pIHtcbiAgICByZXR1cm4gd3JhcCh1aWQoZGVzY3JpcHRpb24pLCBkZXNjcmlwdGlvbik7XG4gIH0pO1xuXG4gIHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlLmYgPSAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4gIGRlZmluZVByb3BlcnR5TW9kdWxlLmYgPSAkZGVmaW5lUHJvcGVydHk7XG4gIGRlZmluZVByb3BlcnRpZXNNb2R1bGUuZiA9ICRkZWZpbmVQcm9wZXJ0aWVzO1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUuZiA9IGdldE93blByb3BlcnR5TmFtZXNFeHRlcm5hbC5mID0gJGdldE93blByb3BlcnR5TmFtZXM7XG4gIGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mID0gJGdldE93blByb3BlcnR5U3ltYm9scztcblxuICB3cmFwcGVkV2VsbEtub3duU3ltYm9sTW9kdWxlLmYgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHJldHVybiB3cmFwKHdlbGxLbm93blN5bWJvbChuYW1lKSwgbmFtZSk7XG4gIH07XG5cbiAgaWYgKERFU0NSSVBUT1JTKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtU3ltYm9sLWRlc2NyaXB0aW9uXG4gICAgZGVmaW5lQnVpbHRJbkFjY2Vzc29yKFN5bWJvbFByb3RvdHlwZSwgJ2Rlc2NyaXB0aW9uJywge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbiBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldEludGVybmFsU3RhdGUodGhpcykuZGVzY3JpcHRpb247XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFJU19QVVJFKSB7XG4gICAgICBkZWZpbmVCdWlsdEluKE9iamVjdFByb3RvdHlwZSwgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB7IHVuc2FmZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cblxuJCh7IGdsb2JhbDogdHJ1ZSwgY29uc3RydWN0b3I6IHRydWUsIHdyYXA6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0wsIHNoYW06ICFOQVRJVkVfU1lNQk9MIH0sIHtcbiAgU3ltYm9sOiAkU3ltYm9sXG59KTtcblxuJGZvckVhY2gob2JqZWN0S2V5cyhXZWxsS25vd25TeW1ib2xzU3RvcmUpLCBmdW5jdGlvbiAobmFtZSkge1xuICBkZWZpbmVXZWxsS25vd25TeW1ib2wobmFtZSk7XG59KTtcblxuJCh7IHRhcmdldDogU1lNQk9MLCBzdGF0OiB0cnVlLCBmb3JjZWQ6ICFOQVRJVkVfU1lNQk9MIH0sIHtcbiAgdXNlU2V0dGVyOiBmdW5jdGlvbiAoKSB7IFVTRV9TRVRURVIgPSB0cnVlOyB9LFxuICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgVVNFX1NFVFRFUiA9IGZhbHNlOyB9XG59KTtcblxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0wsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIC8vIGBPYmplY3QuY3JlYXRlYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4gIGNyZWF0ZTogJGNyZWF0ZSxcbiAgLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0eWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbiAgZGVmaW5lUHJvcGVydGllczogJGRlZmluZVByb3BlcnRpZXMsXG4gIC8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yc1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jcbn0pO1xuXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX1NZTUJPTCB9LCB7XG4gIC8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXNcbn0pO1xuXG4vLyBgU3ltYm9sLnByb3RvdHlwZVtAQHRvUHJpbWl0aXZlXWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5wcm90b3R5cGUtQEB0b3ByaW1pdGl2ZVxuZGVmaW5lU3ltYm9sVG9QcmltaXRpdmUoKTtcblxuLy8gYFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11gIHByb3BlcnR5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5wcm90b3R5cGUtQEB0b3N0cmluZ3RhZ1xuc2V0VG9TdHJpbmdUYWcoJFN5bWJvbCwgU1lNQk9MKTtcblxuaGlkZGVuS2V5c1tISURERU5dID0gdHJ1ZTtcbiIsIi8vIGVtcHR5XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIE5BVElWRV9TWU1CT0xfUkVHSVNUUlkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLXJlZ2lzdHJ5LWRldGVjdGlvbicpO1xuXG52YXIgU3RyaW5nVG9TeW1ib2xSZWdpc3RyeSA9IHNoYXJlZCgnc3RyaW5nLXRvLXN5bWJvbC1yZWdpc3RyeScpO1xudmFyIFN5bWJvbFRvU3RyaW5nUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC10by1zdHJpbmctcmVnaXN0cnknKTtcblxuLy8gYFN5bWJvbC5mb3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wuZm9yXG4kKHsgdGFyZ2V0OiAnU3ltYm9sJywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX1NZTUJPTF9SRUdJU1RSWSB9LCB7XG4gICdmb3InOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIHN0cmluZyA9IHRvU3RyaW5nKGtleSk7XG4gICAgaWYgKGhhc093bihTdHJpbmdUb1N5bWJvbFJlZ2lzdHJ5LCBzdHJpbmcpKSByZXR1cm4gU3RyaW5nVG9TeW1ib2xSZWdpc3RyeVtzdHJpbmddO1xuICAgIHZhciBzeW1ib2wgPSBnZXRCdWlsdEluKCdTeW1ib2wnKShzdHJpbmcpO1xuICAgIFN0cmluZ1RvU3ltYm9sUmVnaXN0cnlbc3RyaW5nXSA9IHN5bWJvbDtcbiAgICBTeW1ib2xUb1N0cmluZ1JlZ2lzdHJ5W3N5bWJvbF0gPSBzdHJpbmc7XG4gICAgcmV0dXJuIHN5bWJvbDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLWRlZmluZScpO1xuXG4vLyBgU3ltYm9sLmhhc0luc3RhbmNlYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wuaGFzaW5zdGFuY2VcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnaGFzSW5zdGFuY2UnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtZGVmaW5lJyk7XG5cbi8vIGBTeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wuaXNjb25jYXRzcHJlYWRhYmxlXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ2lzQ29uY2F0U3ByZWFkYWJsZScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUnKTtcblxuLy8gYFN5bWJvbC5pdGVyYXRvcmAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLml0ZXJhdG9yXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgdGhpcyBtb2R1bGUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIHNwbGl0IHRvIG1vZHVsZXMgbGlzdGVkIGJlbG93XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5jb25zdHJ1Y3RvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wuZm9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5rZXktZm9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgdHJ5VG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MX1JFR0lTVFJZID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1yZWdpc3RyeS1kZXRlY3Rpb24nKTtcblxudmFyIFN5bWJvbFRvU3RyaW5nUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC10by1zdHJpbmctcmVnaXN0cnknKTtcblxuLy8gYFN5bWJvbC5rZXlGb3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wua2V5Zm9yXG4kKHsgdGFyZ2V0OiAnU3ltYm9sJywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX1NZTUJPTF9SRUdJU1RSWSB9LCB7XG4gIGtleUZvcjogZnVuY3Rpb24ga2V5Rm9yKHN5bSkge1xuICAgIGlmICghaXNTeW1ib2woc3ltKSkgdGhyb3cgbmV3IFR5cGVFcnJvcih0cnlUb1N0cmluZyhzeW0pICsgJyBpcyBub3QgYSBzeW1ib2wnKTtcbiAgICBpZiAoaGFzT3duKFN5bWJvbFRvU3RyaW5nUmVnaXN0cnksIHN5bSkpIHJldHVybiBTeW1ib2xUb1N0cmluZ1JlZ2lzdHJ5W3N5bV07XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUnKTtcblxuLy8gYFN5bWJvbC5tYXRjaEFsbGAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLm1hdGNoYWxsXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ21hdGNoQWxsJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLWRlZmluZScpO1xuXG4vLyBgU3ltYm9sLm1hdGNoYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wubWF0Y2hcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnbWF0Y2gnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtZGVmaW5lJyk7XG5cbi8vIGBTeW1ib2wucmVwbGFjZWAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLnJlcGxhY2VcbmRlZmluZVdlbGxLbm93blN5bWJvbCgncmVwbGFjZScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUnKTtcblxuLy8gYFN5bWJvbC5zZWFyY2hgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5zZWFyY2hcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnc2VhcmNoJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLWRlZmluZScpO1xuXG4vLyBgU3ltYm9sLnNwZWNpZXNgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5zcGVjaWVzXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtZGVmaW5lJyk7XG5cbi8vIGBTeW1ib2wuc3BsaXRgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5zcGxpdFxuZGVmaW5lV2VsbEtub3duU3ltYm9sKCdzcGxpdCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUnKTtcbnZhciBkZWZpbmVTeW1ib2xUb1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtZGVmaW5lLXRvLXByaW1pdGl2ZScpO1xuXG4vLyBgU3ltYm9sLnRvUHJpbWl0aXZlYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wudG9wcmltaXRpdmVcbmRlZmluZVdlbGxLbm93blN5bWJvbCgndG9QcmltaXRpdmUnKTtcblxuLy8gYFN5bWJvbC5wcm90b3R5cGVbQEB0b1ByaW1pdGl2ZV1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wucHJvdG90eXBlLUBAdG9wcmltaXRpdmVcbmRlZmluZVN5bWJvbFRvUHJpbWl0aXZlKCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtZGVmaW5lJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcblxuLy8gYFN5bWJvbC50b1N0cmluZ1RhZ2Agd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLnRvc3RyaW5ndGFnXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG5cbi8vIGBTeW1ib2wucHJvdG90eXBlW0BAdG9TdHJpbmdUYWddYCBwcm9wZXJ0eVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wucHJvdG90eXBlLUBAdG9zdHJpbmd0YWdcbnNldFRvU3RyaW5nVGFnKGdldEJ1aWx0SW4oJ1N5bWJvbCcpLCAnU3ltYm9sJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLWRlZmluZScpO1xuXG4vLyBgU3ltYm9sLnVuc2NvcGFibGVzYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wudW5zY29wYWJsZXNcbmRlZmluZVdlbGxLbm93blN5bWJvbCgndW5zY29wYWJsZXMnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcblxudmFyIE1FVEFEQVRBID0gd2VsbEtub3duU3ltYm9sKCdtZXRhZGF0YScpO1xudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuXG4vLyBGdW5jdGlvbi5wcm90b3R5cGVbQEBtZXRhZGF0YV1cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWRlY29yYXRvci1tZXRhZGF0YVxuaWYgKEZ1bmN0aW9uUHJvdG90eXBlW01FVEFEQVRBXSA9PT0gdW5kZWZpbmVkKSB7XG4gIGRlZmluZVByb3BlcnR5KEZ1bmN0aW9uUHJvdG90eXBlLCBNRVRBREFUQSwge1xuICAgIHZhbHVlOiBudWxsXG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUnKTtcblxuLy8gYFN5bWJvbC5hc3luY0Rpc3Bvc2VgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1hc3luYy1leHBsaWNpdC1yZXNvdXJjZS1tYW5hZ2VtZW50XG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ2FzeW5jRGlzcG9zZScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUnKTtcblxuLy8gYFN5bWJvbC5jdXN0b21NYXRjaGVyYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtcGF0dGVybi1tYXRjaGluZ1xuZGVmaW5lV2VsbEtub3duU3ltYm9sKCdjdXN0b21NYXRjaGVyJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLWRlZmluZScpO1xuXG4vLyBgU3ltYm9sLmRpc3Bvc2VgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1leHBsaWNpdC1yZXNvdXJjZS1tYW5hZ2VtZW50XG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ2Rpc3Bvc2UnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzUmVnaXN0ZXJlZFN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtaXMtcmVnaXN0ZXJlZCcpO1xuXG4vLyBgU3ltYm9sLmlzUmVnaXN0ZXJlZFN5bWJvbGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtc3ltYm9sLXByZWRpY2F0ZXMvI3NlYy1zeW1ib2wtaXNyZWdpc3RlcmVkc3ltYm9sXG4kKHsgdGFyZ2V0OiAnU3ltYm9sJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGlzUmVnaXN0ZXJlZFN5bWJvbDogaXNSZWdpc3RlcmVkU3ltYm9sXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzUmVnaXN0ZXJlZFN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtaXMtcmVnaXN0ZXJlZCcpO1xuXG4vLyBgU3ltYm9sLmlzUmVnaXN0ZXJlZGAgbWV0aG9kXG4vLyBvYnNvbGV0ZSB2ZXJzaW9uIG9mIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1zeW1ib2wtcHJlZGljYXRlcy8jc2VjLXN5bWJvbC1pc3JlZ2lzdGVyZWRzeW1ib2xcbiQoeyB0YXJnZXQ6ICdTeW1ib2wnLCBzdGF0OiB0cnVlLCBuYW1lOiAnaXNSZWdpc3RlcmVkU3ltYm9sJyB9LCB7XG4gIGlzUmVnaXN0ZXJlZDogaXNSZWdpc3RlcmVkU3ltYm9sXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1pcy13ZWxsLWtub3duJyk7XG5cbi8vIGBTeW1ib2wuaXNXZWxsS25vd25TeW1ib2xgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLXN5bWJvbC1wcmVkaWNhdGVzLyNzZWMtc3ltYm9sLWlzd2VsbGtub3duc3ltYm9sXG4vLyBXZSBzaG91bGQgcGF0Y2ggaXQgZm9yIG5ld2x5IGFkZGVkIHdlbGwta25vd24gc3ltYm9scy4gSWYgaXQncyBub3QgcmVxdWlyZWQsIHRoaXMgbW9kdWxlIGp1c3Qgd2lsbCBub3QgYmUgaW5qZWN0ZWRcbiQoeyB0YXJnZXQ6ICdTeW1ib2wnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IHRydWUgfSwge1xuICBpc1dlbGxLbm93blN5bWJvbDogaXNXZWxsS25vd25TeW1ib2xcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgaXNXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3ltYm9sLWlzLXdlbGwta25vd24nKTtcblxuLy8gYFN5bWJvbC5pc1dlbGxLbm93bmAgbWV0aG9kXG4vLyBvYnNvbGV0ZSB2ZXJzaW9uIG9mIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1zeW1ib2wtcHJlZGljYXRlcy8jc2VjLXN5bWJvbC1pc3dlbGxrbm93bnN5bWJvbFxuLy8gV2Ugc2hvdWxkIHBhdGNoIGl0IGZvciBuZXdseSBhZGRlZCB3ZWxsLWtub3duIHN5bWJvbHMuIElmIGl0J3Mgbm90IHJlcXVpcmVkLCB0aGlzIG1vZHVsZSBqdXN0IHdpbGwgbm90IGJlIGluamVjdGVkXG4kKHsgdGFyZ2V0OiAnU3ltYm9sJywgc3RhdDogdHJ1ZSwgbmFtZTogJ2lzV2VsbEtub3duU3ltYm9sJywgZm9yY2VkOiB0cnVlIH0sIHtcbiAgaXNXZWxsS25vd246IGlzV2VsbEtub3duU3ltYm9sXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtZGVmaW5lJyk7XG5cbi8vIGBTeW1ib2wubWF0Y2hlcmAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXBhdHRlcm4tbWF0Y2hpbmdcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnbWF0Y2hlcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGBcbnZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtZGVmaW5lJyk7XG5cbi8vIGBTeW1ib2wubWV0YWRhdGFLZXlgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1kZWNvcmF0b3ItbWV0YWRhdGFcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnbWV0YWRhdGFLZXknKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtZGVmaW5lJyk7XG5cbi8vIGBTeW1ib2wubWV0YWRhdGFgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1kZWNvcmF0b3JzXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ21ldGFkYXRhJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLWRlZmluZScpO1xuXG4vLyBgU3ltYm9sLm9ic2VydmFibGVgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1vYnNlcnZhYmxlXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ29ic2VydmFibGUnKTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIFRPRE86IHJlbW92ZSBmcm9tIGBjb3JlLWpzQDRgXG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLWRlZmluZScpO1xuXG4vLyBgU3ltYm9sLnBhdHRlcm5NYXRjaGAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXBhdHRlcm4tbWF0Y2hpbmdcbmRlZmluZVdlbGxLbm93blN5bWJvbCgncGF0dGVybk1hdGNoJyk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiByZW1vdmUgZnJvbSBgY29yZS1qc0A0YFxudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC1kZWZpbmUnKTtcblxuZGVmaW5lV2VsbEtub3duU3ltYm9sKCdyZXBsYWNlQWxsJyk7XG4iLCIvLyBlbXB0eVxuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvcicpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xuXG5mb3IgKHZhciBDT0xMRUNUSU9OX05BTUUgaW4gRE9NSXRlcmFibGVzKSB7XG4gIHNldFRvU3RyaW5nVGFnKGdsb2JhbFRoaXNbQ09MTEVDVElPTl9OQU1FXSwgQ09MTEVDVElPTl9OQU1FKTtcbiAgSXRlcmF0b3JzW0NPTExFQ1RJT05fTkFNRV0gPSBJdGVyYXRvcnMuQXJyYXk7XG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vLi4vZXMvYXJyYXkvdmlydHVhbC9mb3ItZWFjaCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9maWx0ZXInKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBtZXRob2QgPSByZXF1aXJlKCcuLi9hcnJheS92aXJ0dWFsL2Zvci1lYWNoJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2gnKTtcblxudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG52YXIgRE9NSXRlcmFibGVzID0ge1xuICBET01Ub2tlbkxpc3Q6IHRydWUsXG4gIE5vZGVMaXN0OiB0cnVlXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQuZm9yRWFjaDtcbiAgcmV0dXJuIGl0ID09PSBBcnJheVByb3RvdHlwZSB8fCAoaXNQcm90b3R5cGVPZihBcnJheVByb3RvdHlwZSwgaXQpICYmIG93biA9PT0gQXJyYXlQcm90b3R5cGUuZm9yRWFjaClcbiAgICB8fCBoYXNPd24oRE9NSXRlcmFibGVzLCBjbGFzc29mKGl0KSkgPyBtZXRob2QgOiBvd247XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL3NvbWUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvb2JqZWN0L2Fzc2lnbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9vYmplY3QvZGVmaW5lLXByb3BlcnRpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3JzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL29iamVjdC9nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvb2JqZWN0L2tleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvc3ltYm9sJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvc3ltYm9sL2l0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvc3ltYm9sL3RvLXByaW1pdGl2ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgYXBwLCBpcGNNYWluIH0gZnJvbSAnZWxlY3Ryb24nXG5pbXBvcnQgc2VydmUgZnJvbSAnZWxlY3Ryb24tc2VydmUnXG5pbXBvcnQgeyBjcmVhdGVXaW5kb3cgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmNvbnN0IGlzUHJvZCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbidcblxuaWYgKGlzUHJvZCkge1xuICBzZXJ2ZSh7IGRpcmVjdG9yeTogJ2FwcCcgfSlcbn0gZWxzZSB7XG4gIGFwcC5zZXRQYXRoKCd1c2VyRGF0YScsIGAke2FwcC5nZXRQYXRoKCd1c2VyRGF0YScpfSAoZGV2ZWxvcG1lbnQpYClcbn1cblxuOyhhc3luYyAoKSA9PiB7XG4gIGF3YWl0IGFwcC53aGVuUmVhZHkoKVxuXG4gIGNvbnN0IG1haW5XaW5kb3cgPSBjcmVhdGVXaW5kb3coJ21haW4nLCB7XG4gICAgd2lkdGg6IDEwMDAsXG4gICAgaGVpZ2h0OiA2MDAsXG4gICAgd2ViUHJlZmVyZW5jZXM6IHtcbiAgICAgIHByZWxvYWQ6IHBhdGguam9pbihfX2Rpcm5hbWUsICdwcmVsb2FkLmpzJylcbiAgICB9XG4gIH0pXG5cbiAgaWYgKGlzUHJvZCkge1xuICAgIGF3YWl0IG1haW5XaW5kb3cubG9hZFVSTCgnYXBwOi8vLi8nKVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHBvcnQgPSBwcm9jZXNzLmFyZ3ZbMl1cbiAgICBhd2FpdCBtYWluV2luZG93LmxvYWRVUkwoYGh0dHA6Ly9sb2NhbGhvc3Q6JHtwb3J0fS9gKVxuICAgIG1haW5XaW5kb3cud2ViQ29udGVudHMub3BlbkRldlRvb2xzKClcbiAgfVxufSkoKVxuXG5hcHAub24oJ3dpbmRvdy1hbGwtY2xvc2VkJywgKCkgPT4ge1xuICBhcHAucXVpdCgpXG59KVxuIl0sIm5hbWVzIjpbInNjcmVlbiIsIkJyb3dzZXJXaW5kb3ciLCJTdG9yZSIsImNyZWF0ZVdpbmRvdyIsIndpbmRvd05hbWUiLCJvcHRpb25zIiwia2V5IiwibmFtZSIsInN0b3JlIiwiZGVmYXVsdFNpemUiLCJ3aWR0aCIsImhlaWdodCIsInN0YXRlIiwicmVzdG9yZSIsImdldCIsImdldEN1cnJlbnRQb3NpdGlvbiIsInBvc2l0aW9uIiwid2luIiwiZ2V0UG9zaXRpb24iLCJzaXplIiwiZ2V0U2l6ZSIsIngiLCJ5Iiwid2luZG93V2l0aGluQm91bmRzIiwid2luZG93U3RhdGUiLCJib3VuZHMiLCJyZXNldFRvRGVmYXVsdHMiLCJnZXRQcmltYXJ5RGlzcGxheSIsIl9PYmplY3QkYXNzaWduIiwiZW5zdXJlVmlzaWJsZU9uU29tZURpc3BsYXkiLCJfY29udGV4dCIsInZpc2libGUiLCJfc29tZUluc3RhbmNlUHJvcGVydHkiLCJnZXRBbGxEaXNwbGF5cyIsImNhbGwiLCJkaXNwbGF5Iiwic2F2ZVN0YXRlIiwiaXNNaW5pbWl6ZWQiLCJpc01heGltaXplZCIsInNldCIsIl9vYmplY3RTcHJlYWQiLCJ3ZWJQcmVmZXJlbmNlcyIsIm5vZGVJbnRlZ3JhdGlvbiIsImNvbnRleHRJc29sYXRpb24iLCJvbiIsInBhdGgiLCJhcHAiLCJzZXJ2ZSIsImlzUHJvZCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRpcmVjdG9yeSIsInNldFBhdGgiLCJnZXRQYXRoIiwid2hlblJlYWR5IiwibWFpbldpbmRvdyIsInByZWxvYWQiLCJqb2luIiwiX19kaXJuYW1lIiwibG9hZFVSTCIsInBvcnQiLCJhcmd2Iiwid2ViQ29udGVudHMiLCJvcGVuRGV2VG9vbHMiLCJxdWl0Il0sInNvdXJjZVJvb3QiOiIifQ== diff --git a/app/preload.js b/app/preload.js deleted file mode 100644 index ce083f9..0000000 --- a/app/preload.js +++ /dev/null @@ -1,156 +0,0 @@ -;(function webpackUniversalModuleDefinition(root, factory) { - if (typeof exports === 'object' && typeof module === 'object') - module.exports = factory() - else if (typeof define === 'function' && define.amd) define([], factory) - else { - var a = factory() - for (var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i] - } -})(global, () => { - return /******/ (() => { - // webpackBootstrap - /******/ 'use strict' - /******/ var __webpack_modules__ = { - /***/ electron: - /*!***************************!*\ - !*** external "electron" ***! - \***************************/ - /***/ module => { - module.exports = require('electron') - - /***/ - } - - /******/ - } - /************************************************************************/ - /******/ // The module cache - /******/ var __webpack_module_cache__ = {} - /******/ - /******/ // The require function - /******/ function __webpack_require__(moduleId) { - /******/ // Check if module is in cache - /******/ var cachedModule = __webpack_module_cache__[moduleId] - /******/ if (cachedModule !== undefined) { - /******/ return cachedModule.exports - /******/ - } - /******/ // Create a new module (and put it into the cache) - /******/ var module = (__webpack_module_cache__[moduleId] = { - /******/ // no module.id needed - /******/ // no module.loaded needed - /******/ exports: {} - /******/ - }) - /******/ - /******/ // Execute the module function - /******/ __webpack_modules__[moduleId]( - module, - module.exports, - __webpack_require__ - ) - /******/ - /******/ // Return the exports of the module - /******/ return module.exports - /******/ - } - /******/ - /************************************************************************/ - /******/ /* webpack/runtime/compat get default export */ - /******/ ;(() => { - /******/ // getDefaultExport function for compatibility with non-harmony modules - /******/ __webpack_require__.n = module => { - /******/ var getter = - module && module.__esModule - ? /******/ () => module['default'] - : /******/ () => module - /******/ __webpack_require__.d(getter, { a: getter }) - /******/ return getter - /******/ - } - /******/ - })() - /******/ - /******/ /* webpack/runtime/define property getters */ - /******/ ;(() => { - /******/ // define getter functions for harmony exports - /******/ __webpack_require__.d = (exports, definition) => { - /******/ for (var key in definition) { - /******/ if ( - __webpack_require__.o(definition, key) && - !__webpack_require__.o(exports, key) - ) { - /******/ Object.defineProperty(exports, key, { - enumerable: true, - get: definition[key] - }) - /******/ - } - /******/ - } - /******/ - } - /******/ - })() - /******/ - /******/ /* webpack/runtime/hasOwnProperty shorthand */ - /******/ ;(() => { - /******/ __webpack_require__.o = (obj, prop) => - Object.prototype.hasOwnProperty.call(obj, prop) - /******/ - })() - /******/ - /******/ /* webpack/runtime/make namespace object */ - /******/ ;(() => { - /******/ // define __esModule on exports - /******/ __webpack_require__.r = exports => { - /******/ if (typeof Symbol !== 'undefined' && Symbol.toStringTag) { - /******/ Object.defineProperty(exports, Symbol.toStringTag, { - value: 'Module' - }) - /******/ - } - /******/ Object.defineProperty(exports, '__esModule', { value: true }) - /******/ - } - /******/ - })() - /******/ - /************************************************************************/ - var __webpack_exports__ = {} - /*!*************************!*\ - !*** ./main/preload.ts ***! - \*************************/ - __webpack_require__.r(__webpack_exports__) - /* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = - __webpack_require__(/*! electron */ 'electron') - /* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = - /*#__PURE__*/ __webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__) - - const handler = { - send(channel, value) { - electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer.send(channel, value) - }, - on(channel, callback) { - const subscription = (_event, ...args) => callback(...args) - electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer.on( - channel, - subscription - ) - return () => { - electron__WEBPACK_IMPORTED_MODULE_0__.ipcRenderer.removeListener( - channel, - subscription - ) - } - } - } - electron__WEBPACK_IMPORTED_MODULE_0__.contextBridge.exposeInMainWorld( - 'ipc', - handler - ) - /******/ return __webpack_exports__ - /******/ - })() -}) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsTzs7Ozs7Ozs7OztBQ1ZBOzs7Ozs7VUNBQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBOztVQUVBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBOzs7OztXQ3RCQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EsaUNBQWlDLFdBQVc7V0FDNUM7V0FDQTs7Ozs7V0NQQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLHlDQUF5Qyx3Q0FBd0M7V0FDakY7V0FDQTtXQUNBOzs7OztXQ1BBOzs7OztXQ0FBO1dBQ0E7V0FDQTtXQUNBLHVEQUF1RCxpQkFBaUI7V0FDeEU7V0FDQSxnREFBZ0QsYUFBYTtXQUM3RDs7Ozs7Ozs7Ozs7QUNOdUU7QUFFdkUsTUFBTUUsT0FBTyxHQUFHO0VBQ2RDLElBQUlBLENBQUNDLE9BQWUsRUFBRUMsS0FBYyxFQUFFO0lBQ3BDSixpREFBVyxDQUFDRSxJQUFJLENBQUNDLE9BQU8sRUFBRUMsS0FBSyxDQUFDO0VBQ2xDLENBQUM7RUFDREMsRUFBRUEsQ0FBQ0YsT0FBZSxFQUFFRyxRQUFzQyxFQUFFO0lBQzFELE1BQU1DLFlBQVksR0FBR0EsQ0FBQ0MsTUFBd0IsRUFBRSxHQUFHQyxJQUFlLEtBQ2hFSCxRQUFRLENBQUMsR0FBR0csSUFBSSxDQUFDO0lBQ25CVCxpREFBVyxDQUFDSyxFQUFFLENBQUNGLE9BQU8sRUFBRUksWUFBWSxDQUFDO0lBRXJDLE9BQU8sTUFBTTtNQUNYUCxpREFBVyxDQUFDVSxjQUFjLENBQUNQLE9BQU8sRUFBRUksWUFBWSxDQUFDO0lBQ25ELENBQUM7RUFDSDtBQUNGLENBQUM7QUFFRFIsbURBQWEsQ0FBQ1ksaUJBQWlCLENBQUMsS0FBSyxFQUFFVixPQUFPLENBQUMsQyIsInNvdXJjZXMiOlsid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi9leHRlcm5hbCBub2RlLWNvbW1vbmpzIFwiZWxlY3Ryb25cIiIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vYm9pbGVycGxhdGUtbmV4dHJvbi1zaGFkY24vd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9ib2lsZXJwbGF0ZS1uZXh0cm9uLXNoYWRjbi93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL2JvaWxlcnBsYXRlLW5leHRyb24tc2hhZGNuLy4vbWFpbi9wcmVsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSBmYWN0b3J5KCk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShnbG9iYWwsICgpID0+IHtcbnJldHVybiAiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJlbGVjdHJvblwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IHsgY29udGV4dEJyaWRnZSwgaXBjUmVuZGVyZXIsIElwY1JlbmRlcmVyRXZlbnQgfSBmcm9tICdlbGVjdHJvbidcblxuY29uc3QgaGFuZGxlciA9IHtcbiAgc2VuZChjaGFubmVsOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgaXBjUmVuZGVyZXIuc2VuZChjaGFubmVsLCB2YWx1ZSlcbiAgfSxcbiAgb24oY2hhbm5lbDogc3RyaW5nLCBjYWxsYmFjazogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdm9pZCkge1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IChfZXZlbnQ6IElwY1JlbmRlcmVyRXZlbnQsIC4uLmFyZ3M6IHVua25vd25bXSkgPT5cbiAgICAgIGNhbGxiYWNrKC4uLmFyZ3MpXG4gICAgaXBjUmVuZGVyZXIub24oY2hhbm5lbCwgc3Vic2NyaXB0aW9uKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlwY1JlbmRlcmVyLnJlbW92ZUxpc3RlbmVyKGNoYW5uZWwsIHN1YnNjcmlwdGlvbilcbiAgICB9XG4gIH1cbn1cblxuY29udGV4dEJyaWRnZS5leHBvc2VJbk1haW5Xb3JsZCgnaXBjJywgaGFuZGxlcilcblxuZXhwb3J0IHR5cGUgSXBjSGFuZGxlciA9IHR5cGVvZiBoYW5kbGVyXG4iXSwibmFtZXMiOlsiY29udGV4dEJyaWRnZSIsImlwY1JlbmRlcmVyIiwiaGFuZGxlciIsInNlbmQiLCJjaGFubmVsIiwidmFsdWUiLCJvbiIsImNhbGxiYWNrIiwic3Vic2NyaXB0aW9uIiwiX2V2ZW50IiwiYXJncyIsInJlbW92ZUxpc3RlbmVyIiwiZXhwb3NlSW5NYWluV29ybGQiXSwic291cmNlUm9vdCI6IiJ9