webpackJsonp([2],[ /* 0 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT__; /***/ }), /* 1 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__PROP_TYPES__; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { Object.defineProperty(exports, "__esModule", { value: true }); exports.translate = exports.sprintf = exports.ngettext = exports.jed = exports.intl = exports.documentLocale = exports["default"] = void 0; var _jed = _interopRequireDefault(__webpack_require__(197)); var _reactIntl = __webpack_require__(25); var _forceSingleton = _interopRequireDefault(__webpack_require__(31)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var IntlLoader = /*#__PURE__*/function () { function IntlLoader(locale, timezone) { _classCallCheck(this, IntlLoader); this.fallbackIntl = !global.Intl; // eslint-disable-next-line prefer-destructuring this.locale = locale.split('-')[0]; this.timezone = this.fallbackIntl ? 'UTC' : timezone; this.ready = this.init(); } _createClass(IntlLoader, [{ key: "init", value: function () { var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() { var _this = this; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.next = 2; return this.fetchIntl(); case 2: _context.t0 = _reactIntl.addLocaleData; _context.next = 5; return Promise.resolve().then(function () { return _interopRequireWildcard(__webpack_require__(198)("./".concat(_this.locale))); }); case 5: _context.t1 = _context.sent; (0, _context.t0)(_context.t1); return _context.abrupt("return", true); case 8: case "end": return _context.stop(); } }, _callee, this); })); function init() { return _init.apply(this, arguments); } return init; }() }, { key: "fetchIntl", value: function () { var _fetchIntl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() { var _this2 = this; return _regeneratorRuntime().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: if (!this.fallbackIntl) { _context2.next = 6; break; } _context2.next = 3; return Promise.resolve().then(function () { return _interopRequireWildcard(__webpack_require__(575)); }); case 3: global.Intl = _context2.sent; _context2.next = 6; return Promise.resolve().then(function () { return _interopRequireWildcard(__webpack_require__(215)("./".concat(_this2.locale))); }); case 6: case "end": return _context2.stop(); } }, _callee2, this); })); function fetchIntl() { return _fetchIntl.apply(this, arguments); } return fetchIntl; }() }]); return IntlLoader; }(); var htmlElemnt = document.getElementsByTagName('html')[0]; var langAttr = htmlElemnt.getAttribute('lang') || 'en'; var timezoneAttr = htmlElemnt.getAttribute('data-timezone') || 'UTC'; var intl = (0, _forceSingleton["default"])('Intl', function () { return new IntlLoader(langAttr, timezoneAttr); }); exports.intl = intl; var cheveronPrefix = function cheveronPrefix() { return window.I18N_MARK ? "\xBB" : ''; }; var cheveronSuffix = function cheveronSuffix() { return window.I18N_MARK ? "\xAB" : ''; }; var documentLocale = function documentLocale() { return langAttr; }; exports.documentLocale = documentLocale; var getLocaleData = function getLocaleData() { var locales = window.locales || {}; var locale = documentLocale().replace(/-/g, '_'); if (locales[locale] === undefined) { // eslint-disable-next-line no-console console.log("could not load translations for ".concat(locale, " locale, falling back to default locale.")); return { domain: 'app', locale_data: { app: { '': {} } } }; } return locales[locale]; }; var jed = (0, _forceSingleton["default"])('Jed', function () { return new _jed["default"](getLocaleData()); }); exports.jed = jed; var translate = function translate() { return "".concat(cheveronPrefix()).concat(jed.gettext.apply(jed, arguments)).concat(cheveronSuffix()); }; exports.translate = translate; var ngettext = function ngettext() { return "".concat(cheveronPrefix()).concat(jed.ngettext.apply(jed, arguments)).concat(cheveronSuffix()); }; exports.ngettext = ngettext; var sprintf = jed.sprintf; exports.sprintf = sprintf; var i18n = { translate: translate, ngettext: ngettext, jed: jed, sprintf: sprintf, intl: intl }; var _default = i18n; exports["default"] = _default; window.__ = translate; window.n__ = ngettext; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(105))) /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.translateObject = exports.translateArray = exports.stringIsPositiveNumber = exports.removeLastSlashFromPath = exports.propsToSnakeCase = exports.propsToCamelCase = exports.noop = exports.newWindowOnClick = exports.isoCompatibleDate = exports.getWikiURL = exports.getURIQuery = exports.getManualURL = exports.getDisplayName = exports.formatDateTime = exports.formatDate = exports.foremanUrl = exports["default"] = exports.deepPropsToSnakeCase = exports.deepPropsToCamelCase = exports.debounceMethods = exports.clearSpaces = exports.bindMethods = void 0; var _lodash = __webpack_require__(10); var _urijs = _interopRequireDefault(__webpack_require__(15)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /** * Our API returns non-ISO8601 dates * This method converts those strings into ISO8601 format * @param {String} date - non-ISO date to convert */ var isoCompatibleDate = function isoCompatibleDate(date) { if (typeof date === 'string' && date.match(/\d{4}-\d\d-\d\d\s\d\d:\d\d:\d\d\s[+-]?\d{4}/)) { // we've matched a date in the format: 2019-03-14 15:39:27 -0400 return date.replace(/\s/, 'T').replace(/\s/, ''); } return date; }; /** * Add a debounce timeout for your methods. * @param {Object} context - the context where your method is running. * @param {Number} time - the amount of debounce time in miliseconds. * @param {Array} methods - Array that contains the methods to run on. */ exports.isoCompatibleDate = isoCompatibleDate; var debounceMethods = function debounceMethods(context, time, methods) { methods.forEach(function (method) { var methodName = method.name || method; var methodTime = method.time || time; // eslint-disable-next-line no-param-reassign context[methodName] = (0, _lodash.debounce)(context[methodName], methodTime); }); }; /** * Bind your methods to run in a specific context. * @param {Object} context - the context where your method should run. * @param {Array} methods - Array that contains the methods to run on. */ exports.debounceMethods = debounceMethods; var bindMethods = function bindMethods(context, methods) { methods.forEach(function (method) { // eslint-disable-next-line no-param-reassign context[method] = context[method].bind(context); }); }; /** * Removes slashes from the beggining and end of the path * @param {String} path - the path that should be removed of slashes */ exports.bindMethods = bindMethods; var removeLastSlashFromPath = function removeLastSlashFromPath(path) { if (!path || path.length < 2) return path; var lastCharIndex = path.length - 1; return path[lastCharIndex] === '/' ? path.slice(0, -1) : path; }; /** * An empty function which is usually used as a default function. */ exports.removeLastSlashFromPath = removeLastSlashFromPath; var noop = Function.prototype; /** * Opens the link in a new window. * @param {String} url - the path to open in a new window. */ exports.noop = noop; var newWindowOnClick = function newWindowOnClick(url) { return function (event) { event.preventDefault(); var newWindow = window.open(url, '_blank'); newWindow.opener = null; }; }; /** * Clear the spaces in both sides of a string and erase multiple spaces. * @param {String} string - the string which should be trimmed. */ exports.newWindowOnClick = newWindowOnClick; var clearSpaces = function clearSpaces(string) { return string.trim().replace(/\s\s+/, ' '); }; exports.clearSpaces = clearSpaces; var getDisplayName = function getDisplayName(Component) { return Component.displayName || Component.name || 'Component'; }; /** * Use I18n to translate an object of strings * @param {Object.} obj - the object to translate * @returns {Object.} a translated object */ exports.getDisplayName = getDisplayName; var translateObject = function translateObject(obj) { return _extends.apply(void 0, [{}].concat(_toConsumableArray(Object.entries(obj).map(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), k = _ref2[0], v = _ref2[1]; return _defineProperty({}, k, (0, _I18n.translate)(v)); })))); }; /** * Use I18n to translate an array of strings * @param {Array.} arr - the array to translate * @returns {Array.} a translated array */ exports.translateObject = translateObject; var translateArray = function translateArray(arr) { return arr.map(function (str) { return (0, _I18n.translate)(str); }); }; /** * Return the query in URL as Objects where keys are * the parameters and the values are the parameters' values. * @param {String} url - the URL */ exports.translateArray = translateArray; var getURIQuery = function getURIQuery(url) { return new _urijs["default"](url).query(true); }; /** * Transform object keys to snake case */ exports.getURIQuery = getURIQuery; var propsToSnakeCase = function propsToSnakeCase(ob) { return propsToCase(_lodash.snakeCase, 'propsToSnakeCase only takes objects', ob); }; /** * Transform object keys to camel case */ exports.propsToSnakeCase = propsToSnakeCase; var propsToCamelCase = function propsToCamelCase(ob) { return propsToCase(_lodash.camelCase, 'propsToCamelCase only takes objects', ob); }; exports.propsToCamelCase = propsToCamelCase; var propsToCase = function propsToCase(casingFn, errorMsg, ob) { if (_typeof(ob) !== 'object') throw Error(errorMsg); return Object.keys(ob).reduce(function (memo, key) { memo[casingFn(key)] = ob[key]; return memo; }, {}); }; /** * Transform object keys to camel case, works for nested objects */ var deepPropsToCamelCase = function deepPropsToCamelCase(obj) { return deepPropsToCase(_lodash.camelCase, 'propsToCamelCase only takes objects')(obj); }; /** * Transform object keys to snake case, works for nested objects */ exports.deepPropsToCamelCase = deepPropsToCamelCase; var deepPropsToSnakeCase = function deepPropsToSnakeCase(obj) { return deepPropsToCase(_lodash.snakeCase, 'propsToSnakeCase only takes objects')(obj); }; exports.deepPropsToSnakeCase = deepPropsToSnakeCase; var deepPropsToCase = function deepPropsToCase(casingFn, errorMsg) { return function (obj) { if (_typeof(obj) !== 'object' || obj === null) { return obj; } if (Array.isArray(obj)) { return obj.map(deepPropsToCase(casingFn, errorMsg)); } var transformed = propsToCase(casingFn, errorMsg, obj); return Object.keys(transformed).reduce(function (memo, key) { memo[key] = deepPropsToCase(casingFn, errorMsg)(transformed[key]); return memo; }, {}); }; }; /** * Check if a string is a positive integer * @param {String} value - the string */ var stringIsPositiveNumber = function stringIsPositiveNumber(value) { var reg = new RegExp('^[0-9]+$'); return reg.test(value); }; /** * Get manual url based on version * @param {String} section - section id for foreman documetation */ exports.stringIsPositiveNumber = stringIsPositiveNumber; var getManualURL = function getManualURL(section) { return foremanUrl("/links/manual/".concat(section)); }; exports.getManualURL = getManualURL; var getWikiURL = function getWikiURL(section) { return foremanUrl("/links/wiki/".concat(section)); }; /** * Transform the Date object to date string accepted in the server * @param {Date} * @returns {string} */ exports.getWikiURL = getWikiURL; var formatDate = function formatDate(date) { return formatDateTime(date).split(' ')[0]; }; /** * Transform the Date object to datetime string accepted in the server * @param {Date} * @returns {string} */ exports.formatDate = formatDate; var formatDateTime = function formatDateTime(date) { var zeroPadding = function zeroPadding(n) { return n < 10 ? "0".concat(n) : n; }; var _year$month$day$hour$ = { year: date.getFullYear(), month: zeroPadding(date.getMonth() + 1), day: zeroPadding(date.getDate()), hour: zeroPadding(date.getHours()), minutes: zeroPadding(date.getMinutes()) }, year = _year$month$day$hour$.year, month = _year$month$day$hour$.month, day = _year$month$day$hour$.day, hour = _year$month$day$hour$.hour, minutes = _year$month$day$hour$.minutes; return "".concat(year, "-").concat(month, "-").concat(day, " ").concat(hour, ":").concat(minutes, ":00"); }; // generates an absolute, needed in case of running Foreman from a subpath exports.formatDateTime = formatDateTime; var foremanUrl = function foremanUrl(path) { return "".concat(window.URL_PREFIX).concat(path); }; exports.foremanUrl = foremanUrl; var _default = { isoCompatibleDate: isoCompatibleDate, bindMethods: bindMethods, noop: noop, debounceMethods: debounceMethods, clearSpaces: clearSpaces, newWindowOnClick: newWindowOnClick, getDisplayName: getDisplayName, translateObject: translateObject, translateArray: translateArray, propsToCamelCase: propsToCamelCase, propsToSnakeCase: propsToSnakeCase, deepPropsToCamelCase: deepPropsToCamelCase, deepPropsToSnakeCase: deepPropsToSnakeCase, stringIsPositiveNumber: stringIsPositiveNumber, getManualURL: getManualURL, formatDate: formatDate, formatDateTime: formatDateTime, foremanUrl: foremanUrl, getWikiURL: getWikiURL }; exports["default"] = _default; /***/ }), /* 4 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__PATTERNFLY_REACT__; /***/ }), /* 5 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_REDUX__; /***/ }), /* 6 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__PATTERNFLY_REACT_CORE__; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getControllerSearchProps = exports.STATUS = void 0; var _helpers = __webpack_require__(3); var STATUS = { PENDING: 'PENDING', RESOLVED: 'RESOLVED', ERROR: 'ERROR' }; exports.STATUS = STATUS; var getControllerSearchProps = function getControllerSearchProps(controller) { var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'searchBar'; var canCreate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; return { controller: controller, autocomplete: { id: id, searchQuery: '', url: "".concat(controller, "/auto_complete_search"), useKeyShortcuts: true }, bookmarks: { url: '/api/bookmarks', canCreate: canCreate, documentationUrl: (0, _helpers.getManualURL)('4.1.5Searching') } }; }; exports.getControllerSearchProps = getControllerSearchProps; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { reducers: true, actionTypeGenerator: true, API_OPERATIONS: true, APIMiddleware: true, API: true }; Object.defineProperty(exports, "API", { enumerable: true, get: function get() { return _API["default"]; } }); Object.defineProperty(exports, "APIMiddleware", { enumerable: true, get: function get() { return _APIMiddleware.APIMiddleware; } }); Object.defineProperty(exports, "API_OPERATIONS", { enumerable: true, get: function get() { return _APIConstants.API_OPERATIONS; } }); Object.defineProperty(exports, "actionTypeGenerator", { enumerable: true, get: function get() { return _APIActionTypeGenerator.actionTypeGenerator; } }); exports.reducers = void 0; var _APIReducer = _interopRequireDefault(__webpack_require__(237)); var _APIActionTypeGenerator = __webpack_require__(71); var _APIConstants = __webpack_require__(72); var _APIMiddleware = __webpack_require__(238); var _API = _interopRequireDefault(__webpack_require__(246)); var _APIActions = __webpack_require__(187); Object.keys(_APIActions).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _APIActions[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _APIActions[key]; } }); }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var reducers = { API: _APIReducer["default"] }; exports.reducers = reducers; /***/ }), /* 9 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__SEAMLESS_IMMUTABLE__; /***/ }), /* 10 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__LODASH__; /***/ }), /* 11 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__PATTERNFLY_REACT_ICONS__; /***/ }), /* 12 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REDUX__; /***/ }), /* 13 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__CLASSNAMES__; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectAPIStatus = exports.selectAPIResponse = exports.selectAPIPayload = exports.selectAPIErrorMessage = exports.selectAPIError = exports.selectAPIByKey = exports.selectAPI = void 0; var _constants = __webpack_require__(7); var selectAPI = function selectAPI(state) { return state.API; }; exports.selectAPI = selectAPI; var selectAPIByKey = function selectAPIByKey(state, key) { return selectAPI(state)[key] || {}; }; exports.selectAPIByKey = selectAPIByKey; var selectAPIStatus = function selectAPIStatus(state, key) { return selectAPIByKey(state, key).status; }; exports.selectAPIStatus = selectAPIStatus; var selectAPIPayload = function selectAPIPayload(state, key) { return selectAPIByKey(state, key).payload || {}; }; exports.selectAPIPayload = selectAPIPayload; var selectAPIResponse = function selectAPIResponse(state, key) { return selectAPIByKey(state, key).response || {}; }; exports.selectAPIResponse = selectAPIResponse; var selectAPIError = function selectAPIError(state, key) { return selectAPIStatus(state, key) === _constants.STATUS.ERROR ? selectAPIResponse(state, key) : null; }; exports.selectAPIError = selectAPIError; var selectAPIErrorMessage = function selectAPIErrorMessage(state, key) { var error = selectAPIError(state, key); return error && error.message; }; exports.selectAPIErrorMessage = selectAPIErrorMessage; /***/ }), /* 15 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__URIJS__; /***/ }), /* 16 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__UUID_V_1__; /***/ }), /* 17 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_ROUTER_DOM__; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { openConfirmModal: true, showSpinner: true, hideSpinner: true, iconText: true, activateDatatables: true, activateTooltips: true, initTypeAheadSelect: true, setTab: true, highlightTabErrors: true, foremanUrl: true }; exports.activateDatatables = activateDatatables; exports.activateTooltips = activateTooltips; Object.defineProperty(exports, "foremanUrl", { enumerable: true, get: function get() { return _helpers.foremanUrl; } }); exports.hideSpinner = hideSpinner; exports.highlightTabErrors = highlightTabErrors; exports.iconText = iconText; exports.initTypeAheadSelect = initTypeAheadSelect; exports.setTab = exports.openConfirmModal = void 0; exports.showSpinner = showSpinner; var _jquery = _interopRequireDefault(__webpack_require__(20)); var _I18n = __webpack_require__(2); var _foreman_navigation = __webpack_require__(26); var _redux = _interopRequireDefault(__webpack_require__(27)); var _ConfirmModal = __webpack_require__(30); var _DeprecationService = __webpack_require__(77); Object.keys(_DeprecationService).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _DeprecationService[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _DeprecationService[key]; } }); }); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /* eslint-disable jquery/no-val */ /* eslint-disable jquery/no-find */ /* eslint-disable jquery/no-text */ /* eslint-disable jquery/no-ajax */ /* eslint-disable jquery/no-each */ /* eslint-disable jquery/no-class */ var openConfirmModal = function openConfirmModal(options) { return _redux["default"].dispatch((0, _ConfirmModal.openConfirmModal)(options)); }; exports.openConfirmModal = openConfirmModal; function showSpinner() { (0, _foreman_navigation.showLoading)(); } function hideSpinner() { (0, _foreman_navigation.hideLoading)(); } function iconText(name, innerText, iconClass) { var icon = ""); if (innerText !== '') { icon += "".concat(innerText, ""); } return icon; } function activateDatatables() { var language = { searchPlaceholder: (0, _I18n.translate)('Filter...'), emptyTable: (0, _I18n.translate)('No data available in table'), info: (0, _I18n.sprintf)((0, _I18n.translate)('Showing %s to %s of %s entries'), '_START_', '_END_', '_TOTAL_'), infoEmpty: (0, _I18n.translate)('Showing 0 to 0 of 0 entries'), infoFiltered: (0, _I18n.sprintf)((0, _I18n.translate)('(filtered from %s total entries)'), '_MAX_'), lengthMenu: (0, _I18n.sprintf)((0, _I18n.translate)('Show %s entries'), '_MENU_'), loadingRecords: (0, _I18n.translate)('Loading...'), processing: (0, _I18n.translate)('Processing...'), search: (0, _I18n.translate)('Search:'), zeroRecords: (0, _I18n.translate)('No matching records found'), paginate: { first: (0, _I18n.translate)('First'), last: (0, _I18n.translate)('Last'), next: (0, _I18n.translate)('Next'), previous: (0, _I18n.translate)('Previous') }, aria: { sortAscending: (0, _I18n.translate)(': activate to sort column ascending'), sortDescending: (0, _I18n.translate)(': activate to sort column descending') } }; (0, _jquery["default"])('[data-table=inline]').not('.dataTable').DataTable({ language: language, dom: "<'row'<'col-md-6'f>r>t<'row'<'col-md-6'i><'col-md-6'p>>" }); (0, _jquery["default"])('[data-table=server]').not('.dataTable').each(function (i, el) { var url = el.getAttribute('data-source'); (0, _jquery["default"])(el).DataTable({ language: language, processing: true, serverSide: true, ordering: false, ajax: url, dom: "<'row'<'col-md-6'f>r>t<'row'<'col-md-6'><'col-md-6'p>>" }); }); } function activateTooltips() { var elParam = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'body'; var el = (0, _jquery["default"])(elParam); el.tooltip({ selector: '[rel="twipsy"],*[title]:not(*[rel],.fa,.pficon)', container: 'body', trigger: 'hover' }); // Ellipsis have to be initialized for each element for title() to work el.find('.ellipsis').tooltip({ container: 'body', title: function title() { return this.scrollWidth > this.clientWidth ? this.textContent : null; } }); } function initTypeAheadSelect(input) { input.select2({ ajax: { url: input.data('url'), dataType: 'json', quietMillis: 250, data: function data(term, page) { return { q: term, scope: input.data('scope') }; }, results: function results(data) { return { results: data.map(function (_ref) { var id = _ref.id, name = _ref.name; return { id: id, text: name }; }) }; }, cache: true }, initSelection: function initSelection(element, callback) { _jquery["default"].ajax(input.data('url'), { data: { scope: input.data('scope') }, dataType: 'json' }).done(function (data) { if (data.length > 0) { // eslint-disable-next-line standard/no-callback-literal callback({ id: data[0].id, text: data[0].name }); } }); }, width: '400px' }); } // generates an absolute, needed in case of running Foreman from a subpath var setTab = function setTab() { var urlHash = document.location.hash.split('?')[0]; if (urlHash.length && !urlHash.startsWith('#/')) { var tabContent = (0, _jquery["default"])(urlHash); var parentTab = tabContent.closest('.tab-pane'); if (parentTab.exists()) { (0, _jquery["default"])(".nav-tabs a[href=\"#".concat(parentTab[0].id, "\"]")).tab('show'); } (0, _jquery["default"])(".nav-tabs a[href=\"".concat(urlHash, "\"]")).tab('show'); } }; exports.setTab = setTab; function highlightTabErrors() { var errorFields = (0, _jquery["default"])('.tab-content .has-error'); errorFields.parents('.tab-pane').each(function fn() { (0, _jquery["default"])("a[href=\"#".concat(this.id, "\"]")).addClass('tab-error'); }); (0, _jquery["default"])('.tab-error').first().click(); (0, _jquery["default"])('.nav-pills .tab-error').first().click(); errorFields.first().find('.form-control').focus(); } /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var LabelIcon = function LabelIcon(_ref) { var text = _ref.text; return /*#__PURE__*/_react["default"].createElement(_reactCore.Popover, { bodyContent: text }, /*#__PURE__*/_react["default"].createElement("button", { className: "pf-c-form__group-label-help", onClick: function onClick(e) { return e.preventDefault(); } }, /*#__PURE__*/_react["default"].createElement(_reactIcons.HelpIcon, { noVerticalAlign: true }))); }; LabelIcon.propTypes = { text: _propTypes["default"].string.isRequired }; var _default = LabelIcon; exports["default"] = _default; /***/ }), /* 20 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__JQUERY__; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.urlWithSearch = exports.urlBuilder = exports.stringifyParams = exports.getURIsort = exports.getURIsearch = exports.getURIperPage = exports.getURIpage = exports.getURI = exports.getParams = exports.exportURL = exports.changeQuery = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _foreman_navigation = __webpack_require__(26); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /** * Build a url from given controller, action and id * @param {String} controller - the controller * @param {String} action - the action */ var urlBuilder = function urlBuilder(controller, action) { var id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; return "/".concat(controller, "/").concat(id ? "".concat(id, "/") : '').concat(action); }; /** * Build a url with search query * @param {String} base - the base url * @param {String} searchQuery - the search query */ exports.urlBuilder = urlBuilder; var urlWithSearch = function urlWithSearch(base, searchQuery) { return "/".concat(base, "?search=").concat(searchQuery); }; /** * Get updated URI */ exports.urlWithSearch = urlWithSearch; var getURI = function getURI() { return new _urijs["default"](window.location.href); }; /** * Get updated page param */ exports.getURI = getURI; var getURIpage = function getURIpage() { return Number(getURI().query(true).page) || 1; }; /** * Get updated perPage param */ exports.getURIpage = getURIpage; var getURIperPage = function getURIperPage() { return Number(getURI().query(true).per_page); }; /** * Get updated searchQuery param */ exports.getURIperPage = getURIperPage; var getURIsearch = function getURIsearch() { return getURI().query(true).search || ''; }; /** * Get updated sort param */ exports.getURIsearch = getURIsearch; var getURIsort = function getURIsort() { var sortString = getURI().query(true).order; if (!sortString) { return {}; } var _sortString$split = sortString.split(' '), _sortString$split2 = _slicedToArray(_sortString$split, 2), by = _sortString$split2[0], order = _sortString$split2[1]; return { by: by, order: order }; }; /** * Get updated URI params */ exports.getURIsort = getURIsort; var getParams = function getParams() { return { page: getURIpage(), perPage: getURIperPage() || null, searchQuery: getURIsearch(), sort: getURIsort() }; }; /** * Get updated Stringified params */ exports.getParams = getParams; var stringifyParams = function stringifyParams(_ref) { var _ref$page = _ref.page, page = _ref$page === void 0 ? 1 : _ref$page, _ref$perPage = _ref.perPage, perPage = _ref$perPage === void 0 ? 25 : _ref$perPage, _ref$searchQuery = _ref.searchQuery, searchQuery = _ref$searchQuery === void 0 ? '' : _ref$searchQuery, _ref$sort = _ref.sort, sort = _ref$sort === void 0 ? {} : _ref$sort; var uri = getURI(); if (searchQuery !== '') uri.search({ page: page, per_page: perPage, search: searchQuery });else uri.search({ page: page, per_page: perPage }); if (sort.by && sort.order) { uri.setSearch('order', "".concat(sort.by, " ").concat(sort.order)); } return uri.search(); }; /** * change current query and trigger navigation * @param {URI} uri - URI object * @param {Object} newQuery - Query Object * @param {Function} navigateTo - navigate func */ exports.stringifyParams = stringifyParams; var changeQuery = function changeQuery(newQuery, navigateTo) { var uri = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getURI(); uri.setQuery(newQuery); if (navigateTo) navigateTo(uri.toString());else (0, _foreman_navigation.visit)(uri.toString()); }; exports.changeQuery = changeQuery; var exportURL = function exportURL() { var url = getURI(); url.addQuery('format', 'csv'); return "".concat(url.pathname()).concat(url.search()); }; exports.exportURL = exportURL; /***/ }), /* 22 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_ELLIPSIS_WITH_TOOLTIP__; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _history = __webpack_require__(232); var _forceSingleton = _interopRequireDefault(__webpack_require__(31)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var history = (0, _forceSingleton["default"])('history', function () { return (0, _history.createBrowserHistory)(); }); var _default = history; exports["default"] = _default; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); __webpack_require__(333); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } // temporary component // will be replaced by patternfly markup when available // temporary component // will be replaced by patternfly markup when available var MessageBox = function MessageBox(_ref) { var msg = _ref.msg, icontype = _ref.icontype; return /*#__PURE__*/_react["default"].createElement("div", { className: "message-box-root" }, /*#__PURE__*/_react["default"].createElement("div", { className: "pficon pficon-".concat(icontype, " message-box-content message-box-icon") }), /*#__PURE__*/_react["default"].createElement("div", { className: "message-box-content message-box-message" }, msg)); }; MessageBox.propTypes = { icontype: _propTypes["default"].string.isRequired, msg: _propTypes["default"].string }; MessageBox.defaultProps = { msg: '' }; var _default = MessageBox; exports["default"] = _default; /***/ }), /* 25 */, /* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reloadPage = exports.pushUrl = exports.hideLoading = exports.changeOrganization = exports.changeLocation = exports.changeActive = void 0; exports.showContent = showContent; exports.visit = exports.showLoading = void 0; var _jquery = _interopRequireDefault(__webpack_require__(20)); var _urijs = _interopRequireDefault(__webpack_require__(15)); var _connectedReactRouter = __webpack_require__(33); var _redux = _interopRequireDefault(__webpack_require__(27)); var LayoutActions = _interopRequireWildcard(__webpack_require__(114)); var _DeprecationService = __webpack_require__(77); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /* eslint-disable jquery/no-show */ var visit = function visit(url) { window.location.href = url; }; exports.visit = visit; var reloadPage = function reloadPage() { window.location.reload(); }; /** * Push a new url to foreman's react router * @param {String} url - the base url i.e `/hosts` * @param {Object} searchQuery - the query params, i.e {'per_page': 4, 'page': 2} */ exports.reloadPage = reloadPage; var pushUrl = function pushUrl(url) { var queryParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var urlWithQueries = new _urijs["default"](url).search(queryParams).toString(); return _redux["default"].dispatch((0, _connectedReactRouter.push)(urlWithQueries)); }; exports.pushUrl = pushUrl; var showLoading = function showLoading() { _redux["default"].dispatch(LayoutActions.showLoading()); }; exports.showLoading = showLoading; var hideLoading = function hideLoading() { _redux["default"].dispatch(LayoutActions.hideLoading()); }; exports.hideLoading = hideLoading; var changeLocation = function changeLocation(loc) { (0, _DeprecationService.deprecate)('changeLocation', 'Context', '2.6'); }; exports.changeLocation = changeLocation; var changeOrganization = function changeOrganization(org) { (0, _DeprecationService.deprecate)('changeOrganization', 'Context', '2.6'); }; exports.changeOrganization = changeOrganization; var changeActive = function changeActive(active) { _redux["default"].dispatch(LayoutActions.changeActiveMenu({ title: active })); }; exports.changeActive = changeActive; function showContent(layout, unsubscribe) { var content = function content() { (0, _jquery["default"])('#content').show(); unsubscribe(); }; // workaround for pages with no layout object if (layout.items.length && !layout.isLoading) { content(); } else if ((0, _jquery["default"])('#layout').length === 0) content(); } /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateStore = exports["default"] = void 0; var _redux = __webpack_require__(12); var _forceSingleton = _interopRequireDefault(__webpack_require__(31)); var _reducers = _interopRequireDefault(__webpack_require__(186)); var _middlewares = __webpack_require__(437); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || _redux.compose; var generateStore = function generateStore() { return (0, _redux.createStore)(_reducers["default"], composeEnhancers(_redux.applyMiddleware.apply(void 0, _toConsumableArray(_middlewares.middlewares)))); }; exports.generateStore = generateStore; var store = (0, _forceSingleton["default"])('redux_store', generateStore); var _default = store; exports["default"] = _default; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = {}; exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _slice = __webpack_require__(243); Object.keys(_slice).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _slice[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _slice[key]; } }); }); var _helpers = __webpack_require__(244); __webpack_require__(245); var _excluded = ["type", "message", "link", "sticky"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var ToastsList = function ToastsList(_ref) { var railsMessages = _ref.railsMessages; var dispatch = (0, _reactRedux.useDispatch)(); var messages = (0, _reactRedux.useSelector)(_slice.selectToastsList); (0, _react.useEffect)(function () { railsMessages.forEach(function (_ref2) { var message = _ref2.message, type = _ref2.type, key = _ref2.key; dispatch((0, _slice.addToast)({ message: message, type: type, key: key })); }); }, [dispatch, railsMessages]); var toastsList = Object.entries(messages).map(function (_ref4) { var _ref5 = _slicedToArray(_ref4, 2), key = _ref5[0], _ref3 = _ref5[1]; var type = _ref3.type, message = _ref3.message, link = _ref3.link, sticky = _ref3.sticky, toastProps = _objectWithoutProperties(_ref3, _excluded); return /*#__PURE__*/_react["default"].createElement(_reactCore.Alert, _extends({ key: key, title: (0, _helpers.toastTitle)(message, (0, _helpers.toastType)(type)), variant: (0, _helpers.toastType)(type), timeout: sticky ? false : 8000, onTimeout: function onTimeout() { return dispatch((0, _slice.deleteToast)(key)); }, className: "foreman-toast", actionClose: /*#__PURE__*/_react["default"].createElement(_reactCore.AlertActionCloseButton, { onClose: function onClose() { return dispatch((0, _slice.deleteToast)(key)); } }), actionLinks: link && /*#__PURE__*/_react["default"].createElement(_reactCore.AlertActionLink, null, /*#__PURE__*/_react["default"].createElement("a", { href: link.href }, link.children)) }, toastProps), (message.length > 60 || /*#__PURE__*/_react["default"].isValidElement(message)) && message); }); return toastsList.length > 0 && /*#__PURE__*/_react["default"].createElement(_reactCore.AlertGroup, { isToast: true }, toastsList); }; ToastsList.propTypes = { railsMessages: _propTypes["default"].array }; ToastsList.defaultProps = { railsMessages: [] }; var _default = ToastsList; exports["default"] = _default; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useForemanVersion = exports.useForemanUser = exports.useForemanSettings = exports.useForemanOrganization = exports.useForemanLocation = exports.useForemanDocUrl = exports.useForemanContext = exports.getForemanContext = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _forceSingleton = _interopRequireDefault(__webpack_require__(31)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var getForemanContext = function getForemanContext(contextData) { return (0, _forceSingleton["default"])('Context', function () { return /*#__PURE__*/_react["default"].createContext(contextData); }); }; exports.getForemanContext = getForemanContext; var useForemanContext = function useForemanContext() { return _react["default"].useContext(getForemanContext()); }; exports.useForemanContext = useForemanContext; var useForemanMetadata = function useForemanMetadata() { return useForemanContext().metadata; }; var useForemanVersion = function useForemanVersion() { return useForemanMetadata().version; }; exports.useForemanVersion = useForemanVersion; var useForemanSettings = function useForemanSettings() { return useForemanMetadata().UISettings; }; exports.useForemanSettings = useForemanSettings; var useForemanDocUrl = function useForemanDocUrl() { return useForemanMetadata().docUrl; }; exports.useForemanDocUrl = useForemanDocUrl; var useForemanOrganization = function useForemanOrganization() { return useForemanMetadata().organization; }; exports.useForemanOrganization = useForemanOrganization; var useForemanLocation = function useForemanLocation() { return useForemanMetadata().location; }; exports.useForemanLocation = useForemanLocation; var useForemanUser = function useForemanUser() { return useForemanMetadata().user; }; exports.useForemanUser = useForemanUser; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = {}; exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _I18n = __webpack_require__(2); var _slice = __webpack_require__(435); Object.keys(_slice).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _slice[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _slice[key]; } }); }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var ConfirmModal = function ConfirmModal() { var _useSelector = (0, _reactRedux.useSelector)(_slice.selectConfirmModal), isOpen = _useSelector.isOpen, title = _useSelector.title, message = _useSelector.message, confirmButtonText = _useSelector.confirmButtonText, onConfirm = _useSelector.onConfirm, onCancel = _useSelector.onCancel, modalProps = _useSelector.modalProps, isWarning = _useSelector.isWarning; var dispatch = (0, _reactRedux.useDispatch)(); var closeModal = function closeModal() { return dispatch((0, _slice.closeConfirmModal)()); }; var handleCancel = function handleCancel() { onCancel(); closeModal(); }; var handleConfirm = function handleConfirm() { onConfirm(); closeModal(); }; var actions = [/*#__PURE__*/_react["default"].createElement(_reactCore.Button, { key: "confirm", variant: isWarning ? 'danger' : 'primary', onClick: handleConfirm }, confirmButtonText || (0, _I18n.translate)('Confirm')), /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { key: "cancel", variant: "link", onClick: handleCancel }, (0, _I18n.translate)('Cancel'))]; if (!isOpen) return null; return /*#__PURE__*/_react["default"].createElement(_reactCore.Modal, _extends({ id: "app-confirm-modal", "aria-label": "application confirm modal", variant: _reactCore.ModalVariant.small, title: title, isOpen: isOpen, onClose: closeModal, actions: actions, titleIconVariant: isWarning ? 'warning' : null }, modalProps), message); }; var _default = ConfirmModal; exports["default"] = _default; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; /** * Force a single instance to protect from code duplication. * * WARNING: Code duplications happen because of an issue with the build process, * so this method might be removed once the issue would be fixed. * See: https://projects.theforeman.org/issues/27195 * * @param {String} key A unique-key to save the instance. * @param {Function} create A function to create an instance. * @return {*} Single Instance, * returned by the create method or from the cache. */ var forceSingleton = function forceSingleton(key, create) { window.tfm_forced_singletons = window.tfm_forced_singletons || {}; if (!window.tfm_forced_singletons[key]) { window.tfm_forced_singletons[key] = create(); } return window.tfm_forced_singletons[key]; }; var _default = forceSingleton; exports["default"] = _default; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "IntervalMiddleware", { enumerable: true, get: function get() { return _IntervalMiddleware.IntervalMiddleware; } }); Object.defineProperty(exports, "reducers", { enumerable: true, get: function get() { return _IntervalReducer.reducers; } }); Object.defineProperty(exports, "startInterval", { enumerable: true, get: function get() { return _IntervalActions.startInterval; } }); Object.defineProperty(exports, "stopInterval", { enumerable: true, get: function get() { return _IntervalActions.stopInterval; } }); Object.defineProperty(exports, "withInterval", { enumerable: true, get: function get() { return _IntervalHelpers.withInterval; } }); var _IntervalMiddleware = __webpack_require__(240); var _IntervalReducer = __webpack_require__(242); var _IntervalActions = __webpack_require__(109); var _IntervalHelpers = __webpack_require__(108); /***/ }), /* 33 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__CONNECTED_REACT_ROUTER__; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var CommonForm = function CommonForm(_ref) { var className = _ref.className, label = _ref.label, touched = _ref.touched, error = _ref.error, required = _ref.required, children = _ref.children, inputClassName = _ref.inputClassName, tooltipHelp = _ref.tooltipHelp; return /*#__PURE__*/_react["default"].createElement("div", { className: "form-group ".concat(className, " ").concat(touched && error ? 'has-error' : '') }, /*#__PURE__*/_react["default"].createElement("label", { className: "col-md-2 control-label" }, label, required && ' *', tooltipHelp), /*#__PURE__*/_react["default"].createElement("div", { className: inputClassName }, children), touched && error && /*#__PURE__*/_react["default"].createElement("span", { className: "help-block help-inline" }, /*#__PURE__*/_react["default"].createElement("span", { className: "error-message" }, error))); }; CommonForm.propTypes = { className: _propTypes["default"].string, label: _propTypes["default"].string, touched: _propTypes["default"].bool, error: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].bool]), required: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].bool]), children: _propTypes["default"].node, inputClassName: _propTypes["default"].string, tooltipHelp: _propTypes["default"].node }; CommonForm.defaultProps = { className: '', label: '', touched: false, error: undefined, required: false, children: null, inputClassName: 'col-md-4', tooltipHelp: null }; var _default = CommonForm; exports["default"] = _default; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useModalContext = exports.useForemanModal = exports["default"] = void 0; var _react = __webpack_require__(0); var _reactRedux = __webpack_require__(5); var _ForemanModalSelectors = __webpack_require__(42); var _ForemanModalActions = __webpack_require__(57); var _ForemanModalContext = _interopRequireDefault(__webpack_require__(137)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } // Because enzyme doesn't support useContext yet var useModalContext = function useModalContext() { return (0, _react.useContext)(_ForemanModalContext["default"]); }; // Use in any ForemanModal. Handles Redux actions for creating, opening, and closing the modal. // Make sure the id passed in matches the id prop of your . // Returns a variable that tells you the state and a function to toggle it. exports.useModalContext = useModalContext; var useForemanModal = function useForemanModal(_ref) { var id = _ref.id, _ref$isOpen = _ref.isOpen, isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen; if (!id) throw new Error('useForemanModal: ID is required'); var initialModalState = isOpen; var modalOpen = (0, _reactRedux.useSelector)(function (state) { return (0, _ForemanModalSelectors.selectIsModalOpen)(state, id); }) || false; var dispatch = (0, _reactRedux.useDispatch)(); var boundSetModalClosed = function boundSetModalClosed() { return dispatch((0, _ForemanModalActions.setModalClosed)({ id: id })); }; var boundSetModalOpen = function boundSetModalOpen() { return dispatch((0, _ForemanModalActions.setModalOpen)({ id: id })); }; (0, _react.useEffect)(function () { if (initialModalState === true) boundSetModalOpen(); }, []); // eslint-disable-line react-hooks/exhaustive-deps return { modalOpen: modalOpen, setModalOpen: boundSetModalOpen, setModalClosed: boundSetModalClosed }; }; // to get enzyme hacky test to work exports.useForemanModal = useForemanModal; var _default = _ForemanModalContext["default"]; exports["default"] = _default; /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "EmptyStatePattern", { enumerable: true, get: function get() { return _EmptyStatePattern["default"]; } }); exports["default"] = void 0; var _EmptyStatePattern = _interopRequireDefault(__webpack_require__(143)); var _DefaultEmptyState = _interopRequireDefault(__webpack_require__(354)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = _DefaultEmptyState["default"]; exports["default"] = _default; /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MODEL_DELETE_MODAL_ID = exports.MODELS_SEARCH_PROPS = exports.MODELS_PATH = exports.MODELS_PAGE_SHOW_LOADING = exports.MODELS_PAGE_HIDE_LOADING = exports.MODELS_PAGE_DATA_RESOLVED = exports.MODELS_PAGE_DATA_FAILED = exports.MODELS_PAGE_CLEAR_ERROR = exports.MODELS_API_PATH = exports.API_REQUEST_KEY = void 0; var _constants = __webpack_require__(7); var MODELS_PAGE_DATA_RESOLVED = 'MODELS_PAGE_DATA_RESOLVED'; exports.MODELS_PAGE_DATA_RESOLVED = MODELS_PAGE_DATA_RESOLVED; var MODELS_PAGE_DATA_FAILED = 'MODELS_PAGE_DATA_FAILED'; exports.MODELS_PAGE_DATA_FAILED = MODELS_PAGE_DATA_FAILED; var MODELS_PAGE_HIDE_LOADING = 'MODELS_PAGE_HIDE_LOADING'; exports.MODELS_PAGE_HIDE_LOADING = MODELS_PAGE_HIDE_LOADING; var MODELS_PAGE_SHOW_LOADING = 'MODELS_PAGE_SHOW_LOADING'; exports.MODELS_PAGE_SHOW_LOADING = MODELS_PAGE_SHOW_LOADING; var MODELS_PAGE_CLEAR_ERROR = 'MODELS_PAGE_CLEAR_ERROR'; exports.MODELS_PAGE_CLEAR_ERROR = MODELS_PAGE_CLEAR_ERROR; var MODELS_SEARCH_PROPS = (0, _constants.getControllerSearchProps)('models'); exports.MODELS_SEARCH_PROPS = MODELS_SEARCH_PROPS; var MODELS_API_PATH = '/api/models?include_permissions=true'; exports.MODELS_API_PATH = MODELS_API_PATH; var MODELS_PATH = '/models'; exports.MODELS_PATH = MODELS_PATH; var MODEL_DELETE_MODAL_ID = 'modelDeleteModal'; exports.MODEL_DELETE_MODAL_ID = MODEL_DELETE_MODAL_ID; var API_REQUEST_KEY = 'MODELS'; exports.API_REQUEST_KEY = API_REQUEST_KEY; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useAPI = void 0; var _react = __webpack_require__(0); var _reactRedux = __webpack_require__(5); var _v = _interopRequireDefault(__webpack_require__(16)); var _APISelectors = __webpack_require__(14); var _API = __webpack_require__(8); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /** * A custom hook that creates an API request * @param {string} method the API method (i.e 'post', 'get' etc) * @param {string} url the url for the API request * @param {object} options adding optional props to the API call, for more details go to the `apiRequest` function in `redux/API` * @return {object} returns an object that contains the response, status, key and 'setUrl' for setting the url dynamically */ var useAPI = function useAPI(method, url, options) { var dispatch = (0, _reactRedux.useDispatch)(); var keyRef = (0, _react.useRef)(options === null || options === void 0 ? void 0 : options.key); (0, _react.useEffect)(function () { if (!keyRef.current) keyRef.current = (0, _v["default"])(); }, []); (0, _react.useEffect)(function () { if (url && method) { dispatch(_API.APIActions[method](_objectSpread(_objectSpread({ url: url }, options), {}, { key: keyRef.current }))); } }, [dispatch, url, method, options]); var response = (0, _reactRedux.useSelector)(function (state) { return (0, _APISelectors.selectAPIResponse)(state, keyRef.current); }, _reactRedux.shallowEqual); var status = (0, _reactRedux.useSelector)(function (state) { return (0, _APISelectors.selectAPIStatus)(state, keyRef.current); }); return { response: response, status: status, key: keyRef.current }; }; exports.useAPI = useAPI; /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactLoadingSkeleton = _interopRequireDefault(__webpack_require__(61)); var _constants = __webpack_require__(7); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SkeletonLoader = function SkeletonLoader(_ref) { var status = _ref.status, customSkeleton = _ref.customSkeleton, skeletonProps = _ref.skeletonProps, emptyState = _ref.emptyState, children = _ref.children, errorNode = _ref.errorNode; switch (status) { case _constants.STATUS.PENDING: { return customSkeleton || /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], skeletonProps); } case _constants.STATUS.RESOLVED: { return children || emptyState; } case _constants.STATUS.ERROR: { return errorNode || emptyState; } default: return emptyState; } }; SkeletonLoader.propTypes = { status: _propTypes["default"].string.isRequired, customSkeleton: _propTypes["default"].node, skeletonProps: _propTypes["default"].object, emptyState: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]), children: _propTypes["default"].node, errorNode: _propTypes["default"].node }; SkeletonLoader.defaultProps = { customSkeleton: undefined, skeletonProps: {}, emptyState: (0, _I18n.translate)('N/A'), children: undefined, errorNode: undefined }; var _default = SkeletonLoader; exports["default"] = _default; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WARNING_STATUS_STATE = exports.SUPPORTED_STATUSES = exports.OK_STATUS_STATE = exports.NA_STATUS_STATE = exports.HOST_STATUSES_OPTIONS = exports.HOST_STATUSES_KEY = exports.ERROR_STATUS_STATE = exports.CLEAR_STATUS_KEY = exports.ALL_STATUS_STATE = void 0; var _I18n = __webpack_require__(2); var HOST_STATUSES_KEY = 'HOST_STATUSES'; exports.HOST_STATUSES_KEY = HOST_STATUSES_KEY; var CLEAR_STATUS_KEY = 'CLEAR_STATUS'; exports.CLEAR_STATUS_KEY = CLEAR_STATUS_KEY; var HOST_STATUSES_OPTIONS = { key: HOST_STATUSES_KEY }; exports.HOST_STATUSES_OPTIONS = HOST_STATUSES_OPTIONS; var ALL_STATUS_STATE = 4; exports.ALL_STATUS_STATE = ALL_STATUS_STATE; var NA_STATUS_STATE = 3; exports.NA_STATUS_STATE = NA_STATUS_STATE; var ERROR_STATUS_STATE = 2; exports.ERROR_STATUS_STATE = ERROR_STATUS_STATE; var WARNING_STATUS_STATE = 1; exports.WARNING_STATUS_STATE = WARNING_STATUS_STATE; var OK_STATUS_STATE = 0; exports.OK_STATUS_STATE = OK_STATUS_STATE; var SUPPORTED_STATUSES = [{ label: (0, _I18n.translate)('OK statuses'), status: OK_STATUS_STATE }, { label: (0, _I18n.translate)('Warning statuses'), status: WARNING_STATUS_STATE }, { label: (0, _I18n.translate)('Error statuses'), status: ERROR_STATUS_STATE }, { label: (0, _I18n.translate)('N/A statuses'), status: NA_STATUS_STATE }]; exports.SUPPORTED_STATUSES = SUPPORTED_STATUSES; /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.userPropType = exports.organizationPropType = exports.locationPropType = exports.layoutPropTypes = exports.layoutDefaultProps = exports.handleMenuClick = exports.getCurrentPath = exports.getActiveMenuItem = exports.dataPropType = exports.createInitialTaxonomy = exports.combineMenuItems = void 0; var _lodash = __webpack_require__(10); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /* eslint-disable no-unused-vars */ // eslint bug - https://github.com/eslint/eslint/issues/12117 var createInitialTaxonomy = function createInitialTaxonomy(currentTaxonomy, availableTaxonomies) { var taxonomyId = availableTaxonomies.find(function (taxonomy) { return taxonomy.title === currentTaxonomy; }).id; return { title: currentTaxonomy, id: taxonomyId }; }; exports.createInitialTaxonomy = createInitialTaxonomy; var getCurrentPath = function getCurrentPath() { return (0, _helpers.removeLastSlashFromPath)(window.location.pathname); }; exports.getCurrentPath = getCurrentPath; var getActiveMenuItem = function getActiveMenuItem(items) { var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentPath(); var _iterator = _createForOfIteratorHelper(items), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var item = _step.value; var _iterator2 = _createForOfIteratorHelper(item.children), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var child = _step2.value; if (child.exact) { if (path === child.url) return { title: item.name }; } else if (path.startsWith(child.url)) return { title: item.name }; } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return { title: '' }; }; exports.getActiveMenuItem = getActiveMenuItem; var handleMenuClick = function handleMenuClick(primary, activeMenu, changeActive) { if (primary.title !== (0, _I18n.translate)(activeMenu)) changeActive(primary); }; exports.handleMenuClick = handleMenuClick; var combineMenuItems = function combineMenuItems(data) { var items = []; data.menu.forEach(function (item) { var translatedChildren = item.children.map(function (child) { return _objectSpread(_objectSpread({}, child), {}, { name: (0, _lodash.isEmpty)(child.name) ? child.name : (0, _I18n.translate)(child.name) }); }); var translatedItem = _objectSpread(_objectSpread({}, item), {}, { name: (0, _I18n.translate)(item.name), children: translatedChildren, // Hiding user if not on Mobile view className: item.name === 'User' ? 'hidden-nav-lg' : '' }); items.push(translatedItem); }); items.push(createOrgItem(data.orgs.available_organizations)); items.push(createLocationItem(data.locations.available_locations)); return items; }; exports.combineMenuItems = combineMenuItems; var createOrgItem = function createOrgItem(orgs) { var anyOrg = { name: (0, _I18n.translate)('Any Organization'), onClick: function onClick() { window.location.assign((0, _helpers.foremanUrl)('/organizations/clear')); } }; var childrenArray = [anyOrg]; orgs.forEach(function (org) { var childObject = { type: org.type, name: org.title, onClick: function onClick() { window.location.assign(org.href); } }; childrenArray.push(childObject); }); var orgItem = { type: 'sub_menu', name: (0, _I18n.translate)('Organizations'), icon: 'fa fa-building', children: childrenArray, // Hiding Organizations if not on Mobile view className: 'organization-menu hidden-nav-lg' }; return orgItem; }; var createLocationItem = function createLocationItem(locations) { var anyLoc = { name: (0, _I18n.translate)('Any Location'), onClick: function onClick() { window.location.assign((0, _helpers.foremanUrl)('/locations/clear')); } }; var childrenArray = [anyLoc]; locations.forEach(function (loc) { var childObject = { type: loc.type, name: loc.title, onClick: function onClick() { window.location.assign(loc.href); } }; childrenArray.push(childObject); }); var locItem = { type: 'sub_menu', name: (0, _I18n.translate)('Locations'), icon: 'fa fa-globe', children: childrenArray, // Hiding Locations if not on Mobile view className: 'location-menu hidden-nav-lg' }; return locItem; }; var organizationPropType = _propTypes["default"].shape({ current_org: _propTypes["default"].string, available_organizations: _propTypes["default"].arrayOf(_propTypes["default"].shape({ href: _propTypes["default"].string.isRequired, id: _propTypes["default"].number.isRequired, title: _propTypes["default"].string })) }); exports.organizationPropType = organizationPropType; var locationPropType = _propTypes["default"].shape({ current_location: _propTypes["default"].string, available_locations: _propTypes["default"].arrayOf(_propTypes["default"].shape({ href: _propTypes["default"].string.isRequired, id: _propTypes["default"].number.isRequired, title: _propTypes["default"].string })) }); exports.locationPropType = locationPropType; var userPropType = _propTypes["default"].shape({ current_user: _propTypes["default"].object.isRequired, user_dropdown: _propTypes["default"].arrayOf(_propTypes["default"].shape({ children: _propTypes["default"].any, icon: _propTypes["default"].string.isRequired, name: _propTypes["default"].string.isRequired, type: _propTypes["default"].string.isRequired })) }); exports.userPropType = userPropType; var dataPropType = { brand: _propTypes["default"].string, stop_impersonation_url: _propTypes["default"].string.isRequired, instance_title: _propTypes["default"].string, menu: _propTypes["default"].arrayOf(_propTypes["default"].shape({ type: _propTypes["default"].string.isRequired, name: _propTypes["default"].string.isRequired, icon: _propTypes["default"].string.isRequired, children: _propTypes["default"].any })), locations: locationPropType, orgs: organizationPropType, root: _propTypes["default"].string.isRequired, logo: _propTypes["default"].string.isRequired, notification_url: _propTypes["default"].string.isRequired, user: userPropType }; exports.dataPropType = dataPropType; var layoutPropTypes = { children: _propTypes["default"].node, isLoading: _propTypes["default"].bool, isCollapsed: _propTypes["default"].bool, activeMenu: _propTypes["default"].string, navigate: _propTypes["default"].func, changeActiveMenu: _propTypes["default"].func, expandLayoutMenus: _propTypes["default"].func, collapseLayoutMenus: _propTypes["default"].func, items: _propTypes["default"].arrayOf(_propTypes["default"].shape({ title: _propTypes["default"].string.isRequired, className: _propTypes["default"].string, iconClass: _propTypes["default"].string.isRequired, initialActive: _propTypes["default"].bool, subItems: _propTypes["default"].arrayOf(_propTypes["default"].shape({ title: _propTypes["default"].string, isDivider: _propTypes["default"].bool, className: _propTypes["default"].string, href: _propTypes["default"].string })) })), data: _propTypes["default"].shape(dataPropType) }; exports.layoutPropTypes = layoutPropTypes; var layoutDefaultProps = { children: null, items: [], data: {}, isLoading: false, isCollapsed: false, activeMenu: '', navigate: _helpers.noop, changeActiveMenu: _helpers.noop, expandLayoutMenus: _helpers.noop, collapseLayoutMenus: _helpers.noop }; exports.layoutDefaultProps = layoutDefaultProps; /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectModalStateById = exports.selectModalExists = exports.selectIsModalSubmitting = exports.selectIsModalOpen = exports.selectForemanModalsState = void 0; var selectForemanModalsState = function selectForemanModalsState(state) { return state.foremanModals; }; exports.selectForemanModalsState = selectForemanModalsState; var selectModalStateById = function selectModalStateById(state, id) { return state.foremanModals && (state.foremanModals[id] || {}); }; exports.selectModalStateById = selectModalStateById; var selectIsModalOpen = function selectIsModalOpen(state, id) { return selectModalStateById(state, id).isOpen; }; exports.selectIsModalOpen = selectIsModalOpen; var selectIsModalSubmitting = function selectIsModalSubmitting(state, id) { return selectModalStateById(state, id).isSubmitting; }; exports.selectIsModalSubmitting = selectIsModalSubmitting; var selectModalExists = function selectModalExists(state, id) { return Object.keys(selectModalStateById(state, id)).length > 0; }; exports.selectModalExists = selectModalExists; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRedux = __webpack_require__(5); var _ForemanModalSelectors = __webpack_require__(42); var _ForemanModalActions = __webpack_require__(57); var _ForemanModal = _interopRequireDefault(__webpack_require__(328)); var _ForemanModalHeader = _interopRequireDefault(__webpack_require__(81)); var _ForemanModalFooter = _interopRequireDefault(__webpack_require__(82)); var _ForemanModalReducer = _interopRequireDefault(__webpack_require__(337)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var reducers = { foremanModals: _ForemanModalReducer["default"] }; exports.reducers = reducers; var ConnectedForemanModal = function ConnectedForemanModal(props) { var id = props.id, title = props.title; var isOpen = (0, _reactRedux.useSelector)(function (state) { return (0, _ForemanModalSelectors.selectIsModalOpen)(state, id); }); var isSubmitting = (0, _reactRedux.useSelector)(function (state) { return (0, _ForemanModalSelectors.selectIsModalSubmitting)(state, id); }); var dispatch = (0, _reactRedux.useDispatch)(); var onClose = function onClose() { return dispatch((0, _ForemanModalActions.setModalClosed)({ id: id })); }; var modalExists = (0, _reactRedux.useSelector)(function (state) { return (0, _ForemanModalSelectors.selectModalExists)(state, id); }); (0, _react.useEffect)(function () { if (modalExists) return; // don't add modal if it already exists // https://github.com/facebook/react/issues/14920 dispatch((0, _ForemanModalActions.addModal)({ id: id, isOpen: false, isSubmitting: false })); }, [modalExists, id, dispatch]); return /*#__PURE__*/_react["default"].createElement(_ForemanModal["default"], _extends({}, props, { id: id, title: title, isOpen: isOpen, isSubmitting: isSubmitting, onClose: onClose })); }; ConnectedForemanModal.propTypes = { id: _propTypes["default"].string.isRequired, title: _propTypes["default"].string }; ConnectedForemanModal.defaultProps = { title: '' }; // Header and Footer use the provided children, or default markup if none provided ConnectedForemanModal.Header = _ForemanModalHeader["default"]; ConnectedForemanModal.Footer = _ForemanModalFooter["default"]; var _default = ConnectedForemanModal; exports["default"] = _default; /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.simpleLoader = exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _constants = __webpack_require__(7); var _MessageBox = _interopRequireDefault(__webpack_require__(24)); __webpack_require__(334); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _simpleLoader = function _simpleLoader(spinnerSize) { return /*#__PURE__*/_react["default"].createElement("div", { className: "loader-root" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Spinner, { loading: true, size: spinnerSize })); }; var Loader = function Loader(_ref) { var status = _ref.status, children = _ref.children, spinnerSize = _ref.spinnerSize; var content; switch (status) { case _constants.STATUS.PENDING: { return _simpleLoader(spinnerSize); } case _constants.STATUS.RESOLVED: { // eslint-disable-next-line prefer-destructuring content = children[0]; break; } case _constants.STATUS.ERROR: { // eslint-disable-next-line prefer-destructuring content = children[1]; break; } default: content = /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { icontype: "error-circle-o", msg: "Invalid Status" }); break; } return /*#__PURE__*/_react["default"].createElement("div", { className: "loader-root" }, content); }; Loader.propTypes = { children: _propTypes["default"].array, status: _propTypes["default"].string, spinnerSize: _propTypes["default"].string }; Loader.defaultProps = { children: ['', ''], status: '', spinnerSize: 'lg' }; var _default = Loader; exports["default"] = _default; var simpleLoader = _simpleLoader; exports.simpleLoader = simpleLoader; /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isWeekend = exports.isEqualDate = exports.helpers = exports.getWeekStart = exports.getMonthStart = exports["default"] = exports.addYears = exports.addMonths = exports.addDays = void 0; var addDays = function addDays(date, days) { var result = new Date(date); result.setDate(result.getDate() + days); return result; }; exports.addDays = addDays; var addMonths = function addMonths(date, months) { var result = new Date(date); result.setMonth(result.getMonth() + months); return result; }; exports.addMonths = addMonths; var addYears = function addYears(date, years) { var result = new Date(date); result.setYear(result.getFullYear() + years); return result; }; exports.addYears = addYears; var isEqualDate = function isEqualDate(date1, date2) { return date1.getYear() === date2.getYear() && date1.getMonth() === date2.getMonth() && date1.getDate() === date2.getDate(); }; exports.isEqualDate = isEqualDate; var isWeekend = function isWeekend(date) { return date.getDay() === 6 || date.getDay() === 5; }; exports.isWeekend = isWeekend; var getMonthStart = function getMonthStart(date) { date.setDate(1); return date; }; exports.getMonthStart = getMonthStart; var getWeekStart = function getWeekStart(date) { return addDays(date, (7 - date.getDay()) % 7); }; exports.getWeekStart = getWeekStart; var helpers = { addDays: addDays, addMonths: addMonths, isEqualDate: isEqualDate, isWeekend: isWeekend, getMonthStart: getMonthStart, getWeekStart: getWeekStart }; exports.helpers = helpers; var _default = helpers; exports["default"] = _default; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.YEAR = exports.MONTH = exports.DAY = void 0; var YEAR = 'YEAR'; exports.YEAR = YEAR; var MONTH = 'MONTH'; exports.MONTH = MONTH; var DAY = 'DAY'; exports.DAY = DAY; /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactIntl = __webpack_require__(25); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var RelativeDateTime = function RelativeDateTime(props, context) { var date = props.date, defaultValue = props.defaultValue, children = props.children; if (date) { var isoDate = (0, _helpers.isoCompatibleDate)(date); var title = context.intl.formatDate(isoDate, { day: '2-digit', month: 'short', hour: '2-digit', minute: '2-digit', year: 'numeric' }); /* eslint-disable react/style-prop-object */ return /*#__PURE__*/_react["default"].createElement("span", { title: title }, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedRelative, { value: isoDate, style: "numeric" }, children)); /* eslint-enable react/style-prop-object */ } return /*#__PURE__*/_react["default"].createElement("span", null, defaultValue); }; RelativeDateTime.contextTypes = { intl: _reactIntl.intlShape }; RelativeDateTime.propTypes = { date: _propTypes["default"].any, defaultValue: _propTypes["default"].node, children: _propTypes["default"].func }; RelativeDateTime.defaultProps = { date: null, defaultValue: '', children: undefined }; var _default = RelativeDateTime; exports["default"] = _default; /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactIcons = __webpack_require__(11); __webpack_require__(89); var _Constants = __webpack_require__(40); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var StatusIcon = function StatusIcon(_ref) { var statusNumber = _ref.statusNumber, label = _ref.label; switch (statusNumber) { case _Constants.OK_STATUS_STATE: return /*#__PURE__*/_react["default"].createElement("span", { className: "status-success" }, /*#__PURE__*/_react["default"].createElement(_reactIcons.CheckCircleIcon, { noVerticalAlign: true }), " ", label); case _Constants.WARNING_STATUS_STATE: return /*#__PURE__*/_react["default"].createElement("span", { className: "status-warning" }, /*#__PURE__*/_react["default"].createElement(_reactIcons.ExclamationTriangleIcon, { noVerticalAlign: true }), " ", label); case _Constants.ERROR_STATUS_STATE: return /*#__PURE__*/_react["default"].createElement("span", { className: "status-error" }, /*#__PURE__*/_react["default"].createElement(_reactIcons.ExclamationCircleIcon, { noVerticalAlign: true }), " ", label); case _Constants.NA_STATUS_STATE: return /*#__PURE__*/_react["default"].createElement("span", { className: "disabled" }, /*#__PURE__*/_react["default"].createElement(_reactIcons.BanIcon, { noVerticalAlign: true }), " ", label); default: return null; } }; StatusIcon.propTypes = { label: _propTypes["default"].string, statusNumber: _propTypes["default"].number }; StatusIcon.defaultProps = { label: '', statusNumber: undefined }; var _default = StatusIcon; exports["default"] = _default; /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TRIGGERS = exports.AUTO_COMPLETE_SUCCESS = exports.AUTO_COMPLETE_RESET = exports.AUTO_COMPLETE_REQUEST = exports.AUTO_COMPLETE_INIT = exports.AUTO_COMPLETE_FAILURE = exports.AUTO_COMPLETE_DISABLED_CHANGE = exports.AUTO_COMPLETE_CONTROLLER_CHANGE = void 0; var AUTO_COMPLETE_INIT = 'AUTO_COMPLETE_INIT'; exports.AUTO_COMPLETE_INIT = AUTO_COMPLETE_INIT; var AUTO_COMPLETE_REQUEST = 'AUTO_COMPLETE_REQUEST'; exports.AUTO_COMPLETE_REQUEST = AUTO_COMPLETE_REQUEST; var AUTO_COMPLETE_SUCCESS = 'AUTO_COMPLETE_SUCCESS'; exports.AUTO_COMPLETE_SUCCESS = AUTO_COMPLETE_SUCCESS; var AUTO_COMPLETE_FAILURE = 'AUTO_COMPLETE_FAILURE'; exports.AUTO_COMPLETE_FAILURE = AUTO_COMPLETE_FAILURE; var AUTO_COMPLETE_RESET = 'AUTO_COMPLETE_RESET'; exports.AUTO_COMPLETE_RESET = AUTO_COMPLETE_RESET; var AUTO_COMPLETE_DISABLED_CHANGE = 'AUTO_COMPLETE_DISABLED_CHANGE'; exports.AUTO_COMPLETE_DISABLED_CHANGE = AUTO_COMPLETE_DISABLED_CHANGE; var AUTO_COMPLETE_CONTROLLER_CHANGE = 'AUTO_COMPLETE_CONTROLLER_CHANGE'; exports.AUTO_COMPLETE_CONTROLLER_CHANGE = AUTO_COMPLETE_CONTROLLER_CHANGE; var TRIGGERS = { INPUT_FOCUS: 'INPUT_FOCUS', INPUT_CHANGE: 'INPUT_CHANGE', ITEM_SELECT: 'ITEM_SELECT', INPUT_CLEAR: 'INPUT_CLEAR', COMPONENT_DID_MOUNT: 'COMPONENT_DID_MOUNT', RESET: 'RESET', CONTROLLER_CHANGED: 'CONTROLLER_CHANGED' }; exports.TRIGGERS = TRIGGERS; /***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VMWARE_CLUSTER_CHANGE = exports.STORAGE_VMWARE_UPDATE_DISK = exports.STORAGE_VMWARE_UPDATE_CONTROLLER = exports.STORAGE_VMWARE_STORAGEPODS_SUCCESS = exports.STORAGE_VMWARE_STORAGEPODS_REQUEST = exports.STORAGE_VMWARE_STORAGEPODS_FAILURE = exports.STORAGE_VMWARE_STORAGEPODS = exports.STORAGE_VMWARE_REMOVE_DISK = exports.STORAGE_VMWARE_REMOVE_CONTROLLER = exports.STORAGE_VMWARE_INIT = exports.STORAGE_VMWARE_DATASTORES_SUCCESS = exports.STORAGE_VMWARE_DATASTORES_REQUEST = exports.STORAGE_VMWARE_DATASTORES_FAILURE = exports.STORAGE_VMWARE_DATASTORES = exports.STORAGE_VMWARE_ADD_DISK = exports.STORAGE_VMWARE_ADD_CONTROLLER = exports.PASSWORD_STRENGTH_PASSWORD_MATCHED = exports.PASSWORD_STRENGTH_PASSWORD_CHANGED = exports.NOTIFICATIONS_TOGGLE_DRAWER = exports.NOTIFICATIONS_SET_EXPANDED_GROUP = exports.NOTIFICATIONS_MARK_GROUP_AS_READ = exports.NOTIFICATIONS_MARK_GROUP_AS_CLEARED = exports.NOTIFICATIONS_MARK_AS_READ = exports.NOTIFICATIONS_MARK_AS_CLEAR = exports.NOTIFICATIONS_LINK_CLICKED = exports.NOTIFICATIONS = void 0; var VMWARE_CLUSTER_CHANGE = 'VMWARE_CLUSTER_CHANGE'; exports.VMWARE_CLUSTER_CHANGE = VMWARE_CLUSTER_CHANGE; var STORAGE_VMWARE_INIT = 'STORAGE_VMWARE_INIT'; exports.STORAGE_VMWARE_INIT = STORAGE_VMWARE_INIT; var STORAGE_VMWARE_ADD_CONTROLLER = 'STORAGE_VMWARE_ADD_CONTROLLER'; exports.STORAGE_VMWARE_ADD_CONTROLLER = STORAGE_VMWARE_ADD_CONTROLLER; var STORAGE_VMWARE_ADD_DISK = 'STORAGE_VMWARE_ADD_DISK'; exports.STORAGE_VMWARE_ADD_DISK = STORAGE_VMWARE_ADD_DISK; var STORAGE_VMWARE_REMOVE_CONTROLLER = 'STORAGE_VMWARE_REMOVE_CONTROLLER'; exports.STORAGE_VMWARE_REMOVE_CONTROLLER = STORAGE_VMWARE_REMOVE_CONTROLLER; var STORAGE_VMWARE_UPDATE_CONTROLLER = 'STORAGE_VMWARE_UPDATE_CONTROLLER'; exports.STORAGE_VMWARE_UPDATE_CONTROLLER = STORAGE_VMWARE_UPDATE_CONTROLLER; var STORAGE_VMWARE_REMOVE_DISK = 'STORAGE_VMWARE_REMOVE_DISK'; exports.STORAGE_VMWARE_REMOVE_DISK = STORAGE_VMWARE_REMOVE_DISK; var STORAGE_VMWARE_UPDATE_DISK = 'STORAGE_VMWARE_UPDATE_DISK'; exports.STORAGE_VMWARE_UPDATE_DISK = STORAGE_VMWARE_UPDATE_DISK; var NOTIFICATIONS = 'NOTIFICATIONS'; exports.NOTIFICATIONS = NOTIFICATIONS; var STORAGE_VMWARE_DATASTORES = 'STORAGE_VMWARE_DATASTORES'; exports.STORAGE_VMWARE_DATASTORES = STORAGE_VMWARE_DATASTORES; var STORAGE_VMWARE_DATASTORES_REQUEST = 'STORAGE_VMWARE_DATASTORES_REQUEST'; exports.STORAGE_VMWARE_DATASTORES_REQUEST = STORAGE_VMWARE_DATASTORES_REQUEST; var STORAGE_VMWARE_DATASTORES_SUCCESS = 'STORAGE_VMWARE_DATASTORES_SUCCESS'; exports.STORAGE_VMWARE_DATASTORES_SUCCESS = STORAGE_VMWARE_DATASTORES_SUCCESS; var STORAGE_VMWARE_DATASTORES_FAILURE = 'STORAGE_VMWARE_DATASTORES_FAILURE'; exports.STORAGE_VMWARE_DATASTORES_FAILURE = STORAGE_VMWARE_DATASTORES_FAILURE; var STORAGE_VMWARE_STORAGEPODS = 'STORAGE_VMWARE_STORAGEPODS'; exports.STORAGE_VMWARE_STORAGEPODS = STORAGE_VMWARE_STORAGEPODS; var STORAGE_VMWARE_STORAGEPODS_REQUEST = 'STORAGE_VMWARE_STORAGEPODS_REQUEST'; exports.STORAGE_VMWARE_STORAGEPODS_REQUEST = STORAGE_VMWARE_STORAGEPODS_REQUEST; var STORAGE_VMWARE_STORAGEPODS_SUCCESS = 'STORAGE_VMWARE_STORAGEPODS_SUCCESS'; exports.STORAGE_VMWARE_STORAGEPODS_SUCCESS = STORAGE_VMWARE_STORAGEPODS_SUCCESS; var STORAGE_VMWARE_STORAGEPODS_FAILURE = 'STORAGE_VMWARE_STORAGEPODS_FAILURE'; exports.STORAGE_VMWARE_STORAGEPODS_FAILURE = STORAGE_VMWARE_STORAGEPODS_FAILURE; var NOTIFICATIONS_TOGGLE_DRAWER = 'NOTIFICATIONS_TOGGLE_DRAWER'; exports.NOTIFICATIONS_TOGGLE_DRAWER = NOTIFICATIONS_TOGGLE_DRAWER; var NOTIFICATIONS_SET_EXPANDED_GROUP = 'NOTIFICATIONS_SET_EXPANDED_GROUP'; exports.NOTIFICATIONS_SET_EXPANDED_GROUP = NOTIFICATIONS_SET_EXPANDED_GROUP; var NOTIFICATIONS_MARK_AS_READ = 'NOTIFICATIONS_MARK_AS_READ'; exports.NOTIFICATIONS_MARK_AS_READ = NOTIFICATIONS_MARK_AS_READ; var NOTIFICATIONS_MARK_GROUP_AS_READ = 'NOTIFICATIONS_MARK_GROUP_AS_READ'; exports.NOTIFICATIONS_MARK_GROUP_AS_READ = NOTIFICATIONS_MARK_GROUP_AS_READ; var NOTIFICATIONS_MARK_AS_CLEAR = 'NOTIFICATIONS_MARK_AS_CLEAR'; exports.NOTIFICATIONS_MARK_AS_CLEAR = NOTIFICATIONS_MARK_AS_CLEAR; var NOTIFICATIONS_MARK_GROUP_AS_CLEARED = 'NOTIFICATIONS_MARK_GROUP_AS_CLEARED'; exports.NOTIFICATIONS_MARK_GROUP_AS_CLEARED = NOTIFICATIONS_MARK_GROUP_AS_CLEARED; var NOTIFICATIONS_LINK_CLICKED = 'NOTIFICATIONS_LINK_CLICKED'; exports.NOTIFICATIONS_LINK_CLICKED = NOTIFICATIONS_LINK_CLICKED; var PASSWORD_STRENGTH_PASSWORD_CHANGED = 'PASSWORD_STRENGTH_PASSWORD_CHANGED'; exports.PASSWORD_STRENGTH_PASSWORD_CHANGED = PASSWORD_STRENGTH_PASSWORD_CHANGED; var PASSWORD_STRENGTH_PASSWORD_MATCHED = 'PASSWORD_STRENGTH_PASSWORD_MATCHED'; exports.PASSWORD_STRENGTH_PASSWORD_MATCHED = PASSWORD_STRENGTH_PASSWORD_MATCHED; /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.STOP_INTERVAL = exports.START_INTERVAL = exports.DEFAULT_INTERVAL = void 0; var START_INTERVAL = 'START_INTERVAL'; exports.START_INTERVAL = START_INTERVAL; var STOP_INTERVAL = 'STOP_INTERVAL'; exports.STOP_INTERVAL = STOP_INTERVAL; var DEFAULT_INTERVAL = 5000; exports.DEFAULT_INTERVAL = DEFAULT_INTERVAL; /***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _reactRedux = __webpack_require__(5); var _redux = __webpack_require__(12); var actions = _interopRequireWildcard(__webpack_require__(189)); var _AutoCompleteReducer = _interopRequireDefault(__webpack_require__(260)); var _AutoComplete = _interopRequireDefault(__webpack_require__(261)); var _AutoCompleteSelectors = __webpack_require__(75); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var mapStateToProps = function mapStateToProps(state, ownProps) { var id = ownProps.id; return { error: (0, _AutoCompleteSelectors.selectAutocompleteError)(state, id, ownProps), results: (0, _AutoCompleteSelectors.selectAutocompleteResults)(state, id, ownProps), searchQuery: (0, _AutoCompleteSelectors.selectAutocompleteSearchQuery)(state, id, ownProps), status: (0, _AutoCompleteSelectors.selectAutocompleteStatus)(state, id, ownProps), disabled: (0, _AutoCompleteSelectors.selectAutocompleteIsDisabled)(state, id, ownProps), url: (0, _AutoCompleteSelectors.selectAutocompleteUrl)(state, id, ownProps), trigger: (0, _AutoCompleteSelectors.selectAutocompleteTrigger)(state, id, ownProps) }; }; var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; var reducers = { autocomplete: _AutoCompleteReducer["default"] }; exports.reducers = reducers; var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_AutoComplete["default"]); exports["default"] = _default; /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactDiffView = __webpack_require__(293); var _unidiff = __webpack_require__(294); __webpack_require__(120); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var getDiff = function getDiff(oldText, newText) { var diffText = (0, _unidiff.formatLines)((0, _unidiff.diffLines)(oldText, newText), { context: 3 }); // these two lines are faked to mock git diff output var header = ['diff --git a/a b/b', 'index 0000000..1111111 100644']; return "".concat(header.join('\n'), "\n").concat(diffText); }; var DiffView = function DiffView(_ref) { var oldText = _ref.oldText, newText = _ref.newText, viewType = _ref.viewType, patch = _ref.patch; // old,new Text if (patch === '') { var gitDiff = getDiff(oldText, newText); var _files = (0, _reactDiffView.parseDiff)(gitDiff); var _files$ = _files[0], hunks = _files$.hunks, type = _files$.type; return hunks && /*#__PURE__*/_react["default"].createElement(_reactDiffView.Diff, { hunks: hunks, viewType: viewType, diffType: type }); } // Patch var files = (0, _reactDiffView.parseDiff)(patch.split('\n').slice(1).join('\n')); // eslint-disable-next-line react/prop-types var renderFile = function renderFile(_ref2) { var oldRevision = _ref2.oldRevision, newRevision = _ref2.newRevision, type = _ref2.type, hunks = _ref2.hunks; return /*#__PURE__*/_react["default"].createElement(_reactDiffView.Diff, { key: "".concat(oldRevision, "-").concat(newRevision), viewType: viewType, diffType: type, hunks: hunks }); }; return /*#__PURE__*/_react["default"].createElement("div", null, files.map(renderFile)); }; DiffView.propTypes = { // None are required because only one can be used at a time: (old + new || patch) oldText: _propTypes["default"].string, newText: _propTypes["default"].string, viewType: _propTypes["default"].string.isRequired, patch: _propTypes["default"].string }; DiffView.defaultProps = { oldText: '', newText: '', patch: '' }; var _default = DiffView; exports["default"] = _default; /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _DiffConsts = __webpack_require__(295); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var btnClass = function btnClass(stateView, btnView) { return (0, _classnames["default"])('diff-button', { active: stateView === btnView }); }; var radioButton = function radioButton(stateView, btnView, changeState) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: btnClass(stateView, btnView), id: "".concat(btnView, "-btn"), onClick: changeState, bsStyle: stateView === btnView ? 'primary' : 'default' }, btnView); }; var DiffRadioButtons = function DiffRadioButtons(_ref) { var stateView = _ref.stateView, changeState = _ref.changeState; return /*#__PURE__*/_react["default"].createElement("div", { id: "diff-radio-buttons" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.ButtonGroup, null, radioButton(stateView, (0, _I18n.translate)('split'), function () { changeState(_DiffConsts.SPLIT); }), radioButton(stateView, (0, _I18n.translate)('unified'), function () { changeState(_DiffConsts.UNIFIED); }))); }; DiffRadioButtons.propTypes = { stateView: _propTypes["default"].string.isRequired, changeState: _propTypes["default"].func.isRequired }; var _default = DiffRadioButtons; exports["default"] = _default; /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EDITOR_TOGGLE_RENDER_VIEW = exports.EDITOR_TOGGLE_MASK = exports.EDITOR_THEMES = exports.EDITOR_SHOW_LOADING = exports.EDITOR_SHOW_ERROR = exports.EDITOR_REVERT_CHANGES = exports.EDITOR_MODES = exports.EDITOR_MODAL_TOGGLE = exports.EDITOR_KEYBINDINGS = exports.EDITOR_INITIALIZE = exports.EDITOR_IMPORT_FILE = exports.EDITOR_HOST_SELECT_TOGGLE = exports.EDITOR_HOST_SELECT_RESET = exports.EDITOR_HOST_SELECT_CLEAR = exports.EDITOR_HOST_INITIAL_FETCH = exports.EDITOR_HOST_FILTERED_ARR = exports.EDITOR_HOST_ARR = exports.EDITOR_HOSTS_URL = exports.EDITOR_HIDE_LOADING = exports.EDITOR_FETCH_HOST_RESOLVED = exports.EDITOR_FETCH_HOST_PENDING = exports.EDITOR_EXEC_PREVIEW = exports.EDITOR_DISMISS_ERROR = exports.EDITOR_CHANGE_VALUE = exports.EDITOR_CHANGE_TAB = exports.EDITOR_CHANGE_SETTING = exports.EDITOR_CHANGE_DIFF_VIEW = void 0; var EDITOR_INITIALIZE = 'EDITOR_INITIALIZE'; exports.EDITOR_INITIALIZE = EDITOR_INITIALIZE; var EDITOR_IMPORT_FILE = 'EDITOR_IMPORT_FILE'; exports.EDITOR_IMPORT_FILE = EDITOR_IMPORT_FILE; var EDITOR_REVERT_CHANGES = 'EDITOR_REVERT_CHANGES'; exports.EDITOR_REVERT_CHANGES = EDITOR_REVERT_CHANGES; var EDITOR_EXEC_PREVIEW = 'EDITOR_EXEC_PREVIEW'; exports.EDITOR_EXEC_PREVIEW = EDITOR_EXEC_PREVIEW; var EDITOR_MODAL_TOGGLE = 'EDITOR_MODAL_TOGGLE'; exports.EDITOR_MODAL_TOGGLE = EDITOR_MODAL_TOGGLE; var EDITOR_CHANGE_DIFF_VIEW = 'EDITOR_CHANGE_DIFF_VIEW'; exports.EDITOR_CHANGE_DIFF_VIEW = EDITOR_CHANGE_DIFF_VIEW; var EDITOR_CHANGE_VALUE = 'EDITOR_CHANGE_VALUE'; exports.EDITOR_CHANGE_VALUE = EDITOR_CHANGE_VALUE; var EDITOR_SHOW_ERROR = 'EDITOR_SHOW_ERROR'; exports.EDITOR_SHOW_ERROR = EDITOR_SHOW_ERROR; var EDITOR_DISMISS_ERROR = 'EDITOR_DISMISS_ERROR'; exports.EDITOR_DISMISS_ERROR = EDITOR_DISMISS_ERROR; var EDITOR_CHANGE_TAB = 'EDITOR_CHANGE_TAB'; exports.EDITOR_CHANGE_TAB = EDITOR_CHANGE_TAB; var EDITOR_TOGGLE_MASK = 'EDITOR_TOGGLE_MASK'; exports.EDITOR_TOGGLE_MASK = EDITOR_TOGGLE_MASK; var EDITOR_CHANGE_SETTING = 'EDITOR_CHANGE_SETTING'; exports.EDITOR_CHANGE_SETTING = EDITOR_CHANGE_SETTING; var EDITOR_TOGGLE_RENDER_VIEW = 'EDITOR_TOGGLE_RENDER_VIEW'; exports.EDITOR_TOGGLE_RENDER_VIEW = EDITOR_TOGGLE_RENDER_VIEW; var EDITOR_SHOW_LOADING = 'EDITOR_SHOW_LOADING'; exports.EDITOR_SHOW_LOADING = EDITOR_SHOW_LOADING; var EDITOR_HIDE_LOADING = 'EDITOR_HIDE_LOADING'; exports.EDITOR_HIDE_LOADING = EDITOR_HIDE_LOADING; var EDITOR_FETCH_HOST_PENDING = 'EDITOR_FETCH_HOST_PENDING'; exports.EDITOR_FETCH_HOST_PENDING = EDITOR_FETCH_HOST_PENDING; var EDITOR_FETCH_HOST_RESOLVED = 'EDITOR_FETCH_HOST_RESOLVED'; exports.EDITOR_FETCH_HOST_RESOLVED = EDITOR_FETCH_HOST_RESOLVED; var EDITOR_HOST_SELECT_TOGGLE = 'EDITOR_HOST_SELECT_TOGGLE'; exports.EDITOR_HOST_SELECT_TOGGLE = EDITOR_HOST_SELECT_TOGGLE; var EDITOR_HOST_SELECT_CLEAR = 'EDITOR_HOST_SELECT_CLEAR'; exports.EDITOR_HOST_SELECT_CLEAR = EDITOR_HOST_SELECT_CLEAR; var EDITOR_HOST_SELECT_RESET = 'EDITOR_HOST_SELECT_RESET'; exports.EDITOR_HOST_SELECT_RESET = EDITOR_HOST_SELECT_RESET; var EDITOR_HOST_INITIAL_FETCH = 'EDITOR_HOST_INITIAL_FETCH'; exports.EDITOR_HOST_INITIAL_FETCH = EDITOR_HOST_INITIAL_FETCH; var EDITOR_HOSTS_URL = '/hosts/preview_host_collection.json'; exports.EDITOR_HOSTS_URL = EDITOR_HOSTS_URL; var EDITOR_HOST_ARR = 'hosts'; exports.EDITOR_HOST_ARR = EDITOR_HOST_ARR; var EDITOR_HOST_FILTERED_ARR = 'filteredHosts'; exports.EDITOR_HOST_FILTERED_ARR = EDITOR_HOST_FILTERED_ARR; var EDITOR_KEYBINDINGS = ['Default', 'Emacs', 'Vim']; exports.EDITOR_KEYBINDINGS = EDITOR_KEYBINDINGS; var EDITOR_THEMES = ['Github', 'Monokai']; exports.EDITOR_THEMES = EDITOR_THEMES; var EDITOR_MODES = ['Text', 'Json', 'Ruby', 'Html_ruby', 'Sh', 'Xml', 'Yaml']; exports.EDITOR_MODES = EDITOR_MODES; /***/ }), /* 56 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__RESELECT__; /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setModalStopSubmitting = exports.setModalStartSubmitting = exports.setModalOpen = exports.setModalClosed = exports.bindForemanModalActionsToId = exports.addModal = void 0; var _ForemanModalConstants = __webpack_require__(136); var _ForemanModalSelectors = __webpack_require__(42); var _addModal = function addModal(_ref) { var id = _ref.id, _ref$isOpen = _ref.isOpen, isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen, _ref$isSubmitting = _ref.isSubmitting, isSubmitting = _ref$isSubmitting === void 0 ? false : _ref$isSubmitting; return function (dispatch, getState) { return dispatch({ type: _ForemanModalConstants.ADD_MODAL, payload: { id: id, isOpen: isOpen, isSubmitting: isSubmitting } }); }; }; exports.addModal = _addModal; var modalAction = function modalAction(actionType) { return function (_ref2) { var id = _ref2.id; return function (dispatch, getState) { if (!(0, _ForemanModalSelectors.selectModalExists)(getState(), id)) { // eslint-disable-next-line no-console console.warn("".concat(actionType, " action received, but ForemanModal with id '").concat(id, "' does not exist.")); } return dispatch({ type: actionType, payload: { id: id } }); }; }; }; var _setModalStartSubmitting = modalAction(_ForemanModalConstants.SET_MODAL_START_SUBMITTING); exports.setModalStartSubmitting = _setModalStartSubmitting; var _setModalStopSubmitting = modalAction(_ForemanModalConstants.SET_MODAL_STOP_SUBMITTING); exports.setModalStopSubmitting = _setModalStopSubmitting; var _setModalOpen = modalAction(_ForemanModalConstants.SET_MODAL_OPEN); exports.setModalOpen = _setModalOpen; var _setModalClosed = modalAction(_ForemanModalConstants.SET_MODAL_CLOSED); // Pass in the ForemanModal id here and get bound action creators with the id already plugged in. exports.setModalClosed = _setModalClosed; var bindForemanModalActionsToId = function bindForemanModalActionsToId(_ref3) { var id = _ref3.id; return { addModal: function addModal() { return _addModal({ id: id }); }, setModalOpen: function setModalOpen() { return _setModalOpen({ id: id }); }, setModalClosed: function setModalClosed() { return _setModalClosed({ id: id }); }, setModalStartSubmitting: function setModalStartSubmitting() { return _setModalStartSubmitting({ id: id }); }, setModalStopSubmitting: function setModalStopSubmitting() { return _setModalStopSubmitting({ id: id }); } }; }; exports.bindForemanModalActionsToId = bindForemanModalActionsToId; /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BOOKMARKS_SUCCESS = exports.BOOKMARKS_REQUEST = exports.BOOKMARKS_MODAL = exports.BOOKMARKS_FORM_SUBMITTED = exports.BOOKMARKS_FAILURE = exports.BOOKMARKS = void 0; var BOOKMARKS = 'BOOKMARKS'; exports.BOOKMARKS = BOOKMARKS; var BOOKMARKS_REQUEST = 'BOOKMARKS_REQUEST'; exports.BOOKMARKS_REQUEST = BOOKMARKS_REQUEST; var BOOKMARKS_SUCCESS = 'BOOKMARKS_SUCCESS'; exports.BOOKMARKS_SUCCESS = BOOKMARKS_SUCCESS; var BOOKMARKS_FAILURE = 'BOOKMARKS_FAILURE'; exports.BOOKMARKS_FAILURE = BOOKMARKS_FAILURE; var BOOKMARKS_FORM_SUBMITTED = 'BOOKMARKS_FORM_SUBMITTED'; exports.BOOKMARKS_FORM_SUBMITTED = BOOKMARKS_FORM_SUBMITTED; var BOOKMARKS_MODAL = 'bookmarksModal'; exports.BOOKMARKS_MODAL = BOOKMARKS_MODAL; /***/ }), /* 59 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__FORMIK__; /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.withRenderHandler = exports.callOnPopState = exports.callOnMount = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _EmptyPage = _interopRequireDefault(__webpack_require__(352)); var _LoadingPage = _interopRequireDefault(__webpack_require__(145)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /* eslint-disable react-hooks/exhaustive-deps */ /** * HOC that runs a function on the initial mount of the component using useEffect * @param {Function} callback - function to run */ var callOnMount = function callOnMount(callback) { return function (WrappedComponent) { return function (componentProps) { // fires callback onMount, [] means don't listen to any props change (0, _react.useEffect)(function () { callback(componentProps); }, []); return /*#__PURE__*/_react["default"].createElement(WrappedComponent, componentProps); }; }; }; /** * HOC that runs a function onPopState if search query has changed, * assuming the component has withRouter * @param {Function} callback - function to run */ exports.callOnMount = callOnMount; var callOnPopState = function callOnPopState(callback) { return function (WrappedComponent) { return function (componentProps) { var didMount = (0, _react.useRef)(false); var action = componentProps.history.action, search = componentProps.location.search; (0, _react.useEffect)(function () { if (action === 'POP' && didMount.current) { callback(componentProps); } else { didMount.current = true; } }, [search, action]); return /*#__PURE__*/_react["default"].createElement(WrappedComponent, componentProps); }; }; }; /** * HOC That renders a component based on its state * * the following root Component props are required * { isLoading, hasData, hasError } * * If the default Error and Empty Components are used * the following props are also required: * * { message: { type, text }} * @param {ReactElement} Component - Component to render * @param {ReactElement} LoadingComponent - Component to render if Loading * @param {ReactElement} ErrorComponent - Component to render if Error * @param {ReactElement} EmptyComponent - Component to render if no Data exists */ exports.callOnPopState = callOnPopState; var withRenderHandler = function withRenderHandler(_ref) { var Component = _ref.Component, _ref$LoadingComponent = _ref.LoadingComponent, LoadingComponent = _ref$LoadingComponent === void 0 ? _LoadingPage["default"] : _ref$LoadingComponent, _ref$ErrorComponent = _ref.ErrorComponent, ErrorComponent = _ref$ErrorComponent === void 0 ? _EmptyPage["default"] : _ref$ErrorComponent, _ref$EmptyComponent = _ref.EmptyComponent, EmptyComponent = _ref$EmptyComponent === void 0 ? _EmptyPage["default"] : _ref$EmptyComponent; return function (componentProps) { var isLoading = componentProps.isLoading, hasData = componentProps.hasData, hasError = componentProps.hasError; if (isLoading && !hasData) return /*#__PURE__*/_react["default"].createElement(LoadingComponent, componentProps); if (hasError) return /*#__PURE__*/_react["default"].createElement(ErrorComponent, componentProps); if (hasData) return /*#__PURE__*/_react["default"].createElement(Component, componentProps); return /*#__PURE__*/_react["default"].createElement(EmptyComponent, componentProps); }; }; exports.withRenderHandler = withRenderHandler; /***/ }), /* 61 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_LOADING_SKELETON__; /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _formatters = __webpack_require__(149); Object.keys(_formatters).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _formatters[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _formatters[key]; } }); }); var _components = __webpack_require__(397); Object.keys(_components).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _components[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _components[key]; } }); }); var _schemaHelpers = __webpack_require__(399); Object.keys(_schemaHelpers).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _schemaHelpers[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _schemaHelpers[key]; } }); }); var _actions = __webpack_require__(402); Object.keys(_actions).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _actions[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _actions[key]; } }); }); var _reducers = __webpack_require__(404); Object.keys(_reducers).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _reducers[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _reducers[key]; } }); }); var _selectionSelectors = __webpack_require__(408); Object.keys(_selectionSelectors).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (key in exports && exports[key] === _selectionSelectors[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _selectionSelectors[key]; } }); }); /***/ }), /* 63 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectSlotMetadata = exports.selectMaxComponent = exports.selectFillsIDs = exports.selectFillsComponents = exports.selectFillsAmount = exports.selectComponentByWeight = void 0; var _SlotsRegistry = _interopRequireDefault(__webpack_require__(128)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var selectComponentByWeight = function selectComponentByWeight(slotId) { return _SlotsRegistry["default"].getSlotComponents(slotId).sort(function (a, b) { return b.weight - a.weight; }).map(function (c) { return c.component; }) || {}; }; exports.selectComponentByWeight = selectComponentByWeight; var selectMaxComponent = function selectMaxComponent(slotId) { return selectComponentByWeight(slotId)[0]; }; exports.selectMaxComponent = selectMaxComponent; var selectFillsAmount = function selectFillsAmount(state, id) { var registerdFills = state.extendable[id]; return registerdFills ? Object.keys(registerdFills).length : 0; }; exports.selectFillsAmount = selectFillsAmount; var selectFillsIDs = function selectFillsIDs(state, id) { var registerdFills = state.extendable[id]; if (registerdFills) { var fillIDs = Object.keys(registerdFills); return fillIDs.sort(function (a, b) { return registerdFills[b].weight - registerdFills[a].weight; }); } return null; }; exports.selectFillsIDs = selectFillsIDs; var selectFillsComponents = function selectFillsComponents(state, props) { var id = props.id, multiple = props.multiple, fillID = props.fillID; if (selectFillsAmount(state, id)) { if (fillID) { var slotComponent = _SlotsRegistry["default"].getSlotComponents(id); var getFill = slotComponent.filter(function (c) { return c.id === fillID; }); return [getFill[0].component]; } if (multiple) return selectComponentByWeight(id); return [selectMaxComponent(id)]; } return []; }; exports.selectFillsComponents = selectFillsComponents; var selectSlotMetadata = function selectSlotMetadata(state, id) { var registerdFills = state.extendable[id] || {}; var slotMetadata = {}; // eslint bug - https://github.com/eslint/eslint/issues/12117 /* eslint-disable-next-line no-unused-vars */ for (var _i = 0, _Object$keys = Object.keys(registerdFills); _i < _Object$keys.length; _i++) { var fill = _Object$keys[_i]; if (registerdFills[fill].metadata) slotMetadata[fill] = registerdFills[fill].metadata; } return slotMetadata; }; exports.selectSlotMetadata = selectSlotMetadata; /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TABS_SLOT_ID = exports.HOST_DETAILS_KEY = exports.HOST_DETAILS_API_OPTIONS = exports.DEFAULT_TAB = void 0; var DEFAULT_TAB = 'Overview'; exports.DEFAULT_TAB = DEFAULT_TAB; var HOST_DETAILS_KEY = 'HOST_DETAILS'; exports.HOST_DETAILS_KEY = HOST_DETAILS_KEY; var HOST_DETAILS_API_OPTIONS = { key: HOST_DETAILS_KEY }; exports.HOST_DETAILS_API_OPTIONS = HOST_DETAILS_API_OPTIONS; var TABS_SLOT_ID = 'host-details-page-tabs'; exports.TABS_SLOT_ID = TABS_SLOT_ID; /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _reactRedux = __webpack_require__(5); var _SlotSelectors = __webpack_require__(63); var _Slot = _interopRequireDefault(__webpack_require__(463)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } // map state to props var mapStateToProps = function mapStateToProps(state, ownProps) { return { fills: (0, _SlotSelectors.selectFillsComponents)(state, { id: ownProps.id, multiple: ownProps.multi, fillID: ownProps.fillID }) }; }; // export connected component var _default = (0, _reactRedux.connect)(mapStateToProps)(_Slot["default"]); exports["default"] = _default; /***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.navigateToSearch = exports.getChartConfig = void 0; var _v = _interopRequireDefault(__webpack_require__(16)); var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _ChartService = __webpack_require__(506); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var chartsSizeConfig = { area: { timeseries: _ChartService.timeseriesAreaChartConfig }, bar: { regular: _ChartService.barChartConfig, small: _ChartService.smallBarChartConfig, medium: _ChartService.mediumBarChartConfig }, donut: { regular: _ChartService.donutChartConfig, medium: _ChartService.donutMediumChartConfig, large: _ChartService.donutLargeChartConfig }, line: { regular: _ChartService.lineChartConfig, timeseries: _ChartService.timeseriesLineChartConfig } }; var doDataExist = function doDataExist(data) { if (!data || data.length === 0) { return false; } return data.reduce(function (curr, next) { var value = next[1]; return value !== 0 ? true : curr; }, false); }; var getColors = function getColors(data) { return data.reduce(function (curr, next) { var key = next[0]; var color = next[2]; return color ? _objectSpread(_objectSpread({}, curr), {}, _defineProperty({}, key, color)) : curr; }, {}); }; var getChartConfig = function getChartConfig(_ref) { var type = _ref.type, data = _ref.data, config = _ref.config, onclick = _ref.onclick, _ref$id = _ref.id, id = _ref$id === void 0 ? (0, _v["default"])() : _ref$id; var chartConfigForType = chartsSizeConfig[type][config]; var colors = getColors(data); var colorsSize = Object.keys(colors).length; var dataExists = doDataExist(data); var longNames = {}; var dataWithShortNames = []; if (dataExists) { dataWithShortNames = data.map(function (val) { var item = _seamlessImmutable["default"].asMutable(val.slice()); var longName = item[0]; item[0] = item[0].length > 30 ? "".concat(val[0].substring(0, 10), "...") : item[0]; longNames[item[0]] = longName; return item; }); } return _objectSpread(_objectSpread({}, chartConfigForType), {}, { id: id, data: _objectSpread({ columns: dataExists ? dataWithShortNames : [], onclick: onclick }, colorsSize > 0 ? { colors: colors } : {}), // eslint-disable-next-line no-shadow tooltip: { format: { name: function name(_name, ratio, id, idx) { return longNames[id]; } } }, onrendered: function onrendered() { dataWithShortNames.forEach(function (colData) { var nameOfClass = colData[0].replace(/\W/g, '-'); var selector = ".c3-legend-item-".concat(nameOfClass, " > title"); // eslint-disable-next-line no-undef var hasTooltip = d3.select(selector)[0][0]; if (!hasTooltip) { // eslint-disable-next-line no-undef d3.select(".c3-legend-item-".concat(nameOfClass)).append('svg:title').text(longNames[colData[0]]); } }); } }); }; exports.getChartConfig = getChartConfig; var navigateToSearch = function navigateToSearch(url, searchFilters, data) { var val = searchFilters[data.id] || data.id; var setUrl; window.tfm.tools.showSpinner(); if (url.includes('~VAL1~') || url.includes('~VAL2~')) { var vals = val.split(' '); var val1 = encodeURIComponent(vals[0]); var val2 = encodeURIComponent(vals[1]); setUrl = url.replace('~VAL1~', val1).replace('~VAL2~', val2); } else { if (val.includes(' ')) { val = encodeURIComponent(val); } setUrl = url.replace('~VAL~', val); } window.location.href = setUrl; }; exports.navigateToSearch = navigateToSearch; /***/ }), /* 67 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withTooltip = exports.valueToString = exports.hasDefault = exports.defaultToString = exports.arraySelection = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); var _this = void 0; var _excluded = ["tooltipId", "tooltipText"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var withTooltip = function withTooltip(Component) { return function (componentProps) { var tooltipId = componentProps.tooltipId, tooltipText = componentProps.tooltipText, rest = _objectWithoutProperties(componentProps, _excluded); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: tooltipId }, tooltipText), trigger: ['hover', 'focus'], placement: "top", rootClose: false }, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(Component, rest))); }; }; exports.withTooltip = withTooltip; var arraySelection = function arraySelection(setting) { var selectValues = setting.selectValues; if (!Array.isArray(selectValues)) { return null; } return (0, _helpers.deepPropsToCamelCase)(selectValues); }; exports.arraySelection = arraySelection; var formatEncryptedDefault = function formatEncryptedDefault(setting) { if (setting.encrypted && setting["default"]) { return setting["default"].split('').map(function (item) { return "\u2219"; }).join(''); } return null; }; var formatHashSelectionDefault = function formatHashSelectionDefault(setting) { return formatHashSelection('default', setting); }; var formatHashSelectionValue = function formatHashSelectionValue(setting) { return formatHashSelection('value', setting); }; var formatHashSelection = function formatHashSelection(attr, setting) { var selectValues = setting.selectValues; var val = setting[attr]; if (!selectValues || !selectValues[val]) { return null; } return selectValues[val]; }; var formatBooleanDefault = function formatBooleanDefault(setting) { return formatBoolean('default', setting); }; var formatBooleanValue = function formatBooleanValue(setting) { return formatBoolean('value', setting); }; var formatBoolean = function formatBoolean(attr, setting) { if (setting.settingsType === 'boolean') { if (setting[attr]) { return (0, _I18n.translate)('Yes'); } return (0, _I18n.translate)('No'); } return null; }; var formatArrayValue = function formatArrayValue(setting) { return formatArray('value', setting); }; var formatArrayDefault = function formatArrayDefault(setting) { return formatArray('default', setting); }; var formatArray = function formatArray(attr, setting) { if (setting.settingsType === 'array') { return "[".concat(setting[attr] && setting[attr].length > 0 ? setting.value.join(', ') : '', "]"); } return null; }; var formatTextValue = function formatTextValue(setting) { return setting.value; }; var formatTextDefault = function formatTextDefault(setting) { return setting["default"]; }; var formatEmpty = function formatEmpty(attr, emptyValue, setting) { if (!setting[attr]) { return emptyValue; } return null; }; var formatEmptyDefault = function formatEmptyDefault(setting) { return formatEmpty('default', (0, _I18n.translate)('Not set'), setting); }; var formatEmptyValue = function formatEmptyValue(setting) { return formatEmpty('value', (0, _I18n.translate)('Empty'), setting); }; var formatArraySelectionDefault = function formatArraySelectionDefault(setting) { return formatArraySelection('default', setting); }; var formatArraySelectionValue = function formatArraySelectionValue(setting) { return formatArraySelection('value', setting); }; var formatArraySelection = function formatArraySelection(attr, setting) { var selectValues = arraySelection(setting); if (!setting[attr] || !selectValues) { return null; } // https://github.com/eslint/eslint/issues/12117 var group; var _iterator = _createForOfIteratorHelper(selectValues), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { group = _step.value; if (group.value === setting[attr]) { return group.label; } if (group.children) { var child = group.children.find(function (item) { return item.value === setting[attr]; }); if (child) { return child.label; } } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return null; }; var reduceFormats = function reduceFormats(formatters) { return function (setting) { return formatters.reduce(function (memo, formatter) { if (memo) { return memo; } return formatter.call(_this, setting); }, null); }; }; var valueToString = reduceFormats([formatBooleanValue, formatArrayValue, formatArraySelectionValue, formatHashSelectionValue, formatEmptyValue, formatTextValue]); exports.valueToString = valueToString; var defaultToString = reduceFormats([formatEncryptedDefault, formatBooleanDefault, formatArrayDefault, formatArraySelectionDefault, formatHashSelectionDefault, formatEmptyDefault, formatTextDefault]); exports.defaultToString = defaultToString; var hasDefault = function hasDefault(setting) { switch (setting.settingsType) { case 'boolean': case 'integer': { return true; } case 'array': case 'hash': case 'string': { return !!setting["default"] && setting["default"].length !== 0; } default: { return !!setting["default"]; } } }; exports.hasDefault = hasDefault; /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addGlobalFill = void 0; var _FillActions = __webpack_require__(126); var _redux = _interopRequireDefault(__webpack_require__(27)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var addGlobalFill = function addGlobalFill(slotId, fillId, component, weight, metadata) { _redux["default"].dispatch((0, _FillActions.registerFillComponent)(slotId, undefined, fillId, component, weight, metadata)); }; exports.addGlobalFill = addGlobalFill; /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _DonutChartService = __webpack_require__(508); var _MessageBox = _interopRequireDefault(__webpack_require__(24)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var DonutChart = function DonutChart(_ref) { var data = _ref.data, onclick = _ref.onclick, config = _ref.config, noDataMsg = _ref.noDataMsg, title = _ref.title, unloadData = _ref.unloadData, searchUrl = _ref.searchUrl, searchFilters = _ref.searchFilters; var chartConfig = (0, _DonutChartService.getDonutChartConfig)({ data: data, config: config, onclick: onclick, searchUrl: searchUrl, searchFilters: searchFilters }); if (chartConfig.data.columns.length > 0) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.DonutChart, _extends({}, chartConfig, { title: title, unloadBeforeLoad: unloadData })); } return /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { msg: noDataMsg, icontype: "info" }); }; DonutChart.propTypes = { data: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].array]), config: _propTypes["default"].oneOf(['regular', 'medium', 'large']), noDataMsg: _propTypes["default"].string, title: _propTypes["default"].object, unloadData: _propTypes["default"].bool, onclick: _propTypes["default"].func, searchUrl: _propTypes["default"].string, searchFilters: _propTypes["default"].object }; DonutChart.defaultProps = { data: undefined, config: 'regular', noDataMsg: (0, _I18n.translate)('No data available'), title: { type: 'percent', precision: 1 }, unloadData: false, onclick: _helpers.noop, searchUrl: undefined, searchFilters: undefined }; var _default = DonutChart; exports["default"] = _default; /***/ }), /* 70 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_DND__; /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.actionTypeGenerator = void 0; var actions = ['REQUEST', 'SUCCESS', 'FAILURE', 'UPDATE']; /** * Auto generates api consts for redux for given key * @param {String} key - the unique name of the component * @param {Object} actionTypes - custom types to use instead of the auto generated ones */ var actionTypeGenerator = function actionTypeGenerator(key) { var actionTypes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; actions.forEach(function (type) { actionTypes[type] = actionTypes[type] || "".concat(key, "_").concat(type); }); return actionTypes; }; exports.actionTypeGenerator = actionTypeGenerator; /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.API_OPERATIONS = void 0; var API_OPERATIONS = { GET: 'API_GET', POST: 'API_POST', PUT: 'API_PUT', DELETE: 'API_DELETE', PATCH: 'API_PATCH' }; exports.API_OPERATIONS = API_OPERATIONS; /***/ }), /* 73 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REDUXJS_TOOLKIT__; /***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _redux = __webpack_require__(12); var _reactRedux = __webpack_require__(5); var actions = _interopRequireWildcard(__webpack_require__(188)); var _BreadcrumbBarReducer = _interopRequireDefault(__webpack_require__(254)); var _BreadcrumbBarSelector = __webpack_require__(255); var _BreadcrumbBar = _interopRequireDefault(__webpack_require__(256)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // map state to props var mapStateToProps = function mapStateToProps(state) { return { resourceSwitcherItems: (0, _BreadcrumbBarSelector.selectResourceSwitcherItems)(state), isSwitcherOpen: (0, _BreadcrumbBarSelector.selectIsSwitcherOpen)(state), resourceUrl: (0, _BreadcrumbBarSelector.selectResourceUrl)(state), isLoadingResources: (0, _BreadcrumbBarSelector.selectIsLoadingResources)(state), hasError: (0, _BreadcrumbBarSelector.selectHasError)(state), currentPage: (0, _BreadcrumbBarSelector.selectCurrentPage)(state), totalPages: (0, _BreadcrumbBarSelector.selectTotalPages)(state), searchQuery: (0, _BreadcrumbBarSelector.selectSearchQuery)(state), removeSearchQuery: (0, _BreadcrumbBarSelector.selectRemoveSearchQuery)(state), titleReplacement: (0, _BreadcrumbBarSelector.selectTitleReplacement)(state) }; }; // map action dispatchers to props var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; // export reducers var reducers = { breadcrumbBar: _BreadcrumbBarReducer["default"] }; // export connected component exports.reducers = reducers; var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_BreadcrumbBar["default"]); exports["default"] = _default; /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectAutocompleteUrl = exports.selectAutocompleteTrigger = exports.selectAutocompleteStatus = exports.selectAutocompleteSearchQuery = exports.selectAutocompleteResults = exports.selectAutocompleteProp = exports.selectAutocompleteIsErrorVisible = exports.selectAutocompleteIsDisabled = exports.selectAutocompleteError = exports.selectAutocompleteController = exports.selectAutocomplete = void 0; var _AutoCompleteConstants = __webpack_require__(49); var selectAutocomplete = function selectAutocomplete(_ref, id) { var autocomplete = _ref.autocomplete; return autocomplete[id]; }; exports.selectAutocomplete = selectAutocomplete; var selectAutocompleteProp = function selectAutocompleteProp(state, id, prop, ownProps) { var selectedAutocomplete = selectAutocomplete(state, id); var isAutocompleteInitiated = selectedAutocomplete !== undefined; var _ref2 = selectedAutocomplete || {}, trigger = _ref2.trigger; var didComponentReset = prop !== 'trigger' && trigger === _AutoCompleteConstants.TRIGGERS.RESET; var propFromOwnProps = ownProps && ownProps[prop]; if (isAutocompleteInitiated) { if (didComponentReset) { return propFromOwnProps; } return selectedAutocomplete[prop]; } return propFromOwnProps; }; exports.selectAutocompleteProp = selectAutocompleteProp; var selectAutocompleteError = function selectAutocompleteError(state, id, ownProps) { var isErrorVisible = selectAutocompleteIsErrorVisible(state, id, ownProps); if (!isErrorVisible) { return null; } return selectAutocompleteProp(state, id, 'error', ownProps); }; exports.selectAutocompleteError = selectAutocompleteError; var selectAutocompleteIsErrorVisible = function selectAutocompleteIsErrorVisible(state, id, ownProps) { return selectAutocompleteProp(state, id, 'isErrorVisible', ownProps); }; exports.selectAutocompleteIsErrorVisible = selectAutocompleteIsErrorVisible; var selectAutocompleteResults = function selectAutocompleteResults(state, id, ownProps) { return selectAutocompleteProp(state, id, 'results', ownProps); }; exports.selectAutocompleteResults = selectAutocompleteResults; var selectAutocompleteSearchQuery = function selectAutocompleteSearchQuery(state, id, ownProps) { return selectAutocompleteProp(state, id, 'searchQuery', ownProps); }; exports.selectAutocompleteSearchQuery = selectAutocompleteSearchQuery; var selectAutocompleteStatus = function selectAutocompleteStatus(state, id, ownProps) { return selectAutocompleteProp(state, id, 'status', ownProps); }; exports.selectAutocompleteStatus = selectAutocompleteStatus; var selectAutocompleteController = function selectAutocompleteController(state, id, ownProps) { return selectAutocompleteProp(state, id, 'controller', ownProps); }; exports.selectAutocompleteController = selectAutocompleteController; var selectAutocompleteTrigger = function selectAutocompleteTrigger(state, id, ownProps) { return selectAutocompleteProp(state, id, 'trigger', ownProps); }; exports.selectAutocompleteTrigger = selectAutocompleteTrigger; var selectAutocompleteUrl = function selectAutocompleteUrl(state, id, ownProps) { return selectAutocompleteProp(state, id, 'url', ownProps); }; exports.selectAutocompleteUrl = selectAutocompleteUrl; var selectAutocompleteIsDisabled = function selectAutocompleteIsDisabled(state, id, ownProps) { return selectAutocompleteProp(state, id, 'disabled', ownProps); }; exports.selectAutocompleteIsDisabled = selectAutocompleteIsDisabled; /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports.propTypes = exports.defaultProps = exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactRouterDom = __webpack_require__(17); var _LayoutActions = __webpack_require__(114); var _LayoutReducer = _interopRequireDefault(__webpack_require__(270)); var _LayoutSelectors = __webpack_require__(116); var _LayoutHelper = __webpack_require__(41); var _LayoutSessionStorage = __webpack_require__(271); var _ForemanContext = __webpack_require__(29); var _Layout = _interopRequireDefault(__webpack_require__(272)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var ConnectedLayout = function ConnectedLayout(_ref) { var _useForemanLocation, _useForemanOrganizati; var children = _ref.children, data = _ref.data; var dispatch = (0, _reactRedux.useDispatch)(); var currentLocation = (_useForemanLocation = (0, _ForemanContext.useForemanLocation)()) === null || _useForemanLocation === void 0 ? void 0 : _useForemanLocation.title; var currentOrganization = (_useForemanOrganizati = (0, _ForemanContext.useForemanOrganization)()) === null || _useForemanOrganizati === void 0 ? void 0 : _useForemanOrganizati.title; (0, _react.useEffect)(function () { dispatch((0, _LayoutActions.initializeLayout)({ items: (0, _LayoutHelper.combineMenuItems)(data), activeMenu: (0, _LayoutHelper.getActiveMenuItem)(data.menu).title, isCollapsed: (0, _LayoutSessionStorage.getIsNavbarCollapsed)(), organization: data.orgs.current_org, location: data.locations.current_location })); }, [data, dispatch]); var _useHistory = (0, _reactRouterDom.useHistory)(), navigate = _useHistory.push; var items = (0, _reactRedux.useSelector)(function (state) { return (0, _LayoutSelectors.patternflyMenuItemsSelector)(state, currentLocation, currentOrganization); }); var isLoading = (0, _reactRedux.useSelector)(function (state) { return (0, _LayoutSelectors.selectIsLoading)(state); }); var isCollapsed = (0, _reactRedux.useSelector)(function (state) { return (0, _LayoutSelectors.selectIsCollapsed)(state); }); var activeMenu = (0, _reactRedux.useSelector)(function (state) { return (0, _LayoutSelectors.selectActiveMenu)(state); }); return /*#__PURE__*/_react["default"].createElement(_Layout["default"], { data: data, navigate: navigate, items: items, isLoading: isLoading, isCollapsed: isCollapsed, activeMenu: activeMenu, changeActiveMenu: function changeActiveMenu(menu) { return dispatch((0, _LayoutActions.changeActiveMenu)(menu)); }, collapseLayoutMenus: function collapseLayoutMenus() { return dispatch((0, _LayoutActions.collapseLayoutMenus)()); }, expandLayoutMenus: function expandLayoutMenus() { return dispatch((0, _LayoutActions.expandLayoutMenus)()); } }, children); }; // export prop-types var propTypes = _Layout["default"].propTypes, defaultProps = _Layout["default"].defaultProps; exports.defaultProps = defaultProps; exports.propTypes = propTypes; ConnectedLayout.propTypes = { children: propTypes.children, data: propTypes.data }; ConnectedLayout.defaultProps = { children: defaultProps.children, data: defaultProps.data }; // export reducers var reducers = { layout: _LayoutReducer["default"] }; // export connected component exports.reducers = reducers; var _default = ConnectedLayout; exports["default"] = _default; /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deprecateObjectProperty = exports.deprecate = void 0; /* eslint-disable no-console, max-len */ var deprecate = function deprecate(oldMethod, newMethod, version) { if (true) console.warn("DEPRECATION WARNING: you are using deprecated ".concat(oldMethod, ", it will be removed in Foreman ").concat(version, ". Use ").concat(newMethod, " instead.")); }; exports.deprecate = deprecate; var deprecateObjectProperty = function deprecateObjectProperty(obj, oldProp, newProp, version) { var oldPropPointer = obj[oldProp]; Object.defineProperty(obj, oldProp, { get: function get() { deprecate(oldProp, newProp, version); return oldPropPointer; } }); }; exports.deprecateObjectProperty = deprecateObjectProperty; /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _AlertLink = _interopRequireDefault(__webpack_require__(317)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var AlertBody = function AlertBody(_ref) { var link = _ref.link, title = _ref.title, message = _ref.message, children = _ref.children; return /*#__PURE__*/_react["default"].createElement("span", null, link && /*#__PURE__*/_react["default"].createElement(_AlertLink["default"], link), title && /*#__PURE__*/_react["default"].createElement("strong", null, title), message, children); }; AlertBody.propTypes = { message: _propTypes["default"].node, link: _propTypes["default"].shape(_AlertLink["default"].propTypes), title: _propTypes["default"].string, children: _propTypes["default"].node }; AlertBody.defaultProps = { message: undefined, children: undefined, link: undefined, title: undefined }; var _default = AlertBody; exports["default"] = _default; /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AUDITS_SEARCH_PROPS = exports.AUDITS_PATH = exports.AUDITS_PAGE_UPDATE_QUERY = exports.AUDITS_PAGE_SHOW_LOADING = exports.AUDITS_PAGE_HIDE_LOADING = exports.AUDITS_PAGE_DATA_RESOLVED = exports.AUDITS_PAGE_DATA_FAILED = exports.AUDITS_PAGE_CLEAR_ERROR = void 0; var _constants = __webpack_require__(7); var AUDITS_PAGE_DATA_RESOLVED = 'AUDITS_PAGE_DATA_RESOLVED'; exports.AUDITS_PAGE_DATA_RESOLVED = AUDITS_PAGE_DATA_RESOLVED; var AUDITS_PAGE_DATA_FAILED = 'AUDITS_PAGE_DATA_FAILED'; exports.AUDITS_PAGE_DATA_FAILED = AUDITS_PAGE_DATA_FAILED; var AUDITS_PAGE_HIDE_LOADING = 'AUDITS_PAGE_HIDE_LOADING'; exports.AUDITS_PAGE_HIDE_LOADING = AUDITS_PAGE_HIDE_LOADING; var AUDITS_PAGE_SHOW_LOADING = 'AUDITS_PAGE_SHOW_LOADING'; exports.AUDITS_PAGE_SHOW_LOADING = AUDITS_PAGE_SHOW_LOADING; var AUDITS_PAGE_UPDATE_QUERY = 'AUDITS_PAGE_UPDATE_QUERY'; exports.AUDITS_PAGE_UPDATE_QUERY = AUDITS_PAGE_UPDATE_QUERY; var AUDITS_PAGE_CLEAR_ERROR = 'AUDITS_PAGE_CLEAR_ERROR'; exports.AUDITS_PAGE_CLEAR_ERROR = AUDITS_PAGE_CLEAR_ERROR; var AUDITS_PATH = '/audits'; exports.AUDITS_PATH = AUDITS_PATH; var AUDITS_SEARCH_PROPS = (0, _constants.getControllerSearchProps)('audits'); exports.AUDITS_SEARCH_PROPS = AUDITS_SEARCH_PROPS; /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BOOKMARKS_MODAL = exports.BOOKMARKS_FORM_SUBMITTED_SUCCESS = exports.BOOKMARKS = void 0; var BOOKMARKS = 'BOOKMARKS'; exports.BOOKMARKS = BOOKMARKS; var BOOKMARKS_FORM_SUBMITTED_SUCCESS = 'BOOKMARKS_FORM_SUBMITTED_SUCCESS'; exports.BOOKMARKS_FORM_SUBMITTED_SUCCESS = BOOKMARKS_FORM_SUBMITTED_SUCCESS; var BOOKMARKS_MODAL = 'bookmarksModal'; exports.BOOKMARKS_MODAL = BOOKMARKS_MODAL; /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _ForemanModalHooks = __webpack_require__(35); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var ForemanModalHeader = function ForemanModalHeader(props) { var _useModalContext = (0, _ForemanModalHooks.useModalContext)(), title = _useModalContext.title; // title will be falsey if its value is the default '' // Render the provided children, or default markup if none given return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Header, _extends({ closeButton: true }, props), title && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Title, null, title), props.children); }; ForemanModalHeader.propTypes = { children: _propTypes["default"].node }; ForemanModalHeader.defaultProps = { children: null }; var _default = ForemanModalHeader; exports["default"] = _default; /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _ForemanModalHooks = __webpack_require__(35); var _I18n = __webpack_require__(2); var _SubmitOrCancel = _interopRequireDefault(__webpack_require__(329)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ForemanModalFooter = function ForemanModalFooter(props) { var childCount = _react["default"].Children.count(props.children); var _useModalContext = (0, _ForemanModalHooks.useModalContext)(), onClose = _useModalContext.onClose, isSubmitting = _useModalContext.isSubmitting, id = _useModalContext.id, submitProps = _useModalContext.submitProps; // Render the provided children, or default markup if none given var closeButton = childCount === 0 && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: "default", onClick: onClose }, (0, _I18n.translate)('Close')); var submitOrCancel = childCount === 0 && submitProps && /*#__PURE__*/_react["default"].createElement(_SubmitOrCancel["default"], { isSubmitting: isSubmitting, onCancel: onClose, submitProps: submitProps, id: id }); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Footer, props, props.children, submitOrCancel || closeButton); }; ForemanModalFooter.propTypes = { children: _propTypes["default"].node }; ForemanModalFooter.defaultProps = { children: null }; var _default = ForemanModalFooter; exports["default"] = _default; /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function get() { return _ForemanForm["default"]; } }); var _ForemanForm = _interopRequireDefault(__webpack_require__(340)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.submitForm = exports.prepareErrors = exports.onError = void 0; var _API = __webpack_require__(8); var _I18n = __webpack_require__(2); var getBaseErrors = function getBaseErrors(_ref) { var _ref$error = _ref.error, errors = _ref$error.errors, severity = _ref$error.severity; var _error; if (errors.base) { _error = {}; _error.errorMsgs = errors.base; _error.severity = severity; delete errors.base; } return _error; }; var prepareErrors = function prepareErrors(errors, base) { return Object.keys(errors).reduce(function (memo, key) { var errorMessages = errors[key]; memo[key] = errorMessages && errorMessages.join ? errorMessages.join(', ') : errorMessages; return memo; }, { _error: base }); }; exports.prepareErrors = prepareErrors; var onError = function onError(error, actions) { var _error$response; actions.setSubmitting(false); if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 422) { var _error$response2, _error$response3, _error$response3$data, _error$response3$data2; var base = getBaseErrors(error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data); actions.setErrors(prepareErrors(error === null || error === void 0 ? void 0 : (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : (_error$response3$data = _error$response3.data) === null || _error$response3$data === void 0 ? void 0 : (_error$response3$data2 = _error$response3$data.error) === null || _error$response3$data2 === void 0 ? void 0 : _error$response3$data2.errors, base)); } else { var _error$response4, _error$response5, _error$response6; actions.setErrors({ _error: { errorMsgs: ["".concat((0, _I18n.translate)('Error submitting data:'), " ").concat((_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : _error$response4.status, " ").concat(((_error$response5 = error.response) === null || _error$response5 === void 0 ? void 0 : _error$response5.statusText) && (0, _I18n.translate)((_error$response6 = error.response) === null || _error$response6 === void 0 ? void 0 : _error$response6.statusText))] } }); } }; exports.onError = onError; var verifyProps = function verifyProps(item, values) { if (!item) { throw new Error('item must be defined, e.g. Bookmark'); } if (!values) { throw new Error('values must be defined'); } }; var submitForm = function submitForm(_ref2) { var item = _ref2.item, url = _ref2.url, params = _ref2.values, message = _ref2.message, _ref2$method = _ref2.method, method = _ref2$method === void 0 ? 'post' : _ref2$method, headers = _ref2.headers, actionTypes = _ref2.apiActionTypes, errorToast = _ref2.errorToast, successToast = _ref2.successToast, actions = _ref2.actions, successCallback = _ref2.successCallback; verifyProps(item, params); return function (dispatch) { var uniqueAPIKey = "".concat(item.toUpperCase(), "_FORM_SUBMITTED"); var handleError = function handleError(error) { return onError(error, actions); }; var handleSuccess = function handleSuccess(_ref3) { var data = _ref3.data; successCallback(); dispatch({ type: uniqueAPIKey, payload: { item: item, data: data } }); }; var defaultSuccessToast = function defaultSuccessToast() { return message || (0, _I18n.sprintf)('%s was successfully created.', (0, _I18n.translate)(item)); }; var defaultErrorToast = function defaultErrorToast(error) { var _error$response7, _error$response7$data, _error$response7$data2, _error$response7$data3; return (0, _I18n.sprintf)((0, _I18n.translate)('Oh no! Something went wrong while submitting the form, the server returned the following error: %s'), // eslint-disable-next-line camelcase error === null || error === void 0 ? void 0 : (_error$response7 = error.response) === null || _error$response7 === void 0 ? void 0 : (_error$response7$data = _error$response7.data) === null || _error$response7$data === void 0 ? void 0 : (_error$response7$data2 = _error$response7$data.error) === null || _error$response7$data2 === void 0 ? void 0 : (_error$response7$data3 = _error$response7$data2.full_messages) === null || _error$response7$data3 === void 0 ? void 0 : _error$response7$data3.join(', ')); }; dispatch(_API.APIActions[method]({ key: uniqueAPIKey, url: url, headers: headers, params: params, actionTypes: actionTypes, handleError: handleError, handleSuccess: handleSuccess, successToast: successToast || defaultSuccessToast, errorToast: errorToast || defaultErrorToast })); }; }; exports.submitForm = submitForm; /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _lodash = __webpack_require__(10); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _PaginationHooks = __webpack_require__(369); var _urlHelpers = __webpack_require__(21); var _ForemanContext = __webpack_require__(29); __webpack_require__(370); var _excluded = ["data", "pagination", "onPageSet", "onPerPageSelect", "dropdownButtonId", "disableNext", "disablePrev"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var Pagination = function Pagination(props) { var data = props.data, pagination = props.pagination, onPageSet = props.onPageSet, onPerPageSelect = props.onPerPageSelect, dropdownButtonId = props.dropdownButtonId, disableNext = props.disableNext, disablePrev = props.disablePrev, otherProps = _objectWithoutProperties(props, _excluded); var _useForemanSettings = (0, _ForemanContext.useForemanSettings)(), perPage = _useForemanSettings.perPage; var perPageOptions = (0, _PaginationHooks.usePaginationOptions)(); var urlPage = (0, _urlHelpers.getURIpage)(); var urlPerPage = (0, _urlHelpers.getURIperPage)() || null; var className = (0, _lodash.isEmpty)(data.classNames) ? 'col-md-12' : "col-md-12 ".concat(data.classNames.pagination_classes); var pageOpts = _objectSpread({ page: urlPage, perPage: urlPerPage || perPage, perPageOptions: perPageOptions }, pagination); var messages = { firstPage: (0, _I18n.translate)('First Page'), previousPage: (0, _I18n.translate)('Previous Page'), currentPage: (0, _I18n.translate)('Current Page'), nextPage: (0, _I18n.translate)('Next Page'), lastPage: (0, _I18n.translate)('Last Page'), perPage: (0, _I18n.translate)('per page'), of: (0, _I18n.translate)('of') }; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Paginator, _extends({ pagination: pageOpts, viewType: data.viewType, itemCount: data.itemCount, onPageSet: onPageSet, onPerPageSelect: onPerPageSelect, disableNext: disableNext, disablePrev: disablePrev, className: className, dropdownButtonId: dropdownButtonId, messages: messages }, otherProps)); }; Pagination.propTypes = { data: _propTypes["default"].shape({ viewType: _propTypes["default"].string, itemCount: _propTypes["default"].number, classNames: _propTypes["default"].shape({ pagination_classes: _propTypes["default"].string }) }).isRequired, onPageSet: _propTypes["default"].func, onPerPageSelect: _propTypes["default"].func, dropdownButtonId: _propTypes["default"].string, disableNext: _propTypes["default"].bool, disablePrev: _propTypes["default"].bool, pagination: _propTypes["default"].shape({ page: _propTypes["default"].number, perPageOptions: _propTypes["default"].arrayOf(_propTypes["default"].number) }) }; Pagination.defaultProps = { onPageSet: function onPageSet(page) { return (0, _urlHelpers.changeQuery)({ page: page }); }, onPerPageSelect: function onPerPageSelect(perPage) { return (0, _urlHelpers.changeQuery)({ page: 1, per_page: perPage }); }, dropdownButtonId: 'pagination-row-dropdown', pagination: null, disableNext: false, disablePrev: false }; var _default = Pagination; exports["default"] = _default; /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PERSONAL_ACCESS_TOKEN_FORM_SUBMITTED = exports.PERSONAL_ACCESS_TOKEN_CLEAR = exports.PERSONAL_ACCESS_TOKENS_SUCCESS = exports.PERSONAL_ACCESS_TOKENS_REQUEST = exports.PERSONAL_ACCESS_TOKENS_FAILURE = exports.MODAL_ID = void 0; var PERSONAL_ACCESS_TOKENS_REQUEST = 'PERSONAL_ACCESS_TOKENS_REQUEST'; exports.PERSONAL_ACCESS_TOKENS_REQUEST = PERSONAL_ACCESS_TOKENS_REQUEST; var PERSONAL_ACCESS_TOKENS_SUCCESS = 'PERSONAL_ACCESS_TOKENS_SUCCESS'; exports.PERSONAL_ACCESS_TOKENS_SUCCESS = PERSONAL_ACCESS_TOKENS_SUCCESS; var PERSONAL_ACCESS_TOKENS_FAILURE = 'PERSONAL_ACCESS_TOKENS_FAILURE'; exports.PERSONAL_ACCESS_TOKENS_FAILURE = PERSONAL_ACCESS_TOKENS_FAILURE; var PERSONAL_ACCESS_TOKEN_FORM_SUBMITTED = 'PERSONAL_ACCESS_TOKEN_FORM_SUBMITTED'; exports.PERSONAL_ACCESS_TOKEN_FORM_SUBMITTED = PERSONAL_ACCESS_TOKEN_FORM_SUBMITTED; var PERSONAL_ACCESS_TOKEN_CLEAR = 'PERSONAL_ACCESS_TOKEN_CLEAR'; exports.PERSONAL_ACCESS_TOKEN_CLEAR = PERSONAL_ACCESS_TOKEN_CLEAR; var MODAL_ID = 'personal-access-tokens-form-modal'; exports.MODAL_ID = MODAL_ID; /***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MINUTE = exports.HOUR = void 0; var MINUTE = 'MINUTE'; exports.MINUTE = MINUTE; var HOUR = 'HOUR'; exports.HOUR = HOUR; /***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SUPPORTED_POWER_STATES = exports.POWER_REQURST_KEY = exports.POWER_REQUEST_OPTIONS = exports.BMC_POWER_STATES = exports.BASE_POWER_STATES = void 0; var _I18n = __webpack_require__(2); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var POWER_REQURST_KEY = 'HOST_TOGGLE_POWER'; exports.POWER_REQURST_KEY = POWER_REQURST_KEY; var POWER_REQUEST_OPTIONS = { key: POWER_REQURST_KEY }; exports.POWER_REQUEST_OPTIONS = POWER_REQUEST_OPTIONS; var BASE_POWER_STATES = { off: (0, _I18n.translate)('Off'), on: (0, _I18n.translate)('On') }; exports.BASE_POWER_STATES = BASE_POWER_STATES; var BMC_POWER_STATES = { soft: (0, _I18n.translate)('Reboot'), cycle: (0, _I18n.translate)('Reset') }; exports.BMC_POWER_STATES = BMC_POWER_STATES; var SUPPORTED_POWER_STATES = _objectSpread(_objectSpread({}, BASE_POWER_STATES), BMC_POWER_STATES); exports.SUPPORTED_POWER_STATES = SUPPORTED_POWER_STATES; /***/ }), /* 89 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 90 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 91 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.REGISTRATION_PATH = exports.REGISTRATION_COMMANDS_OS_TEMPLATE = exports.REGISTRATION_COMMANDS_DATA = exports.REGISTRATION_COMMANDS = void 0; var REGISTRATION_PATH = '/hosts/register'; exports.REGISTRATION_PATH = REGISTRATION_PATH; var REGISTRATION_COMMANDS_DATA = 'REGISTRATION_COMMANDS_DATA'; exports.REGISTRATION_COMMANDS_DATA = REGISTRATION_COMMANDS_DATA; var REGISTRATION_COMMANDS_OS_TEMPLATE = 'REGISTRATION_COMMANDS_OS_TEMPLATE'; exports.REGISTRATION_COMMANDS_OS_TEMPLATE = REGISTRATION_COMMANDS_OS_TEMPLATE; var REGISTRATION_COMMANDS = 'REGISTRATION_COMMANDS'; exports.REGISTRATION_COMMANDS = REGISTRATION_COMMANDS; /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validatedOS = exports.osHelperText = exports.emptyOption = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactCore = __webpack_require__(6); var _foreman_tools = __webpack_require__(18); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /* eslint-disable camelcase */ // Form helpers var emptyOption = function emptyOption(length) { return /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { value: "", label: length > 0 ? '' : (0, _I18n.translate)('Nothing to select.') }); }; // OperatingSystem helpers exports.emptyOption = emptyOption; var validatedOS = function validatedOS(operatingSystemId, template) { if (!operatingSystemId) { return 'default'; } if (template !== null && template !== void 0 && template.name) { return 'success'; } return 'error'; }; exports.validatedOS = validatedOS; var osHelperText = function osHelperText(operatingSystemId, operatingSystems, hostGroupId, hostGroups, template) { if (operatingSystemId) { return osTemplateHelperText(operatingSystemId, template); } if (hostGroupId) { var _hostGroups$find; var osId = (_hostGroups$find = hostGroups.find(function (hg) { return "".concat(hg.id) === "".concat(hostGroupId); })) === null || _hostGroups$find === void 0 ? void 0 : _hostGroups$find.inherited_operatingsystem_id; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, hostGroupOSHelperText(hostGroupId, hostGroups, operatingSystems), /*#__PURE__*/_react["default"].createElement("br", null), osId && osTemplateHelperText(osId, template)); } return ''; }; exports.osHelperText = osHelperText; var osTemplateHelperText = function osTemplateHelperText(operatingSystemId, template) { if (!operatingSystemId && template === undefined) { return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "\xA0"); } if (template !== null && template !== void 0 && template.name) { return /*#__PURE__*/_react["default"].createElement("span", null, (0, _I18n.translate)('Initial configuration template'), ":", ' ', /*#__PURE__*/_react["default"].createElement("a", { href: (0, _foreman_tools.foremanUrl)(template.path), target: "_blank", rel: "noreferrer" }, template.name)); } return /*#__PURE__*/_react["default"].createElement("span", { className: "has-error" }, /*#__PURE__*/_react["default"].createElement("a", { href: (0, _foreman_tools.foremanUrl)(template.os_path), target: "_blank", rel: "noreferrer" }, (0, _I18n.translate)('Operating system')), ' ', (0, _I18n.translate)('does not have assigned host_init_config template')); }; var hostGroupOSHelperText = function hostGroupOSHelperText(hostGroupId, hostGroups, operatingSystems) { var _hostGroups$find2; var osId = (_hostGroups$find2 = hostGroups.find(function (hg) { return "".concat(hg.id) === "".concat(hostGroupId); })) === null || _hostGroups$find2 === void 0 ? void 0 : _hostGroups$find2.inherited_operatingsystem_id; var hostGroupOS = operatingSystems.find(function (os) { return "".concat(os.id) === "".concat(osId); }); if (hostGroupOS) { return (0, _I18n.sprintf)('Host group OS: %s', hostGroupOS.title); } return (0, _I18n.translate)('No OS from host group'); }; /***/ }), /* 93 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactIcons = __webpack_require__(11); var _HostStatusesConstants = __webpack_require__(94); var _excluded = ["status"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var GlobalStatusIcon = function GlobalStatusIcon(_ref) { var status = _ref.status, props = _objectWithoutProperties(_ref, _excluded); switch (status) { case _HostStatusesConstants.GLOBAL_STATUS_OK: return /*#__PURE__*/_react["default"].createElement(_reactIcons.CheckCircleIcon, _extends({ style: { fill: 'var(--pf-global--success-color--100)' } }, props)); case _HostStatusesConstants.GLOBAL_STATUS_WARN: return /*#__PURE__*/_react["default"].createElement(_reactIcons.ExclamationTriangleIcon, _extends({ style: { fill: 'var(--pf-global--warning-color--100)' } }, props)); case _HostStatusesConstants.GLOBAL_STATUS_ERROR: return /*#__PURE__*/_react["default"].createElement(_reactIcons.ExclamationCircleIcon, _extends({ style: { fill: 'var(--pf-global--danger-color--100)' } }, props)); default: return /*#__PURE__*/_react["default"].createElement(_reactIcons.QuestionCircleIcon, _extends({ style: { fill: 'var(--pf-global--info-color--200)' } }, props)); } }; GlobalStatusIcon.propTypes = { status: _propTypes["default"].number }; GlobalStatusIcon.defaultProps = { status: undefined }; var _default = GlobalStatusIcon; exports["default"] = _default; /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HOST_STATUSES_KEY = exports.GLOBAL_STATUS_WARN = exports.GLOBAL_STATUS_OK = exports.GLOBAL_STATUS_ERROR = exports.API_OPTIONS = void 0; var GLOBAL_STATUS_OK = 0; exports.GLOBAL_STATUS_OK = GLOBAL_STATUS_OK; var GLOBAL_STATUS_WARN = 1; exports.GLOBAL_STATUS_WARN = GLOBAL_STATUS_WARN; var GLOBAL_STATUS_ERROR = 2; exports.GLOBAL_STATUS_ERROR = GLOBAL_STATUS_ERROR; var HOST_STATUSES_KEY = 'HOST_STATUSES'; exports.HOST_STATUSES_KEY = HOST_STATUSES_KEY; var API_OPTIONS = { key: HOST_STATUSES_KEY }; exports.API_OPTIONS = API_OPTIONS; /***/ }), /* 95 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__RC_INPUT_NUMBER__; /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _jquery = _interopRequireDefault(__webpack_require__(20)); var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); var _CommonForm = _interopRequireDefault(__webpack_require__(34)); var _constants = __webpack_require__(7); var _MessageBox = _interopRequireDefault(__webpack_require__(24)); var _SelectHelpers = __webpack_require__(182); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Select = /*#__PURE__*/function (_React$Component) { _inherits(Select, _React$Component); var _super = _createSuper(Select); function Select() { _classCallCheck(this, Select); return _super.apply(this, arguments); } _createClass(Select, [{ key: "initializeSelect2", value: function initializeSelect2() { var allowClear = this.props.allowClear; if (_jquery["default"].fn.select2) { (0, _jquery["default"])(this.select).select2({ allowClear: allowClear }); } } }, { key: "attachEvent", value: function attachEvent() { var onChange = this.props.onChange; (0, _jquery["default"])(this.select).off('change', onChange).on('change', onChange); } }, { key: "componentDidMount", value: function componentDidMount() { if (this.props.useSelect2) { this.initializeSelect2(); this.attachEvent(); } } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { if (this.props.useSelect2) { this.initializeSelect2(); if (this.props.status !== prevProps.status) { this.attachEvent(); } } } }, { key: "render", value: function render() { var _this = this; var _this$props = this.props, name = _this$props.name, label = _this$props.label, className = _this$props.className, value = _this$props.value, onChange = _this$props.onChange, options = _this$props.options, disabled = _this$props.disabled, _this$props$status = _this$props.status, status = _this$props$status === void 0 ? _constants.STATUS.RESOLVED : _this$props$status, _this$props$errorMess = _this$props.errorMessage, errorMessage = _this$props$errorMess === void 0 ? (0, _I18n.translate)('An error occurred.') : _this$props$errorMess; var content; var innerSelect = /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("select", { name: name, disabled: disabled, ref: function ref(select) { _this.select = select; }, className: "form-control", value: value, onChange: onChange }, /*#__PURE__*/_react["default"].createElement("option", null), (0, _SelectHelpers.renderOptions)(options))); switch (status) { case _constants.STATUS.RESOLVED: { content = innerSelect; break; } case _constants.STATUS.PENDING: { content = /*#__PURE__*/_react["default"].createElement(_patternflyReact.Spinner, { loading: true, size: "sm" }); break; } case _constants.STATUS.ERROR: { content = /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { icontype: "error-circle-o", msg: errorMessage }); break; } default: content = /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { icontype: "error-circle-o", msg: "Invalid Status" }); break; } if (!label) { return innerSelect; } return /*#__PURE__*/_react["default"].createElement(_CommonForm["default"], { label: label, className: "common-select ".concat(className) }, content); } }]); return Select; }(_react["default"].Component); Select.propTypes = { name: _propTypes["default"].string, value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].bool]), label: _propTypes["default"].string, className: _propTypes["default"].string, allowClear: _propTypes["default"].bool, disabled: _propTypes["default"].bool, options: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object]), status: _propTypes["default"].string, errorMessage: _propTypes["default"].string, onChange: _propTypes["default"].func, useSelect2: _propTypes["default"].bool }; Select.defaultProps = { name: null, value: undefined, label: '', className: '', allowClear: false, disabled: false, options: {}, status: _constants.STATUS.RESOLVED, errorMessage: (0, _I18n.translate)('An error occurred.'), onChange: _helpers.noop, useSelect2: true }; var _default = Select; exports["default"] = _default; /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SETTING_UPDATE_PATH = exports.SETTING_UPDATE_MODAL = void 0; var SETTING_UPDATE_MODAL = 'settingUpdateModal'; exports.SETTING_UPDATE_MODAL = SETTING_UPDATE_MODAL; var SETTING_UPDATE_PATH = '/api/settings/:id'; exports.SETTING_UPDATE_PATH = SETTING_UPDATE_PATH; /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setValue = exports.getValue = void 0; if (!window.sessionStorage) { window.sessionStorage = { getItem: function getItem() {}, setItem: function setItem() {} }; } var getValue = function getValue(key) { var value = window.sessionStorage.getItem(key) || 'null'; return JSON.parse(value); }; exports.getValue = getValue; var setValue = function setValue(key, value) { return window.sessionStorage.setItem(key, JSON.stringify(value)); }; exports.setValue = setValue; /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectIntervals = exports.selectIntervalID = exports.selectDoesIntervalExist = void 0; var selectIntervals = function selectIntervals(state) { return state.intervals || {}; }; exports.selectIntervals = selectIntervals; var selectIntervalID = function selectIntervalID(state, key) { return selectIntervals(state)[key]; }; exports.selectIntervalID = selectIntervalID; var selectDoesIntervalExist = function selectDoesIntervalExist(state, key) { return !!selectIntervals(state)[key]; }; exports.selectDoesIntervalExist = selectDoesIntervalExist; /***/ }), /* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = exports.actions = void 0; var _redux = __webpack_require__(12); var _reactRedux = __webpack_require__(5); var _TemplateGeneratorSelectors = __webpack_require__(312); var _TemplateGeneratorReducer = _interopRequireDefault(__webpack_require__(313)); var templateActions = _interopRequireWildcard(__webpack_require__(314)); var _TemplateGenerator = _interopRequireDefault(__webpack_require__(316)); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var actions = templateActions; // export reducers exports.actions = actions; var reducers = { templates: _TemplateGeneratorReducer["default"] }; // map state to props exports.reducers = reducers; var mapStateToProps = function mapStateToProps(state) { return (0, _TemplateGeneratorSelectors.selectGeneratingProps)(state); }; // map action dispatchers to props var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; // export connected component var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_TemplateGenerator["default"]); exports["default"] = _default; /***/ }), /* 101 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _reactRedux = __webpack_require__(5); var _SearchBar = _interopRequireDefault(__webpack_require__(325)); var _AutoCompleteSelectors = __webpack_require__(75); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var mapStateToProps = function mapStateToProps(state, _ref) { var id = _ref.data.autocomplete.id; return { searchQuery: (0, _AutoCompleteSelectors.selectAutocompleteSearchQuery)(state, id) }; }; var _default = (0, _reactRedux.connect)(mapStateToProps)(_SearchBar["default"]); exports["default"] = _default; /***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _forceSingleton = _interopRequireDefault(__webpack_require__(31)); var _ReactApp = _interopRequireDefault(__webpack_require__(441)); var _AreaChart = _interopRequireDefault(__webpack_require__(504)); var _BarChart = _interopRequireDefault(__webpack_require__(177)); var _DonutChart = _interopRequireDefault(__webpack_require__(69)); var _LineChart = _interopRequireDefault(__webpack_require__(509)); var _powerStatus = _interopRequireDefault(__webpack_require__(511)); var _notifications = _interopRequireDefault(__webpack_require__(117)); var _ToastsList = _interopRequireDefault(__webpack_require__(28)); var _RelativeDateTime = _interopRequireDefault(__webpack_require__(47)); var _LongDateTime = _interopRequireDefault(__webpack_require__(516)); var _ShortDateTime = _interopRequireDefault(__webpack_require__(146)); var _IsoDate = _interopRequireDefault(__webpack_require__(517)); var _FormField = _interopRequireDefault(__webpack_require__(518)); var _InputFactory = _interopRequireDefault(__webpack_require__(178)); var _vmware = _interopRequireDefault(__webpack_require__(529)); var _PasswordStrength = _interopRequireDefault(__webpack_require__(111)); var _BreadcrumbBar = _interopRequireDefault(__webpack_require__(74)); var _FactCharts = _interopRequireDefault(__webpack_require__(539)); var _Pagination = _interopRequireDefault(__webpack_require__(85)); var _AutoComplete = _interopRequireDefault(__webpack_require__(52)); var _SearchBar = _interopRequireDefault(__webpack_require__(101)); var _Layout = _interopRequireDefault(__webpack_require__(76)); var _EmptyState = _interopRequireDefault(__webpack_require__(36)); var _ComponentWrapper = _interopRequireDefault(__webpack_require__(543)); var _ChartBox = _interopRequireDefault(__webpack_require__(183)); var _ConfigReports = _interopRequireDefault(__webpack_require__(545)); var _DiffModal = _interopRequireDefault(__webpack_require__(118)); var _wrapperFactory = __webpack_require__(547); var _ModelsTable = _interopRequireDefault(__webpack_require__(148)); var _TemplateGenerator = _interopRequireDefault(__webpack_require__(100)); var _Editor = _interopRequireDefault(__webpack_require__(121)); var _LoginPage = _interopRequireDefault(__webpack_require__(549)); var _ExternalLogout = _interopRequireDefault(__webpack_require__(553)); var _Slot = _interopRequireDefault(__webpack_require__(65)); var _TypeAheadSelect = _interopRequireDefault(__webpack_require__(129)); var _DatePicker = _interopRequireDefault(__webpack_require__(179)); var _RedirectCancelButton = _interopRequireDefault(__webpack_require__(556)); var _SettingRecords = _interopRequireDefault(__webpack_require__(157)); var _SettingsTable = _interopRequireDefault(__webpack_require__(559)); var _SettingUpdateModal = _interopRequireDefault(__webpack_require__(567)); var _PersonalAccessTokens = _interopRequireDefault(__webpack_require__(160)); var _ClipboardCopy = _interopRequireDefault(__webpack_require__(161)); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _Welcome = __webpack_require__(572); var _Welcome2 = __webpack_require__(573); var _Welcome3 = __webpack_require__(574); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var componentRegistry = { registry: (0, _forceSingleton["default"])('component_registry', function () { return {}; }), register: function register(_ref) { var _ref$name = _ref.name, name = _ref$name === void 0 ? null : _ref$name, _ref$type = _ref.type, type = _ref$type === void 0 ? null : _ref$type, _ref$store = _ref.store, store = _ref$store === void 0 ? true : _ref$store, _ref$data = _ref.data, data = _ref$data === void 0 ? true : _ref$data; if (!name || !type) { throw new Error('Component name or type is missing'); } if (this.registry[name]) { // eslint-disable-next-line no-console console.warn("Component name already taken: ".concat(name)); } else { this.registry[name] = { type: type, store: store, data: data }; } return this.registry; }, registerMultiple: function registerMultiple(componentObjs) { var _this = this; return Object.values(componentObjs).forEach(function (obj) { return _this.register(obj); }); }, getComponent: function getComponent(name) { if (!this.registry[name]) { throw new Error("Component not found: ".concat(name, " among ").concat(this.registeredComponents())); } return this.registry[name]; }, wrapperFactory: function wrapperFactory() { return new _wrapperFactory.WrapperFactory(); }, registeredComponents: function registeredComponents() { return Object.keys(this.registry).join(', '); }, defaultWrapper: function defaultWrapper(component) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var store = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var flattenData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var factory = this.wrapperFactory(); factory["with"]('i18n'); if (store && component.store) { factory["with"]('store', store); } if (data && component.data) { factory["with"]('data', data, flattenData); } return factory.wrapper; }, markup: function markup(name, _ref2) { var _ref2$data = _ref2.data, data = _ref2$data === void 0 ? null : _ref2$data, _ref2$store = _ref2.store, store = _ref2$store === void 0 ? null : _ref2$store, _ref2$wrapper = _ref2.wrapper, wrapper = _ref2$wrapper === void 0 ? null : _ref2$wrapper, _ref2$flattenData = _ref2.flattenData, flattenData = _ref2$flattenData === void 0 ? false : _ref2$flattenData; var currentComponent = this.getComponent(name); var componentWrapper = wrapper || this.defaultWrapper(currentComponent, data, store, flattenData); var WrappedComponent = componentWrapper(currentComponent.type); return /*#__PURE__*/_react["default"].createElement(WrappedComponent, null); } }; var coreComponets = [{ name: 'ReactApp', type: _ReactApp["default"] }, { name: 'SearchBar', type: _SearchBar["default"] }, { name: 'AutoComplete', type: _AutoComplete["default"] }, { name: 'AreaChart', type: _AreaChart["default"] }, { name: 'DonutChart', type: _DonutChart["default"] }, { name: 'LineChart', type: _LineChart["default"] }, { name: 'PowerStatus', type: _powerStatus["default"] }, { name: 'NotificationContainer', type: _notifications["default"] }, { name: 'ToastNotifications', type: _ToastsList["default"] }, { name: 'StorageContainer', type: _vmware["default"] }, { name: 'PasswordStrength', type: _PasswordStrength["default"] }, { name: 'BreadcrumbBar', type: _BreadcrumbBar["default"] }, { name: 'FactChart', type: _FactCharts["default"] }, { name: 'Pagination', type: _Pagination["default"] }, { name: 'Layout', type: _Layout["default"] }, { name: 'EmptyState', type: _EmptyState["default"] }, { name: 'BarChart', type: _BarChart["default"] }, { name: 'ChartBox', type: _ChartBox["default"] }, { name: 'ComponentWrapper', type: _ComponentWrapper["default"] }, { name: 'ConfigReports', type: _ConfigReports["default"] }, { name: 'DiffModal', type: _DiffModal["default"] }, { name: 'ExternalLogout', type: _ExternalLogout["default"] }, { name: 'Slot', type: _Slot["default"] }, { name: 'TypeAheadSelect', type: _TypeAheadSelect["default"] }, { name: 'DatePicker', type: _DatePicker["default"] }, { name: 'RedirectCancelButton', type: _RedirectCancelButton["default"] }, { name: 'SettingRecords', type: _SettingRecords["default"] }, { name: 'SettingsTable', type: _SettingsTable["default"] }, { name: 'SettingUpdateModal', type: _SettingUpdateModal["default"] }, { name: 'PersonalAccessTokens', type: _PersonalAccessTokens["default"] }, { name: 'ClipboardCopy', type: _ClipboardCopy["default"] }, { name: 'LabelIcon', type: _LabelIcon["default"] }, { name: 'RelativeDateTime', type: _RelativeDateTime["default"], data: true, store: false }, { name: 'LongDateTime', type: _LongDateTime["default"], data: true, store: false }, { name: 'ShortDateTime', type: _ShortDateTime["default"], data: true, store: false }, { name: 'IsoDate', type: _IsoDate["default"], data: true, store: false }, { name: 'FormField', type: _FormField["default"] }, { name: 'InputFactory', type: _InputFactory["default"] }, { name: 'ModelsTable', type: _ModelsTable["default"] }, { name: 'Editor', type: _Editor["default"] }, // Report templates { name: 'TemplateGenerator', type: _TemplateGenerator["default"] }, { name: 'LoginPage', type: _LoginPage["default"] }, { name: 'WelcomeAuthSource', type: _Welcome.WelcomeAuthSource }, { name: 'WelcomeConfigReports', type: _Welcome2.WelcomeConfigReports }, { name: 'WelcomeArchitecture', type: _Welcome3.WelcomeArchitecture }]; componentRegistry.registerMultiple(coreComponets); var _default = componentRegistry; exports["default"] = _default; /***/ }), /* 103 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__PATTERNFLY_REACT_TABLE__; /***/ }), /* 104 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderRoute = exports.registerRoutes = exports.fallbackRoute = void 0; var _reactRouterDom = __webpack_require__(17); var _react = _interopRequireDefault(__webpack_require__(0)); var _foreman_navigation = __webpack_require__(26); var _GlobalFill = __webpack_require__(68); var _excluded = ["render", "path"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var currentPath = window.location.href; /** * Adds a plugin's routes into core * @param {String} id plugin's id - can be its name * @param {Array} routes an array that contains a plugin's routes */ var registerRoutes = function registerRoutes(id, routes) { return routes.map(function (_ref, index) { var _render = _ref.render, path = _ref.path, routeProps = _objectWithoutProperties(_ref, _excluded); return (0, _GlobalFill.addGlobalFill)('routes', "".concat(id, "-").concat(index), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, _extends({ path: path, key: path }, routeProps, { render: function render(renderProps) { return renderRoute(_render, renderProps); } }))); }); }; /** * a Helper function for rendering a route * @param {Function} renderFn - a component's rendering function * @param {Object} props - routing props */ exports.registerRoutes = registerRoutes; var renderRoute = function renderRoute(renderFn, props) { var location = props.location, _props$location = props.location, pathname = _props$location.pathname, search = _props$location.search; removeRailsContent(); location && updatePath("".concat(pathname).concat(search)); return renderFn(props); }; exports.renderRoute = renderRoute; var fallbackRoute = function fallbackRoute() { var nextPath = window.location.href; if (currentPath !== nextPath) { updatePath(nextPath); return (0, _foreman_navigation.visit)(nextPath); } return null; }; exports.fallbackRoute = fallbackRoute; var updatePath = function updatePath(newPath) { if (newPath) currentPath = newPath; }; var removeRailsContent = function removeRailsContent() { var railsContainer = document.getElementById('rails-app-content'); if (railsContainer) railsContainer.remove(); }; /***/ }), /* 105 */, /* 106 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setIsOpened = exports.setHasUnreadMessages = exports.setExpandedGroup = exports.getIsOpened = exports.getHasUnreadMessages = exports.getExpandedGroup = void 0; var _SessionStorage = __webpack_require__(98); var getIsOpened = function getIsOpened() { return (0, _SessionStorage.getValue)('isDrawerOpen'); }; exports.getIsOpened = getIsOpened; var setIsOpened = function setIsOpened(value) { return (0, _SessionStorage.setValue)('isDrawerOpen', value); }; exports.setIsOpened = setIsOpened; var getExpandedGroup = function getExpandedGroup() { return (0, _SessionStorage.getValue)('expandedGroup'); }; exports.getExpandedGroup = getExpandedGroup; var setExpandedGroup = function setExpandedGroup(value) { return (0, _SessionStorage.setValue)('expandedGroup', value); }; exports.setExpandedGroup = setExpandedGroup; var getHasUnreadMessages = function getHasUnreadMessages() { return (0, _SessionStorage.getValue)('hasUnreadMessages'); }; exports.getHasUnreadMessages = getHasUnreadMessages; var setHasUnreadMessages = function setHasUnreadMessages(value) { return (0, _SessionStorage.setValue)('hasUnreadMessages', value); }; exports.setHasUnreadMessages = setHasUnreadMessages; /***/ }), /* 107 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.isAPIAction = exports.getApiResponse = exports.getApiMethodByActionType = void 0; var _APIConstants = __webpack_require__(72); var _ = __webpack_require__(8); function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var getApiMethodByActionType = function getApiMethodByActionType(type) { return type.substring(4).toLowerCase(); }; exports.getApiMethodByActionType = getApiMethodByActionType; var getApiResponse = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) { var type, url, headers, params, method; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: type = _ref.type, url = _ref.url, headers = _ref.headers, params = _ref.params; method = getApiMethodByActionType(type); _context.t0 = method; _context.next = _context.t0 === 'get' ? 5 : _context.t0 === 'delete' ? 6 : 7; break; case 5: return _context.abrupt("return", _.API[method](url, headers, params)); case 6: return _context.abrupt("return", _.API[method](url, headers)); case 7: return _context.abrupt("return", _.API[method](url, params, headers)); case 8: case "end": return _context.stop(); } }, _callee); })); return function getApiResponse(_x) { return _ref2.apply(this, arguments); }; }(); exports.getApiResponse = getApiResponse; var isAPIAction = function isAPIAction(_ref3) { var type = _ref3.type; return Object.values(_APIConstants.API_OPERATIONS).includes(type); }; exports.isAPIAction = isAPIAction; /***/ }), /* 108 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withInterval = exports.registeredIntervalException = exports.getDefaultInterval = void 0; var _IntervalConstants = __webpack_require__(51); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var registeredIntervalException = function registeredIntervalException(key) { return new Error("There is already an interval running and registered for: ".concat(key, ".")); }; exports.registeredIntervalException = registeredIntervalException; var withInterval = function withInterval(action) { var interval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getDefaultInterval(); return _objectSpread(_objectSpread({}, action), {}, { interval: interval }); }; exports.withInterval = withInterval; var getDefaultInterval = function getDefaultInterval() { return Object({"NODE_ENV":"development","NOTIFICATIONS_POLLING":undefined,"REDUX_LOGGER":undefined}).DEFAULT_INTERVAL || _IntervalConstants.DEFAULT_INTERVAL; }; exports.getDefaultInterval = getDefaultInterval; /***/ }), /* 109 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stopInterval = exports.startInterval = void 0; var _IntervalConstants = __webpack_require__(51); var stopInterval = function stopInterval(key) { return { type: _IntervalConstants.STOP_INTERVAL, key: key }; }; exports.stopInterval = stopInterval; var startInterval = function startInterval(key, intervalID) { return { type: _IntervalConstants.START_INTERVAL, key: key, intervalID: intervalID }; }; exports.startInterval = startInterval; /***/ }), /* 110 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__AXIOS__; /***/ }), /* 111 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _redux = __webpack_require__(12); var _reactRedux = __webpack_require__(5); var actions = _interopRequireWildcard(__webpack_require__(248)); var _PasswordStrengthSelectors = __webpack_require__(249); var _PasswordStrengthReducer = _interopRequireDefault(__webpack_require__(250)); var _PasswordStrength = _interopRequireDefault(__webpack_require__(251)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // map state to props var mapStateToProps = function mapStateToProps(_ref) { var passwordStrength = _ref.passwordStrength; return { doesPasswordsMatch: (0, _PasswordStrengthSelectors.doesPasswordsMatch)(passwordStrength), passwordPresent: (0, _PasswordStrengthSelectors.passwordPresent)(passwordStrength) }; }; // map action dispatchers to props var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; // export reducers var reducers = { passwordStrength: _PasswordStrengthReducer["default"] }; // export connected component exports.reducers = reducers; var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_PasswordStrength["default"]); exports["default"] = _default; /***/ }), /* 112 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PASSWORD_STRENGTH_PASSWORD_CONFIRMATION_CHANGED = exports.PASSWORD_STRENGTH_PASSWORD_CHANGED = void 0; var PASSWORD_STRENGTH_PASSWORD_CHANGED = 'PASSWORD_STRENGTH_PASSWORD_CHANGED'; exports.PASSWORD_STRENGTH_PASSWORD_CHANGED = PASSWORD_STRENGTH_PASSWORD_CHANGED; var PASSWORD_STRENGTH_PASSWORD_CONFIRMATION_CHANGED = 'PASSWORD_STRENGTH_PASSWORD_CONFIRMATION_CHANGED'; exports.PASSWORD_STRENGTH_PASSWORD_CONFIRMATION_CHANGED = PASSWORD_STRENGTH_PASSWORD_CONFIRMATION_CHANGED; /***/ }), /* 113 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BREADCRUMB_BAR_UPDATE_TITLE = exports.BREADCRUMB_BAR_TOGGLE_SWITCHER = exports.BREADCRUMB_BAR_RESOURCES_SUCCESS = exports.BREADCRUMB_BAR_RESOURCES_REQUEST = exports.BREADCRUMB_BAR_RESOURCES_FAILURE = exports.BREADCRUMB_BAR_CLOSE_SWITCHER = exports.BREADCRUMB_BAR_CLEAR_SEARCH = void 0; var BREADCRUMB_BAR_TOGGLE_SWITCHER = 'BREADCRUMB_BAR_TOGGLE_SWITCHER'; exports.BREADCRUMB_BAR_TOGGLE_SWITCHER = BREADCRUMB_BAR_TOGGLE_SWITCHER; var BREADCRUMB_BAR_CLOSE_SWITCHER = 'BREADCRUMB_BAR_CLOSE_SWITCHER'; exports.BREADCRUMB_BAR_CLOSE_SWITCHER = BREADCRUMB_BAR_CLOSE_SWITCHER; var BREADCRUMB_BAR_RESOURCES_REQUEST = 'BREADCRUMB_BAR_RESOURCES_REQUEST'; exports.BREADCRUMB_BAR_RESOURCES_REQUEST = BREADCRUMB_BAR_RESOURCES_REQUEST; var BREADCRUMB_BAR_RESOURCES_SUCCESS = 'BREADCRUMB_BAR_RESOURCES_SUCCESS'; exports.BREADCRUMB_BAR_RESOURCES_SUCCESS = BREADCRUMB_BAR_RESOURCES_SUCCESS; var BREADCRUMB_BAR_RESOURCES_FAILURE = 'BREADCRUMB_BAR_RESOURCES_FAILURE'; exports.BREADCRUMB_BAR_RESOURCES_FAILURE = BREADCRUMB_BAR_RESOURCES_FAILURE; var BREADCRUMB_BAR_CLEAR_SEARCH = 'BREADCRUMB_BAR_DELETE_SEARCH'; exports.BREADCRUMB_BAR_CLEAR_SEARCH = BREADCRUMB_BAR_CLEAR_SEARCH; var BREADCRUMB_BAR_UPDATE_TITLE = 'BREADCRUMB_BAR_UPDATE_TITLE'; exports.BREADCRUMB_BAR_UPDATE_TITLE = BREADCRUMB_BAR_UPDATE_TITLE; /***/ }), /* 114 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.showLoading = exports.initializeLayout = exports.hideLoading = exports.expandLayoutMenus = exports.collapseLayoutMenus = exports.changeActiveMenu = void 0; var _LayoutConstants = __webpack_require__(115); var initializeLayout = function initializeLayout(_ref) { var items = _ref.items, activeMenu = _ref.activeMenu, isCollapsed = _ref.isCollapsed, organization = _ref.organization, location = _ref.location; return { type: _LayoutConstants.LAYOUT_INITIALIZE, payload: { items: items, activeMenu: activeMenu, isCollapsed: isCollapsed, organization: organization, location: location } }; }; exports.initializeLayout = initializeLayout; var showLoading = function showLoading() { return { type: _LayoutConstants.LAYOUT_SHOW_LOADING }; }; exports.showLoading = showLoading; var hideLoading = function hideLoading() { return { type: _LayoutConstants.LAYOUT_HIDE_LOADING }; }; exports.hideLoading = hideLoading; var changeActiveMenu = function changeActiveMenu(_ref2) { var title = _ref2.title; return { type: _LayoutConstants.LAYOUT_CHANGE_ACTIVE, payload: { activeMenu: title } }; }; exports.changeActiveMenu = changeActiveMenu; var expandLayoutMenus = function expandLayoutMenus() { return { type: _LayoutConstants.LAYOUT_EXPAND }; }; exports.expandLayoutMenus = expandLayoutMenus; var collapseLayoutMenus = function collapseLayoutMenus() { return { type: _LayoutConstants.LAYOUT_COLLAPSE }; }; exports.collapseLayoutMenus = collapseLayoutMenus; /***/ }), /* 115 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LAYOUT_SHOW_LOADING = exports.LAYOUT_INITIALIZE = exports.LAYOUT_HIDE_LOADING = exports.LAYOUT_EXPAND = exports.LAYOUT_COLLAPSE = exports.LAYOUT_CHANGE_ACTIVE = void 0; var LAYOUT_INITIALIZE = 'LAYOUT_INITIALIZE'; exports.LAYOUT_INITIALIZE = LAYOUT_INITIALIZE; var LAYOUT_SHOW_LOADING = 'LAYOUT_SHOW_LOADING'; exports.LAYOUT_SHOW_LOADING = LAYOUT_SHOW_LOADING; var LAYOUT_HIDE_LOADING = 'LAYOUT_HIDE_LOADING'; exports.LAYOUT_HIDE_LOADING = LAYOUT_HIDE_LOADING; var LAYOUT_CHANGE_ACTIVE = 'LAYOUT_CHANGE_ACTIVE'; exports.LAYOUT_CHANGE_ACTIVE = LAYOUT_CHANGE_ACTIVE; var LAYOUT_COLLAPSE = 'LAYOUT_COLLAPSE'; exports.LAYOUT_COLLAPSE = LAYOUT_COLLAPSE; var LAYOUT_EXPAND = 'LAYOUT_EXPAND'; exports.LAYOUT_EXPAND = LAYOUT_EXPAND; /***/ }), /* 116 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectMenuItems = exports.selectLayout = exports.selectIsLoading = exports.selectIsCollapsed = exports.selectCurrentOrganization = exports.selectCurrentLocation = exports.selectActiveMenu = exports.patternflyMenuItemsSelector = void 0; var _lodash = __webpack_require__(10); var _helpers = __webpack_require__(3); var _DeprecationService = __webpack_require__(77); var selectLayout = function selectLayout(state) { return state.layout; }; exports.selectLayout = selectLayout; var selectMenuItems = function selectMenuItems(state) { return selectLayout(state).items; }; exports.selectMenuItems = selectMenuItems; var selectActiveMenu = function selectActiveMenu(state) { return selectLayout(state).activeMenu; }; exports.selectActiveMenu = selectActiveMenu; var selectIsLoading = function selectIsLoading(state) { return selectLayout(state).isLoading; }; exports.selectIsLoading = selectIsLoading; var selectIsCollapsed = function selectIsCollapsed(state) { return selectLayout(state).isCollapsed; }; exports.selectIsCollapsed = selectIsCollapsed; var selectCurrentLocation = function selectCurrentLocation(state) { (0, _DeprecationService.deprecate)('selectCurrentLocation', 'useForemanLocation hook', 2.5); return (0, _lodash.get)(selectLayout(state), 'currentLocation'); }; exports.selectCurrentLocation = selectCurrentLocation; var selectCurrentOrganization = function selectCurrentOrganization(state) { (0, _DeprecationService.deprecate)('selectCurrentOrganization', 'useForemanOrganization hook', 2.5); return (0, _lodash.get)(selectLayout(state), 'currentOrganization'); }; exports.selectCurrentOrganization = selectCurrentOrganization; var patternflyMenuItemsSelector = function patternflyMenuItemsSelector(state, currentLocation, currentOrganization) { var items = selectMenuItems(state); return items.map(function (item) { var childrenArray = item.children.filter(function (child) { return child.name; }).map(function (child) { return childToMenuItem(child, currentLocation, currentOrganization); }); return { title: item.name, iconClass: item.icon, subItems: childrenArray, className: item.className }; }); }; exports.patternflyMenuItemsSelector = patternflyMenuItemsSelector; var childToMenuItem = function childToMenuItem(child, currentLocation, currentOrganization) { return { id: "menu_item_".concat((0, _lodash.snakeCase)(child.name)), title: child.name, isDivider: child.type === 'divider', className: child.name === currentLocation || child.name === currentOrganization ? 'mobile-active' : '', href: child.url || '#', preventHref: true, onClick: child.onClick || _helpers.noop }; }; /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _reactOnclickoutside = _interopRequireDefault(__webpack_require__(279)); var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRedux = __webpack_require__(5); var _lodash = __webpack_require__(10); var _patternflyReact = __webpack_require__(4); var NotificationActions = _interopRequireWildcard(__webpack_require__(280)); var _helpers = __webpack_require__(3); __webpack_require__(282); var _ToggleIcon = _interopRequireDefault(__webpack_require__(283)); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var notificationContainer = /*#__PURE__*/function (_React$Component) { _inherits(notificationContainer, _React$Component); var _super = _createSuper(notificationContainer); function notificationContainer() { _classCallCheck(this, notificationContainer); return _super.apply(this, arguments); } _createClass(notificationContainer, [{ key: "componentDidMount", value: function componentDidMount() { var _this$props = this.props, startNotificationsPolling = _this$props.startNotificationsPolling, url = _this$props.data.url; startNotificationsPolling(url); } }, { key: "handleClickOutside", value: function handleClickOutside() { var _this$props2 = this.props, isDrawerOpen = _this$props2.isDrawerOpen, isReady = _this$props2.isReady, toggleDrawer = _this$props2.toggleDrawer; if (isReady && isDrawerOpen) { toggleDrawer(); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() { var stopNotificationsPolling = this.props.stopNotificationsPolling; stopNotificationsPolling(); } }, { key: "render", value: function render() { var _this$props3 = this.props, notifications = _this$props3.notifications, isDrawerOpen = _this$props3.isDrawerOpen, toggleDrawer = _this$props3.toggleDrawer, expandGroup = _this$props3.expandGroup, expandedGroup = _this$props3.expandedGroup, markAsRead = _this$props3.markAsRead, markGroupAsRead = _this$props3.markGroupAsRead, clearNotification = _this$props3.clearNotification, clearGroup = _this$props3.clearGroup, hasUnreadMessages = _this$props3.hasUnreadMessages, isReady = _this$props3.isReady, clickedLink = _this$props3.clickedLink, translations = _this$props3.translations; var notificationGroups = Object.entries(notifications).map(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], group = _ref2[1]; return { panelkey: key, panelName: key, notifications: group }; }); return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_ToggleIcon["default"], { hasUnreadMessages: hasUnreadMessages, onClick: toggleDrawer }), isReady && isDrawerOpen && /*#__PURE__*/_react["default"].createElement(_patternflyReact.NotificationDrawerWrapper, { panels: notificationGroups, expandedPanel: expandedGroup, togglePanel: expandGroup, onNotificationAsRead: markAsRead, onNotificationHide: clearNotification, onMarkPanelAsRead: markGroupAsRead, onMarkPanelAsClear: clearGroup, onClickedLink: clickedLink, toggleDrawerHide: toggleDrawer, isExpandable: false, translations: (0, _helpers.translateObject)(translations) })); } }]); return notificationContainer; }(_react["default"].Component); notificationContainer.propTypes = { data: _propTypes["default"].shape({ url: _propTypes["default"].string.isRequired }).isRequired, isDrawerOpen: _propTypes["default"].bool, isReady: _propTypes["default"].bool, notifications: _propTypes["default"].object, expandedGroup: _propTypes["default"].string, hasUnreadMessages: _propTypes["default"].bool, clickedLink: _propTypes["default"].func, startNotificationsPolling: _propTypes["default"].func, toggleDrawer: _propTypes["default"].func, expandGroup: _propTypes["default"].func, markAsRead: _propTypes["default"].func, markGroupAsRead: _propTypes["default"].func, clearNotification: _propTypes["default"].func, clearGroup: _propTypes["default"].func, stopNotificationsPolling: _propTypes["default"].func, translations: _propTypes["default"].shape({ title: _propTypes["default"].string, unreadEvent: _propTypes["default"].string, unreadEvents: _propTypes["default"].string, emptyState: _propTypes["default"].string, readAll: _propTypes["default"].string, clearAll: _propTypes["default"].string, deleteNotification: _propTypes["default"].string }) }; notificationContainer.defaultProps = { isDrawerOpen: false, isReady: false, notifications: {}, expandedGroup: null, hasUnreadMessages: false, clickedLink: _helpers.noop, startNotificationsPolling: _helpers.noop, toggleDrawer: _helpers.noop, expandGroup: _helpers.noop, markAsRead: _helpers.noop, markGroupAsRead: _helpers.noop, clearNotification: _helpers.noop, clearGroup: _helpers.noop, stopNotificationsPolling: _helpers.noop, translations: _patternflyReact.NotificationDrawerPanelWrapper.defaultProps.translations }; var mapStateToProps = function mapStateToProps(state) { var _state$notifications = state.notifications, notifications = _state$notifications.notifications, isDrawerOpen = _state$notifications.isDrawerOpen, expandedGroup = _state$notifications.expandedGroup, hasUnreadMessages = _state$notifications.hasUnreadMessages; return { isDrawerOpen: isDrawerOpen, notifications: (0, _lodash.groupBy)(notifications, function (n) { return n.group; }), expandedGroup: expandedGroup, isReady: !!notifications, hasUnreadMessages: hasUnreadMessages }; }; var _default = (0, _reactRedux.connect)(mapStateToProps, NotificationActions)((0, _reactOnclickoutside["default"])(notificationContainer)); exports["default"] = _default; /***/ }), /* 118 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _redux = __webpack_require__(12); var _reactRedux = __webpack_require__(5); var actions = _interopRequireWildcard(__webpack_require__(190)); var _DiffModalReducer = _interopRequireDefault(__webpack_require__(291)); var _DiffModal = _interopRequireDefault(__webpack_require__(292)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // map state to props var mapStateToProps = function mapStateToProps(_ref) { var diffModal = _ref.diffModal; return { isOpen: diffModal.isOpen, diff: diffModal.diff, title: diffModal.title, diffViewType: diffModal.diffViewType }; }; // map action dispatchers to props var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; // export reducers var reducers = { diffModal: _DiffModalReducer["default"] }; // export connected component exports.reducers = reducers; var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_DiffModal["default"]); exports["default"] = _default; /***/ }), /* 119 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DIFF_MODAL_VIEWTYPE = exports.DIFF_MODAL_TOGGLE = exports.DIFF_MODAL_CREATE = void 0; var DIFF_MODAL_TOGGLE = 'DIFF_MODAL_TOGGLE'; exports.DIFF_MODAL_TOGGLE = DIFF_MODAL_TOGGLE; var DIFF_MODAL_CREATE = 'DIFF_MODAL_CREATE'; exports.DIFF_MODAL_CREATE = DIFF_MODAL_CREATE; var DIFF_MODAL_VIEWTYPE = 'DIFF_MODAL_VIEWTYPE'; exports.DIFF_MODAL_VIEWTYPE = DIFF_MODAL_VIEWTYPE; /***/ }), /* 120 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 121 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _redux = __webpack_require__(12); var _reactRedux = __webpack_require__(5); var actions = _interopRequireWildcard(__webpack_require__(191)); var _EditorReducer = _interopRequireDefault(__webpack_require__(297)); var _Editor = _interopRequireDefault(__webpack_require__(298)); var _EditorSelectors = __webpack_require__(122); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // map state to props var mapStateToProps = function mapStateToProps(state) { return { diffViewType: (0, _EditorSelectors.selectDiffType)(state), editorName: (0, _EditorSelectors.selectEditorName)(state), errorText: (0, _EditorSelectors.selectErrorText)(state), filteredHosts: (0, _EditorSelectors.navFilteredHostsSelector)(state), hosts: (0, _EditorSelectors.navHostsSelector)(state), isFetchingHosts: (0, _EditorSelectors.selectIsFetchingHosts)(state), isLoading: (0, _EditorSelectors.selectIsLoading)(state), isMasked: (0, _EditorSelectors.selectIsMasked)(state), isMaximized: (0, _EditorSelectors.selectIsMaximized)(state), isRendering: (0, _EditorSelectors.selectIsRendering)(state), isSearchingHosts: (0, _EditorSelectors.selectIsSearchingHosts)(state), isSelectOpen: (0, _EditorSelectors.selectIsSelectOpen)(state), keyBinding: (0, _EditorSelectors.selectKeyBind)(state), mode: (0, _EditorSelectors.selectMode)(state), previewResult: (0, _EditorSelectors.selectPreviewResult)(state), renderedEditorValue: (0, _EditorSelectors.selectRenderedEditorValue)(state), readOnly: (0, _EditorSelectors.selectIsReadOnly)(state), searchQuery: (0, _EditorSelectors.selectSearchQuery)(state), selectedHost: (0, _EditorSelectors.selectChosenHost)(state), selectedView: (0, _EditorSelectors.selectChosenView)(state), showError: (0, _EditorSelectors.selectShowError)(state), theme: (0, _EditorSelectors.selectTheme)(state), value: (0, _EditorSelectors.selectValue)(state) }; }; // map action dispatchers to props var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; // export reducers var reducers = { editor: _EditorReducer["default"] }; // export connected component exports.reducers = reducers; var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_Editor["default"]); exports["default"] = _default; /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectValue = exports.selectTheme = exports.selectTemplateClass = exports.selectShowError = exports.selectSearchQuery = exports.selectRenderedEditorValue = exports.selectPreviewResult = exports.selectMode = exports.selectKeyBind = exports.selectIsSelectOpen = exports.selectIsSearchingHosts = exports.selectIsRendering = exports.selectIsReadOnly = exports.selectIsMaximized = exports.selectIsMasked = exports.selectIsLoading = exports.selectIsFetchingHosts = exports.selectHosts = exports.selectFilteredHosts = exports.selectErrorText = exports.selectEditorName = exports.selectEditor = exports.selectDiffType = exports.selectChosenView = exports.selectChosenHost = exports.navHostsSelector = exports.navFilteredHostsSelector = void 0; var _reselect = __webpack_require__(56); var _EditorConstants = __webpack_require__(55); var selectEditor = function selectEditor(state) { return state.editor; }; exports.selectEditor = selectEditor; var selectValue = function selectValue(state) { return selectEditor(state).value; }; exports.selectValue = selectValue; var selectPreviewResult = function selectPreviewResult(state) { return selectEditor(state).previewResult; }; exports.selectPreviewResult = selectPreviewResult; var selectErrorText = function selectErrorText(state) { return selectEditor(state).errorText; }; exports.selectErrorText = selectErrorText; var selectMode = function selectMode(state) { return selectEditor(state).mode; }; exports.selectMode = selectMode; var selectKeyBind = function selectKeyBind(state) { return selectEditor(state).keyBinding; }; exports.selectKeyBind = selectKeyBind; var selectEditorName = function selectEditorName(state) { return selectEditor(state).editorName; }; exports.selectEditorName = selectEditorName; var selectChosenView = function selectChosenView(state) { return selectEditor(state).selectedView; }; exports.selectChosenView = selectChosenView; var selectTheme = function selectTheme(state) { return selectEditor(state).theme; }; exports.selectTheme = selectTheme; var selectDiffType = function selectDiffType(state) { return selectEditor(state).diffViewType; }; exports.selectDiffType = selectDiffType; var selectIsMaximized = function selectIsMaximized(state) { return selectEditor(state).isMaximized; }; exports.selectIsMaximized = selectIsMaximized; var selectIsMasked = function selectIsMasked(state) { return selectEditor(state).isMasked; }; exports.selectIsMasked = selectIsMasked; var selectIsRendering = function selectIsRendering(state) { return selectEditor(state).isRendering; }; exports.selectIsRendering = selectIsRendering; var selectIsLoading = function selectIsLoading(state) { return selectEditor(state).isLoading; }; exports.selectIsLoading = selectIsLoading; var selectIsReadOnly = function selectIsReadOnly(state) { return selectEditor(state).readOnly; }; exports.selectIsReadOnly = selectIsReadOnly; var selectShowError = function selectShowError(state) { return selectEditor(state).showError; }; exports.selectShowError = selectShowError; var selectTemplateClass = function selectTemplateClass(state) { return selectEditor(state).templateClass; }; exports.selectTemplateClass = selectTemplateClass; var selectRenderedEditorValue = function selectRenderedEditorValue(state) { return selectEditor(state).renderedEditorValue; }; // Select exports.selectRenderedEditorValue = selectRenderedEditorValue; var selectHosts = function selectHosts(state) { return selectEditor(state)[_EditorConstants.EDITOR_HOST_ARR]; }; exports.selectHosts = selectHosts; var selectFilteredHosts = function selectFilteredHosts(state) { return selectEditor(state)[_EditorConstants.EDITOR_HOST_FILTERED_ARR]; }; exports.selectFilteredHosts = selectFilteredHosts; var selectIsSearchingHosts = function selectIsSearchingHosts(state) { return selectEditor(state).isSearchingHosts; }; exports.selectIsSearchingHosts = selectIsSearchingHosts; var selectChosenHost = function selectChosenHost(state) { return selectEditor(state).selectedHost; }; exports.selectChosenHost = selectChosenHost; var selectIsSelectOpen = function selectIsSelectOpen(state) { return selectEditor(state).isSelectOpen; }; exports.selectIsSelectOpen = selectIsSelectOpen; var selectSearchQuery = function selectSearchQuery(state) { return selectEditor(state).searchQuery; }; exports.selectSearchQuery = selectSearchQuery; var selectIsFetchingHosts = function selectIsFetchingHosts(state) { return selectEditor(state).isFetchingHosts; }; exports.selectIsFetchingHosts = selectIsFetchingHosts; var navHostsSelector = (0, _reselect.createSelector)(selectHosts, function (hosts) { return navHosts(hosts); }); exports.navHostsSelector = navHostsSelector; var navFilteredHostsSelector = (0, _reselect.createSelector)(selectFilteredHosts, function (hosts) { return navHosts(hosts); }); exports.navFilteredHostsSelector = navFilteredHostsSelector; var navHosts = function navHosts(hosts) { if (hosts) return hosts.map(function (host) { return { id: host.id.toString(), name: host.name }; }); return []; }; /***/ }), /* 123 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactAce = _interopRequireDefault(__webpack_require__(299)); var _classnames = _interopRequireDefault(__webpack_require__(13)); __webpack_require__(300); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var EditorView = function EditorView(_ref) { var _classNames; var className = _ref.className, isMasked = _ref.isMasked, keyBinding = _ref.keyBinding, mode = _ref.mode, name = _ref.name, _onChange = _ref.onChange, readOnly = _ref.readOnly, theme = _ref.theme, value = _ref.value, isSelected = _ref.isSelected; return /*#__PURE__*/_react["default"].createElement(_reactAce["default"], { value: value, mode: mode.toLowerCase(), theme: theme.toLowerCase(), keyboardHandler: keyBinding === 'Default' ? null : keyBinding.toLowerCase(), onChange: function onChange(editorValue, event) { return _onChange(editorValue); }, name: name, className: (0, _classnames["default"])((_classNames = {}, _defineProperty(_classNames, className, isSelected), _defineProperty(_classNames, 'mask-editor', isMasked), _defineProperty(_classNames, "hidden", !isSelected), _classNames)), readOnly: readOnly, editorProps: { $blockScrolling: Infinity }, showPrintMargin: false, debounceChangePeriod: 250 }); }; EditorView.propTypes = { mode: _propTypes["default"].string.isRequired, theme: _propTypes["default"].string.isRequired, keyBinding: _propTypes["default"].string.isRequired, onChange: _propTypes["default"].func, readOnly: _propTypes["default"].bool.isRequired, name: _propTypes["default"].string.isRequired, value: _propTypes["default"].string, className: _propTypes["default"].string, isMasked: _propTypes["default"].bool.isRequired, isSelected: _propTypes["default"].bool }; EditorView.defaultProps = { className: '', onChange: _helpers.noop, value: '', isSelected: true }; var _default = EditorView; exports["default"] = _default; /***/ }), /* 124 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TEMPLATE_GENERATE_SUCCESS = exports.TEMPLATE_GENERATE_REQUEST = exports.TEMPLATE_GENERATE_POLLING = exports.TEMPLATE_GENERATE_FAILURE = void 0; var TEMPLATE_GENERATE_REQUEST = 'TEMPLATE_GENERATE_REQUEST'; exports.TEMPLATE_GENERATE_REQUEST = TEMPLATE_GENERATE_REQUEST; var TEMPLATE_GENERATE_POLLING = 'TEMPLATE_GENERATE_POLLING'; exports.TEMPLATE_GENERATE_POLLING = TEMPLATE_GENERATE_POLLING; var TEMPLATE_GENERATE_SUCCESS = 'TEMPLATE_GENERATE_SUCCESS'; exports.TEMPLATE_GENERATE_SUCCESS = TEMPLATE_GENERATE_SUCCESS; var TEMPLATE_GENERATE_FAILURE = 'TEMPLATE_GENERATE_FAILURE'; exports.TEMPLATE_GENERATE_FAILURE = TEMPLATE_GENERATE_FAILURE; /***/ }), /* 125 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.openModal = exports["default"] = exports.closeModal = void 0; var _toolkit = __webpack_require__(73); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = { modalToDisplay: {} }; var factChartSlice = (0, _toolkit.createSlice)({ name: 'factChart', initialState: initialState, reducers: { openModal: function openModal(state, _ref) { var payload = _ref.payload; state.title = payload.title; state.modalToDisplay = _defineProperty({}, payload.id, true); }, closeModal: function closeModal(state) { state.modalToDisplay = {}; } } }); var _factChartSlice$actio = factChartSlice.actions, openModal = _factChartSlice$actio.openModal, closeModal = _factChartSlice$actio.closeModal; exports.closeModal = closeModal; exports.openModal = openModal; var _default = factChartSlice.reducer; exports["default"] = _default; /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.unregisterFillComponent = exports.registerFillComponent = void 0; var _FillConstants = __webpack_require__(127); var _SlotsRegistry = _interopRequireDefault(__webpack_require__(128)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var registerFillComponent = function registerFillComponent(slotId, overrideProps, fillId, component, weight, metadata) { return function (dispatch) { _SlotsRegistry["default"].add(slotId, fillId, component, weight, overrideProps); dispatch({ type: _FillConstants.REGISTER_FILL, payload: { slotId: slotId, fillId: fillId, weight: weight, metadata: metadata } }); }; }; exports.registerFillComponent = registerFillComponent; var unregisterFillComponent = function unregisterFillComponent(slotId, fillId) { return function (dispatch) { _SlotsRegistry["default"].remove(slotId, fillId); dispatch({ type: _FillConstants.REMOVE_FILLED_COMPONENT, payload: { slotId: slotId, fillId: fillId } }); }; }; exports.unregisterFillComponent = unregisterFillComponent; /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.REMOVE_FILLED_COMPONENT = exports.REGISTER_FILL = void 0; var REGISTER_FILL = 'SLOT_AND_FILL_REGISTER_FILL'; exports.REGISTER_FILL = REGISTER_FILL; var REMOVE_FILLED_COMPONENT = 'SLOT_AND_FILL_REMOVE_FILLED_COMPONENT'; exports.REMOVE_FILLED_COMPONENT = REMOVE_FILLED_COMPONENT; /***/ }), /* 128 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _forceSingleton = _interopRequireDefault(__webpack_require__(31)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var SlotsRegistry = /*#__PURE__*/_createClass(function SlotsRegistry() { _classCallCheck(this, SlotsRegistry); }); _defineProperty(SlotsRegistry, "registry", (0, _forceSingleton["default"])('slots_registry', function () { return {}; })); _defineProperty(SlotsRegistry, "add", function (SlotId, fillId, component, weight, overrideProps) { if (SlotsRegistry.registry[SlotId] === undefined) { SlotsRegistry.registry[SlotId] = {}; } component = component || overrideProps; SlotsRegistry.registry[SlotId][fillId] = { component: component, weight: weight, id: fillId }; }); _defineProperty(SlotsRegistry, "remove", function (SlotId, fillId) { var slotItems = SlotsRegistry.registry[SlotId]; delete slotItems[fillId]; }); _defineProperty(SlotsRegistry, "getSlotComponents", function (id) { return SlotsRegistry.registry[id] ? Object.values(SlotsRegistry.registry[id]) : []; }); _defineProperty(SlotsRegistry, "getFillsFromSlot", function (slotId) { return SlotsRegistry.registry[slotId]; }); var _default = SlotsRegistry; exports["default"] = _default; /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _TypeAheadSelectActions = __webpack_require__(192); var _TypeAheadSelectSelectors = __webpack_require__(131); var _TypeAheadSelectReducer = _interopRequireDefault(__webpack_require__(321)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var ConnectedTypeAheadSelect = function ConnectedTypeAheadSelect(_ref) { var id = _ref.id, options = _ref.options, selected = _ref.selected, allowNew = _ref.allowNew, multiple = _ref.multiple, placeholder = _ref.placeholder, defaultInputValue = _ref.defaultInputValue, clearButton = _ref.clearButton, inputProps = _ref.inputProps; var dispatch = (0, _reactRedux.useDispatch)(); var exists = (0, _reactRedux.useSelector)(function (state) { return (0, _TypeAheadSelectSelectors.selectTypeAheadSelectExists)(state, id); }); (0, _react.useEffect)(function () { if (!exists) { dispatch((0, _TypeAheadSelectActions.initialUpdate)(options, selected, id)); } }, [dispatch, exists, options, selected, id]); var _selected = (0, _reactRedux.useSelector)(function (state) { return (0, _TypeAheadSelectSelectors.selectSelected)(state, id); }); var _options = (0, _reactRedux.useSelector)(function (state) { return (0, _TypeAheadSelectSelectors.selectOptions)(state, id); }); var onChange = function onChange(items) { return dispatch((0, _TypeAheadSelectActions.updateSelected)(items, id)); }; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.TypeAheadSelect, { id: id, options: _options, selected: _selected, allowNew: allowNew, multiple: multiple, placeholder: placeholder, defaultInputValue: defaultInputValue, clearButton: clearButton, inputProps: inputProps, onChange: onChange }); }; ConnectedTypeAheadSelect.propTypes = { id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired, options: _propTypes["default"].array, selected: _propTypes["default"].array, allowNew: _propTypes["default"].bool, multiple: _propTypes["default"].bool, placeholder: _propTypes["default"].string, defaultInputValue: _propTypes["default"].string, clearButton: _propTypes["default"].bool, inputProps: _propTypes["default"].object }; ConnectedTypeAheadSelect.defaultProps = { options: [], selected: [], allowNew: false, multiple: false, placeholder: '', defaultInputValue: '', clearButton: false, inputProps: {} }; var _default = ConnectedTypeAheadSelect; exports["default"] = _default; var reducers = { typeAheadSelect: _TypeAheadSelectReducer["default"] }; exports.reducers = reducers; /***/ }), /* 130 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UPDATE_SELECTED = exports.UPDATE_OPTIONS = exports.INIT = void 0; var INIT = 'TYPEAHEAD_INIT'; exports.INIT = INIT; var UPDATE_OPTIONS = 'TYPEAHEAD_UPDATE_OPTIONS'; exports.UPDATE_OPTIONS = UPDATE_OPTIONS; var UPDATE_SELECTED = 'TYPEAHEAD_UPDATE_SELECTED'; exports.UPDATE_SELECTED = UPDATE_SELECTED; /***/ }), /* 131 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectTypeAheadSelectExists = exports.selectSelected = exports.selectOptions = exports.mapSelected = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var mapSelected = function mapSelected(selected) { return selected.map(function (item) { return item.label || item; }); }; exports.mapSelected = mapSelected; var selectTypeAheadSelect = function selectTypeAheadSelect(_ref, id) { var typeAheadSelect = _ref.typeAheadSelect; return typeAheadSelect[id] || {}; }; var selectTypeAheadSelectExists = function selectTypeAheadSelectExists(_ref2, id) { var typeAheadSelect = _ref2.typeAheadSelect; return !!typeAheadSelect[id]; }; exports.selectTypeAheadSelectExists = selectTypeAheadSelectExists; var selectOptions = function selectOptions(state, id) { var typeAhead = selectTypeAheadSelect(state, id); var options = typeAhead.options || []; return _seamlessImmutable["default"].isImmutable(options) ? options.asMutable() : options; }; exports.selectOptions = selectOptions; var selectSelected = function selectSelected(state, id) { return selectTypeAheadSelect(state, id).selected; }; exports.selectSelected = selectSelected; /***/ }), /* 132 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _reactRedux = __webpack_require__(5); var _redux = __webpack_require__(12); var actions = _interopRequireWildcard(__webpack_require__(322)); var _AuditsPage = _interopRequireDefault(__webpack_require__(323)); var _AuditsPageSelectors = __webpack_require__(133); var _HOC = __webpack_require__(60); var _withQueryReducer = _interopRequireDefault(__webpack_require__(371)); var _withDataReducer = _interopRequireDefault(__webpack_require__(372)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var mapStateToProps = function mapStateToProps(state) { return { audits: (0, _AuditsPageSelectors.selectAudits)(state), isLoading: (0, _AuditsPageSelectors.selectAuditsIsLoadingPage)(state), itemCount: (0, _AuditsPageSelectors.selectAuditsCount)(state), message: (0, _AuditsPageSelectors.selectAuditsMessage)(state), page: (0, _AuditsPageSelectors.selectAuditsSelectedPage)(state), perPage: (0, _AuditsPageSelectors.selectAuditsPerPage)(state), searchQuery: (0, _AuditsPageSelectors.selectAuditsSearch)(state), hasError: (0, _AuditsPageSelectors.selectAuditsHasError)(state), hasData: (0, _AuditsPageSelectors.selectAuditsHasData)(state) }; }; var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; var reducers = { auditsPage: (0, _redux.combineReducers)({ data: (0, _withDataReducer["default"])('AUDITS_PAGE'), query: (0, _withQueryReducer["default"])('AUDITS_PAGE') }) }; exports.reducers = reducers; var _default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _HOC.callOnMount)(function (_ref) { var initializeAudits = _ref.initializeAudits; return initializeAudits(); }), (0, _HOC.callOnPopState)(function (_ref2) { var initializeAudits = _ref2.initializeAudits; return initializeAudits(); }))(_AuditsPage["default"]); exports["default"] = _default; /***/ }), /* 133 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectAuditsSelectedPage = exports.selectAuditsSearch = exports.selectAuditsPerPage = exports.selectAuditsPageQuery = exports.selectAuditsPageData = exports.selectAuditsMessage = exports.selectAuditsIsLoadingPage = exports.selectAuditsHasError = exports.selectAuditsHasData = exports.selectAuditsCount = exports.selectAudits = void 0; var selectAuditsPageData = function selectAuditsPageData(state) { return state.auditsPage.data; }; exports.selectAuditsPageData = selectAuditsPageData; var selectAuditsPageQuery = function selectAuditsPageQuery(state) { return state.auditsPage.query; }; exports.selectAuditsPageQuery = selectAuditsPageQuery; var selectAudits = function selectAudits(state) { return selectAuditsPageData(state).audits; }; exports.selectAudits = selectAudits; var selectAuditsMessage = function selectAuditsMessage(state) { return selectAuditsPageData(state).message; }; exports.selectAuditsMessage = selectAuditsMessage; var selectAuditsIsLoadingPage = function selectAuditsIsLoadingPage(state) { return selectAuditsPageData(state).isLoading; }; exports.selectAuditsIsLoadingPage = selectAuditsIsLoadingPage; var selectAuditsHasError = function selectAuditsHasError(state) { return selectAuditsPageData(state).hasError; }; exports.selectAuditsHasError = selectAuditsHasError; var selectAuditsHasData = function selectAuditsHasData(state) { return selectAuditsPageData(state).hasData; }; exports.selectAuditsHasData = selectAuditsHasData; var selectAuditsSelectedPage = function selectAuditsSelectedPage(state) { return selectAuditsPageQuery(state).page; }; exports.selectAuditsSelectedPage = selectAuditsSelectedPage; var selectAuditsPerPage = function selectAuditsPerPage(state) { return selectAuditsPageQuery(state).perPage; }; exports.selectAuditsPerPage = selectAuditsPerPage; var selectAuditsCount = function selectAuditsCount(state) { return selectAuditsPageQuery(state).itemCount; }; exports.selectAuditsCount = selectAuditsCount; var selectAuditsSearch = function selectAuditsSearch(state) { return selectAuditsPageQuery(state).searchQuery; }; exports.selectAuditsSearch = selectAuditsSearch; /***/ }), /* 134 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _urlHelpers = __webpack_require__(21); var _BreadcrumbBar = _interopRequireDefault(__webpack_require__(74)); var _SearchBar = _interopRequireDefault(__webpack_require__(101)); var _Head = _interopRequireDefault(__webpack_require__(142)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var PageLayout = function PageLayout(_ref) { var searchable = _ref.searchable, searchProps = _ref.searchProps, searchQuery = _ref.searchQuery, onSearch = _ref.onSearch, onBookmarkClick = _ref.onBookmarkClick, customBreadcrumbs = _ref.customBreadcrumbs, breadcrumbOptions = _ref.breadcrumbOptions, toolbarButtons = _ref.toolbarButtons, header = _ref.header, beforeToolbarComponent = _ref.beforeToolbarComponent, isLoading = _ref.isLoading, children = _ref.children; return /*#__PURE__*/_react["default"].createElement("div", { id: "main" }, /*#__PURE__*/_react["default"].createElement("div", { id: "react-content" }, /*#__PURE__*/_react["default"].createElement(_Head["default"], null, /*#__PURE__*/_react["default"].createElement("title", null, header)), /*#__PURE__*/_react["default"].createElement("div", { id: "breadcrumb" }, !breadcrumbOptions && /*#__PURE__*/_react["default"].createElement("div", { className: "row form-group" }, /*#__PURE__*/_react["default"].createElement("h1", { className: "col-md-8" }, header)), customBreadcrumbs || breadcrumbOptions && /*#__PURE__*/_react["default"].createElement(_BreadcrumbBar["default"], breadcrumbOptions)), beforeToolbarComponent, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Row, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { className: "title_filter", md: searchable ? 6 : 4 }, searchable && /*#__PURE__*/_react["default"].createElement(_SearchBar["default"], { data: searchProps, initialQuery: searchQuery, onSearch: onSearch, onBookmarkClick: onBookmarkClick }), "\xA0"), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { id: "title_action", md: searchable ? 6 : 8 }, /*#__PURE__*/_react["default"].createElement("div", { className: "btn-toolbar pull-right" }, isLoading && /*#__PURE__*/_react["default"].createElement("div", { id: "toolbar-spinner" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Spinner, { loading: true, size: "sm" })), toolbarButtons))), children)); }; PageLayout.propTypes = { children: _propTypes["default"].node.isRequired, searchable: _propTypes["default"].bool.isRequired, header: _propTypes["default"].string, searchProps: _propTypes["default"].shape({ autocomplete: _propTypes["default"].shape({ results: _propTypes["default"].array, searchQuery: _propTypes["default"].string, url: _propTypes["default"].string, useKeyShortcuts: _propTypes["default"].bool }), controller: _propTypes["default"].string, bookmarks: _propTypes["default"].shape({ text: _propTypes["default"].string, query: _propTypes["default"].string }) }), customBreadcrumbs: _propTypes["default"].node, breadcrumbOptions: _propTypes["default"].shape({ isSwitchable: _propTypes["default"].bool, resource: _propTypes["default"].shape({ nameField: _propTypes["default"].string, resourceUrl: _propTypes["default"].string, switcherItemUrl: _propTypes["default"].string, resourceFilter: _propTypes["default"].string }), breadcrumbItems: _propTypes["default"].arrayOf(_propTypes["default"].shape({ caption: _propTypes["default"].oneOfType([_propTypes["default"].string.isRequired, _propTypes["default"].shape({ icon: _propTypes["default"].shape({ url: _propTypes["default"].string, alt: _propTypes["default"].string }), text: _propTypes["default"].string })]), url: _propTypes["default"].string })) }), toolbarButtons: _propTypes["default"].node, onSearch: _propTypes["default"].func, onBookmarkClick: _propTypes["default"].func, searchQuery: _propTypes["default"].string, beforeToolbarComponent: _propTypes["default"].node, isLoading: _propTypes["default"].bool }; PageLayout.defaultProps = { searchProps: {}, header: '', searchQuery: '', customBreadcrumbs: null, toolbarButtons: null, breadcrumbOptions: null, isLoading: false, onSearch: function onSearch(searchQuery) { return (0, _urlHelpers.changeQuery)({ search: searchQuery.trim(), page: 1 }); }, onBookmarkClick: function onBookmarkClick(searchQuery) { return (0, _urlHelpers.changeQuery)({ search: searchQuery.trim(), page: 1 }); }, beforeToolbarComponent: null }; var _default = PageLayout; exports["default"] = _default; /***/ }), /* 135 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _BookmarksActions = __webpack_require__(326); var _BookmarksConstants = __webpack_require__(80); var _ForemanModalHooks = __webpack_require__(35); var _ForemanModalSelectors = __webpack_require__(42); var _Bookmarks = _interopRequireDefault(__webpack_require__(327)); var _BookmarksReducer = _interopRequireDefault(__webpack_require__(347)); var _APISelectors = __webpack_require__(14); var _BookmarksSelectors = __webpack_require__(348); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ConnectedBookmarks = function ConnectedBookmarks(_ref) { var controller = _ref.controller, onBookmarkClick = _ref.onBookmarkClick, url = _ref.url, canCreate = _ref.canCreate, documentationUrl = _ref.documentationUrl; var key = "".concat(_BookmarksConstants.BOOKMARKS, "_").concat(controller.toUpperCase()); var status = (0, _reactRedux.useSelector)(function (store) { return (0, _APISelectors.selectAPIStatus)(store, key); }); var errors = (0, _reactRedux.useSelector)(function (store) { return (0, _APISelectors.selectAPIError)(store, key); }); var bookmarks = (0, _reactRedux.useSelector)(function (store) { return (0, _BookmarksSelectors.selectBookmarksResults)(store, key, controller); }); var isModalOpen = (0, _reactRedux.useSelector)(function (store) { return (0, _ForemanModalSelectors.selectIsModalOpen)(store, _BookmarksConstants.BOOKMARKS_MODAL); }); var dispatch = (0, _reactRedux.useDispatch)(); var _useForemanModal = (0, _ForemanModalHooks.useForemanModal)({ id: _BookmarksConstants.BOOKMARKS_MODAL }), setModalOpen = _useForemanModal.setModalOpen, setModalClosed = _useForemanModal.setModalClosed; return /*#__PURE__*/_react["default"].createElement(_Bookmarks["default"], { bookmarks: bookmarks, status: status, url: url, controller: controller, getBookmarks: function getBookmarks() { return dispatch((0, _BookmarksActions.getBookmarks)(url, controller)); }, canCreate: canCreate, errors: errors, documentationUrl: documentationUrl, onBookmarkClick: onBookmarkClick, setModalOpen: setModalOpen, setModalClosed: setModalClosed, isModalOpen: isModalOpen }); }; ConnectedBookmarks.propTypes = { controller: _propTypes["default"].string.isRequired, onBookmarkClick: _propTypes["default"].func.isRequired, url: _propTypes["default"].string.isRequired, canCreate: _propTypes["default"].bool, documentationUrl: _propTypes["default"].string }; ConnectedBookmarks.defaultProps = { canCreate: false, documentationUrl: '' }; var reducers = { bookmarksPF4: _BookmarksReducer["default"] }; exports.reducers = reducers; var _default = ConnectedBookmarks; exports["default"] = _default; /***/ }), /* 136 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SET_MODAL_STOP_SUBMITTING = exports.SET_MODAL_START_SUBMITTING = exports.SET_MODAL_OPEN = exports.SET_MODAL_CLOSED = exports.ADD_MODAL = void 0; var SET_MODAL_OPEN = 'SET_MODAL_OPEN'; exports.SET_MODAL_OPEN = SET_MODAL_OPEN; var SET_MODAL_CLOSED = 'SET_MODAL_CLOSED'; exports.SET_MODAL_CLOSED = SET_MODAL_CLOSED; var ADD_MODAL = 'ADD_MODAL'; exports.ADD_MODAL = ADD_MODAL; var SET_MODAL_START_SUBMITTING = 'SET_MODAL_START_SUBMITTING'; exports.SET_MODAL_START_SUBMITTING = SET_MODAL_START_SUBMITTING; var SET_MODAL_STOP_SUBMITTING = 'SET_MODAL_STOP_SUBMITTING'; exports.SET_MODAL_STOP_SUBMITTING = SET_MODAL_STOP_SUBMITTING; /***/ }), /* 137 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = __webpack_require__(0); // creating context in a separate file to avoid circular imports var _default = /*#__PURE__*/(0, _react.createContext)(null); exports["default"] = _default; /***/ }), /* 138 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _ForemanModal = _interopRequireDefault(__webpack_require__(43)); var _BookmarksConstants = __webpack_require__(58); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); var _BookmarkForm = _interopRequireDefault(__webpack_require__(338)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SearchModal = function SearchModal(_ref) { var setModalClosed = _ref.setModalClosed, onEnter = _ref.onEnter, title = _ref.title, controller = _ref.controller, url = _ref.url, bookmarks = _ref.bookmarks; return /*#__PURE__*/_react["default"].createElement(_ForemanModal["default"], { id: _BookmarksConstants.BOOKMARKS_MODAL, title: title, enforceFocus: true, onEnter: onEnter }, /*#__PURE__*/_react["default"].createElement(_BookmarkForm["default"], { controller: controller, url: url, setModalClosed: setModalClosed, onCancel: setModalClosed, bookmarks: bookmarks })); }; SearchModal.propTypes = { controller: _propTypes["default"].string.isRequired, url: _propTypes["default"].string.isRequired, title: _propTypes["default"].string, onEnter: _propTypes["default"].func, setModalClosed: _propTypes["default"].func.isRequired, bookmarks: _propTypes["default"].array }; SearchModal.defaultProps = { title: (0, _I18n.translate)('Create Bookmark'), onEnter: _helpers.noop, bookmarks: [] }; var _default = SearchModal; exports["default"] = _default; /***/ }), /* 139 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__YUP__; /***/ }), /* 140 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _TextField = _interopRequireDefault(__webpack_require__(343)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = _TextField["default"]; exports["default"] = _default; /***/ }), /* 141 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.requiredMsg = exports.maxLengthMsg = void 0; var _I18n = __webpack_require__(2); var maxLengthMsg = function maxLengthMsg(number) { return [number, (0, _I18n.sprintf)((0, _I18n.translate)('is too long (maximum is %s characters)'), number)]; }; exports.maxLengthMsg = maxLengthMsg; var requiredMsg = function requiredMsg() { return (0, _I18n.translate)("can't be blank"); }; exports.requiredMsg = requiredMsg; /***/ }), /* 142 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactHelmet = __webpack_require__(350); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Head = function Head(_ref) { var children = _ref.children; return /*#__PURE__*/_react["default"].createElement(_reactHelmet.Helmet, null, children); }; Head.propTypes = { children: _propTypes["default"].node.isRequired }; var _default = Head; exports["default"] = _default; /***/ }), /* 143 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _reactCore = __webpack_require__(6); var _EmptyStatePropTypes = __webpack_require__(144); var _I18n = __webpack_require__(2); __webpack_require__(353); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var EmptyStatePattern = function EmptyStatePattern(props) { var documentation = props.documentation, action = props.action, secondaryActions = props.secondaryActions, iconType = props.iconType, icon = props.icon, header = props.header, description = props.description; var DocumentationBlock = function DocumentationBlock() { if (!documentation) { return null; } // The documentation prop can also be a customized node if ( /*#__PURE__*/_react["default"].isValidElement(documentation)) { return documentation; } var _documentation$label = documentation.label, label = _documentation$label === void 0 ? (0, _I18n.translate)('For more information please see ') : _documentation$label, _documentation$button = documentation.buttonLabel, buttonLabel = _documentation$button === void 0 ? (0, _I18n.translate)('documentation') : _documentation$button, _documentation$url = documentation.url, url = _documentation$url === void 0 ? '#' : _documentation$url; return /*#__PURE__*/_react["default"].createElement("span", null, label, /*#__PURE__*/_react["default"].createElement("a", { href: url, target: "_blank", rel: "external noreferrer noopener" }, buttonLabel)); }; var EmptyStateIcon = function EmptyStateIcon() { return /*#__PURE__*/_react["default"].isValidElement(icon) ? icon : /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { name: icon, type: iconType, size: "2x" }); }; return /*#__PURE__*/_react["default"].createElement(_reactCore.EmptyState, { variant: _reactCore.EmptyStateVariant.xl }, /*#__PURE__*/_react["default"].createElement("span", { className: "empty-state-icon" }, /*#__PURE__*/_react["default"].createElement(EmptyStateIcon, null)), /*#__PURE__*/_react["default"].createElement(_reactCore.Title, { headingLevel: "h5", size: "4xl" }, header), /*#__PURE__*/_react["default"].createElement(_reactCore.EmptyStateBody, null, /*#__PURE__*/_react["default"].createElement("div", { className: "empty-state-description" }, description), /*#__PURE__*/_react["default"].createElement(DocumentationBlock, null)), action, /*#__PURE__*/_react["default"].createElement(_reactCore.EmptyStateSecondaryActions, null, secondaryActions)); }; EmptyStatePattern.propTypes = _EmptyStatePropTypes.emptyStatePatternPropTypes; EmptyStatePattern.defaultProps = { icon: 'add-circle-o', secondaryActions: [], documentation: null, action: null, iconType: 'pf' }; var _default = EmptyStatePattern; exports["default"] = _default; /***/ }), /* 144 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.emptyStatePatternPropTypes = exports.defaultEmptyStatePropTypes = exports.actionButtonPropTypes = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var actionButtonPropTypes = { title: _propTypes["default"].node.isRequired, url: _propTypes["default"].string, onChange: _propTypes["default"].func }; exports.actionButtonPropTypes = actionButtonPropTypes; var emptyStatePatternPropTypes = { icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]), iconType: _propTypes["default"].string, header: _propTypes["default"].string.isRequired, documentation: _propTypes["default"].oneOfType([_propTypes["default"].shape({ label: _propTypes["default"].string, buttonLabel: _propTypes["default"].string, url: _propTypes["default"].string.isRequired }), _propTypes["default"].node]), description: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]).isRequired, action: _propTypes["default"].node, secondaryActions: _propTypes["default"].node }; exports.emptyStatePatternPropTypes = emptyStatePatternPropTypes; var defaultEmptyStatePropTypes = _objectSpread(_objectSpread({}, emptyStatePatternPropTypes), {}, { action: _propTypes["default"].shape(actionButtonPropTypes), secondaryActions: _propTypes["default"].arrayOf(_propTypes["default"].shape(actionButtonPropTypes)) }); exports.defaultEmptyStatePropTypes = defaultEmptyStatePropTypes; /***/ }), /* 145 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); __webpack_require__(356); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var LoadingPage = function LoadingPage() { return /*#__PURE__*/_react["default"].createElement("div", { id: "loading-page" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Spinner, { loading: true, size: "lg" })); }; var _default = LoadingPage; exports["default"] = _default; /***/ }), /* 146 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactIntl = __webpack_require__(25); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ShortDateTime = function ShortDateTime(props, context) { var date = props.date, defaultValue = props.defaultValue, seconds = props.seconds; if (date) { var isoDate = (0, _helpers.isoCompatibleDate)(date); var title = props.showRelativeTimeTooltip ? context.intl.formatRelative(isoDate) : undefined; var secondsFormat = seconds ? '2-digit' : undefined; return /*#__PURE__*/_react["default"].createElement("span", { title: title }, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedDate, { value: isoDate, day: "2-digit", month: "short", hour: "2-digit", second: secondsFormat, minute: "2-digit" })); } return /*#__PURE__*/_react["default"].createElement("span", null, defaultValue); }; ShortDateTime.contextTypes = { intl: _reactIntl.intlShape }; ShortDateTime.propTypes = { date: _propTypes["default"].any, defaultValue: _propTypes["default"].string, seconds: _propTypes["default"].bool, showRelativeTimeTooltip: _propTypes["default"].bool }; ShortDateTime.defaultProps = { date: null, defaultValue: '', seconds: false, showRelativeTimeTooltip: false }; var _default = ShortDateTime; exports["default"] = _default; /***/ }), /* 147 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _reactRedux = __webpack_require__(5); var _redux = __webpack_require__(12); var _ModelsPage = _interopRequireDefault(__webpack_require__(380)); var actions = _interopRequireWildcard(__webpack_require__(411)); var _HOC = __webpack_require__(60); var _ModelsPageSelectors = __webpack_require__(156); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var mapStateToProps = function mapStateToProps(state) { return { models: (0, _ModelsPageSelectors.selectModels)(state), page: (0, _ModelsPageSelectors.selectPage)(state), perPage: (0, _ModelsPageSelectors.selectPerPage)(state), search: (0, _ModelsPageSelectors.selectSearch)(state), sort: (0, _ModelsPageSelectors.selectSort)(state), isLoading: (0, _ModelsPageSelectors.selectIsLoading)(state), hasData: (0, _ModelsPageSelectors.selectHasData)(state), hasError: (0, _ModelsPageSelectors.selectHasError)(state), itemCount: (0, _ModelsPageSelectors.selectSubtotal)(state), message: (0, _ModelsPageSelectors.selectMessage)(state), canCreate: (0, _ModelsPageSelectors.selectCanCreate)(state) }; }; var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; var _default = (0, _redux.compose)((0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps), (0, _HOC.callOnMount)(function (_ref) { var initializeModels = _ref.initializeModels; return initializeModels(); }), (0, _HOC.callOnPopState)(function (_ref2) { var initializeModels = _ref2.initializeModels; return initializeModels(); }))(_ModelsPage["default"]); exports["default"] = _default; /***/ }), /* 148 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _ModelsTable = _interopRequireDefault(__webpack_require__(382)); var _constants = __webpack_require__(37); var _ForemanModalHooks = __webpack_require__(35); var _excluded = ["setToDelete"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var WrappedModelsTable = function WrappedModelsTable(props) { var _useForemanModal = (0, _ForemanModalHooks.useForemanModal)({ id: _constants.MODEL_DELETE_MODAL_ID }), setModalOpen = _useForemanModal.setModalOpen; var setToDelete = props.setToDelete, rest = _objectWithoutProperties(props, _excluded); var onDeleteClick = function onDeleteClick(rowData) { setToDelete(rowData); setModalOpen(); }; return /*#__PURE__*/_react["default"].createElement(_ModelsTable["default"], _extends({}, rest, { onDeleteClick: onDeleteClick })); }; WrappedModelsTable.propTypes = { setToDelete: _propTypes["default"].func.isRequired }; var _default = WrappedModelsTable; exports["default"] = _default; /***/ }), /* 149 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "cellFormatter", { enumerable: true, get: function get() { return _cellFormatter["default"]; } }); Object.defineProperty(exports, "cellFormatterWithProps", { enumerable: true, get: function get() { return _formatterWithProps.cellFormatterWithProps; } }); Object.defineProperty(exports, "deleteActionCellFormatter", { enumerable: true, get: function get() { return _deleteActionCellFormatter.deleteActionCellFormatter; } }); Object.defineProperty(exports, "ellipsisCellFormatter", { enumerable: true, get: function get() { return _ellipsisCellFormatter["default"]; } }); Object.defineProperty(exports, "headerFormatterWithProps", { enumerable: true, get: function get() { return _formatterWithProps.headerFormatterWithProps; } }); Object.defineProperty(exports, "hostsCountCellFormatter", { enumerable: true, get: function get() { return _hostsCountCellFormatter["default"]; } }); Object.defineProperty(exports, "nameCellFormatter", { enumerable: true, get: function get() { return _nameCellFormatter["default"]; } }); Object.defineProperty(exports, "selectionCellFormatter", { enumerable: true, get: function get() { return _selectionCellFormatter["default"]; } }); Object.defineProperty(exports, "selectionHeaderCellFormatter", { enumerable: true, get: function get() { return _selectionHeaderCellFormatter["default"]; } }); Object.defineProperty(exports, "sortableHeaderFormatter", { enumerable: true, get: function get() { return _sortableHeaderFormatter["default"]; } }); var _formatterWithProps = __webpack_require__(383); var _cellFormatter = _interopRequireDefault(__webpack_require__(150)); var _ellipsisCellFormatter = _interopRequireDefault(__webpack_require__(384)); var _nameCellFormatter = _interopRequireDefault(__webpack_require__(385)); var _hostsCountCellFormatter = _interopRequireDefault(__webpack_require__(387)); var _sortableHeaderFormatter = _interopRequireDefault(__webpack_require__(389)); var _deleteActionCellFormatter = __webpack_require__(391); var _selectionCellFormatter = _interopRequireDefault(__webpack_require__(393)); var _selectionHeaderCellFormatter = _interopRequireDefault(__webpack_require__(395)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /***/ }), /* 150 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = function _default(value) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Table.Cell, null, value); }; exports["default"] = _default; /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _TableBodyMessage = _interopRequireDefault(__webpack_require__(152)); var _excluded = ["columns", "rows", "message"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var TableBody = function TableBody(_ref) { var columns = _ref.columns, rows = _ref.rows, message = _ref.message, props = _objectWithoutProperties(_ref, _excluded); if (message) { return /*#__PURE__*/_react["default"].createElement(_TableBodyMessage["default"], { colSpan: columns.length }, message); } return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Table.Body, _extends({ rows: rows, rowKey: function rowKey(_ref2) { var rowIndex = _ref2.rowIndex; return rowIndex; } }, props)); }; TableBody.propTypes = { columns: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired, rows: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired, message: _propTypes["default"].node }; TableBody.defaultProps = { message: undefined }; var _default = TableBody; exports["default"] = _default; /***/ }), /* 152 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var TableBodyMessage = function TableBodyMessage(_ref) { var colSpan = _ref.colSpan, children = _ref.children; return /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", { colSpan: colSpan }, children))); }; TableBodyMessage.propTypes = { colSpan: _propTypes["default"].number.isRequired, children: _propTypes["default"].node.isRequired }; var _default = TableBodyMessage; exports["default"] = _default; /***/ }), /* 153 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.column = void 0; /** * Generate a column for a patternfly-3 table. * See more in http://patternfly-react.surge.sh/patternfly-3/ * See an example: components ModelsTableSchema * @param {String} property the property name of the table. * @param {String} label the column label. * @param {Array} headFormat array of functions that format the header. Read more about format * functions here: * https://reactabular.js.org/#/column-definition/formatters * @param {Array} cellFormat array of functions that format column cells. Read more about format * functions here: * https://reactabular.js.org/#/column-definition/formatters * @param {Object} headProps React props that can be passed to the header. * @param {Object} cellProps React props that can be passed to cells. * @return {Object} the table column. */ var column = function column(property, label, headFormat, cellFormat) { var headProps = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; var cellProps = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {}; return { property: property, header: { label: label, props: headProps, formatters: headFormat }, cell: { props: cellProps, formatters: cellFormat } }; }; exports.column = column; /***/ }), /* 154 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.unselectRow = exports.unselectAllRows = exports.selectRow = exports.selectPage = exports.selectAllRows = void 0; var _SelectionConstants = __webpack_require__(155); var selectPage = function selectPage(tableID, results) { return function (dispatch) { dispatch({ type: _SelectionConstants.SELECT_ROWS, payload: results.map(function (row) { return row.id; }), tableID: tableID }); dispatch({ type: _SelectionConstants.OPEN_SELECT_ALL, tableID: tableID }); }; }; exports.selectPage = selectPage; var selectAllRows = function selectAllRows(tableID) { return { type: _SelectionConstants.SELECT_ALL_ROWS, tableID: tableID }; }; exports.selectAllRows = selectAllRows; var unselectAllRows = function unselectAllRows(tableID) { return { type: _SelectionConstants.UNSELECT_ALL_ROWS, tableID: tableID }; }; exports.unselectAllRows = unselectAllRows; var selectRow = function selectRow(tableID, id) { return { type: _SelectionConstants.SELECT_ROWS, payload: [id], tableID: tableID }; }; exports.selectRow = selectRow; var unselectRow = function unselectRow(tableID, id, results) { return { type: _SelectionConstants.UNSELECT_ROWS, payload: { id: id, results: results }, tableID: tableID }; }; exports.unselectRow = unselectRow; /***/ }), /* 155 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UNSELECT_ROWS = exports.UNSELECT_ALL_ROWS = exports.SELECT_ROWS = exports.SELECT_ALL_ROWS = exports.OPEN_SELECT_ALL = void 0; var SELECT_ROWS = 'SELECT_ROWS'; exports.SELECT_ROWS = SELECT_ROWS; var UNSELECT_ROWS = 'UNSELECT_ROWS'; exports.UNSELECT_ROWS = UNSELECT_ROWS; var UNSELECT_ALL_ROWS = 'UNSELECT_ALL_ROWS'; exports.UNSELECT_ALL_ROWS = UNSELECT_ALL_ROWS; var SELECT_ALL_ROWS = 'SELECT_ALL_ROWS'; exports.SELECT_ALL_ROWS = SELECT_ALL_ROWS; var OPEN_SELECT_ALL = 'OPEN_SELECT_ALL'; exports.OPEN_SELECT_ALL = OPEN_SELECT_ALL; /***/ }), /* 156 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectSubtotal = exports.selectSort = exports.selectSearch = exports.selectPerPage = exports.selectPage = exports.selectModelsPageData = exports.selectModels = exports.selectMessage = exports.selectIsLoading = exports.selectHasError = exports.selectHasData = exports.selectCanCreate = exports.response = void 0; var _lodash = __webpack_require__(10); var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _constants = __webpack_require__(37); var _constants2 = __webpack_require__(7); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var response = { results: [], page: 0, perPage: 0, search: '', sort: {}, canCreate: false, subtotal: 0, message: {} }; exports.response = response; var emptyState = (0, _seamlessImmutable["default"])({ payload: null, response: response, status: null }); var selectModelsPageData = function selectModelsPageData(state) { return (0, _helpers.deepPropsToCamelCase)(state.API[_constants.API_REQUEST_KEY]) || emptyState; }; exports.selectModelsPageData = selectModelsPageData; var selectModelsPageResponse = function selectModelsPageResponse(state) { return selectModelsPageData(state).response || (0, _seamlessImmutable["default"])(response); }; var selectIsLoading = function selectIsLoading(state) { var _selectModelsPageData = selectModelsPageData(state), status = _selectModelsPageData.status; return !status || status === _constants2.STATUS.PENDING; }; exports.selectIsLoading = selectIsLoading; var selectModelsPageStatus = function selectModelsPageStatus(state) { return selectModelsPageData(state).status; }; var selectHasError = function selectHasError(state) { return selectModelsPageStatus(state) === _constants2.STATUS.ERROR; }; exports.selectHasError = selectHasError; var selectModels = function selectModels(state) { return selectModelsPageResponse(state).results; }; exports.selectModels = selectModels; var selectHasData = function selectHasData(state) { var status = selectModelsPageStatus(state); var results = selectModels(state); return status === _constants2.STATUS.RESOLVED && results && results.length > 0; }; exports.selectHasData = selectHasData; var selectPage = function selectPage(state) { return selectModelsPageResponse(state).page; }; exports.selectPage = selectPage; var selectPerPage = function selectPerPage(state) { return selectModelsPageResponse(state).perPage; }; exports.selectPerPage = selectPerPage; var selectSearch = function selectSearch(state) { return selectModelsPageResponse(state).search; }; exports.selectSearch = selectSearch; var selectSort = function selectSort(state) { var sort = selectModelsPageResponse(state).sort || (0, _seamlessImmutable["default"])({}); if (sort.by && sort.order) { return _objectSpread(_objectSpread({}, sort), {}, { by: (0, _lodash.camelCase)(sort.by) }); } return sort; }; exports.selectSort = selectSort; var selectCanCreate = function selectCanCreate(state) { return selectModelsPageResponse(state).canCreate; }; exports.selectCanCreate = selectCanCreate; var selectSubtotal = function selectSubtotal(state) { return selectModelsPageResponse(state).subtotal; }; exports.selectSubtotal = selectSubtotal; var selectMessage = function selectMessage(state) { return selectModelsPageResponse(state).message; }; exports.selectMessage = selectMessage; /***/ }), /* 157 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _SettingRecordsActions = __webpack_require__(158); var _SettingRecordsReducer = _interopRequireDefault(__webpack_require__(413)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var reducers = { settingRecords: _SettingRecordsReducer["default"] }; exports.reducers = reducers; var SettingRecords = function SettingRecords(_ref) { var settings = _ref.settings; var dispatch = (0, _reactRedux.useDispatch)(); (0, _react.useEffect)(function () { dispatch((0, _SettingRecordsActions.loadSettingRecords)(settings)); }); return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null); }; SettingRecords.propTypes = { settings: _propTypes["default"].object }; SettingRecords.defaultProps = { settings: {} }; var _default = SettingRecords; exports["default"] = _default; /***/ }), /* 158 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.setSettingEditing = exports.loadSettingRecords = void 0; var _SettingRecordsConstants = __webpack_require__(159); function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var loadSettingRecords = function loadSettingRecords(settings) { return /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dispatch) { return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", dispatch({ type: _SettingRecordsConstants.LOAD_SETTING_RECORDS, payload: settings })); case 1: case "end": return _context.stop(); } }, _callee); })); return function (_x) { return _ref.apply(this, arguments); }; }(); }; exports.loadSettingRecords = loadSettingRecords; var setSettingEditing = function setSettingEditing(setting) { return { type: _SettingRecordsConstants.SET_EDITING_SETTING, payload: { setting: setting } }; }; exports.setSettingEditing = setSettingEditing; /***/ }), /* 159 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SET_EDITING_SETTING = exports.SETTINGS_FORM_SUBMITTED_SUCCESS = exports.LOAD_SETTING_RECORDS = void 0; var LOAD_SETTING_RECORDS = 'LOAD_SETTING_RECORDS'; exports.LOAD_SETTING_RECORDS = LOAD_SETTING_RECORDS; var SETTINGS_FORM_SUBMITTED_SUCCESS = 'SETTINGS_FORM_SUBMITTED_SUCCESS'; exports.SETTINGS_FORM_SUBMITTED_SUCCESS = SETTINGS_FORM_SUBMITTED_SUCCESS; var SET_EDITING_SETTING = 'SET_EDITING_SETTING'; exports.SET_EDITING_SETTING = SET_EDITING_SETTING; /***/ }), /* 160 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _PersonalAccessTokens = _interopRequireDefault(__webpack_require__(414)); var _PersonalAccessTokensReducer = _interopRequireDefault(__webpack_require__(436)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var reducers = { personalAccessTokens: _PersonalAccessTokensReducer["default"] }; exports.reducers = reducers; var _default = _PersonalAccessTokens["default"]; exports["default"] = _default; /***/ }), /* 161 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _v = _interopRequireDefault(__webpack_require__(16)); var _I18n = __webpack_require__(2); __webpack_require__(419); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var ClipboardCopy = function ClipboardCopy(_ref) { var defaultText = _ref.text, successMessage = _ref.successMessage, buttonText = _ref.buttonText, textareaProps = _ref.textareaProps, buttonProps = _ref.buttonProps; var _useState = (0, _react.useState)(defaultText), _useState2 = _slicedToArray(_useState, 2), text = _useState2[0], setText = _useState2[1]; return /*#__PURE__*/_react["default"].createElement("div", { className: "clipboard-copy" }, /*#__PURE__*/_react["default"].createElement("textarea", _extends({ defaultValue: text, onChange: function onChange(_ref2) { var value = _ref2.target.value; return setText(value); } }, textareaProps)), /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: (0, _v["default"])() }, successMessage), placement: "right", trigger: ['click'], rootClose: true }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, _extends({ onClick: function onClick() { return navigator.clipboard.writeText(text); }, bsStyle: "default" }, buttonProps), buttonText))); }; ClipboardCopy.propTypes = { text: _propTypes["default"].string.isRequired, buttonText: _propTypes["default"].string, successMessage: _propTypes["default"].string, textareaProps: _propTypes["default"].object, buttonProps: _propTypes["default"].object }; ClipboardCopy.defaultProps = { buttonText: (0, _I18n.translate)('Copy to clipboard'), successMessage: (0, _I18n.translate)('Copied!'), textareaProps: {}, buttonProps: {} }; var _default = ClipboardCopy; exports["default"] = _default; /***/ }), /* 162 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _DateInput = _interopRequireDefault(__webpack_require__(163)); var _TodayButton = _interopRequireDefault(__webpack_require__(164)); var _TimeInput = _interopRequireDefault(__webpack_require__(165)); var _DateConstants = __webpack_require__(46); var _helpers = __webpack_require__(3); __webpack_require__(166); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var DateTimePicker = /*#__PURE__*/function (_React$Component) { _inherits(DateTimePicker, _React$Component); var _super = _createSuper(DateTimePicker); function DateTimePicker() { var _this; _classCallCheck(this, DateTimePicker); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "state", { value: _this.initialDate, typeOfDateInput: _DateConstants.MONTH, isTimeTableOpen: false, hiddenValue: !_this.hasDefaultValue }); _defineProperty(_assertThisInitialized(_this), "setSelected", function (date) { if (Date.parse(date)) { var newDate = new Date(date); _this.setState({ value: newDate }); _this.props.onChange(newDate); } _this.setState({ typeOfDateInput: _DateConstants.MONTH, isTimeTableOpen: false }); }); _defineProperty(_assertThisInitialized(_this), "clearSelected", function () { _this.setState({ hiddenValue: true, value: new Date() }); _this.props.onChange(undefined); }); return _this; } _createClass(DateTimePicker, [{ key: "hasDefaultValue", get: function get() { var value = this.props.value; return !!Date.parse(value); } }, { key: "initialDate", get: function get() { var value = this.props.value; return this.hasDefaultValue ? new Date(value) : new Date(); } }, { key: "render", value: function render() { var _this2 = this; var _this$props = this.props, locale = _this$props.locale, weekStartsOn = _this$props.weekStartsOn, inputProps = _this$props.inputProps, id = _this$props.id, placement = _this$props.placement, name = _this$props.name, required = _this$props.required; var _this$state = this.state, value = _this$state.value, typeOfDateInput = _this$state.typeOfDateInput, isTimeTableOpen = _this$state.isTimeTableOpen, hiddenValue = _this$state.hiddenValue; var popover = /*#__PURE__*/_react["default"].createElement(_patternflyReact.Popover, { id: id, className: "bootstrap-datetimepicker-widget dropdown-menu timepicker-sbs" }, /*#__PURE__*/_react["default"].createElement("div", { className: "row" }, /*#__PURE__*/_react["default"].createElement(_DateInput["default"], { date: value, setSelected: this.setSelected, locale: locale, weekStartsOn: weekStartsOn, className: "col-md-6", typeOfDateInput: typeOfDateInput }), /*#__PURE__*/_react["default"].createElement(_TimeInput["default"], { time: value, setSelected: this.setSelected, isTimeTableOpen: isTimeTableOpen })), /*#__PURE__*/_react["default"].createElement("li", { className: "picker-switch accordion-toggle" }, /*#__PURE__*/_react["default"].createElement(_TodayButton["default"], { setSelected: this.setSelected }))); return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.InputGroup, { className: "input-group date-time-picker-pf" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, _extends({}, inputProps, { "aria-label": "date-picker-input", type: "text", className: "date-time-input", name: name, value: hiddenValue && !required ? '' : (0, _helpers.formatDateTime)(value), onChange: function onChange(e) { return _this2.setSelected(e.target.value); } })), /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { trigger: "click", placement: placement, overlay: popover, rootClose: true, container: this, onEnter: function onEnter() { return _this2.setState({ hiddenValue: false }); } }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.InputGroup.Addon, { className: "date-time-picker-pf" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "calendar" }))), !required && /*#__PURE__*/_react["default"].createElement(_patternflyReact.InputGroup.Addon, { className: "clear-button" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "close", onClick: this.clearSelected })))); } }]); return DateTimePicker; }(_react["default"].Component); DateTimePicker.propTypes = { value: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), locale: _propTypes["default"].string, weekStartsOn: _propTypes["default"].number, inputProps: _propTypes["default"].object, id: _propTypes["default"].string, placement: _patternflyReact.OverlayTrigger.propTypes.placement, name: _propTypes["default"].string, required: _propTypes["default"].bool, onChange: _propTypes["default"].func }; DateTimePicker.defaultProps = { value: null, locale: 'en-US', weekStartsOn: 1, inputProps: {}, id: 'datetime-picker-popover', placement: 'top', name: undefined, required: false, onChange: _helpers.noop }; var _default = DateTimePicker; exports["default"] = _default; /***/ }), /* 163 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _helpers = __webpack_require__(45); var _MonthView = _interopRequireDefault(__webpack_require__(422)); var _YearView = _interopRequireDefault(__webpack_require__(426)); var _DecadeView = _interopRequireDefault(__webpack_require__(427)); var _DateConstants = __webpack_require__(46); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var DateInput = /*#__PURE__*/function (_React$Component) { _inherits(DateInput, _React$Component); var _super = _createSuper(DateInput); function DateInput() { var _this; _classCallCheck(this, DateInput); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "state", { date: new Date(_this.props.date), typeOfDateInput: _this.props.typeOfDateInput }); _defineProperty(_assertThisInitialized(_this), "getPrevMonth", function () { var date = _this.state.date; _this.setState({ date: (0, _helpers.addMonths)(date, -1) }); }); _defineProperty(_assertThisInitialized(_this), "getNextMonth", function () { var date = _this.state.date; _this.setState({ date: (0, _helpers.addMonths)(date, 1) }); }); _defineProperty(_assertThisInitialized(_this), "setSelected", function (day) { _this.setState({ date: day }); _this.props.setSelected(day); }); _defineProperty(_assertThisInitialized(_this), "toggleDateView", function () { var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; _this.setState({ typeOfDateInput: type }); }); _defineProperty(_assertThisInitialized(_this), "getDateViewByType", function (type) { var _this$props = _this.props, date = _this$props.date, locale = _this$props.locale, weekStartsOn = _this$props.weekStartsOn, setSelected = _this$props.setSelected; switch (type) { case _DateConstants.DAY: return /*#__PURE__*/_react["default"].createElement(_DecadeView["default"], { date: date, setSelected: setSelected, toggleDateView: _this.toggleDateView }); case _DateConstants.YEAR: return /*#__PURE__*/_react["default"].createElement(_YearView["default"], { date: date, setSelected: setSelected, locale: locale, toggleDateView: _this.toggleDateView }); default: return /*#__PURE__*/_react["default"].createElement(_MonthView["default"], { date: date, setSelected: setSelected, locale: locale, weekStartsOn: weekStartsOn, toggleDateView: _this.toggleDateView }); } }); return _this; } _createClass(DateInput, [{ key: "render", value: function render() { var className = this.props.className; var typeOfDateInput = this.state.typeOfDateInput; return /*#__PURE__*/_react["default"].createElement("div", { className: (0, _classnames["default"])('datepicker', className) }, this.getDateViewByType(typeOfDateInput)); } }], [{ key: "getDerivedStateFromProps", value: function getDerivedStateFromProps(props, state) { if (props.date !== state.date) { return { date: props.date, typeOfDateInput: props.typeOfDateInput }; } return null; } }]); return DateInput; }(_react["default"].Component); DateInput.propTypes = { date: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), setSelected: _propTypes["default"].func, locale: _propTypes["default"].string, weekStartsOn: _propTypes["default"].number, className: _propTypes["default"].string, typeOfDateInput: _propTypes["default"].string }; DateInput.defaultProps = { setSelected: null, date: new Date(), locale: 'en-US', weekStartsOn: 1, className: '', typeOfDateInput: _DateConstants.MONTH }; var _default = DateInput; exports["default"] = _default; /***/ }), /* 164 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var TodayButton = function TodayButton(_ref) { var setSelected = _ref.setSelected; return /*#__PURE__*/_react["default"].createElement("table", { className: "table-condensed" }, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("button", { type: "button", className: "today-button", onClick: function onClick() { if (setSelected) setSelected(new Date()); } }, /*#__PURE__*/_react["default"].createElement("span", { className: "today-button-" }, (0, _I18n.translate)('Today'))))))); }; TodayButton.propTypes = { setSelected: _propTypes["default"].func }; TodayButton.defaultProps = { setSelected: null }; var _default = TodayButton; exports["default"] = _default; /***/ }), /* 165 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _PickTimeTable = _interopRequireDefault(__webpack_require__(430)); var _PickTimeClock = _interopRequireDefault(__webpack_require__(431)); var _helpers = __webpack_require__(3); var _TimeConstants = __webpack_require__(87); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var TimeInput = /*#__PURE__*/function (_React$Component) { _inherits(TimeInput, _React$Component); var _super = _createSuper(TimeInput); function TimeInput() { var _this; _classCallCheck(this, TimeInput); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "state", { isTimeTableOpen: _this.props.isTimeTableOpen, typeOfTimeInput: _TimeConstants.HOUR }); _defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function (prevProps) { var _this$props = _this.props, nextTime = _this$props.time, isTimeTableOpen = _this$props.isTimeTableOpen; if (prevProps.time !== nextTime) { _this.setIsTimeTableOpen(isTimeTableOpen); } }); _defineProperty(_assertThisInitialized(_this), "setIsTimeTableOpen", function (isTimeTableOpen) { _this.setState({ isTimeTableOpen: isTimeTableOpen }); }); _defineProperty(_assertThisInitialized(_this), "toggleTimeTable", function (type) { _this.setState({ typeOfTimeInput: type, isTimeTableOpen: !_this.state.isTimeTableOpen }); }); return _this; } _createClass(TimeInput, [{ key: "render", value: function render() { var _this$props2 = this.props, time = _this$props2.time, setSelected = _this$props2.setSelected; var _this$state = this.state, typeOfTimeInput = _this$state.typeOfTimeInput, isTimeTableOpen = _this$state.isTimeTableOpen; return /*#__PURE__*/_react["default"].createElement("div", { className: "timepicker col-md-6" }, isTimeTableOpen ? /*#__PURE__*/_react["default"].createElement(_PickTimeTable["default"], { time: time, setSelected: setSelected, type: typeOfTimeInput, show: isTimeTableOpen, toggleTimeTable: this.toggleTimeTable }) : /*#__PURE__*/_react["default"].createElement(_PickTimeClock["default"], { time: time, setSelected: setSelected, toggleTimeTable: this.toggleTimeTable })); } }]); return TimeInput; }(_react["default"].Component); TimeInput.propTypes = { setSelected: _propTypes["default"].func, time: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), isTimeTableOpen: _propTypes["default"].bool }; TimeInput.defaultProps = { setSelected: _helpers.noop, time: new Date(), isTimeTableOpen: false }; var _default = TimeInput; exports["default"] = _default; /***/ }), /* 166 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 167 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__APOLLO_CLIENT__; /***/ }), /* 168 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRouterDom = __webpack_require__(17); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _routes = __webpack_require__(442); var _RoutingService = __webpack_require__(104); var _ForemanSwitcher = _interopRequireDefault(__webpack_require__(498)); var _excluded = ["render", "path"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var AppSwitcher = function AppSwitcher(_ref) { var children = _ref.children; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_ForemanSwitcher["default"], null, _routes.routes.map(function (_ref2) { var _render = _ref2.render, path = _ref2.path, routeProps = _objectWithoutProperties(_ref2, _excluded); return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, _extends({ path: path, key: path }, routeProps, { render: function render(renderProps) { return (0, _RoutingService.renderRoute)(_render, renderProps); } })); })), children); }; AppSwitcher.propTypes = { children: _propTypes["default"].object }; AppSwitcher.defaultProps = { children: null }; var _default = AppSwitcher; exports["default"] = _default; /***/ }), /* 169 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectNoErrorState = exports.selectKebabItems = exports.selectBuildErrorsTree = exports.selectBuildErrors = void 0; var _APISelectors = __webpack_require__(14); var _SlotSelectors = __webpack_require__(63); var _constants = __webpack_require__(170); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var selectKebabItems = function selectKebabItems() { return (0, _SlotSelectors.selectComponentByWeight)('host-details-kebab'); }; exports.selectKebabItems = selectKebabItems; var selectBuildErrors = function selectBuildErrors(state) { var _selectAPIResponse; return (_selectAPIResponse = (0, _APISelectors.selectAPIResponse)(state, _constants.API_OPTIONS.key)) === null || _selectAPIResponse === void 0 ? void 0 : _selectAPIResponse.errors; }; exports.selectBuildErrors = selectBuildErrors; var selectBuildErrorsTree = function selectBuildErrorsTree(state) { var _Object$entries$map; var buildErrors = selectBuildErrors(state); return buildErrors ? (_Object$entries$map = Object.entries(buildErrors).map(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], value = _ref2[1]; return { name: _constants.SUPPORTED_ERRORS[key], id: key, children: value.map(function (item, idx) { return { name: item.message, id: "".concat(key, "-").concat(idx) }; }) }; })) === null || _Object$entries$map === void 0 ? void 0 : _Object$entries$map.filter(function (error) { return error.children.length; }) : []; }; exports.selectBuildErrorsTree = selectBuildErrorsTree; var selectNoErrorState = function selectNoErrorState(state) { var buildErrors = selectBuildErrors(state); var isEmptyArray = function isEmptyArray(currentValue) { return currentValue.length === 0; }; return buildErrors ? Object.values(buildErrors).every(isEmptyArray) : false; }; exports.selectNoErrorState = selectNoErrorState; /***/ }), /* 170 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SUPPORTED_ERRORS = exports.API_OPTIONS = void 0; var SUPPORTED_ERRORS = { host: __('Host'), templates: __('Templates'), proxies: __('Proxies') }; exports.SUPPORTED_ERRORS = SUPPORTED_ERRORS; var API_OPTIONS = { key: 'BUILD_REVIEW' }; exports.API_OPTIONS = API_OPTIONS; /***/ }), /* 171 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateHost = exports.isHostTurnOn = exports.deleteHost = exports.cancelBuild = exports.buildHost = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactIntl = __webpack_require__(25); var _foreman_navigation = __webpack_require__(26); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); var _ConfirmModal = __webpack_require__(30); var _API = __webpack_require__(8); var _consts = __webpack_require__(64); var _APISelectors = __webpack_require__(14); var _constants = __webpack_require__(88); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var deleteHost = function deleteHost(hostName, compute, destroyVmOnHostDelete) { return function (dispatch) { var successToast = function successToast() { return (0, _I18n.sprintf)((0, _I18n.translate)('Host %s has been removed successfully'), hostName); }; var errorToast = function errorToast(_ref) { var message = _ref.message; return message; }; var url = (0, _helpers.foremanUrl)("/api/hosts/".concat(hostName)); // TODO: Replace with a checkbox instead of a global setting for cascade host destroy var cascadeMessage = function cascadeMessage() { if (compute) { return destroyVmOnHostDelete ? (0, _I18n.translate)('This will delete the VM and its disks. This behavior can be changed via global setting "Destroy associated VM on host delete".') : (0, _I18n.translate)('VM and its disks will not be deleted. This behavior can be changed via global setting "Destroy associated VM on host delete".'); } return null; }; dispatch((0, _ConfirmModal.openConfirmModal)({ isWarning: true, title: (0, _I18n.translate)('Delete host?'), confirmButtonText: (0, _I18n.translate)('Delete host'), onConfirm: function onConfirm() { return dispatch(_API.APIActions["delete"]({ url: url, key: "".concat(hostName, "-DELETE"), successToast: successToast, errorToast: errorToast, handleSuccess: function handleSuccess() { return (0, _foreman_navigation.visit)((0, _helpers.foremanUrl)('/hosts')); } })); }, message: /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, { id: "delete-host", values: { host: /*#__PURE__*/_react["default"].createElement("b", null, hostName), cascade: cascadeMessage() }, defaultMessage: (0, _I18n.translate)('Are you sure you want to delete host {host}? This action is irreversible. {cascade}') }) })); }; }; exports.deleteHost = deleteHost; var updateHost = function updateHost(hostId) { return function (dispatch) { var url = (0, _helpers.foremanUrl)("/api/hosts/".concat(hostId)); dispatch(_API.APIActions.get({ url: url, key: _consts.HOST_DETAILS_KEY })); }; }; exports.updateHost = updateHost; var buildHost = function buildHost(hostId) { return function (dispatch) { var successToast = function successToast() { return (0, _I18n.sprintf)((0, _I18n.translate)('Host %s will be built next boot'), hostId); }; var errorToast = function errorToast(_ref2) { var message = _ref2.message; return message; }; var url = (0, _helpers.foremanUrl)("/hosts/".concat(hostId, "/setBuild")); dispatch(_API.APIActions.put({ url: url, key: "".concat(hostId, "_BUILD"), successToast: successToast, errorToast: errorToast, handleSuccess: function handleSuccess() { return dispatch(updateHost(hostId)); } })); }; }; exports.buildHost = buildHost; var cancelBuild = function cancelBuild(hostId) { return function (dispatch) { var successToast = function successToast() { return (0, _I18n.sprintf)((0, _I18n.translate)('Canceled pending build for %s'), hostId); }; var errorToast = function errorToast(_ref3) { var message = _ref3.message; return message; }; var url = (0, _helpers.foremanUrl)("/hosts/".concat(hostId, "/cancelBuild")); dispatch(_API.APIActions.get({ url: url, key: "".concat(hostId, "_CANCEL_BUILD"), successToast: successToast, errorToast: errorToast, handleSuccess: function handleSuccess() { return dispatch(updateHost(hostId)); } })); }; }; exports.cancelBuild = cancelBuild; var isHostTurnOn = function isHostTurnOn(store) { var _selectAPIResponse = (0, _APISelectors.selectAPIResponse)(store, _constants.POWER_REQURST_KEY), state = _selectAPIResponse.state; return state === 'on'; }; exports.isHostTurnOn = isHostTurnOn; /***/ }), /* 172 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactCore = __webpack_require__(6); var _StatusTable = _interopRequireDefault(__webpack_require__(459)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var StatusModal = function StatusModal(_ref) { var isOpen = _ref.isOpen, onClose = _ref.onClose, statuses = _ref.statuses, hostName = _ref.hostName, canForgetStatuses = _ref.canForgetStatuses; var header = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Title, { id: "statuses-modal-header", headingLevel: "h1", size: _reactCore.TitleSizes['2xl'] }, (0, _I18n.translate)("Manage Host's Statuses"))); return /*#__PURE__*/_react["default"].createElement(_reactCore.Modal, { width: "50%", "aria-label": "statuses modal", isOpen: isOpen, header: header, onClose: onClose, appendTo: document.body }, /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_StatusTable["default"], { canForgetStatuses: canForgetStatuses, statuses: statuses, hostName: hostName })); }; StatusModal.propTypes = { hostName: _propTypes["default"].string.isRequired, isOpen: _propTypes["default"].bool, onClose: _propTypes["default"].func, statuses: _propTypes["default"].arrayOf(_propTypes["default"].object), canForgetStatuses: _propTypes["default"].bool }; StatusModal.defaultProps = { isOpen: false, onClose: _helpers.noop, statuses: [], canForgetStatuses: undefined }; var _default = StatusModal; exports["default"] = _default; /***/ }), /* 173 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectWarningStatuses = exports.selectStatusByState = exports.selectOKStatuses = exports.selectNAStatuses = exports.selectErrorStatuses = exports.selectAllSortedStatuses = void 0; var _lodash = __webpack_require__(10); var _APISelectors = __webpack_require__(14); var _Constants = __webpack_require__(40); var EMPTY_ARRAY = []; var selectStatusByState = function selectStatusByState(state, statusState) { var _selectAPIResponse = (0, _APISelectors.selectAPIResponse)(state, _Constants.HOST_STATUSES_KEY), statuses = _selectAPIResponse.statuses; var notAvailableStatuses = selectSupportedStatusesAsObject(state); if (!notAvailableStatuses) return EMPTY_ARRAY; switch (statusState) { case _Constants.ALL_STATUS_STATE: return (statuses === null || statuses === void 0 ? void 0 : statuses.asMutable()) || EMPTY_ARRAY; case _Constants.NA_STATUS_STATE: return selectNAStatuses(state); case undefined: return (0, _lodash.unionBy)(statuses === null || statuses === void 0 ? void 0 : statuses.asMutable(), notAvailableStatuses, 'name'); default: return (statuses === null || statuses === void 0 ? void 0 : statuses.asMutable().filter(function (_ref) { var global = _ref.global; return global === statusState; })) || EMPTY_ARRAY; } }; exports.selectStatusByState = selectStatusByState; var selectSupportedStatuses = function selectSupportedStatuses(state) { var _selectAPIResponse2, _selectAPIResponse2$c; return (_selectAPIResponse2 = (0, _APISelectors.selectAPIResponse)(state, _Constants.HOST_STATUSES_KEY)) === null || _selectAPIResponse2 === void 0 ? void 0 : (_selectAPIResponse2$c = _selectAPIResponse2.captions) === null || _selectAPIResponse2$c === void 0 ? void 0 : _selectAPIResponse2$c.asMutable(); }; var selectSupportedStatusesAsObject = function selectSupportedStatusesAsObject(state) { var _selectSupportedStatu; return (_selectSupportedStatu = selectSupportedStatuses(state)) === null || _selectSupportedStatu === void 0 ? void 0 : _selectSupportedStatu.map(function (name) { return { name: name, date: undefined, label: 'N/A', link: undefined, global: _Constants.NA_STATUS_STATE, reported_at: undefined }; }); }; var selectErrorStatuses = function selectErrorStatuses(state) { return selectStatusByState(state, _Constants.ERROR_STATUS_STATE); }; exports.selectErrorStatuses = selectErrorStatuses; var selectWarningStatuses = function selectWarningStatuses(state) { return selectStatusByState(state, _Constants.WARNING_STATUS_STATE); }; exports.selectWarningStatuses = selectWarningStatuses; var selectOKStatuses = function selectOKStatuses(state) { return selectStatusByState(state, _Constants.OK_STATUS_STATE); }; exports.selectOKStatuses = selectOKStatuses; var selectNAStatuses = function selectNAStatuses(state) { var supportedStatuses = selectSupportedStatusesAsObject(state); var existStatuses = selectStatusByState(state, _Constants.ALL_STATUS_STATE); if (supportedStatuses) return (0, _lodash.differenceBy)(supportedStatuses, existStatuses, 'name'); return EMPTY_ARRAY; }; exports.selectNAStatuses = selectNAStatuses; var selectAllSortedStatuses = function selectAllSortedStatuses(state) { return selectErrorStatuses(state).concat(selectWarningStatuses(state)).concat(selectOKStatuses(state)).concat(selectNAStatuses(state)); }; exports.selectAllSortedStatuses = selectAllSortedStatuses; /***/ }), /* 174 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.operatingSystemTemplateAction = exports.dataAction = exports.commandAction = void 0; var _foreman_tools = __webpack_require__(18); var _API = __webpack_require__(8); var _constants = __webpack_require__(91); var dataAction = function dataAction(params) { return (0, _API.get)({ key: _constants.REGISTRATION_COMMANDS_DATA, url: (0, _foreman_tools.foremanUrl)('/hosts/register/data'), params: params }); }; exports.dataAction = dataAction; var operatingSystemTemplateAction = function operatingSystemTemplateAction(operatingSystemId) { return (0, _API.get)({ key: _constants.REGISTRATION_COMMANDS_OS_TEMPLATE, url: (0, _foreman_tools.foremanUrl)("/hosts/register/os/".concat(operatingSystemId)) }); }; exports.operatingSystemTemplateAction = operatingSystemTemplateAction; var commandAction = function commandAction(params) { return (0, _API.post)({ key: _constants.REGISTRATION_COMMANDS, url: (0, _foreman_tools.foremanUrl)('/hosts/register'), params: params }); }; exports.commandAction = commandAction; /***/ }), /* 175 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var LinkOrLabel = function LinkOrLabel(_ref) { var label = _ref.label, path = _ref.path; if (path) { return /*#__PURE__*/_react["default"].createElement("a", { href: path }, label); } return /*#__PURE__*/_react["default"].createElement("span", null, label); }; LinkOrLabel.propTypes = { label: _propTypes["default"].string.isRequired, path: _propTypes["default"].string }; LinkOrLabel.defaultProps = { path: undefined }; var _default = LinkOrLabel; exports["default"] = _default; /***/ }), /* 176 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectHostStatusesNames = exports.selectHostStatuses = exports.selectHostStatusWarnTotalPath = exports.selectHostStatusWarnOwnedPath = exports.selectHostStatusTotalPaths = exports.selectHostStatusOwnedPaths = exports.selectHostStatusOkTotalPath = exports.selectHostStatusOkOwnedPath = exports.selectHostStatusErrorTotalPath = exports.selectHostStatusErrorOwnedPath = exports.selectHostStatusDetails = exports.selectHostStatusDescription = exports.selectHostStatusCounter = exports.selectHostStatus = exports.selectGlobalStatus = void 0; var _APISelectors = __webpack_require__(14); var _HostStatusesConstants = __webpack_require__(94); function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var selectHostStatuses = function selectHostStatuses(state) { var _selectAPIResponse; return ((_selectAPIResponse = (0, _APISelectors.selectAPIResponse)(state, _HostStatusesConstants.HOST_STATUSES_KEY)) === null || _selectAPIResponse === void 0 ? void 0 : _selectAPIResponse.results) || []; }; exports.selectHostStatuses = selectHostStatuses; var selectHostStatusesNames = function selectHostStatusesNames(state) { return selectHostStatuses(state).map(function (_ref) { var name = _ref.name; return name; }); }; exports.selectHostStatusesNames = selectHostStatusesNames; var selectHostStatus = function selectHostStatus(state, statusName) { return selectHostStatuses(state).find(function (_ref2) { var name = _ref2.name; return name === statusName; }); }; exports.selectHostStatus = selectHostStatus; var selectHostStatusDetails = function selectHostStatusDetails(state, statusName) { var _selectHostStatus; return ((_selectHostStatus = selectHostStatus(state, statusName)) === null || _selectHostStatus === void 0 ? void 0 : _selectHostStatus.details) || []; }; exports.selectHostStatusDetails = selectHostStatusDetails; var selectHostStatusDescription = function selectHostStatusDescription(state, statusName) { var _selectHostStatus2; return ((_selectHostStatus2 = selectHostStatus(state, statusName)) === null || _selectHostStatus2 === void 0 ? void 0 : _selectHostStatus2.description) || ''; }; /* eslint-disable camelcase */ exports.selectHostStatusDescription = selectHostStatusDescription; var selectHostStatusOkTotalPath = function selectHostStatusOkTotalPath(state, statusName) { var _selectHostStatus3; return (_selectHostStatus3 = selectHostStatus(state, statusName)) === null || _selectHostStatus3 === void 0 ? void 0 : _selectHostStatus3.ok_total_path; }; exports.selectHostStatusOkTotalPath = selectHostStatusOkTotalPath; var selectHostStatusOkOwnedPath = function selectHostStatusOkOwnedPath(state, statusName) { var _selectHostStatus4; return (_selectHostStatus4 = selectHostStatus(state, statusName)) === null || _selectHostStatus4 === void 0 ? void 0 : _selectHostStatus4.ok_owned_path; }; exports.selectHostStatusOkOwnedPath = selectHostStatusOkOwnedPath; var selectHostStatusWarnTotalPath = function selectHostStatusWarnTotalPath(state, statusName) { var _selectHostStatus5; return (_selectHostStatus5 = selectHostStatus(state, statusName)) === null || _selectHostStatus5 === void 0 ? void 0 : _selectHostStatus5.warn_total_path; }; exports.selectHostStatusWarnTotalPath = selectHostStatusWarnTotalPath; var selectHostStatusWarnOwnedPath = function selectHostStatusWarnOwnedPath(state, statusName) { var _selectHostStatus6; return (_selectHostStatus6 = selectHostStatus(state, statusName)) === null || _selectHostStatus6 === void 0 ? void 0 : _selectHostStatus6.warn_owned_path; }; exports.selectHostStatusWarnOwnedPath = selectHostStatusWarnOwnedPath; var selectHostStatusErrorTotalPath = function selectHostStatusErrorTotalPath(state, statusName) { var _selectHostStatus7; return (_selectHostStatus7 = selectHostStatus(state, statusName)) === null || _selectHostStatus7 === void 0 ? void 0 : _selectHostStatus7.error_owned_path; }; exports.selectHostStatusErrorTotalPath = selectHostStatusErrorTotalPath; var selectHostStatusErrorOwnedPath = function selectHostStatusErrorOwnedPath(state, statusName) { var _selectHostStatus8; return (_selectHostStatus8 = selectHostStatus(state, statusName)) === null || _selectHostStatus8 === void 0 ? void 0 : _selectHostStatus8.error_total_path; }; /* eslint-enable camelcase */ exports.selectHostStatusErrorOwnedPath = selectHostStatusErrorOwnedPath; var selectHostStatusTotalPaths = function selectHostStatusTotalPaths(state, statusName) { return { okTotalPath: selectHostStatusOkTotalPath(state, statusName), warnTotalPath: selectHostStatusWarnTotalPath(state, statusName), errorTotalPath: selectHostStatusErrorTotalPath(state, statusName) }; }; exports.selectHostStatusTotalPaths = selectHostStatusTotalPaths; var selectHostStatusOwnedPaths = function selectHostStatusOwnedPaths(state, statusName) { return { okOwnedPath: selectHostStatusOkOwnedPath(state, statusName), warnOwnedPath: selectHostStatusWarnOwnedPath(state, statusName), errorOwnedPath: selectHostStatusErrorOwnedPath(state, statusName) }; }; exports.selectHostStatusOwnedPaths = selectHostStatusOwnedPaths; var selectGlobalStatus = function selectGlobalStatus(state, statusName) { return Math.max.apply(Math, _toConsumableArray(selectHostStatusDetails(state, statusName).filter(function (_ref3) { var total = _ref3.total; return total > 0; }).map(function (_ref4) { var gs = _ref4.global_status; return gs; })).concat([0])); }; exports.selectGlobalStatus = selectGlobalStatus; var selectHostStatusCounter = function selectHostStatusCounter(state, statusName) { var calculate = function calculate(acc, _ref5) { var total = _ref5.total, owned = _ref5.owned; return { total: acc.total + total, owned: acc.owned + owned }; }; var details = selectHostStatusDetails(state, statusName); return { unknown: details.filter(function (_ref6) { var gs = _ref6.global_status; return gs === null; }).reduce(calculate, { total: 0, owned: 0 }), ok: details.filter(function (_ref7) { var gs = _ref7.global_status; return gs === _HostStatusesConstants.GLOBAL_STATUS_OK; }).reduce(calculate, { total: 0, owned: 0 }), warn: details.filter(function (_ref8) { var gs = _ref8.global_status; return gs === _HostStatusesConstants.GLOBAL_STATUS_WARN; }).reduce(calculate, { total: 0, owned: 0 }), error: details.filter(function (_ref9) { var gs = _ref9.global_status; return gs === _HostStatusesConstants.GLOBAL_STATUS_ERROR; }).reduce(calculate, { total: 0, owned: 0 }) }; }; exports.selectHostStatusCounter = selectHostStatusCounter; /***/ }), /* 177 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _BarChartService = __webpack_require__(507); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); var _MessageBox = _interopRequireDefault(__webpack_require__(24)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var BarChart = function BarChart(_ref) { var data = _ref.data, onclick = _ref.onclick, noDataMsg = _ref.noDataMsg, config = _ref.config, title = _ref.title, unloadData = _ref.unloadData, xAxisLabel = _ref.xAxisLabel, yAxisLabel = _ref.yAxisLabel; var chartConfig = (0, _BarChartService.getBarChartConfig)({ data: data, config: config, onclick: onclick, xAxisLabel: xAxisLabel, yAxisLabel: yAxisLabel }); if (chartConfig.data.columns.length) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.BarChart, _extends({}, chartConfig, { title: title, unloadBeforeLoad: unloadData })); } return /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { msg: noDataMsg, icontype: "info" }); }; BarChart.propTypes = { data: _propTypes["default"].arrayOf(_propTypes["default"].array), onclick: _propTypes["default"].func, noDataMsg: _propTypes["default"].string, config: _propTypes["default"].string, title: _propTypes["default"].shape({ type: _propTypes["default"].string }), unloadData: _propTypes["default"].bool, xAxisLabel: _propTypes["default"].string, yAxisLabel: _propTypes["default"].string }; BarChart.defaultProps = { data: null, onclick: _helpers.noop, noDataMsg: (0, _I18n.translate)('No data available'), config: 'regular', title: { type: 'percent' }, unloadData: false, yAxisLabel: '', xAxisLabel: '' }; var _default = BarChart; exports["default"] = _default; /***/ }), /* 178 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerInputComponent = exports.getComponentClass = exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _AutoComplete = _interopRequireDefault(__webpack_require__(52)); var _DateTimePicker = _interopRequireDefault(__webpack_require__(162)); var _DatePicker = _interopRequireDefault(__webpack_require__(179)); var _OrderableSelect = _interopRequireDefault(__webpack_require__(519)); var _MemoryAllocationInput = _interopRequireDefault(__webpack_require__(523)); var _CounterInput = _interopRequireDefault(__webpack_require__(526)); var _TimePicker = _interopRequireDefault(__webpack_require__(528)); var _Select = _interopRequireDefault(__webpack_require__(96)); var _excluded = ["type", "setError", "setWarning"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var inputComponents = { autocomplete: _AutoComplete["default"], select: _Select["default"], date: _DatePicker["default"], dateTime: _DateTimePicker["default"], orderableSelect: _OrderableSelect["default"], time: _TimePicker["default"], memory: _MemoryAllocationInput["default"], counter: _CounterInput["default"] }; var registerInputComponent = function registerInputComponent(name, Component) { inputComponents[name] = Component; }; exports.registerInputComponent = registerInputComponent; var getComponentClass = function getComponentClass(name) { return inputComponents[name] || 'input'; }; exports.getComponentClass = getComponentClass; var InputFactory = function InputFactory(_ref) { var type = _ref.type, setError = _ref.setError, setWarning = _ref.setWarning, controlProps = _objectWithoutProperties(_ref, _excluded); var componentClass = getComponentClass(type); var validations = {}; if (componentClass !== 'input') validations = { setError: setError, setWarning: setWarning }; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, _extends({ componentClass: componentClass, type: type }, validations, controlProps)); }; InputFactory.propTypes = { type: _propTypes["default"].string, value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number, _propTypes["default"].bool, _propTypes["default"].instanceOf(Date)]), name: _propTypes["default"].string, disabled: _propTypes["default"].bool, required: _propTypes["default"].bool, className: _propTypes["default"].string, onChange: _propTypes["default"].func, setError: _propTypes["default"].func, setWarning: _propTypes["default"].func }; InputFactory.defaultProps = { type: undefined, name: undefined, value: undefined, className: '', required: false, disabled: false, onChange: _helpers.noop, setError: _helpers.noop, setWarning: _helpers.noop }; var _default = InputFactory; exports["default"] = _default; /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _DateInput = _interopRequireDefault(__webpack_require__(163)); var _TodayButton = _interopRequireDefault(__webpack_require__(164)); var _helpers = __webpack_require__(3); __webpack_require__(166); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var DatePicker = /*#__PURE__*/function (_React$Component) { _inherits(DatePicker, _React$Component); var _super = _createSuper(DatePicker); function DatePicker() { var _this; _classCallCheck(this, DatePicker); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "state", { value: _this.initialDate, hiddenValue: !_this.hasDefaultValue }); _defineProperty(_assertThisInitialized(_this), "setSelected", function (date) { if (Date.parse(date)) { var newDate = new Date(date); _this.setState({ value: newDate }); } }); return _this; } _createClass(DatePicker, [{ key: "hasDefaultValue", get: function get() { var value = this.props.value; return !!Date.parse(value); } }, { key: "initialDate", get: function get() { var value = this.props.value; return this.hasDefaultValue ? new Date(value) : new Date(); } }, { key: "render", value: function render() { var _this2 = this; var _this$props = this.props, locale = _this$props.locale, weekStartsOn = _this$props.weekStartsOn, name = _this$props.name, id = _this$props.id, placement = _this$props.placement, required = _this$props.required; var _this$state = this.state, value = _this$state.value, hiddenValue = _this$state.hiddenValue; var popover = /*#__PURE__*/_react["default"].createElement(_patternflyReact.Popover, { id: id, className: "bootstrap-datetimepicker-widget dropdown-menu" }, /*#__PURE__*/_react["default"].createElement("div", { className: "row" }, /*#__PURE__*/_react["default"].createElement(_DateInput["default"], { date: value, setSelected: this.setSelected, locale: locale, weekStartsOn: weekStartsOn, className: "col-xs-12" }), /*#__PURE__*/_react["default"].createElement("li", { className: "picker-switch accordion-toggle" }, /*#__PURE__*/_react["default"].createElement(_TodayButton["default"], { setSelected: this.setSelected })))); return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.InputGroup, { className: "input-group date-time-picker-pf" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, { "aria-label": "date-time-picker-input", type: "text", className: "date-input", value: hiddenValue && !required ? '' : (0, _helpers.formatDate)(value), name: name, onChange: function onChange(e) { return _this2.setSelected(e.target.value); } }), /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { trigger: "click", placement: placement, overlay: popover, rootClose: true, container: this, onEnter: function onEnter() { return _this2.setState({ hiddenValue: false }); } }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.InputGroup.Addon, { className: "date-picker-pf" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "calendar" }))), !required && /*#__PURE__*/_react["default"].createElement(_patternflyReact.InputGroup.Addon, { className: "clear-button" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "close", onClick: function onClick() { return _this2.setState({ hiddenValue: true, value: new Date() }); } })))); } }]); return DatePicker; }(_react["default"].Component); DatePicker.propTypes = { value: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), name: _propTypes["default"].string, locale: _propTypes["default"].string, weekStartsOn: _propTypes["default"].number, id: _propTypes["default"].string, placement: _patternflyReact.OverlayTrigger.propTypes.placement, required: _propTypes["default"].bool }; DatePicker.defaultProps = { value: null, name: null, locale: 'en-US', weekStartsOn: 1, id: 'date-picker-popover', placement: 'top', required: false }; var _default = DatePicker; exports["default"] = _default; /***/ }), /* 180 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.orderable = exports.orderDragged = exports.makeOnHover = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactDnd = __webpack_require__(70); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _lodash = __webpack_require__(10); var _excluded = ["isDragging", "styleOnDrag", "connectDragSource", "connectDropTarget"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var orderDragged = function orderDragged(inputArray, dragIndex, hoverIndex) { var dragedValue = inputArray[dragIndex]; var ordered = _toConsumableArray(inputArray); ordered.splice(dragIndex, 1); ordered.splice(hoverIndex, 0, dragedValue); return ordered; }; exports.orderDragged = orderDragged; var makeOnHover = function makeOnHover(getIndex, getMoveFnc, direction) { return function (props, monitor, component) { var dragIndex = monitor.getItem().index; var hoverIndex = getIndex(props); // Don't replace items with themselves if (dragIndex === hoverIndex) return null; // Determine rectangle on screen var hoverBoundingRect = component.getNode().getBoundingClientRect(); var shouldMove = false; // Determine which drag direction we should handle and whether to move an item if (direction === 'vertical') { shouldMove = onHover(dragIndex, hoverIndex, hoverBoundingRect, monitor, 'y', 'bottom', 'top'); } else if (direction === 'horizontal') { shouldMove = onHover(dragIndex, hoverIndex, hoverBoundingRect, monitor, 'x', 'right', 'left'); } else { throw new Error("Unknown drag direction, expected one of: horizontal, vertical, got: ".concat(direction)); } if (!shouldMove) { return null; } // Time to actually perform the action getMoveFnc(props)(dragIndex, hoverIndex); // Note: we're mutating the monitor item here! // Generally it's better to avoid mutations, // but it's good here for the sake of performance // to avoid expensive index searches. monitor.getItem().index = hoverIndex; return null; }; }; exports.makeOnHover = makeOnHover; var onHover = function onHover(dragIndex, hoverIndex, hoverBoundingRect, monitor, clientAttr, rectMaxAttr, rectMinAttr) { // Get midpoint var hoverMiddle = (hoverBoundingRect[rectMaxAttr] - hoverBoundingRect[rectMinAttr]) / 2; // Determine mouse position var clientOffset = monitor.getClientOffset(); // Get pixels to the border var hoverClient = clientOffset[clientAttr] - hoverBoundingRect[rectMinAttr]; // Swap items only when the mouse has moved over the midpoint of other item // Dragging right or down if (dragIndex < hoverIndex && hoverClient < hoverMiddle) { return false; } // Dragging left or up if (dragIndex > hoverIndex && hoverClient > hoverMiddle) { return false; } return true; }; var getDropTarget = function getDropTarget(dropTypes, getIndex, getMoveFnc, direction) { return (0, _reactDnd.DropTarget)(dropTypes, { hover: makeOnHover(getIndex, getMoveFnc, direction) }, function (connect) { return { connectDropTarget: connect.dropTarget() }; }); }; var getDragSource = function getDragSource(dragType, getIndex, getItem) { return (0, _reactDnd.DragSource)(dragType, { beginDrag: function beginDrag(props) { return (0, _lodash.set)(getItem(props), 'index', getIndex(props)); } }, function (connect, monitor) { return { connectDragSource: connect.dragSource(), isDragging: monitor.isDragging() }; }); }; var orderable = function orderable(Component, _ref) { var _ref$type = _ref.type, type = _ref$type === void 0 ? 'orderable' : _ref$type, _ref$direction = _ref.direction, direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction, _ref$getItem = _ref.getItem, getItem = _ref$getItem === void 0 ? function (props) { return { id: props.id }; } : _ref$getItem, _ref$getIndex = _ref.getIndex, getIndex = _ref$getIndex === void 0 ? function (props) { return props.index; } : _ref$getIndex, _ref$getMoveFnc = _ref.getMoveFnc, getMoveFnc = _ref$getMoveFnc === void 0 ? function (props) { return props.moveValue; } : _ref$getMoveFnc; var Orderable = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) { var isDragging = _ref2.isDragging, styleOnDrag = _ref2.styleOnDrag, connectDragSource = _ref2.connectDragSource, connectDropTarget = _ref2.connectDropTarget, props = _objectWithoutProperties(_ref2, _excluded); var elementRef = (0, _react.useRef)(null); connectDragSource(elementRef); connectDropTarget(elementRef); (0, _react.useImperativeHandle)(ref, function () { return { getNode: function getNode() { return elementRef.current; } }; }); return /*#__PURE__*/_react["default"].createElement("div", { ref: elementRef, style: isDragging ? styleOnDrag : null }, /*#__PURE__*/_react["default"].createElement(Component, _extends({ isDragging: isDragging }, props))); }); Orderable.displayName = "Orderable(".concat(Component.displayName || Component.name || 'Component', ")"); Orderable.propTypes = { isDragging: _propTypes["default"].bool.isRequired, connectDragSource: _propTypes["default"].func.isRequired, connectDropTarget: _propTypes["default"].func.isRequired, styleOnDrag: _propTypes["default"].object }; Orderable.defaultProps = { styleOnDrag: { opacity: 0.6 } }; return getDropTarget(type, getIndex, getMoveFnc, direction)(getDragSource(type, getIndex, getItem)(Orderable)); }; exports.orderable = orderable; /***/ }), /* 181 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 182 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderOptions = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var renderOption = function renderOption(val, text) { var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var optValue = val === null || val === undefined ? '' : val; return /*#__PURE__*/_react["default"].createElement("option", { value: optValue, key: key || val }, text); }; var renderOptGroup = function renderOptGroup(group) { return /*#__PURE__*/_react["default"].createElement("optgroup", { label: group.groupLabel, key: group.groupLabel }, renderOptions(group.children)); }; var renderOptions = function renderOptions(opts) { if (Array.isArray(opts)) { return opts.map(function (opt, index) { if (opt.children) { return renderOptGroup(opt); } return renderOption(opt.value, opt.label, index); }); } return Object.entries(opts).map(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), val = _ref2[0], text = _ref2[1]; return renderOption(val, text); }); }; exports.renderOptions = renderOptions; /***/ }), /* 183 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _lodash = __webpack_require__(10); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); var _DonutChart = _interopRequireDefault(__webpack_require__(69)); var _BarChart = _interopRequireDefault(__webpack_require__(177)); var _Loader = _interopRequireDefault(__webpack_require__(44)); var _MessageBox = _interopRequireDefault(__webpack_require__(24)); var _I18n = __webpack_require__(2); __webpack_require__(544); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var ChartBox = /*#__PURE__*/function (_React$Component) { _inherits(ChartBox, _React$Component); var _super = _createSuper(ChartBox); function ChartBox(props) { var _this; _classCallCheck(this, ChartBox); _this = _super.call(this, props); _defineProperty(_assertThisInitialized(_this), "openModal", function () { _this.setState({ showModal: true }); }); _defineProperty(_assertThisInitialized(_this), "closeModal", function () { _this.setState({ showModal: false }); }); _this.state = { showModal: false }; return _this; } _createClass(ChartBox, [{ key: "shouldComponentUpdate", value: function shouldComponentUpdate(nextProps, nextState) { return !(0, _lodash.isEqual)(this.props.chart, nextProps.chart) || !(0, _lodash.isEqual)(this.state, nextState); } }, { key: "render", value: function render() { var _this$props = this.props, chart = _this$props.chart, type = _this$props.type, config = _this$props.config, title = _this$props.title, status = _this$props.status, className = _this$props.className; var components = { donut: _DonutChart["default"], bar: _BarChart["default"] }; var Chart = components[type]; var dataFiltered = chart.data && chart.data.filter(function (arr) { return arr[1] !== 0; }); var hasChartData = dataFiltered && dataFiltered.length > 0; var headerProps = hasChartData ? { onClick: this.openModal, title: this.props.tip, 'data-toggle': 'tooltip', 'data-placement': 'top' } : {}; var chartProps = { searchUrl: chart.search && !chart.search.match(/=$/) ? chart.search : null, data: chart.data ? chart.data : undefined, key: "".concat(chart.id, "-chart") }; var barChartProps = _objectSpread(_objectSpread({}, chartProps), {}, { xAxisLabel: chart.xAxisLabel, yAxisLabel: chart.yAxisLabel }); var chartPropsForType = { donut: chartProps, bar: barChartProps }; var panelChart = /*#__PURE__*/_react["default"].createElement(Chart, _extends({}, chartPropsForType[type], { config: config })); var error = /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { msg: this.props.errorText, key: "".concat(this.props.chart.id, "-error"), icontype: "error-circle-o" }); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Card, { className: (0, _classnames["default"])('chart-box', className), key: chart.id, accented: true }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Card.Heading, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Card.Title, _extends({ className: "pointer panel-title" }, headerProps), /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, " ", title, " "))), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Card.Body, null, /*#__PURE__*/_react["default"].createElement(_Loader["default"], { status: status }, [panelChart, error]), this.state.showModal && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal, { show: this.state.showModal, enforceFocus: true, onHide: this.closeModal }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Header, { closeButton: true }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Title, null, title)), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Body, null, /*#__PURE__*/_react["default"].createElement(Chart, _extends({}, chartProps, { config: config })))))); } }]); return ChartBox; }(_react["default"].Component); ChartBox.propTypes = { status: _propTypes["default"].string.isRequired, title: _propTypes["default"].node, className: _propTypes["default"].string, config: _propTypes["default"].string, noDataMsg: _propTypes["default"].string, errorText: _propTypes["default"].string, type: _propTypes["default"].oneOf(['donut', 'bar']).isRequired, chart: _propTypes["default"].object, tip: _propTypes["default"].string }; ChartBox.defaultProps = { title: '', className: '', config: 'regular', noDataMsg: (0, _I18n.translate)('No data available'), errorText: '', chart: {}, tip: '' }; var _default = ChartBox; exports["default"] = _default; /***/ }), /* 184 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectSettingsByCategory = exports.selectSettings = exports.selectSettingEditing = exports.selectSettingById = void 0; var _reselect = __webpack_require__(56); var _helpers = __webpack_require__(3); var selectSettingRecords = function selectSettingRecords(state) { return state.settingRecords; }; var selectSettings = function selectSettings(state) { return selectSettingRecords(state).settings; }; exports.selectSettings = selectSettings; var selectSettingsByCategory = function selectSettingsByCategory(category) { return (0, _reselect.createSelector)(selectSettings, function (settings) { return settings[category].map(_helpers.propsToCamelCase); }); }; exports.selectSettingsByCategory = selectSettingsByCategory; var selectSettingById = function selectSettingById(id, category) { return (0, _reselect.createSelector)(selectSettingsByCategory(category), function (settings) { return settings.find(function (setting) { return setting.id === id; }); }); }; exports.selectSettingById = selectSettingById; var selectSettingEditing = function selectSettingEditing(state) { return selectSettingRecords(state).editing; }; exports.selectSettingEditing = selectSettingEditing; /***/ }), /* 185 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _ForemanModalHooks = __webpack_require__(35); var _SettingUpdateModalConstants = __webpack_require__(97); var useSettingModal = function useSettingModal() { return (0, _ForemanModalHooks.useForemanModal)({ id: _SettingUpdateModalConstants.SETTING_UPDATE_MODAL }); }; var _default = useSettingModal; exports["default"] = _default; /***/ }), /* 186 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.combineReducersAsync = combineReducersAsync; exports["default"] = void 0; var _redux = __webpack_require__(12); var _connectedReactRouter = __webpack_require__(33); var _history = _interopRequireDefault(__webpack_require__(23)); var _hosts = _interopRequireDefault(__webpack_require__(233)); var _notifications = _interopRequireDefault(__webpack_require__(236)); var _PasswordStrength = __webpack_require__(111); var _BreadcrumbBar = __webpack_require__(74); var _AutoComplete = __webpack_require__(52); var _Layout = __webpack_require__(76); var _DiffModal = __webpack_require__(118); var _Editor = __webpack_require__(121); var _TemplateGenerator = __webpack_require__(100); var _slice = _interopRequireDefault(__webpack_require__(125)); var _Fill = __webpack_require__(318); var _TypeAheadSelect = __webpack_require__(129); var _AuditsPage = __webpack_require__(132); var _IntervalMiddleware = __webpack_require__(32); var _Bookmarks = __webpack_require__(373); var _Bookmarks2 = __webpack_require__(135); var _ForemanModal = __webpack_require__(43); var _API = __webpack_require__(8); var _ModelsPage = __webpack_require__(147); var _SettingRecords = __webpack_require__(157); var _PersonalAccessTokens = __webpack_require__(160); var _ConfirmModal = __webpack_require__(30); var _ToastsList = __webpack_require__(28); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function combineReducersAsync(asyncReducers) { return (0, _redux.combineReducers)(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, _Bookmarks.reducers), _Bookmarks2.reducers), {}, { hosts: _hosts["default"], notifications: _notifications["default"] }, _ToastsList.reducers), _PasswordStrength.reducers), _BreadcrumbBar.reducers), _Layout.reducers), asyncReducers), _AutoComplete.reducers), _DiffModal.reducers), _Editor.reducers), _TemplateGenerator.reducers), {}, { factChart: _slice["default"] }, _TypeAheadSelect.reducers), _SettingRecords.reducers), _PersonalAccessTokens.reducers), _ConfirmModal.reducers), {}, { router: (0, _connectedReactRouter.connectRouter)(_history["default"]) }, _Fill.reducers), _AuditsPage.reducers), _ForemanModal.reducers), _ModelsPage.reducers), _IntervalMiddleware.reducers), _API.reducers)); } var _default = combineReducersAsync(); exports["default"] = _default; /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.put = exports.post = exports.patch = exports.get = exports.apiAction = exports.APIActions = void 0; var _APIConstants = __webpack_require__(72); var GET = _APIConstants.API_OPERATIONS.GET, POST = _APIConstants.API_OPERATIONS.POST, PUT = _APIConstants.API_OPERATIONS.PUT, DELETE = _APIConstants.API_OPERATIONS.DELETE, PATCH = _APIConstants.API_OPERATIONS.PATCH; /** * an API action creator. * @param { String } type the API action type. * @param { Object } payload the API action payload. * @param { String } payload.key the unique key of the API request, will be used in the selector too. * @param { String } payload.url the url for the API request. * @param { String } payload.headers the API get request headers. * @param { Object } payload.params the API get request params. * @param { Function } payload.handleError an error handling callback. * @param { Function } payload.handleSuccess a success handling callback. * @param { Function } payload.errorToast an error toast will be triggered with this message after API error. * @param { Function } payload.successToast a succes toast will be triggered with this message after API success. * @param { Object } payload.payload the API payload which will be passed also to the reducer. * @param { Object } payload.actionTypes action types which will replace the default action types. */ var apiAction = function apiAction(type, payload) { return { type: type, payload: payload }; }; exports.apiAction = apiAction; var get = function get(payload) { return apiAction(GET, payload); }; exports.get = get; var post = function post(payload) { return apiAction(POST, payload); }; exports.post = post; var put = function put(payload) { return apiAction(PUT, payload); }; exports.put = put; var patch = function patch(payload) { return apiAction(PATCH, payload); }; exports.patch = patch; var APIActions = { get: get, post: post, put: put, patch: patch, "delete": function _delete(payload) { return apiAction(DELETE, payload); } }; exports.APIActions = APIActions; /***/ }), /* 188 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.updateBreadcrumbTitle = exports.toggleSwitcher = exports.removeSearchQuery = exports.loadSwitcherResourcesByResource = exports.createSearch = exports.closeSwitcher = void 0; var _lodash = __webpack_require__(10); var _I18n = __webpack_require__(2); var _API = __webpack_require__(8); var _BreadcrumbBarConstants = __webpack_require__(113); function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var toggleSwitcher = function toggleSwitcher() { return { type: _BreadcrumbBarConstants.BREADCRUMB_BAR_TOGGLE_SWITCHER }; }; exports.toggleSwitcher = toggleSwitcher; var closeSwitcher = function closeSwitcher() { return { type: _BreadcrumbBarConstants.BREADCRUMB_BAR_CLOSE_SWITCHER }; }; exports.closeSwitcher = closeSwitcher; var removeSearchQuery = function removeSearchQuery(resource) { return function (dispatch) { dispatch({ type: _BreadcrumbBarConstants.BREADCRUMB_BAR_CLEAR_SEARCH }); loadSwitcherResourcesByResource(resource)(dispatch); }; }; exports.removeSearchQuery = removeSearchQuery; var updateBreadcrumbTitle = function updateBreadcrumbTitle(title) { return { type: _BreadcrumbBarConstants.BREADCRUMB_BAR_UPDATE_TITLE, payload: title }; }; exports.updateBreadcrumbTitle = updateBreadcrumbTitle; var loadSwitcherResourcesByResource = function loadSwitcherResourcesByResource(resource) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$page = _ref.page, page = _ref$page === void 0 ? 1 : _ref$page, _ref$searchQuery = _ref.searchQuery, searchQuery = _ref$searchQuery === void 0 ? '' : _ref$searchQuery; return /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dispatch) { var resourceUrl, nameField, switcherItemUrl, options, beforeRequest, onRequestSuccess, onRequestFail, formatResults, response; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: resourceUrl = resource.resourceUrl, nameField = resource.nameField, switcherItemUrl = resource.switcherItemUrl; options = { page: page, searchQuery: searchQuery }; beforeRequest = function beforeRequest() { return dispatch({ type: _BreadcrumbBarConstants.BREADCRUMB_BAR_RESOURCES_REQUEST, payload: { resourceUrl: resourceUrl, options: options } }); }; onRequestSuccess = function onRequestSuccess(response) { return dispatch({ type: _BreadcrumbBarConstants.BREADCRUMB_BAR_RESOURCES_SUCCESS, payload: _objectSpread(_objectSpread({}, formatResults(response)), {}, { resourceUrl: resourceUrl }) }); }; onRequestFail = function onRequestFail(error) { return dispatch({ type: _BreadcrumbBarConstants.BREADCRUMB_BAR_RESOURCES_FAILURE, payload: { error: error, resourceUrl: resourceUrl } }); }; formatResults = function formatResults(_ref3) { var data = _ref3.data; var switcherItems = (0, _lodash.flatten)(Object.values(data.results)).map(function (result) { var itemName = (0, _lodash.get)(result, nameField); return { name: (0, _I18n.translate)(itemName), id: result.id, href: switcherItemUrl.replace(':id', result.id).replace(':name', itemName) }; }); return { items: switcherItems, page: Number(data.page), pages: Number(data.subtotal) / Number(data.per_page) }; }; beforeRequest(); _context.prev = 7; _context.next = 10; return _API.API.get(resourceUrl, {}, { page: page, per_page: 10, search: createSearch(nameField, searchQuery, resource.resourceFilter) }); case 10: response = _context.sent; return _context.abrupt("return", onRequestSuccess(response)); case 14: _context.prev = 14; _context.t0 = _context["catch"](7); return _context.abrupt("return", onRequestFail(_context.t0)); case 17: case "end": return _context.stop(); } }, _callee, null, [[7, 14]]); })); return function (_x) { return _ref2.apply(this, arguments); }; }(); }; exports.loadSwitcherResourcesByResource = loadSwitcherResourcesByResource; var createSearch = function createSearch(nameField, searchQuery, resourceFilter) { var query = ''; if (resourceFilter) { query += resourceFilter; } if (query && searchQuery) { query += " AND ".concat(simpleNameQuery(nameField, searchQuery)); } else { query += simpleNameQuery(nameField, searchQuery); } return query; }; exports.createSearch = createSearch; var simpleNameQuery = function simpleNameQuery(nameField, searchQuery) { return searchQuery ? "".concat([nameField], "~").concat(searchQuery) : ''; }; /***/ }), /* 189 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.updateDisability = exports.updateController = exports.resetData = exports.initialUpdate = exports.getResults = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _lodash = __webpack_require__(10); var _API = __webpack_require__(8); var _constants = __webpack_require__(7); var _helpers = __webpack_require__(3); var _AutoCompleteConstants = __webpack_require__(49); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var getResults = function getResults(_ref) { var url = _ref.url, searchQuery = _ref.searchQuery, controller = _ref.controller, trigger = _ref.trigger, id = _ref.id; return function (dispatch) { dispatch(startRequest({ controller: controller, searchQuery: searchQuery, trigger: trigger, dispatch: dispatch, id: id, url: url })); return createAPIRequest({ searchQuery: searchQuery, trigger: trigger, id: id, dispatch: dispatch, url: url }); }; }; exports.getResults = getResults; var createAPIRequest = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) { var searchQuery, trigger, id, dispatch, url, path, _yield$API$get, data; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: searchQuery = _ref2.searchQuery, trigger = _ref2.trigger, id = _ref2.id, dispatch = _ref2.dispatch, url = _ref2.url; if (url) { _context.next = 3; break; } return _context.abrupt("return", dispatch(requestFailure({ error: new Error('No API path was provided.'), id: id, dispatch: dispatch, isVisible: false }))); case 3: _context.prev = 3; path = getAPIPath({ trigger: trigger, searchQuery: searchQuery, url: url }); _context.next = 7; return _API.API.get(path); case 7: _yield$API$get = _context.sent; data = _yield$API$get.data; return _context.abrupt("return", dispatch(requestSuccess({ data: data, dispatch: dispatch, trigger: trigger, id: id }))); case 12: _context.prev = 12; _context.t0 = _context["catch"](3); return _context.abrupt("return", dispatch(requestFailure({ error: _context.t0, id: id, dispatch: dispatch, isVisible: _context.t0.message === 'Network Error' }))); case 15: case "end": return _context.stop(); } }, _callee, null, [[3, 12]]); })); return function createAPIRequest(_x) { return _ref3.apply(this, arguments); }; }(); createAPIRequest = (0, _lodash.debounce)(createAPIRequest, 250); var startRequest = function startRequest(_ref4) { var controller = _ref4.controller, searchQuery = _ref4.searchQuery, trigger = _ref4.trigger, id = _ref4.id, url = _ref4.url; return { type: _AutoCompleteConstants.AUTO_COMPLETE_REQUEST, payload: { controller: controller, searchQuery: searchQuery, status: _constants.STATUS.PENDING, trigger: trigger, error: null, id: id, url: url } }; }; var requestSuccess = function requestSuccess(_ref5) { var data = _ref5.data, trigger = _ref5.trigger, id = _ref5.id; var _ref6 = data[0] || {}, error = _ref6.error; if (error) { return requestFailure({ error: new Error(error), id: id }); } if (!Array.isArray(data)) { var noDataError = new Error("Response data is not an array, instead received: ".concat(JSON.stringify(data))); return requestFailure({ error: noDataError, id: id, isVisible: false }); } var results = data.map(function (result) { return objectDeepTrim(result, trigger); }); return { type: _AutoCompleteConstants.AUTO_COMPLETE_SUCCESS, payload: { results: results, status: _constants.STATUS.RESOLVED, id: id } }; }; var requestFailure = function requestFailure(_ref7) { var error = _ref7.error, id = _ref7.id, _ref7$isVisible = _ref7.isVisible, isVisible = _ref7$isVisible === void 0 ? true : _ref7$isVisible; return { type: _AutoCompleteConstants.AUTO_COMPLETE_FAILURE, payload: { results: [], error: error.message, isErrorVisible: isVisible, status: _constants.STATUS.ERROR, id: id } }; }; var isFinishedWithPoint = function isFinishedWithPoint(string) { return string.slice(-1) === '.'; }; var getAPIPath = function getAPIPath(_ref8) { var trigger = _ref8.trigger, searchQuery = _ref8.searchQuery, url = _ref8.url; var loadNextResults = trigger === _AutoCompleteConstants.TRIGGERS.ITEM_SELECT && !isFinishedWithPoint(searchQuery) ? ' ' : ''; var APISearchQuery = searchQuery + loadNextResults; var APIPath = new _urijs["default"](url); APIPath.addSearch({ search: APISearchQuery }); return APIPath.toString(); }; var resetData = function resetData(controller, id) { return { type: _AutoCompleteConstants.AUTO_COMPLETE_RESET, payload: { controller: controller, id: id } }; }; exports.resetData = resetData; var initialUpdate = function initialUpdate(_ref9) { var searchQuery = _ref9.searchQuery, controller = _ref9.controller, error = _ref9.error, id = _ref9.id, url = _ref9.url, disabled = _ref9.disabled; return { type: _AutoCompleteConstants.AUTO_COMPLETE_INIT, payload: { searchQuery: searchQuery, controller: controller, trigger: _AutoCompleteConstants.TRIGGERS.COMPONENT_DID_MOUNT, status: _constants.STATUS.RESOLVED, error: error, isErrorVisible: !!error, id: id, disabled: disabled, url: url } }; }; exports.initialUpdate = initialUpdate; var objectDeepTrim = function objectDeepTrim(obj, trigger) { var copy = _objectSpread({}, obj); Object.keys(copy).forEach(function (key) { var addSpace = key === 'label' && trigger === _AutoCompleteConstants.TRIGGERS.ITEM_SELECT ? ' ' : ''; copy[key] = (0, _helpers.clearSpaces)(copy[key]) + addSpace; }); return copy; }; var updateDisability = function updateDisability(disabled, id) { return { type: _AutoCompleteConstants.AUTO_COMPLETE_DISABLED_CHANGE, payload: { disabled: disabled, id: id } }; }; exports.updateDisability = updateDisability; var updateController = function updateController(controller, url, id) { return { type: _AutoCompleteConstants.AUTO_COMPLETE_CONTROLLER_CHANGE, payload: { controller: controller, url: url, trigger: _AutoCompleteConstants.TRIGGERS.CONTROLLER_CHANGED, id: id } }; }; exports.updateController = updateController; /***/ }), /* 190 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toggleModal = exports.createDiff = exports.changeViewType = void 0; var _DiffModalConstants = __webpack_require__(119); var toggleModal = function toggleModal() { return { type: _DiffModalConstants.DIFF_MODAL_TOGGLE }; }; exports.toggleModal = toggleModal; var changeViewType = function changeViewType(viewType) { return function (dispatch) { dispatch({ type: _DiffModalConstants.DIFF_MODAL_VIEWTYPE, payload: { diffViewType: viewType } }); }; }; exports.changeViewType = changeViewType; var createDiff = function createDiff(diff, title) { return function (dispatch) { dispatch({ type: _DiffModalConstants.DIFF_MODAL_CREATE, payload: { diff: diff, title: title, isOpen: true } }); }; }; exports.createDiff = createDiff; /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.toggleRenderView = exports.toggleModal = exports.toggleMaskValue = exports.revertChanges = exports.previewTemplate = exports.onSearchClear = exports.onHostSelectToggle = exports.onHostSearch = exports.initializeEditor = exports.importFile = exports.fetchTemplatePreview = exports.fetchAndPreview = exports.dismissErrorToast = exports.changeTab = exports.changeSetting = exports.changeEditorValue = exports.changeDiffViewType = void 0; var _lodash = __webpack_require__(10); var _API = __webpack_require__(8); var _I18n = __webpack_require__(2); var _EditorConstants = __webpack_require__(55); var _EditorSelectors = __webpack_require__(122); function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var initializeEditor = function initializeEditor(initializeData) { return function (dispatch) { var template = initializeData.template, locked = initializeData.locked, type = initializeData.type, templateClass = initializeData.templateClass, readOnly = initializeData.readOnly, isMasked = initializeData.isMasked, selectedView = initializeData.selectedView, isRendering = initializeData.isRendering, previewResult = initializeData.previewResult, showError = initializeData.showError; var initialState = {}; // initialize after changing editors initialState.selectedHost = { id: '', name: '' }; initialState.hosts = []; initialState.isSearchingHosts = false; initialState.value = template || ''; initialState.templateClass = templateClass; if (readOnly !== locked) { if (locked === true) initialState.readOnly = true;else initialState.readOnly = false; } if (isMasked && type === 'templates') initialState.isMasked = false; if (selectedView !== 'input') initialState.selectedView = 'input'; if (isRendering) initialState.isRendering = false; if (previewResult !== '') initialState.previewResult = ''; if (showError) initialState.showError = false; dispatch({ type: _EditorConstants.EDITOR_INITIALIZE, payload: initialState }); }; }; exports.initializeEditor = initializeEditor; var importFile = function importFile(e) { return function (dispatch) { var reader = new FileReader(); reader.onloadstart = function () { return dispatch({ type: _EditorConstants.EDITOR_SHOW_LOADING }); }; reader.onloadend = function () { return dispatch({ type: _EditorConstants.EDITOR_HIDE_LOADING }); }; reader.onload = function (event) { dispatch({ type: _EditorConstants.EDITOR_IMPORT_FILE, payload: { value: event.target.result } }); }; reader.readAsText(e.target.files[0]); }; }; exports.importFile = importFile; var revertChanges = function revertChanges(template) { return function (dispatch) { dispatch({ type: _EditorConstants.EDITOR_REVERT_CHANGES, payload: { value: template || '', isRendering: false } }); }; }; exports.revertChanges = revertChanges; var previewTemplate = function previewTemplate(_ref) { var host = _ref.host, renderPath = _ref.renderPath; return /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dispatch, getState) { var id, name, templateValue, isErrorShown, params, response; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: id = host.id, name = host.name; if ((0, _EditorSelectors.selectIsSelectOpen)(getState())) dispatch({ type: _EditorConstants.EDITOR_HOST_SELECT_TOGGLE }); templateValue = (0, _EditorSelectors.selectValue)(getState()); isErrorShown = (0, _EditorSelectors.selectShowError)(getState()); params = { template: templateValue, /* eslint-disable camelcase */ preview_host_id: id }; dispatch({ type: _EditorConstants.EDITOR_SHOW_LOADING }); _context.prev = 6; _context.next = 9; return fetchTemplatePreview(renderPath, params); case 9: response = _context.sent; if (isErrorShown) dispatch(dismissErrorToast()); dispatch({ type: _EditorConstants.EDITOR_HIDE_LOADING }); dispatch({ type: _EditorConstants.EDITOR_EXEC_PREVIEW, payload: { renderedEditorValue: templateValue, selectedHost: { id: (0, _lodash.toString)(id), name: name }, previewResult: response.data, isSearchingHosts: false } }); _context.next = 19; break; case 15: _context.prev = 15; _context.t0 = _context["catch"](6); dispatch({ type: _EditorConstants.EDITOR_HIDE_LOADING }); dispatch({ type: _EditorConstants.EDITOR_SHOW_ERROR, payload: { renderedEditorValue: templateValue, showError: true, errorText: _context.t0.response ? (0, _I18n.translate)(_context.t0.response.data) : '', previewResult: (0, _I18n.translate)('Error during rendering, Return to Editor tab.'), selectedHost: { id: (0, _lodash.toString)(id), name: name } } }); case 19: case "end": return _context.stop(); } }, _callee, null, [[6, 15]]); })); return function (_x, _x2) { return _ref2.apply(this, arguments); }; }(); }; exports.previewTemplate = previewTemplate; var fetchTemplatePreview = function fetchTemplatePreview(renderPath, params) { return _API.API.post(renderPath, params); }; // fetch & debounced fetch exports.fetchTemplatePreview = fetchTemplatePreview; var fetchHosts = function fetchHosts() { var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var array = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _EditorConstants.EDITOR_HOST_ARR; var url = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _EditorConstants.EDITOR_HOSTS_URL; return function (dispatch, getState) { return createHostAPIRequest(query, array, url, dispatch, getState); }; }; var debouncedFetchHosts = function debouncedFetchHosts() { var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var array = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _EditorConstants.EDITOR_HOST_ARR; var url = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _EditorConstants.EDITOR_HOSTS_URL; return function (dispatch, getState) { return debouncedCreateHostAPIRequest(query, array, url, dispatch, getState); }; }; // API & debounced API var createHostAPIRequest = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(query, array, url, dispatch, getState) { var onResultsSuccess, onResultsError, response; return _regeneratorRuntime().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: onResultsSuccess = function onResultsSuccess(response) { return dispatch({ type: _EditorConstants.EDITOR_FETCH_HOST_RESOLVED, payload: _defineProperty({}, array, response.data) }); }; onResultsError = function onResultsError(response) { return dispatch({ type: _EditorConstants.EDITOR_SHOW_ERROR, payload: { showError: true, errorText: (0, _I18n.translate)("Host Fetch ".concat(response)), previewResult: (0, _I18n.translate)('Error during rendering, Return to Editor tab.') } }); }; _context2.prev = 2; _context2.next = 5; return _API.API.get(url, {}, { q: query, scope: (0, _EditorSelectors.selectTemplateClass)(getState()) }); case 5: response = _context2.sent; return _context2.abrupt("return", onResultsSuccess(response)); case 9: _context2.prev = 9; _context2.t0 = _context2["catch"](2); return _context2.abrupt("return", onResultsError(_context2.t0)); case 12: case "end": return _context2.stop(); } }, _callee2, null, [[2, 9]]); })); return function createHostAPIRequest(_x3, _x4, _x5, _x6, _x7) { return _ref3.apply(this, arguments); }; }(); var debouncedCreateHostAPIRequest = (0, _lodash.debounce)(createHostAPIRequest, 250); var onHostSearch = function onHostSearch(e) { return function (dispatch, getState) { if (e.target.value === '') return dispatch({ type: _EditorConstants.EDITOR_HOST_SELECT_RESET }); var payload = { isFetchingHosts: true, searchQuery: e.target.value, isSearchingHosts: true }; dispatch({ type: _EditorConstants.EDITOR_FETCH_HOST_PENDING, payload: payload }); return dispatch(debouncedFetchHosts(e.target.value, _EditorConstants.EDITOR_HOST_FILTERED_ARR)); }; }; exports.onHostSearch = onHostSearch; var fetchAndPreview = function fetchAndPreview(renderPath) { return /*#__PURE__*/function () { var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(dispatch, getState) { var hosts; return _regeneratorRuntime().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: dispatch({ type: _EditorConstants.EDITOR_SHOW_LOADING }); _context3.next = 3; return dispatch(fetchHosts()); case 3: hosts = (0, _EditorSelectors.selectHosts)(getState()); if (hosts.length > 0) dispatch(previewTemplate({ host: hosts[0], renderPath: renderPath }));else dispatch({ type: _EditorConstants.EDITOR_HIDE_LOADING }); case 5: case "end": return _context3.stop(); } }, _callee3); })); return function (_x8, _x9) { return _ref4.apply(this, arguments); }; }(); }; exports.fetchAndPreview = fetchAndPreview; var toggleModal = function toggleModal() { return { type: _EditorConstants.EDITOR_MODAL_TOGGLE }; }; exports.toggleModal = toggleModal; var changeDiffViewType = function changeDiffViewType(viewType) { return function (dispatch) { dispatch({ type: _EditorConstants.EDITOR_CHANGE_DIFF_VIEW, payload: viewType }); }; }; exports.changeDiffViewType = changeDiffViewType; var changeEditorValue = function changeEditorValue(value) { return function (dispatch) { dispatch({ type: _EditorConstants.EDITOR_CHANGE_VALUE, payload: value }); }; }; exports.changeEditorValue = changeEditorValue; var dismissErrorToast = function dismissErrorToast() { return function (dispatch) { dispatch({ type: _EditorConstants.EDITOR_DISMISS_ERROR, payload: { showError: false, errorText: '' } }); }; }; exports.dismissErrorToast = dismissErrorToast; var changeTab = function changeTab(selectedView) { return function (dispatch) { dispatch({ type: _EditorConstants.EDITOR_CHANGE_TAB, payload: selectedView }); }; }; exports.changeTab = changeTab; var toggleMaskValue = function toggleMaskValue() { return { type: _EditorConstants.EDITOR_TOGGLE_MASK }; }; exports.toggleMaskValue = toggleMaskValue; var changeSetting = function changeSetting(newSetting) { return function (dispatch) { dispatch({ type: _EditorConstants.EDITOR_CHANGE_SETTING, payload: newSetting }); }; }; exports.changeSetting = changeSetting; var toggleRenderView = function toggleRenderView(isRendering) { return { type: _EditorConstants.EDITOR_TOGGLE_RENDER_VIEW }; }; exports.toggleRenderView = toggleRenderView; var onSearchClear = function onSearchClear() { return { type: _EditorConstants.EDITOR_HOST_SELECT_CLEAR }; }; exports.onSearchClear = onSearchClear; var onHostSelectToggle = function onHostSelectToggle() { return { type: _EditorConstants.EDITOR_HOST_SELECT_TOGGLE }; }; exports.onHostSelectToggle = onHostSelectToggle; /***/ }), /* 192 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateSelected = exports.updateOptions = exports.initialUpdate = void 0; var _TypeAheadSelectConstants = __webpack_require__(130); var _TypeAheadSelectSelectors = __webpack_require__(131); var initialUpdate = function initialUpdate(options, selected, id) { return { type: _TypeAheadSelectConstants.INIT, payload: { id: id, options: options, selected: selected } }; }; exports.initialUpdate = initialUpdate; var updateOptions = function updateOptions(options, id) { return { type: _TypeAheadSelectConstants.UPDATE_OPTIONS, payload: { id: id, options: options } }; }; exports.updateOptions = updateOptions; var updateSelected = function updateSelected(selected, id) { return { type: _TypeAheadSelectConstants.UPDATE_SELECTED, payload: { id: id, selected: (0, _TypeAheadSelectSelectors.mapSelected)(selected) } }; }; exports.updateSelected = updateSelected; /***/ }), /* 193 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _Pagination = _interopRequireDefault(__webpack_require__(85)); var _excluded = ["onPageSet", "onPerPageSelect", "onChange", "pagination", "dropdownButtonId", "itemCount", "viewType"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var PaginationWrapper = function PaginationWrapper(props) { var onPageSet = props.onPageSet, onPerPageSelect = props.onPerPageSelect, onChange = props.onChange, pagination = props.pagination, dropdownButtonId = props.dropdownButtonId, itemCount = props.itemCount, viewType = props.viewType, otherProps = _objectWithoutProperties(props, _excluded); var onPageSetUpdate = function onPageSetUpdate(page) { update({ page: page }); onPageSet(page); }; var onPerPageSelectUpdate = function onPerPageSelectUpdate(perPage) { update({ perPage: perPage, page: 1 }); onPerPageSelect(perPage); }; var update = function update(changes) { var newPagination = _objectSpread(_objectSpread({}, pagination), changes); onChange({ page: newPagination.page, perPage: newPagination.perPage }); }; return /*#__PURE__*/_react["default"].createElement(_Pagination["default"], _extends({ data: { itemCount: itemCount, viewType: viewType }, onPageSet: onPageSetUpdate, onPerPageSelect: onPerPageSelectUpdate, dropdownButtonId: dropdownButtonId, pagination: pagination }, otherProps)); }; PaginationWrapper.defaultProps = _objectSpread(_objectSpread({ onChange: function onChange() {}, viewType: 'list' }, _patternflyReact.Paginator.defaultProps), {}, { pagination: {} }); delete PaginationWrapper.defaultProps.messages; PaginationWrapper.propTypes = _objectSpread(_objectSpread({}, _patternflyReact.Paginator.propTypes), {}, { /** page and per-page selection callback */ onChange: _propTypes["default"].func, /** view type */ viewType: _propTypes["default"].string, /** pagination */ pagination: _propTypes["default"].shape({ /** the current page */ page: _propTypes["default"].number, /** the current per page setting */ perPage: _propTypes["default"].number, /** per page options */ perPageOptions: _propTypes["default"].arrayOf(_propTypes["default"].number) }) }); var _default = PaginationWrapper; exports["default"] = _default; /***/ }), /* 194 */, /* 195 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateDisk = exports.updateController = exports.removeDisk = exports.removeController = exports.initController = exports.fetchStoragePods = exports.fetchDatastores = exports.changeCluster = exports.addDisk = exports.addController = void 0; var _consts = __webpack_require__(50); var _API = __webpack_require__(8); var _vmware = __webpack_require__(440); var updateDisk = function updateDisk(key, newValues) { return { type: _consts.STORAGE_VMWARE_UPDATE_DISK, payload: { key: key, newValues: newValues } }; }; exports.updateDisk = updateDisk; var initController = function initController(config, cluster, controllers, volumes) { return function (dispatch) { dispatch({ type: _consts.STORAGE_VMWARE_INIT, payload: { config: config, controllers: controllers || _vmware.defaultControllerAttributes, volumes: volumes || _vmware.getDefaultDiskAttributes, cluster: cluster } }); if (cluster) { dispatch(fetchDatastores(config.datastoresUrl, cluster)); dispatch(fetchStoragePods(config.storagePodsUrl, cluster)); } }; }; exports.initController = initController; var changeCluster = function changeCluster(newCluster) { return function (dispatch, getState) { var config = getState().hosts.storage.vmware.config; if (newCluster === '') newCluster = null; dispatch({ type: _consts.VMWARE_CLUSTER_CHANGE, payload: { cluster: newCluster } }); if (newCluster) { dispatch(fetchDatastores(config.datastoresUrl, newCluster)); dispatch(fetchStoragePods(config.storagePodsUrl, newCluster)); } }; }; exports.changeCluster = changeCluster; var fetchStorages = function fetchStorages(url, cluster, key) { return (0, _API.get)({ key: key, url: url, payload: { params: { cluster_id: cluster } } }); }; var fetchDatastores = function fetchDatastores(url, cluster) { return fetchStorages(url, cluster, _consts.STORAGE_VMWARE_DATASTORES); }; exports.fetchDatastores = fetchDatastores; var fetchStoragePods = function fetchStoragePods(url, cluster) { return fetchStorages(url, cluster, _consts.STORAGE_VMWARE_STORAGEPODS); }; exports.fetchStoragePods = fetchStoragePods; var addController = function addController(data) { return { type: _consts.STORAGE_VMWARE_ADD_CONTROLLER, payload: { controller: _vmware.defaultControllerAttributes, volume: _vmware.getDefaultDiskAttributes } }; }; exports.addController = addController; var updateController = function updateController(idx, newValues) { return { type: _consts.STORAGE_VMWARE_UPDATE_CONTROLLER, payload: { idx: idx, newValues: newValues } }; }; exports.updateController = updateController; var removeDisk = function removeDisk(key) { return { type: _consts.STORAGE_VMWARE_REMOVE_DISK, payload: { key: key } }; }; exports.removeDisk = removeDisk; var removeController = function removeController(controllerKey) { return { type: _consts.STORAGE_VMWARE_REMOVE_CONTROLLER, payload: { controllerKey: controllerKey } }; }; exports.removeController = removeController; var addDisk = function addDisk(controllerKey) { return { type: _consts.STORAGE_VMWARE_ADD_DISK, payload: { controllerKey: controllerKey, data: _vmware.getDefaultDiskAttributes } }; }; exports.addDisk = addDisk; /***/ }), /* 196 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_DND_HTML_5_BACKEND__; /***/ }), /* 197 */ /***/ (function(module, exports, __webpack_require__) { /** * @preserve jed.js https://github.com/SlexAxton/Jed */ /* ----------- A gettext compatible i18n library for modern JavaScript Applications by Alex Sexton - AlexSexton [at] gmail - @SlexAxton MIT License A jQuery Foundation project - requires CLA to contribute - https://contribute.jquery.org/CLA/ Jed offers the entire applicable GNU gettext spec'd set of functions, but also offers some nicer wrappers around them. The api for gettext was written for a language with no function overloading, so Jed allows a little more of that. Many thanks to Joshua I. Miller - unrtst@cpan.org - who wrote gettext.js back in 2008. I was able to vet a lot of my ideas against his. I also made sure Jed passed against his tests in order to offer easy upgrades -- jsgettext.berlios.de */ (function (root, undef) { // Set up some underscore-style functions, if you already have // underscore, feel free to delete this section, and use it // directly, however, the amount of functions used doesn't // warrant having underscore as a full dependency. // Underscore 1.3.0 was used to port and is licensed // under the MIT License by Jeremy Ashkenas. var ArrayProto = Array.prototype, ObjProto = Object.prototype, slice = ArrayProto.slice, hasOwnProp = ObjProto.hasOwnProperty, nativeForEach = ArrayProto.forEach, breaker = {}; // We're not using the OOP style _ so we don't need the // extra level of indirection. This still means that you // sub out for real `_` though. var _ = { forEach : function( obj, iterator, context ) { var i, l, key; if ( obj === null ) { return; } if ( nativeForEach && obj.forEach === nativeForEach ) { obj.forEach( iterator, context ); } else if ( obj.length === +obj.length ) { for ( i = 0, l = obj.length; i < l; i++ ) { if ( i in obj && iterator.call( context, obj[i], i, obj ) === breaker ) { return; } } } else { for ( key in obj) { if ( hasOwnProp.call( obj, key ) ) { if ( iterator.call (context, obj[key], key, obj ) === breaker ) { return; } } } } }, extend : function( obj ) { this.forEach( slice.call( arguments, 1 ), function ( source ) { for ( var prop in source ) { obj[prop] = source[prop]; } }); return obj; } }; // END Miniature underscore impl // Jed is a constructor function var Jed = function ( options ) { // Some minimal defaults this.defaults = { "locale_data" : { "messages" : { "" : { "domain" : "messages", "lang" : "en", "plural_forms" : "nplurals=2; plural=(n != 1);" } // There are no default keys, though } }, // The default domain if one is missing "domain" : "messages", // enable debug mode to log untranslated strings to the console "debug" : false }; // Mix in the sent options with the default options this.options = _.extend( {}, this.defaults, options ); this.textdomain( this.options.domain ); if ( options.domain && ! this.options.locale_data[ this.options.domain ] ) { throw new Error('Text domain set to non-existent domain: `' + options.domain + '`'); } }; // The gettext spec sets this character as the default // delimiter for context lookups. // e.g.: context\u0004key // If your translation company uses something different, // just change this at any time and it will use that instead. Jed.context_delimiter = String.fromCharCode( 4 ); function getPluralFormFunc ( plural_form_string ) { return Jed.PF.compile( plural_form_string || "nplurals=2; plural=(n != 1);"); } function Chain( key, i18n ){ this._key = key; this._i18n = i18n; } // Create a chainable api for adding args prettily _.extend( Chain.prototype, { onDomain : function ( domain ) { this._domain = domain; return this; }, withContext : function ( context ) { this._context = context; return this; }, ifPlural : function ( num, pkey ) { this._val = num; this._pkey = pkey; return this; }, fetch : function ( sArr ) { if ( {}.toString.call( sArr ) != '[object Array]' ) { sArr = [].slice.call(arguments, 0); } return ( sArr && sArr.length ? Jed.sprintf : function(x){ return x; } )( this._i18n.dcnpgettext(this._domain, this._context, this._key, this._pkey, this._val), sArr ); } }); // Add functions to the Jed prototype. // These will be the functions on the object that's returned // from creating a `new Jed()` // These seem redundant, but they gzip pretty well. _.extend( Jed.prototype, { // The sexier api start point translate : function ( key ) { return new Chain( key, this ); }, textdomain : function ( domain ) { if ( ! domain ) { return this._textdomain; } this._textdomain = domain; }, gettext : function ( key ) { return this.dcnpgettext.call( this, undef, undef, key ); }, dgettext : function ( domain, key ) { return this.dcnpgettext.call( this, domain, undef, key ); }, dcgettext : function ( domain , key /*, category */ ) { // Ignores the category anyways return this.dcnpgettext.call( this, domain, undef, key ); }, ngettext : function ( skey, pkey, val ) { return this.dcnpgettext.call( this, undef, undef, skey, pkey, val ); }, dngettext : function ( domain, skey, pkey, val ) { return this.dcnpgettext.call( this, domain, undef, skey, pkey, val ); }, dcngettext : function ( domain, skey, pkey, val/*, category */) { return this.dcnpgettext.call( this, domain, undef, skey, pkey, val ); }, pgettext : function ( context, key ) { return this.dcnpgettext.call( this, undef, context, key ); }, dpgettext : function ( domain, context, key ) { return this.dcnpgettext.call( this, domain, context, key ); }, dcpgettext : function ( domain, context, key/*, category */) { return this.dcnpgettext.call( this, domain, context, key ); }, npgettext : function ( context, skey, pkey, val ) { return this.dcnpgettext.call( this, undef, context, skey, pkey, val ); }, dnpgettext : function ( domain, context, skey, pkey, val ) { return this.dcnpgettext.call( this, domain, context, skey, pkey, val ); }, // The most fully qualified gettext function. It has every option. // Since it has every option, we can use it from every other method. // This is the bread and butter. // Technically there should be one more argument in this function for 'Category', // but since we never use it, we might as well not waste the bytes to define it. dcnpgettext : function ( domain, context, singular_key, plural_key, val ) { // Set some defaults plural_key = plural_key || singular_key; // Use the global domain default if one // isn't explicitly passed in domain = domain || this._textdomain; var fallback; // Handle special cases // No options found if ( ! this.options ) { // There's likely something wrong, but we'll return the correct key for english // We do this by instantiating a brand new Jed instance with the default set // for everything that could be broken. fallback = new Jed(); return fallback.dcnpgettext.call( fallback, undefined, undefined, singular_key, plural_key, val ); } // No translation data provided if ( ! this.options.locale_data ) { throw new Error('No locale data provided.'); } if ( ! this.options.locale_data[ domain ] ) { throw new Error('Domain `' + domain + '` was not found.'); } if ( ! this.options.locale_data[ domain ][ "" ] ) { throw new Error('No locale meta information provided.'); } // Make sure we have a truthy key. Otherwise we might start looking // into the empty string key, which is the options for the locale // data. if ( ! singular_key ) { throw new Error('No translation key found.'); } var key = context ? context + Jed.context_delimiter + singular_key : singular_key, locale_data = this.options.locale_data, dict = locale_data[ domain ], defaultConf = (locale_data.messages || this.defaults.locale_data.messages)[""], pluralForms = dict[""].plural_forms || dict[""]["Plural-Forms"] || dict[""]["plural-forms"] || defaultConf.plural_forms || defaultConf["Plural-Forms"] || defaultConf["plural-forms"], val_list, res; var val_idx; if (val === undefined) { // No value passed in; assume singular key lookup. val_idx = 0; } else { // Value has been passed in; use plural-forms calculations. // Handle invalid numbers, but try casting strings for good measure if ( typeof val != 'number' ) { val = parseInt( val, 10 ); if ( isNaN( val ) ) { throw new Error('The number that was passed in is not a number.'); } } val_idx = getPluralFormFunc(pluralForms)(val); } // Throw an error if a domain isn't found if ( ! dict ) { throw new Error('No domain named `' + domain + '` could be found.'); } val_list = dict[ key ]; // If there is no match, then revert back to // english style singular/plural with the keys passed in. if ( ! val_list || val_idx > val_list.length ) { if (this.options.missing_key_callback) { this.options.missing_key_callback(key, domain); } res = [ singular_key, plural_key ]; // collect untranslated strings if (this.options.debug===true) { console.log(res[ getPluralFormFunc(pluralForms)( val ) ]); } return res[ getPluralFormFunc()( val ) ]; } res = val_list[ val_idx ]; // This includes empty strings on purpose if ( ! res ) { res = [ singular_key, plural_key ]; return res[ getPluralFormFunc()( val ) ]; } return res; } }); // We add in sprintf capabilities for post translation value interolation // This is not internally used, so you can remove it if you have this // available somewhere else, or want to use a different system. // We _slightly_ modify the normal sprintf behavior to more gracefully handle // undefined values. /** sprintf() for JavaScript 0.7-beta1 http://www.diveintojavascript.com/projects/javascript-sprintf Copyright (c) Alexandru Marasteanu All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of sprintf() for JavaScript nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ var sprintf = (function() { function get_type(variable) { return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase(); } function str_repeat(input, multiplier) { for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */} return output.join(''); } var str_format = function() { if (!str_format.cache.hasOwnProperty(arguments[0])) { str_format.cache[arguments[0]] = str_format.parse(arguments[0]); } return str_format.format.call(null, str_format.cache[arguments[0]], arguments); }; str_format.format = function(parse_tree, argv) { var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length; for (i = 0; i < tree_length; i++) { node_type = get_type(parse_tree[i]); if (node_type === 'string') { output.push(parse_tree[i]); } else if (node_type === 'array') { match = parse_tree[i]; // convenience purposes only if (match[2]) { // keyword argument arg = argv[cursor]; for (k = 0; k < match[2].length; k++) { if (!arg.hasOwnProperty(match[2][k])) { throw(sprintf('[sprintf] property "%s" does not exist', match[2][k])); } arg = arg[match[2][k]]; } } else if (match[1]) { // positional argument (explicit) arg = argv[match[1]]; } else { // positional argument (implicit) arg = argv[cursor++]; } if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) { throw(sprintf('[sprintf] expecting number but found %s', get_type(arg))); } // Jed EDIT if ( typeof arg == 'undefined' || arg === null ) { arg = ''; } // Jed EDIT switch (match[8]) { case 'b': arg = arg.toString(2); break; case 'c': arg = String.fromCharCode(arg); break; case 'd': arg = parseInt(arg, 10); break; case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break; case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break; case 'o': arg = arg.toString(8); break; case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break; case 'u': arg = Math.abs(arg); break; case 'x': arg = arg.toString(16); break; case 'X': arg = arg.toString(16).toUpperCase(); break; } arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg); pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' '; pad_length = match[6] - String(arg).length; pad = match[6] ? str_repeat(pad_character, pad_length) : ''; output.push(match[5] ? arg + pad : pad + arg); } } return output.join(''); }; str_format.cache = {}; str_format.parse = function(fmt) { var _fmt = fmt, match = [], parse_tree = [], arg_names = 0; while (_fmt) { if ((match = /^[^\x25]+/.exec(_fmt)) !== null) { parse_tree.push(match[0]); } else if ((match = /^\x25{2}/.exec(_fmt)) !== null) { parse_tree.push('%'); } else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) { if (match[2]) { arg_names |= 1; var field_list = [], replacement_field = match[2], field_match = []; if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) { field_list.push(field_match[1]); while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') { if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) { field_list.push(field_match[1]); } else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) { field_list.push(field_match[1]); } else { throw('[sprintf] huh?'); } } } else { throw('[sprintf] huh?'); } match[2] = field_list; } else { arg_names |= 2; } if (arg_names === 3) { throw('[sprintf] mixing positional and named placeholders is not (yet) supported'); } parse_tree.push(match); } else { throw('[sprintf] huh?'); } _fmt = _fmt.substring(match[0].length); } return parse_tree; }; return str_format; })(); var vsprintf = function(fmt, argv) { argv.unshift(fmt); return sprintf.apply(null, argv); }; Jed.parse_plural = function ( plural_forms, n ) { plural_forms = plural_forms.replace(/n/g, n); return Jed.parse_expression(plural_forms); }; Jed.sprintf = function ( fmt, args ) { if ( {}.toString.call( args ) == '[object Array]' ) { return vsprintf( fmt, [].slice.call(args) ); } return sprintf.apply(this, [].slice.call(arguments) ); }; Jed.prototype.sprintf = function () { return Jed.sprintf.apply(this, arguments); }; // END sprintf Implementation // Start the Plural forms section // This is a full plural form expression parser. It is used to avoid // running 'eval' or 'new Function' directly against the plural // forms. // // This can be important if you get translations done through a 3rd // party vendor. I encourage you to use this instead, however, I // also will provide a 'precompiler' that you can use at build time // to output valid/safe function representations of the plural form // expressions. This means you can build this code out for the most // part. Jed.PF = {}; Jed.PF.parse = function ( p ) { var plural_str = Jed.PF.extractPluralExpr( p ); return Jed.PF.parser.parse.call(Jed.PF.parser, plural_str); }; Jed.PF.compile = function ( p ) { // Handle trues and falses as 0 and 1 function imply( val ) { return (val === true ? 1 : val ? val : 0); } var ast = Jed.PF.parse( p ); return function ( n ) { return imply( Jed.PF.interpreter( ast )( n ) ); }; }; Jed.PF.interpreter = function ( ast ) { return function ( n ) { var res; switch ( ast.type ) { case 'GROUP': return Jed.PF.interpreter( ast.expr )( n ); case 'TERNARY': if ( Jed.PF.interpreter( ast.expr )( n ) ) { return Jed.PF.interpreter( ast.truthy )( n ); } return Jed.PF.interpreter( ast.falsey )( n ); case 'OR': return Jed.PF.interpreter( ast.left )( n ) || Jed.PF.interpreter( ast.right )( n ); case 'AND': return Jed.PF.interpreter( ast.left )( n ) && Jed.PF.interpreter( ast.right )( n ); case 'LT': return Jed.PF.interpreter( ast.left )( n ) < Jed.PF.interpreter( ast.right )( n ); case 'GT': return Jed.PF.interpreter( ast.left )( n ) > Jed.PF.interpreter( ast.right )( n ); case 'LTE': return Jed.PF.interpreter( ast.left )( n ) <= Jed.PF.interpreter( ast.right )( n ); case 'GTE': return Jed.PF.interpreter( ast.left )( n ) >= Jed.PF.interpreter( ast.right )( n ); case 'EQ': return Jed.PF.interpreter( ast.left )( n ) == Jed.PF.interpreter( ast.right )( n ); case 'NEQ': return Jed.PF.interpreter( ast.left )( n ) != Jed.PF.interpreter( ast.right )( n ); case 'MOD': return Jed.PF.interpreter( ast.left )( n ) % Jed.PF.interpreter( ast.right )( n ); case 'VAR': return n; case 'NUM': return ast.val; default: throw new Error("Invalid Token found."); } }; }; Jed.PF.extractPluralExpr = function ( p ) { // trim first p = p.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); if (! /;\s*$/.test(p)) { p = p.concat(';'); } var nplurals_re = /nplurals\=(\d+);/, plural_re = /plural\=(.*);/, nplurals_matches = p.match( nplurals_re ), res = {}, plural_matches; // Find the nplurals number if ( nplurals_matches.length > 1 ) { res.nplurals = nplurals_matches[1]; } else { throw new Error('nplurals not found in plural_forms string: ' + p ); } // remove that data to get to the formula p = p.replace( nplurals_re, "" ); plural_matches = p.match( plural_re ); if (!( plural_matches && plural_matches.length > 1 ) ) { throw new Error('`plural` expression not found: ' + p); } return plural_matches[ 1 ]; }; /* Jison generated parser */ Jed.PF.parser = (function(){ var parser = {trace: function trace() { }, yy: {}, symbols_: {"error":2,"expressions":3,"e":4,"EOF":5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,"n":19,"NUMBER":20,"$accept":0,"$end":1}, terminals_: {2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"}, productions_: [0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]], performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) { var $0 = $$.length - 1; switch (yystate) { case 1: return { type : 'GROUP', expr: $$[$0-1] }; break; case 2:this.$ = { type: 'TERNARY', expr: $$[$0-4], truthy : $$[$0-2], falsey: $$[$0] }; break; case 3:this.$ = { type: "OR", left: $$[$0-2], right: $$[$0] }; break; case 4:this.$ = { type: "AND", left: $$[$0-2], right: $$[$0] }; break; case 5:this.$ = { type: 'LT', left: $$[$0-2], right: $$[$0] }; break; case 6:this.$ = { type: 'LTE', left: $$[$0-2], right: $$[$0] }; break; case 7:this.$ = { type: 'GT', left: $$[$0-2], right: $$[$0] }; break; case 8:this.$ = { type: 'GTE', left: $$[$0-2], right: $$[$0] }; break; case 9:this.$ = { type: 'NEQ', left: $$[$0-2], right: $$[$0] }; break; case 10:this.$ = { type: 'EQ', left: $$[$0-2], right: $$[$0] }; break; case 11:this.$ = { type: 'MOD', left: $$[$0-2], right: $$[$0] }; break; case 12:this.$ = { type: 'GROUP', expr: $$[$0-1] }; break; case 13:this.$ = { type: 'VAR' }; break; case 14:this.$ = { type: 'NUM', val: Number(yytext) }; break; } }, table: [{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}], defaultActions: {6:[2,1]}, parseError: function parseError(str, hash) { throw new Error(str); }, parse: function parse(input) { var self = this, stack = [0], vstack = [null], // semantic value stack lstack = [], // location stack table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; //this.reductionCount = this.shiftCount = 0; this.lexer.setInput(input); this.lexer.yy = this.yy; this.yy.lexer = this.lexer; if (typeof this.lexer.yylloc == 'undefined') this.lexer.yylloc = {}; var yyloc = this.lexer.yylloc; lstack.push(yyloc); if (typeof this.yy.parseError === 'function') this.parseError = this.yy.parseError; function popStack (n) { stack.length = stack.length - 2*n; vstack.length = vstack.length - n; lstack.length = lstack.length - n; } function lex() { var token; token = self.lexer.lex() || 1; // $end = 1 // if token isn't its numeric value, convert if (typeof token !== 'number') { token = self.symbols_[token] || token; } return token; } var symbol, preErrorSymbol, state, action, a, r, yyval={},p,len,newState, expected; while (true) { // retreive state number from top of stack state = stack[stack.length-1]; // use default actions if available if (this.defaultActions[state]) { action = this.defaultActions[state]; } else { if (symbol == null) symbol = lex(); // read action for current state and first input action = table[state] && table[state][symbol]; } // handle parse error _handle_error: if (typeof action === 'undefined' || !action.length || !action[0]) { if (!recovering) { // Report error expected = []; for (p in table[state]) if (this.terminals_[p] && p > 2) { expected.push("'"+this.terminals_[p]+"'"); } var errStr = ''; if (this.lexer.showPosition) { errStr = 'Parse error on line '+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + this.terminals_[symbol]+ "'"; } else { errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + (symbol == 1 /*EOF*/ ? "end of input" : ("'"+(this.terminals_[symbol] || symbol)+"'")); } this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); } // just recovered from another error if (recovering == 3) { if (symbol == EOF) { throw new Error(errStr || 'Parsing halted.'); } // discard current lookahead and grab another yyleng = this.lexer.yyleng; yytext = this.lexer.yytext; yylineno = this.lexer.yylineno; yyloc = this.lexer.yylloc; symbol = lex(); } // try to recover from error while (1) { // check for error recovery rule in this state if ((TERROR.toString()) in table[state]) { break; } if (state == 0) { throw new Error(errStr || 'Parsing halted.'); } popStack(1); state = stack[stack.length-1]; } preErrorSymbol = symbol; // save the lookahead token symbol = TERROR; // insert generic error symbol as new lookahead state = stack[stack.length-1]; action = table[state] && table[state][TERROR]; recovering = 3; // allow 3 real symbols to be shifted before reporting a new error } // this shouldn't happen, unless resolve defaults are off if (action[0] instanceof Array && action.length > 1) { throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); } switch (action[0]) { case 1: // shift //this.shiftCount++; stack.push(symbol); vstack.push(this.lexer.yytext); lstack.push(this.lexer.yylloc); stack.push(action[1]); // push state symbol = null; if (!preErrorSymbol) { // normal execution/no error yyleng = this.lexer.yyleng; yytext = this.lexer.yytext; yylineno = this.lexer.yylineno; yyloc = this.lexer.yylloc; if (recovering > 0) recovering--; } else { // error just occurred, resume old lookahead f/ before error symbol = preErrorSymbol; preErrorSymbol = null; } break; case 2: // reduce //this.reductionCount++; len = this.productions_[action[1]][1]; // perform semantic action yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 // default location, uses first token for firsts, last for lasts yyval._$ = { first_line: lstack[lstack.length-(len||1)].first_line, last_line: lstack[lstack.length-1].last_line, first_column: lstack[lstack.length-(len||1)].first_column, last_column: lstack[lstack.length-1].last_column }; r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); if (typeof r !== 'undefined') { return r; } // pop off stack if (len) { stack = stack.slice(0,-1*len*2); vstack = vstack.slice(0, -1*len); lstack = lstack.slice(0, -1*len); } stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) vstack.push(yyval.$); lstack.push(yyval._$); // goto new state = table[STATE][NONTERMINAL] newState = table[stack[stack.length-2]][stack[stack.length-1]]; stack.push(newState); break; case 3: // accept return true; } } return true; }};/* Jison generated lexer */ var lexer = (function(){ var lexer = ({EOF:1, parseError:function parseError(str, hash) { if (this.yy.parseError) { this.yy.parseError(str, hash); } else { throw new Error(str); } }, setInput:function (input) { this._input = input; this._more = this._less = this.done = false; this.yylineno = this.yyleng = 0; this.yytext = this.matched = this.match = ''; this.conditionStack = ['INITIAL']; this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; return this; }, input:function () { var ch = this._input[0]; this.yytext+=ch; this.yyleng++; this.match+=ch; this.matched+=ch; var lines = ch.match(/\n/); if (lines) this.yylineno++; this._input = this._input.slice(1); return ch; }, unput:function (ch) { this._input = ch + this._input; return this; }, more:function () { this._more = true; return this; }, pastInput:function () { var past = this.matched.substr(0, this.matched.length - this.match.length); return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); }, upcomingInput:function () { var next = this.match; if (next.length < 20) { next += this._input.substr(0, 20-next.length); } return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, ""); }, showPosition:function () { var pre = this.pastInput(); var c = new Array(pre.length + 1).join("-"); return pre + this.upcomingInput() + "\n" + c+"^"; }, next:function () { if (this.done) { return this.EOF; } if (!this._input) this.done = true; var token, match, col, lines; if (!this._more) { this.yytext = ''; this.match = ''; } var rules = this._currentRules(); for (var i=0;i < rules.length; i++) { match = this._input.match(this.rules[rules[i]]); if (match) { lines = match[0].match(/\n.*/g); if (lines) this.yylineno += lines.length; this.yylloc = {first_line: this.yylloc.last_line, last_line: this.yylineno+1, first_column: this.yylloc.last_column, last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length} this.yytext += match[0]; this.match += match[0]; this.matches = match; this.yyleng = this.yytext.length; this._more = false; this._input = this._input.slice(match[0].length); this.matched += match[0]; token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]); if (token) return token; else return; } } if (this._input === "") { return this.EOF; } else { this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), {text: "", token: null, line: this.yylineno}); } }, lex:function lex() { var r = this.next(); if (typeof r !== 'undefined') { return r; } else { return this.lex(); } }, begin:function begin(condition) { this.conditionStack.push(condition); }, popState:function popState() { return this.conditionStack.pop(); }, _currentRules:function _currentRules() { return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules; }, topState:function () { return this.conditionStack[this.conditionStack.length-2]; }, pushState:function begin(condition) { this.begin(condition); }}); lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { var YYSTATE=YY_START; switch($avoiding_name_collisions) { case 0:/* skip whitespace */ break; case 1:return 20 break; case 2:return 19 break; case 3:return 8 break; case 4:return 9 break; case 5:return 6 break; case 6:return 7 break; case 7:return 11 break; case 8:return 13 break; case 9:return 10 break; case 10:return 12 break; case 11:return 14 break; case 12:return 15 break; case 13:return 16 break; case 14:return 17 break; case 15:return 18 break; case 16:return 5 break; case 17:return 'INVALID' break; } }; lexer.rules = [/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./]; lexer.conditions = {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"inclusive":true}};return lexer;})() parser.lexer = lexer; return parser; })(); // End parser // Handle node, amd, and global systems if (true) { if (typeof module !== 'undefined' && module.exports) { exports = module.exports = Jed; } exports.Jed = Jed; } else { if (typeof define === 'function' && define.amd) { define(function() { return Jed; }); } // Leak a global regardless of module system root['Jed'] = Jed; } })(this); /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { var map = { "./ca": 199, "./cs": 200, "./de": 201, "./en": 202, "./es": 203, "./fr": 204, "./gl": 205, "./it": 206, "./ja": 207, "./ko": 208, "./nl": 209, "./pl": 210, "./pt": 211, "./ru": 212, "./sv": 213, "./zh": 214 }; function webpackContext(req) { return __webpack_require__(webpackContextResolve(req)); }; function webpackContextResolve(req) { var id = map[req]; if(!(id + 1)) // check for number or string throw new Error("Cannot find module '" + req + "'."); return id; }; webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 198; /***/ }), /* 199 */ /***/ (function(module, exports, __webpack_require__) { !function(a,e){ true?module.exports=e():"function"==typeof define&&define.amd?define(e):(a.ReactIntlLocaleData=a.ReactIntlLocaleData||{},a.ReactIntlLocaleData.ca=e())}(this,function(){"use strict";return[{locale:"ca",pluralRuleFunction:function(a,e){var t=!String(a).split(".")[1];return e?1==a||3==a?"one":2==a?"two":4==a?"few":"other":1==a&&t?"one":"other"},fields:{year:{displayName:"any",relative:{0:"enguany",1:"l’any que ve","-1":"l’any passat"},relativeTime:{future:{one:"d’aquí a {0} any",other:"d’aquí a {0} anys"},past:{one:"fa {0} any",other:"fa {0} anys"}}},"year-short":{displayName:"any",relative:{0:"enguany",1:"l’any que ve","-1":"l’any passat"},relativeTime:{future:{one:"d’aquí a {0} any",other:"d’aquí a {0} anys"},past:{one:"fa {0} any",other:"fa {0} anys"}}},month:{displayName:"mes",relative:{0:"aquest mes",1:"el mes que ve","-1":"el mes passat"},relativeTime:{future:{one:"d’aquí a {0} mes",other:"d’aquí a {0} mesos"},past:{one:"fa {0} mes",other:"fa {0} mesos"}}},"month-short":{displayName:"mes",relative:{0:"aquest mes",1:"el mes que ve","-1":"el mes passat"},relativeTime:{future:{one:"d’aquí a {0} mes",other:"d’aquí a {0} mesos"},past:{one:"fa {0} mes",other:"fa {0} mesos"}}},day:{displayName:"dia",relative:{0:"avui",1:"demà",2:"demà passat","-2":"abans-d’ahir","-1":"ahir"},relativeTime:{future:{one:"d’aquí a {0} dia",other:"d’aquí a {0} dies"},past:{one:"fa {0} dia",other:"fa {0} dies"}}},"day-short":{displayName:"dia",relative:{0:"avui",1:"demà",2:"demà passat","-2":"abans-d’ahir","-1":"ahir"},relativeTime:{future:{one:"d’aquí a {0} dia",other:"d’aquí a {0} dies"},past:{one:"fa {0} dia",other:"fa {0} dies"}}},hour:{displayName:"hora",relative:{0:"aquesta hora"},relativeTime:{future:{one:"d’aquí a {0} hora",other:"d’aquí a {0} hores"},past:{one:"fa {0} hora",other:"fa {0} hores"}}},"hour-short":{displayName:"h",relative:{0:"aquesta hora"},relativeTime:{future:{one:"d’aquí a {0} h",other:"d’aquí a {0} h"},past:{one:"fa {0} h",other:"fa {0} h"}}},minute:{displayName:"minut",relative:{0:"aquest minut"},relativeTime:{future:{one:"d’aquí a {0} minut",other:"d’aquí a {0} minuts"},past:{one:"fa {0} minut",other:"fa {0} minuts"}}},"minute-short":{displayName:"min",relative:{0:"aquest minut"},relativeTime:{future:{one:"d’aquí a {0} min",other:"d’aquí a {0} min"},past:{one:"fa {0} min",other:"fa {0} min"}}},second:{displayName:"segon",relative:{0:"ara"},relativeTime:{future:{one:"d’aquí a {0} segon",other:"d’aquí a {0} segons"},past:{one:"fa {0} segon",other:"fa {0} segons"}}},"second-short":{displayName:"s",relative:{0:"ara"},relativeTime:{future:{one:"d’aquí a {0} s",other:"d’aquí a {0} s"},past:{one:"fa {0} s",other:"fa {0} s"}}}}},{locale:"ca-AD",parentLocale:"ca"},{locale:"ca-ES-VALENCIA",parentLocale:"ca-ES",fields:{year:{displayName:"any",relative:{0:"enguany",1:"l’any que ve","-1":"l’any passat"},relativeTime:{future:{one:"d’aquí a {0} any",other:"d’aquí a {0} anys"},past:{one:"fa {0} any",other:"fa {0} anys"}}},"year-short":{displayName:"any",relative:{0:"enguany",1:"l’any que ve","-1":"l’any passat"},relativeTime:{future:{one:"d’aquí a {0} any",other:"d’aquí a {0} anys"},past:{one:"fa {0} any",other:"fa {0} anys"}}},month:{displayName:"mes",relative:{0:"aquest mes",1:"el mes que ve","-1":"el mes passat"},relativeTime:{future:{one:"d’aquí a {0} mes",other:"d’aquí a {0} mesos"},past:{one:"fa {0} mes",other:"fa {0} mesos"}}},"month-short":{displayName:"mes",relative:{0:"aquest mes",1:"el mes que ve","-1":"el mes passat"},relativeTime:{future:{one:"d’aquí a {0} mes",other:"d’aquí a {0} mesos"},past:{one:"fa {0} mes",other:"fa {0} mesos"}}},day:{displayName:"dia",relative:{0:"avui",1:"demà",2:"demà passat","-2":"abans-d’ahir","-1":"ahir"},relativeTime:{future:{one:"d’aquí a {0} dia",other:"d’aquí a {0} dies"},past:{one:"fa {0} dia",other:"fa {0} dies"}}},"day-short":{displayName:"dia",relative:{0:"avui",1:"demà",2:"demà passat","-2":"abans-d’ahir","-1":"ahir"},relativeTime:{future:{one:"d’aquí a {0} dia",other:"d’aquí a {0} dies"},past:{one:"fa {0} dia",other:"fa {0} dies"}}},hour:{displayName:"hora",relative:{0:"aquesta hora"},relativeTime:{future:{one:"d’aquí a {0} hora",other:"d’aquí a {0} hores"},past:{one:"fa {0} hora",other:"fa {0} hores"}}},"hour-short":{displayName:"h",relative:{0:"aquesta hora"},relativeTime:{future:{one:"d’aquí a {0} h",other:"d’aquí a {0} h"},past:{one:"fa {0} h",other:"fa {0} h"}}},minute:{displayName:"minut",relative:{0:"aquest minut"},relativeTime:{future:{one:"d’aquí a {0} minut",other:"d’aquí a {0} minuts"},past:{one:"fa {0} minut",other:"fa {0} minuts"}}},"minute-short":{displayName:"min",relative:{0:"aquest minut"},relativeTime:{future:{one:"d’aquí a {0} min",other:"d’aquí a {0} min"},past:{one:"fa {0} min",other:"fa {0} min"}}},second:{displayName:"segon",relative:{0:"ara"},relativeTime:{future:{one:"d’aquí a {0} segon",other:"d’aquí a {0} segons"},past:{one:"fa {0} segon",other:"fa {0} segons"}}},"second-short":{displayName:"s",relative:{0:"ara"},relativeTime:{future:{one:"d’aquí a {0} s",other:"d’aquí a {0} s"},past:{one:"fa {0} s",other:"fa {0} s"}}}}},{locale:"ca-ES",parentLocale:"ca"},{locale:"ca-FR",parentLocale:"ca"},{locale:"ca-IT",parentLocale:"ca"}]}); /***/ }), /* 200 */ /***/ (function(module, exports, __webpack_require__) { !function(e,a){ true?module.exports=a():"function"==typeof define&&define.amd?define(a):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.cs=a())}(this,function(){"use strict";return[{locale:"cs",pluralRuleFunction:function(e,a){var n=String(e).split("."),t=n[0],m=!n[1];return a?"other":1==e&&m?"one":t>=2&&t<=4&&m?"few":m?"other":"many"},fields:{year:{displayName:"rok",relative:{0:"tento rok",1:"příští rok","-1":"minulý rok"},relativeTime:{future:{one:"za {0} rok",few:"za {0} roky",many:"za {0} roku",other:"za {0} let"},past:{one:"před {0} rokem",few:"před {0} lety",many:"před {0} roku",other:"před {0} lety"}}},"year-short":{displayName:"r.",relative:{0:"tento rok",1:"příští rok","-1":"minulý rok"},relativeTime:{future:{one:"za {0} r.",few:"za {0} r.",many:"za {0} r.",other:"za {0} l."},past:{one:"před {0} r.",few:"před {0} r.",many:"před {0} r.",other:"před {0} l."}}},month:{displayName:"měsíc",relative:{0:"tento měsíc",1:"příští měsíc","-1":"minulý měsíc"},relativeTime:{future:{one:"za {0} měsíc",few:"za {0} měsíce",many:"za {0} měsíce",other:"za {0} měsíců"},past:{one:"před {0} měsícem",few:"před {0} měsíci",many:"před {0} měsíce",other:"před {0} měsíci"}}},"month-short":{displayName:"měs.",relative:{0:"tento měs.",1:"příští měs.","-1":"minulý měs."},relativeTime:{future:{one:"za {0} měs.",few:"za {0} měs.",many:"za {0} měs.",other:"za {0} měs."},past:{one:"před {0} měs.",few:"před {0} měs.",many:"před {0} měs.",other:"před {0} měs."}}},day:{displayName:"den",relative:{0:"dnes",1:"zítra",2:"pozítří","-2":"předevčírem","-1":"včera"},relativeTime:{future:{one:"za {0} den",few:"za {0} dny",many:"za {0} dne",other:"za {0} dní"},past:{one:"před {0} dnem",few:"před {0} dny",many:"před {0} dne",other:"před {0} dny"}}},"day-short":{displayName:"den",relative:{0:"dnes",1:"zítra",2:"pozítří","-2":"předevčírem","-1":"včera"},relativeTime:{future:{one:"za {0} den",few:"za {0} dny",many:"za {0} dne",other:"za {0} dní"},past:{one:"před {0} dnem",few:"před {0} dny",many:"před {0} dne",other:"před {0} dny"}}},hour:{displayName:"hodina",relative:{0:"tuto hodinu"},relativeTime:{future:{one:"za {0} hodinu",few:"za {0} hodiny",many:"za {0} hodiny",other:"za {0} hodin"},past:{one:"před {0} hodinou",few:"před {0} hodinami",many:"před {0} hodiny",other:"před {0} hodinami"}}},"hour-short":{displayName:"h",relative:{0:"tuto hodinu"},relativeTime:{future:{one:"za {0} h",few:"za {0} h",many:"za {0} h",other:"za {0} h"},past:{one:"před {0} h",few:"před {0} h",many:"před {0} h",other:"před {0} h"}}},minute:{displayName:"minuta",relative:{0:"tuto minutu"},relativeTime:{future:{one:"za {0} minutu",few:"za {0} minuty",many:"za {0} minuty",other:"za {0} minut"},past:{one:"před {0} minutou",few:"před {0} minutami",many:"před {0} minuty",other:"před {0} minutami"}}},"minute-short":{displayName:"min",relative:{0:"tuto minutu"},relativeTime:{future:{one:"za {0} min",few:"za {0} min",many:"za {0} min",other:"za {0} min"},past:{one:"před {0} min",few:"před {0} min",many:"před {0} min",other:"před {0} min"}}},second:{displayName:"sekunda",relative:{0:"nyní"},relativeTime:{future:{one:"za {0} sekundu",few:"za {0} sekundy",many:"za {0} sekundy",other:"za {0} sekund"},past:{one:"před {0} sekundou",few:"před {0} sekundami",many:"před {0} sekundy",other:"před {0} sekundami"}}},"second-short":{displayName:"s",relative:{0:"nyní"},relativeTime:{future:{one:"za {0} s",few:"za {0} s",many:"za {0} s",other:"za {0} s"},past:{one:"před {0} s",few:"před {0} s",many:"před {0} s",other:"před {0} s"}}}}}]}); /***/ }), /* 201 */ /***/ (function(module, exports, __webpack_require__) { !function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.de=t())}(this,function(){"use strict";return[{locale:"de",pluralRuleFunction:function(e,t){var n=!String(e).split(".")[1];return t?"other":1==e&&n?"one":"other"},fields:{year:{displayName:"Jahr",relative:{0:"dieses Jahr",1:"nächstes Jahr","-1":"letztes Jahr"},relativeTime:{future:{one:"in {0} Jahr",other:"in {0} Jahren"},past:{one:"vor {0} Jahr",other:"vor {0} Jahren"}}},"year-short":{displayName:"Jahr",relative:{0:"dieses Jahr",1:"nächstes Jahr","-1":"letztes Jahr"},relativeTime:{future:{one:"in {0} Jahr",other:"in {0} Jahren"},past:{one:"vor {0} Jahr",other:"vor {0} Jahren"}}},month:{displayName:"Monat",relative:{0:"diesen Monat",1:"nächsten Monat","-1":"letzten Monat"},relativeTime:{future:{one:"in {0} Monat",other:"in {0} Monaten"},past:{one:"vor {0} Monat",other:"vor {0} Monaten"}}},"month-short":{displayName:"Monat",relative:{0:"diesen Monat",1:"nächsten Monat","-1":"letzten Monat"},relativeTime:{future:{one:"in {0} Monat",other:"in {0} Monaten"},past:{one:"vor {0} Monat",other:"vor {0} Monaten"}}},day:{displayName:"Tag",relative:{0:"heute",1:"morgen",2:"übermorgen","-2":"vorgestern","-1":"gestern"},relativeTime:{future:{one:"in {0} Tag",other:"in {0} Tagen"},past:{one:"vor {0} Tag",other:"vor {0} Tagen"}}},"day-short":{displayName:"Tag",relative:{0:"heute",1:"morgen",2:"übermorgen","-2":"vorgestern","-1":"gestern"},relativeTime:{future:{one:"in {0} Tag",other:"in {0} Tagen"},past:{one:"vor {0} Tag",other:"vor {0} Tagen"}}},hour:{displayName:"Stunde",relative:{0:"in dieser Stunde"},relativeTime:{future:{one:"in {0} Stunde",other:"in {0} Stunden"},past:{one:"vor {0} Stunde",other:"vor {0} Stunden"}}},"hour-short":{displayName:"Std.",relative:{0:"in dieser Stunde"},relativeTime:{future:{one:"in {0} Std.",other:"in {0} Std."},past:{one:"vor {0} Std.",other:"vor {0} Std."}}},minute:{displayName:"Minute",relative:{0:"in dieser Minute"},relativeTime:{future:{one:"in {0} Minute",other:"in {0} Minuten"},past:{one:"vor {0} Minute",other:"vor {0} Minuten"}}},"minute-short":{displayName:"Min.",relative:{0:"in dieser Minute"},relativeTime:{future:{one:"in {0} Min.",other:"in {0} Min."},past:{one:"vor {0} Min.",other:"vor {0} Min."}}},second:{displayName:"Sekunde",relative:{0:"jetzt"},relativeTime:{future:{one:"in {0} Sekunde",other:"in {0} Sekunden"},past:{one:"vor {0} Sekunde",other:"vor {0} Sekunden"}}},"second-short":{displayName:"Sek.",relative:{0:"jetzt"},relativeTime:{future:{one:"in {0} Sek.",other:"in {0} Sek."},past:{one:"vor {0} Sek.",other:"vor {0} Sek."}}}}},{locale:"de-AT",parentLocale:"de"},{locale:"de-BE",parentLocale:"de"},{locale:"de-CH",parentLocale:"de"},{locale:"de-IT",parentLocale:"de"},{locale:"de-LI",parentLocale:"de"},{locale:"de-LU",parentLocale:"de"}]}); /***/ }), /* 202 */ /***/ (function(module, exports, __webpack_require__) { !function(e,a){ true?module.exports=a():"function"==typeof define&&define.amd?define(a):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.en=a())}(this,function(){"use strict";return[{locale:"en",pluralRuleFunction:function(e,a){var t=String(e).split("."),o=!t[1],n=Number(t[0])==e,r=n&&t[0].slice(-1),i=n&&t[0].slice(-2);return a?1==r&&11!=i?"one":2==r&&12!=i?"two":3==r&&13!=i?"few":"other":1==e&&o?"one":"other"},fields:{year:{displayName:"year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{one:"in {0} year",other:"in {0} years"},past:{one:"{0} year ago",other:"{0} years ago"}}},"year-short":{displayName:"yr.",relative:{0:"this yr.",1:"next yr.","-1":"last yr."},relativeTime:{future:{one:"in {0} yr.",other:"in {0} yr."},past:{one:"{0} yr. ago",other:"{0} yr. ago"}}},month:{displayName:"month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{one:"in {0} month",other:"in {0} months"},past:{one:"{0} month ago",other:"{0} months ago"}}},"month-short":{displayName:"mo.",relative:{0:"this mo.",1:"next mo.","-1":"last mo."},relativeTime:{future:{one:"in {0} mo.",other:"in {0} mo."},past:{one:"{0} mo. ago",other:"{0} mo. ago"}}},day:{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},"day-short":{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},hour:{displayName:"hour",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hour",other:"in {0} hours"},past:{one:"{0} hour ago",other:"{0} hours ago"}}},"hour-short":{displayName:"hr.",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hr.",other:"in {0} hr."},past:{one:"{0} hr. ago",other:"{0} hr. ago"}}},minute:{displayName:"minute",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} minute",other:"in {0} minutes"},past:{one:"{0} minute ago",other:"{0} minutes ago"}}},"minute-short":{displayName:"min.",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} min.",other:"in {0} min."},past:{one:"{0} min. ago",other:"{0} min. ago"}}},second:{displayName:"second",relative:{0:"now"},relativeTime:{future:{one:"in {0} second",other:"in {0} seconds"},past:{one:"{0} second ago",other:"{0} seconds ago"}}},"second-short":{displayName:"sec.",relative:{0:"now"},relativeTime:{future:{one:"in {0} sec.",other:"in {0} sec."},past:{one:"{0} sec. ago",other:"{0} sec. ago"}}}}},{locale:"en-001",parentLocale:"en",fields:{year:{displayName:"year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{one:"in {0} year",other:"in {0} years"},past:{one:"{0} year ago",other:"{0} years ago"}}},"year-short":{displayName:"yr",relative:{0:"this yr.",1:"next yr.","-1":"last yr."},relativeTime:{future:{one:"in {0} yr",other:"in {0} yr"},past:{one:"{0} yr ago",other:"{0} yr ago"}}},month:{displayName:"month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{one:"in {0} month",other:"in {0} months"},past:{one:"{0} month ago",other:"{0} months ago"}}},"month-short":{displayName:"mo",relative:{0:"this mo.",1:"next mo.","-1":"last mo."},relativeTime:{future:{one:"in {0} mo",other:"in {0} mo"},past:{one:"{0} mo ago",other:"{0} mo ago"}}},day:{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},"day-short":{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},hour:{displayName:"hour",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hour",other:"in {0} hours"},past:{one:"{0} hour ago",other:"{0} hours ago"}}},"hour-short":{displayName:"hr",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hr",other:"in {0} hr"},past:{one:"{0} hr ago",other:"{0} hr ago"}}},minute:{displayName:"minute",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} minute",other:"in {0} minutes"},past:{one:"{0} minute ago",other:"{0} minutes ago"}}},"minute-short":{displayName:"min",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} min",other:"in {0} min"},past:{one:"{0} min ago",other:"{0} min ago"}}},second:{displayName:"second",relative:{0:"now"},relativeTime:{future:{one:"in {0} second",other:"in {0} seconds"},past:{one:"{0} second ago",other:"{0} seconds ago"}}},"second-short":{displayName:"sec",relative:{0:"now"},relativeTime:{future:{one:"in {0} sec",other:"in {0} sec"},past:{one:"{0} sec ago",other:"{0} sec ago"}}}}},{locale:"en-150",parentLocale:"en-001"},{locale:"en-AG",parentLocale:"en-001"},{locale:"en-AI",parentLocale:"en-001"},{locale:"en-AS",parentLocale:"en"},{locale:"en-AT",parentLocale:"en-150"},{locale:"en-AU",parentLocale:"en-001",fields:{year:{displayName:"year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{one:"in {0} year",other:"in {0} years"},past:{one:"{0} year ago",other:"{0} years ago"}}},"year-short":{displayName:"yr",relative:{0:"this yr.",1:"next yr.","-1":"last yr."},relativeTime:{future:{one:"in {0} yr",other:"in {0} yrs"},past:{one:"{0} yr ago",other:"{0} yrs ago"}}},month:{displayName:"month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{one:"in {0} month",other:"in {0} months"},past:{one:"{0} month ago",other:"{0} months ago"}}},"month-short":{displayName:"mo.",relative:{0:"this mo.",1:"next mo.","-1":"last mo."},relativeTime:{future:{one:"in {0} mo.",other:"in {0} mo."},past:{one:"{0} mo. ago",other:"{0} mo. ago"}}},day:{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},"day-short":{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},hour:{displayName:"hour",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hour",other:"in {0} hours"},past:{one:"{0} hour ago",other:"{0} hours ago"}}},"hour-short":{displayName:"h",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hr",other:"in {0} hrs"},past:{one:"{0} hr ago",other:"{0} hrs ago"}}},minute:{displayName:"minute",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} minute",other:"in {0} minutes"},past:{one:"{0} minute ago",other:"{0} minutes ago"}}},"minute-short":{displayName:"min.",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} min.",other:"in {0} mins"},past:{one:"{0} min. ago",other:"{0} mins ago"}}},second:{displayName:"second",relative:{0:"now"},relativeTime:{future:{one:"in {0} second",other:"in {0} seconds"},past:{one:"{0} second ago",other:"{0} seconds ago"}}},"second-short":{displayName:"sec.",relative:{0:"now"},relativeTime:{future:{one:"in {0} sec.",other:"in {0} secs"},past:{one:"{0} sec. ago",other:"{0} secs ago"}}}}},{locale:"en-BB",parentLocale:"en-001"},{locale:"en-BE",parentLocale:"en-001"},{locale:"en-BI",parentLocale:"en"},{locale:"en-BM",parentLocale:"en-001"},{locale:"en-BS",parentLocale:"en-001"},{locale:"en-BW",parentLocale:"en-001"},{locale:"en-BZ",parentLocale:"en-001"},{locale:"en-CA",parentLocale:"en-001",fields:{year:{displayName:"year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{one:"in {0} year",other:"in {0} years"},past:{one:"{0} year ago",other:"{0} years ago"}}},"year-short":{displayName:"yr.",relative:{0:"this yr.",1:"next yr.","-1":"last yr."},relativeTime:{future:{one:"in {0} yr.",other:"in {0} yrs."},past:{one:"{0} yr. ago",other:"{0} yrs. ago"}}},month:{displayName:"month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{one:"in {0} month",other:"in {0} months"},past:{one:"{0} month ago",other:"{0} months ago"}}},"month-short":{displayName:"mo.",relative:{0:"this mo.",1:"next mo.","-1":"last mo."},relativeTime:{future:{one:"in {0} mo.",other:"in {0} mos."},past:{one:"{0} mo. ago",other:"{0} mos. ago"}}},day:{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},"day-short":{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},hour:{displayName:"hour",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hour",other:"in {0} hours"},past:{one:"{0} hour ago",other:"{0} hours ago"}}},"hour-short":{displayName:"hr.",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hr.",other:"in {0} hrs."},past:{one:"{0} hr. ago",other:"{0} hrs. ago"}}},minute:{displayName:"minute",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} minute",other:"in {0} minutes"},past:{one:"{0} minute ago",other:"{0} minutes ago"}}},"minute-short":{displayName:"min.",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} min.",other:"in {0} mins."},past:{one:"{0} min. ago",other:"{0} mins. ago"}}},second:{displayName:"second",relative:{0:"now"},relativeTime:{future:{one:"in {0} second",other:"in {0} seconds"},past:{one:"{0} second ago",other:"{0} seconds ago"}}},"second-short":{displayName:"sec.",relative:{0:"now"},relativeTime:{future:{one:"in {0} sec.",other:"in {0} secs."},past:{one:"{0} sec. ago",other:"{0} secs. ago"}}}}},{locale:"en-CC",parentLocale:"en-001"},{locale:"en-CH",parentLocale:"en-150"},{locale:"en-CK",parentLocale:"en-001"},{locale:"en-CM",parentLocale:"en-001"},{locale:"en-CX",parentLocale:"en-001"},{locale:"en-CY",parentLocale:"en-001"},{locale:"en-DE",parentLocale:"en-150"},{locale:"en-DG",parentLocale:"en-001"},{locale:"en-DK",parentLocale:"en-150"},{locale:"en-DM",parentLocale:"en-001"},{locale:"en-Dsrt",pluralRuleFunction:function(e,a){return"other"},fields:{year:{displayName:"Year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{other:"+{0} y"},past:{other:"-{0} y"}}},"year-short":{displayName:"Year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{other:"+{0} y"},past:{other:"-{0} y"}}},month:{displayName:"Month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{other:"+{0} m"},past:{other:"-{0} m"}}},"month-short":{displayName:"Month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{other:"+{0} m"},past:{other:"-{0} m"}}},day:{displayName:"Day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{other:"+{0} d"},past:{other:"-{0} d"}}},"day-short":{displayName:"Day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{other:"+{0} d"},past:{other:"-{0} d"}}},hour:{displayName:"Hour",relative:{0:"this hour"},relativeTime:{future:{other:"+{0} h"},past:{other:"-{0} h"}}},"hour-short":{displayName:"Hour",relative:{0:"this hour"},relativeTime:{future:{other:"+{0} h"},past:{other:"-{0} h"}}},minute:{displayName:"Minute",relative:{0:"this minute"},relativeTime:{future:{other:"+{0} min"},past:{other:"-{0} min"}}},"minute-short":{displayName:"Minute",relative:{0:"this minute"},relativeTime:{future:{other:"+{0} min"},past:{other:"-{0} min"}}},second:{displayName:"Second",relative:{0:"now"},relativeTime:{future:{other:"+{0} s"},past:{other:"-{0} s"}}},"second-short":{displayName:"Second",relative:{0:"now"},relativeTime:{future:{other:"+{0} s"},past:{other:"-{0} s"}}}}},{locale:"en-ER",parentLocale:"en-001"},{locale:"en-FI",parentLocale:"en-150"},{locale:"en-FJ",parentLocale:"en-001"},{locale:"en-FK",parentLocale:"en-001"},{locale:"en-FM",parentLocale:"en-001"},{locale:"en-GB",parentLocale:"en-001"},{locale:"en-GD",parentLocale:"en-001"},{locale:"en-GG",parentLocale:"en-001"},{locale:"en-GH",parentLocale:"en-001"},{locale:"en-GI",parentLocale:"en-001"},{locale:"en-GM",parentLocale:"en-001"},{locale:"en-GU",parentLocale:"en"},{locale:"en-GY",parentLocale:"en-001"},{locale:"en-HK",parentLocale:"en-001"},{locale:"en-IE",parentLocale:"en-001"},{locale:"en-IL",parentLocale:"en-001"},{locale:"en-IM",parentLocale:"en-001"},{locale:"en-IN",parentLocale:"en-001"},{locale:"en-IO",parentLocale:"en-001"},{locale:"en-JE",parentLocale:"en-001"},{locale:"en-JM",parentLocale:"en-001"},{locale:"en-KE",parentLocale:"en-001"},{locale:"en-KI",parentLocale:"en-001"},{locale:"en-KN",parentLocale:"en-001"},{locale:"en-KY",parentLocale:"en-001"},{locale:"en-LC",parentLocale:"en-001"},{locale:"en-LR",parentLocale:"en-001"},{locale:"en-LS",parentLocale:"en-001"},{locale:"en-MG",parentLocale:"en-001"},{locale:"en-MH",parentLocale:"en"},{locale:"en-MO",parentLocale:"en-001"},{locale:"en-MP",parentLocale:"en"},{locale:"en-MS",parentLocale:"en-001"},{locale:"en-MT",parentLocale:"en-001"},{locale:"en-MU",parentLocale:"en-001"},{locale:"en-MW",parentLocale:"en-001"},{locale:"en-MY",parentLocale:"en-001"},{locale:"en-NA",parentLocale:"en-001"},{locale:"en-NF",parentLocale:"en-001"},{locale:"en-NG",parentLocale:"en-001"},{locale:"en-NL",parentLocale:"en-150"},{locale:"en-NR",parentLocale:"en-001"},{locale:"en-NU",parentLocale:"en-001"},{locale:"en-NZ",parentLocale:"en-001"},{locale:"en-PG",parentLocale:"en-001"},{locale:"en-PH",parentLocale:"en-001"},{locale:"en-PK",parentLocale:"en-001"},{locale:"en-PN",parentLocale:"en-001"},{locale:"en-PR",parentLocale:"en"},{locale:"en-PW",parentLocale:"en-001"},{locale:"en-RW",parentLocale:"en-001"},{locale:"en-SB",parentLocale:"en-001"},{locale:"en-SC",parentLocale:"en-001"},{locale:"en-SD",parentLocale:"en-001"},{locale:"en-SE",parentLocale:"en-150"},{locale:"en-SG",parentLocale:"en-001",fields:{year:{displayName:"year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{one:"in {0} year",other:"in {0} years"},past:{one:"{0} year ago",other:"{0} years ago"}}},"year-short":{displayName:"yr",relative:{0:"this yr",1:"next yr","-1":"last yr"},relativeTime:{future:{one:"in {0} yr",other:"in {0} yr"},past:{one:"{0} yr ago",other:"{0} yr ago"}}},month:{displayName:"month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{one:"in {0} month",other:"in {0} months"},past:{one:"{0} month ago",other:"{0} months ago"}}},"month-short":{displayName:"mth",relative:{0:"this mth",1:"next mth","-1":"last mth"},relativeTime:{future:{one:"in {0} mth",other:"in {0} mth"},past:{one:"{0} mth ago",other:"{0} mth ago"}}},day:{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},"day-short":{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},hour:{displayName:"hour",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hour",other:"in {0} hours"},past:{one:"{0} hour ago",other:"{0} hours ago"}}},"hour-short":{displayName:"hr",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hr",other:"in {0} hr"},past:{one:"{0} hr ago",other:"{0} hr ago"}}},minute:{displayName:"minute",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} minute",other:"in {0} minutes"},past:{one:"{0} minute ago",other:"{0} minutes ago"}}},"minute-short":{displayName:"min",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} min",other:"in {0} min"},past:{one:"{0} min ago",other:"{0} min ago"}}},second:{displayName:"second",relative:{0:"now"},relativeTime:{future:{one:"in {0} second",other:"in {0} seconds"},past:{one:"{0} second ago",other:"{0} seconds ago"}}},"second-short":{displayName:"sec",relative:{0:"now"},relativeTime:{future:{one:"in {0} sec",other:"in {0} sec"},past:{one:"{0} sec ago",other:"{0} sec ago"}}}}},{locale:"en-SH",parentLocale:"en-001"},{locale:"en-SI",parentLocale:"en-150"},{locale:"en-SL",parentLocale:"en-001"},{locale:"en-SS",parentLocale:"en-001"},{locale:"en-SX",parentLocale:"en-001"},{locale:"en-SZ",parentLocale:"en-001"},{locale:"en-Shaw",pluralRuleFunction:function(e,a){return"other"},fields:{year:{displayName:"Year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{other:"+{0} y"},past:{other:"-{0} y"}}},"year-short":{displayName:"Year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{other:"+{0} y"},past:{other:"-{0} y"}}},month:{displayName:"Month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{other:"+{0} m"},past:{other:"-{0} m"}}},"month-short":{displayName:"Month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{other:"+{0} m"},past:{other:"-{0} m"}}},day:{displayName:"Day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{other:"+{0} d"},past:{other:"-{0} d"}}},"day-short":{displayName:"Day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{other:"+{0} d"},past:{other:"-{0} d"}}},hour:{displayName:"Hour",relative:{0:"this hour"},relativeTime:{future:{other:"+{0} h"},past:{other:"-{0} h"}}},"hour-short":{displayName:"Hour",relative:{0:"this hour"},relativeTime:{future:{other:"+{0} h"},past:{other:"-{0} h"}}},minute:{displayName:"Minute",relative:{0:"this minute"},relativeTime:{future:{other:"+{0} min"},past:{other:"-{0} min"}}},"minute-short":{displayName:"Minute",relative:{0:"this minute"},relativeTime:{future:{other:"+{0} min"},past:{other:"-{0} min"}}},second:{displayName:"Second",relative:{0:"now"},relativeTime:{future:{other:"+{0} s"},past:{other:"-{0} s"}}},"second-short":{displayName:"Second",relative:{0:"now"},relativeTime:{future:{other:"+{0} s"},past:{other:"-{0} s"}}}}},{locale:"en-TC",parentLocale:"en-001"},{locale:"en-TK",parentLocale:"en-001"},{locale:"en-TO",parentLocale:"en-001"},{locale:"en-TT",parentLocale:"en-001"},{locale:"en-TV",parentLocale:"en-001"},{locale:"en-TZ",parentLocale:"en-001"},{locale:"en-UG",parentLocale:"en-001"},{locale:"en-UM",parentLocale:"en"},{locale:"en-US",parentLocale:"en"},{locale:"en-VC",parentLocale:"en-001"},{locale:"en-VG",parentLocale:"en-001"},{locale:"en-VI",parentLocale:"en"},{locale:"en-VU",parentLocale:"en-001"},{locale:"en-WS",parentLocale:"en-001"},{locale:"en-ZA",parentLocale:"en-001"},{locale:"en-ZM",parentLocale:"en-001"},{locale:"en-ZW",parentLocale:"en-001"}]}); /***/ }), /* 203 */ /***/ (function(module, exports, __webpack_require__) { !function(e,a){ true?module.exports=a():"function"==typeof define&&define.amd?define(a):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.es=a())}(this,function(){"use strict";return[{locale:"es",pluralRuleFunction:function(e,a){return a?"other":1==e?"one":"other"},fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},"year-short":{displayName:"a",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} a",other:"dentro de {0} a"},past:{one:"hace {0} a",other:"hace {0} a"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},"month-short":{displayName:"m",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} m",other:"dentro de {0} m"},past:{one:"hace {0} m",other:"hace {0} m"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},"day-short":{displayName:"d",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} h",other:"dentro de {0} h"},past:{one:"hace {0} h",other:"hace {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} min",other:"dentro de {0} min"},past:{one:"hace {0} min",other:"hace {0} min"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}},"second-short":{displayName:"s",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} s",other:"dentro de {0} s"},past:{one:"hace {0} s",other:"hace {0} s"}}}}},{locale:"es-419",parentLocale:"es"},{locale:"es-AR",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},"year-short":{displayName:"a",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} a",other:"dentro de {0} a"},past:{one:"hace {0} a",other:"hace {0} a"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},"month-short":{displayName:"m",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} m",other:"dentro de {0} m"},past:{one:"hace {0} m",other:"hace {0} m"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},"day-short":{displayName:"d",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} días",other:"dentro de {0} días"},past:{one:"hace {0} días",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} h",other:"dentro de {0} h"},past:{one:"hace {0} h",other:"hace {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} min",other:"dentro de {0} min"},past:{one:"hace {0} min",other:"hace {0} min"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}},"second-short":{displayName:"seg.",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} seg.",other:"dentro de {0} seg."},past:{one:"hace {0} seg.",other:"hace {0} seg."}}}}},{locale:"es-BO",parentLocale:"es-419"},{locale:"es-BR",parentLocale:"es-419"},{locale:"es-BZ",parentLocale:"es-419"},{locale:"es-CL",parentLocale:"es-419"},{locale:"es-CO",parentLocale:"es-419"},{locale:"es-CR",parentLocale:"es-419"},{locale:"es-CU",parentLocale:"es-419"},{locale:"es-DO",parentLocale:"es-419",fields:{year:{displayName:"Año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},"year-short":{displayName:"a",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} a",other:"dentro de {0} a"},past:{one:"hace {0} a",other:"hace {0} a"}}},month:{displayName:"Mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},"month-short":{displayName:"m",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} m",other:"dentro de {0} m"},past:{one:"hace {0} m",other:"hace {0} m"}}},day:{displayName:"Día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},"day-short":{displayName:"d",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} h",other:"dentro de {0} h"},past:{one:"hace {0} h",other:"hace {0} h"}}},minute:{displayName:"Minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} min",other:"dentro de {0} min"},past:{one:"hace {0} min",other:"hace {0} min"}}},second:{displayName:"Segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}},"second-short":{displayName:"s",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} s",other:"dentro de {0} s"},past:{one:"hace {0} s",other:"hace {0} s"}}}}},{locale:"es-EA",parentLocale:"es"},{locale:"es-EC",parentLocale:"es-419"},{locale:"es-GQ",parentLocale:"es"},{locale:"es-GT",parentLocale:"es-419"},{locale:"es-HN",parentLocale:"es-419"},{locale:"es-IC",parentLocale:"es"},{locale:"es-MX",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el año próximo","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},"year-short":{displayName:"a",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"en {0} a",other:"en {0} a"},past:{one:"hace {0} a",other:"hace {0} a"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el mes próximo","-1":"el mes pasado"},relativeTime:{future:{one:"en {0} mes",other:"en {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},"month-short":{displayName:"m",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"en {0} m",other:"en {0} m"},past:{one:"hace {0} m",other:"hace {0} m"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},"day-short":{displayName:"d",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"en {0} día",other:"en {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"en {0} h",other:"en {0} n"},past:{one:"hace {0} h",other:"hace {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"en {0} min",other:"en {0} min"},past:{one:"hace {0} min",other:"hace {0} min"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}},"second-short":{displayName:"s",relative:{0:"ahora"},relativeTime:{future:{one:"en {0} s",other:"en {0} s"},past:{one:"hace {0} s",other:"hace {0} s"}}}}},{locale:"es-NI",parentLocale:"es-419"},{locale:"es-PA",parentLocale:"es-419"},{locale:"es-PE",parentLocale:"es-419"},{locale:"es-PH",parentLocale:"es"},{locale:"es-PR",parentLocale:"es-419"},{locale:"es-PY",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},"year-short":{displayName:"a",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} a",other:"dentro de {0} a"},past:{one:"hace {0} a",other:"hace {0} a"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},"month-short":{displayName:"m",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} m",other:"dentro de {0} m"},past:{one:"hace {0} m",other:"hace {0} m"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},"day-short":{displayName:"d",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} h",other:"dentro de {0} h"},past:{one:"hace {0} h",other:"hace {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} min",other:"dentro de {0} min"},past:{one:"hace {0} min",other:"hace {0} min"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}},"second-short":{displayName:"seg.",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} seg.",other:"dentro de {0} seg."},past:{one:"hace {0} seg.",other:"hace {0} seg."}}}}},{locale:"es-SV",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},"year-short":{displayName:"a",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} a",other:"dentro de {0} a"},past:{one:"hace {0} a",other:"hace {0} a"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},"month-short":{displayName:"m",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} m",other:"dentro de {0} m"},past:{one:"hace {0} m",other:"hace {0} m"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antier","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},"day-short":{displayName:"d",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} h",other:"dentro de {0} h"},past:{one:"hace {0} h",other:"hace {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} min",other:"dentro de {0} min"},past:{one:"hace {0} min",other:"hace {0} min"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}},"second-short":{displayName:"s",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} s",other:"dentro de {0} s"},past:{one:"hace {0} s",other:"hace {0} s"}}}}},{locale:"es-US",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el año próximo","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},"year-short":{displayName:"a",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} a",other:"dentro de {0} a"},past:{one:"hace {0} a",other:"hace {0} a"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el mes próximo","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},"month-short":{displayName:"m",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} m",other:"dentro de {0} m"},past:{one:"hace {0} m",other:"hace {0} m"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},"day-short":{displayName:"d",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} h",other:"dentro de {0} h"},past:{one:"hace {0} h",other:"hace {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} min",other:"dentro de {0} min"},past:{one:"hace {0} min",other:"hace {0} min"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}},"second-short":{displayName:"s",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} s",other:"dentro de {0} s"},past:{one:"hace {0} s",other:"hace {0} s"}}}}},{locale:"es-UY",parentLocale:"es-419"},{locale:"es-VE",parentLocale:"es-419"}]}); /***/ }), /* 204 */ /***/ (function(module, exports, __webpack_require__) { !function(e,a){ true?module.exports=a():"function"==typeof define&&define.amd?define(a):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.fr=a())}(this,function(){"use strict";return[{locale:"fr",pluralRuleFunction:function(e,a){return a?1==e?"one":"other":e>=0&&e<2?"one":"other"},fields:{year:{displayName:"année",relative:{0:"cette année",1:"l’année prochaine","-1":"l’année dernière"},relativeTime:{future:{one:"dans {0} an",other:"dans {0} ans"},past:{one:"il y a {0} an",other:"il y a {0} ans"}}},"year-short":{displayName:"an",relative:{0:"cette année",1:"l’année prochaine","-1":"l’année dernière"},relativeTime:{future:{one:"dans {0} a",other:"dans {0} a"},past:{one:"il y a {0} a",other:"il y a {0} a"}}},month:{displayName:"mois",relative:{0:"ce mois-ci",1:"le mois prochain","-1":"le mois dernier"},relativeTime:{future:{one:"dans {0} mois",other:"dans {0} mois"},past:{one:"il y a {0} mois",other:"il y a {0} mois"}}},"month-short":{displayName:"m.",relative:{0:"ce mois-ci",1:"le mois prochain","-1":"le mois dernier"},relativeTime:{future:{one:"dans {0} m.",other:"dans {0} m."},past:{one:"il y a {0} m.",other:"il y a {0} m."}}},day:{displayName:"jour",relative:{0:"aujourd’hui",1:"demain",2:"après-demain","-2":"avant-hier","-1":"hier"},relativeTime:{future:{one:"dans {0} jour",other:"dans {0} jours"},past:{one:"il y a {0} jour",other:"il y a {0} jours"}}},"day-short":{displayName:"j",relative:{0:"aujourd’hui",1:"demain",2:"après-demain","-2":"avant-hier","-1":"hier"},relativeTime:{future:{one:"dans {0} j",other:"dans {0} j"},past:{one:"il y a {0} j",other:"il y a {0} j"}}},hour:{displayName:"heure",relative:{0:"cette heure-ci"},relativeTime:{future:{one:"dans {0} heure",other:"dans {0} heures"},past:{one:"il y a {0} heure",other:"il y a {0} heures"}}},"hour-short":{displayName:"h",relative:{0:"cette heure-ci"},relativeTime:{future:{one:"dans {0} h",other:"dans {0} h"},past:{one:"il y a {0} h",other:"il y a {0} h"}}},minute:{displayName:"minute",relative:{0:"cette minute-ci"},relativeTime:{future:{one:"dans {0} minute",other:"dans {0} minutes"},past:{one:"il y a {0} minute",other:"il y a {0} minutes"}}},"minute-short":{displayName:"min",relative:{0:"cette minute-ci"},relativeTime:{future:{one:"dans {0} min",other:"dans {0} min"},past:{one:"il y a {0} min",other:"il y a {0} min"}}},second:{displayName:"seconde",relative:{0:"maintenant"},relativeTime:{future:{one:"dans {0} seconde",other:"dans {0} secondes"},past:{one:"il y a {0} seconde",other:"il y a {0} secondes"}}},"second-short":{displayName:"s",relative:{0:"maintenant"},relativeTime:{future:{one:"dans {0} s",other:"dans {0} s"},past:{one:"il y a {0} s",other:"il y a {0} s"}}}}},{locale:"fr-BE",parentLocale:"fr"},{locale:"fr-BF",parentLocale:"fr"},{locale:"fr-BI",parentLocale:"fr"},{locale:"fr-BJ",parentLocale:"fr"},{locale:"fr-BL",parentLocale:"fr"},{locale:"fr-CA",parentLocale:"fr",fields:{year:{displayName:"année",relative:{0:"cette année",1:"l’année prochaine","-1":"l’année dernière"},relativeTime:{future:{one:"Dans {0} an",other:"Dans {0} ans"},past:{one:"Il y a {0} an",other:"Il y a {0} ans"}}},"year-short":{displayName:"a",relative:{0:"cette année",1:"l’année prochaine","-1":"l’année dernière"},relativeTime:{future:{one:"dans {0} a",other:"dans {0} a"},past:{one:"il y a {0} a",other:"il y a {0} a"}}},month:{displayName:"mois",relative:{0:"ce mois-ci",1:"le mois prochain","-1":"le mois dernier"},relativeTime:{future:{one:"dans {0} mois",other:"dans {0} mois"},past:{one:"il y a {0} mois",other:"il y a {0} mois"}}},"month-short":{displayName:"m.",relative:{0:"ce mois-ci",1:"le mois prochain","-1":"le mois dernier"},relativeTime:{future:{one:"dans {0} m.",other:"dans {0} m."},past:{one:"il y a {0} m.",other:"il y a {0} m."}}},day:{displayName:"jour",relative:{0:"aujourd’hui",1:"demain",2:"après-demain","-2":"avant-hier","-1":"hier"},relativeTime:{future:{one:"dans {0} jour",other:"dans {0} jours"},past:{one:"il y a {0} jour",other:"il y a {0} jours"}}},"day-short":{displayName:"j",relative:{0:"aujourd’hui",1:"demain",2:"après-demain","-2":"avant-hier","-1":"hier"},relativeTime:{future:{one:"dans {0} j",other:"dans {0} j"},past:{one:"il y a {0} j",other:"il y a {0} j"}}},hour:{displayName:"heure",relative:{0:"cette heure-ci"},relativeTime:{future:{one:"dans {0} heure",other:"dans {0} heures"},past:{one:"il y a {0} heure",other:"il y a {0} heures"}}},"hour-short":{displayName:"h",relative:{0:"cette heure-ci"},relativeTime:{future:{one:"dans {0} h",other:"dans {0} h"},past:{one:"il y a {0} h",other:"il y a {0} h"}}},minute:{displayName:"minute",relative:{0:"cette minute-ci"},relativeTime:{future:{one:"dans {0} minute",other:"dans {0} minutes"},past:{one:"il y a {0} minute",other:"il y a {0} minutes"}}},"minute-short":{displayName:"min",relative:{0:"cette minute-ci"},relativeTime:{future:{one:"dans {0} min",other:"dans {0} min"},past:{one:"il y a {0} min",other:"il y a {0} min"}}},second:{displayName:"seconde",relative:{0:"maintenant"},relativeTime:{future:{one:"dans {0} seconde",other:"dans {0} secondes"},past:{one:"il y a {0} seconde",other:"il y a {0} secondes"}}},"second-short":{displayName:"s",relative:{0:"maintenant"},relativeTime:{future:{one:"dans {0} s",other:"dans {0} s"},past:{one:"il y a {0} s",other:"il y a {0} s"}}}}},{locale:"fr-CD",parentLocale:"fr"},{locale:"fr-CF",parentLocale:"fr"},{locale:"fr-CG",parentLocale:"fr"},{locale:"fr-CH",parentLocale:"fr"},{locale:"fr-CI",parentLocale:"fr"},{locale:"fr-CM",parentLocale:"fr"},{locale:"fr-DJ",parentLocale:"fr"},{locale:"fr-DZ",parentLocale:"fr"},{locale:"fr-GA",parentLocale:"fr"},{locale:"fr-GF",parentLocale:"fr"},{locale:"fr-GN",parentLocale:"fr"},{locale:"fr-GP",parentLocale:"fr"},{locale:"fr-GQ",parentLocale:"fr"},{locale:"fr-HT",parentLocale:"fr",fields:{year:{displayName:"année",relative:{0:"cette année",1:"l’année prochaine","-1":"l’année dernière"},relativeTime:{future:{one:"dans {0} an",other:"dans {0} ans"},past:{one:"il y a {0} an",other:"il y a {0} ans"}}},"year-short":{displayName:"an",relative:{0:"cette année",1:"l’année prochaine","-1":"l’année dernière"},relativeTime:{future:{one:"dans {0} a",other:"dans {0} a"},past:{one:"il y a {0} a",other:"il y a {0} a"}}},month:{displayName:"mois",relative:{0:"ce mois-ci",1:"le mois prochain","-1":"le mois dernier"},relativeTime:{future:{one:"dans {0} mois",other:"dans {0} mois"},past:{one:"il y a {0} mois",other:"il y a {0} mois"}}},"month-short":{displayName:"m.",relative:{0:"ce mois-ci",1:"le mois prochain","-1":"le mois dernier"},relativeTime:{future:{one:"dans {0} m.",other:"dans {0} m."},past:{one:"il y a {0} m.",other:"il y a {0} m."}}},day:{displayName:"jour",relative:{0:"aujourd’hui",1:"demain",2:"après-demain","-2":"avant-hier","-1":"hier"},relativeTime:{future:{one:"dans {0} jour",other:"dans {0} jours"},past:{one:"il y a {0} jour",other:"il y a {0} jours"}}},"day-short":{displayName:"jr.",relative:{0:"aujourd’hui",1:"demain",2:"après-demain","-2":"avant-hier","-1":"hier"},relativeTime:{future:{one:"dans {0} j",other:"dans {0} j"},past:{one:"il y a {0} j",other:"il y a {0} j"}}},hour:{displayName:"heure",relative:{0:"cette heure-ci"},relativeTime:{future:{one:"dans {0} heure",other:"dans {0} heures"},past:{one:"il y a {0} heure",other:"il y a {0} heures"}}},"hour-short":{displayName:"hr",relative:{0:"cette heure-ci"},relativeTime:{future:{one:"dans {0} h",other:"dans {0} h"},past:{one:"il y a {0} h",other:"il y a {0} h"}}},minute:{displayName:"minute",relative:{0:"cette minute-ci"},relativeTime:{future:{one:"dans {0} minute",other:"dans {0} minutes"},past:{one:"il y a {0} minute",other:"il y a {0} minutes"}}},"minute-short":{displayName:"min.",relative:{0:"cette minute-ci"},relativeTime:{future:{one:"dans {0} min",other:"dans {0} min"},past:{one:"il y a {0} min",other:"il y a {0} min"}}},second:{displayName:"seconde",relative:{0:"maintenant"},relativeTime:{future:{one:"dans {0} seconde",other:"dans {0} secondes"},past:{one:"il y a {0} seconde",other:"il y a {0} secondes"}}},"second-short":{displayName:"s",relative:{0:"maintenant"},relativeTime:{future:{one:"dans {0} s",other:"dans {0} s"},past:{one:"il y a {0} s",other:"il y a {0} s"}}}}},{locale:"fr-KM",parentLocale:"fr"},{locale:"fr-LU",parentLocale:"fr"},{locale:"fr-MA",parentLocale:"fr"},{locale:"fr-MC",parentLocale:"fr"},{locale:"fr-MF",parentLocale:"fr"},{locale:"fr-MG",parentLocale:"fr"},{locale:"fr-ML",parentLocale:"fr"},{locale:"fr-MQ",parentLocale:"fr"},{locale:"fr-MR",parentLocale:"fr"},{locale:"fr-MU",parentLocale:"fr"},{locale:"fr-NC",parentLocale:"fr"},{locale:"fr-NE",parentLocale:"fr"},{locale:"fr-PF",parentLocale:"fr"},{locale:"fr-PM",parentLocale:"fr"},{locale:"fr-RE",parentLocale:"fr"},{locale:"fr-RW",parentLocale:"fr"},{locale:"fr-SC",parentLocale:"fr"},{locale:"fr-SN",parentLocale:"fr"},{locale:"fr-SY",parentLocale:"fr"},{locale:"fr-TD",parentLocale:"fr"},{locale:"fr-TG",parentLocale:"fr"},{locale:"fr-TN",parentLocale:"fr"},{locale:"fr-VU",parentLocale:"fr"},{locale:"fr-WF",parentLocale:"fr"},{locale:"fr-YT",parentLocale:"fr"}]}); /***/ }), /* 205 */ /***/ (function(module, exports, __webpack_require__) { !function(e,a){ true?module.exports=a():"function"==typeof define&&define.amd?define(a):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.gl=a())}(this,function(){"use strict";return[{locale:"gl",pluralRuleFunction:function(e,a){var o=!String(e).split(".")[1];return a?"other":1==e&&o?"one":"other"},fields:{year:{displayName:"ano",relative:{0:"este ano",1:"o próximo ano","-1":"o ano pasado"},relativeTime:{future:{one:"en {0} ano",other:"en {0} anos"},past:{one:"hai {0} ano",other:"hai {0} anos"}}},"year-short":{displayName:"ano",relative:{0:"este ano",1:"seguinte ano","-1":"ano pasado"},relativeTime:{future:{one:"en {0} ano",other:"en {0} anos"},past:{one:"hai {0} ano",other:"hai {0} anos"}}},month:{displayName:"mes",relative:{0:"este mes",1:"o próximo mes","-1":"o mes pasado"},relativeTime:{future:{one:"en {0} mes",other:"en {0} meses"},past:{one:"hai {0} mes",other:"hai {0} meses"}}},"month-short":{displayName:"mes",relative:{0:"este m.",1:"m. seguinte","-1":"m. pasado"},relativeTime:{future:{one:"en {0} mes",other:"en {0} meses"},past:{one:"hai {0} mes",other:"hai {0} meses"}}},day:{displayName:"día",relative:{0:"hoxe",1:"mañá",2:"pasadomañá","-2":"antonte","-1":"onte"},relativeTime:{future:{one:"en {0} día",other:"en {0} días"},past:{one:"hai {0} día",other:"hai {0} días"}}},"day-short":{displayName:"día",relative:{0:"hoxe",1:"mañá",2:"pasadomañá","-2":"antonte","-1":"onte"},relativeTime:{future:{one:"en {0} día",other:"en {0} días"},past:{one:"hai {0} día",other:"hai {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"en {0} hora",other:"en {0} horas"},past:{one:"hai {0} hora",other:"hai {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"en {0} h",other:"en {0} h"},past:{one:"hai {0} h",other:"hai {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"en {0} minuto",other:"en {0} minutos"},past:{one:"hai {0} minuto",other:"hai {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"en {0} min",other:"en {0} min"},past:{one:"hai {0} min",other:"hai {0} min"}}},second:{displayName:"segundo",relative:{0:"agora"},relativeTime:{future:{one:"en {0} segundo",other:"en {0} segundos"},past:{one:"hai {0} segundo",other:"hai {0} segundos"}}},"second-short":{displayName:"s",relative:{0:"agora"},relativeTime:{future:{one:"en {0} s",other:"en {0} s"},past:{one:"hai {0} s",other:"hai {0} s"}}}}}]}); /***/ }), /* 206 */ /***/ (function(module, exports, __webpack_require__) { !function(e,a){ true?module.exports=a():"function"==typeof define&&define.amd?define(a):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.it=a())}(this,function(){"use strict";return[{locale:"it",pluralRuleFunction:function(e,a){var t=!String(e).split(".")[1];return a?11==e||8==e||80==e||800==e?"many":"other":1==e&&t?"one":"other"},fields:{year:{displayName:"anno",relative:{0:"quest’anno",1:"anno prossimo","-1":"anno scorso"},relativeTime:{future:{one:"tra {0} anno",other:"tra {0} anni"},past:{one:"{0} anno fa",other:"{0} anni fa"}}},"year-short":{displayName:"anno",relative:{0:"quest’anno",1:"anno prossimo","-1":"anno scorso"},relativeTime:{future:{one:"tra {0} anno",other:"tra {0} anni"},past:{one:"{0} anno fa",other:"{0} anni fa"}}},month:{displayName:"mese",relative:{0:"questo mese",1:"mese prossimo","-1":"mese scorso"},relativeTime:{future:{one:"tra {0} mese",other:"tra {0} mesi"},past:{one:"{0} mese fa",other:"{0} mesi fa"}}},"month-short":{displayName:"mese",relative:{0:"questo mese",1:"mese prossimo","-1":"mese scorso"},relativeTime:{future:{one:"tra {0} mese",other:"tra {0} mesi"},past:{one:"{0} mese fa",other:"{0} mesi fa"}}},day:{displayName:"giorno",relative:{0:"oggi",1:"domani",2:"dopodomani","-2":"l’altro ieri","-1":"ieri"},relativeTime:{future:{one:"tra {0} giorno",other:"tra {0} giorni"},past:{one:"{0} giorno fa",other:"{0} giorni fa"}}},"day-short":{displayName:"g",relative:{0:"oggi",1:"domani",2:"dopodomani","-2":"l’altro ieri","-1":"ieri"},relativeTime:{future:{one:"tra {0} g",other:"tra {0} gg"},past:{one:"{0} g fa",other:"{0} gg fa"}}},hour:{displayName:"ora",relative:{0:"quest’ora"},relativeTime:{future:{one:"tra {0} ora",other:"tra {0} ore"},past:{one:"{0} ora fa",other:"{0} ore fa"}}},"hour-short":{displayName:"h.",relative:{0:"quest’ora"},relativeTime:{future:{one:"tra {0} h",other:"tra {0} h"},past:{one:"{0} h fa",other:"{0} h fa"}}},minute:{displayName:"minuto",relative:{0:"questo minuto"},relativeTime:{future:{one:"tra {0} minuto",other:"tra {0} minuti"},past:{one:"{0} minuto fa",other:"{0} minuti fa"}}},"minute-short":{displayName:"min",relative:{0:"questo minuto"},relativeTime:{future:{one:"tra {0} min",other:"tra {0} min"},past:{one:"{0} min fa",other:"{0} min fa"}}},second:{displayName:"secondo",relative:{0:"ora"},relativeTime:{future:{one:"tra {0} secondo",other:"tra {0} secondi"},past:{one:"{0} secondo fa",other:"{0} secondi fa"}}},"second-short":{displayName:"s",relative:{0:"ora"},relativeTime:{future:{one:"tra {0} s",other:"tra {0} sec."},past:{one:"{0} s fa",other:"{0} sec. fa"}}}}},{locale:"it-CH",parentLocale:"it"},{locale:"it-SM",parentLocale:"it"},{locale:"it-VA",parentLocale:"it"}]}); /***/ }), /* 207 */ /***/ (function(module, exports, __webpack_require__) { !function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.ja=t())}(this,function(){"use strict";return[{locale:"ja",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"年",relative:{0:"今年",1:"翌年","-1":"昨年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},"year-short":{displayName:"年",relative:{0:"今年",1:"翌年","-1":"昨年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},month:{displayName:"月",relative:{0:"今月",1:"翌月","-1":"先月"},relativeTime:{future:{other:"{0} か月後"},past:{other:"{0} か月前"}}},"month-short":{displayName:"月",relative:{0:"今月",1:"翌月","-1":"先月"},relativeTime:{future:{other:"{0} か月後"},past:{other:"{0} か月前"}}},day:{displayName:"日",relative:{0:"今日",1:"明日",2:"明後日","-2":"一昨日","-1":"昨日"},relativeTime:{future:{other:"{0} 日後"},past:{other:"{0} 日前"}}},"day-short":{displayName:"日",relative:{0:"今日",1:"明日",2:"明後日","-2":"一昨日","-1":"昨日"},relativeTime:{future:{other:"{0} 日後"},past:{other:"{0} 日前"}}},hour:{displayName:"時",relative:{0:"1 時間以内"},relativeTime:{future:{other:"{0} 時間後"},past:{other:"{0} 時間前"}}},"hour-short":{displayName:"時",relative:{0:"1 時間以内"},relativeTime:{future:{other:"{0} 時間後"},past:{other:"{0} 時間前"}}},minute:{displayName:"分",relative:{0:"1 分以内"},relativeTime:{future:{other:"{0} 分後"},past:{other:"{0} 分前"}}},"minute-short":{displayName:"分",relative:{0:"1 分以内"},relativeTime:{future:{other:"{0} 分後"},past:{other:"{0} 分前"}}},second:{displayName:"秒",relative:{0:"今"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}},"second-short":{displayName:"秒",relative:{0:"今"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}}}}]}); /***/ }), /* 208 */ /***/ (function(module, exports, __webpack_require__) { !function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.ko=t())}(this,function(){"use strict";return[{locale:"ko",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"년",relative:{0:"올해",1:"내년","-1":"작년"},relativeTime:{future:{other:"{0}년 후"},past:{other:"{0}년 전"}}},"year-short":{displayName:"년",relative:{0:"올해",1:"내년","-1":"작년"},relativeTime:{future:{other:"{0}년 후"},past:{other:"{0}년 전"}}},month:{displayName:"월",relative:{0:"이번 달",1:"다음 달","-1":"지난달"},relativeTime:{future:{other:"{0}개월 후"},past:{other:"{0}개월 전"}}},"month-short":{displayName:"월",relative:{0:"이번 달",1:"다음 달","-1":"지난달"},relativeTime:{future:{other:"{0}개월 후"},past:{other:"{0}개월 전"}}},day:{displayName:"일",relative:{0:"오늘",1:"내일",2:"모레","-2":"그저께","-1":"어제"},relativeTime:{future:{other:"{0}일 후"},past:{other:"{0}일 전"}}},"day-short":{displayName:"일",relative:{0:"오늘",1:"내일",2:"모레","-2":"그저께","-1":"어제"},relativeTime:{future:{other:"{0}일 후"},past:{other:"{0}일 전"}}},hour:{displayName:"시",relative:{0:"현재 시간"},relativeTime:{future:{other:"{0}시간 후"},past:{other:"{0}시간 전"}}},"hour-short":{displayName:"시",relative:{0:"현재 시간"},relativeTime:{future:{other:"{0}시간 후"},past:{other:"{0}시간 전"}}},minute:{displayName:"분",relative:{0:"현재 분"},relativeTime:{future:{other:"{0}분 후"},past:{other:"{0}분 전"}}},"minute-short":{displayName:"분",relative:{0:"현재 분"},relativeTime:{future:{other:"{0}분 후"},past:{other:"{0}분 전"}}},second:{displayName:"초",relative:{0:"지금"},relativeTime:{future:{other:"{0}초 후"},past:{other:"{0}초 전"}}},"second-short":{displayName:"초",relative:{0:"지금"},relativeTime:{future:{other:"{0}초 후"},past:{other:"{0}초 전"}}}}},{locale:"ko-KP",parentLocale:"ko"}]}); /***/ }), /* 209 */ /***/ (function(module, exports, __webpack_require__) { !function(e,n){ true?module.exports=n():"function"==typeof define&&define.amd?define(n):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.nl=n())}(this,function(){"use strict";return[{locale:"nl",pluralRuleFunction:function(e,n){var a=!String(e).split(".")[1];return n?"other":1==e&&a?"one":"other"},fields:{year:{displayName:"jaar",relative:{0:"dit jaar",1:"volgend jaar","-1":"vorig jaar"},relativeTime:{future:{one:"over {0} jaar",other:"over {0} jaar"},past:{one:"{0} jaar geleden",other:"{0} jaar geleden"}}},"year-short":{displayName:"jr",relative:{0:"dit jaar",1:"volgend jaar","-1":"vorig jaar"},relativeTime:{future:{one:"over {0} jaar",other:"over {0} jaar"},past:{one:"{0} jaar geleden",other:"{0} jaar geleden"}}},month:{displayName:"maand",relative:{0:"deze maand",1:"volgende maand","-1":"vorige maand"},relativeTime:{future:{one:"over {0} maand",other:"over {0} maanden"},past:{one:"{0} maand geleden",other:"{0} maanden geleden"}}},"month-short":{displayName:"mnd",relative:{0:"deze maand",1:"volgende maand","-1":"vorige maand"},relativeTime:{future:{one:"over {0} maand",other:"over {0} maanden"},past:{one:"{0} maand geleden",other:"{0} maanden geleden"}}},day:{displayName:"dag",relative:{0:"vandaag",1:"morgen",2:"overmorgen","-2":"eergisteren","-1":"gisteren"},relativeTime:{future:{one:"over {0} dag",other:"over {0} dagen"},past:{one:"{0} dag geleden",other:"{0} dagen geleden"}}},"day-short":{displayName:"dag",relative:{0:"vandaag",1:"morgen",2:"overmorgen","-2":"eergisteren","-1":"gisteren"},relativeTime:{future:{one:"over {0} dag",other:"over {0} dgn"},past:{one:"{0} dag geleden",other:"{0} dgn geleden"}}},hour:{displayName:"uur",relative:{0:"binnen een uur"},relativeTime:{future:{one:"over {0} uur",other:"over {0} uur"},past:{one:"{0} uur geleden",other:"{0} uur geleden"}}},"hour-short":{displayName:"uur",relative:{0:"binnen een uur"},relativeTime:{future:{one:"over {0} uur",other:"over {0} uur"},past:{one:"{0} uur geleden",other:"{0} uur geleden"}}},minute:{displayName:"minuut",relative:{0:"binnen een minuut"},relativeTime:{future:{one:"over {0} minuut",other:"over {0} minuten"},past:{one:"{0} minuut geleden",other:"{0} minuten geleden"}}},"minute-short":{displayName:"min",relative:{0:"binnen een minuut"},relativeTime:{future:{one:"over {0} min.",other:"over {0} min."},past:{one:"{0} min. geleden",other:"{0} min. geleden"}}},second:{displayName:"seconde",relative:{0:"nu"},relativeTime:{future:{one:"over {0} seconde",other:"over {0} seconden"},past:{one:"{0} seconde geleden",other:"{0} seconden geleden"}}},"second-short":{displayName:"sec",relative:{0:"nu"},relativeTime:{future:{one:"over {0} sec.",other:"over {0} sec."},past:{one:"{0} sec. geleden",other:"{0} sec. geleden"}}}}},{locale:"nl-AW",parentLocale:"nl"},{locale:"nl-BE",parentLocale:"nl"},{locale:"nl-BQ",parentLocale:"nl"},{locale:"nl-CW",parentLocale:"nl"},{locale:"nl-SR",parentLocale:"nl"},{locale:"nl-SX",parentLocale:"nl"}]}); /***/ }), /* 210 */ /***/ (function(module, exports, __webpack_require__) { !function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.pl=t())}(this,function(){"use strict";return[{locale:"pl",pluralRuleFunction:function(e,t){var a=String(e).split("."),m=a[0],i=!a[1],n=m.slice(-1),u=m.slice(-2);return t?"other":1==e&&i?"one":i&&n>=2&&n<=4&&(u<12||u>14)?"few":i&&1!=m&&(0==n||1==n)||i&&n>=5&&n<=9||i&&u>=12&&u<=14?"many":"other"},fields:{year:{displayName:"rok",relative:{0:"w tym roku",1:"w przyszłym roku","-1":"w zeszłym roku"},relativeTime:{future:{one:"za {0} rok",few:"za {0} lata",many:"za {0} lat",other:"za {0} roku"},past:{one:"{0} rok temu",few:"{0} lata temu",many:"{0} lat temu",other:"{0} roku temu"}}},"year-short":{displayName:"r.",relative:{0:"w tym roku",1:"w przyszłym roku","-1":"w zeszłym roku"},relativeTime:{future:{one:"za {0} rok",few:"za {0} lata",many:"za {0} lat",other:"za {0} roku"},past:{one:"{0} rok temu",few:"{0} lata temu",many:"{0} lat temu",other:"{0} roku temu"}}},month:{displayName:"miesiąc",relative:{0:"w tym miesiącu",1:"w przyszłym miesiącu","-1":"w zeszłym miesiącu"},relativeTime:{future:{one:"za {0} miesiąc",few:"za {0} miesiące",many:"za {0} miesięcy",other:"za {0} miesiąca"},past:{one:"{0} miesiąc temu",few:"{0} miesiące temu",many:"{0} miesięcy temu",other:"{0} miesiąca temu"}}},"month-short":{displayName:"mies.",relative:{0:"w tym miesiącu",1:"w przyszłym miesiącu","-1":"w zeszłym miesiącu"},relativeTime:{future:{one:"za {0} mies.",few:"za {0} mies.",many:"za {0} mies.",other:"za {0} mies."},past:{one:"{0} mies. temu",few:"{0} mies. temu",many:"{0} mies. temu",other:"{0} mies. temu"}}},day:{displayName:"dzień",relative:{0:"dzisiaj",1:"jutro",2:"pojutrze","-2":"przedwczoraj","-1":"wczoraj"},relativeTime:{future:{one:"za {0} dzień",few:"za {0} dni",many:"za {0} dni",other:"za {0} dnia"},past:{one:"{0} dzień temu",few:"{0} dni temu",many:"{0} dni temu",other:"{0} dnia temu"}}},"day-short":{displayName:"dzień",relative:{0:"dzisiaj",1:"jutro",2:"pojutrze","-2":"przedwczoraj","-1":"wczoraj"},relativeTime:{future:{one:"za {0} dzień",few:"za {0} dni",many:"za {0} dni",other:"za {0} dnia"},past:{one:"{0} dzień temu",few:"{0} dni temu",many:"{0} dni temu",other:"{0} dnia temu"}}},hour:{displayName:"godzina",relative:{0:"ta godzina"},relativeTime:{future:{one:"za {0} godzinę",few:"za {0} godziny",many:"za {0} godzin",other:"za {0} godziny"},past:{one:"{0} godzinę temu",few:"{0} godziny temu",many:"{0} godzin temu",other:"{0} godziny temu"}}},"hour-short":{displayName:"godz.",relative:{0:"ta godzina"},relativeTime:{future:{one:"za {0} godz.",few:"za {0} godz.",many:"za {0} godz.",other:"za {0} godz."},past:{one:"{0} godz. temu",few:"{0} godz. temu",many:"{0} godz. temu",other:"{0} godz. temu"}}},minute:{displayName:"minuta",relative:{0:"ta minuta"},relativeTime:{future:{one:"za {0} minutę",few:"za {0} minuty",many:"za {0} minut",other:"za {0} minuty"},past:{one:"{0} minutę temu",few:"{0} minuty temu",many:"{0} minut temu",other:"{0} minuty temu"}}},"minute-short":{displayName:"min",relative:{0:"ta minuta"},relativeTime:{future:{one:"za {0} min",few:"za {0} min",many:"za {0} min",other:"za {0} min"},past:{one:"{0} min temu",few:"{0} min temu",many:"{0} min temu",other:"{0} min temu"}}},second:{displayName:"sekunda",relative:{0:"teraz"},relativeTime:{future:{one:"za {0} sekundę",few:"za {0} sekundy",many:"za {0} sekund",other:"za {0} sekundy"},past:{one:"{0} sekundę temu",few:"{0} sekundy temu",many:"{0} sekund temu",other:"{0} sekundy temu"}}},"second-short":{displayName:"sek.",relative:{0:"teraz"},relativeTime:{future:{one:"za {0} sek.",few:"za {0} sek.",many:"za {0} sek.",other:"za {0} sek."},past:{one:"{0} sek. temu",few:"{0} sek. temu",many:"{0} sek. temu",other:"{0} sek. temu"}}}}}]}); /***/ }), /* 211 */ /***/ (function(module, exports, __webpack_require__) { !function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.pt=t())}(this,function(){"use strict";return[{locale:"pt",pluralRuleFunction:function(e,t){var o=String(e).split(".")[0];return t?"other":0==o||1==o?"one":"other"},fields:{year:{displayName:"ano",relative:{0:"este ano",1:"próximo ano","-1":"ano passado"},relativeTime:{future:{one:"em {0} ano",other:"em {0} anos"},past:{one:"há {0} ano",other:"há {0} anos"}}},"year-short":{displayName:"ano",relative:{0:"este ano",1:"próximo ano","-1":"ano passado"},relativeTime:{future:{one:"em {0} ano",other:"em {0} anos"},past:{one:"há {0} ano",other:"há {0} anos"}}},month:{displayName:"mês",relative:{0:"este mês",1:"próximo mês","-1":"mês passado"},relativeTime:{future:{one:"em {0} mês",other:"em {0} meses"},past:{one:"há {0} mês",other:"há {0} meses"}}},"month-short":{displayName:"mês",relative:{0:"este mês",1:"próximo mês","-1":"mês passado"},relativeTime:{future:{one:"em {0} mês",other:"em {0} meses"},past:{one:"há {0} mês",other:"há {0} meses"}}},day:{displayName:"dia",relative:{0:"hoje",1:"amanhã",2:"depois de amanhã","-2":"anteontem","-1":"ontem"},relativeTime:{future:{one:"em {0} dia",other:"em {0} dias"},past:{one:"há {0} dia",other:"há {0} dias"}}},"day-short":{displayName:"dia",relative:{0:"hoje",1:"amanhã",2:"depois de amanhã","-2":"anteontem","-1":"ontem"},relativeTime:{future:{one:"em {0} dia",other:"em {0} dias"},past:{one:"há {0} dia",other:"há {0} dias"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"em {0} hora",other:"em {0} horas"},past:{one:"há {0} hora",other:"há {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"em {0} h",other:"em {0} h"},past:{one:"há {0} h",other:"há {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"em {0} minuto",other:"em {0} minutos"},past:{one:"há {0} minuto",other:"há {0} minutos"}}},"minute-short":{displayName:"min.",relative:{0:"este minuto"},relativeTime:{future:{one:"em {0} min.",other:"em {0} min."},past:{one:"há {0} min.",other:"há {0} min."}}},second:{displayName:"segundo",relative:{0:"agora"},relativeTime:{future:{one:"em {0} segundo",other:"em {0} segundos"},past:{one:"há {0} segundo",other:"há {0} segundos"}}},"second-short":{displayName:"seg.",relative:{0:"agora"},relativeTime:{future:{one:"em {0} seg.",other:"em {0} seg."},past:{one:"há {0} seg.",other:"há {0} seg."}}}}},{locale:"pt-AO",parentLocale:"pt-PT"},{locale:"pt-PT",parentLocale:"pt",pluralRuleFunction:function(e,t){var o=!String(e).split(".")[1];return t?"other":1==e&&o?"one":"other"},fields:{year:{displayName:"ano",relative:{0:"este ano",1:"próximo ano","-1":"ano passado"},relativeTime:{future:{one:"dentro de {0} ano",other:"dentro de {0} anos"},past:{one:"há {0} ano",other:"há {0} anos"}}},"year-short":{displayName:"ano",relative:{0:"este ano",1:"próximo ano","-1":"ano passado"},relativeTime:{future:{one:"dentro de {0} ano",other:"dentro de {0} anos"},past:{one:"há {0} ano",other:"há {0} anos"}}},month:{displayName:"mês",relative:{0:"este mês",1:"próximo mês","-1":"mês passado"},relativeTime:{future:{one:"dentro de {0} mês",other:"dentro de {0} meses"},past:{one:"há {0} mês",other:"há {0} meses"}}},"month-short":{displayName:"mês",relative:{0:"este mês",1:"próximo mês","-1":"mês passado"},relativeTime:{future:{one:"dentro de {0} mês",other:"dentro de {0} meses"},past:{one:"há {0} mês",other:"há {0} meses"}}},day:{displayName:"dia",relative:{0:"hoje",1:"amanhã",2:"depois de amanhã","-2":"anteontem","-1":"ontem"},relativeTime:{future:{one:"dentro de {0} dia",other:"dentro de {0} dias"},past:{one:"há {0} dia",other:"há {0} dias"}}},"day-short":{displayName:"dia",relative:{0:"hoje",1:"amanhã",2:"depois de amanhã","-2":"anteontem","-1":"ontem"},relativeTime:{future:{one:"dentro de {0} dia",other:"dentro de {0} dias"},past:{one:"há {0} dia",other:"há {0} dias"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"há {0} hora",other:"há {0} horas"}}},"hour-short":{displayName:"h",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} h",other:"dentro de {0} h"},past:{one:"há {0} h",other:"há {0} h"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"há {0} minuto",other:"há {0} minutos"}}},"minute-short":{displayName:"min",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} min",other:"dentro de {0} min"},past:{one:"há {0} min",other:"há {0} min"}}},second:{displayName:"segundo",relative:{0:"agora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"há {0} segundo",other:"há {0} segundos"}}},"second-short":{displayName:"s",relative:{0:"agora"},relativeTime:{future:{one:"dentro de {0} s",other:"dentro de {0} s"},past:{one:"há {0} s",other:"há {0} s"}}}}},{locale:"pt-CH",parentLocale:"pt-PT"},{locale:"pt-CV",parentLocale:"pt-PT"},{locale:"pt-GQ",parentLocale:"pt-PT"},{locale:"pt-GW",parentLocale:"pt-PT"},{locale:"pt-LU",parentLocale:"pt-PT"},{locale:"pt-MO",parentLocale:"pt-PT"},{locale:"pt-MZ",parentLocale:"pt-PT"},{locale:"pt-ST",parentLocale:"pt-PT"},{locale:"pt-TL",parentLocale:"pt-PT"}]}); /***/ }), /* 212 */ /***/ (function(module, exports, __webpack_require__) { !function(e,a){ true?module.exports=a():"function"==typeof define&&define.amd?define(a):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.ru=a())}(this,function(){"use strict";return[{locale:"ru",pluralRuleFunction:function(e,a){var t=String(e).split("."),r=t[0],o=!t[1],n=r.slice(-1),l=r.slice(-2);return a?"other":o&&1==n&&11!=l?"one":o&&n>=2&&n<=4&&(l<12||l>14)?"few":o&&0==n||o&&n>=5&&n<=9||o&&l>=11&&l<=14?"many":"other"},fields:{year:{displayName:"год",relative:{0:"в этом году",1:"в следующем году","-1":"в прошлом году"},relativeTime:{future:{one:"через {0} год",few:"через {0} года",many:"через {0} лет",other:"через {0} года"},past:{one:"{0} год назад",few:"{0} года назад",many:"{0} лет назад",other:"{0} года назад"}}},"year-short":{displayName:"г.",relative:{0:"в этом г.",1:"в след. г.","-1":"в прошлом г."},relativeTime:{future:{one:"через {0} г.",few:"через {0} г.",many:"через {0} л.",other:"через {0} г."},past:{one:"{0} г. назад",few:"{0} г. назад",many:"{0} л. назад",other:"{0} г. назад"}}},month:{displayName:"месяц",relative:{0:"в этом месяце",1:"в следующем месяце","-1":"в прошлом месяце"},relativeTime:{future:{one:"через {0} месяц",few:"через {0} месяца",many:"через {0} месяцев",other:"через {0} месяца"},past:{one:"{0} месяц назад",few:"{0} месяца назад",many:"{0} месяцев назад",other:"{0} месяца назад"}}},"month-short":{displayName:"мес.",relative:{0:"в этом мес.",1:"в следующем мес.","-1":"в прошлом мес."},relativeTime:{future:{one:"через {0} мес.",few:"через {0} мес.",many:"через {0} мес.",other:"через {0} мес."},past:{one:"{0} мес. назад",few:"{0} мес. назад",many:"{0} мес. назад",other:"{0} мес. назад"}}},day:{displayName:"день",relative:{0:"сегодня",1:"завтра",2:"послезавтра","-2":"позавчера","-1":"вчера"},relativeTime:{future:{one:"через {0} день",few:"через {0} дня",many:"через {0} дней",other:"через {0} дня"},past:{one:"{0} день назад",few:"{0} дня назад",many:"{0} дней назад",other:"{0} дня назад"}}},"day-short":{displayName:"дн.",relative:{0:"сегодня",1:"завтра",2:"послезавтра","-2":"позавчера","-1":"вчера"},relativeTime:{future:{one:"через {0} дн.",few:"через {0} дн.",many:"через {0} дн.",other:"через {0} дн."},past:{one:"{0} дн. назад",few:"{0} дн. назад",many:"{0} дн. назад",other:"{0} дн. назад"}}},hour:{displayName:"час",relative:{0:"в этот час"},relativeTime:{future:{one:"через {0} час",few:"через {0} часа",many:"через {0} часов",other:"через {0} часа"},past:{one:"{0} час назад",few:"{0} часа назад",many:"{0} часов назад",other:"{0} часа назад"}}},"hour-short":{displayName:"ч",relative:{0:"в этот час"},relativeTime:{future:{one:"через {0} ч.",few:"через {0} ч.",many:"через {0} ч.",other:"через {0} ч."},past:{one:"{0} ч. назад",few:"{0} ч. назад",many:"{0} ч. назад",other:"{0} ч. назад"}}},minute:{displayName:"минута",relative:{0:"в эту минуту"},relativeTime:{future:{one:"через {0} минуту",few:"через {0} минуты",many:"через {0} минут",other:"через {0} минуты"},past:{one:"{0} минуту назад",few:"{0} минуты назад",many:"{0} минут назад",other:"{0} минуты назад"}}},"minute-short":{displayName:"мин.",relative:{0:"в эту минуту"},relativeTime:{future:{one:"через {0} мин.",few:"через {0} мин.",many:"через {0} мин.",other:"через {0} мин."},past:{one:"{0} мин. назад",few:"{0} мин. назад",many:"{0} мин. назад",other:"{0} мин. назад"}}},second:{displayName:"секунда",relative:{0:"сейчас"},relativeTime:{future:{one:"через {0} секунду",few:"через {0} секунды",many:"через {0} секунд",other:"через {0} секунды"},past:{one:"{0} секунду назад",few:"{0} секунды назад",many:"{0} секунд назад",other:"{0} секунды назад"}}},"second-short":{displayName:"сек.",relative:{0:"сейчас"},relativeTime:{future:{one:"через {0} сек.",few:"через {0} сек.",many:"через {0} сек.",other:"через {0} сек."},past:{one:"{0} сек. назад",few:"{0} сек. назад",many:"{0} сек. назад",other:"{0} сек. назад"}}}}},{locale:"ru-BY",parentLocale:"ru"},{locale:"ru-KG",parentLocale:"ru"},{locale:"ru-KZ",parentLocale:"ru"},{locale:"ru-MD",parentLocale:"ru"},{locale:"ru-UA",parentLocale:"ru"}]}); /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { !function(e,r){ true?module.exports=r():"function"==typeof define&&define.amd?define(r):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.sv=r())}(this,function(){"use strict";return[{locale:"sv",pluralRuleFunction:function(e,r){var t=String(e).split("."),a=!t[1],n=Number(t[0])==e,o=n&&t[0].slice(-1),m=n&&t[0].slice(-2);return r?1!=o&&2!=o||11==m||12==m?"other":"one":1==e&&a?"one":"other"},fields:{year:{displayName:"år",relative:{0:"i år",1:"nästa år","-1":"i fjol"},relativeTime:{future:{one:"om {0} år",other:"om {0} år"},past:{one:"för {0} år sedan",other:"för {0} år sedan"}}},"year-short":{displayName:"år",relative:{0:"i år",1:"nästa år","-1":"i fjol"},relativeTime:{future:{one:"om {0} år",other:"om {0} år"},past:{one:"för {0} år sen",other:"för {0} år sen"}}},month:{displayName:"månad",relative:{0:"denna månad",1:"nästa månad","-1":"förra månaden"},relativeTime:{future:{one:"om {0} månad",other:"om {0} månader"},past:{one:"för {0} månad sedan",other:"för {0} månader sedan"}}},"month-short":{displayName:"m",relative:{0:"denna mån.",1:"nästa mån.","-1":"förra mån."},relativeTime:{future:{one:"om {0} mån.",other:"om {0} mån."},past:{one:"för {0} mån. sen",other:"för {0} mån. sen"}}},day:{displayName:"dag",relative:{0:"i dag",1:"i morgon",2:"i övermorgon","-2":"i förrgår","-1":"i går"},relativeTime:{future:{one:"om {0} dag",other:"om {0} dagar"},past:{one:"för {0} dag sedan",other:"för {0} dagar sedan"}}},"day-short":{displayName:"dag",relative:{0:"i dag",1:"i morgon",2:"i övermorgon","-2":"i förrgår","-1":"i går"},relativeTime:{future:{one:"om {0} d",other:"om {0} d"},past:{one:"för {0} d sedan",other:"för {0} d sedan"}}},hour:{displayName:"timme",relative:{0:"denna timme"},relativeTime:{future:{one:"om {0} timme",other:"om {0} timmar"},past:{one:"för {0} timme sedan",other:"för {0} timmar sedan"}}},"hour-short":{displayName:"tim",relative:{0:"denna timme"},relativeTime:{future:{one:"om {0} tim",other:"om {0} tim"},past:{one:"för {0} tim sedan",other:"för {0} tim sedan"}}},minute:{displayName:"minut",relative:{0:"denna minut"},relativeTime:{future:{one:"om {0} minut",other:"om {0} minuter"},past:{one:"för {0} minut sedan",other:"för {0} minuter sedan"}}},"minute-short":{displayName:"min",relative:{0:"denna minut"},relativeTime:{future:{one:"om {0} min",other:"om {0} min"},past:{one:"för {0} min sen",other:"för {0} min sen"}}},second:{displayName:"sekund",relative:{0:"nu"},relativeTime:{future:{one:"om {0} sekund",other:"om {0} sekunder"},past:{one:"för {0} sekund sedan",other:"för {0} sekunder sedan"}}},"second-short":{displayName:"sek",relative:{0:"nu"},relativeTime:{future:{one:"om {0} sek",other:"om {0} sek"},past:{one:"för {0} s sen",other:"för {0} s sen"}}}}},{locale:"sv-AX",parentLocale:"sv"},{locale:"sv-FI",parentLocale:"sv"}]}); /***/ }), /* 214 */ /***/ (function(module, exports, __webpack_require__) { !function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e.ReactIntlLocaleData=e.ReactIntlLocaleData||{},e.ReactIntlLocaleData.zh=t())}(this,function(){"use strict";return[{locale:"zh",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},"year-short":{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},"month-short":{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},"day-short":{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},hour:{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},"hour-short":{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},minute:{displayName:"分钟",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},"minute-short":{displayName:"分",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},second:{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒钟后"},past:{other:"{0}秒钟前"}}},"second-short":{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}}}},{locale:"zh-Hans",parentLocale:"zh"},{locale:"zh-Hans-HK",parentLocale:"zh-Hans",fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},"year-short":{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},"month-short":{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},"day-short":{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},hour:{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},"hour-short":{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},minute:{displayName:"分钟",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},"minute-short":{displayName:"分",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},second:{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}},"second-short":{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}}}},{locale:"zh-Hans-MO",parentLocale:"zh-Hans",fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},"year-short":{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},"month-short":{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},"day-short":{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},hour:{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},"hour-short":{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},minute:{displayName:"分钟",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},"minute-short":{displayName:"分",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},second:{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}},"second-short":{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}}}},{locale:"zh-Hans-SG",parentLocale:"zh-Hans",fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},"year-short":{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},"month-short":{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},"day-short":{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},hour:{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},"hour-short":{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},minute:{displayName:"分钟",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},"minute-short":{displayName:"分",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},second:{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}},"second-short":{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}}}},{locale:"zh-Hant",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},"year-short":{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下個月","-1":"上個月"},relativeTime:{future:{other:"{0} 個月後"},past:{other:"{0} 個月前"}}},"month-short":{displayName:"月",relative:{0:"本月",1:"下個月","-1":"上個月"},relativeTime:{future:{other:"{0} 個月後"},past:{other:"{0} 個月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"後天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0} 天後"},past:{other:"{0} 天前"}}},"day-short":{displayName:"日",relative:{0:"今天",1:"明天",2:"後天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0} 天後"},past:{other:"{0} 天前"}}},hour:{displayName:"小時",relative:{0:"這一小時"},relativeTime:{future:{other:"{0} 小時後"},past:{other:"{0} 小時前"}}},"hour-short":{displayName:"小時",relative:{0:"這一小時"},relativeTime:{future:{other:"{0} 小時後"},past:{other:"{0} 小時前"}}},minute:{displayName:"分鐘",relative:{0:"這一分鐘"},relativeTime:{future:{other:"{0} 分鐘後"},past:{other:"{0} 分鐘前"}}},"minute-short":{displayName:"分鐘",relative:{0:"這一分鐘"},relativeTime:{future:{other:"{0} 分鐘後"},past:{other:"{0} 分鐘前"}}},second:{displayName:"秒",relative:{0:"現在"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}},"second-short":{displayName:"秒",relative:{0:"現在"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}}}},{locale:"zh-Hant-HK",parentLocale:"zh-Hant",fields:{year:{displayName:"年",relative:{0:"今年",1:"下年","-1":"上年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},"year-short":{displayName:"年",relative:{0:"今年",1:"下年","-1":"上年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下個月","-1":"上個月"},relativeTime:{future:{other:"{0} 個月後"},past:{other:"{0} 個月前"}}},"month-short":{displayName:"月",relative:{0:"本月",1:"下個月","-1":"上個月"},relativeTime:{future:{other:"{0} 個月後"},past:{other:"{0} 個月前"}}},day:{displayName:"日",relative:{0:"今日",1:"明日",2:"後日","-2":"前日","-1":"昨日"},relativeTime:{future:{other:"{0} 日後"},past:{other:"{0} 日前"}}},"day-short":{displayName:"日",relative:{0:"今日",1:"明日",2:"後日","-2":"前日","-1":"昨日"},relativeTime:{future:{other:"{0} 日後"},past:{other:"{0} 日前"}}},hour:{displayName:"小時",relative:{0:"這個小時"},relativeTime:{future:{other:"{0} 小時後"},past:{other:"{0} 小時前"}}},"hour-short":{displayName:"小時",relative:{0:"這個小時"},relativeTime:{future:{other:"{0} 小時後"},past:{other:"{0} 小時前"}}},minute:{displayName:"分鐘",relative:{0:"這分鐘"},relativeTime:{future:{other:"{0} 分鐘後"},past:{other:"{0} 分鐘前"}}},"minute-short":{displayName:"分鐘",relative:{0:"這分鐘"},relativeTime:{future:{other:"{0} 分鐘後"},past:{other:"{0} 分鐘前"}}},second:{displayName:"秒",relative:{0:"現在"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}},"second-short":{displayName:"秒",relative:{0:"現在"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}}}},{locale:"zh-Hant-MO",parentLocale:"zh-Hant-HK"}]}); /***/ }), /* 215 */ /***/ (function(module, exports, __webpack_require__) { var map = { "./ca": 216, "./cs": 217, "./de": 218, "./en": 219, "./es": 220, "./fr": 221, "./gl": 222, "./it": 223, "./ja": 224, "./ko": 225, "./nl": 226, "./pl": 227, "./pt": 228, "./ru": 229, "./sv": 230, "./zh": 231 }; function webpackContext(req) { return __webpack_require__(webpackContextResolve(req)); }; function webpackContextResolve(req) { var id = map[req]; if(!(id + 1)) // check for number or string throw new Error("Cannot find module '" + req + "'."); return id; }; webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 215; /***/ }), /* 216 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"ca",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1} {0}",medium:"{1}, {0}",full:"{1} 'a' 'les' {0}",long:"{1}, {0}",availableFormats:{"d":"d","E":"ccc",Ed:"E d",Ehm:"E h:mm a",EHm:"E H:mm",Ehms:"E h:mm:ss a",EHms:"E H:mm:ss",Gy:"y G",GyMMM:"LLL y G",GyMMMd:"d MMM y G",GyMMMEd:"E, d MMM y G",GyMMMM:"LLLL 'de' y G",GyMMMMd:"d MMMM 'de' y G",GyMMMMEd:"E, d MMMM 'de' y G","h":"h a","H":"H",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"d/M",MEd:"E d/M",MMM:"LLL",MMMd:"d MMM",MMMEd:"E, d MMM",MMMMd:"d MMMM",MMMMEd:"E, d MMMM",ms:"mm:ss","y":"y",yM:"M/y",yMd:"d/M/y",yMEd:"E, d/M/y",yMMM:"LLL 'de' y",yMMMd:"d MMM y",yMMMEd:"E, d MMM y",yMMMM:"LLLL 'de' y",yMMMMd:"d MMMM 'de' y",yMMMMEd:"E, d MMMM 'de' y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE, d MMMM 'de' y",yMMMMd:"d MMMM 'de' y",yMMMd:"d MMM y",yMd:"d/M/yy"},timeFormats:{hmmsszzzz:"H:mm:ss zzzz",hmsz:"H:mm:ss z",hms:"H:mm:ss",hm:"H:mm"}},calendars:{buddhist:{months:{narrow:["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],short:["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],long:["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["eB"],short:["eB"],long:["eB"]},dayPeriods:{am:"a. m.",pm:"p. m."}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1","2","3","4","5","6","7","8","9","10","11","12"],long:["1","2","3","4","5","6","7","8","9","10","11","12"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},dayPeriods:{am:"a. m.",pm:"p. m."}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a. m.",pm:"p. m."}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1","2","3","4","5","6","7","8","9","10","11","12"],long:["1","2","3","4","5","6","7","8","9","10","11","12"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},dayPeriods:{am:"a. m.",pm:"p. m."}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a. m.",pm:"p. m."}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"a. m.",pm:"p. m."}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a. m.",pm:"p. m."}},gregory:{months:{narrow:["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],short:["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],long:["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["aC","dC","AEC","EC"],short:["aC","dC","AEC","EC"],long:["abans de Crist","després de Crist","abans de l’Era Comuna","Era Comuna"]},dayPeriods:{am:"a. m.",pm:"p. m."}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],long:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"a. m.",pm:"p. m."}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"a. m.",pm:"p. m."}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"a. m.",pm:"p. m."}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"a. m.",pm:"p. m."}},japanese:{months:{narrow:["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],short:["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],long:["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"a. m.",pm:"p. m."}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"a. m.",pm:"p. m."}},roc:{months:{narrow:["GN","FB","MÇ","AB","MG","JN","JL","AG","ST","OC","NV","DS"],short:["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],long:["de gener","de febrer","de març","d’abril","de maig","de juny","de juliol","d’agost","de setembre","d’octubre","de novembre","de desembre"]},days:{narrow:["dg","dl","dt","dc","dj","dv","ds"],short:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],long:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},eras:{narrow:["Before R.O.C.","R.O.C."],short:["Before R.O.C.","R.O.C."],long:["Before R.O.C.","R.O.C."]},dayPeriods:{am:"a. m.",pm:"p. m."}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:",",group:".",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"AU$",CNY:"¥",ESP:"₧",EUR:"€",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"JP¥",KRW:"₩",NZD:"NZ$",THB:"฿",TWD:"NT$",VND:"₫",XAF:"FCFA",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 217 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"cs",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d.","E":"ccc",Ed:"E d.",Ehm:"E h:mm a",EHm:"E H:mm",Ehms:"E h:mm:ss a",EHms:"E H:mm:ss",Gy:"y G",GyMMM:"LLLL y G",GyMMMd:"d. M. y G",GyMMMEd:"E d. M. y G",GyMMMMd:"d. MMMM y G",GyMMMMEd:"E d. MMMM y G","h":"h a","H":"H",hm:"h:mm a",Hm:"H:mm",hms:"h:mm:ss a",Hms:"H:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"H:mm:ss v",hmv:"h:mm a v",Hmv:"H:mm v","M":"L",Md:"d. M.",MEd:"E d. M.",MMM:"LLL",MMMd:"d. M.",MMMEd:"E d. M.",MMMMd:"d. MMMM",MMMMEd:"E d. MMMM",ms:"mm:ss","y":"y",yM:"M/y",yMd:"d. M. y",yMEd:"E d. M. y",yMMM:"LLLL y",yMMMd:"d. M. y",yMMMEd:"E d. M. y",yMMMM:"LLLL y",yMMMMd:"d. MMMM y",yMMMMEd:"E d. MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE d. MMMM y",yMMMMd:"d. MMMM y",yMMMd:"d. M. y",yMd:"dd.MM.yy"},timeFormats:{hmmsszzzz:"H:mm:ss zzzz",hmsz:"H:mm:ss z",hms:"H:mm:ss",hm:"H:mm"}},calendars:{buddhist:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],long:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"dop.",pm:"odp."}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},dayPeriods:{am:"dop.",pm:"odp."}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"dop.",pm:"odp."}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},dayPeriods:{am:"dop.",pm:"odp."}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"dop.",pm:"odp."}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"dop.",pm:"odp."}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"dop.",pm:"odp."}},gregory:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],long:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["př.n.l.","n.l.","BCE","CE"],short:["př. n. l.","n. l.","BCE","CE"],long:["př. n. l.","n. l.","BCE","CE"]},dayPeriods:{am:"dop.",pm:"odp."}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],long:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"dop.",pm:"odp."}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"dop.",pm:"odp."}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"dop.",pm:"odp."}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"dop.",pm:"odp."}},japanese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],long:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"dop.",pm:"odp."}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"dop.",pm:"odp."}},roc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],long:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"]},days:{narrow:["N","P","Ú","S","Č","P","S"],short:["ne","po","út","st","čt","pá","so"],long:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},eras:{narrow:["Před R. O. C.","R.O.C."],short:["Před R. O. C.","R.O.C."],long:["Před R. O. C.","R.O.C."]},dayPeriods:{am:"dop.",pm:"odp."}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number} {percentSign}",negativePattern:"{minusSign}{number} {percentSign}"}},symbols:{latn:{decimal:",",group:" ",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"AU$",BRL:"R$",CAD:"CA$",CNY:"CN¥",CSK:"Kčs",CZK:"Kč",EUR:"€",GBP:"£",HKD:"HK$",JPY:"JP¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",TWD:"NT$",USD:"US$",XAF:"FCFA",XCD:"EC$",XEU:"ECU",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 218 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"de",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1}, {0}",medium:"{1}, {0}",full:"{1} 'um' {0}",long:"{1} 'um' {0}",availableFormats:{"d":"d","E":"ccc",Ed:"E, d.",Ehm:"E h:mm a",EHm:"E, HH:mm",Ehms:"E, h:mm:ss a",EHms:"E, HH:mm:ss",Gy:"y G",GyMMM:"MMM y G",GyMMMd:"d. MMM y G",GyMMMEd:"E, d. MMM y G","h":"h a","H":"HH 'Uhr'",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"d.M.",MEd:"E, d.M.",MMd:"d.MM.",MMdd:"dd.MM.",MMM:"LLL",MMMd:"d. MMM",MMMEd:"E, d. MMM",MMMMd:"d. MMMM",MMMMEd:"E, d. MMMM",ms:"mm:ss","y":"y",yM:"M.y",yMd:"d.M.y",yMEd:"E, d.M.y",yMM:"MM.y",yMMdd:"dd.MM.y",yMMM:"MMM y",yMMMd:"d. MMM y",yMMMEd:"E, d. MMM y",yMMMM:"MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE, d. MMMM y",yMMMMd:"d. MMMM y",yMMMd:"dd.MM.y",yMd:"dd.MM.yy"},timeFormats:{hmmsszzzz:"HH:mm:ss zzzz",hmsz:"HH:mm:ss z",hms:"HH:mm:ss",hm:"HH:mm"}},calendars:{buddhist:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],long:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"vorm.",pm:"nachm."}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},dayPeriods:{am:"vorm.",pm:"nachm."}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"vorm.",pm:"nachm."}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},dayPeriods:{am:"vorm.",pm:"nachm."}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"vorm.",pm:"nachm."}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"vorm.",pm:"nachm."}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"vorm.",pm:"nachm."}},gregory:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],long:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["v. Chr.","n. Chr.","v. u. Z.","u. Z."],short:["v. Chr.","n. Chr.","v. u. Z.","u. Z."],long:["v. Chr.","n. Chr.","vor unserer Zeitrechnung","unserer Zeitrechnung"]},dayPeriods:{am:"vorm.",pm:"nachm."}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],long:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"vorm.",pm:"nachm."}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"vorm.",pm:"nachm."}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"vorm.",pm:"nachm."}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"vorm.",pm:"nachm."}},japanese:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],long:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"vorm.",pm:"nachm."}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"vorm.",pm:"nachm."}},roc:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],long:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},days:{narrow:["S","M","D","M","D","F","S"],short:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],long:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},eras:{narrow:["Before R.O.C.","Minguo"],short:["Before R.O.C.","Minguo"],long:["Before R.O.C.","Minguo"]},dayPeriods:{am:"vorm.",pm:"nachm."}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number} {percentSign}",negativePattern:"{minusSign}{number} {percentSign}"}},symbols:{latn:{decimal:",",group:".",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{ATS:"öS",AUD:"AU$",BGM:"BGK",BGO:"BGJ",BRL:"R$",CAD:"CA$",CNY:"CN¥",DEM:"DM",EUR:"€",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",THB:"฿",TWD:"NT$",USD:"$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 219 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"en",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:true,formats:{short:"{1}, {0}",medium:"{1}, {0}",full:"{1} 'at' {0}",long:"{1} 'at' {0}",availableFormats:{"d":"d","E":"ccc",Ed:"d E",Ehm:"E h:mm a",EHm:"E HH:mm",Ehms:"E h:mm:ss a",EHms:"E HH:mm:ss",Gy:"y G",GyMMM:"MMM y G",GyMMMd:"MMM d, y G",GyMMMEd:"E, MMM d, y G","h":"h a","H":"HH",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"M/d",MEd:"E, M/d",MMM:"LLL",MMMd:"MMM d",MMMEd:"E, MMM d",MMMMd:"MMMM d",ms:"mm:ss","y":"y",yM:"M/y",yMd:"M/d/y",yMEd:"E, M/d/y",yMMM:"MMM y",yMMMd:"MMM d, y",yMMMEd:"E, MMM d, y",yMMMM:"MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE, MMMM d, y",yMMMMd:"MMMM d, y",yMMMd:"MMM d, y",yMd:"M/d/yy"},timeFormats:{hmmsszzzz:"h:mm:ss a zzzz",hmsz:"h:mm:ss a z",hms:"h:mm:ss a",hm:"h:mm a"}},calendars:{buddhist:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long:["January","February","March","April","May","June","July","August","September","October","November","December"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"AM",pm:"PM"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Mo1","Mo2","Mo3","Mo4","Mo5","Mo6","Mo7","Mo8","Mo9","Mo10","Mo11","Mo12"],long:["Month1","Month2","Month3","Month4","Month5","Month6","Month7","Month8","Month9","Month10","Month11","Month12"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},dayPeriods:{am:"AM",pm:"PM"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Mo1","Mo2","Mo3","Mo4","Mo5","Mo6","Mo7","Mo8","Mo9","Mo10","Mo11","Mo12"],long:["Month1","Month2","Month3","Month4","Month5","Month6","Month7","Month8","Month9","Month10","Month11","Month12"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},dayPeriods:{am:"AM",pm:"PM"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"AM",pm:"PM"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},gregory:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long:["January","February","March","April","May","June","July","August","September","October","November","December"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["B","A","BCE","CE"],short:["BC","AD","BCE","CE"],long:["Before Christ","Anno Domini","Before Common Era","Common Era"]},dayPeriods:{am:"AM",pm:"PM"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],long:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"AM",pm:"PM"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"AM",pm:"PM"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},japanese:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long:["January","February","March","April","May","June","July","August","September","October","November","December"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"AM",pm:"PM"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"AM",pm:"PM"}},roc:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],long:["January","February","March","April","May","June","July","August","September","October","November","December"]},days:{narrow:["S","M","T","W","T","F","S"],short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},eras:{narrow:["Before R.O.C.","Minguo"],short:["Before R.O.C.","Minguo"],long:["Before R.O.C.","Minguo"]},dayPeriods:{am:"AM",pm:"PM"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{currency}{number}",negativePattern:"{minusSign}{currency}{number}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:".",group:",",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"A$",BRL:"R$",CAD:"CA$",CNY:"CN¥",EUR:"€",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",TWD:"NT$",USD:"$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 220 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"es",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1}, {0}",long:"{1}, {0}",availableFormats:{"d":"d","E":"ccc",Ed:"E d",Ehm:"E, h:mm a",EHm:"E, H:mm",Ehms:"E, h:mm:ss a",EHms:"E, H:mm:ss",Gy:"y G",GyMMM:"MMM y G",GyMMMd:"d MMM y G",GyMMMEd:"E, d MMM y G",GyMMMM:"MMMM 'de' y G",GyMMMMd:"d 'de' MMMM 'de' y G",GyMMMMEd:"E, d 'de' MMMM 'de' y G","h":"h a","H":"H",hm:"h:mm a",Hm:"H:mm",hms:"h:mm:ss a",Hms:"H:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"H:mm:ss v",hmsvvvv:"h:mm:ss a (vvvv)",Hmsvvvv:"H:mm:ss (vvvv)",hmv:"h:mm a v",Hmv:"H:mm v","M":"L",Md:"d/M",MEd:"E, d/M",MMd:"d/M",MMdd:"d/M",MMM:"LLL",MMMd:"d MMM",MMMEd:"E, d MMM",MMMMd:"d 'de' MMMM",MMMMEd:"E, d 'de' MMMM",ms:"mm:ss","y":"y",yM:"M/y",yMd:"d/M/y",yMEd:"EEE, d/M/y",yMM:"M/y",yMMM:"MMM y",yMMMd:"d MMM y",yMMMEd:"EEE, d MMM y",yMMMM:"MMMM 'de' y",yMMMMd:"d 'de' MMMM 'de' y",yMMMMEd:"EEE, d 'de' MMMM 'de' y",yQQQ:"QQQ y",yQQQQ:"QQQQ 'de' y"},dateFormats:{yMMMMEEEEd:"EEEE, d 'de' MMMM 'de' y",yMMMMd:"d 'de' MMMM 'de' y",yMMMd:"d MMM y",yMd:"d/M/yy"},timeFormats:{hmmsszzzz:"H:mm:ss (zzzz)",hmsz:"H:mm:ss z",hms:"H:mm:ss",hm:"H:mm"}},calendars:{buddhist:{months:{narrow:["E","F","M","A","M","J","J","A","S","O","N","D"],short:["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],long:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"a. m.",pm:"p. m."}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},dayPeriods:{am:"a. m.",pm:"p. m."}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a. m.",pm:"p. m."}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},dayPeriods:{am:"a. m.",pm:"p. m."}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a. m.",pm:"p. m."}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"a. m.",pm:"p. m."}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a. m.",pm:"p. m."}},gregory:{months:{narrow:["E","F","M","A","M","J","J","A","S","O","N","D"],short:["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],long:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["a. C.","d. C.","a. e. c.","e. c."],short:["a. C.","d. C.","a. e. c.","e. c."],long:["antes de Cristo","después de Cristo","antes de la era común","era común"]},dayPeriods:{am:"a. m.",pm:"p. m."}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],long:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"a. m.",pm:"p. m."}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"a. m.",pm:"p. m."}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"a. m.",pm:"p. m."}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"a. m.",pm:"p. m."}},japanese:{months:{narrow:["E","F","M","A","M","J","J","A","S","O","N","D"],short:["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],long:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"a. m.",pm:"p. m."}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"a. m.",pm:"p. m."}},roc:{months:{narrow:["E","F","M","A","M","J","J","A","S","O","N","D"],short:["ene.","feb.","mar.","abr.","may.","jun.","jul.","ago.","sept.","oct.","nov.","dic."],long:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},days:{narrow:["D","L","M","X","J","V","S"],short:["dom.","lun.","mar.","mié.","jue.","vie.","sáb."],long:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},eras:{narrow:["antes de R.O.C.","R.O.C."],short:["antes de R.O.C.","R.O.C."],long:["antes de R.O.C.","R.O.C."]},dayPeriods:{am:"a. m.",pm:"p. m."}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number} {percentSign}",negativePattern:"{minusSign}{number} {percentSign}"}},symbols:{latn:{decimal:",",group:".",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{CAD:"CA$",ESP:"₧",EUR:"€",THB:"฿",USD:"$",VND:"₫",XPF:"CFPF"}}}); /***/ }), /* 221 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"fr",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1} {0}",medium:"{1} 'à' {0}",full:"{1} 'à' {0}",long:"{1} 'à' {0}",availableFormats:{"d":"d","E":"E",Ed:"E d",Ehm:"E h:mm a",EHm:"E HH:mm",Ehms:"E h:mm:ss a",EHms:"E HH:mm:ss",Gy:"y G",GyMMM:"MMM y G",GyMMMd:"d MMM y G",GyMMMEd:"E d MMM y G","h":"h a","H":"HH 'h'",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"dd/MM",MEd:"E dd/MM",MMM:"LLL",MMMd:"d MMM",MMMEd:"E d MMM",MMMMd:"d MMMM",ms:"mm:ss","y":"y",yM:"MM/y",yMd:"dd/MM/y",yMEd:"E dd/MM/y",yMMM:"MMM y",yMMMd:"d MMM y",yMMMEd:"E d MMM y",yMMMM:"MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE d MMMM y",yMMMMd:"d MMMM y",yMMMd:"d MMM y",yMd:"dd/MM/y"},timeFormats:{hmmsszzzz:"HH:mm:ss zzzz",hmsz:"HH:mm:ss z",hms:"HH:mm:ss",hm:"HH:mm"}},calendars:{buddhist:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],long:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["E.B."],short:["ère b."],long:["ère bouddhiste"]},dayPeriods:{am:"AM",pm:"PM"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1yuè","2yuè","3yuè","4yuè","5yuè","6yuè","7yuè","8yuè","9yuè","10yuè","11yuè","12yuè"],long:["zhēngyuè","èryuè","sānyuè","sìyuè","wǔyuè","liùyuè","qīyuè","bāyuè","jiǔyuè","shíyuè","shíyīyuè","shí’èryuè"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},dayPeriods:{am:"AM",pm:"PM"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1yuè","2yuè","3yuè","4yuè","5yuè","6yuè","7yuè","8yuè","9yuè","10yuè","11yuè","12yuè"],long:["zhēngyuè","èryuè","sānyuè","sìyuè","wǔyuè","liùyuè","qīyuè","bāyuè","jiǔyuè","shíyuè","shíyīyuè","shí’èryuè"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},dayPeriods:{am:"AM",pm:"PM"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"AM",pm:"PM"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},gregory:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],long:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["av. J.-C.","ap. J.-C.","AEC","EC"],short:["av. J.-C.","ap. J.-C.","AEC","EC"],long:["avant Jésus-Christ","après Jésus-Christ","avant l’ère commune","de l’ère commune"]},dayPeriods:{am:"AM",pm:"PM"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tisseri","Hesvan","Kislev","Tébeth","Schébat","Adar I","Adar","Nissan","Iyar","Sivan","Tamouz","Ab","Elloul","Adar II"],long:["Tisseri","Hesvan","Kislev","Tébeth","Schébat","Adar I","Adar","Nissan","Iyar","Sivan","Tamouz","Ab","Elloul","Adar II"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"AM",pm:"PM"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"AM",pm:"PM"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["mouh.","saf.","rab. aw.","rab. th.","joum. oul.","joum. tha.","raj.","chaa.","ram.","chaw.","dhou. q.","dhou. h."],long:["mouharram","safar","rabia al awal","rabia ath-thani","joumada al oula","joumada ath-thania","rajab","chaabane","ramadan","chawwal","dhou al qi`da","dhou al-hijja"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["mouh.","saf.","rab. aw.","rab. th.","joum. oul.","joum. tha.","raj.","chaa.","ram.","chaw.","dhou. q.","dhou. h."],long:["mouharram","safar","rabia al awal","rabia ath-thani","joumada al oula","joumada ath-thania","rajab","chaabane","ramadan","chawwal","dhou al qi`da","dhou al-hijja"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},japanese:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],long:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"AM",pm:"PM"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"AM",pm:"PM"}},roc:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],long:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},days:{narrow:["D","L","M","M","J","V","S"],short:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],long:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},eras:{narrow:["avant RdC","RdC"],short:["avant RdC","RdC"],long:["avant RdC","RdC"]},dayPeriods:{am:"AM",pm:"PM"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number} {percentSign}",negativePattern:"{minusSign}{number} {percentSign}"}},symbols:{latn:{decimal:",",group:" ",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{ARS:"$AR",AUD:"$AU",BEF:"FB",BMD:"$BM",BND:"$BN",BRL:"R$",BSD:"$BS",BZD:"$BZ",CAD:"$CA",CLP:"$CL",COP:"$CO",CYP:"£CY",EUR:"€",FJD:"$FJ",FKP:"£FK",FRF:"F",GBP:"£GB",GIP:"£GI",IEP:"£IE",ILP:"£IL",ILS:"₪",INR:"₹",ITL:"₤IT",KRW:"₩",LBP:"£LB",MTP:"£MT",MXN:"$MX",NAD:"$NA",NZD:"$NZ",RHD:"$RH",SBD:"$SB",SGD:"$SG",SRD:"$SR",TTD:"$TT",USD:"$US",UYU:"$UY",VND:"₫",WST:"WS$",XAF:"FCFA",XOF:"CFA",XPF:"FCFP"}}}); /***/ }), /* 222 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"gl",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d","E":"ccc",Ed:"d E",Ehm:"E h:mm a",EHm:"E HH:mm",Ehms:"E h:mm:ss a",EHms:"E HH:mm:ss",Gy:"G y",GyMMM:"G y MMM",GyMMMd:"G y MMM d",GyMMMEd:"G y MMM d, E","h":"h a","H":"HH",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"d-M",MEd:"E, d-M",MMdd:"dd/MM",MMM:"LLL",MMMd:"d MMM",MMMEd:"E d MMM",MMMMd:"d MMMM",MMMMEd:"E d MMMM",ms:"mm:ss","y":"y",yM:"M-y",yMd:"d/M/y",yMEd:"E, d/M/y",yMM:"MM/y",yMMM:"MMM y",yMMMd:"d MMM, y",yMMMEd:"E, d MMM, y",yMMMM:"MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE dd MMMM y",yMMMMd:"dd MMMM y",yMMMd:"d MMM, y",yMd:"dd/MM/yy"},timeFormats:{hmmsszzzz:"HH:mm:ss zzzz",hmsz:"HH:mm:ss z",hms:"HH:mm:ss",hm:"HH:mm"}},calendars:{buddhist:{months:{narrow:["X","F","M","A","M","X","X","A","S","O","N","D"],short:["xan","feb","mar","abr","mai","xuñ","xul","ago","set","out","nov","dec"],long:["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"a.m.",pm:"p.m."}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},dayPeriods:{am:"a.m.",pm:"p.m."}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a.m.",pm:"p.m."}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},dayPeriods:{am:"a.m.",pm:"p.m."}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a.m.",pm:"p.m."}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"a.m.",pm:"p.m."}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a.m.",pm:"p.m."}},gregory:{months:{narrow:["X","F","M","A","M","X","X","A","S","O","N","D"],short:["xan","feb","mar","abr","mai","xuñ","xul","ago","set","out","nov","dec"],long:["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["a.C.","d.C.","BCE","CE"],short:["a.C.","d.C.","BCE","CE"],long:["antes de Cristo","despois de Cristo","a.C.","d.C."]},dayPeriods:{am:"a.m.",pm:"p.m."}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],long:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"a.m.",pm:"p.m."}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"a.m.",pm:"p.m."}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"a.m.",pm:"p.m."}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"a.m.",pm:"p.m."}},japanese:{months:{narrow:["X","F","M","A","M","X","X","A","S","O","N","D"],short:["xan","feb","mar","abr","mai","xuñ","xul","ago","set","out","nov","dec"],long:["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"a.m.",pm:"p.m."}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"a.m.",pm:"p.m."}},roc:{months:{narrow:["X","F","M","A","M","X","X","A","S","O","N","D"],short:["xan","feb","mar","abr","mai","xuñ","xul","ago","set","out","nov","dec"],long:["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro"]},days:{narrow:["D","L","M","M","X","V","S"],short:["dom","luns","mar","mér","xov","ven","sáb"],long:["domingo","luns","martes","mércores","xoves","venres","sábado"]},eras:{narrow:["Before R.O.C.","R.O.C."],short:["Before R.O.C.","R.O.C."],long:["Before R.O.C.","R.O.C."]},dayPeriods:{am:"a.m.",pm:"p.m."}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{currency}{number}",negativePattern:"{minusSign}{currency}{number}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:",",group:".",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"$A",BRL:"$R",CAD:"$CA",CNY:"CN¥",ESP:"₧",EUR:"€",GBP:"£",HKD:"$HK",ILS:"₪",INR:"₹",JPY:"¥JP",KRW:"₩",MXN:"$MX",NZD:"NZ$",THB:"฿",TWD:"$NT",USD:"$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 223 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"it",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1}, {0}",medium:"{1}, {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d","E":"ccc",Ed:"E d",Ehm:"E h:mm a",EHm:"E HH:mm",Ehms:"E h:mm:ss a",EHms:"E HH:mm:ss",Gy:"y G",GyMMM:"MMM y G",GyMMMd:"d MMM y G",GyMMMEd:"E d MMM y G","h":"h a","H":"HH",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"d/M",MEd:"E d/M",MMM:"LLL",MMMd:"d MMM",MMMEd:"E d MMM",MMMMd:"d MMMM",ms:"mm:ss","y":"y",yM:"M/y",yMd:"d/M/y",yMEd:"E d/M/y",yMMM:"MMM y",yMMMd:"d MMM y",yMMMEd:"E d MMM y",yMMMM:"MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE d MMMM y",yMMMMd:"d MMMM y",yMMMd:"dd MMM y",yMd:"dd/MM/yy"},timeFormats:{hmmsszzzz:"HH:mm:ss zzzz",hmsz:"HH:mm:ss z",hms:"HH:mm:ss",hm:"HH:mm"}},calendars:{buddhist:{months:{narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],short:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],long:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["EB"],short:["EB"],long:["EB"]},dayPeriods:{am:"AM",pm:"PM"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},dayPeriods:{am:"AM",pm:"PM"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},dayPeriods:{am:"AM",pm:"PM"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"AM",pm:"PM"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},gregory:{months:{narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],short:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],long:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["aC","dC","BCE","CE"],short:["a.C.","d.C.","a.E.V.","E.V."],long:["a.C.","d.C.","avanti Era Volgare","Era Volgare"]},dayPeriods:{am:"AM",pm:"PM"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],long:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"AM",pm:"PM"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"AM",pm:"PM"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},japanese:{months:{narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],short:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],long:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"AM",pm:"PM"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"AM",pm:"PM"}},roc:{months:{narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],short:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],long:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},days:{narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],long:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},eras:{narrow:["Prima di R.O.C.","Minguo"],short:["Prima di R.O.C.","Minguo"],long:["Prima di R.O.C.","Minguo"]},dayPeriods:{am:"AM",pm:"PM"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:",",group:".",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"A$",CAD:"CA$",CNY:"CN¥",EUR:"€",GBP:"£",ILS:"₪",INR:"₹",NZD:"NZ$",THB:"฿",USD:"US$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 224 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"ja",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:false,hour12:false,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d日","E":"ccc",Ed:"d日(E)",EEEEd:"d日EEEE",Ehm:"aK:mm (E)",EHm:"H:mm (E)",Ehms:"aK:mm:ss (E)",EHms:"H:mm:ss (E)",Gy:"Gy年",GyMMM:"Gy年M月",GyMMMd:"Gy年M月d日",GyMMMEd:"Gy年M月d日(E)",GyMMMEEEEd:"Gy年M月d日EEEE","h":"aK時","H":"H時",hm:"aK:mm",Hm:"H:mm",hms:"aK:mm:ss",Hms:"H:mm:ss",hmsv:"aK:mm:ss v",Hmsv:"H:mm:ss v",hmv:"aK:mm v",Hmv:"H:mm v","M":"M月",Md:"M/d",MEd:"M/d(E)",MEEEEd:"M/dEEEE",MMM:"M月",MMMd:"M月d日",MMMEd:"M月d日(E)",MMMEEEEd:"M月d日EEEE",MMMMd:"M月d日",ms:"mm:ss","y":"y年",yM:"y/M",yMd:"y/M/d",yMEd:"y/M/d(E)",yMEEEEd:"y/M/dEEEE",yMM:"y/MM",yMMM:"y年M月",yMMMd:"y年M月d日",yMMMEd:"y年M月d日(E)",yMMMEEEEd:"y年M月d日EEEE",yMMMM:"y年M月",yQQQ:"y/QQQ",yQQQQ:"yQQQQ"},dateFormats:{yMMMMEEEEd:"y年M月d日EEEE",yMMMMd:"y年M月d日",yMMMd:"y/MM/dd",yMd:"y/MM/dd"},timeFormats:{hmmsszzzz:"H時mm分ss秒 zzzz",hmsz:"H:mm:ss z",hms:"H:mm:ss",hm:"H:mm"}},calendars:{buddhist:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["BE"],short:["BE"],long:["仏暦"]},dayPeriods:{am:"午前",pm:"午後"}},chinese:{months:{narrow:["正","二","三","四","五","六","七","八","九","十","十一","十二"],short:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],long:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},dayPeriods:{am:"午前",pm:"午後"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["トウト","ババ","ハトール","キアック","トーバ","アムシール","バラムハート","バラモウダ","バシャンス","パオーナ","エペープ","メスラ","ナシエ"],long:["トウト","ババ","ハトール","キアック","トーバ","アムシール","バラムハート","バラモウダ","バシャンス","パオーナ","エペープ","メスラ","ナシエ"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"午前",pm:"午後"}},dangi:{months:{narrow:["正","二","三","四","五","六","七","八","九","十","十一","十二"],short:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],long:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},dayPeriods:{am:"午前",pm:"午後"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["メスケレム","テケムト","ヘダル","ターサス","テル","イェカティト","メガビト","ミアジア","ゲンボト","セネ","ハムレ","ネハッセ","パグメン"],long:["メスケレム","テケムト","ヘダル","ターサス","テル","イェカティト","メガビト","ミアジア","ゲンボト","セネ","ハムレ","ネハッセ","パグメン"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"午前",pm:"午後"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["メスケレム","テケムト","ヘダル","ターサス","テル","イェカティト","メガビト","ミアジア","ゲンボト","セネ","ハムレ","ネハッセ","パグメン"],long:["メスケレム","テケムト","ヘダル","ターサス","テル","イェカティト","メガビト","ミアジア","ゲンボト","セネ","ハムレ","ネハッセ","パグメン"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"午前",pm:"午後"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"午前",pm:"午後"}},gregory:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["BC","AD","BCE","CE"],short:["紀元前","西暦","西暦紀元前","西暦紀元"],long:["紀元前","西暦","西暦紀元前","西暦紀元"]},dayPeriods:{am:"午前",pm:"午後"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["ティスレ","へシボン","キスレブ","テベット","シバット","アダル I","アダル","ニサン","イヤル","シバン","タムズ","アヴ","エルル","アダル II"],long:["ティスレ","へシボン","キスレブ","テベット","シバット","アダル I","アダル","ニサン","イヤル","シバン","タムズ","アヴ","エルル","アダル II"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"午前",pm:"午後"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["カイトラ","ヴァイサカ","ジャイスタ","アーサダ","スラバナ","バードラ","アスビナ","カルディカ","アヴラハヤナ","パウサ","マーガ","パルグナ"],long:["カイトラ","ヴァイサカ","ジャイスタ","アーサダ","スラバナ","バードラ","アスビナ","カルディカ","アヴラハヤナ","パウサ","マーガ","パルグナ"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["サカ"],short:["サカ"],long:["サカ"]},dayPeriods:{am:"午前",pm:"午後"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["ムハッラム","サフアル","ラビー・ウル・アウワル","ラビー・ウッ・サーニー","ジュマーダル・アウワル","ジュマーダッサーニー","ラジャブ","シャアバーン","ラマダーン","シャウワール","ズル・カイダ","ズル・ヒッジャ"],long:["ムハッラム","サフアル","ラビー・ウル・アウワル","ラビー・ウッ・サーニー","ジュマーダル・アウワル","ジュマーダッサーニー","ラジャブ","シャアバーン","ラマダーン","シャウワール","ズル・カイダ","ズル・ヒッジャ"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"午前",pm:"午後"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["ムハッラム","サフアル","ラビー・ウル・アウワル","ラビー・ウッ・サーニー","ジュマーダル・アウワル","ジュマーダッサーニー","ラジャブ","シャアバーン","ラマダーン","シャウワール","ズル・カイダ","ズル・ヒッジャ"],long:["ムハッラム","サフアル","ラビー・ウル・アウワル","ラビー・ウッ・サーニー","ジュマーダル・アウワル","ジュマーダッサーニー","ラジャブ","シャアバーン","ラマダーン","シャウワール","ズル・カイダ","ズル・ヒッジャ"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"午前",pm:"午後"}},japanese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["大化","白雉","白鳯","朱鳥","大宝","慶雲","和銅","霊亀","養老","神亀","天平","天平感宝","天平勝宝","天平宝字","天平神護","神護景雲","宝亀","天応","延暦","大同","弘仁","天長","承和","嘉祥","仁寿","斉衡","天安","貞観","元慶","仁和","寛平","昌泰","延喜","延長","承平","天慶","天暦","天徳","応和","康保","安和","天禄","天延","貞元","天元","永観","寛和","永延","永祚","正暦","長徳","長保","寛弘","長和","寛仁","治安","万寿","長元","長暦","長久","寛徳","永承","天喜","康平","治暦","延久","承保","承暦","永保","応徳","寛治","嘉保","永長","承徳","康和","長治","嘉承","天仁","天永","永久","元永","保安","天治","大治","天承","長承","保延","永治","康治","天養","久安","仁平","久寿","保元","平治","永暦","応保","長寛","永万","仁安","嘉応","承安","安元","治承","養和","寿永","元暦","文治","建久","正治","建仁","元久","建永","承元","建暦","建保","承久","貞応","元仁","嘉禄","安貞","寛喜","貞永","天福","文暦","嘉禎","暦仁","延応","仁治","寛元","宝治","建長","康元","正嘉","正元","文応","弘長","文永","建治","弘安","正応","永仁","正安","乾元","嘉元","徳治","延慶","応長","正和","文保","元応","元亨","正中","嘉暦","元徳","元弘","建武","延元","興国","正平","建徳","文中","天授","康暦","弘和","元中","至徳","嘉慶","康応","明徳","応永","正長","永享","嘉吉","文安","宝徳","享徳","康正","長禄","寛正","文正","応仁","文明","長享","延徳","明応","文亀","永正","大永","享禄","天文","弘治","永禄","元亀","天正","文禄","慶長","元和","寛永","正保","慶安","承応","明暦","万治","寛文","延宝","天和","貞享","元禄","宝永","正徳","享保","元文","寛保","延享","寛延","宝暦","明和","安永","天明","寛政","享和","文化","文政","天保","弘化","嘉永","安政","万延","文久","元治","慶応","M","T","S","H"],short:["大化","白雉","白鳯","朱鳥","大宝","慶雲","和銅","霊亀","養老","神亀","天平","天平感宝","天平勝宝","天平宝字","天平神護","神護景雲","宝亀","天応","延暦","大同","弘仁","天長","承和","嘉祥","仁寿","斉衡","天安","貞観","元慶","仁和","寛平","昌泰","延喜","延長","承平","天慶","天暦","天徳","応和","康保","安和","天禄","天延","貞元","天元","永観","寛和","永延","永祚","正暦","長徳","長保","寛弘","長和","寛仁","治安","万寿","長元","長暦","長久","寛徳","永承","天喜","康平","治暦","延久","承保","承暦","永保","応徳","寛治","嘉保","永長","承徳","康和","長治","嘉承","天仁","天永","永久","元永","保安","天治","大治","天承","長承","保延","永治","康治","天養","久安","仁平","久寿","保元","平治","永暦","応保","長寛","永万","仁安","嘉応","承安","安元","治承","養和","寿永","元暦","文治","建久","正治","建仁","元久","建永","承元","建暦","建保","承久","貞応","元仁","嘉禄","安貞","寛喜","貞永","天福","文暦","嘉禎","暦仁","延応","仁治","寛元","宝治","建長","康元","正嘉","正元","文応","弘長","文永","建治","弘安","正応","永仁","正安","乾元","嘉元","徳治","延慶","応長","正和","文保","元応","元亨","正中","嘉暦","元徳","元弘","建武","延元","興国","正平","建徳","文中","天授","康暦","弘和","元中","至徳","嘉慶","康応","明徳","応永","正長","永享","嘉吉","文安","宝徳","享徳","康正","長禄","寛正","文正","応仁","文明","長享","延徳","明応","文亀","永正","大永","享禄","天文","弘治","永禄","元亀","天正","文禄","慶長","元和","寛永","正保","慶安","承応","明暦","万治","寛文","延宝","天和","貞享","元禄","宝永","正徳","享保","元文","寛保","延享","寛延","宝暦","明和","安永","天明","寛政","享和","文化","文政","天保","弘化","嘉永","安政","万延","文久","元治","慶応","明治","大正","昭和","平成"],long:["大化","白雉","白鳯","朱鳥","大宝","慶雲","和銅","霊亀","養老","神亀","天平","天平感宝","天平勝宝","天平宝字","天平神護","神護景雲","宝亀","天応","延暦","大同","弘仁","天長","承和","嘉祥","仁寿","斉衡","天安","貞観","元慶","仁和","寛平","昌泰","延喜","延長","承平","天慶","天暦","天徳","応和","康保","安和","天禄","天延","貞元","天元","永観","寛和","永延","永祚","正暦","長徳","長保","寛弘","長和","寛仁","治安","万寿","長元","長暦","長久","寛徳","永承","天喜","康平","治暦","延久","承保","承暦","永保","応徳","寛治","嘉保","永長","承徳","康和","長治","嘉承","天仁","天永","永久","元永","保安","天治","大治","天承","長承","保延","永治","康治","天養","久安","仁平","久寿","保元","平治","永暦","応保","長寛","永万","仁安","嘉応","承安","安元","治承","養和","寿永","元暦","文治","建久","正治","建仁","元久","建永","承元","建暦","建保","承久","貞応","元仁","嘉禄","安貞","寛喜","貞永","天福","文暦","嘉禎","暦仁","延応","仁治","寛元","宝治","建長","康元","正嘉","正元","文応","弘長","文永","建治","弘安","正応","永仁","正安","乾元","嘉元","徳治","延慶","応長","正和","文保","元応","元亨","正中","嘉暦","元徳","元弘","建武","延元","興国","正平","建徳","文中","天授","康暦","弘和","元中","至徳","嘉慶","康応","明徳","応永","正長","永享","嘉吉","文安","宝徳","享徳","康正","長禄","寛正","文正","応仁","文明","長享","延徳","明応","文亀","永正","大永","享禄","天文","弘治","永禄","元亀","天正","文禄","慶長","元和","寛永","正保","慶安","承応","明暦","万治","寛文","延宝","天和","貞享","元禄","宝永","正徳","享保","元文","寛保","延享","寛延","宝暦","明和","安永","天明","寛政","享和","文化","文政","天保","弘化","嘉永","安政","万延","文久","元治","慶応","明治","大正","昭和","平成"]},dayPeriods:{am:"午前",pm:"午後"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["ファルヴァルディーン","オルディーベヘシュト","ホルダード","ティール","モルダード","シャハリーヴァル","メフル","アーバーン","アーザル","デイ","バフマン","エスファンド"],long:["ファルヴァルディーン","オルディーベヘシュト","ホルダード","ティール","モルダード","シャハリーヴァル","メフル","アーバーン","アーザル","デイ","バフマン","エスファンド"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"午前",pm:"午後"}},roc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},days:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],long:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},eras:{narrow:["民国前","民国"],short:["民国前","民国"],long:["民国前","民国"]},dayPeriods:{am:"午前",pm:"午後"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{currency}{number}",negativePattern:"{minusSign}{currency}{number}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:".",group:",",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"AU$",BRL:"R$",CAD:"CA$",CNY:"元",EUR:"€",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",THB:"฿",TWD:"NT$",USD:"$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 225 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"ko",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:true,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d일","E":"ccc",Ed:"d일 (E)",EEEEd:"d일 EEEE",Ehm:"(E) a h:mm",EHm:"(E) HH:mm",Ehms:"(E) a h:mm:ss",EHms:"(E) HH:mm:ss",Gy:"G y년",GyMMM:"G y년 MMM",GyMMMd:"G y년 MMM d일",GyMMMEd:"G y년 MMM d일 (E)",GyMMMEEEEd:"G y년 MMM d일 EEEE","h":"a h시","H":"H시",HHmmss:"HH:mm:ss",hm:"a h:mm",Hm:"HH:mm",hms:"a h:mm:ss",Hms:"H시 m분 s초",hmsv:"a h:mm:ss v",Hmsv:"H시 m분 s초 v",hmv:"a h:mm v",Hmv:"HH:mm v","M":"M월",Md:"M. d.",MEd:"M. d. (E)",MEEEEd:"M. d. EEEE",MMM:"LLL",MMMd:"MMM d일",MMMEd:"MMM d일 (E)",MMMEEEEd:"MMM d일 EEEE",MMMMd:"MMMM d일",mmss:"mm:ss",ms:"mm:ss","y":"y년",yM:"y. M.",yMd:"y. M. d.",yMEd:"y. M. d. (E)",yMEEEEd:"y. M. d. EEEE",yMM:"y. M.",yMMM:"y년 MMM",yMMMd:"y년 MMM d일",yMMMEd:"y년 MMM d일 (E)",yMMMEEEEd:"y년 MMM d일 EEEE",yMMMM:"y년 MMMM",yQQQ:"y년 QQQ",yQQQQ:"y년 QQQQ"},dateFormats:{yMMMMEEEEd:"y년 M월 d일 EEEE",yMMMMd:"y년 M월 d일",yMMMd:"y. M. d.",yMd:"yy. M. d."},timeFormats:{hmmsszzzz:"a h시 m분 s초 zzzz",hmsz:"a h시 m분 s초 z",hms:"a h:mm:ss",hm:"a h:mm"}},calendars:{buddhist:{months:{narrow:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],short:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],long:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["불기"],short:["불기"],long:["불기"]},dayPeriods:{am:"오전",pm:"오후"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],long:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},dayPeriods:{am:"오전",pm:"오후"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["투트","바바흐","하투르","키야흐크","투바흐","암쉬르","바라마트","바라문다흐","바샨스","바우나흐","아비브","미스라","나시"],long:["투트","바바흐","하투르","키야흐크","투바흐","암쉬르","바라마트","바라문다흐","바샨스","바우나흐","아비브","미스라","나시"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"오전",pm:"오후"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],long:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},dayPeriods:{am:"오전",pm:"오후"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["매스캐램","테켐트","헤다르","타흐사스","테르","얘카티트","매가비트","미야지야","겐보트","새네","함레","내하세","파구맨"],long:["매스캐램","테켐트","헤다르","타흐사스","테르","얘카티트","매가비트","미야지야","겐보트","새네","함레","내하세","파구맨"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"오전",pm:"오후"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["매스캐램","테켐트","헤다르","타흐사스","테르","얘카티트","매가비트","미야지야","겐보트","새네","함레","내하세","파구맨"],long:["매스캐램","테켐트","헤다르","타흐사스","테르","얘카티트","매가비트","미야지야","겐보트","새네","함레","내하세","파구맨"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"오전",pm:"오후"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"오전",pm:"오후"}},gregory:{months:{narrow:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],short:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],long:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["BC","AD","BCE","CE"],short:["BC","AD","BCE","CE"],long:["기원전","서기","BCE","CE"]},dayPeriods:{am:"오전",pm:"오후"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["디스리월","말케스월","기슬르월","데벳월","스밧월","아달월 1","아달월","닛산월","이야르월","시완월","담무르월","압월","엘룰월","아달월 2"],long:["디스리월","말케스월","기슬르월","데벳월","스밧월","아달월 1","아달월","닛산월","이야르월","시완월","담무르월","압월","엘룰월","아달월 2"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"오전",pm:"오후"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"오전",pm:"오후"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["무하람","사파르","라비 알 아왈","라비 알 쎄니","주마다 알 아왈","주마다 알 쎄니","라잡","쉐아반","라마단","쉐왈","듀 알 까다","듀 알 히자"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"오전",pm:"오후"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["무하람","사파르","라비 알 아왈","라비 알 쎄니","주마다 알 아왈","주마다 알 쎄니","라잡","쉐아반","라마단","쉐왈","듀 알 까다","듀 알 히자"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"오전",pm:"오후"}},japanese:{months:{narrow:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],short:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],long:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["다이카 (645 ~ 650)","하쿠치 (650 ~ 671)","하쿠호 (672 ~ 686)","슈초 (686 ~ 701)","다이호 (701 ~ 704)","게이운 (704 ~ 708)","와도 (708 ~ 715)","레이키 (715 ~ 717)","요로 (717 ~ 724)","진키 (724 ~ 729)","덴표 (729 ~ 749)","덴표칸포 (749 ~ 749)","덴표쇼호 (749 ~ 757)","덴표호지 (757 ~ 765)","덴표진고 (765 ~ 767)","진고케이운 (767 ~ 770)","호키 (770 ~ 780)","덴오 (781 ~ 782)","엔랴쿠 (782 ~ 806)","다이도 (806 ~ 810)","고닌 (810 ~ 824)","덴초 (824 ~ 834)","조와 (834 ~ 848)","가쇼 (848 ~ 851)","닌주 (851 ~ 854)","사이코 (854 ~ 857)","덴난 (857 ~ 859)","조간 (859 ~ 877)","간교 (877 ~ 885)","닌나 (885 ~ 889)","간표 (889 ~ 898)","쇼타이 (898 ~ 901)","엔기 (901 ~ 923)","엔초 (923 ~ 931)","조헤이 (931 ~ 938)","덴교 (938 ~ 947)","덴랴쿠 (947 ~ 957)","덴토쿠 (957 ~ 961)","오와 (961 ~ 964)","고호 (964 ~ 968)","안나 (968 ~ 970)","덴로쿠 (970 ~ 973)","덴엔 (973 ~ 976)","조겐 (976 ~ 978)","덴겐 (978 ~ 983)","에이간 (983 ~ 985)","간나 (985 ~ 987)","에이엔 (987 ~ 989)","에이소 (989 ~ 990)","쇼랴쿠 (990 ~ 995)","조토쿠 (995 ~ 999)","조호 (999 ~ 1004)","간코 (1004 ~ 1012)","조와 (1012 ~ 1017)","간닌 (1017 ~ 1021)","지안 (1021 ~ 1024)","만주 (1024 ~ 1028)","조겐 (1028 ~ 1037)","조랴쿠 (1037 ~ 1040)","조큐 (1040 ~ 1044)","간토쿠 (1044 ~ 1046)","에이쇼 (1046 ~ 1053)","덴기 (1053 ~ 1058)","고헤이 (1058 ~ 1065)","지랴쿠 (1065 ~ 1069)","엔큐 (1069 ~ 1074)","조호 (1074 ~ 1077)","쇼랴쿠 (1077 ~ 1081)","에이호 (1081 ~ 1084)","오토쿠 (1084 ~ 1087)","간지 (1087 ~ 1094)","가호 (1094 ~ 1096)","에이초 (1096 ~ 1097)","조토쿠 (1097 ~ 1099)","고와 (1099 ~ 1104)","조지 (1104 ~ 1106)","가쇼 (1106 ~ 1108)","덴닌 (1108 ~ 1110)","덴에이 (1110 ~ 1113)","에이큐 (1113 ~ 1118)","겐에이 (1118 ~ 1120)","호안 (1120 ~ 1124)","덴지 (1124 ~ 1126)","다이지 (1126 ~ 1131)","덴쇼 (1131 ~ 1132)","조쇼 (1132 ~ 1135)","호엔 (1135 ~ 1141)","에이지 (1141 ~ 1142)","고지 (1142 ~ 1144)","덴요 (1144 ~ 1145)","규안 (1145 ~ 1151)","닌페이 (1151 ~ 1154)","규주 (1154 ~ 1156)","호겐 (1156 ~ 1159)","헤이지 (1159 ~ 1160)","에이랴쿠 (1160 ~ 1161)","오호 (1161 ~ 1163)","조칸 (1163 ~ 1165)","에이만 (1165 ~ 1166)","닌난 (1166 ~ 1169)","가오 (1169 ~ 1171)","조안 (1171 ~ 1175)","안겐 (1175 ~ 1177)","지쇼 (1177 ~ 1181)","요와 (1181 ~ 1182)","주에이 (1182 ~ 1184)","겐랴쿠 (1184 ~ 1185)","분지 (1185 ~ 1190)","겐큐 (1190 ~ 1199)","쇼지 (1199 ~ 1201)","겐닌 (1201 ~ 1204)","겐큐 (1204 ~ 1206)","겐에이 (1206 ~ 1207)","조겐 (1207 ~ 1211)","겐랴쿠 (1211 ~ 1213)","겐포 (1213 ~ 1219)","조큐 (1219 ~ 1222)","조오 (1222 ~ 1224)","겐닌 (1224 ~ 1225)","가로쿠 (1225 ~ 1227)","안테이 (1227 ~ 1229)","간키 (1229 ~ 1232)","조에이 (1232 ~ 1233)","덴푸쿠 (1233 ~ 1234)","분랴쿠 (1234 ~ 1235)","가테이 (1235 ~ 1238)","랴쿠닌 (1238 ~ 1239)","엔오 (1239 ~ 1240)","닌지 (1240 ~ 1243)","간겐 (1243 ~ 1247)","호지 (1247 ~ 1249)","겐초 (1249 ~ 1256)","고겐 (1256 ~ 1257)","쇼카 (1257 ~ 1259)","쇼겐 (1259 ~ 1260)","분오 (1260 ~ 1261)","고초 (1261 ~ 1264)","분에이 (1264 ~ 1275)","겐지 (1275 ~ 1278)","고안 (1278 ~ 1288)","쇼오 (1288 ~ 1293)","에이닌 (1293 ~ 1299)","쇼안 (1299 ~ 1302)","겐겐 (1302 ~ 1303)","가겐 (1303 ~ 1306)","도쿠지 (1306 ~ 1308)","엔쿄 (1308 ~ 1311)","오초 (1311 ~ 1312)","쇼와 (1312 ~ 1317)","분포 (1317 ~ 1319)","겐오 (1319 ~ 1321)","겐코 (1321 ~ 1324)","쇼추 (1324 ~ 1326)","가랴쿠 (1326 ~ 1329)","겐토쿠 (1329 ~ 1331)","겐코 (1331 ~ 1334)","겐무 (1334 ~ 1336)","엔겐 (1336 ~ 1340)","고코쿠 (1340 ~ 1346)","쇼헤이 (1346 ~ 1370)","겐토쿠 (1370 ~ 1372)","분추 (1372 ~ 1375)","덴주 (1375 ~ 1379)","고랴쿠 (1379 ~ 1381)","고와 (1381 ~ 1384)","겐추 (1384 ~ 1392)","메이토쿠 (1384 ~ 1387)","가쿄 (1387 ~ 1389)","고오 (1389 ~ 1390)","메이토쿠 (1390 ~ 1394)","오에이 (1394 ~ 1428)","쇼초 (1428 ~ 1429)","에이쿄 (1429 ~ 1441)","가키쓰 (1441 ~ 1444)","분안 (1444 ~ 1449)","호토쿠 (1449 ~ 1452)","교토쿠 (1452 ~ 1455)","고쇼 (1455 ~ 1457)","조로쿠 (1457 ~ 1460)","간쇼 (1460 ~ 1466)","분쇼 (1466 ~ 1467)","오닌 (1467 ~ 1469)","분메이 (1469 ~ 1487)","조쿄 (1487 ~ 1489)<","엔토쿠 (1489 ~ 1492)","메이오 (1492 ~ 1501)","분키 (1501 ~ 1504)","에이쇼 (1504 ~ 1521)","다이에이 (1521 ~ 1528)","교로쿠 (1528 ~ 1532)","덴분 (1532 ~ 1555)","고지 (1555 ~ 1558)","에이로쿠 (1558 ~ 1570)","겐키 (1570 ~ 1573)","덴쇼 (1573 ~ 1592)","분로쿠 (1592 ~ 1596)","게이초 (1596 ~ 1615)","겐나 (1615 ~ 1624)","간에이 (1624 ~ 1644)","쇼호 (1644 ~ 1648)","게이안 (1648 ~ 1652)","조오 (1652 ~ 1655)","메이레키 (1655 ~ 1658)","만지 (1658 ~ 1661)","간분 (1661 ~ 1673)","엔포 (1673 ~ 1681)","덴나 (1681 ~ 1684)","조쿄 (1684 ~ 1688)","겐로쿠 (1688 ~ 1704)","호에이 (1704 ~ 1711)","쇼토쿠 (1711 ~ 1716)","교호 (1716 ~ 1736)","겐분 (1736 ~ 1741)","간포 (1741 ~ 1744)","엔쿄 (1744 ~ 1748)","간엔 (1748 ~ 1751)","호레키 (1751 ~ 1764)","메이와 (1764 ~ 1772)","안에이 (1772 ~ 1781)","덴메이 (1781 ~ 1789)","간세이 (1789 ~ 1801)","교와 (1801 ~ 1804)","분카 (1804 ~ 1818)","분세이 (1818 ~ 1830)","덴포 (1830 ~ 1844)","고카 (1844 ~ 1848)","가에이 (1848 ~ 1854)","안세이 (1854 ~ 1860)","만엔 (1860 ~ 1861)","분큐 (1861 ~ 1864)","겐지 (1864 ~ 1865)","게이오 (1865 ~ 1868)","메이지","다이쇼","쇼와","헤이세이"],long:["다이카 (645 ~ 650)","하쿠치 (650 ~ 671)","하쿠호 (672 ~ 686)","슈초 (686 ~ 701)","다이호 (701 ~ 704)","게이운 (704 ~ 708)","와도 (708 ~ 715)","레이키 (715 ~ 717)","요로 (717 ~ 724)","진키 (724 ~ 729)","덴표 (729 ~ 749)","덴표칸포 (749 ~ 749)","덴표쇼호 (749 ~ 757)","덴표호지 (757 ~ 765)","덴표진고 (765 ~ 767)","진고케이운 (767 ~ 770)","호키 (770 ~ 780)","덴오 (781 ~ 782)","엔랴쿠 (782 ~ 806)","다이도 (806 ~ 810)","고닌 (810 ~ 824)","덴초 (824 ~ 834)","조와 (834 ~ 848)","가쇼 (848 ~ 851)","닌주 (851 ~ 854)","사이코 (854 ~ 857)","덴난 (857 ~ 859)","조간 (859 ~ 877)","간교 (877 ~ 885)","닌나 (885 ~ 889)","간표 (889 ~ 898)","쇼타이 (898 ~ 901)","엔기 (901 ~ 923)","엔초 (923 ~ 931)","조헤이 (931 ~ 938)","덴교 (938 ~ 947)","덴랴쿠 (947 ~ 957)","덴토쿠 (957 ~ 961)","오와 (961 ~ 964)","고호 (964 ~ 968)","안나 (968 ~ 970)","덴로쿠 (970 ~ 973)","덴엔 (973 ~ 976)","조겐 (976 ~ 978)","덴겐 (978 ~ 983)","에이간 (983 ~ 985)","간나 (985 ~ 987)","에이엔 (987 ~ 989)","에이소 (989 ~ 990)","쇼랴쿠 (990 ~ 995)","조토쿠 (995 ~ 999)","조호 (999 ~ 1004)","간코 (1004 ~ 1012)","조와 (1012 ~ 1017)","간닌 (1017 ~ 1021)","지안 (1021 ~ 1024)","만주 (1024 ~ 1028)","조겐 (1028 ~ 1037)","조랴쿠 (1037 ~ 1040)","조큐 (1040 ~ 1044)","간토쿠 (1044 ~ 1046)","에이쇼 (1046 ~ 1053)","덴기 (1053 ~ 1058)","고헤이 (1058 ~ 1065)","지랴쿠 (1065 ~ 1069)","엔큐 (1069 ~ 1074)","조호 (1074 ~ 1077)","쇼랴쿠 (1077 ~ 1081)","에이호 (1081 ~ 1084)","오토쿠 (1084 ~ 1087)","간지 (1087 ~ 1094)","가호 (1094 ~ 1096)","에이초 (1096 ~ 1097)","조토쿠 (1097 ~ 1099)","고와 (1099 ~ 1104)","조지 (1104 ~ 1106)","가쇼 (1106 ~ 1108)","덴닌 (1108 ~ 1110)","덴에이 (1110 ~ 1113)","에이큐 (1113 ~ 1118)","겐에이 (1118 ~ 1120)","호안 (1120 ~ 1124)","덴지 (1124 ~ 1126)","다이지 (1126 ~ 1131)","덴쇼 (1131 ~ 1132)","조쇼 (1132 ~ 1135)","호엔 (1135 ~ 1141)","에이지 (1141 ~ 1142)","고지 (1142 ~ 1144)","덴요 (1144 ~ 1145)","규안 (1145 ~ 1151)","닌페이 (1151 ~ 1154)","규주 (1154 ~ 1156)","호겐 (1156 ~ 1159)","헤이지 (1159 ~ 1160)","에이랴쿠 (1160 ~ 1161)","오호 (1161 ~ 1163)","조칸 (1163 ~ 1165)","에이만 (1165 ~ 1166)","닌난 (1166 ~ 1169)","가오 (1169 ~ 1171)","조안 (1171 ~ 1175)","안겐 (1175 ~ 1177)","지쇼 (1177 ~ 1181)","요와 (1181 ~ 1182)","주에이 (1182 ~ 1184)","겐랴쿠 (1184 ~ 1185)","분지 (1185 ~ 1190)","겐큐 (1190 ~ 1199)","쇼지 (1199 ~ 1201)","겐닌 (1201 ~ 1204)","겐큐 (1204 ~ 1206)","겐에이 (1206 ~ 1207)","조겐 (1207 ~ 1211)","겐랴쿠 (1211 ~ 1213)","겐포 (1213 ~ 1219)","조큐 (1219 ~ 1222)","조오 (1222 ~ 1224)","겐닌 (1224 ~ 1225)","가로쿠 (1225 ~ 1227)","안테이 (1227 ~ 1229)","간키 (1229 ~ 1232)","조에이 (1232 ~ 1233)","덴푸쿠 (1233 ~ 1234)","분랴쿠 (1234 ~ 1235)","가테이 (1235 ~ 1238)","랴쿠닌 (1238 ~ 1239)","엔오 (1239 ~ 1240)","닌지 (1240 ~ 1243)","간겐 (1243 ~ 1247)","호지 (1247 ~ 1249)","겐초 (1249 ~ 1256)","고겐 (1256 ~ 1257)","쇼카 (1257 ~ 1259)","쇼겐 (1259 ~ 1260)","분오 (1260 ~ 1261)","고초 (1261 ~ 1264)","분에이 (1264 ~ 1275)","겐지 (1275 ~ 1278)","고안 (1278 ~ 1288)","쇼오 (1288 ~ 1293)","에이닌 (1293 ~ 1299)","쇼안 (1299 ~ 1302)","겐겐 (1302 ~ 1303)","가겐 (1303 ~ 1306)","도쿠지 (1306 ~ 1308)","엔쿄 (1308 ~ 1311)","오초 (1311 ~ 1312)","쇼와 (1312 ~ 1317)","분포 (1317 ~ 1319)","겐오 (1319 ~ 1321)","겐코 (1321 ~ 1324)","쇼추 (1324 ~ 1326)","가랴쿠 (1326 ~ 1329)","겐토쿠 (1329 ~ 1331)","겐코 (1331 ~ 1334)","겐무 (1334 ~ 1336)","엔겐 (1336 ~ 1340)","고코쿠 (1340 ~ 1346)","쇼헤이 (1346 ~ 1370)","겐토쿠 (1370 ~ 1372)","분추 (1372 ~ 1375)","덴주 (1375 ~ 1379)","고랴쿠 (1379 ~ 1381)","고와 (1381 ~ 1384)","겐추 (1384 ~ 1392)","메이토쿠 (1384 ~ 1387)","가쿄 (1387 ~ 1389)","고오 (1389 ~ 1390)","메이토쿠 (1390 ~ 1394)","오에이 (1394 ~ 1428)","쇼초 (1428 ~ 1429)","에이쿄 (1429 ~ 1441)","가키쓰 (1441 ~ 1444)","분안 (1444 ~ 1449)","호토쿠 (1449 ~ 1452)","교토쿠 (1452 ~ 1455)","고쇼 (1455 ~ 1457)","조로쿠 (1457 ~ 1460)","간쇼 (1460 ~ 1466)","분쇼 (1466 ~ 1467)","오닌 (1467 ~ 1469)","분메이 (1469 ~ 1487)","조쿄 (1487 ~ 1489)<","엔토쿠 (1489 ~ 1492)","메이오 (1492 ~ 1501)","분키 (1501 ~ 1504)","에이쇼 (1504 ~ 1521)","다이에이 (1521 ~ 1528)","교로쿠 (1528 ~ 1532)","덴분 (1532 ~ 1555)","고지 (1555 ~ 1558)","에이로쿠 (1558 ~ 1570)","겐키 (1570 ~ 1573)","덴쇼 (1573 ~ 1592)","분로쿠 (1592 ~ 1596)","게이초 (1596 ~ 1615)","겐나 (1615 ~ 1624)","간에이 (1624 ~ 1644)","쇼호 (1644 ~ 1648)","게이안 (1648 ~ 1652)","조오 (1652 ~ 1655)","메이레키 (1655 ~ 1658)","만지 (1658 ~ 1661)","간분 (1661 ~ 1673)","엔포 (1673 ~ 1681)","덴나 (1681 ~ 1684)","조쿄 (1684 ~ 1688)","겐로쿠 (1688 ~ 1704)","호에이 (1704 ~ 1711)","쇼토쿠 (1711 ~ 1716)","교호 (1716 ~ 1736)","겐분 (1736 ~ 1741)","간포 (1741 ~ 1744)","엔쿄 (1744 ~ 1748)","간엔 (1748 ~ 1751)","호레키 (1751 ~ 1764)","메이와 (1764 ~ 1772)","안에이 (1772 ~ 1781)","덴메이 (1781 ~ 1789)","간세이 (1789 ~ 1801)","교와 (1801 ~ 1804)","분카 (1804 ~ 1818)","분세이 (1818 ~ 1830)","덴포 (1830 ~ 1844)","고카 (1844 ~ 1848)","가에이 (1848 ~ 1854)","안세이 (1854 ~ 1860)","만엔 (1860 ~ 1861)","분큐 (1861 ~ 1864)","겐지 (1864 ~ 1865)","게이오 (1865 ~ 1868)","메이지","다이쇼","쇼와","헤이세이"]},dayPeriods:{am:"오전",pm:"오후"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["화르바딘","오르디베헤쉬트","호르다드","티르","모르다드","샤흐리바르","메흐르","아반","아자르","다이","바흐만","에스판드"],long:["화르바딘","오르디베헤쉬트","호르다드","티르","모르다드","샤흐리바르","메흐르","아반","아자르","다이","바흐만","에스판드"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"오전",pm:"오후"}},roc:{months:{narrow:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],short:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],long:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},days:{narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],long:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},eras:{narrow:["중화민국전","중화민국"],short:["중화민국전","중화민국"],long:["중화민국전","중화민국"]},dayPeriods:{am:"오전",pm:"오후"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{currency}{number}",negativePattern:"{minusSign}{currency}{number}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:".",group:",",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"AU$",BRL:"R$",CAD:"CA$",CNY:"CN¥",EUR:"€",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"JP¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",THB:"฿",TWD:"NT$",USD:"US$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 226 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"nl",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d","E":"ccc",Ed:"E d",Ehm:"E h:mm a",EHm:"E HH:mm",Ehms:"E h:mm:ss a",EHms:"E HH:mm:ss",Gy:"y G",GyMMM:"MMM y G",GyMMMd:"d MMM y G",GyMMMEd:"E d MMM y G","h":"h a","H":"HH",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"d-M",MEd:"E d-M",MMM:"LLL",MMMd:"d MMM",MMMEd:"E d MMM",MMMMd:"d MMMM",ms:"mm:ss","y":"y",yM:"M-y",yMd:"d-M-y",yMEd:"E d-M-y",yMMM:"MMM y",yMMMd:"d MMM y",yMMMEd:"E d MMM y",yMMMM:"MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE d MMMM y",yMMMMd:"d MMMM y",yMMMd:"d MMM y",yMd:"dd-MM-yy"},timeFormats:{hmmsszzzz:"HH:mm:ss zzzz",hmsz:"HH:mm:ss z",hms:"HH:mm:ss",hm:"HH:mm"}},calendars:{buddhist:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],long:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"a.m.",pm:"p.m."}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["mnd 1","mnd 2","mnd 3","mnd 4","mnd 5","mnd 6","mnd 7","mnd 8","mnd 9","mnd 10","mnd 11","mnd 12"],long:["maand 1","maand 2","maand 3","maand 4","maand 5","maand 6","maand 7","maand 8","maand 9","maand 10","maand 11","maand 12"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},dayPeriods:{am:"a.m.",pm:"p.m."}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tut","Babah","Hatur","Kiyahk","Tubah","Amshir","Baramhat","Baramundah","Bashans","Ba’unah","Abib","Misra","Nasi"],long:["Tut","Babah","Hatur","Kiyahk","Tubah","Amshir","Baramhat","Baramundah","Bashans","Ba’unah","Abib","Misra","Nasi"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a.m.",pm:"p.m."}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["mnd 1","mnd 2","mnd 3","mnd 4","mnd 5","mnd 6","mnd 7","mnd 8","mnd 9","mnd 10","mnd 11","mnd 12"],long:["maand 1","maand 2","maand 3","maand 4","maand 5","maand 6","maand 7","maand 8","maand 9","maand 10","maand 11","maand 12"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},dayPeriods:{am:"a.m.",pm:"p.m."}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Mäskäräm","Teqemt","Hedar","Tahsas","T’er","Yäkatit","Mägabit","Miyazya","Genbot","Säne","Hamle","Nähase","Pagumän"],long:["Mäskäräm","Teqemt","Hedar","Tahsas","T’er","Yäkatit","Mägabit","Miyazya","Genbot","Säne","Hamle","Nähase","Pagumän"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a.m.",pm:"p.m."}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Mäskäräm","Teqemt","Hedar","Tahsas","T’er","Yäkatit","Mägabit","Miyazya","Genbot","Säne","Hamle","Nähase","Pagumän"],long:["Mäskäräm","Teqemt","Hedar","Tahsas","T’er","Yäkatit","Mägabit","Miyazya","Genbot","Säne","Hamle","Nähase","Pagumän"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"a.m.",pm:"p.m."}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"a.m.",pm:"p.m."}},gregory:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],long:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["v.C.","n.C.","vgj","gj"],short:["v.Chr.","n.Chr.","v.g.j.","g.j."],long:["voor Christus","na Christus","vóór gewone jaartelling","gewone jaartelling"]},dayPeriods:{am:"a.m.",pm:"p.m."}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tisjrie","Chesjwan","Kislev","Tevet","Sjevat","Adar A","Adar","Nisan","Ijar","Sivan","Tammoez","Av","Elloel","Adar B"],long:["Tisjrie","Chesjwan","Kislev","Tevet","Sjevat","Adar A","Adar","Nisan","Ijar","Sivan","Tammoez","Av","Elloel","Adar B"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"a.m.",pm:"p.m."}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaishakha","Jyeshtha","Aashaadha","Shraavana","Bhaadrapada","Ashvina","Kaartika","Agrahayana","Pausha","Maagha","Phaalguna"],long:["Chaitra","Vaishakha","Jyeshtha","Aashaadha","Shraavana","Bhaadrapada","Ashvina","Kaartika","Agrahayana","Pausha","Maagha","Phaalguna"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["SAKA"],short:["SAKA"],long:["SAKA"]},dayPeriods:{am:"a.m.",pm:"p.m."}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Moeh.","Saf.","Rab. I","Rab. II","Joem. I","Joem. II","Raj.","Sja.","Ram.","Sjaw.","Doe al k.","Doe al h."],long:["Moeharram","Safar","Rabiʻa al awal","Rabiʻa al thani","Joemadʻal awal","Joemadʻal thani","Rajab","Sjaʻaban","Ramadan","Sjawal","Doe al kaʻaba","Doe al hizja"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["Saʻna Hizjria"],short:["Saʻna Hizjria"],long:["Saʻna Hizjria"]},dayPeriods:{am:"a.m.",pm:"p.m."}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Moeh.","Saf.","Rab. I","Rab. II","Joem. I","Joem. II","Raj.","Sja.","Ram.","Sjaw.","Doe al k.","Doe al h."],long:["Moeharram","Safar","Rabiʻa al awal","Rabiʻa al thani","Joemadʻal awal","Joemadʻal thani","Rajab","Sjaʻaban","Ramadan","Sjawal","Doe al kaʻaba","Doe al hizja"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["Saʻna Hizjria"],short:["Saʻna Hizjria"],long:["Saʻna Hizjria"]},dayPeriods:{am:"a.m.",pm:"p.m."}},japanese:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],long:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kaho (1094–1096)","Eichō (1096–1097)","Shōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen-ei (1118-1120)","Hoan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hoen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hogen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken-ei (1206-1207)","Shōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Shōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tempuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En-ō (1239-1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun-ō (1260-1261)","Kōchō (1261–1264)","Bun-ei (1264-1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkei (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkyō (1321–1324)","Shōchū (1324–1326)","Kareki (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kemmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun-an (1444-1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenmon (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genwa (1615–1624)","Kan-ei (1624-1644)","Shōho (1644–1648)","Keian (1648–1652)","Shōō (1652–1655)","Meiryaku (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenwa (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan-en (1748-1751)","Hōryaku (1751–1764)","Meiwa (1764–1772)","An-ei (1772-1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man-en (1860-1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kaho (1094–1096)","Eichō (1096–1097)","Shōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen-ei (1118-1120)","Hoan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hoen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hogen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken-ei (1206-1207)","Shōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Shōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tempuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En-ō (1239-1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun-ō (1260-1261)","Kōchō (1261–1264)","Bun-ei (1264-1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkei (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkyō (1321–1324)","Shōchū (1324–1326)","Kareki (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kemmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun-an (1444-1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenmon (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genwa (1615–1624)","Kan-ei (1624-1644)","Shōho (1644–1648)","Keian (1648–1652)","Shōō (1652–1655)","Meiryaku (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenwa (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan-en (1748-1751)","Hōryaku (1751–1764)","Meiwa (1764–1772)","An-ei (1772-1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man-en (1860-1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"a.m.",pm:"p.m."}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"a.m.",pm:"p.m."}},roc:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],long:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},days:{narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],long:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},eras:{narrow:["voor R.O.C.","Minguo"],short:["voor R.O.C.","Minguo"],long:["voor R.O.C.","Minguo"]},dayPeriods:{am:"a.m.",pm:"p.m."}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{currency} {number}",negativePattern:"{currency} {minusSign}{number}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:",",group:".",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"AU$",BRL:"R$",CAD:"C$",CNY:"CN¥",EUR:"€",FJD:"FJ$",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"JP¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",SBD:"SI$",THB:"฿",TWD:"NT$",USD:"US$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA"}}}); /***/ }), /* 227 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"pl",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1}, {0}",medium:"{1}, {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d","E":"ccc",Ed:"E, d",Ehm:"E, h:mm a",EHm:"E, HH:mm",Ehms:"E, h:mm:ss a",EHms:"E, HH:mm:ss",Gy:"y G",GyMMM:"MMM y G",GyMMMd:"d.MM.y G",GyMMMEd:"E, d MMM y G",GyMMMM:"LLLL y G",GyMMMMd:"d MMMM y G",GyMMMMEd:"E, d MMMM y G","h":"h a","H":"HH",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"d.MM",MEd:"E, d.MM",MMM:"LLL",MMMd:"d.MM",MMMEd:"E, d.MM",MMMMd:"d MMMM",MMMMEd:"E, d MMMM",ms:"mm:ss","y":"y",yM:"MM.y",yMd:"d.MM.y",yMEd:"E, d.MM.y",yMMM:"MM.y",yMMMd:"d.MM.y",yMMMEd:"E, d.MM.y",yMMMM:"LLLL y",yMMMMd:"d MMMM y",yMMMMEd:"E, d MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE, d MMMM y",yMMMMd:"d MMMM y",yMMMd:"dd.MM.y",yMd:"dd.MM.y"},timeFormats:{hmmsszzzz:"HH:mm:ss zzzz",hmsz:"HH:mm:ss z",hms:"HH:mm:ss",hm:"HH:mm"}},calendars:{buddhist:{months:{narrow:["s","l","m","k","m","c","l","s","w","p","l","g"],short:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],long:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"AM",pm:"PM"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1","2","3","4","5","6","7","8","9","10","11","12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},dayPeriods:{am:"AM",pm:"PM"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1","2","3","4","5","6","7","8","9","10","11","12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},dayPeriods:{am:"AM",pm:"PM"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"AM",pm:"PM"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},gregory:{months:{narrow:["s","l","m","k","m","c","l","s","w","p","l","g"],short:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],long:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["p.n.e.","n.e.","BCE","CE"],short:["p.n.e.","n.e.","BCE","CE"],long:["p.n.e.","n.e.","BCE","CE"]},dayPeriods:{am:"AM",pm:"PM"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tiszri","Cheszwan","Kislew","Tewet","Szwat","Adar I","Adar","Nisan","Ijar","Siwan","Tamuz","Aw","Elul","Adar II"],long:["Tiszri","Cheszwan","Kislew","Tewet","Szwat","Adar I","Adar","Nisan","Ijar","Siwan","Tamuz","Aw","Elul","Adar II"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"AM",pm:"PM"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"AM",pm:"PM"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Dżu. I","Dżu. II","Ra.","Sza.","Ram.","Szaw.","Zu al-k.","Zu al-h."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Dżumada I","Dżumada II","Radżab","Szaban","Ramadan","Szawwal","Zu al-kada","Zu al-hidżdża"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Dżu. I","Dżu. II","Ra.","Sza.","Ram.","Szaw.","Zu al-k.","Zu al-h."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Dżumada I","Dżumada II","Radżab","Szaban","Ramadan","Szawwal","Zu al-kada","Zu al-hidżdża"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},japanese:{months:{narrow:["s","l","m","k","m","c","l","s","w","p","l","g"],short:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],long:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"AM",pm:"PM"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farwardin","Ordibeheszt","Chordād","Tir","Mordād","Szahriwar","Mehr","Ābān","Āsar","Déi","Bahman","Esfand"],long:["Farwardin","Ordibeheszt","Chordād","Tir","Mordād","Szahriwar","Mehr","Ābān","Āsar","Déi","Bahman","Esfand"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"AM",pm:"PM"}},roc:{months:{narrow:["s","l","m","k","m","c","l","s","w","p","l","g"],short:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],long:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"]},days:{narrow:["N","P","W","Ś","C","P","S"],short:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],long:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},eras:{narrow:["Przed ROC","ROC"],short:["Przed ROC","ROC"],long:["Przed ROC","ROC"]},dayPeriods:{am:"AM",pm:"PM"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:",",group:" ",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{BRL:"R$",EUR:"€",PLN:"zł",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 228 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"pt",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d","E":"ccc",Ed:"E, d",Ehm:"E, h:mm a",EHm:"E, HH:mm",Ehms:"E, h:mm:ss a",EHms:"E, HH:mm:ss",Gy:"y G",GyMMM:"MMM 'de' y G",GyMMMd:"d 'de' MMM 'de' y G",GyMMMEd:"E, d 'de' MMM 'de' y G","h":"h a","H":"HH",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"d/M",MEd:"E, dd/MM",MMdd:"dd/MM",MMM:"LLL",MMMd:"d 'de' MMM",MMMEd:"E, d 'de' MMM",MMMMd:"d 'de' MMMM",MMMMEd:"E, d 'de' MMMM",ms:"mm:ss","y":"y",yM:"MM/y",yMd:"dd/MM/y",yMEd:"E, dd/MM/y",yMM:"MM/y",yMMM:"MMM 'de' y",yMMMd:"d 'de' MMM 'de' y",yMMMEd:"E, d 'de' MMM 'de' y",yMMMM:"MMMM 'de' y",yMMMMd:"d 'de' MMMM 'de' y",yMMMMEd:"E, d 'de' MMMM 'de' y",yQQQ:"y QQQ",yQQQQ:"y QQQQ"},dateFormats:{yMMMMEEEEd:"EEEE, d 'de' MMMM 'de' y",yMMMMd:"d 'de' MMMM 'de' y",yMMMd:"d 'de' MMM 'de' y",yMd:"dd/MM/yy"},timeFormats:{hmmsszzzz:"HH:mm:ss zzzz",hmsz:"HH:mm:ss z",hms:"HH:mm:ss",hm:"HH:mm"}},calendars:{buddhist:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],long:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"AM",pm:"PM"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Mês 1","Mês 2","Mês 3","Mês 4","Mês 5","Mês 6","Mês 7","Mês 8","Mês 9","Mês 10","Mês 11","Mês 12"],long:["Mês 1","Mês 2","Mês 3","Mês 4","Mês 5","Mês 6","Mês 7","Mês 8","Mês 9","Mês 10","Mês 11","Mês 12"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},dayPeriods:{am:"AM",pm:"PM"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"],long:["Tout","Baba","Hator","Kiahk","Toba","Amshir","Baramhat","Baramouda","Bashans","Paona","Epep","Mesra","Nasie"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Mês 1","Mês 2","Mês 3","Mês 4","Mês 5","Mês 6","Mês 7","Mês 8","Mês 9","Mês 10","Mês 11","Mês 12"],long:["Mês 1","Mês 2","Mês 3","Mês 4","Mês 5","Mês 6","Mês 7","Mês 8","Mês 9","Mês 10","Mês 11","Mês 12"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},dayPeriods:{am:"AM",pm:"PM"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"],long:["Meskerem","Tekemt","Hedar","Tahsas","Ter","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehasse","Pagumen"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"AM",pm:"PM"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"AM",pm:"PM"}},gregory:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],long:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["a.C.","d.C.","AEC","EC"],short:["a.C.","d.C.","AEC","EC"],long:["antes de Cristo","depois de Cristo","antes da Era Comum","Era Comum"]},dayPeriods:{am:"AM",pm:"PM"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"],long:["Tishri","Heshvan","Kislev","Tevet","Shevat","Adar I","Adar","Nisan","Iyar","Sivan","Tamuz","Av","Elul","Adar II"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"AM",pm:"PM"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"],long:["Chaitra","Vaisakha","Jyaistha","Asadha","Sravana","Bhadra","Asvina","Kartika","Agrahayana","Pausa","Magha","Phalguna"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"AM",pm:"PM"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["Muharram","Safar","Rabiʻ I","Rabiʻ II","Jumada I","Jumada II","Rajab","Shaʻban","Ramadan","Shawwal","Dhuʻl-Qiʻdah","Dhuʻl-Hijjah"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"AM",pm:"PM"}},japanese:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],long:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"AM",pm:"PM"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"],long:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Dey","Bahman","Esfand"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"AM",pm:"PM"}},roc:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],long:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},days:{narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sáb"],long:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},eras:{narrow:["Antes de R.O.C.","R.O.C."],short:["Antes de R.O.C.","R.O.C."],long:["Antes de R.O.C.","R.O.C."]},dayPeriods:{am:"AM",pm:"PM"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{currency}{number}",negativePattern:"{minusSign}{currency}{number}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{latn:{decimal:",",group:".",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"AU$",BRL:"R$",CAD:"CA$",CNY:"CN¥",EUR:"€",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"JP¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",PTE:"Esc.",THB:"฿",TWD:"NT$",USD:"US$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 229 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"ru",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1}, {0}",medium:"{1}, {0}",full:"{1}, {0}",long:"{1}, {0}",availableFormats:{"d":"d","E":"ccc",Ed:"ccc, d",Ehm:"E h:mm a",EHm:"E HH:mm",Ehms:"E h:mm:ss a",EHms:"E HH:mm:ss",Gy:"y 'г'. G",GyMMM:"LLL y G",GyMMMd:"d MMM y 'г'. G",GyMMMEd:"E, d MMM y 'г'. G","h":"h a","H":"H",hm:"h:mm a",Hm:"H:mm",hms:"h:mm:ss a",Hms:"H:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"H:mm:ss v",hmv:"h:mm a v",Hmv:"H:mm v","M":"L",Md:"dd.MM",MEd:"E, dd.MM",MMdd:"dd.MM",MMM:"LLL",MMMd:"d MMM",MMMEd:"ccc, d MMM",MMMMd:"d MMMM",ms:"mm:ss","y":"y",yM:"MM.y",yMd:"dd.MM.y",yMEd:"ccc, d.MM.y 'г'.",yMM:"MM.y",yMMM:"LLL y 'г'.",yMMMd:"d MMM y 'г'.",yMMMEd:"E, d MMM y 'г'.",yMMMM:"LLLL y 'г'.",yQQQ:"QQQ y 'г'.",yQQQQ:"QQQQ y 'г'."},dateFormats:{yMMMMEEEEd:"EEEE, d MMMM y 'г'.",yMMMMd:"d MMMM y 'г'.",yMMMd:"d MMM y 'г'.",yMd:"dd.MM.yy"},timeFormats:{hmmsszzzz:"H:mm:ss zzzz",hmsz:"H:mm:ss z",hms:"H:mm:ss",hm:"H:mm"}},calendars:{buddhist:{months:{narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],short:["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],long:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"ДП",pm:"ПП"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1","2","3","4","5","6","7","8","9","10","11","12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},dayPeriods:{am:"ДП",pm:"ПП"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Тот","Бабэ","Хатур","Кихак","Тубэ","Амшир","Барамхат","Бармуда","Башнас","Бауна","Абиб","Мисра","Наси"],long:["Тот","Бабэ","Хатур","Кихак","Тубэ","Амшир","Барамхат","Бармуда","Башнас","Бауна","Абиб","Мисра","Наси"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"ДП",pm:"ПП"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1","2","3","4","5","6","7","8","9","10","11","12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},dayPeriods:{am:"ДП",pm:"ПП"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Мескерем","Текемт","Хедар","Тахсас","Тер","Якатит","Магабит","Миазия","Генбот","Сэнэ","Хамлэ","Нахасэ","Эпагомен"],long:["Мескерем","Текемт","Хедар","Тахсас","Тер","Якатит","Магабит","Миазия","Генбот","Сэнэ","Хамлэ","Нахасэ","Эпагомен"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"ДП",pm:"ПП"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["Мескерем","Текемт","Хедар","Тахсас","Тер","Якатит","Магабит","Миазия","Генбот","Сэнэ","Хамлэ","Нахасэ","Эпагомен"],long:["Мескерем","Текемт","Хедар","Тахсас","Тер","Якатит","Магабит","Миазия","Генбот","Сэнэ","Хамлэ","Нахасэ","Эпагомен"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"ДП",pm:"ПП"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"ДП",pm:"ПП"}},gregory:{months:{narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],short:["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],long:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["до н.э.","н.э.","BCE","CE"],short:["до н. э.","н. э.","BCE","CE"],long:["до Рождества Христова","от Рождества Христова","до нашей эры","нашей эры"]},dayPeriods:{am:"ДП",pm:"ПП"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["Тишрей","Хешван","Кислев","Тевет","Шеват","Адар I","Адар","Нисан","Ияр","Сиван","Таммуз","Ав","Элул","Адар II"],long:["Тишрей","Хешван","Кислев","Тевет","Шеват","Адар I","Адар","Нисан","Ияр","Сиван","Таммуз","Ав","Элул","Адар II"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"ДП",pm:"ПП"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Чайтра","Ваисакха","Джанштха","Асадха","Сравана","Бхадра","Азвина","Картика","Аграхайана","Пауза","Магха","Пхалгуна"],long:["Чайтра","Ваисакха","Джанштха","Асадха","Сравана","Бхадра","Азвина","Картика","Аграхайана","Пауза","Магха","Пхалгуна"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["Saka"],short:["Saka"],long:["Saka"]},dayPeriods:{am:"ДП",pm:"ПП"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Мухаррам","Сафар","Раби-уль-авваль","Раби-уль-ахир","Джумад-уль-авваль","Джумад-уль-ахир","Раджаб","Шаабан","Рамадан","Шавваль","Зуль-Каада","Зуль-Хиджжа"],long:["Мухаррам","Сафар","Раби-уль-авваль","Раби-уль-ахир","Джумад-уль-авваль","Джумад-уль-ахир","Раджаб","Шаабан","Рамадан","Шавваль","Зуль-Каада","Зуль-Хиджжа"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"ДП",pm:"ПП"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Мухаррам","Сафар","Раби-уль-авваль","Раби-уль-ахир","Джумад-уль-авваль","Джумад-уль-ахир","Раджаб","Шаабан","Рамадан","Шавваль","Зуль-Каада","Зуль-Хиджжа"],long:["Мухаррам","Сафар","Раби-уль-авваль","Раби-уль-ахир","Джумад-уль-авваль","Джумад-уль-ахир","Раджаб","Шаабан","Рамадан","Шавваль","Зуль-Каада","Зуль-Хиджжа"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"ДП",pm:"ПП"}},japanese:{months:{narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],short:["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],long:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Эпоха Тайка (645–650)","Эпоха Хакути (650–671)","Эпоха Хакухо (672–686)","Эпоха Сючё (686–701)","Эпоха Тайхо (701–704)","Эпоха Кёюн (704–708)","Эпоха Вадо (708–715)","Эпоха Рэйки (715–717)","Эпоха Ёро (717–724)","Эпоха Дзинки (724–729)","Эпоха Темпьё (729–749)","Эпоха Темпьё (749–749)","Эпоха Темпьё-Сьохо (749-757)","Эпоха Темпьё-Ходзи (757-765)","Эпоха Темпьё-Ходзи (765-767)","Эпоха Джинго-Кёюн (767-770)","Эпоха Хоки (770–780)","Эпоха Теньё (781–782)","Эпоха Енряку (782–806)","Эпоха Дайдо (806–810)","Эпоха Конин (810–824)","Эпоха Тентьо (824–834)","Эпоха Шова (834–848)","Эпоха Кайо (848–851)","Эпоха Ниндзю (851–854)","Эпоха Сайко (854–857)","Эпоха Теннан (857–859)","Эпоха Йоган (859–877)","Эпоха Генкей (877–885)","Эпоха Нинна (885–889)","Эпоха Кампьё (889–898)","Эпоха Сьотай (898–901)","Эпоха Энги (901–923)","Эпоха Ентьо (923–931)","Эпоха Сьёхэй (931–938)","Эпоха Тенгьо (938–947)","Эпоха Тенрияку (947–957)","Эпоха Тентоку (957–961)","Эпоха Ова (961–964)","Эпоха Кохо (964–968)","Эпоха Анна (968–970)","Эпоха Тенроку (970–973)","Эпоха Теньен (973–976)","Эпоха Дзьоген (976–978)","Эпоха Тенген (978–983)","Эпоха Ейкан (983–985)","Эпоха Канна (985–987)","Эпоха Ейен (987–989)","Эпоха Ейсо (989–990)","Эпоха Сёряку (990–995)","Эпоха Тётоку (995–999)","Эпоха Тёхо (999–1004)","Эпоха Канко (1004–1012)","Эпоха Тёва (1012–1017)","Эпоха Каннин (1017–1021)","Эпоха Дзиан (1021–1024)","Эпоха Мандзю (1024–1028)","Эпоха Тёгэн (1028–1037)","Эпоха Тёряку (1037–1040)","Эпоха Тёкю (1040–1044)","Эпоха Катоку (1044–1046)","Эпоха Эйсо (1046–1053)","Эпоха Тэнги (1053–1058)","Эпоха Кохэй (1058–1065)","Эпоха Дзиряку (1065–1069)","Эпоха Энкю (1069–1074)","Эпоха Сёхо (1074–1077)","Эпоха Сёряку (1077–1081)","Эпоха Эйхо (1081–1084)","Эпоха Отоку (1084–1087)","Эпоха Кандзи (1087–1094)","Эпоха Кахо (1094–1096)","Эпоха Эйтё (1096–1097)","Эпоха Сётоку (1097–1099)","Эпоха Кова (1099–1104)","Эпоха Тёдзи (1104–1106)","Эпоха Касё (1106–1108)","Эпоха Тэннин (1108–1110)","Эпоха Тэнъэй (1110–1113)","Эпоха Эйкю (1113–1118)","Эпоха Гэнъэй (1118–1120)","Эпоха Хоан (1120–1124)","Эпоха Тэндзи (1124–1126)","Эпоха Дайдзи (1126–1131)","Эпоха Тэнсё (1131–1132)","Эпоха Тёсё (1132–1135)","Эпоха Хоэн (1135–1141)","Эпоха Эйдзи (1141–1142)","Эпоха Кодзи (1142–1144)","Эпоха Тэнё (1144–1145)","Эпоха Кюан (1145–1151)","Эпоха Нимпэй (1151–1154)","Эпоха Кюдзю (1154–1156)","Эпоха Хогэн (1156–1159)","Эпоха Хэйдзи (1159–1160)","Эпоха Эйряку (1160–1161)","Эпоха Охо (1161–1163)","Эпоха Тёкан (1163–1165)","Эпоха Эйман (1165–1166)","Эпоха Нинъан (1166–1169)","Эпоха Као (1169–1171)","Эпоха Сёан (1171–1175)","Эпоха Ангэн (1175–1177)","Эпоха Дзисё (1177–1181)","Эпоха Ёва (1181–1182)","Эпоха Дзюэй (1182–1184)","Эпоха Гэнрюку (1184–1185)","Эпоха Бундзи (1185–1190)","Эпоха Кэнкю (1190–1199)","Эпоха Сёдзи (1199–1201)","Эпоха Кэннин (1201–1204)","Эпоха Гэнкю (1204–1206)","Эпоха Кэнъэй (1206–1207)","Эпоха Сёгэн (1207–1211)","Эпоха Кэнряку (1211–1213)","Эпоха Кэмпо (1213–1219)","Эпоха Сёкю (1219–1222)","Эпоха Дзёо (1222–1224)","Эпоха Гэннин (1224–1225)","Эпоха Кароку (1225–1227)","Эпоха Антэй (1227–1229)","Эпоха Канки (1229–1232)","Эпоха Дзёэй (1232–1233)","Эпоха Тэмпуку (1233–1234)","Эпоха Бунряку (1234–1235)","Эпоха Катэй (1235–1238)","Эпоха Рякунин (1238–1239)","Эпоха Энъо (1239–1240)","Эпоха Ниндзи (1240–1243)","Эпоха Кангэн (1243–1247)","Эпоха Ходзи (1247–1249)","Эпоха Кэнтё (1249–1256)","Эпоха Когэн (1256–1257)","Эпоха Сёка (1257–1259)","Эпоха Сёгэн (1259–1260)","Эпоха Бунъо (1260–1261)","Эпоха Котё (1261–1264)","Эпоха Бунъэй (1264–1275)","Эпоха Кэндзи (1275–1278)","Эпоха Коан (1278–1288)","Эпоха Сёо (1288–1293)","Эпоха Эйнин (1293–1299)","Эпоха Сёан (1299–1302)","Эпоха Кэнгэн (1302–1303)","Эпоха Кагэн (1303–1306)","Эпоха Токудзи (1306–1308)","Эпоха Энкэй (1308–1311)","Эпоха Отё (1311–1312)","Эпоха Сёва (1312–1317)","Эпоха Бумпо (1317–1319)","Эпоха Гэно (1319–1321)","Эпоха Гэнкё (1321–1324)","Эпоха Сётю (1324–1326)","Эпоха Карэки (1326–1329)","Эпоха Гэнтоку (1329–1331)","Эпоха Гэнко (1331–1334)","Эпоха Кэмму (1334–1336)","Эпоха Энгэн (1336–1340)","Эпоха Кококу (1340–1346)","Эпоха Сёхэй (1346–1370)","Эпоха Кэнтоку (1370–1372)","Эпоха Бунтю (1372–1375)","Эпоха Иэндзю (1375–1379)","Эпоха Коряку (1379–1381)","Эпоха Кова (1381–1384)","Эпоха Гэнтю (1384–1392)","Эпоха Мэйтоку (1384–1387)","Эпоха Какэй (1387–1389)","Эпоха Коо (1389–1390)","Эпоха Мэйтоку (1390–1394)","Эпоха Оэй (1394–1428)","Эпоха Сётё (1428–1429)","Эпоха Эйкё (1429–1441)","Эпоха Какицу (1441–1444)","Эпоха Банъан (1444–1449)","Эпоха Хотоку (1449–1452)","Эпоха Кётоку (1452–1455)","Эпоха Косё (1455–1457)","Эпоха Тёроку (1457–1460)","Эпоха Кансё (1460–1466)","Эпоха Бунсё (1466–1467)","Эпоха Онин (1467–1469)","Эпоха Буммэй (1469–1487)","Эпоха Тёкё (1487–1489)","Эпоха Энтоку (1489–1492)","Эпоха Мэйо (1492–1501)","Эпоха Бунки (1501–1504)","Эпоха Эйсё (1504–1521)","Эпоха Тайэй (1521–1528)","Эпоха Кёроку (1528–1532)","Эпоха Тэммон (1532–1555)","Эпоха Кодзи (1555–1558)","Эпоха Эйроку (1558–1570)","Эпоха Гэнки (1570–1573)","Эпоха Тэнсё (1573–1592)","Эпоха Бунроку (1592–1596)","Эпоха Кэйтё (1596–1615)","Эпоха Гэнва (1615–1624)","Эпоха Канъэй (1624–1644)","Эпоха Сёхо (1644–1648)","Эпоха Кэйан (1648–1652)","Эпоха Сё (1652–1655)","Эпоха Мэйряку (1655–1658)","Эпоха Мандзи (1658–1661)","Эпоха Камбун (1661–1673)","Эпоха Эмпо (1673–1681)","Эпоха Тэнва (1681–1684)","Эпоха Дзёкё (1684–1688)","Эпоха Гэнроку (1688–1704)","Эпоха Хоэй (1704–1711)","Эпоха Сётоку (1711–1716)","Эпоха Кёхо (1716–1736)","Эпоха Гэмбун (1736–1741)","Эпоха Кампо (1741–1744)","Эпоха Энкё (1744–1748)","Эпоха Канъэн (1748–1751)","Эпоха Хоряку (1751–1764)","Эпоха Мэйва (1764–1772)","Эпоха Анъэй (1772–1781)","Эпоха Тэммэй (1781–1789)","Эпоха Кансэй (1789–1801)","Эпоха Кёва (1801–1804)","Эпоха Бунка (1804–1818)","Эпоха Бунсэй (1818–1830)","Эпоха Тэмпо (1830–1844)","Эпоха Кока (1844–1848)","Эпоха Каэй (1848–1854)","Эпоха Ансэй (1854–1860)","Эпоха Манъэн (1860–1861)","Эпоха Бункю (1861–1864)","Эпоха Гендзи (1864–1865)","Эпоха Кейо (1865–1868)","Эпоха Мэйдзи","Эпоха Тайсьо","Сьова","Эпоха Хэйсэй"],long:["Эпоха Тайка (645–650)","Эпоха Хакути (650–671)","Эпоха Хакухо (672–686)","Эпоха Сючё (686–701)","Эпоха Тайхо (701–704)","Эпоха Кёюн (704–708)","Эпоха Вадо (708–715)","Эпоха Рэйки (715–717)","Эпоха Ёро (717–724)","Эпоха Дзинки (724–729)","Эпоха Темпьё (729–749)","Эпоха Темпьё (749–749)","Эпоха Темпьё-Сьохо (749-757)","Эпоха Темпьё-Ходзи (757-765)","Эпоха Темпьё-Ходзи (765-767)","Эпоха Джинго-Кёюн (767-770)","Эпоха Хоки (770–780)","Эпоха Теньё (781–782)","Эпоха Енряку (782–806)","Эпоха Дайдо (806–810)","Эпоха Конин (810–824)","Эпоха Тентьо (824–834)","Эпоха Шова (834–848)","Эпоха Кайо (848–851)","Эпоха Ниндзю (851–854)","Эпоха Сайко (854–857)","Эпоха Теннан (857–859)","Эпоха Йоган (859–877)","Эпоха Генкей (877–885)","Эпоха Нинна (885–889)","Эпоха Кампьё (889–898)","Эпоха Сьотай (898–901)","Эпоха Энги (901–923)","Эпоха Ентьо (923–931)","Эпоха Сьёхэй (931–938)","Эпоха Тенгьо (938–947)","Эпоха Тенрияку (947–957)","Эпоха Тентоку (957–961)","Эпоха Ова (961–964)","Эпоха Кохо (964–968)","Эпоха Анна (968–970)","Эпоха Тенроку (970–973)","Эпоха Теньен (973–976)","Эпоха Дзьоген (976–978)","Эпоха Тенген (978–983)","Эпоха Ейкан (983–985)","Эпоха Канна (985–987)","Эпоха Ейен (987–989)","Эпоха Ейсо (989–990)","Эпоха Сёряку (990–995)","Эпоха Тётоку (995–999)","Эпоха Тёхо (999–1004)","Эпоха Канко (1004–1012)","Эпоха Тёва (1012–1017)","Эпоха Каннин (1017–1021)","Эпоха Дзиан (1021–1024)","Эпоха Мандзю (1024–1028)","Эпоха Тёгэн (1028–1037)","Эпоха Тёряку (1037–1040)","Эпоха Тёкю (1040–1044)","Эпоха Катоку (1044–1046)","Эпоха Эйсо (1046–1053)","Эпоха Тэнги (1053–1058)","Эпоха Кохэй (1058–1065)","Эпоха Дзиряку (1065–1069)","Эпоха Энкю (1069–1074)","Эпоха Сёхо (1074–1077)","Эпоха Сёряку (1077–1081)","Эпоха Эйхо (1081–1084)","Эпоха Отоку (1084–1087)","Эпоха Кандзи (1087–1094)","Эпоха Кахо (1094–1096)","Эпоха Эйтё (1096–1097)","Эпоха Сётоку (1097–1099)","Эпоха Кова (1099–1104)","Эпоха Тёдзи (1104–1106)","Эпоха Касё (1106–1108)","Эпоха Тэннин (1108–1110)","Эпоха Тэнъэй (1110–1113)","Эпоха Эйкю (1113–1118)","Эпоха Гэнъэй (1118–1120)","Эпоха Хоан (1120–1124)","Эпоха Тэндзи (1124–1126)","Эпоха Дайдзи (1126–1131)","Эпоха Тэнсё (1131–1132)","Эпоха Тёсё (1132–1135)","Эпоха Хоэн (1135–1141)","Эпоха Эйдзи (1141–1142)","Эпоха Кодзи (1142–1144)","Эпоха Тэнё (1144–1145)","Эпоха Кюан (1145–1151)","Эпоха Нимпэй (1151–1154)","Эпоха Кюдзю (1154–1156)","Эпоха Хогэн (1156–1159)","Эпоха Хэйдзи (1159–1160)","Эпоха Эйряку (1160–1161)","Эпоха Охо (1161–1163)","Эпоха Тёкан (1163–1165)","Эпоха Эйман (1165–1166)","Эпоха Нинъан (1166–1169)","Эпоха Као (1169–1171)","Эпоха Сёан (1171–1175)","Эпоха Ангэн (1175–1177)","Эпоха Дзисё (1177–1181)","Эпоха Ёва (1181–1182)","Эпоха Дзюэй (1182–1184)","Эпоха Гэнрюку (1184–1185)","Эпоха Бундзи (1185–1190)","Эпоха Кэнкю (1190–1199)","Эпоха Сёдзи (1199–1201)","Эпоха Кэннин (1201–1204)","Эпоха Гэнкю (1204–1206)","Эпоха Кэнъэй (1206–1207)","Эпоха Сёгэн (1207–1211)","Эпоха Кэнряку (1211–1213)","Эпоха Кэмпо (1213–1219)","Эпоха Сёкю (1219–1222)","Эпоха Дзёо (1222–1224)","Эпоха Гэннин (1224–1225)","Эпоха Кароку (1225–1227)","Эпоха Антэй (1227–1229)","Эпоха Канки (1229–1232)","Эпоха Дзёэй (1232–1233)","Эпоха Тэмпуку (1233–1234)","Эпоха Бунряку (1234–1235)","Эпоха Катэй (1235–1238)","Эпоха Рякунин (1238–1239)","Эпоха Энъо (1239–1240)","Эпоха Ниндзи (1240–1243)","Эпоха Кангэн (1243–1247)","Эпоха Ходзи (1247–1249)","Эпоха Кэнтё (1249–1256)","Эпоха Когэн (1256–1257)","Эпоха Сёка (1257–1259)","Эпоха Сёгэн (1259–1260)","Эпоха Бунъо (1260–1261)","Эпоха Котё (1261–1264)","Эпоха Бунъэй (1264–1275)","Эпоха Кэндзи (1275–1278)","Эпоха Коан (1278–1288)","Эпоха Сёо (1288–1293)","Эпоха Эйнин (1293–1299)","Эпоха Сёан (1299–1302)","Эпоха Кэнгэн (1302–1303)","Эпоха Кагэн (1303–1306)","Эпоха Токудзи (1306–1308)","Эпоха Энкэй (1308–1311)","Эпоха Отё (1311–1312)","Эпоха Сёва (1312–1317)","Эпоха Бумпо (1317–1319)","Эпоха Гэно (1319–1321)","Эпоха Гэнкё (1321–1324)","Эпоха Сётю (1324–1326)","Эпоха Карэки (1326–1329)","Эпоха Гэнтоку (1329–1331)","Эпоха Гэнко (1331–1334)","Эпоха Кэмму (1334–1336)","Эпоха Энгэн (1336–1340)","Эпоха Кококу (1340–1346)","Эпоха Сёхэй (1346–1370)","Эпоха Кэнтоку (1370–1372)","Эпоха Бунтю (1372–1375)","Эпоха Иэндзю (1375–1379)","Эпоха Коряку (1379–1381)","Эпоха Кова (1381–1384)","Эпоха Гэнтю (1384–1392)","Эпоха Мэйтоку (1384–1387)","Эпоха Какэй (1387–1389)","Эпоха Коо (1389–1390)","Эпоха Мэйтоку (1390–1394)","Эпоха Оэй (1394–1428)","Эпоха Сётё (1428–1429)","Эпоха Эйкё (1429–1441)","Эпоха Какицу (1441–1444)","Эпоха Банъан (1444–1449)","Эпоха Хотоку (1449–1452)","Эпоха Кётоку (1452–1455)","Эпоха Косё (1455–1457)","Эпоха Тёроку (1457–1460)","Эпоха Кансё (1460–1466)","Эпоха Бунсё (1466–1467)","Эпоха Онин (1467–1469)","Эпоха Буммэй (1469–1487)","Эпоха Тёкё (1487–1489)","Эпоха Энтоку (1489–1492)","Эпоха Мэйо (1492–1501)","Эпоха Бунки (1501–1504)","Эпоха Эйсё (1504–1521)","Эпоха Тайэй (1521–1528)","Эпоха Кёроку (1528–1532)","Эпоха Тэммон (1532–1555)","Эпоха Кодзи (1555–1558)","Эпоха Эйроку (1558–1570)","Эпоха Гэнки (1570–1573)","Эпоха Тэнсё (1573–1592)","Эпоха Бунроку (1592–1596)","Эпоха Кэйтё (1596–1615)","Эпоха Гэнва (1615–1624)","Эпоха Канъэй (1624–1644)","Эпоха Сёхо (1644–1648)","Эпоха Кэйан (1648–1652)","Эпоха Сё (1652–1655)","Эпоха Мэйряку (1655–1658)","Эпоха Мандзи (1658–1661)","Эпоха Камбун (1661–1673)","Эпоха Эмпо (1673–1681)","Эпоха Тэнва (1681–1684)","Эпоха Дзёкё (1684–1688)","Эпоха Гэнроку (1688–1704)","Эпоха Хоэй (1704–1711)","Эпоха Сётоку (1711–1716)","Эпоха Кёхо (1716–1736)","Эпоха Гэмбун (1736–1741)","Эпоха Кампо (1741–1744)","Эпоха Энкё (1744–1748)","Эпоха Канъэн (1748–1751)","Эпоха Хоряку (1751–1764)","Эпоха Мэйва (1764–1772)","Эпоха Анъэй (1772–1781)","Эпоха Тэммэй (1781–1789)","Эпоха Кансэй (1789–1801)","Эпоха Кёва (1801–1804)","Эпоха Бунка (1804–1818)","Эпоха Бунсэй (1818–1830)","Эпоха Тэмпо (1830–1844)","Эпоха Кока (1844–1848)","Эпоха Каэй (1848–1854)","Эпоха Ансэй (1854–1860)","Эпоха Манъэн (1860–1861)","Эпоха Бункю (1861–1864)","Эпоха Гендзи (1864–1865)","Эпоха Кейо (1865–1868)","Эпоха Мэйдзи","Эпоха Тайсьо","Сьова","Эпоха Хэйсэй"]},dayPeriods:{am:"ДП",pm:"ПП"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Фарвардин","Ордибехешт","Хордад","Тир","Мордад","Шахривер","Мехр","Абан","Азер","Дей","Бахман","Эсфанд"],long:["Фарвардин","Ордибехешт","Хордад","Тир","Мордад","Шахривер","Мехр","Абан","Азер","Дей","Бахман","Эсфанд"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"ДП",pm:"ПП"}},roc:{months:{narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],short:["янв.","февр.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],long:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]},days:{narrow:["вс","пн","вт","ср","чт","пт","сб"],short:["вс","пн","вт","ср","чт","пт","сб"],long:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},eras:{narrow:["Before R.O.C.","Minguo"],short:["Before R.O.C.","Minguo"],long:["Before R.O.C.","Minguo"]},dayPeriods:{am:"ДП",pm:"ПП"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number} {percentSign}",negativePattern:"{minusSign}{number} {percentSign}"}},symbols:{latn:{decimal:",",group:" ",nan:"не число",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"A$",BRL:"R$",CAD:"CA$",CNY:"CN¥",EUR:"€",GBP:"£",HKD:"HK$",ILS:"₪",INR:"₹",JPY:"¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",RUB:"₽",RUR:"р.",THB:"฿",TMT:"ТМТ",TWD:"NT$",UAH:"₴",USD:"$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF",XXX:"XXXX"}}}); /***/ }), /* 230 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"sv",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:false,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d","E":"ccc",Ed:"E d",Ehm:"E h:mm a",EHm:"E HH:mm",Ehms:"E h:mm:ss a",EHms:"E HH:mm:ss",Gy:"y G",GyMMM:"MMM y G",GyMMMd:"d MMM y G",GyMMMEd:"E d MMM y G","h":"h a","H":"HH",hm:"h:mm a",Hm:"HH:mm",hms:"h:mm:ss a",Hms:"HH:mm:ss",hmsv:"h:mm:ss a v",Hmsv:"HH:mm:ss v",hmv:"h:mm a v",Hmv:"HH:mm v","M":"L",Md:"d/M",MEd:"E d/M",MMd:"d/M",MMdd:"dd/MM",MMM:"LLL",MMMd:"d MMM",MMMEd:"E d MMM",MMMMd:"d MMMM",MMMMEd:"E d MMMM",ms:"mm:ss","y":"y",yM:"y-MM",yMd:"y-MM-dd",yMEd:"E, y-MM-dd",yMM:"y-MM",yMMM:"MMM y",yMMMd:"d MMM y",yMMMEd:"E d MMM y",yMMMM:"MMMM y",yQQQ:"QQQ y",yQQQQ:"QQQQ y"},dateFormats:{yMMMMEEEEd:"EEEE d MMMM y",yMMMMd:"d MMMM y",yMMMd:"d MMM y",yMd:"y-MM-dd"},timeFormats:{hmmsszzzz:"'kl'. HH:mm:ss zzzz",hmsz:"HH:mm:ss z",hms:"HH:mm:ss",hm:"HH:mm"}},calendars:{buddhist:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],long:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["BE"],short:["BE"],long:["BE"]},dayPeriods:{am:"fm",pm:"em"}},chinese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},dayPeriods:{am:"fm",pm:"em"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["tout","bâbâ","hâtour","kiahk","toubah","amshîr","barmahât","barmoudah","bashans","ba’ounah","abîb","misra","al-nasi"],long:["tout","bâbâ","hâtour","kiahk","toubah","amshîr","barmahât","barmoudah","bashans","ba’ounah","abîb","misra","al-nasi"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"fm",pm:"em"}},dangi:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},dayPeriods:{am:"fm",pm:"em"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["mäskäräm","teqemt","hedar","tahesas","ter","yäkatit","mägabit","miyazya","guenbot","säné","hamlé","nähasé","pagumén"],long:["mäskäräm","teqemt","hedar","tahesas","ter","yäkatit","mägabit","miyazya","guenbot","säné","hamlé","nähasé","pagumén"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"fm",pm:"em"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["mäskäräm","teqemt","hedar","tahesas","ter","yäkatit","mägabit","miyazya","guenbot","säné","hamlé","nähasé","pagumén"],long:["mäskäräm","teqemt","hedar","tahesas","ter","yäkatit","mägabit","miyazya","guenbot","säné","hamlé","nähasé","pagumén"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"fm",pm:"em"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"fm",pm:"em"}},gregory:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],long:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["f.Kr.","e.Kr.","fvt","vt"],short:["f.Kr.","e.Kr.","f.v.t.","v.t."],long:["före Kristus","efter Kristus","före västerländsk tideräkning","västerländsk tideräkning"]},dayPeriods:{am:"fm",pm:"em"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["tishrí","heshván","kislév","tevét","shevát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl","adár II"],long:["tishrí","heshván","kislév","tevét","shevát","adár I","adár","nisán","ijjár","siván","tammúz","ab","elúl","adár II"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["AM"],short:["AM"],long:["AM"]},dayPeriods:{am:"fm",pm:"em"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["chaitra","vaishākh","jyaishtha","āshādha","shrāvana","bhādrapad","āshwin","kārtik","mārgashīrsha","paush","māgh","phālgun"],long:["chaitra","vaishākh","jyaishtha","āshādha","shrāvana","bhādrapad","āshwin","kārtik","mārgashīrsha","paush","māgh","phālgun"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["SAKA"],short:["SAKA"],long:["Saka-eran"]},dayPeriods:{am:"fm",pm:"em"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","jumada-l-ula","jumada-l-akhira","rajab","sha’ban","ramadan","shawwal","dhu-l-ga’da","dhu-l-hijja"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"fm",pm:"em"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["Muh.","Saf.","Rab. I","Rab. II","Jum. I","Jum. II","Raj.","Sha.","Ram.","Shaw.","Dhuʻl-Q.","Dhuʻl-H."],long:["muharram","safar","rabi’ al-awwal","rabi’ al-akhir","jumada-l-ula","jumada-l-akhira","rajab","sha’ban","ramadan","shawwal","dhu-l-ga’da","dhu-l-hijja"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["AH"],short:["AH"],long:["AH"]},dayPeriods:{am:"fm",pm:"em"}},japanese:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],long:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tempyō (729–749)","Tempyō-kampō (749–749)","Tempyō-shōhō (749–757)","Tempyō-hōji (757–765)","Temphō-jingo (765–767)","Jingo-keiun (767–770)","Hōki (770–780)","Ten-ō (781–782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saiko (854–857)","Tennan (857–859)","Jōgan (859–877)","Genkei (877–885)","Ninna (885–889)","Kampyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Shōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten-en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Ei-en (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eiho (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kaho (1094–1096)","Eichō (1096–1097)","Shōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110–1113)","Eikyū (1113–1118)","Gen-ei (1118–1120)","Hoan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hoen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Tenyō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hogen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin-an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryuku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken-ei (1206–1207)","Shōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Shōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tempuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En-ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun-ō (1260–1261)","Kōchō (1261–1264)","Bun-ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkei (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkyō (1321–1324)","Shōchū (1324–1326)","Kareki (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kemmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun-an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenmon (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genwa (1615–1624)","Kan-ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Shōō (1652–1655)","Meiryaku (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenwa (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan-en (1748–1751)","Hōryaku (1751–1764)","Meiwa (1764–1772)","An-ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man-en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"],long:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tempyō (729–749)","Tempyō-kampō (749–749)","Tempyō-shōhō (749–757)","Tempyō-hōji (757–765)","Temphō-jingo (765–767)","Jingo-keiun (767–770)","Hōki (770–780)","Ten-ō (781–782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saiko (854–857)","Tennan (857–859)","Jōgan (859–877)","Genkei (877–885)","Ninna (885–889)","Kampyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Shōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten-en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Ei-en (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eiho (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kaho (1094–1096)","Eichō (1096–1097)","Shōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110–1113)","Eikyū (1113–1118)","Gen-ei (1118–1120)","Hoan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hoen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Tenyō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hogen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin-an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryuku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken-ei (1206–1207)","Shōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Shōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tempuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En-ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun-ō (1260–1261)","Kōchō (1261–1264)","Bun-ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkei (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkyō (1321–1324)","Shōchū (1324–1326)","Kareki (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kemmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun-an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenmon (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genwa (1615–1624)","Kan-ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Shōō (1652–1655)","Meiryaku (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenwa (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan-en (1748–1751)","Hōryaku (1751–1764)","Meiwa (1764–1772)","An-ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man-en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","Meiji","Taishō","Shōwa","Heisei"]},dayPeriods:{am:"fm",pm:"em"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["farvardin","ordibehesht","khordād","tir","mordād","shahrivar","mehr","ābān","āzar","dey","bahman","esfand"],long:["farvardin","ordibehesht","khordād","tir","mordād","shahrivar","mehr","ābān","āzar","dey","bahman","esfand"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["AP"],short:["AP"],long:["AP"]},dayPeriods:{am:"fm",pm:"em"}},roc:{months:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],short:["jan.","feb.","mars","apr.","maj","juni","juli","aug.","sep.","okt.","nov.","dec."],long:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},days:{narrow:["S","M","T","O","T","F","L"],short:["sön","mån","tis","ons","tors","fre","lör"],long:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},eras:{narrow:["före R.K.","R.K."],short:["före R.K.","R.K."],long:["före R.K.","R.K."]},dayPeriods:{am:"fm",pm:"em"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{number} {currency}",negativePattern:"{minusSign}{number} {currency}"},percent:{positivePattern:"{number} {percentSign}",negativePattern:"{minusSign}{number} {percentSign}"}},symbols:{latn:{decimal:",",group:" ",nan:"¤¤¤",plusSign:"+",minusSign:"−",percentSign:"%",infinity:"∞"}},currencies:{BBD:"Bds$",BMD:"BM$",BRL:"BR$",BSD:"BS$",BZD:"BZ$",CAD:"CA$",DKK:"Dkr",DOP:"RD$",EEK:"Ekr",EGP:"EG£",EUR:"€",ILS:"₪",ISK:"Ikr",JMD:"JM$",MXN:"MX$",NOK:"Nkr",SEK:"kr",USD:"US$",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 231 */ /***/ (function(module, exports) { IntlPolyfill.__addLocaleData({locale:"zh",date:{ca:["gregory","buddhist","chinese","coptic","dangi","ethioaa","ethiopic","generic","hebrew","indian","islamic","islamicc","japanese","persian","roc"],hourNo0:true,hour12:true,formats:{short:"{1} {0}",medium:"{1} {0}",full:"{1} {0}",long:"{1} {0}",availableFormats:{"d":"d日","E":"ccc",Ed:"d日E",Ehm:"E ah:mm",EHm:"EHH:mm",Ehms:"E ah:mm:ss",EHms:"EHH:mm:ss",Gy:"Gy年",GyMMM:"Gy年M月",GyMMMd:"Gy年M月d日",GyMMMEd:"Gy年M月d日E","h":"ah时","H":"H时",hm:"ah:mm",Hm:"HH:mm",hms:"ah:mm:ss",Hms:"HH:mm:ss",hmsv:"v ah:mm:ss",Hmsv:"v HH:mm:ss",hmv:"v ah:mm",Hmv:"v HH:mm","M":"M月",Md:"M/d",MEd:"M/dE",MMdd:"MM/dd",MMM:"LLL",MMMd:"M月d日",MMMEd:"M月d日E",MMMMd:"M月d日",ms:"mm:ss","y":"y年",yM:"y年M月",yMd:"y/M/d",yMEd:"y/M/dE",yMM:"y年M月",yMMM:"y年M月",yMMMd:"y年M月d日",yMMMEd:"y年M月d日E",yMMMM:"y年M月",yQQQ:"y年第Q季度",yQQQQ:"y年第Q季度"},dateFormats:{yMMMMEEEEd:"y年M月d日EEEE",yMMMMd:"y年M月d日",yMMMd:"y年M月d日",yMd:"y/M/d"},timeFormats:{hmmsszzzz:"zzzz ah:mm:ss",hmsz:"z ah:mm:ss",hms:"ah:mm:ss",hm:"ah:mm"}},calendars:{buddhist:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["佛历"],short:["佛历"],long:["佛历"]},dayPeriods:{am:"上午",pm:"下午"}},chinese:{months:{narrow:["正","二","三","四","五","六","七","八","九","十","冬","腊"],short:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","冬月","腊月"],long:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","冬月","腊月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},dayPeriods:{am:"上午",pm:"下午"}},coptic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","13月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","十三月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"上午",pm:"下午"}},dangi:{months:{narrow:["正","二","三","四","五","六","七","八","九","十","冬","腊"],short:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","冬月","腊月"],long:["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","冬月","腊月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},dayPeriods:{am:"上午",pm:"下午"}},ethiopic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","13月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","十三月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"上午",pm:"下午"}},ethioaa:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","13月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","十三月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["ERA0"],short:["ERA0"],long:["ERA0"]},dayPeriods:{am:"上午",pm:"下午"}},generic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"],long:["M01","M02","M03","M04","M05","M06","M07","M08","M09","M10","M11","M12"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["ERA0","ERA1"],short:["ERA0","ERA1"],long:["ERA0","ERA1"]},dayPeriods:{am:"上午",pm:"下午"}},gregory:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["公元前","公元","西元前","西元"],short:["公元前","公元","西元前","西元"],long:["公元前","公元","西元前","西元"]},dayPeriods:{am:"上午",pm:"下午"}},hebrew:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12","13","7"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","13月","闰7月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月","十三月","闰七月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["希伯来历"],short:["希伯来历"],long:["希伯来历"]},dayPeriods:{am:"上午",pm:"下午"}},indian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["印度历"],short:["印度历"],long:["印度历"]},dayPeriods:{am:"上午",pm:"下午"}},islamic:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["伊斯兰历"],short:["伊斯兰历"],long:["伊斯兰历"]},dayPeriods:{am:"上午",pm:"下午"}},islamicc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["伊斯兰历"],short:["伊斯兰历"],long:["伊斯兰历"]},dayPeriods:{am:"上午",pm:"下午"}},japanese:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["Taika (645–650)","Hakuchi (650–671)","Hakuhō (672–686)","Shuchō (686–701)","Taihō (701–704)","Keiun (704–708)","Wadō (708–715)","Reiki (715–717)","Yōrō (717–724)","Jinki (724–729)","Tenpyō (729–749)","Tenpyō-kampō (749-749)","Tenpyō-shōhō (749-757)","Tenpyō-hōji (757-765)","Tenpyō-jingo (765-767)","Jingo-keiun (767-770)","Hōki (770–780)","Ten-ō (781-782)","Enryaku (782–806)","Daidō (806–810)","Kōnin (810–824)","Tenchō (824–834)","Jōwa (834–848)","Kajō (848–851)","Ninju (851–854)","Saikō (854–857)","Ten-an (857-859)","Jōgan (859–877)","Gangyō (877–885)","Ninna (885–889)","Kanpyō (889–898)","Shōtai (898–901)","Engi (901–923)","Enchō (923–931)","Jōhei (931–938)","Tengyō (938–947)","Tenryaku (947–957)","Tentoku (957–961)","Ōwa (961–964)","Kōhō (964–968)","Anna (968–970)","Tenroku (970–973)","Ten’en (973–976)","Jōgen (976–978)","Tengen (978–983)","Eikan (983–985)","Kanna (985–987)","Eien (987–989)","Eiso (989–990)","Shōryaku (990–995)","Chōtoku (995–999)","Chōhō (999–1004)","Kankō (1004–1012)","Chōwa (1012–1017)","Kannin (1017–1021)","Jian (1021–1024)","Manju (1024–1028)","Chōgen (1028–1037)","Chōryaku (1037–1040)","Chōkyū (1040–1044)","Kantoku (1044–1046)","Eishō (1046–1053)","Tengi (1053–1058)","Kōhei (1058–1065)","Jiryaku (1065–1069)","Enkyū (1069–1074)","Shōho (1074–1077)","Shōryaku (1077–1081)","Eihō (1081–1084)","Ōtoku (1084–1087)","Kanji (1087–1094)","Kahō (1094–1096)","Eichō (1096–1097)","Jōtoku (1097–1099)","Kōwa (1099–1104)","Chōji (1104–1106)","Kashō (1106–1108)","Tennin (1108–1110)","Ten-ei (1110-1113)","Eikyū (1113–1118)","Gen’ei (1118–1120)","Hōan (1120–1124)","Tenji (1124–1126)","Daiji (1126–1131)","Tenshō (1131–1132)","Chōshō (1132–1135)","Hōen (1135–1141)","Eiji (1141–1142)","Kōji (1142–1144)","Ten’yō (1144–1145)","Kyūan (1145–1151)","Ninpei (1151–1154)","Kyūju (1154–1156)","Hōgen (1156–1159)","Heiji (1159–1160)","Eiryaku (1160–1161)","Ōho (1161–1163)","Chōkan (1163–1165)","Eiman (1165–1166)","Nin’an (1166–1169)","Kaō (1169–1171)","Shōan (1171–1175)","Angen (1175–1177)","Jishō (1177–1181)","Yōwa (1181–1182)","Juei (1182–1184)","Genryaku (1184–1185)","Bunji (1185–1190)","Kenkyū (1190–1199)","Shōji (1199–1201)","Kennin (1201–1204)","Genkyū (1204–1206)","Ken’ei (1206–1207)","Jōgen (1207–1211)","Kenryaku (1211–1213)","Kenpō (1213–1219)","Jōkyū (1219–1222)","Jōō (1222–1224)","Gennin (1224–1225)","Karoku (1225–1227)","Antei (1227–1229)","Kanki (1229–1232)","Jōei (1232–1233)","Tenpuku (1233–1234)","Bunryaku (1234–1235)","Katei (1235–1238)","Ryakunin (1238–1239)","En’ō (1239–1240)","Ninji (1240–1243)","Kangen (1243–1247)","Hōji (1247–1249)","Kenchō (1249–1256)","Kōgen (1256–1257)","Shōka (1257–1259)","Shōgen (1259–1260)","Bun’ō (1260–1261)","Kōchō (1261–1264)","Bun’ei (1264–1275)","Kenji (1275–1278)","Kōan (1278–1288)","Shōō (1288–1293)","Einin (1293–1299)","Shōan (1299–1302)","Kengen (1302–1303)","Kagen (1303–1306)","Tokuji (1306–1308)","Enkyō (1308–1311)","Ōchō (1311–1312)","Shōwa (1312–1317)","Bunpō (1317–1319)","Genō (1319–1321)","Genkō (1321–1324)","Shōchū (1324–1326)","Karyaku (1326–1329)","Gentoku (1329–1331)","Genkō (1331–1334)","Kenmu (1334–1336)","Engen (1336–1340)","Kōkoku (1340–1346)","Shōhei (1346–1370)","Kentoku (1370–1372)","Bunchū (1372–1375)","Tenju (1375–1379)","Kōryaku (1379–1381)","Kōwa (1381–1384)","Genchū (1384–1392)","Meitoku (1384–1387)","Kakei (1387–1389)","Kōō (1389–1390)","Meitoku (1390–1394)","Ōei (1394–1428)","Shōchō (1428–1429)","Eikyō (1429–1441)","Kakitsu (1441–1444)","Bun’an (1444–1449)","Hōtoku (1449–1452)","Kyōtoku (1452–1455)","Kōshō (1455–1457)","Chōroku (1457–1460)","Kanshō (1460–1466)","Bunshō (1466–1467)","Ōnin (1467–1469)","Bunmei (1469–1487)","Chōkyō (1487–1489)","Entoku (1489–1492)","Meiō (1492–1501)","Bunki (1501–1504)","Eishō (1504–1521)","Taiei (1521–1528)","Kyōroku (1528–1532)","Tenbun (1532–1555)","Kōji (1555–1558)","Eiroku (1558–1570)","Genki (1570–1573)","Tenshō (1573–1592)","Bunroku (1592–1596)","Keichō (1596–1615)","Genna (1615–1624)","Kan’ei (1624–1644)","Shōho (1644–1648)","Keian (1648–1652)","Jōō (1652–1655)","Meireki (1655–1658)","Manji (1658–1661)","Kanbun (1661–1673)","Enpō (1673–1681)","Tenna (1681–1684)","Jōkyō (1684–1688)","Genroku (1688–1704)","Hōei (1704–1711)","Shōtoku (1711–1716)","Kyōhō (1716–1736)","Genbun (1736–1741)","Kanpō (1741–1744)","Enkyō (1744–1748)","Kan’en (1748–1751)","Hōreki (1751–1764)","Meiwa (1764–1772)","An’ei (1772–1781)","Tenmei (1781–1789)","Kansei (1789–1801)","Kyōwa (1801–1804)","Bunka (1804–1818)","Bunsei (1818–1830)","Tenpō (1830–1844)","Kōka (1844–1848)","Kaei (1848–1854)","Ansei (1854–1860)","Man’en (1860–1861)","Bunkyū (1861–1864)","Genji (1864–1865)","Keiō (1865–1868)","M","T","S","H"],short:["大化 (645–650)","白雉 (650–671)","白凤 (672–686)","朱鸟 (686–701)","大宝 (701–704)","庆云 (704–708)","和铜 (708–715)","灵龟 (715–717)","养老 (717–724)","神龟 (724–729)","天平 (729–749)","天平感宝 (749–749)","天平胜宝 (749–757)","天平宝字 (757–765)","天平神护 (765–767)","神护景云 (767–770)","宝龟 (770–780)","天应 (781–782)","延历 (782–806)","大同 (806–810)","弘仁 (810–824)","天长 (824–834)","承和 (834–848)","嘉祥 (848–851)","仁寿 (851–854)","齐衡 (854–857)","天安 (857–859)","贞观 (859–877)","元庆 (877–885)","仁和 (885–889)","宽平 (889–898)","昌泰 (898–901)","延喜 (901–923)","延长 (923–931)","承平 (931–938)","天庆 (938–947)","天历 (947–957)","天德 (957–961)","应和 (961–964)","康保 (964–968)","安和 (968–970)","天禄 (970–973)","天延 (973–976)","贞元 (976–978)","天元 (978–983)","永观 (983–985)","宽和 (985–987)","永延 (987–989)","永祚 (989–990)","正历 (990–995)","长德 (995–999)","长保 (999–1004)","宽弘 (1004–1012)","长和 (1012–1017)","宽仁 (1017–1021)","治安 (1021–1024)","万寿 (1024–1028)","长元 (1028–1037)","长历 (1037–1040)","长久 (1040–1044)","宽德 (1044–1046)","永承 (1046–1053)","天喜 (1053–1058)","康平 (1058–1065)","治历 (1065–1069)","延久 (1069–1074)","承保 (1074–1077)","正历 (1077–1081)","永保 (1081–1084)","应德 (1084–1087)","宽治 (1087–1094)","嘉保 (1094–1096)","永长 (1096–1097)","承德 (1097–1099)","康和 (1099–1104)","长治 (1104–1106)","嘉承 (1106–1108)","天仁 (1108–1110)","天永 (1110–1113)","永久 (1113–1118)","元永 (1118–1120)","保安 (1120–1124)","天治 (1124–1126)","大治 (1126–1131)","天承 (1131–1132)","长承 (1132–1135)","保延 (1135–1141)","永治 (1141–1142)","康治 (1142–1144)","天养 (1144–1145)","久安 (1145–1151)","仁平 (1151–1154)","久寿 (1154–1156)","保元 (1156–1159)","平治 (1159–1160)","永历 (1160–1161)","应保 (1161–1163)","长宽 (1163–1165)","永万 (1165–1166)","仁安 (1166–1169)","嘉应 (1169–1171)","承安 (1171–1175)","安元 (1175–1177)","治承 (1177–1181)","养和 (1181–1182)","寿永 (1182–1184)","元历 (1184–1185)","文治 (1185–1190)","建久 (1190–1199)","正治 (1199–1201)","建仁 (1201–1204)","元久 (1204–1206)","建永 (1206–1207)","承元 (1207–1211)","建历 (1211–1213)","建保 (1213–1219)","承久 (1219–1222)","贞应 (1222–1224)","元仁 (1224–1225)","嘉禄 (1225–1227)","安贞 (1227–1229)","宽喜 (1229–1232)","贞永 (1232–1233)","天福 (1233–1234)","文历 (1234–1235)","嘉祯 (1235–1238)","历仁 (1238–1239)","延应 (1239–1240)","仁治 (1240–1243)","宽元 (1243–1247)","宝治 (1247–1249)","建长 (1249–1256)","康元 (1256–1257)","正嘉 (1257–1259)","正元 (1259–1260)","文应 (1260–1261)","弘长 (1261–1264)","文永 (1264–1275)","建治 (1275–1278)","弘安 (1278–1288)","正应 (1288–1293)","永仁 (1293–1299)","正安 (1299–1302)","干元 (1302–1303)","嘉元 (1303–1306)","德治 (1306–1308)","延庆 (1308–1311)","应长 (1311–1312)","正和 (1312–1317)","文保 (1317–1319)","元应 (1319–1321)","元亨 (1321–1324)","正中 (1324–1326)","嘉历 (1326–1329)","元德 (1329–1331)","元弘 (1331–1334)","建武 (1334–1336)","延元 (1336–1340)","兴国 (1340–1346)","正平 (1346–1370)","建德 (1370–1372)","文中 (1372–1375)","天授 (1375–1379)","康历 (1379–1381)","弘和 (1381–1384)","元中 (1384–1392)","至德 (1384–1387)","嘉庆 (1387–1389)","康应 (1389–1390)","明德 (1390–1394)","应永 (1394–1428)","正长 (1428–1429)","永享 (1429–1441)","嘉吉 (1441–1444)","文安 (1444–1449)","宝德 (1449–1452)","享德 (1452–1455)","康正 (1455–1457)","长禄 (1457–1460)","宽正 (1460–1466)","文正 (1466–1467)","应仁 (1467–1469)","文明 (1469–1487)","长享 (1487–1489)","延德 (1489–1492)","明应 (1492–1501)","文龟 (1501–1504)","永正 (1504–1521)","大永 (1521–1528)","享禄 (1528–1532)","天文 (1532–1555)","弘治 (1555–1558)","永禄 (1558–1570)","元龟 (1570–1573)","天正 (1573–1592)","文禄 (1592–1596)","庆长 (1596–1615)","元和 (1615–1624)","宽永 (1624–1644)","正保 (1644–1648)","庆安 (1648–1652)","承应 (1652–1655)","明历 (1655–1658)","万治 (1658–1661)","宽文 (1661–1673)","延宝 (1673–1681)","天和 (1681–1684)","贞享 (1684–1688)","元禄 (1688–1704)","宝永 (1704–1711)","正德 (1711–1716)","享保 (1716–1736)","元文 (1736–1741)","宽保 (1741–1744)","延享 (1744–1748)","宽延 (1748–1751)","宝历 (1751–1764)","明和 (1764–1772)","安永 (1772–1781)","天明 (1781–1789)","宽政 (1789–1801)","享和 (1801–1804)","文化 (1804–1818)","文政 (1818–1830)","天保 (1830–1844)","弘化 (1844–1848)","嘉永 (1848–1854)","安政 (1854–1860)","万延 (1860–1861)","文久 (1861–1864)","元治 (1864–1865)","庆应 (1865–1868)","明治","大正","昭和","平成"],long:["大化 (645–650)","白雉 (650–671)","白凤 (672–686)","朱鸟 (686–701)","大宝 (701–704)","庆云 (704–708)","和铜 (708–715)","灵龟 (715–717)","养老 (717–724)","神龟 (724–729)","天平 (729–749)","天平感宝 (749–749)","天平胜宝 (749–757)","天平宝字 (757–765)","天平神护 (765–767)","神护景云 (767–770)","宝龟 (770–780)","天应 (781–782)","延历 (782–806)","大同 (806–810)","弘仁 (810–824)","天长 (824–834)","承和 (834–848)","嘉祥 (848–851)","仁寿 (851–854)","齐衡 (854–857)","天安 (857–859)","贞观 (859–877)","元庆 (877–885)","仁和 (885–889)","宽平 (889–898)","昌泰 (898–901)","延喜 (901–923)","延长 (923–931)","承平 (931–938)","天庆 (938–947)","天历 (947–957)","天德 (957–961)","应和 (961–964)","康保 (964–968)","安和 (968–970)","天禄 (970–973)","天延 (973–976)","贞元 (976–978)","天元 (978–983)","永观 (983–985)","宽和 (985–987)","永延 (987–989)","永祚 (989–990)","正历 (990–995)","长德 (995–999)","长保 (999–1004)","宽弘 (1004–1012)","长和 (1012–1017)","宽仁 (1017–1021)","治安 (1021–1024)","万寿 (1024–1028)","长元 (1028–1037)","长历 (1037–1040)","长久 (1040–1044)","宽德 (1044–1046)","永承 (1046–1053)","天喜 (1053–1058)","康平 (1058–1065)","治历 (1065–1069)","延久 (1069–1074)","承保 (1074–1077)","正历 (1077–1081)","永保 (1081–1084)","应德 (1084–1087)","宽治 (1087–1094)","嘉保 (1094–1096)","永长 (1096–1097)","承德 (1097–1099)","康和 (1099–1104)","长治 (1104–1106)","嘉承 (1106–1108)","天仁 (1108–1110)","天永 (1110–1113)","永久 (1113–1118)","元永 (1118–1120)","保安 (1120–1124)","天治 (1124–1126)","大治 (1126–1131)","天承 (1131–1132)","长承 (1132–1135)","保延 (1135–1141)","永治 (1141–1142)","康治 (1142–1144)","天养 (1144–1145)","久安 (1145–1151)","仁平 (1151–1154)","久寿 (1154–1156)","保元 (1156–1159)","平治 (1159–1160)","永历 (1160–1161)","应保 (1161–1163)","长宽 (1163–1165)","永万 (1165–1166)","仁安 (1166–1169)","嘉应 (1169–1171)","承安 (1171–1175)","安元 (1175–1177)","治承 (1177–1181)","养和 (1181–1182)","寿永 (1182–1184)","元历 (1184–1185)","文治 (1185–1190)","建久 (1190–1199)","正治 (1199–1201)","建仁 (1201–1204)","元久 (1204–1206)","建永 (1206–1207)","承元 (1207–1211)","建历 (1211–1213)","建保 (1213–1219)","承久 (1219–1222)","贞应 (1222–1224)","元仁 (1224–1225)","嘉禄 (1225–1227)","安贞 (1227–1229)","宽喜 (1229–1232)","贞永 (1232–1233)","天福 (1233–1234)","文历 (1234–1235)","嘉祯 (1235–1238)","历仁 (1238–1239)","延应 (1239–1240)","仁治 (1240–1243)","宽元 (1243–1247)","宝治 (1247–1249)","建长 (1249–1256)","康元 (1256–1257)","正嘉 (1257–1259)","正元 (1259–1260)","文应 (1260–1261)","弘长 (1261–1264)","文永 (1264–1275)","建治 (1275–1278)","弘安 (1278–1288)","正应 (1288–1293)","永仁 (1293–1299)","正安 (1299–1302)","干元 (1302–1303)","嘉元 (1303–1306)","德治 (1306–1308)","延庆 (1308–1311)","应长 (1311–1312)","正和 (1312–1317)","文保 (1317–1319)","元应 (1319–1321)","元亨 (1321–1324)","正中 (1324–1326)","嘉历 (1326–1329)","元德 (1329–1331)","元弘 (1331–1334)","建武 (1334–1336)","延元 (1336–1340)","兴国 (1340–1346)","正平 (1346–1370)","建德 (1370–1372)","文中 (1372–1375)","天授 (1375–1379)","康历 (1379–1381)","弘和 (1381–1384)","元中 (1384–1392)","至德 (1384–1387)","嘉庆 (1387–1389)","康应 (1389–1390)","明德 (1390–1394)","应永 (1394–1428)","正长 (1428–1429)","永享 (1429–1441)","嘉吉 (1441–1444)","文安 (1444–1449)","宝德 (1449–1452)","享德 (1452–1455)","康正 (1455–1457)","长禄 (1457–1460)","宽正 (1460–1466)","文正 (1466–1467)","应仁 (1467–1469)","文明 (1469–1487)","长享 (1487–1489)","延德 (1489–1492)","明应 (1492–1501)","文龟 (1501–1504)","永正 (1504–1521)","大永 (1521–1528)","享禄 (1528–1532)","天文 (1532–1555)","弘治 (1555–1558)","永禄 (1558–1570)","元龟 (1570–1573)","天正 (1573–1592)","文禄 (1592–1596)","庆长 (1596–1615)","元和 (1615–1624)","宽永 (1624–1644)","正保 (1644–1648)","庆安 (1648–1652)","承应 (1652–1655)","明历 (1655–1658)","万治 (1658–1661)","宽文 (1661–1673)","延宝 (1673–1681)","天和 (1681–1684)","贞享 (1684–1688)","元禄 (1688–1704)","宝永 (1704–1711)","正德 (1711–1716)","享保 (1716–1736)","元文 (1736–1741)","宽保 (1741–1744)","延享 (1744–1748)","宽延 (1748–1751)","宝历 (1751–1764)","明和 (1764–1772)","安永 (1772–1781)","天明 (1781–1789)","宽政 (1789–1801)","享和 (1801–1804)","文化 (1804–1818)","文政 (1818–1830)","天保 (1830–1844)","弘化 (1844–1848)","嘉永 (1848–1854)","安政 (1854–1860)","万延 (1860–1861)","文久 (1861–1864)","元治 (1864–1865)","庆应 (1865–1868)","明治","大正","昭和","平成"]},dayPeriods:{am:"上午",pm:"下午"}},persian:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["波斯历"],short:["波斯历"],long:["波斯历"]},dayPeriods:{am:"上午",pm:"下午"}},roc:{months:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],short:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],long:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},days:{narrow:["日","一","二","三","四","五","六"],short:["周日","周一","周二","周三","周四","周五","周六"],long:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eras:{narrow:["民国前","民国"],short:["民国前","民国"],long:["民国前","民国"]},dayPeriods:{am:"上午",pm:"下午"}}}},number:{nu:["latn"],patterns:{decimal:{positivePattern:"{number}",negativePattern:"{minusSign}{number}"},currency:{positivePattern:"{currency}{number}",negativePattern:"{minusSign}{currency}{number}"},percent:{positivePattern:"{number}{percentSign}",negativePattern:"{minusSign}{number}{percentSign}"}},symbols:{hanidec:{decimal:".",group:",",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"},latn:{decimal:".",group:",",nan:"NaN",plusSign:"+",minusSign:"-",percentSign:"%",infinity:"∞"}},currencies:{AUD:"AU$",BRL:"R$",CAD:"CA$",CNY:"¥",EUR:"€",GBP:"£",HKD:"HK$",ILR:"ILS",ILS:"₪",INR:"₹",JPY:"JP¥",KRW:"₩",MXN:"MX$",NZD:"NZ$",TWD:"NT$",USD:"US$",VND:"₫",XAF:"FCFA",XCD:"EC$",XOF:"CFA",XPF:"CFPF"}}}); /***/ }), /* 232 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__HISTORY__; /***/ }), /* 233 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _redux = __webpack_require__(12); var _storage = _interopRequireDefault(__webpack_require__(234)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = (0, _redux.combineReducers)({ storage: _storage["default"] }); exports["default"] = _default; /***/ }), /* 234 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _redux = __webpack_require__(12); var _vmware = _interopRequireDefault(__webpack_require__(235)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = (0, _redux.combineReducers)({ vmware: _vmware["default"] }); exports["default"] = _default; /***/ }), /* 235 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _lodash = __webpack_require__(10); var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _v = _interopRequireDefault(__webpack_require__(16)); var _consts = __webpack_require__(50); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* eslint no-case-declarations:0 */ /* eslint no-case-declarations:0 */ var initialState = (0, _seamlessImmutable["default"])({ controllers: [], volumes: [] }); var availableControllerKeys = [1000, 1001, 1002, 1003, 1004]; var getAvailableKey = function getAvailableKey(controllers) { return (0, _lodash.head)((0, _lodash.difference)(availableControllerKeys, controllers.map(function (c) { return c.key; }))); }; var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload, response = _ref.response; switch (type) { case _consts.VMWARE_CLUSTER_CHANGE: return state.set('cluster', payload.cluster); case _consts.STORAGE_VMWARE_ADD_CONTROLLER: var availableKey = getAvailableKey(state.controllers); // controller key is assigned here using getAvailableKey return state.update('controllers', function (ctrls) { return ctrls.concat(_extends({}, payload.controller, { key: availableKey })); }).update('volumes', function (volumes) { return volumes.concat(_extends({}, payload.volume, { controllerKey: availableKey }, { key: (0, _v["default"])() })); }); case _consts.STORAGE_VMWARE_ADD_DISK: return state.set('volumes', state.volumes.concat(_objectSpread(_objectSpread({}, payload.data), {}, { key: (0, _v["default"])(), controllerKey: payload.controllerKey }))); case _consts.STORAGE_VMWARE_REMOVE_CONTROLLER: return state.update('controllers', function (ctrls) { return ctrls.filter(function (ctrl) { return ctrl.key !== payload.controllerKey; }); }).update('volumes', function (volumes) { return volumes.filter(function (volume) { return volume.controllerKey !== payload.controllerKey; }); }); case _consts.STORAGE_VMWARE_UPDATE_CONTROLLER: return state.updateIn(['controllers', payload.idx], function (controller) { return _extends({}, controller, payload.newValues); }); case _consts.STORAGE_VMWARE_UPDATE_DISK: return state.set('volumes', state.volumes.map(function (v) { return v.key === payload.key ? _extends({}, v, payload.newValues) : v; })); case _consts.STORAGE_VMWARE_REMOVE_DISK: return state.set('volumes', state.volumes.filter(function (v) { return v.key !== payload.key; })); case _consts.STORAGE_VMWARE_INIT: var newState = { controllers: payload.controllers, paramsScope: payload.config.paramsScope, datastores: [], datastoresLoading: false, datastoresError: undefined, storagePods: [], storagePodsLoading: false, storagePodsError: undefined, volumes: payload.volumes.map(function (volume) { return _objectSpread(_objectSpread({}, volume), {}, { key: (0, _v["default"])() }); }), cluster: payload.cluster }; return initialState.set('config', payload.config).setIn(['config', 'addControllerEnabled'], !!getAvailableKey(payload.controllers)).merge(newState); case _consts.STORAGE_VMWARE_DATASTORES_REQUEST: return state.merge({ datastoresError: undefined, datastores: [], datastoresLoading: true }); case _consts.STORAGE_VMWARE_DATASTORES_SUCCESS: return state.set('datastores', response.results).set('datastoresLoading', false); case _consts.STORAGE_VMWARE_DATASTORES_FAILURE: return state.set('datastoresError', response.message); case _consts.STORAGE_VMWARE_STORAGEPODS_REQUEST: return state.merge({ storagePodsError: undefined, storagePods: [], storagePodsLoading: true }); case _consts.STORAGE_VMWARE_STORAGEPODS_SUCCESS: return state.merge({ storagePods: response.results, storagePodsLoading: false }); case _consts.STORAGE_VMWARE_STORAGEPODS_FAILURE: return state.set('storagePodsError', response.message); default: return state; } }; exports["default"] = _default; /***/ }), /* 236 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _consts = __webpack_require__(50); var sessionStorage = _interopRequireWildcard(__webpack_require__(106)); var _API = __webpack_require__(8); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = (0, _seamlessImmutable["default"])({ isDrawerOpen: sessionStorage.getIsOpened(), expandedGroup: sessionStorage.getExpandedGroup(), hasUnreadMessages: sessionStorage.getHasUnreadMessages() || false }); var hasUnreadMessages = function hasUnreadMessages(notifications) { var result = Object.values(notifications).some(function (n) { return !n.seen; }); // store indicator in sessionStorage. // TODO: consider moving this either to a reselect // ,store.subscribe OR to a distint redux action // leaving it here as it makes the most sense to me. sessionStorage.setHasUnreadMessages(result); return result; }; var _actionTypeGenerator = (0, _API.actionTypeGenerator)(_consts.NOTIFICATIONS), SUCCESS = _actionTypeGenerator.SUCCESS, FAILURE = _actionTypeGenerator.FAILURE; var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload, response = _ref.response; switch (type) { case SUCCESS: return state.merge({ notifications: response.notifications, hasUnreadMessages: hasUnreadMessages(response.notifications) }); case FAILURE: { return state.set('error', response); } case _consts.NOTIFICATIONS_TOGGLE_DRAWER: return state.set('isDrawerOpen', payload.value); case _consts.NOTIFICATIONS_SET_EXPANDED_GROUP: return state.set('expandedGroup', payload.group); case _consts.NOTIFICATIONS_MARK_AS_READ: { var notifications = state.notifications.map(function (n) { return n.id === payload.id ? _objectSpread(_objectSpread({}, n), {}, { seen: true }) : n; }); return state.merge({ notifications: notifications, hasUnreadMessages: hasUnreadMessages(notifications) }); } case _consts.NOTIFICATIONS_MARK_AS_CLEAR: { var _notifications = state.notifications.filter(function (n) { return n.id !== payload.id; }); return state.merge({ notifications: _notifications, hasUnreadMessages: hasUnreadMessages(_notifications) }); } case _consts.NOTIFICATIONS_MARK_GROUP_AS_READ: { var _notifications2 = state.notifications.map(function (n) { return n.group === payload.group ? _objectSpread(_objectSpread({}, n), {}, { seen: true }) : n; }); return state.merge({ notifications: _notifications2, hasUnreadMessages: hasUnreadMessages(_notifications2) }); } case _consts.NOTIFICATIONS_MARK_GROUP_AS_CLEARED: { var _notifications3 = state.notifications.filter(function (n) { return n.group !== payload.group; }); return state.merge({ notifications: _notifications3, hasUnreadMessages: hasUnreadMessages(_notifications3) }); } default: return state; } }; exports["default"] = _default; /***/ }), /* 237 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _APIActionTypeGenerator = __webpack_require__(71); var _constants = __webpack_require__(7); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = (0, _seamlessImmutable["default"])({}); var apiReducer = function apiReducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, key = _ref.key, payload = _ref.payload, response = _ref.response; if (key === undefined) return state; var _actionTypeGenerator = (0, _APIActionTypeGenerator.actionTypeGenerator)(key), REQUEST = _actionTypeGenerator.REQUEST, SUCCESS = _actionTypeGenerator.SUCCESS, FAILURE = _actionTypeGenerator.FAILURE, UPDATE = _actionTypeGenerator.UPDATE; var PENDING = _constants.STATUS.PENDING, RESOLVED = _constants.STATUS.RESOLVED, ERROR = _constants.STATUS.ERROR; switch (type) { case REQUEST: return state.merge(_defineProperty({}, key, _objectSpread(_objectSpread({ response: null }, state[key]), {}, { payload: payload, status: PENDING }))); case SUCCESS: return state.merge(_defineProperty({}, key, { payload: payload, response: response, status: RESOLVED })); case FAILURE: return state.merge(_defineProperty({}, key, { payload: payload, response: response, status: ERROR })); case UPDATE: return state.setIn([key, 'response'], payload); default: return state; } }; var _default = apiReducer; exports["default"] = _default; /***/ }), /* 238 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.APIMiddleware = void 0; var _APIRequest = __webpack_require__(239); var _APIHelpers = __webpack_require__(107); var APIMiddleware = function APIMiddleware(store) { return function (next) { return function (action) { if ((0, _APIHelpers.isAPIAction)(action)) { (0, _APIRequest.apiRequest)(action, store); } return next(action); }; }; }; exports.APIMiddleware = APIMiddleware; /***/ }), /* 239 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.apiRequest = void 0; var _APIHelpers = __webpack_require__(107); var _APIActionTypeGenerator = __webpack_require__(71); var _helpers = __webpack_require__(3); var _IntervalMiddleware = __webpack_require__(32); var _IntervalSelectors = __webpack_require__(99); var _APISelectors = __webpack_require__(14); var _ToastsList = __webpack_require__(28); function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } /* eslint-disable no-console */ var apiRequest = /*#__PURE__*/function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, _ref2) { var type, _ref$payload, key, url, _ref$payload$headers, headers, _ref$payload$params, params, _ref$payload$actionTy, actionTypes, _ref$payload$handleEr, handleError, _ref$payload$handleSu, handleSuccess, successToast, errorToast, _ref$payload$payload, payload, updateData, dispatch, getState, prevState, _actionTypeGenerator, REQUEST, SUCCESS, FAILURE, UPDATE, modifiedPayload, stopIntervalCallback, response; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: type = _ref.type, _ref$payload = _ref.payload, key = _ref$payload.key, url = _ref$payload.url, _ref$payload$headers = _ref$payload.headers, headers = _ref$payload$headers === void 0 ? {} : _ref$payload$headers, _ref$payload$params = _ref$payload.params, params = _ref$payload$params === void 0 ? {} : _ref$payload$params, _ref$payload$actionTy = _ref$payload.actionTypes, actionTypes = _ref$payload$actionTy === void 0 ? {} : _ref$payload$actionTy, _ref$payload$handleEr = _ref$payload.handleError, handleError = _ref$payload$handleEr === void 0 ? _helpers.noop : _ref$payload$handleEr, _ref$payload$handleSu = _ref$payload.handleSuccess, handleSuccess = _ref$payload$handleSu === void 0 ? _helpers.noop : _ref$payload$handleSu, successToast = _ref$payload.successToast, errorToast = _ref$payload.errorToast, _ref$payload$payload = _ref$payload.payload, payload = _ref$payload$payload === void 0 ? {} : _ref$payload$payload, updateData = _ref$payload.updateData; dispatch = _ref2.dispatch, getState = _ref2.getState; prevState = getState(); _actionTypeGenerator = (0, _APIActionTypeGenerator.actionTypeGenerator)(key, actionTypes), REQUEST = _actionTypeGenerator.REQUEST, SUCCESS = _actionTypeGenerator.SUCCESS, FAILURE = _actionTypeGenerator.FAILURE, UPDATE = _actionTypeGenerator.UPDATE; modifiedPayload = _objectSpread(_objectSpread({}, payload), {}, { url: url }); stopIntervalCallback = (0, _IntervalSelectors.selectDoesIntervalExist)(prevState, key) ? function () { return dispatch((0, _IntervalMiddleware.stopInterval)(key)); } : function () { return console.warn("There's no interval API request for the key: ".concat(key)); }; dispatch({ type: REQUEST, key: key, payload: modifiedPayload }); _context.prev = 7; _context.next = 10; return (0, _APIHelpers.getApiResponse)({ type: type, url: url, headers: headers, params: params }); case 10: response = _context.sent; dispatch({ type: SUCCESS, key: key, payload: modifiedPayload, response: response.data }); updateData && dispatch({ type: UPDATE, key: key, payload: updateData((0, _APISelectors.selectAPIResponse)(prevState, key), response.data) }); successToast && dispatch((0, _ToastsList.addToast)({ type: 'success', message: successToast(response), key: SUCCESS })); handleSuccess(response, stopIntervalCallback); _context.next = 22; break; case 17: _context.prev = 17; _context.t0 = _context["catch"](7); dispatch({ type: FAILURE, key: key, payload: modifiedPayload, response: _context.t0 }); errorToast && dispatch((0, _ToastsList.addToast)({ type: 'danger', message: errorToast(_context.t0), key: FAILURE })); handleError(_context.t0, stopIntervalCallback); case 22: case "end": return _context.stop(); } }, _callee, null, [[7, 17]]); })); return function apiRequest(_x, _x2) { return _ref3.apply(this, arguments); }; }(); exports.apiRequest = apiRequest; /***/ }), /* 240 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.IntervalMiddleware = void 0; var _lodash = __webpack_require__(10); var _IntervalConstants = __webpack_require__(51); var _IntervalSelectors = __webpack_require__(99); var _IntervalHelpers = __webpack_require__(108); var _IntervalActions = __webpack_require__(109); var _helpers = __webpack_require__(241); var IntervalMiddleware = function IntervalMiddleware(store) { return function (next) { return function (action) { var type = action.type, key = action.key, interval = action.interval, _action$payload = action.payload, payload = _action$payload === void 0 ? {} : _action$payload; var intervalKey = key || payload.key; if (interval) { if ((0, _IntervalSelectors.selectDoesIntervalExist)(store.getState(), intervalKey)) { throw (0, _IntervalHelpers.registeredIntervalException)(intervalKey); } // To avoid the action from getting into an endless loop in this middleware. var modifiedAction = (0, _lodash.omit)(action, ['interval']); var dispatchModifiedAction = function dispatchModifiedAction() { return store.dispatch(modifiedAction); }; dispatchModifiedAction(); // force the action to run for the first time. var delay = typeof interval === 'number' ? interval : (0, _IntervalHelpers.getDefaultInterval)(); var intervalFunc = function intervalFunc() { return (0, _helpers.whenDocumentIsVisible)(dispatchModifiedAction); }; var intervalID = setInterval(intervalFunc, delay); return store.dispatch((0, _IntervalActions.startInterval)(intervalKey, intervalID)); } if (type === _IntervalConstants.STOP_INTERVAL) { var state = store.getState(); var _intervalID = (0, _IntervalSelectors.selectIntervalID)(state, intervalKey); _intervalID && clearInterval(_intervalID); } return next(action); }; }; }; exports.IntervalMiddleware = IntervalMiddleware; var _default = IntervalMiddleware; exports["default"] = _default; /***/ }), /* 241 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.whenDocumentIsVisible = void 0; /** * Executes a callback when the document is visible. * Used to decrease load when tab is hidden, for example when intervals are running. * @param { Function } callback */ var whenDocumentIsVisible = function whenDocumentIsVisible(callback) { var _document = document, hidden = _document.hidden, msHidden = _document.msHidden, webkitHidden = _document.webkitHidden; var isHidden = true; var isNotUndefined = function isNotUndefined(n) { return typeof n !== 'undefined'; }; if (isNotUndefined(hidden)) { // Opera 12.10 and Firefox 18 and later support isHidden = hidden; } else if (isNotUndefined(msHidden)) { isHidden = msHidden; } else if (isNotUndefined(webkitHidden)) { isHidden = webkitHidden; } if (!isHidden) { callback(); } }; exports.whenDocumentIsVisible = whenDocumentIsVisible; /***/ }), /* 242 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports.reducer = exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _IntervalConstants = __webpack_require__(51); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = (0, _seamlessImmutable["default"])({}); var reducer = function reducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; var type = action.type, key = action.key, intervalID = action.intervalID; switch (type) { case _IntervalConstants.START_INTERVAL: return state.merge(_defineProperty({}, key, intervalID)); case _IntervalConstants.STOP_INTERVAL: return state.without(key); default: return state; } }; exports.reducer = reducer; var reducers = { intervals: reducer }; exports.reducers = reducers; var _default = reducer; exports["default"] = _default; /***/ }), /* 243 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectToastsList = exports.reducers = exports.deleteToast = exports.clearToasts = exports.addToast = void 0; var _toolkit = __webpack_require__(73); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = {}; var toastsListSlice = (0, _toolkit.createSlice)({ name: 'toasts', initialState: initialState, reducers: { addToast: { reducer: function reducer(state, _ref) { var _ref$payload = _ref.payload, key = _ref$payload.key, toast = _ref$payload.toast; state[key] = toast; }, prepare: function prepare(toast) { var key = toast.key || (0, _toolkit.nanoid)(); return { payload: { key: key, toast: toast } }; } }, deleteToast: function deleteToast(state, _ref2) { var payload = _ref2.payload; delete state[payload]; }, clearToasts: function clearToasts() { return initialState; } } }); var name = toastsListSlice.name, reducer = toastsListSlice.reducer, actions = toastsListSlice.actions; var addToast = actions.addToast, deleteToast = actions.deleteToast, clearToasts = actions.clearToasts; exports.clearToasts = clearToasts; exports.deleteToast = deleteToast; exports.addToast = addToast; var reducers = _defineProperty({}, name, reducer); exports.reducers = reducers; var selectToastsList = function selectToastsList(state) { return state[name]; }; exports.selectToastsList = selectToastsList; /***/ }), /* 244 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toastType = exports.toastTitle = void 0; var _reactCore = __webpack_require__(6); /* eslint-disable no-console */ var toastType = function toastType(type) { if (type in _reactCore.AlertVariant) return type; console.warn("Toast notification type '".concat(type, "' is invalid. Please use one of the following types: ").concat(Object.values(_reactCore.AlertVariant))); var fallbackTypes = { alert: _reactCore.AlertVariant.warning, notice: _reactCore.AlertVariant.info, error: _reactCore.AlertVariant.danger }; return fallbackTypes[type] || _reactCore.AlertVariant["default"]; }; exports.toastType = toastType; var toastTitle = function toastTitle(message, type) { if (message.length <= 60) return message; return defaultTitle(type); }; exports.toastTitle = toastTitle; var defaultTitle = function defaultTitle(type) { switch (type) { case 'danger': case 'error': return 'Error'; case 'warning': return 'Warning'; case 'success': return 'Success'; default: return 'Info'; } }; /***/ }), /* 245 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 246 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _axios = _interopRequireDefault(__webpack_require__(110)); __webpack_require__(247); var _foreman_tools = __webpack_require__(18); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var getcsrfToken = function getcsrfToken() { var token = document.querySelector('meta[name="csrf-token"]'); return token ? token.content : ''; }; _axios["default"].defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; _axios["default"].defaults.headers.common['X-CSRF-Token'] = getcsrfToken(); var _default = { get: function get(url) { var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return _axios["default"].get((0, _foreman_tools.foremanUrl)(url), { headers: headers, params: params }); }, put: function put(url) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return _axios["default"].put((0, _foreman_tools.foremanUrl)(url), data, { headers: headers }); }, post: function post(url) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return _axios["default"].post((0, _foreman_tools.foremanUrl)(url), data, { headers: headers }); }, "delete": function _delete(url) { var headers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return _axios["default"]["delete"]((0, _foreman_tools.foremanUrl)(url), { headers: headers }); }, patch: function patch(url) { var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var headers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; return _axios["default"].patch((0, _foreman_tools.foremanUrl)(url), data, { headers: headers }); } }; exports["default"] = _default; /***/ }), /* 247 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _axios = _interopRequireDefault(__webpack_require__(110)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } // a counter for active requests, like jQuery.active window.axiosActive = 0; _axios["default"].interceptors.request.use(function (config) { window.axiosActive += 1; return config; }); _axios["default"].interceptors.response.use(function (response) { window.axiosActive -= 1; return response; }); /***/ }), /* 248 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updatePasswordConfirmation = exports.updatePassword = void 0; var _PasswordStrengthConstants = __webpack_require__(112); var updatePassword = function updatePassword(password) { return { type: _PasswordStrengthConstants.PASSWORD_STRENGTH_PASSWORD_CHANGED, payload: password }; }; exports.updatePassword = updatePassword; var updatePasswordConfirmation = function updatePasswordConfirmation(password) { return { type: _PasswordStrengthConstants.PASSWORD_STRENGTH_PASSWORD_CONFIRMATION_CHANGED, payload: password }; }; exports.updatePasswordConfirmation = updatePasswordConfirmation; /***/ }), /* 249 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.passwordPresent = exports.doesPasswordsMatch = void 0; var doesPasswordsMatch = function doesPasswordsMatch(_ref) { var password = _ref.password, passwordConfirmation = _ref.passwordConfirmation; return !passwordConfirmation || password === passwordConfirmation; }; exports.doesPasswordsMatch = doesPasswordsMatch; var passwordPresent = function passwordPresent(passwordStrength) { return passwordStrength && !!passwordStrength.password; }; exports.passwordPresent = passwordPresent; /***/ }), /* 250 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _PasswordStrengthConstants = __webpack_require__(112); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({ password: '', passwordConfirmation: '' }); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; var payload = action.payload; switch (action.type) { case _PasswordStrengthConstants.PASSWORD_STRENGTH_PASSWORD_CHANGED: return state.set('password', payload); case _PasswordStrengthConstants.PASSWORD_STRENGTH_PASSWORD_CONFIRMATION_CHANGED: return state.set('passwordConfirmation', payload); default: return state; } }; exports["default"] = _default; /***/ }), /* 251 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactPasswordStrength = _interopRequireDefault(__webpack_require__(252)); var _I18n = __webpack_require__(2); var _CommonForm = _interopRequireDefault(__webpack_require__(34)); var _helpers = __webpack_require__(3); __webpack_require__(253); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var PasswordStrength = function PasswordStrength(_ref) { var updatePassword = _ref.updatePassword, updatePasswordConfirmation = _ref.updatePasswordConfirmation, doesPasswordsMatch = _ref.doesPasswordsMatch, passwordPresent = _ref.passwordPresent, _ref$data = _ref.data, className = _ref$data.className, id = _ref$data.id, name = _ref$data.name, verify = _ref$data.verify, error = _ref$data.error, userInputIds = _ref$data.userInputIds, required = _ref$data.required; var userInputs = userInputIds && userInputIds.length > 0 ? userInputIds.map(function (input) { return document.getElementById(input).value; }) : []; return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_CommonForm["default"], { label: (0, _I18n.translate)('Password'), touched: true, error: !passwordPresent && error, required: required }, /*#__PURE__*/_react["default"].createElement(_reactPasswordStrength["default"], { changeCallback: function changeCallback(_ref2) { var password = _ref2.password; return updatePassword(password); }, minLength: 6, minScore: 2, userInputs: userInputs, tooShortWord: (0, _I18n.translate)('Too short'), scoreWords: [(0, _I18n.translate)('Weak'), (0, _I18n.translate)('Medium'), (0, _I18n.translate)('Normal'), (0, _I18n.translate)('Strong'), (0, _I18n.translate)('Very strong')], inputProps: { name: name, id: id, className: className, autoComplete: 'new-password' } })), verify && /*#__PURE__*/_react["default"].createElement(_CommonForm["default"], { label: (0, _I18n.translate)('Verify'), touched: true, required: required, error: doesPasswordsMatch ? verify.error : (0, _I18n.translate)('Passwords do not match') }, /*#__PURE__*/_react["default"].createElement("input", { id: "password_confirmation", name: verify.name, type: "password", onChange: function onChange(_ref3) { var target = _ref3.target; return updatePasswordConfirmation(target.value); }, className: "form-control" }))); }; PasswordStrength.propTypes = { updatePassword: _propTypes["default"].func, updatePasswordConfirmation: _propTypes["default"].func, doesPasswordsMatch: _propTypes["default"].bool, passwordPresent: _propTypes["default"].bool, data: _propTypes["default"].shape({ className: _propTypes["default"].string, id: _propTypes["default"].string, name: _propTypes["default"].string, error: _propTypes["default"].node, userInputIds: _propTypes["default"].arrayOf(_propTypes["default"].string), required: _propTypes["default"].bool, verify: _propTypes["default"].shape({ name: _propTypes["default"].string.isRequired, error: _propTypes["default"].node }) }).isRequired }; PasswordStrength.defaultProps = { updatePassword: _helpers.noop, updatePasswordConfirmation: _helpers.noop, doesPasswordsMatch: false, passwordPresent: false }; var _default = PasswordStrength; exports["default"] = _default; /***/ }), /* 252 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_PASSWORD_STRENGTH__; /***/ }), /* 253 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 254 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _BreadcrumbBarConstants = __webpack_require__(113); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({ resourceSwitcherItems: [], isLoadingResources: false, isSwitcherOpen: false, resourceUrl: null, requestError: null, currentPage: null, searchQuery: '', pages: null, titleReplacement: null }); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; var payload = action.payload; switch (action.type) { case _BreadcrumbBarConstants.BREADCRUMB_BAR_CLEAR_SEARCH: return state.set('searchQuery', ''); case _BreadcrumbBarConstants.BREADCRUMB_BAR_UPDATE_TITLE: return state.set('titleReplacement', payload); case _BreadcrumbBarConstants.BREADCRUMB_BAR_RESOURCES_REQUEST: return state.set('resourceSwitcherItems', []).set('resourceUrl', payload.resourceUrl).set('requestError', null).set('isLoadingResources', true).set('searchQuery', payload.options.searchQuery); case _BreadcrumbBarConstants.BREADCRUMB_BAR_RESOURCES_SUCCESS: return state.set('resourceSwitcherItems', payload.items).set('resourceUrl', payload.resourceUrl).set('currentPage', payload.page).set('pages', payload.pages).set('requestError', null).set('isLoadingResources', false); case _BreadcrumbBarConstants.BREADCRUMB_BAR_RESOURCES_FAILURE: return state.set('resourceSwitcherItems', []).set('requestError', payload.error).set('resourceUrl', payload.resourceUrl).set('isLoadingResources', false); case _BreadcrumbBarConstants.BREADCRUMB_BAR_TOGGLE_SWITCHER: return state.set('isSwitcherOpen', !state.isSwitcherOpen); case _BreadcrumbBarConstants.BREADCRUMB_BAR_CLOSE_SWITCHER: return state.set('isSwitcherOpen', false); default: return state; } }; exports["default"] = _default; /***/ }), /* 255 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectTotalPages = exports.selectTitleReplacement = exports.selectSearchQuery = exports.selectResourceUrl = exports.selectResourceSwitcherItems = exports.selectRemoveSearchQuery = exports.selectIsSwitcherOpen = exports.selectIsLoadingResources = exports.selectHasError = exports.selectCurrentPage = exports.selectBreadcrumbBar = void 0; var selectBreadcrumbBar = function selectBreadcrumbBar(state) { return state.breadcrumbBar; }; exports.selectBreadcrumbBar = selectBreadcrumbBar; var selectResourceSwitcherItems = function selectResourceSwitcherItems(state) { return selectBreadcrumbBar(state).resourceSwitcherItems; }; exports.selectResourceSwitcherItems = selectResourceSwitcherItems; var selectResourceUrl = function selectResourceUrl(state) { return selectBreadcrumbBar(state).resourceUrl; }; exports.selectResourceUrl = selectResourceUrl; var selectIsSwitcherOpen = function selectIsSwitcherOpen(state) { return selectBreadcrumbBar(state).isSwitcherOpen; }; exports.selectIsSwitcherOpen = selectIsSwitcherOpen; var selectIsLoadingResources = function selectIsLoadingResources(state) { return selectBreadcrumbBar(state).isLoadingResources; }; exports.selectIsLoadingResources = selectIsLoadingResources; var selectHasError = function selectHasError(state) { return selectBreadcrumbBar(state).requestError != null; }; exports.selectHasError = selectHasError; var selectCurrentPage = function selectCurrentPage(state) { return selectBreadcrumbBar(state).currentPage; }; exports.selectCurrentPage = selectCurrentPage; var selectTotalPages = function selectTotalPages(state) { return selectBreadcrumbBar(state).pages; }; exports.selectTotalPages = selectTotalPages; var selectSearchQuery = function selectSearchQuery(state) { return selectBreadcrumbBar(state).searchQuery; }; exports.selectSearchQuery = selectSearchQuery; var selectRemoveSearchQuery = function selectRemoveSearchQuery(state) { return selectBreadcrumbBar(state).removeSearchQuery; }; exports.selectRemoveSearchQuery = selectRemoveSearchQuery; var selectTitleReplacement = function selectTitleReplacement(state) { return selectBreadcrumbBar(state).titleReplacement; }; exports.selectTitleReplacement = selectTitleReplacement; /***/ }), /* 256 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _Breadcrumb = _interopRequireDefault(__webpack_require__(257)); __webpack_require__(259); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var BreadcrumbBar = /*#__PURE__*/function (_React$Component) { _inherits(BreadcrumbBar, _React$Component); var _super = _createSuper(BreadcrumbBar); function BreadcrumbBar() { _classCallCheck(this, BreadcrumbBar); return _super.apply(this, arguments); } _createClass(BreadcrumbBar, [{ key: "handleOpen", value: function handleOpen() { var _resource$switcherIte; var _this$props = this.props, resource = _this$props.resource, loadSwitcherResourcesByResource = _this$props.loadSwitcherResourcesByResource, currentPage = _this$props.currentPage, resourceUrl = _this$props.resourceUrl, resourceSwitcherItems = _this$props.resourceSwitcherItems; var isUrlFormatValid = resourceSwitcherItems.length ? resourceSwitcherItems[0].url === ((_resource$switcherIte = resource.switcherItemUrl) === null || _resource$switcherIte === void 0 ? void 0 : _resource$switcherIte.replace(':id', resourceSwitcherItems[0].id)) : true; if (!currentPage || resourceUrl !== resource.resourceUrl || !isUrlFormatValid) { loadSwitcherResourcesByResource(resource); } } }, { key: "render", value: function render() { var _this = this; var _this$props2 = this.props, breadcrumbItems = _this$props2.breadcrumbItems, isSwitchable = _this$props2.isSwitchable, resource = _this$props2.resource, currentPage = _this$props2.currentPage, totalPages = _this$props2.totalPages, resourceSwitcherItems = _this$props2.resourceSwitcherItems, isLoadingResources = _this$props2.isLoadingResources, hasError = _this$props2.hasError, isSwitcherOpen = _this$props2.isSwitcherOpen, toggleSwitcher = _this$props2.toggleSwitcher, closeSwitcher = _this$props2.closeSwitcher, loadSwitcherResourcesByResource = _this$props2.loadSwitcherResourcesByResource, searchQuery = _this$props2.searchQuery, removeSearchQuery = _this$props2.removeSearchQuery, searchDebounceTimeout = _this$props2.searchDebounceTimeout, onSwitcherItemClick = _this$props2.onSwitcherItemClick, titleReplacement = _this$props2.titleReplacement; var isTitle = breadcrumbItems.length === 1; var options = function options(_ref) { var pageIncrement = _ref.pageIncrement; return { searchQuery: searchQuery, page: Number(currentPage) + pageIncrement }; }; var handleSwitcherItemClick = function handleSwitcherItemClick(e, href) { closeSwitcher(); onSwitcherItemClick(e, href); }; return /*#__PURE__*/_react["default"].createElement("div", { className: "breadcrumb-bar" }, /*#__PURE__*/_react["default"].createElement(_Breadcrumb["default"], { items: breadcrumbItems, isTitle: isTitle, titleReplacement: titleReplacement, className: "breadcrumbs-list" }, isSwitchable && /*#__PURE__*/_react["default"].createElement(_patternflyReact.BreadcrumbSwitcher, { open: isSwitcherOpen, isLoading: isLoadingResources, hasError: hasError, resources: resourceSwitcherItems, currentPage: currentPage, totalPages: totalPages, onTogglerClick: function onTogglerClick() { return toggleSwitcher(); }, onHide: function onHide() { return closeSwitcher(); }, onOpen: function onOpen() { return _this.handleOpen(); }, onSearchChange: function onSearchChange(event) { return loadSwitcherResourcesByResource(resource, { searchQuery: event.target.value }); }, onNextPageClick: function onNextPageClick() { return loadSwitcherResourcesByResource(resource, options({ pageIncrement: 1 })); }, onPrevPageClick: function onPrevPageClick() { return loadSwitcherResourcesByResource(resource, options({ pageIncrement: -1 })); }, searchValue: searchQuery, onSearchClear: function onSearchClear() { return removeSearchQuery(resource); }, searchDebounceTimeout: searchDebounceTimeout, onResourceClick: handleSwitcherItemClick })), !isTitle && /*#__PURE__*/_react["default"].createElement("hr", { className: "breadcrumb-line" })); } }]); return BreadcrumbBar; }(_react["default"].Component); BreadcrumbBar.propTypes = { isSwitchable: _propTypes["default"].bool, resource: _propTypes["default"].shape({ nameField: _propTypes["default"].string, resourceUrl: _propTypes["default"].string, switcherItemUrl: _propTypes["default"].string, resourceFilter: _propTypes["default"].string }), breadcrumbItems: _Breadcrumb["default"].propTypes.items, searchDebounceTimeout: _propTypes["default"].number, searchQuery: _propTypes["default"].string, currentPage: _propTypes["default"].number, totalPages: _propTypes["default"].number, resourceSwitcherItems: _patternflyReact.BreadcrumbSwitcher.propTypes.resources, resourceUrl: _propTypes["default"].string, isLoadingResources: _propTypes["default"].bool, hasError: _propTypes["default"].bool, isSwitcherOpen: _propTypes["default"].bool, titleReplacement: _propTypes["default"].string, toggleSwitcher: _propTypes["default"].func, closeSwitcher: _propTypes["default"].func, loadSwitcherResourcesByResource: _propTypes["default"].func, onSwitcherItemClick: _propTypes["default"].func, removeSearchQuery: _propTypes["default"].func }; BreadcrumbBar.defaultProps = { isSwitchable: false, resource: {}, breadcrumbItems: [], searchQuery: '', currentPage: null, totalPages: 1, resourceSwitcherItems: [], resourceUrl: null, isLoadingResources: false, hasError: false, isSwitcherOpen: false, searchDebounceTimeout: 300, titleReplacement: null, toggleSwitcher: _helpers.noop, closeSwitcher: _helpers.noop, loadSwitcherResourcesByResource: _helpers.noop, onSwitcherItemClick: _helpers.noop, removeSearchQuery: _helpers.noop }; var _default = BreadcrumbBar; exports["default"] = _default; /***/ }), /* 257 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _reactCore = __webpack_require__(6); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); __webpack_require__(258); var _excluded = ["items", "isTitle", "titleReplacement", "children"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var Breadcrumb = function Breadcrumb(_ref) { var items = _ref.items, isTitle = _ref.isTitle, titleReplacement = _ref.titleReplacement, children = _ref.children, props = _objectWithoutProperties(_ref, _excluded); if (isTitle) { return /*#__PURE__*/_react["default"].createElement("div", { className: "form-group" }, /*#__PURE__*/_react["default"].createElement("h1", null, items[0].caption)); } return /*#__PURE__*/_react["default"].createElement(_reactCore.Breadcrumb, props, items.map(function (item, index) { var active = index === items.length - 1; var caption = item.caption, url = item.url, onClick = item.onClick; var _ref2 = caption || {}, icon = _ref2.icon, text = _ref2.text; var overrideTitle = active && titleReplacement; var itemTitle = overrideTitle || text || caption || ''; if (!icon && !itemTitle) return null; var inner = active ? /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], { placement: "bottom" }, itemTitle) : itemTitle; return /*#__PURE__*/_react["default"].createElement(_reactCore.BreadcrumbItem, { key: index, isActive: active, onClick: onClick, to: url, className: (0, _classnames["default"])('breadcrumb-item', { active: active, 'breadcrumb-item-with-icon': icon && active }) }, icon && /*#__PURE__*/_react["default"].createElement("img", { src: icon.url, alt: icon.alt, title: icon.alt }), ' ', inner, active && children); })); }; Breadcrumb.propTypes = { children: _propTypes["default"].node, titleReplacement: _propTypes["default"].string, isTitle: _propTypes["default"].bool, items: _propTypes["default"].arrayOf(_propTypes["default"].shape({ caption: _propTypes["default"].oneOfType([_propTypes["default"].string.isRequired, _propTypes["default"].shape({ icon: _propTypes["default"].shape({ url: _propTypes["default"].string, alt: _propTypes["default"].string }), text: _propTypes["default"].string })]), url: _propTypes["default"].string })) }; Breadcrumb.defaultProps = { children: null, isTitle: false, items: [], titleReplacement: null }; var _default = Breadcrumb; exports["default"] = _default; /***/ }), /* 258 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 259 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 260 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _AutoCompleteConstants = __webpack_require__(49); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialAutocompleteState = { controller: null, error: null, isErrorVisible: false, results: [], searchQuery: '', status: null, trigger: null, url: undefined, disabled: false }; var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _seamlessImmutable["default"])({}); var action = arguments.length > 1 ? arguments[1] : undefined; var type = action.type, _action$payload = action.payload, _action$payload2 = _action$payload === void 0 ? {} : _action$payload, controller = _action$payload2.controller, error = _action$payload2.error, results = _action$payload2.results, searchQuery = _action$payload2.searchQuery, status = _action$payload2.status, trigger = _action$payload2.trigger, isErrorVisible = _action$payload2.isErrorVisible, id = _action$payload2.id, disabled = _action$payload2.disabled, url = _action$payload2.url; switch (type) { case _AutoCompleteConstants.AUTO_COMPLETE_INIT: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { controller: controller, error: error, isErrorVisible: isErrorVisible, results: results, searchQuery: searchQuery, status: status, trigger: trigger, disabled: disabled, url: url })); case _AutoCompleteConstants.AUTO_COMPLETE_REQUEST: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { controller: controller, error: error, searchQuery: searchQuery, status: status, trigger: trigger, url: url })); case _AutoCompleteConstants.AUTO_COMPLETE_SUCCESS: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { results: results, status: status })); case _AutoCompleteConstants.AUTO_COMPLETE_FAILURE: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { error: error, isErrorVisible: isErrorVisible, results: results, status: status })); case _AutoCompleteConstants.AUTO_COMPLETE_RESET: return state.setIn([id], _objectSpread(_objectSpread({}, initialAutocompleteState), {}, { trigger: _AutoCompleteConstants.TRIGGERS.RESET })); case _AutoCompleteConstants.AUTO_COMPLETE_DISABLED_CHANGE: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { disabled: disabled })); case _AutoCompleteConstants.AUTO_COMPLETE_CONTROLLER_CHANGE: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { controller: controller, url: url, trigger: trigger })); default: return state; } }; exports["default"] = _default; /***/ }), /* 261 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _helpers = __webpack_require__(3); var _AutoCompleteMenu = _interopRequireDefault(__webpack_require__(262)); var _AutoCompleteError = _interopRequireDefault(__webpack_require__(264)); var _AutoCompleteAux = _interopRequireDefault(__webpack_require__(265)); var _AutoCompleteFocusShortcut = _interopRequireDefault(__webpack_require__(267)); var _constants = __webpack_require__(7); var _AutoCompleteConstants = __webpack_require__(49); var _keyCodes = __webpack_require__(268); var _I18n = __webpack_require__(2); __webpack_require__(269); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var AutoComplete = /*#__PURE__*/function (_React$Component) { _inherits(AutoComplete, _React$Component); var _super = _createSuper(AutoComplete); function AutoComplete(props) { var _this; _classCallCheck(this, AutoComplete); _this = _super.call(this, props); (0, _helpers.bindMethods)(_assertThisInitialized(_this), ['handleClear', 'handleInputChange', 'handleResultsChange', 'handleInputFocus', 'getResults', 'windowKeyPressHandler', 'handleKeyDown']); _this._typeahead = /*#__PURE__*/_react["default"].createRef(); (0, _helpers.debounceMethods)(_assertThisInitialized(_this), 500, ['handleLoading']); return _this; } _createClass(AutoComplete, [{ key: "componentDidMount", value: function componentDidMount() { window.addEventListener('keypress', this.windowKeyPressHandler); var _this$props = this.props, controller = _this$props.controller, searchQuery = _this$props.searchQuery, disabled = _this$props.disabled, error = _this$props.error, id = _this$props.id, url = _this$props.url, initialUpdate = _this$props.initialUpdate; initialUpdate({ searchQuery: searchQuery, controller: controller, id: id, disabled: disabled, error: error, url: url }); } }, { key: "componentDidUpdate", value: function componentDidUpdate(prevProps) { this.handleLoading(); var _this$props2 = this.props, searchQuery = _this$props2.searchQuery, trigger = _this$props2.trigger; var RESET = _AutoCompleteConstants.TRIGGERS.RESET, CONTROLLER_CHANGED = _AutoCompleteConstants.TRIGGERS.CONTROLLER_CHANGED; if (trigger === RESET || trigger === CONTROLLER_CHANGED) { this.handleClear(); } if (prevProps.searchQuery !== searchQuery) { var typeahead = this._typeahead && this._typeahead.current; typeahead && typeahead.setState({ text: searchQuery }); } } }, { key: "windowKeyPressHandler", value: function windowKeyPressHandler(e) { var _this$props3 = this.props, useKeyShortcuts = _this$props3.useKeyShortcuts, handleSearch = _this$props3.handleSearch; var instance = this._typeahead.current.getInstance(); var ENTER = _keyCodes.KEYCODES.ENTER, FWD_SLASH = _keyCodes.KEYCODES.FWD_SLASH, BACK_SLASH = _keyCodes.KEYCODES.BACK_SLASH; var tagName = e.target.tagName; var didEventCameFromInput = tagName === 'INPUT' || tagName === 'TEXTAREA'; /** Disable this functionality if the event came from an input, or if the 'useKeyShortcuts' is falsy. */ if (didEventCameFromInput || !useKeyShortcuts) { return; } switch (e.charCode) { case ENTER: { handleSearch(); break; } case FWD_SLASH: case BACK_SLASH: { var focus = instance.focus, showMenu = instance.state.showMenu; var isMenuHidden = !showMenu; if (isMenuHidden) { e.preventDefault(); focus(); } break; } default: { break; } } } }, { key: "getResults", value: function getResults(searchQuery, trigger, id) { var _this$props4 = this.props, getResults = _this$props4.getResults, controller = _this$props4.controller, url = _this$props4.url; getResults({ url: url, searchQuery: searchQuery, controller: controller, trigger: trigger, id: id }); } }, { key: "handleInputFocus", value: function handleInputFocus(_ref) { var value = _ref.target.value; var _this$props5 = this.props, id = _this$props5.id, results = _this$props5.results; if (results.length === 0) { this.getResults(value, _AutoCompleteConstants.TRIGGERS.INPUT_FOCUS, id); } } }, { key: "handleInputChange", value: function handleInputChange(searchQuery) { var id = this.props.id; this.getResults(searchQuery, _AutoCompleteConstants.TRIGGERS.INPUT_CHANGE, id); } // Gets the first result from an array of selected results. }, { key: "handleResultsChange", value: function handleResultsChange(_ref2) { var result = _ref2[0]; var id = this.props.id; if (!result) { return; } this.getResults(result, _AutoCompleteConstants.TRIGGERS.ITEM_SELECT, id); /** * HACK: I had no choice but to call to an inner function, * due to lack of design in react-bootstrap-typeahead. */ this._typeahead.current.getInstance()._showMenu(); } }, { key: "handleKeyDown", value: function handleKeyDown(_ref3) { var keyCode = _ref3.keyCode; var instance = this._typeahead.current.getInstance(); switch (keyCode) { case _keyCodes.KEYCODES.ENTER: { if (!instance.state.activeItem) { this.props.handleSearch(); } break; } case _keyCodes.KEYCODES.ESC: { instance.blur(); break; } default: { break; } } } }, { key: "handleClear", value: function handleClear() { var id = this.props.id; this._typeahead.current.getInstance().clear(); this.getResults('', _AutoCompleteConstants.TRIGGERS.INPUT_CLEAR, id); } }, { key: "handleLoading", value: function handleLoading() { var status = this.props.status; var typeahead = this._typeahead && this._typeahead.current; var isLoading = status === _constants.STATUS.PENDING; typeahead && typeahead.setState({ isLoading: isLoading }); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { window.removeEventListener('keypress', this.windowKeyPressHandler); var _this$props6 = this.props, resetData = _this$props6.resetData, controller = _this$props6.controller, id = _this$props6.id; resetData(controller, id); } }, { key: "render", value: function render() { var _this$props7 = this.props, id = _this$props7.id, error = _this$props7.error, name = _this$props7.name, value = _this$props7.value, searchQuery = _this$props7.searchQuery, inputProps = _this$props7.inputProps, placeholder = _this$props7.placeholder, results = _this$props7.results, useKeyShortcuts = _this$props7.useKeyShortcuts, disabled = _this$props7.disabled; /** Using a 3rd party library (react-bootstrap-typeahead) that expects a mutable array. */ var options = _seamlessImmutable["default"].isImmutable(results) ? results.asMutable() : results; return /*#__PURE__*/_react["default"].createElement("div", { className: "foreman-autocomplete" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.TypeAheadSelect, { id: id, ref: this._typeahead, defaultInputValue: value || searchQuery, options: options, onInputChange: this.handleInputChange, onChange: this.handleResultsChange, onFocus: this.handleInputFocus, onKeyDown: this.handleKeyDown, placeholder: placeholder, disabled: disabled, renderMenu: function renderMenu(r, menuProps) { return /*#__PURE__*/_react["default"].createElement(_AutoCompleteMenu["default"], { results: r, menuProps: menuProps }); }, inputProps: _objectSpread({ className: (0, _classnames["default"])('search-input', useKeyShortcuts ? 'use-shortcuts' : ''), spellCheck: 'false', 'data-autocomplete-id': id, autoComplete: 'off', name: name }, inputProps) }), searchQuery && /*#__PURE__*/_react["default"].createElement(_AutoCompleteAux["default"], { onClear: this.handleClear }), /*#__PURE__*/_react["default"].createElement(_AutoCompleteFocusShortcut["default"], { useKeyShortcuts: useKeyShortcuts }), /*#__PURE__*/_react["default"].createElement(_AutoCompleteError["default"], { error: error })); } }]); return AutoComplete; }(_react["default"].Component); AutoComplete.propTypes = { id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired, url: _propTypes["default"].string.isRequired, name: _propTypes["default"].string, value: _propTypes["default"].string, results: _propTypes["default"].array, searchQuery: _propTypes["default"].string, inputProps: _propTypes["default"].object, status: _propTypes["default"].string, error: _propTypes["default"].string, initialError: _propTypes["default"].string, controller: _propTypes["default"].string, handleSearch: _propTypes["default"].func, getResults: _propTypes["default"].func, resetData: _propTypes["default"].func, initialUpdate: _propTypes["default"].func, useKeyShortcuts: _propTypes["default"].bool, placeholder: _propTypes["default"].string, disabled: _propTypes["default"].bool, trigger: _propTypes["default"].string }; AutoComplete.defaultProps = { name: null, value: null, results: [], searchQuery: '', inputProps: {}, status: null, error: null, initialError: null, controller: null, handleSearch: _helpers.noop, getResults: _helpers.noop, resetData: _helpers.noop, initialUpdate: _helpers.noop, useKeyShortcuts: false, placeholder: (0, _I18n.translate)('Search'), disabled: false, trigger: null }; AutoComplete.Error = _AutoCompleteError["default"]; var _default = AutoComplete; exports["default"] = _default; /***/ }), /* 262 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _lodash = __webpack_require__(10); var _patternflyReact = __webpack_require__(4); var _SubstringWrapper = _interopRequireDefault(__webpack_require__(263)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var Menu = _patternflyReact.TypeAheadSelect.Menu, MenuItem = _patternflyReact.TypeAheadSelect.MenuItem; var Divider = Menu.Divider, Header = Menu.Header; var AutoCompleteMenu = function AutoCompleteMenu(_ref) { var results = _ref.results, menuProps = _ref.menuProps; if (results && results.length === 0) { return null; } var itemIndex = 0; var grouped = (0, _lodash.groupBy)(results, function (r) { return r.category; }); var getMenuItemsByCategory = function getMenuItemsByCategory(category) { return grouped[category].map(function (result) { var item = /*#__PURE__*/_react["default"].createElement(MenuItem, { key: itemIndex, option: result.label, position: itemIndex }, /*#__PURE__*/_react["default"].createElement(_SubstringWrapper["default"], { substring: menuProps.text }, result.label)); itemIndex += 1; return item; }); }; var items = Object.keys(grouped).sort().map(function (category) { return /*#__PURE__*/_react["default"].createElement(_react.Fragment, { key: "".concat(category, "-fragment") }, !!itemIndex && /*#__PURE__*/_react["default"].createElement(Divider, { key: "".concat(category, "-divider") }), /*#__PURE__*/_react["default"].createElement(Header, { key: "".concat(category, "-header") }, category), getMenuItemsByCategory(category)); }); return /*#__PURE__*/_react["default"].createElement(Menu, menuProps, items); }; AutoCompleteMenu.propTypes = { results: _propTypes["default"].array, menuProps: _propTypes["default"].object }; AutoCompleteMenu.defaultProps = { results: [], menuProps: {} }; var _default = AutoCompleteMenu; exports["default"] = _default; /***/ }), /* 263 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SubstringWrapper = function SubstringWrapper(_ref) { var children = _ref.children, substring = _ref.substring, Element = _ref.Element; var regexString = function regexString() { try { return new RegExp("(".concat(substring, ")"), 'gi'); } catch (e) { return substring; } }; var spilttedText = function spilttedText() { var parts = children.split(regexString()); var wrappedText = []; for (var i = 0; i < parts.length; i += 2) { wrappedText[i] = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, { key: "".concat(i, "-fragment") }, parts[i], parts[i + 1] && /*#__PURE__*/_react["default"].createElement(Element, { key: i }, parts[i + 1])); } return wrappedText; }; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, spilttedText()); }; SubstringWrapper.propTypes = { children: _propTypes["default"].string.isRequired, substring: _propTypes["default"].string.isRequired, Element: _propTypes["default"].node }; SubstringWrapper.defaultProps = { Element: 'b' }; var _default = SubstringWrapper; exports["default"] = _default; /***/ }), /* 264 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var AutoCompleteError = function AutoCompleteError(_ref) { var error = _ref.error; return /*#__PURE__*/_react["default"].createElement("div", { className: "autocomplete-error" }, error); }; AutoCompleteError.propTypes = { error: _propTypes["default"].string }; AutoCompleteError.defaultProps = { error: null }; var _default = AutoCompleteError; exports["default"] = _default; /***/ }), /* 265 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _AutoCompleteClearButton = _interopRequireDefault(__webpack_require__(266)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var AutoCompleteAux = function AutoCompleteAux(_ref) { var props = _extends({}, (_objectDestructuringEmpty(_ref), _ref)); return /*#__PURE__*/_react["default"].createElement("div", { className: "autocomplete-aux" }, /*#__PURE__*/_react["default"].createElement(_AutoCompleteClearButton["default"], props)); }; AutoCompleteAux.propTypes = _objectSpread({}, _AutoCompleteClearButton["default"].propTypes); AutoCompleteAux.defaultProps = _objectSpread({}, _AutoCompleteClearButton["default"].defaultProps); var _default = AutoCompleteAux; exports["default"] = _default; /***/ }), /* 266 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _v = _interopRequireDefault(__webpack_require__(16)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var AutoCompleteClearButton = function AutoCompleteClearButton(_ref) { var onClear = _ref.onClear; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: (0, _v["default"])() }, (0, _I18n.translate)('Clear')), placement: "top", trigger: ['hover', 'focus'] }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { name: "close", className: "autocomplete-clear-button", onClick: onClear })); }; AutoCompleteClearButton.propTypes = { onClear: _propTypes["default"].func }; AutoCompleteClearButton.defaultProps = { onClear: _helpers.noop }; var _default = AutoCompleteClearButton; exports["default"] = _default; /***/ }), /* 267 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _v = _interopRequireDefault(__webpack_require__(16)); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var AutoCompleteFocusShortcut = function AutoCompleteFocusShortcut(_ref) { var useKeyShortcuts = _ref.useKeyShortcuts; var tooltip = useKeyShortcuts && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: (0, _v["default"])() }, (0, _I18n.translate)("Press ' / ' to focus on search")); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { overlay: tooltip, placement: "top", trigger: ['hover', 'focus'] }, /*#__PURE__*/_react["default"].createElement("span", { className: (0, _classnames["default"])('autocomplete-focus-shortcut', !useKeyShortcuts ? 'hide' : '') }, "/")); }; AutoCompleteFocusShortcut.propTypes = { useKeyShortcuts: _propTypes["default"].bool }; AutoCompleteFocusShortcut.defaultProps = { useKeyShortcuts: false }; var _default = AutoCompleteFocusShortcut; exports["default"] = _default; /***/ }), /* 268 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.KEYCODES = void 0; var KEYCODES = { ENTER: 13, FWD_SLASH: 47, BACK_SLASH: 46, ESC: 27, TAB_KEY: 9 }; exports.KEYCODES = KEYCODES; var _default = KEYCODES; exports["default"] = _default; /***/ }), /* 269 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 270 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _LayoutConstants = __webpack_require__(115); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({ items: [], isLoading: false, isCollapsed: false, activeMenu: 'initialActive' }); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; var payload = action.payload, type = action.type; switch (type) { case _LayoutConstants.LAYOUT_INITIALIZE: return state.set('items', payload.items).set('activeMenu', payload.activeMenu).set('isCollapsed', payload.isCollapsed).set('currentOrganization', payload.organization).set('currentLocation', payload.location); case _LayoutConstants.LAYOUT_SHOW_LOADING: return state.set('isLoading', true); case _LayoutConstants.LAYOUT_HIDE_LOADING: return state.set('isLoading', false); case _LayoutConstants.LAYOUT_CHANGE_ACTIVE: return state.set('activeMenu', payload.activeMenu); case _LayoutConstants.LAYOUT_EXPAND: return state.set('isCollapsed', false); case _LayoutConstants.LAYOUT_COLLAPSE: return state.set('isCollapsed', true); default: return state; } }; exports["default"] = _default; /***/ }), /* 271 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getIsNavbarCollapsed = void 0; var _SessionStorage = __webpack_require__(98); var getIsNavbarCollapsed = function getIsNavbarCollapsed() { var _getValue; return !!((_getValue = (0, _SessionStorage.getValue)("[\"navCollapsed\",\"pinnedPath\"]")) !== null && _getValue !== void 0 && _getValue.navCollapsed); }; exports.getIsNavbarCollapsed = getIsNavbarCollapsed; /***/ }), /* 272 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _LayoutHelper = __webpack_require__(41); var _LayoutContainer = _interopRequireDefault(__webpack_require__(273)); var _HeaderToolbar = _interopRequireDefault(__webpack_require__(274)); __webpack_require__(290); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var Layout = function Layout(_ref) { var items = _ref.items, data = _ref.data, isLoading = _ref.isLoading, isCollapsed = _ref.isCollapsed, navigate = _ref.navigate, expandLayoutMenus = _ref.expandLayoutMenus, collapseLayoutMenus = _ref.collapseLayoutMenus, changeActiveMenu = _ref.changeActiveMenu, activeMenu = _ref.activeMenu, children = _ref.children; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.VerticalNav, { hoverDelay: 100, items: items, onItemClick: function onItemClick(primary) { return (0, _LayoutHelper.handleMenuClick)(primary, activeMenu, changeActiveMenu); }, onNavigate: function onNavigate(_ref2) { var href = _ref2.href; return navigate(href); }, activePath: "/".concat((0, _I18n.translate)(activeMenu || 'active'), "/"), onCollapse: collapseLayoutMenus, onExpand: expandLayoutMenus }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.VerticalNav.Masthead, null, /*#__PURE__*/_react["default"].createElement("header", { className: "pf-c-page__header pf-c-page", id: "navbar-header" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.VerticalNav.Brand, { title: data.brand, iconImg: data.logo, href: data.root }), /*#__PURE__*/_react["default"].createElement(_HeaderToolbar["default"], _extends({}, data, { isLoading: isLoading, changeActiveMenu: changeActiveMenu }))))), /*#__PURE__*/_react["default"].createElement(_LayoutContainer["default"], { isCollapsed: isCollapsed }, children)); }; Layout.propTypes = _LayoutHelper.layoutPropTypes; Layout.defaultProps = _LayoutHelper.layoutDefaultProps; var _default = Layout; exports["default"] = _default; /***/ }), /* 273 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var LayoutContainer = function LayoutContainer(_ref) { var isCollapsed = _ref.isCollapsed, children = _ref.children; var classes = 'react-container container-fluid nav-pf-persistent-secondary'; (0, _react.useEffect)(function () { if (isCollapsed) document.body.classList.add('collapsed-nav');else document.body.classList.remove('collapsed-nav'); }, [isCollapsed]); return /*#__PURE__*/_react["default"].createElement("div", { className: classes }, children); }; LayoutContainer.propTypes = { isCollapsed: _propTypes["default"].bool.isRequired, children: _propTypes["default"].node }; LayoutContainer.defaultProps = { children: null }; var _default = LayoutContainer; exports["default"] = _default; /***/ }), /* 274 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactCore = __webpack_require__(6); var _TaxonomySwitcher = _interopRequireDefault(__webpack_require__(275)); var _UserDropdowns = _interopRequireDefault(__webpack_require__(278)); var _notifications = _interopRequireDefault(__webpack_require__(117)); var _ImpersonateIcon = _interopRequireDefault(__webpack_require__(284)); var _LayoutHelper = __webpack_require__(41); var _InstanceTitleViewer = _interopRequireDefault(__webpack_require__(288)); __webpack_require__(289); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var HeaderToolbar = function HeaderToolbar(_ref) { var locations = _ref.locations, orgs = _ref.orgs, notificationUrl = _ref.notification_url, user = _ref.user, stopImpersonationUrl = _ref.stop_impersonation_url, instanceTitle = _ref.instance_title, isLoading = _ref.isLoading, changeActiveMenu = _ref.changeActiveMenu; return /*#__PURE__*/_react["default"].createElement(_reactCore.PageHeaderTools, { id: "data-toolbar" }, /*#__PURE__*/_react["default"].createElement(_reactCore.PageHeaderToolsGroup, { className: "header-tool-item-hidden-lg" }, /*#__PURE__*/_react["default"].createElement(_TaxonomySwitcher["default"], { locations: locations.available_locations || [], organizations: orgs.available_organizations || [], isLoading: isLoading })), /*#__PURE__*/_react["default"].createElement(_reactCore.PageHeaderToolsGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.PageHeaderToolsItem, null, /*#__PURE__*/_react["default"].createElement(_InstanceTitleViewer["default"], { title: instanceTitle })), /*#__PURE__*/_react["default"].createElement(_reactCore.PageHeaderToolsItem, { className: "notifications_container" }, /*#__PURE__*/_react["default"].createElement(_notifications["default"], { data: { url: notificationUrl } })), user.impersonated_by && /*#__PURE__*/_react["default"].createElement(_reactCore.PageHeaderToolsItem, { className: "impersonation-item" }, /*#__PURE__*/_react["default"].createElement(_ImpersonateIcon["default"], { stopImpersonationUrl: stopImpersonationUrl })), /*#__PURE__*/_react["default"].createElement(_reactCore.PageHeaderToolsItem, { className: "header-tool-item-hidden-lg user-nav-item" }, /*#__PURE__*/_react["default"].createElement(_UserDropdowns["default"], { notificationUrl: notificationUrl, user: user, changeActiveMenu: changeActiveMenu })))); }; HeaderToolbar.propTypes = _objectSpread(_objectSpread({}, _LayoutHelper.dataPropType), {}, { isLoading: _LayoutHelper.layoutPropTypes.isLoading, changeActiveMenu: _LayoutHelper.layoutPropTypes.changeActiveMenu }); HeaderToolbar.defaultProps = { isLoading: _LayoutHelper.layoutDefaultProps.isLoading, changeActiveMenu: _LayoutHelper.layoutDefaultProps.changeActiveMenu }; var _default = HeaderToolbar; exports["default"] = _default; /***/ }), /* 275 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _ForemanContext = __webpack_require__(29); var _LayoutHelper = __webpack_require__(41); var _TaxonomyDropdown = _interopRequireDefault(__webpack_require__(276)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var TaxonomySwitcher = function TaxonomySwitcher(_ref) { var _useForemanLocation, _useForemanOrganizati; var organizations = _ref.organizations, locations = _ref.locations, isLoading = _ref.isLoading; var currentLocation = (_useForemanLocation = (0, _ForemanContext.useForemanLocation)()) === null || _useForemanLocation === void 0 ? void 0 : _useForemanLocation.title; var currentOrganization = (_useForemanOrganizati = (0, _ForemanContext.useForemanOrganization)()) === null || _useForemanOrganizati === void 0 ? void 0 : _useForemanOrganizati.title; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.ToolbarItem, null, /*#__PURE__*/_react["default"].createElement(_TaxonomyDropdown["default"], { taxonomyType: "organization", currentTaxonomy: currentOrganization, taxonomies: organizations })), /*#__PURE__*/_react["default"].createElement(_reactCore.ToolbarItem, null, /*#__PURE__*/_react["default"].createElement(_TaxonomyDropdown["default"], { taxonomyType: "location", currentTaxonomy: currentLocation, taxonomies: locations })), isLoading && /*#__PURE__*/_react["default"].createElement(_reactCore.Spinner, { size: "md" })); }; TaxonomySwitcher.propTypes = { isLoading: _propTypes["default"].bool, organizations: _propTypes["default"].arrayOf(_LayoutHelper.organizationPropType).isRequired, locations: _propTypes["default"].arrayOf(_LayoutHelper.locationPropType).isRequired }; TaxonomySwitcher.defaultProps = { isLoading: false }; var _default = TaxonomySwitcher; exports["default"] = _default; /***/ }), /* 276 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); __webpack_require__(277); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var TaxonomyDropdown = function TaxonomyDropdown(_ref) { var taxonomyType = _ref.taxonomyType, currentTaxonomy = _ref.currentTaxonomy, taxonomies = _ref.taxonomies; var id = "".concat(taxonomyType, "-dropdown"); var anyTaxonomyURL = (0, _helpers.foremanUrl)("/".concat(taxonomyType, "s/clear")); var manageTaxonomyURL = (0, _helpers.foremanUrl)("/".concat(taxonomyType, "s")); var anyTaxonomyText = taxonomyType === 'organization' ? (0, _I18n.translate)('Any Organization') : (0, _I18n.translate)('Any Location'); var _useState = (0, _react.useState)(''), _useState2 = _slicedToArray(_useState, 2), searchValue = _useState2[0], setSearchValue = _useState2[1]; var _useState3 = (0, _react.useState)(false), _useState4 = _slicedToArray(_useState3, 2), isOpen = _useState4[0], setIsOpen = _useState4[1]; var _useState5 = (0, _react.useState)(taxonomies), _useState6 = _slicedToArray(_useState5, 2), filteredItems = _useState6[0], setFilteredItems = _useState6[1]; var onSearchButtonClick = (0, _react.useCallback)(function () { var filtered = searchValue === '' ? taxonomies : taxonomies.filter(function (item) { return item.title.toLowerCase().includes(searchValue.toLowerCase()); }); setFilteredItems(filtered || []); }, [searchValue, taxonomies]); (0, _react.useEffect)(function () { onSearchButtonClick(); }, [searchValue, onSearchButtonClick]); var onToggle = function onToggle(event, newIsOpen) { setIsOpen(newIsOpen); }; var onSelect = function onSelect() { setIsOpen(!isOpen); }; var onSearchInputChange = function onSearchInputChange(value, event) { setSearchValue(event.target.value); }; var selectedIcon = /*#__PURE__*/_react["default"].createElement(_reactIcons.CheckIcon, { size: "sm", className: "current-taxonomy-v" }); var anyTaxonomyItem = /*#__PURE__*/_react["default"].createElement(_reactCore.ContextSelectorItem, { key: 0, className: "".concat(taxonomyType, "s_clear"), onClick: function onClick() { window.location.assign(anyTaxonomyURL); }, isDisabled: !currentTaxonomy }, !currentTaxonomy && selectedIcon, anyTaxonomyText); var footer = /*#__PURE__*/_react["default"].createElement(_reactCore.ContextSelectorFooter, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { isSmall: true, component: "a", className: taxonomyType, variant: "secondary", href: manageTaxonomyURL }, taxonomyType === 'organization' ? (0, _I18n.translate)('Manage Organizations') : (0, _I18n.translate)('Manage Locations'))); return /*#__PURE__*/_react["default"].createElement(_reactCore.ContextSelector, { id: id, toggleText: currentTaxonomy || anyTaxonomyText, onSearchInputChange: onSearchInputChange, isOpen: isOpen, searchInputValue: searchValue, onToggle: onToggle, onSelect: onSelect, onSearchButtonClick: onSearchButtonClick, screenReaderLabel: "Selected Taxonomy:", className: "context-selector", footer: footer }, anyTaxonomyItem, filteredItems.map(function (_ref2, i) { var title = _ref2.title, href = _ref2.href; return /*#__PURE__*/_react["default"].createElement(_reactCore.ContextSelectorItem, { key: i + 1, id: "select_taxonomy_".concat(title), className: "".concat(taxonomyType, "_menuitem"), onClick: function onClick() { if (href) { window.location.assign(href); } }, isDisabled: title === currentTaxonomy }, title === currentTaxonomy && selectedIcon, title); })); }; TaxonomyDropdown.propTypes = { taxonomyType: _propTypes["default"].oneOf(['organization', 'location']).isRequired, currentTaxonomy: _propTypes["default"].string, taxonomies: _propTypes["default"].arrayOf(_propTypes["default"].shape({ id: _propTypes["default"].number.isRequired, title: _propTypes["default"].string, href: _propTypes["default"].string.isRequired })).isRequired }; TaxonomyDropdown.defaultProps = { currentTaxonomy: undefined }; var _default = TaxonomyDropdown; exports["default"] = _default; /***/ }), /* 277 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 278 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _LayoutHelper = __webpack_require__(41); var _I18n = __webpack_require__(2); var _excluded = ["user", "changeActiveMenu", "notificationUrl", "instanceTitle"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var UserDropdowns = function UserDropdowns(_ref) { var user = _ref.user, changeActiveMenu = _ref.changeActiveMenu, notificationUrl = _ref.notificationUrl, instanceTitle = _ref.instanceTitle, props = _objectWithoutProperties(_ref, _excluded); var _useState = (0, _react.useState)(false), _useState2 = _slicedToArray(_useState, 2), userDropdownOpen = _useState2[0], setUserDropdownOpen = _useState2[1]; var onDropdownToggle = function onDropdownToggle(newUserDropdownOpen) { setUserDropdownOpen(newUserDropdownOpen); }; var onDropdownSelect = function onDropdownSelect() { setUserDropdownOpen(userDropdownOpen); }; var userInfo = user.current_user; var userDropdownItems = user.user_dropdown[0].children.map(function (item, i) { return item.type === 'divider' ? /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownSeparator, { key: i }) : /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, _extends({ key: i, className: "user_menuitem", href: item.url, onClick: function onClick() { changeActiveMenu({ title: 'User' }); } }, item.html_options), (0, _I18n.translate)(item.name)); }); return userInfo && /*#__PURE__*/_react["default"].createElement(_reactCore.Dropdown, _extends({ isPlain: true, position: "right", onSelect: onDropdownSelect, isOpen: userDropdownOpen, toggle: /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownToggle, { onToggle: onDropdownToggle }, /*#__PURE__*/_react["default"].createElement(_reactIcons.UserAltIcon, { className: "user-icon" }), userInfo.name), dropdownItems: userDropdownItems }, props)); }; UserDropdowns.propTypes = { /** Additional element css classes */ className: _propTypes["default"].string, /** User Data Array */ user: _LayoutHelper.userPropType, /** notification URL */ notificationUrl: _propTypes["default"].string, /** changeActiveMenu Func */ changeActiveMenu: _propTypes["default"].func, instanceTitle: _propTypes["default"].string }; UserDropdowns.defaultProps = { className: '', user: {}, notificationUrl: '', changeActiveMenu: null, instanceTitle: '' }; var _default = UserDropdowns; exports["default"] = _default; /***/ }), /* 279 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_ONCLICKOUTSIDE__; /***/ }), /* 280 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.toggleDrawer = exports.stopNotificationsPolling = exports.startNotificationsPolling = exports.markGroupAsRead = exports.markAsRead = exports.expandGroup = exports.clickedLink = exports.clearNotification = exports.clearGroup = void 0; var _consts = __webpack_require__(50); var sessionStorage = _interopRequireWildcard(__webpack_require__(106)); var _API = __webpack_require__(8); var _foreman_navigation = __webpack_require__(26); var _IntervalMiddleware = __webpack_require__(32); var _constants = __webpack_require__(281); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var interval = undefined || _constants.DEFAULT_INTERVAL; var handleNotificationPollingError = function handleNotificationPollingError(error, stopNotificationPolling) { var _error$response; if (((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 401) { stopNotificationPolling(); (0, _foreman_navigation.reloadPage)(); } }; var startNotificationsPolling = function startNotificationsPolling(url) { return (0, _IntervalMiddleware.withInterval)((0, _API.get)({ key: _consts.NOTIFICATIONS, url: url, handleError: handleNotificationPollingError }), interval); }; exports.startNotificationsPolling = startNotificationsPolling; var stopNotificationsPolling = function stopNotificationsPolling() { return (0, _IntervalMiddleware.stopInterval)(_consts.NOTIFICATIONS); }; exports.stopNotificationsPolling = stopNotificationsPolling; var markAsRead = function markAsRead(group, id) { return function (dispatch) { dispatch({ type: _consts.NOTIFICATIONS_MARK_AS_READ, payload: { group: group, id: id } }); var url = "/notification_recipients/".concat(id); var data = { seen: true }; _API.API.put(url, data); }; }; exports.markAsRead = markAsRead; var markGroupAsRead = function markGroupAsRead(group) { return function (dispatch) { dispatch({ type: _consts.NOTIFICATIONS_MARK_GROUP_AS_READ, payload: { group: group } }); var url = "/notification_recipients/group/".concat(group); _API.API.put(url); }; }; exports.markGroupAsRead = markGroupAsRead; var clearNotification = function clearNotification(group, id) { return function (dispatch) { dispatch({ type: _consts.NOTIFICATIONS_MARK_AS_CLEAR, payload: { group: group, id: id } }); var url = "/notification_recipients/".concat(id); _API.API["delete"](url); }; }; exports.clearNotification = clearNotification; var clearGroup = function clearGroup(group) { return function (dispatch) { dispatch({ type: _consts.NOTIFICATIONS_MARK_GROUP_AS_CLEARED, payload: { group: group } }); var url = "/notification_recipients/group/".concat(group); _API.API["delete"](url); }; }; exports.clearGroup = clearGroup; var expandGroup = function expandGroup(group) { return function (dispatch, getState) { var currentExpanded = getState().notifications.expandedGroup; var getNewExpandedGroup = function getNewExpandedGroup() { return currentExpanded === group ? '' : group; }; sessionStorage.setExpandedGroup(getNewExpandedGroup()); dispatch({ type: _consts.NOTIFICATIONS_SET_EXPANDED_GROUP, payload: { group: getNewExpandedGroup() } }); }; }; exports.expandGroup = expandGroup; var toggleDrawer = function toggleDrawer() { return function (dispatch, getState) { var isDrawerOpened = getState().notifications.isDrawerOpen; sessionStorage.setIsOpened(!isDrawerOpened); dispatch({ type: _consts.NOTIFICATIONS_TOGGLE_DRAWER, payload: { value: !isDrawerOpened } }); }; }; exports.toggleDrawer = toggleDrawer; var clickedLink = function clickedLink(_ref) { var href = _ref.href, _ref$external = _ref.external, external = _ref$external === void 0 ? false : _ref$external; var toggleDrawerAction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : toggleDrawer; return function (dispatch) { dispatch(toggleDrawerAction()); var openedWindow = window.open(href, external ? '_blank' : '_self'); if (external) { openedWindow.opener = null; } dispatch({ type: _consts.NOTIFICATIONS_LINK_CLICKED, payload: { href: href, external: external } }); return openedWindow; }; }; exports.clickedLink = clickedLink; /***/ }), /* 281 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_INTERVAL = void 0; var DEFAULT_INTERVAL = 10000; exports.DEFAULT_INTERVAL = DEFAULT_INTERVAL; /***/ }), /* 282 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 283 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ToggleIcon = function ToggleIcon(_ref) { var hasUnreadMessages = _ref.hasUnreadMessages, onClick = _ref.onClick; var iconType = hasUnreadMessages ? 'fa-bell' : 'fa-bell-o'; var tooltip = /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: "tooltip" }, (0, _I18n.translate)('Notifications')); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { placement: "bottom", id: "notifications-toggle-icon", overlay: tooltip }, /*#__PURE__*/_react["default"].createElement("span", { onClick: onClick, className: "fa ".concat(iconType), "aria-describedby": "tooltip" })); }; ToggleIcon.propTypes = { hasUnreadMessages: _propTypes["default"].bool, onClick: _propTypes["default"].func }; ToggleIcon.defaultProps = { hasUnreadMessages: false, onClick: _helpers.noop }; var _default = ToggleIcon; exports["default"] = _default; /***/ }), /* 284 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _reactRedux = __webpack_require__(5); var _redux = __webpack_require__(12); var _ImpersonateIcon = _interopRequireDefault(__webpack_require__(285)); var ImpersonateIconActions = _interopRequireWildcard(__webpack_require__(287)); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(ImpersonateIconActions, dispatch); }; var _default = (0, _reactRedux.connect)(null, mapDispatchToProps)(_ImpersonateIcon["default"]); exports["default"] = _default; /***/ }), /* 285 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactIcons = __webpack_require__(11); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); __webpack_require__(286); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var ImpersonateIcon = function ImpersonateIcon(props) { var _useState = (0, _react.useState)(false), _useState2 = _slicedToArray(_useState, 2), showModal = _useState2[0], setShowModal = _useState2[1]; var toggleModal = function toggleModal() { return setShowModal(!showModal); }; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: "stop-impersonation" }, (0, _I18n.translate)('You are impersonating another user, click to stop the impersonation')), placement: "bottom", trigger: ['hover', 'focus'], rootClose: false }, /*#__PURE__*/_react["default"].createElement("span", { className: "nav-item-iconic", onClick: toggleModal }, /*#__PURE__*/_react["default"].createElement(_reactIcons.EyeIcon, { className: "blink-image" }))), /*#__PURE__*/_react["default"].createElement(_patternflyReact.MessageDialog, { show: showModal, onHide: toggleModal, primaryAction: function primaryAction() { return props.stopImpersonating(props.stopImpersonationUrl); }, secondaryAction: toggleModal, primaryActionButtonContent: (0, _I18n.translate)('Confirm'), secondaryActionButtonContent: (0, _I18n.translate)('Cancel'), title: (0, _I18n.translate)('Confirm Action'), primaryContent: (0, _I18n.translate)('You are about to stop impersonating other user. Are you sure?') })); }; ImpersonateIcon.propTypes = { stopImpersonationUrl: _propTypes["default"].string.isRequired, stopImpersonating: _propTypes["default"].func.isRequired }; var _default = ImpersonateIcon; exports["default"] = _default; /***/ }), /* 286 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 287 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.stopImpersonating = void 0; var _API = __webpack_require__(8); var _foreman_tools = __webpack_require__(18); var _ToastsList = __webpack_require__(28); function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var stopImpersonating = function stopImpersonating(url) { return /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dispatch) { var _yield$API$delete, data; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; _context.next = 3; return _API.API["delete"](url); case 3: _yield$API$delete = _context.sent; data = _yield$API$delete.data; window.location.href = (0, _foreman_tools.foremanUrl)('/users'); return _context.abrupt("return", dispatch((0, _ToastsList.addToast)({ type: data.type, message: data.message }))); case 9: _context.prev = 9; _context.t0 = _context["catch"](0); return _context.abrupt("return", dispatch((0, _ToastsList.addToast)({ type: 'error', message: 'Failed to stop impersonation' }))); case 12: case "end": return _context.stop(); } }, _callee, null, [[0, 9]]); })); return function (_x) { return _ref.apply(this, arguments); }; }(); }; exports.stopImpersonating = stopImpersonating; /***/ }), /* 288 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var InstanceTitleViewer = function InstanceTitleViewer(_ref) { var title = _ref.title; if (!title) { return null; } var tooltip = /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: "tooltip" }, title); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { placement: "bottom", id: "instance-toggle-icon", overlay: tooltip }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "server small" })); }; InstanceTitleViewer.propTypes = { /** Title to display */ title: _propTypes["default"].string }; InstanceTitleViewer.defaultProps = { title: '' }; var _default = InstanceTitleViewer; exports["default"] = _default; /***/ }), /* 289 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 290 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 291 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _DiffModalConstants = __webpack_require__(119); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({ isOpen: false, diff: '', title: '', diffViewType: 'split' }); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case _DiffModalConstants.DIFF_MODAL_TOGGLE: return state.set('isOpen', !state.isOpen); case _DiffModalConstants.DIFF_MODAL_VIEWTYPE: return state.set('diffViewType', action.payload.diffViewType); case _DiffModalConstants.DIFF_MODAL_CREATE: return state.merge(action.payload); default: return state; } }; exports["default"] = _default; /***/ }), /* 292 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); var _DiffView = _interopRequireDefault(__webpack_require__(53)); var _DiffRadioButtons = _interopRequireDefault(__webpack_require__(54)); __webpack_require__(296); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DiffModal = function DiffModal(_ref) { var title = _ref.title, oldText = _ref.oldText, newText = _ref.newText, diff = _ref.diff, isOpen = _ref.isOpen, toggleModal = _ref.toggleModal, diffViewType = _ref.diffViewType, changeViewType = _ref.changeViewType; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal, { show: isOpen, onHide: toggleModal, className: "diff-modal" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Header, null, /*#__PURE__*/_react["default"].createElement("h4", { id: "diff-modal-h4" }, title), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "close diff-modal-close", onClick: toggleModal, bsStyle: "link" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "pf", name: "close" })), /*#__PURE__*/_react["default"].createElement(_DiffRadioButtons["default"], { changeState: changeViewType, stateView: diffViewType })), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Body, { className: "diff-modal-body" }, /*#__PURE__*/_react["default"].createElement("div", { id: "diff-table" }, /*#__PURE__*/_react["default"].createElement(_DiffView["default"], { oldText: oldText, newText: newText, patch: diff, viewType: diffViewType })))); }; DiffModal.propTypes = { title: _propTypes["default"].string, diff: _propTypes["default"].string, oldText: _propTypes["default"].string, newText: _propTypes["default"].string, diffViewType: _propTypes["default"].oneOf(['split', 'unified']), isOpen: _propTypes["default"].bool, changeViewType: _propTypes["default"].func, toggleModal: _propTypes["default"].func }; DiffModal.defaultProps = { title: '', diff: '', oldText: '', newText: '', diffViewType: 'split', isOpen: false, changeViewType: _helpers.noop, toggleModal: _helpers.noop }; var _default = DiffModal; exports["default"] = _default; /***/ }), /* 293 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_DIFF_VIEW__; /***/ }), /* 294 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__UNIDIFF__; /***/ }), /* 295 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UNIFIED = exports.SPLIT = void 0; var SPLIT = 'split'; exports.SPLIT = SPLIT; var UNIFIED = 'unified'; exports.UNIFIED = UNIFIED; /***/ }), /* 296 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 297 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _EditorConstants = __webpack_require__(55); var _Immutable; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = (0, _seamlessImmutable["default"])((_Immutable = {}, _defineProperty(_Immutable, _EditorConstants.EDITOR_HOST_ARR, []), _defineProperty(_Immutable, _EditorConstants.EDITOR_HOST_FILTERED_ARR, []), _defineProperty(_Immutable, "diffViewType", 'split'), _defineProperty(_Immutable, "editorName", 'editor'), _defineProperty(_Immutable, "errorText", ''), _defineProperty(_Immutable, "isFetchingHosts", false), _defineProperty(_Immutable, "isLoading", false), _defineProperty(_Immutable, "isMasked", false), _defineProperty(_Immutable, "isMaximized", false), _defineProperty(_Immutable, "isRendering", false), _defineProperty(_Immutable, "isSearchingHosts", false), _defineProperty(_Immutable, "isSelectOpen", false), _defineProperty(_Immutable, "keyBinding", 'Default'), _defineProperty(_Immutable, "mode", 'Ruby'), _defineProperty(_Immutable, "previewResult", ''), _defineProperty(_Immutable, "renderedEditorValue", ''), _defineProperty(_Immutable, "readOnly", false), _defineProperty(_Immutable, "searchQuery", ''), _defineProperty(_Immutable, "selectedHost", { id: '', name: '' }), _defineProperty(_Immutable, "selectedView", 'input'), _defineProperty(_Immutable, "showError", false), _defineProperty(_Immutable, "templateClass", ''), _defineProperty(_Immutable, "theme", 'Monokai'), _defineProperty(_Immutable, "value", ''), _Immutable)); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; var payload = action.payload; switch (action.type) { case _EditorConstants.EDITOR_INITIALIZE: { return state.merge(payload); } case _EditorConstants.EDITOR_REVERT_CHANGES: { return state.merge(payload); } case _EditorConstants.EDITOR_IMPORT_FILE: { return state.set('value', payload.value); } case _EditorConstants.EDITOR_EXEC_PREVIEW: { return state.merge(payload); } case _EditorConstants.EDITOR_HOST_SELECT_CLEAR: { return state.set('searchQuery', '').set('isSearchingHosts', false); } case _EditorConstants.EDITOR_MODAL_TOGGLE: { return state.set('isMaximized', !state.isMaximized); } case _EditorConstants.EDITOR_CHANGE_DIFF_VIEW: { return state.set('diffViewType', payload); } case _EditorConstants.EDITOR_CHANGE_VALUE: { return state.set('value', payload); } case _EditorConstants.EDITOR_SHOW_ERROR: { return state.merge(payload); } case _EditorConstants.EDITOR_DISMISS_ERROR: { return state.merge(payload); } case _EditorConstants.EDITOR_CHANGE_TAB: { return state.set('selectedView', payload); } case _EditorConstants.EDITOR_CHANGE_SETTING: { return state.merge(payload); } case _EditorConstants.EDITOR_TOGGLE_MASK: { return state.set('isMasked', !state.isMasked); } case _EditorConstants.EDITOR_TOGGLE_RENDER_VIEW: { return state.set('isRendering', !state.isRendering); } case _EditorConstants.EDITOR_SHOW_LOADING: { return state.set('isLoading', true); } case _EditorConstants.EDITOR_HIDE_LOADING: { return state.set('isLoading', false); } case _EditorConstants.EDITOR_FETCH_HOST_PENDING: { return state.merge(payload); } case _EditorConstants.EDITOR_FETCH_HOST_RESOLVED: { return state.set('isFetchingHosts', false).merge(payload); } case _EditorConstants.EDITOR_HOST_INITIAL_FETCH: { return state.set('hosts', payload); } case _EditorConstants.EDITOR_HOST_SELECT_TOGGLE: { return state.set('isSelectOpen', !state.isSelectOpen).set('searchQuery', ''); } case _EditorConstants.EDITOR_HOST_SELECT_RESET: { return state.set('searchQuery', '').set('isFetchingHosts', false).set('isSearchingHosts', false); } default: return state; } }; exports["default"] = _default; /***/ }), /* 298 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _DiffView = _interopRequireDefault(__webpack_require__(53)); var _EditorView = _interopRequireDefault(__webpack_require__(123)); var _EditorNavbar = _interopRequireDefault(__webpack_require__(301)); var _EditorModal = _interopRequireDefault(__webpack_require__(310)); var _EditorConstants = __webpack_require__(55); __webpack_require__(311); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Editor = /*#__PURE__*/function (_React$Component) { _inherits(Editor, _React$Component); var _super = _createSuper(Editor); function Editor() { _classCallCheck(this, Editor); return _super.apply(this, arguments); } _createClass(Editor, [{ key: "componentDidMount", value: function componentDidMount() { var _this$props = this.props, _this$props$data = _this$props.data, hosts = _this$props$data.hosts, templateClass = _this$props$data.templateClass, locked = _this$props$data.locked, template = _this$props$data.template, type = _this$props$data.type, initializeEditor = _this$props.initializeEditor, isMasked = _this$props.isMasked, isRendering = _this$props.isRendering, readOnly = _this$props.readOnly, previewResult = _this$props.previewResult, selectedView = _this$props.selectedView, showError = _this$props.showError; var initializeData = { hosts: hosts, isMasked: isMasked, templateClass: templateClass, isRendering: isRendering, locked: locked, readOnly: readOnly, previewResult: previewResult, selectedView: selectedView, showError: showError, template: template, type: type }; initializeEditor(initializeData); } }, { key: "render", value: function render() { var _this$props2 = this.props, _this$props2$data = _this$props2.data, name = _this$props2$data.name, isSafemodeEnabled = _this$props2$data.isSafemodeEnabled, renderPath = _this$props2$data.renderPath, safemodeRenderPath = _this$props2$data.safemodeRenderPath, showHide = _this$props2$data.showHide, showImport = _this$props2$data.showImport, showPreview = _this$props2$data.showPreview, showHostSelector = _this$props2$data.showHostSelector, template = _this$props2$data.template, title = _this$props2$data.title, changeDiffViewType = _this$props2.changeDiffViewType, changeEditorValue = _this$props2.changeEditorValue, changeSetting = _this$props2.changeSetting, changeTab = _this$props2.changeTab, diffViewType = _this$props2.diffViewType, dismissErrorToast = _this$props2.dismissErrorToast, editorName = _this$props2.editorName, errorText = _this$props2.errorText, fetchAndPreview = _this$props2.fetchAndPreview, filteredHosts = _this$props2.filteredHosts, hosts = _this$props2.hosts, importFile = _this$props2.importFile, isFetchingHosts = _this$props2.isFetchingHosts, isLoading = _this$props2.isLoading, isMasked = _this$props2.isMasked, isMaximized = _this$props2.isMaximized, isRendering = _this$props2.isRendering, isSearchingHosts = _this$props2.isSearchingHosts, isSelectOpen = _this$props2.isSelectOpen, keyBinding = _this$props2.keyBinding, mode = _this$props2.mode, onHostSearch = _this$props2.onHostSearch, onHostSelectToggle = _this$props2.onHostSelectToggle, onSearchClear = _this$props2.onSearchClear, previewResult = _this$props2.previewResult, previewTemplate = _this$props2.previewTemplate, readOnly = _this$props2.readOnly, renderedEditorValue = _this$props2.renderedEditorValue, revertChanges = _this$props2.revertChanges, searchQuery = _this$props2.searchQuery, selectedHost = _this$props2.selectedHost, selectedView = _this$props2.selectedView, showError = _this$props2.showError, theme = _this$props2.theme, toggleMaskValue = _this$props2.toggleMaskValue, toggleModal = _this$props2.toggleModal, toggleRenderView = _this$props2.toggleRenderView, value = _this$props2.value; var editorViewProps = { value: isRendering ? previewResult : value, mode: isRendering ? 'Text' : mode, theme: theme, keyBinding: keyBinding, onChange: isRendering ? _helpers.noop : changeEditorValue, readOnly: readOnly || isRendering, isMasked: isMasked }; var editorNameTab = { input: "".concat(editorName, "Code"), preview: "".concat(editorName, "Preview") }; return /*#__PURE__*/_react["default"].createElement("div", { id: "editor-container" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.ToastNotification, { id: "preview_error_toast", type: "error", className: showError ? '' : 'hidden', onDismiss: function onDismiss() { return dismissErrorToast(); } }, errorText), /*#__PURE__*/_react["default"].createElement(_EditorNavbar["default"], { changeDiffViewType: changeDiffViewType, changeTab: changeTab, changeSetting: changeSetting, modes: _EditorConstants.EDITOR_MODES, themes: _EditorConstants.EDITOR_THEMES, keyBindings: _EditorConstants.EDITOR_KEYBINDINGS, mode: isRendering ? 'Text' : mode, theme: theme, keyBinding: keyBinding, value: value, renderedEditorValue: renderedEditorValue, diffViewType: diffViewType, template: template, selectedView: selectedView, isDiff: template ? value !== template : false, isMasked: isMasked, isRendering: isRendering, isLoading: isLoading, isFetchingHosts: isFetchingHosts, isSearchingHosts: isSearchingHosts, importFile: importFile, showImport: showImport, showPreview: showPreview, showHostSelector: showHostSelector, showHide: showHide, revertChanges: revertChanges, previewTemplate: previewTemplate, hosts: hosts, filteredHosts: filteredHosts, selectedHost: selectedHost, isSafemodeEnabled: isSafemodeEnabled, renderPath: renderPath, safemodeRenderPath: safemodeRenderPath, toggleMaskValue: toggleMaskValue, toggleRenderView: toggleRenderView, toggleModal: toggleModal, previewResult: previewResult, searchQuery: searchQuery, onHostSelectToggle: onHostSelectToggle, onHostSearch: onHostSearch, onSearchClear: onSearchClear, isSelectOpen: isSelectOpen, showError: showError, fetchAndPreview: fetchAndPreview }), /*#__PURE__*/_react["default"].createElement(_EditorView["default"], _extends({}, editorViewProps, { key: "editorPreview", name: editorNameTab.preview, isSelected: selectedView === 'preview', className: "ace_editor_form ace_preview" })), /*#__PURE__*/_react["default"].createElement(_EditorView["default"], _extends({}, editorViewProps, { key: "editorCode", name: editorNameTab.input, isSelected: selectedView === 'input', className: "ace_editor_form ace_input" })), /*#__PURE__*/_react["default"].createElement("div", { id: "diff-table", className: selectedView === 'diff' ? '' : 'hidden' }, /*#__PURE__*/_react["default"].createElement(_DiffView["default"], { oldText: template || '', newText: value, viewType: diffViewType })), /*#__PURE__*/_react["default"].createElement(_EditorModal["default"], { key: "editorModal", changeEditorValue: changeEditorValue, changeDiffViewType: changeDiffViewType, name: editorName, title: title, toggleModal: toggleModal, diffViewType: diffViewType, mode: mode, theme: theme, keyBinding: keyBinding, readOnly: readOnly, isMaximized: isMaximized, template: template || '', editorValue: value, previewValue: previewResult, selectedView: selectedView, isMasked: isMasked, isRendering: isRendering }), !readOnly && /*#__PURE__*/_react["default"].createElement("textarea", { className: "hidden", name: name, value: value, readOnly: true })); } }]); return Editor; }(_react["default"].Component); Editor.propTypes = { data: _propTypes["default"].shape({ showHide: _propTypes["default"].bool, showImport: _propTypes["default"].bool, showPreview: _propTypes["default"].bool, showHostSelector: _propTypes["default"].bool, template: _propTypes["default"].string, templateClass: _propTypes["default"].string, name: _propTypes["default"].string, title: _propTypes["default"].string, isSafemodeEnabled: _propTypes["default"].bool, renderPath: _propTypes["default"].string, safemodeRenderPath: _propTypes["default"].string, hosts: _propTypes["default"].array, locked: _propTypes["default"].bool, type: _propTypes["default"].string }).isRequired, selectedHost: _propTypes["default"].shape({ id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), name: _propTypes["default"].string }).isRequired, changeDiffViewType: _propTypes["default"].func.isRequired, changeEditorValue: _propTypes["default"].func.isRequired, changeSetting: _propTypes["default"].func.isRequired, changeTab: _propTypes["default"].func.isRequired, diffViewType: _propTypes["default"].string.isRequired, dismissErrorToast: _propTypes["default"].func.isRequired, editorName: _propTypes["default"].string.isRequired, errorText: _propTypes["default"].string.isRequired, hosts: _propTypes["default"].array.isRequired, filteredHosts: _propTypes["default"].array.isRequired, importFile: _propTypes["default"].func.isRequired, initializeEditor: _propTypes["default"].func.isRequired, isMasked: _propTypes["default"].bool.isRequired, isMaximized: _propTypes["default"].bool.isRequired, isRendering: _propTypes["default"].bool.isRequired, isLoading: _propTypes["default"].bool.isRequired, isFetchingHosts: _propTypes["default"].bool.isRequired, keyBinding: _propTypes["default"].string.isRequired, mode: _propTypes["default"].string.isRequired, previewTemplate: _propTypes["default"].func.isRequired, readOnly: _propTypes["default"].bool.isRequired, previewResult: _propTypes["default"].string.isRequired, revertChanges: _propTypes["default"].func.isRequired, selectedView: _propTypes["default"].string.isRequired, showError: _propTypes["default"].bool.isRequired, theme: _propTypes["default"].string.isRequired, toggleMaskValue: _propTypes["default"].func.isRequired, toggleModal: _propTypes["default"].func.isRequired, toggleRenderView: _propTypes["default"].func.isRequired, value: _propTypes["default"].string.isRequired, renderedEditorValue: _propTypes["default"].string.isRequired, isSelectOpen: _propTypes["default"].bool.isRequired, searchQuery: _propTypes["default"].string.isRequired, onHostSelectToggle: _propTypes["default"].func.isRequired, onHostSearch: _propTypes["default"].func.isRequired, onSearchClear: _propTypes["default"].func.isRequired, isSearchingHosts: _propTypes["default"].bool.isRequired, fetchAndPreview: _propTypes["default"].func.isRequired }; var _default = Editor; exports["default"] = _default; /***/ }), /* 299 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_ACE__; /***/ }), /* 300 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__BRACE_EXT_SEARCHBOX__; /***/ }), /* 301 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _EditorRadioButton = _interopRequireDefault(__webpack_require__(302)); var _EditorOptions = _interopRequireDefault(__webpack_require__(303)); var _EditorHostSelect = _interopRequireDefault(__webpack_require__(305)); var _EditorSafemodeCheckbox = _interopRequireDefault(__webpack_require__(308)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var EditorNavbar = function EditorNavbar(_ref) { var changeDiffViewType = _ref.changeDiffViewType, changeSetting = _ref.changeSetting, changeTab = _ref.changeTab, diffViewType = _ref.diffViewType, hosts = _ref.hosts, filteredHosts = _ref.filteredHosts, importFile = _ref.importFile, isDiff = _ref.isDiff, isLoading = _ref.isLoading, isMasked = _ref.isMasked, isRendering = _ref.isRendering, isFetchingHosts = _ref.isFetchingHosts, isSearchingHosts = _ref.isSearchingHosts, keyBinding = _ref.keyBinding, keyBindings = _ref.keyBindings, mode = _ref.mode, modes = _ref.modes, previewTemplate = _ref.previewTemplate, isSafemodeEnabled = _ref.isSafemodeEnabled, renderPath = _ref.renderPath, safemodeRenderPath = _ref.safemodeRenderPath, revertChanges = _ref.revertChanges, selectedHost = _ref.selectedHost, selectedView = _ref.selectedView, showHide = _ref.showHide, showImport = _ref.showImport, showPreview = _ref.showPreview, showHostSelector = _ref.showHostSelector, template = _ref.template, theme = _ref.theme, themes = _ref.themes, toggleMaskValue = _ref.toggleMaskValue, toggleModal = _ref.toggleModal, toggleRenderView = _ref.toggleRenderView, value = _ref.value, renderedEditorValue = _ref.renderedEditorValue, previewResult = _ref.previewResult, searchQuery = _ref.searchQuery, onHostSelectToggle = _ref.onHostSelectToggle, onHostSearch = _ref.onHostSearch, onSearchClear = _ref.onSearchClear, isSelectOpen = _ref.isSelectOpen, showError = _ref.showError, fetchAndPreview = _ref.fetchAndPreview; var _useState = (0, _react.useState)(isSafemodeEnabled), _useState2 = _slicedToArray(_useState, 2), safemode = _useState2[0], setSafemode = _useState2[1]; var handleSafeModeChange = function handleSafeModeChange(_ref2) { var newChecked = _ref2.currentTarget.checked; setSafemode(newChecked); var newRenderPath = newChecked ? safemodeRenderPath : renderPath; previewTemplate({ host: selectedHost, renderPath: newRenderPath }); }; var selectedRenderPath = safemode ? safemodeRenderPath : renderPath; return /*#__PURE__*/_react["default"].createElement("div", { className: "navbar navbar-form navbar-full-width navbar-editor" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Nav, { className: "nav nav-tabs nav-tabs-pf nav-tabs-pf-secondary" }, /*#__PURE__*/_react["default"].createElement(_EditorRadioButton["default"], { stateView: selectedView, btnView: "input", title: (0, _I18n.translate)('Editor'), onClick: function onClick() { if (selectedView !== 'input') { if (isRendering) toggleRenderView(); changeTab('input'); } } }), /*#__PURE__*/_react["default"].createElement(_EditorRadioButton["default"], { stateView: selectedView, disabled: !isDiff, btnView: "diff", title: (0, _I18n.translate)('Changes'), onClick: function onClick() { if (selectedView !== 'diff') { changeTab('diff'); } } }), showPreview && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_EditorRadioButton["default"], { stateView: selectedView, btnView: "preview", title: (0, _I18n.translate)('Preview'), onClick: function onClick() { if (selectedView !== 'preview') { if (!isRendering) toggleRenderView(); changeTab('preview'); if (selectedHost.id === '') fetchAndPreview(selectedRenderPath); } } }), showHostSelector && /*#__PURE__*/_react["default"].createElement(_EditorHostSelect["default"], { show: selectedView === 'preview', open: isSelectOpen, selectedItem: selectedHost, placeholder: (0, _I18n.translate)('Select Host...'), isLoading: isFetchingHosts, onChange: function onChange(host) { return previewTemplate({ host: host, renderPath: selectedRenderPath }); }, searchQuery: searchQuery, onToggle: onHostSelectToggle, onSearchChange: onHostSearch, onSearchClear: onSearchClear, options: isSearchingHosts ? filteredHosts : hosts, key: "hostsSelect" }), /*#__PURE__*/_react["default"].createElement(_EditorSafemodeCheckbox["default"], { show: selectedView === 'preview', checked: safemode, disabled: isSafemodeEnabled, handleSafeModeChange: handleSafeModeChange }), selectedView === 'preview' && previewResult !== '' && renderedEditorValue !== value && /*#__PURE__*/_react["default"].createElement("div", { id: "outdated-preview-alert" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Alert, { type: "warning" }, (0, _I18n.translate)('Preview is outdated.'), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: "link", onClick: function onClick() { return previewTemplate({ host: selectedHost, renderPath: selectedRenderPath }); } }, (0, _I18n.translate)('Preview')))), isLoading && /*#__PURE__*/_react["default"].createElement("div", { id: "preview-spinner" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Spinner, { size: "sm", loading: true })))), /*#__PURE__*/_react["default"].createElement(_EditorOptions["default"], { hosts: hosts, value: value, renderPath: renderPath, previewTemplate: previewTemplate, showImport: showImport, showHide: showHide, showPreview: showPreview, showHostSelector: showHostSelector, isDiff: isDiff, diffViewType: diffViewType, isMasked: isMasked, isRendering: isRendering, importFile: importFile, template: template, revertChanges: revertChanges, changeDiffViewType: changeDiffViewType, toggleMaskValue: toggleMaskValue, changeSetting: changeSetting, changeTab: changeTab, toggleModal: toggleModal, selectedView: selectedView, mode: mode, modes: modes, keyBinding: keyBinding, keyBindings: keyBindings, theme: theme, themes: themes })); }; EditorNavbar.propTypes = { changeDiffViewType: _propTypes["default"].func.isRequired, changeSetting: _propTypes["default"].func.isRequired, changeTab: _propTypes["default"].func.isRequired, diffViewType: _propTypes["default"].string.isRequired, fetchAndPreview: _propTypes["default"].func.isRequired, filteredHosts: _propTypes["default"].array, hosts: _propTypes["default"].array, importFile: _propTypes["default"].func.isRequired, isDiff: _propTypes["default"].bool.isRequired, isFetchingHosts: _propTypes["default"].bool.isRequired, isLoading: _propTypes["default"].bool.isRequired, isMasked: _propTypes["default"].bool.isRequired, isRendering: _propTypes["default"].bool.isRequired, isSearchingHosts: _propTypes["default"].bool.isRequired, isSelectOpen: _propTypes["default"].bool.isRequired, keyBinding: _propTypes["default"].string.isRequired, keyBindings: _propTypes["default"].array.isRequired, mode: _propTypes["default"].string.isRequired, modes: _propTypes["default"].array.isRequired, onHostSearch: _propTypes["default"].func.isRequired, onHostSelectToggle: _propTypes["default"].func.isRequired, onSearchClear: _propTypes["default"].func.isRequired, previewResult: _propTypes["default"].string.isRequired, previewTemplate: _propTypes["default"].func.isRequired, renderedEditorValue: _propTypes["default"].string.isRequired, isSafemodeEnabled: _propTypes["default"].bool.isRequired, renderPath: _propTypes["default"].string, safemodeRenderPath: _propTypes["default"].string, revertChanges: _propTypes["default"].func.isRequired, searchQuery: _propTypes["default"].string.isRequired, selectedHost: _propTypes["default"].shape({ id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), name: _propTypes["default"].string }).isRequired, selectedView: _propTypes["default"].string.isRequired, showError: _propTypes["default"].bool.isRequired, showHide: _propTypes["default"].bool, showImport: _propTypes["default"].bool.isRequired, showPreview: _propTypes["default"].bool.isRequired, showHostSelector: _propTypes["default"].bool, template: _propTypes["default"].string, theme: _propTypes["default"].string.isRequired, themes: _propTypes["default"].array.isRequired, toggleMaskValue: _propTypes["default"].func.isRequired, toggleModal: _propTypes["default"].func.isRequired, toggleRenderView: _propTypes["default"].func.isRequired, value: _propTypes["default"].string.isRequired }; EditorNavbar.defaultProps = { hosts: [], filteredHosts: [], renderPath: '', safemodeRenderPath: '', showHide: false, template: '', showHostSelector: true }; var _default = EditorNavbar; exports["default"] = _default; /***/ }), /* 302 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var EditorRadioButton = function EditorRadioButton(_ref) { var btnView = _ref.btnView, disabled = _ref.disabled, icon = _ref.icon, onClick = _ref.onClick, stateView = _ref.stateView, title = _ref.title; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.NavItem, { disabled: disabled, active: stateView === btnView, id: "".concat(btnView, "-navitem"), onClick: onClick }, icon && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: icon.type, name: icon.name }), icon ? " ".concat(title) : title); }; EditorRadioButton.propTypes = { btnView: _propTypes["default"].string.isRequired, disabled: _propTypes["default"].bool, icon: _propTypes["default"].object, onClick: _propTypes["default"].func.isRequired, stateView: _propTypes["default"].string.isRequired, title: _propTypes["default"].string.isRequired }; EditorRadioButton.defaultProps = { icon: null, disabled: false }; var _default = EditorRadioButton; exports["default"] = _default; /***/ }), /* 303 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); var _DiffRadioButtons = _interopRequireDefault(__webpack_require__(54)); var _EditorSettings = _interopRequireDefault(__webpack_require__(304)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } /* eslint-disable no-alert */ var EditorOptions = /*#__PURE__*/function (_React$Component) { _inherits(EditorOptions, _React$Component); var _super = _createSuper(EditorOptions); function EditorOptions(props) { var _this; _classCallCheck(this, EditorOptions); _this = _super.call(this, props); (0, _helpers.bindMethods)(_assertThisInitialized(_this), ['fileDialog']); _this.fileInput = /*#__PURE__*/_react["default"].createRef(); return _this; } _createClass(EditorOptions, [{ key: "fileDialog", value: function fileDialog() { this.fileInput.click(); } }, { key: "render", value: function render() { var _this2 = this; var _this$props = this.props, changeDiffViewType = _this$props.changeDiffViewType, changeSetting = _this$props.changeSetting, changeTab = _this$props.changeTab, diffViewType = _this$props.diffViewType, importFile = _this$props.importFile, isDiff = _this$props.isDiff, isMasked = _this$props.isMasked, keyBinding = _this$props.keyBinding, keyBindings = _this$props.keyBindings, mode = _this$props.mode, modes = _this$props.modes, revertChanges = _this$props.revertChanges, selectedView = _this$props.selectedView, showHide = _this$props.showHide, showImport = _this$props.showImport, template = _this$props.template, theme = _this$props.theme, themes = _this$props.themes, toggleMaskValue = _this$props.toggleMaskValue, toggleModal = _this$props.toggleModal; return /*#__PURE__*/_react["default"].createElement("div", { id: "editor-dropdowns" }, selectedView === 'diff' && /*#__PURE__*/_react["default"].createElement(_DiffRadioButtons["default"], { stateView: diffViewType, changeState: function changeState(viewType) { return changeDiffViewType(viewType); } }), /*#__PURE__*/_react["default"].createElement("h4", { id: "divider" }, "|"), showHide && /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { delayShow: 500, overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: "mask-tooltip" }, (0, _I18n.translate)('Hide Content')), placement: "top", trigger: ['hover'] }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { disabled: selectedView !== 'input', className: "editor-button", id: "hide-btn", onClick: function onClick() { return toggleMaskValue(isMasked); }, bsStyle: "link" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { size: "lg", type: "fa", name: isMasked ? 'eye' : 'eye-slash' }))), isDiff ? /*#__PURE__*/ // fixing tooltip showing sometimes for disabled icon _react["default"].createElement(_patternflyReact.OverlayTrigger, { delayShow: 500, overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: "revert-tooltip" }, (0, _I18n.translate)('Revert Local Changes')), placement: "top", trigger: ['hover'] }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "editor-button", id: "undo-btn", onClick: function onClick() { if (window.confirm('Are you sure you would like to revert all changes?')) { revertChanges(template); if (selectedView !== 'input') changeTab('input'); } }, bsStyle: "link" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { size: "2x", type: "pf", name: "restart" }))) : /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { disabled: true, className: "editor-button", id: "undo-btn", bsStyle: "link" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { size: "2x", type: "pf", name: "restart" })), showImport && /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { delayShow: 500, overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: "import-tooltip" }, (0, _I18n.translate)('Import File')), placement: "top", trigger: ['hover'] }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { disabled: selectedView !== 'input', className: "import-button", id: "import-btn", bsStyle: "link", onClick: function onClick() { return _this2.fileDialog(); } }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { size: "lg", type: "pf", name: "folder-open" }), /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, { inputRef: function inputRef(ref) { _this2.fileInput = ref; }, className: "hidden", type: "file", onChange: importFile }))), /*#__PURE__*/_react["default"].createElement(_EditorSettings["default"], { changeSetting: changeSetting, selectedView: selectedView, modes: modes, mode: mode, keyBindings: keyBindings, keyBinding: keyBinding, theme: theme, themes: themes }), /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { delayShow: 500, overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: "fullscreen-tooltip" }, (0, _I18n.translate)('Maximize')), placement: "top", trigger: ['hover'] }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "editor-button", id: "fullscreen-btn", onClick: toggleModal, bsStyle: "link" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { size: "lg", type: "fa", name: "arrows-alt" })))); } }]); return EditorOptions; }(_react["default"].Component); EditorOptions.propTypes = { changeDiffViewType: _propTypes["default"].func.isRequired, changeSetting: _propTypes["default"].func.isRequired, changeTab: _propTypes["default"].func.isRequired, diffViewType: _propTypes["default"].string.isRequired, importFile: _propTypes["default"].func.isRequired, isDiff: _propTypes["default"].bool.isRequired, isMasked: _propTypes["default"].bool.isRequired, keyBinding: _propTypes["default"].string.isRequired, keyBindings: _propTypes["default"].array.isRequired, mode: _propTypes["default"].string.isRequired, modes: _propTypes["default"].array.isRequired, revertChanges: _propTypes["default"].func.isRequired, selectedView: _propTypes["default"].string.isRequired, showHide: _propTypes["default"].bool, showImport: _propTypes["default"].bool.isRequired, template: _propTypes["default"].string, theme: _propTypes["default"].string.isRequired, themes: _propTypes["default"].array.isRequired, toggleMaskValue: _propTypes["default"].func.isRequired, toggleModal: _propTypes["default"].func.isRequired }; EditorOptions.defaultProps = { showHide: false, template: '' }; var _default = EditorOptions; exports["default"] = _default; /***/ }), /* 304 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var EditorSettings = function EditorSettings(_ref) { var selectedView = _ref.selectedView, changeSetting = _ref.changeSetting, keyBinding = _ref.keyBinding, keyBindings = _ref.keyBindings, mode = _ref.mode, modes = _ref.modes, theme = _ref.theme, themes = _ref.themes; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { overlay: /*#__PURE__*/_react["default"].createElement(_patternflyReact.Popover, { placement: "bottom", title: (0, _I18n.translate)('Settings'), id: "cog-popover" }, /*#__PURE__*/_react["default"].createElement("div", { className: "cog-popover-dropdown" }, /*#__PURE__*/_react["default"].createElement("div", { className: "cog-popover-dropdown-title" }, (0, _I18n.translate)('Syntax')), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown, { disabled: selectedView === 'preview', id: "mode-dropdown" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown.Toggle, null, mode), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown.Menu, { id: "settings-dropdown" }, modes.map(function (aceMode, i) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { key: i, onClick: function onClick() { return changeSetting({ mode: aceMode }); } }, aceMode); })))), /*#__PURE__*/_react["default"].createElement("div", { className: "cog-popover-dropdown" }, /*#__PURE__*/_react["default"].createElement("div", { className: "cog-popover-dropdown-title" }, (0, _I18n.translate)('Keybind')), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown, { disabled: selectedView === 'preview', id: "keybindings-dropdown" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown.Toggle, null, keyBinding), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown.Menu, { id: "settings-dropdown" }, keyBindings.map(function (keyBind, i) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { key: i, onClick: function onClick() { return changeSetting({ keyBinding: keyBind }); } }, keyBind); })))), /*#__PURE__*/_react["default"].createElement("div", { className: "cog-popover-dropdown" }, /*#__PURE__*/_react["default"].createElement("div", { className: "cog-popover-dropdown-title" }, (0, _I18n.translate)('Theme')), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown, { id: "themes-dropdown" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown.Toggle, null, theme), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown.Menu, { id: "settings-dropdown" }, themes.map(function (themeKey, i) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { key: i, onClick: function onClick() { return changeSetting({ theme: themeKey }); } }, themeKey); }))))), placement: "bottom", trigger: ['click'], rootClose: true }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "editor-button", id: "cog-btn", bsStyle: "link" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { size: "lg", name: "cog" }))); }; EditorSettings.propTypes = { changeSetting: _propTypes["default"].func.isRequired, keyBinding: _propTypes["default"].string.isRequired, keyBindings: _propTypes["default"].array.isRequired, selectedView: _propTypes["default"].string.isRequired, mode: _propTypes["default"].string.isRequired, modes: _propTypes["default"].array.isRequired, theme: _propTypes["default"].string.isRequired, themes: _propTypes["default"].array.isRequired }; var _default = EditorSettings; exports["default"] = _default; /***/ }), /* 305 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReactExtensions = __webpack_require__(306); var _I18n = __webpack_require__(2); __webpack_require__(307); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var EditorHostSelect = /*#__PURE__*/function (_Component) { _inherits(EditorHostSelect, _Component); var _super = _createSuper(EditorHostSelect); function EditorHostSelect() { var _this; _classCallCheck(this, EditorHostSelect); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "setWrapperRef", function (node) { _this.selectRef = node; }); _defineProperty(_assertThisInitialized(_this), "handleClickOutside", function (event) { if (_this.selectRef && !_this.selectRef.contains(event.target)) { var _this$props = _this.props, open = _this$props.open, onToggle = _this$props.onToggle; if (open) onToggle(); } }); _defineProperty(_assertThisInitialized(_this), "onKey", function (event) { if (event.keyCode === 27) { var _this$props2 = _this.props, open = _this$props2.open, onToggle = _this$props2.onToggle; if (open) onToggle(); } }); return _this; } _createClass(EditorHostSelect, [{ key: "componentDidMount", value: function componentDidMount() { document.addEventListener('mousedown', this.handleClickOutside); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { document.removeEventListener('mousedown', this.handleClickOutside); } }, { key: "render", value: function render() { var _this$props3 = this.props, show = _this$props3.show, isLoading = _this$props3.isLoading, onChange = _this$props3.onChange, onSearchChange = _this$props3.onSearchChange, onSearchClear = _this$props3.onSearchClear, onToggle = _this$props3.onToggle, open = _this$props3.open, options = _this$props3.options, searchQuery = _this$props3.searchQuery, selectedItem = _this$props3.selectedItem; return /*#__PURE__*/_react["default"].createElement("div", { ref: this.setWrapperRef, id: "editor-select-container", className: show ? '' : 'hidden' }, /*#__PURE__*/_react["default"].createElement(_patternflyReactExtensions.Select, { options: options, placeholder: (0, _I18n.translate)('Filter Host...'), open: open, onToggle: onToggle, searchValue: searchQuery, onSearchChange: onSearchChange, onSearchClear: onSearchClear, onKeyDown: this.onKey, onItemClick: onChange, selectedItem: selectedItem, isLoading: isLoading })); } }]); return EditorHostSelect; }(_react.Component); EditorHostSelect.propTypes = { show: _propTypes["default"].bool.isRequired, isLoading: _propTypes["default"].bool.isRequired, onChange: _propTypes["default"].func.isRequired, onSearchChange: _propTypes["default"].func.isRequired, onSearchClear: _propTypes["default"].func.isRequired, onToggle: _propTypes["default"].func.isRequired, open: _propTypes["default"].bool.isRequired, options: _propTypes["default"].array.isRequired, searchQuery: _propTypes["default"].string.isRequired, selectedItem: _propTypes["default"].shape({ id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), name: _propTypes["default"].string }).isRequired }; var _default = EditorHostSelect; exports["default"] = _default; /***/ }), /* 306 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__PATTERNFLY_REACT_EXTENSIONS__; /***/ }), /* 307 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 308 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); __webpack_require__(309); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var EditorSafemodeCheckbox = function EditorSafemodeCheckbox(_ref) { var show = _ref.show, checked = _ref.checked, disabled = _ref.disabled, handleSafeModeChange = _ref.handleSafeModeChange; if (show) { return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("label", { className: "safemode-rendering-checkbox", htmlFor: "safemode-rendering-checkbox" }, (0, _I18n.translate)('Safemode')), /*#__PURE__*/_react["default"].createElement("input", { type: "checkbox", id: "safemode-rendering-checkbox", onChange: handleSafeModeChange, checked: checked, disabled: disabled })); } return null; }; EditorSafemodeCheckbox.propTypes = { show: _propTypes["default"].bool.isRequired, checked: _propTypes["default"].bool.isRequired, disabled: _propTypes["default"].bool.isRequired, handleSafeModeChange: _propTypes["default"].func.isRequired }; var _default = EditorSafemodeCheckbox; exports["default"] = _default; /***/ }), /* 309 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 310 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _EditorView = _interopRequireDefault(__webpack_require__(123)); var _DiffRadioButtons = _interopRequireDefault(__webpack_require__(54)); var _DiffView = _interopRequireDefault(__webpack_require__(53)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var EditorModal = function EditorModal(_ref) { var changeDiffViewType = _ref.changeDiffViewType, changeEditorValue = _ref.changeEditorValue, diffViewType = _ref.diffViewType, editorValue = _ref.editorValue, previewValue = _ref.previewValue, isMasked = _ref.isMasked, isMaximized = _ref.isMaximized, isRendering = _ref.isRendering, keyBinding = _ref.keyBinding, mode = _ref.mode, name = _ref.name, readOnly = _ref.readOnly, selectedView = _ref.selectedView, template = _ref.template, theme = _ref.theme, title = _ref.title, toggleModal = _ref.toggleModal; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal, { show: isMaximized, onHide: toggleModal, className: "editor-modal" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Header, { className: "".concat(selectedView, " ").concat(theme.toLowerCase()) }, /*#__PURE__*/_react["default"].createElement("h4", { id: "editor-modal-h4" }, title), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "close", onClick: toggleModal, "aria-hidden": "true", "aria-label": "Close", bsStyle: "link" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "pf", name: "close" })), selectedView === 'diff' && /*#__PURE__*/_react["default"].createElement(_DiffRadioButtons["default"], { stateView: diffViewType, changeState: function changeState(viewType) { return changeDiffViewType(viewType); } })), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Body, { className: selectedView }, selectedView === 'diff' ? /*#__PURE__*/_react["default"].createElement("div", { id: "diff-table" }, /*#__PURE__*/_react["default"].createElement(_DiffView["default"], { oldText: template, newText: editorValue, viewType: diffViewType })) : /*#__PURE__*/_react["default"].createElement(_EditorView["default"], { value: isRendering ? previewValue : editorValue, name: name, mode: isRendering ? 'text' : mode, theme: theme, keyBinding: keyBinding, onChange: changeEditorValue, readOnly: readOnly || selectedView === 'preview', className: "editor ace_editor_modal", isMasked: isMasked }))); }; EditorModal.propTypes = { changeDiffViewType: _propTypes["default"].func.isRequired, changeEditorValue: _propTypes["default"].func.isRequired, diffViewType: _propTypes["default"].string.isRequired, editorValue: _propTypes["default"].string.isRequired, previewValue: _propTypes["default"].string.isRequired, isRendering: _propTypes["default"].bool.isRequired, isMasked: _propTypes["default"].bool.isRequired, isMaximized: _propTypes["default"].bool.isRequired, keyBinding: _propTypes["default"].string.isRequired, mode: _propTypes["default"].string.isRequired, name: _propTypes["default"].string.isRequired, readOnly: _propTypes["default"].bool.isRequired, selectedView: _propTypes["default"].string.isRequired, template: _propTypes["default"].string.isRequired, theme: _propTypes["default"].string.isRequired, title: _propTypes["default"].string, toggleModal: _propTypes["default"].func.isRequired }; EditorModal.defaultProps = { title: '' }; var _default = EditorModal; exports["default"] = _default; /***/ }), /* 311 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 312 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectGeneratingProps = void 0; var selectTemplates = function selectTemplates(state) { return state.templates; }; var selectGeneratingPropsFromTemplates = function selectGeneratingPropsFromTemplates(_ref) { var polling = _ref.polling, dataUrl = _ref.dataUrl, generatingError = _ref.generatingError, generatingErrorMessages = _ref.generatingErrorMessages; return { polling: polling, dataUrl: dataUrl, generatingError: generatingError, generatingErrorMessages: generatingErrorMessages }; }; var selectGeneratingProps = function selectGeneratingProps(state) { return selectGeneratingPropsFromTemplates(selectTemplates(state)); }; exports.selectGeneratingProps = selectGeneratingProps; /***/ }), /* 313 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _TemplateGeneratorConstants = __webpack_require__(124); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({ scheduleInProgress: false, polling: false, dataUrl: null }); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload; switch (type) { case _TemplateGeneratorConstants.TEMPLATE_GENERATE_REQUEST: return state.set('scheduleInProgress', true); case _TemplateGeneratorConstants.TEMPLATE_GENERATE_POLLING: return state.merge({ scheduleInProgress: false, dataUrl: payload.url, polling: true }); case _TemplateGeneratorConstants.TEMPLATE_GENERATE_FAILURE: return state.merge({ scheduleInProgress: false, polling: false, generatingError: payload.error.message, generatingErrorMessages: payload.messages }); case _TemplateGeneratorConstants.TEMPLATE_GENERATE_SUCCESS: return state.merge({ scheduleInProgress: false, polling: false }); default: return state; } }; exports["default"] = _default; /***/ }), /* 314 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pollReportData = exports.generateTemplate = void 0; var _fileSaver = __webpack_require__(315); var _API = __webpack_require__(8); var _TemplateGeneratorConstants = __webpack_require__(124); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /* eslint-disable promise/prefer-await-to-then */ var pollingInterval = 3000; var generateTemplate = function generateTemplate(url, templateInputData) { return function (dispatch) { dispatch({ type: _TemplateGeneratorConstants.TEMPLATE_GENERATE_REQUEST, payload: _objectSpread({}, templateInputData) }); return _API.API.post(url, templateInputData).then(function (_ref) { var data = _ref.data; dispatch(pollReportData(data.data_url)); })["catch"](function (error) { return dispatch({ type: _TemplateGeneratorConstants.TEMPLATE_GENERATE_FAILURE, payload: { error: error, item: templateInputData } }); }); }; }; exports.generateTemplate = generateTemplate; var _downloadFile = function _downloadFile(response) { var blob = new Blob([response.data], { type: response.headers['content-type'] }); var filename = response.headers['content-disposition'].match(/filename="(.*)"/); (0, _fileSaver.saveAs)(blob, filename && filename[1] || 'report.txt'); }; var _getErrors = function _getErrors(errorResponse) { if (!errorResponse || !errorResponse.data) return null; if (errorResponse.status === 422) return errorResponse.data.errors; if (errorResponse.data.error) return [errorResponse.data.error]; // most of >500 return [errorResponse.data]; }; var pollReportData = function pollReportData(pollUrl) { return function (dispatch) { dispatch({ type: _TemplateGeneratorConstants.TEMPLATE_GENERATE_POLLING, payload: { url: pollUrl } }); return _API.API.get(pollUrl, { responseType: 'blob' }).then(function (response) { if (response.status === 200) { dispatch({ type: _TemplateGeneratorConstants.TEMPLATE_GENERATE_SUCCESS, payload: {} }); _downloadFile(response); } else if (pollingInterval) { setTimeout(function () { return dispatch(pollReportData(pollUrl)); }, pollingInterval); } })["catch"](function (error) { dispatch({ type: _TemplateGeneratorConstants.TEMPLATE_GENERATE_FAILURE, payload: { error: error, messages: _getErrors(error.response) } }); }); }; }; exports.pollReportData = pollReportData; /***/ }), /* 315 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__FILE_SAVER__; /***/ }), /* 316 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); var _AlertBody = _interopRequireDefault(__webpack_require__(78)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var pollingMsg = "\n Report %s is now being generated, the download will start once it's done.\n You can come to this page later to get the results. The result is available for 24 hours.\n"; var doneMsg = "\n Generating of the report %s has been completed.\n Download should start automatically.\n In case it does not, please use the download button below.\n"; var getAlert = function getAlert(type, msg) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Alert, { type: type, title: (0, _I18n.translate)('Generating a report') }, /*#__PURE__*/_react["default"].createElement(_AlertBody["default"], { message: msg })); }; var TemplateGenerator = /*#__PURE__*/function (_React$Component) { _inherits(TemplateGenerator, _React$Component); var _super = _createSuper(TemplateGenerator); function TemplateGenerator() { _classCallCheck(this, TemplateGenerator); return _super.apply(this, arguments); } _createClass(TemplateGenerator, [{ key: "getError", value: function getError() { var _this$props = this.props, generatingError = _this$props.generatingError, generatingErrorMessages = _this$props.generatingErrorMessages; var errors = generatingErrorMessages && generatingErrorMessages.map(function (e) { return e.message; }).join('\n'); return errors || generatingError; } }, { key: "renderAlert", value: function renderAlert() { var _this$props2 = this.props, polling = _this$props2.polling, templateName = _this$props2.data.templateName; var error = this.getError(); if (polling) return getAlert('info', (0, _I18n.sprintf)(pollingMsg, templateName)); if (error) return getAlert('error', error); return getAlert('success', (0, _I18n.sprintf)(doneMsg, templateName)); } }, { key: "render", value: function render() { var _this$props3 = this.props, polling = _this$props3.polling, dataUrl = _this$props3.dataUrl, pollReportData = _this$props3.pollReportData, generatingError = _this$props3.generatingError; if (!dataUrl && !polling) return null; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, this.renderAlert(), !polling && !generatingError && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: "primary", onClick: function onClick() { return pollReportData(dataUrl); } }, (0, _I18n.translate)('Download'))); } }]); return TemplateGenerator; }(_react["default"].Component); TemplateGenerator.propTypes = { data: _propTypes["default"].shape({ templateName: _propTypes["default"].string.isRequired }).isRequired, polling: _propTypes["default"].bool, pollReportData: _propTypes["default"].func, dataUrl: _propTypes["default"].string, generatingError: _propTypes["default"].string, generatingErrorMessages: _propTypes["default"].arrayOf(_propTypes["default"].shape({ message: _propTypes["default"].string })) }; TemplateGenerator.defaultProps = { polling: false, pollReportData: _helpers.noop, dataUrl: null, generatingError: null, generatingErrorMessages: null }; var _default = TemplateGenerator; exports["default"] = _default; /***/ }), /* 317 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _excluded = ["children"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var AlertLink = function AlertLink(_ref) { var children = _ref.children, props = _objectWithoutProperties(_ref, _excluded); return /*#__PURE__*/_react["default"].createElement("div", { className: "pull-right toast-pf-action" }, /*#__PURE__*/_react["default"].createElement("a", props, children)); }; AlertLink.propTypes = { children: _propTypes["default"].string.isRequired, href: _propTypes["default"].string, onClick: _propTypes["default"].func }; AlertLink.defaultProps = { href: undefined, onClick: undefined }; var _default = AlertLink; exports["default"] = _default; /***/ }), /* 318 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _redux = __webpack_require__(12); var _reactRedux = __webpack_require__(5); var actions = _interopRequireWildcard(__webpack_require__(126)); var _FillReducer = _interopRequireDefault(__webpack_require__(319)); var _Fill = _interopRequireDefault(__webpack_require__(320)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } // map action dispatchers to props var mapDispatchToProps = function mapDispatchToProps(dispatch) { return (0, _redux.bindActionCreators)(actions, dispatch); }; // export reducers var reducers = { extendable: _FillReducer["default"] }; // export connected component exports.reducers = reducers; var _default = (0, _reactRedux.connect)(null, mapDispatchToProps)(_Fill["default"]); exports["default"] = _default; /***/ }), /* 319 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _FillConstants = __webpack_require__(127); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({}); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; var payload = action.payload; switch (action.type) { case _FillConstants.REGISTER_FILL: return state.setIn([payload.slotId, payload.fillId], { weight: payload.weight, metadata: payload.metadata }); case _FillConstants.REMOVE_FILLED_COMPONENT: return state.update(payload.slotId, function (fills) { return fills.without(payload.fillId); }); default: return state; } }; exports["default"] = _default; /***/ }), /* 320 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Fill = /*#__PURE__*/function (_React$Component) { _inherits(Fill, _React$Component); var _super = _createSuper(Fill); function Fill() { _classCallCheck(this, Fill); return _super.apply(this, arguments); } _createClass(Fill, [{ key: "componentDidMount", value: function componentDidMount() { var _this$props = this.props, children = _this$props.children, overrideProps = _this$props.overrideProps, registerFillComponent = _this$props.registerFillComponent, slotId = _this$props.slotId, weight = _this$props.weight, id = _this$props.id; registerFillComponent(slotId, overrideProps, id, children, weight); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { var _this$props2 = this.props, slotId = _this$props2.slotId, unregisterFillComponent = _this$props2.unregisterFillComponent, id = _this$props2.id; unregisterFillComponent(slotId, id); } }, { key: "render", value: function render() { return null; } }]); return Fill; }(_react["default"].Component); Fill.propTypes = { // a component to be injected on a slot children: _propTypes["default"].oneOfType([_propTypes["default"].node, _propTypes["default"].object]), registerFillComponent: _propTypes["default"].func.isRequired, unregisterFillComponent: _propTypes["default"].func.isRequired, slotId: _propTypes["default"].string.isRequired, // ordering between slot's fills, higher will be rendered first weight: _propTypes["default"].number.isRequired, // fill's id id: _propTypes["default"].string.isRequired, // a props object to be injected on the slot's children overrideProps: _propTypes["default"].object }; Fill.defaultProps = { children: undefined, overrideProps: undefined }; var _default = Fill; exports["default"] = _default; /***/ }), /* 321 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _TypeAheadSelectConstants = __webpack_require__(130); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = (0, _seamlessImmutable["default"])({}); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, _ref$payload = _ref.payload, _ref$payload2 = _ref$payload === void 0 ? {} : _ref$payload, id = _ref$payload2.id, options = _ref$payload2.options, selected = _ref$payload2.selected; switch (type) { case _TypeAheadSelectConstants.INIT: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { options: options, selected: selected })); case _TypeAheadSelectConstants.UPDATE_OPTIONS: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { options: options })); case _TypeAheadSelectConstants.UPDATE_SELECTED: return state.setIn([id], _objectSpread(_objectSpread({}, state[id]), {}, { selected: selected })); default: return state; } }; exports["default"] = _default; /***/ }), /* 322 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeAudits = exports.fetchAudits = exports.fetchAndPush = void 0; var _history = _interopRequireDefault(__webpack_require__(23)); var _API = __webpack_require__(8); var _constants = __webpack_require__(79); var _AuditsPageSelectors = __webpack_require__(133); var _urlHelpers = __webpack_require__(21); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } // on didMount or popstatee var initializeAudits = function initializeAudits() { return function (dispatch) { var params = (0, _urlHelpers.getParams)(); dispatch(fetchAudits(params)); if (!_history["default"].action === 'POP') { _history["default"].replace({ pathname: _constants.AUDITS_PATH, search: (0, _urlHelpers.stringifyParams)(params) }); } }; }; exports.initializeAudits = initializeAudits; var fetchAudits = function fetchAudits(_ref) { var page = _ref.page, perPage = _ref.perPage, searchQuery = _ref.searchQuery; var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.AUDITS_PATH; return /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dispatch, getState) { var onRequestSuccess, onRequestFail, response; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: dispatch({ type: _constants.AUDITS_PAGE_SHOW_LOADING }); if ((0, _AuditsPageSelectors.selectAuditsHasError)(getState())) dispatch({ type: _constants.AUDITS_PAGE_CLEAR_ERROR }); onRequestSuccess = function onRequestSuccess(_ref3) { var _ref3$data = _ref3.data, audits = _ref3$data.audits, itemCount = _ref3$data.itemCount; if ((0, _AuditsPageSelectors.selectAuditsIsLoadingPage)(getState())) dispatch({ type: _constants.AUDITS_PAGE_HIDE_LOADING }); dispatch({ type: _constants.AUDITS_PAGE_UPDATE_QUERY, payload: { page: page, perPage: perPage, searchQuery: searchQuery, itemCount: itemCount } }); dispatch({ type: _constants.AUDITS_PAGE_DATA_RESOLVED, payload: { audits: audits, hasData: itemCount > 0 } }); }; onRequestFail = function onRequestFail(error) { if ((0, _AuditsPageSelectors.selectAuditsIsLoadingPage)(getState())) dispatch({ type: _constants.AUDITS_PAGE_HIDE_LOADING }); dispatch({ type: _constants.AUDITS_PAGE_DATA_FAILED, payload: { message: { type: 'error', text: "".concat(error.response.status, " ").concat((0, _I18n.translate)(error.response.statusText)) } } }); }; _context.prev = 4; _context.next = 7; return _API.API.get(url, {}, { page: page, per_page: perPage, search: searchQuery }); case 7: response = _context.sent; return _context.abrupt("return", onRequestSuccess(response)); case 11: _context.prev = 11; _context.t0 = _context["catch"](4); return _context.abrupt("return", onRequestFail(_context.t0)); case 14: case "end": return _context.stop(); } }, _callee, null, [[4, 11]]); })); return function (_x, _x2) { return _ref2.apply(this, arguments); }; }(); }; exports.fetchAudits = fetchAudits; var fetchAndPush = function fetchAndPush(params) { return function (dispatch, getState) { var query = buildQuery(params, getState()); dispatch(fetchAudits(query)); _history["default"].push({ pathname: _constants.AUDITS_PATH, search: (0, _urlHelpers.stringifyParams)(query) }); }; }; exports.fetchAndPush = fetchAndPush; var buildQuery = function buildQuery(query, state) { return { page: query.page || (0, _AuditsPageSelectors.selectAuditsSelectedPage)(state), perPage: query.perPage || (0, _AuditsPageSelectors.selectAuditsPerPage)(state), searchQuery: query.searchQuery === undefined ? (0, _AuditsPageSelectors.selectAuditsSearch)(state) : query.searchQuery }; }; /***/ }), /* 323 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); __webpack_require__(324); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); var _PageLayout = _interopRequireDefault(__webpack_require__(134)); var _AuditsTable = _interopRequireDefault(__webpack_require__(351)); var _constants = __webpack_require__(79); var _excluded = ["searchQuery", "fetchAndPush", "isLoading", "hasData"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var AuditsPage = function AuditsPage(_ref) { var searchQuery = _ref.searchQuery, fetchAndPush = _ref.fetchAndPush, isLoading = _ref.isLoading, hasData = _ref.hasData, props = _objectWithoutProperties(_ref, _excluded); return /*#__PURE__*/_react["default"].createElement(_PageLayout["default"], { header: (0, _I18n.translate)('Audits'), searchable: true, searchProps: _constants.AUDITS_SEARCH_PROPS, searchQuery: searchQuery, isLoading: isLoading && hasData, onSearch: function onSearch(search) { return fetchAndPush({ searchQuery: search, page: 1 }); }, onBookmarkClick: function onBookmarkClick(search) { return fetchAndPush({ searchQuery: search, page: 1 }); }, toolbarButtons: /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { component: "a", className: "btn-docs", href: (0, _helpers.getManualURL)('4.1.4Auditing'), rel: "external noreferrer noopener", target: "_blank", variant: "secondary" }, (0, _I18n.translate)(' Documentation')) }, /*#__PURE__*/_react["default"].createElement(_AuditsTable["default"], _extends({ fetchAndPush: fetchAndPush, isLoading: isLoading, hasData: hasData }, props))); }; AuditsPage.propTypes = { searchQuery: _propTypes["default"].string.isRequired, fetchAndPush: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired, hasData: _propTypes["default"].bool.isRequired }; var _default = AuditsPage; exports["default"] = _default; /***/ }), /* 324 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 325 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _lodash = __webpack_require__(10); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _AutoComplete = _interopRequireDefault(__webpack_require__(52)); var _Bookmarks = _interopRequireDefault(__webpack_require__(135)); var _urlHelpers = __webpack_require__(21); __webpack_require__(349); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var SearchBar = function SearchBar(props) { var _props$data = props.data, autocomplete = _props$data.autocomplete, controller = _props$data.controller, bookmarks = _props$data.bookmarks, searchQuery = props.searchQuery, onSearch = props.onSearch, initialQuery = props.initialQuery, onBookmarkClick = props.onBookmarkClick; return /*#__PURE__*/_react["default"].createElement("div", { className: "pf-c-search-input" }, /*#__PURE__*/_react["default"].createElement("div", { className: "search-bar pf-c-input-group", id: "search-bar" }, /*#__PURE__*/_react["default"].createElement(_AutoComplete["default"], { id: autocomplete.id, handleSearch: function handleSearch() { return onSearch(searchQuery); }, searchQuery: initialQuery || autocomplete.searchQuery || '', useKeyShortcuts: autocomplete.useKeyShortcuts, url: autocomplete.url, controller: controller }), /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { id: "btn-search", variant: "control", "aria-label": "search button for search input", className: "autocomplete-search-btn", onClick: function onClick() { return onSearch(searchQuery); } }, /*#__PURE__*/_react["default"].createElement(_reactIcons.SearchIcon, null)), !(0, _lodash.isEmpty)(bookmarks) && /*#__PURE__*/_react["default"].createElement(_Bookmarks["default"], _extends({ onBookmarkClick: onBookmarkClick, controller: controller, searchQuery: searchQuery }, bookmarks)))); }; SearchBar.propTypes = { searchQuery: _propTypes["default"].string, initialQuery: _propTypes["default"].string, onSearch: _propTypes["default"].func, onBookmarkClick: _propTypes["default"].func, data: _propTypes["default"].shape({ autocomplete: _propTypes["default"].shape({ results: _propTypes["default"].array, searchQuery: _propTypes["default"].string, url: _propTypes["default"].string, useKeyShortcuts: _propTypes["default"].bool, id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired }), controller: _propTypes["default"].string, bookmarks: _propTypes["default"].object }) }; SearchBar.defaultProps = { searchQuery: '', initialQuery: '', onSearch: function onSearch(searchQuery) { return (0, _urlHelpers.changeQuery)({ search: searchQuery.trim(), page: 1 }); }, onBookmarkClick: function onBookmarkClick(searchQuery) { return (0, _urlHelpers.changeQuery)({ search: searchQuery.trim(), page: 1 }); }, data: { autocomplete: { results: [], searchQuery: null, url: null, useKeyShortcuts: true }, controller: null, bookmarks: {} } }; var _default = SearchBar; exports["default"] = _default; /***/ }), /* 326 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBookmarks = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _API = __webpack_require__(8); var _BookmarksConstants = __webpack_require__(80); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var getBookmarks = function getBookmarks(url, controller) { var uri = new _urijs["default"](url); // eslint-disable-next-line camelcase uri.setSearch({ search: "controller=".concat(controller), per_page: 'all' }); return (0, _API.get)({ url: uri.toString(), key: "".concat(_BookmarksConstants.BOOKMARKS, "_").concat(controller.toUpperCase()) }); }; exports.getBookmarks = getBookmarks; /***/ }), /* 327 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _SearchModal = _interopRequireDefault(__webpack_require__(138)); var _constants = __webpack_require__(7); var _helpers = __webpack_require__(3); var _BookmarkItems = __webpack_require__(345); var _history = _interopRequireDefault(__webpack_require__(23)); var _urlHelpers = __webpack_require__(21); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var Bookmarks = function Bookmarks(_ref) { var bookmarks = _ref.bookmarks, status = _ref.status, url = _ref.url, controller = _ref.controller, getBookmarks = _ref.getBookmarks, canCreate = _ref.canCreate, errors = _ref.errors, documentationUrl = _ref.documentationUrl, onBookmarkClick = _ref.onBookmarkClick, setModalOpen = _ref.setModalOpen, setModalClosed = _ref.setModalClosed; var _useState = (0, _react.useState)(false), _useState2 = _slicedToArray(_useState, 2), isDropdownOpen = _useState2[0], setIsDropdownOpen = _useState2[1]; var onToggle = function onToggle(isOpen) { setIsDropdownOpen(isOpen); if (bookmarks.length === 0 && status !== _constants.STATUS.PENDING) { getBookmarks(); } }; var manageBookmarks = function manageBookmarks() { var query = (0, _urlHelpers.stringifyParams)({ searchQuery: "controller=".concat(controller) }); _history["default"].push({ pathname: '/bookmarks', search: query }); }; var dropdownItems = [(0, _BookmarkItems.addBookmarkItem)({ canCreate: canCreate, setModalOpen: setModalOpen }), (0, _BookmarkItems.savedBookmarksItems)({ bookmarks: bookmarks, onBookmarkClick: onBookmarkClick, status: status, errors: errors }), (0, _BookmarkItems.manageBookmarksItem)({ canCreate: canCreate, onClick: manageBookmarks, documentationUrl: documentationUrl })]; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SearchModal["default"], { controller: controller, url: url, setModalClosed: setModalClosed, bookmarks: bookmarks }), /*#__PURE__*/_react["default"].createElement(_reactCore.Dropdown, { isOpen: isDropdownOpen, toggle: /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownToggle, { onToggle: onToggle, title: (0, _I18n.translate)('Bookmarks'), "aria-label": "bookmarks dropdown toggle" }, /*#__PURE__*/_react["default"].createElement(_reactIcons.OutlinedBookmarkIcon, null)), id: controller, dropdownItems: dropdownItems, isGrouped: true })); }; Bookmarks.propTypes = { controller: _propTypes["default"].string.isRequired, onBookmarkClick: _propTypes["default"].func.isRequired, url: _propTypes["default"].string.isRequired, canCreate: _propTypes["default"].bool, bookmarks: _propTypes["default"].array, errors: _propTypes["default"].string, status: _propTypes["default"].string, documentationUrl: _propTypes["default"].string, getBookmarks: _propTypes["default"].func, setModalOpen: _propTypes["default"].func.isRequired, setModalClosed: _propTypes["default"].func.isRequired }; Bookmarks.defaultProps = { canCreate: false, bookmarks: [], errors: '', status: null, documentationUrl: '', getBookmarks: _helpers.noop }; var _default = Bookmarks; exports["default"] = _default; /***/ }), /* 328 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _ForemanModalContext = _interopRequireDefault(__webpack_require__(137)); var _ForemanModalHeader = _interopRequireDefault(__webpack_require__(81)); var _ForemanModalFooter = _interopRequireDefault(__webpack_require__(82)); var _helpers = __webpack_require__(336); var _excluded = ["id", "title", "onClose", "isOpen", "children", "isSubmitting", "submitProps"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var ForemanModal = function ForemanModal(props) { var id = props.id, title = props.title, onClose = props.onClose, isOpen = props.isOpen, children = props.children, isSubmitting = props.isSubmitting, submitProps = props.submitProps, propsToPassDown = _objectWithoutProperties(props, _excluded); // Extract header and footer from children, if provided var _extractModalNodes = (0, _helpers.extractModalNodes)(children), headerChild = _extractModalNodes.headerChild, footerChild = _extractModalNodes.footerChild, otherChildren = _extractModalNodes.otherChildren; var context = { isOpen: isOpen, onClose: onClose, isSubmitting: isSubmitting, id: id, title: title, submitProps: submitProps }; var defaultHeader = function defaultHeader(headerTitle) { return headerTitle ? /*#__PURE__*/_react["default"].createElement(_ForemanModalHeader["default"], null) : null; }; var headerToRender = headerChild || defaultHeader(title); var defaultFooter = function defaultFooter(subProps) { return Object.keys(subProps).length !== 0 ? /*#__PURE__*/_react["default"].createElement(_ForemanModalFooter["default"], null) : null; }; var footerToRender = footerChild || defaultFooter(submitProps); return /*#__PURE__*/_react["default"].createElement(_ForemanModalContext["default"].Provider, { value: context }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal, _extends({ onHide: onClose, show: isOpen, className: "foreman-modal" }, propsToPassDown), headerToRender, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Body, null, otherChildren), footerToRender)); }; ForemanModal.propTypes = { children: _propTypes["default"].node, title: _propTypes["default"].string, id: _propTypes["default"].string.isRequired, isOpen: _propTypes["default"].bool, onClose: _propTypes["default"].func.isRequired, isSubmitting: _propTypes["default"].bool, submitProps: _propTypes["default"].object }; ForemanModal.defaultProps = { children: null, isOpen: false, title: '', isSubmitting: false, submitProps: {} }; var _default = ForemanModal; exports["default"] = _default; /***/ }), /* 329 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _SubmitOrCancelActions = __webpack_require__(330); var _SubmitOrCancel = _interopRequireDefault(__webpack_require__(331)); var _excluded = ["submitBtnProps", "cancelBtnProps"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var ConnectedSubmitOrCancel = function ConnectedSubmitOrCancel(_ref) { var isSubmitting = _ref.isSubmitting, onCancel = _ref.onCancel, submitProps = _ref.submitProps, id = _ref.id; var dispatch = (0, _reactRedux.useDispatch)(); var submitBtnProps = submitProps.submitBtnProps, cancelBtnProps = submitProps.cancelBtnProps, rest = _objectWithoutProperties(submitProps, _excluded); var boundOnSubmit = function boundOnSubmit() { return dispatch((0, _SubmitOrCancelActions.submitModal)(_objectSpread(_objectSpread({}, rest), {}, { closeFn: onCancel, id: id }))); }; return /*#__PURE__*/_react["default"].createElement(_SubmitOrCancel["default"], { isSubmitting: isSubmitting, onCancel: onCancel, onSubmit: boundOnSubmit, submitBtnProps: submitBtnProps, cancelBtnProps: cancelBtnProps }); }; ConnectedSubmitOrCancel.propTypes = { isSubmitting: _propTypes["default"].bool.isRequired, submitProps: _propTypes["default"].object, onCancel: _propTypes["default"].func.isRequired, id: _propTypes["default"].string.isRequired }; ConnectedSubmitOrCancel.defaultProps = { submitProps: {} }; var _default = ConnectedSubmitOrCancel; exports["default"] = _default; /***/ }), /* 330 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.submitModal = void 0; var _helpers = __webpack_require__(3); var _API = __webpack_require__(8); var _ToastsList = __webpack_require__(28); var _I18n = __webpack_require__(2); var _ForemanModalActions = __webpack_require__(57); function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var onModalError = function onModalError(error) { var _deepPropsToCamelCase = (0, _helpers.deepPropsToCamelCase)(error), _deepPropsToCamelCase2 = _deepPropsToCamelCase.response, _deepPropsToCamelCase3 = _deepPropsToCamelCase2 === void 0 ? {} : _deepPropsToCamelCase2, status = _deepPropsToCamelCase3.status, _deepPropsToCamelCase4 = _deepPropsToCamelCase3.data.error, message = _deepPropsToCamelCase4.message, fullMessages = _deepPropsToCamelCase4.fullMessages; if (message) { return message; } if (fullMessages) { return fullMessages.join(', '); } return "".concat(status, ": ").concat((0, _I18n.translate)('Failed to submit the request.')); }; var submitModal = function submitModal(_ref) { var url = _ref.url, message = _ref.message, _ref$method = _ref.method, method = _ref$method === void 0 ? 'delete' : _ref$method, closeFn = _ref.closeFn, _ref$getErrorMsg = _ref.getErrorMsg, getErrorMsg = _ref$getErrorMsg === void 0 ? onModalError : _ref$getErrorMsg, _ref$onSuccess = _ref.onSuccess, onSuccess = _ref$onSuccess === void 0 ? function () {} : _ref$onSuccess, id = _ref.id; return /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dispatch) { var _yield$API$method, data; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; dispatch((0, _ForemanModalActions.setModalStartSubmitting)({ id: id })); _context.next = 4; return _API.API[method](url, {}); case 4: _yield$API$method = _context.sent; data = _yield$API$method.data; dispatch((0, _ForemanModalActions.setModalStopSubmitting)({ id: id })); onSuccess(data); closeFn(); dispatch((0, _ToastsList.addToast)({ type: 'success', message: message })); _context.next = 16; break; case 12: _context.prev = 12; _context.t0 = _context["catch"](0); dispatch((0, _ForemanModalActions.setModalStopSubmitting)({ id: id })); dispatch((0, _ToastsList.addToast)({ type: 'error', message: getErrorMsg(_context.t0) })); case 16: case "end": return _context.stop(); } }, _callee, null, [[0, 12]]); })); return function (_x) { return _ref2.apply(this, arguments); }; }(); }; exports.submitModal = submitModal; /***/ }), /* 331 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _SubmitBtn = _interopRequireDefault(__webpack_require__(332)); var _CancelBtn = _interopRequireDefault(__webpack_require__(335)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var SubmitOrCancel = function SubmitOrCancel(_ref) { var isSubmitting = _ref.isSubmitting, onCancel = _ref.onCancel, onSubmit = _ref.onSubmit, submitBtnProps = _ref.submitBtnProps, cancelBtnProps = _ref.cancelBtnProps; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SubmitBtn["default"], _extends({ onSubmit: onSubmit, isSubmitting: isSubmitting }, submitBtnProps)), /*#__PURE__*/_react["default"].createElement(_CancelBtn["default"], _extends({ onCancel: onCancel, disabled: isSubmitting }, cancelBtnProps))); }; SubmitOrCancel.propTypes = { isSubmitting: _propTypes["default"].bool.isRequired, onCancel: _propTypes["default"].func.isRequired, onSubmit: _propTypes["default"].func.isRequired, submitBtnProps: _propTypes["default"].object, cancelBtnProps: _propTypes["default"].object }; SubmitOrCancel.defaultProps = { submitBtnProps: {}, cancelBtnProps: {} }; var _default = SubmitOrCancel; exports["default"] = _default; /***/ }), /* 332 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _Loader = __webpack_require__(44); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SubmitBtn = function SubmitBtn(_ref) { var isSubmitting = _ref.isSubmitting, onSubmit = _ref.onSubmit, bsStyle = _ref.bsStyle, btnText = _ref.btnText; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: bsStyle, disabled: isSubmitting, onClick: onSubmit }, "\xA0", btnText, "\xA0", isSubmitting && /*#__PURE__*/_react["default"].createElement("span", { className: "fr" }, (0, _Loader.simpleLoader)('sm'))); }; SubmitBtn.propTypes = { isSubmitting: _propTypes["default"].bool.isRequired, onSubmit: _propTypes["default"].func.isRequired, bsStyle: _propTypes["default"].string, btnText: _propTypes["default"].string }; SubmitBtn.defaultProps = { bsStyle: 'primary', btnText: (0, _I18n.translate)('Submit') }; var _default = SubmitBtn; exports["default"] = _default; /***/ }), /* 333 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 334 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 335 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var CancelBtn = function CancelBtn(_ref) { var onCancel = _ref.onCancel, disabled = _ref.disabled, bsStyle = _ref.bsStyle, btnText = _ref.btnText; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: bsStyle, onClick: onCancel, disabled: disabled }, btnText); }; CancelBtn.propTypes = { onCancel: _propTypes["default"].func.isRequired, disabled: _propTypes["default"].bool, bsStyle: _propTypes["default"].string, btnText: _propTypes["default"].string }; CancelBtn.defaultProps = { disabled: false, bsStyle: 'default', btnText: (0, _I18n.translate)('Cancel') }; var _default = CancelBtn; exports["default"] = _default; /***/ }), /* 336 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractModalNodes = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _ForemanModalHeader = _interopRequireDefault(__webpack_require__(81)); var _ForemanModalFooter = _interopRequireDefault(__webpack_require__(82)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /** * Extract Header and Footer child nodes from ForemanModal. * @param {PropTypes.node} children ForemanModal props.children * @return {object} Child nodes separated out into headerChild, footerChild, otherChildren */ var extractModalNodes = function extractModalNodes(children) { children = _react["default"].Children.toArray(children); var headerChild = children.find(function (child) { return child.type === _ForemanModalHeader["default"]; }) || null; var footerChild = children.find(function (child) { return child.type === _ForemanModalFooter["default"]; }) || null; var otherChildren = children.filter(function (child) { return child && // child.type !== undefined && child !== headerChild && child !== footerChild; }); return { headerChild: headerChild, footerChild: footerChild, otherChildren: otherChildren }; }; exports.extractModalNodes = extractModalNodes; /***/ }), /* 337 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _ForemanModalConstants = __webpack_require__(136); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({}); // Modals state has id as key and open state as value: // { myModal: {open: true} } // Since keys cannot be duplicated, we avoid creating duplicate modals in this way. var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case _ForemanModalConstants.SET_MODAL_OPEN: return state.setIn([action.payload.id, 'isOpen'], true); // setIn(keypath, value) case _ForemanModalConstants.SET_MODAL_CLOSED: return state.setIn([action.payload.id, 'isOpen'], false); case _ForemanModalConstants.ADD_MODAL: if (state[action.payload.id]) return state; // if it already exists, don't change its state return state.setIn([action.payload.id], { isOpen: action.payload.isOpen || false, isSubmitting: action.payload.isSubmitting || false }); case _ForemanModalConstants.SET_MODAL_START_SUBMITTING: return state.setIn([action.payload.id, 'isSubmitting'], true); case _ForemanModalConstants.SET_MODAL_STOP_SUBMITTING: return state.setIn([action.payload.id, 'isSubmitting'], false); default: return state; } }; exports["default"] = _default; /***/ }), /* 338 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _reactRedux = __webpack_require__(5); var _BookmarkForm = _interopRequireDefault(__webpack_require__(339)); var _forms = __webpack_require__(84); var _AutoCompleteSelectors = __webpack_require__(75); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var mapStateToProps = function mapStateToProps(state, _ref) { var controller = _ref.controller; return { initialValues: { "public": true, query: (0, _AutoCompleteSelectors.selectAutocompleteSearchQuery)(state, 'searchBar', { controller: controller }) } }; }; var mapDispatchToProps = { submitForm: _forms.submitForm }; var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_BookmarkForm["default"]); exports["default"] = _default; /***/ }), /* 339 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var Yup = _interopRequireWildcard(__webpack_require__(139)); var _helpers = __webpack_require__(3); var _ForemanForm = _interopRequireDefault(__webpack_require__(83)); var _TextField = _interopRequireDefault(__webpack_require__(140)); var _I18n = __webpack_require__(2); var _validators = __webpack_require__(141); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var BookmarkForm = function BookmarkForm(_ref) { var _Yup$string, _Yup$string2; var url = _ref.url, submitForm = _ref.submitForm, controller = _ref.controller, onCancel = _ref.onCancel, initialValues = _ref.initialValues, setModalClosed = _ref.setModalClosed, bookmarks = _ref.bookmarks; var existsNamesRegex = new RegExp("^(?!(".concat(bookmarks.map(function (_ref2) { var name = _ref2.name; return name; }).join('|'), ")$).+")); var bookmarkFormSchema = Yup.object().shape({ name: (_Yup$string = Yup.string()).max.apply(_Yup$string, _toConsumableArray((0, _validators.maxLengthMsg)(254))).required((0, _validators.requiredMsg)()).matches(existsNamesRegex, { excludeEmptyString: true, message: (0, _I18n.translate)('name already exists') }), query: (_Yup$string2 = Yup.string()).max.apply(_Yup$string2, _toConsumableArray((0, _validators.maxLengthMsg)(4096))).required((0, _validators.requiredMsg)()) }); var handleSubmit = function handleSubmit(values, actions) { return submitForm({ url: url, values: _objectSpread(_objectSpread({}, values), {}, { controller: controller }), item: 'Bookmarks', message: (0, _I18n.translate)('Bookmark was successfully created.'), successCallback: setModalClosed, actions: actions }); }; return /*#__PURE__*/_react["default"].createElement(_ForemanForm["default"], { onSubmit: handleSubmit, initialValues: initialValues, validationSchema: bookmarkFormSchema, onCancel: onCancel }, /*#__PURE__*/_react["default"].createElement(_TextField["default"], { name: "name", type: "text", required: "true", label: (0, _I18n.translate)('Name') }), /*#__PURE__*/_react["default"].createElement(_TextField["default"], { name: "query", type: "textarea", required: "true", label: (0, _I18n.translate)('Query'), inputClassName: "col-md-8" }), /*#__PURE__*/_react["default"].createElement(_TextField["default"], { name: "public", type: "checkbox", label: (0, _I18n.translate)('Public') })); }; BookmarkForm.propTypes = { onCancel: _propTypes["default"].func, submitForm: _propTypes["default"].func.isRequired, controller: _propTypes["default"].string.isRequired, initialValues: _propTypes["default"].object.isRequired, url: _propTypes["default"].string.isRequired, setModalClosed: _propTypes["default"].func.isRequired, bookmarks: _propTypes["default"].array }; BookmarkForm.defaultProps = { onCancel: _helpers.noop, bookmarks: [] }; var _default = BookmarkForm; exports["default"] = _default; /***/ }), /* 340 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isInitialValid = exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _formik = __webpack_require__(59); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _Form = _interopRequireDefault(__webpack_require__(341)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var isInitialValid = function isInitialValid(_ref) { var validationSchema = _ref.validationSchema, initialValues = _ref.initialValues; return !validationSchema ? true : validationSchema.isValidSync(initialValues); }; exports.isInitialValid = isInitialValid; var ForemanForm = function ForemanForm(_ref2) { var onSubmit = _ref2.onSubmit, children = _ref2.children, initialValues = _ref2.initialValues, validationSchema = _ref2.validationSchema, enableReinitialize = _ref2.enableReinitialize, onCancel = _ref2.onCancel; return /*#__PURE__*/_react["default"].createElement(_formik.Formik, { onSubmit: onSubmit, initialValues: initialValues, validationSchema: validationSchema, isInitialValid: isInitialValid, enableReinitialize: enableReinitialize }, function (formProps) { var disabled = formProps.isSubmitting || !formProps.isValid; var submissionError = formProps.errors._error; return /*#__PURE__*/_react["default"].createElement(_Form["default"], { onSubmit: formProps.handleSubmit, onCancel: onCancel, disabled: disabled, error: submissionError, errorTitle: (submissionError === null || submissionError === void 0 ? void 0 : submissionError.severity) === 'danger' ? (0, _I18n.translate)('Error! ') : (0, _I18n.translate)('Warning! '), submitting: formProps.isSubmitting }, cloneChildren(children, { formProps: formProps, disabled: disabled })); }); }; var cloneChildren = function cloneChildren(children, childProps) { return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children.map ? children.map(function (child, idx) { return /*#__PURE__*/_react["default"].cloneElement(child, _objectSpread(_objectSpread({}, childProps), {}, { key: idx })); }) : /*#__PURE__*/_react["default"].cloneElement(children, _objectSpread({}, childProps))); }; ForemanForm.propTypes = { onSubmit: _propTypes["default"].func.isRequired, onCancel: _propTypes["default"].func.isRequired, initialValues: _propTypes["default"].object.isRequired, validationSchema: _propTypes["default"].object, children: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].array]).isRequired, enableReinitialize: _propTypes["default"].bool }; ForemanForm.defaultProps = { validationSchema: undefined, enableReinitialize: false }; var _default = ForemanForm; exports["default"] = _default; /***/ }), /* 341 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _AlertBody = _interopRequireDefault(__webpack_require__(78)); var _Actions = _interopRequireDefault(__webpack_require__(342)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Form = function Form(_ref) { var className = _ref.className, onSubmit = _ref.onSubmit, onCancel = _ref.onCancel, children = _ref.children, error = _ref.error, touched = _ref.touched, disabled = _ref.disabled, submitting = _ref.submitting, errorTitle = _ref.errorTitle; return /*#__PURE__*/_react["default"].createElement("form", { className: className, onSubmit: onSubmit }, error && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Alert, { className: "base in fade", type: error.severity || 'danger' }, /*#__PURE__*/_react["default"].createElement(_AlertBody["default"], { title: errorTitle }, error.errorMsgs.length === 1 ? /*#__PURE__*/_react["default"].createElement("span", null, error.errorMsgs[0]) : error.errorMsgs.map(function (e, idx) { return /*#__PURE__*/_react["default"].createElement("li", { key: idx }, e); }))), children, /*#__PURE__*/_react["default"].createElement(_Actions["default"], { onCancel: onCancel, disabled: disabled, submitting: submitting })); }; Form.propTypes = { children: _propTypes["default"].node, className: _propTypes["default"].string, error: _propTypes["default"].shape({ errorMsgs: _propTypes["default"].arrayOf(_propTypes["default"].string), severity: _propTypes["default"].string }), touched: _propTypes["default"].bool, disabled: _propTypes["default"].bool, submitting: _propTypes["default"].bool, errorTitle: _propTypes["default"].string, onSubmit: _propTypes["default"].func, onCancel: _propTypes["default"].func }; Form.defaultProps = { className: 'form-horizontal well', children: null, error: null, touched: false, disabled: false, submitting: false, errorTitle: "".concat((0, _I18n.translate)('Unable to save'), ". "), onSubmit: _helpers.noop, onCancel: _helpers.noop }; var _default = Form; exports["default"] = _default; /***/ }), /* 342 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _Loader = __webpack_require__(44); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var FormActions = function FormActions(_ref) { var onCancel = _ref.onCancel, disabled = _ref.disabled, submitting = _ref.submitting; return /*#__PURE__*/_react["default"].createElement("div", { className: "clearfix" }, /*#__PURE__*/_react["default"].createElement("div", { className: "form-actions" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: "primary", type: "submit", disabled: disabled || submitting }, "\xA0", (0, _I18n.translate)('Submit'), submitting && /*#__PURE__*/_react["default"].createElement("span", { className: "fr" }, (0, _Loader.simpleLoader)('sm'))), ' ' /* adds whitespace between the buttons */, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: "default", onClick: onCancel, disabled: submitting }, (0, _I18n.translate)('Cancel')))); }; FormActions.propTypes = { disabled: _propTypes["default"].bool, submitting: _propTypes["default"].bool, onCancel: _propTypes["default"].func }; FormActions.defaultProps = { disabled: false, submitting: false, onCancel: _helpers.noop }; var _default = FormActions; exports["default"] = _default; /***/ }), /* 343 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _formik = __webpack_require__(59); var _TextFieldInner = _interopRequireDefault(__webpack_require__(344)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var TextField = function TextField(_ref) { var name = _ref.name, label = _ref.label, type = _ref.type, className = _ref.className, inputClassName = _ref.inputClassName, required = _ref.required, validate = _ref.validate; return /*#__PURE__*/_react["default"].createElement(_formik.Field, { name: name, validate: validate, render: function render(_ref2) { var field = _ref2.field, _ref2$form = _ref2.form, touched = _ref2$form.touched, errors = _ref2$form.errors; return /*#__PURE__*/_react["default"].createElement(_TextFieldInner["default"], { input: _objectSpread(_objectSpread({}, field), {}, { value: field.value || '' }), meta: { touched: touched[name], error: errors[name] }, name: name, type: type, required: required, className: className, inputClassName: inputClassName, label: label }); } }); }; TextField.propTypes = { name: _propTypes["default"].string.isRequired, label: _propTypes["default"].string, type: _propTypes["default"].string, className: _propTypes["default"].string, inputClassName: _propTypes["default"].string, required: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].string]), validate: _propTypes["default"].func }; TextField.defaultProps = { label: '', type: 'text', className: '', required: false, inputClassName: undefined, validate: undefined }; var _default = TextField; exports["default"] = _default; /***/ }), /* 344 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _CommonForm = _interopRequireDefault(__webpack_require__(34)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var TextFieldInner = function TextFieldInner(_ref) { var input = _ref.input, label = _ref.label, type = _ref.type, required = _ref.required, className = _ref.className, inputClassName = _ref.inputClassName, _ref$meta = _ref.meta, touched = _ref$meta.touched, error = _ref$meta.error; return /*#__PURE__*/_react["default"].createElement(_CommonForm["default"], { label: label, className: className, inputClassName: inputClassName, touched: touched, required: required, error: error }, type === 'textarea' ? /*#__PURE__*/_react["default"].createElement("textarea", _extends({}, input, { className: "form-control" })) : /*#__PURE__*/_react["default"].createElement("input", _extends({}, input, { type: type, checked: type === 'checkbox' ? input.value : undefined, className: type === 'checkbox' ? '' : 'form-control' }))); }; TextFieldInner.propTypes = { input: _propTypes["default"].object, label: _propTypes["default"].string, type: _propTypes["default"].string, required: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].string]), className: _propTypes["default"].string, inputClassName: _propTypes["default"].string, meta: _propTypes["default"].shape({ touched: _propTypes["default"].bool, error: _propTypes["default"].string }) }; TextFieldInner.defaultProps = { input: {}, label: '', type: 'text', className: '', required: false, inputClassName: undefined, meta: { touched: false, error: undefined } }; var _default = TextFieldInner; exports["default"] = _default; /***/ }), /* 345 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.savedBookmarksItems = exports.manageBookmarksItem = exports.addBookmarkItem = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); var _reactIcons = __webpack_require__(11); var _reactCore = __webpack_require__(6); var _I18n = __webpack_require__(2); var _constants = __webpack_require__(7); var _DocumentationLink = _interopRequireDefault(__webpack_require__(346)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var addBookmarkItem = function addBookmarkItem(_ref) { var canCreate = _ref.canCreate, setModalOpen = _ref.setModalOpen; return canCreate && /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownGroup, { key: "group 1" }, /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { key: "newBookmark", id: "newBookmark", onClick: setModalOpen }, /*#__PURE__*/_react["default"].createElement(_reactIcons.PlusIcon, null), " ", (0, _I18n.translate)('Bookmark this search')), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownSeparator, { key: "separator" })); }; exports.addBookmarkItem = addBookmarkItem; var pendingItem = /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { key: "spinner", className: "loader-root", isDisabled: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.Spinner, { size: "xs", "aria-label": "loading bookmarks" })); var bookmarksList = function bookmarksList(_ref2) { var bookmarks = _ref2.bookmarks, onBookmarkClick = _ref2.onBookmarkClick; return bookmarks.length > 0 && bookmarks.map(function (_ref3) { var name = _ref3.name, query = _ref3.query; return /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { key: name, onClick: function onClick() { return onBookmarkClick(query); } }, /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, name)); }) || /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { key: "not found", isDisabled: true }, (0, _I18n.translate)('None found')); }; var errorItem = function errorItem(errors) { return /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { key: "bookmarks-errors", isDisabled: true }, /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, (0, _I18n.sprintf)('Failed to load bookmarks: %s', errors))); }; var savedBookmarksItems = function savedBookmarksItems(_ref4) { var bookmarks = _ref4.bookmarks, onBookmarkClick = _ref4.onBookmarkClick, status = _ref4.status, errors = _ref4.errors; return /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownGroup, { key: "saved bookmarks", label: (0, _I18n.translate)('Saved Bookmarks') }, [status === _constants.STATUS.PENDING && [pendingItem], status === _constants.STATUS.RESOLVED && [bookmarksList({ bookmarks: bookmarks, onBookmarkClick: onBookmarkClick })], status === _constants.STATUS.ERROR && [errorItem(errors)]].filter(function (item) { return item; })); }; exports.savedBookmarksItems = savedBookmarksItems; var manageBookmarksItem = function manageBookmarksItem(_ref5) { var canCreate = _ref5.canCreate, onClick = _ref5.onClick, documentationUrl = _ref5.documentationUrl; return /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownGroup, { key: "manage bookmarks" }, /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownSeparator, { key: "separator" }), canCreate && /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { key: "manageBookmarks", id: "manageBookmarks", onClick: onClick }, (0, _I18n.translate)('Manage Bookmarks')), /*#__PURE__*/_react["default"].createElement(_DocumentationLink["default"], { href: documentationUrl })); }; exports.manageBookmarksItem = manageBookmarksItem; /***/ }), /* 346 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DocumentationLink = function DocumentationLink(_ref) { var href = _ref.href, children = _ref.children; return /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { key: "documentationUrl", onClick: (0, _helpers.newWindowOnClick)(href) }, /*#__PURE__*/_react["default"].createElement(_reactIcons.QuestionCircleIcon, null), " ", children); }; DocumentationLink.propTypes = { href: _propTypes["default"].string.isRequired, children: _propTypes["default"].node }; DocumentationLink.defaultProps = { children: (0, _I18n.translate)('Documentation') }; var _default = DocumentationLink; exports["default"] = _default; /***/ }), /* 347 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialState = exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _BookmarksConstants = __webpack_require__(80); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var initialState = (0, _seamlessImmutable["default"])({}); exports.initialState = initialState; var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload, response = _ref.response; switch (type) { case _BookmarksConstants.BOOKMARKS_FORM_SUBMITTED_SUCCESS: return state.setIn([response.controller, 'results'], [].concat(_toConsumableArray(state.results || []), [response])); default: return state; } }; exports["default"] = _default; /***/ }), /* 348 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectBookmarksResults = void 0; var _APISelectors = __webpack_require__(14); function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var sortByName = function sortByName(a, b) { if (a.name < b.name) { return -1; } if (a.name > b.name) { return 1; } // names must be equal return 0; }; var selectBookmarks = function selectBookmarks(state) { return state.bookmarksPF4 || {}; }; var selectBookmarksByController = function selectBookmarksByController(state, controller) { return selectBookmarks(state)[controller] || {}; }; var selectBookmarksResults = function selectBookmarksResults(store, key, controller) { return [].concat(_toConsumableArray(selectBookmarksByController(store, controller).results || []), _toConsumableArray((0, _APISelectors.selectAPIResponse)(store, key).results || [])).sort(sortByName); }; exports.selectBookmarksResults = selectBookmarksResults; /***/ }), /* 349 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 350 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_HELMET__; /***/ }), /* 351 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _HOC = __webpack_require__(60); var _AuditsList = _interopRequireDefault(__webpack_require__(357)); var _AuditsLoadingPage = _interopRequireDefault(__webpack_require__(367)); var _Pagination = _interopRequireDefault(__webpack_require__(85)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var AuditsTable = function AuditsTable(_ref) { var audits = _ref.audits, page = _ref.page, itemCount = _ref.itemCount, fetchAndPush = _ref.fetchAndPush; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", { id: "audit-list" }, /*#__PURE__*/_react["default"].createElement(_AuditsList["default"], { data: { audits: audits }, fetchAndPush: fetchAndPush })), /*#__PURE__*/_react["default"].createElement("div", { id: "pagination" }, /*#__PURE__*/_react["default"].createElement(_Pagination["default"], { data: { itemCount: itemCount, viewType: 'table', classNames: { pagination_classes: 'audits-pagination' } }, pagination: { page: page }, onPageSet: function onPageSet(newPage) { return fetchAndPush({ page: newPage }); }, onPerPageSelect: function onPerPageSelect(newPerPage) { return fetchAndPush({ perPage: newPerPage, page: 1 }); } }))); }; AuditsTable.propTypes = { audits: _propTypes["default"].array.isRequired, page: _propTypes["default"].number.isRequired, itemCount: _propTypes["default"].number.isRequired, fetchAndPush: _propTypes["default"].func.isRequired }; var _default = (0, _HOC.withRenderHandler)({ Component: AuditsTable, LoadingComponent: _AuditsLoadingPage["default"] }); exports["default"] = _default; /***/ }), /* 352 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _EmptyState = _interopRequireDefault(__webpack_require__(36)); __webpack_require__(355); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var EmptyPage = function EmptyPage(_ref) { var _ref$message = _ref.message, type = _ref$message.type, text = _ref$message.text; return /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], { icon: type === 'error' ? 'error-circle-o' : 'add-circle-o', header: type === 'error' ? (0, _I18n.translate)('Error') : (0, _I18n.translate)('No Results'), description: text }); }; EmptyPage.propTypes = { message: _propTypes["default"].shape({ type: _propTypes["default"].oneOf(['empty', 'error']), text: _propTypes["default"].string }) }; EmptyPage.defaultProps = { message: _propTypes["default"].shape({ type: 'empty', text: 'No Results' }) }; var _default = EmptyPage; exports["default"] = _default; /***/ }), /* 353 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 354 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _connectedReactRouter = __webpack_require__(33); var _reactCore = __webpack_require__(6); var _EmptyStatePattern = _interopRequireDefault(__webpack_require__(143)); var _EmptyStatePropTypes = __webpack_require__(144); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DefaultEmptyState = function DefaultEmptyState(props) { var icon = props.icon, iconType = props.iconType, header = props.header, description = props.description, documentation = props.documentation, action = props.action, secondaryActions = props.secondaryActions; var dispatch = (0, _reactRedux.useDispatch)(); var actionButtonClickHandler = function actionButtonClickHandler(_ref) { var url = _ref.url, onClick = _ref.onClick; if (onClick) onClick();else if (url) dispatch((0, _connectedReactRouter.push)(url)); }; var ActionButton = action ? /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { component: "a", onClick: function onClick() { return actionButtonClickHandler(action); }, variant: "primary" }, action.title) : null; var SecondaryButton = secondaryActions ? secondaryActions.map(function (_ref2) { var title = _ref2.title, url = _ref2.url, _onClick = _ref2.onClick; return /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { component: "a", key: "sec-button-".concat(title), onClick: function onClick() { return actionButtonClickHandler({ url: url, onClick: _onClick }); }, variant: "secondary" }, title); }) : null; return /*#__PURE__*/_react["default"].createElement(_EmptyStatePattern["default"], { icon: icon, iconType: iconType, header: header, description: description, documentation: documentation, action: ActionButton, secondaryActions: SecondaryButton }); }; DefaultEmptyState.propTypes = _EmptyStatePropTypes.defaultEmptyStatePropTypes; DefaultEmptyState.defaultProps = { icon: 'add-circle-o', secondaryActions: [], iconType: 'pf' }; var _default = DefaultEmptyState; exports["default"] = _default; /***/ }), /* 355 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 356 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 357 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _SearchLink = _interopRequireDefault(__webpack_require__(358)); var _ShowInlineRequestUuid = _interopRequireDefault(__webpack_require__(359)); var _ShowOrgsLocs = _interopRequireDefault(__webpack_require__(360)); var _ActionLinks = _interopRequireDefault(__webpack_require__(362)); var _ExpansiveView = _interopRequireDefault(__webpack_require__(363)); var _UserDetails = _interopRequireDefault(__webpack_require__(365)); var _I18n = __webpack_require__(2); var _ShortDateTime = _interopRequireDefault(__webpack_require__(146)); __webpack_require__(366); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var isAuditLogin = function isAuditLogin(auditedChanges) { var name; try { var _Object$keys = Object.keys(auditedChanges); var _Object$keys2 = _slicedToArray(_Object$keys, 1); name = _Object$keys2[0]; } catch (e) { name = ''; } return name === 'last_login_on'; }; var description = function description(actionDisplayName) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.ListView.Description, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.ListView.DescriptionText, null, actionDisplayName)); }; var renderAdditionalInfoItems = function renderAdditionalInfoItems(items) { return items && items.map(function (item, index) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.ListView.InfoItem, { key: index }, item); }); }; var renderTimestamp = function renderTimestamp(date) { return /*#__PURE__*/_react["default"].createElement("span", { className: "gray-text" }, /*#__PURE__*/_react["default"].createElement(_ShortDateTime["default"], { date: date, defaultValue: (0, _I18n.translate)('N/A'), showRelativeTimeTooltip: true })); }; var renderResourceLink = function renderResourceLink(auditTitle, auditTitleUrl, id) { if (auditTitleUrl) { return /*#__PURE__*/_react["default"].createElement(_SearchLink["default"], { url: auditTitleUrl, textValue: auditTitle, title: (0, _I18n.translate)('Filter audits for this resource only'), id: id }); } return auditTitle; }; var AuditsList = function AuditsList(_ref) { var audits = _ref.data.audits, fetchAndPush = _ref.fetchAndPush; var initExpanded = audits.length === 1; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.ListView, null, audits.map(function (_ref2) { var id = _ref2.id, createdAt = _ref2.created_at, auditedTypeName = _ref2.audited_type_name, auditTitle = _ref2.audit_title, auditTitleUrl = _ref2.audit_title_url, auditedChanges = _ref2.audited_changes, userInfo = _ref2.user_info, remoteAddress = _ref2.remote_address, actionDisplayName = _ref2.action_display_name, affectedOrganizations = _ref2.affected_organizations, affectedLocations = _ref2.affected_locations, allowedActions = _ref2.allowed_actions, requestUuid = _ref2.request_uuid, comment = _ref2.comment, auditedChangesWithIdToLabel = _ref2.audited_changes_with_id_to_label, details = _ref2.details; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.ListView.Item, { id: id, key: id, className: remoteAddress ? 'main-info-minimize-padding' : 'main-info-maximize-padding', actions: renderTimestamp(createdAt), additionalInfo: renderAdditionalInfoItems([auditedTypeName.toUpperCase(), renderResourceLink(auditTitle, auditTitleUrl, id)]), heading: /*#__PURE__*/_react["default"].createElement(_UserDetails["default"], { isAuditLogin: isAuditLogin(auditedChanges), userInfo: userInfo, remoteAddress: remoteAddress }), description: description(actionDisplayName), stacked: false, hideCloseIcon: true, initExpanded: initExpanded }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Row, null, /*#__PURE__*/_react["default"].createElement(_ShowOrgsLocs["default"], { orgs: affectedOrganizations, locs: affectedLocations }), /*#__PURE__*/_react["default"].createElement(_ActionLinks["default"], { allowedActions: allowedActions })), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Row, null, /*#__PURE__*/_react["default"].createElement(_ShowInlineRequestUuid["default"], { fetchAndPush: fetchAndPush, requestUuid: requestUuid, id: id })), /*#__PURE__*/_react["default"].createElement(_ExpansiveView["default"], { actionDisplayName: actionDisplayName, details: details, comment: comment, auditTitle: auditTitle, auditedChanges: auditedChanges, auditedChangesWithIdToLabel: auditedChangesWithIdToLabel })); })); }; AuditsList.propTypes = { data: _propTypes["default"].shape({ audits: _propTypes["default"].array.isRequired }).isRequired, fetchAndPush: _propTypes["default"].func.isRequired }; var _default = AuditsList; exports["default"] = _default; /***/ }), /* 358 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SearchLink = function SearchLink(_ref) { var url = _ref.url, title = _ref.title, id = _ref.id, textValue = _ref.textValue; var linkProps = { href: url, title: title, id: "resource-link-".concat(id) }; return /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, /*#__PURE__*/_react["default"].createElement("a", linkProps, textValue)); }; SearchLink.propTypes = { url: _propTypes["default"].string.isRequired, id: _propTypes["default"].number.isRequired, title: _propTypes["default"].string, textValue: _propTypes["default"].string }; SearchLink.defaultProps = { title: undefined, textValue: '' }; var _default = SearchLink; exports["default"] = _default; /***/ }), /* 359 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ShowInlineRequestUuid = function ShowInlineRequestUuid(_ref) { var fetchAndPush = _ref.fetchAndPush, requestUuid = _ref.requestUuid, id = _ref.id; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { sm: 10, className: "request-uuid-column" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Row, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { md: 2 }, /*#__PURE__*/_react["default"].createElement("span", null, (0, _I18n.translate)('Request UUID'))), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { md: 10, className: "value" }, /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, /*#__PURE__*/_react["default"].createElement("a", { onClick: function onClick() { return fetchAndPush({ searchQuery: "request_uuid = ".concat(requestUuid) }); }, title: (0, _I18n.translate)('HTTP request UUID, clicking will filter audits for this request. It can also be used for searching in application logs.') }, requestUuid))))); }; ShowInlineRequestUuid.propTypes = { fetchAndPush: _propTypes["default"].func.isRequired, requestUuid: _propTypes["default"].string.isRequired, id: _propTypes["default"].number.isRequired }; var _default = ShowInlineRequestUuid; exports["default"] = _default; /***/ }), /* 360 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _ShowTaxonomyInline = _interopRequireDefault(__webpack_require__(361)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ShowOrgsLocs = function ShowOrgsLocs(_ref) { var orgs = _ref.orgs, locs = _ref.locs; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { sm: 10, className: "taxonomy-section" }, /*#__PURE__*/_react["default"].createElement(_ShowTaxonomyInline["default"], { displayLabel: (0, _I18n.translate)('Affected Organizations'), items: orgs }), /*#__PURE__*/_react["default"].createElement(_ShowTaxonomyInline["default"], { displayLabel: (0, _I18n.translate)('Affected Locations'), items: locs })); }; ShowOrgsLocs.propTypes = { orgs: _propTypes["default"].array, locs: _propTypes["default"].array }; ShowOrgsLocs.defaultProps = { orgs: [], locs: [] }; var _default = ShowOrgsLocs; exports["default"] = _default; /***/ }), /* 361 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ShowTaxonomyInline = function ShowTaxonomyInline(_ref) { var displayLabel = _ref.displayLabel, items = _ref.items; var listItems = items.map(function (_ref2, index) { var name = _ref2.name, url = _ref2.url, disabled = _ref2.disabled, addCSS = _ref2.css_class; return /*#__PURE__*/_react["default"].createElement("a", { href: url, key: index, className: "apply-comma ".concat(addCSS || ''), disabled: disabled }, name); }); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Row, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { md: 2 }, /*#__PURE__*/_react["default"].createElement("span", null, displayLabel)), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { md: 10 }, /*#__PURE__*/_react["default"].createElement("strong", null, items && listItems))); }; ShowTaxonomyInline.propTypes = { displayLabel: _propTypes["default"].string, items: _propTypes["default"].arrayOf(_propTypes["default"].shape({ name: _propTypes["default"].string, url: _propTypes["default"].string, css_class: _propTypes["default"].string, disabled: _propTypes["default"].bool })) }; ShowTaxonomyInline.defaultProps = { displayLabel: '', items: [] }; var _default = ShowTaxonomyInline; exports["default"] = _default; /***/ }), /* 362 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ActionLinks = function ActionLinks(_ref) { var allowedActions = _ref.allowedActions; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { sm: 2, className: "actions-btns" }, allowedActions && allowedActions.map(function (_ref2, index) { var url = _ref2.url, CssClassString = _ref2.css_class, disabled = _ref2.disabled, name = _ref2.name, title = _ref2.title; return /*#__PURE__*/_react["default"].createElement("a", { key: index, className: CssClassString, href: url, disabled: disabled }, name || title); })); }; ActionLinks.propTypes = { allowedActions: _propTypes["default"].arrayOf(_propTypes["default"].shape({ url: _propTypes["default"].string, title: _propTypes["default"].string, name: _propTypes["default"].string, css_class: _propTypes["default"].string, disabled: _propTypes["default"].bool })) }; ActionLinks.defaultProps = { allowedActions: [] }; var _default = ActionLinks; exports["default"] = _default; /***/ }), /* 363 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _DiffContainer = _interopRequireDefault(__webpack_require__(364)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var renderListItems = function renderListItems(items) { return items && items.map(function (item, index) { return item && typeof item === 'string' && item.length > 0 ? /*#__PURE__*/_react["default"].createElement("tr", { key: index }, /*#__PURE__*/_react["default"].createElement("td", null, item)) : null; }); }; var renderCols = function renderCols(changeArr) { return changeArr && changeArr.map(function (_ref, index) { var CssClassStr = _ref.css_class, idToLabel = _ref.id_to_label; return /*#__PURE__*/_react["default"].createElement("td", { key: index, className: changeArr.length > 1 ? "col-6 col-md-4 ".concat(CssClassStr) : "col-12 col-md-8 ".concat(CssClassStr) }, /*#__PURE__*/_react["default"].createElement("div", { className: CssClassStr }, /*#__PURE__*/_react["default"].createElement("p", null, idToLabel))); }); }; var renderTableRows = function renderTableRows(changeEntries) { return changeEntries && changeEntries.map(function (_ref2, index) { var name = _ref2.name, change = _ref2.change; return /*#__PURE__*/_react["default"].createElement("tr", { key: index }, /*#__PURE__*/_react["default"].createElement("td", { key: index, className: "col-6 col-md-4" }, /*#__PURE__*/_react["default"].createElement("div", null, name)), renderCols(change)); }); }; var showAuditChanges = function showAuditChanges(actionDisplayName, auditedChangesWithIdToLabel, details) { var tableClasses = 'table table-bordered table-hover'; if (['add', 'remove'].includes(actionDisplayName) && details.length > 0) { return /*#__PURE__*/_react["default"].createElement("table", { className: "".concat(tableClasses, " details-row table-inline-changes ").concat(actionDisplayName === 'add' ? 'show-new' : 'show-old') }, /*#__PURE__*/_react["default"].createElement("tbody", null, renderListItems(details))); } if (auditedChangesWithIdToLabel.length > 0) { return /*#__PURE__*/_react["default"].createElement("table", { className: "table-changes ".concat(tableClasses) }, /*#__PURE__*/_react["default"].createElement("tbody", null, renderTableRows(auditedChangesWithIdToLabel))); } return null; }; var ExpansiveView = /*#__PURE__*/function (_React$Component) { _inherits(ExpansiveView, _React$Component); var _super = _createSuper(ExpansiveView); function ExpansiveView() { _classCallCheck(this, ExpansiveView); return _super.apply(this, arguments); } _createClass(ExpansiveView, [{ key: "showTemplateDiffIfAny", value: function showTemplateDiffIfAny() { var template = this.props.auditedChanges.template; if (template && template[0] !== template[1]) { return /*#__PURE__*/_react["default"].createElement(_DiffContainer["default"], { oldText: template[0], newText: template[1] }); } return null; } }, { key: "render", value: function render() { var _this$props = this.props, comment = _this$props.comment, actionDisplayName = _this$props.actionDisplayName, auditedChangesWithIdToLabel = _this$props.auditedChangesWithIdToLabel, details = _this$props.details; return /*#__PURE__*/_react["default"].createElement("div", { className: "grid-container" }, this.showTemplateDiffIfAny(), showAuditChanges(actionDisplayName, auditedChangesWithIdToLabel, details), comment && /*#__PURE__*/_react["default"].createElement("div", { className: "details-row comment-section" }, /*#__PURE__*/_react["default"].createElement("p", { className: "comment-title" }, /*#__PURE__*/_react["default"].createElement("strong", null, (0, _I18n.translate)('Comments'))), /*#__PURE__*/_react["default"].createElement("p", { className: "comment-desc" }, comment))); } }]); return ExpansiveView; }(_react["default"].Component); ExpansiveView.propTypes = { actionDisplayName: _propTypes["default"].string.isRequired, auditedChanges: _propTypes["default"].object.isRequired, comment: _propTypes["default"].string, auditedChangesWithIdToLabel: _propTypes["default"].arrayOf(_propTypes["default"].shape({ change: _propTypes["default"].arrayOf(_propTypes["default"].shape({ css_class: _propTypes["default"].string, id_to_label: _propTypes["default"].string })), name: _propTypes["default"].string })), details: _propTypes["default"].arrayOf(_propTypes["default"].string) }; ExpansiveView.defaultProps = { comment: undefined, auditedChangesWithIdToLabel: [], details: undefined }; var _default = ExpansiveView; exports["default"] = _default; /***/ }), /* 364 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); var _DiffView = _interopRequireDefault(__webpack_require__(53)); var _DiffRadioButtons = _interopRequireDefault(__webpack_require__(54)); __webpack_require__(120); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var DiffContainer = /*#__PURE__*/function (_React$Component) { _inherits(DiffContainer, _React$Component); var _super = _createSuper(DiffContainer); function DiffContainer(props) { var _this; _classCallCheck(this, DiffContainer); _this = _super.call(this, props); (0, _helpers.bindMethods)(_assertThisInitialized(_this), ['changeState']); _this.state = { viewType: 'split' }; return _this; } _createClass(DiffContainer, [{ key: "changeState", value: function changeState(viewType) { this.setState({ viewType: viewType }); } }, { key: "render", value: function render() { var _this$props = this.props, patch = _this$props.patch, oldText = _this$props.oldText, newText = _this$props.newText, className = _this$props.className; var viewType = this.state.viewType; return /*#__PURE__*/_react["default"].createElement("div", { id: "diff-container", className: className }, /*#__PURE__*/_react["default"].createElement(_DiffRadioButtons["default"], { changeState: this.changeState, stateView: viewType }), /*#__PURE__*/_react["default"].createElement("div", { id: "diff-table" }, /*#__PURE__*/_react["default"].createElement(_DiffView["default"], { patch: patch, oldText: oldText, newText: newText, viewType: viewType }))); } }]); return DiffContainer; }(_react["default"].Component); DiffContainer.propTypes = { oldText: _propTypes["default"].string, newText: _propTypes["default"].string, patch: _propTypes["default"].string, className: _propTypes["default"].string }; DiffContainer.defaultProps = { oldText: '', newText: '', patch: '', className: '' }; var _default = DiffContainer; exports["default"] = _default; /***/ }), /* 365 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var UserDetails = function UserDetails(_ref) { var isAuditLogin = _ref.isAuditLogin, userInfo = _ref.userInfo, remoteAddress = _ref.remoteAddress; var searchPath = userInfo.search_path, UserDisplayName = userInfo.display_name, auditPath = userInfo.audit_path; var linkProps = { href: searchPath, title: (0, _I18n.translate)('Filter audits for this user only'), className: 'user-info' }; if (isAuditLogin) { return /*#__PURE__*/_react["default"].createElement("span", { className: "user-grid" }, /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("a", linkProps, UserDisplayName))), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("a", { href: auditPath }, (0, _I18n.translate)('Logged-in')))); } return /*#__PURE__*/_react["default"].createElement("span", { className: "user-grid" }, /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("a", linkProps, UserDisplayName))), remoteAddress ? /*#__PURE__*/_react["default"].createElement("span", { className: "gray-text" }, "(", remoteAddress, ")") : null); }; UserDetails.propTypes = { userInfo: _propTypes["default"].shape({ search_path: _propTypes["default"].string, display_name: _propTypes["default"].string, audit_path: _propTypes["default"].string }).isRequired, isAuditLogin: _propTypes["default"].bool, remoteAddress: _propTypes["default"].string }; UserDetails.defaultProps = { isAuditLogin: false, remoteAddress: undefined }; var _default = UserDetails; exports["default"] = _default; /***/ }), /* 366 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 367 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactLoadingSkeleton = _interopRequireDefault(__webpack_require__(61)); __webpack_require__(368); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var AuditsLoadingPage = function AuditsLoadingPage() { return /*#__PURE__*/_react["default"].createElement("div", { id: "audits-empty-table" }, /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], { count: 5 })); }; var _default = AuditsLoadingPage; exports["default"] = _default; /***/ }), /* 368 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 369 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePaginationOptions = void 0; var _urlHelpers = __webpack_require__(21); var _ForemanContext = __webpack_require__(29); function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var usePaginationOptions = function usePaginationOptions() { var perPageOptions = new Set([5, 10, 15, 25, 50]); var _useForemanSettings = (0, _ForemanContext.useForemanSettings)(), perPage = _useForemanSettings.perPage; var URIPerPage = (0, _urlHelpers.getURIperPage)(); perPageOptions.add(perPage); if (URIPerPage) perPageOptions.add(URIPerPage); return _toConsumableArray(perPageOptions).sort(function (a, b) { return a - b; }); }; exports.usePaginationOptions = usePaginationOptions; /***/ }), /* 370 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 371 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({ page: 1, searchQuery: '', itemCount: 0 }); var withQueryReducer = function withQueryReducer(controller) { return function () { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload; switch (type) { case "".concat(controller, "_UPDATE_QUERY"): return state.merge(payload); default: return state; } }; }; var _default = withQueryReducer; exports["default"] = _default; /***/ }), /* 372 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialState = exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = (0, _seamlessImmutable["default"])({ isLoading: true, hasError: false, hasData: false, message: { type: 'empty', text: '' } }); exports.initialState = initialState; var withDataReducer = function withDataReducer(controller) { var additionalState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _seamlessImmutable["default"])({}); return function () { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState.merge(additionalState); var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload; switch (type) { case "".concat(controller, "_DATA_RESOLVED"): return state.merge(_objectSpread(_objectSpread({}, payload), {}, { isLoading: false })); case "".concat(controller, "_DATA_FAILED"): return state.merge(_objectSpread(_objectSpread({}, payload), {}, { isLoading: false, hasError: true })); case "".concat(controller, "_CLEAR_ERROR"): return state.set('hasError', false); case "".concat(controller, "_SHOW_LOADING"): return state.set('isLoading', true); case "".concat(controller, "_HIDE_LOADING"): return state.set('isLoading', false); default: return state; } }; }; var _default = withDataReducer; exports["default"] = _default; /***/ }), /* 373 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reducers = exports["default"] = void 0; var _reactRedux = __webpack_require__(5); var _BookmarksConstants = __webpack_require__(58); var bookmarksActions = _interopRequireWildcard(__webpack_require__(374)); var _ForemanModalActions = __webpack_require__(57); var _ForemanModalSelectors = __webpack_require__(42); var _Bookmarks = _interopRequireDefault(__webpack_require__(375)); var _BookmarksReducer = _interopRequireDefault(__webpack_require__(378)); var _BookmarksSelectors = __webpack_require__(379); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var mapStateToProps = function mapStateToProps(state, _ref) { var controller = _ref.controller; return { errors: (0, _BookmarksSelectors.selectBookmarksErrors)(state, controller), bookmarks: (0, _BookmarksSelectors.selectBookmarksResults)(state, controller), status: (0, _BookmarksSelectors.selectBookmarksStatus)(state, controller), isModalOpen: (0, _ForemanModalSelectors.selectIsModalOpen)(state, _BookmarksConstants.BOOKMARKS_MODAL) }; }; var boundModalActions = (0, _ForemanModalActions.bindForemanModalActionsToId)({ id: _BookmarksConstants.BOOKMARKS_MODAL }); var mapDispatchToProps = _objectSpread(_objectSpread({}, bookmarksActions), boundModalActions); var reducers = { bookmarks: _BookmarksReducer["default"] }; exports.reducers = reducers; var _default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_Bookmarks["default"]); exports["default"] = _default; /***/ }), /* 374 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBookmarks = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _API = __webpack_require__(8); var _BookmarksConstants = __webpack_require__(58); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _getBookmarks = function _getBookmarks(url, controller) { return (0, _API.get)({ key: _BookmarksConstants.BOOKMARKS, url: url, payload: { controller: controller } }); }; var getBookmarks = function getBookmarks(url, controller) { var uri = new _urijs["default"](url); // eslint-disable-next-line camelcase uri.setSearch({ search: "controller=".concat(controller), per_page: 'all' }); return _getBookmarks(uri.toString(), controller); }; exports.getBookmarks = getBookmarks; /***/ }), /* 375 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); var _patternflyReact = __webpack_require__(4); var _reactIcons = __webpack_require__(11); var _SearchModal = _interopRequireDefault(__webpack_require__(138)); var _Bookmark = _interopRequireDefault(__webpack_require__(376)); var _DocumentationLink = _interopRequireDefault(__webpack_require__(377)); var _constants = __webpack_require__(7); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); var _history = _interopRequireDefault(__webpack_require__(23)); var _urlHelpers = __webpack_require__(21); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Bookmarks = function Bookmarks(props) { var loadBookmarks = function loadBookmarks() { var bookmarks = props.bookmarks, status = props.status, url = props.url, controller = props.controller, getBookmarks = props.getBookmarks; if (bookmarks.length === 0 && status !== _constants.STATUS.PENDING) { getBookmarks(url, controller); } }; var manageBookmarks = function manageBookmarks(controller) { var query = (0, _urlHelpers.stringifyParams)({ searchQuery: "controller=".concat(controller) }); _history["default"].push({ pathname: '/bookmarks', search: query }); }; var controller = props.controller, url = props.url, canCreate = props.canCreate, bookmarks = props.bookmarks, errors = props.errors, status = props.status, documentationUrl = props.documentationUrl, onBookmarkClick = props.onBookmarkClick, setModalOpen = props.setModalOpen, setModalClosed = props.setModalClosed; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_SearchModal["default"], { controller: controller, url: url, setModalClosed: setModalClosed, bookmarks: bookmarks }), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown, { pullRight: true, id: controller, onClick: loadBookmarks }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown.Toggle, { title: (0, _I18n.translate)('Bookmarks') }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "bookmark" })), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Dropdown.Menu, { className: "scrollable-dropdown" }, canCreate && /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { key: "newBookmark", id: "newBookmark", onClick: setModalOpen }, /*#__PURE__*/_react["default"].createElement(_reactIcons.PlusIcon, null), " ", (0, _I18n.translate)('Bookmark this search')), /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { divider: true }), /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { header: true }, (0, _I18n.translate)('Saved Bookmarks')), status === _constants.STATUS.PENDING && /*#__PURE__*/_react["default"].createElement("li", { className: "loader-root" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Spinner, { size: "xs", loading: true })), status === _constants.STATUS.RESOLVED && (bookmarks.length > 0 && bookmarks.map(function (_ref) { var name = _ref.name, query = _ref.query; return /*#__PURE__*/_react["default"].createElement(_Bookmark["default"], { key: name, text: name, query: query, onClick: onBookmarkClick }); }) || /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { disabled: true }, " ", (0, _I18n.translate)('None found'))), status === _constants.STATUS.ERROR && /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { key: "bookmarks-errors" }, /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, (0, _I18n.sprintf)('Failed to load bookmarks: %s', errors))), /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { divider: true }), canCreate && /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { key: "manageBookmarks", id: "manageBookmarks", onClick: function onClick() { return manageBookmarks(controller); } }, (0, _I18n.translate)('Manage Bookmarks')), /*#__PURE__*/_react["default"].createElement(_DocumentationLink["default"], { href: documentationUrl })))); }; Bookmarks.propTypes = { controller: _propTypes["default"].string.isRequired, onBookmarkClick: _propTypes["default"].func.isRequired, url: _propTypes["default"].string.isRequired, canCreate: _propTypes["default"].bool, bookmarks: _propTypes["default"].array, errors: _propTypes["default"].string, status: _propTypes["default"].string, documentationUrl: _propTypes["default"].string, getBookmarks: _propTypes["default"].func, setModalOpen: _propTypes["default"].func.isRequired, setModalClosed: _propTypes["default"].func.isRequired }; Bookmarks.defaultProps = { canCreate: false, bookmarks: [], errors: '', status: null, documentationUrl: '', getBookmarks: _helpers.noop }; var _default = Bookmarks; exports["default"] = _default; /***/ }), /* 376 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Bookmark = function Bookmark(_ref) { var text = _ref.text, query = _ref.query, _onClick = _ref.onClick; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { onClick: function onClick() { return _onClick(query); } }, /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, text)); }; Bookmark.propTypes = { onClick: _propTypes["default"].func.isRequired, text: _propTypes["default"].string.isRequired, query: _propTypes["default"].string.isRequired }; var _default = Bookmark; exports["default"] = _default; /***/ }), /* 377 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DocumentationLink = function DocumentationLink(_ref) { var href = _ref.href, children = _ref.children; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.MenuItem, { key: "documentationUrl", onClick: (0, _helpers.newWindowOnClick)(href) }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "question-circle" }), " ", children); }; DocumentationLink.propTypes = { href: _propTypes["default"].string.isRequired, children: _propTypes["default"].node }; DocumentationLink.defaultProps = { children: (0, _I18n.translate)('Documentation') }; var _default = DocumentationLink; exports["default"] = _default; /***/ }), /* 378 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialState = exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _BookmarksConstants = __webpack_require__(58); var _constants = __webpack_require__(7); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var initialState = (0, _seamlessImmutable["default"])({}); exports.initialState = initialState; var sortByName = function sortByName(a, b) { if (a.name < b.name) { return -1; } if (a.name > b.name) { return 1; } // names must be equal return 0; }; var _default = function _default() { var _state$payload$data$c; var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload, response = _ref.response; switch (type) { case _BookmarksConstants.BOOKMARKS_REQUEST: return state.set(payload.controller, { results: [], errors: null, status: _constants.STATUS.PENDING }); case _BookmarksConstants.BOOKMARKS_SUCCESS: return state.setIn([payload.controller, 'results'], response.results).setIn([payload.controller, 'status'], _constants.STATUS.RESOLVED); case _BookmarksConstants.BOOKMARKS_FORM_SUBMITTED: if ((_state$payload$data$c = state[payload.data.controller]) !== null && _state$payload$data$c !== void 0 && _state$payload$data$c.results) { return state.setIn([payload.data.controller, 'results'], [].concat(_toConsumableArray(state[payload.data.controller].results), [payload.data]).sort(sortByName)); } return state; case _BookmarksConstants.BOOKMARKS_FAILURE: return state.setIn([payload.controller, 'errors'], response).setIn([payload.controller, 'status'], _constants.STATUS.ERROR); default: return state; } }; exports["default"] = _default; /***/ }), /* 379 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectBookmarksStatus = exports.selectBookmarksResults = exports.selectBookmarksErrors = void 0; var selectBookmarkState = function selectBookmarkState(state) { return state.bookmarks; }; var selectBookmarksSubState = function selectBookmarksSubState(state, controller) { return selectBookmarkState(state)[controller]; }; var selectBookmarksStateByController = function selectBookmarksStateByController(state, controller, attr, defaultValue) { var bookmarksState = selectBookmarksSubState(state, controller); return bookmarksState ? bookmarksState[attr] : defaultValue; }; var selectBookmarksStatus = function selectBookmarksStatus(state, controller) { return selectBookmarksStateByController(state, controller, 'status', 'RESOLVED'); }; exports.selectBookmarksStatus = selectBookmarksStatus; var selectBookmarksResults = function selectBookmarksResults(state, controller) { return selectBookmarksStateByController(state, controller, 'results', []); }; exports.selectBookmarksResults = selectBookmarksResults; var selectBookmarksErrors = function selectBookmarksErrors(state, controller) { return selectBookmarksStateByController(state, controller, 'errors', null); }; exports.selectBookmarksErrors = selectBookmarksErrors; /***/ }), /* 380 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _reactRouterDom = __webpack_require__(17); var _I18n = __webpack_require__(2); var _PageLayout = _interopRequireDefault(__webpack_require__(134)); var _ModelsPageContent = _interopRequireDefault(__webpack_require__(381)); var _constants = __webpack_require__(37); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ModelsPage = function ModelsPage(_ref) { var fetchAndPush = _ref.fetchAndPush, search = _ref.search, isLoading = _ref.isLoading, hasData = _ref.hasData, models = _ref.models, page = _ref.page, perPage = _ref.perPage, sort = _ref.sort, hasError = _ref.hasError, itemCount = _ref.itemCount, message = _ref.message, canCreate = _ref.canCreate; var handleSearch = function handleSearch(query) { return fetchAndPush({ searchQuery: query, page: 1 }); }; var createBtn = /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, { to: "/models/new" }, /*#__PURE__*/_react["default"].createElement(_reactCore.Button, null, (0, _I18n.translate)('Create model'))); return /*#__PURE__*/_react["default"].createElement(_PageLayout["default"], { header: (0, _I18n.translate)('Hardware models'), searchable: !isLoading, searchProps: _constants.MODELS_SEARCH_PROPS, searchQuery: search, isLoading: isLoading && hasData, onSearch: handleSearch, onBookmarkClick: handleSearch, toolbarButtons: canCreate && createBtn }, /*#__PURE__*/_react["default"].createElement(_ModelsPageContent["default"], { models: models, page: page, perPage: perPage, search: search, sort: sort, hasData: hasData, hasError: hasError, isLoading: isLoading, itemCount: itemCount, fetchAndPush: fetchAndPush, message: message })); }; ModelsPage.propTypes = { fetchAndPush: _propTypes["default"].func.isRequired, search: _propTypes["default"].string, isLoading: _propTypes["default"].bool.isRequired, hasData: _propTypes["default"].bool.isRequired, models: _propTypes["default"].array.isRequired, page: _propTypes["default"].number, perPage: _propTypes["default"].number, sort: _propTypes["default"].object.isRequired, hasError: _propTypes["default"].bool.isRequired, itemCount: _propTypes["default"].number.isRequired, message: _propTypes["default"].object, canCreate: _propTypes["default"].bool.isRequired }; ModelsPage.defaultProps = { page: null, perPage: null, search: '', message: {} }; var _default = ModelsPage; exports["default"] = _default; /***/ }), /* 381 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _ModelsTable = _interopRequireDefault(__webpack_require__(148)); var _PaginationWrapper = _interopRequireDefault(__webpack_require__(193)); var _ModelDeleteModal = _interopRequireDefault(__webpack_require__(410)); var _LoadingPage = _interopRequireDefault(__webpack_require__(145)); var _HOC = __webpack_require__(60); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var ModelsPageContent = function ModelsPageContent(_ref) { var models = _ref.models, search = _ref.search, sort = _ref.sort, fetchAndPush = _ref.fetchAndPush, itemCount = _ref.itemCount, page = _ref.page, perPage = _ref.perPage; var _useState = (0, _react.useState)({}), _useState2 = _slicedToArray(_useState, 2), toDelete = _useState2[0], setToDelete = _useState2[1]; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_ModelDeleteModal["default"], { toDelete: toDelete, fetchAndPush: fetchAndPush }), /*#__PURE__*/_react["default"].createElement(_ModelsTable["default"], { results: models, search: search, sortBy: sort.by, sortOrder: sort.order, getTableItems: fetchAndPush, setToDelete: setToDelete, id: "models-table" }), /*#__PURE__*/_react["default"].createElement(_PaginationWrapper["default"], { viewType: "list", itemCount: itemCount, pagination: { page: page, perPage: perPage }, onChange: fetchAndPush, dropdownButtonId: "models-page-pagination-dropdown" })); }; ModelsPageContent.propTypes = { models: _propTypes["default"].array.isRequired, search: _propTypes["default"].string, sort: _propTypes["default"].object.isRequired, fetchAndPush: _propTypes["default"].func.isRequired, itemCount: _propTypes["default"].number.isRequired, page: _propTypes["default"].number.isRequired, perPage: _propTypes["default"].number.isRequired }; ModelsPageContent.defaultProps = { search: '' }; var _default = (0, _HOC.withRenderHandler)({ Component: ModelsPageContent, LoadingComponent: _LoadingPage["default"] }); exports["default"] = _default; /***/ }), /* 382 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _table = __webpack_require__(62); var _ModelsTableSchema = _interopRequireDefault(__webpack_require__(409)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ModelsTable = function ModelsTable(_ref) { var getTableItems = _ref.getTableItems, sortBy = _ref.sortBy, sortOrder = _ref.sortOrder, results = _ref.results, onDeleteClick = _ref.onDeleteClick, id = _ref.id; return /*#__PURE__*/_react["default"].createElement(_table.Table, { key: "models-table", columns: (0, _ModelsTableSchema["default"])(getTableItems, sortBy, sortOrder, onDeleteClick), rows: results, id: id }); }; ModelsTable.propTypes = { results: _propTypes["default"].array.isRequired, getTableItems: _propTypes["default"].func.isRequired, onDeleteClick: _propTypes["default"].func.isRequired, sortBy: _propTypes["default"].string, sortOrder: _propTypes["default"].string, id: _propTypes["default"].string }; ModelsTable.defaultProps = { sortBy: '', sortOrder: '', id: undefined }; var _default = ModelsTable; exports["default"] = _default; /***/ }), /* 383 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withProps = exports.withHeaderProps = exports.withCellProps = exports.headerFormatterWithProps = exports.cellFormatterWithProps = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var withProps = function withProps(fieldType) { return function (Component) { return function (value, _ref) { var props = _ref.column[fieldType].props; return /*#__PURE__*/_react["default"].createElement(Component, props, value); }; }; }; exports.withProps = withProps; var withHeaderProps = withProps('header'); exports.withHeaderProps = withHeaderProps; var withCellProps = withProps('cell'); exports.withCellProps = withCellProps; var headerFormatterWithProps = withHeaderProps(_patternflyReact.Table.Heading); exports.headerFormatterWithProps = headerFormatterWithProps; var cellFormatterWithProps = withCellProps(_patternflyReact.Table.Cell); exports.cellFormatterWithProps = cellFormatterWithProps; /***/ }), /* 384 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactEllipsisWithTooltip = _interopRequireDefault(__webpack_require__(22)); var _cellFormatter = _interopRequireDefault(__webpack_require__(150)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = function _default(value) { return (0, _cellFormatter["default"])( /*#__PURE__*/_react["default"].createElement(_reactEllipsisWithTooltip["default"], null, value || '')); }; exports["default"] = _default; /***/ }), /* 385 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _NameCell = _interopRequireDefault(__webpack_require__(386)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var nameCellFormatter = function nameCellFormatter(controllerPluralize) { return function (value, _ref) { var _ref$rowData = _ref.rowData, canEdit = _ref$rowData.canEdit, id = _ref$rowData.id, name = _ref$rowData.name; return /*#__PURE__*/_react["default"].createElement(_NameCell["default"], { active: canEdit, id: id, name: encodeURI(name), controller: controllerPluralize }, value); }; }; var _default = nameCellFormatter; exports["default"] = _default; /***/ }), /* 386 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRouterDom = __webpack_require__(17); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var NameCell = function NameCell(_ref) { var active = _ref.active, id = _ref.id, name = _ref.name, controller = _ref.controller, children = _ref.children; return active ? /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, { to: "/".concat(controller, "/").concat(id, "-").concat(name, "/edit") }, children) : /*#__PURE__*/_react["default"].createElement("a", { href: "#", className: "disabled", disabled: "disabled", onClick: function onClick() {} }, children); }; NameCell.propTypes = { active: _propTypes["default"].bool, id: _propTypes["default"].number.isRequired, name: _propTypes["default"].string.isRequired, controller: _propTypes["default"].string.isRequired, children: _propTypes["default"].node }; NameCell.defaultProps = { active: false, children: null }; var _default = NameCell; exports["default"] = _default; /***/ }), /* 387 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _HostsCountCell = _interopRequireDefault(__webpack_require__(388)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var hostsCountCellFormatter = function hostsCountCellFormatter(controllerSingular) { return function (value, _ref) { var name = _ref.rowData.name; return /*#__PURE__*/_react["default"].createElement(_HostsCountCell["default"], { controller: controllerSingular, name: name }, value); }; }; var _default = hostsCountCellFormatter; exports["default"] = _default; /***/ }), /* 388 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var HostsCountCell = function HostsCountCell(_ref) { var name = _ref.name, controller = _ref.controller, children = _ref.children; return /*#__PURE__*/_react["default"].createElement("a", { href: "hosts?search=".concat(controller, "+%3D+\"").concat(encodeURI(name), "\"") }, children); }; HostsCountCell.propTypes = { name: _propTypes["default"].string.isRequired, controller: _propTypes["default"].string.isRequired, children: _propTypes["default"].node.isRequired }; HostsCountCell.defaultProps = {}; var _default = HostsCountCell; exports["default"] = _default; /***/ }), /* 389 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _SortableHeader = _interopRequireDefault(__webpack_require__(390)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var sortableHeaderFormatter = function sortableHeaderFormatter(sortController) { return function (label, _ref) { var property = _ref.property; var isSorter = property === sortController.property; var currentOrder = isSorter ? sortController.order : ''; var nextOrder = currentOrder === 'ASC' ? 'DESC' : 'ASC'; return /*#__PURE__*/_react["default"].createElement(_SortableHeader["default"], { onClick: function onClick() { sortController.apply(property, nextOrder); }, sortOrder: isSorter ? sortController.order.toLowerCase() : null }, " ".concat(label)); }; }; var _default = sortableHeaderFormatter; exports["default"] = _default; /***/ }), /* 390 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SortableHeader = function SortableHeader(_ref) { var onClick = _ref.onClick, children = _ref.children, sortOrder = _ref.sortOrder; return /*#__PURE__*/_react["default"].createElement("a", { onClick: onClick }, sortOrder && /*#__PURE__*/_react["default"].createElement("i", { className: "fa fa-sort-".concat(sortOrder) }), children); }; SortableHeader.propTypes = { onClick: _propTypes["default"].func.isRequired, children: _propTypes["default"].node.isRequired, sortOrder: _propTypes["default"].oneOf(['asc', 'desc', null]) }; SortableHeader.defaultProps = { sortOrder: null }; var _default = SortableHeader; exports["default"] = _default; /***/ }), /* 391 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteActionCellFormatter = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _DeleteButton = _interopRequireDefault(__webpack_require__(392)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var deleteActionCellFormatter = function deleteActionCellFormatter(_onClick) { return function (_, _ref) { var rowData = _ref.rowData; var canDelete = rowData.canDelete; return /*#__PURE__*/_react["default"].createElement(_DeleteButton["default"], { active: canDelete, onClick: function onClick() { return _onClick(rowData); } }); }; }; exports.deleteActionCellFormatter = deleteActionCellFormatter; /***/ }), /* 392 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DeleteButton = function DeleteButton(_ref) { var active = _ref.active, onClick = _ref.onClick; return active ? /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: "default", onClick: onClick }, (0, _I18n.translate)('Delete')) : null; }; DeleteButton.propTypes = { active: _propTypes["default"].bool, onClick: _propTypes["default"].func.isRequired }; DeleteButton.defaultProps = { active: false }; var _default = DeleteButton; exports["default"] = _default; /***/ }), /* 393 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectionCellFormatter = exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _TableSelectionCell = _interopRequireDefault(__webpack_require__(394)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var selectionCellFormatter = function selectionCellFormatter(selectionController, additionalData) { return /*#__PURE__*/_react["default"].createElement(_TableSelectionCell["default"], { id: "select".concat(additionalData.rowIndex), checked: selectionController.isSelected(additionalData), onChange: function onChange() { return selectionController.selectRow(additionalData); } }); }; exports.selectionCellFormatter = selectionCellFormatter; var _default = selectionCellFormatter; exports["default"] = _default; /***/ }), /* 394 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); var _excluded = ["id", "label", "checked", "onChange"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var TableSelectionCell = function TableSelectionCell(_ref) { var id = _ref.id, label = _ref.label, checked = _ref.checked, onChange = _ref.onChange, props = _objectWithoutProperties(_ref, _excluded); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Table.SelectionCell, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Table.Checkbox, _extends({ id: id, label: label, checked: checked, onChange: onChange }, props))); }; TableSelectionCell.propTypes = { id: _propTypes["default"].string.isRequired, label: _propTypes["default"].string, checked: _propTypes["default"].bool, onChange: _propTypes["default"].func }; TableSelectionCell.defaultProps = { label: (0, _I18n.translate)('Select row'), checked: false, onChange: _helpers.noop }; var _default = TableSelectionCell; exports["default"] = _default; /***/ }), /* 395 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectionHeaderCellFormatter = exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _TableSelectionHeaderCell = _interopRequireDefault(__webpack_require__(396)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var selectionHeaderCellFormatter = function selectionHeaderCellFormatter(selectionController, label) { return /*#__PURE__*/_react["default"].createElement(_TableSelectionHeaderCell["default"], { label: label, checked: selectionController.allPageSelected(), onChange: selectionController.selectPage }); }; exports.selectionHeaderCellFormatter = selectionHeaderCellFormatter; var _default = selectionHeaderCellFormatter; exports["default"] = _default; /***/ }), /* 396 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _excluded = ["id", "label", "checked", "onChange"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var TableSelectionHeaderCell = function TableSelectionHeaderCell(_ref) { var id = _ref.id, label = _ref.label, checked = _ref.checked, onChange = _ref.onChange, props = _objectWithoutProperties(_ref, _excluded); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Table.SelectionHeading, { "aria-label": label }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Table.Checkbox, _extends({ id: id, title: label, checked: checked, onChange: onChange }, props))); }; TableSelectionHeaderCell.propTypes = { id: _propTypes["default"].string, label: _propTypes["default"].string, checked: _propTypes["default"].bool, onChange: _propTypes["default"].func }; TableSelectionHeaderCell.defaultProps = { id: 'selectAll', label: '', checked: false, onChange: _helpers.noop }; var _default = TableSelectionHeaderCell; exports["default"] = _default; /***/ }), /* 397 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "Table", { enumerable: true, get: function get() { return _Table["default"]; } }); Object.defineProperty(exports, "TableBody", { enumerable: true, get: function get() { return _TableBody["default"]; } }); Object.defineProperty(exports, "TableBodyMessage", { enumerable: true, get: function get() { return _TableBodyMessage["default"]; } }); var _Table = _interopRequireDefault(__webpack_require__(398)); var _TableBody = _interopRequireDefault(__webpack_require__(151)); var _TableBodyMessage = _interopRequireDefault(__webpack_require__(152)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /***/ }), /* 398 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _TableBody = _interopRequireDefault(__webpack_require__(151)); var _excluded = ["columns", "rows", "bodyMessage", "children"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var Table = function Table(_ref) { var columns = _ref.columns, rows = _ref.rows, bodyMessage = _ref.bodyMessage, children = _ref.children, props = _objectWithoutProperties(_ref, _excluded); var body = children || [/*#__PURE__*/_react["default"].createElement(_patternflyReact.Table.Header, { key: "header" }), /*#__PURE__*/_react["default"].createElement(_TableBody["default"], { key: "body", columns: columns, rows: rows, message: bodyMessage, rowKey: "id" })]; return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Table.PfProvider, _extends({ columns: columns, className: "table-fixed", striped: true, bordered: true, hover: true }, props), body)); }; Table.propTypes = { columns: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired, rows: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired, bodyMessage: _propTypes["default"].node, children: _propTypes["default"].node }; Table.defaultProps = { bodyMessage: undefined, children: undefined }; var _default = Table; exports["default"] = _default; /***/ }), /* 399 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "column", { enumerable: true, get: function get() { return _column.column; } }); Object.defineProperty(exports, "getSelectionController", { enumerable: true, get: function get() { return _selection.getSelectionController; } }); Object.defineProperty(exports, "sortControllerFactory", { enumerable: true, get: function get() { return _sortableColumn.sortControllerFactory; } }); Object.defineProperty(exports, "sortableColumn", { enumerable: true, get: function get() { return _sortableColumn.sortableColumn; } }); var _sortableColumn = __webpack_require__(400); var _column = __webpack_require__(153); var _selection = __webpack_require__(401); /***/ }), /* 400 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sortableColumn = exports.sortControllerFactory = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _formatters = __webpack_require__(149); var _column = __webpack_require__(153); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /** * Generate a sortable column for a patternfly-3 table. * See more in http://patternfly-react.surge.sh/patternfly-3/ * See an example: ModelsTableSchema * @param {String} property the property name of the table. * @param {String} label the column label. * @param {Number} mdWidth column size on medium devices. Note: using bootstrap * grid convention. * @param {Object} sortController sortController object. * See more in sortControllerFactory. * @param {Array} additionalCellFormatters array of functions that format column cells * @return {Object} the table column. */ var sortableColumn = function sortableColumn(property, label, mdWidth, sortController) { var additionalCellFormatters = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : []; return (0, _column.column)(property, label, [(0, _formatters.sortableHeaderFormatter)(sortController), _formatters.headerFormatterWithProps], [].concat(_toConsumableArray(additionalCellFormatters), [_formatters.ellipsisCellFormatter]), { sort: true, sortDirection: '', className: "col-md-".concat(mdWidth) }); }; /** * Creates a sort controller for Patternfly-3 table. * @param {Function} apiCall a function that fetches and stores data into Redux. * @param {String} sortBy the property that the table is sorted by. * @param {String} sortOrder the order which the table is sorted by. * @return {Object} a sort controller object. */ exports.sortableColumn = sortableColumn; var sortControllerFactory = function sortControllerFactory(apiCall, sortBy, sortOrder) { return { apply: function apply(by, order) { var uri = new _urijs["default"](window.location.href); uri.setSearch('order', "".concat(by, " ").concat(order)); // FIXME(bshuster): Going back in the browser won't render the state. // Using react-router will fix this completely. window.history.pushState({ path: uri.toString() }, '', uri.toString()); apiCall(uri.query(true)); }, property: sortBy, order: sortOrder }; }; exports.sortControllerFactory = sortControllerFactory; /***/ }), /* 401 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSelectionController = void 0; var _selectionActions = __webpack_require__(154); var getSelectionController = function getSelectionController(_ref) { var tableID = _ref.tableID, allRowsSelected = _ref.allRowsSelected, rows = _ref.rows, selectedRows = _ref.selectedRows, dispatch = _ref.dispatch; var checkAllPageSelected = function checkAllPageSelected() { return allRowsSelected || rows.length === selectedRows.length; }; return { allRowsSelected: allRowsSelected, allPageSelected: function allPageSelected() { return checkAllPageSelected(tableID); }, selectPage: function selectPage() { if (checkAllPageSelected()) dispatch((0, _selectionActions.unselectAllRows)(tableID));else { dispatch((0, _selectionActions.selectPage)(tableID, rows)); } }, selectRow: function selectRow(_ref2) { var id = _ref2.rowData.id; if (selectedRows.includes(id) || allRowsSelected) dispatch((0, _selectionActions.unselectRow)(tableID, id, allRowsSelected && rows));else dispatch((0, _selectionActions.selectRow)(tableID, id)); }, isSelected: function isSelected(_ref3) { var rowData = _ref3.rowData; return allRowsSelected || selectedRows.includes(rowData.id); } }; }; exports.getSelectionController = getSelectionController; /***/ }), /* 402 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { getTableItemsAction: true }; Object.defineProperty(exports, "getTableItemsAction", { enumerable: true, get: function get() { return _getTableItemsAction["default"]; } }); var _getTableItemsAction = _interopRequireDefault(__webpack_require__(403)); var _selectionActions = __webpack_require__(154); Object.keys(_selectionActions).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; if (key in exports && exports[key] === _selectionActions[key]) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _selectionActions[key]; } }); }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /***/ }), /* 403 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _API = __webpack_require__(8); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /** * An async Redux action that fetches and stores table data in Redux. * @param {String} tableID the table ID for Redux * @param {Object} query the API request query * @param {String} url the url for the data * @return {Function} Redux Thunk function */ var getTableItemsAction = function getTableItemsAction(tableID, query, fetchUrl) { var url = new _urijs["default"](fetchUrl); url.addSearch(_objectSpread(_objectSpread({}, query), {}, { include_permissions: true })); return (0, _API.get)({ key: tableID.toUpperCase(), url: url.toString(), payload: { tableID: tableID, url: url.toString() } }); }; var _default = getTableItemsAction; exports["default"] = _default; /***/ }), /* 404 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "createTableReducer", { enumerable: true, get: function get() { return _createTableReducer["default"]; } }); Object.defineProperty(exports, "selectionReducer", { enumerable: true, get: function get() { return _selectionReducer["default"]; } }); var _createTableReducer = _interopRequireDefault(__webpack_require__(405)); var _selectionReducer = _interopRequireDefault(__webpack_require__(407)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /***/ }), /* 405 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _constants = __webpack_require__(7); var _actionTypeCreator = _interopRequireDefault(__webpack_require__(406)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initState = (0, _seamlessImmutable["default"])({ error: null, sortBy: '', sortOrder: '', results: [], status: _constants.STATUS.PENDING, pagination: { page: 1, perPage: 20 }, total: 0 }); var createTableReducer = function createTableReducer(tableID) { return function () { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload, response = _ref.response; var _createTableActionTyp = (0, _actionTypeCreator["default"])(tableID), REQUEST = _createTableActionTyp.REQUEST, FAILURE = _createTableActionTyp.FAILURE, SUCCESS = _createTableActionTyp.SUCCESS; switch (type) { case REQUEST: return state.set('status', _constants.STATUS.PENDING); case SUCCESS: return _seamlessImmutable["default"].merge(state, { error: null, status: _constants.STATUS.RESOLVED, results: response.results, sortBy: response.sort.by, sortOrder: response.sort.order, pagination: { page: response.page, perPage: response.per_page }, total: response.total }); case FAILURE: return _seamlessImmutable["default"].merge(state, { error: response, status: _constants.STATUS.ERROR, results: [] }); default: return state; } }; }; var _default = createTableReducer; exports["default"] = _default; /***/ }), /* 406 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var createTableActionTypes = function createTableActionTypes(tableID) { return { REQUEST: "".concat(tableID.toUpperCase(), "_REQUEST"), SUCCESS: "".concat(tableID.toUpperCase(), "_SUCCESS"), FAILURE: "".concat(tableID.toUpperCase(), "_FAILURE") }; }; var _default = createTableActionTypes; exports["default"] = _default; /***/ }), /* 407 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectionReducer = exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _lodash = __webpack_require__(10); var _SelectionConstants = __webpack_require__(155); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initialState = (0, _seamlessImmutable["default"])({ selectedRows: [], allRowsSelected: false, showSelectAll: false }); var getSelectedRows = function getSelectedRows(state) { return state ? state.selectedRows : []; }; var selectionReducer = function selectionReducer(currentTableID) { return function () { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, tableID = _ref.tableID, type = _ref.type, payload = _ref.payload; if (tableID === undefined || tableID !== currentTableID) return state; switch (type) { case _SelectionConstants.SELECT_ALL_ROWS: return state.merge({ allRowsSelected: true }); case _SelectionConstants.SELECT_ROWS: return state.merge({ selectedRows: (0, _lodash.union)(payload, getSelectedRows(state)) }); case _SelectionConstants.OPEN_SELECT_ALL: return state.merge({ showSelectAll: true }); case _SelectionConstants.UNSELECT_ROWS: if (state && state.allRowsSelected) { // User can unselect rows if only the page rows are selected return state.merge({ selectedRows: payload.results.map(function (row) { return row.id; }).filter(function (row) { return row !== payload.id; }), allRowsSelected: false, showSelectAll: false }); } return state.merge({ selectedRows: state.selectedRows.filter(function (row) { return row !== payload.id; }) }); case _SelectionConstants.UNSELECT_ALL_ROWS: return state.merge({ selectedRows: [], allRowsSelected: false, showSelectAll: false }); default: return state; } }; }; exports.selectionReducer = selectionReducer; var _default = selectionReducer; exports["default"] = _default; /***/ }), /* 408 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectShowSelectAll = exports.selectSelectionByID = exports.selectSelection = exports.selectSelectedRows = exports.selectAllRowsSelected = void 0; var selectSelection = function selectSelection(state) { return state.API; }; exports.selectSelection = selectSelection; var selectSelectionByID = function selectSelectionByID(state, tableID) { return selectSelection(state)[tableID] || {}; }; exports.selectSelectionByID = selectSelectionByID; var selectAllRowsSelected = function selectAllRowsSelected(state, tableID) { return selectSelectionByID(state, tableID).allRowsSelected || false; }; exports.selectAllRowsSelected = selectAllRowsSelected; var selectSelectedRows = function selectSelectedRows(state, tableID) { return selectSelectionByID(state, tableID).selectedRows || []; }; exports.selectSelectedRows = selectSelectedRows; var selectShowSelectAll = function selectShowSelectAll(state, tableID) { return selectSelectionByID(state, tableID).showSelectAll || false; }; exports.selectShowSelectAll = selectShowSelectAll; /***/ }), /* 409 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _I18n = __webpack_require__(2); var _table = __webpack_require__(62); var sortControllerFactory = function sortControllerFactory(apiCall, sortBy, sortOrder) { return { apply: function apply(by, order) { apiCall({ sort: { by: by, order: order } }); }, property: sortBy, order: sortOrder }; }; /** * Generate a table schema to the Hardware Models page. * @param {Function} apiCall a Redux async action that fetches and stores table data in Redux. * See ModelsTableActions. * @param {String} by by which column the table is sorted. * If none then set it to undefined/null. * @param {String} order in what order to sort a column. If none then set it to undefined/null. * Otherwise, 'ASC' for ascending and 'DESC' for descending * @return {Array} */ var createModelsTableSchema = function createModelsTableSchema(apiCall, by, order, onDeleteClick) { var sortController = sortControllerFactory(apiCall, by, order); return [(0, _table.sortableColumn)('name', (0, _I18n.translate)('Name'), 4, sortController, [(0, _table.nameCellFormatter)('models')]), (0, _table.sortableColumn)('vendorClass', (0, _I18n.translate)('Vendor class'), 3, sortController), (0, _table.sortableColumn)('hardwareModel', (0, _I18n.translate)('Hardware model'), 3, sortController), (0, _table.column)('hostsCount', (0, _I18n.translate)('Hosts'), [_table.headerFormatterWithProps], [(0, _table.hostsCountCellFormatter)('model'), _table.cellFormatterWithProps], { className: 'col-md-1' }, { align: 'right' }), (0, _table.column)('actions', (0, _I18n.translate)('Actions'), [_table.headerFormatterWithProps], [(0, _table.deleteActionCellFormatter)(onDeleteClick), _table.cellFormatter])]; }; var _default = createModelsTableSchema; exports["default"] = _default; /***/ }), /* 410 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _ForemanModal = _interopRequireDefault(__webpack_require__(43)); var _constants = __webpack_require__(37); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ModelDeleteModal = function ModelDeleteModal(props) { var _props$toDelete = props.toDelete, id = _props$toDelete.id, name = _props$toDelete.name; return /*#__PURE__*/_react["default"].createElement(_ForemanModal["default"], { id: _constants.MODEL_DELETE_MODAL_ID, title: (0, _I18n.translate)('Confirm Hardware Model Deletion'), enforceFocus: true, submitProps: { url: "/api/v2/models/".concat(id), message: (0, _I18n.sprintf)((0, _I18n.translate)('Hardware Model %s was successfully deleted'), name), onSuccess: props.fetchAndPush, submitBtnProps: { bsStyle: 'danger', btnText: (0, _I18n.translate)('Delete') } } }, (0, _I18n.sprintf)((0, _I18n.translate)('You are about to delete %s. Are you sure?'), name), /*#__PURE__*/_react["default"].createElement(_ForemanModal["default"].Footer, null)); }; ModelDeleteModal.propTypes = { toDelete: _propTypes["default"].object, fetchAndPush: _propTypes["default"].func.isRequired }; ModelDeleteModal.defaultProps = { toDelete: {} }; var _default = ModelDeleteModal; exports["default"] = _default; /***/ }), /* 411 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeModels = exports.fetchModels = exports.fetchAndPush = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _history = _interopRequireDefault(__webpack_require__(23)); var _API = __webpack_require__(8); var _ModelsPageHelpers = __webpack_require__(412); var _constants = __webpack_require__(37); var _urlHelpers = __webpack_require__(21); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var initializeModels = function initializeModels() { return function (dispatch) { var params = (0, _urlHelpers.getParams)(); dispatch(fetchModels(params)); if (!_history["default"].action === 'POP') { _history["default"].replace({ pathname: _constants.MODELS_PATH, search: (0, _urlHelpers.stringifyParams)(params) }); } }; }; exports.initializeModels = initializeModels; var fetchModels = function fetchModels(_ref) { var page = _ref.page, perPage = _ref.perPage, searchQuery = _ref.searchQuery, sort = _ref.sort; var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.MODELS_API_PATH; var sortString = sort && Object.keys(sort).length > 0 ? "".concat(sort.by, " ").concat(sort.order) : ''; var uriWithPrams = new _urijs["default"](url); uriWithPrams.setSearch({ page: page, per_page: perPage, search: searchQuery, order: sortString }); return (0, _API.get)({ key: _constants.API_REQUEST_KEY, url: uriWithPrams }); }; exports.fetchModels = fetchModels; var fetchAndPush = function fetchAndPush() { var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return function (dispatch, getState) { var query = (0, _ModelsPageHelpers.buildQuery)(params, getState()); dispatch(fetchModels(query)); _history["default"].push({ pathname: _constants.MODELS_PATH, search: (0, _urlHelpers.stringifyParams)(query) }); }; }; exports.fetchAndPush = fetchAndPush; /***/ }), /* 412 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pickSort = exports.buildQuery = void 0; var _lodash = __webpack_require__(10); var _redux = __webpack_require__(12); var _ModelsPageSelectors = __webpack_require__(156); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var buildQuery = function buildQuery(query, state) { var querySort = pickSort(query, state); return _objectSpread({ page: query.page || (0, _ModelsPageSelectors.selectPage)(state), perPage: query.perPage || (0, _ModelsPageSelectors.selectPerPage)(state), searchQuery: query.searchQuery === undefined ? (0, _ModelsPageSelectors.selectSearch)(state) : query.searchQuery }, querySort && { sort: querySort }); }; exports.buildQuery = buildQuery; var pickSort = function pickSort(query, state) { return checkSort(query.sort) ? transformSort(query.sort) : checkSort((0, _redux.compose)(transformSort, _ModelsPageSelectors.selectSort)(state)); }; exports.pickSort = pickSort; var checkSort = function checkSort(sort) { return sort && sort.by && sort.order ? sort : undefined; }; var transformSort = function transformSort(sort) { return _objectSpread(_objectSpread({}, sort), {}, { by: (0, _lodash.snakeCase)(sort.by) }); }; /***/ }), /* 413 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initialState = exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _SettingRecordsConstants = __webpack_require__(159); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = (0, _seamlessImmutable["default"])({ settings: {}, editing: null }); exports.initialState = initialState; var reducer = function reducer() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload, response = _ref.response; switch (type) { case _SettingRecordsConstants.LOAD_SETTING_RECORDS: return state.set('settings', payload); case _SettingRecordsConstants.SETTINGS_FORM_SUBMITTED_SUCCESS: { var categorized = state.settings[response.category]; var updatedCategory = categorized.map(function (item) { return item.name === response.id ? _objectSpread(_objectSpread({}, item), {}, { value: response.value }) : item; }); return state.setIn(['settings', response.category], updatedCategory); } case _SettingRecordsConstants.SET_EDITING_SETTING: return state.set('editing', payload.setting); default: return state; } }; var _default = reducer; exports["default"] = _default; /***/ }), /* 414 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _PersonalAccessTokensActions = __webpack_require__(415); var _PersonalAccessTokensSelectors = __webpack_require__(417); var _NewPersonalAccessToken = _interopRequireDefault(__webpack_require__(418)); var _PersonalAccessTokenForm = _interopRequireDefault(__webpack_require__(420)); var _PersonalAccessTokensList = _interopRequireDefault(__webpack_require__(433)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); var _ConfirmModal = __webpack_require__(30); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var PersonalAccessTokens = function PersonalAccessTokens(_ref) { var url = _ref.url, canCreate = _ref.canCreate; var dispatch = (0, _reactRedux.useDispatch)(); (0, _react.useEffect)(function () { dispatch((0, _PersonalAccessTokensActions.getPersonalAccessTokens)({ url: url })); }, [url, dispatch]); var newPersonalAccessToken = (0, _reactRedux.useSelector)(function (state) { return (0, _PersonalAccessTokensSelectors.selectNewPersonalAccessToken)(state); }); var tokens = (0, _reactRedux.useSelector)(function (state) { return (0, _PersonalAccessTokensSelectors.selectTokens)(state); }); var boundClearNewPersonalAccessToken = function boundClearNewPersonalAccessToken() { return dispatch((0, _PersonalAccessTokensActions.clearNewPersonalAccessToken)()); }; var boundRevokePersonalAccessToken = function boundRevokePersonalAccessToken(id) { dispatch((0, _ConfirmModal.openConfirmModal)({ title: (0, _I18n.translate)('Revoke personal access token'), message: (0, _I18n.translate)('Do you really want to revoke Access Token?'), confirmButtonText: (0, _I18n.translate)('Revoke'), isWarning: true, onConfirm: function onConfirm() { return dispatch((0, _PersonalAccessTokensActions.revokePersonalAccessToken)({ url: url, id: id })); } })); }; return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement(_NewPersonalAccessToken["default"], { newPersonalAccessToken: newPersonalAccessToken, onDismiss: boundClearNewPersonalAccessToken }), tokens.length > 0 ? /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, canCreate && /*#__PURE__*/_react["default"].createElement(_PersonalAccessTokenForm["default"], { url: url }), /*#__PURE__*/_react["default"].createElement(_PersonalAccessTokensList["default"], { title: (0, _I18n.translate)('Active Personal Access Tokens'), tokens: tokens.filter(function (token) { return token['active?']; }), revokePersonalAccessToken: boundRevokePersonalAccessToken, revocable: true }), /*#__PURE__*/_react["default"].createElement(_PersonalAccessTokensList["default"], { title: (0, _I18n.translate)('Inactive Personal Access Tokens'), tokens: tokens.filter(function (token) { return !token['active?']; }) })) : /*#__PURE__*/_react["default"].createElement("table", { className: "table table-bordered table-striped table-hover table-fixed" }, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", { className: "blank-slate-pf" }, /*#__PURE__*/_react["default"].createElement("div", { className: "blank-slate-pf-icon" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "key", color: "#9c9c9c" })), /*#__PURE__*/_react["default"].createElement("h1", null, (0, _I18n.translate)('Personal Access Tokens')), (0, _I18n.translate)('Personal Access Tokens allow you to authenticate API requests without using your password, e.g. '), /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement("code", null, "curl -u admin:token ".concat((0, _helpers.foremanUrl)('/api/v2/hosts')))), canCreate && /*#__PURE__*/_react["default"].createElement(_PersonalAccessTokenForm["default"], { url: url })))))); }; PersonalAccessTokens.propTypes = { url: _propTypes["default"].string.isRequired, canCreate: _propTypes["default"].bool.isRequired }; var _default = PersonalAccessTokens; exports["default"] = _default; /***/ }), /* 415 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.revokePersonalAccessToken = exports.getPersonalAccessTokens = exports.clearNewPersonalAccessToken = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _API = __webpack_require__(8); var _ToastsList = __webpack_require__(28); var _common = __webpack_require__(416); var _I18n = __webpack_require__(2); var _PersonalAccessTokensConstants = __webpack_require__(86); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var getPersonalAccessTokens = function getPersonalAccessTokens(_ref) { var url = _ref.url; return function (dispatch) { var uri = new _urijs["default"](url); // eslint-disable-next-line camelcase uri.setSearch({ per_page: 9999 }); (0, _common.ajaxRequestAction)({ dispatch: dispatch, url: uri, requestAction: _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKENS_REQUEST, successAction: _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKENS_SUCCESS, failedAction: _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKENS_FAILURE }); }; }; exports.getPersonalAccessTokens = getPersonalAccessTokens; var revokePersonalAccessToken = function revokePersonalAccessToken(_ref2) { var url = _ref2.url, id = _ref2.id; return /*#__PURE__*/function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dispatch) { return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: _context.prev = 0; _context.next = 3; return _API.API["delete"]("".concat(url, "/").concat(id)); case 3: dispatch(getPersonalAccessTokens({ url: url })); dispatch((0, _ToastsList.addToast)({ type: 'success', message: (0, _I18n.translate)('Token was successfully revoked.') })); _context.next = 11; break; case 7: _context.prev = 7; _context.t0 = _context["catch"](0); /* eslint-disable no-console */ console.log(_context.t0); dispatch((0, _ToastsList.addToast)({ type: 'error', message: (0, _I18n.translate)('Could not revoke Token: ') + _context.t0 })); case 11: case "end": return _context.stop(); } }, _callee, null, [[0, 7]]); })); return function (_x) { return _ref3.apply(this, arguments); }; }(); }; exports.revokePersonalAccessToken = revokePersonalAccessToken; var clearNewPersonalAccessToken = function clearNewPersonalAccessToken() { return function (dispatch) { return dispatch({ type: _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKEN_CLEAR, payload: {} }); }; }; exports.clearNewPersonalAccessToken = clearNewPersonalAccessToken; /***/ }), /* 416 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.ajaxRequestAction = void 0; var _API = __webpack_require__(8); function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var ajaxRequestAction = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) { var dispatch, requestAction, successAction, failedAction, url, _ref$item, item, _yield$API$get, data; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: dispatch = _ref.dispatch, requestAction = _ref.requestAction, successAction = _ref.successAction, failedAction = _ref.failedAction, url = _ref.url, _ref$item = _ref.item, item = _ref$item === void 0 ? {} : _ref$item; dispatch({ type: requestAction, payload: item }); _context.prev = 2; _context.next = 5; return _API.API.get(url, item.headers || {}, item.params || {}); case 5: _yield$API$get = _context.sent; data = _yield$API$get.data; return _context.abrupt("return", dispatch({ type: successAction, payload: _objectSpread(_objectSpread({}, item), data) })); case 10: _context.prev = 10; _context.t0 = _context["catch"](2); return _context.abrupt("return", dispatch({ type: failedAction, payload: { error: _context.t0, item: item } })); case 13: case "end": return _context.stop(); } }, _callee, null, [[2, 10]]); })); return function ajaxRequestAction(_x) { return _ref2.apply(this, arguments); }; }(); exports.ajaxRequestAction = ajaxRequestAction; /***/ }), /* 417 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectTokens = exports.selectNewPersonalAccessToken = void 0; var selectNewPersonalAccessToken = function selectNewPersonalAccessToken(state) { return state.personalAccessTokens.newPersonalAccessToken; }; exports.selectNewPersonalAccessToken = selectNewPersonalAccessToken; var selectTokens = function selectTokens(state) { return state.personalAccessTokens.tokens; }; exports.selectTokens = selectTokens; /***/ }), /* 418 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _ClipboardCopy = _interopRequireDefault(__webpack_require__(161)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var NewTokenInfo = function NewTokenInfo(_ref) { var newPersonalAccessToken = _ref.newPersonalAccessToken, onDismiss = _ref.onDismiss; return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, newPersonalAccessToken && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Alert, { type: "success", onDismiss: onDismiss }, /*#__PURE__*/_react["default"].createElement("strong", null, (0, _I18n.translate)('Your New Personal Access Token')), /*#__PURE__*/_react["default"].createElement(_ClipboardCopy["default"], { text: newPersonalAccessToken, textareaProps: { readOnly: true, className: 'col-md-6', rows: '1' } }), (0, _I18n.translate)('Make sure to copy your new personal access token now. You won’t be able to see it again!'))); }; NewTokenInfo.propTypes = { onDismiss: _propTypes["default"].func.isRequired, newPersonalAccessToken: _propTypes["default"].string }; NewTokenInfo.defaultProps = { newPersonalAccessToken: null }; var _default = NewTokenInfo; exports["default"] = _default; /***/ }), /* 419 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 420 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var Yup = _interopRequireWildcard(__webpack_require__(139)); var _patternflyReact = __webpack_require__(4); var _v = _interopRequireDefault(__webpack_require__(16)); var _ForemanForm = _interopRequireDefault(__webpack_require__(83)); var _TextField = _interopRequireDefault(__webpack_require__(140)); var _ForemanModal = _interopRequireDefault(__webpack_require__(43)); var _ForemanModalHooks = __webpack_require__(35); var _validators = __webpack_require__(141); var _I18n = __webpack_require__(2); var _forms = __webpack_require__(84); var _DateTime = _interopRequireDefault(__webpack_require__(421)); var _PersonalAccessTokensConstants = __webpack_require__(86); var _Yup$string; function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var tokenFormSchema = Yup.object().shape({ name: (_Yup$string = Yup.string()).max.apply(_Yup$string, _toConsumableArray((0, _validators.maxLengthMsg)(254))).required((0, _validators.requiredMsg)()), expires_at: Yup.date().min(new Date(), (0, _I18n.translate)('Cannot be in the past')) }); var PersonalAccessTokenForm = function PersonalAccessTokenForm(_ref) { var controller = _ref.controller, url = _ref.url, initialValues = _ref.initialValues; var dispatch = (0, _reactRedux.useDispatch)(); var _useForemanModal = (0, _ForemanModalHooks.useForemanModal)({ id: _PersonalAccessTokensConstants.MODAL_ID }), setModalOpen = _useForemanModal.setModalOpen, setModalClosed = _useForemanModal.setModalClosed; var handleSubmit = function handleSubmit(values, actions) { dispatch((0, _forms.submitForm)({ url: url, values: _objectSpread(_objectSpread({}, values), {}, { controller: controller }), item: 'personal_access_token', message: (0, _I18n.translate)('Personal Access Token was successfully created.'), actions: actions, successCallback: setModalClosed })); }; return /*#__PURE__*/_react["default"].createElement("p", null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { bsStyle: "success", className: "btn-lg", onClick: setModalOpen }, (0, _I18n.translate)('Add Personal Access Token')), /*#__PURE__*/_react["default"].createElement(_ForemanModal["default"], { id: _PersonalAccessTokensConstants.MODAL_ID, title: (0, _I18n.translate)('Create Personal Access Token') }, /*#__PURE__*/_react["default"].createElement(_ForemanModal["default"].Header, null), /*#__PURE__*/_react["default"].createElement(_ForemanForm["default"], { onSubmit: handleSubmit, initialValues: initialValues, validationSchema: tokenFormSchema, onCancel: setModalClosed }, /*#__PURE__*/_react["default"].createElement(_TextField["default"], { name: "name", type: "text", label: (0, _I18n.translate)('Name'), inputClassName: "col-md-6", required: true }), /*#__PURE__*/_react["default"].createElement(_DateTime["default"], { id: (0, _v["default"])(), label: (0, _I18n.translate)('Expires'), isRequired: false, inputClassName: "col-md-6", placement: "bottom", inputProps: { name: 'expires_at' }, value: null })))); }; PersonalAccessTokenForm.propTypes = { url: _propTypes["default"].string.isRequired, initialValues: _propTypes["default"].object, controller: _propTypes["default"].string }; PersonalAccessTokenForm.defaultProps = { initialValues: {}, controller: 'personal_access_tokens' }; var _default = PersonalAccessTokenForm; exports["default"] = _default; /***/ }), /* 421 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _formik = __webpack_require__(59); var _DateTimePicker = _interopRequireDefault(__webpack_require__(162)); var _CommonForm = _interopRequireDefault(__webpack_require__(34)); var _I18n = __webpack_require__(2); __webpack_require__(432); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var DateTime = function DateTime(_ref) { var label = _ref.label, id = _ref.id, info = _ref.info, isRequired = _ref.isRequired, locale = _ref.locale, name = _ref.inputProps.name, inputProps = _ref.inputProps, value = _ref.value, initialError = _ref.initialError; var currentLocale = locale || (0, _I18n.documentLocale)(); return /*#__PURE__*/_react["default"].createElement(_formik.Field, { name: name, render: function render(_ref2) { var _ref2$form = _ref2.form, setFieldValue = _ref2$form.setFieldValue, _ref2$form$errors = _ref2$form.errors, errors = _ref2$form$errors === void 0 ? {} : _ref2$form$errors; return /*#__PURE__*/_react["default"].createElement(_CommonForm["default"], { label: label, touched: true, error: errors[name] || initialError, required: isRequired, inputClassName: "col-md-6", tooltipHelp: info && /*#__PURE__*/_react["default"].createElement(_patternflyReact.FieldLevelHelp, { buttonClass: "field-help", content: /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, info) }) }, /*#__PURE__*/_react["default"].createElement(_DateTimePicker["default"], { value: value, id: "template-date-input-".concat(id), inputProps: _objectSpread({ autoComplete: 'off' }, inputProps), locale: currentLocale, name: name, placement: "bottom", required: isRequired, onChange: function onChange(newValue) { return setFieldValue(name, newValue); } })); } }); }; DateTime.propTypes = { label: _propTypes["default"].string.isRequired, info: _propTypes["default"].string, isRequired: _propTypes["default"].bool, id: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]).isRequired, locale: _propTypes["default"].string, inputProps: _propTypes["default"].object, value: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), initialError: _propTypes["default"].string }; DateTime.defaultProps = { info: undefined, isRequired: false, locale: null, value: new Date(), initialError: undefined, inputProps: {} }; var _default = DateTime; exports["default"] = _default; /***/ }), /* 422 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _lodash = __webpack_require__(10); var _Day = _interopRequireDefault(__webpack_require__(423)); var _helpers = __webpack_require__(45); var _Header = _interopRequireDefault(__webpack_require__(424)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var MonthView = /*#__PURE__*/function (_React$Component) { _inherits(MonthView, _React$Component); var _super = _createSuper(MonthView); function MonthView() { var _this; _classCallCheck(this, MonthView); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "state", { selectedDate: new Date(_this.props.date), date: new Date(_this.props.date) }); _defineProperty(_assertThisInitialized(_this), "calendarArray", function (date) { var weekStartsOn = _this.props.weekStartsOn; var monthStart = (0, _helpers.getMonthStart)(new Date(date)); var offset = monthStart.getDay() - weekStartsOn; return (0, _lodash.chunk)((0, _lodash.times)(35, function (i) { return (0, _helpers.addDays)(monthStart, i - offset); }), 7); }); _defineProperty(_assertThisInitialized(_this), "getPrevMonth", function () { var date = _this.state.date; _this.setState({ date: (0, _helpers.addMonths)(date, -1) }); }); _defineProperty(_assertThisInitialized(_this), "getNextMonth", function () { var date = _this.state.date; _this.setState({ date: (0, _helpers.addMonths)(date, 1) }); }); _defineProperty(_assertThisInitialized(_this), "setSelected", function (day) { _this.setState({ selectedDate: day, date: day }); _this.props.setSelected(day); }); return _this; } _createClass(MonthView, [{ key: "render", value: function render() { var _this2 = this; var _this$props = this.props, locale = _this$props.locale, weekStartsOn = _this$props.weekStartsOn, toggleDateView = _this$props.toggleDateView; var _this$state = this.state, date = _this$state.date, selectedDate = _this$state.selectedDate; var calendar = this.calendarArray(date); return /*#__PURE__*/_react["default"].createElement("div", { className: "datepicker-days" }, /*#__PURE__*/_react["default"].createElement("table", { className: "table-condensed" }, /*#__PURE__*/_react["default"].createElement(_Header["default"], { getPrevMonth: this.getPrevMonth, getNextMonth: this.getNextMonth, date: date, locale: locale, weekStartsOn: weekStartsOn, toggleDateView: toggleDateView }), /*#__PURE__*/_react["default"].createElement("tbody", null, calendar.map(function (el, idx) { return /*#__PURE__*/_react["default"].createElement("tr", { key: idx }, el.map(function (day) { return /*#__PURE__*/_react["default"].createElement(_Day["default"], { key: day, day: day, setSelected: _this2.setSelected, classNamesArray: { weekend: (0, _helpers.isWeekend)(day), old: day.getMonth() !== date.getMonth(), active: (0, _helpers.isEqualDate)(day, selectedDate), today: (0, _helpers.isEqualDate)(day, new Date()) } }); })); })))); } }], [{ key: "getDerivedStateFromProps", value: function getDerivedStateFromProps(props, state) { var newDate = new Date(props.date); if (newDate !== new Date(state.date)) { return { selectedDate: newDate }; } return null; } }]); return MonthView; }(_react["default"].Component); MonthView.propTypes = { date: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), setSelected: _propTypes["default"].func, toggleDateView: _propTypes["default"].func, locale: _propTypes["default"].string, weekStartsOn: _propTypes["default"].number }; MonthView.defaultProps = { setSelected: null, toggleDateView: null, date: new Date(), locale: 'en-US', weekStartsOn: 1 }; var _default = MonthView; exports["default"] = _default; /***/ }), /* 423 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _classnames = _interopRequireDefault(__webpack_require__(13)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Day = function Day(_ref) { var day = _ref.day, setSelected = _ref.setSelected, classNamesArray = _ref.classNamesArray; var date = day.getDate(); return /*#__PURE__*/_react["default"].createElement("td", { className: (0, _classnames["default"])('day', classNamesArray), "data-day": date, onClick: function onClick() { setSelected(day); } }, date); }; Day.propTypes = { day: _propTypes["default"].instanceOf(Date).isRequired, classNamesArray: _propTypes["default"].object, setSelected: _propTypes["default"].func }; Day.defaultProps = { setSelected: null, classNamesArray: [] }; var _default = Day; exports["default"] = _default; /***/ }), /* 424 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _DateConstants = __webpack_require__(46); var _HeaderHelpers = __webpack_require__(425); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Header = function Header(_ref) { var getNextMonth = _ref.getNextMonth, getPrevMonth = _ref.getPrevMonth, toggleDateView = _ref.toggleDateView, weekStartsOn = _ref.weekStartsOn, date = _ref.date, locale = _ref.locale; date = new Date(date); var month = Intl.DateTimeFormat(locale, { month: 'long' }).format(date); var year = date.getFullYear(); var daysOfTheWeek = (0, _HeaderHelpers.getWeekArray)(weekStartsOn); return /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", { className: "prev", onClick: getPrevMonth }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "angle-left" })), /*#__PURE__*/_react["default"].createElement("th", { className: "picker-switch", colSpan: "5", onClick: function onClick() { return toggleDateView(_DateConstants.YEAR); } }, month, " ", year), /*#__PURE__*/_react["default"].createElement("th", { className: "next", onClick: getNextMonth }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "angle-right" }))), /*#__PURE__*/_react["default"].createElement("tr", null, daysOfTheWeek.map(function (day, idx) { return /*#__PURE__*/_react["default"].createElement("th", { key: idx, className: "dow" }, day); }))); }; Header.propTypes = { date: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), getPrevMonth: _propTypes["default"].func, getNextMonth: _propTypes["default"].func, toggleDateView: _propTypes["default"].func, locale: _propTypes["default"].string, weekStartsOn: _propTypes["default"].number }; Header.defaultProps = { date: new Date(), getPrevMonth: null, getNextMonth: null, toggleDateView: null, locale: 'en-US', weekStartsOn: 1 }; var _default = Header; exports["default"] = _default; /***/ }), /* 425 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getWeekArray = void 0; var _lodash = __webpack_require__(10); var _helpers = __webpack_require__(45); var getWeekArray = function getWeekArray(weekStartsOn, locale) { var weekStart = (0, _helpers.getWeekStart)(new Date()); var dayFormat = Intl.DateTimeFormat(locale, { weekday: 'short' }).format(weekStart).length > 3 ? 'narrow' : 'short'; return (0, _lodash.times)(7, function (i) { return Intl.DateTimeFormat(locale, { weekday: dayFormat }).format((0, _helpers.addDays)(weekStart, (i + weekStartsOn) % 7)).slice(0, 2); }); }; exports.getWeekArray = getWeekArray; /***/ }), /* 426 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _lodash = __webpack_require__(10); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _helpers = __webpack_require__(45); var _helpers2 = __webpack_require__(3); var _DateConstants = __webpack_require__(46); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var YearView = /*#__PURE__*/function (_React$Component) { _inherits(YearView, _React$Component); var _super = _createSuper(YearView); function YearView() { var _this; _classCallCheck(this, YearView); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "state", { date: new Date(_this.props.date), selectedDate: new Date(_this.props.date) }); _defineProperty(_assertThisInitialized(_this), "getMonthArray", function () { var date = new Date('1/1/1'); return (0, _lodash.times)(12, function (i) { return Intl.DateTimeFormat(_this.props.locale, { month: 'short' }).format((0, _helpers.addMonths)(date, i)); }); }); _defineProperty(_assertThisInitialized(_this), "getPrevYear", function () { var date = _this.state.date; _this.setState({ date: (0, _helpers.addYears)(date, -1) }); }); _defineProperty(_assertThisInitialized(_this), "getNextYear", function () { var date = _this.state.date; _this.setState({ date: (0, _helpers.addYears)(date, 1) }); }); _defineProperty(_assertThisInitialized(_this), "setSelectedMonth", function (month) { var date = _this.state.date; date.setMonth(month); _this.props.setSelected(date); _this.props.toggleDateView(_DateConstants.MONTH); }); return _this; } _createClass(YearView, [{ key: "render", value: function render() { var _this2 = this; var _this$state = this.state, date = _this$state.date, selectedDate = _this$state.selectedDate; var _ref = [date.getMonth(), date.getFullYear()], currMonth = _ref[0], currYear = _ref[1]; var selectedYear = selectedDate.getFullYear(); var monthArray = this.getMonthArray(); return /*#__PURE__*/_react["default"].createElement("div", { className: "datepicker-months" }, /*#__PURE__*/_react["default"].createElement("table", { className: "table-condensed" }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", { className: "prev", onClick: this.getPrevYear }, /*#__PURE__*/_react["default"].createElement("span", { className: "glyphicon glyphicon-chevron-left" })), /*#__PURE__*/_react["default"].createElement("th", { className: "picker-switch", onClick: function onClick() { return _this2.props.toggleDateView(_DateConstants.DAY); }, colSpan: "5" }, currYear), /*#__PURE__*/_react["default"].createElement("th", { className: "next", onClick: this.getNextYear }, /*#__PURE__*/_react["default"].createElement("span", { className: "glyphicon glyphicon-chevron-right" })))), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", { colSpan: "7" }, monthArray.map(function (month, idx) { return /*#__PURE__*/_react["default"].createElement("span", { onClick: function onClick() { return _this2.setSelectedMonth(idx); }, className: (0, _classnames["default"])('month', { active: idx === currMonth && selectedYear === currYear }), key: idx }, month); })))))); } }]); return YearView; }(_react["default"].Component); YearView.propTypes = { date: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), setSelected: _propTypes["default"].func, toggleDateView: _propTypes["default"].func, locale: _propTypes["default"].string }; YearView.defaultProps = { setSelected: _helpers2.noop, toggleDateView: _helpers2.noop, date: new Date(), locale: 'en-US' }; var _default = YearView; exports["default"] = _default; /***/ }), /* 427 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _lodash = __webpack_require__(10); var _helpers = __webpack_require__(45); var _helpers2 = __webpack_require__(3); var _DecadeViewHeader = __webpack_require__(428); var _DecadeViewTable = __webpack_require__(429); var _DateConstants = __webpack_require__(46); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var DecadeView = /*#__PURE__*/function (_React$Component) { _inherits(DecadeView, _React$Component); var _super = _createSuper(DecadeView); function DecadeView() { var _this; _classCallCheck(this, DecadeView); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "state", { date: new Date(_this.props.date), selectedDate: new Date(_this.props.date) }); _defineProperty(_assertThisInitialized(_this), "getYearArray", function () { var date = _this.state.date; date.setFullYear(Math.floor(date.getFullYear() / 10) * 10); return (0, _lodash.times)(12, function (i) { return (0, _helpers.addYears)(date, i).getFullYear(); }); }); _defineProperty(_assertThisInitialized(_this), "getPrevDecade", function () { var date = _this.state.date; _this.setState({ date: (0, _helpers.addYears)(date, -10) }); }); _defineProperty(_assertThisInitialized(_this), "getNextDecade", function () { var date = _this.state.date; _this.setState({ date: (0, _helpers.addYears)(date, 10) }); }); _defineProperty(_assertThisInitialized(_this), "setSelectedYear", function (year) { var _this$props = _this.props, setSelected = _this$props.setSelected, toggleDateView = _this$props.toggleDateView; var date = _this.state.date; date.setFullYear(year); setSelected(date); toggleDateView(_DateConstants.YEAR); }); return _this; } _createClass(DecadeView, [{ key: "render", value: function render() { var _this$state = this.state, date = _this$state.date, selectedDate = _this$state.selectedDate; var currDecade = Math.floor(date.getFullYear() / 10) * 10; var selectedYear = selectedDate.getFullYear(); var yearArray = this.getYearArray(); return /*#__PURE__*/_react["default"].createElement("div", { className: "datepicker-years" }, /*#__PURE__*/_react["default"].createElement("table", { className: "table-condensed" }, /*#__PURE__*/_react["default"].createElement(_DecadeViewHeader.DecadeViewHeader, { currDecade: currDecade, getNextDecade: this.getNextDecade, getPrevDecade: this.getPrevDecade }), /*#__PURE__*/_react["default"].createElement(_DecadeViewTable.DecadeViewTable, { selectedYear: selectedYear, yearArray: yearArray, setSelectedYear: this.setSelectedYear }))); } }]); return DecadeView; }(_react["default"].Component); DecadeView.propTypes = { date: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), setSelected: _propTypes["default"].func, toggleDateView: _propTypes["default"].func }; DecadeView.defaultProps = { setSelected: _helpers2.noop, toggleDateView: _helpers2.noop, date: new Date() }; var _default = DecadeView; exports["default"] = _default; /***/ }), /* 428 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.DecadeViewHeader = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DecadeViewHeader = function DecadeViewHeader(_ref) { var currDecade = _ref.currDecade, getPrevDecade = _ref.getPrevDecade, getNextDecade = _ref.getNextDecade; return /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", { className: "prev", onClick: getPrevDecade }, /*#__PURE__*/_react["default"].createElement("span", { className: "glyphicon glyphicon-chevron-left" })), /*#__PURE__*/_react["default"].createElement("th", { className: "picker-switch", "data-action": "pickerSwitch", colSpan: "5" }, "".concat(currDecade, "-").concat(currDecade + 11)), /*#__PURE__*/_react["default"].createElement("th", { className: "next", onClick: getNextDecade }, /*#__PURE__*/_react["default"].createElement("span", { className: "glyphicon glyphicon-chevron-right" })))); }; exports.DecadeViewHeader = DecadeViewHeader; DecadeViewHeader.propTypes = { currDecade: _propTypes["default"].number, getPrevDecade: _propTypes["default"].func, getNextDecade: _propTypes["default"].func }; DecadeViewHeader.defaultProps = { currDecade: 20, getPrevDecade: _helpers.noop, getNextDecade: _helpers.noop }; var _default = DecadeViewHeader; exports["default"] = _default; /***/ }), /* 429 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.DecadeViewTable = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DecadeViewTable = function DecadeViewTable(_ref) { var yearArray = _ref.yearArray, selectedYear = _ref.selectedYear, setSelectedYear = _ref.setSelectedYear; return /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", { colSpan: "7" }, yearArray.map(function (year) { return /*#__PURE__*/_react["default"].createElement("span", { onClick: function onClick() { return setSelectedYear(year); }, className: "year ".concat(year === selectedYear ? 'active' : ''), key: year }, year); })))); }; exports.DecadeViewTable = DecadeViewTable; DecadeViewTable.propTypes = { yearArray: _propTypes["default"].array, selectedYear: _propTypes["default"].number, setSelectedYear: _propTypes["default"].func }; DecadeViewTable.defaultProps = { yearArray: [], selectedYear: new Date().getFullYear(), setSelectedYear: _helpers.noop }; var _default = DecadeViewTable; exports["default"] = _default; /***/ }), /* 430 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); var _TimeConstants = __webpack_require__(87); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var PickTimeTable = /*#__PURE__*/function (_React$Component) { _inherits(PickTimeTable, _React$Component); var _super = _createSuper(PickTimeTable); function PickTimeTable() { var _this; _classCallCheck(this, PickTimeTable); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "setTime", function (newTime, type) { var _this$props = _this.props, time = _this$props.time, setSelected = _this$props.setSelected, toggleTimeTable = _this$props.toggleTimeTable; var hours = time.getHours(); newTime = parseInt(newTime, 10); if (type === 'minute') time.setMinutes(newTime);else if (type === 'hour') { time.setHours(hours < 12 ? newTime % 12 : newTime % 12 + 12); } setSelected(time); toggleTimeTable(); }); _defineProperty(_assertThisInitialized(_this), "getTimeTable", function (array, type) { return /*#__PURE__*/_react["default"].createElement("div", { className: "timepicker-".concat(type, "s") }, /*#__PURE__*/_react["default"].createElement("table", { className: "table-condensed" }, /*#__PURE__*/_react["default"].createElement("tbody", null, array.map(function (row, idx) { return /*#__PURE__*/_react["default"].createElement("tr", { key: idx }, row.map(function (hour) { return /*#__PURE__*/_react["default"].createElement("td", { key: hour, className: type, onClick: function onClick() { return _this.setTime(hour, type); } }, hour); })); })))); }); return _this; } _createClass(PickTimeTable, [{ key: "render", value: function render() { var hoursArray = [['12', '01', '02', '03'], ['04', '05', '06', '07'], ['08', '09', '10', '11']]; var minutesArray = [['00', '05', '10', '15'], ['20', '25', '30', '35'], ['40', '45', '50', '55']]; return this.props.type === _TimeConstants.HOUR ? this.getTimeTable(hoursArray, 'hour') : this.getTimeTable(minutesArray, 'minute'); } }]); return PickTimeTable; }(_react["default"].Component); PickTimeTable.propTypes = { time: _propTypes["default"].instanceOf(Date).isRequired, setSelected: _propTypes["default"].func, toggleTimeTable: _propTypes["default"].func, type: _propTypes["default"].string.isRequired }; PickTimeTable.defaultProps = { setSelected: _helpers.noop, toggleTimeTable: _helpers.noop }; var _default = PickTimeTable; exports["default"] = _default; /***/ }), /* 431 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); var _TimeConstants = __webpack_require__(87); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var PickTimeClock = /*#__PURE__*/function (_React$Component) { _inherits(PickTimeClock, _React$Component); var _super = _createSuper(PickTimeClock); function PickTimeClock() { var _this; _classCallCheck(this, PickTimeClock); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "state", { ampm: _this.props.time.getHours() >= 12 ? 'PM' : 'AM' }); _defineProperty(_assertThisInitialized(_this), "componentDidUpdate", function (prevProps) { var newTime = _this.props.time; if (prevProps.time !== newTime) { _this.setAMPM(newTime); } }); _defineProperty(_assertThisInitialized(_this), "setAMPM", function (time) { _this.setState({ ampm: time.getHours() >= 12 ? 'PM' : 'AM' }); }); _defineProperty(_assertThisInitialized(_this), "setTime", function (type, amount) { var time = _this.props.time; if (type === _TimeConstants.HOUR) { time.setHours(time.getHours() + amount); } else if (type === _TimeConstants.MINUTE) { time.setMinutes(time.getMinutes() + amount); } _this.props.setSelected(time); }); _defineProperty(_assertThisInitialized(_this), "toggleAMPM", function () { var time = _this.props.time; if (_this.state.ampm === 'AM') { time.setHours(time.getHours() + 12); _this.setState({ ampm: 'PM' }); } else { time.setHours(time.getHours() - 12); _this.setState({ ampm: 'AM' }); } _this.props.setSelected(time); }); return _this; } _createClass(PickTimeClock, [{ key: "render", value: function render() { var _this2 = this; var _this$props = this.props, time = _this$props.time, toggleTimeTable = _this$props.toggleTimeTable; var minutes = time.getMinutes(); var hours = time.getHours() % 12 || 12; return /*#__PURE__*/_react["default"].createElement("div", { className: "timepicker-picker" }, /*#__PURE__*/_react["default"].createElement("table", null, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", { onClick: function onClick() { return _this2.setTime(_TimeConstants.HOUR, 1); } }, /*#__PURE__*/_react["default"].createElement("a", { className: "btn clock-btn increment-hour" }, /*#__PURE__*/_react["default"].createElement("span", { className: "glyphicon glyphicon-chevron-up" }))), /*#__PURE__*/_react["default"].createElement("td", { className: "separator" }), /*#__PURE__*/_react["default"].createElement("td", { onClick: function onClick() { return _this2.setTime(_TimeConstants.MINUTE, 1); } }, /*#__PURE__*/_react["default"].createElement("a", { className: "btn clock-btn increment-min" }, /*#__PURE__*/_react["default"].createElement("span", { className: "glyphicon glyphicon-chevron-up" }))), /*#__PURE__*/_react["default"].createElement("td", { className: "separator" })), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", { onClick: function onClick() { return toggleTimeTable(_TimeConstants.HOUR); } }, /*#__PURE__*/_react["default"].createElement("span", { className: "timepicker-hour" }, "".concat(hours).padStart(2, '0'))), /*#__PURE__*/_react["default"].createElement("td", { className: "separator" }, ":"), /*#__PURE__*/_react["default"].createElement("td", { onClick: function onClick() { return toggleTimeTable(_TimeConstants.MINUTE); } }, /*#__PURE__*/_react["default"].createElement("span", { className: "timepicker-minute" }, "".concat(minutes).padStart(2, '0'))), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("button", { type: "button", className: "btn btn-primary ampm-toggle", onClick: function onClick() { return _this2.toggleAMPM(); } }, this.state.ampm))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("a", { className: "btn clock-btn decrement-hour", onClick: function onClick() { return _this2.setTime(_TimeConstants.HOUR, -1); } }, /*#__PURE__*/_react["default"].createElement("span", { className: "glyphicon glyphicon-chevron-down" }))), /*#__PURE__*/_react["default"].createElement("td", { className: "separator" }), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("a", { className: "btn clock-btn decrement-min", onClick: function onClick() { return _this2.setTime(_TimeConstants.MINUTE, -1); } }, /*#__PURE__*/_react["default"].createElement("span", { className: "glyphicon glyphicon-chevron-down" }))), /*#__PURE__*/_react["default"].createElement("td", { className: "separator" }))))); } }]); return PickTimeClock; }(_react["default"].Component); PickTimeClock.propTypes = { time: _propTypes["default"].instanceOf(Date).isRequired, setSelected: _propTypes["default"].func, toggleTimeTable: _propTypes["default"].func }; PickTimeClock.defaultProps = { setSelected: _helpers.noop, toggleTimeTable: _helpers.noop }; var _default = PickTimeClock; exports["default"] = _default; /***/ }), /* 432 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 433 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _PersonalAccessToken = _interopRequireDefault(__webpack_require__(434)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var PersonalAccessTokensList = function PersonalAccessTokensList(_ref) { var title = _ref.title, tokens = _ref.tokens, revocable = _ref.revocable, revokePersonalAccessToken = _ref.revokePersonalAccessToken; return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement("h3", null, "".concat(title, " (").concat(tokens.length, ")")), tokens.length > 0 && /*#__PURE__*/_react["default"].createElement("table", { className: "table table-bordered table-striped table-hover table-fixed" }, /*#__PURE__*/_react["default"].createElement("thead", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, (0, _I18n.translate)('Name')), /*#__PURE__*/_react["default"].createElement("th", null, (0, _I18n.translate)('Created')), /*#__PURE__*/_react["default"].createElement("th", null, revocable ? (0, _I18n.translate)('Expires') : (0, _I18n.translate)('Expired')), /*#__PURE__*/_react["default"].createElement("th", null, (0, _I18n.translate)('Last Used')), /*#__PURE__*/_react["default"].createElement("th", null, (0, _I18n.translate)('Actions')))), /*#__PURE__*/_react["default"].createElement("tbody", null, tokens.map(function (token) { return /*#__PURE__*/_react["default"].createElement(_PersonalAccessToken["default"], _extends({ key: token.id }, token, { revokePersonalAccessToken: revokePersonalAccessToken })); })))); }; PersonalAccessTokensList.propTypes = { tokens: _propTypes["default"].array.isRequired, title: _propTypes["default"].string, revokePersonalAccessToken: _propTypes["default"].func, revocable: _propTypes["default"].bool }; PersonalAccessTokensList.defaultProps = { revokePersonalAccessToken: _helpers.noop, title: (0, _I18n.translate)('Personal Access Tokens'), revocable: false }; var _default = PersonalAccessTokensList; exports["default"] = _default; /***/ }), /* 434 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _RelativeDateTime = _interopRequireDefault(__webpack_require__(47)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var PersonalAccessToken = function PersonalAccessToken(_ref) { var revokePersonalAccessToken = _ref.revokePersonalAccessToken, id = _ref.id, name = _ref.name, createdAt = _ref.created_at, expiresAt = _ref.expires_at, lastUsedAt = _ref.last_used_at, userId = _ref.user_id, isActive = _ref['active?'], isRevoked = _ref['revoked?']; return /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, name), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement(_RelativeDateTime["default"], { date: createdAt })), /*#__PURE__*/_react["default"].createElement("td", null, isRevoked && (0, _I18n.translate)('Revoked') || !expiresAt && (0, _I18n.translate)('Never') || /*#__PURE__*/_react["default"].createElement(_RelativeDateTime["default"], { date: expiresAt })), /*#__PURE__*/_react["default"].createElement("td", null, lastUsedAt ? /*#__PURE__*/_react["default"].createElement(_RelativeDateTime["default"], { date: lastUsedAt }) : (0, _I18n.translate)('Never')), /*#__PURE__*/_react["default"].createElement("td", null, isActive && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { onClick: function onClick() { return revokePersonalAccessToken(id); }, className: "btn-sm btn-default" }, (0, _I18n.translate)('Revoke')))); }; PersonalAccessToken.propTypes = { id: _propTypes["default"].number.isRequired, user_id: _propTypes["default"].number.isRequired, name: _propTypes["default"].string.isRequired, created_at: _propTypes["default"].string.isRequired, revokePersonalAccessToken: _propTypes["default"].func, expires_at: _propTypes["default"].string, last_used_at: _propTypes["default"].string, 'active?': _propTypes["default"].bool.isRequired, 'revoked?': _propTypes["default"].bool.isRequired }; PersonalAccessToken.defaultProps = { revokePersonalAccessToken: _helpers.noop, expires_at: null, last_used_at: null }; var _default = PersonalAccessToken; exports["default"] = _default; /***/ }), /* 435 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectConfirmModal = exports.reducers = exports.openConfirmModal = exports.closeConfirmModal = void 0; var _toolkit = __webpack_require__(73); var _helpers = __webpack_require__(3); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var initialState = { isOpen: false }; var confirmModalSlice = (0, _toolkit.createSlice)({ name: 'confirmModal', initialState: initialState, reducers: { openConfirmModal: function openConfirmModal(state, action) { var _action$payload = action.payload, _action$payload$title = _action$payload.title, title = _action$payload$title === void 0 ? '' : _action$payload$title, _action$payload$messa = _action$payload.message, message = _action$payload$messa === void 0 ? '' : _action$payload$messa, _action$payload$onCon = _action$payload.onConfirm, onConfirm = _action$payload$onCon === void 0 ? _helpers.noop : _action$payload$onCon, _action$payload$onCan = _action$payload.onCancel, onCancel = _action$payload$onCan === void 0 ? _helpers.noop : _action$payload$onCan, _action$payload$isWar = _action$payload.isWarning, isWarning = _action$payload$isWar === void 0 ? false : _action$payload$isWar, _action$payload$confi = _action$payload.confirmButtonText, confirmButtonText = _action$payload$confi === void 0 ? null : _action$payload$confi, _action$payload$modal = _action$payload.modalProps, modalProps = _action$payload$modal === void 0 ? {} : _action$payload$modal; return { isOpen: true, title: title, message: message, onConfirm: onConfirm, onCancel: onCancel, modalProps: modalProps, isWarning: isWarning, confirmButtonText: confirmButtonText }; }, closeConfirmModal: function closeConfirmModal(state) { return initialState; } } }); var name = confirmModalSlice.name, reducer = confirmModalSlice.reducer, actions = confirmModalSlice.actions; var openConfirmModal = actions.openConfirmModal, closeConfirmModal = actions.closeConfirmModal; exports.closeConfirmModal = closeConfirmModal; exports.openConfirmModal = openConfirmModal; var reducers = _defineProperty({}, name, reducer); exports.reducers = reducers; var selectConfirmModal = function selectConfirmModal(state) { return state[name]; }; exports.selectConfirmModal = selectConfirmModal; /***/ }), /* 436 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _seamlessImmutable = _interopRequireDefault(__webpack_require__(9)); var _PersonalAccessTokensConstants = __webpack_require__(86); var _excluded = ["token_value"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var initialState = (0, _seamlessImmutable["default"])({ tokens: [] }); var _default = function _default() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var _ref = arguments.length > 1 ? arguments[1] : undefined, type = _ref.type, payload = _ref.payload; switch (type) { case _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKENS_REQUEST: case _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKENS_SUCCESS: return state.set('tokens', payload.results || []); case _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKENS_FAILURE: return state.set(payload.id, { error: payload.error }); case _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKEN_FORM_SUBMITTED: { var _payload$data = payload.data, newPersonalAccessToken = _payload$data.token_value, token = _objectWithoutProperties(_payload$data, _excluded); return state.set('newPersonalAccessToken', newPersonalAccessToken).set('tokens', [].concat(_toConsumableArray(state.tokens), [token])); } case _PersonalAccessTokensConstants.PERSONAL_ACCESS_TOKEN_CLEAR: return state.set('newPersonalAccessToken', null); default: { return state; } } }; exports["default"] = _default; /***/ }), /* 437 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { Object.defineProperty(exports, "__esModule", { value: true }); exports.middlewares = void 0; var _reduxLogger = _interopRequireDefault(__webpack_require__(438)); var _reduxThunk = _interopRequireDefault(__webpack_require__(439)); var _connectedReactRouter = __webpack_require__(33); var _API = __webpack_require__(8); var _IntervalMiddleware = __webpack_require__(32); var _history = _interopRequireDefault(__webpack_require__(23)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var logReduxToConsole = function logReduxToConsole() { var isProduction = "development" === 'production'; var isLogger = undefined; if (!isProduction && !global.__testing__) { if (isLogger === undefined || isLogger === true) return true; } return isProduction && isLogger; }; var middlewares = [_reduxThunk["default"], _IntervalMiddleware.IntervalMiddleware, _API.APIMiddleware, (0, _connectedReactRouter.routerMiddleware)(_history["default"])].concat(_toConsumableArray(logReduxToConsole() ? [(0, _reduxLogger["default"])()] : [])); exports.middlewares = middlewares; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(105))) /***/ }), /* 438 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REDUX_LOGGER__; /***/ }), /* 439 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REDUX_THUNK__; /***/ }), /* 440 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDefaultDiskAttributes = exports.defaultControllerAttributes = void 0; var _I18n = __webpack_require__(2); var defaultControllerAttributes = { type: 'ParaVirtualSCSIController' }; exports.defaultControllerAttributes = defaultControllerAttributes; var _defaultDiskAttributes = { sizeGb: 10, datastore: '', storagePod: '', thin: false, eagerZero: false, name: (0, _I18n.translate)('Hard disk'), mode: 'persistent' }; var getDefaultDiskAttributes = _defaultDiskAttributes; exports.getDefaultDiskAttributes = getDefaultDiskAttributes; /***/ }), /* 441 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _connectedReactRouter = __webpack_require__(33); var _client = __webpack_require__(167); var _history = _interopRequireDefault(__webpack_require__(23)); var _ForemanContext = __webpack_require__(29); var _Layout = _interopRequireWildcard(__webpack_require__(76)); var _routes = _interopRequireDefault(__webpack_require__(168)); var _apollo = _interopRequireDefault(__webpack_require__(500)); var _ToastsList = _interopRequireDefault(__webpack_require__(28)); var _ErrorBoundary = _interopRequireDefault(__webpack_require__(502)); var _ConfirmModal = _interopRequireDefault(__webpack_require__(30)); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ReactApp = function ReactApp(_ref) { var layout = _ref.layout, metadata = _ref.metadata, toasts = _ref.toasts; var contextData = { metadata: metadata }; var ForemanContext = (0, _ForemanContext.getForemanContext)(contextData); return /*#__PURE__*/_react["default"].createElement("div", { id: "react-app-root" }, /*#__PURE__*/_react["default"].createElement(ForemanContext.Provider, { value: contextData }, /*#__PURE__*/_react["default"].createElement(_client.ApolloProvider, { client: _apollo["default"] }, /*#__PURE__*/_react["default"].createElement(_connectedReactRouter.ConnectedRouter, { history: _history["default"] }, /*#__PURE__*/_react["default"].createElement(_Layout["default"], { data: layout }, /*#__PURE__*/_react["default"].createElement(_ErrorBoundary["default"], { history: _history["default"] }, /*#__PURE__*/_react["default"].createElement(_ToastsList["default"], { railsMessages: toasts }), /*#__PURE__*/_react["default"].createElement(_routes["default"], null), /*#__PURE__*/_react["default"].createElement(_ConfirmModal["default"], null))))))); }; ReactApp.propTypes = { layout: _Layout.propTypes.data.isRequired, metadata: _propTypes["default"].object.isRequired, toasts: _propTypes["default"].array.isRequired }; var _default = ReactApp; exports["default"] = _default; /***/ }), /* 442 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.routes = void 0; var _Audits = _interopRequireDefault(__webpack_require__(443)); var _Models = _interopRequireDefault(__webpack_require__(444)); var _HostDetails = _interopRequireDefault(__webpack_require__(445)); var _RegistrationCommands = _interopRequireDefault(__webpack_require__(471)); var _HostStatuses = _interopRequireDefault(__webpack_require__(490)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var routes = [_Audits["default"], _Models["default"], _HostDetails["default"], _RegistrationCommands["default"], _HostStatuses["default"]]; exports.routes = routes; /***/ }), /* 443 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _AuditsPage = _interopRequireDefault(__webpack_require__(132)); var _constants = __webpack_require__(79); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = { path: _constants.AUDITS_PATH, render: function render(props) { return /*#__PURE__*/_react["default"].createElement(_AuditsPage["default"], props); } }; exports["default"] = _default; /***/ }), /* 444 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _ModelsPage = _interopRequireDefault(__webpack_require__(147)); var _constants = __webpack_require__(37); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = { path: _constants.MODELS_PATH, render: function render(props) { return /*#__PURE__*/_react["default"].createElement(_ModelsPage["default"], props); }, exact: true }; exports["default"] = _default; /***/ }), /* 445 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _HostDetails = _interopRequireDefault(__webpack_require__(446)); var _constants = __webpack_require__(470); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = { path: _constants.HOST_DETAILS_PATH, render: function render(props) { return /*#__PURE__*/_react["default"].createElement(_HostDetails["default"], props); } }; exports["default"] = _default; /***/ }), /* 446 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _reactLoadingSkeleton = _interopRequireDefault(__webpack_require__(61)); var _RelativeDateTime = _interopRequireDefault(__webpack_require__(47)); var _SlotSelectors = __webpack_require__(63); var _LayoutSelectors = __webpack_require__(116); var _ActionsBar = _interopRequireDefault(__webpack_require__(447)); var _Tabs = __webpack_require__(449); var _consts = __webpack_require__(64); var _I18n = __webpack_require__(2); var _GlobalStatus = _interopRequireDefault(__webpack_require__(465)); var _SkeletonLoader = _interopRequireDefault(__webpack_require__(39)); var _constants = __webpack_require__(7); __webpack_require__(466); var _APIHooks = __webpack_require__(38); var _TabRouter = _interopRequireDefault(__webpack_require__(467)); var _ExperimentalAlert = _interopRequireDefault(__webpack_require__(469)); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /* eslint-disable camelcase */ var HostDetails = function HostDetails(_ref) { var id = _ref.match.params.id, hash = _ref.location.hash, history = _ref.history; var _useAPI = (0, _APIHooks.useAPI)('get', "/api/hosts/".concat(id), _consts.HOST_DETAILS_API_OPTIONS), response = _useAPI.response, status = _useAPI.status; var isNavCollapsed = (0, _reactRedux.useSelector)(_LayoutSelectors.selectIsCollapsed); var tabs = (0, _reactRedux.useSelector)(function (state) { return (0, _SlotSelectors.selectFillsIDs)(state, _consts.TABS_SLOT_ID); }, _reactRedux.shallowEqual); var slotMetadata = (0, _reactRedux.useSelector)(function (state) { return (0, _SlotSelectors.selectSlotMetadata)(state, _consts.TABS_SLOT_ID); }); // This is a workaround due to the tabs overflow mechanism in PF4 (0, _react.useEffect)(function () { if (tabs !== null && tabs !== void 0 && tabs.length) dispatchEvent(new Event('resize')); }, [tabs]); (0, _react.useEffect)(function () { (0, _Tabs.registerCoreTabs)(); }, []); var activeTab = decodeURI(hash.slice(2).split('/')[0].split('?')[0] // Remove query params ); return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.PageSection, { className: "host-details-header-section", isFilled: true, variant: "light" }, /*#__PURE__*/_react["default"].createElement("div", { className: "header-top" }, /*#__PURE__*/_react["default"].createElement(_reactCore.Breadcrumb, { className: "host-details-breadcrumb" }, /*#__PURE__*/_react["default"].createElement(_reactCore.BreadcrumbItem, { to: "/hosts" }, (0, _I18n.translate)('Hosts')), /*#__PURE__*/_react["default"].createElement(_reactCore.BreadcrumbItem, { isActive: true }, response.name || /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null))), /*#__PURE__*/_react["default"].createElement(_reactCore.Grid, { className: "hostname-skeleton-rapper" }, /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 9 }, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { status: status || _constants.STATUS.PENDING }, response && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", { className: "hostname-wrapper" }, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { status: status || _constants.STATUS.PENDING }, response && /*#__PURE__*/_react["default"].createElement(_reactCore.Title, { className: "hostname-truncate", headingLevel: "h5", size: "2xl" }, response.name))), /*#__PURE__*/_react["default"].createElement(_reactCore.Split, { style: { display: 'inline-flex' }, hasGutter: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.SplitItem, null, /*#__PURE__*/_react["default"].createElement(_GlobalStatus["default"], { hostName: id })), /*#__PURE__*/_react["default"].createElement(_reactCore.SplitItem, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Badge, null, " ", response === null || response === void 0 ? void 0 : response.operatingsystem_name)), /*#__PURE__*/_react["default"].createElement(_reactCore.SplitItem, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Badge, null, response === null || response === void 0 ? void 0 : response.architecture_name)))))), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { offset: 10, span: 2 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Flex, null, /*#__PURE__*/_react["default"].createElement(_reactCore.FlexItem, { align: { "default": 'alignRight' } }, /*#__PURE__*/_react["default"].createElement(_ActionsBar["default"], { computeId: response.compute_resource_id, hostId: id, permissions: response.permissions, hasReports: !!response.last_report, isBuild: response.build }))))), /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { skeletonProps: { width: 400 }, status: status || _constants.STATUS.PENDING }, response && /*#__PURE__*/_react["default"].createElement(_reactCore.Text, { component: _reactCore.TextVariants.span }, /*#__PURE__*/_react["default"].createElement(_RelativeDateTime["default"], { date: response.created_at, defaultValue: "N/A" }, function (date) { return (0, _I18n.sprintf)((0, _I18n.translate)('Created %s by %s'), date, response.owner_name); }), ' ', /*#__PURE__*/_react["default"].createElement(_RelativeDateTime["default"], { date: response.updated_at, defaultValue: "N/A" }, function (date) { return (0, _I18n.sprintf)((0, _I18n.translate)('(updated %s)'), date); })))), /*#__PURE__*/_react["default"].createElement(_ExperimentalAlert["default"], { hostId: id }), tabs && /*#__PURE__*/_react["default"].createElement(_TabRouter["default"], { response: response, hostName: id, status: status, tabs: tabs, router: history }, /*#__PURE__*/_react["default"].createElement(_reactCore.Tabs, { activeKey: activeTab, className: "host-details-tabs tab-width-".concat(isNavCollapsed ? '138' : '263') }, tabs.map(function (tab) { var _slotMetadata$tab; return /*#__PURE__*/_react["default"].createElement(_reactCore.Tab, { key: tab, eventKey: tab, title: (slotMetadata === null || slotMetadata === void 0 ? void 0 : (_slotMetadata$tab = slotMetadata[tab]) === null || _slotMetadata$tab === void 0 ? void 0 : _slotMetadata$tab.title) || tab }); }))))); }; HostDetails.propTypes = { match: _propTypes["default"].shape({ params: _propTypes["default"].shape({ id: _propTypes["default"].string }) }).isRequired, location: _propTypes["default"].shape({ hash: _propTypes["default"].string }).isRequired, history: _propTypes["default"].object.isRequired }; var _default = HostDetails; exports["default"] = _default; /***/ }), /* 447 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _foreman_navigation = __webpack_require__(26); var _I18n = __webpack_require__(2); var _Selectors = __webpack_require__(169); var _helpers = __webpack_require__(3); var _actions = __webpack_require__(171); var _ForemanContext = __webpack_require__(29); var _BuildModal = _interopRequireDefault(__webpack_require__(448)); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var ActionsBar = function ActionsBar(_ref) { var hostId = _ref.hostId, computeId = _ref.computeId, isBuild = _ref.isBuild, hasReports = _ref.hasReports, _ref$permissions = _ref.permissions, canDestroy = _ref$permissions.destroy_hosts, canCreate = _ref$permissions.create_hosts, canEdit = _ref$permissions.edit_hosts, canBuild = _ref$permissions.build_hosts; var _useState = (0, _react.useState)(false), _useState2 = _slicedToArray(_useState, 2), kebabIsOpen = _useState2[0], setKebab = _useState2[1]; var _useState3 = (0, _react.useState)(false), _useState4 = _slicedToArray(_useState3, 2), isBuildModalOpen = _useState4[0], setBuildModal = _useState4[1]; var onKebabToggle = function onKebabToggle(isOpen) { return setKebab(isOpen); }; var _useForemanSettings = (0, _ForemanContext.useForemanSettings)(), destroyVmOnHostDelete = _useForemanSettings.destroyVmOnHostDelete; var registeredItems = (0, _reactRedux.useSelector)(_Selectors.selectKebabItems, _reactRedux.shallowEqual); var isHostActive = (0, _reactRedux.useSelector)(_actions.isHostTurnOn); var dispatch = (0, _reactRedux.useDispatch)(); var deleteHostHandler = function deleteHostHandler() { return dispatch((0, _actions.deleteHost)(hostId, computeId, destroyVmOnHostDelete)); }; var buildHandler = function buildHandler() { if (isBuild) { dispatch((0, _actions.cancelBuild)(hostId)); setKebab(false); } else { setBuildModal(true); } }; var dropdownItems = [/*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { onClick: buildHandler, key: "build", component: "button", isDisabled: !canBuild, icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.BuildIcon, null) }, isBuild ? (0, _I18n.translate)('Cancel build') : (0, _I18n.translate)('Build')), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { isDisabled: !canCreate, onClick: function onClick() { return (0, _foreman_navigation.visit)((0, _helpers.foremanUrl)("/hosts/".concat(hostId, "/clone"))); }, key: "clone", component: "button", icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.CloneIcon, null) }, (0, _I18n.translate)('Clone')), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { isDisabled: !canDestroy, onClick: deleteHostHandler, key: "delete", component: "button", icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.TrashIcon, null) }, (0, _I18n.translate)('Delete')), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownSeparator, { key: "sp-1" }), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { onClick: function onClick() { return (0, _foreman_navigation.visit)((0, _helpers.foremanUrl)("/hosts/".concat(hostId, "/console"))); }, key: "console", isDisabled: !isHostActive, component: "button", icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.TerminalIcon, null) }, (0, _I18n.translate)('Console')), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { onClick: function onClick() { return (0, _foreman_navigation.visit)((0, _helpers.foremanUrl)("/hosts/".concat(hostId, "/facts"))); }, key: "fact", component: "button", icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.DatabaseIcon, null) }, (0, _I18n.translate)('Facts')), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { isDisabled: !hasReports, onClick: function onClick() { return (0, _foreman_navigation.visit)((0, _helpers.foremanUrl)("/hosts/".concat(hostId, "/config_reports"))); }, key: "report", component: "button", icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.FileInvoiceIcon, null) }, (0, _I18n.translate)('Reports')), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownSeparator, { key: "sp-2" }), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.UndoIcon, null), href: "/hosts/".concat(hostId), key: "prev-version" }, (0, _I18n.translate)('Legacy UI')), /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.CommentIcon, null), onClick: function onClick() { return window.open('https://community.theforeman.org/t/foreman-3-0-new-host-detail-page-feedback/25281', '_blank'); }, key: "feedback", component: "button" }, (0, _I18n.translate)('Share feedback'))]; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { onClick: function onClick() { return (0, _foreman_navigation.visit)((0, _helpers.foremanUrl)("/hosts/".concat(hostId, "/edit"))); }, variant: "secondary", isDisabled: !canEdit }, (0, _I18n.translate)('Edit')), /*#__PURE__*/_react["default"].createElement(_reactCore.Dropdown, { alignments: { "default": 'right' }, toggle: /*#__PURE__*/_react["default"].createElement(_reactCore.KebabToggle, { id: "hostdetails-kebab", onToggle: onKebabToggle }), isOpen: kebabIsOpen, isPlain: true, dropdownItems: dropdownItems.concat(registeredItems) }), isBuildModalOpen && /*#__PURE__*/_react["default"].createElement(_BuildModal["default"], { isModalOpen: isBuildModalOpen, onClose: function onClose() { return setBuildModal(false); }, hostId: hostId })); }; ActionsBar.propTypes = { hostId: _propTypes["default"].string, computeId: _propTypes["default"].number, permissions: _propTypes["default"].object, hasReports: _propTypes["default"].bool, isBuild: _propTypes["default"].bool }; ActionsBar.defaultProps = { hostId: undefined, computeId: undefined, permissions: { destroy_hosts: false, create_hosts: false, edit_hosts: false, build_hosts: false }, hasReports: false, isBuild: false }; var _default = ActionsBar; exports["default"] = _default; /***/ }), /* 448 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _reactIntl = __webpack_require__(25); var _I18n = __webpack_require__(2); var _APIHooks = __webpack_require__(38); var _helpers = __webpack_require__(3); var _SkeletonLoader = _interopRequireDefault(__webpack_require__(39)); var _constants = __webpack_require__(7); var _constants2 = __webpack_require__(170); var _Selectors = __webpack_require__(169); var _actions = __webpack_require__(171); var _StatusIcon = _interopRequireDefault(__webpack_require__(48)); var _Constants = __webpack_require__(40); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var BuildModal = function BuildModal(_ref) { var isModalOpen = _ref.isModalOpen, onClose = _ref.onClose, hostId = _ref.hostId; var _useState = (0, _react.useState)(), _useState2 = _slicedToArray(_useState, 2), activeErrors = _useState2[0], setActiveErrors = _useState2[1]; var errorsTree = (0, _reactRedux.useSelector)(_Selectors.selectBuildErrorsTree); var noErrors = (0, _reactRedux.useSelector)(_Selectors.selectNoErrorState); var dispach = (0, _reactRedux.useDispatch)(); var _useAPI = (0, _APIHooks.useAPI)('get', (0, _helpers.foremanUrl)("/hosts/".concat(hostId, "/review_before_build")), _constants2.API_OPTIONS), status = _useAPI.status; var onSelectError = function onSelectError(evt, treeViewItem) { setActiveErrors([treeViewItem]); }; return /*#__PURE__*/_react["default"].createElement(_reactCore.Modal, { variant: _reactCore.ModalVariant.medium, title: (0, _I18n.translate)('Review before build'), isOpen: isModalOpen, onClose: onClose, actions: [/*#__PURE__*/_react["default"].createElement(_reactCore.Button, { key: "confirm", variant: "primary", onClick: function onClick() { dispach((0, _actions.buildHost)(hostId)); onClose(); } }, (0, _I18n.translate)('Build')), /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { key: "cancel", variant: "link", onClick: onClose }, (0, _I18n.translate)('Cancel'))] }, /*#__PURE__*/_react["default"].createElement(_reactCore.Stack, { hasGutter: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.StackItem, null, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedMessage, { id: "build", values: { hostName: /*#__PURE__*/_react["default"].createElement("b", null, hostId) }, defaultMessage: (0, _I18n.translate)('Build enables host {hostName} to rebuild on next boot') })), /*#__PURE__*/_react["default"].createElement(_reactCore.StackItem, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Alert, { variant: "warning", isInline: true, title: (0, _I18n.translate)('This action will delete this host and all its data (i.e facts, report)') })), /*#__PURE__*/_react["default"].createElement(_reactCore.StackItem, null, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { skeletonProps: { count: Object.keys(_constants2.SUPPORTED_ERRORS).length }, status: status || _constants.STATUS.PENDING }, noErrors ? /*#__PURE__*/_react["default"].createElement(_StatusIcon["default"], { label: (0, _I18n.translate)('No errors detected'), statusNumber: _Constants.OK_STATUS_STATE }) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_StatusIcon["default"], { label: (0, _I18n.translate)('The following errors may prevent a successful build:'), statusNumber: _Constants.ERROR_STATUS_STATE }), /*#__PURE__*/_react["default"].createElement(_reactCore.TreeView, { data: errorsTree, activeItems: activeErrors, onSelect: onSelectError, hasBadges: true })))))); }; BuildModal.propTypes = { hostId: _propTypes["default"].string.isRequired, isModalOpen: _propTypes["default"].bool.isRequired, onClose: _propTypes["default"].func.isRequired }; var _default = BuildModal; exports["default"] = _default; /***/ }), /* 449 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerCoreTabs = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _I18n = __webpack_require__(2); var _GlobalFill = __webpack_require__(68); var _consts = __webpack_require__(64); var _Overview = _interopRequireDefault(__webpack_require__(450)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var registerCoreTabs = function registerCoreTabs() { (0, _GlobalFill.addGlobalFill)(_consts.TABS_SLOT_ID, _consts.DEFAULT_TAB, /*#__PURE__*/_react["default"].createElement(_Overview["default"], { key: "host-details-overview-tab" }), 1000, { title: (0, _I18n.translate)('Overview') }); }; exports.registerCoreTabs = registerCoreTabs; /***/ }), /* 450 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactCore = __webpack_require__(6); var _CardsRegistry = __webpack_require__(451); var _Slot = _interopRequireDefault(__webpack_require__(65)); var _constants = __webpack_require__(7); __webpack_require__(464); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DetailsTab = function DetailsTab(_ref) { var response = _ref.response, status = _ref.status, hostName = _ref.hostName; (0, _react.useEffect)(function () { // This is a workaround for adding gray background inspiring pf4 desgin // TODO: delete it when pf4 layout (Page copmponent) is implemented in foreman document.body.classList.add('pf-gray-background'); (0, _CardsRegistry.registerCoreCards)(); return function () { return document.body.classList.remove('pf-gray-background'); }; }, []); return /*#__PURE__*/_react["default"].createElement("div", { className: "host-details-tab-item details-tab" }, /*#__PURE__*/_react["default"].createElement(_reactCore.Grid, { hasGutter: true }, /*#__PURE__*/_react["default"].createElement(_Slot["default"], { hostDetails: response, status: status, hostName: hostName, id: "details-cards", multi: true }))); }; DetailsTab.propTypes = { response: _propTypes["default"].object, status: _propTypes["default"].string, hostName: _propTypes["default"].string }; DetailsTab.defaultProps = { response: {}, status: _constants.STATUS.PENDING, hostName: undefined }; var _default = DetailsTab; exports["default"] = _default; /***/ }), /* 451 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerCoreCards = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _GlobalFill = __webpack_require__(68); var _Audits = _interopRequireDefault(__webpack_require__(452)); var _DetailsCard = _interopRequireDefault(__webpack_require__(453)); var _AggregateStatusCard = _interopRequireDefault(__webpack_require__(458)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var cards = [{ key: '[core]-detail-card', Component: _DetailsCard["default"], weight: 4000 }, { key: '[core]-status-card', Component: _AggregateStatusCard["default"], weight: 3500 }, { key: '[core]-audit-card', Component: _Audits["default"], weight: 3000 }]; var registerCoreCards = function registerCoreCards() { cards.forEach(function (_ref) { var key = _ref.key, Component = _ref.Component, weight = _ref.weight; (0, _GlobalFill.addGlobalFill)('details-cards', key, /*#__PURE__*/_react["default"].createElement(Component, { key: key }), weight); }); }; exports.registerCoreCards = registerCoreCards; /***/ }), /* 452 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _urijs = _interopRequireDefault(__webpack_require__(15)); var _connectedReactRouter = __webpack_require__(33); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); var _APIHooks = __webpack_require__(38); var _RelativeDateTime = _interopRequireDefault(__webpack_require__(47)); var _SkeletonLoader = _interopRequireDefault(__webpack_require__(39)); var _constants = __webpack_require__(7); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var NUMBER_OF_RECORDS = 3; var AuditCard = function AuditCard(_ref) { var hostName = _ref.hostName; var dispatch = (0, _reactRedux.useDispatch)(); var hostSearch = "host=".concat(hostName); var apiUrl = new _urijs["default"]({ path: (0, _helpers.foremanUrl)('/api/audits'), query: { search: hostSearch, per_page: NUMBER_OF_RECORDS } }).toString(); var uiUrl = new _urijs["default"]({ path: (0, _helpers.foremanUrl)('/audits'), query: { search: hostSearch } }).toString(); var _useAPI = (0, _APIHooks.useAPI)('get', apiUrl), audits = _useAPI.response.results, _useAPI$status = _useAPI.status, status = _useAPI$status === void 0 ? _constants.STATUS.PENDING : _useAPI$status; return /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { xl2: 3, xl: 4, md: 6, lg: 4 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Card, { isHoverable: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.CardHeader, null, /*#__PURE__*/_react["default"].createElement(_reactCore.CardTitle, null, (0, _I18n.translate)('Recent Audits')), /*#__PURE__*/_react["default"].createElement(_reactCore.CardActions, null, /*#__PURE__*/_react["default"].createElement("a", { onClick: function onClick() { return dispatch((0, _connectedReactRouter.push)(uiUrl)); } }, " ", (0, _I18n.translate)('All audits')))), /*#__PURE__*/_react["default"].createElement(_reactCore.CardBody, null, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { skeletonProps: { count: NUMBER_OF_RECORDS }, status: status, emptyState: /*#__PURE__*/_react["default"].createElement(_reactCore.Bullseye, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Title, { headingLevel: "h4" }, " ", (0, _I18n.translate)('No Results found'), " ")) }, audits && /*#__PURE__*/_react["default"].createElement(_reactCore.DataList, { isCompact: true }, audits.map(function (_ref2) { var user = _ref2.user_name, timestamp = _ref2.created_at, action = _ref2.action, id = _ref2.id; return /*#__PURE__*/_react["default"].createElement(_reactCore.DataListItem, { key: id }, /*#__PURE__*/_react["default"].createElement(_reactCore.DataListItemRow, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DataListItemCells, { dataListCells: [/*#__PURE__*/_react["default"].createElement(_reactCore.DataListCell, { wrapModifier: "truncate", key: "action-".concat(id) }, /*#__PURE__*/_react["default"].createElement(_reactCore.DataListText, { tooltip: action }, action)), /*#__PURE__*/_react["default"].createElement(_reactCore.DataListCell, { wrapModifier: "truncate", key: "date-".concat(id) }, /*#__PURE__*/_react["default"].createElement(_RelativeDateTime["default"], { date: timestamp })), /*#__PURE__*/_react["default"].createElement(_reactCore.DataListCell, { wrapModifier: "truncate", key: "user-".concat(id) }, /*#__PURE__*/_react["default"].createElement(_reactCore.DataListText, { tooltip: user }, user))] }))); })))))); }; AuditCard.propTypes = { hostName: _propTypes["default"].string }; AuditCard.defaultProps = { hostName: undefined }; var _default = AuditCard; exports["default"] = _default; /***/ }), /* 453 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _I18n = __webpack_require__(2); var _SkeletonLoader = _interopRequireDefault(__webpack_require__(39)); var _constants = __webpack_require__(7); var _DefaultLoaderEmptyState = _interopRequireDefault(__webpack_require__(454)); var _PowerStatusDropDown = _interopRequireDefault(__webpack_require__(455)); __webpack_require__(90); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DetailsCard = function DetailsCard(_ref) { var status = _ref.status, hostName = _ref.hostName, _ref$hostDetails = _ref.hostDetails, ip = _ref$hostDetails.ip, ip6 = _ref$hostDetails.ip6, mac = _ref$hostDetails.mac, comment = _ref$hostDetails.comment, ownerID = _ref$hostDetails.owner_id, ownerName = _ref$hostDetails.owner_name, hostgroupName = _ref$hostDetails.hostgroup_name, _ref$hostDetails$perm = _ref$hostDetails.permissions, _ref$hostDetails$perm2 = _ref$hostDetails$perm === void 0 ? {} : _ref$hostDetails$perm, hasPowerPermission = _ref$hostDetails$perm2.power_hosts; return /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { xl2: 3, xl: 4, md: 6, lg: 4, rowSpan: 2 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Card, { isHoverable: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.CardHeader, null, /*#__PURE__*/_react["default"].createElement(_reactCore.CardTitle, null, (0, _I18n.translate)('Details')), /*#__PURE__*/_react["default"].createElement(_reactCore.CardActions, null, /*#__PURE__*/_react["default"].createElement(_PowerStatusDropDown["default"], { hostID: hostName, hasPowerPermission: hasPowerPermission }))), /*#__PURE__*/_react["default"].createElement(_reactCore.CardBody, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionList, { isAutoColumnWidths: true, columnModifier: { "default": '2Col' } }, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListTerm, null, (0, _I18n.translate)('IPv6 address')), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListDescription, null, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { emptyState: /*#__PURE__*/_react["default"].createElement(_DefaultLoaderEmptyState["default"], null), status: status }, ip6 && /*#__PURE__*/_react["default"].createElement(_reactCore.ClipboardCopy, { isBlock: true, variant: "inline-compact" }, ip6)))), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListTerm, null, (0, _I18n.translate)('IPv4 address')), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListDescription, null, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { emptyState: /*#__PURE__*/_react["default"].createElement(_DefaultLoaderEmptyState["default"], null), status: status }, ip && /*#__PURE__*/_react["default"].createElement(_reactCore.ClipboardCopy, { isBlock: true, variant: "inline-compact" }, ip)))), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListTerm, null, (0, _I18n.translate)('MAC address')), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListDescription, null, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { emptyState: /*#__PURE__*/_react["default"].createElement(_DefaultLoaderEmptyState["default"], null), status: status }, mac && /*#__PURE__*/_react["default"].createElement(_reactCore.ClipboardCopy, { isBlock: true, variant: "inline-compact" }, mac))))), /*#__PURE__*/_react["default"].createElement(_reactCore.Divider, { className: "padded-divider" }), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionList, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListTerm, null, (0, _I18n.translate)('Host group')), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListDescription, null, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { emptyState: /*#__PURE__*/_react["default"].createElement(_DefaultLoaderEmptyState["default"], null), status: status }, hostgroupName))), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListTerm, null, (0, _I18n.translate)('Host owner')), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListDescription, null, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { emptyState: /*#__PURE__*/_react["default"].createElement(_DefaultLoaderEmptyState["default"], null), status: status }, ownerID && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_reactIcons.UserIcon, null), " ", ownerName)))), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListTerm, null, (0, _I18n.translate)('Comment')), /*#__PURE__*/_react["default"].createElement(_reactCore.DescriptionListDescription, null, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { emptyState: /*#__PURE__*/_react["default"].createElement(_DefaultLoaderEmptyState["default"], null), status: status }, comment))))))); }; DetailsCard.propTypes = { hostName: _propTypes["default"].string, status: _propTypes["default"].string, hostDetails: _propTypes["default"].shape({ comment: _propTypes["default"].string, hostgroup_name: _propTypes["default"].string, ip: _propTypes["default"].string, ip6: _propTypes["default"].string, mac: _propTypes["default"].string, owner_id: _propTypes["default"].number, owner_name: _propTypes["default"].string, permissions: _propTypes["default"].object }) }; DetailsCard.defaultProps = { hostName: undefined, status: _constants.STATUS.PENDING, hostDetails: { comment: undefined, hostgroup_name: undefined, ip: undefined, ip6: undefined, mac: undefined, owner_id: undefined, owner_name: undefined, permissions: { power_hosts: false } } }; var _default = DetailsCard; exports["default"] = _default; /***/ }), /* 454 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _I18n = __webpack_require__(2); __webpack_require__(90); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var DefaultLoaderEmptyState = function DefaultLoaderEmptyState() { return /*#__PURE__*/_react["default"].createElement("span", { className: "disabled-text" }, (0, _I18n.translate)('Not Available')); }; var _default = DefaultLoaderEmptyState; exports["default"] = _default; /***/ }), /* 455 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _helpers = __webpack_require__(3); var _APIHooks = __webpack_require__(38); var _I18n = __webpack_require__(2); var _PowerStatusIcon = _interopRequireDefault(__webpack_require__(456)); var _constants = __webpack_require__(88); var _actions = __webpack_require__(457); var _ConfirmModal = __webpack_require__(30); __webpack_require__(90); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var PowerStatusDropDown = function PowerStatusDropDown(_ref) { var hostID = _ref.hostID, hasPowerPermission = _ref.hasPowerPermission, isBmc = _ref.isBmc; var powerURL = (0, _helpers.foremanUrl)("/api/hosts/".concat(hostID, "/power")); var _useAPI = (0, _APIHooks.useAPI)('get', powerURL, _constants.POWER_REQUEST_OPTIONS), _useAPI$response = _useAPI.response, currentState = _useAPI$response.state, title = _useAPI$response.title, statusText = _useAPI$response.statusText, responseStatus = _useAPI.status; var dispatch = (0, _reactRedux.useDispatch)(); var _useState = (0, _react.useState)(false), _useState2 = _slicedToArray(_useState, 2), isOpen = _useState2[0], setOpen = _useState2[1]; var changePowerHandler = function changePowerHandler(targetState) { dispatch((0, _ConfirmModal.openConfirmModal)({ title: (0, _I18n.translate)('Power Status'), message: (0, _I18n.translate)('This will change the host power status, are you sure?'), isWarning: true, onConfirm: function onConfirm() { return dispatch((0, _actions.changeHostPower)(targetState, hostID)); } })); }; var dropdownItems = function dropdownItems() { var supportedPowerStates = isBmc ? _constants.SUPPORTED_POWER_STATES : _constants.BASE_POWER_STATES; return Object.keys(supportedPowerStates).map(function (state) { return /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownItem, { onClick: function onClick() { return changePowerHandler(state); }, isDisabled: state === currentState, key: state }, supportedPowerStates[state]); }); }; var onDropdownSelect = function onDropdownSelect(event) { return setOpen(false); }; var onToggle = function onToggle(open) { return setOpen(open); }; return /*#__PURE__*/_react["default"].createElement(_reactCore.Tooltip, { content: statusText || title }, /*#__PURE__*/_react["default"].createElement(_reactCore.Dropdown, { isOpen: isOpen, onSelect: onDropdownSelect, isPlain: true, dropdownItems: dropdownItems(), toggle: /*#__PURE__*/_react["default"].createElement(_reactCore.DropdownToggle, { isDisabled: !hasPowerPermission || currentState === 'na', onToggle: onToggle }, /*#__PURE__*/_react["default"].createElement(_PowerStatusIcon["default"], { state: currentState, title: title, responseStatus: responseStatus })) })); }; PowerStatusDropDown.propTypes = { hasPowerPermission: _propTypes["default"].bool, hostID: _propTypes["default"].string.isRequired, isBmc: _propTypes["default"].bool }; PowerStatusDropDown.defaultProps = { hasPowerPermission: false, isBmc: false }; var _default = PowerStatusDropDown; exports["default"] = _default; /***/ }), /* 456 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactIcons = __webpack_require__(11); var _reactCore = __webpack_require__(6); var _constants = __webpack_require__(7); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var PowerStatusIcon = function PowerStatusIcon(_ref) { var state = _ref.state, responseStatus = _ref.responseStatus; if (responseStatus === _constants.STATUS.PENDING) return /*#__PURE__*/_react["default"].createElement(_reactCore.Spinner, { size: "md" }); return /*#__PURE__*/_react["default"].createElement("span", { className: "power-".concat(state) }, /*#__PURE__*/_react["default"].createElement(_reactIcons.PowerOffIcon, { id: "power-status-icon", className: "power-".concat(state) })); }; PowerStatusIcon.propTypes = { responseStatus: _propTypes["default"].string, state: _propTypes["default"].string }; PowerStatusIcon.defaultProps = { state: 'na', responseStatus: _constants.STATUS.PENDING }; var _default = PowerStatusIcon; exports["default"] = _default; /***/ }), /* 457 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.changeHostPower = void 0; var _I18n = __webpack_require__(2); var _API = __webpack_require__(8); var _constants = __webpack_require__(88); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var changeHostPower = function changeHostPower(state, hostID) { return (0, _API.put)({ key: _constants.POWER_REQURST_KEY, params: { power_action: state }, url: "/api/hosts/".concat(hostID, "/power"), errorToast: function errorToast(err) { return (0, _I18n.sprintf)((0, _I18n.translate)('an error occurred: %s'), err); }, successToast: function successToast() { return (0, _I18n.sprintf)((0, _I18n.translate)('Power has been set to "%s" successfully'), _constants.SUPPORTED_POWER_STATES[state]); }, updateData: function updateData(prevState, _ref) { var power = _ref.power; if (power) return _objectSpread(_objectSpread({}, prevState), {}, { state: state, title: _constants.SUPPORTED_POWER_STATES[state] }); return prevState; } }); }; exports.changeHostPower = changeHostPower; /***/ }), /* 458 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _StatusesModal = _interopRequireDefault(__webpack_require__(172)); var _helpers = __webpack_require__(3); var _APIHooks = __webpack_require__(38); var _constants = __webpack_require__(7); var _HostStatusSelector = __webpack_require__(173); var _GlobalState = _interopRequireDefault(__webpack_require__(461)); var _AggregateStatusItem = _interopRequireDefault(__webpack_require__(462)); var _I18n = __webpack_require__(2); var _StatusIcon = _interopRequireDefault(__webpack_require__(48)); var _Constants = __webpack_require__(40); __webpack_require__(89); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var AggregateStatusCard = function AggregateStatusCard(_ref) { var hostName = _ref.hostName, _ref$hostDetails$perm = _ref.hostDetails.permissions, _ref$hostDetails$perm2 = _ref$hostDetails$perm === void 0 ? {} : _ref$hostDetails$perm, canViewStatuses = _ref$hostDetails$perm2.view_hosts, canForgetStatuses = _ref$hostDetails$perm2.forget_status_hosts; var _useState = (0, _react.useState)(false), _useState2 = _slicedToArray(_useState, 2), openModal = _useState2[0], setOpenModal = _useState2[1]; var _useState3 = (0, _react.useState)(), _useState4 = _slicedToArray(_useState3, 2), chosenType = _useState4[0], setChosenType = _useState4[1]; var url = (0, _helpers.foremanUrl)("/hosts/".concat(hostName, "/statuses")); var _useAPI = (0, _APIHooks.useAPI)('get', url, _Constants.HOST_STATUSES_OPTIONS), global = _useAPI.response.global, responseStatus = _useAPI.status; var okStatuses = (0, _reactRedux.useSelector)(_HostStatusSelector.selectOKStatuses); var warnStatus = (0, _reactRedux.useSelector)(_HostStatusSelector.selectWarningStatuses); var errorStatus = (0, _reactRedux.useSelector)(_HostStatusSelector.selectErrorStatuses); var naStatuses = (0, _reactRedux.useSelector)(_HostStatusSelector.selectNAStatuses); var allSortedStatuses = (0, _reactRedux.useSelector)(_HostStatusSelector.selectAllSortedStatuses); var statusesMapper = function statusesMapper(type) { switch (type) { case _Constants.OK_STATUS_STATE: return okStatuses; case _Constants.WARNING_STATUS_STATE: return warnStatus; case _Constants.ERROR_STATUS_STATE: return errorStatus; case _Constants.NA_STATUS_STATE: return naStatuses; default: return allSortedStatuses; } }; var isOKState = responseStatus === _constants.STATUS.RESOLVED && warnStatus.length === 0 && errorStatus.length === 0; var hadleIconClick = function hadleIconClick(type) { setChosenType(type); setOpenModal(true); }; return /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { xl2: 3, xl: 4, md: 6, lg: 4 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Card, { className: "card-pf-aggregate-status", isHoverable: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.CardTitle, null, /*#__PURE__*/_react["default"].createElement("span", null, (0, _I18n.translate)('Host Status'), !isOKState && /*#__PURE__*/_react["default"].createElement(_StatusIcon["default"], { statusNumber: global }))), /*#__PURE__*/_react["default"].createElement(_reactCore.CardBody, { style: { height: '129px' } }, /*#__PURE__*/_react["default"].createElement(_GlobalState["default"], { cannotViewStatuses: !canViewStatuses, isOKState: isOKState, responseStatus: responseStatus }, /*#__PURE__*/_react["default"].createElement(_reactCore.Bullseye, null, /*#__PURE__*/_react["default"].createElement("p", { className: "card-pf-aggregate-status-notifications" }, _Constants.SUPPORTED_STATUSES.map(function (_ref2) { var label = _ref2.label, status = _ref2.status; return /*#__PURE__*/_react["default"].createElement(_AggregateStatusItem["default"], { key: "status-".concat(label), label: label, responseStatus: responseStatus, status: status, onClick: function onClick() { return hadleIconClick(status); }, amount: statusesMapper(status).length }); }))))), /*#__PURE__*/_react["default"].createElement(_reactCore.CardFooter, null, /*#__PURE__*/_react["default"].createElement("a", { onClick: function onClick() { setChosenType(undefined); setOpenModal(true); } }, (0, _I18n.translate)('Manage all statuses')))), /*#__PURE__*/_react["default"].createElement(_StatusesModal["default"], { canForgetStatuses: canForgetStatuses, type: chosenType, statuses: statusesMapper(chosenType), hostName: hostName, isOpen: openModal, onClose: function onClose() { setOpenModal(false); } })); }; AggregateStatusCard.propTypes = { hostName: _propTypes["default"].string, hostDetails: _propTypes["default"].shape({ permissions: _propTypes["default"].shape({ view_hosts: _propTypes["default"].bool, forget_status_hosts: _propTypes["default"].bool }) }) }; AggregateStatusCard.defaultProps = { hostName: undefined, hostDetails: { permissions: { statuses_hosts: false, forget_status_hosts: false } } }; var _default = AggregateStatusCard; exports["default"] = _default; /***/ }), /* 459 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactTable = __webpack_require__(103); var _RelativeDateTime = _interopRequireDefault(__webpack_require__(47)); var _StatusIcon = _interopRequireDefault(__webpack_require__(48)); var _StatusActions = __webpack_require__(460); var _I18n = __webpack_require__(2); __webpack_require__(89); var _ConfirmModal = __webpack_require__(30); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var StatusTable = function StatusTable(_ref) { var hostName = _ref.hostName, statuses = _ref.statuses, canForgetStatuses = _ref.canForgetStatuses; var dispatch = (0, _reactRedux.useDispatch)(); var handleClearStatus = function handleClearStatus(event, rowId, rowData) { var _rowData$, _rowData$$title, _rowData$$title$props; var statusName = ((_rowData$ = rowData[0]) === null || _rowData$ === void 0 ? void 0 : (_rowData$$title = _rowData$.title) === null || _rowData$$title === void 0 ? void 0 : (_rowData$$title$props = _rowData$$title.props) === null || _rowData$$title$props === void 0 ? void 0 : _rowData$$title$props.children) || rowData[0]; dispatch((0, _ConfirmModal.openConfirmModal)({ title: (0, _I18n.translate)("Clear Host's Status"), message: (0, _I18n.sprintf)((0, _I18n.translate)('You are about to clear %s status. Are you sure?'), statusName), isWarning: true, onConfirm: function onConfirm() { var _statuses$filter = statuses.filter(function (status) { return status.name === statusName; }), _statuses$filter2 = _slicedToArray(_statuses$filter, 1), chosenStatus = _statuses$filter2[0]; dispatch((0, _StatusActions.forgetStatus)(hostName, chosenStatus)); } })); }; var columns = [(0, _I18n.translate)('Name'), (0, _I18n.translate)('Status'), (0, _I18n.translate)('Reported At')]; var rows = statuses === null || statuses === void 0 ? void 0 : statuses.map(function (_ref2) { var name = _ref2.name, label = _ref2.label, link = _ref2.link, global = _ref2.global, reportedAt = _ref2.reported_at; return [link ? { title: /*#__PURE__*/_react["default"].createElement("a", { href: link }, name) } : name, { title: /*#__PURE__*/_react["default"].createElement(_StatusIcon["default"], { statusNumber: global, label: label }) }, { title: /*#__PURE__*/_react["default"].createElement(_RelativeDateTime["default"], { date: reportedAt, defaultValue: /*#__PURE__*/_react["default"].createElement("span", { className: "disabled" }, (0, _I18n.translate)('N/A')) }) }]; }); var actionResolver = function actionResolver() { return [{ title: (0, _I18n.translate)('Clear'), onClick: handleClearStatus, isDisabled: !canForgetStatuses }]; }; var areActionsDisabled = function areActionsDisabled(rowData, _ref3) { var rowIndex = _ref3.rowIndex; return !statuses[rowIndex].reported_at; }; return /*#__PURE__*/_react["default"].createElement(_reactTable.Table, { style: { height: 'auto' }, "aria-label": "statuses-table", variant: "compact", borders: "compactBorderless", cells: columns, rows: rows, dropdownDirection: "up", actionResolver: actionResolver, areActionsDisabled: areActionsDisabled }, /*#__PURE__*/_react["default"].createElement(_reactTable.TableHeader, null), /*#__PURE__*/_react["default"].createElement(_reactTable.TableBody, null)); }; StatusTable.propTypes = { hostName: _propTypes["default"].string.isRequired, statuses: _propTypes["default"].arrayOf(_propTypes["default"].object), canForgetStatuses: _propTypes["default"].bool }; StatusTable.defaultProps = { statuses: [], canForgetStatuses: undefined }; var _default = StatusTable; exports["default"] = _default; /***/ }), /* 460 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.forgetStatus = void 0; var _API = __webpack_require__(8); var _Constants = __webpack_require__(40); var _helpers = __webpack_require__(3); var getStatuses = function getStatuses(hostName) { return function (dispatch) { var url = (0, _helpers.foremanUrl)("/hosts/".concat(hostName, "/statuses")); dispatch(_API.APIActions.get({ url: url, key: _Constants.HOST_STATUSES_KEY })); }; }; var forgetStatus = function forgetStatus(hostName, _ref) { var label = _ref.label, id = _ref.id; return function (dispatch) { var successToast = function successToast() { return "Status ".concat(label, " has been removed"); }; var errorToast = function errorToast(_ref2) { var message = _ref2.message; return message; }; var url = (0, _helpers.foremanUrl)("/hosts/".concat(hostName, "/forget_status?status=").concat(id)); dispatch(_API.APIActions.post({ url: (0, _helpers.foremanUrl)(url), key: _Constants.CLEAR_STATUS_KEY, successToast: successToast, errorToast: errorToast, handleSuccess: function handleSuccess() { return dispatch(getStatuses(hostName)); } })); }; }; exports.forgetStatus = forgetStatus; /***/ }), /* 461 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _I18n = __webpack_require__(2); var _constants = __webpack_require__(7); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var GlobalState = function GlobalState(_ref) { var responseStatus = _ref.responseStatus, isOKState = _ref.isOKState, cannotViewStatuses = _ref.cannotViewStatuses, children = _ref.children; if (responseStatus === _constants.STATUS.RESOLVED && (isOKState || cannotViewStatuses)) return /*#__PURE__*/_react["default"].createElement(_reactCore.EmptyState, { style: { marginTop: '-1px' }, isFullHeight: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.EmptyStateIcon, { icon: cannotViewStatuses ? _reactIcons.BanIcon : _reactIcons.OkIcon }), /*#__PURE__*/_react["default"].createElement(_reactCore.Title, { size: "lg", headingLevel: "h4" }, cannotViewStatuses ? (0, _I18n.translate)('No statuses to show') : (0, _I18n.translate)('All Statuses are OK'))); return children; }; GlobalState.propTypes = { cannotViewStatuses: _propTypes["default"].bool.isRequired, children: _propTypes["default"].node.isRequired, isOKState: _propTypes["default"].bool.isRequired, responseStatus: _propTypes["default"].string }; GlobalState.defaultProps = { responseStatus: _constants.STATUS.PENDING }; var _default = GlobalState; exports["default"] = _default; /***/ }), /* 462 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactCore = __webpack_require__(6); var _StatusIcon = _interopRequireDefault(__webpack_require__(48)); var _helpers = __webpack_require__(3); var _SkeletonLoader = _interopRequireDefault(__webpack_require__(39)); var _constants = __webpack_require__(7); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var StatusItem = function StatusItem(_ref) { var status = _ref.status, amount = _ref.amount, responseStatus = _ref.responseStatus, label = _ref.label, onClick = _ref.onClick; return /*#__PURE__*/_react["default"].createElement("span", { className: "card-pf-aggregate-status-notification" }, /*#__PURE__*/_react["default"].createElement(_reactCore.Tooltip, { content: "".concat(amount, "-").concat(label), entryDelay: 0, exitDelay: 0 }, /*#__PURE__*/_react["default"].createElement("a", { style: { fontSize: 'x-large' }, className: "aggregate-text", onClick: onClick }, /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { skeletonProps: { width: 30 }, status: responseStatus }, status !== undefined && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_StatusIcon["default"], { statusNumber: status }), " ", amount))))); }; StatusItem.propTypes = { amount: _propTypes["default"].number, responseStatus: _propTypes["default"].string, label: _propTypes["default"].string, status: _propTypes["default"].number, onClick: _propTypes["default"].func }; StatusItem.defaultProps = { amount: 0, label: '', status: undefined, onClick: _helpers.noop, responseStatus: _constants.STATUS.PENDING }; var _default = StatusItem; exports["default"] = _default; /***/ }), /* 463 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = __webpack_require__(0); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _excluded = ["fills", "id", "multi", "children"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var Slot = function Slot(_ref) { var fills = _ref.fills, id = _ref.id, multi = _ref.multi, _ref$children = _ref.children, children = _ref$children === void 0 ? null : _ref$children, props = _objectWithoutProperties(_ref, _excluded); var addProps = function addProps(object) { if (multi && !object.key) { // eslint-disable-next-line no-console console.warn("Please add a key attribute to multiple fills [component - ".concat(object.type.name, "]")); } if ( /*#__PURE__*/(0, _react.isValidElement)(object)) { return /*#__PURE__*/(0, _react.cloneElement)(object, _objectSpread({}, props)); } if (!children) { throw new Error('Slot with override props must have a child'); } return /*#__PURE__*/(0, _react.cloneElement)(children, _objectSpread(_objectSpread({}, props), object)); }; if (fills.length) return fills.map(function (component) { return addProps(component); }); return children; }; Slot.propTypes = { fills: _propTypes["default"].array, id: _propTypes["default"].string.isRequired, multi: _propTypes["default"].bool, children: _propTypes["default"].node }; Slot.defaultProps = { fills: [], multi: false, children: undefined }; var _default = Slot; exports["default"] = _default; /***/ }), /* 464 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 465 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _HostStatusSelector = __webpack_require__(173); var _helpers = __webpack_require__(3); var _StatusesModal = _interopRequireDefault(__webpack_require__(172)); var _StatusIcon = _interopRequireDefault(__webpack_require__(48)); var _Constants = __webpack_require__(40); var _API = __webpack_require__(8); var _APISelectors = __webpack_require__(14); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var GlobalStatus = function GlobalStatus(_ref) { var hostName = _ref.hostName; var _useState = (0, _react.useState)(false), _useState2 = _slicedToArray(_useState, 2), modalStatus = _useState2[0], setModalStatus = _useState2[1]; var dispatch = (0, _reactRedux.useDispatch)(); var _useSelector = (0, _reactRedux.useSelector)(function (state) { return (0, _APISelectors.selectAPIResponse)(state, _Constants.HOST_STATUSES_KEY); }), global = _useSelector.global; var url = (0, _helpers.foremanUrl)("/hosts/".concat(hostName, "/statuses")); var statuses = (0, _reactRedux.useSelector)(_HostStatusSelector.selectAllSortedStatuses); var handleGlobalStatusClick = function handleGlobalStatusClick() { dispatch(_API.APIActions.get({ url: url, key: _Constants.HOST_STATUSES_KEY })); setModalStatus(true); }; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("a", { style: { fontSize: '18px' }, onClick: handleGlobalStatusClick }, /*#__PURE__*/_react["default"].createElement(_StatusIcon["default"], { statusNumber: global })), /*#__PURE__*/_react["default"].createElement(_StatusesModal["default"], { statuses: statuses, isOpen: modalStatus, hostName: hostName, onClose: function onClose() { setModalStatus(false); } })); }; GlobalStatus.propTypes = { hostName: _propTypes["default"].string.isRequired }; var _default = GlobalStatus; exports["default"] = _default; /***/ }), /* 466 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 467 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRouterDom = __webpack_require__(17); var _constants = __webpack_require__(7); var _Slot = _interopRequireDefault(__webpack_require__(65)); var _consts = __webpack_require__(64); var _Tabs = _interopRequireDefault(__webpack_require__(468)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var TabRouter = function TabRouter(_ref) { var children = _ref.children, tabs = _ref.tabs, hostName = _ref.hostName, response = _ref.response, status = _ref.status, router = _ref.router; return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.HashRouter, null, /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tabs["default"], { tabs: children }), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Switch, null, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, { path: "/", exact: true }, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Redirect, { to: "/".concat(_consts.DEFAULT_TAB) })), tabs.map(function (tab) { return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, { key: tab, path: "/".concat(tab), render: function render(props) { return /*#__PURE__*/_react["default"].createElement(_Slot["default"], _extends({ hostName: hostName, response: response, status: status, id: "host-details-page-tabs", fillID: tab, router: router }, props)); } }); })))); }; TabRouter.propTypes = { children: _propTypes["default"].node.isRequired, hostName: _propTypes["default"].string.isRequired, status: _propTypes["default"].string, response: _propTypes["default"].object, tabs: _propTypes["default"].array.isRequired, router: _propTypes["default"].object.isRequired }; TabRouter.defaultProps = { status: _constants.STATUS.PENDING, response: undefined }; var _default = TabRouter; exports["default"] = _default; /***/ }), /* 468 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRouterDom = __webpack_require__(17); var _propTypes = _interopRequireDefault(__webpack_require__(1)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var TabsWithHashHistory = function TabsWithHashHistory(_ref) { var tabs = _ref.tabs; var hashHistory = (0, _reactRouterDom.useHistory)(); var onSelect = function onSelect(evt, tab) { hashHistory.push("/".concat(tab)); }; return /*#__PURE__*/_react["default"].cloneElement(tabs, { onSelect: onSelect }); }; var _default = TabsWithHashHistory; exports["default"] = _default; TabsWithHashHistory.propTypes = { tabs: _propTypes["default"].node.isRequired }; /***/ }), /* 469 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactCore = __webpack_require__(6); var _I18n = __webpack_require__(2); var _foreman_navigation = __webpack_require__(26); var _helpers = __webpack_require__(3); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var ExperimentalAlert = function ExperimentalAlert(_ref) { var hostId = _ref.hostId; var _useState = (0, _react.useState)(true), _useState2 = _slicedToArray(_useState, 2), alertVisibility = _useState2[0], setAlertVisibility = _useState2[1]; if (!alertVisibility) return null; return /*#__PURE__*/_react["default"].createElement(_reactCore.Alert, { isInline: true, variant: "info", title: (0, _I18n.translate)('This page redesign is experimental and under active development.'), actionClose: /*#__PURE__*/_react["default"].createElement(_reactCore.AlertActionCloseButton, { onClose: function onClose() { return setAlertVisibility(false); } }), actionLinks: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.AlertActionLink, { onClick: function onClick() { return window.open('https://community.theforeman.org/t/foreman-3-0-new-host-detail-page-feedback/25281', '_blank'); } }, (0, _I18n.translate)('Share your feedback')), /*#__PURE__*/_react["default"].createElement(_reactCore.AlertActionLink, { onClick: function onClick() { return (0, _foreman_navigation.visit)((0, _helpers.foremanUrl)("/hosts/".concat(hostId))); } }, (0, _I18n.translate)('Switch to previous version'))) }); }; ExperimentalAlert.propTypes = { hostId: _propTypes["default"].string }; ExperimentalAlert.defaultProps = { hostId: undefined }; var _default = ExperimentalAlert; exports["default"] = _default; /***/ }), /* 470 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HOST_DETAILS_PATH = void 0; var HOST_DETAILS_PATH = '/new/hosts/:id'; exports.HOST_DETAILS_PATH = HOST_DETAILS_PATH; /***/ }), /* 471 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _RegistrationCommandsPage = _interopRequireDefault(__webpack_require__(472)); var _constants = __webpack_require__(91); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = { path: _constants.REGISTRATION_PATH, render: function render(props) { return /*#__PURE__*/_react["default"].createElement(_RegistrationCommandsPage["default"], props); }, exact: true }; exports["default"] = _default; /***/ }), /* 472 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _reactIcons = __webpack_require__(11); var _I18n = __webpack_require__(2); var _ForemanContext = __webpack_require__(29); var _constants = __webpack_require__(7); var _Head = _interopRequireDefault(__webpack_require__(142)); var _Slot = _interopRequireDefault(__webpack_require__(65)); var _RegistrationCommandsPageSelectors = __webpack_require__(473); var _RegistrationCommandsPageActions = __webpack_require__(174); var _RegistrationCommandsPageConstants = __webpack_require__(474); var _General = _interopRequireDefault(__webpack_require__(475)); var _Advanced = _interopRequireDefault(__webpack_require__(481)); var _Actions = _interopRequireDefault(__webpack_require__(487)); var _Command = _interopRequireDefault(__webpack_require__(488)); __webpack_require__(489); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var RegistrationCommandsPage = function RegistrationCommandsPage() { var dispatch = (0, _reactRedux.useDispatch)(); // Context var currentOrganization = (0, _ForemanContext.useForemanOrganization)(); var currentLocation = (0, _ForemanContext.useForemanLocation)(); var foremanVersion = (0, _ForemanContext.useForemanVersion)(); // Form tabs var _useState = (0, _react.useState)(0), _useState2 = _slicedToArray(_useState, 2), activeTab = _useState2[0], setActiveTab = _useState2[1]; var generalTabRef = /*#__PURE__*/_react["default"].createRef(); var advancedTabRef = /*#__PURE__*/_react["default"].createRef(); // API statuses var apiStatusCommand = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectAPIStatusCommand); var apiStatusData = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectAPIStatusData); var isLoading = apiStatusData === _constants.STATUS.PENDING; var isGenerating = apiStatusCommand === _constants.STATUS.PENDING; // Form data var organizations = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectOrganizations); var locations = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectLocations); var hostGroups = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectHostGroups); var operatingSystems = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectOperatingSystems); var operatingSystemTemplate = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectOperatingSystemTemplate); var smartProxies = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectSmartProxies); var configParams = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectConfigParams); var pluginData = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectPluginData); // Form values var _useState3 = (0, _react.useState)(currentOrganization === null || currentOrganization === void 0 ? void 0 : currentOrganization.id), _useState4 = _slicedToArray(_useState3, 2), organizationId = _useState4[0], setOrganizationId = _useState4[1]; var _useState5 = (0, _react.useState)(currentLocation === null || currentLocation === void 0 ? void 0 : currentLocation.id), _useState6 = _slicedToArray(_useState5, 2), locationId = _useState6[0], setLocationId = _useState6[1]; var _useState7 = (0, _react.useState)(), _useState8 = _slicedToArray(_useState7, 2), hostGroupId = _useState8[0], setHostGroupId = _useState8[1]; var _useState9 = (0, _react.useState)(), _useState10 = _slicedToArray(_useState9, 2), operatingSystemId = _useState10[0], setOperatingSystemId = _useState10[1]; var _useState11 = (0, _react.useState)(), _useState12 = _slicedToArray(_useState11, 2), smartProxyId = _useState12[0], setSmartProxyId = _useState12[1]; var _useState13 = (0, _react.useState)(false), _useState14 = _slicedToArray(_useState13, 2), insecure = _useState14[0], setInsecure = _useState14[1]; var _useState15 = (0, _react.useState)(''), _useState16 = _slicedToArray(_useState15, 2), setupRemoteExecution = _useState16[0], setSetupRemoteExecution = _useState16[1]; var _useState17 = (0, _react.useState)(''), _useState18 = _slicedToArray(_useState17, 2), setupInsights = _useState18[0], setSetupInsights = _useState18[1]; var _useState19 = (0, _react.useState)(4), _useState20 = _slicedToArray(_useState19, 2), jwtExpiration = _useState20[0], setJwtExpiration = _useState20[1]; var _useState21 = (0, _react.useState)(''), _useState22 = _slicedToArray(_useState21, 2), packages = _useState22[0], setPackages = _useState22[1]; var _useState23 = (0, _react.useState)(false), _useState24 = _slicedToArray(_useState23, 2), updatePackages = _useState24[0], setUpdatePackages = _useState24[1]; var _useState25 = (0, _react.useState)(''), _useState26 = _slicedToArray(_useState25, 2), repo = _useState26[0], setRepo = _useState26[1]; var _useState27 = (0, _react.useState)(''), _useState28 = _slicedToArray(_useState27, 2), repoGpgKeyUrl = _useState28[0], setRepoGpgKeyUrl = _useState28[1]; var _useState29 = (0, _react.useState)([]), _useState30 = _slicedToArray(_useState29, 2), invalidFields = _useState30[0], setInvalidFields = _useState30[1]; // Command var command = (0, _reactRedux.useSelector)(_RegistrationCommandsPageSelectors.selectCommand); // Plugins var _useState31 = (0, _react.useState)({}), _useState32 = _slicedToArray(_useState31, 2), pluginValues = _useState32[0], setPluginValues = _useState32[1]; var handlePluginValue = (0, _react.useCallback)(function (data) { setPluginValues(function (prevValues) { return _objectSpread(_objectSpread({}, prevValues), data); }); }, []); var handleInvalidField = (0, _react.useCallback)(function (field, isValid) { if (isValid) { setInvalidFields(function (prevFields) { return prevFields.filter(function (f) { return f !== field; }); }); } else { setInvalidFields(function (prevFields) { if (!prevFields.find(function (f) { return f === field; })) { return [].concat(_toConsumableArray(prevFields), [field]).sort(); } return prevFields; }); } }, []); var handleSubmit = function handleSubmit(e) { e.preventDefault(); var params = _objectSpread({ organizationId: organizationId, locationId: locationId, hostgroupId: hostGroupId, operatingsystemId: operatingSystemId, smartProxyId: smartProxyId, insecure: insecure, setupRemoteExecution: setupRemoteExecution, setupInsights: setupInsights, jwtExpiration: jwtExpiration, packages: packages, repo: repo, repoGpgKeyUrl: repoGpgKeyUrl, updatePackages: updatePackages }, pluginValues); dispatch((0, _RegistrationCommandsPageActions.commandAction)(params)); }; var changeTab = function changeTab(e, tab) { e.preventDefault(); setActiveTab(tab); }; // Reset form values when Organization / Location is selected (0, _react.useEffect)(function () { setHostGroupId(); setOperatingSystemId(); setSmartProxyId(); dispatch((0, _RegistrationCommandsPageActions.dataAction)({ organization_id: organizationId, location_id: locationId })); }, [dispatch, organizationId, locationId]); (0, _react.useEffect)(function () { if (hostGroupId === undefined && operatingSystemId === undefined) { return; } var params = { organization_id: organizationId, location_id: locationId, hostgroup_id: hostGroupId, operatingsystem_id: operatingSystemId }; dispatch((0, _RegistrationCommandsPageActions.dataAction)(params)); // Disabled lint warning, need to check only hostgroup_id & operatingsystem_id // eslint-disable-next-line react-hooks/exhaustive-deps }, [dispatch, hostGroupId, operatingSystemId]); return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Head["default"], null, /*#__PURE__*/_react["default"].createElement("title", null, (0, _I18n.translate)('Register Host'))), /*#__PURE__*/_react["default"].createElement(_reactCore.Form, { onSubmit: function onSubmit(e) { return handleSubmit(e); }, className: "registration_commands_form", isHorizontal: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.Grid, { hasGutter: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 12 }), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 6 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Title, { headingLevel: "h1" }, (0, _I18n.translate)('Register Host'))), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 6 }, /*#__PURE__*/_react["default"].createElement("a", { href: (0, _RegistrationCommandsPageConstants.docUrl)(foremanVersion), target: "_blank", rel: "noreferrer", className: "pf-c-button pf-m-secondary pf-m-small pull-right" }, /*#__PURE__*/_react["default"].createElement(_reactIcons.HelpIcon, null), " ", (0, _I18n.translate)('Documentation'))), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 12 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Tabs, { activeKey: activeTab, onSelect: function onSelect(e, tab) { return changeTab(e, tab); } }, /*#__PURE__*/_react["default"].createElement(_reactCore.Tab, { eventKey: 0, title: /*#__PURE__*/_react["default"].createElement(_reactCore.TabTitleText, null, (0, _I18n.translate)('General')), tabContentId: "generalTab", tabContentRef: generalTabRef }), /*#__PURE__*/_react["default"].createElement(_reactCore.Tab, { eventKey: 1, title: /*#__PURE__*/_react["default"].createElement(_reactCore.TabTitleText, null, (0, _I18n.translate)('Advanced')), tabContentId: "advancedTab", tabContentRef: advancedTabRef }))), apiStatusData === _constants.STATUS.ERROR && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 4 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Alert, { variant: "danger", title: (0, _I18n.translate)('There was an error while loading the data, see the logs for more information.') })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 12 })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 4 }, /*#__PURE__*/_react["default"].createElement(_reactCore.TabContent, { eventKey: 0, id: "generalSection", ref: generalTabRef }, /*#__PURE__*/_react["default"].createElement("div", { className: "pf-c-form" }, /*#__PURE__*/_react["default"].createElement(_General["default"], { organizationId: organizationId, organizations: organizations, handleOrganization: setOrganizationId, locationId: locationId, locations: locations, handleLocation: setLocationId, hostGroupId: hostGroupId, hostGroups: hostGroups, handleHostGroup: setHostGroupId, operatingSystemId: operatingSystemId, operatingSystems: operatingSystems, operatingSystemTemplate: operatingSystemTemplate, handleOperatingSystem: setOperatingSystemId, smartProxyId: smartProxyId, smartProxies: smartProxies, handleSmartProxy: setSmartProxyId, insecure: insecure, handleInsecure: setInsecure, handleInvalidField: handleInvalidField, invalidFields: invalidFields, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_Slot["default"], { id: "registrationGeneral", organizationId: organizationId, locationId: locationId, hostGroupId: hostGroupId, pluginValues: pluginValues, pluginData: pluginData, onChange: handlePluginValue, handleInvalidField: handleInvalidField, isLoading: isLoading, multi: true }))), /*#__PURE__*/_react["default"].createElement(_reactCore.TabContent, { eventKey: 1, id: "advancedSection", ref: advancedTabRef, hidden: true }, /*#__PURE__*/_react["default"].createElement("div", { className: "pf-c-form" }, /*#__PURE__*/_react["default"].createElement(_Advanced["default"], { configParams: configParams, setupRemoteExecution: setupRemoteExecution, setupInsights: setupInsights, handleInsights: setSetupInsights, handleRemoteExecution: setSetupRemoteExecution, jwtExpiration: jwtExpiration, handleJwtExpiration: setJwtExpiration, handleInvalidField: handleInvalidField, pluginValues: pluginValues, handlePluginValue: handlePluginValue, invalidFields: invalidFields, organizationId: organizationId, locationId: locationId, hostGroupId: hostGroupId, packages: packages, handlePackages: setPackages, repo: repo, handleRepo: setRepo, repoGpgKeyUrl: repoGpgKeyUrl, handleRepoGpgKeyUrl: setRepoGpgKeyUrl, updatePackages: updatePackages, handleUpdatePackages: setUpdatePackages, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_Slot["default"], { id: "registrationAdvanced", organizationId: organizationId, locationId: locationId, hostGroupId: hostGroupId, pluginValues: pluginValues, pluginData: pluginData, onChange: handlePluginValue, handleInvalidField: handleInvalidField, isLoading: isLoading, multi: true }))), /*#__PURE__*/_react["default"].createElement(_Actions["default"], { isLoading: isLoading, isGenerating: isGenerating, handleSubmit: handleSubmit, invalidFields: invalidFields })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 10 }, /*#__PURE__*/_react["default"].createElement(_Command["default"], { apiStatus: apiStatusCommand, command: command }))))); }; var _default = RegistrationCommandsPage; exports["default"] = _default; /***/ }), /* 473 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectSmartProxies = exports.selectPluginData = exports.selectOrganizations = exports.selectOperatingSystems = exports.selectOperatingSystemTemplate = exports.selectLocations = exports.selectHostGroups = exports.selectConfigParams = exports.selectCommand = exports.selectAPIStatusData = exports.selectAPIStatusCommand = void 0; var _constants = __webpack_require__(91); var _APISelectors = __webpack_require__(14); // Form API Data var selectAPIStatusData = function selectAPIStatusData(state) { return (0, _APISelectors.selectAPIStatus)(state, _constants.REGISTRATION_COMMANDS_DATA); }; exports.selectAPIStatusData = selectAPIStatusData; var selectOrganizations = function selectOrganizations(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS_DATA).organizations || []; }; exports.selectOrganizations = selectOrganizations; var selectLocations = function selectLocations(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS_DATA).locations || []; }; exports.selectLocations = selectLocations; var selectHostGroups = function selectHostGroups(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS_DATA).hostGroups || []; }; exports.selectHostGroups = selectHostGroups; var selectOperatingSystems = function selectOperatingSystems(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS_DATA).operatingSystems || []; }; exports.selectOperatingSystems = selectOperatingSystems; var selectOperatingSystemTemplate = function selectOperatingSystemTemplate(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS_OS_TEMPLATE).template; }; exports.selectOperatingSystemTemplate = selectOperatingSystemTemplate; var selectSmartProxies = function selectSmartProxies(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS_DATA).smartProxies || []; }; exports.selectSmartProxies = selectSmartProxies; var selectConfigParams = function selectConfigParams(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS_DATA).configParams || {}; }; exports.selectConfigParams = selectConfigParams; var selectPluginData = function selectPluginData(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS_DATA).pluginData || {}; }; // Generate Command exports.selectPluginData = selectPluginData; var selectAPIStatusCommand = function selectAPIStatusCommand(state) { return (0, _APISelectors.selectAPIStatus)(state, _constants.REGISTRATION_COMMANDS); }; exports.selectAPIStatusCommand = selectAPIStatusCommand; var selectCommand = function selectCommand(state) { return (0, _APISelectors.selectAPIResponse)(state, _constants.REGISTRATION_COMMANDS).command || ''; }; exports.selectCommand = selectCommand; /***/ }), /* 474 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.docUrl = void 0; var _urijs = _interopRequireDefault(__webpack_require__(15)); var _foreman_tools = __webpack_require__(18); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var docUrl = function docUrl(foremanVersion) { var rootUrl = "https://docs.theforeman.org/".concat(foremanVersion, "/"); var section = 'Managing_Hosts/index-foreman-el.html#registering-a-host_managing-hosts'; var url = new _urijs["default"]({ path: '/links/manual', query: { root_url: rootUrl, section: section } }); return (0, _foreman_tools.foremanUrl)(url.href()); }; exports.docUrl = docUrl; /***/ }), /* 475 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _Taxonomies = _interopRequireDefault(__webpack_require__(476)); var _HostGroup = _interopRequireDefault(__webpack_require__(477)); var _OperatingSystem = _interopRequireDefault(__webpack_require__(478)); var _SmartProxy = _interopRequireDefault(__webpack_require__(479)); var _Insecure = _interopRequireDefault(__webpack_require__(480)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var General = function General(_ref) { var organizationId = _ref.organizationId, organizations = _ref.organizations, handleOrganization = _ref.handleOrganization, locationId = _ref.locationId, locations = _ref.locations, handleLocation = _ref.handleLocation, hostGroupId = _ref.hostGroupId, hostGroups = _ref.hostGroups, handleHostGroup = _ref.handleHostGroup, operatingSystemId = _ref.operatingSystemId, operatingSystems = _ref.operatingSystems, operatingSystemTemplate = _ref.operatingSystemTemplate, handleOperatingSystem = _ref.handleOperatingSystem, smartProxyId = _ref.smartProxyId, smartProxies = _ref.smartProxies, handleSmartProxy = _ref.handleSmartProxy, insecure = _ref.insecure, handleInsecure = _ref.handleInsecure, handleInvalidField = _ref.handleInvalidField, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Taxonomies["default"], { organizationId: organizationId, organizations: organizations, handleOrganization: handleOrganization, locationId: locationId, locations: locations, handleLocation: handleLocation, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_HostGroup["default"], { hostGroupId: hostGroupId, hostGroups: hostGroups, handleHostGroup: handleHostGroup, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_OperatingSystem["default"], { operatingSystemId: operatingSystemId, hostGroupId: hostGroupId, hostGroups: hostGroups, handleOperatingSystem: handleOperatingSystem, handleInvalidField: handleInvalidField, operatingSystems: operatingSystems, operatingSystemTemplate: operatingSystemTemplate, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_SmartProxy["default"], { smartProxyId: smartProxyId, smartProxies: smartProxies, handleSmartProxy: handleSmartProxy, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_Insecure["default"], { insecure: insecure, handleInsecure: handleInsecure, isLoading: isLoading })); }; General.propTypes = { organizationId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), organizations: _propTypes["default"].array, operatingSystems: _propTypes["default"].array, smartProxies: _propTypes["default"].array, locations: _propTypes["default"].array, handleOrganization: _propTypes["default"].func.isRequired, locationId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), handleLocation: _propTypes["default"].func.isRequired, hostGroupId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), hostGroups: _propTypes["default"].array, handleHostGroup: _propTypes["default"].func.isRequired, operatingSystemId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), operatingSystemTemplate: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].string]), handleOperatingSystem: _propTypes["default"].func.isRequired, smartProxyId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), handleSmartProxy: _propTypes["default"].func.isRequired, insecure: _propTypes["default"].bool.isRequired, handleInsecure: _propTypes["default"].func.isRequired, handleInvalidField: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; General.defaultProps = { organizationId: undefined, locationId: undefined, hostGroupId: undefined, hostGroups: [], organizations: [], locations: [], operatingSystems: [], smartProxies: [], operatingSystemId: undefined, operatingSystemTemplate: undefined, smartProxyId: undefined }; var _default = General; exports["default"] = _default; /***/ }), /* 476 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Taxonomies = function Taxonomies(_ref) { var organizationId = _ref.organizationId, organizations = _ref.organizations, handleOrganization = _ref.handleOrganization, locationId = _ref.locationId, locations = _ref.locations, handleLocation = _ref.handleLocation, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: "Organization", isRequired: true, fieldId: "reg_organization", labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('If no organization is set, the default organization of the user is assumed.') }) }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelect, { value: organizationId, onChange: function onChange(v) { return handleOrganization(v); }, className: "without_select2", id: "reg_organization", isDisabled: isLoading, isRequired: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { value: "", label: (0, _I18n.translate)('Not specified') }), organizations.map(function (o, i) { return /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { key: i, value: o.id, label: o.name }); }))), /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: "Location", isRequired: true, fieldId: "reg_location", labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('If no location is set, the default location of the user is assumed.') }) }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelect, { value: locationId, onChange: function onChange(v) { return handleLocation(v); }, className: "without_select2", id: "reg_location", isDisabled: isLoading, isRequired: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { value: "", label: (0, _I18n.translate)('Not specified') }), locations.map(function (l, i) { return /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { key: i, value: l.id, label: l.name }); })))); }; Taxonomies.propTypes = { organizationId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), locations: _propTypes["default"].array, organizations: _propTypes["default"].array, handleOrganization: _propTypes["default"].func.isRequired, locationId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), handleLocation: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; Taxonomies.defaultProps = { organizationId: '', locationId: '', organizations: [], locations: [] }; var _default = Taxonomies; exports["default"] = _default; /***/ }), /* 477 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _I18n = __webpack_require__(2); var _RegistrationCommandsPageHelpers = __webpack_require__(92); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var HostGroup = function HostGroup(_ref) { var hostGroupId = _ref.hostGroupId, hostGroups = _ref.hostGroups, handleHostGroup = _ref.handleHostGroup, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Host group'), fieldId: "reg_host_group" }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelect, { value: hostGroupId, onChange: function onChange(v) { return handleHostGroup(v); }, className: "without_select2", id: "reg_host_group", isDisabled: isLoading || hostGroups.length === 0 }, (0, _RegistrationCommandsPageHelpers.emptyOption)(hostGroups.length), hostGroups.map(function (hg, i) { return /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { key: i, value: hg.id, label: hg.title }); }))); }; HostGroup.propTypes = { hostGroupId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), handleHostGroup: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired, hostGroups: _propTypes["default"].array }; HostGroup.defaultProps = { hostGroupId: '', hostGroups: [] }; var _default = HostGroup; exports["default"] = _default; /***/ }), /* 478 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); var _RegistrationCommandsPageActions = __webpack_require__(174); var _RegistrationCommandsPageHelpers = __webpack_require__(92); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } /* eslint-disable camelcase */ /* eslint-disable react-hooks/exhaustive-deps */ var OperatingSystem = function OperatingSystem(_ref) { var operatingSystemId = _ref.operatingSystemId, operatingSystems = _ref.operatingSystems, operatingSystemTemplate = _ref.operatingSystemTemplate, handleOperatingSystem = _ref.handleOperatingSystem, handleInvalidField = _ref.handleInvalidField, hostGroupId = _ref.hostGroupId, hostGroups = _ref.hostGroups, isLoading = _ref.isLoading; var dispatch = (0, _reactRedux.useDispatch)(); // Get info about host-init-config template (0, _react.useEffect)(function () { if (operatingSystemId) { dispatch((0, _RegistrationCommandsPageActions.operatingSystemTemplateAction)(operatingSystemId)); } }, [dispatch, operatingSystemId]); // Handle hostGroupId change: reset selected OS & get info about host-init-config-template (0, _react.useEffect)(function () { if (hostGroupId !== undefined) { var _hostGroups$find; var hostGroupOsId = (_hostGroups$find = hostGroups.find(function (hg) { return "".concat(hg.id) === "".concat(hostGroupId); })) === null || _hostGroups$find === void 0 ? void 0 : _hostGroups$find.inherited_operatingsystem_id; handleOperatingSystem(''); dispatch((0, _RegistrationCommandsPageActions.operatingSystemTemplateAction)(hostGroupOsId)); } }, [dispatch, hostGroupId]); // Validate field (0, _react.useEffect)(function () { if (operatingSystemId === '') { handleInvalidField('Operating system', true); return; } if (Object.entries(operatingSystemTemplate).length !== 0) { handleInvalidField('Operating system', !!(operatingSystemTemplate !== null && operatingSystemTemplate !== void 0 && operatingSystemTemplate.name)); } }, [operatingSystemId, operatingSystemTemplate]); return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Operating system'), helperText: (0, _RegistrationCommandsPageHelpers.osHelperText)(operatingSystemId, operatingSystems, hostGroupId, hostGroups, operatingSystemTemplate), labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('Required for registration without subscription manager. Can be specified by host group.') }), fieldId: "reg_os" }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelect, { value: operatingSystemId, onChange: function onChange(v) { return handleOperatingSystem(v); }, className: "without_select2", id: "reg_os", validated: (0, _RegistrationCommandsPageHelpers.validatedOS)(operatingSystemId, operatingSystemTemplate), isDisabled: isLoading || operatingSystems.length === 0 }, (0, _RegistrationCommandsPageHelpers.emptyOption)(operatingSystems.length), operatingSystems.map(function (os, i) { return /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { key: i, value: os.id, label: os.title }); }))); }; OperatingSystem.propTypes = { operatingSystemId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), hostGroupId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), handleOperatingSystem: _propTypes["default"].func.isRequired, handleInvalidField: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired, operatingSystems: _propTypes["default"].array, hostGroups: _propTypes["default"].array, operatingSystemTemplate: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].string]) }; OperatingSystem.defaultProps = { operatingSystemId: undefined, hostGroupId: undefined, operatingSystems: [], hostGroups: [], operatingSystemTemplate: {} }; var _default = OperatingSystem; exports["default"] = _default; /***/ }), /* 479 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); var _RegistrationCommandsPageHelpers = __webpack_require__(92); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SmartProxy = function SmartProxy(_ref) { var smartProxyId = _ref.smartProxyId, smartProxies = _ref.smartProxies, handleSmartProxy = _ref.handleSmartProxy, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Smart proxy'), fieldId: "reg_smart_proxy", labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('Only smart proxies with enabled `Templates` and `Registration` features are displayed.') }) }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelect, { value: smartProxyId, onChange: function onChange(v) { return handleSmartProxy(v); }, className: "without_select2", id: "reg_smart_proxy", isDisabled: isLoading || smartProxies.length === 0 }, (0, _RegistrationCommandsPageHelpers.emptyOption)(smartProxies.length), smartProxies.map(function (sp, i) { return /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { key: i, value: sp.id, label: sp.name }); }))); }; SmartProxy.propTypes = { smartProxyId: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), handleSmartProxy: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired, smartProxies: _propTypes["default"].array }; SmartProxy.defaultProps = { smartProxyId: '', smartProxies: [] }; var _default = SmartProxy; exports["default"] = _default; /***/ }), /* 480 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Insecure = function Insecure(_ref) { var insecure = _ref.insecure, handleInsecure = _ref.handleInsecure, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { fieldId: "reg_insecure" }, /*#__PURE__*/_react["default"].createElement(_reactCore.Checkbox, { label: /*#__PURE__*/_react["default"].createElement("span", null, (0, _I18n.translate)('Insecure'), ' ', /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('If the target machine does not trust the host SSL certificate, the initial connection could be subject to a man-in-the-middle attack. If you accept the risk and do not require the server authenticity to be verified, you can enable insecure argument for the initial curl. Note that all subsequent communication is then properly secured, because the initial request deploys the SSL certificate for the rest of the registration process.') })), id: "reg_insecure", onChange: function onChange() { return handleInsecure(!insecure); }, isDisabled: isLoading, isChecked: insecure })); }; Insecure.propTypes = { insecure: _propTypes["default"].bool.isRequired, handleInsecure: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; var _default = Insecure; exports["default"] = _default; /***/ }), /* 481 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _ConfigParams = _interopRequireDefault(__webpack_require__(482)); var _Packages = _interopRequireDefault(__webpack_require__(483)); var _Repository = _interopRequireDefault(__webpack_require__(484)); var _TokenLifeTime = _interopRequireDefault(__webpack_require__(485)); var _UpdatePackages = _interopRequireDefault(__webpack_require__(486)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Advanced = function Advanced(_ref) { var configParams = _ref.configParams, setupRemoteExecution = _ref.setupRemoteExecution, setupInsights = _ref.setupInsights, handleInsights = _ref.handleInsights, handleRemoteExecution = _ref.handleRemoteExecution, jwtExpiration = _ref.jwtExpiration, handleJwtExpiration = _ref.handleJwtExpiration, handleInvalidField = _ref.handleInvalidField, packages = _ref.packages, handlePackages = _ref.handlePackages, repo = _ref.repo, handleRepo = _ref.handleRepo, repoGpgKeyUrl = _ref.repoGpgKeyUrl, handleRepoGpgKeyUrl = _ref.handleRepoGpgKeyUrl, updatePackages = _ref.updatePackages, handleUpdatePackages = _ref.handleUpdatePackages, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_ConfigParams["default"], { configParams: configParams, setupRemoteExecution: setupRemoteExecution, setupInsights: setupInsights, handleInsights: handleInsights, handleRemoteExecution: handleRemoteExecution, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_Packages["default"], { packages: packages, handlePackages: handlePackages, configParams: configParams, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_UpdatePackages["default"], { updatePackages: updatePackages, handleUpdatePackages: handleUpdatePackages, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_Repository["default"], { repo: repo, handleRepo: handleRepo, repoGpgKeyUrl: repoGpgKeyUrl, handleRepoGpgKeyUrl: handleRepoGpgKeyUrl, isLoading: isLoading }), /*#__PURE__*/_react["default"].createElement(_TokenLifeTime["default"], { value: jwtExpiration, onChange: handleJwtExpiration, handleInvalidField: handleInvalidField, isLoading: isLoading })); }; Advanced.propTypes = { configParams: _propTypes["default"].object, setupRemoteExecution: _propTypes["default"].string, setupInsights: _propTypes["default"].string, handleInsights: _propTypes["default"].func.isRequired, handleRemoteExecution: _propTypes["default"].func.isRequired, jwtExpiration: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), handleJwtExpiration: _propTypes["default"].func.isRequired, handleInvalidField: _propTypes["default"].func.isRequired, packages: _propTypes["default"].string, repo: _propTypes["default"].string, repoGpgKeyUrl: _propTypes["default"].string, handlePackages: _propTypes["default"].func.isRequired, handleRepo: _propTypes["default"].func.isRequired, handleRepoGpgKeyUrl: _propTypes["default"].func.isRequired, updatePackages: _propTypes["default"].bool, handleUpdatePackages: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; Advanced.defaultProps = { configParams: {}, setupRemoteExecution: '', setupInsights: '', jwtExpiration: 4, packages: '', repo: '', repoGpgKeyUrl: '', updatePackages: false }; var _default = Advanced; exports["default"] = _default; /***/ }), /* 482 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ConfigParams = function ConfigParams(_ref) { var configParams = _ref.configParams, setupRemoteExecution = _ref.setupRemoteExecution, setupInsights = _ref.setupInsights, handleRemoteExecution = _ref.handleRemoteExecution, handleInsights = _ref.handleInsights, isLoading = _ref.isLoading; var options = function options() { var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var defaultValue = value ? (0, _I18n.translate)('yes') : (0, _I18n.translate)('no'); var defaultLabel = "".concat((0, _I18n.translate)('Inherit from host parameter'), " (").concat(defaultValue, ")"); return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { key: 0, value: "", label: defaultLabel }), /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { key: 1, value: true, label: (0, _I18n.translate)('Yes (override)') }), /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelectOption, { key: 2, value: false, label: (0, _I18n.translate)('No (override)') })); }; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Setup REX'), isRequired: true, labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('Setup remote execution. If set to `Yes`, SSH keys will be installed on the registered host. The inherited value is based on the `host_registration_remote_execution` parameter. It can be inherited e.g. from host group, operating system, organization. When overridden, the selected value will be stored on host parameter level.') }), fieldId: "registration_setup_remote_execution" }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelect, { value: setupRemoteExecution, onChange: function onChange(v) { return handleRemoteExecution(v); }, className: "without_select2", id: "registration_setup_remote_execution", isDisabled: isLoading, isRequired: true }, /* eslint-disable-next-line camelcase */ options(configParams === null || configParams === void 0 ? void 0 : configParams.host_registration_remote_execution))), /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Setup Insights'), isRequired: true, fieldId: "registration_setup_insights", labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('If set to `Yes`, Insights client will be installed and registered on Red Hat family operating systems. It has no effect on other OS families that do not support it. The inherited value is based on the `host_registration_insights` parameter. It can be inherited e.g. from host group, operating system, organization. When overridden, the selected value will be stored on host parameter level.') }) }, /*#__PURE__*/_react["default"].createElement(_reactCore.FormSelect, { value: setupInsights, onChange: function onChange(v) { return handleInsights(v); }, className: "without_select2", id: "registration_setup_insights", isDisabled: isLoading, isRequired: true }, /* eslint-disable-next-line camelcase */ options(configParams === null || configParams === void 0 ? void 0 : configParams.host_registration_insights)))); }; ConfigParams.propTypes = { configParams: _propTypes["default"].object, setupRemoteExecution: _propTypes["default"].string.isRequired, setupInsights: _propTypes["default"].string.isRequired, handleRemoteExecution: _propTypes["default"].func.isRequired, handleInsights: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; ConfigParams.defaultProps = { configParams: {} }; var _default = ConfigParams; exports["default"] = _default; /***/ }), /* 483 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /* eslint-disable camelcase */ var Packages = function Packages(_ref) { var packages = _ref.packages, handlePackages = _ref.handlePackages, configParams = _ref.configParams, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Install packages'), helperText: (configParams === null || configParams === void 0 ? void 0 : configParams.host_packages) && (0, _I18n.sprintf)('Default value: "%s"', configParams === null || configParams === void 0 ? void 0 : configParams.host_packages), labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('Packages to install on the host when registered. Can be set by `host_packages` parameter, example: `pkg1 pkg2`.') }), fieldId: "reg_packages" }, /*#__PURE__*/_react["default"].createElement(_reactCore.TextInput, { id: "reg_packages", value: packages, type: "text", onChange: handlePackages, isDisabled: isLoading })); }; Packages.propTypes = { configParams: _propTypes["default"].object, packages: _propTypes["default"].string, handlePackages: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; Packages.defaultProps = { packages: '', configParams: {} }; var _default = Packages; exports["default"] = _default; /***/ }), /* 484 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Repository = function Repository(_ref) { var repo = _ref.repo, handleRepo = _ref.handleRepo, repoGpgKeyUrl = _ref.repoGpgKeyUrl, handleRepoGpgKeyUrl = _ref.handleRepoGpgKeyUrl, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Repository'), fieldId: "reg_repo", labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)("A repository to be added before the registration is performed. It can be useful to e.g. make the subscription-manager packages available for the purpose of the registration. For Red Hat family distributions, this should be the URL of the repository, e.g. 'http://rpm.example.com/'. For Debian OS families, it's the whole list file content, e.g. 'deb http://deb.example.com/ buster 1.0'.") }) }, /*#__PURE__*/_react["default"].createElement(_reactCore.TextInput, { id: "reg_repo", value: repo, type: "text", onChange: handleRepo, isDisabled: isLoading })), /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Repository GPG key URL'), fieldId: "reg_gpg_key_url", labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('If packages are GPG signed, the public key can be specified here to verify the packages signatures. It needs to be specified in the ascii form with the GPG public key header.') }) }, /*#__PURE__*/_react["default"].createElement(_reactCore.TextInput, { id: "reg_gpg_key_url", value: repoGpgKeyUrl, type: "text", onChange: handleRepoGpgKeyUrl, isDisabled: isLoading }))); }; Repository.propTypes = { repo: _propTypes["default"].string, repoGpgKeyUrl: _propTypes["default"].string, handleRepo: _propTypes["default"].func.isRequired, handleRepoGpgKeyUrl: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; Repository.defaultProps = { repo: '', repoGpgKeyUrl: '' }; var _default = Repository; exports["default"] = _default; /***/ }), /* 485 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var TokenLifeTime = function TokenLifeTime(_ref) { var value = _ref.value, onChange = _ref.onChange, handleInvalidField = _ref.handleInvalidField, isLoading = _ref.isLoading; var minValue = 1; var maxValue = 999999; var isValid = function isValid(v) { if (v === 'unlimited') { return true; } return v >= minValue && v <= maxValue; }; var setValue = function setValue(v) { handleInvalidField('Token life time', isValid(v)); onChange(v); }; return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Token life time'), validated: isValid(value) ? 'default' : 'error', helperTextInvalid: (0, _I18n.sprintf)('Token life time value must be between %s and %s hours.', minValue, maxValue), isRequired: true, fieldId: "reg_token_life_time_input", labelIcon: /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('Expiration of the authorization token.') }) }, /*#__PURE__*/_react["default"].createElement(_reactCore.InputGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.TextInput, { value: value, type: "number", min: minValue, max: maxValue, validated: isValid(value) ? 'default' : 'error', isDisabled: isLoading || value === 'unlimited', id: "reg_token_life_time_input", onChange: function onChange(v) { return setValue(v); } }), /*#__PURE__*/_react["default"].createElement(_reactCore.InputGroupText, null, (0, _I18n.translate)('hours')), /*#__PURE__*/_react["default"].createElement(_reactCore.InputGroupText, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Checkbox, { label: (0, _I18n.translate)('unlimited'), onChange: function onChange() { return setValue(value === 'unlimited' ? 4 : 'unlimited'); }, id: "reg_unlimited_token_life_time", isDisabled: isLoading, isChecked: value === 'unlimited' })))); }; TokenLifeTime.propTypes = { value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]), onChange: _propTypes["default"].func.isRequired, handleInvalidField: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; TokenLifeTime.defaultProps = { value: 4 }; var _default = TokenLifeTime; exports["default"] = _default; /***/ }), /* 486 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _LabelIcon = _interopRequireDefault(__webpack_require__(19)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var UpdatePackages = function UpdatePackages(_ref) { var updatePackages = _ref.updatePackages, handleUpdatePackages = _ref.handleUpdatePackages, isLoading = _ref.isLoading; return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { fieldId: "reg_update_packages" }, /*#__PURE__*/_react["default"].createElement(_reactCore.Checkbox, { label: /*#__PURE__*/_react["default"].createElement("span", null, (0, _I18n.translate)('Update packages'), ' ', /*#__PURE__*/_react["default"].createElement(_LabelIcon["default"], { text: (0, _I18n.translate)('Update all packages on the host') })), id: "reg_update_packages", onChange: function onChange() { return handleUpdatePackages(!updatePackages); }, isDisabled: isLoading, isChecked: updatePackages })); }; UpdatePackages.propTypes = { updatePackages: _propTypes["default"].bool.isRequired, handleUpdatePackages: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired }; var _default = UpdatePackages; exports["default"] = _default; /***/ }), /* 487 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRouterDom = __webpack_require__(17); var _reactCore = __webpack_require__(6); var _I18n = __webpack_require__(2); var _foreman_tools = __webpack_require__(18); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Actions = function Actions(_ref) { var isLoading = _ref.isLoading, isGenerating = _ref.isGenerating, handleSubmit = _ref.handleSubmit, invalidFields = _ref.invalidFields; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { fieldId: "actions_help", className: "pf-u-pt-xl" }, invalidFields.length === 1 && /*#__PURE__*/_react["default"].createElement(_reactCore.Alert, { variant: "warning", title: (0, _I18n.sprintf)('Invalid field: %s', invalidFields[0]) }), invalidFields.length > 1 && /*#__PURE__*/_react["default"].createElement(_reactCore.Alert, { variant: "warning", title: (0, _I18n.sprintf)('Invalid fields: %s', invalidFields.join(', ')) })), /*#__PURE__*/_react["default"].createElement(_reactCore.ActionGroup, null, /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { variant: "primary", id: "generate_btn", onClick: function onClick(e) { return handleSubmit(e); }, isDisabled: isLoading || invalidFields.length > 0, isLoading: isGenerating }, isGenerating ? (0, _I18n.translate)('Generating ...') : (0, _I18n.translate)('Generate')), /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, { to: (0, _foreman_tools.foremanUrl)('/hosts') }, /*#__PURE__*/_react["default"].createElement(_reactCore.Button, { variant: "link" }, (0, _I18n.translate)('Cancel'))))); }; Actions.propTypes = { handleSubmit: _propTypes["default"].func.isRequired, isLoading: _propTypes["default"].bool.isRequired, isGenerating: _propTypes["default"].bool.isRequired, invalidFields: _propTypes["default"].oneOfType([_propTypes["default"].array, _propTypes["default"].object]) }; Actions.defaultProps = { invalidFields: [] }; var _default = Actions; exports["default"] = _default; /***/ }), /* 488 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactCore = __webpack_require__(6); var _I18n = __webpack_require__(2); var _constants = __webpack_require__(7); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Command = function Command(_ref) { var apiStatus = _ref.apiStatus, command = _ref.command; switch (apiStatus) { case _constants.STATUS.ERROR: return /*#__PURE__*/_react["default"].createElement(_reactCore.Alert, { variant: "danger", title: (0, _I18n.translate)('There was an error while generating the command, see the logs for more information.') }); case _constants.STATUS.RESOLVED: return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, { label: (0, _I18n.translate)('Registration command') }, /*#__PURE__*/_react["default"].createElement(_reactCore.ClipboardCopy, { variant: _reactCore.ClipboardCopyVariant.expansion, isReadOnly: true, isCode: true, isExpanded: true }, command)); default: return /*#__PURE__*/_react["default"].createElement(_reactCore.FormGroup, null); } }; Command.propTypes = { apiStatus: _propTypes["default"].string, command: _propTypes["default"].string }; Command.defaultProps = { apiStatus: undefined, command: '' }; var _default = Command; exports["default"] = _default; /***/ }), /* 489 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 490 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _HostStatuses = _interopRequireDefault(__webpack_require__(491)); var _constants = __webpack_require__(497); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = { path: _constants.HOST_STATUSES_PATH, render: function render(props) { return /*#__PURE__*/_react["default"].createElement(_HostStatuses["default"], props); } }; exports["default"] = _default; /***/ }), /* 491 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactCore = __webpack_require__(6); var _foreman_tools = __webpack_require__(18); var _APIHooks = __webpack_require__(38); var _Status = _interopRequireDefault(__webpack_require__(492)); var _StatusSkeleton = _interopRequireDefault(__webpack_require__(495)); var _I18n = __webpack_require__(2); var _SkeletonLoader = _interopRequireDefault(__webpack_require__(39)); var _constants = __webpack_require__(7); var _HostStatusesConstants = __webpack_require__(94); var _HostStatusesSelectors = __webpack_require__(176); __webpack_require__(496); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var HostStatuses = function HostStatuses() { var url = (0, _foreman_tools.foremanUrl)('/api/v2/host_statuses?per_page=99'); var _useAPI = (0, _APIHooks.useAPI)('get', url, _HostStatusesConstants.API_OPTIONS), _useAPI$status = _useAPI.status, status = _useAPI$status === void 0 ? _constants.STATUS.PENDING : _useAPI$status; var Skeleton = function Skeleton() { return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement(_StatusSkeleton["default"], null), /*#__PURE__*/_react["default"].createElement(_StatusSkeleton["default"], null)); }; var statuses = (0, _reactRedux.useSelector)(function (state) { return (0, _HostStatusesSelectors.selectHostStatusesNames)(state); }); return /*#__PURE__*/_react["default"].createElement(_reactCore.PageSection, { padding: true, className: "host-statuses-page" }, /*#__PURE__*/_react["default"].createElement(_reactCore.Grid, { hasGutter: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 12 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Title, { headingLevel: "h5", size: "xl" }, (0, _I18n.translate)('Host Status Overview'))), /*#__PURE__*/_react["default"].createElement(_SkeletonLoader["default"], { customSkeleton: /*#__PURE__*/_react["default"].createElement(Skeleton, null), status: status }, statuses.map(function (name, i) { return /*#__PURE__*/_react["default"].createElement(_Status["default"], { key: i, name: name }); })))); }; var _default = HostStatuses; exports["default"] = _default; /***/ }), /* 492 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRedux = __webpack_require__(5); var _seamlessImmutable = __webpack_require__(9); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _reactCore = __webpack_require__(6); var _GlobalStatusIcon = _interopRequireDefault(__webpack_require__(93)); var _I18n = __webpack_require__(2); var _Details = _interopRequireDefault(__webpack_require__(493)); var _LinkOrLabel = _interopRequireDefault(__webpack_require__(175)); var _HostStatusesSelectors = __webpack_require__(176); __webpack_require__(494); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var Status = function Status(_ref) { var name = _ref.name; var _useState = (0, _react.useState)(false), _useState2 = _slicedToArray(_useState, 2), expanded = _useState2[0], setExpanded = _useState2[1]; var globalStatus = (0, _reactRedux.useSelector)(function (state) { return (0, _HostStatusesSelectors.selectGlobalStatus)(state, name); }); var details = (0, _reactRedux.useSelector)(function (state) { return (0, _HostStatusesSelectors.selectHostStatusDetails)(state, name); }); var description = (0, _reactRedux.useSelector)(function (state) { return (0, _HostStatusesSelectors.selectHostStatusDescription)(state, name); }); var _useSelector = (0, _reactRedux.useSelector)(function (state) { return (0, _HostStatusesSelectors.selectHostStatusTotalPaths)(state, name); }), okTotalPath = _useSelector.okTotalPath, warnTotalPath = _useSelector.warnTotalPath, errorTotalPath = _useSelector.errorTotalPath; var _useSelector2 = (0, _reactRedux.useSelector)(function (state) { return (0, _HostStatusesSelectors.selectHostStatusOwnedPaths)(state, name); }), okOwnedPath = _useSelector2.okOwnedPath, warnOwnedPath = _useSelector2.warnOwnedPath, errorOwnedPath = _useSelector2.errorOwnedPath; var _useSelector3 = (0, _reactRedux.useSelector)(function (state) { return (0, _HostStatusesSelectors.selectHostStatusCounter)(state, name); }), _useSelector3$unknown = _useSelector3.unknown, unknownTotalCount = _useSelector3$unknown.total, unknownOwnedCount = _useSelector3$unknown.owned, _useSelector3$ok = _useSelector3.ok, okTotalCount = _useSelector3$ok.total, okOwnedCount = _useSelector3$ok.owned, _useSelector3$warn = _useSelector3.warn, warnTotalCount = _useSelector3$warn.total, warnOwnedCount = _useSelector3$warn.owned, _useSelector3$error = _useSelector3.error, errorTotalCount = _useSelector3$error.total, errorOwnedCount = _useSelector3$error.owned; var cardClass = (0, _classnames["default"])('pf-c-alert', { 'pf-m-danger': errorTotalCount, 'pf-m-warning': !errorTotalCount && warnTotalCount, 'pf-m-success': !errorTotalCount && !warnTotalCount }); var unknownStatusesPresent = !!unknownTotalCount || !!unknownOwnedCount; return /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { sm: 12, xl2: 6 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Card, { className: cardClass, isExpanded: expanded, isHoverable: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.CardHeader, { onExpand: function onExpand(_event, _id) { return setExpanded(!expanded); }, toggleButtonProps: { id: 'toggle-button', 'aria-label': 'Details', 'aria-labelledby': 'titleId toggle-button', 'aria-expanded': expanded } }, /*#__PURE__*/_react["default"].createElement(_reactCore.Grid, { className: "w-100", hasGutter: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 1, rowSpan: 2, style: { fontSize: '2.2em' } }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: globalStatus })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: unknownStatusesPresent ? 3 : 5, style: { fontSize: '1.5em' } }, name), unknownStatusesPresent && /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 2, rowSpan: 2, className: "status-count text-center" }, /*#__PURE__*/_react["default"].createElement("div", { style: { fontSize: '1.5em' } }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], null)), /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { label: (0, _I18n.sprintf)((0, _I18n.translate)('Total: %s'), unknownTotalCount) }), /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { label: (0, _I18n.sprintf)((0, _I18n.translate)('Owned: %s'), unknownOwnedCount) })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 2, rowSpan: 2, className: "status-count text-center" }, /*#__PURE__*/_react["default"].createElement("div", { style: { fontSize: '1.5em' } }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: 0 })), /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { path: okTotalPath, label: (0, _I18n.sprintf)((0, _I18n.translate)('Total: %s'), okTotalCount) }), /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { path: okOwnedPath, label: (0, _I18n.sprintf)((0, _I18n.translate)('Owned: %s'), okOwnedCount) })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 2, rowSpan: 2, className: "status-count text-center" }, /*#__PURE__*/_react["default"].createElement("div", { style: { fontSize: '1.5em' } }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: 1 })), /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { path: warnTotalPath, label: (0, _I18n.sprintf)((0, _I18n.translate)('Total: %s'), warnTotalCount) }), /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { path: warnOwnedPath, label: (0, _I18n.sprintf)((0, _I18n.translate)('Owned: %s'), warnOwnedCount) })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 2, rowSpan: 2, className: "status-count text-center" }, /*#__PURE__*/_react["default"].createElement("div", { style: { fontSize: '1.5em' } }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: 2 })), /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { path: errorTotalPath, label: (0, _I18n.sprintf)((0, _I18n.translate)('Total: %s'), errorTotalCount) }), /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { path: errorOwnedPath, label: (0, _I18n.sprintf)((0, _I18n.translate)('Owned: %s'), errorOwnedCount) })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 5 }, description))), /*#__PURE__*/_react["default"].createElement(_reactCore.CardExpandableContent, null, details.length > 0 ? /*#__PURE__*/_react["default"].createElement(_Details["default"], { data: (0, _seamlessImmutable.asMutable)(details) }) : (0, _I18n.translate)('Nothing to show')))); }; Status.propTypes = { name: _propTypes["default"].string.isRequired }; var _default = Status; exports["default"] = _default; /***/ }), /* 493 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactTable = __webpack_require__(103); var _GlobalStatusIcon = _interopRequireDefault(__webpack_require__(93)); var _LinkOrLabel = _interopRequireDefault(__webpack_require__(175)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var Details = function Details(_ref) { var data = _ref.data; var columns = ['', (0, _I18n.translate)('Total'), (0, _I18n.translate)('Owned')]; var rows = data.map(function (_ref2) { var label = _ref2.label, total = _ref2.total, owned = _ref2.owned, globalStatus = _ref2.global_status, totalPath = _ref2.total_path, ownedPath = _ref2.owned_path; return [{ title: /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: globalStatus }), " ", label) }, { title: /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { path: totalPath, label: total.toString() }) }, { title: /*#__PURE__*/_react["default"].createElement(_LinkOrLabel["default"], { path: ownedPath, label: owned.toString() }) }]; }); return /*#__PURE__*/_react["default"].createElement(_reactTable.Table, { "aria-label": "Host Statuses", variant: "compact", cells: columns, rows: rows }, /*#__PURE__*/_react["default"].createElement(_reactTable.TableHeader, null), /*#__PURE__*/_react["default"].createElement(_reactTable.TableBody, null)); }; Details.propTypes = { data: _propTypes["default"].arrayOf(_propTypes["default"].shape({ label: _propTypes["default"].string.isRequired, total: _propTypes["default"].number.isRequired, owned: _propTypes["default"].number.isRequired, global_status: _propTypes["default"].number, total_path: _propTypes["default"].string, owned_path: _propTypes["default"].string })) }; Details.propTypes = { data: _propTypes["default"].array }; Details.defaultProps = { data: [] }; var _default = Details; exports["default"] = _default; /***/ }), /* 494 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 495 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactLoadingSkeleton = _interopRequireDefault(__webpack_require__(61)); var _reactCore = __webpack_require__(6); var _GlobalStatusIcon = _interopRequireDefault(__webpack_require__(93)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var StatusSkeleton = function StatusSkeleton() { return /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { sm: 12, xl2: 6 }, /*#__PURE__*/_react["default"].createElement(_reactCore.Card, { className: "pf-c-alert pf-m-success" }, /*#__PURE__*/_react["default"].createElement(_reactCore.CardHeader, { onExpand: function onExpand() {}, toggleButtonProps: { id: 'toggle-button', 'aria-label': 'Details', 'aria-labelledby': 'titleId toggle-button', 'aria-expanded': false } }, /*#__PURE__*/_react["default"].createElement(_reactCore.Grid, { className: "w-100", hasGutter: true }, /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 1, rowSpan: 2, className: "text-center" }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: 0 })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 5, style: { fontSize: '1.5em' } }, /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null)), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 2, rowSpan: 2, className: "text-center" }, /*#__PURE__*/_react["default"].createElement("div", { style: { fontSize: '1.5em' } }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: 0 })), /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null)), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 2, rowSpan: 2, className: "text-center" }, /*#__PURE__*/_react["default"].createElement("div", { style: { fontSize: '1.5em' } }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: 1 })), /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null)), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 2, rowSpan: 2, className: "text-center" }, /*#__PURE__*/_react["default"].createElement("div", { style: { fontSize: '1.5em' } }, /*#__PURE__*/_react["default"].createElement(_GlobalStatusIcon["default"], { status: 2 })), /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null)), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { span: 5 }, /*#__PURE__*/_react["default"].createElement(_reactLoadingSkeleton["default"], null)))))); }; var _default = StatusSkeleton; exports["default"] = _default; /***/ }), /* 496 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 497 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HOST_STATUSES_PATH = void 0; var HOST_STATUSES_PATH = '/host_statuses'; exports.HOST_STATUSES_PATH = HOST_STATUSES_PATH; /***/ }), /* 498 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _reactRouterDom = __webpack_require__(17); var _RoutingService = __webpack_require__(104); var _RouterSelector = __webpack_require__(499); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ForemanSwitcher = function ForemanSwitcher(_ref) { var coreRoutes = _ref.children; var routes = (0, _reactRedux.useSelector)(function () { return (0, _RouterSelector.selectRoutes)(coreRoutes); }, _reactRedux.shallowEqual); return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Switch, null, routes, /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Route, { render: _RoutingService.fallbackRoute, key: "default-route" })); }; ForemanSwitcher.propTypes = { children: _propTypes["default"].arrayOf(_propTypes["default"].node).isRequired }; var _default = ForemanSwitcher; exports["default"] = _default; /***/ }), /* 499 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectRoutes = exports.selectRouterSearch = exports.selectRouterPath = exports.selectRouterLocation = exports.selectRouterHash = exports.selectRouter = exports.selectLastHistoryAction = void 0; var _SlotSelectors = __webpack_require__(63); var selectRouter = function selectRouter(state) { return state.router; }; exports.selectRouter = selectRouter; var selectRouterLocation = function selectRouterLocation(state) { return selectRouter(state).location; }; exports.selectRouterLocation = selectRouterLocation; var selectRouterPath = function selectRouterPath(state) { return selectRouterLocation(state).pathname; }; exports.selectRouterPath = selectRouterPath; var selectRouterSearch = function selectRouterSearch(state) { return selectRouterLocation(state).search; }; exports.selectRouterSearch = selectRouterSearch; var selectRouterHash = function selectRouterHash(state) { return selectRouterLocation(state).hash; }; exports.selectRouterHash = selectRouterHash; var selectLastHistoryAction = function selectLastHistoryAction(state) { return selectRouter(state).action; }; exports.selectLastHistoryAction = selectLastHistoryAction; var selectRoutes = function selectRoutes(coreRoutes) { return coreRoutes.concat((0, _SlotSelectors.selectComponentByWeight)('routes')); }; exports.selectRoutes = selectRoutes; /***/ }), /* 500 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _client = __webpack_require__(167); var _batchHttp = __webpack_require__(501); var _helpers = __webpack_require__(3); var batchLink = new _batchHttp.BatchHttpLink({ uri: (0, _helpers.foremanUrl)('/api/graphql') }); var authLink = new _client.ApolloLink(function (operation, forward) { operation.setContext({ headers: { 'X-CSRF-Token': document.querySelector('meta[name=csrf-token]').getAttribute('content') } }); return forward(operation); }); var client = new _client.ApolloClient({ link: (0, _client.from)([authLink, batchLink]), cache: new _client.InMemoryCache() }); var _default = client; exports["default"] = _default; /***/ }), /* 501 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__APOLLO_CLIENT_LINK_BATCH_HTTP__; /***/ }), /* 502 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactIcons = __webpack_require__(11); var _reactCore = __webpack_require__(6); var _I18n = __webpack_require__(2); var _EmptyState = _interopRequireDefault(__webpack_require__(36)); var _helpers = __webpack_require__(3); __webpack_require__(503); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var ErrorBoundary = /*#__PURE__*/function (_React$Component) { _inherits(ErrorBoundary, _React$Component); var _super = _createSuper(ErrorBoundary); function ErrorBoundary(props) { var _this; _classCallCheck(this, ErrorBoundary); _this = _super.call(this, props); _this.state = { hasError: false }; props.history.listen(function () { if (_this.state.hasError) { _this.setState({ hasError: false }); } }); return _this; } _createClass(ErrorBoundary, [{ key: "componentDidCatch", value: function componentDidCatch(error, info) { this.setState({ hasError: true, error: error, info: info }); } }, { key: "render", value: function render() { var _this$props = this.props, history = _this$props.history, children = _this$props.children; var _this$state = this.state, hasError = _this$state.hasError, error = _this$state.error, info = _this$state.info; if (!hasError) return children; var description = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("p", null, (0, _I18n.translate)('There was a problem processing the request. Please try again.')), /*#__PURE__*/_react["default"].createElement("p", { dangerouslySetInnerHTML: { __html: (0, _I18n.translate)("To report an issue click here")) } })); var action = { title: (0, _I18n.translate)('Return to last page'), onClick: history.goBack }; return /*#__PURE__*/_react["default"].createElement(_reactCore.Grid, { className: "error-boundary-foreman-app" }, /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { sm: 12 }, /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], { icon: /*#__PURE__*/_react["default"].createElement(_reactIcons.ExclamationCircleIcon, null), header: (0, _I18n.translate)('Something went wrong'), description: description, action: action })), /*#__PURE__*/_react["default"].createElement(_reactCore.GridItem, { sm: 8, smOffset: 2 }, /*#__PURE__*/_react["default"].createElement(_reactCore.ClipboardCopy, { isReadOnly: true, variant: _reactCore.ClipboardCopyVariant.expansion }, error.toString(), info.componentStack))); } }]); return ErrorBoundary; }(_react["default"].Component); ErrorBoundary.propTypes = { children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired, history: _propTypes["default"].object.isRequired }; var _default = ErrorBoundary; exports["default"] = _default; /***/ }), /* 503 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 504 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _AreaChartService = __webpack_require__(505); var _helpers = __webpack_require__(3); var _I18n = __webpack_require__(2); var _MessageBox = _interopRequireDefault(__webpack_require__(24)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var AreaChart = function AreaChart(_ref) { var data = _ref.data, onclick = _ref.onclick, noDataMsg = _ref.noDataMsg, config = _ref.config, unloadData = _ref.unloadData, xAxisDataLabel = _ref.xAxisDataLabel, yAxisLabel = _ref.yAxisLabel, size = _ref.size; var chartConfig = (0, _AreaChartService.getAreaChartConfig)({ data: data, config: config, onclick: onclick, yAxisLabel: yAxisLabel, xAxisDataLabel: xAxisDataLabel, size: size }); if (chartConfig.data.columns.length) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.AreaChart, _extends({}, chartConfig, { unloadBeforeLoad: unloadData })); } return /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { msg: noDataMsg, icontype: "info" }); }; AreaChart.propTypes = { data: _propTypes["default"].arrayOf(_propTypes["default"].array), onclick: _propTypes["default"].func, noDataMsg: _propTypes["default"].string, config: _propTypes["default"].oneOf(['timeseries']), unloadData: _propTypes["default"].bool, xAxisDataLabel: _propTypes["default"].string, yAxisLabel: _propTypes["default"].string, size: _propTypes["default"].object }; AreaChart.defaultProps = { data: null, onclick: _helpers.noop, noDataMsg: (0, _I18n.translate)('No data available'), config: 'timeseries', unloadData: false, xAxisDataLabel: 'time', yAxisLabel: '', size: undefined }; var _default = AreaChart; exports["default"] = _default; /***/ }), /* 505 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAreaChartConfig = void 0; var _v = _interopRequireDefault(__webpack_require__(16)); var _ChartService = __webpack_require__(66); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var getAreaChartConfig = function getAreaChartConfig(_ref) { var data = _ref.data, _ref$config = _ref.config, config = _ref$config === void 0 ? 'timeseries' : _ref$config, onclick = _ref.onclick, yAxisLabel = _ref.yAxisLabel, _ref$xAxisDataLabel = _ref.xAxisDataLabel, xAxisDataLabel = _ref$xAxisDataLabel === void 0 ? 'time' : _ref$xAxisDataLabel, _ref$stacked = _ref.stacked, stacked = _ref$stacked === void 0 ? true : _ref$stacked, _ref$id = _ref.id, id = _ref$id === void 0 ? (0, _v["default"])() : _ref$id, _ref$size = _ref.size, size = _ref$size === void 0 ? undefined : _ref$size; var chartConfig = (0, _ChartService.getChartConfig)({ type: 'area', config: config, data: data, onclick: onclick, id: id }); if (config === 'timeseries' && xAxisDataLabel) { chartConfig.data.x = xAxisDataLabel; } else if (config === 'timeseries' && !xAxisDataLabel) { // eslint-disable-next-line no-console console.warn('xAxisDataLabel is missing for timeseries area graph'); } if (data) { var timestamps = data[0].slice(1); var formatedDates = timestamps.map(function (epochSecs) { return new Date(epochSecs * 1000); }); chartConfig.data.colors = {}; chartConfig.data.columns[0] = [xAxisDataLabel].concat(formatedDates); if (size) { chartConfig.size = size; } if (stacked) { chartConfig.data.groups = [chartConfig.data.columns.slice(1).map(function (dataItem) { return dataItem[0]; })]; } } return _objectSpread(_objectSpread({}, chartConfig), {}, { axis: _objectSpread(_objectSpread({}, chartConfig.axis), {}, { y: { label: { text: yAxisLabel || null, position: 'outer-middle' } } }) }); }; exports.getAreaChartConfig = getAreaChartConfig; /***/ }), /* 506 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.timeseriesLineChartConfig = exports.timeseriesAreaChartConfig = exports.smallBarChartConfig = exports.mediumBarChartConfig = exports.lineChartConfig = exports.donutMediumChartConfig = exports.donutLargeChartConfig = exports.donutChartConfig = exports.chartConfig = exports.barChartConfig = exports.areaChartConfig = void 0; var _I18n = __webpack_require__(2); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var enums = { SIZE: { LARGE: { height: 500 }, REGULAR: { width: 240, height: 240 }, MEDIUM: { width: 320, height: 320 } }, WIDTH: { SMALL: 15, MEDIUM: 20, LARGE: 25 } }; var barChartEnums = { SIZE: { LARGE: { height: 500 }, REGULAR: { width: 350, height: 350 }, MEDIUM: { width: 450, height: 320 }, SMALL: { height: 290 } }, WIDTH: _objectSpread({}, enums.width) }; var lineChartEnums = { SIZE: { REGULAR: { width: 1000, height: 350 } }, WIDTH: _objectSpread({}, enums.width) }; var chartConfig = { data: { columns: [] }, color: { pattern: ['#0088ce', '#ec7a08', '#3f9c35', '#005c66', '#f9d67a', '#703fec'] }, tooltip: { show: true }, legend: { show: false }, padding: { top: 0, left: 0, right: 0, bottom: 0 }, size: enums.SIZE.REGULAR }; exports.chartConfig = chartConfig; var donutChartConfig = _objectSpread(_objectSpread({}, chartConfig), {}, { donut: { width: enums.WIDTH.SMALL, label: { show: false } } }); exports.donutChartConfig = donutChartConfig; var donutMediumChartConfig = _objectSpread(_objectSpread({}, donutChartConfig), {}, { size: enums.SIZE.MEDIUM, legend: { show: false }, donut: _objectSpread(_objectSpread({}, donutChartConfig.donut), {}, { width: enums.WIDTH.MEDIUM }) }); exports.donutMediumChartConfig = donutMediumChartConfig; var donutLargeChartConfig = _objectSpread(_objectSpread({}, donutChartConfig), {}, { size: enums.SIZE.LARGE, legend: { show: true, position: 'bottom' }, donut: _objectSpread(_objectSpread({}, donutChartConfig.donut), {}, { width: enums.WIDTH.LARGE }) }); exports.donutLargeChartConfig = donutLargeChartConfig; var barChartConfig = _objectSpread(_objectSpread({}, chartConfig), {}, { size: barChartEnums.SIZE.REGULAR, padding: null }); exports.barChartConfig = barChartConfig; var mediumBarChartConfig = _objectSpread(_objectSpread({}, barChartConfig), {}, { size: barChartEnums.SIZE.MEDIUM }); exports.mediumBarChartConfig = mediumBarChartConfig; var smallBarChartConfig = _objectSpread(_objectSpread({}, barChartConfig), {}, { size: barChartEnums.SIZE.SMALL }); exports.smallBarChartConfig = smallBarChartConfig; var lineChartConfig = _objectSpread(_objectSpread({}, chartConfig), {}, { legend: { show: true }, size: lineChartEnums.SIZE.REGULAR, padding: null }); exports.lineChartConfig = lineChartConfig; var timeseriesLineChartConfig = _objectSpread(_objectSpread({}, lineChartConfig), {}, { axis: { x: { type: 'timeseries', tick: { format: function format(date) { return new Intl.DateTimeFormat(_I18n.intl.locale).format(date); }, rotate: -40 } } }, padding: { top: 10, bottom: 70, left: 30, right: 20 } }); exports.timeseriesLineChartConfig = timeseriesLineChartConfig; var areaChartConfig = _objectSpread(_objectSpread({}, chartConfig), {}, { legend: { show: true } }); exports.areaChartConfig = areaChartConfig; var timeseriesAreaChartConfig = _objectSpread(_objectSpread({}, areaChartConfig), {}, { axis: { x: { type: 'timeseries', tick: { format: function format(date) { return new Intl.DateTimeFormat(_I18n.intl.locale, { month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric' }).format(date); }, rotate: -40 } } }, size: undefined, padding: { top: 10, bottom: 60, left: 60, right: 20 } }); exports.timeseriesAreaChartConfig = timeseriesAreaChartConfig; /***/ }), /* 507 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBarChartConfig = void 0; var _v = _interopRequireDefault(__webpack_require__(16)); var _ChartService = __webpack_require__(66); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var getBarChartConfig = function getBarChartConfig(_ref) { var data = _ref.data, config = _ref.config, onclick = _ref.onclick, xAxisLabel = _ref.xAxisLabel, yAxisLabel = _ref.yAxisLabel, _ref$id = _ref.id, id = _ref$id === void 0 ? (0, _v["default"])() : _ref$id; var chartConfig = (0, _ChartService.getChartConfig)({ type: 'bar', data: data, config: config, onclick: onclick, id: id }); var categories = null; var columns = null; if (data) { categories = data.map(function (dataItem) { return dataItem[0]; }); columns = data.map(function (x) { return x[1]; }); columns.unshift(xAxisLabel); chartConfig.data.columns = [columns]; } return _objectSpread(_objectSpread({}, chartConfig), {}, { axis: { x: { categories: categories, type: 'category', label: xAxisLabel || null }, y: { label: yAxisLabel || null } } }); }; exports.getBarChartConfig = getBarChartConfig; /***/ }), /* 508 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDonutChartConfig = void 0; var _v = _interopRequireDefault(__webpack_require__(16)); var _ChartService = __webpack_require__(66); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var getDonutChartConfig = function getDonutChartConfig(_ref) { var data = _ref.data, config = _ref.config, _onclick = _ref.onclick, searchUrl = _ref.searchUrl, searchFilters = _ref.searchFilters, _ref$id = _ref.id, id = _ref$id === void 0 ? (0, _v["default"])() : _ref$id; return (0, _ChartService.getChartConfig)({ type: 'donut', data: data, config: config, id: id, onclick: function onclick(d, element) { if (_onclick) _onclick(d, element); if (searchUrl) (0, _ChartService.navigateToSearch)(searchUrl, searchFilters || {}, d); } }); }; exports.getDonutChartConfig = getDonutChartConfig; /***/ }), /* 509 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _LineChartService = __webpack_require__(510); var _MessageBox = _interopRequireDefault(__webpack_require__(24)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var LineChart = function LineChart(_ref) { var data = _ref.data, title = _ref.title, config = _ref.config, noDataMsg = _ref.noDataMsg, unloadData = _ref.unloadData, xAxisDataLabel = _ref.xAxisDataLabel, axisOpts = _ref.axisOpts, onclick = _ref.onclick, id = _ref.id; var chartConfig = (0, _LineChartService.getLineChartConfig)({ data: data, config: config, xAxisDataLabel: xAxisDataLabel, axisOpts: axisOpts, onclick: onclick, id: id }); if (chartConfig.data.columns.length > 0) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.LineChart, _extends({}, chartConfig, { title: title, unloadBeforeLoad: unloadData })); } return /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { msg: noDataMsg, icontype: "info" }); }; LineChart.propTypes = { data: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].array]), config: _propTypes["default"].oneOf(['regular', 'timeseries']), noDataMsg: _propTypes["default"].string, title: _propTypes["default"].object, unloadData: _propTypes["default"].bool, axisOpts: _propTypes["default"].object, xAxisDataLabel: _propTypes["default"].string, onclick: _propTypes["default"].func, id: _propTypes["default"].string }; LineChart.defaultProps = { data: undefined, config: 'regular', noDataMsg: (0, _I18n.translate)('No data available'), title: { type: 'percent' }, unloadData: false, axisOpts: {}, xAxisDataLabel: '', onclick: function onclick() {}, id: undefined }; var _default = LineChart; exports["default"] = _default; /***/ }), /* 510 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.getLineChartConfig = void 0; var _v = _interopRequireDefault(__webpack_require__(16)); var _ChartService = __webpack_require__(66); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var getLineChartConfig = function getLineChartConfig(_ref) { var data = _ref.data, config = _ref.config, onclick = _ref.onclick, _ref$id = _ref.id, id = _ref$id === void 0 ? (0, _v["default"])() : _ref$id, xAxisDataLabel = _ref.xAxisDataLabel, axisOpts = _ref.axisOpts; var chartConfig = (0, _ChartService.getChartConfig)({ type: 'line', data: data, config: config, id: id, onclick: onclick }); if (chartConfig.data && chartConfig.data.columns) { chartConfig.data.columns = chartConfig.data.columns.map(function (col) { var _col = _slicedToArray(col, 2), label = _col[0], values = _col[1]; // destruct data into format line chart accepts, // remove last item in column as it specifies the color return [label].concat(_toConsumableArray(values)); }); } if (config === 'timeseries' && xAxisDataLabel) { chartConfig.data.x = xAxisDataLabel; } else if (config === 'timeseries' && !xAxisDataLabel) { // eslint-disable-next-line no-console console.warn('xAxisDataLabel is missing for timeseries line graph'); } chartConfig.axis = _objectSpread(_objectSpread({}, chartConfig.axis), axisOpts); delete chartConfig.tooltip; return chartConfig; }; exports.getLineChartConfig = getLineChartConfig; /***/ }), /* 511 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRedux = __webpack_require__(5); var _PowerStatus = _interopRequireDefault(__webpack_require__(512)); var _API = __webpack_require__(8); var _PowerStatusConstants = __webpack_require__(514); var _PowerStatusSelectors = __webpack_require__(515); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var ConnectedPowerStatus = function ConnectedPowerStatus(_ref) { var id = _ref.id, url = _ref.url; var key = "".concat(_PowerStatusConstants.HOST_POWER_STATUS, "_").concat(id); var state = (0, _reactRedux.useSelector)(function (store) { return (0, _PowerStatusSelectors.selectState)(store, key); }); var title = (0, _reactRedux.useSelector)(function (store) { return (0, _PowerStatusSelectors.selectTitle)(store, key); }); var dispatch = (0, _reactRedux.useDispatch)(); (0, _react.useEffect)(function () { dispatch((0, _API.get)({ key: key, url: url })); }, [url, key, dispatch]); return /*#__PURE__*/_react["default"].createElement(_PowerStatus["default"], { state: state, title: title }); }; ConnectedPowerStatus.propTypes = { id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired, url: _propTypes["default"].string.isRequired }; var _default = ConnectedPowerStatus; exports["default"] = _default; /***/ }), /* 512 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _Loader = __webpack_require__(44); __webpack_require__(513); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var PowerStatus = function PowerStatus(_ref) { var state = _ref.state, title = _ref.title; return state ? /*#__PURE__*/_react["default"].createElement("span", { className: "fa fa-power-off host-power-status ".concat(state), title: title }) : (0, _Loader.simpleLoader)('xs'); }; PowerStatus.propTypes = { state: _propTypes["default"].string, title: _propTypes["default"].string }; PowerStatus.defaultProps = { state: '', title: '' }; var _default = PowerStatus; exports["default"] = _default; /***/ }), /* 513 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 514 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HOST_POWER_STATUS = void 0; var HOST_POWER_STATUS = 'HOST_POWER_STATUS'; exports.HOST_POWER_STATUS = HOST_POWER_STATUS; /***/ }), /* 515 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectTitle = exports.selectState = void 0; var _reselect = __webpack_require__(56); var _APISelectors = __webpack_require__(14); var selectErrorMessage = function selectErrorMessage(state, key) { return (0, _APISelectors.selectAPIErrorMessage)(state, key); }; var selectStateFromAPI = function selectStateFromAPI(state, key) { return (0, _APISelectors.selectAPIResponse)(state, key).state; }; var selectTitleFromAPI = function selectTitleFromAPI(state, key) { return (0, _APISelectors.selectAPIResponse)(state, key).title; }; var selectStatusText = function selectStatusText(state, key) { return (0, _APISelectors.selectAPIResponse)(state, key).statusText; }; var selectState = (0, _reselect.createSelector)(selectStateFromAPI, selectErrorMessage, function (state, error) { return error ? 'na' : state; }); exports.selectState = selectState; var selectTitle = (0, _reselect.createSelector)(selectTitleFromAPI, selectErrorMessage, selectStatusText, function (title, error, statusText) { if (error) { var errorTitle = error; if (title || statusText) { errorTitle = "".concat(title, " ").concat(statusText).trim(); } return errorTitle; } return statusText || title; }); exports.selectTitle = selectTitle; /***/ }), /* 516 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactIntl = __webpack_require__(25); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var LongDateTime = function LongDateTime(props, context) { var date = props.date, defaultValue = props.defaultValue; if (date) { var isoDate = (0, _helpers.isoCompatibleDate)(date); var title = props.showRelativeTimeTooltip ? context.intl.formatRelative(isoDate) : undefined; var seconds = props.seconds ? '2-digit' : undefined; return /*#__PURE__*/_react["default"].createElement("span", { title: title }, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedDate, { value: isoDate, day: "2-digit", month: "long", hour: "2-digit", minute: "2-digit", second: seconds, year: "numeric" })); } return /*#__PURE__*/_react["default"].createElement("span", null, defaultValue); }; LongDateTime.contextTypes = { intl: _reactIntl.intlShape }; LongDateTime.propTypes = { date: _propTypes["default"].any, defaultValue: _propTypes["default"].string, seconds: _propTypes["default"].bool, showRelativeTimeTooltip: _propTypes["default"].bool }; LongDateTime.defaultProps = { date: null, defaultValue: '', seconds: false, showRelativeTimeTooltip: false }; var _default = LongDateTime; exports["default"] = _default; /***/ }), /* 517 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactIntl = __webpack_require__(25); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var IsoDate = function IsoDate(props, context) { var date = props.date, defaultValue = props.defaultValue; if (date) { var isoDate = (0, _helpers.isoCompatibleDate)(date); var title = context.intl.formatRelative(isoDate); return /*#__PURE__*/_react["default"].createElement("span", { title: title }, /*#__PURE__*/_react["default"].createElement(_reactIntl.FormattedDate, { value: isoDate, day: "2-digit", month: "2-digit", year: "numeric" })); } return /*#__PURE__*/_react["default"].createElement("span", null, defaultValue); }; IsoDate.contextTypes = { intl: _reactIntl.intlShape }; IsoDate.propTypes = { date: _propTypes["default"].any, defaultValue: _propTypes["default"].string }; IsoDate.defaultProps = { date: null, defaultValue: '' }; var _default = IsoDate; exports["default"] = _default; /***/ }), /* 518 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _patternflyReact = __webpack_require__(4); var _reactIcons = __webpack_require__(11); var _InputFactory = _interopRequireDefault(__webpack_require__(178)); var _helpers = __webpack_require__(3); var _excluded = ["type", "id", "name", "className", "disabled", "required", "error", "value", "label", "labelHelp", "helpInline", "labelSizeClass", "inputSizeClass", "onChange", "children", "inputProps"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var InlineMessage = function InlineMessage(_ref) { var error = _ref.error, warning = _ref.warning, helpInline = _ref.helpInline; if (!error && !warning && !helpInline) { return null; } return /*#__PURE__*/_react["default"].createElement(_patternflyReact.HelpBlock, { className: (0, _classnames["default"])('help-inline', { 'error-message': !!error, 'warning-message': !!warning }) }, error && /*#__PURE__*/_react["default"].createElement(_reactIcons.ErrorCircleOIcon, { className: "error-icon" }), !error && warning && /*#__PURE__*/_react["default"].createElement(_reactIcons.WarningTriangleIcon, { className: "warning-icon" }), error || warning || helpInline); }; InlineMessage.propTypes = { error: _propTypes["default"].string, warning: _propTypes["default"].string, helpInline: _propTypes["default"].string }; InlineMessage.defaultProps = { error: null, warning: null, helpInline: null }; var FormField = function FormField(_ref2) { var type = _ref2.type, id = _ref2.id, name = _ref2.name, className = _ref2.className, disabled = _ref2.disabled, required = _ref2.required, error = _ref2.error, value = _ref2.value, label = _ref2.label, labelHelp = _ref2.labelHelp, helpInline = _ref2.helpInline, labelSizeClass = _ref2.labelSizeClass, inputSizeClass = _ref2.inputSizeClass, onChange = _ref2.onChange, children = _ref2.children, inputProps = _ref2.inputProps, otherProps = _objectWithoutProperties(_ref2, _excluded); var _useState = (0, _react.useState)(error), _useState2 = _slicedToArray(_useState, 2), innerError = _useState2[0], setError = _useState2[1]; var _useState3 = (0, _react.useState)(null), _useState4 = _slicedToArray(_useState3, 2), innerWarning = _useState4[0], setWarning = _useState4[1]; var controlProps = _objectSpread(_objectSpread({ value: value, name: name, disabled: disabled, required: required, className: className, onChange: onChange, setError: setError, setWarning: setWarning }, otherProps), inputProps); var validationState = null; if (innerWarning) validationState = 'warning'; if (innerError) validationState = 'error'; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormGroup, { controlId: id, disabled: disabled, validationState: validationState }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.ControlLabel, { className: labelSizeClass }, label, required ? '*' : null, labelHelp && /*#__PURE__*/_react["default"].createElement(_patternflyReact.FieldLevelHelp, { placement: "right", buttonClass: "field-help", content: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, labelHelp) })), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { className: inputSizeClass }, children || /*#__PURE__*/_react["default"].createElement(_InputFactory["default"], _extends({ type: type }, controlProps))), /*#__PURE__*/_react["default"].createElement(InlineMessage, { error: innerError, warning: innerWarning, helpInline: helpInline })); }; FormField.propTypes = { type: _propTypes["default"].string, id: _propTypes["default"].string, name: _propTypes["default"].string, value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number, _propTypes["default"].instanceOf(Date), _propTypes["default"].array, _propTypes["default"].bool]), className: _propTypes["default"].string, label: _propTypes["default"].string, labelHelp: _propTypes["default"].string, required: _propTypes["default"].bool, disabled: _propTypes["default"].bool, error: _propTypes["default"].string, helpInline: _propTypes["default"].string, inputSizeClass: _propTypes["default"].string, labelSizeClass: _propTypes["default"].string, onChange: _propTypes["default"].func, children: _propTypes["default"].element, inputProps: _propTypes["default"].object }; FormField.defaultProps = { type: 'text', id: null, name: undefined, value: undefined, className: '', label: '', labelHelp: null, required: false, disabled: false, error: null, helpInline: null, inputSizeClass: 'col-md-4', labelSizeClass: 'col-md-2', onChange: _helpers.noop, children: null, inputProps: null }; var _default = FormField; exports["default"] = _default; /***/ }), /* 519 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactDnd = __webpack_require__(70); var _reactDndHtml5Backend = _interopRequireDefault(__webpack_require__(196)); var _OrderableSelect = _interopRequireDefault(__webpack_require__(520)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = function _default(props) { return /*#__PURE__*/_react["default"].createElement(_reactDnd.DndProvider, { backend: _reactDndHtml5Backend["default"] }, /*#__PURE__*/_react["default"].createElement(_OrderableSelect["default"], props)); }; exports["default"] = _default; /***/ }), /* 520 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _lodash = __webpack_require__(10); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(3); var _helpers2 = __webpack_require__(180); var _OrderableSelectHooks = __webpack_require__(521); var _OrderableToken = _interopRequireDefault(__webpack_require__(522)); var _excluded = ["className", "onChange", "defaultValue", "value", "options", "name"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } /** * Wraps TypeAheadSelect with an Orderable HOC. * Presumes to be wrapped in a DndProvider context. * The value can not be changed through props once the component is rendered. */ var OrderableSelect = function OrderableSelect(_ref) { var className = _ref.className, _onChange = _ref.onChange, defaultValue = _ref.defaultValue, value = _ref.value, options = _ref.options, name = _ref.name, props = _objectWithoutProperties(_ref, _excluded); var _useInternalValue = (0, _OrderableSelectHooks.useInternalValue)(value || defaultValue, options), _useInternalValue2 = _slicedToArray(_useInternalValue, 2), internalValue = _useInternalValue2[0], setInternalValue = _useInternalValue2[1]; var moveDraggedOption = function moveDraggedOption(dragIndex, hoverIndex) { setInternalValue((0, _helpers2.orderDragged)(internalValue, dragIndex, hoverIndex)); }; // hack the form-control, which is already in TypeAhead so it would be duplicated var classesWithoutFormControl = className && className.split(/\s+/).filter(function (el) { return el !== 'form-control'; }).join(' '); return /*#__PURE__*/_react["default"].createElement(_patternflyReact.TypeAheadSelect, _extends({ multiple: true, renderToken: function renderToken(option, tokenProps, idx) { return /*#__PURE__*/_react["default"].createElement("div", { id: "".concat(props.id || 'selectValue', "-").concat(option.value), style: { display: 'inline-block' }, key: option.value }, /*#__PURE__*/_react["default"].createElement(_OrderableToken["default"], _extends({ data: (0, _lodash.set)(option, 'index', idx), moveDraggedOption: moveDraggedOption }, tokenProps)), name && /*#__PURE__*/_react["default"].createElement("input", { type: "hidden", name: name, value: option.value })); } }, props, { className: classesWithoutFormControl, options: options, selected: internalValue, onChange: function onChange(newValue) { setInternalValue(newValue); _onChange(newValue); } })); }; OrderableSelect.propTypes = { options: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired, id: _propTypes["default"].string.isRequired, name: _propTypes["default"].string, onChange: _propTypes["default"].func, defaultValue: _propTypes["default"].array, value: _propTypes["default"].array, className: _propTypes["default"].string }; OrderableSelect.defaultProps = { onChange: _helpers.noop, defaultValue: [], value: null, name: null, className: '' }; var _default = OrderableSelect; exports["default"] = _default; /***/ }), /* 521 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useInternalValue = void 0; var _react = __webpack_require__(0); var useInternalValue = function useInternalValue(value, options) { var defaultVal = value.map(function (v) { return options.find(function (opt) { return opt.value === v; }); }).filter(function (v) { return !!v; }); return (0, _react.useState)(defaultVal); }; exports.useInternalValue = useInternalValue; /***/ }), /* 522 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _helpers = __webpack_require__(180); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var orderConfig = { type: 'multiValue', getItem: function getItem(props) { return { value: props.data.value }; }, getIndex: function getIndex(props) { return props.data.index; }, getMoveFnc: function getMoveFnc(props) { return props.moveDraggedOption; } }; var OrderableToken = function OrderableToken(_ref) { var isDragging = _ref.isDragging, moveDraggedOption = _ref.moveDraggedOption, data = _ref.data, disabled = _ref.disabled, onRemove = _ref.onRemove, tabIndex = _ref.tabIndex, labelKey = _ref.labelKey; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.TypeAheadSelect.Token, { disabled: disabled, onRemove: onRemove, tabIndex: tabIndex }, data[labelKey]); }; OrderableToken.propTypes = { isDragging: _propTypes["default"].bool.isRequired, moveDraggedOption: _propTypes["default"].func.isRequired, data: _propTypes["default"].object.isRequired, labelKey: _propTypes["default"].string.isRequired, disabled: _propTypes["default"].bool, tabIndex: _propTypes["default"].number, onRemove: _propTypes["default"].func }; OrderableToken.defaultProps = { disabled: false, tabIndex: -1, onRemove: undefined }; var _default = (0, _helpers.orderable)(OrderableToken, orderConfig); exports["default"] = _default; /***/ }), /* 523 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _MemoryAllocationInput = _interopRequireDefault(__webpack_require__(524)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = _MemoryAllocationInput["default"]; exports["default"] = _default; /***/ }), /* 524 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _rcInputNumber = _interopRequireDefault(__webpack_require__(95)); var _react = _interopRequireWildcard(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _constants = __webpack_require__(525); __webpack_require__(181); var _helpers = __webpack_require__(3); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var MemoryAllocationInput = function MemoryAllocationInput(_ref) { var value = _ref.value, onChange = _ref.onChange, maxValue = _ref.maxValue, minValue = _ref.minValue, recommendedMaxValue = _ref.recommendedMaxValue, name = _ref.name, id = _ref.id, disabled = _ref.disabled, setError = _ref.setError, setWarning = _ref.setWarning; var _useState = (0, _react.useState)(value / _constants.MEGABYTES), _useState2 = _slicedToArray(_useState, 2), valueMB = _useState2[0], setValueMB = _useState2[1]; (0, _react.useEffect)(function () { var valueBytes = valueMB * _constants.MEGABYTES; if (maxValue && valueBytes > maxValue) { setWarning(null); setError((0, _I18n.sprintf)((0, _I18n.translate)('Specified value is higher than maximum value %s'), "".concat(maxValue / _constants.MEGABYTES, " ").concat(_constants.MB_FORMAT))); } else if (recommendedMaxValue && valueBytes > recommendedMaxValue) { setError(null); setWarning((0, _I18n.sprintf)((0, _I18n.translate)('Specified value is higher than recommended maximum %s'), "".concat(recommendedMaxValue / _constants.MEGABYTES, " ").concat(_constants.MB_FORMAT))); } else { setWarning(null); } }, [valueMB, recommendedMaxValue, maxValue, setError, setWarning]); var handleChange = function handleChange(v) { if (v === valueMB + 1) { v = valueMB * 2; } else if (v === valueMB - 1) { v = Math.floor(valueMB / 2); } setValueMB(v); onChange(v * _constants.MEGABYTES); }; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_rcInputNumber["default"], { value: valueMB, id: id, formatter: function formatter(v) { return "".concat(v, " ").concat(_constants.MB_FORMAT); }, parser: function parser(str) { return str.replace(/\D/g, ''); }, onChange: handleChange, disabled: disabled, min: minValue && minValue / _constants.MEGABYTES, step: 1, precision: 0, name: "", prefixCls: "foreman-numeric-input" }), /*#__PURE__*/_react["default"].createElement("input", { type: "hidden", name: name, value: valueMB * _constants.MEGABYTES })); }; MemoryAllocationInput.propTypes = { /** Set the default value of the memory allocation input */ value: _propTypes["default"].number, /** Set the recommended max value of the numeric input */ recommendedMaxValue: _propTypes["default"].number, /** Set the max value of the numeric input */ maxValue: _propTypes["default"].number, /** Set the min value of the numeric input */ minValue: _propTypes["default"].number, /** Set the onChange function of the numeric input */ onChange: _propTypes["default"].func, /** Set the name of the input holding the value in bytes */ name: _propTypes["default"].string, /** Set the id of the numeric input */ id: _propTypes["default"].string, /** Set whether the numeric input will be disabled or not */ disabled: _propTypes["default"].bool, /** Component passes the validation error to this function */ setError: _propTypes["default"].func, /** Component passes the validation warning to this function */ setWarning: _propTypes["default"].func }; MemoryAllocationInput.defaultProps = { value: 2048 * _constants.MEGABYTES, onChange: _helpers.noop, recommendedMaxValue: null, maxValue: null, minValue: 1, name: '', id: '', disabled: false, setError: _helpers.noop, setWarning: _helpers.noop }; var _default = MemoryAllocationInput; exports["default"] = _default; /***/ }), /* 525 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MEGABYTES = exports.MB_FORMAT = void 0; var MB_FORMAT = 'MB'; exports.MB_FORMAT = MB_FORMAT; var MEGABYTES = 1048576; exports.MEGABYTES = MEGABYTES; /***/ }), /* 526 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _CounterInput = _interopRequireDefault(__webpack_require__(527)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var _default = _CounterInput["default"]; exports["default"] = _default; /***/ }), /* 527 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(__webpack_require__(0)); var _rcInputNumber = _interopRequireDefault(__webpack_require__(95)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var CounterInput = function CounterInput(_ref) { var id = _ref.id, name = _ref.name, value = _ref.value, disabled = _ref.disabled, step = _ref.step, min = _ref.min, max = _ref.max, recommendedMaxValue = _ref.recommendedMaxValue, onChange = _ref.onChange, setError = _ref.setError, setWarning = _ref.setWarning; var _useState = (0, _react.useState)(value), _useState2 = _slicedToArray(_useState, 2), innerValue = _useState2[0], setInnerValue = _useState2[1]; (0, _react.useEffect)(function () { if (max && innerValue > max) { setWarning(null); setError((0, _I18n.translate)('Specified value is higher than maximum value')); } else if (recommendedMaxValue && innerValue > recommendedMaxValue) { setError(null); setWarning((0, _I18n.translate)('Specified value is higher than recommended maximum')); } else { setError(null); setWarning(null); } }, [recommendedMaxValue, max, innerValue]); var handleChange = function handleChange(v) { setInnerValue(v); onChange(v); }; return /*#__PURE__*/_react["default"].createElement(_rcInputNumber["default"], { value: innerValue, name: name, id: id, min: min, disabled: disabled, onChange: handleChange, step: step, prefixCls: "foreman-numeric-input" }); }; CounterInput.propTypes = { /** Set the name of the numeric input */ name: _propTypes["default"].string, /** Set the id of the numeric input */ id: _propTypes["default"].string, /** Set the recommended max value of the numeric input */ recommendedMaxValue: _propTypes["default"].number, /** Set the max value of the numeric input */ max: _propTypes["default"].number, /** Set the min value of the numeric input */ min: _propTypes["default"].number, /** Set whether the numeric input will be disabled or not */ disabled: _propTypes["default"].bool, /** Set the onChange function of the numeric input */ onChange: _propTypes["default"].func, /** Set the default value of the numeric input */ value: _propTypes["default"].number, /** Set the step, the counter will increase and decrease by */ step: _propTypes["default"].number, /** Component passes the validation error to this function */ setError: _propTypes["default"].func, /** Component passes the validation warning to this function */ setWarning: _propTypes["default"].func }; CounterInput.defaultProps = { name: '', id: '', disabled: false, value: 1, step: 1, min: 1, max: null, recommendedMaxValue: null, onChange: _helpers.noop, setError: _helpers.noop, setWarning: _helpers.noop }; var _default = CounterInput; exports["default"] = _default; /***/ }), /* 528 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _TimeInput = _interopRequireDefault(__webpack_require__(165)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var TimePicker = /*#__PURE__*/function (_React$Component) { _inherits(TimePicker, _React$Component); var _super = _createSuper(TimePicker); function TimePicker() { var _this; _classCallCheck(this, TimePicker); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); _defineProperty(_assertThisInitialized(_this), "getDateFromTime", function (time) { if (Date.parse(time)) { return new Date(time); } return new Date("1/1/1 ".concat(time)); }); _defineProperty(_assertThisInitialized(_this), "state", { value: _this.getDateFromTime(_this.props.value) }); _defineProperty(_assertThisInitialized(_this), "formatDate", function () { var locale = _this.props.locale; var value = _this.state.value; var options = { hour: 'numeric', minute: 'numeric' }; return value.toLocaleString(locale, options); }); _defineProperty(_assertThisInitialized(_this), "setSelected", function (date) { if (Date.parse(date)) { var newDate = new Date(date); _this.setState({ value: newDate }); } else if (Date.parse("1/1/1 ".concat(date))) { var _newDate = new Date("1/1/1 ".concat(date)); _this.setState({ value: _newDate }); } }); return _this; } _createClass(TimePicker, [{ key: "render", value: function render() { var _this2 = this; var locale = this.props.locale; var popover = /*#__PURE__*/_react["default"].createElement(_patternflyReact.Popover, { id: "popover-date-picker", className: "bootstrap-datetimepicker-widget dropdown-menu" }, /*#__PURE__*/_react["default"].createElement("ul", { className: "list-unstyled" }, /*#__PURE__*/_react["default"].createElement("li", { className: "picker-switch accordion-toggle" }, /*#__PURE__*/_react["default"].createElement("table", { className: "table-condensed" }, /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement("tr", null)))), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement(_TimeInput["default"], { time: this.state.value, setSelected: this.setSelected, locale: locale })))); return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { trigger: "click", placement: "top", overlay: popover, rootClose: true }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.InputGroup, { className: "input-group date-time-picker-pf" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, { "aria-label": "date-time-picker-input", type: "text", value: this.formatDate(), onChange: function onChange(e) { return _this2.setSelected(e.target.value); } }), /*#__PURE__*/_react["default"].createElement(_patternflyReact.InputGroup.Addon, { className: "date-picker-pf" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Icon, { type: "fa", name: "clock-o" }))))); } }]); return TimePicker; }(_react["default"].Component); TimePicker.propTypes = { value: _propTypes["default"].oneOfType([_propTypes["default"].instanceOf(Date), _propTypes["default"].string]), locale: _propTypes["default"].string }; TimePicker.defaultProps = { value: new Date(), locale: 'en-US' }; var _default = TimePicker; exports["default"] = _default; /***/ }), /* 529 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.controllersToJsonString = void 0; var _lodash = __webpack_require__(10); var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _controller = _interopRequireDefault(__webpack_require__(530)); var VmWareActions = _interopRequireWildcard(__webpack_require__(195)); var _StorageContainer = __webpack_require__(537); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); var _AlertBody = _interopRequireDefault(__webpack_require__(78)); __webpack_require__(538); var _constants = __webpack_require__(7); var _excluded = ["key"]; function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var filterKeyFromVolume = function filterKeyFromVolume(volume) { // eslint-disable-next-line no-unused-vars var key = volume.key, volumeWithoutKey = _objectWithoutProperties(volume, _excluded); return volumeWithoutKey; }; var controllersToJsonString = function controllersToJsonString(controllers, volumes) { return JSON.stringify({ scsiControllers: controllers, volumes: volumes.map(function (v) { return filterKeyFromVolume(v); }) }); }; exports.controllersToJsonString = controllersToJsonString; var StorageContainer = /*#__PURE__*/function (_React$Component) { _inherits(StorageContainer, _React$Component); var _super = _createSuper(StorageContainer); function StorageContainer() { _classCallCheck(this, StorageContainer); return _super.apply(this, arguments); } _createClass(StorageContainer, [{ key: "componentDidMount", value: function componentDidMount() { var _this$props = this.props, _this$props$data = _this$props.data, config = _this$props$data.config, controllers = _this$props$data.controllers, volumes = _this$props$data.volumes, cluster = _this$props$data.cluster, initController = _this$props.initController; initController(config, cluster, controllers, volumes); } }, { key: "getDatastoresStatus", value: function getDatastoresStatus() { var _this$props2 = this.props, datastoresLoading = _this$props2.datastoresLoading, datastoresError = _this$props2.datastoresError; if (datastoresError) { return _constants.STATUS.ERROR; } if (datastoresLoading) { return _constants.STATUS.PENDING; } return _constants.STATUS.RESOLVED; } }, { key: "getStoragePodsStatus", value: function getStoragePodsStatus() { var _this$props3 = this.props, storagePodsLoading = _this$props3.storagePodsLoading, storagePodsError = _this$props3.storagePodsError; if (storagePodsError) { return _constants.STATUS.ERROR; } if (storagePodsLoading) { return _constants.STATUS.PENDING; } return _constants.STATUS.RESOLVED; } }, { key: "renderControllers", value: function renderControllers(controllers) { var _this = this; var _this$props4 = this.props, _addDisk = _this$props4.addDisk, _updateController = _this$props4.updateController, removeDisk = _this$props4.removeDisk, updateDisk = _this$props4.updateDisk, _removeController = _this$props4.removeController, config = _this$props4.config, volumes = _this$props4.volumes, datastores = _this$props4.datastores, datastoresError = _this$props4.datastoresError, storagePods = _this$props4.storagePods, storagePodsError = _this$props4.storagePodsError; return controllers.map(function (controller, idx) { var controllerVolumes = volumes.filter(function (v) { return v.controllerKey === controller.key; }); return /*#__PURE__*/_react["default"].createElement(_controller["default"], { key: controller.key, removeController: function removeController() { return _removeController(controller.key); }, controller: controller, controllerVolumes: controllerVolumes, addDiskEnabled: controllerVolumes.length < _StorageContainer.MaxDisksPerController, addDisk: function addDisk() { return _addDisk(controller.key); }, updateDisk: updateDisk, removeDisk: removeDisk, updateController: function updateController(newValues) { return _updateController(idx, newValues); }, config: config, datastores: datastores, datastoresError: datastoresError, datastoresStatus: _this.getDatastoresStatus(), storagePods: storagePods, storagePodsError: storagePodsError, storagePodsStatus: _this.getStoragePodsStatus() }); }); } }, { key: "render", value: function render() { var _this$props5 = this.props, addController = _this$props5.addController, controllers = _this$props5.controllers, volumes = _this$props5.volumes, cluster = _this$props5.cluster, config = _this$props5.config; var paramsScope = config && config.paramsScope; var enableAddControllerBtn = config && config.addControllerEnabled && !config.vmExists; if (!cluster) { return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Alert, { type: "info" }, /*#__PURE__*/_react["default"].createElement(_AlertBody["default"], { message: (0, _I18n.translate)('Please select a cluster') })); } return /*#__PURE__*/_react["default"].createElement("div", { className: "row vmware-storage-container" }, /*#__PURE__*/_react["default"].createElement("div", { className: "storage-header" }, /*#__PURE__*/_react["default"].createElement("div", { className: "col-md-2 storage-title" }, (0, _I18n.translate)('Storage')), /*#__PURE__*/_react["default"].createElement("div", { className: "col-md-10 storage-controller-buttons" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "btn-add-controller", onClick: function onClick() { return addController(); }, disabled: !enableAddControllerBtn, bsStyle: "primary" }, (0, _I18n.translate)('Add Controller')))), /*#__PURE__*/_react["default"].createElement("div", { className: "storage-body" }, this.renderControllers(controllers), /*#__PURE__*/_react["default"].createElement("input", { value: controllersToJsonString(controllers, volumes), id: "scsi_controller_hidden", name: paramsScope, type: "hidden" }))); } }]); return StorageContainer; }(_react["default"].Component); StorageContainer.propTypes = { data: _propTypes["default"].shape({ config: _propTypes["default"].object.isRequired, controllers: _propTypes["default"].array.isRequired, volumes: _propTypes["default"].array.isRequired, cluster: _propTypes["default"].string }).isRequired, controllers: _propTypes["default"].array.isRequired, config: _propTypes["default"].object, volumes: _propTypes["default"].array, cluster: _propTypes["default"].string, datastoresLoading: _propTypes["default"].bool, datastores: _propTypes["default"].arrayOf(_propTypes["default"].shape({ id: _propTypes["default"].string, name: _propTypes["default"].string, capacity: _propTypes["default"].number, freespace: _propTypes["default"].number, uncommitted: _propTypes["default"].number })), datastoresError: _propTypes["default"].string, storagePodsLoading: _propTypes["default"].bool, storagePods: _propTypes["default"].arrayOf(_propTypes["default"].shape({ id: _propTypes["default"].string, name: _propTypes["default"].string, capacity: _propTypes["default"].number, freespace: _propTypes["default"].number })), storagePodsError: _propTypes["default"].string, addController: _propTypes["default"].func, addDisk: _propTypes["default"].func, updateController: _propTypes["default"].func, removeDisk: _propTypes["default"].func, updateDisk: _propTypes["default"].func, removeController: _propTypes["default"].func, initController: _propTypes["default"].func }; StorageContainer.defaultProps = { config: {}, cluster: '', volumes: [], datastoresLoading: false, storagePodsLoading: false, datastores: [], storagePods: [], datastoresError: undefined, storagePodsError: undefined, addController: _helpers.noop, addDisk: _helpers.noop, updateController: _helpers.noop, removeDisk: _helpers.noop, updateDisk: _helpers.noop, removeController: _helpers.noop, initController: _helpers.noop }; var mapStateToProps = function mapStateToProps(state) { return (0, _lodash.pick)(state.hosts.storage.vmware, ['controllers', 'config', 'cluster', 'volumes', 'datastores', 'datastoresLoading', 'datastoresError', 'storagePods', 'storagePodsLoading', 'storagePodsError']); }; var _default = (0, _reactRedux.connect)(mapStateToProps, VmWareActions)(StorageContainer); exports["default"] = _default; /***/ }), /* 530 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _patternflyReact = __webpack_require__(4); var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _number_helpers = __webpack_require__(531); var _Select = _interopRequireDefault(__webpack_require__(96)); var _disk = _interopRequireDefault(__webpack_require__(532)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); __webpack_require__(536); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /* eslint-disable camelcase, no-mixed-operators, no-param-reassign */ var Controller = function Controller(_ref) { var addDiskEnabled = _ref.addDiskEnabled, addDisk = _ref.addDisk, _removeDisk = _ref.removeDisk, updateController = _ref.updateController, updateDisk = _ref.updateDisk, controller = _ref.controller, controllerVolumes = _ref.controllerVolumes, removeController = _ref.removeController, config = _ref.config, datastores = _ref.datastores, datastoresStatus = _ref.datastoresStatus, datastoresError = _ref.datastoresError, storagePods = _ref.storagePods, storagePodsStatus = _ref.storagePodsStatus, storagePodsError = _ref.storagePodsError; var getEventValue = function getEventValue(e) { if (!e || !e.target) { return e; } return e.target.type === 'checkbox' ? e.target.checked : e.target.value; }; var _updateController = function _updateController(attribute, e) { updateController(_defineProperty({}, attribute, getEventValue(e))); }; var _updateDisk = function _updateDisk(uuid, attribute, e) { updateDisk(uuid, _defineProperty({}, attribute, getEventValue(e))); }; var humanSize = function humanSize(number) { return (0, _number_helpers.number_to_human_size)(number, { precision: 2 }); }; var datastoresStats = function datastoresStats() { if (!datastores.length) { return {}; } return datastores.reduce(function (obj, d) { obj[d.name] = (0, _I18n.sprintf)((0, _I18n.translate)('%(name)s (free: %(free)s, prov: %(prov)s, total: %(total)s)'), { name: d.name, free: humanSize(d.freespace), prov: humanSize(d.capacity + (d.uncommitted || 0) - d.freespace), total: humanSize(d.capacity) }); return obj; }, {}); }; var storagePodsStats = function storagePodsStats() { if (!storagePods.length) { return {}; } return storagePods.reduce(function (obj, s) { obj[s.name] = (0, _I18n.sprintf)((0, _I18n.translate)('%(name)s (free: %(free)s, prov: %(prov)s, total: %(total)s)'), { name: s.name, free: humanSize(s.freespace), prov: humanSize(s.capacity - s.freespace), total: humanSize(s.capacity) }); return obj; }, {}); }; var disks = function disks() { return controllerVolumes.map(function (disk) { return /*#__PURE__*/_react["default"].createElement(_disk["default"], _extends({ key: disk.key, id: disk.key, updateDisk: function updateDisk(attribute, e) { return _updateDisk(disk.key, attribute, e); }, removeDisk: function removeDisk() { return _removeDisk(disk.key); }, config: config, datastores: datastoresStats(), datastoresStatus: datastoresStatus, datastoresError: datastoresError, storagePods: storagePodsStats(), storagePodsStatus: storagePodsStatus, storagePodsError: storagePodsError }, disk)); }); }; return /*#__PURE__*/_react["default"].createElement("div", { className: "controller-container" }, /*#__PURE__*/_react["default"].createElement("div", { className: "controller-header" }, /*#__PURE__*/_react["default"].createElement("div", { className: "control-label col-md-2 controller-selected-container" }, /*#__PURE__*/_react["default"].createElement("label", null, (0, _I18n.translate)('Create SCSI controller'))), /*#__PURE__*/_react["default"].createElement("div", { className: "controller-type-container col-md-4" }, /*#__PURE__*/_react["default"].createElement(_Select["default"], { value: controller.type, disabled: config.vmExists, onChange: function onChange(e) { return _updateController('type', e); }, options: config.controllerTypes }), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "btn-add-disk", disabled: !addDiskEnabled || config.vmExists, onClick: addDisk }, (0, _I18n.translate)('Add volume'))), /*#__PURE__*/_react["default"].createElement("div", { className: "delete-controller-container" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "btn-remove-controller", onClick: removeController, disabled: config.vmExists }, (0, _I18n.translate)('Delete Controller')))), /*#__PURE__*/_react["default"].createElement("div", { className: "disks-container" }, disks())); }; Controller.propTypes = { config: _propTypes["default"].object.isRequired, controller: _propTypes["default"].object.isRequired, addDiskEnabled: _propTypes["default"].bool, controllerVolumes: _propTypes["default"].array, datastores: _propTypes["default"].arrayOf(_propTypes["default"].exact({ id: _propTypes["default"].string, name: _propTypes["default"].string, capacity: _propTypes["default"].number, freespace: _propTypes["default"].number, uncommitted: _propTypes["default"].number })), datastoresStatus: _propTypes["default"].string, datastoresError: _propTypes["default"].string, storagePods: _propTypes["default"].arrayOf(_propTypes["default"].exact({ id: _propTypes["default"].string, name: _propTypes["default"].string, capacity: _propTypes["default"].number, freespace: _propTypes["default"].number })), storagePodsStatus: _propTypes["default"].string, storagePodsError: _propTypes["default"].string, addDisk: _propTypes["default"].func, removeDisk: _propTypes["default"].func, updateController: _propTypes["default"].func, updateDisk: _propTypes["default"].func, removeController: _propTypes["default"].func }; Controller.defaultProps = { addDiskEnabled: false, controllerVolumes: [], datastores: [], datastoresStatus: undefined, datastoresError: undefined, storagePods: [], storagePodsStatus: undefined, storagePodsError: undefined, addDisk: _helpers.noop, removeDisk: _helpers.noop, updateController: _helpers.noop, updateDisk: _helpers.noop, removeController: _helpers.noop }; var _default = Controller; exports["default"] = _default; /***/ }), /* 531 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__NUMBER_HELPERS__; /***/ }), /* 532 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _Select = _interopRequireDefault(__webpack_require__(96)); var _Checkbox = _interopRequireDefault(__webpack_require__(533)); var _NumericInput = _interopRequireDefault(__webpack_require__(534)); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); __webpack_require__(535); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Disk = function Disk(_ref) { var removeDisk = _ref.removeDisk, updateDisk = _ref.updateDisk, name = _ref.name, _ref$config = _ref.config, diskModeTypes = _ref$config.diskModeTypes, vmExists = _ref$config.vmExists, storagePod = _ref.storagePod, datastore = _ref.datastore, sizeGb = _ref.sizeGb, thin = _ref.thin, eagerZero = _ref.eagerZero, mode = _ref.mode, datastores = _ref.datastores, datastoresStatus = _ref.datastoresStatus, datastoresError = _ref.datastoresError, storagePods = _ref.storagePods, storagePodsStatus = _ref.storagePodsStatus, storagePodsError = _ref.storagePodsError; var updateStoragePod = function updateStoragePod(newValues) { updateDisk('storagePod', newValues); updateDisk('datastore', { target: { value: null } }); }; var updateDatastore = function updateDatastore(newValues) { updateDisk('datastore', newValues); updateDisk('storagePod', { target: { value: null } }); }; return /*#__PURE__*/_react["default"].createElement("div", { className: "disk-container" }, /*#__PURE__*/_react["default"].createElement("div", { className: "form-group" }, /*#__PURE__*/_react["default"].createElement("label", { className: "col-md-2 control-label" }, (0, _I18n.translate)('Disk name')), /*#__PURE__*/_react["default"].createElement("div", { className: "col-md-4" }, name), /*#__PURE__*/_react["default"].createElement("div", { className: "col-md-2" }, !vmExists && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { className: "close", onClick: removeDisk }, /*#__PURE__*/_react["default"].createElement("span", { "aria-hidden": "true" }, "\xD7")))), !(datastore && datastore.length) && /*#__PURE__*/_react["default"].createElement(_Select["default"], { label: (0, _I18n.translate)('Storage Pod'), value: storagePod, disabled: vmExists, onChange: function onChange(newValues) { return updateStoragePod(newValues); }, options: storagePods, allowClear: true, key: "storagePodsSelect", status: storagePodsStatus, errorMessage: storagePodsError, className: "storage-pod" }), !(storagePod && storagePod.length) && /*#__PURE__*/_react["default"].createElement(_Select["default"], { disabled: vmExists, label: (0, _I18n.translate)('Data store'), value: datastore, onChange: function onChange(newValues) { return updateDatastore(newValues); }, options: datastores, allowClear: true, key: "datastoresSelect", status: datastoresStatus, errorMessage: datastoresError, className: "datastore" }), /*#__PURE__*/_react["default"].createElement(_Select["default"], { label: (0, _I18n.translate)('Disk Mode'), value: mode, disabled: vmExists, onChange: function onChange(newValues) { return updateDisk('mode', newValues); }, options: diskModeTypes }), /*#__PURE__*/_react["default"].createElement(_NumericInput["default"], { value: sizeGb, minValue: 1, format: function format(v) { return "".concat(v, " GB"); }, parser: function parser(str) { return str.replace(/\D/g, ''); }, className: "text-vmware-size", onChange: function onChange(newValues) { return updateDisk('sizeGb', newValues); }, label: (0, _I18n.translate)('Size (GB)') }), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], { label: (0, _I18n.translate)('Thin provision'), checked: thin, disabled: vmExists || eagerZero, onChange: function onChange(newValues) { updateDisk('thin', newValues); newValues && updateDisk('eagerZero', false); } }), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], { label: (0, _I18n.translate)('Eager zero'), checked: eagerZero, disabled: vmExists || thin, onChange: function onChange(newValues) { updateDisk('eagerZero', newValues); newValues && updateDisk('thin', false); } })); }; Disk.propTypes = { config: _propTypes["default"].shape({ diskModeTypes: _propTypes["default"].object, vmExists: _propTypes["default"].bool }).isRequired, name: _propTypes["default"].string, storagePod: _propTypes["default"].string, datastore: _propTypes["default"].string, sizeGb: _propTypes["default"].number, thin: _propTypes["default"].bool, eagerZero: _propTypes["default"].bool, mode: _propTypes["default"].string, datastores: _propTypes["default"].object, datastoresStatus: _propTypes["default"].string, datastoresError: _propTypes["default"].string, storagePods: _propTypes["default"].object, storagePodsStatus: _propTypes["default"].string, storagePodsError: _propTypes["default"].string, removeDisk: _propTypes["default"].func, updateDisk: _propTypes["default"].func }; Disk.defaultProps = { name: '', storagePod: '', datastore: '', sizeGb: null, thin: false, eagerZero: false, mode: '', datastores: {}, datastoresStatus: undefined, datastoresError: undefined, storagePods: {}, storagePodsStatus: undefined, storagePodsError: undefined, removeDisk: _helpers.noop, updateDisk: _helpers.noop }; var _default = Disk; exports["default"] = _default; /***/ }), /* 533 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); var _CommonForm = _interopRequireDefault(__webpack_require__(34)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var Checkbox = function Checkbox(_ref) { var className = _ref.className, checked = _ref.checked, onChange = _ref.onChange, label = _ref.label, disabled = _ref.disabled; return /*#__PURE__*/_react["default"].createElement(_CommonForm["default"], { label: label, className: "common-checkbox ".concat(className) }, /*#__PURE__*/_react["default"].createElement("input", { disabled: disabled, type: "checkbox", checked: checked, onChange: onChange })); }; Checkbox.propTypes = { className: _propTypes["default"].string, checked: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].bool]), label: _propTypes["default"].string, disabled: _propTypes["default"].bool, onChange: _propTypes["default"].func }; Checkbox.defaultProps = { className: '', checked: false, label: '', disabled: false, onChange: _helpers.noop }; var _default = Checkbox; exports["default"] = _default; /***/ }), /* 534 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _rcInputNumber = _interopRequireDefault(__webpack_require__(95)); var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); __webpack_require__(181); var _helpers = __webpack_require__(3); var _CommonForm = _interopRequireDefault(__webpack_require__(34)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var NumericInput = function NumericInput(_ref) { var label = _ref.label, className = _ref.className, value = _ref.value, onChange = _ref.onChange, format = _ref.format, parser = _ref.parser, step = _ref.step, precision = _ref.precision, minValue = _ref.minValue, disabled = _ref.disabled, readOnly = _ref.readOnly, name = _ref.name, id = _ref.id; return /*#__PURE__*/_react["default"].createElement(_CommonForm["default"], { label: label, className: className }, /*#__PURE__*/_react["default"].createElement(_rcInputNumber["default"], { formatter: format, parser: parser, step: step, min: minValue, value: value, precision: precision, onChange: onChange, disabled: disabled, readOnly: readOnly, prefixCls: "foreman-numeric-input", name: name, id: id })); }; NumericInput.propTypes = { label: _propTypes["default"].string, className: _propTypes["default"].string, name: _propTypes["default"].string, id: _propTypes["default"].string, value: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]), format: _propTypes["default"].func, parser: _propTypes["default"].func, step: _propTypes["default"].number, precision: _propTypes["default"].number, minValue: _propTypes["default"].number, disabled: _propTypes["default"].bool, onChange: _propTypes["default"].func, readOnly: _propTypes["default"].bool }; NumericInput.defaultProps = { label: '', className: '', name: '', id: '', value: 0, format: null, parser: undefined, step: 1, disabled: false, precision: 0, minValue: 0, onChange: _helpers.noop, readOnly: false }; var _default = NumericInput; exports["default"] = _default; /***/ }), /* 535 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 536 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 537 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MaxDisksPerController = void 0; var MaxDisksPerController = 15; exports.MaxDisksPerController = MaxDisksPerController; /***/ }), /* 538 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 539 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _API = __webpack_require__(8); var _FactChart = _interopRequireDefault(__webpack_require__(540)); var _slice = __webpack_require__(125); var _selectors = __webpack_require__(542); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ConnectedFactChart = function ConnectedFactChart(_ref) { var id = _ref.id, path = _ref.path, title = _ref.title, search = _ref.search; var key = "FACT_CHART_".concat(id); var hostsCount = (0, _reactRedux.useSelector)(function (state) { return (0, _selectors.selectHostCount)(state, key); }); var status = (0, _reactRedux.useSelector)(function (state) { return (0, _selectors.selectFactChartStatus)(state, key); }); var chartData = (0, _reactRedux.useSelector)(function (state) { return (0, _selectors.selectFactChartData)(state, key); }); var modalToDisplay = (0, _reactRedux.useSelector)(function (state) { return (0, _selectors.selectDisplayModal)(state, id); }); var dispatch = (0, _reactRedux.useDispatch)(); var dispatchCloseModal = function dispatchCloseModal() { return dispatch((0, _slice.closeModal)()); }; var dispatchOpenModal = function dispatchOpenModal() { dispatch((0, _API.get)({ key: key, url: path })); dispatch((0, _slice.openModal)({ id: id, title: title })); }; return /*#__PURE__*/_react["default"].createElement(_FactChart["default"], { id: id, title: title, search: search, status: status, hostsCount: hostsCount, chartData: chartData, modalToDisplay: modalToDisplay, openModal: dispatchOpenModal, closeModal: dispatchCloseModal }); }; ConnectedFactChart.propTypes = { id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]).isRequired, path: _propTypes["default"].string.isRequired, title: _propTypes["default"].string.isRequired, search: _propTypes["default"].string }; ConnectedFactChart.defaultProps = { search: null }; var _default = ConnectedFactChart; exports["default"] = _default; /***/ }), /* 540 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _helpers = __webpack_require__(3); var _DonutChart = _interopRequireDefault(__webpack_require__(69)); var _Loader = _interopRequireDefault(__webpack_require__(44)); var _MessageBox = _interopRequireDefault(__webpack_require__(24)); var _constants = __webpack_require__(7); var _I18n = __webpack_require__(2); __webpack_require__(541); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var FactChart = function FactChart(_ref) { var hostsCount = _ref.hostsCount, modalToDisplay = _ref.modalToDisplay, status = _ref.status, chartData = _ref.chartData, closeModal = _ref.closeModal, openModal = _ref.openModal, search = _ref.search, id = _ref.id, title = _ref.title; var chartProps = { data: chartData, key: "chart-".concat(id), searchUrl: search && !search.match(/=$/) ? search : null }; var chart = /*#__PURE__*/_react["default"].createElement(_DonutChart["default"], _extends({}, chartProps, { config: "large" })); var requestErrorMsg = status === _constants.STATUS.ERROR ? (0, _I18n.translate)('Request Failed') : (0, _I18n.translate)('No data available'); var error = modalToDisplay ? /*#__PURE__*/_react["default"].createElement(_MessageBox["default"], { msg: requestErrorMsg, icontype: "error-circle-o", key: "message-".concat(id) }) : false; var tooltip = /*#__PURE__*/_react["default"].createElement(_patternflyReact.Tooltip, { id: "viewChartTooltip-".concat(id) }, (0, _I18n.translate)('Show distribution chart')); return /*#__PURE__*/_react["default"].createElement("div", { className: "fact-chart" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.OverlayTrigger, { placement: "top", overlay: tooltip }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { onClick: openModal }, (0, _I18n.translate)('View Chart'))), modalToDisplay && /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal, { show: true, onHide: closeModal }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Header, { closeButton: true }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Title, null, /*#__PURE__*/_react["default"].createElement("b", null, (0, _I18n.sprintf)((0, _I18n.translate)('Fact distribution chart - %s '), title)), hostsCount && /*#__PURE__*/_react["default"].createElement("small", null, (0, _I18n.sprintf)((0, _I18n.ngettext)('(%s host)', '(%s hosts)', hostsCount), hostsCount)))), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Modal.Body, null, /*#__PURE__*/_react["default"].createElement("div", { className: "modal-body" }, /*#__PURE__*/_react["default"].createElement(_Loader["default"], { status: status }, [chart, error]))))); }; FactChart.propTypes = { modalToDisplay: _propTypes["default"].bool, hostsCount: _propTypes["default"].number, openModal: _propTypes["default"].func, closeModal: _propTypes["default"].func, status: _propTypes["default"].string, chartData: _propTypes["default"].arrayOf(_propTypes["default"].array), search: _propTypes["default"].string, title: _propTypes["default"].string, id: _propTypes["default"].number.isRequired }; FactChart.defaultProps = { modalToDisplay: false, hostsCount: 0, openModal: _helpers.noop, closeModal: _helpers.noop, status: null, chartData: null, search: null, title: '' }; var _default = FactChart; exports["default"] = _default; /***/ }), /* 541 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 542 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectHostCount = exports.selectFactChartStatus = exports.selectFactChartData = exports.selectFactChart = exports.selectDisplayModal = void 0; var _reselect = __webpack_require__(56); var _APISelectors = __webpack_require__(14); var selectFactChartData = function selectFactChartData(state, key) { return (0, _APISelectors.selectAPIResponse)(state, key).values || []; }; exports.selectFactChartData = selectFactChartData; var selectFactChartStatus = function selectFactChartStatus(state, key) { return (0, _APISelectors.selectAPIStatus)(state, key); }; exports.selectFactChartStatus = selectFactChartStatus; var hostCounter = function hostCounter(accumulator, currentValue) { return accumulator + currentValue; }; var selectHostCount = (0, _reselect.createSelector)(selectFactChartData, function (chartData) { return chartData.length ? chartData.map(function (item) { return item[1]; }).reduce(hostCounter) : 0; }); exports.selectHostCount = selectHostCount; var selectFactChart = function selectFactChart(state) { return state.factChart; }; exports.selectFactChart = selectFactChart; var selectDisplayModal = function selectDisplayModal(state, id) { return selectFactChart(state).modalToDisplay[id] || false; }; exports.selectDisplayModal = selectDisplayModal; /***/ }), /* 543 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _componentRegistry = _interopRequireDefault(__webpack_require__(102)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ComponentWrapper = function ComponentWrapper(props) { var _props$data = props.data, component = _props$data.component, componentProps = _props$data.componentProps; if (component === 'ComponentWrapper') { throw new Error('Cannot wrap component wrapper'); } var registeredComponent = _componentRegistry["default"].getComponent(component); if (!registeredComponent) { throw new Error('Component name is missing!'); } var Component = registeredComponent.type; return /*#__PURE__*/_react["default"].createElement(Component, componentProps); }; ComponentWrapper.propTypes = { data: _propTypes["default"].shape({ componentProps: _propTypes["default"].object, component: _propTypes["default"].string.isRequired }).isRequired }; var _default = ComponentWrapper; exports["default"] = _default; /***/ }), /* 544 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 545 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _ChartBox = _interopRequireDefault(__webpack_require__(183)); var _I18n = __webpack_require__(2); var _constants = __webpack_require__(7); __webpack_require__(546); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } var ConfigReports = function ConfigReports(props) { var _props$data = props.data, metricsChartData = _props$data.metricsChartData, statusChartData = _props$data.statusChartData, _props$data$metricsDa = _props$data.metricsData, tableData = _props$data$metricsDa.tableData, tableClasses = _props$data$metricsDa.tableClasses, total = _props$data$metricsDa.total; var createRow = function createRow(_ref, i) { var _ref2 = _slicedToArray(_ref, 2), name = _ref2[0], value = _ref2[1]; return /*#__PURE__*/_react["default"].createElement("tr", { key: i }, /*#__PURE__*/_react["default"].createElement("td", { className: "break-me" }, name), /*#__PURE__*/_react["default"].createElement("td", null, value)); }; var chartBoxProps = { className: 'report-chart', noDataMsg: (0, _I18n.translate)('No data available'), status: _constants.STATUS.RESOLVED, config: 'medium' }; return /*#__PURE__*/_react["default"].createElement(_patternflyReact.Row, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { md: 5 }, /*#__PURE__*/_react["default"].createElement(_ChartBox["default"], _extends({}, chartBoxProps, { type: "donut", chart: { data: metricsChartData, id: 'report-metrics' }, title: (0, _I18n.translate)('Report Metrics') }))), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { md: 5, className: "bar-chart-medium-width" }, /*#__PURE__*/_react["default"].createElement(_ChartBox["default"], _extends({}, chartBoxProps, { type: "bar", chart: { data: statusChartData, id: 'report-status' }, title: (0, _I18n.translate)('Report Status') }))), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { md: 2 }, /*#__PURE__*/_react["default"].createElement("table", { className: (0, _classnames["default"])(tableClasses, 'report-chart') }, /*#__PURE__*/_react["default"].createElement("tbody", null, tableData.map(function (metric, i) { return createRow(metric, i); })), /*#__PURE__*/_react["default"].createElement("tfoot", null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, (0, _I18n.translate)('Total')), /*#__PURE__*/_react["default"].createElement("th", null, total)))))); }; ConfigReports.propTypes = { data: _propTypes["default"].shape({ metricsChartData: _propTypes["default"].array, statusChartData: _propTypes["default"].array, metricsData: _propTypes["default"].shape({ tableData: _propTypes["default"].array, total: _propTypes["default"].number, tableClasses: _propTypes["default"].string }) }).isRequired }; var _default = ConfigReports; exports["default"] = _default; /***/ }), /* 546 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 547 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapperRegistry = exports.WrapperFactory = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _i18nProviderWrapperFactory = __webpack_require__(548); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var storeProviderWrapperFactory = function storeProviderWrapperFactory(store) { return function (WrappedComponent) { var StoreProvider = function StoreProvider(props) { return /*#__PURE__*/_react["default"].createElement(_reactRedux.Provider, { store: store }, /*#__PURE__*/_react["default"].createElement(WrappedComponent, props)); }; StoreProvider.displayName = "StoreProvider(".concat((0, _helpers.getDisplayName)(WrappedComponent), ")"); return StoreProvider; }; }; var dataProviderWrapperFactory = function dataProviderWrapperFactory(data) { var flattenData = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; return function (WrappedComponent) { var DataProvider = function DataProvider(props) { if (flattenData) { return /*#__PURE__*/_react["default"].createElement(WrappedComponent, _extends({}, data, props)); } return /*#__PURE__*/_react["default"].createElement(WrappedComponent, _extends({ data: data }, props)); }; DataProvider.displayName = "DataProvider(".concat((0, _helpers.getDisplayName)(WrappedComponent), ")"); return DataProvider; }; }; var propDataMapperWrapperFactory = function propDataMapperWrapperFactory() { return function (WrappedComponent) { var PropDataMapper = function PropDataMapper(props) { return /*#__PURE__*/_react["default"].createElement(WrappedComponent, { data: props }); }; PropDataMapper.displayName = "PropDataMapper(".concat((0, _helpers.getDisplayName)(WrappedComponent), ")"); return PropDataMapper; }; }; var wrapperRegistry = { wrappers: { data: dataProviderWrapperFactory, dataMapper: propDataMapperWrapperFactory, store: storeProviderWrapperFactory, i18n: _i18nProviderWrapperFactory.i18nProviderWrapperFactory }, register: function register(name, wrapper) { if (this.wrappers[name]) { throw new Error("Wrapper name already taken: ".concat(name)); } this.wrappers[name] = wrapper; }, getWrapper: function getWrapper(name) { if (!this.wrappers[name]) { throw new Error("Wrapper not found: ".concat(name)); } return this.wrappers[name]; } }; exports.wrapperRegistry = wrapperRegistry; var WrapperFactory = /*#__PURE__*/function () { function WrapperFactory() { _classCallCheck(this, WrapperFactory); this.wrapper = function (component) { return component; }; } _createClass(WrapperFactory, [{ key: "with", value: function _with(name) { var currentWrapper = this.wrapper; var additionalWrapperFactory = wrapperRegistry.getWrapper(name); for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { params[_key - 1] = arguments[_key]; } var additionalWrapper = additionalWrapperFactory.apply(void 0, params); this.wrapper = function (component) { return additionalWrapper(currentWrapper(component)); }; return this; } }]); return WrapperFactory; }(); exports.WrapperFactory = WrapperFactory; /***/ }), /* 548 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.i18nProviderWrapperFactory = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactIntl = __webpack_require__(25); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var i18nProviderWrapperFactory = function i18nProviderWrapperFactory(initialNow, timezone) { return function (WrappedComponent) { var wrappedName = (0, _helpers.getDisplayName)(WrappedComponent); var I18nProviderWrapper = /*#__PURE__*/function (_React$Component) { _inherits(I18nProviderWrapper, _React$Component); var _super = _createSuper(I18nProviderWrapper); function I18nProviderWrapper(props) { var _this; _classCallCheck(this, I18nProviderWrapper); _this = _super.call(this, props); _this.state = { i18nLoaded: false }; // eslint-disable-next-line promise/prefer-await-to-then _I18n.intl.ready.then(function () { _this.setState({ i18nLoaded: true }); }); return _this; } _createClass(I18nProviderWrapper, [{ key: "render", value: function render() { if (!this.state.i18nLoaded) { return /*#__PURE__*/_react["default"].createElement("span", null); } return /*#__PURE__*/_react["default"].createElement(_reactIntl.IntlProvider, { locale: _I18n.intl.locale, initialNow: initialNow, timeZone: timezone || _I18n.intl.timezone }, /*#__PURE__*/_react["default"].createElement(WrappedComponent, this.props)); } }]); return I18nProviderWrapper; }(_react["default"].Component); I18nProviderWrapper.displayName = "I18nProviderWrapper(".concat(wrappedName, ")"); return I18nProviderWrapper; }; }; exports.i18nProviderWrapperFactory = i18nProviderWrapperFactory; /***/ }), /* 549 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function get() { return _LoginPage["default"]; } }); var _LoginPage = _interopRequireDefault(__webpack_require__(550)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /***/ }), /* 550 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); var _helpers = __webpack_require__(551); __webpack_require__(552); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var LoginPage = function LoginPage(_ref) { var alerts = _ref.alerts, backgroundUrl = _ref.backgroundUrl, caption = _ref.caption, logoSrc = _ref.logoSrc, token = _ref.token, version = _ref.version; var _adjustAlerts = (0, _helpers.adjustAlerts)(alerts), modifiedAlerts = _adjustAlerts.modifiedAlerts, submitErrors = _adjustAlerts.submitErrors; var footerLinks = caption ? [{ children: caption, href: 'foreman-login-footer-text' }] // The href text is detected in our css to disable it from being an actual link. : []; return /*#__PURE__*/_react["default"].createElement("div", { id: "login-page" }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.LoginPage, { container: { backgroundUrl: backgroundUrl, alert: modifiedAlerts }, header: { logoSrc: logoSrc, caption: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("h1", { id: "title" }, (0, _I18n.translate)('Welcome')), version && /*#__PURE__*/_react["default"].createElement("p", { id: "version" }, "".concat((0, _I18n.translate)('Version'), " ").concat(version))) }, card: { title: (0, _I18n.translate)('Log in to your account'), form: _objectSpread(_objectSpread({}, _helpers.defaultFormProps), {}, { submitError: submitErrors, additionalFields: /*#__PURE__*/_react["default"].createElement("input", { name: "authenticity_token", type: "hidden", value: token }) }) }, footerLinks: footerLinks })); }; LoginPage.propTypes = { alerts: _propTypes["default"].shape({ success: _propTypes["default"].string, warning: _propTypes["default"].string, error: _propTypes["default"].string }), backgroundUrl: _propTypes["default"].string, caption: _propTypes["default"].string, logoSrc: _propTypes["default"].string, token: _propTypes["default"].string.isRequired, version: _propTypes["default"].string }; LoginPage.defaultProps = { alerts: null, backgroundUrl: null, caption: null, logoSrc: null, version: null }; var _default = LoginPage; exports["default"] = _default; /***/ }), /* 551 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultFormProps = exports.adjustAlerts = void 0; var _I18n = __webpack_require__(2); var adjustAlerts = function adjustAlerts(alerts) { var submitErrors = []; var modifiedAlerts = []; alerts && Object.keys(alerts).forEach(function (alertType) { var alertMessage = alerts[alertType]; if (alertType === 'error') { submitErrors.push(alertMessage); } else if (alertMessage) { modifiedAlerts.push({ type: alertType, message: alertMessage, show: true }); } }); return { modifiedAlerts: modifiedAlerts, submitErrors: submitErrors }; }; exports.adjustAlerts = adjustAlerts; var defaultFormProps = { attributes: { action: '/users/login', method: 'post' }, validate: true, topErrorOnly: true, usernameField: { id: 'login_login', attributes: { name: 'login[login]', autoFocus: true }, type: 'text', placeholder: (0, _I18n.translate)('Username') }, passwordField: { id: 'login_password', attributes: { name: 'login[password]' }, type: 'password', placeholder: (0, _I18n.translate)('Password') }, submitText: (0, _I18n.translate)('Log In'), submitButtonAttributes: { id: 'login_submit_btn', name: 'commit' } }; exports.defaultFormProps = defaultFormProps; /***/ }), /* 552 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 553 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function get() { return _ExternalLogout["default"]; } }); var _ExternalLogout = _interopRequireDefault(__webpack_require__(554)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /***/ }), /* 554 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _I18n = __webpack_require__(2); __webpack_require__(555); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ExternalLogout = function ExternalLogout(_ref) { var logoSrc = _ref.logoSrc, version = _ref.version, caption = _ref.caption, submitLink = _ref.submitLink, backgroundUrl = _ref.backgroundUrl; var style = backgroundUrl ? { backgroundImage: "url(".concat(backgroundUrl, ")") } : {}; return /*#__PURE__*/_react["default"].createElement("div", { className: "external-logout", style: style }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Grid, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Grid.Row, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Grid.Col, { sm: 8, smOffset: 2, md: 6, mdOffset: 3 }, /*#__PURE__*/_react["default"].createElement("header", { className: "login-pf-page-header" }, /*#__PURE__*/_react["default"].createElement("img", { className: "brand", src: logoSrc, alt: "logo" }), /*#__PURE__*/_react["default"].createElement("div", { className: "login-pf-caption" }, /*#__PURE__*/_react["default"].createElement("h1", { id: "title" }, (0, _I18n.translate)('Welcome')), version && /*#__PURE__*/_react["default"].createElement("p", { id: "version" }, "".concat((0, _I18n.translate)('Version'), " ").concat(version)), caption && /*#__PURE__*/_react["default"].createElement("p", { id: "login_text" }, caption))), /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, { type: "submit", bsStyle: "primary", bsSize: "large", block: true, className: "login-pf-submit-button", href: submitLink }, (0, _I18n.translate)('Click to log in again')))))); }; ExternalLogout.propTypes = { backgroundUrl: _propTypes["default"].string, caption: _propTypes["default"].string, logoSrc: _propTypes["default"].string, version: _propTypes["default"].string, submitLink: _propTypes["default"].string.isRequired }; ExternalLogout.defaultProps = { backgroundUrl: null, caption: null, logoSrc: null, version: null }; var _default = ExternalLogout; exports["default"] = _default; /***/ }), /* 555 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 556 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function get() { return _RedirectCancelButton["default"]; } }); var _RedirectCancelButton = _interopRequireDefault(__webpack_require__(557)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /***/ }), /* 557 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _patternflyReact = __webpack_require__(4); var _reactRouterDom = __webpack_require__(17); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _withReactRoutes = _interopRequireDefault(__webpack_require__(558)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var RedirectCancelButton = function RedirectCancelButton(props) { return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Link, { to: props.cancelPath }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Button, null, (0, _I18n.translate)('Cancel'))); }; RedirectCancelButton.propTypes = { cancelPath: _propTypes["default"].string }; RedirectCancelButton.defaultProps = { cancelPath: undefined }; var _default = (0, _withReactRoutes["default"])(RedirectCancelButton); exports["default"] = _default; /***/ }), /* 558 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRouterDom = __webpack_require__(17); var _history = _interopRequireDefault(__webpack_require__(23)); var _routes = _interopRequireDefault(__webpack_require__(168)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var withReactRoutes = function withReactRoutes(Component) { return function (props) { return /*#__PURE__*/_react["default"].createElement(_reactRouterDom.Router, { history: _history["default"] }, /*#__PURE__*/_react["default"].createElement(_routes["default"], null, /*#__PURE__*/_react["default"].createElement(Component, props))); }; }; var _default = withReactRoutes; exports["default"] = _default; /***/ }), /* 559 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _SettingRecordsSelectors = __webpack_require__(184); var _SettingsTable = _interopRequireDefault(__webpack_require__(560)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var WrappedSettingsTable = function WrappedSettingsTable(props) { var settings = (0, _reactRedux.useSelector)(function (state) { return (0, _SettingRecordsSelectors.selectSettingsByCategory)(props.category)(state); }); return /*#__PURE__*/_react["default"].createElement(_SettingsTable["default"], { settings: settings }); }; WrappedSettingsTable.propTypes = { category: _propTypes["default"].string.isRequired }; var _default = WrappedSettingsTable; exports["default"] = _default; /***/ }), /* 560 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _table = __webpack_require__(62); var _SettingsTableSchema = _interopRequireDefault(__webpack_require__(561)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SettingsTable = function SettingsTable(_ref) { var settings = _ref.settings; return /*#__PURE__*/_react["default"].createElement(_table.Table, { key: "settings-table", columns: _SettingsTableSchema["default"], rows: settings }); }; SettingsTable.propTypes = { settings: _propTypes["default"].array.isRequired }; var _default = SettingsTable; exports["default"] = _default; /***/ }), /* 561 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _table = __webpack_require__(62); var _I18n = __webpack_require__(2); var _SettingsTableFormatters = __webpack_require__(562); var createSettingsTableSchema = [(0, _table.column)('fullName', (0, _I18n.translate)('Name'), [_table.headerFormatterWithProps], [_SettingsTableFormatters.settingNameCellFormatter, _table.cellFormatterWithProps], { className: 'col-md-2' }), (0, _table.column)('value', (0, _I18n.translate)('Value'), [_table.headerFormatterWithProps], [_SettingsTableFormatters.settingValueCellFormatter, _table.cellFormatterWithProps], { className: 'col-md-3' }), (0, _table.column)('description', (0, _I18n.translate)('Description'), [_table.headerFormatterWithProps], [_table.cellFormatter])]; var _default = createSettingsTableSchema; exports["default"] = _default; /***/ }), /* 562 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.settingValueCellFormatter = exports.settingNameCellFormatter = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _SettingsTableHelpers = __webpack_require__(67); var _SettingName = _interopRequireDefault(__webpack_require__(563)); var _SettingCell = _interopRequireDefault(__webpack_require__(564)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var settingNameCellFormatter = function settingNameCellFormatter(value, _ref) { var rowData = _ref.rowData; var SettingNameWithTooltip = (0, _SettingsTableHelpers.withTooltip)(_SettingName["default"]); return /*#__PURE__*/_react["default"].createElement(SettingNameWithTooltip, { setting: rowData, tooltipId: rowData.name, tooltipText: rowData.name }); }; exports.settingNameCellFormatter = settingNameCellFormatter; var settingValueCellFormatter = function settingValueCellFormatter(value, _ref2) { var setting = _ref2.rowData; var cssClasses = (0, _classnames["default"])('ellipsis', { 'editable-empty': !setting.value && setting.settingsType !== 'boolean', 'masked-input': setting.encrypted, editable: !setting.readonly }); return /*#__PURE__*/_react["default"].createElement(_SettingCell["default"], { value: value, setting: setting, className: cssClasses }); }; exports.settingValueCellFormatter = settingValueCellFormatter; /***/ }), /* 563 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SettingName = function SettingName(_ref) { var setting = _ref.setting; return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, setting.fullName ? (0, _I18n.translate)(setting.fullName) : setting.name); }; SettingName.propTypes = { setting: _propTypes["default"].object.isRequired }; var _default = SettingName; exports["default"] = _default; /***/ }), /* 564 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _SettingsTableHelpers = __webpack_require__(67); var _SettingCellInner = _interopRequireDefault(__webpack_require__(565)); __webpack_require__(566); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SettingCell = function SettingCell(_ref) { var setting = _ref.setting, className = _ref.className; var fieldProps = { setting: setting, tooltipId: setting.name, className: className }; if (setting.readonly) { fieldProps.tooltipText = (0, _I18n.sprintf)((0, _I18n.translate)('This setting is defined in the configuration file %s and is read-only.'), setting.configFile); } else { var defaultStr = (0, _SettingsTableHelpers.defaultToString)(setting); fieldProps.tooltipText = (0, _I18n.sprintf)((0, _I18n.translate)('Default: %s'), defaultStr); } var Component = (0, _SettingsTableHelpers.withTooltip)(_SettingCellInner["default"]); return /*#__PURE__*/_react["default"].createElement(Component, fieldProps); }; SettingCell.propTypes = { setting: _propTypes["default"].object.isRequired, className: _propTypes["default"].string }; SettingCell.defaultProps = { className: '' }; var _default = SettingCell; exports["default"] = _default; /***/ }), /* 565 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRedux = __webpack_require__(5); var _SettingRecordsActions = __webpack_require__(158); var _useSettingModal2 = _interopRequireDefault(__webpack_require__(185)); var _SettingsTableHelpers = __webpack_require__(67); var _excluded = ["setting"]; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var SettingCellInner = function SettingCellInner(props) { var setting = props.setting, rest = _objectWithoutProperties(props, _excluded); var _useSettingModal = (0, _useSettingModal2["default"])(), setModalOpen = _useSettingModal.setModalOpen; var dispatch = (0, _reactRedux.useDispatch)(); var editable = !setting.readonly; var openModal = function openModal() { dispatch((0, _SettingRecordsActions.setSettingEditing)(setting)); setModalOpen(); }; var field = /*#__PURE__*/_react["default"].createElement("div", _extends({ onClick: editable ? openModal : undefined }, rest), (0, _SettingsTableHelpers.valueToString)(setting)); if (setting.value !== setting["default"] && (0, _SettingsTableHelpers.hasDefault)(setting)) field = /*#__PURE__*/_react["default"].createElement("strong", null, field); return field; }; SettingCellInner.propTypes = { setting: _propTypes["default"].object.isRequired }; var _default = SettingCellInner; exports["default"] = _default; /***/ }), /* 566 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /* 567 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _reactRedux = __webpack_require__(5); var _useSettingModal2 = _interopRequireDefault(__webpack_require__(185)); var _SettingUpdateModal = _interopRequireDefault(__webpack_require__(568)); var _SettingRecordsSelectors = __webpack_require__(184); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var WrappedSettingUpdateModal = function WrappedSettingUpdateModal(props) { var setting = (0, _reactRedux.useSelector)(function (state) { return (0, _SettingRecordsSelectors.selectSettingEditing)(state); }) || {}; var _useSettingModal = (0, _useSettingModal2["default"])(), setModalClosed = _useSettingModal.setModalClosed; return /*#__PURE__*/_react["default"].createElement(_SettingUpdateModal["default"], { setting: setting, setModalClosed: setModalClosed }); }; var _default = WrappedSettingUpdateModal; exports["default"] = _default; /***/ }), /* 568 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _ForemanModal = _interopRequireDefault(__webpack_require__(43)); var _I18n = __webpack_require__(2); var _SettingForm = _interopRequireDefault(__webpack_require__(569)); var _SettingUpdateModalConstants = __webpack_require__(97); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SettingUpdateModal = function SettingUpdateModal(_ref) { var setting = _ref.setting, setModalClosed = _ref.setModalClosed; return /*#__PURE__*/_react["default"].createElement(_ForemanModal["default"], { id: _SettingUpdateModalConstants.SETTING_UPDATE_MODAL, title: (0, _I18n.sprintf)((0, _I18n.translate)('Update value for %s setting'), setting.fullName), enforceFocus: true }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_SettingForm["default"], { setting: setting, setModalClosed: setModalClosed }))); }; SettingUpdateModal.propTypes = { setting: _propTypes["default"].object.isRequired, setModalClosed: _propTypes["default"].func.isRequired }; var _default = SettingUpdateModal; exports["default"] = _default; /***/ }), /* 569 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _reactRedux = __webpack_require__(5); var _forms = __webpack_require__(84); var _SettingForm = _interopRequireDefault(__webpack_require__(570)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var initialValue = function initialValue(setting) { if (setting.encrypted) { return ''; } return setting.value === null ? '' : setting.value; }; var WrappedSettingForm = function WrappedSettingForm(props) { var dispatch = (0, _reactRedux.useDispatch)(); return /*#__PURE__*/_react["default"].createElement(_SettingForm["default"], _extends({ submitForm: function submitForm() { return dispatch(_forms.submitForm.apply(void 0, arguments)); }, initialValues: { value: initialValue(props.setting) } }, props)); }; WrappedSettingForm.propTypes = { setting: _propTypes["default"].object.isRequired }; var _default = WrappedSettingForm; exports["default"] = _default; /***/ }), /* 570 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _formik = __webpack_require__(59); var _ForemanForm = _interopRequireDefault(__webpack_require__(83)); var _SettingValueField = _interopRequireDefault(__webpack_require__(571)); var _SettingUpdateModalConstants = __webpack_require__(97); var _I18n = __webpack_require__(2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var SettingForm = function SettingForm(_ref) { var setting = _ref.setting, initialValues = _ref.initialValues, setModalClosed = _ref.setModalClosed, submitForm = _ref.submitForm; var handleSubmit = function handleSubmit(values, actions) { var submitValues = { setting: values }; if (setting && setting.settingsType === 'array') { var splitValue = values.value === '' ? [] : values.value.split(','); submitValues = { setting: { value: splitValue } }; } return submitForm({ url: _SettingUpdateModalConstants.SETTING_UPDATE_PATH.replace(':id', setting.id), values: submitValues, item: 'Settings', message: (0, _I18n.translate)('Setting was successfully updated.'), method: 'put', successCallback: setModalClosed, actions: actions }); }; return /*#__PURE__*/_react["default"].createElement(_ForemanForm["default"], { onSubmit: handleSubmit, initialValues: initialValues, onCancel: setModalClosed }, /*#__PURE__*/_react["default"].createElement(_formik.Field, { name: "value", label: (0, _I18n.translate)('Value'), component: _SettingValueField["default"], setting: setting })); }; SettingForm.propTypes = { setting: _propTypes["default"].object.isRequired, initialValues: _propTypes["default"].object.isRequired, setModalClosed: _propTypes["default"].func.isRequired, submitForm: _propTypes["default"].func.isRequired }; var _default = SettingForm; exports["default"] = _default; /***/ }), /* 571 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _patternflyReact = __webpack_require__(4); var _classnames = _interopRequireDefault(__webpack_require__(13)); var _I18n = __webpack_require__(2); var _SettingsTableHelpers = __webpack_require__(67); var _SelectHelpers = __webpack_require__(182); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var SettingValueField = function SettingValueField(_ref) { var setting = _ref.setting, form = _ref.form, field = _ref.field; var selectValues = setting.selectValues; var cssClasses = (0, _classnames["default"])({ 'masked-input': setting.encrypted }); var inputField = /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, _extends({}, field, { className: cssClasses })); var error = form.errors && form.errors.value; if (selectValues) { inputField = /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, _extends({}, field, { componentClass: "select", className: cssClasses }), (0, _SelectHelpers.renderOptions)((0, _SettingsTableHelpers.arraySelection)(setting) || selectValues)); } if (setting.settingsType === 'boolean') { inputField = /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, _extends({}, field, { componentClass: "select", className: cssClasses }), /*#__PURE__*/_react["default"].createElement("option", { value: true }, (0, _I18n.translate)('Yes')), /*#__PURE__*/_react["default"].createElement("option", { value: false }, (0, _I18n.translate)('No'))); } if (setting.settingsType === 'array') { inputField = /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormControl, _extends({}, field, { componentClass: "textarea", className: cssClasses })); } var helpBlock = /*#__PURE__*/_react["default"].createElement(_patternflyReact.HelpBlock, null, /*#__PURE__*/_react["default"].createElement("span", { className: "error-msg" }, error)); var encryptedHelp = /*#__PURE__*/_react["default"].createElement(_patternflyReact.HelpBlock, null, (0, _I18n.translate)('This setting is encrypted. Empty input field is displayed instead of the setting value.')); return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_patternflyReact.FormGroup, { className: error ? 'has-error' : '' }, /*#__PURE__*/_react["default"].createElement(_patternflyReact.Col, { md: 10 }, inputField, setting.encrypted && encryptedHelp), error && helpBlock)); }; SettingValueField.propTypes = { setting: _propTypes["default"].object.isRequired, form: _propTypes["default"].object.isRequired, field: _propTypes["default"].object.isRequired }; var _default = SettingValueField; exports["default"] = _default; /***/ }), /* 572 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WelcomeAuthSource = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _EmptyState = _interopRequireDefault(__webpack_require__(36)); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var WelcomeAuthSource = function WelcomeAuthSource(_ref) { var canCreate = _ref.canCreate; var content = (0, _I18n.translate)("The authentication process currently requires an LDAP provider, such as FreeIPA, OpenLDAP or Microsoft's Active Directory."); var description = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (0, _I18n.translate)('Foreman can use LDAP based service for user information and authentication.'), /*#__PURE__*/_react["default"].createElement("div", { dangerouslySetInnerHTML: { __html: content } }), /*#__PURE__*/_react["default"].createElement("a", { href: (0, _helpers.getManualURL)('4.1.1LDAPAuthentication') }, (0, _I18n.translate)('Learn more about LDAP authentication in the documentation.')), /*#__PURE__*/_react["default"].createElement("br", null), (0, _I18n.translate)('Foreman can use External service for user information and authentication.'), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement("a", { href: (0, _helpers.getManualURL)('5.7ExternalAuthentication') }, (0, _I18n.translate)('Learn more about External authentication in the documentation.'))); var action = canCreate && { title: (0, _I18n.translate)('Create LDAP Authentication Source'), url: (0, _helpers.foremanUrl)('auth_source_ldaps/new') }; return /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], { icon: "users", iconType: "fa", header: (0, _I18n.translate)('Authentication Sources'), description: description, action: action }); }; exports.WelcomeAuthSource = WelcomeAuthSource; WelcomeAuthSource.propTypes = { canCreate: _propTypes["default"].bool }; WelcomeAuthSource.defaultProps = { canCreate: false }; /***/ }), /* 573 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WelcomeConfigReports = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _I18n = __webpack_require__(2); var _EmptyState = _interopRequireDefault(__webpack_require__(36)); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var WelcomeConfigReports = function WelcomeConfigReports() { var content = (0, _I18n.translate)("If you wish to configure Puppet to forward its reports to Foreman, \n please follow setting up reporting and\n e-mail reporting")); var description = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (0, _I18n.translate)("You don't seem to have any reports."), /*#__PURE__*/_react["default"].createElement("div", { dangerouslySetInnerHTML: { __html: content } })); return /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], { icon: "book", iconType: "fa", header: (0, _I18n.translate)('Reports'), description: description, documentation: { url: (0, _helpers.getManualURL)('3.5.4PuppetReports') } }); }; exports.WelcomeConfigReports = WelcomeConfigReports; /***/ }), /* 574 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WelcomeArchitecture = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); var _propTypes = _interopRequireDefault(__webpack_require__(1)); var _I18n = __webpack_require__(2); var _EmptyState = _interopRequireDefault(__webpack_require__(36)); var _helpers = __webpack_require__(3); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var WelcomeArchitecture = function WelcomeArchitecture(_ref) { var canCreate = _ref.canCreate; var action = canCreate && { title: (0, _I18n.translate)('Create Architecture'), url: (0, _helpers.foremanUrl)('/architectures/new') }; var content = (0, _I18n.translate)("Each entry represents a particular hardware architecture, most commonly x86_64 or i386.\n Foreman also supports the Solaris operating system family, which includes sparc based systems."); var description = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (0, _I18n.translate)('Before you proceed to using Foreman you should provide information about one or more architectures.'), /*#__PURE__*/_react["default"].createElement("div", { dangerouslySetInnerHTML: { __html: content } }), (0, _I18n.translate)('Each architecture can also be associated with more than one operating system and a selector block is provided to allow you to select valid combinations.')); return /*#__PURE__*/_react["default"].createElement(_EmptyState["default"], { icon: "building", iconType: "fa", header: (0, _I18n.translate)('Architectures'), description: description, action: action }); }; exports.WelcomeArchitecture = WelcomeArchitecture; WelcomeArchitecture.propTypes = { canCreate: _propTypes["default"].bool }; WelcomeArchitecture.defaultProps = { canCreate: false }; /***/ }), /* 575 */, /* 576 */, /* 577 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.mount = mount; Object.defineProperty(exports, "registerReducer", { enumerable: true, get: function get() { return _registerReducer["default"]; } }); var _reactDom = _interopRequireDefault(__webpack_require__(578)); var _redux = _interopRequireDefault(__webpack_require__(27)); var _componentRegistry = _interopRequireDefault(__webpack_require__(102)); var _registerReducer = _interopRequireDefault(__webpack_require__(579)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function mount(component, selector, data) { var flattenData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; var reactNode = document.querySelector(selector); if (reactNode) { _reactDom["default"].unmountComponentAtNode(reactNode); mountNode(component, reactNode, data, flattenData); } else { // eslint-disable-next-line no-console console.log("Cannot find '".concat(selector, "' element for mounting the '").concat(component, "'")); } } function mountNode(component, reactNode, data, flattenData) { _reactDom["default"].render(_componentRegistry["default"].markup(component, { data: data, store: _redux["default"], flattenData: flattenData }), reactNode); } /** * This is a html tag (Web component) that can be used for mounting react component from ComponentRegistry. */ var ReactComponentElement = /*#__PURE__*/function (_HTMLElement) { _inherits(ReactComponentElement, _HTMLElement); var _super = _createSuper(ReactComponentElement); function ReactComponentElement() { _classCallCheck(this, ReactComponentElement); return _super.apply(this, arguments); } _createClass(ReactComponentElement, [{ key: "componentName", get: function get() { return this.getAttribute('name'); } }, { key: "reactProps", get: function get() { return this.dataset.props !== '' ? JSON.parse(this.dataset.props) : {}; }, set: function set(newProps) { this.dataset.props = JSON.stringify(newProps); } }, { key: "mountPoint", get: function get() { if (!this._mountPoint) { this._mountPoint = this; } return this._mountPoint; } }, { key: "attributeChangedCallback", value: function attributeChangedCallback(name, oldValue, newValue) { switch (name) { case 'data-props': // if this is not the initial prop set if (oldValue !== null) this._render(); break; default: // We don't know how to react to default attribute change } } }, { key: "connectedCallback", value: function connectedCallback() { this._render(); } }, { key: "disconnectedCallback", value: function disconnectedCallback() { try { _reactDom["default"].unmountComponentAtNode(this.mountPoint); } catch (error) { // eslint-disable-next-line no-console console.error("Unable to unmount foreman-react-component: ".concat(this.componentName), error); } } }, { key: "_render", value: function _render() { try { mountNode(this.componentName, this, this.reactProps, true); } catch (error) { // eslint-disable-next-line no-console console.error("Unable to mount foreman-react-component: ".concat(this.componentName), error); } } }], [{ key: "observedAttributes", get: function get() { return ['data-props']; } }]); return ReactComponentElement; }( /*#__PURE__*/_wrapNativeSuper(HTMLElement)); if (!window.customElements.get('foreman-react-component')) { window.customElements.define('foreman-react-component', ReactComponentElement); } /***/ }), /* 578 */ /***/ (function(module, exports) { module.exports = __FOREMAN_VENDOR__REACT_DOM__; /***/ }), /* 579 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _forceSingleton = _interopRequireDefault(__webpack_require__(31)); var _index = _interopRequireDefault(__webpack_require__(27)); var _index2 = __webpack_require__(186); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var asyncReducers = (0, _forceSingleton["default"])('async_reducers', function () { return {}; }); var _default = function _default(name, asyncReducer) { asyncReducers[name] = asyncReducer; _index["default"].replaceReducer((0, _index2.combineReducersAsync)(asyncReducers)); }; exports["default"] = _default; /***/ }), /* 580 */, /* 581 */, /* 582 */, /* 583 */, /* 584 */, /* 585 */, /* 586 */, /* 587 */, /* 588 */, /* 589 */, /* 590 */, /* 591 */, /* 592 */, /* 593 */, /* 594 */, /* 595 */, /* 596 */, /* 597 */, /* 598 */, /* 599 */, /* 600 */, /* 601 */, /* 602 */, /* 603 */, /* 604 */, /* 605 */, /* 606 */, /* 607 */, /* 608 */, /* 609 */, /* 610 */, /* 611 */, /* 612 */, /* 613 */, /* 614 */, /* 615 */, /* 616 */, /* 617 */, /* 618 */, /* 619 */, /* 620 */, /* 621 */, /* 622 */, /* 623 */, /* 624 */, /* 625 */, /* 626 */, /* 627 */, /* 628 */, /* 629 */, /* 630 */, /* 631 */, /* 632 */, /* 633 */, /* 634 */, /* 635 */, /* 636 */, /* 637 */, /* 638 */, /* 639 */, /* 640 */, /* 641 */, /* 642 */, /* 643 */, /* 644 */, /* 645 */, /* 646 */, /* 647 */, /* 648 */, /* 649 */, /* 650 */, /* 651 */, /* 652 */, /* 653 */, /* 654 */, /* 655 */, /* 656 */, /* 657 */, /* 658 */, /* 659 */, /* 660 */, /* 661 */, /* 662 */, /* 663 */, /* 664 */, /* 665 */, /* 666 */, /* 667 */, /* 668 */, /* 669 */, /* 670 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _MountingService = __webpack_require__(577); var _GlobalFill = __webpack_require__(68); var _RoutingService = __webpack_require__(104); var _routes = _interopRequireDefault(__webpack_require__(671)); var _reducers = _interopRequireDefault(__webpack_require__(672)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // register reducers Object.entries(_reducers["default"]).forEach(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), key = _ref2[0], reducer = _ref2[1]; return (0, _MountingService.registerReducer)(key, reducer); }); // register client routes (0, _RoutingService.registerRoutes)('ForemanPatch', _routes["default"]); // register fills for extending foreman core //addGlobalFill('host-overview-cards', 'Patching Details', ); /***/ }), /* 671 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireDefault(__webpack_require__(0)); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var routes = []; var _default = routes; exports["default"] = _default; /***/ }), /* 672 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _redux = __webpack_require__(12); var reducers = { foremanPatch: (0, _redux.combineReducers)({}) }; var _default = reducers; exports["default"] = _default; /***/ }) ],[670]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9fXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUFJPUF9UWVBFU19fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbW1vbi9JMThuLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vaGVscGVycy5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19QQVRURVJORkxZX1JFQUNUX19cIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9SRURVWF9fXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUEFUVEVSTkZMWV9SRUFDVF9DT1JFX19cIiIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fU0VBTUxFU1NfSU1NVVRBQkxFX19cIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19MT0RBU0hfX1wiIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1BBVFRFUk5GTFlfUkVBQ1RfSUNPTlNfX1wiIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFRFVYX19cIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19DTEFTU05BTUVTX19cIiIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvQVBJL0FQSVNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19VUklKU19fXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fVVVJRF9WXzFfX1wiIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX1JPVVRFUl9ET01fX1wiIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL2ZvcmVtYW5fdG9vbHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0xhYmVsSWNvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19KUVVFUllfX1wiIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vdXJsSGVscGVycy5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9FTExJUFNJU19XSVRIX1RPT0xUSVBfX1wiIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9oaXN0b3J5LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9NZXNzYWdlQm94L2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL2ZvcmVtYW5fbmF2aWdhdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvVG9hc3RzTGlzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvUm9vdC9Db250ZXh0L0ZvcmVtYW5Db250ZXh0LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpcm1Nb2RhbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tbW9uL2ZvcmNlU2luZ2xldG9uLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9taWRkbGV3YXJlcy9JbnRlcnZhbE1pZGRsZXdhcmUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fQ09OTkVDVEVEX1JFQUNUX1JPVVRFUl9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0NvbW1vbkZvcm0uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRm9yZW1hbk1vZGFsL0ZvcmVtYW5Nb2RhbEhvb2tzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9FbXB0eVN0YXRlL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvTW9kZWxzL2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tbW9uL2hvb2tzL0FQSS9BUElIb29rcy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vU2tlbGV0b25Mb2FkZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvU3RhdHVzL0NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvTGF5b3V0SGVscGVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9Gb3JlbWFuTW9kYWxTZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRm9yZW1hbk1vZGFsL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9Mb2FkZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL2hlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL0RhdGVDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2RhdGVzL1JlbGF0aXZlRGF0ZVRpbWUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvU3RhdHVzL1N0YXR1c0ljb24uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlL0F1dG9Db21wbGV0ZUNvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvY29uc3RzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9taWRkbGV3YXJlcy9JbnRlcnZhbE1pZGRsZXdhcmUvSW50ZXJ2YWxDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0RpZmZWaWV3L0RpZmZWaWV3LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0RpZmZWaWV3L0RpZmZSYWRpb0J1dHRvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvckNvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRVNFTEVDVF9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRm9yZW1hbk1vZGFsL0ZvcmVtYW5Nb2RhbEFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQm9va21hcmtzL0Jvb2ttYXJrc0NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19GT1JNSUtfX1wiIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vSE9DLmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX0xPQURJTkdfU0tFTEVUT05fX1wiIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vU2xvdC9TbG90U2VsZWN0b3JzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL2NvbnN0cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vU2xvdC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvQ2hhcnRTZXJ2aWNlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdzVGFibGUvU2V0dGluZ3NUYWJsZUhlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0ZpbGwvR2xvYmFsRmlsbC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vY2hhcnRzL0RvbnV0Q2hhcnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfRE5EX19cIiIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvQVBJL0FQSUFjdGlvblR5cGVHZW5lcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L0FQSS9BUElDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUkVEVVhKU19UT09MS0lUX19cIiIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9CcmVhZGNydW1iQmFyL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGVTZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vRGVwcmVjYXRpb25TZXJ2aWNlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9BbGVydC9BbGVydEJvZHkuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9BdWRpdHMvY29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1BGNC9Cb29rbWFya3MvQm9va21hcmtzQ29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9zdWJjb21wb25lbnRzL0ZvcmVtYW5Nb2RhbEhlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvc3ViY29tcG9uZW50cy9Gb3JlbWFuTW9kYWxGb290ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0ZvcmVtYW5Gb3JtL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9hY3Rpb25zL2NvbW1vbi9mb3Jtcy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QYWdpbmF0aW9uL1BhZ2luYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvdXNlcnMvUGVyc29uYWxBY2Nlc3NUb2tlbnMvUGVyc29uYWxBY2Nlc3NUb2tlbnNDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL1RpbWVDb21wb25lbnRzL1RpbWVDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvRGV0YWlsc0NhcmQvUG93ZXJTdGF0dXMvY29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1N0YXR1cy9zdHlsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9EZXRhaWxzQ2FyZC9zdHlsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2VIZWxwZXJzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3RTdGF0dXNlcy9TdGF0dXMvR2xvYmFsU3RhdHVzSWNvbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvSG9zdFN0YXR1c2VzQ29uc3RhbnRzLmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JDX0lOUFVUX05VTUJFUl9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL1NlbGVjdC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nVXBkYXRlTW9kYWwvU2V0dGluZ1VwZGF0ZU1vZGFsQ29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vU2Vzc2lvblN0b3JhZ2UuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L21pZGRsZXdhcmVzL0ludGVydmFsTWlkZGxld2FyZS9JbnRlcnZhbFNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9UZW1wbGF0ZUdlbmVyYXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZWFyY2hCYXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tcG9uZW50UmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUEFUVEVSTkZMWV9SRUFDVF9UQUJMRV9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Sb3V0aW5nU2VydmljZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkRyYXdlclNlc3Npb25TdG9yYWdlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvQVBJSGVscGVycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvbWlkZGxld2FyZXMvSW50ZXJ2YWxNaWRkbGV3YXJlL0ludGVydmFsSGVscGVycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvbWlkZGxld2FyZXMvSW50ZXJ2YWxNaWRkbGV3YXJlL0ludGVydmFsQWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19BWElPU19fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUGFzc3dvcmRTdHJlbmd0aC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QYXNzd29yZFN0cmVuZ3RoL1Bhc3N3b3JkU3RyZW5ndGhDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQnJlYWRjcnVtYkJhci9CcmVhZGNydW1iQmFyQ29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9MYXlvdXRBY3Rpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9MYXlvdXRDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dFNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpZ1JlcG9ydHMvRGlmZk1vZGFsL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpZ1JlcG9ydHMvRGlmZk1vZGFsL0RpZmZNb2RhbENvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9EaWZmVmlldy9kaWZmdmlldy5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9yU2VsZWN0b3JzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9jb21wb25lbnRzL0VkaXRvclZpZXcuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvVGVtcGxhdGVHZW5lcmF0b3IvVGVtcGxhdGVHZW5lcmF0b3JDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRmFjdENoYXJ0cy9zbGljZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRmlsbC9GaWxsQWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRmlsbC9GaWxsQ29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3NlcnZpY2VzL1Nsb3RzUmVnaXN0cnkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1R5cGVBaGVhZFNlbGVjdC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vVHlwZUFoZWFkU2VsZWN0L1R5cGVBaGVhZFNlbGVjdENvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vVHlwZUFoZWFkU2VsZWN0L1R5cGVBaGVhZFNlbGVjdFNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0F1ZGl0cy9BdWRpdHNQYWdlL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvQXVkaXRzL0F1ZGl0c1BhZ2UvQXVkaXRzUGFnZVNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL2NvbW1vbi9QYWdlTGF5b3V0L1BhZ2VMYXlvdXQuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUEY0L0Jvb2ttYXJrcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvRm9yZW1hbk1vZGFsQ29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9Gb3JlbWFuTW9kYWxDb250ZXh0LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0Jvb2ttYXJrcy9jb21wb25lbnRzL1NlYXJjaE1vZGFsLmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1lVUF9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL1RleHRGaWVsZC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvdmFsaWRhdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9IZWFkL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9FbXB0eVN0YXRlL0VtcHR5U3RhdGVQYXR0ZXJuLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9FbXB0eVN0YXRlL0VtcHR5U3RhdGVQcm9wVHlwZXMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9jb21tb24vTG9hZGluZ1BhZ2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2RhdGVzL1Nob3J0RGF0ZVRpbWUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Nb2RlbHMvTW9kZWxzUGFnZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Nb2RlbHNUYWJsZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvZm9ybWF0dGVycy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvZm9ybWF0dGVycy9jZWxsRm9ybWF0dGVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL1RhYmxlQm9keS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvY29tcG9uZW50cy9UYWJsZUJvZHlNZXNzYWdlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9zY2hlbWFIZWxwZXJzL2NvbHVtbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvYWN0aW9ucy9zZWxlY3Rpb25BY3Rpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb25zdGFudHMvU2VsZWN0aW9uQ29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvTW9kZWxzL01vZGVsc1BhZ2UvTW9kZWxzUGFnZVNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nUmVjb3Jkcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nUmVjb3Jkcy9TZXR0aW5nUmVjb3Jkc0FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ1JlY29yZHMvU2V0dGluZ1JlY29yZHNDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvdXNlcnMvUGVyc29uYWxBY2Nlc3NUb2tlbnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0NsaXBib2FyZENvcHkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9EYXRlQ29tcG9uZW50cy9EYXRlSW5wdXQuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL1RvZGF5QnV0dG9uLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9UaW1lQ29tcG9uZW50cy9UaW1lSW5wdXQuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL2RhdGUtdGltZS1waWNrZXIuc2NzcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19BUE9MTE9fQ0xJRU5UX19cIiIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0FjdGlvbnNCYXIvU2VsZWN0b3JzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0FjdGlvbnNCYXIvY29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0FjdGlvbnNCYXIvYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvU3RhdHVzZXNNb2RhbC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvSG9zdFN0YXR1c1NlbGVjdG9yLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZUFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdFN0YXR1c2VzL1N0YXR1cy9MaW5rT3JMYWJlbC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvSG9zdFN0YXR1c2VzU2VsZWN0b3JzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9jaGFydHMvQmFyQ2hhcnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0lucHV0RmFjdG9yeS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZVBpY2tlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvT3JkZXJhYmxlU2VsZWN0L2hlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL051bWVyaWNJbnB1dC5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9TZWxlY3RIZWxwZXJzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NoYXJ0Qm94L0NoYXJ0Qm94LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdSZWNvcmRzL1NldHRpbmdSZWNvcmRzU2VsZWN0b3JzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdVcGRhdGVNb2RhbC91c2VTZXR0aW5nTW9kYWwuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L3JlZHVjZXJzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvQVBJQWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9CcmVhZGNydW1iQmFyL0JyZWFkY3J1bWJCYXJBY3Rpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGVBY3Rpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpZ1JlcG9ydHMvRGlmZk1vZGFsL0RpZmZNb2RhbEFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvckFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1R5cGVBaGVhZFNlbGVjdC9UeXBlQWhlYWRTZWxlY3RBY3Rpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1BhZ2luYXRpb24vUGFnaW5hdGlvbldyYXBwZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L2FjdGlvbnMvaG9zdHMvc3RvcmFnZS92bXdhcmUuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfRE5EX0hUTUxfNV9CQUNLRU5EX19cIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvamVkL2plZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YSBcXC8oY2F8Y3N8ZGV8ZW58ZXN8ZnJ8Z2x8aXR8amF8a298bmx8cGx8cHR8cnV8c3Z8emgpJCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9jYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9jcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9kZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9lbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9lcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9mci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9nbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9pdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9qYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9rby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9ubC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9wdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9ydS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9zdi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS96aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucCBcXC8oY2F8Y3N8ZGV8ZW58ZXN8ZnJ8Z2x8aXR8amF8a298bmx8cGx8cHR8cnV8c3Z8emgpJCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9jYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9jcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9kZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9lbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9lcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9mci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9nbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9pdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9qYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9rby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9ubC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9wdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9ydS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9zdi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC96aC5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19ISVNUT1JZX19cIiIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvcmVkdWNlcnMvaG9zdHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L3JlZHVjZXJzL2hvc3RzL3N0b3JhZ2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L3JlZHVjZXJzL2hvc3RzL3N0b3JhZ2Uvdm13YXJlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9yZWR1Y2Vycy9ub3RpZmljYXRpb25zL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvQVBJUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvQVBJL0FQSU1pZGRsZXdhcmUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L0FQSS9BUElSZXF1ZXN0LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9taWRkbGV3YXJlcy9JbnRlcnZhbE1pZGRsZXdhcmUvSW50ZXJ2YWxNaWRkbGV3YXJlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9taWRkbGV3YXJlcy9jb21tb24vaGVscGVycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvbWlkZGxld2FyZXMvSW50ZXJ2YWxNaWRkbGV3YXJlL0ludGVydmFsUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ub2FzdHNMaXN0L3NsaWNlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1RvYXN0c0xpc3QvaGVscGVycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ub2FzdHNMaXN0L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L0FQSS9BUEkuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L0FQSS9BUElUZXN0U2V0dXAuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUGFzc3dvcmRTdHJlbmd0aC9QYXNzd29yZFN0cmVuZ3RoQWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QYXNzd29yZFN0cmVuZ3RoL1Bhc3N3b3JkU3RyZW5ndGhTZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUGFzc3dvcmRTdHJlbmd0aC9QYXNzd29yZFN0cmVuZ3RoUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QYXNzd29yZFN0cmVuZ3RoL1Bhc3N3b3JkU3RyZW5ndGguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfUEFTU1dPUkRfU1RSRU5HVEhfX1wiIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1Bhc3N3b3JkU3RyZW5ndGgvUGFzc3dvcmRTdHJlbmd0aC5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0JyZWFkY3J1bWJCYXIvQnJlYWRjcnVtYkJhclJlZHVjZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQnJlYWRjcnVtYkJhci9CcmVhZGNydW1iQmFyU2VsZWN0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQnJlYWRjcnVtYkJhci9CcmVhZGNydW1iQmFyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0JyZWFkY3J1bWJCYXIvY29tcG9uZW50cy9CcmVhZGNydW1iLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0JyZWFkY3J1bWJCYXIvY29tcG9uZW50cy9CcmVhZGNydW1icy5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0JyZWFkY3J1bWJCYXIvQnJlYWRjcnVtYkJhci5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGVSZWR1Y2VyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlTWVudS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vU3Vic3RyaW5nV3JhcHBlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRvQ29tcGxldGUvY29tcG9uZW50cy9BdXRvQ29tcGxldGVFcnJvci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRvQ29tcGxldGUvY29tcG9uZW50cy9BdXRvQ29tcGxldGVBdXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlQ2xlYXJCdXR0b24uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlRm9jdXNTaG9ydGN1dC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tbW9uL2tleUNvZGVzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9hdXRvLWNvbXBsZXRlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dFJlZHVjZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dFNlc3Npb25TdG9yYWdlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9MYXlvdXQuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvTGF5b3V0Q29udGFpbmVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9jb21wb25lbnRzL1Rvb2xiYXIvSGVhZGVyVG9vbGJhci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvY29tcG9uZW50cy9UYXhvbm9teVN3aXRjaGVyL1RheG9ub215U3dpdGNoZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvVGF4b25vbXlTd2l0Y2hlci9UYXhvbm9teURyb3Bkb3duLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9jb21wb25lbnRzL1RheG9ub215U3dpdGNoZXIvVGF4b25vbXlEcm9wZG93bi5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9jb21wb25lbnRzL1Rvb2xiYXIvVXNlckRyb3Bkb3ducy5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9PTkNMSUNLT1VUU0lERV9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L2FjdGlvbnMvbm90aWZpY2F0aW9ucy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvYWN0aW9ucy9ub3RpZmljYXRpb25zL2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL1RvZ2dsZUljb24vVG9nZ2xlSWNvbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvY29tcG9uZW50cy9JbXBlcnNvbmF0ZUljb24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvSW1wZXJzb25hdGVJY29uL0ltcGVyc29uYXRlSWNvbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvY29tcG9uZW50cy9JbXBlcnNvbmF0ZUljb24vSW1wZXJzb25hdGVJY29uLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvSW1wZXJzb25hdGVJY29uL0ltcGVyc29uYXRlSWNvbkFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvVG9vbGJhci9JbnN0YW5jZVRpdGxlVmlld2VyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9jb21wb25lbnRzL1Rvb2xiYXIvSGVhZGVyVG9vbGJhci5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Db25maWdSZXBvcnRzL0RpZmZNb2RhbC9EaWZmTW9kYWxSZWR1Y2VyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpZ1JlcG9ydHMvRGlmZk1vZGFsL0RpZmZNb2RhbC5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9ESUZGX1ZJRVdfX1wiIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1VOSURJRkZfX1wiIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0RpZmZWaWV3L0RpZmZDb25zdHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQ29uZmlnUmVwb3J0cy9EaWZmTW9kYWwvZGlmZm1vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclJlZHVjZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvci5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9BQ0VfX1wiIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX0JSQUNFX0VYVF9TRUFSQ0hCT1hfX1wiIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9jb21wb25lbnRzL0VkaXRvck5hdmJhci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvY29tcG9uZW50cy9FZGl0b3JSYWRpb0J1dHRvbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvY29tcG9uZW50cy9FZGl0b3JPcHRpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9jb21wb25lbnRzL0VkaXRvclNldHRpbmdzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9jb21wb25lbnRzL0VkaXRvckhvc3RTZWxlY3QuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUEFUVEVSTkZMWV9SRUFDVF9FWFRFTlNJT05TX19cIiIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvY29tcG9uZW50cy9lZGl0b3Job3N0c2VsZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL2NvbXBvbmVudHMvRWRpdG9yU2FmZW1vZGVDaGVja2JveC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvY29tcG9uZW50cy9lZGl0b3JzYWZlbW9kZWNoZWNrYm94LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL2NvbXBvbmVudHMvRWRpdG9yTW9kYWwuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL2VkaXRvci5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1RlbXBsYXRlR2VuZXJhdG9yL1RlbXBsYXRlR2VuZXJhdG9yU2VsZWN0b3JzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1RlbXBsYXRlR2VuZXJhdG9yL1RlbXBsYXRlR2VuZXJhdG9yUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9UZW1wbGF0ZUdlbmVyYXRvci9UZW1wbGF0ZUdlbmVyYXRvckFjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fRklMRV9TQVZFUl9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvVGVtcGxhdGVHZW5lcmF0b3IvVGVtcGxhdGVHZW5lcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0FsZXJ0L0FsZXJ0TGluay5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRmlsbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRmlsbC9GaWxsUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRmlsbC9GaWxsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9UeXBlQWhlYWRTZWxlY3QvVHlwZUFoZWFkU2VsZWN0UmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0F1ZGl0cy9BdWRpdHNQYWdlL0F1ZGl0c1BhZ2VBY3Rpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvQXVkaXRzL0F1ZGl0c1BhZ2UvQXVkaXRzUGFnZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0F1ZGl0cy9BdWRpdHNQYWdlL2F1ZGl0c3BhZ2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZWFyY2hCYXIvU2VhcmNoQmFyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1BGNC9Cb29rbWFya3MvQm9va21hcmtzQWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QRjQvQm9va21hcmtzL0Jvb2ttYXJrcy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvRm9yZW1hbk1vZGFsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9zdWJjb21wb25lbnRzL1N1Ym1pdE9yQ2FuY2VsL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9zdWJjb21wb25lbnRzL1N1Ym1pdE9yQ2FuY2VsL1N1Ym1pdE9yQ2FuY2VsQWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvc3ViY29tcG9uZW50cy9TdWJtaXRPckNhbmNlbC9TdWJtaXRPckNhbmNlbC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvc3ViY29tcG9uZW50cy9TdWJtaXRPckNhbmNlbC9TdWJtaXRCdG4uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL01lc3NhZ2VCb3gvTWVzc2FnZUJveC5jc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0xvYWRlci9Mb2FkZXIuY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9zdWJjb21wb25lbnRzL1N1Ym1pdE9yQ2FuY2VsL0NhbmNlbEJ0bi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvaGVscGVycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvRm9yZW1hbk1vZGFsUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Cb29rbWFya3MvY29tcG9uZW50cy9Cb29rbWFya0Zvcm0vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQm9va21hcmtzL2NvbXBvbmVudHMvQm9va21hcmtGb3JtL0Jvb2ttYXJrRm9ybS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvRm9yZW1hbkZvcm0vRm9yZW1hbkZvcm0uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0Zvcm0uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL1RleHRGaWVsZC9UZXh0RmllbGQuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL1RleHRGaWVsZC9UZXh0RmllbGRJbm5lci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QRjQvQm9va21hcmtzL0Jvb2ttYXJrSXRlbXMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUEY0L0RvY3VtZW50YXRpb25MaW5rL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1BGNC9Cb29rbWFya3MvQm9va21hcmtzUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QRjQvQm9va21hcmtzL0Jvb2ttYXJrc1NlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZWFyY2hCYXIvc2VhcmNoLWJhci5zY3NzIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX0hFTE1FVF9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9BdWRpdHMvQXVkaXRzUGFnZS9jb21wb25lbnRzL0F1ZGl0c1RhYmxlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvY29tbW9uL0VtcHR5UGFnZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRW1wdHlTdGF0ZS9FbXB0eVN0YXRlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0VtcHR5U3RhdGUvRGVmYXVsdEVtcHR5U3RhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9jb21tb24vRW1wdHlQYWdlL2VtcHR5cGFnZS5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvY29tbW9uL0xvYWRpbmdQYWdlL2xvYWRpbmdwYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXVkaXRzTGlzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdWRpdHNMaXN0L1NlYXJjaExpbmsuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXVkaXRzTGlzdC9TaG93SW5saW5lUmVxdWVzdFV1aWQuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXVkaXRzTGlzdC9TaG93T3Jnc0xvY3MuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXVkaXRzTGlzdC9TaG93VGF4b25vbXlJbmxpbmUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXVkaXRzTGlzdC9BY3Rpb25MaW5rcy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdWRpdHNMaXN0L0V4cGFuc2l2ZVZpZXcuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRGlmZlZpZXcvRGlmZkNvbnRhaW5lci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdWRpdHNMaXN0L1VzZXJEZXRhaWxzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1ZGl0c0xpc3QvYXVkaXQuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0F1ZGl0cy9BdWRpdHNQYWdlL2NvbXBvbmVudHMvQXVkaXRzTG9hZGluZ1BhZ2UuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9BdWRpdHMvQXVkaXRzUGFnZS9jb21wb25lbnRzL2F1ZGl0c2xvYWRpbmcuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QYWdpbmF0aW9uL1BhZ2luYXRpb25Ib29rcy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QYWdpbmF0aW9uL3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL2NvbW1vbi9yZWR1Y2VySE9DL3dpdGhRdWVyeVJlZHVjZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9jb21tb24vcmVkdWNlckhPQy93aXRoRGF0YVJlZHVjZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQm9va21hcmtzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0Jvb2ttYXJrcy9Cb29rbWFya3NBY3Rpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0Jvb2ttYXJrcy9Cb29rbWFya3MuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQm9va21hcmtzL2NvbXBvbmVudHMvQm9va21hcmsuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RvY3VtZW50YXRpb25MaW5rL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0Jvb2ttYXJrcy9Cb29rbWFya3NSZWR1Y2VyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0Jvb2ttYXJrcy9Cb29rbWFya3NTZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Nb2RlbHMvTW9kZWxzUGFnZS9Nb2RlbHNQYWdlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvTW9kZWxzL01vZGVsc1BhZ2UvY29tcG9uZW50cy9Nb2RlbHNQYWdlQ29udGVudC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Nb2RlbHNUYWJsZS9Nb2RlbHNUYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvZm9ybWF0dGVycy9mb3JtYXR0ZXJXaXRoUHJvcHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL2Zvcm1hdHRlcnMvZWxsaXBzaXNDZWxsRm9ybWF0dGVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL25hbWVDZWxsRm9ybWF0dGVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL05hbWVDZWxsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL2hvc3RzQ291bnRDZWxsRm9ybWF0dGVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL0hvc3RzQ291bnRDZWxsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL3NvcnRhYmxlSGVhZGVyRm9ybWF0dGVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL1NvcnRhYmxlSGVhZGVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL2RlbGV0ZUFjdGlvbkNlbGxGb3JtYXR0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL2NvbXBvbmVudHMvRGVsZXRlQnV0dG9uLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL3NlbGVjdGlvbkNlbGxGb3JtYXR0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL2NvbXBvbmVudHMvVGFibGVTZWxlY3Rpb25DZWxsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL3NlbGVjdGlvbkhlYWRlckNlbGxGb3JtYXR0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL2NvbXBvbmVudHMvVGFibGVTZWxlY3Rpb25IZWFkZXJDZWxsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL1RhYmxlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9zY2hlbWFIZWxwZXJzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9zY2hlbWFIZWxwZXJzL3NvcnRhYmxlQ29sdW1uLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9zY2hlbWFIZWxwZXJzL3NlbGVjdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvYWN0aW9ucy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvYWN0aW9ucy9nZXRUYWJsZUl0ZW1zQWN0aW9uLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9yZWR1Y2Vycy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvcmVkdWNlcnMvY3JlYXRlVGFibGVSZWR1Y2VyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9hY3Rpb25zSGVscGVycy9hY3Rpb25UeXBlQ3JlYXRvci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvcmVkdWNlcnMvc2VsZWN0aW9uUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvc2VsZWN0b3JzL3NlbGVjdGlvblNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Nb2RlbHNUYWJsZS9Nb2RlbHNUYWJsZVNjaGVtYS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL01vZGVscy9Nb2RlbHNQYWdlL2NvbXBvbmVudHMvTW9kZWxEZWxldGVNb2RhbC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL01vZGVscy9Nb2RlbHNQYWdlL01vZGVsc1BhZ2VBY3Rpb25zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvTW9kZWxzL01vZGVsc1BhZ2UvTW9kZWxzUGFnZUhlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ1JlY29yZHMvU2V0dGluZ1JlY29yZHNSZWR1Y2VyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zL1BlcnNvbmFsQWNjZXNzVG9rZW5zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zL1BlcnNvbmFsQWNjZXNzVG9rZW5zQWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvYWN0aW9ucy9jb21tb24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvdXNlcnMvUGVyc29uYWxBY2Nlc3NUb2tlbnMvUGVyc29uYWxBY2Nlc3NUb2tlbnNTZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvdXNlcnMvUGVyc29uYWxBY2Nlc3NUb2tlbnMvTmV3UGVyc29uYWxBY2Nlc3NUb2tlbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vQ2xpcGJvYXJkQ29weS9jbGlwYm9hcmQtY29weS5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zL1BlcnNvbmFsQWNjZXNzVG9rZW5Gb3JtLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9EYXRlVGltZS9EYXRlVGltZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZUNvbXBvbmVudHMvTW9udGhWaWV3LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9EYXRlQ29tcG9uZW50cy9EYXkuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL0hlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZUNvbXBvbmVudHMvSGVhZGVySGVscGVycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZUNvbXBvbmVudHMvWWVhclZpZXcuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL0RlY2FkZVZpZXcuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL0RlY2FkZVZpZXdIZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL0RlY2FkZVZpZXdUYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvVGltZUNvbXBvbmVudHMvUGlja1RpbWVUYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvVGltZUNvbXBvbmVudHMvUGlja1RpbWVDbG9jay5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvRGF0ZVRpbWUvRGF0ZVRpbWVPdmVycmlkZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy91c2Vycy9QZXJzb25hbEFjY2Vzc1Rva2Vucy9QZXJzb25hbEFjY2Vzc1Rva2Vuc0xpc3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvdXNlcnMvUGVyc29uYWxBY2Nlc3NUb2tlbnMvUGVyc29uYWxBY2Nlc3NUb2tlbnNMaXN0L1BlcnNvbmFsQWNjZXNzVG9rZW4uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQ29uZmlybU1vZGFsL3NsaWNlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zL1BlcnNvbmFsQWNjZXNzVG9rZW5zUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvbWlkZGxld2FyZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUkVEVVhfTE9HR0VSX19cIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRURVWF9USFVOS19fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L2FjdGlvbnMvaG9zdHMvc3RvcmFnZS92bXdhcmUuY29uc3RzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9Sb290L1JlYWN0QXBwLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvcm91dGVzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvQXVkaXRzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvTW9kZWxzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvSG9zdERldGFpbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvQWN0aW9uc0Jhci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9BY3Rpb25zQmFyL0J1aWxkTW9kYWwuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvVGFicy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9UYWJzL092ZXJ2aWV3L2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1RhYnMvT3ZlcnZpZXcvQ2FyZHNSZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9BdWRpdHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvRGV0YWlsc0NhcmQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvRGV0YWlsc0NhcmQvRGVmYXVsdExvYWRlckVtcHR5U3RhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvRGV0YWlsc0NhcmQvUG93ZXJTdGF0dXMvUG93ZXJTdGF0dXNEcm9wRG93bi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9EZXRhaWxzQ2FyZC9Qb3dlclN0YXR1cy9Qb3dlclN0YXR1c0ljb24uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvRGV0YWlsc0NhcmQvUG93ZXJTdGF0dXMvYWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvQWdncmVnYXRlU3RhdHVzQ2FyZC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvU3RhdHVzVGFibGUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvU3RhdHVzL1N0YXR1c0FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvU3RhdHVzL0dsb2JhbFN0YXRlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1N0YXR1cy9BZ2dyZWdhdGVTdGF0dXNJdGVtLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9TbG90L1Nsb3QuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvVGFicy9PdmVydmlldy9EZXRhaWxzLmNzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvR2xvYmFsU3RhdHVzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0hvc3REZXRhaWxzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvVGFicy9UYWJSb3V0ZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvVGFicy9UYWJSb3V0ZXIvVGFicy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9FeHBlcmltZW50YWxBbGVydC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0hvc3REZXRhaWxzL2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZVNlbGVjdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2VDb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvY29tcG9uZW50cy9HZW5lcmFsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvZmllbGRzL1RheG9ub21pZXMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvY29tcG9uZW50cy9maWVsZHMvSG9zdEdyb3VwLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvZmllbGRzL09wZXJhdGluZ1N5c3RlbS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL2ZpZWxkcy9TbWFydFByb3h5LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvZmllbGRzL0luc2VjdXJlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvQWR2YW5jZWQuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvY29tcG9uZW50cy9maWVsZHMvQ29uZmlnUGFyYW1zLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvZmllbGRzL1BhY2thZ2VzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvZmllbGRzL1JlcG9zaXRvcnkuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvY29tcG9uZW50cy9maWVsZHMvVG9rZW5MaWZlVGltZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL2ZpZWxkcy9VcGRhdGVQYWNrYWdlcy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL0FjdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvY29tcG9uZW50cy9Db21tYW5kLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvSG9zdFN0YXR1c2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3RTdGF0dXNlcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvU3RhdHVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3RTdGF0dXNlcy9TdGF0dXMvRGV0YWlscy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvU3RhdHVzL1N0YXR1cy5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3RTdGF0dXNlcy9TdGF0dXMvU3RhdHVzU2tlbGV0b24uanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdFN0YXR1c2VzL0hvc3RTdGF0dXNlcy5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvSG9zdFN0YXR1c2VzL2NvbnN0YW50cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0ZvcmVtYW5Td2l0Y2hlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JvdXRlclNlbGVjdG9yLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9Sb290L2Fwb2xsby5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19BUE9MTE9fQ0xJRU5UX0xJTktfQkFUQ0hfSFRUUF9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0Vycm9yQm91bmRhcnkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0Vycm9yQm91bmRhcnkvaW5kZXguc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vY2hhcnRzL0FyZWFDaGFydC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvQXJlYUNoYXJ0U2VydmljZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvQ2hhcnRTZXJ2aWNlLmNvbnN0cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvQmFyQ2hhcnRTZXJ2aWNlLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3NlcnZpY2VzL2NoYXJ0cy9Eb251dENoYXJ0U2VydmljZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vY2hhcnRzL0xpbmVDaGFydC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvTGluZUNoYXJ0U2VydmljZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9wb3dlclN0YXR1cy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9wb3dlclN0YXR1cy9Qb3dlclN0YXR1cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9wb3dlclN0YXR1cy9Qb3dlclN0YXR1cy5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2hvc3RzL3Bvd2VyU3RhdHVzL1Bvd2VyU3RhdHVzQ29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2hvc3RzL3Bvd2VyU3RhdHVzL1Bvd2VyU3RhdHVzU2VsZWN0b3JzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9kYXRlcy9Mb25nRGF0ZVRpbWUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2RhdGVzL0lzb0RhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0Zvcm1GaWVsZC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvT3JkZXJhYmxlU2VsZWN0L2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9PcmRlcmFibGVTZWxlY3QvT3JkZXJhYmxlU2VsZWN0LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9PcmRlcmFibGVTZWxlY3QvT3JkZXJhYmxlU2VsZWN0SG9va3MuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL09yZGVyYWJsZVNlbGVjdC9jb21wb25lbnRzL09yZGVyYWJsZVRva2VuLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL01lbW9yeUFsbG9jYXRpb25JbnB1dC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9NZW1vcnlBbGxvY2F0aW9uSW5wdXQvTWVtb3J5QWxsb2NhdGlvbklucHV0LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL01lbW9yeUFsbG9jYXRpb25JbnB1dC9jb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0NvdW50ZXJJbnB1dC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvQ291bnRlcklucHV0L0NvdW50ZXJJbnB1dC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvVGltZVBpY2tlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9jb250cm9sbGVyL2luZGV4LmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX05VTUJFUl9IRUxQRVJTX19cIiIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9jb250cm9sbGVyL2Rpc2svaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0NoZWNrYm94LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9OdW1lcmljSW5wdXQuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvaG9zdHMvc3RvcmFnZS92bXdhcmUvY29udHJvbGxlci9kaXNrL2Rpc2suc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9jb250cm9sbGVyL2NvbnRyb2xsZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9TdG9yYWdlQ29udGFpbmVyLmNvbnN0cy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9TdG9yYWdlQ29udGFpbmVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRmFjdENoYXJ0cy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9GYWN0Q2hhcnRzL0ZhY3RDaGFydC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9GYWN0Q2hhcnRzL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRmFjdENoYXJ0cy9zZWxlY3RvcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0NvbXBvbmVudFdyYXBwZXIvQ29tcG9uZW50V3JhcHBlci5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9DaGFydEJveC9DaGFydEJveC5jc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQ29uZmlnUmVwb3J0cy9Db25maWdSZXBvcnRzLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpZ1JlcG9ydHMvQ29uZmlnUmVwb3J0cy5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3dyYXBwZXJGYWN0b3J5LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vaTE4blByb3ZpZGVyV3JhcHBlckZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTG9naW5QYWdlL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xvZ2luUGFnZS9Mb2dpblBhZ2UuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTG9naW5QYWdlL2hlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTG9naW5QYWdlL0xvZ2luUGFnZS5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0V4dGVybmFsTG9nb3V0L2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0V4dGVybmFsTG9nb3V0L0V4dGVybmFsTG9nb3V0LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0V4dGVybmFsTG9nb3V0L2V4dGVybmFsTG9nb3V0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1JlZGlyZWN0Q2FuY2VsQnV0dG9uL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9SZWRpcmVjdENhbmNlbEJ1dHRvbi9SZWRpcmVjdENhbmNlbEJ1dHRvbi5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tbW9uL3dpdGhSZWFjdFJvdXRlcy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nc1RhYmxlL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdzVGFibGUvU2V0dGluZ3NUYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nc1RhYmxlL1NldHRpbmdzVGFibGVTY2hlbWEuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ3NUYWJsZS9TZXR0aW5nc1RhYmxlRm9ybWF0dGVycy5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nc1RhYmxlL2NvbXBvbmVudHMvU2V0dGluZ05hbWUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ3NUYWJsZS9jb21wb25lbnRzL1NldHRpbmdDZWxsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdzVGFibGUvY29tcG9uZW50cy9TZXR0aW5nQ2VsbElubmVyLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdzVGFibGUvY29tcG9uZW50cy9TZXR0aW5nQ2VsbC5zY3NzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdVcGRhdGVNb2RhbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nVXBkYXRlTW9kYWwvU2V0dGluZ1VwZGF0ZU1vZGFsLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdVcGRhdGVNb2RhbC9jb21wb25lbnRzL1NldHRpbmdGb3JtL2luZGV4LmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdVcGRhdGVNb2RhbC9jb21wb25lbnRzL1NldHRpbmdGb3JtL1NldHRpbmdGb3JtLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdVcGRhdGVNb2RhbC9jb21wb25lbnRzL1NldHRpbmdWYWx1ZUZpZWxkLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dGhTb3VyY2UvV2VsY29tZS5qcyIsIndlYnBhY2s6Ly8vLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Db25maWdSZXBvcnRzL1dlbGNvbWUuanMiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXJjaGl0ZWN0dXJlcy9XZWxjb21lLmpzIiwid2VicGFjazovLy8uL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vTW91bnRpbmdTZXJ2aWNlLmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX0RPTV9fXCIiLCJ3ZWJwYWNrOi8vLy4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L3JlZHVjZXJzL3JlZ2lzdGVyUmVkdWNlci5qcyIsIndlYnBhY2s6Ly8vL3Byb2plY3RzL2ZvcmVtYW5fcGF0Y2gvd2VicGFjay9nbG9iYWxfaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy9wcm9qZWN0cy9mb3JlbWFuX3BhdGNoL3dlYnBhY2svc3JjL1JvdXRlci9yb3V0ZXMuanMiLCJ3ZWJwYWNrOi8vLy9wcm9qZWN0cy9mb3JlbWFuX3BhdGNoL3dlYnBhY2svc3JjL3JlZHVjZXJzLmpzIl0sIm5hbWVzIjpbIl9qZWQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdEludGwiLCJfZm9yY2VTaW5nbGV0b24iLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiT2JqZWN0IiwiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsImRlc2MiLCJ2YWx1ZSIsIiRTeW1ib2wiLCJpdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImVyciIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsImFyZyIsInR5cGUiLCJjYWxsIiwiQ29udGludWVTZW50aW5lbCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldFByb3RvIiwiZ2V0UHJvdG90eXBlT2YiLCJOYXRpdmVJdGVyYXRvclByb3RvdHlwZSIsInZhbHVlcyIsIkdwIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVjb3JkIiwicmVzdWx0IiwiX19hd2FpdCIsInRoZW4iLCJ1bndyYXBwZWQiLCJlcnJvciIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwic3RhdGUiLCJFcnJvciIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiZG9uZSIsIm1ldGhvZE5hbWUiLCJ1bmRlZmluZWQiLCJUeXBlRXJyb3IiLCJpbmZvIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwibG9jcyIsImVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNOYU4iLCJsZW5ndGgiLCJpIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsIml0ZXIiLCJrZXlzIiwidmFsIiwib2JqZWN0IiwicmV2ZXJzZSIsInBvcCIsInNraXBUZW1wUmVzZXQiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicm9vdFJlY29yZCIsInJ2YWwiLCJleGNlcHRpb24iLCJoYW5kbGUiLCJsb2MiLCJjYXVnaHQiLCJoYXNDYXRjaCIsImhhc0ZpbmFsbHkiLCJmaW5hbGx5RW50cnkiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsInRocm93biIsImRlbGVnYXRlWWllbGQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwic2V0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiZGVzY3JpcHRvciIsIl90b1Byb3BlcnR5S2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiSW50bExvYWRlciIsImxvY2FsZSIsInRpbWV6b25lIiwiZmFsbGJhY2tJbnRsIiwiZ2xvYmFsIiwiSW50bCIsInNwbGl0IiwicmVhZHkiLCJpbml0IiwiX2luaXQiLCJfY2FsbGVlIiwiX3RoaXMiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiZmV0Y2hJbnRsIiwidDAiLCJhZGRMb2NhbGVEYXRhIiwiY29uY2F0IiwidDEiLCJfZmV0Y2hJbnRsIiwiX2NhbGxlZTIiLCJfdGhpczIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJodG1sRWxlbW50IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImxhbmdBdHRyIiwiZ2V0QXR0cmlidXRlIiwidGltZXpvbmVBdHRyIiwiaW50bCIsImZvcmNlU2luZ2xldG9uIiwiY2hldmVyb25QcmVmaXgiLCJ3aW5kb3ciLCJJMThOX01BUksiLCJjaGV2ZXJvblN1ZmZpeCIsImRvY3VtZW50TG9jYWxlIiwiZ2V0TG9jYWxlRGF0YSIsImxvY2FsZXMiLCJyZXBsYWNlIiwiY29uc29sZSIsImxvZyIsImRvbWFpbiIsImxvY2FsZV9kYXRhIiwiYXBwIiwiamVkIiwiSmVkIiwidHJhbnNsYXRlIiwiZ2V0dGV4dCIsIm5nZXR0ZXh0Iiwic3ByaW50ZiIsImkxOG4iLCJfZGVmYXVsdCIsIl9fIiwibl9fIiwiX2xvZGFzaCIsIl91cmlqcyIsIl9JMThuIiwiX2RlZmluZVByb3BlcnR5IiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2kiLCJfcyIsIl9lIiwiX3giLCJfciIsIl9hcnIiLCJfbiIsIl9kIiwiQXJyYXkiLCJpc0FycmF5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsInNvdXJjZSIsImlzb0NvbXBhdGlibGVEYXRlIiwiZGF0ZSIsIm1hdGNoIiwiZGVib3VuY2VNZXRob2RzIiwidGltZSIsIm1ldGhvZHMiLCJtZXRob2RUaW1lIiwiZGVib3VuY2UiLCJiaW5kTWV0aG9kcyIsInJlbW92ZUxhc3RTbGFzaEZyb21QYXRoIiwicGF0aCIsImxhc3RDaGFySW5kZXgiLCJub29wIiwiRnVuY3Rpb24iLCJuZXdXaW5kb3dPbkNsaWNrIiwidXJsIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsIm5ld1dpbmRvdyIsIm9wZW4iLCJvcGVuZXIiLCJjbGVhclNwYWNlcyIsInN0cmluZyIsInRyaW0iLCJnZXREaXNwbGF5TmFtZSIsIkNvbXBvbmVudCIsInRyYW5zbGF0ZU9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJfcmVmIiwiX3JlZjIiLCJrIiwidiIsInRyYW5zbGF0ZUFycmF5Iiwic3RyIiwiZ2V0VVJJUXVlcnkiLCJVUkkiLCJxdWVyeSIsInByb3BzVG9TbmFrZUNhc2UiLCJvYiIsInByb3BzVG9DYXNlIiwic25ha2VDYXNlIiwicHJvcHNUb0NhbWVsQ2FzZSIsImNhbWVsQ2FzZSIsImNhc2luZ0ZuIiwiZXJyb3JNc2ciLCJyZWR1Y2UiLCJtZW1vIiwiZGVlcFByb3BzVG9DYW1lbENhc2UiLCJkZWVwUHJvcHNUb0Nhc2UiLCJkZWVwUHJvcHNUb1NuYWtlQ2FzZSIsInRyYW5zZm9ybWVkIiwic3RyaW5nSXNQb3NpdGl2ZU51bWJlciIsInJlZyIsIlJlZ0V4cCIsImdldE1hbnVhbFVSTCIsInNlY3Rpb24iLCJmb3JlbWFuVXJsIiwiZ2V0V2lraVVSTCIsImZvcm1hdERhdGUiLCJmb3JtYXREYXRlVGltZSIsInplcm9QYWRkaW5nIiwiX3llYXIkbW9udGgkZGF5JGhvdXIkIiwieWVhciIsImdldEZ1bGxZZWFyIiwibW9udGgiLCJnZXRNb250aCIsImRheSIsImdldERhdGUiLCJob3VyIiwiZ2V0SG91cnMiLCJtaW51dGVzIiwiZ2V0TWludXRlcyIsIlVSTF9QUkVGSVgiLCJfaGVscGVycyIsIlNUQVRVUyIsIlBFTkRJTkciLCJSRVNPTFZFRCIsIkVSUk9SIiwiZ2V0Q29udHJvbGxlclNlYXJjaFByb3BzIiwiY29udHJvbGxlciIsImlkIiwiY2FuQ3JlYXRlIiwiYXV0b2NvbXBsZXRlIiwic2VhcmNoUXVlcnkiLCJ1c2VLZXlTaG9ydGN1dHMiLCJib29rbWFya3MiLCJkb2N1bWVudGF0aW9uVXJsIiwiX0FQSVJlZHVjZXIiLCJfQVBJQWN0aW9uVHlwZUdlbmVyYXRvciIsIl9BUElDb25zdGFudHMiLCJfQVBJTWlkZGxld2FyZSIsIl9BUEkiLCJfQVBJQWN0aW9ucyIsIl9leHBvcnROYW1lcyIsInJlZHVjZXJzIiwiQVBJIiwiYXBpUmVkdWNlciIsIl9jb25zdGFudHMiLCJzZWxlY3RBUEkiLCJzZWxlY3RBUElCeUtleSIsInNlbGVjdEFQSVN0YXR1cyIsInN0YXR1cyIsInNlbGVjdEFQSVBheWxvYWQiLCJwYXlsb2FkIiwic2VsZWN0QVBJUmVzcG9uc2UiLCJyZXNwb25zZSIsInNlbGVjdEFQSUVycm9yIiwic2VsZWN0QVBJRXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsIl9qcXVlcnkiLCJfZm9yZW1hbl9uYXZpZ2F0aW9uIiwiX3JlZHV4IiwiX0NvbmZpcm1Nb2RhbCIsIl9EZXByZWNhdGlvblNlcnZpY2UiLCJvcGVuQ29uZmlybU1vZGFsIiwib3B0aW9ucyIsInN0b3JlIiwiZGlzcGF0Y2giLCJjb3JlT3BlbkNvbmZpcm1Nb2RhbCIsInNob3dTcGlubmVyIiwic2hvd0xvYWRpbmciLCJoaWRlU3Bpbm5lciIsImhpZGVMb2FkaW5nIiwiaWNvblRleHQiLCJpbm5lclRleHQiLCJpY29uQ2xhc3MiLCJpY29uIiwiYWN0aXZhdGVEYXRhdGFibGVzIiwibGFuZ3VhZ2UiLCJzZWFyY2hQbGFjZWhvbGRlciIsImVtcHR5VGFibGUiLCJpbmZvRW1wdHkiLCJpbmZvRmlsdGVyZWQiLCJsZW5ndGhNZW51IiwibG9hZGluZ1JlY29yZHMiLCJwcm9jZXNzaW5nIiwic2VhcmNoIiwiemVyb1JlY29yZHMiLCJwYWdpbmF0ZSIsImZpcnN0IiwibGFzdCIsInByZXZpb3VzIiwiYXJpYSIsInNvcnRBc2NlbmRpbmciLCJzb3J0RGVzY2VuZGluZyIsIiQiLCJub3QiLCJEYXRhVGFibGUiLCJkb20iLCJlYWNoIiwiZWwiLCJzZXJ2ZXJTaWRlIiwib3JkZXJpbmciLCJhamF4IiwiYWN0aXZhdGVUb29sdGlwcyIsImVsUGFyYW0iLCJ0b29sdGlwIiwic2VsZWN0b3IiLCJjb250YWluZXIiLCJ0cmlnZ2VyIiwiZmluZCIsInRpdGxlIiwic2Nyb2xsV2lkdGgiLCJjbGllbnRXaWR0aCIsInRleHRDb250ZW50IiwiaW5pdFR5cGVBaGVhZFNlbGVjdCIsInNlbGVjdDIiLCJkYXRhIiwiZGF0YVR5cGUiLCJxdWlldE1pbGxpcyIsInRlcm0iLCJwYWdlIiwicSIsInNjb3BlIiwicmVzdWx0cyIsInRleHQiLCJpbml0U2VsZWN0aW9uIiwiZWxlbWVudCIsImNhbGxiYWNrIiwid2lkdGgiLCJzZXRUYWIiLCJ1cmxIYXNoIiwibG9jYXRpb24iLCJoYXNoIiwic3RhcnRzV2l0aCIsInRhYkNvbnRlbnQiLCJwYXJlbnRUYWIiLCJjbG9zZXN0IiwiZXhpc3RzIiwidGFiIiwiaGlnaGxpZ2h0VGFiRXJyb3JzIiwiZXJyb3JGaWVsZHMiLCJwYXJlbnRzIiwiYWRkQ2xhc3MiLCJjbGljayIsImZvY3VzIiwiX3JlYWN0IiwiX3Byb3BUeXBlcyIsIl9yZWFjdENvcmUiLCJfcmVhY3RJY29ucyIsIkxhYmVsSWNvbiIsImNyZWF0ZUVsZW1lbnQiLCJQb3BvdmVyIiwiYm9keUNvbnRlbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiZSIsIkhlbHBJY29uIiwibm9WZXJ0aWNhbEFsaWduIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiaXNSZXF1aXJlZCIsInVybEJ1aWxkZXIiLCJhY3Rpb24iLCJ1cmxXaXRoU2VhcmNoIiwiYmFzZSIsImdldFVSSSIsImhyZWYiLCJnZXRVUklwYWdlIiwiZ2V0VVJJcGVyUGFnZSIsInBlcl9wYWdlIiwiZ2V0VVJJc2VhcmNoIiwiZ2V0VVJJc29ydCIsInNvcnRTdHJpbmciLCJvcmRlciIsIl9zb3J0U3RyaW5nJHNwbGl0IiwiX3NvcnRTdHJpbmckc3BsaXQyIiwiYnkiLCJnZXRQYXJhbXMiLCJwZXJQYWdlIiwic29ydCIsInN0cmluZ2lmeVBhcmFtcyIsIl9yZWYkcGFnZSIsIl9yZWYkcGVyUGFnZSIsIl9yZWYkc2VhcmNoUXVlcnkiLCJfcmVmJHNvcnQiLCJ1cmkiLCJzZXRTZWFyY2giLCJjaGFuZ2VRdWVyeSIsIm5ld1F1ZXJ5IiwibmF2aWdhdGVUbyIsInNldFF1ZXJ5IiwidmlzaXQiLCJleHBvcnRVUkwiLCJhZGRRdWVyeSIsInBhdGhuYW1lIiwiX2hpc3RvcnkiLCJoaXN0b3J5IiwiY3JlYXRlQnJvd3Nlckhpc3RvcnkiLCJNZXNzYWdlQm94IiwibXNnIiwiaWNvbnR5cGUiLCJkZWZhdWx0UHJvcHMiLCJfY29ubmVjdGVkUmVhY3RSb3V0ZXIiLCJMYXlvdXRBY3Rpb25zIiwicmVsb2FkUGFnZSIsInJlbG9hZCIsInB1c2hVcmwiLCJxdWVyeVBhcmFtcyIsInVybFdpdGhRdWVyaWVzIiwiY2hhbmdlTG9jYXRpb24iLCJkZXByZWNhdGUiLCJjaGFuZ2VPcmdhbml6YXRpb24iLCJvcmciLCJjaGFuZ2VBY3RpdmUiLCJhY3RpdmUiLCJjaGFuZ2VBY3RpdmVNZW51Iiwic2hvd0NvbnRlbnQiLCJsYXlvdXQiLCJ1bnN1YnNjcmliZSIsImNvbnRlbnQiLCJzaG93IiwiaXRlbXMiLCJpc0xvYWRpbmciLCJfcmVkdWNlcnMiLCJfbWlkZGxld2FyZXMiLCJjb21wb3NlRW5oYW5jZXJzIiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fIiwiY29tcG9zZSIsImdlbmVyYXRlU3RvcmUiLCJjcmVhdGVTdG9yZSIsImFwcGx5TWlkZGxld2FyZSIsIm1pZGRsZXdhcmVzIiwiX3JlYWN0UmVkdXgiLCJfc2xpY2UiLCJfZXhjbHVkZWQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJleGNsdWRlZCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic291cmNlU3ltYm9sS2V5cyIsImluZGV4T2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInNvdXJjZUtleXMiLCJUb2FzdHNMaXN0IiwicmFpbHNNZXNzYWdlcyIsInVzZURpc3BhdGNoIiwibWVzc2FnZXMiLCJ1c2VTZWxlY3RvciIsInNlbGVjdFRvYXN0c0xpc3QiLCJ1c2VFZmZlY3QiLCJhZGRUb2FzdCIsInRvYXN0c0xpc3QiLCJfcmVmNCIsIl9yZWY1IiwiX3JlZjMiLCJsaW5rIiwic3RpY2t5IiwidG9hc3RQcm9wcyIsIkFsZXJ0IiwidG9hc3RUaXRsZSIsInRvYXN0VHlwZSIsInZhcmlhbnQiLCJ0aW1lb3V0Iiwib25UaW1lb3V0IiwiZGVsZXRlVG9hc3QiLCJhY3Rpb25DbG9zZSIsIkFsZXJ0QWN0aW9uQ2xvc2VCdXR0b24iLCJvbkNsb3NlIiwiYWN0aW9uTGlua3MiLCJBbGVydEFjdGlvbkxpbmsiLCJjaGlsZHJlbiIsIlJlYWN0IiwiaXNWYWxpZEVsZW1lbnQiLCJBbGVydEdyb3VwIiwiaXNUb2FzdCIsImFycmF5IiwiZ2V0Rm9yZW1hbkNvbnRleHQiLCJjb250ZXh0RGF0YSIsImNyZWF0ZUNvbnRleHQiLCJ1c2VGb3JlbWFuQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VGb3JlbWFuTWV0YWRhdGEiLCJtZXRhZGF0YSIsInVzZUZvcmVtYW5WZXJzaW9uIiwidmVyc2lvbiIsInVzZUZvcmVtYW5TZXR0aW5ncyIsIlVJU2V0dGluZ3MiLCJ1c2VGb3JlbWFuRG9jVXJsIiwiZG9jVXJsIiwidXNlRm9yZW1hbk9yZ2FuaXphdGlvbiIsIm9yZ2FuaXphdGlvbiIsInVzZUZvcmVtYW5Mb2NhdGlvbiIsInVzZUZvcmVtYW5Vc2VyIiwidXNlciIsIkNvbmZpcm1Nb2RhbCIsIl91c2VTZWxlY3RvciIsInNlbGVjdENvbmZpcm1Nb2RhbCIsImlzT3BlbiIsImNvbmZpcm1CdXR0b25UZXh0Iiwib25Db25maXJtIiwib25DYW5jZWwiLCJtb2RhbFByb3BzIiwiaXNXYXJuaW5nIiwiY2xvc2VNb2RhbCIsImNsb3NlQ29uZmlybU1vZGFsIiwiaGFuZGxlQ2FuY2VsIiwiaGFuZGxlQ29uZmlybSIsImFjdGlvbnMiLCJCdXR0b24iLCJNb2RhbCIsIk1vZGFsVmFyaWFudCIsInNtYWxsIiwidGl0bGVJY29uVmFyaWFudCIsInRmbV9mb3JjZWRfc2luZ2xldG9ucyIsIl9JbnRlcnZhbE1pZGRsZXdhcmUiLCJfSW50ZXJ2YWxSZWR1Y2VyIiwiX0ludGVydmFsQWN0aW9ucyIsIl9JbnRlcnZhbEhlbHBlcnMiLCJDb21tb25Gb3JtIiwibGFiZWwiLCJ0b3VjaGVkIiwicmVxdWlyZWQiLCJpbnB1dENsYXNzTmFtZSIsInRvb2x0aXBIZWxwIiwiYm9vbCIsIm9uZU9mVHlwZSIsIm5vZGUiLCJfRm9yZW1hbk1vZGFsU2VsZWN0b3JzIiwiX0ZvcmVtYW5Nb2RhbEFjdGlvbnMiLCJfRm9yZW1hbk1vZGFsQ29udGV4dCIsInVzZU1vZGFsQ29udGV4dCIsIk1vZGFsQ29udGV4dCIsInVzZUZvcmVtYW5Nb2RhbCIsIl9yZWYkaXNPcGVuIiwiaW5pdGlhbE1vZGFsU3RhdGUiLCJtb2RhbE9wZW4iLCJzZWxlY3RJc01vZGFsT3BlbiIsImJvdW5kU2V0TW9kYWxDbG9zZWQiLCJzZXRNb2RhbENsb3NlZCIsImJvdW5kU2V0TW9kYWxPcGVuIiwic2V0TW9kYWxPcGVuIiwiX0VtcHR5U3RhdGVQYXR0ZXJuIiwiX0RlZmF1bHRFbXB0eVN0YXRlIiwiRGVmYXVsdEVtcHR5U3RhdGUiLCJNT0RFTFNfUEFHRV9EQVRBX1JFU09MVkVEIiwiTU9ERUxTX1BBR0VfREFUQV9GQUlMRUQiLCJNT0RFTFNfUEFHRV9ISURFX0xPQURJTkciLCJNT0RFTFNfUEFHRV9TSE9XX0xPQURJTkciLCJNT0RFTFNfUEFHRV9DTEVBUl9FUlJPUiIsIk1PREVMU19TRUFSQ0hfUFJPUFMiLCJNT0RFTFNfQVBJX1BBVEgiLCJNT0RFTFNfUEFUSCIsIk1PREVMX0RFTEVURV9NT0RBTF9JRCIsIkFQSV9SRVFVRVNUX0tFWSIsIl92IiwiX0FQSVNlbGVjdG9ycyIsIm93bktleXMiLCJlbnVtZXJhYmxlT25seSIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJfb2JqZWN0U3ByZWFkIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJ1c2VBUEkiLCJrZXlSZWYiLCJ1c2VSZWYiLCJjdXJyZW50IiwidXVpZCIsIkFQSUFjdGlvbnMiLCJzaGFsbG93RXF1YWwiLCJfcmVhY3RMb2FkaW5nU2tlbGV0b24iLCJTa2VsZXRvbkxvYWRlciIsImN1c3RvbVNrZWxldG9uIiwic2tlbGV0b25Qcm9wcyIsImVtcHR5U3RhdGUiLCJlcnJvck5vZGUiLCJIT1NUX1NUQVRVU0VTX0tFWSIsIkNMRUFSX1NUQVRVU19LRVkiLCJIT1NUX1NUQVRVU0VTX09QVElPTlMiLCJBTExfU1RBVFVTX1NUQVRFIiwiTkFfU1RBVFVTX1NUQVRFIiwiRVJST1JfU1RBVFVTX1NUQVRFIiwiV0FSTklOR19TVEFUVVNfU1RBVEUiLCJPS19TVEFUVVNfU1RBVEUiLCJTVVBQT1JURURfU1RBVFVTRVMiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwicyIsImYiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwic3RlcCIsIl9lMiIsImNyZWF0ZUluaXRpYWxUYXhvbm9teSIsImN1cnJlbnRUYXhvbm9teSIsImF2YWlsYWJsZVRheG9ub21pZXMiLCJ0YXhvbm9teUlkIiwidGF4b25vbXkiLCJnZXRDdXJyZW50UGF0aCIsImdldEFjdGl2ZU1lbnVJdGVtIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJpdGVtIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImNoaWxkIiwiZXhhY3QiLCJoYW5kbGVNZW51Q2xpY2siLCJwcmltYXJ5IiwiYWN0aXZlTWVudSIsImNvbWJpbmVNZW51SXRlbXMiLCJtZW51IiwidHJhbnNsYXRlZENoaWxkcmVuIiwiaXNFbXB0eSIsInRyYW5zbGF0ZWRJdGVtIiwiY3JlYXRlT3JnSXRlbSIsIm9yZ3MiLCJhdmFpbGFibGVfb3JnYW5pemF0aW9ucyIsImNyZWF0ZUxvY2F0aW9uSXRlbSIsImxvY2F0aW9ucyIsImF2YWlsYWJsZV9sb2NhdGlvbnMiLCJhbnlPcmciLCJjaGlsZHJlbkFycmF5IiwiY2hpbGRPYmplY3QiLCJvcmdJdGVtIiwiYW55TG9jIiwibG9jSXRlbSIsIm9yZ2FuaXphdGlvblByb3BUeXBlIiwic2hhcGUiLCJjdXJyZW50X29yZyIsImFycmF5T2YiLCJudW1iZXIiLCJsb2NhdGlvblByb3BUeXBlIiwiY3VycmVudF9sb2NhdGlvbiIsInVzZXJQcm9wVHlwZSIsImN1cnJlbnRfdXNlciIsInVzZXJfZHJvcGRvd24iLCJhbnkiLCJkYXRhUHJvcFR5cGUiLCJicmFuZCIsInN0b3BfaW1wZXJzb25hdGlvbl91cmwiLCJpbnN0YW5jZV90aXRsZSIsInJvb3QiLCJsb2dvIiwibm90aWZpY2F0aW9uX3VybCIsImxheW91dFByb3BUeXBlcyIsImlzQ29sbGFwc2VkIiwibmF2aWdhdGUiLCJmdW5jIiwiZXhwYW5kTGF5b3V0TWVudXMiLCJjb2xsYXBzZUxheW91dE1lbnVzIiwiaW5pdGlhbEFjdGl2ZSIsInN1Ykl0ZW1zIiwiaXNEaXZpZGVyIiwibGF5b3V0RGVmYXVsdFByb3BzIiwic2VsZWN0Rm9yZW1hbk1vZGFsc1N0YXRlIiwiZm9yZW1hbk1vZGFscyIsInNlbGVjdE1vZGFsU3RhdGVCeUlkIiwic2VsZWN0SXNNb2RhbFN1Ym1pdHRpbmciLCJpc1N1Ym1pdHRpbmciLCJzZWxlY3RNb2RhbEV4aXN0cyIsIl9Gb3JlbWFuTW9kYWwiLCJfRm9yZW1hbk1vZGFsSGVhZGVyIiwiX0ZvcmVtYW5Nb2RhbEZvb3RlciIsIl9Gb3JlbWFuTW9kYWxSZWR1Y2VyIiwicmVkdWNlciIsIkNvbm5lY3RlZEZvcmVtYW5Nb2RhbCIsIm1vZGFsRXhpc3RzIiwiYWRkTW9kYWwiLCJIZWFkZXIiLCJGb3JlbWFuTW9kYWxIZWFkZXIiLCJGb290ZXIiLCJGb3JlbWFuTW9kYWxGb290ZXIiLCJfcGF0dGVybmZseVJlYWN0IiwiX01lc3NhZ2VCb3giLCJfc2ltcGxlTG9hZGVyIiwic3Bpbm5lclNpemUiLCJTcGlubmVyIiwibG9hZGluZyIsInNpemUiLCJMb2FkZXIiLCJzaW1wbGVMb2FkZXIiLCJhZGREYXlzIiwiZGF5cyIsIkRhdGUiLCJzZXREYXRlIiwiYWRkTW9udGhzIiwibW9udGhzIiwic2V0TW9udGgiLCJhZGRZZWFycyIsInllYXJzIiwic2V0WWVhciIsImlzRXF1YWxEYXRlIiwiZGF0ZTEiLCJkYXRlMiIsImdldFllYXIiLCJpc1dlZWtlbmQiLCJnZXREYXkiLCJnZXRNb250aFN0YXJ0IiwiZ2V0V2Vla1N0YXJ0IiwiaGVscGVycyIsIllFQVIiLCJNT05USCIsIkRBWSIsIlJlbGF0aXZlRGF0ZVRpbWUiLCJkZWZhdWx0VmFsdWUiLCJpc29EYXRlIiwibWludXRlIiwiRm9ybWF0dGVkUmVsYXRpdmUiLCJzdHlsZSIsImNvbnRleHRUeXBlcyIsImludGxTaGFwZSIsIl9Db25zdGFudHMiLCJTdGF0dXNJY29uIiwic3RhdHVzTnVtYmVyIiwiQ2hlY2tDaXJjbGVJY29uIiwiRXhjbGFtYXRpb25UcmlhbmdsZUljb24iLCJFeGNsYW1hdGlvbkNpcmNsZUljb24iLCJCYW5JY29uIiwiQVVUT19DT01QTEVURV9JTklUIiwiQVVUT19DT01QTEVURV9SRVFVRVNUIiwiQVVUT19DT01QTEVURV9TVUNDRVNTIiwiQVVUT19DT01QTEVURV9GQUlMVVJFIiwiQVVUT19DT01QTEVURV9SRVNFVCIsIkFVVE9fQ09NUExFVEVfRElTQUJMRURfQ0hBTkdFIiwiQVVUT19DT01QTEVURV9DT05UUk9MTEVSX0NIQU5HRSIsIlRSSUdHRVJTIiwiSU5QVVRfRk9DVVMiLCJJTlBVVF9DSEFOR0UiLCJJVEVNX1NFTEVDVCIsIklOUFVUX0NMRUFSIiwiQ09NUE9ORU5UX0RJRF9NT1VOVCIsIlJFU0VUIiwiQ09OVFJPTExFUl9DSEFOR0VEIiwiVk1XQVJFX0NMVVNURVJfQ0hBTkdFIiwiU1RPUkFHRV9WTVdBUkVfSU5JVCIsIlNUT1JBR0VfVk1XQVJFX0FERF9DT05UUk9MTEVSIiwiU1RPUkFHRV9WTVdBUkVfQUREX0RJU0siLCJTVE9SQUdFX1ZNV0FSRV9SRU1PVkVfQ09OVFJPTExFUiIsIlNUT1JBR0VfVk1XQVJFX1VQREFURV9DT05UUk9MTEVSIiwiU1RPUkFHRV9WTVdBUkVfUkVNT1ZFX0RJU0siLCJTVE9SQUdFX1ZNV0FSRV9VUERBVEVfRElTSyIsIk5PVElGSUNBVElPTlMiLCJTVE9SQUdFX1ZNV0FSRV9EQVRBU1RPUkVTIiwiU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFU19SRVFVRVNUIiwiU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFU19TVUNDRVNTIiwiU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFU19GQUlMVVJFIiwiU1RPUkFHRV9WTVdBUkVfU1RPUkFHRVBPRFMiLCJTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EU19SRVFVRVNUIiwiU1RPUkFHRV9WTVdBUkVfU1RPUkFHRVBPRFNfU1VDQ0VTUyIsIlNUT1JBR0VfVk1XQVJFX1NUT1JBR0VQT0RTX0ZBSUxVUkUiLCJOT1RJRklDQVRJT05TX1RPR0dMRV9EUkFXRVIiLCJOT1RJRklDQVRJT05TX1NFVF9FWFBBTkRFRF9HUk9VUCIsIk5PVElGSUNBVElPTlNfTUFSS19BU19SRUFEIiwiTk9USUZJQ0FUSU9OU19NQVJLX0dST1VQX0FTX1JFQUQiLCJOT1RJRklDQVRJT05TX01BUktfQVNfQ0xFQVIiLCJOT1RJRklDQVRJT05TX01BUktfR1JPVVBfQVNfQ0xFQVJFRCIsIk5PVElGSUNBVElPTlNfTElOS19DTElDS0VEIiwiUEFTU1dPUkRfU1RSRU5HVEhfUEFTU1dPUkRfQ0hBTkdFRCIsIlBBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX01BVENIRUQiLCJTVEFSVF9JTlRFUlZBTCIsIlNUT1BfSU5URVJWQUwiLCJERUZBVUxUX0lOVEVSVkFMIiwiX0F1dG9Db21wbGV0ZVJlZHVjZXIiLCJfQXV0b0NvbXBsZXRlIiwiX0F1dG9Db21wbGV0ZVNlbGVjdG9ycyIsIm1hcFN0YXRlVG9Qcm9wcyIsIm93blByb3BzIiwic2VsZWN0QXV0b2NvbXBsZXRlRXJyb3IiLCJzZWxlY3RBdXRvY29tcGxldGVSZXN1bHRzIiwic2VsZWN0QXV0b2NvbXBsZXRlU2VhcmNoUXVlcnkiLCJzZWxlY3RBdXRvY29tcGxldGVTdGF0dXMiLCJkaXNhYmxlZCIsInNlbGVjdEF1dG9jb21wbGV0ZUlzRGlzYWJsZWQiLCJzZWxlY3RBdXRvY29tcGxldGVVcmwiLCJzZWxlY3RBdXRvY29tcGxldGVUcmlnZ2VyIiwibWFwRGlzcGF0Y2hUb1Byb3BzIiwiYmluZEFjdGlvbkNyZWF0b3JzIiwiY29ubmVjdCIsIkF1dG9Db21wbGV0ZSIsIl9yZWFjdERpZmZWaWV3IiwiX3VuaWRpZmYiLCJnZXREaWZmIiwib2xkVGV4dCIsIm5ld1RleHQiLCJkaWZmVGV4dCIsImZvcm1hdExpbmVzIiwiZGlmZkxpbmVzIiwiaGVhZGVyIiwiam9pbiIsIkRpZmZWaWV3Iiwidmlld1R5cGUiLCJwYXRjaCIsImdpdERpZmYiLCJmaWxlcyIsInBhcnNlRGlmZiIsIl9maWxlcyQiLCJodW5rcyIsIkRpZmYiLCJkaWZmVHlwZSIsInJlbmRlckZpbGUiLCJvbGRSZXZpc2lvbiIsIm5ld1JldmlzaW9uIiwiX2NsYXNzbmFtZXMiLCJfRGlmZkNvbnN0cyIsImJ0bkNsYXNzIiwic3RhdGVWaWV3IiwiYnRuVmlldyIsImNsYXNzTmFtZXMiLCJyYWRpb0J1dHRvbiIsImNoYW5nZVN0YXRlIiwiYnNTdHlsZSIsIkRpZmZSYWRpb0J1dHRvbnMiLCJCdXR0b25Hcm91cCIsIlNQTElUIiwiVU5JRklFRCIsIkVESVRPUl9JTklUSUFMSVpFIiwiRURJVE9SX0lNUE9SVF9GSUxFIiwiRURJVE9SX1JFVkVSVF9DSEFOR0VTIiwiRURJVE9SX0VYRUNfUFJFVklFVyIsIkVESVRPUl9NT0RBTF9UT0dHTEUiLCJFRElUT1JfQ0hBTkdFX0RJRkZfVklFVyIsIkVESVRPUl9DSEFOR0VfVkFMVUUiLCJFRElUT1JfU0hPV19FUlJPUiIsIkVESVRPUl9ESVNNSVNTX0VSUk9SIiwiRURJVE9SX0NIQU5HRV9UQUIiLCJFRElUT1JfVE9HR0xFX01BU0siLCJFRElUT1JfQ0hBTkdFX1NFVFRJTkciLCJFRElUT1JfVE9HR0xFX1JFTkRFUl9WSUVXIiwiRURJVE9SX1NIT1dfTE9BRElORyIsIkVESVRPUl9ISURFX0xPQURJTkciLCJFRElUT1JfRkVUQ0hfSE9TVF9QRU5ESU5HIiwiRURJVE9SX0ZFVENIX0hPU1RfUkVTT0xWRUQiLCJFRElUT1JfSE9TVF9TRUxFQ1RfVE9HR0xFIiwiRURJVE9SX0hPU1RfU0VMRUNUX0NMRUFSIiwiRURJVE9SX0hPU1RfU0VMRUNUX1JFU0VUIiwiRURJVE9SX0hPU1RfSU5JVElBTF9GRVRDSCIsIkVESVRPUl9IT1NUU19VUkwiLCJFRElUT1JfSE9TVF9BUlIiLCJFRElUT1JfSE9TVF9GSUxURVJFRF9BUlIiLCJFRElUT1JfS0VZQklORElOR1MiLCJFRElUT1JfVEhFTUVTIiwiRURJVE9SX01PREVTIiwiX0ZvcmVtYW5Nb2RhbENvbnN0YW50cyIsIl9yZWYkaXNTdWJtaXR0aW5nIiwiZ2V0U3RhdGUiLCJBRERfTU9EQUwiLCJfYWRkTW9kYWwiLCJtb2RhbEFjdGlvbiIsImFjdGlvblR5cGUiLCJ3YXJuIiwic2V0TW9kYWxTdGFydFN1Ym1pdHRpbmciLCJTRVRfTU9EQUxfU1RBUlRfU1VCTUlUVElORyIsIl9zZXRNb2RhbFN0YXJ0U3VibWl0dGluZyIsInNldE1vZGFsU3RvcFN1Ym1pdHRpbmciLCJTRVRfTU9EQUxfU1RPUF9TVUJNSVRUSU5HIiwiX3NldE1vZGFsU3RvcFN1Ym1pdHRpbmciLCJTRVRfTU9EQUxfT1BFTiIsIl9zZXRNb2RhbE9wZW4iLCJTRVRfTU9EQUxfQ0xPU0VEIiwiX3NldE1vZGFsQ2xvc2VkIiwiYmluZEZvcmVtYW5Nb2RhbEFjdGlvbnNUb0lkIiwiQk9PS01BUktTIiwiQk9PS01BUktTX1JFUVVFU1QiLCJCT09LTUFSS1NfU1VDQ0VTUyIsIkJPT0tNQVJLU19GQUlMVVJFIiwiQk9PS01BUktTX0ZPUk1fU1VCTUlUVEVEIiwiQk9PS01BUktTX01PREFMIiwiX0VtcHR5UGFnZSIsIl9Mb2FkaW5nUGFnZSIsImNhbGxPbk1vdW50IiwiV3JhcHBlZENvbXBvbmVudCIsImNvbXBvbmVudFByb3BzIiwiY2FsbE9uUG9wU3RhdGUiLCJkaWRNb3VudCIsIndpdGhSZW5kZXJIYW5kbGVyIiwiX3JlZiRMb2FkaW5nQ29tcG9uZW50IiwiTG9hZGluZ0NvbXBvbmVudCIsIkxvYWRpbmdQYWdlIiwiX3JlZiRFcnJvckNvbXBvbmVudCIsIkVycm9yQ29tcG9uZW50IiwiRW1wdHlQYWdlIiwiX3JlZiRFbXB0eUNvbXBvbmVudCIsIkVtcHR5Q29tcG9uZW50IiwiaGFzRGF0YSIsImhhc0Vycm9yIiwiX2Zvcm1hdHRlcnMiLCJfY29tcG9uZW50cyIsIl9zY2hlbWFIZWxwZXJzIiwiX2FjdGlvbnMiLCJfc2VsZWN0aW9uU2VsZWN0b3JzIiwiX1Nsb3RzUmVnaXN0cnkiLCJzZWxlY3RDb21wb25lbnRCeVdlaWdodCIsInNsb3RJZCIsIlNsb3RzUmVnaXN0cnkiLCJnZXRTbG90Q29tcG9uZW50cyIsImEiLCJiIiwid2VpZ2h0IiwiYyIsImNvbXBvbmVudCIsInNlbGVjdE1heENvbXBvbmVudCIsInNlbGVjdEZpbGxzQW1vdW50IiwicmVnaXN0ZXJkRmlsbHMiLCJleHRlbmRhYmxlIiwic2VsZWN0RmlsbHNJRHMiLCJmaWxsSURzIiwic2VsZWN0RmlsbHNDb21wb25lbnRzIiwibXVsdGlwbGUiLCJmaWxsSUQiLCJzbG90Q29tcG9uZW50IiwiZ2V0RmlsbCIsInNlbGVjdFNsb3RNZXRhZGF0YSIsInNsb3RNZXRhZGF0YSIsIl9PYmplY3Qka2V5cyIsImZpbGwiLCJERUZBVUxUX1RBQiIsIkhPU1RfREVUQUlMU19LRVkiLCJIT1NUX0RFVEFJTFNfQVBJX09QVElPTlMiLCJUQUJTX1NMT1RfSUQiLCJfU2xvdFNlbGVjdG9ycyIsIl9TbG90IiwiZmlsbHMiLCJtdWx0aSIsIlNsb3QiLCJfc2VhbWxlc3NJbW11dGFibGUiLCJfQ2hhcnRTZXJ2aWNlIiwiY2hhcnRzU2l6ZUNvbmZpZyIsImFyZWEiLCJ0aW1lc2VyaWVzIiwidGltZXNlcmllc0FyZWFDaGFydENvbmZpZyIsImJhciIsInJlZ3VsYXIiLCJiYXJDaGFydENvbmZpZyIsInNtYWxsQmFyQ2hhcnRDb25maWciLCJtZWRpdW0iLCJtZWRpdW1CYXJDaGFydENvbmZpZyIsImRvbnV0IiwiZG9udXRDaGFydENvbmZpZyIsImRvbnV0TWVkaXVtQ2hhcnRDb25maWciLCJsYXJnZSIsImRvbnV0TGFyZ2VDaGFydENvbmZpZyIsImxpbmUiLCJsaW5lQ2hhcnRDb25maWciLCJ0aW1lc2VyaWVzTGluZUNoYXJ0Q29uZmlnIiwiZG9EYXRhRXhpc3QiLCJjdXJyIiwiZ2V0Q29sb3JzIiwiY29sb3IiLCJnZXRDaGFydENvbmZpZyIsImNvbmZpZyIsIm9uY2xpY2siLCJfcmVmJGlkIiwidXVpZFYxIiwiY2hhcnRDb25maWdGb3JUeXBlIiwiY29sb3JzIiwiY29sb3JzU2l6ZSIsImRhdGFFeGlzdHMiLCJsb25nTmFtZXMiLCJkYXRhV2l0aFNob3J0TmFtZXMiLCJJbW11dGFibGUiLCJhc011dGFibGUiLCJsb25nTmFtZSIsInN1YnN0cmluZyIsImNvbHVtbnMiLCJmb3JtYXQiLCJyYXRpbyIsImlkeCIsIm9ucmVuZGVyZWQiLCJjb2xEYXRhIiwibmFtZU9mQ2xhc3MiLCJoYXNUb29sdGlwIiwiZDMiLCJzZWxlY3QiLCJhcHBlbmQiLCJuYXZpZ2F0ZVRvU2VhcmNoIiwic2VhcmNoRmlsdGVycyIsInNldFVybCIsInRmbSIsInRvb2xzIiwiaW5jbHVkZXMiLCJ2YWxzIiwidmFsMSIsImVuY29kZVVSSUNvbXBvbmVudCIsInZhbDIiLCJ3aXRoVG9vbHRpcCIsInRvb2x0aXBJZCIsInRvb2x0aXBUZXh0IiwicmVzdCIsIk92ZXJsYXlUcmlnZ2VyIiwib3ZlcmxheSIsIlRvb2x0aXAiLCJwbGFjZW1lbnQiLCJyb290Q2xvc2UiLCJhcnJheVNlbGVjdGlvbiIsInNldHRpbmciLCJzZWxlY3RWYWx1ZXMiLCJmb3JtYXRFbmNyeXB0ZWREZWZhdWx0IiwiZW5jcnlwdGVkIiwiZm9ybWF0SGFzaFNlbGVjdGlvbkRlZmF1bHQiLCJmb3JtYXRIYXNoU2VsZWN0aW9uIiwiZm9ybWF0SGFzaFNlbGVjdGlvblZhbHVlIiwiYXR0ciIsImZvcm1hdEJvb2xlYW5EZWZhdWx0IiwiZm9ybWF0Qm9vbGVhbiIsImZvcm1hdEJvb2xlYW5WYWx1ZSIsInNldHRpbmdzVHlwZSIsImZvcm1hdEFycmF5VmFsdWUiLCJmb3JtYXRBcnJheSIsImZvcm1hdEFycmF5RGVmYXVsdCIsImZvcm1hdFRleHRWYWx1ZSIsImZvcm1hdFRleHREZWZhdWx0IiwiZm9ybWF0RW1wdHkiLCJlbXB0eVZhbHVlIiwiZm9ybWF0RW1wdHlEZWZhdWx0IiwiZm9ybWF0RW1wdHlWYWx1ZSIsImZvcm1hdEFycmF5U2VsZWN0aW9uRGVmYXVsdCIsImZvcm1hdEFycmF5U2VsZWN0aW9uIiwiZm9ybWF0QXJyYXlTZWxlY3Rpb25WYWx1ZSIsImdyb3VwIiwicmVkdWNlRm9ybWF0cyIsImZvcm1hdHRlcnMiLCJmb3JtYXR0ZXIiLCJ2YWx1ZVRvU3RyaW5nIiwiZGVmYXVsdFRvU3RyaW5nIiwiaGFzRGVmYXVsdCIsIl9GaWxsQWN0aW9ucyIsImFkZEdsb2JhbEZpbGwiLCJmaWxsSWQiLCJyZWdpc3RlckZpbGxDb21wb25lbnQiLCJfRG9udXRDaGFydFNlcnZpY2UiLCJEb251dENoYXJ0Iiwibm9EYXRhTXNnIiwidW5sb2FkRGF0YSIsInNlYXJjaFVybCIsImNoYXJ0Q29uZmlnIiwiZ2V0RG9udXRDaGFydENvbmZpZyIsInVubG9hZEJlZm9yZUxvYWQiLCJvbmVPZiIsInByZWNpc2lvbiIsImFjdGlvblR5cGVHZW5lcmF0b3IiLCJhY3Rpb25UeXBlcyIsIkFQSV9PUEVSQVRJT05TIiwiR0VUIiwiUE9TVCIsIlBVVCIsIkRFTEVURSIsIlBBVENIIiwiX0JyZWFkY3J1bWJCYXJSZWR1Y2VyIiwiX0JyZWFkY3J1bWJCYXJTZWxlY3RvciIsIl9CcmVhZGNydW1iQmFyIiwicmVzb3VyY2VTd2l0Y2hlckl0ZW1zIiwic2VsZWN0UmVzb3VyY2VTd2l0Y2hlckl0ZW1zIiwiaXNTd2l0Y2hlck9wZW4iLCJzZWxlY3RJc1N3aXRjaGVyT3BlbiIsInJlc291cmNlVXJsIiwic2VsZWN0UmVzb3VyY2VVcmwiLCJpc0xvYWRpbmdSZXNvdXJjZXMiLCJzZWxlY3RJc0xvYWRpbmdSZXNvdXJjZXMiLCJzZWxlY3RIYXNFcnJvciIsImN1cnJlbnRQYWdlIiwic2VsZWN0Q3VycmVudFBhZ2UiLCJ0b3RhbFBhZ2VzIiwic2VsZWN0VG90YWxQYWdlcyIsInNlbGVjdFNlYXJjaFF1ZXJ5IiwicmVtb3ZlU2VhcmNoUXVlcnkiLCJzZWxlY3RSZW1vdmVTZWFyY2hRdWVyeSIsInRpdGxlUmVwbGFjZW1lbnQiLCJzZWxlY3RUaXRsZVJlcGxhY2VtZW50IiwiYnJlYWRjcnVtYkJhciIsIkJyZWFkY3J1bWJCYXIiLCJfQXV0b0NvbXBsZXRlQ29uc3RhbnRzIiwic2VsZWN0QXV0b2NvbXBsZXRlIiwic2VsZWN0QXV0b2NvbXBsZXRlUHJvcCIsInByb3AiLCJzZWxlY3RlZEF1dG9jb21wbGV0ZSIsImlzQXV0b2NvbXBsZXRlSW5pdGlhdGVkIiwiZGlkQ29tcG9uZW50UmVzZXQiLCJwcm9wRnJvbU93blByb3BzIiwiaXNFcnJvclZpc2libGUiLCJzZWxlY3RBdXRvY29tcGxldGVJc0Vycm9yVmlzaWJsZSIsInNlbGVjdEF1dG9jb21wbGV0ZUNvbnRyb2xsZXIiLCJfcmVhY3RSb3V0ZXJEb20iLCJfTGF5b3V0QWN0aW9ucyIsIl9MYXlvdXRSZWR1Y2VyIiwiX0xheW91dFNlbGVjdG9ycyIsIl9MYXlvdXRIZWxwZXIiLCJfTGF5b3V0U2Vzc2lvblN0b3JhZ2UiLCJfRm9yZW1hbkNvbnRleHQiLCJfTGF5b3V0IiwiQ29ubmVjdGVkTGF5b3V0IiwiX3VzZUZvcmVtYW5Mb2NhdGlvbiIsIl91c2VGb3JlbWFuT3JnYW5pemF0aSIsImN1cnJlbnRMb2NhdGlvbiIsImN1cnJlbnRPcmdhbml6YXRpb24iLCJpbml0aWFsaXplTGF5b3V0IiwiZ2V0SXNOYXZiYXJDb2xsYXBzZWQiLCJfdXNlSGlzdG9yeSIsInVzZUhpc3RvcnkiLCJwYXR0ZXJuZmx5TWVudUl0ZW1zU2VsZWN0b3IiLCJzZWxlY3RJc0xvYWRpbmciLCJzZWxlY3RJc0NvbGxhcHNlZCIsInNlbGVjdEFjdGl2ZU1lbnUiLCJMYXlvdXQiLCJvbGRNZXRob2QiLCJuZXdNZXRob2QiLCJwcm9jZXNzIiwiZGVwcmVjYXRlT2JqZWN0UHJvcGVydHkiLCJvbGRQcm9wIiwibmV3UHJvcCIsIm9sZFByb3BQb2ludGVyIiwiX0FsZXJ0TGluayIsIkFsZXJ0Qm9keSIsIkFsZXJ0TGluayIsIkFVRElUU19QQUdFX0RBVEFfUkVTT0xWRUQiLCJBVURJVFNfUEFHRV9EQVRBX0ZBSUxFRCIsIkFVRElUU19QQUdFX0hJREVfTE9BRElORyIsIkFVRElUU19QQUdFX1NIT1dfTE9BRElORyIsIkFVRElUU19QQUdFX1VQREFURV9RVUVSWSIsIkFVRElUU19QQUdFX0NMRUFSX0VSUk9SIiwiQVVESVRTX1BBVEgiLCJBVURJVFNfU0VBUkNIX1BST1BTIiwiQk9PS01BUktTX0ZPUk1fU1VCTUlUVEVEX1NVQ0NFU1MiLCJfRm9yZW1hbk1vZGFsSG9va3MiLCJfdXNlTW9kYWxDb250ZXh0IiwiY2xvc2VCdXR0b24iLCJUaXRsZSIsIl9TdWJtaXRPckNhbmNlbCIsImNoaWxkQ291bnQiLCJDaGlsZHJlbiIsImNvdW50Iiwic3VibWl0UHJvcHMiLCJzdWJtaXRPckNhbmNlbCIsIl9Gb3JlbWFuRm9ybSIsImdldEJhc2VFcnJvcnMiLCJfcmVmJGVycm9yIiwiZXJyb3JzIiwic2V2ZXJpdHkiLCJfZXJyb3IiLCJlcnJvck1zZ3MiLCJwcmVwYXJlRXJyb3JzIiwiZXJyb3JNZXNzYWdlcyIsIm9uRXJyb3IiLCJfZXJyb3IkcmVzcG9uc2UiLCJzZXRTdWJtaXR0aW5nIiwiX2Vycm9yJHJlc3BvbnNlMiIsIl9lcnJvciRyZXNwb25zZTMiLCJfZXJyb3IkcmVzcG9uc2UzJGRhdGEiLCJfZXJyb3IkcmVzcG9uc2UzJGRhdGEyIiwic2V0RXJyb3JzIiwiX2Vycm9yJHJlc3BvbnNlNCIsIl9lcnJvciRyZXNwb25zZTUiLCJfZXJyb3IkcmVzcG9uc2U2Iiwic3RhdHVzVGV4dCIsInZlcmlmeVByb3BzIiwic3VibWl0Rm9ybSIsInBhcmFtcyIsIl9yZWYyJG1ldGhvZCIsImhlYWRlcnMiLCJhcGlBY3Rpb25UeXBlcyIsImVycm9yVG9hc3QiLCJzdWNjZXNzVG9hc3QiLCJzdWNjZXNzQ2FsbGJhY2siLCJ1bmlxdWVBUElLZXkiLCJ0b1VwcGVyQ2FzZSIsImhhbmRsZUVycm9yIiwiaGFuZGxlU3VjY2VzcyIsImRlZmF1bHRTdWNjZXNzVG9hc3QiLCJkZWZhdWx0RXJyb3JUb2FzdCIsIl9lcnJvciRyZXNwb25zZTciLCJfZXJyb3IkcmVzcG9uc2U3JGRhdGEiLCJfZXJyb3IkcmVzcG9uc2U3JGRhdGEyIiwiX2Vycm9yJHJlc3BvbnNlNyRkYXRhMyIsImZ1bGxfbWVzc2FnZXMiLCJfUGFnaW5hdGlvbkhvb2tzIiwiX3VybEhlbHBlcnMiLCJQYWdpbmF0aW9uIiwicGFnaW5hdGlvbiIsIm9uUGFnZVNldCIsIm9uUGVyUGFnZVNlbGVjdCIsImRyb3Bkb3duQnV0dG9uSWQiLCJkaXNhYmxlTmV4dCIsImRpc2FibGVQcmV2Iiwib3RoZXJQcm9wcyIsIl91c2VGb3JlbWFuU2V0dGluZ3MiLCJwZXJQYWdlT3B0aW9ucyIsInVzZVBhZ2luYXRpb25PcHRpb25zIiwidXJsUGFnZSIsInVybFBlclBhZ2UiLCJwYWdpbmF0aW9uX2NsYXNzZXMiLCJwYWdlT3B0cyIsImZpcnN0UGFnZSIsInByZXZpb3VzUGFnZSIsIm5leHRQYWdlIiwibGFzdFBhZ2UiLCJvZiIsIlBhZ2luYXRvciIsIml0ZW1Db3VudCIsIlBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfUkVRVUVTVCIsIlBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfU1VDQ0VTUyIsIlBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfRkFJTFVSRSIsIlBFUlNPTkFMX0FDQ0VTU19UT0tFTl9GT1JNX1NVQk1JVFRFRCIsIlBFUlNPTkFMX0FDQ0VTU19UT0tFTl9DTEVBUiIsIk1PREFMX0lEIiwiTUlOVVRFIiwiSE9VUiIsIlBPV0VSX1JFUVVSU1RfS0VZIiwiUE9XRVJfUkVRVUVTVF9PUFRJT05TIiwiQkFTRV9QT1dFUl9TVEFURVMiLCJvZmYiLCJvbiIsIkJNQ19QT1dFUl9TVEFURVMiLCJzb2Z0IiwiY3ljbGUiLCJTVVBQT1JURURfUE9XRVJfU1RBVEVTIiwiUkVHSVNUUkFUSU9OX1BBVEgiLCJSRUdJU1RSQVRJT05fQ09NTUFORFNfREFUQSIsIlJFR0lTVFJBVElPTl9DT01NQU5EU19PU19URU1QTEFURSIsIlJFR0lTVFJBVElPTl9DT01NQU5EUyIsIl9mb3JlbWFuX3Rvb2xzIiwiZW1wdHlPcHRpb24iLCJGb3JtU2VsZWN0T3B0aW9uIiwidmFsaWRhdGVkT1MiLCJvcGVyYXRpbmdTeXN0ZW1JZCIsInRlbXBsYXRlIiwib3NIZWxwZXJUZXh0Iiwib3BlcmF0aW5nU3lzdGVtcyIsImhvc3RHcm91cElkIiwiaG9zdEdyb3VwcyIsIm9zVGVtcGxhdGVIZWxwZXJUZXh0IiwiX2hvc3RHcm91cHMkZmluZCIsIm9zSWQiLCJoZyIsImluaGVyaXRlZF9vcGVyYXRpbmdzeXN0ZW1faWQiLCJGcmFnbWVudCIsImhvc3RHcm91cE9TSGVscGVyVGV4dCIsInJlbCIsIm9zX3BhdGgiLCJfaG9zdEdyb3VwcyRmaW5kMiIsImhvc3RHcm91cE9TIiwib3MiLCJfSG9zdFN0YXR1c2VzQ29uc3RhbnRzIiwiR2xvYmFsU3RhdHVzSWNvbiIsIkdMT0JBTF9TVEFUVVNfT0siLCJHTE9CQUxfU1RBVFVTX1dBUk4iLCJHTE9CQUxfU1RBVFVTX0VSUk9SIiwiUXVlc3Rpb25DaXJjbGVJY29uIiwiQVBJX09QVElPTlMiLCJfQ29tbW9uRm9ybSIsIl9TZWxlY3RIZWxwZXJzIiwiX2luaGVyaXRzIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiX3NldFByb3RvdHlwZU9mIiwicCIsIl9jcmVhdGVTdXBlciIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIl9jcmVhdGVTdXBlckludGVybmFsIiwiU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YiLCJOZXdUYXJnZXQiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJzaGFtIiwiUHJveHkiLCJCb29sZWFuIiwidmFsdWVPZiIsIlNlbGVjdCIsIl9SZWFjdCRDb21wb25lbnQiLCJfc3VwZXIiLCJpbml0aWFsaXplU2VsZWN0MiIsImFsbG93Q2xlYXIiLCJhdHRhY2hFdmVudCIsIm9uQ2hhbmdlIiwiY29tcG9uZW50RGlkTW91bnQiLCJ1c2VTZWxlY3QyIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRzdGF0dXMiLCJfdGhpcyRwcm9wcyRlcnJvck1lc3MiLCJlcnJvck1lc3NhZ2UiLCJpbm5lclNlbGVjdCIsInJlZiIsInJlbmRlck9wdGlvbnMiLCJTRVRUSU5HX1VQREFURV9NT0RBTCIsIlNFVFRJTkdfVVBEQVRFX1BBVEgiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJzZXRJdGVtIiwiZ2V0VmFsdWUiLCJKU09OIiwicGFyc2UiLCJzZXRWYWx1ZSIsInN0cmluZ2lmeSIsInNlbGVjdEludGVydmFscyIsImludGVydmFscyIsInNlbGVjdEludGVydmFsSUQiLCJzZWxlY3REb2VzSW50ZXJ2YWxFeGlzdCIsIl9UZW1wbGF0ZUdlbmVyYXRvclNlbGVjdG9ycyIsIl9UZW1wbGF0ZUdlbmVyYXRvclJlZHVjZXIiLCJ0ZW1wbGF0ZUFjdGlvbnMiLCJfVGVtcGxhdGVHZW5lcmF0b3IiLCJ0ZW1wbGF0ZXMiLCJzZWxlY3RHZW5lcmF0aW5nUHJvcHMiLCJUZW1wbGF0ZUdlbmVyYXRvciIsIl9TZWFyY2hCYXIiLCJTZWFyY2hCYXIiLCJfUmVhY3RBcHAiLCJfQXJlYUNoYXJ0IiwiX0JhckNoYXJ0IiwiX0RvbnV0Q2hhcnQiLCJfTGluZUNoYXJ0IiwiX3Bvd2VyU3RhdHVzIiwiX25vdGlmaWNhdGlvbnMiLCJfVG9hc3RzTGlzdCIsIl9SZWxhdGl2ZURhdGVUaW1lIiwiX0xvbmdEYXRlVGltZSIsIl9TaG9ydERhdGVUaW1lIiwiX0lzb0RhdGUiLCJfRm9ybUZpZWxkIiwiX0lucHV0RmFjdG9yeSIsIl92bXdhcmUiLCJfUGFzc3dvcmRTdHJlbmd0aCIsIl9GYWN0Q2hhcnRzIiwiX1BhZ2luYXRpb24iLCJfRW1wdHlTdGF0ZSIsIl9Db21wb25lbnRXcmFwcGVyIiwiX0NoYXJ0Qm94IiwiX0NvbmZpZ1JlcG9ydHMiLCJfRGlmZk1vZGFsIiwiX3dyYXBwZXJGYWN0b3J5IiwiX01vZGVsc1RhYmxlIiwiX0VkaXRvciIsIl9Mb2dpblBhZ2UiLCJfRXh0ZXJuYWxMb2dvdXQiLCJfVHlwZUFoZWFkU2VsZWN0IiwiX0RhdGVQaWNrZXIiLCJfUmVkaXJlY3RDYW5jZWxCdXR0b24iLCJfU2V0dGluZ1JlY29yZHMiLCJfU2V0dGluZ3NUYWJsZSIsIl9TZXR0aW5nVXBkYXRlTW9kYWwiLCJfUGVyc29uYWxBY2Nlc3NUb2tlbnMiLCJfQ2xpcGJvYXJkQ29weSIsIl9MYWJlbEljb24iLCJfV2VsY29tZSIsIl9XZWxjb21lMiIsIl9XZWxjb21lMyIsImNvbXBvbmVudFJlZ2lzdHJ5IiwicmVnaXN0cnkiLCJyZWdpc3RlciIsIl9yZWYkbmFtZSIsIl9yZWYkdHlwZSIsIl9yZWYkc3RvcmUiLCJfcmVmJGRhdGEiLCJyZWdpc3Rlck11bHRpcGxlIiwiY29tcG9uZW50T2JqcyIsImdldENvbXBvbmVudCIsInJlZ2lzdGVyZWRDb21wb25lbnRzIiwid3JhcHBlckZhY3RvcnkiLCJXcmFwcGVyRmFjdG9yeSIsImRlZmF1bHRXcmFwcGVyIiwiZmxhdHRlbkRhdGEiLCJmYWN0b3J5Iiwid3JhcHBlciIsIm1hcmt1cCIsIl9yZWYyJGRhdGEiLCJfcmVmMiRzdG9yZSIsIl9yZWYyJHdyYXBwZXIiLCJfcmVmMiRmbGF0dGVuRGF0YSIsImN1cnJlbnRDb21wb25lbnQiLCJjb21wb25lbnRXcmFwcGVyIiwiY29yZUNvbXBvbmV0cyIsIlJlYWN0QXBwIiwiQXJlYUNoYXJ0IiwiTGluZUNoYXJ0IiwiUG93ZXJTdGF0dXMiLCJOb3RpZmljYXRpb25Db250YWluZXIiLCJTdG9yYWdlQ29udGFpbmVyIiwiUGFzc3dvcmRTdHJlbmd0aCIsIkZhY3RDaGFydCIsIkVtcHR5U3RhdGUiLCJCYXJDaGFydCIsIkNoYXJ0Qm94IiwiQ29tcG9uZW50V3JhcHBlciIsIkNvbmZpZ1JlcG9ydHMiLCJEaWZmTW9kYWwiLCJFeHRlcm5hbExvZ291dCIsIlR5cGVBaGVhZFNlbGVjdCIsIkRhdGVQaWNrZXIiLCJSZWRpcmVjdENhbmNlbEJ1dHRvbiIsIlNldHRpbmdSZWNvcmRzIiwiU2V0dGluZ3NUYWJsZSIsIlNldHRpbmdVcGRhdGVNb2RhbCIsIlBlcnNvbmFsQWNjZXNzVG9rZW5zIiwiQ2xpcGJvYXJkQ29weSIsIkxvbmdEYXRlVGltZSIsIlNob3J0RGF0ZVRpbWUiLCJJc29EYXRlIiwiRm9ybUZpZWxkIiwiSW5wdXRGYWN0b3J5IiwiTW9kZWxzVGFibGUiLCJFZGl0b3IiLCJMb2dpblBhZ2UiLCJXZWxjb21lQXV0aFNvdXJjZSIsIldlbGNvbWVDb25maWdSZXBvcnRzIiwiV2VsY29tZUFyY2hpdGVjdHVyZSIsIl9HbG9iYWxGaWxsIiwiY3VycmVudFBhdGgiLCJyZWdpc3RlclJvdXRlcyIsInJvdXRlcyIsImluZGV4Iiwicm91dGVQcm9wcyIsIlJvdXRlIiwicmVuZGVyUHJvcHMiLCJyZW5kZXJSb3V0ZSIsInJlbmRlckZuIiwiX3Byb3BzJGxvY2F0aW9uIiwicmVtb3ZlUmFpbHNDb250ZW50IiwidXBkYXRlUGF0aCIsImZhbGxiYWNrUm91dGUiLCJuZXh0UGF0aCIsIm5ld1BhdGgiLCJyYWlsc0NvbnRhaW5lciIsImdldEVsZW1lbnRCeUlkIiwicmVtb3ZlIiwiX1Nlc3Npb25TdG9yYWdlIiwiZ2V0SXNPcGVuZWQiLCJzZXRJc09wZW5lZCIsImdldEV4cGFuZGVkR3JvdXAiLCJzZXRFeHBhbmRlZEdyb3VwIiwiZ2V0SGFzVW5yZWFkTWVzc2FnZXMiLCJzZXRIYXNVbnJlYWRNZXNzYWdlcyIsIl8iLCJnZXRBcGlNZXRob2RCeUFjdGlvblR5cGUiLCJ0b0xvd2VyQ2FzZSIsImdldEFwaVJlc3BvbnNlIiwiaXNBUElBY3Rpb24iLCJfSW50ZXJ2YWxDb25zdGFudHMiLCJyZWdpc3RlcmVkSW50ZXJ2YWxFeGNlcHRpb24iLCJ3aXRoSW50ZXJ2YWwiLCJpbnRlcnZhbCIsImdldERlZmF1bHRJbnRlcnZhbCIsInN0b3BJbnRlcnZhbCIsInN0YXJ0SW50ZXJ2YWwiLCJpbnRlcnZhbElEIiwiX1Bhc3N3b3JkU3RyZW5ndGhTZWxlY3RvcnMiLCJfUGFzc3dvcmRTdHJlbmd0aFJlZHVjZXIiLCJwYXNzd29yZFN0cmVuZ3RoIiwiZG9lc1Bhc3N3b3Jkc01hdGNoIiwicGFzc3dvcmRQcmVzZW50IiwiUEFTU1dPUkRfU1RSRU5HVEhfUEFTU1dPUkRfQ09ORklSTUFUSU9OX0NIQU5HRUQiLCJCUkVBRENSVU1CX0JBUl9UT0dHTEVfU1dJVENIRVIiLCJCUkVBRENSVU1CX0JBUl9DTE9TRV9TV0lUQ0hFUiIsIkJSRUFEQ1JVTUJfQkFSX1JFU09VUkNFU19SRVFVRVNUIiwiQlJFQURDUlVNQl9CQVJfUkVTT1VSQ0VTX1NVQ0NFU1MiLCJCUkVBRENSVU1CX0JBUl9SRVNPVVJDRVNfRkFJTFVSRSIsIkJSRUFEQ1JVTUJfQkFSX0NMRUFSX1NFQVJDSCIsIkJSRUFEQ1JVTUJfQkFSX1VQREFURV9USVRMRSIsIl9MYXlvdXRDb25zdGFudHMiLCJMQVlPVVRfSU5JVElBTElaRSIsIkxBWU9VVF9TSE9XX0xPQURJTkciLCJMQVlPVVRfSElERV9MT0FESU5HIiwiTEFZT1VUX0NIQU5HRV9BQ1RJVkUiLCJMQVlPVVRfRVhQQU5EIiwiTEFZT1VUX0NPTExBUFNFIiwic2VsZWN0TGF5b3V0Iiwic2VsZWN0TWVudUl0ZW1zIiwic2VsZWN0Q3VycmVudExvY2F0aW9uIiwic2VsZWN0Q3VycmVudE9yZ2FuaXphdGlvbiIsImNoaWxkVG9NZW51SXRlbSIsInByZXZlbnRIcmVmIiwiX3JlYWN0T25jbGlja291dHNpZGUiLCJOb3RpZmljYXRpb25BY3Rpb25zIiwiX1RvZ2dsZUljb24iLCJub3RpZmljYXRpb25Db250YWluZXIiLCJzdGFydE5vdGlmaWNhdGlvbnNQb2xsaW5nIiwiaGFuZGxlQ2xpY2tPdXRzaWRlIiwiX3RoaXMkcHJvcHMyIiwiaXNEcmF3ZXJPcGVuIiwiaXNSZWFkeSIsInRvZ2dsZURyYXdlciIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwic3RvcE5vdGlmaWNhdGlvbnNQb2xsaW5nIiwiX3RoaXMkcHJvcHMzIiwibm90aWZpY2F0aW9ucyIsImV4cGFuZEdyb3VwIiwiZXhwYW5kZWRHcm91cCIsIm1hcmtBc1JlYWQiLCJtYXJrR3JvdXBBc1JlYWQiLCJjbGVhck5vdGlmaWNhdGlvbiIsImNsZWFyR3JvdXAiLCJoYXNVbnJlYWRNZXNzYWdlcyIsImNsaWNrZWRMaW5rIiwidHJhbnNsYXRpb25zIiwibm90aWZpY2F0aW9uR3JvdXBzIiwicGFuZWxrZXkiLCJwYW5lbE5hbWUiLCJOb3RpZmljYXRpb25EcmF3ZXJXcmFwcGVyIiwicGFuZWxzIiwiZXhwYW5kZWRQYW5lbCIsInRvZ2dsZVBhbmVsIiwib25Ob3RpZmljYXRpb25Bc1JlYWQiLCJvbk5vdGlmaWNhdGlvbkhpZGUiLCJvbk1hcmtQYW5lbEFzUmVhZCIsIm9uTWFya1BhbmVsQXNDbGVhciIsIm9uQ2xpY2tlZExpbmsiLCJ0b2dnbGVEcmF3ZXJIaWRlIiwiaXNFeHBhbmRhYmxlIiwidW5yZWFkRXZlbnQiLCJ1bnJlYWRFdmVudHMiLCJyZWFkQWxsIiwiY2xlYXJBbGwiLCJkZWxldGVOb3RpZmljYXRpb24iLCJOb3RpZmljYXRpb25EcmF3ZXJQYW5lbFdyYXBwZXIiLCJfc3RhdGUkbm90aWZpY2F0aW9ucyIsImdyb3VwQnkiLCJvbkNsaWNrT3V0c2lkZSIsIl9EaWZmTW9kYWxSZWR1Y2VyIiwiZGlmZk1vZGFsIiwiZGlmZiIsImRpZmZWaWV3VHlwZSIsIkRJRkZfTU9EQUxfVE9HR0xFIiwiRElGRl9NT0RBTF9DUkVBVEUiLCJESUZGX01PREFMX1ZJRVdUWVBFIiwiX0VkaXRvclJlZHVjZXIiLCJfRWRpdG9yU2VsZWN0b3JzIiwic2VsZWN0RGlmZlR5cGUiLCJlZGl0b3JOYW1lIiwic2VsZWN0RWRpdG9yTmFtZSIsImVycm9yVGV4dCIsInNlbGVjdEVycm9yVGV4dCIsImZpbHRlcmVkSG9zdHMiLCJuYXZGaWx0ZXJlZEhvc3RzU2VsZWN0b3IiLCJob3N0cyIsIm5hdkhvc3RzU2VsZWN0b3IiLCJpc0ZldGNoaW5nSG9zdHMiLCJzZWxlY3RJc0ZldGNoaW5nSG9zdHMiLCJpc01hc2tlZCIsInNlbGVjdElzTWFza2VkIiwiaXNNYXhpbWl6ZWQiLCJzZWxlY3RJc01heGltaXplZCIsImlzUmVuZGVyaW5nIiwic2VsZWN0SXNSZW5kZXJpbmciLCJpc1NlYXJjaGluZ0hvc3RzIiwic2VsZWN0SXNTZWFyY2hpbmdIb3N0cyIsImlzU2VsZWN0T3BlbiIsInNlbGVjdElzU2VsZWN0T3BlbiIsImtleUJpbmRpbmciLCJzZWxlY3RLZXlCaW5kIiwibW9kZSIsInNlbGVjdE1vZGUiLCJwcmV2aWV3UmVzdWx0Iiwic2VsZWN0UHJldmlld1Jlc3VsdCIsInJlbmRlcmVkRWRpdG9yVmFsdWUiLCJzZWxlY3RSZW5kZXJlZEVkaXRvclZhbHVlIiwicmVhZE9ubHkiLCJzZWxlY3RJc1JlYWRPbmx5Iiwic2VsZWN0ZWRIb3N0Iiwic2VsZWN0Q2hvc2VuSG9zdCIsInNlbGVjdGVkVmlldyIsInNlbGVjdENob3NlblZpZXciLCJzaG93RXJyb3IiLCJzZWxlY3RTaG93RXJyb3IiLCJ0aGVtZSIsInNlbGVjdFRoZW1lIiwic2VsZWN0VmFsdWUiLCJlZGl0b3IiLCJfcmVzZWxlY3QiLCJfRWRpdG9yQ29uc3RhbnRzIiwic2VsZWN0RWRpdG9yIiwic2VsZWN0VGVtcGxhdGVDbGFzcyIsInRlbXBsYXRlQ2xhc3MiLCJzZWxlY3RIb3N0cyIsInNlbGVjdEZpbHRlcmVkSG9zdHMiLCJjcmVhdGVTZWxlY3RvciIsIm5hdkhvc3RzIiwiaG9zdCIsIl9yZWFjdEFjZSIsIkVkaXRvclZpZXciLCJfY2xhc3NOYW1lcyIsImlzU2VsZWN0ZWQiLCJrZXlib2FyZEhhbmRsZXIiLCJlZGl0b3JWYWx1ZSIsImVkaXRvclByb3BzIiwiJGJsb2NrU2Nyb2xsaW5nIiwiSW5maW5pdHkiLCJzaG93UHJpbnRNYXJnaW4iLCJkZWJvdW5jZUNoYW5nZVBlcmlvZCIsIlRFTVBMQVRFX0dFTkVSQVRFX1JFUVVFU1QiLCJURU1QTEFURV9HRU5FUkFURV9QT0xMSU5HIiwiVEVNUExBVEVfR0VORVJBVEVfU1VDQ0VTUyIsIlRFTVBMQVRFX0dFTkVSQVRFX0ZBSUxVUkUiLCJfdG9vbGtpdCIsImluaXRpYWxTdGF0ZSIsIm1vZGFsVG9EaXNwbGF5IiwiZmFjdENoYXJ0U2xpY2UiLCJjcmVhdGVTbGljZSIsIm9wZW5Nb2RhbCIsIl9mYWN0Q2hhcnRTbGljZSRhY3RpbyIsIl9GaWxsQ29uc3RhbnRzIiwib3ZlcnJpZGVQcm9wcyIsImFkZCIsIlJFR0lTVEVSX0ZJTEwiLCJ1bnJlZ2lzdGVyRmlsbENvbXBvbmVudCIsIlJFTU9WRV9GSUxMRURfQ09NUE9ORU5UIiwiU2xvdElkIiwic2xvdEl0ZW1zIiwiX1R5cGVBaGVhZFNlbGVjdEFjdGlvbnMiLCJfVHlwZUFoZWFkU2VsZWN0U2VsZWN0b3JzIiwiX1R5cGVBaGVhZFNlbGVjdFJlZHVjZXIiLCJDb25uZWN0ZWRUeXBlQWhlYWRTZWxlY3QiLCJzZWxlY3RlZCIsImFsbG93TmV3IiwicGxhY2Vob2xkZXIiLCJkZWZhdWx0SW5wdXRWYWx1ZSIsImNsZWFyQnV0dG9uIiwiaW5wdXRQcm9wcyIsInNlbGVjdFR5cGVBaGVhZFNlbGVjdEV4aXN0cyIsImluaXRpYWxVcGRhdGUiLCJfc2VsZWN0ZWQiLCJzZWxlY3RTZWxlY3RlZCIsIl9vcHRpb25zIiwic2VsZWN0T3B0aW9ucyIsInVwZGF0ZVNlbGVjdGVkIiwidHlwZUFoZWFkU2VsZWN0IiwiSU5JVCIsIlVQREFURV9PUFRJT05TIiwiVVBEQVRFX1NFTEVDVEVEIiwibWFwU2VsZWN0ZWQiLCJzZWxlY3RUeXBlQWhlYWRTZWxlY3QiLCJ0eXBlQWhlYWQiLCJpc0ltbXV0YWJsZSIsIl9BdWRpdHNQYWdlIiwiX0F1ZGl0c1BhZ2VTZWxlY3RvcnMiLCJfSE9DIiwiX3dpdGhRdWVyeVJlZHVjZXIiLCJfd2l0aERhdGFSZWR1Y2VyIiwiYXVkaXRzIiwic2VsZWN0QXVkaXRzIiwic2VsZWN0QXVkaXRzSXNMb2FkaW5nUGFnZSIsInNlbGVjdEF1ZGl0c0NvdW50Iiwic2VsZWN0QXVkaXRzTWVzc2FnZSIsInNlbGVjdEF1ZGl0c1NlbGVjdGVkUGFnZSIsInNlbGVjdEF1ZGl0c1BlclBhZ2UiLCJzZWxlY3RBdWRpdHNTZWFyY2giLCJzZWxlY3RBdWRpdHNIYXNFcnJvciIsInNlbGVjdEF1ZGl0c0hhc0RhdGEiLCJhdWRpdHNQYWdlIiwiY29tYmluZVJlZHVjZXJzIiwid2l0aERhdGFSZWR1Y2VyIiwid2l0aFF1ZXJ5UmVkdWNlciIsImluaXRpYWxpemVBdWRpdHMiLCJBdWRpdHNQYWdlIiwic2VsZWN0QXVkaXRzUGFnZURhdGEiLCJzZWxlY3RBdWRpdHNQYWdlUXVlcnkiLCJfSGVhZCIsIlBhZ2VMYXlvdXQiLCJzZWFyY2hhYmxlIiwic2VhcmNoUHJvcHMiLCJvblNlYXJjaCIsIm9uQm9va21hcmtDbGljayIsImN1c3RvbUJyZWFkY3J1bWJzIiwiYnJlYWRjcnVtYk9wdGlvbnMiLCJ0b29sYmFyQnV0dG9ucyIsImJlZm9yZVRvb2xiYXJDb21wb25lbnQiLCJSb3ciLCJDb2wiLCJtZCIsImluaXRpYWxRdWVyeSIsImlzU3dpdGNoYWJsZSIsInJlc291cmNlIiwibmFtZUZpZWxkIiwic3dpdGNoZXJJdGVtVXJsIiwicmVzb3VyY2VGaWx0ZXIiLCJicmVhZGNydW1iSXRlbXMiLCJjYXB0aW9uIiwiYWx0IiwiX0Jvb2ttYXJrc0FjdGlvbnMiLCJfQm9va21hcmtzQ29uc3RhbnRzIiwiX0Jvb2ttYXJrcyIsIl9Cb29rbWFya3NSZWR1Y2VyIiwiX0Jvb2ttYXJrc1NlbGVjdG9ycyIsIkNvbm5lY3RlZEJvb2ttYXJrcyIsInNlbGVjdEJvb2ttYXJrc1Jlc3VsdHMiLCJpc01vZGFsT3BlbiIsIl91c2VGb3JlbWFuTW9kYWwiLCJnZXRCb29rbWFya3MiLCJib29rbWFya3NQRjQiLCJfQm9va21hcmtGb3JtIiwiU2VhcmNoTW9kYWwiLCJvbkVudGVyIiwiZW5mb3JjZUZvY3VzIiwiX1RleHRGaWVsZCIsIlRleHRGaWVsZCIsIm1heExlbmd0aE1zZyIsInJlcXVpcmVkTXNnIiwiX3JlYWN0SGVsbWV0IiwiSGVhZCIsIkhlbG1ldCIsIl9FbXB0eVN0YXRlUHJvcFR5cGVzIiwiRW1wdHlTdGF0ZVBhdHRlcm4iLCJkb2N1bWVudGF0aW9uIiwic2Vjb25kYXJ5QWN0aW9ucyIsImljb25UeXBlIiwiZGVzY3JpcHRpb24iLCJEb2N1bWVudGF0aW9uQmxvY2siLCJfZG9jdW1lbnRhdGlvbiRsYWJlbCIsIl9kb2N1bWVudGF0aW9uJGJ1dHRvbiIsImJ1dHRvbkxhYmVsIiwiX2RvY3VtZW50YXRpb24kdXJsIiwiRW1wdHlTdGF0ZUljb24iLCJJY29uIiwiRW1wdHlTdGF0ZVZhcmlhbnQiLCJ4bCIsImhlYWRpbmdMZXZlbCIsIkVtcHR5U3RhdGVCb2R5IiwiRW1wdHlTdGF0ZVNlY29uZGFyeUFjdGlvbnMiLCJlbXB0eVN0YXRlUGF0dGVyblByb3BUeXBlcyIsImFjdGlvbkJ1dHRvblByb3BUeXBlcyIsImRlZmF1bHRFbXB0eVN0YXRlUHJvcFR5cGVzIiwic2Vjb25kcyIsInNob3dSZWxhdGl2ZVRpbWVUb29sdGlwIiwiZm9ybWF0UmVsYXRpdmUiLCJzZWNvbmRzRm9ybWF0IiwiRm9ybWF0dGVkRGF0ZSIsInNlY29uZCIsIl9Nb2RlbHNQYWdlIiwiX01vZGVsc1BhZ2VTZWxlY3RvcnMiLCJtb2RlbHMiLCJzZWxlY3RNb2RlbHMiLCJzZWxlY3RQYWdlIiwic2VsZWN0UGVyUGFnZSIsInNlbGVjdFNlYXJjaCIsInNlbGVjdFNvcnQiLCJzZWxlY3RIYXNEYXRhIiwic2VsZWN0U3VidG90YWwiLCJzZWxlY3RNZXNzYWdlIiwic2VsZWN0Q2FuQ3JlYXRlIiwiaW5pdGlhbGl6ZU1vZGVscyIsIk1vZGVsc1BhZ2UiLCJXcmFwcGVkTW9kZWxzVGFibGUiLCJzZXRUb0RlbGV0ZSIsIm9uRGVsZXRlQ2xpY2siLCJyb3dEYXRhIiwiX2Zvcm1hdHRlcldpdGhQcm9wcyIsIl9jZWxsRm9ybWF0dGVyIiwiX2VsbGlwc2lzQ2VsbEZvcm1hdHRlciIsIl9uYW1lQ2VsbEZvcm1hdHRlciIsIl9ob3N0c0NvdW50Q2VsbEZvcm1hdHRlciIsIl9zb3J0YWJsZUhlYWRlckZvcm1hdHRlciIsIl9kZWxldGVBY3Rpb25DZWxsRm9ybWF0dGVyIiwiX3NlbGVjdGlvbkNlbGxGb3JtYXR0ZXIiLCJfc2VsZWN0aW9uSGVhZGVyQ2VsbEZvcm1hdHRlciIsIlRhYmxlIiwiQ2VsbCIsIl9UYWJsZUJvZHlNZXNzYWdlIiwiVGFibGVCb2R5Iiwicm93cyIsImNvbFNwYW4iLCJCb2R5Iiwicm93S2V5Iiwicm93SW5kZXgiLCJUYWJsZUJvZHlNZXNzYWdlIiwiY29sdW1uIiwicHJvcGVydHkiLCJoZWFkRm9ybWF0IiwiY2VsbEZvcm1hdCIsImhlYWRQcm9wcyIsImNlbGxQcm9wcyIsImNlbGwiLCJfU2VsZWN0aW9uQ29uc3RhbnRzIiwidGFibGVJRCIsIlNFTEVDVF9ST1dTIiwicm93IiwiT1BFTl9TRUxFQ1RfQUxMIiwic2VsZWN0QWxsUm93cyIsIlNFTEVDVF9BTExfUk9XUyIsInVuc2VsZWN0QWxsUm93cyIsIlVOU0VMRUNUX0FMTF9ST1dTIiwic2VsZWN0Um93IiwidW5zZWxlY3RSb3ciLCJVTlNFTEVDVF9ST1dTIiwiX2NvbnN0YW50czIiLCJzdWJ0b3RhbCIsInNlbGVjdE1vZGVsc1BhZ2VEYXRhIiwic2VsZWN0TW9kZWxzUGFnZVJlc3BvbnNlIiwiX3NlbGVjdE1vZGVsc1BhZ2VEYXRhIiwic2VsZWN0TW9kZWxzUGFnZVN0YXR1cyIsIl9TZXR0aW5nUmVjb3Jkc0FjdGlvbnMiLCJfU2V0dGluZ1JlY29yZHNSZWR1Y2VyIiwic2V0dGluZ1JlY29yZHMiLCJzZXR0aW5ncyIsImxvYWRTZXR0aW5nUmVjb3JkcyIsIl9TZXR0aW5nUmVjb3Jkc0NvbnN0YW50cyIsIkxPQURfU0VUVElOR19SRUNPUkRTIiwic2V0U2V0dGluZ0VkaXRpbmciLCJTRVRfRURJVElOR19TRVRUSU5HIiwiU0VUVElOR1NfRk9STV9TVUJNSVRURURfU1VDQ0VTUyIsIl9QZXJzb25hbEFjY2Vzc1Rva2Vuc1JlZHVjZXIiLCJwZXJzb25hbEFjY2Vzc1Rva2VucyIsImRlZmF1bHRUZXh0Iiwic3VjY2Vzc01lc3NhZ2UiLCJidXR0b25UZXh0IiwidGV4dGFyZWFQcm9wcyIsImJ1dHRvblByb3BzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwic2V0VGV4dCIsIlVVSUQiLCJuYXZpZ2F0b3IiLCJjbGlwYm9hcmQiLCJ3cml0ZVRleHQiLCJfRGF0ZUlucHV0IiwiX1RvZGF5QnV0dG9uIiwiX1RpbWVJbnB1dCIsIl9EYXRlQ29uc3RhbnRzIiwiRGF0ZVRpbWVQaWNrZXIiLCJfbGVuIiwiX2tleSIsImluaXRpYWxEYXRlIiwidHlwZU9mRGF0ZUlucHV0IiwiaXNUaW1lVGFibGVPcGVuIiwiaGlkZGVuVmFsdWUiLCJoYXNEZWZhdWx0VmFsdWUiLCJuZXdEYXRlIiwic2V0U3RhdGUiLCJ3ZWVrU3RhcnRzT24iLCJfdGhpcyRzdGF0ZSIsInBvcG92ZXIiLCJzZXRTZWxlY3RlZCIsIklucHV0R3JvdXAiLCJGb3JtQ29udHJvbCIsIkFkZG9uIiwiY2xlYXJTZWxlY3RlZCIsImluc3RhbmNlT2YiLCJfTW9udGhWaWV3IiwiX1llYXJWaWV3IiwiX0RlY2FkZVZpZXciLCJEYXRlSW5wdXQiLCJ0b2dnbGVEYXRlVmlldyIsImdldERhdGVWaWV3QnlUeXBlIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwiVG9kYXlCdXR0b24iLCJfUGlja1RpbWVUYWJsZSIsIl9QaWNrVGltZUNsb2NrIiwiX1RpbWVDb25zdGFudHMiLCJUaW1lSW5wdXQiLCJ0eXBlT2ZUaW1lSW5wdXQiLCJuZXh0VGltZSIsInNldElzVGltZVRhYmxlT3BlbiIsInRvZ2dsZVRpbWVUYWJsZSIsIl9yb3V0ZXMiLCJfUm91dGluZ1NlcnZpY2UiLCJfRm9yZW1hblN3aXRjaGVyIiwiQXBwU3dpdGNoZXIiLCJzZWxlY3RLZWJhYkl0ZW1zIiwic2VsZWN0QnVpbGRFcnJvcnMiLCJfc2VsZWN0QVBJUmVzcG9uc2UiLCJzZWxlY3RCdWlsZEVycm9yc1RyZWUiLCJfT2JqZWN0JGVudHJpZXMkbWFwIiwiYnVpbGRFcnJvcnMiLCJTVVBQT1JURURfRVJST1JTIiwic2VsZWN0Tm9FcnJvclN0YXRlIiwiaXNFbXB0eUFycmF5IiwiY3VycmVudFZhbHVlIiwiZXZlcnkiLCJwcm94aWVzIiwiX2NvbnN0cyIsImRlbGV0ZUhvc3QiLCJob3N0TmFtZSIsImNvbXB1dGUiLCJkZXN0cm95Vm1Pbkhvc3REZWxldGUiLCJjYXNjYWRlTWVzc2FnZSIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJjYXNjYWRlIiwiZGVmYXVsdE1lc3NhZ2UiLCJ1cGRhdGVIb3N0IiwiaG9zdElkIiwiYnVpbGRIb3N0IiwicHV0IiwiY2FuY2VsQnVpbGQiLCJpc0hvc3RUdXJuT24iLCJfU3RhdHVzVGFibGUiLCJTdGF0dXNNb2RhbCIsInN0YXR1c2VzIiwiY2FuRm9yZ2V0U3RhdHVzZXMiLCJUaXRsZVNpemVzIiwiYXBwZW5kVG8iLCJib2R5IiwiRU1QVFlfQVJSQVkiLCJzZWxlY3RTdGF0dXNCeVN0YXRlIiwic3RhdHVzU3RhdGUiLCJub3RBdmFpbGFibGVTdGF0dXNlcyIsInNlbGVjdFN1cHBvcnRlZFN0YXR1c2VzQXNPYmplY3QiLCJzZWxlY3ROQVN0YXR1c2VzIiwidW5pb25CeSIsInNlbGVjdFN1cHBvcnRlZFN0YXR1c2VzIiwiX3NlbGVjdEFQSVJlc3BvbnNlMiIsIl9zZWxlY3RBUElSZXNwb25zZTIkYyIsImNhcHRpb25zIiwiX3NlbGVjdFN1cHBvcnRlZFN0YXR1IiwicmVwb3J0ZWRfYXQiLCJzZWxlY3RFcnJvclN0YXR1c2VzIiwic2VsZWN0V2FybmluZ1N0YXR1c2VzIiwic2VsZWN0T0tTdGF0dXNlcyIsInN1cHBvcnRlZFN0YXR1c2VzIiwiZXhpc3RTdGF0dXNlcyIsImRpZmZlcmVuY2VCeSIsInNlbGVjdEFsbFNvcnRlZFN0YXR1c2VzIiwiZGF0YUFjdGlvbiIsIm9wZXJhdGluZ1N5c3RlbVRlbXBsYXRlQWN0aW9uIiwiY29tbWFuZEFjdGlvbiIsInBvc3QiLCJMaW5rT3JMYWJlbCIsInNlbGVjdEhvc3RTdGF0dXNlcyIsInNlbGVjdEhvc3RTdGF0dXNlc05hbWVzIiwic2VsZWN0SG9zdFN0YXR1cyIsInN0YXR1c05hbWUiLCJzZWxlY3RIb3N0U3RhdHVzRGV0YWlscyIsIl9zZWxlY3RIb3N0U3RhdHVzIiwiZGV0YWlscyIsInNlbGVjdEhvc3RTdGF0dXNEZXNjcmlwdGlvbiIsIl9zZWxlY3RIb3N0U3RhdHVzMiIsInNlbGVjdEhvc3RTdGF0dXNPa1RvdGFsUGF0aCIsIl9zZWxlY3RIb3N0U3RhdHVzMyIsIm9rX3RvdGFsX3BhdGgiLCJzZWxlY3RIb3N0U3RhdHVzT2tPd25lZFBhdGgiLCJfc2VsZWN0SG9zdFN0YXR1czQiLCJva19vd25lZF9wYXRoIiwic2VsZWN0SG9zdFN0YXR1c1dhcm5Ub3RhbFBhdGgiLCJfc2VsZWN0SG9zdFN0YXR1czUiLCJ3YXJuX3RvdGFsX3BhdGgiLCJzZWxlY3RIb3N0U3RhdHVzV2Fybk93bmVkUGF0aCIsIl9zZWxlY3RIb3N0U3RhdHVzNiIsIndhcm5fb3duZWRfcGF0aCIsInNlbGVjdEhvc3RTdGF0dXNFcnJvclRvdGFsUGF0aCIsIl9zZWxlY3RIb3N0U3RhdHVzNyIsImVycm9yX293bmVkX3BhdGgiLCJzZWxlY3RIb3N0U3RhdHVzRXJyb3JPd25lZFBhdGgiLCJfc2VsZWN0SG9zdFN0YXR1czgiLCJlcnJvcl90b3RhbF9wYXRoIiwic2VsZWN0SG9zdFN0YXR1c1RvdGFsUGF0aHMiLCJva1RvdGFsUGF0aCIsIndhcm5Ub3RhbFBhdGgiLCJlcnJvclRvdGFsUGF0aCIsInNlbGVjdEhvc3RTdGF0dXNPd25lZFBhdGhzIiwib2tPd25lZFBhdGgiLCJ3YXJuT3duZWRQYXRoIiwiZXJyb3JPd25lZFBhdGgiLCJzZWxlY3RHbG9iYWxTdGF0dXMiLCJNYXRoIiwibWF4IiwidG90YWwiLCJncyIsImdsb2JhbF9zdGF0dXMiLCJzZWxlY3RIb3N0U3RhdHVzQ291bnRlciIsImNhbGN1bGF0ZSIsImFjYyIsIm93bmVkIiwidW5rbm93biIsIl9yZWY2Iiwib2siLCJfcmVmNyIsIl9yZWY4IiwiX3JlZjkiLCJfQmFyQ2hhcnRTZXJ2aWNlIiwieEF4aXNMYWJlbCIsInlBeGlzTGFiZWwiLCJnZXRCYXJDaGFydENvbmZpZyIsIl9EYXRlVGltZVBpY2tlciIsIl9PcmRlcmFibGVTZWxlY3QiLCJfTWVtb3J5QWxsb2NhdGlvbklucHV0IiwiX0NvdW50ZXJJbnB1dCIsIl9UaW1lUGlja2VyIiwiX1NlbGVjdCIsImlucHV0Q29tcG9uZW50cyIsImRhdGVUaW1lIiwib3JkZXJhYmxlU2VsZWN0IiwiT3JkZXJhYmxlU2VsZWN0IiwiVGltZVBpY2tlciIsIm1lbW9yeSIsIk1lbW9yeUFsbG9jYXRpb25JbnB1dCIsImNvdW50ZXIiLCJDb3VudGVySW5wdXQiLCJyZWdpc3RlcklucHV0Q29tcG9uZW50IiwiZ2V0Q29tcG9uZW50Q2xhc3MiLCJzZXRFcnJvciIsInNldFdhcm5pbmciLCJjb250cm9sUHJvcHMiLCJjb21wb25lbnRDbGFzcyIsInZhbGlkYXRpb25zIiwiX3JlYWN0RG5kIiwib3JkZXJEcmFnZ2VkIiwiaW5wdXRBcnJheSIsImRyYWdJbmRleCIsImhvdmVySW5kZXgiLCJkcmFnZWRWYWx1ZSIsIm9yZGVyZWQiLCJzcGxpY2UiLCJtYWtlT25Ib3ZlciIsImdldEluZGV4IiwiZ2V0TW92ZUZuYyIsImRpcmVjdGlvbiIsIm1vbml0b3IiLCJob3ZlckJvdW5kaW5nUmVjdCIsImdldE5vZGUiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzaG91bGRNb3ZlIiwib25Ib3ZlciIsImNsaWVudEF0dHIiLCJyZWN0TWF4QXR0ciIsInJlY3RNaW5BdHRyIiwiaG92ZXJNaWRkbGUiLCJjbGllbnRPZmZzZXQiLCJnZXRDbGllbnRPZmZzZXQiLCJob3ZlckNsaWVudCIsImdldERyb3BUYXJnZXQiLCJkcm9wVHlwZXMiLCJEcm9wVGFyZ2V0IiwiaG92ZXIiLCJjb25uZWN0RHJvcFRhcmdldCIsImRyb3BUYXJnZXQiLCJnZXREcmFnU291cmNlIiwiZHJhZ1R5cGUiLCJEcmFnU291cmNlIiwiYmVnaW5EcmFnIiwiY29ubmVjdERyYWdTb3VyY2UiLCJkcmFnU291cmNlIiwiaXNEcmFnZ2luZyIsIm9yZGVyYWJsZSIsIl9yZWYkZGlyZWN0aW9uIiwiX3JlZiRnZXRJdGVtIiwiX3JlZiRnZXRJbmRleCIsIl9yZWYkZ2V0TW92ZUZuYyIsIm1vdmVWYWx1ZSIsIk9yZGVyYWJsZSIsImZvcndhcmRSZWYiLCJzdHlsZU9uRHJhZyIsImVsZW1lbnRSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwib3BhY2l0eSIsInJlbmRlck9wdGlvbiIsIm9wdFZhbHVlIiwicmVuZGVyT3B0R3JvdXAiLCJncm91cExhYmVsIiwib3B0cyIsIm9wdCIsIl9yZWFjdEVsbGlwc2lzV2l0aFRvb2x0aXAiLCJfTG9hZGVyIiwic2hvd01vZGFsIiwic2hvdWxkQ29tcG9uZW50VXBkYXRlIiwibmV4dFByb3BzIiwibmV4dFN0YXRlIiwiaXNFcXVhbCIsImNoYXJ0IiwiY29tcG9uZW50cyIsIkNoYXJ0IiwiZGF0YUZpbHRlcmVkIiwiaGFzQ2hhcnREYXRhIiwiaGVhZGVyUHJvcHMiLCJ0aXAiLCJjaGFydFByb3BzIiwiYmFyQ2hhcnRQcm9wcyIsImNoYXJ0UHJvcHNGb3JUeXBlIiwicGFuZWxDaGFydCIsIkNhcmQiLCJhY2NlbnRlZCIsIkhlYWRpbmciLCJvbkhpZGUiLCJzZWxlY3RTZXR0aW5nUmVjb3JkcyIsInNlbGVjdFNldHRpbmdzIiwic2VsZWN0U2V0dGluZ3NCeUNhdGVnb3J5IiwiY2F0ZWdvcnkiLCJzZWxlY3RTZXR0aW5nQnlJZCIsInNlbGVjdFNldHRpbmdFZGl0aW5nIiwiZWRpdGluZyIsIl9TZXR0aW5nVXBkYXRlTW9kYWxDb25zdGFudHMiLCJ1c2VTZXR0aW5nTW9kYWwiLCJfaG9zdHMiLCJfRmlsbCIsIl9Cb29rbWFya3MyIiwiY29tYmluZVJlZHVjZXJzQXN5bmMiLCJhc3luY1JlZHVjZXJzIiwiYm9va21hcmtzUmVkdWNlcnMiLCJib29rbWFya3NQRjRSZWR1Y2VycyIsInRvYXN0c0xpc3RSZWR1Y2VycyIsInBhc3N3b3JkU3RyZW5ndGhSZWR1Y2VycyIsImJyZWFkY3J1bWJCYXJSZWR1Y2VycyIsImxheW91dFJlZHVjZXJzIiwiYXV0b0NvbXBsZXRlUmVkdWNlcnMiLCJkaWZmTW9kYWxSZWR1Y2VycyIsImVkaXRvclJlZHVjZXJzIiwidGVtcGxhdGVHZW5lcmF0aW9uUmVkdWNlcnMiLCJmYWN0Q2hhcnQiLCJ0eXBlQWhlYWRTZWxlY3RSZWR1Y2VycyIsInNldHRpbmdSZWNvcmRzUmVkdWNlcnMiLCJwZXJzb25hbEFjY2Vzc1Rva2Vuc1JlZHVjZXJzIiwiY29uZmlybU1vZGFsUmVkdWNlcnMiLCJyb3V0ZXIiLCJjb25uZWN0Um91dGVyIiwiZmlsbFJlZHVjZXJzIiwiYXVkaXRzUGFnZVJlZHVjZXJzIiwibW9kYWxSZWR1Y2VycyIsIm1vZGVsc1BhZ2VSZWR1Y2VycyIsImludGVydmFsUmVkdWNlcnMiLCJhcGlBY3Rpb24iLCJfZGVsZXRlIiwiX0JyZWFkY3J1bWJCYXJDb25zdGFudHMiLCJ0b2dnbGVTd2l0Y2hlciIsImNsb3NlU3dpdGNoZXIiLCJsb2FkU3dpdGNoZXJSZXNvdXJjZXNCeVJlc291cmNlIiwidXBkYXRlQnJlYWRjcnVtYlRpdGxlIiwiYmVmb3JlUmVxdWVzdCIsIm9uUmVxdWVzdFN1Y2Nlc3MiLCJvblJlcXVlc3RGYWlsIiwiZm9ybWF0UmVzdWx0cyIsInN3aXRjaGVySXRlbXMiLCJmbGF0dGVuIiwiaXRlbU5hbWUiLCJwYWdlcyIsImNyZWF0ZVNlYXJjaCIsInNpbXBsZU5hbWVRdWVyeSIsImdldFJlc3VsdHMiLCJzdGFydFJlcXVlc3QiLCJjcmVhdGVBUElSZXF1ZXN0IiwiX3lpZWxkJEFQSSRnZXQiLCJyZXF1ZXN0RmFpbHVyZSIsImlzVmlzaWJsZSIsImdldEFQSVBhdGgiLCJyZXF1ZXN0U3VjY2VzcyIsIm5vRGF0YUVycm9yIiwib2JqZWN0RGVlcFRyaW0iLCJfcmVmNyRpc1Zpc2libGUiLCJpc0ZpbmlzaGVkV2l0aFBvaW50IiwibG9hZE5leHRSZXN1bHRzIiwiQVBJU2VhcmNoUXVlcnkiLCJBUElQYXRoIiwiYWRkU2VhcmNoIiwicmVzZXREYXRhIiwiY29weSIsImFkZFNwYWNlIiwidXBkYXRlRGlzYWJpbGl0eSIsInVwZGF0ZUNvbnRyb2xsZXIiLCJfRGlmZk1vZGFsQ29uc3RhbnRzIiwidG9nZ2xlTW9kYWwiLCJjaGFuZ2VWaWV3VHlwZSIsImNyZWF0ZURpZmYiLCJpbml0aWFsaXplRWRpdG9yIiwiaW5pdGlhbGl6ZURhdGEiLCJsb2NrZWQiLCJpbXBvcnRGaWxlIiwicmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZHN0YXJ0Iiwib25sb2FkZW5kIiwib25sb2FkIiwicmVhZEFzVGV4dCIsInJldmVydENoYW5nZXMiLCJwcmV2aWV3VGVtcGxhdGUiLCJyZW5kZXJQYXRoIiwidGVtcGxhdGVWYWx1ZSIsImlzRXJyb3JTaG93biIsInByZXZpZXdfaG9zdF9pZCIsImZldGNoVGVtcGxhdGVQcmV2aWV3IiwiZGlzbWlzc0Vycm9yVG9hc3QiLCJfeDIiLCJmZXRjaEhvc3RzIiwiY3JlYXRlSG9zdEFQSVJlcXVlc3QiLCJkZWJvdW5jZWRGZXRjaEhvc3RzIiwiZGVib3VuY2VkQ3JlYXRlSG9zdEFQSVJlcXVlc3QiLCJvblJlc3VsdHNTdWNjZXNzIiwib25SZXN1bHRzRXJyb3IiLCJfeDMiLCJfeDQiLCJfeDUiLCJfeDYiLCJfeDciLCJvbkhvc3RTZWFyY2giLCJmZXRjaEFuZFByZXZpZXciLCJfY2FsbGVlMyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIl94OCIsIl94OSIsImNoYW5nZURpZmZWaWV3VHlwZSIsImNoYW5nZUVkaXRvclZhbHVlIiwiY2hhbmdlVGFiIiwidG9nZ2xlTWFza1ZhbHVlIiwiY2hhbmdlU2V0dGluZyIsIm5ld1NldHRpbmciLCJ0b2dnbGVSZW5kZXJWaWV3Iiwib25TZWFyY2hDbGVhciIsIm9uSG9zdFNlbGVjdFRvZ2dsZSIsIl9UeXBlQWhlYWRTZWxlY3RDb25zdGFudHMiLCJ1cGRhdGVPcHRpb25zIiwiUGFnaW5hdGlvbldyYXBwZXIiLCJvblBhZ2VTZXRVcGRhdGUiLCJ1cGRhdGUiLCJvblBlclBhZ2VTZWxlY3RVcGRhdGUiLCJjaGFuZ2VzIiwibmV3UGFnaW5hdGlvbiIsInVwZGF0ZURpc2siLCJuZXdWYWx1ZXMiLCJpbml0Q29udHJvbGxlciIsImNsdXN0ZXIiLCJjb250cm9sbGVycyIsInZvbHVtZXMiLCJkZWZhdWx0Q29udHJvbGxlckF0dHJpYnV0ZXMiLCJnZXREZWZhdWx0RGlza0F0dHJpYnV0ZXMiLCJmZXRjaERhdGFzdG9yZXMiLCJkYXRhc3RvcmVzVXJsIiwiZmV0Y2hTdG9yYWdlUG9kcyIsInN0b3JhZ2VQb2RzVXJsIiwiY2hhbmdlQ2x1c3RlciIsIm5ld0NsdXN0ZXIiLCJzdG9yYWdlIiwidm13YXJlIiwiZmV0Y2hTdG9yYWdlcyIsImNsdXN0ZXJfaWQiLCJhZGRDb250cm9sbGVyIiwidm9sdW1lIiwicmVtb3ZlRGlzayIsInJlbW92ZUNvbnRyb2xsZXIiLCJjb250cm9sbGVyS2V5IiwiYWRkRGlzayIsIl9zdG9yYWdlIiwiYXZhaWxhYmxlQ29udHJvbGxlcktleXMiLCJnZXRBdmFpbGFibGVLZXkiLCJoZWFkIiwiZGlmZmVyZW5jZSIsImF2YWlsYWJsZUtleSIsImN0cmxzIiwiY3RybCIsInVwZGF0ZUluIiwibmV3U3RhdGUiLCJwYXJhbXNTY29wZSIsImRhdGFzdG9yZXMiLCJkYXRhc3RvcmVzTG9hZGluZyIsImRhdGFzdG9yZXNFcnJvciIsInN0b3JhZ2VQb2RzIiwic3RvcmFnZVBvZHNMb2FkaW5nIiwic3RvcmFnZVBvZHNFcnJvciIsInNldEluIiwibWVyZ2UiLCJzb21lIiwic2VlbiIsIl9hY3Rpb25UeXBlR2VuZXJhdG9yIiwiU1VDQ0VTUyIsIkZBSUxVUkUiLCJSRVFVRVNUIiwiVVBEQVRFIiwiX0FQSVJlcXVlc3QiLCJfQVBJSGVscGVycyIsIkFQSU1pZGRsZXdhcmUiLCJhcGlSZXF1ZXN0IiwiX0ludGVydmFsU2VsZWN0b3JzIiwiX3JlZiRwYXlsb2FkIiwiX3JlZiRwYXlsb2FkJGhlYWRlcnMiLCJfcmVmJHBheWxvYWQkcGFyYW1zIiwiX3JlZiRwYXlsb2FkJGFjdGlvblR5IiwiX3JlZiRwYXlsb2FkJGhhbmRsZUVyIiwiX3JlZiRwYXlsb2FkJGhhbmRsZVN1IiwiX3JlZiRwYXlsb2FkJHBheWxvYWQiLCJ1cGRhdGVEYXRhIiwicHJldlN0YXRlIiwibW9kaWZpZWRQYXlsb2FkIiwic3RvcEludGVydmFsQ2FsbGJhY2siLCJJbnRlcnZhbE1pZGRsZXdhcmUiLCJfYWN0aW9uJHBheWxvYWQiLCJpbnRlcnZhbEtleSIsIm1vZGlmaWVkQWN0aW9uIiwib21pdCIsImRpc3BhdGNoTW9kaWZpZWRBY3Rpb24iLCJkZWxheSIsImludGVydmFsRnVuYyIsIndoZW5Eb2N1bWVudElzVmlzaWJsZSIsInNldEludGVydmFsIiwic3RhcnRJbnRlcnZhbEFjdGlvbiIsImNsZWFySW50ZXJ2YWwiLCJfZG9jdW1lbnQiLCJoaWRkZW4iLCJtc0hpZGRlbiIsIndlYmtpdEhpZGRlbiIsImlzSGlkZGVuIiwiaXNOb3RVbmRlZmluZWQiLCJ3aXRob3V0IiwidG9hc3RzTGlzdFNsaWNlIiwidG9hc3QiLCJwcmVwYXJlIiwibmFub2lkIiwiY2xlYXJUb2FzdHMiLCJBbGVydFZhcmlhbnQiLCJmYWxsYmFja1R5cGVzIiwiYWxlcnQiLCJ3YXJuaW5nIiwibm90aWNlIiwiZGFuZ2VyIiwiZGVmYXVsdFRpdGxlIiwiX2F4aW9zIiwiZ2V0Y3NyZlRva2VuIiwidG9rZW4iLCJxdWVyeVNlbGVjdG9yIiwiYXhpb3MiLCJkZWZhdWx0cyIsImNvbW1vbiIsImF4aW9zQWN0aXZlIiwiaW50ZXJjZXB0b3JzIiwicmVxdWVzdCIsInVzZSIsIl9QYXNzd29yZFN0cmVuZ3RoQ29uc3RhbnRzIiwidXBkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsInVwZGF0ZVBhc3N3b3JkQ29uZmlybWF0aW9uIiwicGFzc3dvcmRDb25maXJtYXRpb24iLCJfcmVhY3RQYXNzd29yZFN0cmVuZ3RoIiwidmVyaWZ5IiwidXNlcklucHV0SWRzIiwidXNlcklucHV0cyIsImNoYW5nZUNhbGxiYWNrIiwibWluTGVuZ3RoIiwibWluU2NvcmUiLCJ0b29TaG9ydFdvcmQiLCJzY29yZVdvcmRzIiwiYXV0b0NvbXBsZXRlIiwicmVxdWVzdEVycm9yIiwic2VsZWN0QnJlYWRjcnVtYkJhciIsIl9CcmVhZGNydW1iIiwiaGFuZGxlT3BlbiIsIl9yZXNvdXJjZSRzd2l0Y2hlckl0ZSIsImlzVXJsRm9ybWF0VmFsaWQiLCJzZWFyY2hEZWJvdW5jZVRpbWVvdXQiLCJvblN3aXRjaGVySXRlbUNsaWNrIiwiaXNUaXRsZSIsInBhZ2VJbmNyZW1lbnQiLCJoYW5kbGVTd2l0Y2hlckl0ZW1DbGljayIsIkJyZWFkY3J1bWJTd2l0Y2hlciIsInJlc291cmNlcyIsIm9uVG9nZ2xlckNsaWNrIiwib25PcGVuIiwib25TZWFyY2hDaGFuZ2UiLCJvbk5leHRQYWdlQ2xpY2siLCJvblByZXZQYWdlQ2xpY2siLCJzZWFyY2hWYWx1ZSIsIm9uUmVzb3VyY2VDbGljayIsIkJyZWFkY3J1bWIiLCJvdmVycmlkZVRpdGxlIiwiaXRlbVRpdGxlIiwiaW5uZXIiLCJCcmVhZGNydW1iSXRlbSIsImlzQWN0aXZlIiwidG8iLCJzcmMiLCJpbml0aWFsQXV0b2NvbXBsZXRlU3RhdGUiLCJfYWN0aW9uJHBheWxvYWQyIiwiX0F1dG9Db21wbGV0ZU1lbnUiLCJfQXV0b0NvbXBsZXRlRXJyb3IiLCJfQXV0b0NvbXBsZXRlQXV4IiwiX0F1dG9Db21wbGV0ZUZvY3VzU2hvcnRjdXQiLCJfa2V5Q29kZXMiLCJfdHlwZWFoZWFkIiwiY3JlYXRlUmVmIiwiYWRkRXZlbnRMaXN0ZW5lciIsIndpbmRvd0tleVByZXNzSGFuZGxlciIsImhhbmRsZUxvYWRpbmciLCJoYW5kbGVDbGVhciIsInR5cGVhaGVhZCIsImhhbmRsZVNlYXJjaCIsImdldEluc3RhbmNlIiwiRU5URVIiLCJLRVlDT0RFUyIsIkZXRF9TTEFTSCIsIkJBQ0tfU0xBU0giLCJ0YWdOYW1lIiwiZGlkRXZlbnRDYW1lRnJvbUlucHV0IiwiY2hhckNvZGUiLCJzaG93TWVudSIsImlzTWVudUhpZGRlbiIsIl90aGlzJHByb3BzNCIsImhhbmRsZUlucHV0Rm9jdXMiLCJfdGhpcyRwcm9wczUiLCJoYW5kbGVJbnB1dENoYW5nZSIsImhhbmRsZVJlc3VsdHNDaGFuZ2UiLCJfc2hvd01lbnUiLCJoYW5kbGVLZXlEb3duIiwia2V5Q29kZSIsImFjdGl2ZUl0ZW0iLCJFU0MiLCJibHVyIiwiY2xlYXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiX3RoaXMkcHJvcHM2IiwiX3RoaXMkcHJvcHM3Iiwib25JbnB1dENoYW5nZSIsIm9uRm9jdXMiLCJvbktleURvd24iLCJyZW5kZXJNZW51IiwiciIsIm1lbnVQcm9wcyIsInNwZWxsQ2hlY2siLCJvbkNsZWFyIiwiaW5pdGlhbEVycm9yIiwiQXV0b0NvbXBsZXRlRXJyb3IiLCJfU3Vic3RyaW5nV3JhcHBlciIsIk1lbnUiLCJNZW51SXRlbSIsIkRpdmlkZXIiLCJBdXRvQ29tcGxldGVNZW51IiwiaXRlbUluZGV4IiwiZ3JvdXBlZCIsImdldE1lbnVJdGVtc0J5Q2F0ZWdvcnkiLCJvcHRpb24iLCJwb3NpdGlvbiIsIlN1YnN0cmluZ1dyYXBwZXIiLCJFbGVtZW50IiwicmVnZXhTdHJpbmciLCJzcGlsdHRlZFRleHQiLCJwYXJ0cyIsIndyYXBwZWRUZXh0IiwiX0F1dG9Db21wbGV0ZUNsZWFyQnV0dG9uIiwiX29iamVjdERlc3RydWN0dXJpbmdFbXB0eSIsIkF1dG9Db21wbGV0ZUF1eCIsIkF1dG9Db21wbGV0ZUNsZWFyQnV0dG9uIiwiQXV0b0NvbXBsZXRlRm9jdXNTaG9ydGN1dCIsIlRBQl9LRVkiLCJfZ2V0VmFsdWUiLCJuYXZDb2xsYXBzZWQiLCJfTGF5b3V0Q29udGFpbmVyIiwiX0hlYWRlclRvb2xiYXIiLCJWZXJ0aWNhbE5hdiIsImhvdmVyRGVsYXkiLCJvbkl0ZW1DbGljayIsIm9uTmF2aWdhdGUiLCJhY3RpdmVQYXRoIiwib25Db2xsYXBzZSIsIm9uRXhwYW5kIiwiTWFzdGhlYWQiLCJCcmFuZCIsImljb25JbWciLCJMYXlvdXRDb250YWluZXIiLCJjbGFzc2VzIiwiY2xhc3NMaXN0IiwiX1RheG9ub215U3dpdGNoZXIiLCJfVXNlckRyb3Bkb3ducyIsIl9JbXBlcnNvbmF0ZUljb24iLCJfSW5zdGFuY2VUaXRsZVZpZXdlciIsIkhlYWRlclRvb2xiYXIiLCJub3RpZmljYXRpb25VcmwiLCJzdG9wSW1wZXJzb25hdGlvblVybCIsImluc3RhbmNlVGl0bGUiLCJQYWdlSGVhZGVyVG9vbHMiLCJQYWdlSGVhZGVyVG9vbHNHcm91cCIsIm9yZ2FuaXphdGlvbnMiLCJQYWdlSGVhZGVyVG9vbHNJdGVtIiwiaW1wZXJzb25hdGVkX2J5IiwiX1RheG9ub215RHJvcGRvd24iLCJUYXhvbm9teVN3aXRjaGVyIiwiVG9vbGJhckl0ZW0iLCJ0YXhvbm9teVR5cGUiLCJ0YXhvbm9taWVzIiwiVGF4b25vbXlEcm9wZG93biIsImFueVRheG9ub215VVJMIiwibWFuYWdlVGF4b25vbXlVUkwiLCJhbnlUYXhvbm9teVRleHQiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2V0SXNPcGVuIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJmaWx0ZXJlZEl0ZW1zIiwic2V0RmlsdGVyZWRJdGVtcyIsIm9uU2VhcmNoQnV0dG9uQ2xpY2siLCJ1c2VDYWxsYmFjayIsImZpbHRlcmVkIiwib25Ub2dnbGUiLCJuZXdJc09wZW4iLCJvblNlbGVjdCIsIm9uU2VhcmNoSW5wdXRDaGFuZ2UiLCJzZWxlY3RlZEljb24iLCJDaGVja0ljb24iLCJhbnlUYXhvbm9teUl0ZW0iLCJDb250ZXh0U2VsZWN0b3JJdGVtIiwiaXNEaXNhYmxlZCIsImZvb3RlciIsIkNvbnRleHRTZWxlY3RvckZvb3RlciIsImlzU21hbGwiLCJDb250ZXh0U2VsZWN0b3IiLCJ0b2dnbGVUZXh0Iiwic2VhcmNoSW5wdXRWYWx1ZSIsInNjcmVlblJlYWRlckxhYmVsIiwiVXNlckRyb3Bkb3ducyIsInVzZXJEcm9wZG93bk9wZW4iLCJzZXRVc2VyRHJvcGRvd25PcGVuIiwib25Ecm9wZG93blRvZ2dsZSIsIm5ld1VzZXJEcm9wZG93bk9wZW4iLCJvbkRyb3Bkb3duU2VsZWN0IiwidXNlckluZm8iLCJ1c2VyRHJvcGRvd25JdGVtcyIsIkRyb3Bkb3duU2VwYXJhdG9yIiwiRHJvcGRvd25JdGVtIiwiaHRtbF9vcHRpb25zIiwiRHJvcGRvd24iLCJpc1BsYWluIiwidG9nZ2xlIiwiRHJvcGRvd25Ub2dnbGUiLCJVc2VyQWx0SWNvbiIsImRyb3Bkb3duSXRlbXMiLCJoYW5kbGVOb3RpZmljYXRpb25Qb2xsaW5nRXJyb3IiLCJzdG9wTm90aWZpY2F0aW9uUG9sbGluZyIsImN1cnJlbnRFeHBhbmRlZCIsImdldE5ld0V4cGFuZGVkR3JvdXAiLCJpc0RyYXdlck9wZW5lZCIsIl9yZWYkZXh0ZXJuYWwiLCJleHRlcm5hbCIsInRvZ2dsZURyYXdlckFjdGlvbiIsIm9wZW5lZFdpbmRvdyIsIlRvZ2dsZUljb24iLCJJbXBlcnNvbmF0ZUljb25BY3Rpb25zIiwiSW1wZXJzb25hdGVJY29uIiwic2V0U2hvd01vZGFsIiwiRXllSWNvbiIsIk1lc3NhZ2VEaWFsb2ciLCJwcmltYXJ5QWN0aW9uIiwic3RvcEltcGVyc29uYXRpbmciLCJzZWNvbmRhcnlBY3Rpb24iLCJwcmltYXJ5QWN0aW9uQnV0dG9uQ29udGVudCIsInNlY29uZGFyeUFjdGlvbkJ1dHRvbkNvbnRlbnQiLCJwcmltYXJ5Q29udGVudCIsIl95aWVsZCRBUEkkZGVsZXRlIiwiSW5zdGFuY2VUaXRsZVZpZXdlciIsIl9EaWZmVmlldyIsIl9EaWZmUmFkaW9CdXR0b25zIiwiX0ltbXV0YWJsZSIsIl9FZGl0b3JWaWV3IiwiX0VkaXRvck5hdmJhciIsIl9FZGl0b3JNb2RhbCIsIl90aGlzJHByb3BzJGRhdGEiLCJfdGhpcyRwcm9wczIkZGF0YSIsImlzU2FmZW1vZGVFbmFibGVkIiwic2FmZW1vZGVSZW5kZXJQYXRoIiwic2hvd0hpZGUiLCJzaG93SW1wb3J0Iiwic2hvd1ByZXZpZXciLCJzaG93SG9zdFNlbGVjdG9yIiwiZWRpdG9yVmlld1Byb3BzIiwiZWRpdG9yTmFtZVRhYiIsInByZXZpZXciLCJUb2FzdE5vdGlmaWNhdGlvbiIsIm9uRGlzbWlzcyIsIm1vZGVzIiwidGhlbWVzIiwia2V5QmluZGluZ3MiLCJpc0RpZmYiLCJwcmV2aWV3VmFsdWUiLCJfRWRpdG9yUmFkaW9CdXR0b24iLCJfRWRpdG9yT3B0aW9ucyIsIl9FZGl0b3JIb3N0U2VsZWN0IiwiX0VkaXRvclNhZmVtb2RlQ2hlY2tib3giLCJFZGl0b3JOYXZiYXIiLCJzYWZlbW9kZSIsInNldFNhZmVtb2RlIiwiaGFuZGxlU2FmZU1vZGVDaGFuZ2UiLCJuZXdDaGVja2VkIiwiY3VycmVudFRhcmdldCIsImNoZWNrZWQiLCJuZXdSZW5kZXJQYXRoIiwic2VsZWN0ZWRSZW5kZXJQYXRoIiwiTmF2Iiwic2VsZWN0ZWRJdGVtIiwiRWRpdG9yUmFkaW9CdXR0b24iLCJOYXZJdGVtIiwiX0VkaXRvclNldHRpbmdzIiwiRWRpdG9yT3B0aW9ucyIsImZpbGVJbnB1dCIsImZpbGVEaWFsb2ciLCJkZWxheVNob3ciLCJjb25maXJtIiwiaW5wdXRSZWYiLCJFZGl0b3JTZXR0aW5ncyIsIlRvZ2dsZSIsImFjZU1vZGUiLCJrZXlCaW5kIiwidGhlbWVLZXkiLCJfcGF0dGVybmZseVJlYWN0RXh0ZW5zaW9ucyIsIkVkaXRvckhvc3RTZWxlY3QiLCJfQ29tcG9uZW50Iiwic2VsZWN0UmVmIiwiY29udGFpbnMiLCJzZXRXcmFwcGVyUmVmIiwib25LZXkiLCJFZGl0b3JTYWZlbW9kZUNoZWNrYm94IiwiaHRtbEZvciIsIkVkaXRvck1vZGFsIiwic2VsZWN0VGVtcGxhdGVzIiwic2VsZWN0R2VuZXJhdGluZ1Byb3BzRnJvbVRlbXBsYXRlcyIsInBvbGxpbmciLCJkYXRhVXJsIiwiZ2VuZXJhdGluZ0Vycm9yIiwiZ2VuZXJhdGluZ0Vycm9yTWVzc2FnZXMiLCJfVGVtcGxhdGVHZW5lcmF0b3JDb25zdGFudHMiLCJzY2hlZHVsZUluUHJvZ3Jlc3MiLCJfZmlsZVNhdmVyIiwicG9sbGluZ0ludGVydmFsIiwiZ2VuZXJhdGVUZW1wbGF0ZSIsInRlbXBsYXRlSW5wdXREYXRhIiwicG9sbFJlcG9ydERhdGEiLCJkYXRhX3VybCIsIl9kb3dubG9hZEZpbGUiLCJibG9iIiwiQmxvYiIsImZpbGVuYW1lIiwic2F2ZUFzIiwiX2dldEVycm9ycyIsImVycm9yUmVzcG9uc2UiLCJwb2xsVXJsIiwicmVzcG9uc2VUeXBlIiwic2V0VGltZW91dCIsIl9BbGVydEJvZHkiLCJwb2xsaW5nTXNnIiwiZG9uZU1zZyIsImdldEFsZXJ0IiwiZ2V0RXJyb3IiLCJyZW5kZXJBbGVydCIsInRlbXBsYXRlTmFtZSIsIl9GaWxsUmVkdWNlciIsIkZpbGwiLCJfcmVmJHBheWxvYWQyIiwiZmV0Y2hBdWRpdHMiLCJfcmVmMyRkYXRhIiwiZmV0Y2hBbmRQdXNoIiwiYnVpbGRRdWVyeSIsIl9QYWdlTGF5b3V0IiwiX0F1ZGl0c1RhYmxlIiwiX3Byb3BzJGRhdGEiLCJTZWFyY2hJY29uIiwiX1NlYXJjaE1vZGFsIiwiX0Jvb2ttYXJrSXRlbXMiLCJCb29rbWFya3MiLCJpc0Ryb3Bkb3duT3BlbiIsInNldElzRHJvcGRvd25PcGVuIiwibWFuYWdlQm9va21hcmtzIiwiYWRkQm9va21hcmtJdGVtIiwic2F2ZWRCb29rbWFya3NJdGVtcyIsIm1hbmFnZUJvb2ttYXJrc0l0ZW0iLCJPdXRsaW5lZEJvb2ttYXJrSWNvbiIsImlzR3JvdXBlZCIsIkZvcmVtYW5Nb2RhbCIsInByb3BzVG9QYXNzRG93biIsIl9leHRyYWN0TW9kYWxOb2RlcyIsImV4dHJhY3RNb2RhbE5vZGVzIiwiaGVhZGVyQ2hpbGQiLCJmb290ZXJDaGlsZCIsIm90aGVyQ2hpbGRyZW4iLCJkZWZhdWx0SGVhZGVyIiwiaGVhZGVyVGl0bGUiLCJoZWFkZXJUb1JlbmRlciIsImRlZmF1bHRGb290ZXIiLCJzdWJQcm9wcyIsImZvb3RlclRvUmVuZGVyIiwiUHJvdmlkZXIiLCJfU3VibWl0T3JDYW5jZWxBY3Rpb25zIiwiQ29ubmVjdGVkU3VibWl0T3JDYW5jZWwiLCJzdWJtaXRCdG5Qcm9wcyIsImNhbmNlbEJ0blByb3BzIiwiYm91bmRPblN1Ym1pdCIsInN1Ym1pdE1vZGFsIiwiY2xvc2VGbiIsIm9uU3VibWl0Iiwib25Nb2RhbEVycm9yIiwiX2RlZXBQcm9wc1RvQ2FtZWxDYXNlIiwiX2RlZXBQcm9wc1RvQ2FtZWxDYXNlMiIsIl9kZWVwUHJvcHNUb0NhbWVsQ2FzZTMiLCJfZGVlcFByb3BzVG9DYW1lbENhc2U0IiwiZnVsbE1lc3NhZ2VzIiwiX3JlZiRtZXRob2QiLCJfcmVmJGdldEVycm9yTXNnIiwiZ2V0RXJyb3JNc2ciLCJfcmVmJG9uU3VjY2VzcyIsIm9uU3VjY2VzcyIsIl95aWVsZCRBUEkkbWV0aG9kIiwiX1N1Ym1pdEJ0biIsIl9DYW5jZWxCdG4iLCJTdWJtaXRPckNhbmNlbCIsIlN1Ym1pdEJ0biIsImJ0blRleHQiLCJDYW5jZWxCdG4iLCJ0b0FycmF5IiwiX2Zvcm1zIiwiaW5pdGlhbFZhbHVlcyIsIkJvb2ttYXJrRm9ybSIsIll1cCIsIl92YWxpZGF0b3JzIiwiX1l1cCRzdHJpbmciLCJfWXVwJHN0cmluZzIiLCJleGlzdHNOYW1lc1JlZ2V4IiwiYm9va21hcmtGb3JtU2NoZW1hIiwibWF0Y2hlcyIsImV4Y2x1ZGVFbXB0eVN0cmluZyIsImhhbmRsZVN1Ym1pdCIsInZhbGlkYXRpb25TY2hlbWEiLCJfZm9ybWlrIiwiX0Zvcm0iLCJpc0luaXRpYWxWYWxpZCIsImlzVmFsaWRTeW5jIiwiRm9yZW1hbkZvcm0iLCJlbmFibGVSZWluaXRpYWxpemUiLCJGb3JtaWsiLCJmb3JtUHJvcHMiLCJpc1ZhbGlkIiwic3VibWlzc2lvbkVycm9yIiwiZXJyb3JUaXRsZSIsInN1Ym1pdHRpbmciLCJjbG9uZUNoaWxkcmVuIiwiY2hpbGRQcm9wcyIsImNsb25lRWxlbWVudCIsIl9BY3Rpb25zIiwiRm9ybSIsIkZvcm1BY3Rpb25zIiwiX1RleHRGaWVsZElubmVyIiwidmFsaWRhdGUiLCJGaWVsZCIsImZpZWxkIiwiX3JlZjIkZm9ybSIsImZvcm0iLCJtZXRhIiwiVGV4dEZpZWxkSW5uZXIiLCJfcmVmJG1ldGEiLCJfRG9jdW1lbnRhdGlvbkxpbmsiLCJEcm9wZG93bkdyb3VwIiwiUGx1c0ljb24iLCJwZW5kaW5nSXRlbSIsImJvb2ttYXJrc0xpc3QiLCJlcnJvckl0ZW0iLCJEb2N1bWVudGF0aW9uTGluayIsInNvcnRCeU5hbWUiLCJzZWxlY3RCb29rbWFya3MiLCJzZWxlY3RCb29rbWFya3NCeUNvbnRyb2xsZXIiLCJfQXVkaXRzTGlzdCIsIl9BdWRpdHNMb2FkaW5nUGFnZSIsIkF1ZGl0c1RhYmxlIiwibmV3UGFnZSIsIm5ld1BlclBhZ2UiLCJBdWRpdHNMb2FkaW5nUGFnZSIsIl9yZWYkbWVzc2FnZSIsImFjdGlvbkJ1dHRvbkNsaWNrSGFuZGxlciIsIkFjdGlvbkJ1dHRvbiIsIlNlY29uZGFyeUJ1dHRvbiIsIl9TZWFyY2hMaW5rIiwiX1Nob3dJbmxpbmVSZXF1ZXN0VXVpZCIsIl9TaG93T3Jnc0xvY3MiLCJfQWN0aW9uTGlua3MiLCJfRXhwYW5zaXZlVmlldyIsIl9Vc2VyRGV0YWlscyIsImlzQXVkaXRMb2dpbiIsImF1ZGl0ZWRDaGFuZ2VzIiwiX09iamVjdCRrZXlzMiIsImFjdGlvbkRpc3BsYXlOYW1lIiwiTGlzdFZpZXciLCJEZXNjcmlwdGlvbiIsIkRlc2NyaXB0aW9uVGV4dCIsInJlbmRlckFkZGl0aW9uYWxJbmZvSXRlbXMiLCJJbmZvSXRlbSIsInJlbmRlclRpbWVzdGFtcCIsInJlbmRlclJlc291cmNlTGluayIsImF1ZGl0VGl0bGUiLCJhdWRpdFRpdGxlVXJsIiwidGV4dFZhbHVlIiwiQXVkaXRzTGlzdCIsImluaXRFeHBhbmRlZCIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJhdWRpdGVkVHlwZU5hbWUiLCJhdWRpdGVkX3R5cGVfbmFtZSIsImF1ZGl0X3RpdGxlIiwiYXVkaXRfdGl0bGVfdXJsIiwiYXVkaXRlZF9jaGFuZ2VzIiwidXNlcl9pbmZvIiwicmVtb3RlQWRkcmVzcyIsInJlbW90ZV9hZGRyZXNzIiwiYWN0aW9uX2Rpc3BsYXlfbmFtZSIsImFmZmVjdGVkT3JnYW5pemF0aW9ucyIsImFmZmVjdGVkX29yZ2FuaXphdGlvbnMiLCJhZmZlY3RlZExvY2F0aW9ucyIsImFmZmVjdGVkX2xvY2F0aW9ucyIsImFsbG93ZWRBY3Rpb25zIiwiYWxsb3dlZF9hY3Rpb25zIiwicmVxdWVzdFV1aWQiLCJyZXF1ZXN0X3V1aWQiLCJjb21tZW50IiwiYXVkaXRlZENoYW5nZXNXaXRoSWRUb0xhYmVsIiwiYXVkaXRlZF9jaGFuZ2VzX3dpdGhfaWRfdG9fbGFiZWwiLCJJdGVtIiwiYWRkaXRpb25hbEluZm8iLCJoZWFkaW5nIiwic3RhY2tlZCIsImhpZGVDbG9zZUljb24iLCJTZWFyY2hMaW5rIiwibGlua1Byb3BzIiwiU2hvd0lubGluZVJlcXVlc3RVdWlkIiwic20iLCJfU2hvd1RheG9ub215SW5saW5lIiwiU2hvd09yZ3NMb2NzIiwiZGlzcGxheUxhYmVsIiwiU2hvd1RheG9ub215SW5saW5lIiwibGlzdEl0ZW1zIiwiYWRkQ1NTIiwiY3NzX2NsYXNzIiwiQWN0aW9uTGlua3MiLCJDc3NDbGFzc1N0cmluZyIsIl9EaWZmQ29udGFpbmVyIiwicmVuZGVyTGlzdEl0ZW1zIiwicmVuZGVyQ29scyIsImNoYW5nZUFyciIsIkNzc0NsYXNzU3RyIiwiaWRUb0xhYmVsIiwiaWRfdG9fbGFiZWwiLCJyZW5kZXJUYWJsZVJvd3MiLCJjaGFuZ2VFbnRyaWVzIiwiY2hhbmdlIiwic2hvd0F1ZGl0Q2hhbmdlcyIsInRhYmxlQ2xhc3NlcyIsIkV4cGFuc2l2ZVZpZXciLCJzaG93VGVtcGxhdGVEaWZmSWZBbnkiLCJEaWZmQ29udGFpbmVyIiwiVXNlckRldGFpbHMiLCJzZWFyY2hQYXRoIiwic2VhcmNoX3BhdGgiLCJVc2VyRGlzcGxheU5hbWUiLCJkaXNwbGF5X25hbWUiLCJhdWRpdFBhdGgiLCJhdWRpdF9wYXRoIiwiU2V0IiwiVVJJUGVyUGFnZSIsImFkZGl0aW9uYWxTdGF0ZSIsImJvb2ttYXJrc0FjdGlvbnMiLCJzZWxlY3RCb29rbWFya3NFcnJvcnMiLCJzZWxlY3RCb29rbWFya3NTdGF0dXMiLCJib3VuZE1vZGFsQWN0aW9ucyIsIl9nZXRCb29rbWFya3MiLCJfQm9va21hcmsiLCJsb2FkQm9va21hcmtzIiwicHVsbFJpZ2h0IiwiZGl2aWRlciIsIkJvb2ttYXJrIiwiX3N0YXRlJHBheWxvYWQkZGF0YSRjIiwic2VsZWN0Qm9va21hcmtTdGF0ZSIsInNlbGVjdEJvb2ttYXJrc1N1YlN0YXRlIiwic2VsZWN0Qm9va21hcmtzU3RhdGVCeUNvbnRyb2xsZXIiLCJib29rbWFya3NTdGF0ZSIsIl9Nb2RlbHNQYWdlQ29udGVudCIsImNyZWF0ZUJ0biIsIkxpbmsiLCJfUGFnaW5hdGlvbldyYXBwZXIiLCJfTW9kZWxEZWxldGVNb2RhbCIsIk1vZGVsc1BhZ2VDb250ZW50IiwidG9EZWxldGUiLCJzb3J0QnkiLCJzb3J0T3JkZXIiLCJnZXRUYWJsZUl0ZW1zIiwiX3RhYmxlIiwiX01vZGVsc1RhYmxlU2NoZW1hIiwiY3JlYXRlTW9kZWxzVGFibGVTY2hlbWEiLCJ3aXRoUHJvcHMiLCJmaWVsZFR5cGUiLCJ3aXRoSGVhZGVyUHJvcHMiLCJ3aXRoQ2VsbFByb3BzIiwiaGVhZGVyRm9ybWF0dGVyV2l0aFByb3BzIiwiUGZUYWJsZSIsImNlbGxGb3JtYXR0ZXJXaXRoUHJvcHMiLCJjZWxsRm9ybWF0dGVyIiwiX05hbWVDZWxsIiwibmFtZUNlbGxGb3JtYXR0ZXIiLCJjb250cm9sbGVyUGx1cmFsaXplIiwiX3JlZiRyb3dEYXRhIiwiY2FuRWRpdCIsImVuY29kZVVSSSIsIk5hbWVDZWxsIiwiX0hvc3RzQ291bnRDZWxsIiwiaG9zdHNDb3VudENlbGxGb3JtYXR0ZXIiLCJjb250cm9sbGVyU2luZ3VsYXIiLCJIb3N0c0NvdW50Q2VsbCIsIl9Tb3J0YWJsZUhlYWRlciIsInNvcnRhYmxlSGVhZGVyRm9ybWF0dGVyIiwic29ydENvbnRyb2xsZXIiLCJpc1NvcnRlciIsImN1cnJlbnRPcmRlciIsIm5leHRPcmRlciIsIlNvcnRhYmxlSGVhZGVyIiwiX0RlbGV0ZUJ1dHRvbiIsImRlbGV0ZUFjdGlvbkNlbGxGb3JtYXR0ZXIiLCJjYW5EZWxldGUiLCJEZWxldGVCdXR0b24iLCJfVGFibGVTZWxlY3Rpb25DZWxsIiwic2VsZWN0aW9uQ2VsbEZvcm1hdHRlciIsInNlbGVjdGlvbkNvbnRyb2xsZXIiLCJhZGRpdGlvbmFsRGF0YSIsIlRhYmxlU2VsZWN0aW9uQ2VsbCIsIlNlbGVjdGlvbkNlbGwiLCJDaGVja2JveCIsIl9UYWJsZVNlbGVjdGlvbkhlYWRlckNlbGwiLCJzZWxlY3Rpb25IZWFkZXJDZWxsRm9ybWF0dGVyIiwiYWxsUGFnZVNlbGVjdGVkIiwiVGFibGVTZWxlY3Rpb25IZWFkZXJDZWxsIiwiU2VsZWN0aW9uSGVhZGluZyIsIl9UYWJsZSIsIl9UYWJsZUJvZHkiLCJib2R5TWVzc2FnZSIsIlBmUHJvdmlkZXIiLCJzdHJpcGVkIiwiYm9yZGVyZWQiLCJfc29ydGFibGVDb2x1bW4iLCJfY29sdW1uIiwiX3NlbGVjdGlvbiIsInNvcnRhYmxlQ29sdW1uIiwibWRXaWR0aCIsImFkZGl0aW9uYWxDZWxsRm9ybWF0dGVycyIsImVsbGlwc2lzQ2VsbEZvcm1hdHRlciIsInNvcnREaXJlY3Rpb24iLCJzb3J0Q29udHJvbGxlckZhY3RvcnkiLCJhcGlDYWxsIiwicHVzaFN0YXRlIiwiX3NlbGVjdGlvbkFjdGlvbnMiLCJnZXRTZWxlY3Rpb25Db250cm9sbGVyIiwiYWxsUm93c1NlbGVjdGVkIiwic2VsZWN0ZWRSb3dzIiwiY2hlY2tBbGxQYWdlU2VsZWN0ZWQiLCJfZ2V0VGFibGVJdGVtc0FjdGlvbiIsImdldFRhYmxlSXRlbXNBY3Rpb24iLCJmZXRjaFVybCIsImluY2x1ZGVfcGVybWlzc2lvbnMiLCJfY3JlYXRlVGFibGVSZWR1Y2VyIiwiX3NlbGVjdGlvblJlZHVjZXIiLCJfYWN0aW9uVHlwZUNyZWF0b3IiLCJpbml0U3RhdGUiLCJjcmVhdGVUYWJsZVJlZHVjZXIiLCJfY3JlYXRlVGFibGVBY3Rpb25UeXAiLCJjcmVhdGVUYWJsZUFjdGlvblR5cGVzIiwic2hvd1NlbGVjdEFsbCIsImdldFNlbGVjdGVkUm93cyIsInNlbGVjdGlvblJlZHVjZXIiLCJjdXJyZW50VGFibGVJRCIsInVuaW9uIiwic2VsZWN0U2VsZWN0aW9uIiwic2VsZWN0U2VsZWN0aW9uQnlJRCIsInNlbGVjdEFsbFJvd3NTZWxlY3RlZCIsInNlbGVjdFNlbGVjdGVkUm93cyIsInNlbGVjdFNob3dTZWxlY3RBbGwiLCJhbGlnbiIsIk1vZGVsRGVsZXRlTW9kYWwiLCJfcHJvcHMkdG9EZWxldGUiLCJfTW9kZWxzUGFnZUhlbHBlcnMiLCJmZXRjaE1vZGVscyIsInVyaVdpdGhQcmFtcyIsInF1ZXJ5U29ydCIsInBpY2tTb3J0IiwiY2hlY2tTb3J0IiwidHJhbnNmb3JtU29ydCIsImNhdGVnb3JpemVkIiwidXBkYXRlZENhdGVnb3J5IiwiX1BlcnNvbmFsQWNjZXNzVG9rZW5zQWN0aW9ucyIsIl9QZXJzb25hbEFjY2Vzc1Rva2Vuc1NlbGVjdG9ycyIsIl9OZXdQZXJzb25hbEFjY2Vzc1Rva2VuIiwiX1BlcnNvbmFsQWNjZXNzVG9rZW5Gb3JtIiwiX1BlcnNvbmFsQWNjZXNzVG9rZW5zTGlzdCIsImdldFBlcnNvbmFsQWNjZXNzVG9rZW5zIiwibmV3UGVyc29uYWxBY2Nlc3NUb2tlbiIsInNlbGVjdE5ld1BlcnNvbmFsQWNjZXNzVG9rZW4iLCJ0b2tlbnMiLCJzZWxlY3RUb2tlbnMiLCJib3VuZENsZWFyTmV3UGVyc29uYWxBY2Nlc3NUb2tlbiIsImNsZWFyTmV3UGVyc29uYWxBY2Nlc3NUb2tlbiIsImJvdW5kUmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbiIsInJldm9rZVBlcnNvbmFsQWNjZXNzVG9rZW5BY3Rpb24iLCJyZXZva2VQZXJzb25hbEFjY2Vzc1Rva2VuIiwicmV2b2NhYmxlIiwiX2NvbW1vbiIsIl9QZXJzb25hbEFjY2Vzc1Rva2Vuc0NvbnN0YW50cyIsImFqYXhSZXF1ZXN0QWN0aW9uIiwicmVxdWVzdEFjdGlvbiIsInN1Y2Nlc3NBY3Rpb24iLCJmYWlsZWRBY3Rpb24iLCJfcmVmJGl0ZW0iLCJOZXdUb2tlbkluZm8iLCJfRGF0ZVRpbWUiLCJ0b2tlbkZvcm1TY2hlbWEiLCJleHBpcmVzX2F0IiwibWluIiwiUGVyc29uYWxBY2Nlc3NUb2tlbkZvcm0iLCJEYXRlVGltZSIsImN1cnJlbnRMb2NhbGUiLCJzZXRGaWVsZFZhbHVlIiwiX3JlZjIkZm9ybSRlcnJvcnMiLCJGaWVsZExldmVsSGVscCIsImJ1dHRvbkNsYXNzIiwibmV3VmFsdWUiLCJfRGF5IiwiX0hlYWRlciIsIk1vbnRoVmlldyIsInNlbGVjdGVkRGF0ZSIsIm1vbnRoU3RhcnQiLCJvZmZzZXQiLCJjaHVuayIsInRpbWVzIiwiY2FsZW5kYXIiLCJjYWxlbmRhckFycmF5IiwiZ2V0UHJldk1vbnRoIiwiZ2V0TmV4dE1vbnRoIiwiY2xhc3NOYW1lc0FycmF5Iiwid2Vla2VuZCIsIm9sZCIsInRvZGF5IiwiRGF5IiwiX0hlYWRlckhlbHBlcnMiLCJEYXRlVGltZUZvcm1hdCIsImRheXNPZlRoZVdlZWsiLCJnZXRXZWVrQXJyYXkiLCJ3ZWVrU3RhcnQiLCJkYXlGb3JtYXQiLCJ3ZWVrZGF5IiwiX2hlbHBlcnMyIiwiWWVhclZpZXciLCJjdXJyTW9udGgiLCJjdXJyWWVhciIsInNlbGVjdGVkWWVhciIsIm1vbnRoQXJyYXkiLCJnZXRNb250aEFycmF5IiwiZ2V0UHJldlllYXIiLCJnZXROZXh0WWVhciIsInNldFNlbGVjdGVkTW9udGgiLCJfRGVjYWRlVmlld0hlYWRlciIsIl9EZWNhZGVWaWV3VGFibGUiLCJEZWNhZGVWaWV3Iiwic2V0RnVsbFllYXIiLCJmbG9vciIsImN1cnJEZWNhZGUiLCJ5ZWFyQXJyYXkiLCJnZXRZZWFyQXJyYXkiLCJEZWNhZGVWaWV3SGVhZGVyIiwiZ2V0TmV4dERlY2FkZSIsImdldFByZXZEZWNhZGUiLCJEZWNhZGVWaWV3VGFibGUiLCJzZXRTZWxlY3RlZFllYXIiLCJQaWNrVGltZVRhYmxlIiwibmV3VGltZSIsImhvdXJzIiwicGFyc2VJbnQiLCJzZXRNaW51dGVzIiwic2V0SG91cnMiLCJzZXRUaW1lIiwiaG91cnNBcnJheSIsIm1pbnV0ZXNBcnJheSIsImdldFRpbWVUYWJsZSIsIlBpY2tUaW1lQ2xvY2siLCJhbXBtIiwic2V0QU1QTSIsImFtb3VudCIsInBhZFN0YXJ0IiwidG9nZ2xlQU1QTSIsIl9QZXJzb25hbEFjY2Vzc1Rva2VuIiwiUGVyc29uYWxBY2Nlc3NUb2tlbnNMaXN0IiwiUGVyc29uYWxBY2Nlc3NUb2tlbiIsImV4cGlyZXNBdCIsImxhc3RVc2VkQXQiLCJsYXN0X3VzZWRfYXQiLCJ1c2VySWQiLCJ1c2VyX2lkIiwiaXNSZXZva2VkIiwiY29uZmlybU1vZGFsU2xpY2UiLCJfYWN0aW9uJHBheWxvYWQkdGl0bGUiLCJfYWN0aW9uJHBheWxvYWQkbWVzc2EiLCJfYWN0aW9uJHBheWxvYWQkb25Db24iLCJfYWN0aW9uJHBheWxvYWQkb25DYW4iLCJfYWN0aW9uJHBheWxvYWQkaXNXYXIiLCJfYWN0aW9uJHBheWxvYWQkY29uZmkiLCJfYWN0aW9uJHBheWxvYWQkbW9kYWwiLCJfcGF5bG9hZCRkYXRhIiwidG9rZW5fdmFsdWUiLCJfcmVkdXhMb2dnZXIiLCJfcmVkdXhUaHVuayIsImxvZ1JlZHV4VG9Db25zb2xlIiwiaXNQcm9kdWN0aW9uIiwiaXNMb2dnZXIiLCJfX3Rlc3RpbmdfXyIsInRodW5rIiwicm91dGVyTWlkZGxld2FyZSIsImNyZWF0ZUxvZ2dlciIsIl9kZWZhdWx0RGlza0F0dHJpYnV0ZXMiLCJzaXplR2IiLCJkYXRhc3RvcmUiLCJzdG9yYWdlUG9kIiwidGhpbiIsImVhZ2VyWmVybyIsIl9jbGllbnQiLCJfYXBvbGxvIiwiX0Vycm9yQm91bmRhcnkiLCJ0b2FzdHMiLCJGb3JlbWFuQ29udGV4dCIsIkFwb2xsb1Byb3ZpZGVyIiwiY2xpZW50IiwiYXBvbGxvQ2xpZW50IiwiQ29ubmVjdGVkUm91dGVyIiwiTGF5b3V0UHJvcFR5cGVzIiwiX0F1ZGl0cyIsIl9Nb2RlbHMiLCJfSG9zdERldGFpbHMiLCJfUmVnaXN0cmF0aW9uQ29tbWFuZHMiLCJfSG9zdFN0YXR1c2VzIiwiQXVkaXRzIiwiTW9kZWxzIiwiSG9zdERldGFpbHMiLCJSZWdpc3RyYXRpb25Db21tYW5kcyIsIkhvc3RTdGF0dXNlcyIsIkhPU1RfREVUQUlMU19QQVRIIiwiX0FjdGlvbnNCYXIiLCJfVGFicyIsIl9HbG9iYWxTdGF0dXMiLCJfU2tlbGV0b25Mb2FkZXIiLCJfQVBJSG9va3MiLCJfVGFiUm91dGVyIiwiX0V4cGVyaW1lbnRhbEFsZXJ0IiwiX3VzZUFQSSIsImlzTmF2Q29sbGFwc2VkIiwidGFicyIsImRpc3BhdGNoRXZlbnQiLCJFdmVudCIsInJlZ2lzdGVyQ29yZVRhYnMiLCJhY3RpdmVUYWIiLCJkZWNvZGVVUkkiLCJQYWdlU2VjdGlvbiIsImlzRmlsbGVkIiwiR3JpZCIsIkdyaWRJdGVtIiwic3BhbiIsIlNwbGl0IiwiZGlzcGxheSIsImhhc0d1dHRlciIsIlNwbGl0SXRlbSIsIkJhZGdlIiwib3BlcmF0aW5nc3lzdGVtX25hbWUiLCJhcmNoaXRlY3R1cmVfbmFtZSIsIkZsZXgiLCJGbGV4SXRlbSIsImNvbXB1dGVJZCIsImNvbXB1dGVfcmVzb3VyY2VfaWQiLCJwZXJtaXNzaW9ucyIsImhhc1JlcG9ydHMiLCJsYXN0X3JlcG9ydCIsImlzQnVpbGQiLCJidWlsZCIsIlRleHQiLCJUZXh0VmFyaWFudHMiLCJvd25lcl9uYW1lIiwidXBkYXRlZF9hdCIsIlRhYnMiLCJhY3RpdmVLZXkiLCJfc2xvdE1ldGFkYXRhJHRhYiIsIlRhYiIsImV2ZW50S2V5IiwiX1NlbGVjdG9ycyIsIl9CdWlsZE1vZGFsIiwiQWN0aW9uc0JhciIsIl9yZWYkcGVybWlzc2lvbnMiLCJjYW5EZXN0cm95IiwiZGVzdHJveV9ob3N0cyIsImNyZWF0ZV9ob3N0cyIsImVkaXRfaG9zdHMiLCJjYW5CdWlsZCIsImJ1aWxkX2hvc3RzIiwia2ViYWJJc09wZW4iLCJzZXRLZWJhYiIsImlzQnVpbGRNb2RhbE9wZW4iLCJzZXRCdWlsZE1vZGFsIiwib25LZWJhYlRvZ2dsZSIsInJlZ2lzdGVyZWRJdGVtcyIsImlzSG9zdEFjdGl2ZSIsImRlbGV0ZUhvc3RIYW5kbGVyIiwiYnVpbGRIYW5kbGVyIiwiQnVpbGRJY29uIiwiQ2xvbmVJY29uIiwiVHJhc2hJY29uIiwiVGVybWluYWxJY29uIiwiRGF0YWJhc2VJY29uIiwiRmlsZUludm9pY2VJY29uIiwiVW5kb0ljb24iLCJDb21tZW50SWNvbiIsImFsaWdubWVudHMiLCJLZWJhYlRvZ2dsZSIsIl9TdGF0dXNJY29uIiwiQnVpbGRNb2RhbCIsImFjdGl2ZUVycm9ycyIsInNldEFjdGl2ZUVycm9ycyIsImVycm9yc1RyZWUiLCJub0Vycm9ycyIsImRpc3BhY2giLCJvblNlbGVjdEVycm9yIiwiZXZ0IiwidHJlZVZpZXdJdGVtIiwiU3RhY2siLCJTdGFja0l0ZW0iLCJpc0lubGluZSIsIlRyZWVWaWV3IiwiYWN0aXZlSXRlbXMiLCJoYXNCYWRnZXMiLCJfT3ZlcnZpZXciLCJfQ2FyZHNSZWdpc3RyeSIsIkRldGFpbHNUYWIiLCJyZWdpc3RlckNvcmVDYXJkcyIsImhvc3REZXRhaWxzIiwiX0RldGFpbHNDYXJkIiwiX0FnZ3JlZ2F0ZVN0YXR1c0NhcmQiLCJjYXJkcyIsIkRldGFpbHNDYXJkIiwiQWdncmVnYXRlU3RhdHVzIiwiQXVkaXRDYXJkIiwiTlVNQkVSX09GX1JFQ09SRFMiLCJob3N0U2VhcmNoIiwiYXBpVXJsIiwidWlVcmwiLCJfdXNlQVBJJHN0YXR1cyIsInhsMiIsImxnIiwiaXNIb3ZlcmFibGUiLCJDYXJkSGVhZGVyIiwiQ2FyZFRpdGxlIiwiQ2FyZEFjdGlvbnMiLCJDYXJkQm9keSIsIkJ1bGxzZXllIiwiRGF0YUxpc3QiLCJpc0NvbXBhY3QiLCJ1c2VyX25hbWUiLCJ0aW1lc3RhbXAiLCJEYXRhTGlzdEl0ZW0iLCJEYXRhTGlzdEl0ZW1Sb3ciLCJEYXRhTGlzdEl0ZW1DZWxscyIsImRhdGFMaXN0Q2VsbHMiLCJEYXRhTGlzdENlbGwiLCJ3cmFwTW9kaWZpZXIiLCJEYXRhTGlzdFRleHQiLCJfRGVmYXVsdExvYWRlckVtcHR5U3RhdGUiLCJfUG93ZXJTdGF0dXNEcm9wRG93biIsIl9yZWYkaG9zdERldGFpbHMiLCJpcCIsImlwNiIsIm1hYyIsIm93bmVySUQiLCJvd25lcl9pZCIsIm93bmVyTmFtZSIsImhvc3Rncm91cE5hbWUiLCJob3N0Z3JvdXBfbmFtZSIsIl9yZWYkaG9zdERldGFpbHMkcGVybSIsIl9yZWYkaG9zdERldGFpbHMkcGVybTIiLCJoYXNQb3dlclBlcm1pc3Npb24iLCJwb3dlcl9ob3N0cyIsInJvd1NwYW4iLCJob3N0SUQiLCJEZXNjcmlwdGlvbkxpc3QiLCJpc0F1dG9Db2x1bW5XaWR0aHMiLCJjb2x1bW5Nb2RpZmllciIsIkRlc2NyaXB0aW9uTGlzdEdyb3VwIiwiRGVzY3JpcHRpb25MaXN0VGVybSIsIkRlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uIiwiaXNCbG9jayIsIlVzZXJJY29uIiwiRGVmYXVsdExvYWRlckVtcHR5U3RhdGUiLCJfUG93ZXJTdGF0dXNJY29uIiwiUG93ZXJTdGF0dXNEcm9wRG93biIsImlzQm1jIiwicG93ZXJVUkwiLCJfdXNlQVBJJHJlc3BvbnNlIiwiY3VycmVudFN0YXRlIiwicmVzcG9uc2VTdGF0dXMiLCJzZXRPcGVuIiwiY2hhbmdlUG93ZXJIYW5kbGVyIiwidGFyZ2V0U3RhdGUiLCJjaGFuZ2VIb3N0UG93ZXIiLCJzdXBwb3J0ZWRQb3dlclN0YXRlcyIsIlBvd2VyU3RhdHVzSWNvbiIsIlBvd2VyT2ZmSWNvbiIsInBvd2VyX2FjdGlvbiIsInBvd2VyIiwiX1N0YXR1c2VzTW9kYWwiLCJfSG9zdFN0YXR1c1NlbGVjdG9yIiwiX0dsb2JhbFN0YXRlIiwiX0FnZ3JlZ2F0ZVN0YXR1c0l0ZW0iLCJBZ2dyZWdhdGVTdGF0dXNDYXJkIiwiY2FuVmlld1N0YXR1c2VzIiwidmlld19ob3N0cyIsImZvcmdldF9zdGF0dXNfaG9zdHMiLCJzZXRPcGVuTW9kYWwiLCJjaG9zZW5UeXBlIiwic2V0Q2hvc2VuVHlwZSIsIm9rU3RhdHVzZXMiLCJ3YXJuU3RhdHVzIiwiZXJyb3JTdGF0dXMiLCJuYVN0YXR1c2VzIiwiYWxsU29ydGVkU3RhdHVzZXMiLCJzdGF0dXNlc01hcHBlciIsImlzT0tTdGF0ZSIsImhhZGxlSWNvbkNsaWNrIiwiaGVpZ2h0IiwiY2Fubm90Vmlld1N0YXR1c2VzIiwiQ2FyZEZvb3RlciIsInN0YXR1c2VzX2hvc3RzIiwiX3JlYWN0VGFibGUiLCJfU3RhdHVzQWN0aW9ucyIsIlN0YXR1c1RhYmxlIiwiaGFuZGxlQ2xlYXJTdGF0dXMiLCJyb3dJZCIsIl9yb3dEYXRhJCIsIl9yb3dEYXRhJCR0aXRsZSIsIl9yb3dEYXRhJCR0aXRsZSRwcm9wcyIsIl9zdGF0dXNlcyRmaWx0ZXIiLCJfc3RhdHVzZXMkZmlsdGVyMiIsImNob3NlblN0YXR1cyIsImZvcmdldFN0YXR1cyIsInJlcG9ydGVkQXQiLCJhY3Rpb25SZXNvbHZlciIsImFyZUFjdGlvbnNEaXNhYmxlZCIsImJvcmRlcnMiLCJjZWxscyIsImRyb3Bkb3duRGlyZWN0aW9uIiwiVGFibGVIZWFkZXIiLCJnZXRTdGF0dXNlcyIsIkdsb2JhbFN0YXRlIiwibWFyZ2luVG9wIiwiaXNGdWxsSGVpZ2h0IiwiT2tJY29uIiwiU3RhdHVzSXRlbSIsImVudHJ5RGVsYXkiLCJleGl0RGVsYXkiLCJmb250U2l6ZSIsIl9yZWYkY2hpbGRyZW4iLCJhZGRQcm9wcyIsIkdsb2JhbFN0YXR1cyIsIm1vZGFsU3RhdHVzIiwic2V0TW9kYWxTdGF0dXMiLCJoYW5kbGVHbG9iYWxTdGF0dXNDbGljayIsIlRhYlJvdXRlciIsIkhhc2hSb3V0ZXIiLCJTd2l0Y2giLCJSZWRpcmVjdCIsIlRhYnNXaXRoSGFzaEhpc3RvcnkiLCJoYXNoSGlzdG9yeSIsIkV4cGVyaW1lbnRhbEFsZXJ0IiwiYWxlcnRWaXNpYmlsaXR5Iiwic2V0QWxlcnRWaXNpYmlsaXR5IiwiX1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZSIsIl9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2VTZWxlY3RvcnMiLCJfUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlQWN0aW9ucyIsIl9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2VDb25zdGFudHMiLCJfR2VuZXJhbCIsIl9BZHZhbmNlZCIsIl9Db21tYW5kIiwiUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlIiwiZm9yZW1hblZlcnNpb24iLCJzZXRBY3RpdmVUYWIiLCJnZW5lcmFsVGFiUmVmIiwiYWR2YW5jZWRUYWJSZWYiLCJhcGlTdGF0dXNDb21tYW5kIiwic2VsZWN0QVBJU3RhdHVzQ29tbWFuZCIsImFwaVN0YXR1c0RhdGEiLCJzZWxlY3RBUElTdGF0dXNEYXRhIiwiaXNHZW5lcmF0aW5nIiwic2VsZWN0T3JnYW5pemF0aW9ucyIsInNlbGVjdExvY2F0aW9ucyIsInNlbGVjdEhvc3RHcm91cHMiLCJzZWxlY3RPcGVyYXRpbmdTeXN0ZW1zIiwib3BlcmF0aW5nU3lzdGVtVGVtcGxhdGUiLCJzZWxlY3RPcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZSIsInNtYXJ0UHJveGllcyIsInNlbGVjdFNtYXJ0UHJveGllcyIsImNvbmZpZ1BhcmFtcyIsInNlbGVjdENvbmZpZ1BhcmFtcyIsInBsdWdpbkRhdGEiLCJzZWxlY3RQbHVnaW5EYXRhIiwib3JnYW5pemF0aW9uSWQiLCJzZXRPcmdhbml6YXRpb25JZCIsImxvY2F0aW9uSWQiLCJzZXRMb2NhdGlvbklkIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzZXRIb3N0R3JvdXBJZCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsInNldE9wZXJhdGluZ1N5c3RlbUlkIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInNtYXJ0UHJveHlJZCIsInNldFNtYXJ0UHJveHlJZCIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJpbnNlY3VyZSIsInNldEluc2VjdXJlIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsInNldHVwUmVtb3RlRXhlY3V0aW9uIiwic2V0U2V0dXBSZW1vdGVFeGVjdXRpb24iLCJfdXNlU3RhdGUxNyIsIl91c2VTdGF0ZTE4Iiwic2V0dXBJbnNpZ2h0cyIsInNldFNldHVwSW5zaWdodHMiLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwiand0RXhwaXJhdGlvbiIsInNldEp3dEV4cGlyYXRpb24iLCJfdXNlU3RhdGUyMSIsIl91c2VTdGF0ZTIyIiwicGFja2FnZXMiLCJzZXRQYWNrYWdlcyIsIl91c2VTdGF0ZTIzIiwiX3VzZVN0YXRlMjQiLCJ1cGRhdGVQYWNrYWdlcyIsInNldFVwZGF0ZVBhY2thZ2VzIiwiX3VzZVN0YXRlMjUiLCJfdXNlU3RhdGUyNiIsInJlcG8iLCJzZXRSZXBvIiwiX3VzZVN0YXRlMjciLCJfdXNlU3RhdGUyOCIsInJlcG9HcGdLZXlVcmwiLCJzZXRSZXBvR3BnS2V5VXJsIiwiX3VzZVN0YXRlMjkiLCJfdXNlU3RhdGUzMCIsImludmFsaWRGaWVsZHMiLCJzZXRJbnZhbGlkRmllbGRzIiwiY29tbWFuZCIsInNlbGVjdENvbW1hbmQiLCJfdXNlU3RhdGUzMSIsIl91c2VTdGF0ZTMyIiwicGx1Z2luVmFsdWVzIiwic2V0UGx1Z2luVmFsdWVzIiwiaGFuZGxlUGx1Z2luVmFsdWUiLCJwcmV2VmFsdWVzIiwiaGFuZGxlSW52YWxpZEZpZWxkIiwicHJldkZpZWxkcyIsImhvc3Rncm91cElkIiwib3BlcmF0aW5nc3lzdGVtSWQiLCJvcmdhbml6YXRpb25faWQiLCJsb2NhdGlvbl9pZCIsImhvc3Rncm91cF9pZCIsIm9wZXJhdGluZ3N5c3RlbV9pZCIsImlzSG9yaXpvbnRhbCIsIlRhYlRpdGxlVGV4dCIsInRhYkNvbnRlbnRJZCIsInRhYkNvbnRlbnRSZWYiLCJUYWJDb250ZW50IiwiaGFuZGxlT3JnYW5pemF0aW9uIiwiaGFuZGxlTG9jYXRpb24iLCJoYW5kbGVIb3N0R3JvdXAiLCJoYW5kbGVPcGVyYXRpbmdTeXN0ZW0iLCJoYW5kbGVTbWFydFByb3h5IiwiaGFuZGxlSW5zZWN1cmUiLCJoYW5kbGVJbnNpZ2h0cyIsImhhbmRsZVJlbW90ZUV4ZWN1dGlvbiIsImhhbmRsZUp3dEV4cGlyYXRpb24iLCJoYW5kbGVQYWNrYWdlcyIsImhhbmRsZVJlcG8iLCJoYW5kbGVSZXBvR3BnS2V5VXJsIiwiaGFuZGxlVXBkYXRlUGFja2FnZXMiLCJhcGlTdGF0dXMiLCJyb290VXJsIiwicm9vdF91cmwiLCJfVGF4b25vbWllcyIsIl9Ib3N0R3JvdXAiLCJfT3BlcmF0aW5nU3lzdGVtIiwiX1NtYXJ0UHJveHkiLCJfSW5zZWN1cmUiLCJHZW5lcmFsIiwiVGF4b25vbWllcyIsIkZvcm1Hcm91cCIsImZpZWxkSWQiLCJsYWJlbEljb24iLCJGb3JtU2VsZWN0IiwibCIsIl9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2VIZWxwZXJzIiwiSG9zdEdyb3VwIiwiT3BlcmF0aW5nU3lzdGVtIiwiaG9zdEdyb3VwT3NJZCIsImhlbHBlclRleHQiLCJ2YWxpZGF0ZWQiLCJTbWFydFByb3h5Iiwic3AiLCJJbnNlY3VyZSIsImlzQ2hlY2tlZCIsIl9Db25maWdQYXJhbXMiLCJfUGFja2FnZXMiLCJfUmVwb3NpdG9yeSIsIl9Ub2tlbkxpZmVUaW1lIiwiX1VwZGF0ZVBhY2thZ2VzIiwiQWR2YW5jZWQiLCJDb25maWdQYXJhbXMiLCJkZWZhdWx0TGFiZWwiLCJob3N0X3JlZ2lzdHJhdGlvbl9yZW1vdGVfZXhlY3V0aW9uIiwiaG9zdF9yZWdpc3RyYXRpb25faW5zaWdodHMiLCJQYWNrYWdlcyIsImhvc3RfcGFja2FnZXMiLCJUZXh0SW5wdXQiLCJSZXBvc2l0b3J5IiwiVG9rZW5MaWZlVGltZSIsIm1pblZhbHVlIiwibWF4VmFsdWUiLCJoZWxwZXJUZXh0SW52YWxpZCIsIklucHV0R3JvdXBUZXh0IiwiVXBkYXRlUGFja2FnZXMiLCJBY3Rpb25zIiwiQWN0aW9uR3JvdXAiLCJDb21tYW5kIiwiQ2xpcGJvYXJkQ29weVZhcmlhbnQiLCJleHBhbnNpb24iLCJpc1JlYWRPbmx5IiwiaXNDb2RlIiwiaXNFeHBhbmRlZCIsIkhPU1RfU1RBVFVTRVNfUEFUSCIsIl9TdGF0dXMiLCJfU3RhdHVzU2tlbGV0b24iLCJfSG9zdFN0YXR1c2VzU2VsZWN0b3JzIiwiU2tlbGV0b24iLCJwYWRkaW5nIiwiX0dsb2JhbFN0YXR1c0ljb24iLCJfRGV0YWlscyIsIl9MaW5rT3JMYWJlbCIsIlN0YXR1cyIsImV4cGFuZGVkIiwic2V0RXhwYW5kZWQiLCJnbG9iYWxTdGF0dXMiLCJfdXNlU2VsZWN0b3IyIiwiX3VzZVNlbGVjdG9yMyIsIl91c2VTZWxlY3RvcjMkdW5rbm93biIsInVua25vd25Ub3RhbENvdW50IiwidW5rbm93bk93bmVkQ291bnQiLCJfdXNlU2VsZWN0b3IzJG9rIiwib2tUb3RhbENvdW50Iiwib2tPd25lZENvdW50IiwiX3VzZVNlbGVjdG9yMyR3YXJuIiwid2FyblRvdGFsQ291bnQiLCJ3YXJuT3duZWRDb3VudCIsIl91c2VTZWxlY3RvcjMkZXJyb3IiLCJlcnJvclRvdGFsQ291bnQiLCJlcnJvck93bmVkQ291bnQiLCJjYXJkQ2xhc3MiLCJ1bmtub3duU3RhdHVzZXNQcmVzZW50IiwiX2V2ZW50IiwiX2lkIiwidG9nZ2xlQnV0dG9uUHJvcHMiLCJDYXJkRXhwYW5kYWJsZUNvbnRlbnQiLCJEZXRhaWxzIiwidG90YWxQYXRoIiwidG90YWxfcGF0aCIsIm93bmVkUGF0aCIsIm93bmVkX3BhdGgiLCJTdGF0dXNTa2VsZXRvbiIsIl9Sb3V0ZXJTZWxlY3RvciIsIkZvcmVtYW5Td2l0Y2hlciIsImNvcmVSb3V0ZXMiLCJzZWxlY3RSb3V0ZXMiLCJzZWxlY3RSb3V0ZXIiLCJzZWxlY3RSb3V0ZXJMb2NhdGlvbiIsInNlbGVjdFJvdXRlclBhdGgiLCJzZWxlY3RSb3V0ZXJTZWFyY2giLCJzZWxlY3RSb3V0ZXJIYXNoIiwic2VsZWN0TGFzdEhpc3RvcnlBY3Rpb24iLCJfYmF0Y2hIdHRwIiwiYmF0Y2hMaW5rIiwiQmF0Y2hIdHRwTGluayIsImF1dGhMaW5rIiwiQXBvbGxvTGluayIsIm9wZXJhdGlvbiIsImZvcndhcmQiLCJzZXRDb250ZXh0IiwiQXBvbGxvQ2xpZW50IiwiSW5NZW1vcnlDYWNoZSIsIkVycm9yQm91bmRhcnkiLCJsaXN0ZW4iLCJjb21wb25lbnREaWRDYXRjaCIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiZ29CYWNrIiwic21PZmZzZXQiLCJjb21wb25lbnRTdGFjayIsIl9BcmVhQ2hhcnRTZXJ2aWNlIiwieEF4aXNEYXRhTGFiZWwiLCJnZXRBcmVhQ2hhcnRDb25maWciLCJfcmVmJGNvbmZpZyIsIl9yZWYkeEF4aXNEYXRhTGFiZWwiLCJfcmVmJHN0YWNrZWQiLCJfcmVmJHNpemUiLCJ4IiwidGltZXN0YW1wcyIsImZvcm1hdGVkRGF0ZXMiLCJlcG9jaFNlY3MiLCJncm91cHMiLCJkYXRhSXRlbSIsImF4aXMiLCJ5IiwiZW51bXMiLCJTSVpFIiwiTEFSR0UiLCJSRUdVTEFSIiwiTUVESVVNIiwiV0lEVEgiLCJTTUFMTCIsImJhckNoYXJ0RW51bXMiLCJsaW5lQ2hhcnRFbnVtcyIsInBhdHRlcm4iLCJsZWdlbmQiLCJ0b3AiLCJsZWZ0IiwicmlnaHQiLCJib3R0b20iLCJ0aWNrIiwicm90YXRlIiwiYXJlYUNoYXJ0Q29uZmlnIiwiY2F0ZWdvcmllcyIsInVuc2hpZnQiLCJkIiwiX0xpbmVDaGFydFNlcnZpY2UiLCJheGlzT3B0cyIsImdldExpbmVDaGFydENvbmZpZyIsImNvbCIsIl9jb2wiLCJfUG93ZXJTdGF0dXMiLCJfUG93ZXJTdGF0dXNDb25zdGFudHMiLCJfUG93ZXJTdGF0dXNTZWxlY3RvcnMiLCJDb25uZWN0ZWRQb3dlclN0YXR1cyIsIkhPU1RfUE9XRVJfU1RBVFVTIiwic2VsZWN0U3RhdGUiLCJzZWxlY3RUaXRsZSIsInNlbGVjdEVycm9yTWVzc2FnZSIsInNlbGVjdFN0YXRlRnJvbUFQSSIsInNlbGVjdFRpdGxlRnJvbUFQSSIsInNlbGVjdFN0YXR1c1RleHQiLCJJbmxpbmVNZXNzYWdlIiwiaGVscElubGluZSIsIkhlbHBCbG9jayIsIkVycm9yQ2lyY2xlT0ljb24iLCJXYXJuaW5nVHJpYW5nbGVJY29uIiwibGFiZWxIZWxwIiwibGFiZWxTaXplQ2xhc3MiLCJpbnB1dFNpemVDbGFzcyIsImlubmVyRXJyb3IiLCJpbm5lcldhcm5pbmciLCJ2YWxpZGF0aW9uU3RhdGUiLCJjb250cm9sSWQiLCJDb250cm9sTGFiZWwiLCJfcmVhY3REbmRIdG1sNUJhY2tlbmQiLCJEbmRQcm92aWRlciIsImJhY2tlbmQiLCJIVE1MNUJhY2tlbmQiLCJfT3JkZXJhYmxlU2VsZWN0SG9va3MiLCJfT3JkZXJhYmxlVG9rZW4iLCJfdXNlSW50ZXJuYWxWYWx1ZSIsInVzZUludGVybmFsVmFsdWUiLCJfdXNlSW50ZXJuYWxWYWx1ZTIiLCJpbnRlcm5hbFZhbHVlIiwic2V0SW50ZXJuYWxWYWx1ZSIsIm1vdmVEcmFnZ2VkT3B0aW9uIiwiY2xhc3Nlc1dpdGhvdXRGb3JtQ29udHJvbCIsInJlbmRlclRva2VuIiwidG9rZW5Qcm9wcyIsImRlZmF1bHRWYWwiLCJvcmRlckNvbmZpZyIsIk9yZGVyYWJsZVRva2VuIiwib25SZW1vdmUiLCJ0YWJJbmRleCIsImxhYmVsS2V5IiwiVG9rZW4iLCJfcmNJbnB1dE51bWJlciIsInJlY29tbWVuZGVkTWF4VmFsdWUiLCJNRUdBQllURVMiLCJ2YWx1ZU1CIiwic2V0VmFsdWVNQiIsInZhbHVlQnl0ZXMiLCJNQl9GT1JNQVQiLCJoYW5kbGVDaGFuZ2UiLCJwYXJzZXIiLCJwcmVmaXhDbHMiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsImdldERhdGVGcm9tVGltZSIsInRvTG9jYWxlU3RyaW5nIiwiX2NvbnRyb2xsZXIiLCJWbVdhcmVBY3Rpb25zIiwiX1N0b3JhZ2VDb250YWluZXIiLCJmaWx0ZXJLZXlGcm9tVm9sdW1lIiwidm9sdW1lV2l0aG91dEtleSIsImNvbnRyb2xsZXJzVG9Kc29uU3RyaW5nIiwic2NzaUNvbnRyb2xsZXJzIiwiZ2V0RGF0YXN0b3Jlc1N0YXR1cyIsImdldFN0b3JhZ2VQb2RzU3RhdHVzIiwicmVuZGVyQ29udHJvbGxlcnMiLCJjb250cm9sbGVyVm9sdW1lcyIsImFkZERpc2tFbmFibGVkIiwiTWF4RGlza3NQZXJDb250cm9sbGVyIiwiZGF0YXN0b3Jlc1N0YXR1cyIsInN0b3JhZ2VQb2RzU3RhdHVzIiwiZW5hYmxlQWRkQ29udHJvbGxlckJ0biIsImFkZENvbnRyb2xsZXJFbmFibGVkIiwidm1FeGlzdHMiLCJjYXBhY2l0eSIsImZyZWVzcGFjZSIsInVuY29tbWl0dGVkIiwicGljayIsIl9udW1iZXJfaGVscGVycyIsIl9kaXNrIiwiQ29udHJvbGxlciIsImdldEV2ZW50VmFsdWUiLCJfdXBkYXRlQ29udHJvbGxlciIsImF0dHJpYnV0ZSIsIl91cGRhdGVEaXNrIiwiaHVtYW5TaXplIiwibnVtYmVyX3RvX2h1bWFuX3NpemUiLCJkYXRhc3RvcmVzU3RhdHMiLCJmcmVlIiwicHJvdiIsInN0b3JhZ2VQb2RzU3RhdHMiLCJkaXNrcyIsImRpc2siLCJjb250cm9sbGVyVHlwZXMiLCJfQ2hlY2tib3giLCJfTnVtZXJpY0lucHV0IiwiRGlzayIsImRpc2tNb2RlVHlwZXMiLCJ1cGRhdGVTdG9yYWdlUG9kIiwidXBkYXRlRGF0YXN0b3JlIiwiTnVtZXJpY0lucHV0IiwiX0ZhY3RDaGFydCIsIl9zZWxlY3RvcnMiLCJDb25uZWN0ZWRGYWN0Q2hhcnQiLCJob3N0c0NvdW50Iiwic2VsZWN0SG9zdENvdW50Iiwic2VsZWN0RmFjdENoYXJ0U3RhdHVzIiwiY2hhcnREYXRhIiwic2VsZWN0RmFjdENoYXJ0RGF0YSIsInNlbGVjdERpc3BsYXlNb2RhbCIsImRpc3BhdGNoQ2xvc2VNb2RhbCIsImRpc3BhdGNoT3Blbk1vZGFsIiwicmVxdWVzdEVycm9yTXNnIiwiaG9zdENvdW50ZXIiLCJhY2N1bXVsYXRvciIsInNlbGVjdEZhY3RDaGFydCIsIl9jb21wb25lbnRSZWdpc3RyeSIsInJlZ2lzdGVyZWRDb21wb25lbnQiLCJtZXRyaWNzQ2hhcnREYXRhIiwic3RhdHVzQ2hhcnREYXRhIiwiX3Byb3BzJGRhdGEkbWV0cmljc0RhIiwibWV0cmljc0RhdGEiLCJ0YWJsZURhdGEiLCJjcmVhdGVSb3ciLCJjaGFydEJveFByb3BzIiwibWV0cmljIiwiX2kxOG5Qcm92aWRlcldyYXBwZXJGYWN0b3J5Iiwic3RvcmVQcm92aWRlcldyYXBwZXJGYWN0b3J5IiwiU3RvcmVQcm92aWRlciIsImRhdGFQcm92aWRlcldyYXBwZXJGYWN0b3J5IiwiRGF0YVByb3ZpZGVyIiwicHJvcERhdGFNYXBwZXJXcmFwcGVyRmFjdG9yeSIsIlByb3BEYXRhTWFwcGVyIiwid3JhcHBlclJlZ2lzdHJ5Iiwid3JhcHBlcnMiLCJkYXRhTWFwcGVyIiwiaTE4blByb3ZpZGVyV3JhcHBlckZhY3RvcnkiLCJnZXRXcmFwcGVyIiwiX3dpdGgiLCJjdXJyZW50V3JhcHBlciIsImFkZGl0aW9uYWxXcmFwcGVyRmFjdG9yeSIsImFkZGl0aW9uYWxXcmFwcGVyIiwiaW5pdGlhbE5vdyIsIndyYXBwZWROYW1lIiwiSTE4blByb3ZpZGVyV3JhcHBlciIsImkxOG5Mb2FkZWQiLCJJbnRsUHJvdmlkZXIiLCJ0aW1lWm9uZSIsImFsZXJ0cyIsImJhY2tncm91bmRVcmwiLCJsb2dvU3JjIiwiX2FkanVzdEFsZXJ0cyIsImFkanVzdEFsZXJ0cyIsIm1vZGlmaWVkQWxlcnRzIiwic3VibWl0RXJyb3JzIiwiZm9vdGVyTGlua3MiLCJjYXJkIiwiZGVmYXVsdEZvcm1Qcm9wcyIsInN1Ym1pdEVycm9yIiwiYWRkaXRpb25hbEZpZWxkcyIsInN1Y2Nlc3MiLCJhbGVydFR5cGUiLCJhbGVydE1lc3NhZ2UiLCJhdHRyaWJ1dGVzIiwidG9wRXJyb3JPbmx5IiwidXNlcm5hbWVGaWVsZCIsImF1dG9Gb2N1cyIsInBhc3N3b3JkRmllbGQiLCJzdWJtaXRUZXh0Iiwic3VibWl0QnV0dG9uQXR0cmlidXRlcyIsInN1Ym1pdExpbmsiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJtZE9mZnNldCIsImJzU2l6ZSIsImJsb2NrIiwiX3dpdGhSZWFjdFJvdXRlcyIsImNhbmNlbFBhdGgiLCJ3aXRoUmVhY3RSb3V0ZXMiLCJSb3V0ZXIiLCJfU2V0dGluZ1JlY29yZHNTZWxlY3RvcnMiLCJXcmFwcGVkU2V0dGluZ3NUYWJsZSIsIl9TZXR0aW5nc1RhYmxlU2NoZW1hIiwiY3JlYXRlU2V0dGluZ3NUYWJsZVNjaGVtYSIsIl9TZXR0aW5nc1RhYmxlRm9ybWF0dGVycyIsInNldHRpbmdOYW1lQ2VsbEZvcm1hdHRlciIsInNldHRpbmdWYWx1ZUNlbGxGb3JtYXR0ZXIiLCJfU2V0dGluZ3NUYWJsZUhlbHBlcnMiLCJfU2V0dGluZ05hbWUiLCJfU2V0dGluZ0NlbGwiLCJTZXR0aW5nTmFtZVdpdGhUb29sdGlwIiwiU2V0dGluZ05hbWUiLCJjc3NDbGFzc2VzIiwiZWRpdGFibGUiLCJyZWFkb25seSIsImZ1bGxOYW1lIiwiX1NldHRpbmdDZWxsSW5uZXIiLCJTZXR0aW5nQ2VsbCIsImZpZWxkUHJvcHMiLCJjb25maWdGaWxlIiwiZGVmYXVsdFN0ciIsIlNldHRpbmdDZWxsSW5uZXIiLCJfdXNlU2V0dGluZ01vZGFsMiIsIl91c2VTZXR0aW5nTW9kYWwiLCJXcmFwcGVkU2V0dGluZ1VwZGF0ZU1vZGFsIiwiX1NldHRpbmdGb3JtIiwiaW5pdGlhbFZhbHVlIiwiV3JhcHBlZFNldHRpbmdGb3JtIiwiX1NldHRpbmdWYWx1ZUZpZWxkIiwiU2V0dGluZ0Zvcm0iLCJzdWJtaXRWYWx1ZXMiLCJzcGxpdFZhbHVlIiwiU2V0dGluZ1ZhbHVlRmllbGQiLCJpbnB1dEZpZWxkIiwiaGVscEJsb2NrIiwiZW5jcnlwdGVkSGVscCIsIl9yZWFjdERvbSIsIl9yZWdpc3RlclJlZHVjZXIiLCJfd3JhcE5hdGl2ZVN1cGVyIiwiQ2xhc3MiLCJfY2FjaGUiLCJNYXAiLCJfaXNOYXRpdmVGdW5jdGlvbiIsIldyYXBwZXIiLCJfY29uc3RydWN0IiwiUGFyZW50IiwibW91bnQiLCJyZWFjdE5vZGUiLCJSZWFjdERPTSIsInVubW91bnRDb21wb25lbnRBdE5vZGUiLCJtb3VudE5vZGUiLCJSZWFjdENvbXBvbmVudEVsZW1lbnQiLCJfSFRNTEVsZW1lbnQiLCJkYXRhc2V0IiwibmV3UHJvcHMiLCJfbW91bnRQb2ludCIsImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIsIm9sZFZhbHVlIiwiX3JlbmRlciIsImNvbm5lY3RlZENhbGxiYWNrIiwiZGlzY29ubmVjdGVkQ2FsbGJhY2siLCJtb3VudFBvaW50IiwiY29tcG9uZW50TmFtZSIsInJlYWN0UHJvcHMiLCJIVE1MRWxlbWVudCIsImN1c3RvbUVsZW1lbnRzIiwiX2luZGV4IiwiX2luZGV4MiIsImFzeW5jUmVkdWNlciIsInJlcGxhY2VSZWR1Y2VyIiwiX01vdW50aW5nU2VydmljZSIsInJlZ2lzdGVyUmVkdWNlciIsIlJvdXRlcyIsImZvcmVtYW5QYXRjaCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDJDOzs7Ozs7QUNBQSxnRDs7Ozs7Ozs7Ozs7OztBQ0FBLElBQUFBLElBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsbUJBQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELG1CQUFBO0FBQ0EsSUFBQUUsZUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxtQkFBQTtBQUE4QyxTQUFBRCx1QkFBQUksR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBQUEsU0FBQUUsUUFBQUYsR0FBQSxzQ0FBQUUsT0FBQSx3QkFBQUMsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFKLEdBQUEsa0JBQUFBLEdBQUEsZ0JBQUFBLEdBQUEsV0FBQUEsR0FBQSx5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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw2REFBNkQsaUJBQWlCO0FBQzlFOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSwrREFBK0QsVUFBVSxFQUFFO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7O0FBRUEsT0FBTztBQUNQLG9DQUFvQzs7QUFFcEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7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Ozs7Ozs7OztBQ0pyQixJQUFBd0osTUFBQSxHQUFBclksbUJBQUE7QUFFQSxJQUFNb1gsUUFBUSxHQUFHO0VBQ2Y0akgsWUFBWSxFQUFFLElBQUFyckUsc0JBQWUsRUFBQyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUFDLElBQUE5Z0QsUUFBQSxHQUVhdUksUUFBUTtBQUFBelcsT0FBQSxjQUFBa08sUUFBQSxDIiwiZmlsZSI6ImZvcmVtYW5fcGF0Y2gvZm9yZW1hbl9wYXRjaDpnbG9iYWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9fXCJcbi8vIG1vZHVsZSBpZCA9IDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUFJPUF9UWVBFU19fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUFJPUF9UWVBFU19fXCJcbi8vIG1vZHVsZSBpZCA9IDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBKZWQgZnJvbSAnamVkJztcbmltcG9ydCB7IGFkZExvY2FsZURhdGEgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBmb3JjZVNpbmdsZXRvbiBmcm9tICcuL2ZvcmNlU2luZ2xldG9uJztcblxuY2xhc3MgSW50bExvYWRlciB7XG4gIGNvbnN0cnVjdG9yKGxvY2FsZSwgdGltZXpvbmUpIHtcbiAgICB0aGlzLmZhbGxiYWNrSW50bCA9ICFnbG9iYWwuSW50bDtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgIHRoaXMubG9jYWxlID0gbG9jYWxlLnNwbGl0KCctJylbMF07XG4gICAgdGhpcy50aW1lem9uZSA9IHRoaXMuZmFsbGJhY2tJbnRsID8gJ1VUQycgOiB0aW1lem9uZTtcbiAgICB0aGlzLnJlYWR5ID0gdGhpcy5pbml0KCk7XG4gIH1cblxuICBhc3luYyBpbml0KCkge1xuICAgIGF3YWl0IHRoaXMuZmV0Y2hJbnRsKCk7XG4gICAgYWRkTG9jYWxlRGF0YShcbiAgICAgIGF3YWl0IGltcG9ydChcbiAgICAgICAgLyogd2VicGFja0NodW5rTmFtZTogJ3JlYWN0LWludGwvbG9jYWxlL1tyZXF1ZXN0XScgKi8gYHJlYWN0LWludGwvbG9jYWxlLWRhdGEvJHt0aGlzLmxvY2FsZX1gXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoSW50bCgpIHtcbiAgICBpZiAodGhpcy5mYWxsYmFja0ludGwpIHtcbiAgICAgIGdsb2JhbC5JbnRsID0gYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiaW50bFwiICovICdpbnRsJyk7XG4gICAgICBhd2FpdCBpbXBvcnQoXG4gICAgICAgIC8qIHdlYnBhY2tDaHVua05hbWU6ICdpbnRsL2xvY2FsZS9bcmVxdWVzdF0nICovIGBpbnRsL2xvY2FsZS1kYXRhL2pzb25wLyR7dGhpcy5sb2NhbGV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgaHRtbEVsZW1udCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdodG1sJylbMF07XG5jb25zdCBsYW5nQXR0ciA9IGh0bWxFbGVtbnQuZ2V0QXR0cmlidXRlKCdsYW5nJykgfHwgJ2VuJztcbmNvbnN0IHRpbWV6b25lQXR0ciA9IGh0bWxFbGVtbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXRpbWV6b25lJykgfHwgJ1VUQyc7XG5cbmV4cG9ydCBjb25zdCBpbnRsID0gZm9yY2VTaW5nbGV0b24oXG4gICdJbnRsJyxcbiAgKCkgPT4gbmV3IEludGxMb2FkZXIobGFuZ0F0dHIsIHRpbWV6b25lQXR0cilcbik7XG5cbmNvbnN0IGNoZXZlcm9uUHJlZml4ID0gKCkgPT4gKHdpbmRvdy5JMThOX01BUksgPyAnXFx1MDBCQicgOiAnJyk7XG5jb25zdCBjaGV2ZXJvblN1ZmZpeCA9ICgpID0+ICh3aW5kb3cuSTE4Tl9NQVJLID8gJ1xcdTAwQUInIDogJycpO1xuXG5leHBvcnQgY29uc3QgZG9jdW1lbnRMb2NhbGUgPSAoKSA9PiBsYW5nQXR0cjtcblxuY29uc3QgZ2V0TG9jYWxlRGF0YSA9ICgpID0+IHtcbiAgY29uc3QgbG9jYWxlcyA9IHdpbmRvdy5sb2NhbGVzIHx8IHt9O1xuICBjb25zdCBsb2NhbGUgPSBkb2N1bWVudExvY2FsZSgpLnJlcGxhY2UoLy0vZywgJ18nKTtcblxuICBpZiAobG9jYWxlc1tsb2NhbGVdID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYGNvdWxkIG5vdCBsb2FkIHRyYW5zbGF0aW9ucyBmb3IgJHtsb2NhbGV9IGxvY2FsZSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHQgbG9jYWxlLmBcbiAgICApO1xuICAgIHJldHVybiB7IGRvbWFpbjogJ2FwcCcsIGxvY2FsZV9kYXRhOiB7IGFwcDogeyAnJzoge30gfSB9IH07XG4gIH1cblxuICByZXR1cm4gbG9jYWxlc1tsb2NhbGVdO1xufTtcblxuZXhwb3J0IGNvbnN0IGplZCA9IGZvcmNlU2luZ2xldG9uKCdKZWQnLCAoKSA9PiBuZXcgSmVkKGdldExvY2FsZURhdGEoKSkpO1xuXG5leHBvcnQgY29uc3QgdHJhbnNsYXRlID0gKC4uLmFyZ3MpID0+XG4gIGAke2NoZXZlcm9uUHJlZml4KCl9JHtqZWQuZ2V0dGV4dCguLi5hcmdzKX0ke2NoZXZlcm9uU3VmZml4KCl9YDtcbmV4cG9ydCBjb25zdCBuZ2V0dGV4dCA9ICguLi5hcmdzKSA9PlxuICBgJHtjaGV2ZXJvblByZWZpeCgpfSR7amVkLm5nZXR0ZXh0KC4uLmFyZ3MpfSR7Y2hldmVyb25TdWZmaXgoKX1gO1xuXG5leHBvcnQgY29uc3QgeyBzcHJpbnRmIH0gPSBqZWQ7XG5cbmNvbnN0IGkxOG4gPSB7XG4gIHRyYW5zbGF0ZSxcbiAgbmdldHRleHQsXG4gIGplZCxcbiAgc3ByaW50ZixcbiAgaW50bCxcbn07XG5leHBvcnQgZGVmYXVsdCBpMThuO1xuXG53aW5kb3cuX18gPSB0cmFuc2xhdGU7XG53aW5kb3cubl9fID0gbmdldHRleHQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tbW9uL0kxOG4uanMiLCJpbXBvcnQgeyBzbmFrZUNhc2UsIGNhbWVsQ2FzZSwgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFVSSSBmcm9tICd1cmlqcyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuL0kxOG4nO1xuXG4vKipcbiAqIE91ciBBUEkgcmV0dXJucyBub24tSVNPODYwMSBkYXRlc1xuICogVGhpcyBtZXRob2QgY29udmVydHMgdGhvc2Ugc3RyaW5ncyBpbnRvIElTTzg2MDEgZm9ybWF0XG4gKiBAcGFyYW0ge1N0cmluZ30gZGF0ZSAtIG5vbi1JU08gZGF0ZSB0byBjb252ZXJ0XG4gKi9cbmV4cG9ydCBjb25zdCBpc29Db21wYXRpYmxlRGF0ZSA9IGRhdGUgPT4ge1xuICBpZiAoXG4gICAgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnICYmXG4gICAgZGF0ZS5tYXRjaCgvXFxkezR9LVxcZFxcZC1cXGRcXGRcXHNcXGRcXGQ6XFxkXFxkOlxcZFxcZFxcc1srLV0/XFxkezR9LylcbiAgKSB7XG4gICAgLy8gd2UndmUgbWF0Y2hlZCBhIGRhdGUgaW4gdGhlIGZvcm1hdDogMjAxOS0wMy0xNCAxNTozOToyNyAtMDQwMFxuICAgIHJldHVybiBkYXRlLnJlcGxhY2UoL1xccy8sICdUJykucmVwbGFjZSgvXFxzLywgJycpO1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59O1xuXG4vKipcbiAqIEFkZCBhIGRlYm91bmNlIHRpbWVvdXQgZm9yIHlvdXIgbWV0aG9kcy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0IC0gdGhlIGNvbnRleHQgd2hlcmUgeW91ciBtZXRob2QgaXMgcnVubmluZy5cbiAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lIC0gdGhlIGFtb3VudCBvZiBkZWJvdW5jZSB0aW1lIGluIG1pbGlzZWNvbmRzLlxuICogQHBhcmFtIHtBcnJheX0gbWV0aG9kcyAtIEFycmF5IHRoYXQgY29udGFpbnMgdGhlIG1ldGhvZHMgdG8gcnVuIG9uLlxuICovXG5leHBvcnQgY29uc3QgZGVib3VuY2VNZXRob2RzID0gKGNvbnRleHQsIHRpbWUsIG1ldGhvZHMpID0+IHtcbiAgbWV0aG9kcy5mb3JFYWNoKG1ldGhvZCA9PiB7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IG1ldGhvZC5uYW1lIHx8IG1ldGhvZDtcbiAgICBjb25zdCBtZXRob2RUaW1lID0gbWV0aG9kLnRpbWUgfHwgdGltZTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBjb250ZXh0W21ldGhvZE5hbWVdID0gZGVib3VuY2UoY29udGV4dFttZXRob2ROYW1lXSwgbWV0aG9kVGltZSk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBCaW5kIHlvdXIgbWV0aG9kcyB0byBydW4gaW4gYSBzcGVjaWZpYyBjb250ZXh0LlxuICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHQgLSB0aGUgY29udGV4dCB3aGVyZSB5b3VyIG1ldGhvZCBzaG91bGQgcnVuLlxuICogQHBhcmFtIHtBcnJheX0gbWV0aG9kcyAtIEFycmF5IHRoYXQgY29udGFpbnMgdGhlIG1ldGhvZHMgdG8gcnVuIG9uLlxuICovXG5leHBvcnQgY29uc3QgYmluZE1ldGhvZHMgPSAoY29udGV4dCwgbWV0aG9kcykgPT4ge1xuICBtZXRob2RzLmZvckVhY2gobWV0aG9kID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBjb250ZXh0W21ldGhvZF0gPSBjb250ZXh0W21ldGhvZF0uYmluZChjb250ZXh0KTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgc2xhc2hlcyBmcm9tIHRoZSBiZWdnaW5pbmcgYW5kIGVuZCBvZiB0aGUgcGF0aFxuICogQHBhcmFtIHtTdHJpbmd9IHBhdGggLSB0aGUgcGF0aCB0aGF0IHNob3VsZCBiZSByZW1vdmVkIG9mIHNsYXNoZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZUxhc3RTbGFzaEZyb21QYXRoID0gcGF0aCA9PiB7XG4gIGlmICghcGF0aCB8fCBwYXRoLmxlbmd0aCA8IDIpIHJldHVybiBwYXRoO1xuICBjb25zdCBsYXN0Q2hhckluZGV4ID0gcGF0aC5sZW5ndGggLSAxO1xuICByZXR1cm4gcGF0aFtsYXN0Q2hhckluZGV4XSA9PT0gJy8nID8gcGF0aC5zbGljZSgwLCAtMSkgOiBwYXRoO1xufTtcbi8qKlxuICogQW4gZW1wdHkgZnVuY3Rpb24gd2hpY2ggaXMgdXN1YWxseSB1c2VkIGFzIGEgZGVmYXVsdCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vb3AgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKlxuICogT3BlbnMgdGhlIGxpbmsgaW4gYSBuZXcgd2luZG93LlxuICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIHRoZSBwYXRoIHRvIG9wZW4gaW4gYSBuZXcgd2luZG93LlxuICovXG5leHBvcnQgY29uc3QgbmV3V2luZG93T25DbGljayA9IHVybCA9PiBldmVudCA9PiB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIGNvbnN0IG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpO1xuICBuZXdXaW5kb3cub3BlbmVyID0gbnVsbDtcbn07XG5cbi8qKlxuICogQ2xlYXIgdGhlIHNwYWNlcyBpbiBib3RoIHNpZGVzIG9mIGEgc3RyaW5nIGFuZCBlcmFzZSBtdWx0aXBsZSBzcGFjZXMuXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyaW5nIC0gdGhlIHN0cmluZyB3aGljaCBzaG91bGQgYmUgdHJpbW1lZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGNsZWFyU3BhY2VzID0gc3RyaW5nID0+IHN0cmluZy50cmltKCkucmVwbGFjZSgvXFxzXFxzKy8sICcgJyk7XG5cbmV4cG9ydCBjb25zdCBnZXREaXNwbGF5TmFtZSA9IENvbXBvbmVudCA9PlxuICBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCc7XG4vKipcbiAqIFVzZSBJMThuIHRvIHRyYW5zbGF0ZSBhbiBvYmplY3Qgb2Ygc3RyaW5nc1xuICogQHBhcmFtIHtPYmplY3QuPHN0cmluZywgc3RyaW5nPn0gb2JqIC0gdGhlIG9iamVjdCB0byB0cmFuc2xhdGVcbiAqIEByZXR1cm5zIHtPYmplY3QuPHN0cmluZywgc3RyaW5nPn0gYSB0cmFuc2xhdGVkIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgdHJhbnNsYXRlT2JqZWN0ID0gb2JqID0+XG4gIE9iamVjdC5hc3NpZ24oe30sIC4uLk9iamVjdC5lbnRyaWVzKG9iaikubWFwKChbaywgdl0pID0+ICh7IFtrXTogX18odikgfSkpKTtcblxuLyoqXG4gKiBVc2UgSTE4biB0byB0cmFuc2xhdGUgYW4gYXJyYXkgb2Ygc3RyaW5nc1xuICogQHBhcmFtIHtBcnJheS48c3RyaW5nPn0gYXJyIC0gdGhlIGFycmF5IHRvIHRyYW5zbGF0ZVxuICogQHJldHVybnMge0FycmF5LjxzdHJpbmc+fSBhIHRyYW5zbGF0ZWQgYXJyYXlcbiAqL1xuZXhwb3J0IGNvbnN0IHRyYW5zbGF0ZUFycmF5ID0gYXJyID0+IGFyci5tYXAoc3RyID0+IF9fKHN0cikpO1xuXG4vKipcbiAqIFJldHVybiB0aGUgcXVlcnkgaW4gVVJMIGFzIE9iamVjdHMgd2hlcmUga2V5cyBhcmVcbiAqIHRoZSBwYXJhbWV0ZXJzIGFuZCB0aGUgdmFsdWVzIGFyZSB0aGUgcGFyYW1ldGVycycgdmFsdWVzLlxuICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIHRoZSBVUkxcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFVSSVF1ZXJ5ID0gdXJsID0+IG5ldyBVUkkodXJsKS5xdWVyeSh0cnVlKTtcblxuLyoqXG4gKiBUcmFuc2Zvcm0gb2JqZWN0IGtleXMgdG8gc25ha2UgY2FzZVxuICovXG5leHBvcnQgY29uc3QgcHJvcHNUb1NuYWtlQ2FzZSA9IG9iID0+XG4gIHByb3BzVG9DYXNlKHNuYWtlQ2FzZSwgJ3Byb3BzVG9TbmFrZUNhc2Ugb25seSB0YWtlcyBvYmplY3RzJywgb2IpO1xuXG4vKipcbiAqIFRyYW5zZm9ybSBvYmplY3Qga2V5cyB0byBjYW1lbCBjYXNlXG4gKi9cbmV4cG9ydCBjb25zdCBwcm9wc1RvQ2FtZWxDYXNlID0gb2IgPT5cbiAgcHJvcHNUb0Nhc2UoY2FtZWxDYXNlLCAncHJvcHNUb0NhbWVsQ2FzZSBvbmx5IHRha2VzIG9iamVjdHMnLCBvYik7XG5cbmNvbnN0IHByb3BzVG9DYXNlID0gKGNhc2luZ0ZuLCBlcnJvck1zZywgb2IpID0+IHtcbiAgaWYgKHR5cGVvZiBvYiAhPT0gJ29iamVjdCcpIHRocm93IEVycm9yKGVycm9yTXNnKTtcblxuICByZXR1cm4gT2JqZWN0LmtleXMob2IpLnJlZHVjZSgobWVtbywga2V5KSA9PiB7XG4gICAgbWVtb1tjYXNpbmdGbihrZXkpXSA9IG9iW2tleV07XG4gICAgcmV0dXJuIG1lbW87XG4gIH0sIHt9KTtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtIG9iamVjdCBrZXlzIHRvIGNhbWVsIGNhc2UsIHdvcmtzIGZvciBuZXN0ZWQgb2JqZWN0c1xuICovXG5leHBvcnQgY29uc3QgZGVlcFByb3BzVG9DYW1lbENhc2UgPSBvYmogPT5cbiAgZGVlcFByb3BzVG9DYXNlKGNhbWVsQ2FzZSwgJ3Byb3BzVG9DYW1lbENhc2Ugb25seSB0YWtlcyBvYmplY3RzJykob2JqKTtcblxuLyoqXG4gKiBUcmFuc2Zvcm0gb2JqZWN0IGtleXMgdG8gc25ha2UgY2FzZSwgd29ya3MgZm9yIG5lc3RlZCBvYmplY3RzXG4gKi9cbmV4cG9ydCBjb25zdCBkZWVwUHJvcHNUb1NuYWtlQ2FzZSA9IG9iaiA9PlxuICBkZWVwUHJvcHNUb0Nhc2Uoc25ha2VDYXNlLCAncHJvcHNUb1NuYWtlQ2FzZSBvbmx5IHRha2VzIG9iamVjdHMnKShvYmopO1xuXG5jb25zdCBkZWVwUHJvcHNUb0Nhc2UgPSAoY2FzaW5nRm4sIGVycm9yTXNnKSA9PiBvYmogPT4ge1xuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoZGVlcFByb3BzVG9DYXNlKGNhc2luZ0ZuLCBlcnJvck1zZykpO1xuICB9XG4gIGNvbnN0IHRyYW5zZm9ybWVkID0gcHJvcHNUb0Nhc2UoY2FzaW5nRm4sIGVycm9yTXNnLCBvYmopO1xuICByZXR1cm4gT2JqZWN0LmtleXModHJhbnNmb3JtZWQpLnJlZHVjZSgobWVtbywga2V5KSA9PiB7XG4gICAgbWVtb1trZXldID0gZGVlcFByb3BzVG9DYXNlKGNhc2luZ0ZuLCBlcnJvck1zZykodHJhbnNmb3JtZWRba2V5XSk7XG4gICAgcmV0dXJuIG1lbW87XG4gIH0sIHt9KTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzdHJpbmcgaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgLSB0aGUgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBzdHJpbmdJc1Bvc2l0aXZlTnVtYmVyID0gdmFsdWUgPT4ge1xuICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKCdeWzAtOV0rJCcpO1xuICByZXR1cm4gcmVnLnRlc3QodmFsdWUpO1xufTtcblxuLyoqXG4gKiBHZXQgbWFudWFsIHVybCBiYXNlZCBvbiB2ZXJzaW9uXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VjdGlvbiAtIHNlY3Rpb24gaWQgZm9yIGZvcmVtYW4gZG9jdW1ldGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRNYW51YWxVUkwgPSBzZWN0aW9uID0+IGZvcmVtYW5VcmwoYC9saW5rcy9tYW51YWwvJHtzZWN0aW9ufWApO1xuZXhwb3J0IGNvbnN0IGdldFdpa2lVUkwgPSBzZWN0aW9uID0+IGZvcmVtYW5VcmwoYC9saW5rcy93aWtpLyR7c2VjdGlvbn1gKTtcblxuLyoqXG4gKiBUcmFuc2Zvcm0gdGhlIERhdGUgb2JqZWN0IHRvIGRhdGUgc3RyaW5nIGFjY2VwdGVkIGluIHRoZSBzZXJ2ZXJcbiAqIEBwYXJhbSB7RGF0ZX1cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXREYXRlID0gZGF0ZSA9PiBmb3JtYXREYXRlVGltZShkYXRlKS5zcGxpdCgnICcpWzBdO1xuXG4vKipcbiAqIFRyYW5zZm9ybSB0aGUgRGF0ZSBvYmplY3QgdG8gZGF0ZXRpbWUgc3RyaW5nIGFjY2VwdGVkIGluIHRoZSBzZXJ2ZXJcbiAqIEBwYXJhbSB7RGF0ZX1cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXREYXRlVGltZSA9IGRhdGUgPT4ge1xuICBjb25zdCB6ZXJvUGFkZGluZyA9IG4gPT4gKG4gPCAxMCA/IGAwJHtufWAgOiBuKTtcbiAgY29uc3QgeyB5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGVzIH0gPSB7XG4gICAgeWVhcjogZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgIG1vbnRoOiB6ZXJvUGFkZGluZyhkYXRlLmdldE1vbnRoKCkgKyAxKSxcbiAgICBkYXk6IHplcm9QYWRkaW5nKGRhdGUuZ2V0RGF0ZSgpKSxcbiAgICBob3VyOiB6ZXJvUGFkZGluZyhkYXRlLmdldEhvdXJzKCkpLFxuICAgIG1pbnV0ZXM6IHplcm9QYWRkaW5nKGRhdGUuZ2V0TWludXRlcygpKSxcbiAgfTtcblxuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9ICR7aG91cn06JHttaW51dGVzfTowMGA7XG59O1xuXG4vLyBnZW5lcmF0ZXMgYW4gYWJzb2x1dGUsIG5lZWRlZCBpbiBjYXNlIG9mIHJ1bm5pbmcgRm9yZW1hbiBmcm9tIGEgc3VicGF0aFxuZXhwb3J0IGNvbnN0IGZvcmVtYW5VcmwgPSBwYXRoID0+IGAke3dpbmRvdy5VUkxfUFJFRklYfSR7cGF0aH1gO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGlzb0NvbXBhdGlibGVEYXRlLFxuICBiaW5kTWV0aG9kcyxcbiAgbm9vcCxcbiAgZGVib3VuY2VNZXRob2RzLFxuICBjbGVhclNwYWNlcyxcbiAgbmV3V2luZG93T25DbGljayxcbiAgZ2V0RGlzcGxheU5hbWUsXG4gIHRyYW5zbGF0ZU9iamVjdCxcbiAgdHJhbnNsYXRlQXJyYXksXG4gIHByb3BzVG9DYW1lbENhc2UsXG4gIHByb3BzVG9TbmFrZUNhc2UsXG4gIGRlZXBQcm9wc1RvQ2FtZWxDYXNlLFxuICBkZWVwUHJvcHNUb1NuYWtlQ2FzZSxcbiAgc3RyaW5nSXNQb3NpdGl2ZU51bWJlcixcbiAgZ2V0TWFudWFsVVJMLFxuICBmb3JtYXREYXRlLFxuICBmb3JtYXREYXRlVGltZSxcbiAgZm9yZW1hblVybCxcbiAgZ2V0V2lraVVSTCxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tbW9uL2hlbHBlcnMuanMiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX1BBVFRFUk5GTFlfUkVBQ1RfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1BBVFRFUk5GTFlfUkVBQ1RfX1wiXG4vLyBtb2R1bGUgaWQgPSA0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX1JFRFVYX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9SRURVWF9fXCJcbi8vIG1vZHVsZSBpZCA9IDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUEFUVEVSTkZMWV9SRUFDVF9DT1JFX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19QQVRURVJORkxZX1JFQUNUX0NPUkVfX1wiXG4vLyBtb2R1bGUgaWQgPSA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgeyBnZXRNYW51YWxVUkwgfSBmcm9tICcuL2NvbW1vbi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IFNUQVRVUyA9IHtcbiAgUEVORElORzogJ1BFTkRJTkcnLFxuICBSRVNPTFZFRDogJ1JFU09MVkVEJyxcbiAgRVJST1I6ICdFUlJPUicsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udHJvbGxlclNlYXJjaFByb3BzID0gKFxuICBjb250cm9sbGVyLFxuICBpZCA9ICdzZWFyY2hCYXInLFxuICBjYW5DcmVhdGUgPSB0cnVlXG4pID0+ICh7XG4gIGNvbnRyb2xsZXIsXG4gIGF1dG9jb21wbGV0ZToge1xuICAgIGlkLFxuICAgIHNlYXJjaFF1ZXJ5OiAnJyxcbiAgICB1cmw6IGAke2NvbnRyb2xsZXJ9L2F1dG9fY29tcGxldGVfc2VhcmNoYCxcbiAgICB1c2VLZXlTaG9ydGN1dHM6IHRydWUsXG4gIH0sXG4gIGJvb2ttYXJrczoge1xuICAgIHVybDogJy9hcGkvYm9va21hcmtzJyxcbiAgICBjYW5DcmVhdGUsXG4gICAgZG9jdW1lbnRhdGlvblVybDogZ2V0TWFudWFsVVJMKCc0LjEuNVNlYXJjaGluZycpLFxuICB9LFxufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29uc3RhbnRzLmpzIiwiaW1wb3J0IGFwaVJlZHVjZXIgZnJvbSAnLi9BUElSZWR1Y2VyJztcblxuZXhwb3J0IGNvbnN0IHJlZHVjZXJzID0geyBBUEk6IGFwaVJlZHVjZXIgfTtcblxuZXhwb3J0IHsgYWN0aW9uVHlwZUdlbmVyYXRvciB9IGZyb20gJy4vQVBJQWN0aW9uVHlwZUdlbmVyYXRvcic7XG5leHBvcnQgeyBBUElfT1BFUkFUSU9OUyB9IGZyb20gJy4vQVBJQ29uc3RhbnRzJztcbmV4cG9ydCB7IEFQSU1pZGRsZXdhcmUgfSBmcm9tICcuL0FQSU1pZGRsZXdhcmUnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBBUEkgfSBmcm9tICcuL0FQSSc7XG5leHBvcnQgKiBmcm9tICcuL0FQSUFjdGlvbnMnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L0FQSS9pbmRleC5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fU0VBTUxFU1NfSU1NVVRBQkxFX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19TRUFNTEVTU19JTU1VVEFCTEVfX1wiXG4vLyBtb2R1bGUgaWQgPSA5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX0xPREFTSF9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fTE9EQVNIX19cIlxuLy8gbW9kdWxlIGlkID0gMTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUEFUVEVSTkZMWV9SRUFDVF9JQ09OU19fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUEFUVEVSTkZMWV9SRUFDVF9JQ09OU19fXCJcbi8vIG1vZHVsZSBpZCA9IDExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX1JFRFVYX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRURVWF9fXCJcbi8vIG1vZHVsZSBpZCA9IDEyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX0NMQVNTTkFNRVNfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX0NMQVNTTkFNRVNfX1wiXG4vLyBtb2R1bGUgaWQgPSAxM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFQSSA9IHN0YXRlID0+IHN0YXRlLkFQSTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFQSUJ5S2V5ID0gKHN0YXRlLCBrZXkpID0+IHNlbGVjdEFQSShzdGF0ZSlba2V5XSB8fCB7fTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFQSVN0YXR1cyA9IChzdGF0ZSwga2V5KSA9PlxuICBzZWxlY3RBUElCeUtleShzdGF0ZSwga2V5KS5zdGF0dXM7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBUElQYXlsb2FkID0gKHN0YXRlLCBrZXkpID0+XG4gIHNlbGVjdEFQSUJ5S2V5KHN0YXRlLCBrZXkpLnBheWxvYWQgfHwge307XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBUElSZXNwb25zZSA9IChzdGF0ZSwga2V5KSA9PlxuICBzZWxlY3RBUElCeUtleShzdGF0ZSwga2V5KS5yZXNwb25zZSB8fCB7fTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFQSUVycm9yID0gKHN0YXRlLCBrZXkpID0+XG4gIHNlbGVjdEFQSVN0YXR1cyhzdGF0ZSwga2V5KSA9PT0gU1RBVFVTLkVSUk9SXG4gICAgPyBzZWxlY3RBUElSZXNwb25zZShzdGF0ZSwga2V5KVxuICAgIDogbnVsbDtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFQSUVycm9yTWVzc2FnZSA9IChzdGF0ZSwga2V5KSA9PiB7XG4gIGNvbnN0IGVycm9yID0gc2VsZWN0QVBJRXJyb3Ioc3RhdGUsIGtleSk7XG4gIHJldHVybiBlcnJvciAmJiBlcnJvci5tZXNzYWdlO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzLmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19VUklKU19fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fVVJJSlNfX1wiXG4vLyBtb2R1bGUgaWQgPSAxNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19VVUlEX1ZfMV9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fVVVJRF9WXzFfX1wiXG4vLyBtb2R1bGUgaWQgPSAxNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9ST1VURVJfRE9NX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9ST1VURVJfRE9NX19cIlxuLy8gbW9kdWxlIGlkID0gMTdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIi8qIGVzbGludC1kaXNhYmxlIGpxdWVyeS9uby12YWwgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpxdWVyeS9uby1maW5kICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqcXVlcnkvbm8tdGV4dCAqL1xuLyogZXNsaW50LWRpc2FibGUganF1ZXJ5L25vLWFqYXggKi9cbi8qIGVzbGludC1kaXNhYmxlIGpxdWVyeS9uby1lYWNoICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqcXVlcnkvbm8tY2xhc3MgKi9cblxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IHNwcmludGYsIHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4vcmVhY3RfYXBwL2NvbW1vbi9JMThuJztcblxuaW1wb3J0IHsgc2hvd0xvYWRpbmcsIGhpZGVMb2FkaW5nIH0gZnJvbSAnLi9mb3JlbWFuX25hdmlnYXRpb24nO1xuXG5pbXBvcnQgc3RvcmUgZnJvbSAnLi9yZWFjdF9hcHAvcmVkdXgnO1xuaW1wb3J0IHsgb3BlbkNvbmZpcm1Nb2RhbCBhcyBjb3JlT3BlbkNvbmZpcm1Nb2RhbCB9IGZyb20gJy4vcmVhY3RfYXBwL2NvbXBvbmVudHMvQ29uZmlybU1vZGFsJztcblxuZXhwb3J0IGNvbnN0IG9wZW5Db25maXJtTW9kYWwgPSBvcHRpb25zID0+XG4gIHN0b3JlLmRpc3BhdGNoKGNvcmVPcGVuQ29uZmlybU1vZGFsKG9wdGlvbnMpKTtcblxuZXhwb3J0ICogZnJvbSAnLi9yZWFjdF9hcHAvY29tbW9uL0RlcHJlY2F0aW9uU2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG93U3Bpbm5lcigpIHtcbiAgc2hvd0xvYWRpbmcoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhpZGVTcGlubmVyKCkge1xuICBoaWRlTG9hZGluZygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaWNvblRleHQobmFtZSwgaW5uZXJUZXh0LCBpY29uQ2xhc3MpIHtcbiAgbGV0IGljb24gPSBgPHNwYW4gY2xhc3M9XCIke2ljb25DbGFzc30gJHtpY29uQ2xhc3N9LSR7bmFtZX1cIi8+YDtcblxuICBpZiAoaW5uZXJUZXh0ICE9PSAnJykge1xuICAgIGljb24gKz0gYDxzdHJvbmc+JHtpbm5lclRleHR9PC9zdHJvbmc+YDtcbiAgfVxuICByZXR1cm4gaWNvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGl2YXRlRGF0YXRhYmxlcygpIHtcbiAgY29uc3QgbGFuZ3VhZ2UgPSB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6IF9fKCdGaWx0ZXIuLi4nKSxcbiAgICBlbXB0eVRhYmxlOiBfXygnTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUnKSxcbiAgICBpbmZvOiBzcHJpbnRmKFxuICAgICAgX18oJ1Nob3dpbmcgJXMgdG8gJXMgb2YgJXMgZW50cmllcycpLFxuICAgICAgJ19TVEFSVF8nLFxuICAgICAgJ19FTkRfJyxcbiAgICAgICdfVE9UQUxfJ1xuICAgICksXG4gICAgaW5mb0VtcHR5OiBfXygnU2hvd2luZyAwIHRvIDAgb2YgMCBlbnRyaWVzJyksXG4gICAgaW5mb0ZpbHRlcmVkOiBzcHJpbnRmKF9fKCcoZmlsdGVyZWQgZnJvbSAlcyB0b3RhbCBlbnRyaWVzKScpLCAnX01BWF8nKSxcbiAgICBsZW5ndGhNZW51OiBzcHJpbnRmKF9fKCdTaG93ICVzIGVudHJpZXMnKSwgJ19NRU5VXycpLFxuICAgIGxvYWRpbmdSZWNvcmRzOiBfXygnTG9hZGluZy4uLicpLFxuICAgIHByb2Nlc3Npbmc6IF9fKCdQcm9jZXNzaW5nLi4uJyksXG4gICAgc2VhcmNoOiBfXygnU2VhcmNoOicpLFxuICAgIHplcm9SZWNvcmRzOiBfXygnTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCcpLFxuICAgIHBhZ2luYXRlOiB7XG4gICAgICBmaXJzdDogX18oJ0ZpcnN0JyksXG4gICAgICBsYXN0OiBfXygnTGFzdCcpLFxuICAgICAgbmV4dDogX18oJ05leHQnKSxcbiAgICAgIHByZXZpb3VzOiBfXygnUHJldmlvdXMnKSxcbiAgICB9LFxuICAgIGFyaWE6IHtcbiAgICAgIHNvcnRBc2NlbmRpbmc6IF9fKCc6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGFzY2VuZGluZycpLFxuICAgICAgc29ydERlc2NlbmRpbmc6IF9fKCc6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGRlc2NlbmRpbmcnKSxcbiAgICB9LFxuICB9O1xuICAkKCdbZGF0YS10YWJsZT1pbmxpbmVdJylcbiAgICAubm90KCcuZGF0YVRhYmxlJylcbiAgICAuRGF0YVRhYmxlKHtcbiAgICAgIGxhbmd1YWdlLFxuICAgICAgZG9tOiBcIjwncm93JzwnY29sLW1kLTYnZj5yPnQ8J3Jvdyc8J2NvbC1tZC02J2k+PCdjb2wtbWQtNidwPj5cIixcbiAgICB9KTtcblxuICAkKCdbZGF0YS10YWJsZT1zZXJ2ZXJdJylcbiAgICAubm90KCcuZGF0YVRhYmxlJylcbiAgICAuZWFjaCgoaSwgZWwpID0+IHtcbiAgICAgIGNvbnN0IHVybCA9IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1zb3VyY2UnKTtcblxuICAgICAgJChlbCkuRGF0YVRhYmxlKHtcbiAgICAgICAgbGFuZ3VhZ2UsXG4gICAgICAgIHByb2Nlc3Npbmc6IHRydWUsXG4gICAgICAgIHNlcnZlclNpZGU6IHRydWUsXG4gICAgICAgIG9yZGVyaW5nOiBmYWxzZSxcbiAgICAgICAgYWpheDogdXJsLFxuICAgICAgICBkb206IFwiPCdyb3cnPCdjb2wtbWQtNidmPnI+dDwncm93JzwnY29sLW1kLTYnPjwnY29sLW1kLTYncD4+XCIsXG4gICAgICB9KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFjdGl2YXRlVG9vbHRpcHMoZWxQYXJhbSA9ICdib2R5Jykge1xuICBjb25zdCBlbCA9ICQoZWxQYXJhbSk7XG5cbiAgZWwudG9vbHRpcCh7XG4gICAgc2VsZWN0b3I6ICdbcmVsPVwidHdpcHN5XCJdLCpbdGl0bGVdOm5vdCgqW3JlbF0sLmZhLC5wZmljb24pJyxcbiAgICBjb250YWluZXI6ICdib2R5JyxcbiAgICB0cmlnZ2VyOiAnaG92ZXInLFxuICB9KTtcbiAgLy8gRWxsaXBzaXMgaGF2ZSB0byBiZSBpbml0aWFsaXplZCBmb3IgZWFjaCBlbGVtZW50IGZvciB0aXRsZSgpIHRvIHdvcmtcbiAgZWwuZmluZCgnLmVsbGlwc2lzJykudG9vbHRpcCh7XG4gICAgY29udGFpbmVyOiAnYm9keScsXG4gICAgdGl0bGUoKSB7XG4gICAgICByZXR1cm4gdGhpcy5zY3JvbGxXaWR0aCA+IHRoaXMuY2xpZW50V2lkdGggPyB0aGlzLnRleHRDb250ZW50IDogbnVsbDtcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUeXBlQWhlYWRTZWxlY3QoaW5wdXQpIHtcbiAgaW5wdXQuc2VsZWN0Mih7XG4gICAgYWpheDoge1xuICAgICAgdXJsOiBpbnB1dC5kYXRhKCd1cmwnKSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBxdWlldE1pbGxpczogMjUwLFxuICAgICAgZGF0YTogKHRlcm0sIHBhZ2UpID0+ICh7XG4gICAgICAgIHE6IHRlcm0sXG4gICAgICAgIHNjb3BlOiBpbnB1dC5kYXRhKCdzY29wZScpLFxuICAgICAgfSksXG4gICAgICByZXN1bHRzOiBkYXRhID0+ICh7XG4gICAgICAgIHJlc3VsdHM6IGRhdGEubWFwKCh7IGlkLCBuYW1lIH0pID0+ICh7IGlkLCB0ZXh0OiBuYW1lIH0pKSxcbiAgICAgIH0pLFxuICAgICAgY2FjaGU6IHRydWUsXG4gICAgfSxcbiAgICBpbml0U2VsZWN0aW9uKGVsZW1lbnQsIGNhbGxiYWNrKSB7XG4gICAgICAkLmFqYXgoaW5wdXQuZGF0YSgndXJsJyksIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHNjb3BlOiBpbnB1dC5kYXRhKCdzY29wZScpLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxuICAgICAgfSkuZG9uZShkYXRhID0+IHtcbiAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzdGFuZGFyZC9uby1jYWxsYmFjay1saXRlcmFsXG4gICAgICAgICAgY2FsbGJhY2soeyBpZDogZGF0YVswXS5pZCwgdGV4dDogZGF0YVswXS5uYW1lIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHdpZHRoOiAnNDAwcHgnLFxuICB9KTtcbn1cblxuLy8gZ2VuZXJhdGVzIGFuIGFic29sdXRlLCBuZWVkZWQgaW4gY2FzZSBvZiBydW5uaW5nIEZvcmVtYW4gZnJvbSBhIHN1YnBhdGhcbmV4cG9ydCB7IGZvcmVtYW5VcmwgfSBmcm9tICcuL3JlYWN0X2FwcC9jb21tb24vaGVscGVycyc7XG5cbmV4cG9ydCBjb25zdCBzZXRUYWIgPSAoKSA9PiB7XG4gIGNvbnN0IHVybEhhc2ggPSBkb2N1bWVudC5sb2NhdGlvbi5oYXNoLnNwbGl0KCc/JylbMF07XG4gIGlmICh1cmxIYXNoLmxlbmd0aCAmJiAhdXJsSGFzaC5zdGFydHNXaXRoKCcjLycpKSB7XG4gICAgY29uc3QgdGFiQ29udGVudCA9ICQodXJsSGFzaCk7XG4gICAgY29uc3QgcGFyZW50VGFiID0gdGFiQ29udGVudC5jbG9zZXN0KCcudGFiLXBhbmUnKTtcbiAgICBpZiAocGFyZW50VGFiLmV4aXN0cygpKSB7XG4gICAgICAkKGAubmF2LXRhYnMgYVtocmVmPVwiIyR7cGFyZW50VGFiWzBdLmlkfVwiXWApLnRhYignc2hvdycpO1xuICAgIH1cbiAgICAkKGAubmF2LXRhYnMgYVtocmVmPVwiJHt1cmxIYXNofVwiXWApLnRhYignc2hvdycpO1xuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaGlnaGxpZ2h0VGFiRXJyb3JzKCkge1xuICBjb25zdCBlcnJvckZpZWxkcyA9ICQoJy50YWItY29udGVudCAuaGFzLWVycm9yJyk7XG4gIGVycm9yRmllbGRzLnBhcmVudHMoJy50YWItcGFuZScpLmVhY2goZnVuY3Rpb24gZm4oKSB7XG4gICAgJChgYVtocmVmPVwiIyR7dGhpcy5pZH1cIl1gKS5hZGRDbGFzcygndGFiLWVycm9yJyk7XG4gIH0pO1xuICAkKCcudGFiLWVycm9yJylcbiAgICAuZmlyc3QoKVxuICAgIC5jbGljaygpO1xuICAkKCcubmF2LXBpbGxzIC50YWItZXJyb3InKVxuICAgIC5maXJzdCgpXG4gICAgLmNsaWNrKCk7XG4gIGVycm9yRmllbGRzXG4gICAgLmZpcnN0KClcbiAgICAuZmluZCgnLmZvcm0tY29udHJvbCcpXG4gICAgLmZvY3VzKCk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9mb3JlbWFuX3Rvb2xzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCB7IEhlbHBJY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuXG5jb25zdCBMYWJlbEljb24gPSAoeyB0ZXh0IH0pID0+IChcbiAgPFBvcG92ZXIgYm9keUNvbnRlbnQ9e3RleHR9PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT1cInBmLWMtZm9ybV9fZ3JvdXAtbGFiZWwtaGVscFwiXG4gICAgICBvbkNsaWNrPXtlID0+IGUucHJldmVudERlZmF1bHQoKX1cbiAgICA+XG4gICAgICA8SGVscEljb24gbm9WZXJ0aWNhbEFsaWduIC8+XG4gICAgPC9idXR0b24+XG4gIDwvUG9wb3Zlcj5cbik7XG5cbkxhYmVsSWNvbi5wcm9wVHlwZXMgPSB7XG4gIHRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExhYmVsSWNvbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9MYWJlbEljb24vaW5kZXguanMiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX0pRVUVSWV9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fSlFVRVJZX19cIlxuLy8gbW9kdWxlIGlkID0gMjBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBVUkkgZnJvbSAndXJpanMnO1xuXG5pbXBvcnQgeyB2aXNpdCB9IGZyb20gJy4uLy4uL2ZvcmVtYW5fbmF2aWdhdGlvbic7XG5cbi8qKlxuICogQnVpbGQgYSB1cmwgZnJvbSBnaXZlbiBjb250cm9sbGVyLCBhY3Rpb24gYW5kIGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gY29udHJvbGxlciAtIHRoZSBjb250cm9sbGVyXG4gKiBAcGFyYW0ge1N0cmluZ30gYWN0aW9uIC0gdGhlIGFjdGlvblxuICovXG5leHBvcnQgY29uc3QgdXJsQnVpbGRlciA9IChjb250cm9sbGVyLCBhY3Rpb24sIGlkID0gdW5kZWZpbmVkKSA9PlxuICBgLyR7Y29udHJvbGxlcn0vJHtpZCA/IGAke2lkfS9gIDogJyd9JHthY3Rpb259YDtcblxuLyoqXG4gKiBCdWlsZCBhIHVybCB3aXRoIHNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHtTdHJpbmd9IGJhc2UgLSB0aGUgYmFzZSB1cmxcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWFyY2hRdWVyeSAtIHRoZSBzZWFyY2ggcXVlcnlcbiAqL1xuZXhwb3J0IGNvbnN0IHVybFdpdGhTZWFyY2ggPSAoYmFzZSwgc2VhcmNoUXVlcnkpID0+XG4gIGAvJHtiYXNlfT9zZWFyY2g9JHtzZWFyY2hRdWVyeX1gO1xuXG4vKipcbiAqIEdldCB1cGRhdGVkIFVSSVxuICovXG5leHBvcnQgY29uc3QgZ2V0VVJJID0gKCkgPT4gbmV3IFVSSSh3aW5kb3cubG9jYXRpb24uaHJlZik7XG5cbi8qKlxuICogR2V0IHVwZGF0ZWQgcGFnZSBwYXJhbVxuICovXG5leHBvcnQgY29uc3QgZ2V0VVJJcGFnZSA9ICgpID0+IE51bWJlcihnZXRVUkkoKS5xdWVyeSh0cnVlKS5wYWdlKSB8fCAxO1xuLyoqXG4gKiBHZXQgdXBkYXRlZCBwZXJQYWdlIHBhcmFtXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRVUklwZXJQYWdlID0gKCkgPT4gTnVtYmVyKGdldFVSSSgpLnF1ZXJ5KHRydWUpLnBlcl9wYWdlKTtcbi8qKlxuICogR2V0IHVwZGF0ZWQgc2VhcmNoUXVlcnkgcGFyYW1cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFVSSXNlYXJjaCA9ICgpID0+IGdldFVSSSgpLnF1ZXJ5KHRydWUpLnNlYXJjaCB8fCAnJztcblxuLyoqXG4gKiBHZXQgdXBkYXRlZCBzb3J0IHBhcmFtXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRVUklzb3J0ID0gKCkgPT4ge1xuICBjb25zdCBzb3J0U3RyaW5nID0gZ2V0VVJJKCkucXVlcnkodHJ1ZSkub3JkZXI7XG4gIGlmICghc29ydFN0cmluZykge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjb25zdCBbYnksIG9yZGVyXSA9IHNvcnRTdHJpbmcuc3BsaXQoJyAnKTtcbiAgcmV0dXJuIHsgYnksIG9yZGVyIH07XG59O1xuXG4vKipcbiAqIEdldCB1cGRhdGVkIFVSSSBwYXJhbXNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFBhcmFtcyA9ICgpID0+ICh7XG4gIHBhZ2U6IGdldFVSSXBhZ2UoKSxcbiAgcGVyUGFnZTogZ2V0VVJJcGVyUGFnZSgpIHx8IG51bGwsXG4gIHNlYXJjaFF1ZXJ5OiBnZXRVUklzZWFyY2goKSxcbiAgc29ydDogZ2V0VVJJc29ydCgpLFxufSk7XG5cbi8qKlxuICogR2V0IHVwZGF0ZWQgU3RyaW5naWZpZWQgcGFyYW1zXG4gKi9cbmV4cG9ydCBjb25zdCBzdHJpbmdpZnlQYXJhbXMgPSAoe1xuICBwYWdlID0gMSxcbiAgcGVyUGFnZSA9IDI1LFxuICBzZWFyY2hRdWVyeSA9ICcnLFxuICBzb3J0ID0ge30sXG59KSA9PiB7XG4gIGNvbnN0IHVyaSA9IGdldFVSSSgpO1xuICBpZiAoc2VhcmNoUXVlcnkgIT09ICcnKVxuICAgIHVyaS5zZWFyY2goeyBwYWdlLCBwZXJfcGFnZTogcGVyUGFnZSwgc2VhcmNoOiBzZWFyY2hRdWVyeSB9KTtcbiAgZWxzZSB1cmkuc2VhcmNoKHsgcGFnZSwgcGVyX3BhZ2U6IHBlclBhZ2UgfSk7XG5cbiAgaWYgKHNvcnQuYnkgJiYgc29ydC5vcmRlcikge1xuICAgIHVyaS5zZXRTZWFyY2goJ29yZGVyJywgYCR7c29ydC5ieX0gJHtzb3J0Lm9yZGVyfWApO1xuICB9XG5cbiAgcmV0dXJuIHVyaS5zZWFyY2goKTtcbn07XG5cbi8qKlxuICogY2hhbmdlIGN1cnJlbnQgcXVlcnkgYW5kIHRyaWdnZXIgbmF2aWdhdGlvblxuICogQHBhcmFtIHtVUkl9IHVyaSAtIFVSSSBvYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBuZXdRdWVyeSAgLSBRdWVyeSBPYmplY3RcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG5hdmlnYXRlVG8gIC0gbmF2aWdhdGUgZnVuY1xuICovXG5leHBvcnQgY29uc3QgY2hhbmdlUXVlcnkgPSAobmV3UXVlcnksIG5hdmlnYXRlVG8sIHVyaSA9IGdldFVSSSgpKSA9PiB7XG4gIHVyaS5zZXRRdWVyeShuZXdRdWVyeSk7XG4gIGlmIChuYXZpZ2F0ZVRvKSBuYXZpZ2F0ZVRvKHVyaS50b1N0cmluZygpKTtcbiAgZWxzZSB2aXNpdCh1cmkudG9TdHJpbmcoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0VVJMID0gKCkgPT4ge1xuICBjb25zdCB1cmwgPSBnZXRVUkkoKTtcbiAgdXJsLmFkZFF1ZXJ5KCdmb3JtYXQnLCAnY3N2Jyk7XG4gIHJldHVybiBgJHt1cmwucGF0aG5hbWUoKX0ke3VybC5zZWFyY2goKX1gO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vdXJsSGVscGVycy5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfRUxMSVBTSVNfV0lUSF9UT09MVElQX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9FTExJUFNJU19XSVRIX1RPT0xUSVBfX1wiXG4vLyBtb2R1bGUgaWQgPSAyMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcbmltcG9ydCBmb3JjZVNpbmdsZXRvbiBmcm9tICcuLi9yZWFjdF9hcHAvY29tbW9uL2ZvcmNlU2luZ2xldG9uJztcblxuY29uc3QgaGlzdG9yeSA9IGZvcmNlU2luZ2xldG9uKCdoaXN0b3J5JywgKCkgPT4gY3JlYXRlQnJvd3Nlckhpc3RvcnkoKSk7XG5leHBvcnQgZGVmYXVsdCBoaXN0b3J5O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2hpc3RvcnkuanMiLCIvLyB0ZW1wb3JhcnkgY29tcG9uZW50XG4vLyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHBhdHRlcm5mbHkgbWFya3VwIHdoZW4gYXZhaWxhYmxlXG4vLyB0ZW1wb3JhcnkgY29tcG9uZW50XG4vLyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHBhdHRlcm5mbHkgbWFya3VwIHdoZW4gYXZhaWxhYmxlXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCAnLi9NZXNzYWdlQm94LmNzcyc7XG5cbmNvbnN0IE1lc3NhZ2VCb3ggPSAoeyBtc2csIGljb250eXBlIH0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJtZXNzYWdlLWJveC1yb290XCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtgcGZpY29uIHBmaWNvbi0ke2ljb250eXBlfSBtZXNzYWdlLWJveC1jb250ZW50IG1lc3NhZ2UtYm94LWljb25gfVxuICAgIC8+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJtZXNzYWdlLWJveC1jb250ZW50IG1lc3NhZ2UtYm94LW1lc3NhZ2VcIj57bXNnfTwvZGl2PlxuICA8L2Rpdj5cbik7XG5cbk1lc3NhZ2VCb3gucHJvcFR5cGVzID0ge1xuICBpY29udHlwZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBtc2c6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5NZXNzYWdlQm94LmRlZmF1bHRQcm9wcyA9IHtcbiAgbXNnOiAnJyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VCb3g7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vTWVzc2FnZUJveC9pbmRleC5qcyIsIi8qIGVzbGludC1kaXNhYmxlIGpxdWVyeS9uby1zaG93ICovXG5cbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgVVJJIGZyb20gJ3VyaWpzJztcbmltcG9ydCB7IHB1c2ggfSBmcm9tICdjb25uZWN0ZWQtcmVhY3Qtcm91dGVyJztcbmltcG9ydCBzdG9yZSBmcm9tICcuL3JlYWN0X2FwcC9yZWR1eCc7XG5pbXBvcnQgKiBhcyBMYXlvdXRBY3Rpb25zIGZyb20gJy4vcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dEFjdGlvbnMnO1xuaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnLi9yZWFjdF9hcHAvY29tbW9uL0RlcHJlY2F0aW9uU2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCB2aXNpdCA9IHVybCA9PiB7XG4gIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbG9hZFBhZ2UgPSAoKSA9PiB7XG4gIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbn07XG5cbi8qKlxuICogUHVzaCBhIG5ldyB1cmwgdG8gZm9yZW1hbidzIHJlYWN0IHJvdXRlclxuICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIHRoZSBiYXNlIHVybCBpLmUgYC9ob3N0c2BcbiAqIEBwYXJhbSB7T2JqZWN0fSBzZWFyY2hRdWVyeSAtIHRoZSBxdWVyeSBwYXJhbXMsIGkuZSB7J3Blcl9wYWdlJzogNCwgJ3BhZ2UnOiAyfVxuICovXG5leHBvcnQgY29uc3QgcHVzaFVybCA9ICh1cmwsIHF1ZXJ5UGFyYW1zID0ge30pID0+IHtcbiAgY29uc3QgdXJsV2l0aFF1ZXJpZXMgPSBuZXcgVVJJKHVybCkuc2VhcmNoKHF1ZXJ5UGFyYW1zKS50b1N0cmluZygpO1xuICByZXR1cm4gc3RvcmUuZGlzcGF0Y2gocHVzaCh1cmxXaXRoUXVlcmllcykpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3dMb2FkaW5nID0gKCkgPT4ge1xuICBzdG9yZS5kaXNwYXRjaChMYXlvdXRBY3Rpb25zLnNob3dMb2FkaW5nKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhpZGVMb2FkaW5nID0gKCkgPT4ge1xuICBzdG9yZS5kaXNwYXRjaChMYXlvdXRBY3Rpb25zLmhpZGVMb2FkaW5nKCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoYW5nZUxvY2F0aW9uID0gbG9jID0+IHtcbiAgZGVwcmVjYXRlKCdjaGFuZ2VMb2NhdGlvbicsICdDb250ZXh0JywgJzIuNicpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoYW5nZU9yZ2FuaXphdGlvbiA9IG9yZyA9PiB7XG4gIGRlcHJlY2F0ZSgnY2hhbmdlT3JnYW5pemF0aW9uJywgJ0NvbnRleHQnLCAnMi42Jyk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hhbmdlQWN0aXZlID0gYWN0aXZlID0+IHtcbiAgc3RvcmUuZGlzcGF0Y2goTGF5b3V0QWN0aW9ucy5jaGFuZ2VBY3RpdmVNZW51KHsgdGl0bGU6IGFjdGl2ZSB9KSk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0NvbnRlbnQobGF5b3V0LCB1bnN1YnNjcmliZSkge1xuICBjb25zdCBjb250ZW50ID0gKCkgPT4ge1xuICAgICQoJyNjb250ZW50Jykuc2hvdygpO1xuICAgIHVuc3Vic2NyaWJlKCk7XG4gIH07XG4gIC8vIHdvcmthcm91bmQgZm9yIHBhZ2VzIHdpdGggbm8gbGF5b3V0IG9iamVjdFxuICBpZiAobGF5b3V0Lml0ZW1zLmxlbmd0aCAmJiAhbGF5b3V0LmlzTG9hZGluZykge1xuICAgIGNvbnRlbnQoKTtcbiAgfSBlbHNlIGlmICgkKCcjbGF5b3V0JykubGVuZ3RoID09PSAwKSBjb250ZW50KCk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9mb3JlbWFuX25hdmlnYXRpb24uanMiLCJpbXBvcnQgeyBhcHBseU1pZGRsZXdhcmUsIGNyZWF0ZVN0b3JlLCBjb21wb3NlIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IGZvcmNlU2luZ2xldG9uIGZyb20gJy4uL2NvbW1vbi9mb3JjZVNpbmdsZXRvbic7XG5cbmltcG9ydCByZWR1Y2VycyBmcm9tICcuL3JlZHVjZXJzJztcbmltcG9ydCB7IG1pZGRsZXdhcmVzIH0gZnJvbSAnLi9taWRkbGV3YXJlcyc7XG5cbmNvbnN0IGNvbXBvc2VFbmhhbmNlcnMgPSB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fQ09NUE9TRV9fIHx8IGNvbXBvc2U7XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVN0b3JlID0gKCkgPT5cbiAgY3JlYXRlU3RvcmUocmVkdWNlcnMsIGNvbXBvc2VFbmhhbmNlcnMoYXBwbHlNaWRkbGV3YXJlKC4uLm1pZGRsZXdhcmVzKSkpO1xuXG5jb25zdCBzdG9yZSA9IGZvcmNlU2luZ2xldG9uKCdyZWR1eF9zdG9yZScsIGdlbmVyYXRlU3RvcmUpO1xuXG5leHBvcnQgZGVmYXVsdCBzdG9yZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9pbmRleC5qcyIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciwgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQge1xuICBBbGVydCxcbiAgQWxlcnRBY3Rpb25DbG9zZUJ1dHRvbixcbiAgQWxlcnRBY3Rpb25MaW5rLFxuICBBbGVydEdyb3VwLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcblxuaW1wb3J0IHsgYWRkVG9hc3QsIGRlbGV0ZVRvYXN0LCBzZWxlY3RUb2FzdHNMaXN0IH0gZnJvbSAnLi9zbGljZSc7XG5pbXBvcnQgeyB0b2FzdFR5cGUsIHRvYXN0VGl0bGUgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuXG5jb25zdCBUb2FzdHNMaXN0ID0gKHsgcmFpbHNNZXNzYWdlcyB9KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbWVzc2FnZXMgPSB1c2VTZWxlY3RvcihzZWxlY3RUb2FzdHNMaXN0KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJhaWxzTWVzc2FnZXMuZm9yRWFjaCgoeyBtZXNzYWdlLCB0eXBlLCBrZXkgfSkgPT4ge1xuICAgICAgZGlzcGF0Y2goYWRkVG9hc3QoeyBtZXNzYWdlLCB0eXBlLCBrZXkgfSkpO1xuICAgIH0pO1xuICB9LCBbZGlzcGF0Y2gsIHJhaWxzTWVzc2FnZXNdKTtcblxuICBjb25zdCB0b2FzdHNMaXN0ID0gT2JqZWN0LmVudHJpZXMobWVzc2FnZXMpLm1hcChcbiAgICAoW2tleSwgeyB0eXBlLCBtZXNzYWdlLCBsaW5rLCBzdGlja3ksIC4uLnRvYXN0UHJvcHMgfV0pID0+IChcbiAgICAgIDxBbGVydFxuICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgdGl0bGU9e3RvYXN0VGl0bGUobWVzc2FnZSwgdG9hc3RUeXBlKHR5cGUpKX1cbiAgICAgICAgdmFyaWFudD17dG9hc3RUeXBlKHR5cGUpfVxuICAgICAgICB0aW1lb3V0PXtzdGlja3kgPyBmYWxzZSA6IDgwMDB9XG4gICAgICAgIG9uVGltZW91dD17KCkgPT4gZGlzcGF0Y2goZGVsZXRlVG9hc3Qoa2V5KSl9XG4gICAgICAgIGNsYXNzTmFtZT1cImZvcmVtYW4tdG9hc3RcIlxuICAgICAgICBhY3Rpb25DbG9zZT17XG4gICAgICAgICAgPEFsZXJ0QWN0aW9uQ2xvc2VCdXR0b24gb25DbG9zZT17KCkgPT4gZGlzcGF0Y2goZGVsZXRlVG9hc3Qoa2V5KSl9IC8+XG4gICAgICAgIH1cbiAgICAgICAgYWN0aW9uTGlua3M9e1xuICAgICAgICAgIGxpbmsgJiYgKFxuICAgICAgICAgICAgPEFsZXJ0QWN0aW9uTGluaz5cbiAgICAgICAgICAgICAgPGEgaHJlZj17bGluay5ocmVmfT57bGluay5jaGlsZHJlbn08L2E+XG4gICAgICAgICAgICA8L0FsZXJ0QWN0aW9uTGluaz5cbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgey4uLnRvYXN0UHJvcHN9XG4gICAgICA+XG4gICAgICAgIHsobWVzc2FnZS5sZW5ndGggPiA2MCB8fCBSZWFjdC5pc1ZhbGlkRWxlbWVudChtZXNzYWdlKSkgJiYgbWVzc2FnZX1cbiAgICAgIDwvQWxlcnQ+XG4gICAgKVxuICApO1xuXG4gIHJldHVybiB0b2FzdHNMaXN0Lmxlbmd0aCA+IDAgJiYgPEFsZXJ0R3JvdXAgaXNUb2FzdD57dG9hc3RzTGlzdH08L0FsZXJ0R3JvdXA+O1xufTtcblxuVG9hc3RzTGlzdC5wcm9wVHlwZXMgPSB7XG4gIHJhaWxzTWVzc2FnZXM6IFByb3BUeXBlcy5hcnJheSxcbn07XG5cblRvYXN0c0xpc3QuZGVmYXVsdFByb3BzID0ge1xuICByYWlsc01lc3NhZ2VzOiBbXSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRvYXN0c0xpc3Q7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2xpY2UnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvVG9hc3RzTGlzdC9pbmRleC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZm9yY2VTaW5nbGV0b24gZnJvbSAnLi4vLi4vY29tbW9uL2ZvcmNlU2luZ2xldG9uJztcblxuZXhwb3J0IGNvbnN0IGdldEZvcmVtYW5Db250ZXh0ID0gY29udGV4dERhdGEgPT5cbiAgZm9yY2VTaW5nbGV0b24oJ0NvbnRleHQnLCAoKSA9PiBSZWFjdC5jcmVhdGVDb250ZXh0KGNvbnRleHREYXRhKSk7XG5leHBvcnQgY29uc3QgdXNlRm9yZW1hbkNvbnRleHQgPSAoKSA9PiBSZWFjdC51c2VDb250ZXh0KGdldEZvcmVtYW5Db250ZXh0KCkpO1xuXG5jb25zdCB1c2VGb3JlbWFuTWV0YWRhdGEgPSAoKSA9PiB1c2VGb3JlbWFuQ29udGV4dCgpLm1ldGFkYXRhO1xuXG5leHBvcnQgY29uc3QgdXNlRm9yZW1hblZlcnNpb24gPSAoKSA9PiB1c2VGb3JlbWFuTWV0YWRhdGEoKS52ZXJzaW9uO1xuZXhwb3J0IGNvbnN0IHVzZUZvcmVtYW5TZXR0aW5ncyA9ICgpID0+IHVzZUZvcmVtYW5NZXRhZGF0YSgpLlVJU2V0dGluZ3M7XG5leHBvcnQgY29uc3QgdXNlRm9yZW1hbkRvY1VybCA9ICgpID0+IHVzZUZvcmVtYW5NZXRhZGF0YSgpLmRvY1VybDtcbmV4cG9ydCBjb25zdCB1c2VGb3JlbWFuT3JnYW5pemF0aW9uID0gKCkgPT4gdXNlRm9yZW1hbk1ldGFkYXRhKCkub3JnYW5pemF0aW9uO1xuZXhwb3J0IGNvbnN0IHVzZUZvcmVtYW5Mb2NhdGlvbiA9ICgpID0+IHVzZUZvcmVtYW5NZXRhZGF0YSgpLmxvY2F0aW9uO1xuZXhwb3J0IGNvbnN0IHVzZUZvcmVtYW5Vc2VyID0gKCkgPT4gdXNlRm9yZW1hbk1ldGFkYXRhKCkudXNlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9Sb290L0NvbnRleHQvRm9yZW1hbkNvbnRleHQuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgTW9kYWwsIEJ1dHRvbiwgTW9kYWxWYXJpYW50IH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBjbG9zZUNvbmZpcm1Nb2RhbCwgc2VsZWN0Q29uZmlybU1vZGFsIH0gZnJvbSAnLi9zbGljZSc7XG5cbmNvbnN0IENvbmZpcm1Nb2RhbCA9ICgpID0+IHtcbiAgY29uc3Qge1xuICAgIGlzT3BlbixcbiAgICB0aXRsZSxcbiAgICBtZXNzYWdlLFxuICAgIGNvbmZpcm1CdXR0b25UZXh0LFxuICAgIG9uQ29uZmlybSxcbiAgICBvbkNhbmNlbCxcbiAgICBtb2RhbFByb3BzLFxuICAgIGlzV2FybmluZyxcbiAgfSA9IHVzZVNlbGVjdG9yKHNlbGVjdENvbmZpcm1Nb2RhbCk7XG5cbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IGNsb3NlTW9kYWwgPSAoKSA9PiBkaXNwYXRjaChjbG9zZUNvbmZpcm1Nb2RhbCgpKTtcblxuICBjb25zdCBoYW5kbGVDYW5jZWwgPSAoKSA9PiB7XG4gICAgb25DYW5jZWwoKTtcbiAgICBjbG9zZU1vZGFsKCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybSA9ICgpID0+IHtcbiAgICBvbkNvbmZpcm0oKTtcbiAgICBjbG9zZU1vZGFsKCk7XG4gIH07XG5cbiAgY29uc3QgYWN0aW9ucyA9IFtcbiAgICA8QnV0dG9uXG4gICAgICBrZXk9XCJjb25maXJtXCJcbiAgICAgIHZhcmlhbnQ9e2lzV2FybmluZyA/ICdkYW5nZXInIDogJ3ByaW1hcnknfVxuICAgICAgb25DbGljaz17aGFuZGxlQ29uZmlybX1cbiAgICA+XG4gICAgICB7Y29uZmlybUJ1dHRvblRleHQgfHwgX18oJ0NvbmZpcm0nKX1cbiAgICA8L0J1dHRvbj4sXG4gICAgPEJ1dHRvbiBrZXk9XCJjYW5jZWxcIiB2YXJpYW50PVwibGlua1wiIG9uQ2xpY2s9e2hhbmRsZUNhbmNlbH0+XG4gICAgICB7X18oJ0NhbmNlbCcpfVxuICAgIDwvQnV0dG9uPixcbiAgXTtcblxuICBpZiAoIWlzT3BlbikgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8TW9kYWxcbiAgICAgIGlkPVwiYXBwLWNvbmZpcm0tbW9kYWxcIlxuICAgICAgYXJpYS1sYWJlbD1cImFwcGxpY2F0aW9uIGNvbmZpcm0gbW9kYWxcIlxuICAgICAgdmFyaWFudD17TW9kYWxWYXJpYW50LnNtYWxsfVxuICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgaXNPcGVuPXtpc09wZW59XG4gICAgICBvbkNsb3NlPXtjbG9zZU1vZGFsfVxuICAgICAgYWN0aW9ucz17YWN0aW9uc31cbiAgICAgIHRpdGxlSWNvblZhcmlhbnQ9e2lzV2FybmluZyA/ICd3YXJuaW5nJyA6IG51bGx9XG4gICAgICB7Li4ubW9kYWxQcm9wc31cbiAgICA+XG4gICAgICB7bWVzc2FnZX1cbiAgICA8L01vZGFsPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29uZmlybU1vZGFsO1xuXG5leHBvcnQgKiBmcm9tICcuL3NsaWNlJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpcm1Nb2RhbC9pbmRleC5qcyIsIi8qKlxuICogRm9yY2UgYSBzaW5nbGUgaW5zdGFuY2UgdG8gcHJvdGVjdCBmcm9tIGNvZGUgZHVwbGljYXRpb24uXG4gKlxuICogV0FSTklORzogQ29kZSBkdXBsaWNhdGlvbnMgaGFwcGVuIGJlY2F1c2Ugb2YgYW4gaXNzdWUgd2l0aCB0aGUgYnVpbGQgcHJvY2VzcyxcbiAqICAgICAgICAgIHNvIHRoaXMgbWV0aG9kIG1pZ2h0IGJlIHJlbW92ZWQgb25jZSB0aGUgaXNzdWUgd291bGQgYmUgZml4ZWQuXG4gKiAgICAgICAgICBTZWU6IGh0dHBzOi8vcHJvamVjdHMudGhlZm9yZW1hbi5vcmcvaXNzdWVzLzI3MTk1XG4gKlxuICogQHBhcmFtICB7U3RyaW5nfSAgIGtleSAgICBBIHVuaXF1ZS1rZXkgdG8gc2F2ZSB0aGUgaW5zdGFuY2UuXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY3JlYXRlIEEgZnVuY3Rpb24gdG8gY3JlYXRlIGFuIGluc3RhbmNlLlxuICogQHJldHVybiB7Kn0gICAgICAgICAgICAgICBTaW5nbGUgSW5zdGFuY2UsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGJ5IHRoZSBjcmVhdGUgbWV0aG9kIG9yIGZyb20gdGhlIGNhY2hlLlxuICovXG5jb25zdCBmb3JjZVNpbmdsZXRvbiA9IChrZXksIGNyZWF0ZSkgPT4ge1xuICB3aW5kb3cudGZtX2ZvcmNlZF9zaW5nbGV0b25zID0gd2luZG93LnRmbV9mb3JjZWRfc2luZ2xldG9ucyB8fCB7fTtcblxuICBpZiAoIXdpbmRvdy50Zm1fZm9yY2VkX3NpbmdsZXRvbnNba2V5XSkge1xuICAgIHdpbmRvdy50Zm1fZm9yY2VkX3NpbmdsZXRvbnNba2V5XSA9IGNyZWF0ZSgpO1xuICB9XG5cbiAgcmV0dXJuIHdpbmRvdy50Zm1fZm9yY2VkX3NpbmdsZXRvbnNba2V5XTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZvcmNlU2luZ2xldG9uO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbW1vbi9mb3JjZVNpbmdsZXRvbi5qcyIsImV4cG9ydCB7IEludGVydmFsTWlkZGxld2FyZSB9IGZyb20gJy4vSW50ZXJ2YWxNaWRkbGV3YXJlJztcbmV4cG9ydCB7IHJlZHVjZXJzIH0gZnJvbSAnLi9JbnRlcnZhbFJlZHVjZXInO1xuZXhwb3J0IHsgc3RhcnRJbnRlcnZhbCwgc3RvcEludGVydmFsIH0gZnJvbSAnLi9JbnRlcnZhbEFjdGlvbnMnO1xuZXhwb3J0IHsgd2l0aEludGVydmFsIH0gZnJvbSAnLi9JbnRlcnZhbEhlbHBlcnMnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L21pZGRsZXdhcmVzL0ludGVydmFsTWlkZGxld2FyZS9pbmRleC5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fQ09OTkVDVEVEX1JFQUNUX1JPVVRFUl9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fQ09OTkVDVEVEX1JFQUNUX1JPVVRFUl9fXCJcbi8vIG1vZHVsZSBpZCA9IDMzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuY29uc3QgQ29tbW9uRm9ybSA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgbGFiZWwsXG4gIHRvdWNoZWQsXG4gIGVycm9yLFxuICByZXF1aXJlZCxcbiAgY2hpbGRyZW4sXG4gIGlucHV0Q2xhc3NOYW1lLFxuICB0b29sdGlwSGVscCxcbn0pID0+IChcbiAgPGRpdlxuICAgIGNsYXNzTmFtZT17YGZvcm0tZ3JvdXAgJHtjbGFzc05hbWV9ICR7dG91Y2hlZCAmJiBlcnJvciA/ICdoYXMtZXJyb3InIDogJyd9YH1cbiAgPlxuICAgIDxsYWJlbCBjbGFzc05hbWU9XCJjb2wtbWQtMiBjb250cm9sLWxhYmVsXCI+XG4gICAgICB7bGFiZWx9XG4gICAgICB7cmVxdWlyZWQgJiYgJyAqJ31cbiAgICAgIHt0b29sdGlwSGVscH1cbiAgICA8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3NOYW1lPXtpbnB1dENsYXNzTmFtZX0+e2NoaWxkcmVufTwvZGl2PlxuICAgIHt0b3VjaGVkICYmIGVycm9yICYmIChcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImhlbHAtYmxvY2sgaGVscC1pbmxpbmVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZXJyb3ItbWVzc2FnZVwiPntlcnJvcn08L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgKX1cbiAgPC9kaXY+XG4pO1xuXG5Db21tb25Gb3JtLnByb3BUeXBlcyA9IHtcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdG91Y2hlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGVycm9yOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuYm9vbF0pLFxuICByZXF1aXJlZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmJvb2xdKSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBpbnB1dENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdG9vbHRpcEhlbHA6IFByb3BUeXBlcy5ub2RlLFxufTtcblxuQ29tbW9uRm9ybS5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJycsXG4gIGxhYmVsOiAnJyxcbiAgdG91Y2hlZDogZmFsc2UsXG4gIGVycm9yOiB1bmRlZmluZWQsXG4gIHJlcXVpcmVkOiBmYWxzZSxcbiAgY2hpbGRyZW46IG51bGwsXG4gIGlucHV0Q2xhc3NOYW1lOiAnY29sLW1kLTQnLFxuICB0b29sdGlwSGVscDogbnVsbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1vbkZvcm07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvQ29tbW9uRm9ybS5qcyIsImltcG9ydCB7IHVzZUNvbnRleHQsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNlbGVjdElzTW9kYWxPcGVuIH0gZnJvbSAnLi9Gb3JlbWFuTW9kYWxTZWxlY3RvcnMnO1xuaW1wb3J0IHsgc2V0TW9kYWxPcGVuLCBzZXRNb2RhbENsb3NlZCB9IGZyb20gJy4vRm9yZW1hbk1vZGFsQWN0aW9ucyc7XG5pbXBvcnQgTW9kYWxDb250ZXh0IGZyb20gJy4vRm9yZW1hbk1vZGFsQ29udGV4dCc7XG5cbi8vIEJlY2F1c2UgZW56eW1lIGRvZXNuJ3Qgc3VwcG9ydCB1c2VDb250ZXh0IHlldFxuZXhwb3J0IGNvbnN0IHVzZU1vZGFsQ29udGV4dCA9ICgpID0+IHVzZUNvbnRleHQoTW9kYWxDb250ZXh0KTtcblxuLy8gVXNlIGluIGFueSBGb3JlbWFuTW9kYWwuICBIYW5kbGVzIFJlZHV4IGFjdGlvbnMgZm9yIGNyZWF0aW5nLCBvcGVuaW5nLCBhbmQgY2xvc2luZyB0aGUgbW9kYWwuXG4vLyBNYWtlIHN1cmUgdGhlIGlkIHBhc3NlZCBpbiBtYXRjaGVzIHRoZSBpZCBwcm9wIG9mIHlvdXIgPEZvcmVtYW5Nb2RhbCAvPi5cbi8vIFJldHVybnMgYSB2YXJpYWJsZSB0aGF0IHRlbGxzIHlvdSB0aGUgc3RhdGUgYW5kIGEgZnVuY3Rpb24gdG8gdG9nZ2xlIGl0LlxuZXhwb3J0IGNvbnN0IHVzZUZvcmVtYW5Nb2RhbCA9ICh7IGlkLCBpc09wZW4gPSBmYWxzZSB9KSA9PiB7XG4gIGlmICghaWQpIHRocm93IG5ldyBFcnJvcigndXNlRm9yZW1hbk1vZGFsOiBJRCBpcyByZXF1aXJlZCcpO1xuICBjb25zdCBpbml0aWFsTW9kYWxTdGF0ZSA9IGlzT3BlbjtcbiAgY29uc3QgbW9kYWxPcGVuID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0SXNNb2RhbE9wZW4oc3RhdGUsIGlkKSkgfHwgZmFsc2U7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgYm91bmRTZXRNb2RhbENsb3NlZCA9ICgpID0+IGRpc3BhdGNoKHNldE1vZGFsQ2xvc2VkKHsgaWQgfSkpO1xuICBjb25zdCBib3VuZFNldE1vZGFsT3BlbiA9ICgpID0+IGRpc3BhdGNoKHNldE1vZGFsT3Blbih7IGlkIH0pKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsTW9kYWxTdGF0ZSA9PT0gdHJ1ZSkgYm91bmRTZXRNb2RhbE9wZW4oKTtcbiAgfSwgW10pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXG4gIHJldHVybiB7XG4gICAgbW9kYWxPcGVuLFxuICAgIHNldE1vZGFsT3BlbjogYm91bmRTZXRNb2RhbE9wZW4sXG4gICAgc2V0TW9kYWxDbG9zZWQ6IGJvdW5kU2V0TW9kYWxDbG9zZWQsXG4gIH07XG59O1xuXG4vLyB0byBnZXQgZW56eW1lIGhhY2t5IHRlc3QgdG8gd29ya1xuZXhwb3J0IGRlZmF1bHQgTW9kYWxDb250ZXh0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRm9yZW1hbk1vZGFsL0ZvcmVtYW5Nb2RhbEhvb2tzLmpzIiwiaW1wb3J0IEVtcHR5U3RhdGVQYXR0ZXJuIGZyb20gJy4vRW1wdHlTdGF0ZVBhdHRlcm4nO1xuaW1wb3J0IERlZmF1bHRFbXB0eVN0YXRlIGZyb20gJy4vRGVmYXVsdEVtcHR5U3RhdGUnO1xuXG5leHBvcnQgZGVmYXVsdCBEZWZhdWx0RW1wdHlTdGF0ZTtcbmV4cG9ydCB7IEVtcHR5U3RhdGVQYXR0ZXJuIH07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRW1wdHlTdGF0ZS9pbmRleC5qcyIsImltcG9ydCB7IGdldENvbnRyb2xsZXJTZWFyY2hQcm9wcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBNT0RFTFNfUEFHRV9EQVRBX1JFU09MVkVEID0gJ01PREVMU19QQUdFX0RBVEFfUkVTT0xWRUQnO1xuZXhwb3J0IGNvbnN0IE1PREVMU19QQUdFX0RBVEFfRkFJTEVEID0gJ01PREVMU19QQUdFX0RBVEFfRkFJTEVEJztcbmV4cG9ydCBjb25zdCBNT0RFTFNfUEFHRV9ISURFX0xPQURJTkcgPSAnTU9ERUxTX1BBR0VfSElERV9MT0FESU5HJztcbmV4cG9ydCBjb25zdCBNT0RFTFNfUEFHRV9TSE9XX0xPQURJTkcgPSAnTU9ERUxTX1BBR0VfU0hPV19MT0FESU5HJztcbmV4cG9ydCBjb25zdCBNT0RFTFNfUEFHRV9DTEVBUl9FUlJPUiA9ICdNT0RFTFNfUEFHRV9DTEVBUl9FUlJPUic7XG5cbmV4cG9ydCBjb25zdCBNT0RFTFNfU0VBUkNIX1BST1BTID0gZ2V0Q29udHJvbGxlclNlYXJjaFByb3BzKCdtb2RlbHMnKTtcbmV4cG9ydCBjb25zdCBNT0RFTFNfQVBJX1BBVEggPSAnL2FwaS9tb2RlbHM/aW5jbHVkZV9wZXJtaXNzaW9ucz10cnVlJztcbmV4cG9ydCBjb25zdCBNT0RFTFNfUEFUSCA9ICcvbW9kZWxzJztcbmV4cG9ydCBjb25zdCBNT0RFTF9ERUxFVEVfTU9EQUxfSUQgPSAnbW9kZWxEZWxldGVNb2RhbCc7XG5leHBvcnQgY29uc3QgQVBJX1JFUVVFU1RfS0VZID0gJ01PREVMUyc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL01vZGVscy9jb25zdGFudHMuanMiLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yLCB1c2VEaXNwYXRjaCwgc2hhbGxvd0VxdWFsIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHV1aWQgZnJvbSAndXVpZC92MSc7XG5pbXBvcnQge1xuICBzZWxlY3RBUElSZXNwb25zZSxcbiAgc2VsZWN0QVBJU3RhdHVzLFxufSBmcm9tICcuLi8uLi8uLi9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzJztcbmltcG9ydCB7IEFQSUFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9BUEknO1xuXG4vKipcbiAqIEEgY3VzdG9tIGhvb2sgdGhhdCBjcmVhdGVzIGFuIEFQSSByZXF1ZXN0XG4gKiBAcGFyYW0gIHtzdHJpbmd9IG1ldGhvZCB0aGUgQVBJIG1ldGhvZCAoaS5lICdwb3N0JywgJ2dldCcgZXRjKVxuICogQHBhcmFtICB7c3RyaW5nfSB1cmwgdGhlIHVybCBmb3IgdGhlIEFQSSByZXF1ZXN0XG4gKiBAcGFyYW0gIHtvYmplY3R9IG9wdGlvbnMgYWRkaW5nIG9wdGlvbmFsIHByb3BzIHRvIHRoZSBBUEkgY2FsbCwgZm9yIG1vcmUgZGV0YWlscyBnbyB0byB0aGUgYGFwaVJlcXVlc3RgIGZ1bmN0aW9uIGluIGByZWR1eC9BUElgXG4gKiBAcmV0dXJuIHtvYmplY3R9IHJldHVybnMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHJlc3BvbnNlLCBzdGF0dXMsIGtleSBhbmQgJ3NldFVybCcgZm9yIHNldHRpbmcgdGhlIHVybCBkeW5hbWljYWxseVxuICovXG5cbmV4cG9ydCBjb25zdCB1c2VBUEkgPSAobWV0aG9kLCB1cmwsIG9wdGlvbnMpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBrZXlSZWYgPSB1c2VSZWYob3B0aW9ucz8ua2V5KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICgha2V5UmVmLmN1cnJlbnQpIGtleVJlZi5jdXJyZW50ID0gdXVpZCgpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodXJsICYmIG1ldGhvZCkge1xuICAgICAgZGlzcGF0Y2goXG4gICAgICAgIEFQSUFjdGlvbnNbbWV0aG9kXSh7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAga2V5OiBrZXlSZWYuY3VycmVudCxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIHVybCwgbWV0aG9kLCBvcHRpb25zXSk7XG5cbiAgY29uc3QgcmVzcG9uc2UgPSB1c2VTZWxlY3RvcihcbiAgICBzdGF0ZSA9PiBzZWxlY3RBUElSZXNwb25zZShzdGF0ZSwga2V5UmVmLmN1cnJlbnQpLFxuICAgIHNoYWxsb3dFcXVhbFxuICApO1xuICBjb25zdCBzdGF0dXMgPSB1c2VTZWxlY3RvcihzdGF0ZSA9PiBzZWxlY3RBUElTdGF0dXMoc3RhdGUsIGtleVJlZi5jdXJyZW50KSk7XG5cbiAgcmV0dXJuIHsgcmVzcG9uc2UsIHN0YXR1cywga2V5OiBrZXlSZWYuY3VycmVudCB9O1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vaG9va3MvQVBJL0FQSUhvb2tzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgU2tlbGV0b24gZnJvbSAncmVhY3QtbG9hZGluZy1za2VsZXRvbic7XG5cbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbmNvbnN0IFNrZWxldG9uTG9hZGVyID0gKHtcbiAgc3RhdHVzLFxuICBjdXN0b21Ta2VsZXRvbixcbiAgc2tlbGV0b25Qcm9wcyxcbiAgZW1wdHlTdGF0ZSxcbiAgY2hpbGRyZW4sXG4gIGVycm9yTm9kZSxcbn0pID0+IHtcbiAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICBjYXNlIFNUQVRVUy5QRU5ESU5HOiB7XG4gICAgICByZXR1cm4gY3VzdG9tU2tlbGV0b24gfHwgPFNrZWxldG9uIHsuLi5za2VsZXRvblByb3BzfSAvPjtcbiAgICB9XG4gICAgY2FzZSBTVEFUVVMuUkVTT0xWRUQ6IHtcbiAgICAgIHJldHVybiBjaGlsZHJlbiB8fCBlbXB0eVN0YXRlO1xuICAgIH1cbiAgICBjYXNlIFNUQVRVUy5FUlJPUjoge1xuICAgICAgcmV0dXJuIGVycm9yTm9kZSB8fCBlbXB0eVN0YXRlO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGVtcHR5U3RhdGU7XG4gIH1cbn07XG5cblNrZWxldG9uTG9hZGVyLnByb3BUeXBlcyA9IHtcbiAgc3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGN1c3RvbVNrZWxldG9uOiBQcm9wVHlwZXMubm9kZSxcbiAgc2tlbGV0b25Qcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgZW1wdHlTdGF0ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm5vZGVdKSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBlcnJvck5vZGU6IFByb3BUeXBlcy5ub2RlLFxufTtcblxuU2tlbGV0b25Mb2FkZXIuZGVmYXVsdFByb3BzID0ge1xuICBjdXN0b21Ta2VsZXRvbjogdW5kZWZpbmVkLFxuICBza2VsZXRvblByb3BzOiB7fSxcbiAgZW1wdHlTdGF0ZTogX18oJ04vQScpLFxuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBlcnJvck5vZGU6IHVuZGVmaW5lZCxcbn07XG5leHBvcnQgZGVmYXVsdCBTa2VsZXRvbkxvYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9Ta2VsZXRvbkxvYWRlci9pbmRleC5qcyIsImltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuZXhwb3J0IGNvbnN0IEhPU1RfU1RBVFVTRVNfS0VZID0gJ0hPU1RfU1RBVFVTRVMnO1xuZXhwb3J0IGNvbnN0IENMRUFSX1NUQVRVU19LRVkgPSAnQ0xFQVJfU1RBVFVTJztcbmV4cG9ydCBjb25zdCBIT1NUX1NUQVRVU0VTX09QVElPTlMgPSB7IGtleTogSE9TVF9TVEFUVVNFU19LRVkgfTtcblxuZXhwb3J0IGNvbnN0IEFMTF9TVEFUVVNfU1RBVEUgPSA0O1xuZXhwb3J0IGNvbnN0IE5BX1NUQVRVU19TVEFURSA9IDM7XG5leHBvcnQgY29uc3QgRVJST1JfU1RBVFVTX1NUQVRFID0gMjtcbmV4cG9ydCBjb25zdCBXQVJOSU5HX1NUQVRVU19TVEFURSA9IDE7XG5leHBvcnQgY29uc3QgT0tfU1RBVFVTX1NUQVRFID0gMDtcblxuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9TVEFUVVNFUyA9IFtcbiAgeyBsYWJlbDogX18oJ09LIHN0YXR1c2VzJyksIHN0YXR1czogT0tfU1RBVFVTX1NUQVRFIH0sXG4gIHsgbGFiZWw6IF9fKCdXYXJuaW5nIHN0YXR1c2VzJyksIHN0YXR1czogV0FSTklOR19TVEFUVVNfU1RBVEUgfSxcbiAgeyBsYWJlbDogX18oJ0Vycm9yIHN0YXR1c2VzJyksIHN0YXR1czogRVJST1JfU1RBVFVTX1NUQVRFIH0sXG4gIHsgbGFiZWw6IF9fKCdOL0Egc3RhdHVzZXMnKSwgc3RhdHVzOiBOQV9TVEFUVVNfU1RBVEUgfSxcbl07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvQ29uc3RhbnRzLmpzIiwiLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8vIGVzbGludCBidWcgLSBodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludC9pc3N1ZXMvMTIxMTdcblxuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IHtcbiAgcmVtb3ZlTGFzdFNsYXNoRnJvbVBhdGgsXG4gIG5vb3AsXG4gIGZvcmVtYW5VcmwsXG59IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUluaXRpYWxUYXhvbm9teSA9IChjdXJyZW50VGF4b25vbXksIGF2YWlsYWJsZVRheG9ub21pZXMpID0+IHtcbiAgY29uc3QgdGF4b25vbXlJZCA9IGF2YWlsYWJsZVRheG9ub21pZXMuZmluZChcbiAgICB0YXhvbm9teSA9PiB0YXhvbm9teS50aXRsZSA9PT0gY3VycmVudFRheG9ub215XG4gICkuaWQ7XG4gIHJldHVybiB7XG4gICAgdGl0bGU6IGN1cnJlbnRUYXhvbm9teSxcbiAgICBpZDogdGF4b25vbXlJZCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDdXJyZW50UGF0aCA9ICgpID0+XG4gIHJlbW92ZUxhc3RTbGFzaEZyb21QYXRoKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG5cbmV4cG9ydCBjb25zdCBnZXRBY3RpdmVNZW51SXRlbSA9IChpdGVtcywgcGF0aCA9IGdldEN1cnJlbnRQYXRoKCkpID0+IHtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBpdGVtLmNoaWxkcmVuKSB7XG4gICAgICBpZiAoY2hpbGQuZXhhY3QpIHtcbiAgICAgICAgaWYgKHBhdGggPT09IGNoaWxkLnVybCkgcmV0dXJuIHsgdGl0bGU6IGl0ZW0ubmFtZSB9O1xuICAgICAgfSBlbHNlIGlmIChwYXRoLnN0YXJ0c1dpdGgoY2hpbGQudXJsKSkgcmV0dXJuIHsgdGl0bGU6IGl0ZW0ubmFtZSB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4geyB0aXRsZTogJycgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVNZW51Q2xpY2sgPSAocHJpbWFyeSwgYWN0aXZlTWVudSwgY2hhbmdlQWN0aXZlKSA9PiB7XG4gIGlmIChwcmltYXJ5LnRpdGxlICE9PSBfXyhhY3RpdmVNZW51KSkgY2hhbmdlQWN0aXZlKHByaW1hcnkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVNZW51SXRlbXMgPSBkYXRhID0+IHtcbiAgY29uc3QgaXRlbXMgPSBbXTtcblxuICBkYXRhLm1lbnUuZm9yRWFjaChpdGVtID0+IHtcbiAgICBjb25zdCB0cmFuc2xhdGVkQ2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuLm1hcChjaGlsZCA9PiAoe1xuICAgICAgLi4uY2hpbGQsXG4gICAgICBuYW1lOiBpc0VtcHR5KGNoaWxkLm5hbWUpID8gY2hpbGQubmFtZSA6IF9fKGNoaWxkLm5hbWUpLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IHRyYW5zbGF0ZWRJdGVtID0ge1xuICAgICAgLi4uaXRlbSxcbiAgICAgIG5hbWU6IF9fKGl0ZW0ubmFtZSksXG4gICAgICBjaGlsZHJlbjogdHJhbnNsYXRlZENoaWxkcmVuLFxuICAgICAgLy8gSGlkaW5nIHVzZXIgaWYgbm90IG9uIE1vYmlsZSB2aWV3XG4gICAgICBjbGFzc05hbWU6IGl0ZW0ubmFtZSA9PT0gJ1VzZXInID8gJ2hpZGRlbi1uYXYtbGcnIDogJycsXG4gICAgfTtcbiAgICBpdGVtcy5wdXNoKHRyYW5zbGF0ZWRJdGVtKTtcbiAgfSk7XG5cbiAgaXRlbXMucHVzaChjcmVhdGVPcmdJdGVtKGRhdGEub3Jncy5hdmFpbGFibGVfb3JnYW5pemF0aW9ucykpO1xuICBpdGVtcy5wdXNoKGNyZWF0ZUxvY2F0aW9uSXRlbShkYXRhLmxvY2F0aW9ucy5hdmFpbGFibGVfbG9jYXRpb25zKSk7XG5cbiAgcmV0dXJuIGl0ZW1zO1xufTtcblxuY29uc3QgY3JlYXRlT3JnSXRlbSA9IG9yZ3MgPT4ge1xuICBjb25zdCBhbnlPcmcgPSB7XG4gICAgbmFtZTogX18oJ0FueSBPcmdhbml6YXRpb24nKSxcbiAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKGZvcmVtYW5VcmwoJy9vcmdhbml6YXRpb25zL2NsZWFyJykpO1xuICAgIH0sXG4gIH07XG4gIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBbYW55T3JnXTtcblxuICBvcmdzLmZvckVhY2gob3JnID0+IHtcbiAgICBjb25zdCBjaGlsZE9iamVjdCA9IHtcbiAgICAgIHR5cGU6IG9yZy50eXBlLFxuICAgICAgbmFtZTogb3JnLnRpdGxlLFxuICAgICAgb25DbGljazogKCkgPT4ge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uYXNzaWduKG9yZy5ocmVmKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjaGlsZHJlbkFycmF5LnB1c2goY2hpbGRPYmplY3QpO1xuICB9KTtcblxuICBjb25zdCBvcmdJdGVtID0ge1xuICAgIHR5cGU6ICdzdWJfbWVudScsXG4gICAgbmFtZTogX18oJ09yZ2FuaXphdGlvbnMnKSxcbiAgICBpY29uOiAnZmEgZmEtYnVpbGRpbmcnLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlbkFycmF5LFxuICAgIC8vIEhpZGluZyBPcmdhbml6YXRpb25zIGlmIG5vdCBvbiBNb2JpbGUgdmlld1xuICAgIGNsYXNzTmFtZTogJ29yZ2FuaXphdGlvbi1tZW51IGhpZGRlbi1uYXYtbGcnLFxuICB9O1xuICByZXR1cm4gb3JnSXRlbTtcbn07XG5cbmNvbnN0IGNyZWF0ZUxvY2F0aW9uSXRlbSA9IGxvY2F0aW9ucyA9PiB7XG4gIGNvbnN0IGFueUxvYyA9IHtcbiAgICBuYW1lOiBfXygnQW55IExvY2F0aW9uJyksXG4gICAgb25DbGljazogKCkgPT4ge1xuICAgICAgd2luZG93LmxvY2F0aW9uLmFzc2lnbihmb3JlbWFuVXJsKCcvbG9jYXRpb25zL2NsZWFyJykpO1xuICAgIH0sXG4gIH07XG4gIGNvbnN0IGNoaWxkcmVuQXJyYXkgPSBbYW55TG9jXTtcblxuICBsb2NhdGlvbnMuZm9yRWFjaChsb2MgPT4ge1xuICAgIGNvbnN0IGNoaWxkT2JqZWN0ID0ge1xuICAgICAgdHlwZTogbG9jLnR5cGUsXG4gICAgICBuYW1lOiBsb2MudGl0bGUsXG4gICAgICBvbkNsaWNrOiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24obG9jLmhyZWYpO1xuICAgICAgfSxcbiAgICB9O1xuICAgIGNoaWxkcmVuQXJyYXkucHVzaChjaGlsZE9iamVjdCk7XG4gIH0pO1xuXG4gIGNvbnN0IGxvY0l0ZW0gPSB7XG4gICAgdHlwZTogJ3N1Yl9tZW51JyxcbiAgICBuYW1lOiBfXygnTG9jYXRpb25zJyksXG4gICAgaWNvbjogJ2ZhIGZhLWdsb2JlJyxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW5BcnJheSxcbiAgICAvLyBIaWRpbmcgTG9jYXRpb25zIGlmIG5vdCBvbiBNb2JpbGUgdmlld1xuICAgIGNsYXNzTmFtZTogJ2xvY2F0aW9uLW1lbnUgaGlkZGVuLW5hdi1sZycsXG4gIH07XG4gIHJldHVybiBsb2NJdGVtO1xufTtcblxuZXhwb3J0IGNvbnN0IG9yZ2FuaXphdGlvblByb3BUeXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgY3VycmVudF9vcmc6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGF2YWlsYWJsZV9vcmdhbml6YXRpb25zOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgaHJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIH0pXG4gICksXG59KTtcblxuZXhwb3J0IGNvbnN0IGxvY2F0aW9uUHJvcFR5cGUgPSBQcm9wVHlwZXMuc2hhcGUoe1xuICBjdXJyZW50X2xvY2F0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhdmFpbGFibGVfbG9jYXRpb25zOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgaHJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIH0pXG4gICksXG59KTtcblxuZXhwb3J0IGNvbnN0IHVzZXJQcm9wVHlwZSA9IFByb3BUeXBlcy5zaGFwZSh7XG4gIGN1cnJlbnRfdXNlcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB1c2VyX2Ryb3Bkb3duOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnksXG4gICAgICBpY29uOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgfSlcbiAgKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgZGF0YVByb3BUeXBlID0ge1xuICBicmFuZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3RvcF9pbXBlcnNvbmF0aW9uX3VybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpbnN0YW5jZV90aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgbWVudTogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGljb246IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICAgIH0pXG4gICksXG4gIGxvY2F0aW9uczogbG9jYXRpb25Qcm9wVHlwZSxcbiAgb3Jnczogb3JnYW5pemF0aW9uUHJvcFR5cGUsXG4gIHJvb3Q6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbG9nbzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBub3RpZmljYXRpb25fdXJsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHVzZXI6IHVzZXJQcm9wVHlwZSxcbn07XG5cbmV4cG9ydCBjb25zdCBsYXlvdXRQcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgaXNDb2xsYXBzZWQ6IFByb3BUeXBlcy5ib29sLFxuICBhY3RpdmVNZW51OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBuYXZpZ2F0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGNoYW5nZUFjdGl2ZU1lbnU6IFByb3BUeXBlcy5mdW5jLFxuICBleHBhbmRMYXlvdXRNZW51czogUHJvcFR5cGVzLmZ1bmMsXG4gIGNvbGxhcHNlTGF5b3V0TWVudXM6IFByb3BUeXBlcy5mdW5jLFxuICBpdGVtczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBpY29uQ2xhc3M6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGluaXRpYWxBY3RpdmU6IFByb3BUeXBlcy5ib29sLFxuICAgICAgc3ViSXRlbXM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgICAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAgIGlzRGl2aWRlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAgIGhyZWY6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIH0pXG4gICksXG4gIGRhdGE6IFByb3BUeXBlcy5zaGFwZShkYXRhUHJvcFR5cGUpLFxufTtcblxuZXhwb3J0IGNvbnN0IGxheW91dERlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IG51bGwsXG4gIGl0ZW1zOiBbXSxcbiAgZGF0YToge30sXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIGlzQ29sbGFwc2VkOiBmYWxzZSxcbiAgYWN0aXZlTWVudTogJycsXG4gIG5hdmlnYXRlOiBub29wLFxuICBjaGFuZ2VBY3RpdmVNZW51OiBub29wLFxuICBleHBhbmRMYXlvdXRNZW51czogbm9vcCxcbiAgY29sbGFwc2VMYXlvdXRNZW51czogbm9vcCxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvTGF5b3V0SGVscGVyLmpzIiwiZXhwb3J0IGNvbnN0IHNlbGVjdEZvcmVtYW5Nb2RhbHNTdGF0ZSA9IHN0YXRlID0+IHN0YXRlLmZvcmVtYW5Nb2RhbHM7XG5leHBvcnQgY29uc3Qgc2VsZWN0TW9kYWxTdGF0ZUJ5SWQgPSAoc3RhdGUsIGlkKSA9PlxuICBzdGF0ZS5mb3JlbWFuTW9kYWxzICYmIChzdGF0ZS5mb3JlbWFuTW9kYWxzW2lkXSB8fCB7fSk7XG5leHBvcnQgY29uc3Qgc2VsZWN0SXNNb2RhbE9wZW4gPSAoc3RhdGUsIGlkKSA9PlxuICBzZWxlY3RNb2RhbFN0YXRlQnlJZChzdGF0ZSwgaWQpLmlzT3BlbjtcbmV4cG9ydCBjb25zdCBzZWxlY3RJc01vZGFsU3VibWl0dGluZyA9IChzdGF0ZSwgaWQpID0+XG4gIHNlbGVjdE1vZGFsU3RhdGVCeUlkKHN0YXRlLCBpZCkuaXNTdWJtaXR0aW5nO1xuZXhwb3J0IGNvbnN0IHNlbGVjdE1vZGFsRXhpc3RzID0gKHN0YXRlLCBpZCkgPT5cbiAgT2JqZWN0LmtleXMoc2VsZWN0TW9kYWxTdGF0ZUJ5SWQoc3RhdGUsIGlkKSkubGVuZ3RoID4gMDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9Gb3JlbWFuTW9kYWxTZWxlY3RvcnMuanMiLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIHNlbGVjdElzTW9kYWxPcGVuLFxuICBzZWxlY3RJc01vZGFsU3VibWl0dGluZyxcbiAgc2VsZWN0TW9kYWxFeGlzdHMsXG59IGZyb20gJy4vRm9yZW1hbk1vZGFsU2VsZWN0b3JzJztcbmltcG9ydCB7IHNldE1vZGFsQ2xvc2VkLCBhZGRNb2RhbCB9IGZyb20gJy4vRm9yZW1hbk1vZGFsQWN0aW9ucyc7XG5pbXBvcnQgRm9yZW1hbk1vZGFsIGZyb20gJy4vRm9yZW1hbk1vZGFsJztcbmltcG9ydCBGb3JlbWFuTW9kYWxIZWFkZXIgZnJvbSAnLi9zdWJjb21wb25lbnRzL0ZvcmVtYW5Nb2RhbEhlYWRlcic7XG5pbXBvcnQgRm9yZW1hbk1vZGFsRm9vdGVyIGZyb20gJy4vc3ViY29tcG9uZW50cy9Gb3JlbWFuTW9kYWxGb290ZXInO1xuaW1wb3J0IHJlZHVjZXIgZnJvbSAnLi9Gb3JlbWFuTW9kYWxSZWR1Y2VyJztcblxuZXhwb3J0IGNvbnN0IHJlZHVjZXJzID0geyBmb3JlbWFuTW9kYWxzOiByZWR1Y2VyIH07XG5cbmNvbnN0IENvbm5lY3RlZEZvcmVtYW5Nb2RhbCA9IHByb3BzID0+IHtcbiAgY29uc3QgeyBpZCwgdGl0bGUgfSA9IHByb3BzO1xuICBjb25zdCBpc09wZW4gPSB1c2VTZWxlY3RvcihzdGF0ZSA9PiBzZWxlY3RJc01vZGFsT3BlbihzdGF0ZSwgaWQpKTtcbiAgY29uc3QgaXNTdWJtaXR0aW5nID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0SXNNb2RhbFN1Ym1pdHRpbmcoc3RhdGUsIGlkKSk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3Qgb25DbG9zZSA9ICgpID0+IGRpc3BhdGNoKHNldE1vZGFsQ2xvc2VkKHsgaWQgfSkpO1xuXG4gIGNvbnN0IG1vZGFsRXhpc3RzID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0TW9kYWxFeGlzdHMoc3RhdGUsIGlkKSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobW9kYWxFeGlzdHMpIHJldHVybjsgLy8gZG9uJ3QgYWRkIG1vZGFsIGlmIGl0IGFscmVhZHkgZXhpc3RzXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNDkyMFxuICAgIGRpc3BhdGNoKGFkZE1vZGFsKHsgaWQsIGlzT3BlbjogZmFsc2UsIGlzU3VibWl0dGluZzogZmFsc2UgfSkpO1xuICB9LCBbbW9kYWxFeGlzdHMsIGlkLCBkaXNwYXRjaF0pO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcmVtYW5Nb2RhbFxuICAgICAgey4uLnByb3BzfVxuICAgICAgaWQ9e2lkfVxuICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgaXNPcGVuPXtpc09wZW59XG4gICAgICBpc1N1Ym1pdHRpbmc9e2lzU3VibWl0dGluZ31cbiAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgLz5cbiAgKTtcbn07XG5cbkNvbm5lY3RlZEZvcmVtYW5Nb2RhbC5wcm9wVHlwZXMgPSB7XG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ29ubmVjdGVkRm9yZW1hbk1vZGFsLmRlZmF1bHRQcm9wcyA9IHtcbiAgdGl0bGU6ICcnLFxufTtcblxuLy8gSGVhZGVyIGFuZCBGb290ZXIgdXNlIHRoZSBwcm92aWRlZCBjaGlsZHJlbiwgb3IgZGVmYXVsdCBtYXJrdXAgaWYgbm9uZSBwcm92aWRlZFxuXG5Db25uZWN0ZWRGb3JlbWFuTW9kYWwuSGVhZGVyID0gRm9yZW1hbk1vZGFsSGVhZGVyO1xuQ29ubmVjdGVkRm9yZW1hbk1vZGFsLkZvb3RlciA9IEZvcmVtYW5Nb2RhbEZvb3RlcjtcblxuZXhwb3J0IGRlZmF1bHQgQ29ubmVjdGVkRm9yZW1hbk1vZGFsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRm9yZW1hbk1vZGFsL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyBTVEFUVVMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IE1lc3NhZ2VCb3ggZnJvbSAnLi4vTWVzc2FnZUJveCc7XG5pbXBvcnQgJy4vTG9hZGVyLmNzcyc7XG5cbmNvbnN0IF9zaW1wbGVMb2FkZXIgPSBzcGlubmVyU2l6ZSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPVwibG9hZGVyLXJvb3RcIj5cbiAgICA8U3Bpbm5lciBsb2FkaW5nIHNpemU9e3NwaW5uZXJTaXplfSAvPlxuICA8L2Rpdj5cbik7XG5cbmNvbnN0IExvYWRlciA9ICh7IHN0YXR1cywgY2hpbGRyZW4sIHNwaW5uZXJTaXplIH0pID0+IHtcbiAgbGV0IGNvbnRlbnQ7XG5cbiAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICBjYXNlIFNUQVRVUy5QRU5ESU5HOiB7XG4gICAgICByZXR1cm4gX3NpbXBsZUxvYWRlcihzcGlubmVyU2l6ZSk7XG4gICAgfVxuICAgIGNhc2UgU1RBVFVTLlJFU09MVkVEOiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWRlc3RydWN0dXJpbmdcbiAgICAgIGNvbnRlbnQgPSBjaGlsZHJlblswXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIFNUQVRVUy5FUlJPUjoge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1kZXN0cnVjdHVyaW5nXG4gICAgICBjb250ZW50ID0gY2hpbGRyZW5bMV07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIGNvbnRlbnQgPSA8TWVzc2FnZUJveCBpY29udHlwZT1cImVycm9yLWNpcmNsZS1vXCIgbXNnPVwiSW52YWxpZCBTdGF0dXNcIiAvPjtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIDxkaXYgY2xhc3NOYW1lPVwibG9hZGVyLXJvb3RcIj57Y29udGVudH08L2Rpdj47XG59O1xuXG5Mb2FkZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFycmF5LFxuICBzdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNwaW5uZXJTaXplOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuTG9hZGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFsnJywgJyddLFxuICBzdGF0dXM6ICcnLFxuICBzcGlubmVyU2l6ZTogJ2xnJyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExvYWRlcjtcblxuZXhwb3J0IGNvbnN0IHNpbXBsZUxvYWRlciA9IF9zaW1wbGVMb2FkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vTG9hZGVyL2luZGV4LmpzIiwiZXhwb3J0IGNvbnN0IGFkZERheXMgPSAoZGF0ZSwgZGF5cykgPT4ge1xuICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgcmVzdWx0LnNldERhdGUocmVzdWx0LmdldERhdGUoKSArIGRheXMpO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZE1vbnRocyA9IChkYXRlLCBtb250aHMpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XG4gIHJlc3VsdC5zZXRNb250aChyZXN1bHQuZ2V0TW9udGgoKSArIG1vbnRocyk7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkWWVhcnMgPSAoZGF0ZSwgeWVhcnMpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XG4gIHJlc3VsdC5zZXRZZWFyKHJlc3VsdC5nZXRGdWxsWWVhcigpICsgeWVhcnMpO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRXF1YWxEYXRlID0gKGRhdGUxLCBkYXRlMikgPT5cbiAgZGF0ZTEuZ2V0WWVhcigpID09PSBkYXRlMi5nZXRZZWFyKCkgJiZcbiAgZGF0ZTEuZ2V0TW9udGgoKSA9PT0gZGF0ZTIuZ2V0TW9udGgoKSAmJlxuICBkYXRlMS5nZXREYXRlKCkgPT09IGRhdGUyLmdldERhdGUoKTtcblxuZXhwb3J0IGNvbnN0IGlzV2Vla2VuZCA9IGRhdGUgPT4gZGF0ZS5nZXREYXkoKSA9PT0gNiB8fCBkYXRlLmdldERheSgpID09PSA1O1xuXG5leHBvcnQgY29uc3QgZ2V0TW9udGhTdGFydCA9IGRhdGUgPT4ge1xuICBkYXRlLnNldERhdGUoMSk7XG4gIHJldHVybiBkYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFdlZWtTdGFydCA9IGRhdGUgPT4gYWRkRGF5cyhkYXRlLCAoNyAtIGRhdGUuZ2V0RGF5KCkpICUgNyk7XG5cbmV4cG9ydCBjb25zdCBoZWxwZXJzID0ge1xuICBhZGREYXlzLFxuICBhZGRNb250aHMsXG4gIGlzRXF1YWxEYXRlLFxuICBpc1dlZWtlbmQsXG4gIGdldE1vbnRoU3RhcnQsXG4gIGdldFdlZWtTdGFydCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGhlbHBlcnM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZUNvbXBvbmVudHMvaGVscGVycy5qcyIsImV4cG9ydCBjb25zdCBZRUFSID0gJ1lFQVInO1xuZXhwb3J0IGNvbnN0IE1PTlRIID0gJ01PTlRIJztcbmV4cG9ydCBjb25zdCBEQVkgPSAnREFZJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9EYXRlQ29tcG9uZW50cy9EYXRlQ29uc3RhbnRzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRSZWxhdGl2ZSwgaW50bFNoYXBlIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgeyBpc29Db21wYXRpYmxlRGF0ZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuY29uc3QgUmVsYXRpdmVEYXRlVGltZSA9IChwcm9wcywgY29udGV4dCkgPT4ge1xuICBjb25zdCB7IGRhdGUsIGRlZmF1bHRWYWx1ZSwgY2hpbGRyZW4gfSA9IHByb3BzO1xuICBpZiAoZGF0ZSkge1xuICAgIGNvbnN0IGlzb0RhdGUgPSBpc29Db21wYXRpYmxlRGF0ZShkYXRlKTtcbiAgICBjb25zdCB0aXRsZSA9IGNvbnRleHQuaW50bC5mb3JtYXREYXRlKGlzb0RhdGUsIHtcbiAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgbW9udGg6ICdzaG9ydCcsXG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB9KTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3N0eWxlLXByb3Atb2JqZWN0ICovXG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuIHRpdGxlPXt0aXRsZX0+XG4gICAgICAgIDxGb3JtYXR0ZWRSZWxhdGl2ZSB2YWx1ZT17aXNvRGF0ZX0gc3R5bGU9XCJudW1lcmljXCI+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0Zvcm1hdHRlZFJlbGF0aXZlPlxuICAgICAgPC9zcGFuPlxuICAgICk7XG4gICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC9zdHlsZS1wcm9wLW9iamVjdCAqL1xuICB9XG5cbiAgcmV0dXJuIDxzcGFuPntkZWZhdWx0VmFsdWV9PC9zcGFuPjtcbn07XG5cblJlbGF0aXZlRGF0ZVRpbWUuY29udGV4dFR5cGVzID0ge1xuICBpbnRsOiBpbnRsU2hhcGUsXG59O1xuXG5SZWxhdGl2ZURhdGVUaW1lLnByb3BUeXBlcyA9IHtcbiAgZGF0ZTogUHJvcFR5cGVzLmFueSxcbiAgZGVmYXVsdFZhbHVlOiBQcm9wVHlwZXMubm9kZSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5mdW5jLFxufTtcblxuUmVsYXRpdmVEYXRlVGltZS5kZWZhdWx0UHJvcHMgPSB7XG4gIGRhdGU6IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogJycsXG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBSZWxhdGl2ZURhdGVUaW1lO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2RhdGVzL1JlbGF0aXZlRGF0ZVRpbWUuanMiLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIEV4Y2xhbWF0aW9uVHJpYW5nbGVJY29uLFxuICBDaGVja0NpcmNsZUljb24sXG4gIEV4Y2xhbWF0aW9uQ2lyY2xlSWNvbixcbiAgQmFuSWNvbixcbn0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0ICcuL3N0eWxlcy5zY3NzJztcbmltcG9ydCB7XG4gIEVSUk9SX1NUQVRVU19TVEFURSxcbiAgTkFfU1RBVFVTX1NUQVRFLFxuICBPS19TVEFUVVNfU1RBVEUsXG4gIFdBUk5JTkdfU1RBVFVTX1NUQVRFLFxufSBmcm9tICcuL0NvbnN0YW50cyc7XG5cbmNvbnN0IFN0YXR1c0ljb24gPSAoeyBzdGF0dXNOdW1iZXIsIGxhYmVsIH0pID0+IHtcbiAgc3dpdGNoIChzdGF0dXNOdW1iZXIpIHtcbiAgICBjYXNlIE9LX1NUQVRVU19TVEFURTpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInN0YXR1cy1zdWNjZXNzXCI+XG4gICAgICAgICAgPENoZWNrQ2lyY2xlSWNvbiBub1ZlcnRpY2FsQWxpZ24gLz4ge2xhYmVsfVxuICAgICAgICA8L3NwYW4+XG4gICAgICApO1xuICAgIGNhc2UgV0FSTklOR19TVEFUVVNfU1RBVEU6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzdGF0dXMtd2FybmluZ1wiPlxuICAgICAgICAgIDxFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbiBub1ZlcnRpY2FsQWxpZ24gLz4ge2xhYmVsfVxuICAgICAgICA8L3NwYW4+XG4gICAgICApO1xuXG4gICAgY2FzZSBFUlJPUl9TVEFUVVNfU1RBVEU6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzdGF0dXMtZXJyb3JcIj5cbiAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVJY29uIG5vVmVydGljYWxBbGlnbiAvPiB7bGFiZWx9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICk7XG4gICAgY2FzZSBOQV9TVEFUVVNfU1RBVEU6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJkaXNhYmxlZFwiPlxuICAgICAgICAgIDxCYW5JY29uIG5vVmVydGljYWxBbGlnbiAvPiB7bGFiZWx9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59O1xuXG5TdGF0dXNJY29uLnByb3BUeXBlcyA9IHtcbiAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0YXR1c051bWJlcjogUHJvcFR5cGVzLm51bWJlcixcbn07XG5cblN0YXR1c0ljb24uZGVmYXVsdFByb3BzID0ge1xuICBsYWJlbDogJycsXG4gIHN0YXR1c051bWJlcjogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU3RhdHVzSWNvbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1N0YXR1cy9TdGF0dXNJY29uLmpzIiwiZXhwb3J0IGNvbnN0IEFVVE9fQ09NUExFVEVfSU5JVCA9ICdBVVRPX0NPTVBMRVRFX0lOSVQnO1xuZXhwb3J0IGNvbnN0IEFVVE9fQ09NUExFVEVfUkVRVUVTVCA9ICdBVVRPX0NPTVBMRVRFX1JFUVVFU1QnO1xuZXhwb3J0IGNvbnN0IEFVVE9fQ09NUExFVEVfU1VDQ0VTUyA9ICdBVVRPX0NPTVBMRVRFX1NVQ0NFU1MnO1xuZXhwb3J0IGNvbnN0IEFVVE9fQ09NUExFVEVfRkFJTFVSRSA9ICdBVVRPX0NPTVBMRVRFX0ZBSUxVUkUnO1xuZXhwb3J0IGNvbnN0IEFVVE9fQ09NUExFVEVfUkVTRVQgPSAnQVVUT19DT01QTEVURV9SRVNFVCc7XG5leHBvcnQgY29uc3QgQVVUT19DT01QTEVURV9ESVNBQkxFRF9DSEFOR0UgPSAnQVVUT19DT01QTEVURV9ESVNBQkxFRF9DSEFOR0UnO1xuZXhwb3J0IGNvbnN0IEFVVE9fQ09NUExFVEVfQ09OVFJPTExFUl9DSEFOR0UgPVxuICAnQVVUT19DT01QTEVURV9DT05UUk9MTEVSX0NIQU5HRSc7XG5leHBvcnQgY29uc3QgVFJJR0dFUlMgPSB7XG4gIElOUFVUX0ZPQ1VTOiAnSU5QVVRfRk9DVVMnLFxuICBJTlBVVF9DSEFOR0U6ICdJTlBVVF9DSEFOR0UnLFxuICBJVEVNX1NFTEVDVDogJ0lURU1fU0VMRUNUJyxcbiAgSU5QVVRfQ0xFQVI6ICdJTlBVVF9DTEVBUicsXG4gIENPTVBPTkVOVF9ESURfTU9VTlQ6ICdDT01QT05FTlRfRElEX01PVU5UJyxcbiAgUkVTRVQ6ICdSRVNFVCcsXG4gIENPTlRST0xMRVJfQ0hBTkdFRDogJ0NPTlRST0xMRVJfQ0hBTkdFRCcsXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlL0F1dG9Db21wbGV0ZUNvbnN0YW50cy5qcyIsImV4cG9ydCBjb25zdCBWTVdBUkVfQ0xVU1RFUl9DSEFOR0UgPSAnVk1XQVJFX0NMVVNURVJfQ0hBTkdFJztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX1ZNV0FSRV9JTklUID0gJ1NUT1JBR0VfVk1XQVJFX0lOSVQnO1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfVk1XQVJFX0FERF9DT05UUk9MTEVSID0gJ1NUT1JBR0VfVk1XQVJFX0FERF9DT05UUk9MTEVSJztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX1ZNV0FSRV9BRERfRElTSyA9ICdTVE9SQUdFX1ZNV0FSRV9BRERfRElTSyc7XG5leHBvcnQgY29uc3QgU1RPUkFHRV9WTVdBUkVfUkVNT1ZFX0NPTlRST0xMRVIgPVxuICAnU1RPUkFHRV9WTVdBUkVfUkVNT1ZFX0NPTlRST0xMRVInO1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfVk1XQVJFX1VQREFURV9DT05UUk9MTEVSID1cbiAgJ1NUT1JBR0VfVk1XQVJFX1VQREFURV9DT05UUk9MTEVSJztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX1ZNV0FSRV9SRU1PVkVfRElTSyA9ICdTVE9SQUdFX1ZNV0FSRV9SRU1PVkVfRElTSyc7XG5leHBvcnQgY29uc3QgU1RPUkFHRV9WTVdBUkVfVVBEQVRFX0RJU0sgPSAnU1RPUkFHRV9WTVdBUkVfVVBEQVRFX0RJU0snO1xuZXhwb3J0IGNvbnN0IE5PVElGSUNBVElPTlMgPSAnTk9USUZJQ0FUSU9OUyc7XG5leHBvcnQgY29uc3QgU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFUyA9ICdTVE9SQUdFX1ZNV0FSRV9EQVRBU1RPUkVTJztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX1ZNV0FSRV9EQVRBU1RPUkVTX1JFUVVFU1QgPVxuICAnU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFU19SRVFVRVNUJztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX1ZNV0FSRV9EQVRBU1RPUkVTX1NVQ0NFU1MgPVxuICAnU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFU19TVUNDRVNTJztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX1ZNV0FSRV9EQVRBU1RPUkVTX0ZBSUxVUkUgPVxuICAnU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFU19GQUlMVVJFJztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EUyA9ICdTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EUyc7XG5leHBvcnQgY29uc3QgU1RPUkFHRV9WTVdBUkVfU1RPUkFHRVBPRFNfUkVRVUVTVCA9XG4gICdTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EU19SRVFVRVNUJztcbmV4cG9ydCBjb25zdCBTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EU19TVUNDRVNTID1cbiAgJ1NUT1JBR0VfVk1XQVJFX1NUT1JBR0VQT0RTX1NVQ0NFU1MnO1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfVk1XQVJFX1NUT1JBR0VQT0RTX0ZBSUxVUkUgPVxuICAnU1RPUkFHRV9WTVdBUkVfU1RPUkFHRVBPRFNfRkFJTFVSRSc7XG5leHBvcnQgY29uc3QgTk9USUZJQ0FUSU9OU19UT0dHTEVfRFJBV0VSID0gJ05PVElGSUNBVElPTlNfVE9HR0xFX0RSQVdFUic7XG5leHBvcnQgY29uc3QgTk9USUZJQ0FUSU9OU19TRVRfRVhQQU5ERURfR1JPVVAgPVxuICAnTk9USUZJQ0FUSU9OU19TRVRfRVhQQU5ERURfR1JPVVAnO1xuZXhwb3J0IGNvbnN0IE5PVElGSUNBVElPTlNfTUFSS19BU19SRUFEID0gJ05PVElGSUNBVElPTlNfTUFSS19BU19SRUFEJztcbmV4cG9ydCBjb25zdCBOT1RJRklDQVRJT05TX01BUktfR1JPVVBfQVNfUkVBRCA9XG4gICdOT1RJRklDQVRJT05TX01BUktfR1JPVVBfQVNfUkVBRCc7XG5leHBvcnQgY29uc3QgTk9USUZJQ0FUSU9OU19NQVJLX0FTX0NMRUFSID0gJ05PVElGSUNBVElPTlNfTUFSS19BU19DTEVBUic7XG5leHBvcnQgY29uc3QgTk9USUZJQ0FUSU9OU19NQVJLX0dST1VQX0FTX0NMRUFSRUQgPVxuICAnTk9USUZJQ0FUSU9OU19NQVJLX0dST1VQX0FTX0NMRUFSRUQnO1xuZXhwb3J0IGNvbnN0IE5PVElGSUNBVElPTlNfTElOS19DTElDS0VEID0gJ05PVElGSUNBVElPTlNfTElOS19DTElDS0VEJztcbmV4cG9ydCBjb25zdCBQQVNTV09SRF9TVFJFTkdUSF9QQVNTV09SRF9DSEFOR0VEID1cbiAgJ1BBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX0NIQU5HRUQnO1xuZXhwb3J0IGNvbnN0IFBBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX01BVENIRUQgPVxuICAnUEFTU1dPUkRfU1RSRU5HVEhfUEFTU1dPUkRfTUFUQ0hFRCc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvY29uc3RzLmpzIiwiZXhwb3J0IGNvbnN0IFNUQVJUX0lOVEVSVkFMID0gJ1NUQVJUX0lOVEVSVkFMJztcbmV4cG9ydCBjb25zdCBTVE9QX0lOVEVSVkFMID0gJ1NUT1BfSU5URVJWQUwnO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5URVJWQUwgPSA1MDAwO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L21pZGRsZXdhcmVzL0ludGVydmFsTWlkZGxld2FyZS9JbnRlcnZhbENvbnN0YW50cy5qcyIsImltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBiaW5kQWN0aW9uQ3JlYXRvcnMgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgKiBhcyBhY3Rpb25zIGZyb20gJy4vQXV0b0NvbXBsZXRlQWN0aW9ucyc7XG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL0F1dG9Db21wbGV0ZVJlZHVjZXInO1xuaW1wb3J0IEF1dG9Db21wbGV0ZSBmcm9tICcuL0F1dG9Db21wbGV0ZSc7XG5pbXBvcnQge1xuICBzZWxlY3RBdXRvY29tcGxldGVFcnJvcixcbiAgc2VsZWN0QXV0b2NvbXBsZXRlUmVzdWx0cyxcbiAgc2VsZWN0QXV0b2NvbXBsZXRlU2VhcmNoUXVlcnksXG4gIHNlbGVjdEF1dG9jb21wbGV0ZVN0YXR1cyxcbiAgc2VsZWN0QXV0b2NvbXBsZXRlSXNEaXNhYmxlZCxcbiAgc2VsZWN0QXV0b2NvbXBsZXRlVXJsLFxuICBzZWxlY3RBdXRvY29tcGxldGVUcmlnZ2VyLFxufSBmcm9tICcuL0F1dG9Db21wbGV0ZVNlbGVjdG9ycyc7XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSwgb3duUHJvcHMpID0+IHtcbiAgY29uc3QgeyBpZCB9ID0gb3duUHJvcHM7XG4gIHJldHVybiB7XG4gICAgZXJyb3I6IHNlbGVjdEF1dG9jb21wbGV0ZUVycm9yKHN0YXRlLCBpZCwgb3duUHJvcHMpLFxuICAgIHJlc3VsdHM6IHNlbGVjdEF1dG9jb21wbGV0ZVJlc3VsdHMoc3RhdGUsIGlkLCBvd25Qcm9wcyksXG4gICAgc2VhcmNoUXVlcnk6IHNlbGVjdEF1dG9jb21wbGV0ZVNlYXJjaFF1ZXJ5KHN0YXRlLCBpZCwgb3duUHJvcHMpLFxuICAgIHN0YXR1czogc2VsZWN0QXV0b2NvbXBsZXRlU3RhdHVzKHN0YXRlLCBpZCwgb3duUHJvcHMpLFxuICAgIGRpc2FibGVkOiBzZWxlY3RBdXRvY29tcGxldGVJc0Rpc2FibGVkKHN0YXRlLCBpZCwgb3duUHJvcHMpLFxuICAgIHVybDogc2VsZWN0QXV0b2NvbXBsZXRlVXJsKHN0YXRlLCBpZCwgb3duUHJvcHMpLFxuICAgIHRyaWdnZXI6IHNlbGVjdEF1dG9jb21wbGV0ZVRyaWdnZXIoc3RhdGUsIGlkLCBvd25Qcm9wcyksXG4gIH07XG59O1xuXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSBkaXNwYXRjaCA9PiBiaW5kQWN0aW9uQ3JlYXRvcnMoYWN0aW9ucywgZGlzcGF0Y2gpO1xuXG5leHBvcnQgY29uc3QgcmVkdWNlcnMgPSB7IGF1dG9jb21wbGV0ZTogcmVkdWNlciB9O1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzKShBdXRvQ29tcGxldGUpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IHBhcnNlRGlmZiwgRGlmZiB9IGZyb20gJ3JlYWN0LWRpZmYtdmlldyc7XG5pbXBvcnQgeyBmb3JtYXRMaW5lcywgZGlmZkxpbmVzIH0gZnJvbSAndW5pZGlmZic7XG5pbXBvcnQgJy4vZGlmZnZpZXcuc2Nzcyc7XG5cbmNvbnN0IGdldERpZmYgPSAob2xkVGV4dCwgbmV3VGV4dCkgPT4ge1xuICBjb25zdCBkaWZmVGV4dCA9IGZvcm1hdExpbmVzKGRpZmZMaW5lcyhvbGRUZXh0LCBuZXdUZXh0KSwgeyBjb250ZXh0OiAzIH0pO1xuICAvLyB0aGVzZSB0d28gbGluZXMgYXJlIGZha2VkIHRvIG1vY2sgZ2l0IGRpZmYgb3V0cHV0XG4gIGNvbnN0IGhlYWRlciA9IFsnZGlmZiAtLWdpdCBhL2EgYi9iJywgJ2luZGV4IDAwMDAwMDAuLjExMTExMTEgMTAwNjQ0J107XG4gIHJldHVybiBgJHtoZWFkZXIuam9pbignXFxuJyl9XFxuJHtkaWZmVGV4dH1gO1xufTtcblxuY29uc3QgRGlmZlZpZXcgPSAoeyBvbGRUZXh0LCBuZXdUZXh0LCB2aWV3VHlwZSwgcGF0Y2ggfSkgPT4ge1xuICAvLyBvbGQsbmV3IFRleHRcbiAgaWYgKHBhdGNoID09PSAnJykge1xuICAgIGNvbnN0IGdpdERpZmYgPSBnZXREaWZmKG9sZFRleHQsIG5ld1RleHQpO1xuICAgIGNvbnN0IGZpbGVzID0gcGFyc2VEaWZmKGdpdERpZmYpO1xuICAgIGNvbnN0IHsgaHVua3MsIHR5cGUgfSA9IGZpbGVzWzBdO1xuICAgIHJldHVybiBodW5rcyAmJiA8RGlmZiBodW5rcz17aHVua3N9IHZpZXdUeXBlPXt2aWV3VHlwZX0gZGlmZlR5cGU9e3R5cGV9IC8+O1xuICB9XG4gIC8vIFBhdGNoXG4gIGNvbnN0IGZpbGVzID0gcGFyc2VEaWZmKFxuICAgIHBhdGNoXG4gICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAuc2xpY2UoMSlcbiAgICAgIC5qb2luKCdcXG4nKVxuICApO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvcHJvcC10eXBlc1xuICBjb25zdCByZW5kZXJGaWxlID0gKHsgb2xkUmV2aXNpb24sIG5ld1JldmlzaW9uLCB0eXBlLCBodW5rcyB9KSA9PiAoXG4gICAgPERpZmZcbiAgICAgIGtleT17YCR7b2xkUmV2aXNpb259LSR7bmV3UmV2aXNpb259YH1cbiAgICAgIHZpZXdUeXBlPXt2aWV3VHlwZX1cbiAgICAgIGRpZmZUeXBlPXt0eXBlfVxuICAgICAgaHVua3M9e2h1bmtzfVxuICAgIC8+XG4gICk7XG5cbiAgcmV0dXJuIDxkaXY+e2ZpbGVzLm1hcChyZW5kZXJGaWxlKX08L2Rpdj47XG59O1xuXG5EaWZmVmlldy5wcm9wVHlwZXMgPSB7XG4gIC8vIE5vbmUgYXJlIHJlcXVpcmVkIGJlY2F1c2Ugb25seSBvbmUgY2FuIGJlIHVzZWQgYXQgYSB0aW1lOiAob2xkICsgbmV3IHx8IHBhdGNoKVxuICBvbGRUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBuZXdUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2aWV3VHlwZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBwYXRjaDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkRpZmZWaWV3LmRlZmF1bHRQcm9wcyA9IHtcbiAgb2xkVGV4dDogJycsXG4gIG5ld1RleHQ6ICcnLFxuICBwYXRjaDogJycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEaWZmVmlldztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0RpZmZWaWV3L0RpZmZWaWV3LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwLCBCdXR0b24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IFNQTElULCBVTklGSUVEIH0gZnJvbSAnLi9EaWZmQ29uc3RzJztcblxuY29uc3QgYnRuQ2xhc3MgPSAoc3RhdGVWaWV3LCBidG5WaWV3KSA9PlxuICBjbGFzc05hbWVzKCdkaWZmLWJ1dHRvbicsIHsgYWN0aXZlOiBzdGF0ZVZpZXcgPT09IGJ0blZpZXcgfSk7XG5cbmNvbnN0IHJhZGlvQnV0dG9uID0gKHN0YXRlVmlldywgYnRuVmlldywgY2hhbmdlU3RhdGUpID0+IChcbiAgPEJ1dHRvblxuICAgIGNsYXNzTmFtZT17YnRuQ2xhc3Moc3RhdGVWaWV3LCBidG5WaWV3KX1cbiAgICBpZD17YCR7YnRuVmlld30tYnRuYH1cbiAgICBvbkNsaWNrPXtjaGFuZ2VTdGF0ZX1cbiAgICBic1N0eWxlPXtzdGF0ZVZpZXcgPT09IGJ0blZpZXcgPyAncHJpbWFyeScgOiAnZGVmYXVsdCd9XG4gID5cbiAgICB7YnRuVmlld31cbiAgPC9CdXR0b24+XG4pO1xuXG5jb25zdCBEaWZmUmFkaW9CdXR0b25zID0gKHsgc3RhdGVWaWV3LCBjaGFuZ2VTdGF0ZSB9KSA9PiAoXG4gIDxkaXYgaWQ9XCJkaWZmLXJhZGlvLWJ1dHRvbnNcIj5cbiAgICA8QnV0dG9uR3JvdXA+XG4gICAgICB7cmFkaW9CdXR0b24oc3RhdGVWaWV3LCBfXygnc3BsaXQnKSwgKCkgPT4ge1xuICAgICAgICBjaGFuZ2VTdGF0ZShTUExJVCk7XG4gICAgICB9KX1cbiAgICAgIHtyYWRpb0J1dHRvbihzdGF0ZVZpZXcsIF9fKCd1bmlmaWVkJyksICgpID0+IHtcbiAgICAgICAgY2hhbmdlU3RhdGUoVU5JRklFRCk7XG4gICAgICB9KX1cbiAgICA8L0J1dHRvbkdyb3VwPlxuICA8L2Rpdj5cbik7XG5cbkRpZmZSYWRpb0J1dHRvbnMucHJvcFR5cGVzID0ge1xuICBzdGF0ZVZpZXc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2hhbmdlU3RhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEaWZmUmFkaW9CdXR0b25zO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRGlmZlZpZXcvRGlmZlJhZGlvQnV0dG9ucy5qcyIsImV4cG9ydCBjb25zdCBFRElUT1JfSU5JVElBTElaRSA9ICdFRElUT1JfSU5JVElBTElaRSc7XG5leHBvcnQgY29uc3QgRURJVE9SX0lNUE9SVF9GSUxFID0gJ0VESVRPUl9JTVBPUlRfRklMRSc7XG5leHBvcnQgY29uc3QgRURJVE9SX1JFVkVSVF9DSEFOR0VTID0gJ0VESVRPUl9SRVZFUlRfQ0hBTkdFUyc7XG5leHBvcnQgY29uc3QgRURJVE9SX0VYRUNfUFJFVklFVyA9ICdFRElUT1JfRVhFQ19QUkVWSUVXJztcbmV4cG9ydCBjb25zdCBFRElUT1JfTU9EQUxfVE9HR0xFID0gJ0VESVRPUl9NT0RBTF9UT0dHTEUnO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9DSEFOR0VfRElGRl9WSUVXID0gJ0VESVRPUl9DSEFOR0VfRElGRl9WSUVXJztcbmV4cG9ydCBjb25zdCBFRElUT1JfQ0hBTkdFX1ZBTFVFID0gJ0VESVRPUl9DSEFOR0VfVkFMVUUnO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9TSE9XX0VSUk9SID0gJ0VESVRPUl9TSE9XX0VSUk9SJztcbmV4cG9ydCBjb25zdCBFRElUT1JfRElTTUlTU19FUlJPUiA9ICdFRElUT1JfRElTTUlTU19FUlJPUic7XG5leHBvcnQgY29uc3QgRURJVE9SX0NIQU5HRV9UQUIgPSAnRURJVE9SX0NIQU5HRV9UQUInO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9UT0dHTEVfTUFTSyA9ICdFRElUT1JfVE9HR0xFX01BU0snO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9DSEFOR0VfU0VUVElORyA9ICdFRElUT1JfQ0hBTkdFX1NFVFRJTkcnO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9UT0dHTEVfUkVOREVSX1ZJRVcgPSAnRURJVE9SX1RPR0dMRV9SRU5ERVJfVklFVyc7XG5leHBvcnQgY29uc3QgRURJVE9SX1NIT1dfTE9BRElORyA9ICdFRElUT1JfU0hPV19MT0FESU5HJztcbmV4cG9ydCBjb25zdCBFRElUT1JfSElERV9MT0FESU5HID0gJ0VESVRPUl9ISURFX0xPQURJTkcnO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9GRVRDSF9IT1NUX1BFTkRJTkcgPSAnRURJVE9SX0ZFVENIX0hPU1RfUEVORElORyc7XG5leHBvcnQgY29uc3QgRURJVE9SX0ZFVENIX0hPU1RfUkVTT0xWRUQgPSAnRURJVE9SX0ZFVENIX0hPU1RfUkVTT0xWRUQnO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9IT1NUX1NFTEVDVF9UT0dHTEUgPSAnRURJVE9SX0hPU1RfU0VMRUNUX1RPR0dMRSc7XG5leHBvcnQgY29uc3QgRURJVE9SX0hPU1RfU0VMRUNUX0NMRUFSID0gJ0VESVRPUl9IT1NUX1NFTEVDVF9DTEVBUic7XG5leHBvcnQgY29uc3QgRURJVE9SX0hPU1RfU0VMRUNUX1JFU0VUID0gJ0VESVRPUl9IT1NUX1NFTEVDVF9SRVNFVCc7XG5leHBvcnQgY29uc3QgRURJVE9SX0hPU1RfSU5JVElBTF9GRVRDSCA9ICdFRElUT1JfSE9TVF9JTklUSUFMX0ZFVENIJztcblxuZXhwb3J0IGNvbnN0IEVESVRPUl9IT1NUU19VUkwgPSAnL2hvc3RzL3ByZXZpZXdfaG9zdF9jb2xsZWN0aW9uLmpzb24nO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9IT1NUX0FSUiA9ICdob3N0cyc7XG5leHBvcnQgY29uc3QgRURJVE9SX0hPU1RfRklMVEVSRURfQVJSID0gJ2ZpbHRlcmVkSG9zdHMnO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9LRVlCSU5ESU5HUyA9IFsnRGVmYXVsdCcsICdFbWFjcycsICdWaW0nXTtcbmV4cG9ydCBjb25zdCBFRElUT1JfVEhFTUVTID0gWydHaXRodWInLCAnTW9ub2thaSddO1xuZXhwb3J0IGNvbnN0IEVESVRPUl9NT0RFUyA9IFtcbiAgJ1RleHQnLFxuICAnSnNvbicsXG4gICdSdWJ5JyxcbiAgJ0h0bWxfcnVieScsXG4gICdTaCcsXG4gICdYbWwnLFxuICAnWWFtbCcsXG5dO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvckNvbnN0YW50cy5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUkVTRUxFQ1RfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFU0VMRUNUX19cIlxuLy8gbW9kdWxlIGlkID0gNTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCB7XG4gIEFERF9NT0RBTCxcbiAgU0VUX01PREFMX09QRU4sXG4gIFNFVF9NT0RBTF9DTE9TRUQsXG4gIFNFVF9NT0RBTF9TVEFSVF9TVUJNSVRUSU5HLFxuICBTRVRfTU9EQUxfU1RPUF9TVUJNSVRUSU5HLFxufSBmcm9tICcuL0ZvcmVtYW5Nb2RhbENvbnN0YW50cyc7XG5pbXBvcnQgeyBzZWxlY3RNb2RhbEV4aXN0cyB9IGZyb20gJy4vRm9yZW1hbk1vZGFsU2VsZWN0b3JzJztcblxuZXhwb3J0IGNvbnN0IGFkZE1vZGFsID0gKHsgaWQsIGlzT3BlbiA9IGZhbHNlLCBpc1N1Ym1pdHRpbmcgPSBmYWxzZSB9KSA9PiAoXG4gIGRpc3BhdGNoLFxuICBnZXRTdGF0ZVxuKSA9PlxuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogQUREX01PREFMLFxuICAgIHBheWxvYWQ6IHsgaWQsIGlzT3BlbiwgaXNTdWJtaXR0aW5nIH0sXG4gIH0pO1xuXG5jb25zdCBtb2RhbEFjdGlvbiA9IGFjdGlvblR5cGUgPT4gKHsgaWQgfSkgPT4gKGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICBpZiAoIXNlbGVjdE1vZGFsRXhpc3RzKGdldFN0YXRlKCksIGlkKSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS53YXJuKFxuICAgICAgYCR7YWN0aW9uVHlwZX0gYWN0aW9uIHJlY2VpdmVkLCBidXQgRm9yZW1hbk1vZGFsIHdpdGggaWQgJyR7aWR9JyBkb2VzIG5vdCBleGlzdC5gXG4gICAgKTtcbiAgfVxuICByZXR1cm4gZGlzcGF0Y2goe1xuICAgIHR5cGU6IGFjdGlvblR5cGUsXG4gICAgcGF5bG9hZDogeyBpZCB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRNb2RhbFN0YXJ0U3VibWl0dGluZyA9IG1vZGFsQWN0aW9uKFNFVF9NT0RBTF9TVEFSVF9TVUJNSVRUSU5HKTtcbmV4cG9ydCBjb25zdCBzZXRNb2RhbFN0b3BTdWJtaXR0aW5nID0gbW9kYWxBY3Rpb24oU0VUX01PREFMX1NUT1BfU1VCTUlUVElORyk7XG5leHBvcnQgY29uc3Qgc2V0TW9kYWxPcGVuID0gbW9kYWxBY3Rpb24oU0VUX01PREFMX09QRU4pO1xuZXhwb3J0IGNvbnN0IHNldE1vZGFsQ2xvc2VkID0gbW9kYWxBY3Rpb24oU0VUX01PREFMX0NMT1NFRCk7XG5cbi8vIFBhc3MgaW4gdGhlIEZvcmVtYW5Nb2RhbCBpZCBoZXJlIGFuZCBnZXQgYm91bmQgYWN0aW9uIGNyZWF0b3JzIHdpdGggdGhlIGlkIGFscmVhZHkgcGx1Z2dlZCBpbi5cbmV4cG9ydCBjb25zdCBiaW5kRm9yZW1hbk1vZGFsQWN0aW9uc1RvSWQgPSAoeyBpZCB9KSA9PiAoe1xuICBhZGRNb2RhbDogKCkgPT4gYWRkTW9kYWwoeyBpZCB9KSxcbiAgc2V0TW9kYWxPcGVuOiAoKSA9PiBzZXRNb2RhbE9wZW4oeyBpZCB9KSxcbiAgc2V0TW9kYWxDbG9zZWQ6ICgpID0+IHNldE1vZGFsQ2xvc2VkKHsgaWQgfSksXG4gIHNldE1vZGFsU3RhcnRTdWJtaXR0aW5nOiAoKSA9PiBzZXRNb2RhbFN0YXJ0U3VibWl0dGluZyh7IGlkIH0pLFxuICBzZXRNb2RhbFN0b3BTdWJtaXR0aW5nOiAoKSA9PiBzZXRNb2RhbFN0b3BTdWJtaXR0aW5nKHsgaWQgfSksXG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9Gb3JlbWFuTW9kYWxBY3Rpb25zLmpzIiwiZXhwb3J0IGNvbnN0IEJPT0tNQVJLUyA9ICdCT09LTUFSS1MnO1xuZXhwb3J0IGNvbnN0IEJPT0tNQVJLU19SRVFVRVNUID0gJ0JPT0tNQVJLU19SRVFVRVNUJztcbmV4cG9ydCBjb25zdCBCT09LTUFSS1NfU1VDQ0VTUyA9ICdCT09LTUFSS1NfU1VDQ0VTUyc7XG5leHBvcnQgY29uc3QgQk9PS01BUktTX0ZBSUxVUkUgPSAnQk9PS01BUktTX0ZBSUxVUkUnO1xuZXhwb3J0IGNvbnN0IEJPT0tNQVJLU19GT1JNX1NVQk1JVFRFRCA9ICdCT09LTUFSS1NfRk9STV9TVUJNSVRURUQnO1xuXG5leHBvcnQgY29uc3QgQk9PS01BUktTX01PREFMID0gJ2Jvb2ttYXJrc01vZGFsJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0Jvb2ttYXJrcy9Cb29rbWFya3NDb25zdGFudHMuanMiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX0ZPUk1JS19fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fRk9STUlLX19cIlxuLy8gbW9kdWxlIGlkID0gNTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwcyAqL1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEVtcHR5UGFnZSBmcm9tICcuLi9yb3V0ZXMvY29tbW9uL0VtcHR5UGFnZSc7XG5pbXBvcnQgTG9hZGluZ1BhZ2UgZnJvbSAnLi4vcm91dGVzL2NvbW1vbi9Mb2FkaW5nUGFnZSc7XG5cbi8qKlxuICogSE9DIHRoYXQgcnVucyBhIGZ1bmN0aW9uIG9uIHRoZSBpbml0aWFsIG1vdW50IG9mIHRoZSBjb21wb25lbnQgdXNpbmcgdXNlRWZmZWN0XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIHJ1blxuICovXG5leHBvcnQgY29uc3QgY2FsbE9uTW91bnQgPSBjYWxsYmFjayA9PiBXcmFwcGVkQ29tcG9uZW50ID0+IGNvbXBvbmVudFByb3BzID0+IHtcbiAgLy8gZmlyZXMgY2FsbGJhY2sgb25Nb3VudCwgW10gbWVhbnMgZG9uJ3QgbGlzdGVuIHRvIGFueSBwcm9wcyBjaGFuZ2VcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjYWxsYmFjayhjb21wb25lbnRQcm9wcyk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gPFdyYXBwZWRDb21wb25lbnQgey4uLmNvbXBvbmVudFByb3BzfSAvPjtcbn07XG5cbi8qKlxuICogSE9DIHRoYXQgcnVucyBhIGZ1bmN0aW9uIG9uUG9wU3RhdGUgaWYgc2VhcmNoIHF1ZXJ5IGhhcyBjaGFuZ2VkLFxuICogYXNzdW1pbmcgdGhlIGNvbXBvbmVudCBoYXMgd2l0aFJvdXRlclxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBmdW5jdGlvbiB0byBydW5cbiAqL1xuZXhwb3J0IGNvbnN0IGNhbGxPblBvcFN0YXRlID0gY2FsbGJhY2sgPT4gV3JhcHBlZENvbXBvbmVudCA9PiBjb21wb25lbnRQcm9wcyA9PiB7XG4gIGNvbnN0IGRpZE1vdW50ID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qge1xuICAgIGhpc3Rvcnk6IHsgYWN0aW9uIH0sXG4gICAgbG9jYXRpb246IHsgc2VhcmNoIH0sXG4gIH0gPSBjb21wb25lbnRQcm9wcztcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYWN0aW9uID09PSAnUE9QJyAmJiBkaWRNb3VudC5jdXJyZW50KSB7XG4gICAgICBjYWxsYmFjayhjb21wb25lbnRQcm9wcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpZE1vdW50LmN1cnJlbnQgPSB0cnVlO1xuICAgIH1cbiAgfSwgW3NlYXJjaCwgYWN0aW9uXSk7XG5cbiAgcmV0dXJuIDxXcmFwcGVkQ29tcG9uZW50IHsuLi5jb21wb25lbnRQcm9wc30gLz47XG59O1xuXG4vKipcbiAqIEhPQyBUaGF0IHJlbmRlcnMgYSBjb21wb25lbnQgYmFzZWQgb24gaXRzIHN0YXRlXG4gKlxuICogdGhlIGZvbGxvd2luZyByb290IENvbXBvbmVudCBwcm9wcyBhcmUgcmVxdWlyZWRcbiAqIHsgaXNMb2FkaW5nLCBoYXNEYXRhLCBoYXNFcnJvciB9XG4gKlxuICogSWYgdGhlIGRlZmF1bHQgRXJyb3IgYW5kIEVtcHR5IENvbXBvbmVudHMgYXJlIHVzZWRcbiAqIHRoZSBmb2xsb3dpbmcgcHJvcHMgYXJlIGFsc28gcmVxdWlyZWQ6XG4gKlxuICogeyBtZXNzYWdlOiB7IHR5cGUsIHRleHQgfX1cbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBDb21wb25lbnQgLSBDb21wb25lbnQgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gTG9hZGluZ0NvbXBvbmVudCAtIENvbXBvbmVudCB0byByZW5kZXIgaWYgTG9hZGluZ1xuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IEVycm9yQ29tcG9uZW50IC0gQ29tcG9uZW50IHRvIHJlbmRlciBpZiBFcnJvclxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IEVtcHR5Q29tcG9uZW50IC0gQ29tcG9uZW50IHRvIHJlbmRlciBpZiBubyBEYXRhIGV4aXN0c1xuICovXG5leHBvcnQgY29uc3Qgd2l0aFJlbmRlckhhbmRsZXIgPSAoe1xuICBDb21wb25lbnQsXG4gIExvYWRpbmdDb21wb25lbnQgPSBMb2FkaW5nUGFnZSxcbiAgRXJyb3JDb21wb25lbnQgPSBFbXB0eVBhZ2UsXG4gIEVtcHR5Q29tcG9uZW50ID0gRW1wdHlQYWdlLFxufSkgPT4gY29tcG9uZW50UHJvcHMgPT4ge1xuICBjb25zdCB7IGlzTG9hZGluZywgaGFzRGF0YSwgaGFzRXJyb3IgfSA9IGNvbXBvbmVudFByb3BzO1xuXG4gIGlmIChpc0xvYWRpbmcgJiYgIWhhc0RhdGEpIHJldHVybiA8TG9hZGluZ0NvbXBvbmVudCB7Li4uY29tcG9uZW50UHJvcHN9IC8+O1xuICBpZiAoaGFzRXJyb3IpIHJldHVybiA8RXJyb3JDb21wb25lbnQgey4uLmNvbXBvbmVudFByb3BzfSAvPjtcbiAgaWYgKGhhc0RhdGEpIHJldHVybiA8Q29tcG9uZW50IHsuLi5jb21wb25lbnRQcm9wc30gLz47XG4gIHJldHVybiA8RW1wdHlDb21wb25lbnQgey4uLmNvbXBvbmVudFByb3BzfSAvPjtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tbW9uL0hPQy5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfTE9BRElOR19TS0VMRVRPTl9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfTE9BRElOR19TS0VMRVRPTl9fXCJcbi8vIG1vZHVsZSBpZCA9IDYxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJleHBvcnQgKiBmcm9tICcuL2Zvcm1hdHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vc2NoZW1hSGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWR1Y2Vycyc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdG9ycy9zZWxlY3Rpb25TZWxlY3RvcnMnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL2luZGV4LmpzIiwiaW1wb3J0IFNsb3RzUmVnaXN0cnkgZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvU2xvdHNSZWdpc3RyeSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RDb21wb25lbnRCeVdlaWdodCA9IHNsb3RJZCA9PlxuICBTbG90c1JlZ2lzdHJ5LmdldFNsb3RDb21wb25lbnRzKHNsb3RJZClcbiAgICAuc29ydCgoYSwgYikgPT4gYi53ZWlnaHQgLSBhLndlaWdodClcbiAgICAubWFwKGMgPT4gYy5jb21wb25lbnQpIHx8IHt9O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0TWF4Q29tcG9uZW50ID0gc2xvdElkID0+IHNlbGVjdENvbXBvbmVudEJ5V2VpZ2h0KHNsb3RJZClbMF07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGaWxsc0Ftb3VudCA9IChzdGF0ZSwgaWQpID0+IHtcbiAgY29uc3QgcmVnaXN0ZXJkRmlsbHMgPSBzdGF0ZS5leHRlbmRhYmxlW2lkXTtcbiAgcmV0dXJuIHJlZ2lzdGVyZEZpbGxzID8gT2JqZWN0LmtleXMocmVnaXN0ZXJkRmlsbHMpLmxlbmd0aCA6IDA7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0RmlsbHNJRHMgPSAoc3RhdGUsIGlkKSA9PiB7XG4gIGNvbnN0IHJlZ2lzdGVyZEZpbGxzID0gc3RhdGUuZXh0ZW5kYWJsZVtpZF07XG4gIGlmIChyZWdpc3RlcmRGaWxscykge1xuICAgIGNvbnN0IGZpbGxJRHMgPSBPYmplY3Qua2V5cyhyZWdpc3RlcmRGaWxscyk7XG4gICAgcmV0dXJuIGZpbGxJRHMuc29ydChcbiAgICAgIChhLCBiKSA9PiByZWdpc3RlcmRGaWxsc1tiXS53ZWlnaHQgLSByZWdpc3RlcmRGaWxsc1thXS53ZWlnaHRcbiAgICApO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZpbGxzQ29tcG9uZW50cyA9IChzdGF0ZSwgcHJvcHMpID0+IHtcbiAgY29uc3QgeyBpZCwgbXVsdGlwbGUsIGZpbGxJRCB9ID0gcHJvcHM7XG5cbiAgaWYgKHNlbGVjdEZpbGxzQW1vdW50KHN0YXRlLCBpZCkpIHtcbiAgICBpZiAoZmlsbElEKSB7XG4gICAgICBjb25zdCBzbG90Q29tcG9uZW50ID0gU2xvdHNSZWdpc3RyeS5nZXRTbG90Q29tcG9uZW50cyhpZCk7XG4gICAgICBjb25zdCBnZXRGaWxsID0gc2xvdENvbXBvbmVudC5maWx0ZXIoYyA9PiBjLmlkID09PSBmaWxsSUQpO1xuXG4gICAgICByZXR1cm4gW2dldEZpbGxbMF0uY29tcG9uZW50XTtcbiAgICB9XG4gICAgaWYgKG11bHRpcGxlKSByZXR1cm4gc2VsZWN0Q29tcG9uZW50QnlXZWlnaHQoaWQpO1xuICAgIHJldHVybiBbc2VsZWN0TWF4Q29tcG9uZW50KGlkKV07XG4gIH1cbiAgcmV0dXJuIFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFNsb3RNZXRhZGF0YSA9IChzdGF0ZSwgaWQpID0+IHtcbiAgY29uc3QgcmVnaXN0ZXJkRmlsbHMgPSBzdGF0ZS5leHRlbmRhYmxlW2lkXSB8fCB7fTtcbiAgY29uc3Qgc2xvdE1ldGFkYXRhID0ge307XG4gIC8vIGVzbGludCBidWcgLSBodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludC9pc3N1ZXMvMTIxMTdcbiAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzICovXG4gIGZvciAoY29uc3QgZmlsbCBvZiBPYmplY3Qua2V5cyhyZWdpc3RlcmRGaWxscykpIHtcbiAgICBpZiAocmVnaXN0ZXJkRmlsbHNbZmlsbF0ubWV0YWRhdGEpXG4gICAgICBzbG90TWV0YWRhdGFbZmlsbF0gPSByZWdpc3RlcmRGaWxsc1tmaWxsXS5tZXRhZGF0YTtcbiAgfVxuXG4gIHJldHVybiBzbG90TWV0YWRhdGE7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1Nsb3QvU2xvdFNlbGVjdG9ycy5qcyIsImV4cG9ydCBjb25zdCBERUZBVUxUX1RBQiA9ICdPdmVydmlldyc7XG5leHBvcnQgY29uc3QgSE9TVF9ERVRBSUxTX0tFWSA9ICdIT1NUX0RFVEFJTFMnO1xuZXhwb3J0IGNvbnN0IEhPU1RfREVUQUlMU19BUElfT1BUSU9OUyA9IHsga2V5OiBIT1NUX0RFVEFJTFNfS0VZIH07XG5leHBvcnQgY29uc3QgVEFCU19TTE9UX0lEID0gJ2hvc3QtZGV0YWlscy1wYWdlLXRhYnMnXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvY29uc3RzLmpzIiwiaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNlbGVjdEZpbGxzQ29tcG9uZW50cyB9IGZyb20gJy4vU2xvdFNlbGVjdG9ycyc7XG5pbXBvcnQgU2xvdCBmcm9tICcuL1Nsb3QnO1xuXG4vLyBtYXAgc3RhdGUgdG8gcHJvcHNcbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IChzdGF0ZSwgb3duUHJvcHMpID0+ICh7XG4gIGZpbGxzOiBzZWxlY3RGaWxsc0NvbXBvbmVudHMoc3RhdGUsIHtcbiAgICBpZDogb3duUHJvcHMuaWQsXG4gICAgbXVsdGlwbGU6IG93blByb3BzLm11bHRpLFxuICAgIGZpbGxJRDogb3duUHJvcHMuZmlsbElELFxuICB9KSxcbn0pO1xuXG4vLyBleHBvcnQgY29ubmVjdGVkIGNvbXBvbmVudFxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKFNsb3QpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1Nsb3QvaW5kZXguanMiLCJpbXBvcnQgdXVpZFYxIGZyb20gJ3V1aWQvdjEnO1xuaW1wb3J0IEltbXV0YWJsZSBmcm9tICdzZWFtbGVzcy1pbW11dGFibGUnO1xuaW1wb3J0IHtcbiAgZG9udXRDaGFydENvbmZpZyxcbiAgZG9udXRMYXJnZUNoYXJ0Q29uZmlnLFxuICBkb251dE1lZGl1bUNoYXJ0Q29uZmlnLFxuICBiYXJDaGFydENvbmZpZyxcbiAgbWVkaXVtQmFyQ2hhcnRDb25maWcsXG4gIHNtYWxsQmFyQ2hhcnRDb25maWcsXG4gIGxpbmVDaGFydENvbmZpZyxcbiAgdGltZXNlcmllc0xpbmVDaGFydENvbmZpZyxcbiAgdGltZXNlcmllc0FyZWFDaGFydENvbmZpZyxcbn0gZnJvbSAnLi9DaGFydFNlcnZpY2UuY29uc3RzJztcblxuY29uc3QgY2hhcnRzU2l6ZUNvbmZpZyA9IHtcbiAgYXJlYToge1xuICAgIHRpbWVzZXJpZXM6IHRpbWVzZXJpZXNBcmVhQ2hhcnRDb25maWcsXG4gIH0sXG4gIGJhcjoge1xuICAgIHJlZ3VsYXI6IGJhckNoYXJ0Q29uZmlnLFxuICAgIHNtYWxsOiBzbWFsbEJhckNoYXJ0Q29uZmlnLFxuICAgIG1lZGl1bTogbWVkaXVtQmFyQ2hhcnRDb25maWcsXG4gIH0sXG4gIGRvbnV0OiB7XG4gICAgcmVndWxhcjogZG9udXRDaGFydENvbmZpZyxcbiAgICBtZWRpdW06IGRvbnV0TWVkaXVtQ2hhcnRDb25maWcsXG4gICAgbGFyZ2U6IGRvbnV0TGFyZ2VDaGFydENvbmZpZyxcbiAgfSxcbiAgbGluZToge1xuICAgIHJlZ3VsYXI6IGxpbmVDaGFydENvbmZpZyxcbiAgICB0aW1lc2VyaWVzOiB0aW1lc2VyaWVzTGluZUNoYXJ0Q29uZmlnLFxuICB9LFxufTtcblxuY29uc3QgZG9EYXRhRXhpc3QgPSBkYXRhID0+IHtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBkYXRhLnJlZHVjZSgoY3VyciwgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gbmV4dFsxXTtcblxuICAgIHJldHVybiB2YWx1ZSAhPT0gMCA/IHRydWUgOiBjdXJyO1xuICB9LCBmYWxzZSk7XG59O1xuXG5jb25zdCBnZXRDb2xvcnMgPSBkYXRhID0+XG4gIGRhdGEucmVkdWNlKChjdXJyLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qga2V5ID0gbmV4dFswXTtcbiAgICBjb25zdCBjb2xvciA9IG5leHRbMl07XG5cbiAgICByZXR1cm4gY29sb3IgPyB7IC4uLmN1cnIsIFtrZXldOiBjb2xvciB9IDogY3VycjtcbiAgfSwge30pO1xuXG5leHBvcnQgY29uc3QgZ2V0Q2hhcnRDb25maWcgPSAoe1xuICB0eXBlLFxuICBkYXRhLFxuICBjb25maWcsXG4gIG9uY2xpY2ssXG4gIGlkID0gdXVpZFYxKCksXG59KSA9PiB7XG4gIGNvbnN0IGNoYXJ0Q29uZmlnRm9yVHlwZSA9IGNoYXJ0c1NpemVDb25maWdbdHlwZV1bY29uZmlnXTtcbiAgY29uc3QgY29sb3JzID0gZ2V0Q29sb3JzKGRhdGEpO1xuICBjb25zdCBjb2xvcnNTaXplID0gT2JqZWN0LmtleXMoY29sb3JzKS5sZW5ndGg7XG4gIGNvbnN0IGRhdGFFeGlzdHMgPSBkb0RhdGFFeGlzdChkYXRhKTtcbiAgY29uc3QgbG9uZ05hbWVzID0ge307XG5cbiAgbGV0IGRhdGFXaXRoU2hvcnROYW1lcyA9IFtdO1xuXG4gIGlmIChkYXRhRXhpc3RzKSB7XG4gICAgZGF0YVdpdGhTaG9ydE5hbWVzID0gZGF0YS5tYXAodmFsID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBJbW11dGFibGUuYXNNdXRhYmxlKHZhbC5zbGljZSgpKTtcbiAgICAgIGNvbnN0IGxvbmdOYW1lID0gaXRlbVswXTtcbiAgICAgIGl0ZW1bMF0gPSBpdGVtWzBdLmxlbmd0aCA+IDMwID8gYCR7dmFsWzBdLnN1YnN0cmluZygwLCAxMCl9Li4uYCA6IGl0ZW1bMF07XG4gICAgICBsb25nTmFtZXNbaXRlbVswXV0gPSBsb25nTmFtZTtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5jaGFydENvbmZpZ0ZvclR5cGUsXG4gICAgaWQsXG4gICAgZGF0YToge1xuICAgICAgY29sdW1uczogZGF0YUV4aXN0cyA/IGRhdGFXaXRoU2hvcnROYW1lcyA6IFtdLFxuICAgICAgb25jbGljayxcbiAgICAgIC4uLihjb2xvcnNTaXplID4gMCA/IHsgY29sb3JzIH0gOiB7fSksXG4gICAgfSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2hhZG93XG4gICAgdG9vbHRpcDogeyBmb3JtYXQ6IHsgbmFtZTogKG5hbWUsIHJhdGlvLCBpZCwgaWR4KSA9PiBsb25nTmFtZXNbaWRdIH0gfSxcblxuICAgIG9ucmVuZGVyZWQ6ICgpID0+IHtcbiAgICAgIGRhdGFXaXRoU2hvcnROYW1lcy5mb3JFYWNoKGNvbERhdGEgPT4ge1xuICAgICAgICBjb25zdCBuYW1lT2ZDbGFzcyA9IGNvbERhdGFbMF0ucmVwbGFjZSgvXFxXL2csICctJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gYC5jMy1sZWdlbmQtaXRlbS0ke25hbWVPZkNsYXNzfSA+IHRpdGxlYDtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgICAgIGNvbnN0IGhhc1Rvb2x0aXAgPSBkMy5zZWxlY3Qoc2VsZWN0b3IpWzBdWzBdO1xuXG4gICAgICAgIGlmICghaGFzVG9vbHRpcCkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgICAgICAgIGQzLnNlbGVjdChgLmMzLWxlZ2VuZC1pdGVtLSR7bmFtZU9mQ2xhc3N9YClcbiAgICAgICAgICAgIC5hcHBlbmQoJ3N2Zzp0aXRsZScpXG4gICAgICAgICAgICAudGV4dChsb25nTmFtZXNbY29sRGF0YVswXV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG5hdmlnYXRlVG9TZWFyY2ggPSAodXJsLCBzZWFyY2hGaWx0ZXJzLCBkYXRhKSA9PiB7XG4gIGxldCB2YWwgPSBzZWFyY2hGaWx0ZXJzW2RhdGEuaWRdIHx8IGRhdGEuaWQ7XG4gIGxldCBzZXRVcmw7XG5cbiAgd2luZG93LnRmbS50b29scy5zaG93U3Bpbm5lcigpO1xuXG4gIGlmICh1cmwuaW5jbHVkZXMoJ35WQUwxficpIHx8IHVybC5pbmNsdWRlcygnflZBTDJ+JykpIHtcbiAgICBjb25zdCB2YWxzID0gdmFsLnNwbGl0KCcgJyk7XG5cbiAgICBjb25zdCB2YWwxID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHNbMF0pO1xuICAgIGNvbnN0IHZhbDIgPSBlbmNvZGVVUklDb21wb25lbnQodmFsc1sxXSk7XG5cbiAgICBzZXRVcmwgPSB1cmwucmVwbGFjZSgnflZBTDF+JywgdmFsMSkucmVwbGFjZSgnflZBTDJ+JywgdmFsMik7XG4gIH0gZWxzZSB7XG4gICAgaWYgKHZhbC5pbmNsdWRlcygnICcpKSB7XG4gICAgICB2YWwgPSBlbmNvZGVVUklDb21wb25lbnQodmFsKTtcbiAgICB9XG4gICAgc2V0VXJsID0gdXJsLnJlcGxhY2UoJ35WQUx+JywgdmFsKTtcbiAgfVxuICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHNldFVybDtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvQ2hhcnRTZXJ2aWNlLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgVG9vbHRpcCwgT3ZlcmxheVRyaWdnZXIgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcblxuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5pbXBvcnQgeyBkZWVwUHJvcHNUb0NhbWVsQ2FzZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IHdpdGhUb29sdGlwID0gQ29tcG9uZW50ID0+IGNvbXBvbmVudFByb3BzID0+IHtcbiAgY29uc3QgeyB0b29sdGlwSWQsIHRvb2x0aXBUZXh0LCAuLi5yZXN0IH0gPSBjb21wb25lbnRQcm9wcztcblxuICByZXR1cm4gKFxuICAgIDxPdmVybGF5VHJpZ2dlclxuICAgICAgb3ZlcmxheT17PFRvb2x0aXAgaWQ9e3Rvb2x0aXBJZH0+e3Rvb2x0aXBUZXh0fTwvVG9vbHRpcD59XG4gICAgICB0cmlnZ2VyPXtbJ2hvdmVyJywgJ2ZvY3VzJ119XG4gICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgcm9vdENsb3NlPXtmYWxzZX1cbiAgICA+XG4gICAgICB7LyogVGhlIHNwYW4gaXMgbmVlZGVkIGJlY2F1c2UgT3ZlcmxheVRyaWdnZXIgb3ZlcnJpZGVzIGNoaWxkIGV2ZW50cyAqL31cbiAgICAgIDxzcGFuPlxuICAgICAgICA8Q29tcG9uZW50IHsuLi5yZXN0fSAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvT3ZlcmxheVRyaWdnZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgYXJyYXlTZWxlY3Rpb24gPSBzZXR0aW5nID0+IHtcbiAgY29uc3QgeyBzZWxlY3RWYWx1ZXMgfSA9IHNldHRpbmc7XG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KHNlbGVjdFZhbHVlcykpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gZGVlcFByb3BzVG9DYW1lbENhc2Uoc2VsZWN0VmFsdWVzKTtcbn07XG5cbmNvbnN0IGZvcm1hdEVuY3J5cHRlZERlZmF1bHQgPSBzZXR0aW5nID0+IHtcbiAgaWYgKHNldHRpbmcuZW5jcnlwdGVkICYmIHNldHRpbmcuZGVmYXVsdCkge1xuICAgIHJldHVybiBzZXR0aW5nLmRlZmF1bHRcbiAgICAgIC5zcGxpdCgnJylcbiAgICAgIC5tYXAoaXRlbSA9PiAnXFx1MjIxOScpXG4gICAgICAuam9pbignJyk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmNvbnN0IGZvcm1hdEhhc2hTZWxlY3Rpb25EZWZhdWx0ID0gc2V0dGluZyA9PlxuICBmb3JtYXRIYXNoU2VsZWN0aW9uKCdkZWZhdWx0Jywgc2V0dGluZyk7XG5jb25zdCBmb3JtYXRIYXNoU2VsZWN0aW9uVmFsdWUgPSBzZXR0aW5nID0+XG4gIGZvcm1hdEhhc2hTZWxlY3Rpb24oJ3ZhbHVlJywgc2V0dGluZyk7XG5cbmNvbnN0IGZvcm1hdEhhc2hTZWxlY3Rpb24gPSAoYXR0ciwgc2V0dGluZykgPT4ge1xuICBjb25zdCB7IHNlbGVjdFZhbHVlcyB9ID0gc2V0dGluZztcblxuICBjb25zdCB2YWwgPSBzZXR0aW5nW2F0dHJdO1xuXG4gIGlmICghc2VsZWN0VmFsdWVzIHx8ICFzZWxlY3RWYWx1ZXNbdmFsXSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHNlbGVjdFZhbHVlc1t2YWxdO1xufTtcblxuY29uc3QgZm9ybWF0Qm9vbGVhbkRlZmF1bHQgPSBzZXR0aW5nID0+IGZvcm1hdEJvb2xlYW4oJ2RlZmF1bHQnLCBzZXR0aW5nKTtcbmNvbnN0IGZvcm1hdEJvb2xlYW5WYWx1ZSA9IHNldHRpbmcgPT4gZm9ybWF0Qm9vbGVhbigndmFsdWUnLCBzZXR0aW5nKTtcblxuY29uc3QgZm9ybWF0Qm9vbGVhbiA9IChhdHRyLCBzZXR0aW5nKSA9PiB7XG4gIGlmIChzZXR0aW5nLnNldHRpbmdzVHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgaWYgKHNldHRpbmdbYXR0cl0pIHtcbiAgICAgIHJldHVybiBfXygnWWVzJyk7XG4gICAgfVxuICAgIHJldHVybiBfXygnTm8nKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmNvbnN0IGZvcm1hdEFycmF5VmFsdWUgPSBzZXR0aW5nID0+IGZvcm1hdEFycmF5KCd2YWx1ZScsIHNldHRpbmcpO1xuY29uc3QgZm9ybWF0QXJyYXlEZWZhdWx0ID0gc2V0dGluZyA9PiBmb3JtYXRBcnJheSgnZGVmYXVsdCcsIHNldHRpbmcpO1xuXG5jb25zdCBmb3JtYXRBcnJheSA9IChhdHRyLCBzZXR0aW5nKSA9PiB7XG4gIGlmIChzZXR0aW5nLnNldHRpbmdzVHlwZSA9PT0gJ2FycmF5Jykge1xuICAgIHJldHVybiBgWyR7XG4gICAgICBzZXR0aW5nW2F0dHJdICYmIHNldHRpbmdbYXR0cl0ubGVuZ3RoID4gMCA/IHNldHRpbmcudmFsdWUuam9pbignLCAnKSA6ICcnXG4gICAgfV1gO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgZm9ybWF0VGV4dFZhbHVlID0gc2V0dGluZyA9PiBzZXR0aW5nLnZhbHVlO1xuY29uc3QgZm9ybWF0VGV4dERlZmF1bHQgPSBzZXR0aW5nID0+IHNldHRpbmcuZGVmYXVsdDtcblxuY29uc3QgZm9ybWF0RW1wdHkgPSAoYXR0ciwgZW1wdHlWYWx1ZSwgc2V0dGluZykgPT4ge1xuICBpZiAoIXNldHRpbmdbYXR0cl0pIHtcbiAgICByZXR1cm4gZW1wdHlWYWx1ZTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmNvbnN0IGZvcm1hdEVtcHR5RGVmYXVsdCA9IHNldHRpbmcgPT5cbiAgZm9ybWF0RW1wdHkoJ2RlZmF1bHQnLCBfXygnTm90IHNldCcpLCBzZXR0aW5nKTtcbmNvbnN0IGZvcm1hdEVtcHR5VmFsdWUgPSBzZXR0aW5nID0+IGZvcm1hdEVtcHR5KCd2YWx1ZScsIF9fKCdFbXB0eScpLCBzZXR0aW5nKTtcblxuY29uc3QgZm9ybWF0QXJyYXlTZWxlY3Rpb25EZWZhdWx0ID0gc2V0dGluZyA9PlxuICBmb3JtYXRBcnJheVNlbGVjdGlvbignZGVmYXVsdCcsIHNldHRpbmcpO1xuY29uc3QgZm9ybWF0QXJyYXlTZWxlY3Rpb25WYWx1ZSA9IHNldHRpbmcgPT5cbiAgZm9ybWF0QXJyYXlTZWxlY3Rpb24oJ3ZhbHVlJywgc2V0dGluZyk7XG5cbmNvbnN0IGZvcm1hdEFycmF5U2VsZWN0aW9uID0gKGF0dHIsIHNldHRpbmcpID0+IHtcbiAgY29uc3Qgc2VsZWN0VmFsdWVzID0gYXJyYXlTZWxlY3Rpb24oc2V0dGluZyk7XG5cbiAgaWYgKCFzZXR0aW5nW2F0dHJdIHx8ICFzZWxlY3RWYWx1ZXMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9lc2xpbnQvZXNsaW50L2lzc3Vlcy8xMjExN1xuICBsZXQgZ3JvdXA7XG4gIGZvciAoZ3JvdXAgb2Ygc2VsZWN0VmFsdWVzKSB7XG4gICAgaWYgKGdyb3VwLnZhbHVlID09PSBzZXR0aW5nW2F0dHJdKSB7XG4gICAgICByZXR1cm4gZ3JvdXAubGFiZWw7XG4gICAgfVxuXG4gICAgaWYgKGdyb3VwLmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBjaGlsZCA9IGdyb3VwLmNoaWxkcmVuLmZpbmQoaXRlbSA9PiBpdGVtLnZhbHVlID09PSBzZXR0aW5nW2F0dHJdKTtcbiAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICByZXR1cm4gY2hpbGQubGFiZWw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgcmVkdWNlRm9ybWF0cyA9IGZvcm1hdHRlcnMgPT4gc2V0dGluZyA9PlxuICBmb3JtYXR0ZXJzLnJlZHVjZSgobWVtbywgZm9ybWF0dGVyKSA9PiB7XG4gICAgaWYgKG1lbW8pIHtcbiAgICAgIHJldHVybiBtZW1vO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0dGVyLmNhbGwodGhpcywgc2V0dGluZyk7XG4gIH0sIG51bGwpO1xuXG5leHBvcnQgY29uc3QgdmFsdWVUb1N0cmluZyA9IHJlZHVjZUZvcm1hdHMoW1xuICBmb3JtYXRCb29sZWFuVmFsdWUsXG4gIGZvcm1hdEFycmF5VmFsdWUsXG4gIGZvcm1hdEFycmF5U2VsZWN0aW9uVmFsdWUsXG4gIGZvcm1hdEhhc2hTZWxlY3Rpb25WYWx1ZSxcbiAgZm9ybWF0RW1wdHlWYWx1ZSxcbiAgZm9ybWF0VGV4dFZhbHVlLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0VG9TdHJpbmcgPSByZWR1Y2VGb3JtYXRzKFtcbiAgZm9ybWF0RW5jcnlwdGVkRGVmYXVsdCxcbiAgZm9ybWF0Qm9vbGVhbkRlZmF1bHQsXG4gIGZvcm1hdEFycmF5RGVmYXVsdCxcbiAgZm9ybWF0QXJyYXlTZWxlY3Rpb25EZWZhdWx0LFxuICBmb3JtYXRIYXNoU2VsZWN0aW9uRGVmYXVsdCxcbiAgZm9ybWF0RW1wdHlEZWZhdWx0LFxuICBmb3JtYXRUZXh0RGVmYXVsdCxcbl0pO1xuXG5leHBvcnQgY29uc3QgaGFzRGVmYXVsdCA9IHNldHRpbmcgPT4ge1xuICBzd2l0Y2ggKHNldHRpbmcuc2V0dGluZ3NUeXBlKSB7XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgY2FzZSAnaW50ZWdlcic6IHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjYXNlICdhcnJheSc6XG4gICAgY2FzZSAnaGFzaCc6XG4gICAgY2FzZSAnc3RyaW5nJzoge1xuICAgICAgcmV0dXJuICEhc2V0dGluZy5kZWZhdWx0ICYmIHNldHRpbmcuZGVmYXVsdC5sZW5ndGggIT09IDA7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiAhIXNldHRpbmcuZGVmYXVsdDtcbiAgICB9XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nc1RhYmxlL1NldHRpbmdzVGFibGVIZWxwZXJzLmpzIiwiaW1wb3J0IHsgcmVnaXN0ZXJGaWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vRmlsbC9GaWxsQWN0aW9ucyc7XG5pbXBvcnQgc3RvcmUgZnJvbSAnLi4vLi4vLi4vcmVkdXgnO1xuXG5leHBvcnQgY29uc3QgYWRkR2xvYmFsRmlsbCA9IChzbG90SWQsIGZpbGxJZCwgY29tcG9uZW50LCB3ZWlnaHQsIG1ldGFkYXRhKSA9PiB7XG4gIHN0b3JlLmRpc3BhdGNoKFxuICAgIHJlZ2lzdGVyRmlsbENvbXBvbmVudChcbiAgICAgIHNsb3RJZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGZpbGxJZCxcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIHdlaWdodCxcbiAgICAgIG1ldGFkYXRhXG4gICAgKVxuICApO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9GaWxsL0dsb2JhbEZpbGwuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IERvbnV0Q2hhcnQgYXMgUGZEb251dENoYXJ0IH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyBnZXREb251dENoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvY2hhcnRzL0RvbnV0Q2hhcnRTZXJ2aWNlJztcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gJy4uLy4uL01lc3NhZ2VCb3gnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcmVhY3RfYXBwL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5cbmNvbnN0IERvbnV0Q2hhcnQgPSAoe1xuICBkYXRhLFxuICBvbmNsaWNrLFxuICBjb25maWcsXG4gIG5vRGF0YU1zZyxcbiAgdGl0bGUsXG4gIHVubG9hZERhdGEsXG4gIHNlYXJjaFVybCxcbiAgc2VhcmNoRmlsdGVycyxcbn0pID0+IHtcbiAgY29uc3QgY2hhcnRDb25maWcgPSBnZXREb251dENoYXJ0Q29uZmlnKHtcbiAgICBkYXRhLFxuICAgIGNvbmZpZyxcbiAgICBvbmNsaWNrLFxuICAgIHNlYXJjaFVybCxcbiAgICBzZWFyY2hGaWx0ZXJzLFxuICB9KTtcblxuICBpZiAoY2hhcnRDb25maWcuZGF0YS5jb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFBmRG9udXRDaGFydFxuICAgICAgICB7Li4uY2hhcnRDb25maWd9XG4gICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgdW5sb2FkQmVmb3JlTG9hZD17dW5sb2FkRGF0YX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPE1lc3NhZ2VCb3ggbXNnPXtub0RhdGFNc2d9IGljb250eXBlPVwiaW5mb1wiIC8+O1xufTtcblxuRG9udXRDaGFydC5wcm9wVHlwZXMgPSB7XG4gIGRhdGE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5vYmplY3QsIFByb3BUeXBlcy5hcnJheV0pLFxuICBjb25maWc6IFByb3BUeXBlcy5vbmVPZihbJ3JlZ3VsYXInLCAnbWVkaXVtJywgJ2xhcmdlJ10pLFxuICBub0RhdGFNc2c6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRpdGxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICB1bmxvYWREYXRhOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25jbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIHNlYXJjaFVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2VhcmNoRmlsdGVyczogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cbkRvbnV0Q2hhcnQuZGVmYXVsdFByb3BzID0ge1xuICBkYXRhOiB1bmRlZmluZWQsXG4gIGNvbmZpZzogJ3JlZ3VsYXInLFxuICBub0RhdGFNc2c6IF9fKCdObyBkYXRhIGF2YWlsYWJsZScpLFxuICB0aXRsZTogeyB0eXBlOiAncGVyY2VudCcsIHByZWNpc2lvbjogMSB9LFxuICB1bmxvYWREYXRhOiBmYWxzZSxcbiAgb25jbGljazogbm9vcCxcbiAgc2VhcmNoVXJsOiB1bmRlZmluZWQsXG4gIHNlYXJjaEZpbHRlcnM6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERvbnV0Q2hhcnQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vY2hhcnRzL0RvbnV0Q2hhcnQvaW5kZXguanMiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX0RORF9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfRE5EX19cIlxuLy8gbW9kdWxlIGlkID0gNzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImNvbnN0IGFjdGlvbnMgPSBbJ1JFUVVFU1QnLCAnU1VDQ0VTUycsICdGQUlMVVJFJywgJ1VQREFURSddO1xuXG4vKipcbiAqIEF1dG8gZ2VuZXJhdGVzIGFwaSBjb25zdHMgZm9yIHJlZHV4IGZvciBnaXZlbiBrZXlcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgLSB0aGUgdW5pcXVlIG5hbWUgb2YgdGhlIGNvbXBvbmVudFxuICogQHBhcmFtIHtPYmplY3R9IGFjdGlvblR5cGVzIC0gY3VzdG9tIHR5cGVzIHRvIHVzZSBpbnN0ZWFkIG9mIHRoZSBhdXRvIGdlbmVyYXRlZCBvbmVzXG4gKi9cbmV4cG9ydCBjb25zdCBhY3Rpb25UeXBlR2VuZXJhdG9yID0gKGtleSwgYWN0aW9uVHlwZXMgPSB7fSkgPT4ge1xuICBhY3Rpb25zLmZvckVhY2godHlwZSA9PiB7XG4gICAgYWN0aW9uVHlwZXNbdHlwZV0gPSBhY3Rpb25UeXBlc1t0eXBlXSB8fCBgJHtrZXl9XyR7dHlwZX1gO1xuICB9KTtcbiAgcmV0dXJuIGFjdGlvblR5cGVzO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvQVBJQWN0aW9uVHlwZUdlbmVyYXRvci5qcyIsImV4cG9ydCBjb25zdCBBUElfT1BFUkFUSU9OUyA9IHtcbiAgR0VUOiAnQVBJX0dFVCcsXG4gIFBPU1Q6ICdBUElfUE9TVCcsXG4gIFBVVDogJ0FQSV9QVVQnLFxuICBERUxFVEU6ICdBUElfREVMRVRFJyxcbiAgUEFUQ0g6ICdBUElfUEFUQ0gnLFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvQVBJQ29uc3RhbnRzLmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19SRURVWEpTX1RPT0xLSVRfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFRFVYSlNfVE9PTEtJVF9fXCJcbi8vIG1vZHVsZSBpZCA9IDczXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgeyBiaW5kQWN0aW9uQ3JlYXRvcnMgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgKiBhcyBhY3Rpb25zIGZyb20gJy4vQnJlYWRjcnVtYkJhckFjdGlvbnMnO1xuaW1wb3J0IHJlZHVjZXIgZnJvbSAnLi9CcmVhZGNydW1iQmFyUmVkdWNlcic7XG5cbmltcG9ydCB7XG4gIHNlbGVjdFJlc291cmNlU3dpdGNoZXJJdGVtcyxcbiAgc2VsZWN0SXNTd2l0Y2hlck9wZW4sXG4gIHNlbGVjdFJlc291cmNlVXJsLFxuICBzZWxlY3RJc0xvYWRpbmdSZXNvdXJjZXMsXG4gIHNlbGVjdEhhc0Vycm9yLFxuICBzZWxlY3RDdXJyZW50UGFnZSxcbiAgc2VsZWN0VG90YWxQYWdlcyxcbiAgc2VsZWN0U2VhcmNoUXVlcnksXG4gIHNlbGVjdFJlbW92ZVNlYXJjaFF1ZXJ5LFxuICBzZWxlY3RUaXRsZVJlcGxhY2VtZW50LFxufSBmcm9tICcuL0JyZWFkY3J1bWJCYXJTZWxlY3Rvcic7XG5cbmltcG9ydCBCcmVhZGNydW1iQmFyIGZyb20gJy4vQnJlYWRjcnVtYkJhcic7XG5cbi8vIG1hcCBzdGF0ZSB0byBwcm9wc1xuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gc3RhdGUgPT4gKHtcbiAgcmVzb3VyY2VTd2l0Y2hlckl0ZW1zOiBzZWxlY3RSZXNvdXJjZVN3aXRjaGVySXRlbXMoc3RhdGUpLFxuICBpc1N3aXRjaGVyT3Blbjogc2VsZWN0SXNTd2l0Y2hlck9wZW4oc3RhdGUpLFxuICByZXNvdXJjZVVybDogc2VsZWN0UmVzb3VyY2VVcmwoc3RhdGUpLFxuICBpc0xvYWRpbmdSZXNvdXJjZXM6IHNlbGVjdElzTG9hZGluZ1Jlc291cmNlcyhzdGF0ZSksXG4gIGhhc0Vycm9yOiBzZWxlY3RIYXNFcnJvcihzdGF0ZSksXG4gIGN1cnJlbnRQYWdlOiBzZWxlY3RDdXJyZW50UGFnZShzdGF0ZSksXG4gIHRvdGFsUGFnZXM6IHNlbGVjdFRvdGFsUGFnZXMoc3RhdGUpLFxuICBzZWFyY2hRdWVyeTogc2VsZWN0U2VhcmNoUXVlcnkoc3RhdGUpLFxuICByZW1vdmVTZWFyY2hRdWVyeTogc2VsZWN0UmVtb3ZlU2VhcmNoUXVlcnkoc3RhdGUpLFxuICB0aXRsZVJlcGxhY2VtZW50OiBzZWxlY3RUaXRsZVJlcGxhY2VtZW50KHN0YXRlKSxcbn0pO1xuXG4vLyBtYXAgYWN0aW9uIGRpc3BhdGNoZXJzIHRvIHByb3BzXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSBkaXNwYXRjaCA9PiBiaW5kQWN0aW9uQ3JlYXRvcnMoYWN0aW9ucywgZGlzcGF0Y2gpO1xuXG4vLyBleHBvcnQgcmVkdWNlcnNcbmV4cG9ydCBjb25zdCByZWR1Y2VycyA9IHsgYnJlYWRjcnVtYkJhcjogcmVkdWNlciB9O1xuXG4vLyBleHBvcnQgY29ubmVjdGVkIGNvbXBvbmVudFxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMsIG1hcERpc3BhdGNoVG9Qcm9wcykoQnJlYWRjcnVtYkJhcik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9CcmVhZGNydW1iQmFyL2luZGV4LmpzIiwiaW1wb3J0IHsgVFJJR0dFUlMgfSBmcm9tICcuL0F1dG9Db21wbGV0ZUNvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBdXRvY29tcGxldGUgPSAoeyBhdXRvY29tcGxldGUgfSwgaWQpID0+IGF1dG9jb21wbGV0ZVtpZF07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBdXRvY29tcGxldGVQcm9wID0gKHN0YXRlLCBpZCwgcHJvcCwgb3duUHJvcHMpID0+IHtcbiAgY29uc3Qgc2VsZWN0ZWRBdXRvY29tcGxldGUgPSBzZWxlY3RBdXRvY29tcGxldGUoc3RhdGUsIGlkKTtcbiAgY29uc3QgaXNBdXRvY29tcGxldGVJbml0aWF0ZWQgPSBzZWxlY3RlZEF1dG9jb21wbGV0ZSAhPT0gdW5kZWZpbmVkO1xuICBjb25zdCB7IHRyaWdnZXIgfSA9IHNlbGVjdGVkQXV0b2NvbXBsZXRlIHx8IHt9O1xuICBjb25zdCBkaWRDb21wb25lbnRSZXNldCA9IHByb3AgIT09ICd0cmlnZ2VyJyAmJiB0cmlnZ2VyID09PSBUUklHR0VSUy5SRVNFVDtcbiAgY29uc3QgcHJvcEZyb21Pd25Qcm9wcyA9IG93blByb3BzICYmIG93blByb3BzW3Byb3BdO1xuXG4gIGlmIChpc0F1dG9jb21wbGV0ZUluaXRpYXRlZCkge1xuICAgIGlmIChkaWRDb21wb25lbnRSZXNldCkge1xuICAgICAgcmV0dXJuIHByb3BGcm9tT3duUHJvcHM7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZEF1dG9jb21wbGV0ZVtwcm9wXTtcbiAgfVxuICByZXR1cm4gcHJvcEZyb21Pd25Qcm9wcztcbn07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBdXRvY29tcGxldGVFcnJvciA9IChzdGF0ZSwgaWQsIG93blByb3BzKSA9PiB7XG4gIGNvbnN0IGlzRXJyb3JWaXNpYmxlID0gc2VsZWN0QXV0b2NvbXBsZXRlSXNFcnJvclZpc2libGUoc3RhdGUsIGlkLCBvd25Qcm9wcyk7XG4gIGlmICghaXNFcnJvclZpc2libGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gc2VsZWN0QXV0b2NvbXBsZXRlUHJvcChzdGF0ZSwgaWQsICdlcnJvcicsIG93blByb3BzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBdXRvY29tcGxldGVJc0Vycm9yVmlzaWJsZSA9IChzdGF0ZSwgaWQsIG93blByb3BzKSA9PlxuICBzZWxlY3RBdXRvY29tcGxldGVQcm9wKHN0YXRlLCBpZCwgJ2lzRXJyb3JWaXNpYmxlJywgb3duUHJvcHMpO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0QXV0b2NvbXBsZXRlUmVzdWx0cyA9IChzdGF0ZSwgaWQsIG93blByb3BzKSA9PlxuICBzZWxlY3RBdXRvY29tcGxldGVQcm9wKHN0YXRlLCBpZCwgJ3Jlc3VsdHMnLCBvd25Qcm9wcyk7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBdXRvY29tcGxldGVTZWFyY2hRdWVyeSA9IChzdGF0ZSwgaWQsIG93blByb3BzKSA9PlxuICBzZWxlY3RBdXRvY29tcGxldGVQcm9wKHN0YXRlLCBpZCwgJ3NlYXJjaFF1ZXJ5Jywgb3duUHJvcHMpO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0QXV0b2NvbXBsZXRlU3RhdHVzID0gKHN0YXRlLCBpZCwgb3duUHJvcHMpID0+XG4gIHNlbGVjdEF1dG9jb21wbGV0ZVByb3Aoc3RhdGUsIGlkLCAnc3RhdHVzJywgb3duUHJvcHMpO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0QXV0b2NvbXBsZXRlQ29udHJvbGxlciA9IChzdGF0ZSwgaWQsIG93blByb3BzKSA9PlxuICBzZWxlY3RBdXRvY29tcGxldGVQcm9wKHN0YXRlLCBpZCwgJ2NvbnRyb2xsZXInLCBvd25Qcm9wcyk7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBdXRvY29tcGxldGVUcmlnZ2VyID0gKHN0YXRlLCBpZCwgb3duUHJvcHMpID0+XG4gIHNlbGVjdEF1dG9jb21wbGV0ZVByb3Aoc3RhdGUsIGlkLCAndHJpZ2dlcicsIG93blByb3BzKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEF1dG9jb21wbGV0ZVVybCA9IChzdGF0ZSwgaWQsIG93blByb3BzKSA9PlxuICBzZWxlY3RBdXRvY29tcGxldGVQcm9wKHN0YXRlLCBpZCwgJ3VybCcsIG93blByb3BzKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEF1dG9jb21wbGV0ZUlzRGlzYWJsZWQgPSAoc3RhdGUsIGlkLCBvd25Qcm9wcykgPT5cbiAgc2VsZWN0QXV0b2NvbXBsZXRlUHJvcChzdGF0ZSwgaWQsICdkaXNhYmxlZCcsIG93blByb3BzKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGVTZWxlY3RvcnMuanMiLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuXG5pbXBvcnQge1xuICBpbml0aWFsaXplTGF5b3V0LFxuICBjaGFuZ2VBY3RpdmVNZW51LFxuICBjb2xsYXBzZUxheW91dE1lbnVzLFxuICBleHBhbmRMYXlvdXRNZW51cyxcbn0gZnJvbSAnLi9MYXlvdXRBY3Rpb25zJztcbmltcG9ydCByZWR1Y2VyIGZyb20gJy4vTGF5b3V0UmVkdWNlcic7XG5pbXBvcnQge1xuICBwYXR0ZXJuZmx5TWVudUl0ZW1zU2VsZWN0b3IsXG4gIHNlbGVjdEFjdGl2ZU1lbnUsXG4gIHNlbGVjdElzTG9hZGluZyxcbiAgc2VsZWN0SXNDb2xsYXBzZWQsXG59IGZyb20gJy4vTGF5b3V0U2VsZWN0b3JzJztcbmltcG9ydCB7IGNvbWJpbmVNZW51SXRlbXMsIGdldEFjdGl2ZU1lbnVJdGVtIH0gZnJvbSAnLi9MYXlvdXRIZWxwZXInO1xuaW1wb3J0IHsgZ2V0SXNOYXZiYXJDb2xsYXBzZWQgfSBmcm9tICcuL0xheW91dFNlc3Npb25TdG9yYWdlJztcbmltcG9ydCB7XG4gIHVzZUZvcmVtYW5Pcmdhbml6YXRpb24sXG4gIHVzZUZvcmVtYW5Mb2NhdGlvbixcbn0gZnJvbSAnLi4vLi4vUm9vdC9Db250ZXh0L0ZvcmVtYW5Db250ZXh0JztcblxuaW1wb3J0IExheW91dCBmcm9tICcuL0xheW91dCc7XG5cbmNvbnN0IENvbm5lY3RlZExheW91dCA9ICh7IGNoaWxkcmVuLCBkYXRhIH0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IGN1cnJlbnRMb2NhdGlvbiA9IHVzZUZvcmVtYW5Mb2NhdGlvbigpPy50aXRsZTtcbiAgY29uc3QgY3VycmVudE9yZ2FuaXphdGlvbiA9IHVzZUZvcmVtYW5Pcmdhbml6YXRpb24oKT8udGl0bGU7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goXG4gICAgICBpbml0aWFsaXplTGF5b3V0KHtcbiAgICAgICAgaXRlbXM6IGNvbWJpbmVNZW51SXRlbXMoZGF0YSksXG4gICAgICAgIGFjdGl2ZU1lbnU6IGdldEFjdGl2ZU1lbnVJdGVtKGRhdGEubWVudSkudGl0bGUsXG4gICAgICAgIGlzQ29sbGFwc2VkOiBnZXRJc05hdmJhckNvbGxhcHNlZCgpLFxuICAgICAgICBvcmdhbml6YXRpb246IGRhdGEub3Jncy5jdXJyZW50X29yZyxcbiAgICAgICAgbG9jYXRpb246IGRhdGEubG9jYXRpb25zLmN1cnJlbnRfbG9jYXRpb24sXG4gICAgICB9KVxuICAgICk7XG4gIH0sIFtkYXRhLCBkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IHsgcHVzaDogbmF2aWdhdGUgfSA9IHVzZUhpc3RvcnkoKTtcbiAgY29uc3QgaXRlbXMgPSB1c2VTZWxlY3RvcihzdGF0ZSA9PlxuICAgIHBhdHRlcm5mbHlNZW51SXRlbXNTZWxlY3RvcihzdGF0ZSwgY3VycmVudExvY2F0aW9uLCBjdXJyZW50T3JnYW5pemF0aW9uKVxuICApO1xuICBjb25zdCBpc0xvYWRpbmcgPSB1c2VTZWxlY3RvcihzdGF0ZSA9PiBzZWxlY3RJc0xvYWRpbmcoc3RhdGUpKTtcbiAgY29uc3QgaXNDb2xsYXBzZWQgPSB1c2VTZWxlY3RvcihzdGF0ZSA9PiBzZWxlY3RJc0NvbGxhcHNlZChzdGF0ZSkpO1xuICBjb25zdCBhY3RpdmVNZW51ID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0QWN0aXZlTWVudShzdGF0ZSkpO1xuXG4gIHJldHVybiAoXG4gICAgPExheW91dFxuICAgICAgZGF0YT17ZGF0YX1cbiAgICAgIG5hdmlnYXRlPXtuYXZpZ2F0ZX1cbiAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgaXNDb2xsYXBzZWQ9e2lzQ29sbGFwc2VkfVxuICAgICAgYWN0aXZlTWVudT17YWN0aXZlTWVudX1cbiAgICAgIGNoYW5nZUFjdGl2ZU1lbnU9e21lbnUgPT4gZGlzcGF0Y2goY2hhbmdlQWN0aXZlTWVudShtZW51KSl9XG4gICAgICBjb2xsYXBzZUxheW91dE1lbnVzPXsoKSA9PiBkaXNwYXRjaChjb2xsYXBzZUxheW91dE1lbnVzKCkpfVxuICAgICAgZXhwYW5kTGF5b3V0TWVudXM9eygpID0+IGRpc3BhdGNoKGV4cGFuZExheW91dE1lbnVzKCkpfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0xheW91dD5cbiAgKTtcbn07XG5cbi8vIGV4cG9ydCBwcm9wLXR5cGVzXG5leHBvcnQgY29uc3QgeyBwcm9wVHlwZXMsIGRlZmF1bHRQcm9wcyB9ID0gTGF5b3V0O1xuXG5Db25uZWN0ZWRMYXlvdXQucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogcHJvcFR5cGVzLmNoaWxkcmVuLFxuICBkYXRhOiBwcm9wVHlwZXMuZGF0YSxcbn07XG5cbkNvbm5lY3RlZExheW91dC5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBkZWZhdWx0UHJvcHMuY2hpbGRyZW4sXG4gIGRhdGE6IGRlZmF1bHRQcm9wcy5kYXRhLFxufTtcblxuLy8gZXhwb3J0IHJlZHVjZXJzXG5leHBvcnQgY29uc3QgcmVkdWNlcnMgPSB7IGxheW91dDogcmVkdWNlciB9O1xuXG4vLyBleHBvcnQgY29ubmVjdGVkIGNvbXBvbmVudFxuZXhwb3J0IGRlZmF1bHQgQ29ubmVjdGVkTGF5b3V0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2luZGV4LmpzIiwiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSwgbWF4LWxlbiAqL1xuXG5leHBvcnQgY29uc3QgZGVwcmVjYXRlID0gKG9sZE1ldGhvZCwgbmV3TWV0aG9kLCB2ZXJzaW9uKSA9PiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKVxuICAgIGNvbnNvbGUud2FybihcbiAgICAgIGBERVBSRUNBVElPTiBXQVJOSU5HOiB5b3UgYXJlIHVzaW5nIGRlcHJlY2F0ZWQgJHtvbGRNZXRob2R9LCBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gRm9yZW1hbiAke3ZlcnNpb259LiBVc2UgJHtuZXdNZXRob2R9IGluc3RlYWQuYFxuICAgICk7XG59O1xuZXhwb3J0IGNvbnN0IGRlcHJlY2F0ZU9iamVjdFByb3BlcnR5ID0gKG9iaiwgb2xkUHJvcCwgbmV3UHJvcCwgdmVyc2lvbikgPT4ge1xuICBjb25zdCBvbGRQcm9wUG9pbnRlciA9IG9ialtvbGRQcm9wXTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBvbGRQcm9wLCB7XG4gICAgZ2V0OiAoKSA9PiB7XG4gICAgICBkZXByZWNhdGUob2xkUHJvcCwgbmV3UHJvcCwgdmVyc2lvbik7XG4gICAgICByZXR1cm4gb2xkUHJvcFBvaW50ZXI7XG4gICAgfSxcbiAgfSk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbW1vbi9EZXByZWNhdGlvblNlcnZpY2UuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBBbGVydExpbmsgZnJvbSAnLi9BbGVydExpbmsnO1xuXG5jb25zdCBBbGVydEJvZHkgPSAoeyBsaW5rLCB0aXRsZSwgbWVzc2FnZSwgY2hpbGRyZW4gfSkgPT4gKFxuICA8c3Bhbj5cbiAgICB7bGluayAmJiA8QWxlcnRMaW5rIHsuLi5saW5rfSAvPn1cblxuICAgIHt0aXRsZSAmJiA8c3Ryb25nPnt0aXRsZX08L3N0cm9uZz59XG5cbiAgICB7bWVzc2FnZX1cblxuICAgIHtjaGlsZHJlbn1cbiAgPC9zcGFuPlxuKTtcblxuQWxlcnRCb2R5LnByb3BUeXBlcyA9IHtcbiAgbWVzc2FnZTogUHJvcFR5cGVzLm5vZGUsXG4gIGxpbms6IFByb3BUeXBlcy5zaGFwZShBbGVydExpbmsucHJvcFR5cGVzKSxcbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbn07XG5cbkFsZXJ0Qm9keS5kZWZhdWx0UHJvcHMgPSB7XG4gIG1lc3NhZ2U6IHVuZGVmaW5lZCxcbiAgY2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgbGluazogdW5kZWZpbmVkLFxuICB0aXRsZTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQWxlcnRCb2R5O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0FsZXJ0L0FsZXJ0Qm9keS5qcyIsImltcG9ydCB7IGdldENvbnRyb2xsZXJTZWFyY2hQcm9wcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBBVURJVFNfUEFHRV9EQVRBX1JFU09MVkVEID0gJ0FVRElUU19QQUdFX0RBVEFfUkVTT0xWRUQnO1xuZXhwb3J0IGNvbnN0IEFVRElUU19QQUdFX0RBVEFfRkFJTEVEID0gJ0FVRElUU19QQUdFX0RBVEFfRkFJTEVEJztcbmV4cG9ydCBjb25zdCBBVURJVFNfUEFHRV9ISURFX0xPQURJTkcgPSAnQVVESVRTX1BBR0VfSElERV9MT0FESU5HJztcbmV4cG9ydCBjb25zdCBBVURJVFNfUEFHRV9TSE9XX0xPQURJTkcgPSAnQVVESVRTX1BBR0VfU0hPV19MT0FESU5HJztcbmV4cG9ydCBjb25zdCBBVURJVFNfUEFHRV9VUERBVEVfUVVFUlkgPSAnQVVESVRTX1BBR0VfVVBEQVRFX1FVRVJZJztcbmV4cG9ydCBjb25zdCBBVURJVFNfUEFHRV9DTEVBUl9FUlJPUiA9ICdBVURJVFNfUEFHRV9DTEVBUl9FUlJPUic7XG5cbmV4cG9ydCBjb25zdCBBVURJVFNfUEFUSCA9ICcvYXVkaXRzJztcbmV4cG9ydCBjb25zdCBBVURJVFNfU0VBUkNIX1BST1BTID0gZ2V0Q29udHJvbGxlclNlYXJjaFByb3BzKCdhdWRpdHMnKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvQXVkaXRzL2NvbnN0YW50cy5qcyIsImV4cG9ydCBjb25zdCBCT09LTUFSS1MgPSAnQk9PS01BUktTJztcbmV4cG9ydCBjb25zdCBCT09LTUFSS1NfRk9STV9TVUJNSVRURURfU1VDQ0VTUyA9XG4gICdCT09LTUFSS1NfRk9STV9TVUJNSVRURURfU1VDQ0VTUyc7XG5cbmV4cG9ydCBjb25zdCBCT09LTUFSS1NfTU9EQUwgPSAnYm9va21hcmtzTW9kYWwnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUEY0L0Jvb2ttYXJrcy9Cb29rbWFya3NDb25zdGFudHMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyB1c2VNb2RhbENvbnRleHQgfSBmcm9tICcuLi9Gb3JlbWFuTW9kYWxIb29rcyc7XG5cbmNvbnN0IEZvcmVtYW5Nb2RhbEhlYWRlciA9IHByb3BzID0+IHtcbiAgY29uc3QgeyB0aXRsZSB9ID0gdXNlTW9kYWxDb250ZXh0KCk7XG4gIC8vIHRpdGxlIHdpbGwgYmUgZmFsc2V5IGlmIGl0cyB2YWx1ZSBpcyB0aGUgZGVmYXVsdCAnJ1xuICAvLyBSZW5kZXIgdGhlIHByb3ZpZGVkIGNoaWxkcmVuLCBvciBkZWZhdWx0IG1hcmt1cCBpZiBub25lIGdpdmVuXG4gIHJldHVybiAoXG4gICAgPE1vZGFsLkhlYWRlciBjbG9zZUJ1dHRvbiB7Li4ucHJvcHN9PlxuICAgICAge3RpdGxlICYmIDxNb2RhbC5UaXRsZT57dGl0bGV9PC9Nb2RhbC5UaXRsZT59XG4gICAgICB7cHJvcHMuY2hpbGRyZW59XG4gICAgPC9Nb2RhbC5IZWFkZXI+XG4gICk7XG59O1xuXG5Gb3JlbWFuTW9kYWxIZWFkZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5Gb3JlbWFuTW9kYWxIZWFkZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogbnVsbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZvcmVtYW5Nb2RhbEhlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9zdWJjb21wb25lbnRzL0ZvcmVtYW5Nb2RhbEhlYWRlci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgTW9kYWwsIEJ1dHRvbiB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IHsgdXNlTW9kYWxDb250ZXh0IH0gZnJvbSAnLi4vRm9yZW1hbk1vZGFsSG9va3MnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5pbXBvcnQgU3VibWl0T3JDYW5jZWwgZnJvbSAnLi9TdWJtaXRPckNhbmNlbCc7XG5cbmNvbnN0IEZvcmVtYW5Nb2RhbEZvb3RlciA9IHByb3BzID0+IHtcbiAgY29uc3QgY2hpbGRDb3VudCA9IFJlYWN0LkNoaWxkcmVuLmNvdW50KHByb3BzLmNoaWxkcmVuKTtcbiAgY29uc3QgeyBvbkNsb3NlLCBpc1N1Ym1pdHRpbmcsIGlkLCBzdWJtaXRQcm9wcyB9ID0gdXNlTW9kYWxDb250ZXh0KCk7XG5cbiAgLy8gUmVuZGVyIHRoZSBwcm92aWRlZCBjaGlsZHJlbiwgb3IgZGVmYXVsdCBtYXJrdXAgaWYgbm9uZSBnaXZlblxuICBjb25zdCBjbG9zZUJ1dHRvbiA9IGNoaWxkQ291bnQgPT09IDAgJiYgKFxuICAgIDxCdXR0b24gYnNTdHlsZT1cImRlZmF1bHRcIiBvbkNsaWNrPXtvbkNsb3NlfT5cbiAgICAgIHtfXygnQ2xvc2UnKX1cbiAgICA8L0J1dHRvbj5cbiAgKTtcblxuICBjb25zdCBzdWJtaXRPckNhbmNlbCA9IGNoaWxkQ291bnQgPT09IDAgJiYgc3VibWl0UHJvcHMgJiYgKFxuICAgIDxTdWJtaXRPckNhbmNlbFxuICAgICAgaXNTdWJtaXR0aW5nPXtpc1N1Ym1pdHRpbmd9XG4gICAgICBvbkNhbmNlbD17b25DbG9zZX1cbiAgICAgIHN1Ym1pdFByb3BzPXtzdWJtaXRQcm9wc31cbiAgICAgIGlkPXtpZH1cbiAgICAvPlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPE1vZGFsLkZvb3RlciB7Li4ucHJvcHN9PlxuICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAge3N1Ym1pdE9yQ2FuY2VsIHx8IGNsb3NlQnV0dG9ufVxuICAgIDwvTW9kYWwuRm9vdGVyPlxuICApO1xufTtcblxuRm9yZW1hbk1vZGFsRm9vdGVyLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxufTtcblxuRm9yZW1hbk1vZGFsRm9vdGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IG51bGwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGb3JlbWFuTW9kYWxGb290ZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvc3ViY29tcG9uZW50cy9Gb3JlbWFuTW9kYWxGb290ZXIuanMiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9Gb3JlbWFuRm9ybSc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvRm9yZW1hbkZvcm0vaW5kZXguanMiLCJpbXBvcnQgeyBBUElBY3Rpb25zIH0gZnJvbSAnLi4vLi4vQVBJJztcbmltcG9ydCB7IHNwcmludGYsIHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5cbmNvbnN0IGdldEJhc2VFcnJvcnMgPSAoeyBlcnJvcjogeyBlcnJvcnMsIHNldmVyaXR5IH0gfSkgPT4ge1xuICBsZXQgX2Vycm9yO1xuICBpZiAoZXJyb3JzLmJhc2UpIHtcbiAgICBfZXJyb3IgPSB7fTtcbiAgICBfZXJyb3IuZXJyb3JNc2dzID0gZXJyb3JzLmJhc2U7XG4gICAgX2Vycm9yLnNldmVyaXR5ID0gc2V2ZXJpdHk7XG4gICAgZGVsZXRlIGVycm9ycy5iYXNlO1xuICB9XG5cbiAgcmV0dXJuIF9lcnJvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBwcmVwYXJlRXJyb3JzID0gKGVycm9ycywgYmFzZSkgPT5cbiAgT2JqZWN0LmtleXMoZXJyb3JzKS5yZWR1Y2UoXG4gICAgKG1lbW8sIGtleSkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IGVycm9yc1trZXldO1xuXG4gICAgICBtZW1vW2tleV0gPVxuICAgICAgICBlcnJvck1lc3NhZ2VzICYmIGVycm9yTWVzc2FnZXMuam9pblxuICAgICAgICAgID8gZXJyb3JNZXNzYWdlcy5qb2luKCcsICcpXG4gICAgICAgICAgOiBlcnJvck1lc3NhZ2VzO1xuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSxcbiAgICB7IF9lcnJvcjogYmFzZSB9XG4gICk7XG5cbmV4cG9ydCBjb25zdCBvbkVycm9yID0gKGVycm9yLCBhY3Rpb25zKSA9PiB7XG4gIGFjdGlvbnMuc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gIGlmIChlcnJvci5yZXNwb25zZT8uc3RhdHVzID09PSA0MjIpIHtcbiAgICBjb25zdCBiYXNlID0gZ2V0QmFzZUVycm9ycyhlcnJvcj8ucmVzcG9uc2U/LmRhdGEpO1xuXG4gICAgYWN0aW9ucy5zZXRFcnJvcnMoXG4gICAgICBwcmVwYXJlRXJyb3JzKGVycm9yPy5yZXNwb25zZT8uZGF0YT8uZXJyb3I/LmVycm9ycywgYmFzZSlcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGFjdGlvbnMuc2V0RXJyb3JzKHtcbiAgICAgIF9lcnJvcjoge1xuICAgICAgICBlcnJvck1zZ3M6IFtcbiAgICAgICAgICBgJHtfXygnRXJyb3Igc3VibWl0dGluZyBkYXRhOicpfSAke2Vycm9yLnJlc3BvbnNlPy5zdGF0dXN9ICR7ZXJyb3JcbiAgICAgICAgICAgIC5yZXNwb25zZT8uc3RhdHVzVGV4dCAmJiBfXyhlcnJvci5yZXNwb25zZT8uc3RhdHVzVGV4dCl9YCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn07XG5cbmNvbnN0IHZlcmlmeVByb3BzID0gKGl0ZW0sIHZhbHVlcykgPT4ge1xuICBpZiAoIWl0ZW0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2l0ZW0gbXVzdCBiZSBkZWZpbmVkLCBlLmcuIEJvb2ttYXJrJyk7XG4gIH1cbiAgaWYgKCF2YWx1ZXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlcyBtdXN0IGJlIGRlZmluZWQnKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHN1Ym1pdEZvcm0gPSAoe1xuICBpdGVtLFxuICB1cmwsXG4gIHZhbHVlczogcGFyYW1zLFxuICBtZXNzYWdlLFxuICBtZXRob2QgPSAncG9zdCcsXG4gIGhlYWRlcnMsXG4gIGFwaUFjdGlvblR5cGVzOiBhY3Rpb25UeXBlcyxcbiAgZXJyb3JUb2FzdCxcbiAgc3VjY2Vzc1RvYXN0LFxuICBhY3Rpb25zLFxuICBzdWNjZXNzQ2FsbGJhY2ssXG59KSA9PiB7XG4gIHZlcmlmeVByb3BzKGl0ZW0sIHBhcmFtcyk7XG4gIHJldHVybiBkaXNwYXRjaCA9PiB7XG4gICAgY29uc3QgdW5pcXVlQVBJS2V5ID0gYCR7aXRlbS50b1VwcGVyQ2FzZSgpfV9GT1JNX1NVQk1JVFRFRGA7XG5cbiAgICBjb25zdCBoYW5kbGVFcnJvciA9IGVycm9yID0+IG9uRXJyb3IoZXJyb3IsIGFjdGlvbnMpO1xuXG4gICAgY29uc3QgaGFuZGxlU3VjY2VzcyA9ICh7IGRhdGEgfSkgPT4ge1xuICAgICAgc3VjY2Vzc0NhbGxiYWNrKCk7XG4gICAgICBkaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IHVuaXF1ZUFQSUtleSxcbiAgICAgICAgcGF5bG9hZDogeyBpdGVtLCBkYXRhIH0sXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGRlZmF1bHRTdWNjZXNzVG9hc3QgPSAoKSA9PlxuICAgICAgbWVzc2FnZSB8fCBzcHJpbnRmKCclcyB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuJywgX18oaXRlbSkpO1xuXG4gICAgY29uc3QgZGVmYXVsdEVycm9yVG9hc3QgPSBlcnJvciA9PlxuICAgICAgc3ByaW50ZihcbiAgICAgICAgX18oXG4gICAgICAgICAgJ09oIG5vISBTb21ldGhpbmcgd2VudCB3cm9uZyB3aGlsZSBzdWJtaXR0aW5nIHRoZSBmb3JtLCB0aGUgc2VydmVyIHJldHVybmVkIHRoZSBmb2xsb3dpbmcgZXJyb3I6ICVzJ1xuICAgICAgICApLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG4gICAgICAgIGVycm9yPy5yZXNwb25zZT8uZGF0YT8uZXJyb3I/LmZ1bGxfbWVzc2FnZXM/LmpvaW4oJywgJylcbiAgICAgICk7XG4gICAgZGlzcGF0Y2goXG4gICAgICBBUElBY3Rpb25zW21ldGhvZF0oe1xuICAgICAgICBrZXk6IHVuaXF1ZUFQSUtleSxcbiAgICAgICAgdXJsLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGFjdGlvblR5cGVzLFxuICAgICAgICBoYW5kbGVFcnJvcixcbiAgICAgICAgaGFuZGxlU3VjY2VzcyxcbiAgICAgICAgc3VjY2Vzc1RvYXN0OiBzdWNjZXNzVG9hc3QgfHwgZGVmYXVsdFN1Y2Nlc3NUb2FzdCxcbiAgICAgICAgZXJyb3JUb2FzdDogZXJyb3JUb2FzdCB8fCBkZWZhdWx0RXJyb3JUb2FzdCxcbiAgICAgIH0pXG4gICAgKTtcbiAgfTtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvYWN0aW9ucy9jb21tb24vZm9ybXMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGFnaW5hdG9yIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyB1c2VQYWdpbmF0aW9uT3B0aW9ucyB9IGZyb20gJy4vUGFnaW5hdGlvbkhvb2tzJztcbmltcG9ydCB7XG4gIGdldFVSSXBhZ2UsXG4gIGdldFVSSXBlclBhZ2UsXG4gIGNoYW5nZVF1ZXJ5LFxufSBmcm9tICcuLi8uLi9jb21tb24vdXJsSGVscGVycyc7XG5pbXBvcnQgeyB1c2VGb3JlbWFuU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9Sb290L0NvbnRleHQvRm9yZW1hbkNvbnRleHQnO1xuaW1wb3J0ICcuL3BhZ2luYXRpb24uc2Nzcyc7XG5cbmNvbnN0IFBhZ2luYXRpb24gPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHtcbiAgICBkYXRhLFxuICAgIHBhZ2luYXRpb24sXG4gICAgb25QYWdlU2V0LFxuICAgIG9uUGVyUGFnZVNlbGVjdCxcbiAgICBkcm9wZG93bkJ1dHRvbklkLFxuICAgIGRpc2FibGVOZXh0LFxuICAgIGRpc2FibGVQcmV2LFxuICAgIC4uLm90aGVyUHJvcHNcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHsgcGVyUGFnZSB9ID0gdXNlRm9yZW1hblNldHRpbmdzKCk7XG4gIGNvbnN0IHBlclBhZ2VPcHRpb25zID0gdXNlUGFnaW5hdGlvbk9wdGlvbnMoKTtcbiAgY29uc3QgdXJsUGFnZSA9IGdldFVSSXBhZ2UoKTtcbiAgY29uc3QgdXJsUGVyUGFnZSA9IGdldFVSSXBlclBhZ2UoKSB8fCBudWxsO1xuICBjb25zdCBjbGFzc05hbWUgPSBpc0VtcHR5KGRhdGEuY2xhc3NOYW1lcylcbiAgICA/ICdjb2wtbWQtMTInXG4gICAgOiBgY29sLW1kLTEyICR7ZGF0YS5jbGFzc05hbWVzLnBhZ2luYXRpb25fY2xhc3Nlc31gO1xuXG4gIGNvbnN0IHBhZ2VPcHRzID0ge1xuICAgIHBhZ2U6IHVybFBhZ2UsXG4gICAgcGVyUGFnZTogdXJsUGVyUGFnZSB8fCBwZXJQYWdlLFxuICAgIHBlclBhZ2VPcHRpb25zLFxuICAgIC4uLnBhZ2luYXRpb24sXG4gIH07XG5cbiAgY29uc3QgbWVzc2FnZXMgPSB7XG4gICAgZmlyc3RQYWdlOiBfXygnRmlyc3QgUGFnZScpLFxuICAgIHByZXZpb3VzUGFnZTogX18oJ1ByZXZpb3VzIFBhZ2UnKSxcbiAgICBjdXJyZW50UGFnZTogX18oJ0N1cnJlbnQgUGFnZScpLFxuICAgIG5leHRQYWdlOiBfXygnTmV4dCBQYWdlJyksXG4gICAgbGFzdFBhZ2U6IF9fKCdMYXN0IFBhZ2UnKSxcbiAgICBwZXJQYWdlOiBfXygncGVyIHBhZ2UnKSxcbiAgICBvZjogX18oJ29mJyksXG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8UGFnaW5hdG9yXG4gICAgICBwYWdpbmF0aW9uPXtwYWdlT3B0c31cbiAgICAgIHZpZXdUeXBlPXtkYXRhLnZpZXdUeXBlfVxuICAgICAgaXRlbUNvdW50PXtkYXRhLml0ZW1Db3VudH1cbiAgICAgIG9uUGFnZVNldD17b25QYWdlU2V0fVxuICAgICAgb25QZXJQYWdlU2VsZWN0PXtvblBlclBhZ2VTZWxlY3R9XG4gICAgICBkaXNhYmxlTmV4dD17ZGlzYWJsZU5leHR9XG4gICAgICBkaXNhYmxlUHJldj17ZGlzYWJsZVByZXZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIGRyb3Bkb3duQnV0dG9uSWQ9e2Ryb3Bkb3duQnV0dG9uSWR9XG4gICAgICBtZXNzYWdlcz17bWVzc2FnZXN9XG4gICAgICB7Li4ub3RoZXJQcm9wc31cbiAgICAvPlxuICApO1xufTtcblxuUGFnaW5hdGlvbi5wcm9wVHlwZXMgPSB7XG4gIGRhdGE6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgdmlld1R5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXRlbUNvdW50OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGNsYXNzTmFtZXM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBwYWdpbmF0aW9uX2NsYXNzZXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfSksXG4gIH0pLmlzUmVxdWlyZWQsXG4gIG9uUGFnZVNldDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uUGVyUGFnZVNlbGVjdDogUHJvcFR5cGVzLmZ1bmMsXG4gIGRyb3Bkb3duQnV0dG9uSWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRpc2FibGVOZXh0OiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzYWJsZVByZXY6IFByb3BUeXBlcy5ib29sLFxuICBwYWdpbmF0aW9uOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHBhZ2U6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgcGVyUGFnZU9wdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5udW1iZXIpLFxuICB9KSxcbn07XG5cblBhZ2luYXRpb24uZGVmYXVsdFByb3BzID0ge1xuICBvblBhZ2VTZXQ6IHBhZ2UgPT4gY2hhbmdlUXVlcnkoeyBwYWdlIH0pLFxuICBvblBlclBhZ2VTZWxlY3Q6IHBlclBhZ2UgPT4gY2hhbmdlUXVlcnkoeyBwYWdlOiAxLCBwZXJfcGFnZTogcGVyUGFnZSB9KSxcbiAgZHJvcGRvd25CdXR0b25JZDogJ3BhZ2luYXRpb24tcm93LWRyb3Bkb3duJyxcbiAgcGFnaW5hdGlvbjogbnVsbCxcbiAgZGlzYWJsZU5leHQ6IGZhbHNlLFxuICBkaXNhYmxlUHJldjogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBQYWdpbmF0aW9uO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUGFnaW5hdGlvbi9QYWdpbmF0aW9uLmpzIiwiZXhwb3J0IGNvbnN0IFBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfUkVRVUVTVCA9ICdQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX1JFUVVFU1QnO1xuZXhwb3J0IGNvbnN0IFBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfU1VDQ0VTUyA9ICdQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX1NVQ0NFU1MnO1xuZXhwb3J0IGNvbnN0IFBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfRkFJTFVSRSA9ICdQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX0ZBSUxVUkUnO1xuZXhwb3J0IGNvbnN0IFBFUlNPTkFMX0FDQ0VTU19UT0tFTl9GT1JNX1NVQk1JVFRFRCA9XG4gICdQRVJTT05BTF9BQ0NFU1NfVE9LRU5fRk9STV9TVUJNSVRURUQnO1xuZXhwb3J0IGNvbnN0IFBFUlNPTkFMX0FDQ0VTU19UT0tFTl9DTEVBUiA9ICdQRVJTT05BTF9BQ0NFU1NfVE9LRU5fQ0xFQVInO1xuZXhwb3J0IGNvbnN0IE1PREFMX0lEID0gJ3BlcnNvbmFsLWFjY2Vzcy10b2tlbnMtZm9ybS1tb2RhbCc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy91c2Vycy9QZXJzb25hbEFjY2Vzc1Rva2Vucy9QZXJzb25hbEFjY2Vzc1Rva2Vuc0NvbnN0YW50cy5qcyIsImV4cG9ydCBjb25zdCBNSU5VVEUgPSAnTUlOVVRFJztcbmV4cG9ydCBjb25zdCBIT1VSID0gJ0hPVVInO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL1RpbWVDb21wb25lbnRzL1RpbWVDb25zdGFudHMuanMiLCJpbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbmV4cG9ydCBjb25zdCBQT1dFUl9SRVFVUlNUX0tFWSA9ICdIT1NUX1RPR0dMRV9QT1dFUic7XG5leHBvcnQgY29uc3QgUE9XRVJfUkVRVUVTVF9PUFRJT05TID0geyBrZXk6IFBPV0VSX1JFUVVSU1RfS0VZIH07XG5leHBvcnQgY29uc3QgQkFTRV9QT1dFUl9TVEFURVMgPSB7IG9mZjogX18oJ09mZicpLCBvbjogX18oJ09uJykgfTtcbmV4cG9ydCBjb25zdCBCTUNfUE9XRVJfU1RBVEVTID0geyBzb2Z0OiBfXygnUmVib290JyksIGN5Y2xlOiBfXygnUmVzZXQnKSB9O1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9QT1dFUl9TVEFURVMgPSB7XG4gIC4uLkJBU0VfUE9XRVJfU1RBVEVTLFxuICAuLi5CTUNfUE9XRVJfU1RBVEVTLFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0RldGFpbHNDYXJkL1Bvd2VyU3RhdHVzL2NvbnN0YW50cy5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvc3R5bGVzLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDg5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvRGV0YWlsc0NhcmQvc3R5bGVzLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDkwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJleHBvcnQgY29uc3QgUkVHSVNUUkFUSU9OX1BBVEggPSAnL2hvc3RzL3JlZ2lzdGVyJztcblxuZXhwb3J0IGNvbnN0IFJFR0lTVFJBVElPTl9DT01NQU5EU19EQVRBID0gJ1JFR0lTVFJBVElPTl9DT01NQU5EU19EQVRBJztcbmV4cG9ydCBjb25zdCBSRUdJU1RSQVRJT05fQ09NTUFORFNfT1NfVEVNUExBVEUgPVxuICAnUkVHSVNUUkFUSU9OX0NPTU1BTkRTX09TX1RFTVBMQVRFJztcbmV4cG9ydCBjb25zdCBSRUdJU1RSQVRJT05fQ09NTUFORFMgPSAnUkVHSVNUUkFUSU9OX0NPTU1BTkRTJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvY29uc3RhbnRzLmpzIiwiLyogZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybVNlbGVjdE9wdGlvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuXG5pbXBvcnQgeyBmb3JlbWFuVXJsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZm9yZW1hbl90b29scyc7XG5pbXBvcnQgeyBzcHJpbnRmLCB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbi8vIEZvcm0gaGVscGVyc1xuZXhwb3J0IGNvbnN0IGVtcHR5T3B0aW9uID0gbGVuZ3RoID0+IChcbiAgPEZvcm1TZWxlY3RPcHRpb25cbiAgICB2YWx1ZT1cIlwiXG4gICAgbGFiZWw9e2xlbmd0aCA+IDAgPyAnJyA6IF9fKCdOb3RoaW5nIHRvIHNlbGVjdC4nKX1cbiAgLz5cbik7XG5cbi8vIE9wZXJhdGluZ1N5c3RlbSBoZWxwZXJzXG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZWRPUyA9IChvcGVyYXRpbmdTeXN0ZW1JZCwgdGVtcGxhdGUpID0+IHtcbiAgaWYgKCFvcGVyYXRpbmdTeXN0ZW1JZCkge1xuICAgIHJldHVybiAnZGVmYXVsdCc7XG4gIH1cblxuICBpZiAodGVtcGxhdGU/Lm5hbWUpIHtcbiAgICByZXR1cm4gJ3N1Y2Nlc3MnO1xuICB9XG4gIHJldHVybiAnZXJyb3InO1xufTtcblxuZXhwb3J0IGNvbnN0IG9zSGVscGVyVGV4dCA9IChcbiAgb3BlcmF0aW5nU3lzdGVtSWQsXG4gIG9wZXJhdGluZ1N5c3RlbXMsXG4gIGhvc3RHcm91cElkLFxuICBob3N0R3JvdXBzLFxuICB0ZW1wbGF0ZVxuKSA9PiB7XG4gIGlmIChvcGVyYXRpbmdTeXN0ZW1JZCkge1xuICAgIHJldHVybiBvc1RlbXBsYXRlSGVscGVyVGV4dChvcGVyYXRpbmdTeXN0ZW1JZCwgdGVtcGxhdGUpO1xuICB9XG5cbiAgaWYgKGhvc3RHcm91cElkKSB7XG4gICAgY29uc3Qgb3NJZCA9IGhvc3RHcm91cHMuZmluZChoZyA9PiBgJHtoZy5pZH1gID09PSBgJHtob3N0R3JvdXBJZH1gKVxuICAgICAgPy5pbmhlcml0ZWRfb3BlcmF0aW5nc3lzdGVtX2lkO1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7aG9zdEdyb3VwT1NIZWxwZXJUZXh0KGhvc3RHcm91cElkLCBob3N0R3JvdXBzLCBvcGVyYXRpbmdTeXN0ZW1zKX1cbiAgICAgICAgPGJyIC8+XG4gICAgICAgIHtvc0lkICYmIG9zVGVtcGxhdGVIZWxwZXJUZXh0KG9zSWQsIHRlbXBsYXRlKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gJyc7XG59O1xuXG5jb25zdCBvc1RlbXBsYXRlSGVscGVyVGV4dCA9IChvcGVyYXRpbmdTeXN0ZW1JZCwgdGVtcGxhdGUpID0+IHtcbiAgaWYgKCFvcGVyYXRpbmdTeXN0ZW1JZCAmJiB0ZW1wbGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIDw+Jm5ic3A7PC8+O1xuICB9XG5cbiAgaWYgKHRlbXBsYXRlPy5uYW1lKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuPlxuICAgICAgICB7X18oJ0luaXRpYWwgY29uZmlndXJhdGlvbiB0ZW1wbGF0ZScpfTp7JyAnfVxuICAgICAgICA8YSBocmVmPXtmb3JlbWFuVXJsKHRlbXBsYXRlLnBhdGgpfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub3JlZmVycmVyXCI+XG4gICAgICAgICAge3RlbXBsYXRlLm5hbWV9XG4gICAgICAgIDwvYT5cbiAgICAgIDwvc3Bhbj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJoYXMtZXJyb3JcIj5cbiAgICAgIDxhIGhyZWY9e2ZvcmVtYW5VcmwodGVtcGxhdGUub3NfcGF0aCl9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXJcIj5cbiAgICAgICAge19fKCdPcGVyYXRpbmcgc3lzdGVtJyl9XG4gICAgICA8L2E+eycgJ31cbiAgICAgIHtfXygnZG9lcyBub3QgaGF2ZSBhc3NpZ25lZCBob3N0X2luaXRfY29uZmlnIHRlbXBsYXRlJyl9XG4gICAgPC9zcGFuPlxuICApO1xufTtcblxuY29uc3QgaG9zdEdyb3VwT1NIZWxwZXJUZXh0ID0gKGhvc3RHcm91cElkLCBob3N0R3JvdXBzLCBvcGVyYXRpbmdTeXN0ZW1zKSA9PiB7XG4gIGNvbnN0IG9zSWQgPSBob3N0R3JvdXBzLmZpbmQoaGcgPT4gYCR7aGcuaWR9YCA9PT0gYCR7aG9zdEdyb3VwSWR9YClcbiAgICA/LmluaGVyaXRlZF9vcGVyYXRpbmdzeXN0ZW1faWQ7XG4gIGNvbnN0IGhvc3RHcm91cE9TID0gb3BlcmF0aW5nU3lzdGVtcy5maW5kKG9zID0+IGAke29zLmlkfWAgPT09IGAke29zSWR9YCk7XG5cbiAgaWYgKGhvc3RHcm91cE9TKSB7XG4gICAgcmV0dXJuIHNwcmludGYoJ0hvc3QgZ3JvdXAgT1M6ICVzJywgaG9zdEdyb3VwT1MudGl0bGUpO1xuICB9XG4gIHJldHVybiBfXygnTm8gT1MgZnJvbSBob3N0IGdyb3VwJyk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlSGVscGVycy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ2hlY2tDaXJjbGVJY29uLFxuICBFeGNsYW1hdGlvblRyaWFuZ2xlSWNvbixcbiAgRXhjbGFtYXRpb25DaXJjbGVJY29uLFxuICBRdWVzdGlvbkNpcmNsZUljb24sXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25zJztcbmltcG9ydCB7XG4gIEdMT0JBTF9TVEFUVVNfT0ssXG4gIEdMT0JBTF9TVEFUVVNfV0FSTixcbiAgR0xPQkFMX1NUQVRVU19FUlJPUixcbn0gZnJvbSAnLi4vSG9zdFN0YXR1c2VzQ29uc3RhbnRzJztcblxuY29uc3QgR2xvYmFsU3RhdHVzSWNvbiA9ICh7IHN0YXR1cywgLi4ucHJvcHMgfSkgPT4ge1xuICBzd2l0Y2ggKHN0YXR1cykge1xuICAgIGNhc2UgR0xPQkFMX1NUQVRVU19PSzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDaGVja0NpcmNsZUljb25cbiAgICAgICAgICBzdHlsZT17eyBmaWxsOiAndmFyKC0tcGYtZ2xvYmFsLS1zdWNjZXNzLWNvbG9yLS0xMDApJyB9fVxuICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgY2FzZSBHTE9CQUxfU1RBVFVTX1dBUk46XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RXhjbGFtYXRpb25UcmlhbmdsZUljb25cbiAgICAgICAgICBzdHlsZT17eyBmaWxsOiAndmFyKC0tcGYtZ2xvYmFsLS13YXJuaW5nLWNvbG9yLS0xMDApJyB9fVxuICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgY2FzZSBHTE9CQUxfU1RBVFVTX0VSUk9SOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEV4Y2xhbWF0aW9uQ2lyY2xlSWNvblxuICAgICAgICAgIHN0eWxlPXt7IGZpbGw6ICd2YXIoLS1wZi1nbG9iYWwtLWRhbmdlci1jb2xvci0tMTAwKScgfX1cbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8UXVlc3Rpb25DaXJjbGVJY29uXG4gICAgICAgICAgc3R5bGU9e3sgZmlsbDogJ3ZhcigtLXBmLWdsb2JhbC0taW5mby1jb2xvci0tMjAwKScgfX1cbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIC8+XG4gICAgICApO1xuICB9XG59O1xuXG5HbG9iYWxTdGF0dXNJY29uLnByb3BUeXBlcyA9IHtcbiAgc3RhdHVzOiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuR2xvYmFsU3RhdHVzSWNvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHN0YXR1czogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgR2xvYmFsU3RhdHVzSWNvbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3RTdGF0dXNlcy9TdGF0dXMvR2xvYmFsU3RhdHVzSWNvbi5qcyIsImV4cG9ydCBjb25zdCBHTE9CQUxfU1RBVFVTX09LID0gMDtcbmV4cG9ydCBjb25zdCBHTE9CQUxfU1RBVFVTX1dBUk4gPSAxO1xuZXhwb3J0IGNvbnN0IEdMT0JBTF9TVEFUVVNfRVJST1IgPSAyO1xuZXhwb3J0IGNvbnN0IEhPU1RfU1RBVFVTRVNfS0VZID0gJ0hPU1RfU1RBVFVTRVMnO1xuZXhwb3J0IGNvbnN0IEFQSV9PUFRJT05TID0geyBrZXk6IEhPU1RfU1RBVFVTRVNfS0VZIH07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvSG9zdFN0YXR1c2VzQ29uc3RhbnRzLmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19SQ19JTlBVVF9OVU1CRVJfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JDX0lOUFVUX05VTUJFUl9fXCJcbi8vIG1vZHVsZSBpZCA9IDk1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgQ29tbW9uRm9ybSBmcm9tICcuL0NvbW1vbkZvcm0nO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCBNZXNzYWdlQm94IGZyb20gJy4uL01lc3NhZ2VCb3gnO1xuaW1wb3J0IHsgcmVuZGVyT3B0aW9ucyB9IGZyb20gJy4vU2VsZWN0SGVscGVycyc7XG5cbmNsYXNzIFNlbGVjdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGluaXRpYWxpemVTZWxlY3QyKCkge1xuICAgIGNvbnN0IHsgYWxsb3dDbGVhciB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICgkLmZuLnNlbGVjdDIpIHtcbiAgICAgICQodGhpcy5zZWxlY3QpLnNlbGVjdDIoeyBhbGxvd0NsZWFyIH0pO1xuICAgIH1cbiAgfVxuXG4gIGF0dGFjaEV2ZW50KCkge1xuICAgIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgJCh0aGlzLnNlbGVjdClcbiAgICAgIC5vZmYoJ2NoYW5nZScsIG9uQ2hhbmdlKVxuICAgICAgLm9uKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBpZiAodGhpcy5wcm9wcy51c2VTZWxlY3QyKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVTZWxlY3QyKCk7XG4gICAgICB0aGlzLmF0dGFjaEV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIGlmICh0aGlzLnByb3BzLnVzZVNlbGVjdDIpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVNlbGVjdDIoKTtcbiAgICAgIGlmICh0aGlzLnByb3BzLnN0YXR1cyAhPT0gcHJldlByb3BzLnN0YXR1cykge1xuICAgICAgICB0aGlzLmF0dGFjaEV2ZW50KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIG5hbWUsXG4gICAgICBsYWJlbCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvcHRpb25zLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBzdGF0dXMgPSBTVEFUVVMuUkVTT0xWRUQsXG4gICAgICBlcnJvck1lc3NhZ2UgPSBfXygnQW4gZXJyb3Igb2NjdXJyZWQuJyksXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBsZXQgY29udGVudDtcblxuICAgIGNvbnN0IGlubmVyU2VsZWN0ID0gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlZj17c2VsZWN0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ID0gc2VsZWN0O1xuICAgICAgICAgIH19XG4gICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICA+XG4gICAgICAgICAgPG9wdGlvbiAvPlxuICAgICAgICAgIHtyZW5kZXJPcHRpb25zKG9wdGlvbnMpfVxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICk7XG5cbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSBTVEFUVVMuUkVTT0xWRUQ6IHtcbiAgICAgICAgY29udGVudCA9IGlubmVyU2VsZWN0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgU1RBVFVTLlBFTkRJTkc6IHtcbiAgICAgICAgY29udGVudCA9IDxTcGlubmVyIGxvYWRpbmcgc2l6ZT1cInNtXCIgLz47XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTVEFUVVMuRVJST1I6IHtcbiAgICAgICAgY29udGVudCA9IDxNZXNzYWdlQm94IGljb250eXBlPVwiZXJyb3ItY2lyY2xlLW9cIiBtc2c9e2Vycm9yTWVzc2FnZX0gLz47XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29udGVudCA9IDxNZXNzYWdlQm94IGljb250eXBlPVwiZXJyb3ItY2lyY2xlLW9cIiBtc2c9XCJJbnZhbGlkIFN0YXR1c1wiIC8+O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoIWxhYmVsKSB7XG4gICAgICByZXR1cm4gaW5uZXJTZWxlY3Q7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Q29tbW9uRm9ybSBsYWJlbD17bGFiZWx9IGNsYXNzTmFtZT17YGNvbW1vbi1zZWxlY3QgJHtjbGFzc05hbWV9YH0+XG4gICAgICAgIHtjb250ZW50fVxuICAgICAgPC9Db21tb25Gb3JtPlxuICAgICk7XG4gIH1cbn1cblxuU2VsZWN0LnByb3BUeXBlcyA9IHtcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5ib29sXSksXG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGFsbG93Q2xlYXI6IFByb3BUeXBlcy5ib29sLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9wdGlvbnM6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheSwgUHJvcFR5cGVzLm9iamVjdF0pLFxuICBzdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGVycm9yTWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICB1c2VTZWxlY3QyOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cblNlbGVjdC5kZWZhdWx0UHJvcHMgPSB7XG4gIG5hbWU6IG51bGwsXG4gIHZhbHVlOiB1bmRlZmluZWQsXG4gIGxhYmVsOiAnJyxcbiAgY2xhc3NOYW1lOiAnJyxcbiAgYWxsb3dDbGVhcjogZmFsc2UsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgb3B0aW9uczoge30sXG4gIHN0YXR1czogU1RBVFVTLlJFU09MVkVELFxuICBlcnJvck1lc3NhZ2U6IF9fKCdBbiBlcnJvciBvY2N1cnJlZC4nKSxcbiAgb25DaGFuZ2U6IG5vb3AsXG4gIHVzZVNlbGVjdDI6IHRydWUsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZWxlY3Q7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvU2VsZWN0LmpzIiwiZXhwb3J0IGNvbnN0IFNFVFRJTkdfVVBEQVRFX01PREFMID0gJ3NldHRpbmdVcGRhdGVNb2RhbCc7XG5leHBvcnQgY29uc3QgU0VUVElOR19VUERBVEVfUEFUSCA9ICcvYXBpL3NldHRpbmdzLzppZCc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nVXBkYXRlTW9kYWwvU2V0dGluZ1VwZGF0ZU1vZGFsQ29uc3RhbnRzLmpzIiwiaWYgKCF3aW5kb3cuc2Vzc2lvblN0b3JhZ2UpIHtcbiAgd2luZG93LnNlc3Npb25TdG9yYWdlID0ge1xuICAgIGdldEl0ZW06ICgpID0+IHt9LFxuICAgIHNldEl0ZW06ICgpID0+IHt9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgZ2V0VmFsdWUgPSBrZXkgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSkgfHwgJ251bGwnO1xuXG4gIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRWYWx1ZSA9IChrZXksIHZhbHVlKSA9PlxuICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tbW9uL1Nlc3Npb25TdG9yYWdlLmpzIiwiZXhwb3J0IGNvbnN0IHNlbGVjdEludGVydmFscyA9IHN0YXRlID0+IHN0YXRlLmludGVydmFscyB8fCB7fTtcbmV4cG9ydCBjb25zdCBzZWxlY3RJbnRlcnZhbElEID0gKHN0YXRlLCBrZXkpID0+IHNlbGVjdEludGVydmFscyhzdGF0ZSlba2V5XTtcbmV4cG9ydCBjb25zdCBzZWxlY3REb2VzSW50ZXJ2YWxFeGlzdCA9IChzdGF0ZSwga2V5KSA9PlxuICAhIXNlbGVjdEludGVydmFscyhzdGF0ZSlba2V5XTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9taWRkbGV3YXJlcy9JbnRlcnZhbE1pZGRsZXdhcmUvSW50ZXJ2YWxTZWxlY3RvcnMuanMiLCJpbXBvcnQgeyBiaW5kQWN0aW9uQ3JlYXRvcnMgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgeyBzZWxlY3RHZW5lcmF0aW5nUHJvcHMgfSBmcm9tICcuL1RlbXBsYXRlR2VuZXJhdG9yU2VsZWN0b3JzJztcbmltcG9ydCByZWR1Y2VyIGZyb20gJy4vVGVtcGxhdGVHZW5lcmF0b3JSZWR1Y2VyJztcbmltcG9ydCAqIGFzIHRlbXBsYXRlQWN0aW9ucyBmcm9tICcuL1RlbXBsYXRlR2VuZXJhdG9yQWN0aW9ucyc7XG5pbXBvcnQgVGVtcGxhdGVHZW5lcmF0b3IgZnJvbSAnLi9UZW1wbGF0ZUdlbmVyYXRvcic7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25zID0gdGVtcGxhdGVBY3Rpb25zO1xuXG4vLyBleHBvcnQgcmVkdWNlcnNcbmV4cG9ydCBjb25zdCByZWR1Y2VycyA9IHsgdGVtcGxhdGVzOiByZWR1Y2VyIH07XG5cbi8vIG1hcCBzdGF0ZSB0byBwcm9wc1xuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gc3RhdGUgPT4gc2VsZWN0R2VuZXJhdGluZ1Byb3BzKHN0YXRlKTtcblxuLy8gbWFwIGFjdGlvbiBkaXNwYXRjaGVycyB0byBwcm9wc1xuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gZGlzcGF0Y2ggPT4gYmluZEFjdGlvbkNyZWF0b3JzKGFjdGlvbnMsIGRpc3BhdGNoKTtcblxuLy8gZXhwb3J0IGNvbm5lY3RlZCBjb21wb25lbnRcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpKFRlbXBsYXRlR2VuZXJhdG9yKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1RlbXBsYXRlR2VuZXJhdG9yL2luZGV4LmpzIiwiaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBTZWFyY2hCYXIgZnJvbSAnLi9TZWFyY2hCYXInO1xuaW1wb3J0IHsgc2VsZWN0QXV0b2NvbXBsZXRlU2VhcmNoUXVlcnkgfSBmcm9tICcuLi9BdXRvQ29tcGxldGUvQXV0b0NvbXBsZXRlU2VsZWN0b3JzJztcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKFxuICBzdGF0ZSxcbiAge1xuICAgIGRhdGE6IHtcbiAgICAgIGF1dG9jb21wbGV0ZTogeyBpZCB9LFxuICAgIH0sXG4gIH1cbikgPT4gKHtcbiAgc2VhcmNoUXVlcnk6IHNlbGVjdEF1dG9jb21wbGV0ZVNlYXJjaFF1ZXJ5KHN0YXRlLCBpZCksXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpKFNlYXJjaEJhcik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZWFyY2hCYXIvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGZvcmNlU2luZ2xldG9uIGZyb20gJy4uL2NvbW1vbi9mb3JjZVNpbmdsZXRvbic7XG5cbmltcG9ydCBSZWFjdEFwcCBmcm9tICcuLi9Sb290L1JlYWN0QXBwJztcbmltcG9ydCBBcmVhQ2hhcnQgZnJvbSAnLi9jb21tb24vY2hhcnRzL0FyZWFDaGFydCc7XG5pbXBvcnQgQmFyQ2hhcnQgZnJvbSAnLi9jb21tb24vY2hhcnRzL0JhckNoYXJ0JztcbmltcG9ydCBEb251dENoYXJ0IGZyb20gJy4vY29tbW9uL2NoYXJ0cy9Eb251dENoYXJ0JztcbmltcG9ydCBMaW5lQ2hhcnQgZnJvbSAnLi9jb21tb24vY2hhcnRzL0xpbmVDaGFydCc7XG5pbXBvcnQgUG93ZXJTdGF0dXMgZnJvbSAnLi9ob3N0cy9wb3dlclN0YXR1cy8nO1xuaW1wb3J0IE5vdGlmaWNhdGlvbkNvbnRhaW5lciBmcm9tICcuL25vdGlmaWNhdGlvbnMvJztcbmltcG9ydCBUb2FzdHNMaXN0IGZyb20gJy4vVG9hc3RzTGlzdC8nO1xuaW1wb3J0IFJlbGF0aXZlRGF0ZVRpbWUgZnJvbSAnLi9jb21tb24vZGF0ZXMvUmVsYXRpdmVEYXRlVGltZSc7XG5pbXBvcnQgTG9uZ0RhdGVUaW1lIGZyb20gJy4vY29tbW9uL2RhdGVzL0xvbmdEYXRlVGltZSc7XG5pbXBvcnQgU2hvcnREYXRlVGltZSBmcm9tICcuL2NvbW1vbi9kYXRlcy9TaG9ydERhdGVUaW1lJztcbmltcG9ydCBJc29EYXRlIGZyb20gJy4vY29tbW9uL2RhdGVzL0lzb0RhdGUnO1xuaW1wb3J0IEZvcm1GaWVsZCBmcm9tICcuL2NvbW1vbi9mb3Jtcy9Gb3JtRmllbGQnO1xuaW1wb3J0IElucHV0RmFjdG9yeSBmcm9tICcuL2NvbW1vbi9mb3Jtcy9JbnB1dEZhY3RvcnknO1xuaW1wb3J0IFN0b3JhZ2VDb250YWluZXIgZnJvbSAnLi9ob3N0cy9zdG9yYWdlL3Ztd2FyZS8nO1xuaW1wb3J0IFBhc3N3b3JkU3RyZW5ndGggZnJvbSAnLi9QYXNzd29yZFN0cmVuZ3RoJztcbmltcG9ydCBCcmVhZGNydW1iQmFyIGZyb20gJy4vQnJlYWRjcnVtYkJhcic7XG5pbXBvcnQgRmFjdENoYXJ0IGZyb20gJy4vRmFjdENoYXJ0cyc7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL1BhZ2luYXRpb24vUGFnaW5hdGlvbic7XG5pbXBvcnQgQXV0b0NvbXBsZXRlIGZyb20gJy4vQXV0b0NvbXBsZXRlJztcbmltcG9ydCBTZWFyY2hCYXIgZnJvbSAnLi9TZWFyY2hCYXInO1xuaW1wb3J0IExheW91dCBmcm9tICcuL0xheW91dCc7XG5pbXBvcnQgRW1wdHlTdGF0ZSBmcm9tICcuL2NvbW1vbi9FbXB0eVN0YXRlJztcbmltcG9ydCBDb21wb25lbnRXcmFwcGVyIGZyb20gJy4vY29tbW9uL0NvbXBvbmVudFdyYXBwZXIvQ29tcG9uZW50V3JhcHBlcic7XG5pbXBvcnQgQ2hhcnRCb3ggZnJvbSAnLi9DaGFydEJveC9DaGFydEJveCc7XG5pbXBvcnQgQ29uZmlnUmVwb3J0cyBmcm9tICcuL0NvbmZpZ1JlcG9ydHMvQ29uZmlnUmVwb3J0cyc7XG5pbXBvcnQgRGlmZk1vZGFsIGZyb20gJy4vQ29uZmlnUmVwb3J0cy9EaWZmTW9kYWwnO1xuaW1wb3J0IHsgV3JhcHBlckZhY3RvcnkgfSBmcm9tICcuL3dyYXBwZXJGYWN0b3J5JztcbmltcG9ydCBNb2RlbHNUYWJsZSBmcm9tICcuL01vZGVsc1RhYmxlJztcbmltcG9ydCBUZW1wbGF0ZUdlbmVyYXRvciBmcm9tICcuL1RlbXBsYXRlR2VuZXJhdG9yJztcbmltcG9ydCBFZGl0b3IgZnJvbSAnLi9FZGl0b3InO1xuaW1wb3J0IExvZ2luUGFnZSBmcm9tICcuL0xvZ2luUGFnZSc7XG5pbXBvcnQgRXh0ZXJuYWxMb2dvdXQgZnJvbSAnLi9FeHRlcm5hbExvZ291dCc7XG5pbXBvcnQgU2xvdCBmcm9tICcuL2NvbW1vbi9TbG90JztcbmltcG9ydCBUeXBlQWhlYWRTZWxlY3QgZnJvbSAnLi9jb21tb24vVHlwZUFoZWFkU2VsZWN0JztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVQaWNrZXInO1xuaW1wb3J0IFJlZGlyZWN0Q2FuY2VsQnV0dG9uIGZyb20gJy4vY29tbW9uL1JlZGlyZWN0Q2FuY2VsQnV0dG9uJztcbmltcG9ydCBTZXR0aW5nUmVjb3JkcyBmcm9tICcuL1NldHRpbmdSZWNvcmRzJztcbmltcG9ydCBTZXR0aW5nc1RhYmxlIGZyb20gJy4vU2V0dGluZ3NUYWJsZSc7XG5pbXBvcnQgU2V0dGluZ1VwZGF0ZU1vZGFsIGZyb20gJy4vU2V0dGluZ1VwZGF0ZU1vZGFsJztcbmltcG9ydCBQZXJzb25hbEFjY2Vzc1Rva2VucyBmcm9tICcuL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zJztcbmltcG9ydCBDbGlwYm9hcmRDb3B5IGZyb20gJy4vY29tbW9uL0NsaXBib2FyZENvcHknO1xuaW1wb3J0IExhYmVsSWNvbiBmcm9tICcuL2NvbW1vbi9MYWJlbEljb24nO1xuaW1wb3J0IHsgV2VsY29tZUF1dGhTb3VyY2UgfSBmcm9tICcuL0F1dGhTb3VyY2UvV2VsY29tZSc7XG5pbXBvcnQgeyBXZWxjb21lQ29uZmlnUmVwb3J0cyB9IGZyb20gJy4vQ29uZmlnUmVwb3J0cy9XZWxjb21lJztcbmltcG9ydCB7IFdlbGNvbWVBcmNoaXRlY3R1cmUgfSBmcm9tICcuL0FyY2hpdGVjdHVyZXMvV2VsY29tZSc7XG5cbmNvbnN0IGNvbXBvbmVudFJlZ2lzdHJ5ID0ge1xuICByZWdpc3RyeTogZm9yY2VTaW5nbGV0b24oJ2NvbXBvbmVudF9yZWdpc3RyeScsICgpID0+ICh7fSkpLFxuXG4gIHJlZ2lzdGVyKHsgbmFtZSA9IG51bGwsIHR5cGUgPSBudWxsLCBzdG9yZSA9IHRydWUsIGRhdGEgPSB0cnVlIH0pIHtcbiAgICBpZiAoIW5hbWUgfHwgIXR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29tcG9uZW50IG5hbWUgb3IgdHlwZSBpcyBtaXNzaW5nJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlZ2lzdHJ5W25hbWVdKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKGBDb21wb25lbnQgbmFtZSBhbHJlYWR5IHRha2VuOiAke25hbWV9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVnaXN0cnlbbmFtZV0gPSB7IHR5cGUsIHN0b3JlLCBkYXRhIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnk7XG4gIH0sXG5cbiAgcmVnaXN0ZXJNdWx0aXBsZShjb21wb25lbnRPYmpzKSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29tcG9uZW50T2JqcykuZm9yRWFjaChvYmogPT4gdGhpcy5yZWdpc3RlcihvYmopKTtcbiAgfSxcblxuICBnZXRDb21wb25lbnQobmFtZSkge1xuICAgIGlmICghdGhpcy5yZWdpc3RyeVtuYW1lXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ29tcG9uZW50IG5vdCBmb3VuZDogJHtuYW1lfSBhbW9uZyAke3RoaXMucmVnaXN0ZXJlZENvbXBvbmVudHMoKX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5W25hbWVdO1xuICB9LFxuXG4gIHdyYXBwZXJGYWN0b3J5KCkge1xuICAgIHJldHVybiBuZXcgV3JhcHBlckZhY3RvcnkoKTtcbiAgfSxcblxuICByZWdpc3RlcmVkQ29tcG9uZW50cygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5yZWdpc3RyeSkuam9pbignLCAnKTtcbiAgfSxcblxuICBkZWZhdWx0V3JhcHBlcihjb21wb25lbnQsIGRhdGEgPSBudWxsLCBzdG9yZSA9IG51bGwsIGZsYXR0ZW5EYXRhID0gZmFsc2UpIHtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy53cmFwcGVyRmFjdG9yeSgpO1xuXG4gICAgZmFjdG9yeS53aXRoKCdpMThuJyk7XG4gICAgaWYgKHN0b3JlICYmIGNvbXBvbmVudC5zdG9yZSkge1xuICAgICAgZmFjdG9yeS53aXRoKCdzdG9yZScsIHN0b3JlKTtcbiAgICB9XG4gICAgaWYgKGRhdGEgJiYgY29tcG9uZW50LmRhdGEpIHtcbiAgICAgIGZhY3Rvcnkud2l0aCgnZGF0YScsIGRhdGEsIGZsYXR0ZW5EYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhY3Rvcnkud3JhcHBlcjtcbiAgfSxcblxuICBtYXJrdXAoXG4gICAgbmFtZSxcbiAgICB7IGRhdGEgPSBudWxsLCBzdG9yZSA9IG51bGwsIHdyYXBwZXIgPSBudWxsLCBmbGF0dGVuRGF0YSA9IGZhbHNlIH1cbiAgKSB7XG4gICAgY29uc3QgY3VycmVudENvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50KG5hbWUpO1xuICAgIGNvbnN0IGNvbXBvbmVudFdyYXBwZXIgPVxuICAgICAgd3JhcHBlciB8fFxuICAgICAgdGhpcy5kZWZhdWx0V3JhcHBlcihjdXJyZW50Q29tcG9uZW50LCBkYXRhLCBzdG9yZSwgZmxhdHRlbkRhdGEpO1xuXG4gICAgY29uc3QgV3JhcHBlZENvbXBvbmVudCA9IGNvbXBvbmVudFdyYXBwZXIoY3VycmVudENvbXBvbmVudC50eXBlKTtcblxuICAgIHJldHVybiA8V3JhcHBlZENvbXBvbmVudCAvPjtcbiAgfSxcbn07XG5cbmNvbnN0IGNvcmVDb21wb25ldHMgPSBbXG4gIHsgbmFtZTogJ1JlYWN0QXBwJywgdHlwZTogUmVhY3RBcHAgfSxcbiAgeyBuYW1lOiAnU2VhcmNoQmFyJywgdHlwZTogU2VhcmNoQmFyIH0sXG4gIHsgbmFtZTogJ0F1dG9Db21wbGV0ZScsIHR5cGU6IEF1dG9Db21wbGV0ZSB9LFxuICB7IG5hbWU6ICdBcmVhQ2hhcnQnLCB0eXBlOiBBcmVhQ2hhcnQgfSxcbiAgeyBuYW1lOiAnRG9udXRDaGFydCcsIHR5cGU6IERvbnV0Q2hhcnQgfSxcbiAgeyBuYW1lOiAnTGluZUNoYXJ0JywgdHlwZTogTGluZUNoYXJ0IH0sXG4gIHsgbmFtZTogJ1Bvd2VyU3RhdHVzJywgdHlwZTogUG93ZXJTdGF0dXMgfSxcbiAgeyBuYW1lOiAnTm90aWZpY2F0aW9uQ29udGFpbmVyJywgdHlwZTogTm90aWZpY2F0aW9uQ29udGFpbmVyIH0sXG4gIHsgbmFtZTogJ1RvYXN0Tm90aWZpY2F0aW9ucycsIHR5cGU6IFRvYXN0c0xpc3QgfSxcbiAgeyBuYW1lOiAnU3RvcmFnZUNvbnRhaW5lcicsIHR5cGU6IFN0b3JhZ2VDb250YWluZXIgfSxcbiAgeyBuYW1lOiAnUGFzc3dvcmRTdHJlbmd0aCcsIHR5cGU6IFBhc3N3b3JkU3RyZW5ndGggfSxcbiAgeyBuYW1lOiAnQnJlYWRjcnVtYkJhcicsIHR5cGU6IEJyZWFkY3J1bWJCYXIgfSxcbiAgeyBuYW1lOiAnRmFjdENoYXJ0JywgdHlwZTogRmFjdENoYXJ0IH0sXG4gIHsgbmFtZTogJ1BhZ2luYXRpb24nLCB0eXBlOiBQYWdpbmF0aW9uIH0sXG4gIHsgbmFtZTogJ0xheW91dCcsIHR5cGU6IExheW91dCB9LFxuICB7IG5hbWU6ICdFbXB0eVN0YXRlJywgdHlwZTogRW1wdHlTdGF0ZSB9LFxuICB7IG5hbWU6ICdCYXJDaGFydCcsIHR5cGU6IEJhckNoYXJ0IH0sXG4gIHsgbmFtZTogJ0NoYXJ0Qm94JywgdHlwZTogQ2hhcnRCb3ggfSxcbiAgeyBuYW1lOiAnQ29tcG9uZW50V3JhcHBlcicsIHR5cGU6IENvbXBvbmVudFdyYXBwZXIgfSxcbiAgeyBuYW1lOiAnQ29uZmlnUmVwb3J0cycsIHR5cGU6IENvbmZpZ1JlcG9ydHMgfSxcbiAgeyBuYW1lOiAnRGlmZk1vZGFsJywgdHlwZTogRGlmZk1vZGFsIH0sXG4gIHsgbmFtZTogJ0V4dGVybmFsTG9nb3V0JywgdHlwZTogRXh0ZXJuYWxMb2dvdXQgfSxcbiAgeyBuYW1lOiAnU2xvdCcsIHR5cGU6IFNsb3QgfSxcbiAgeyBuYW1lOiAnVHlwZUFoZWFkU2VsZWN0JywgdHlwZTogVHlwZUFoZWFkU2VsZWN0IH0sXG4gIHsgbmFtZTogJ0RhdGVQaWNrZXInLCB0eXBlOiBEYXRlUGlja2VyIH0sXG4gIHsgbmFtZTogJ1JlZGlyZWN0Q2FuY2VsQnV0dG9uJywgdHlwZTogUmVkaXJlY3RDYW5jZWxCdXR0b24gfSxcbiAgeyBuYW1lOiAnU2V0dGluZ1JlY29yZHMnLCB0eXBlOiBTZXR0aW5nUmVjb3JkcyB9LFxuICB7IG5hbWU6ICdTZXR0aW5nc1RhYmxlJywgdHlwZTogU2V0dGluZ3NUYWJsZSB9LFxuICB7IG5hbWU6ICdTZXR0aW5nVXBkYXRlTW9kYWwnLCB0eXBlOiBTZXR0aW5nVXBkYXRlTW9kYWwgfSxcbiAgeyBuYW1lOiAnUGVyc29uYWxBY2Nlc3NUb2tlbnMnLCB0eXBlOiBQZXJzb25hbEFjY2Vzc1Rva2VucyB9LFxuICB7IG5hbWU6ICdDbGlwYm9hcmRDb3B5JywgdHlwZTogQ2xpcGJvYXJkQ29weSB9LFxuICB7IG5hbWU6ICdMYWJlbEljb24nLCB0eXBlOiBMYWJlbEljb24gfSxcbiAge1xuICAgIG5hbWU6ICdSZWxhdGl2ZURhdGVUaW1lJyxcbiAgICB0eXBlOiBSZWxhdGl2ZURhdGVUaW1lLFxuICAgIGRhdGE6IHRydWUsXG4gICAgc3RvcmU6IGZhbHNlLFxuICB9LFxuICB7XG4gICAgbmFtZTogJ0xvbmdEYXRlVGltZScsXG4gICAgdHlwZTogTG9uZ0RhdGVUaW1lLFxuICAgIGRhdGE6IHRydWUsXG4gICAgc3RvcmU6IGZhbHNlLFxuICB9LFxuICB7XG4gICAgbmFtZTogJ1Nob3J0RGF0ZVRpbWUnLFxuICAgIHR5cGU6IFNob3J0RGF0ZVRpbWUsXG4gICAgZGF0YTogdHJ1ZSxcbiAgICBzdG9yZTogZmFsc2UsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnSXNvRGF0ZScsXG4gICAgdHlwZTogSXNvRGF0ZSxcbiAgICBkYXRhOiB0cnVlLFxuICAgIHN0b3JlOiBmYWxzZSxcbiAgfSxcbiAgeyBuYW1lOiAnRm9ybUZpZWxkJywgdHlwZTogRm9ybUZpZWxkIH0sXG4gIHsgbmFtZTogJ0lucHV0RmFjdG9yeScsIHR5cGU6IElucHV0RmFjdG9yeSB9LFxuICB7IG5hbWU6ICdNb2RlbHNUYWJsZScsIHR5cGU6IE1vZGVsc1RhYmxlIH0sXG4gIHsgbmFtZTogJ0VkaXRvcicsIHR5cGU6IEVkaXRvciB9LFxuXG4gIC8vIFJlcG9ydCB0ZW1wbGF0ZXNcbiAgeyBuYW1lOiAnVGVtcGxhdGVHZW5lcmF0b3InLCB0eXBlOiBUZW1wbGF0ZUdlbmVyYXRvciB9LFxuICB7IG5hbWU6ICdMb2dpblBhZ2UnLCB0eXBlOiBMb2dpblBhZ2UgfSxcbiAgeyBuYW1lOiAnV2VsY29tZUF1dGhTb3VyY2UnLCB0eXBlOiBXZWxjb21lQXV0aFNvdXJjZSB9LFxuICB7IG5hbWU6ICdXZWxjb21lQ29uZmlnUmVwb3J0cycsIHR5cGU6IFdlbGNvbWVDb25maWdSZXBvcnRzIH0sXG4gIHsgbmFtZTogJ1dlbGNvbWVBcmNoaXRlY3R1cmUnLCB0eXBlOiBXZWxjb21lQXJjaGl0ZWN0dXJlIH0sXG5dO1xuXG5jb21wb25lbnRSZWdpc3RyeS5yZWdpc3Rlck11bHRpcGxlKGNvcmVDb21wb25ldHMpO1xuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnRSZWdpc3RyeTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbXBvbmVudFJlZ2lzdHJ5LmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19QQVRURVJORkxZX1JFQUNUX1RBQkxFX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19QQVRURVJORkxZX1JFQUNUX1RBQkxFX19cIlxuLy8gbW9kdWxlIGlkID0gMTAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHZpc2l0IH0gZnJvbSAnLi4vLi4vZm9yZW1hbl9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGFkZEdsb2JhbEZpbGwgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbW1vbi9GaWxsL0dsb2JhbEZpbGwnO1xuXG5sZXQgY3VycmVudFBhdGggPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcblxuLyoqXG4gKiBBZGRzIGEgcGx1Z2luJ3Mgcm91dGVzIGludG8gY29yZVxuICogQHBhcmFtICB7U3RyaW5nfSBpZCAgcGx1Z2luJ3MgaWQgLSBjYW4gYmUgaXRzIG5hbWVcbiAqIEBwYXJhbSAge0FycmF5fSAgIHJvdXRlcyBhbiBhcnJheSB0aGF0IGNvbnRhaW5zIGEgcGx1Z2luJ3Mgcm91dGVzXG4gKi9cbmV4cG9ydCBjb25zdCByZWdpc3RlclJvdXRlcyA9IChpZCwgcm91dGVzKSA9PlxuICByb3V0ZXMubWFwKCh7IHJlbmRlciwgcGF0aCwgLi4ucm91dGVQcm9wcyB9LCBpbmRleCkgPT5cbiAgICBhZGRHbG9iYWxGaWxsKFxuICAgICAgJ3JvdXRlcycsXG4gICAgICBgJHtpZH0tJHtpbmRleH1gLFxuICAgICAgPFJvdXRlXG4gICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgIGtleT17cGF0aH1cbiAgICAgICAgey4uLnJvdXRlUHJvcHN9XG4gICAgICAgIHJlbmRlcj17cmVuZGVyUHJvcHMgPT4gcmVuZGVyUm91dGUocmVuZGVyLCByZW5kZXJQcm9wcyl9XG4gICAgICAvPlxuICAgIClcbiAgKTtcblxuLyoqXG4gKiBhIEhlbHBlciBmdW5jdGlvbiBmb3IgcmVuZGVyaW5nIGEgcm91dGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHJlbmRlckZuIC0gYSBjb21wb25lbnQncyByZW5kZXJpbmcgZnVuY3Rpb25cbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIHJvdXRpbmcgcHJvcHNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlbmRlclJvdXRlID0gKHJlbmRlckZuLCBwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgbG9jYXRpb24sXG4gICAgbG9jYXRpb246IHsgcGF0aG5hbWUsIHNlYXJjaCB9LFxuICB9ID0gcHJvcHM7XG4gIHJlbW92ZVJhaWxzQ29udGVudCgpO1xuICBsb2NhdGlvbiAmJiB1cGRhdGVQYXRoKGAke3BhdGhuYW1lfSR7c2VhcmNofWApO1xuICByZXR1cm4gcmVuZGVyRm4ocHJvcHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGZhbGxiYWNrUm91dGUgPSAoKSA9PiB7XG4gIGNvbnN0IG5leHRQYXRoID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gIGlmIChjdXJyZW50UGF0aCAhPT0gbmV4dFBhdGgpIHtcbiAgICB1cGRhdGVQYXRoKG5leHRQYXRoKTtcbiAgICByZXR1cm4gdmlzaXQobmV4dFBhdGgpO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgdXBkYXRlUGF0aCA9IG5ld1BhdGggPT4ge1xuICBpZiAobmV3UGF0aCkgY3VycmVudFBhdGggPSBuZXdQYXRoO1xufTtcblxuY29uc3QgcmVtb3ZlUmFpbHNDb250ZW50ID0gKCkgPT4ge1xuICBjb25zdCByYWlsc0NvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyYWlscy1hcHAtY29udGVudCcpO1xuICBpZiAocmFpbHNDb250YWluZXIpIHJhaWxzQ29udGFpbmVyLnJlbW92ZSgpO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUm91dGluZ1NlcnZpY2UuanMiLCJpbXBvcnQgeyBnZXRWYWx1ZSwgc2V0VmFsdWUgfSBmcm9tICcuLi8uLi9jb21tb24vU2Vzc2lvblN0b3JhZ2UnO1xuXG5leHBvcnQgY29uc3QgZ2V0SXNPcGVuZWQgPSAoKSA9PiBnZXRWYWx1ZSgnaXNEcmF3ZXJPcGVuJyk7XG5leHBvcnQgY29uc3Qgc2V0SXNPcGVuZWQgPSB2YWx1ZSA9PiBzZXRWYWx1ZSgnaXNEcmF3ZXJPcGVuJywgdmFsdWUpO1xuZXhwb3J0IGNvbnN0IGdldEV4cGFuZGVkR3JvdXAgPSAoKSA9PiBnZXRWYWx1ZSgnZXhwYW5kZWRHcm91cCcpO1xuZXhwb3J0IGNvbnN0IHNldEV4cGFuZGVkR3JvdXAgPSB2YWx1ZSA9PiBzZXRWYWx1ZSgnZXhwYW5kZWRHcm91cCcsIHZhbHVlKTtcbmV4cG9ydCBjb25zdCBnZXRIYXNVbnJlYWRNZXNzYWdlcyA9ICgpID0+IGdldFZhbHVlKCdoYXNVbnJlYWRNZXNzYWdlcycpO1xuZXhwb3J0IGNvbnN0IHNldEhhc1VucmVhZE1lc3NhZ2VzID0gdmFsdWUgPT5cbiAgc2V0VmFsdWUoJ2hhc1VucmVhZE1lc3NhZ2VzJywgdmFsdWUpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25EcmF3ZXJTZXNzaW9uU3RvcmFnZS5qcyIsImltcG9ydCB7IEFQSV9PUEVSQVRJT05TIH0gZnJvbSAnLi9BUElDb25zdGFudHMnO1xuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi8nO1xuXG5leHBvcnQgY29uc3QgZ2V0QXBpTWV0aG9kQnlBY3Rpb25UeXBlID0gdHlwZSA9PiB0eXBlLnN1YnN0cmluZyg0KS50b0xvd2VyQ2FzZSgpO1xuXG5leHBvcnQgY29uc3QgZ2V0QXBpUmVzcG9uc2UgPSBhc3luYyAoeyB0eXBlLCB1cmwsIGhlYWRlcnMsIHBhcmFtcyB9KSA9PiB7XG4gIGNvbnN0IG1ldGhvZCA9IGdldEFwaU1ldGhvZEJ5QWN0aW9uVHlwZSh0eXBlKTtcbiAgc3dpdGNoIChtZXRob2QpIHtcbiAgICBjYXNlICdnZXQnOlxuICAgICAgcmV0dXJuIEFQSVttZXRob2RdKHVybCwgaGVhZGVycywgcGFyYW1zKTtcbiAgICBjYXNlICdkZWxldGUnOlxuICAgICAgcmV0dXJuIEFQSVttZXRob2RdKHVybCwgaGVhZGVycyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBBUElbbWV0aG9kXSh1cmwsIHBhcmFtcywgaGVhZGVycyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpc0FQSUFjdGlvbiA9ICh7IHR5cGUgfSkgPT5cbiAgT2JqZWN0LnZhbHVlcyhBUElfT1BFUkFUSU9OUykuaW5jbHVkZXModHlwZSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvQVBJL0FQSUhlbHBlcnMuanMiLCJpbXBvcnQgeyBERUZBVUxUX0lOVEVSVkFMIH0gZnJvbSAnLi9JbnRlcnZhbENvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlcmVkSW50ZXJ2YWxFeGNlcHRpb24gPSBrZXkgPT5cbiAgbmV3IEVycm9yKGBUaGVyZSBpcyBhbHJlYWR5IGFuIGludGVydmFsIHJ1bm5pbmcgYW5kIHJlZ2lzdGVyZWQgZm9yOiAke2tleX0uYCk7XG5cbmV4cG9ydCBjb25zdCB3aXRoSW50ZXJ2YWwgPSAoYWN0aW9uLCBpbnRlcnZhbCA9IGdldERlZmF1bHRJbnRlcnZhbCgpKSA9PiAoe1xuICAuLi5hY3Rpb24sXG4gIGludGVydmFsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0SW50ZXJ2YWwgPSAoKSA9PlxuICBwcm9jZXNzLmVudi5ERUZBVUxUX0lOVEVSVkFMIHx8IERFRkFVTFRfSU5URVJWQUw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvbWlkZGxld2FyZXMvSW50ZXJ2YWxNaWRkbGV3YXJlL0ludGVydmFsSGVscGVycy5qcyIsImltcG9ydCB7IFNUT1BfSU5URVJWQUwsIFNUQVJUX0lOVEVSVkFMIH0gZnJvbSAnLi9JbnRlcnZhbENvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBzdG9wSW50ZXJ2YWwgPSBrZXkgPT4gKHtcbiAgdHlwZTogU1RPUF9JTlRFUlZBTCxcbiAga2V5LFxufSk7XG5cbmV4cG9ydCBjb25zdCBzdGFydEludGVydmFsID0gKGtleSwgaW50ZXJ2YWxJRCkgPT4gKHtcbiAgdHlwZTogU1RBUlRfSU5URVJWQUwsXG4gIGtleSxcbiAgaW50ZXJ2YWxJRCxcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L21pZGRsZXdhcmVzL0ludGVydmFsTWlkZGxld2FyZS9JbnRlcnZhbEFjdGlvbnMuanMiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX0FYSU9TX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19BWElPU19fXCJcbi8vIG1vZHVsZSBpZCA9IDExMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IHsgYmluZEFjdGlvbkNyZWF0b3JzIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0ICogYXMgYWN0aW9ucyBmcm9tICcuL1Bhc3N3b3JkU3RyZW5ndGhBY3Rpb25zJztcbmltcG9ydCB7XG4gIGRvZXNQYXNzd29yZHNNYXRjaCxcbiAgcGFzc3dvcmRQcmVzZW50LFxufSBmcm9tICcuL1Bhc3N3b3JkU3RyZW5ndGhTZWxlY3RvcnMnO1xuaW1wb3J0IHJlZHVjZXIgZnJvbSAnLi9QYXNzd29yZFN0cmVuZ3RoUmVkdWNlcic7XG5cbmltcG9ydCBQYXNzd29yZFN0cmVuZ3RoIGZyb20gJy4vUGFzc3dvcmRTdHJlbmd0aCc7XG5cbi8vIG1hcCBzdGF0ZSB0byBwcm9wc1xuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHsgcGFzc3dvcmRTdHJlbmd0aCB9KSA9PiAoe1xuICBkb2VzUGFzc3dvcmRzTWF0Y2g6IGRvZXNQYXNzd29yZHNNYXRjaChwYXNzd29yZFN0cmVuZ3RoKSxcbiAgcGFzc3dvcmRQcmVzZW50OiBwYXNzd29yZFByZXNlbnQocGFzc3dvcmRTdHJlbmd0aCksXG59KTtcblxuLy8gbWFwIGFjdGlvbiBkaXNwYXRjaGVycyB0byBwcm9wc1xuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gZGlzcGF0Y2ggPT4gYmluZEFjdGlvbkNyZWF0b3JzKGFjdGlvbnMsIGRpc3BhdGNoKTtcblxuLy8gZXhwb3J0IHJlZHVjZXJzXG5leHBvcnQgY29uc3QgcmVkdWNlcnMgPSB7IHBhc3N3b3JkU3RyZW5ndGg6IHJlZHVjZXIgfTtcblxuLy8gZXhwb3J0IGNvbm5lY3RlZCBjb21wb25lbnRcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpKFBhc3N3b3JkU3RyZW5ndGgpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUGFzc3dvcmRTdHJlbmd0aC9pbmRleC5qcyIsImV4cG9ydCBjb25zdCBQQVNTV09SRF9TVFJFTkdUSF9QQVNTV09SRF9DSEFOR0VEID1cbiAgJ1BBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX0NIQU5HRUQnO1xuZXhwb3J0IGNvbnN0IFBBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX0NPTkZJUk1BVElPTl9DSEFOR0VEID1cbiAgJ1BBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX0NPTkZJUk1BVElPTl9DSEFOR0VEJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1Bhc3N3b3JkU3RyZW5ndGgvUGFzc3dvcmRTdHJlbmd0aENvbnN0YW50cy5qcyIsImV4cG9ydCBjb25zdCBCUkVBRENSVU1CX0JBUl9UT0dHTEVfU1dJVENIRVIgPSAnQlJFQURDUlVNQl9CQVJfVE9HR0xFX1NXSVRDSEVSJztcbmV4cG9ydCBjb25zdCBCUkVBRENSVU1CX0JBUl9DTE9TRV9TV0lUQ0hFUiA9ICdCUkVBRENSVU1CX0JBUl9DTE9TRV9TV0lUQ0hFUic7XG5leHBvcnQgY29uc3QgQlJFQURDUlVNQl9CQVJfUkVTT1VSQ0VTX1JFUVVFU1QgPVxuICAnQlJFQURDUlVNQl9CQVJfUkVTT1VSQ0VTX1JFUVVFU1QnO1xuZXhwb3J0IGNvbnN0IEJSRUFEQ1JVTUJfQkFSX1JFU09VUkNFU19TVUNDRVNTID1cbiAgJ0JSRUFEQ1JVTUJfQkFSX1JFU09VUkNFU19TVUNDRVNTJztcbmV4cG9ydCBjb25zdCBCUkVBRENSVU1CX0JBUl9SRVNPVVJDRVNfRkFJTFVSRSA9XG4gICdCUkVBRENSVU1CX0JBUl9SRVNPVVJDRVNfRkFJTFVSRSc7XG5leHBvcnQgY29uc3QgQlJFQURDUlVNQl9CQVJfQ0xFQVJfU0VBUkNIID0gJ0JSRUFEQ1JVTUJfQkFSX0RFTEVURV9TRUFSQ0gnO1xuZXhwb3J0IGNvbnN0IEJSRUFEQ1JVTUJfQkFSX1VQREFURV9USVRMRSA9ICdCUkVBRENSVU1CX0JBUl9VUERBVEVfVElUTEUnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQnJlYWRjcnVtYkJhci9CcmVhZGNydW1iQmFyQ29uc3RhbnRzLmpzIiwiaW1wb3J0IHtcbiAgTEFZT1VUX0lOSVRJQUxJWkUsXG4gIExBWU9VVF9TSE9XX0xPQURJTkcsXG4gIExBWU9VVF9ISURFX0xPQURJTkcsXG4gIExBWU9VVF9DSEFOR0VfQUNUSVZFLFxuICBMQVlPVVRfRVhQQU5ELFxuICBMQVlPVVRfQ09MTEFQU0UsXG59IGZyb20gJy4vTGF5b3V0Q29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxpemVMYXlvdXQgPSAoe1xuICBpdGVtcyxcbiAgYWN0aXZlTWVudSxcbiAgaXNDb2xsYXBzZWQsXG4gIG9yZ2FuaXphdGlvbixcbiAgbG9jYXRpb24sXG59KSA9PiAoe1xuICB0eXBlOiBMQVlPVVRfSU5JVElBTElaRSxcbiAgcGF5bG9hZDoge1xuICAgIGl0ZW1zLFxuICAgIGFjdGl2ZU1lbnUsXG4gICAgaXNDb2xsYXBzZWQsXG4gICAgb3JnYW5pemF0aW9uLFxuICAgIGxvY2F0aW9uLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBzaG93TG9hZGluZyA9ICgpID0+ICh7XG4gIHR5cGU6IExBWU9VVF9TSE9XX0xPQURJTkcsXG59KTtcblxuZXhwb3J0IGNvbnN0IGhpZGVMb2FkaW5nID0gKCkgPT4gKHtcbiAgdHlwZTogTEFZT1VUX0hJREVfTE9BRElORyxcbn0pO1xuXG5leHBvcnQgY29uc3QgY2hhbmdlQWN0aXZlTWVudSA9ICh7IHRpdGxlIH0pID0+ICh7XG4gIHR5cGU6IExBWU9VVF9DSEFOR0VfQUNUSVZFLFxuICBwYXlsb2FkOiB7XG4gICAgYWN0aXZlTWVudTogdGl0bGUsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGV4cGFuZExheW91dE1lbnVzID0gKCkgPT4gKHtcbiAgdHlwZTogTEFZT1VUX0VYUEFORCxcbn0pO1xuXG5leHBvcnQgY29uc3QgY29sbGFwc2VMYXlvdXRNZW51cyA9ICgpID0+ICh7XG4gIHR5cGU6IExBWU9VVF9DT0xMQVBTRSxcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dEFjdGlvbnMuanMiLCJleHBvcnQgY29uc3QgTEFZT1VUX0lOSVRJQUxJWkUgPSAnTEFZT1VUX0lOSVRJQUxJWkUnO1xuZXhwb3J0IGNvbnN0IExBWU9VVF9TSE9XX0xPQURJTkcgPSAnTEFZT1VUX1NIT1dfTE9BRElORyc7XG5leHBvcnQgY29uc3QgTEFZT1VUX0hJREVfTE9BRElORyA9ICdMQVlPVVRfSElERV9MT0FESU5HJztcbmV4cG9ydCBjb25zdCBMQVlPVVRfQ0hBTkdFX0FDVElWRSA9ICdMQVlPVVRfQ0hBTkdFX0FDVElWRSc7XG5leHBvcnQgY29uc3QgTEFZT1VUX0NPTExBUFNFID0gJ0xBWU9VVF9DT0xMQVBTRSc7XG5leHBvcnQgY29uc3QgTEFZT1VUX0VYUEFORCA9ICdMQVlPVVRfRVhQQU5EJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9MYXlvdXRDb25zdGFudHMuanMiLCJpbXBvcnQgeyBnZXQsIHNuYWtlQ2FzZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgZGVwcmVjYXRlIH0gZnJvbSAnLi4vLi4vY29tbW9uL0RlcHJlY2F0aW9uU2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RMYXlvdXQgPSBzdGF0ZSA9PiBzdGF0ZS5sYXlvdXQ7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RNZW51SXRlbXMgPSBzdGF0ZSA9PiBzZWxlY3RMYXlvdXQoc3RhdGUpLml0ZW1zO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEFjdGl2ZU1lbnUgPSBzdGF0ZSA9PiBzZWxlY3RMYXlvdXQoc3RhdGUpLmFjdGl2ZU1lbnU7XG5leHBvcnQgY29uc3Qgc2VsZWN0SXNMb2FkaW5nID0gc3RhdGUgPT4gc2VsZWN0TGF5b3V0KHN0YXRlKS5pc0xvYWRpbmc7XG5leHBvcnQgY29uc3Qgc2VsZWN0SXNDb2xsYXBzZWQgPSBzdGF0ZSA9PiBzZWxlY3RMYXlvdXQoc3RhdGUpLmlzQ29sbGFwc2VkO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEN1cnJlbnRMb2NhdGlvbiA9IHN0YXRlID0+IHtcbiAgZGVwcmVjYXRlKCdzZWxlY3RDdXJyZW50TG9jYXRpb24nLCAndXNlRm9yZW1hbkxvY2F0aW9uIGhvb2snLCAyLjUpO1xuICByZXR1cm4gZ2V0KHNlbGVjdExheW91dChzdGF0ZSksICdjdXJyZW50TG9jYXRpb24nKTtcbn07XG5leHBvcnQgY29uc3Qgc2VsZWN0Q3VycmVudE9yZ2FuaXphdGlvbiA9IHN0YXRlID0+IHtcbiAgZGVwcmVjYXRlKCdzZWxlY3RDdXJyZW50T3JnYW5pemF0aW9uJywgJ3VzZUZvcmVtYW5Pcmdhbml6YXRpb24gaG9vaycsIDIuNSk7XG4gIHJldHVybiBnZXQoc2VsZWN0TGF5b3V0KHN0YXRlKSwgJ2N1cnJlbnRPcmdhbml6YXRpb24nKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXR0ZXJuZmx5TWVudUl0ZW1zU2VsZWN0b3IgPSAoXG4gIHN0YXRlLFxuICBjdXJyZW50TG9jYXRpb24sXG4gIGN1cnJlbnRPcmdhbml6YXRpb25cbikgPT4ge1xuICBjb25zdCBpdGVtcyA9IHNlbGVjdE1lbnVJdGVtcyhzdGF0ZSk7XG4gIHJldHVybiBpdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5BcnJheSA9IGl0ZW0uY2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoY2hpbGQgPT4gY2hpbGQubmFtZSlcbiAgICAgIC5tYXAoY2hpbGQgPT5cbiAgICAgICAgY2hpbGRUb01lbnVJdGVtKGNoaWxkLCBjdXJyZW50TG9jYXRpb24sIGN1cnJlbnRPcmdhbml6YXRpb24pXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiBpdGVtLm5hbWUsXG4gICAgICBpY29uQ2xhc3M6IGl0ZW0uaWNvbixcbiAgICAgIHN1Ykl0ZW1zOiBjaGlsZHJlbkFycmF5LFxuICAgICAgY2xhc3NOYW1lOiBpdGVtLmNsYXNzTmFtZSxcbiAgICB9O1xuICB9KTtcbn07XG5cbmNvbnN0IGNoaWxkVG9NZW51SXRlbSA9IChjaGlsZCwgY3VycmVudExvY2F0aW9uLCBjdXJyZW50T3JnYW5pemF0aW9uKSA9PiAoe1xuICBpZDogYG1lbnVfaXRlbV8ke3NuYWtlQ2FzZShjaGlsZC5uYW1lKX1gLFxuICB0aXRsZTogY2hpbGQubmFtZSxcbiAgaXNEaXZpZGVyOiBjaGlsZC50eXBlID09PSAnZGl2aWRlcicsXG4gIGNsYXNzTmFtZTpcbiAgICBjaGlsZC5uYW1lID09PSBjdXJyZW50TG9jYXRpb24gfHwgY2hpbGQubmFtZSA9PT0gY3VycmVudE9yZ2FuaXphdGlvblxuICAgICAgPyAnbW9iaWxlLWFjdGl2ZSdcbiAgICAgIDogJycsXG4gIGhyZWY6IGNoaWxkLnVybCB8fCAnIycsXG4gIHByZXZlbnRIcmVmOiB0cnVlLFxuICBvbkNsaWNrOiBjaGlsZC5vbkNsaWNrIHx8IG5vb3AsXG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9MYXlvdXRTZWxlY3RvcnMuanMiLCJpbXBvcnQgb25DbGlja091dHNpZGUgZnJvbSAncmVhY3Qtb25jbGlja291dHNpZGUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgZ3JvdXBCeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBOb3RpZmljYXRpb25EcmF3ZXJXcmFwcGVyLFxuICBOb3RpZmljYXRpb25EcmF3ZXJQYW5lbFdyYXBwZXIsXG59IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0ICogYXMgTm90aWZpY2F0aW9uQWN0aW9ucyBmcm9tICcuLi8uLi9yZWR1eC9hY3Rpb25zL25vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHsgbm9vcCwgdHJhbnNsYXRlT2JqZWN0IH0gZnJvbSAnLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5pbXBvcnQgJy4vbm90aWZpY2F0aW9ucy5zY3NzJztcbmltcG9ydCBUb2dnbGVJY29uIGZyb20gJy4vVG9nZ2xlSWNvbi9Ub2dnbGVJY29uJztcblxuY2xhc3Mgbm90aWZpY2F0aW9uQ29udGFpbmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3Qge1xuICAgICAgc3RhcnROb3RpZmljYXRpb25zUG9sbGluZyxcbiAgICAgIGRhdGE6IHsgdXJsIH0sXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBzdGFydE5vdGlmaWNhdGlvbnNQb2xsaW5nKHVybCk7XG4gIH1cblxuICBoYW5kbGVDbGlja091dHNpZGUoKSB7XG4gICAgY29uc3QgeyBpc0RyYXdlck9wZW4sIGlzUmVhZHksIHRvZ2dsZURyYXdlciB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChpc1JlYWR5ICYmIGlzRHJhd2VyT3Blbikge1xuICAgICAgdG9nZ2xlRHJhd2VyKCk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgY29uc3QgeyBzdG9wTm90aWZpY2F0aW9uc1BvbGxpbmcgfSA9IHRoaXMucHJvcHM7XG4gICAgc3RvcE5vdGlmaWNhdGlvbnNQb2xsaW5nKCk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgbm90aWZpY2F0aW9ucyxcbiAgICAgIGlzRHJhd2VyT3BlbixcbiAgICAgIHRvZ2dsZURyYXdlcixcbiAgICAgIGV4cGFuZEdyb3VwLFxuICAgICAgZXhwYW5kZWRHcm91cCxcbiAgICAgIG1hcmtBc1JlYWQsXG4gICAgICBtYXJrR3JvdXBBc1JlYWQsXG4gICAgICBjbGVhck5vdGlmaWNhdGlvbixcbiAgICAgIGNsZWFyR3JvdXAsXG4gICAgICBoYXNVbnJlYWRNZXNzYWdlcyxcbiAgICAgIGlzUmVhZHksXG4gICAgICBjbGlja2VkTGluayxcbiAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbkdyb3VwcyA9IE9iamVjdC5lbnRyaWVzKG5vdGlmaWNhdGlvbnMpLm1hcChcbiAgICAgIChba2V5LCBncm91cF0pID0+ICh7XG4gICAgICAgIHBhbmVsa2V5OiBrZXksXG4gICAgICAgIHBhbmVsTmFtZToga2V5LFxuICAgICAgICBub3RpZmljYXRpb25zOiBncm91cCxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8VG9nZ2xlSWNvblxuICAgICAgICAgIGhhc1VucmVhZE1lc3NhZ2VzPXtoYXNVbnJlYWRNZXNzYWdlc31cbiAgICAgICAgICBvbkNsaWNrPXt0b2dnbGVEcmF3ZXJ9XG4gICAgICAgIC8+XG4gICAgICAgIHtpc1JlYWR5ICYmIGlzRHJhd2VyT3BlbiAmJiAoXG4gICAgICAgICAgPE5vdGlmaWNhdGlvbkRyYXdlcldyYXBwZXJcbiAgICAgICAgICAgIHBhbmVscz17bm90aWZpY2F0aW9uR3JvdXBzfVxuICAgICAgICAgICAgZXhwYW5kZWRQYW5lbD17ZXhwYW5kZWRHcm91cH1cbiAgICAgICAgICAgIHRvZ2dsZVBhbmVsPXtleHBhbmRHcm91cH1cbiAgICAgICAgICAgIG9uTm90aWZpY2F0aW9uQXNSZWFkPXttYXJrQXNSZWFkfVxuICAgICAgICAgICAgb25Ob3RpZmljYXRpb25IaWRlPXtjbGVhck5vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgIG9uTWFya1BhbmVsQXNSZWFkPXttYXJrR3JvdXBBc1JlYWR9XG4gICAgICAgICAgICBvbk1hcmtQYW5lbEFzQ2xlYXI9e2NsZWFyR3JvdXB9XG4gICAgICAgICAgICBvbkNsaWNrZWRMaW5rPXtjbGlja2VkTGlua31cbiAgICAgICAgICAgIHRvZ2dsZURyYXdlckhpZGU9e3RvZ2dsZURyYXdlcn1cbiAgICAgICAgICAgIGlzRXhwYW5kYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICB0cmFuc2xhdGlvbnM9e3RyYW5zbGF0ZU9iamVjdCh0cmFuc2xhdGlvbnMpfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbm5vdGlmaWNhdGlvbkNvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGRhdGE6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgdXJsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGlzRHJhd2VyT3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIGlzUmVhZHk6IFByb3BUeXBlcy5ib29sLFxuICBub3RpZmljYXRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICBleHBhbmRlZEdyb3VwOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoYXNVbnJlYWRNZXNzYWdlczogUHJvcFR5cGVzLmJvb2wsXG4gIGNsaWNrZWRMaW5rOiBQcm9wVHlwZXMuZnVuYyxcbiAgc3RhcnROb3RpZmljYXRpb25zUG9sbGluZzogUHJvcFR5cGVzLmZ1bmMsXG4gIHRvZ2dsZURyYXdlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIGV4cGFuZEdyb3VwOiBQcm9wVHlwZXMuZnVuYyxcbiAgbWFya0FzUmVhZDogUHJvcFR5cGVzLmZ1bmMsXG4gIG1hcmtHcm91cEFzUmVhZDogUHJvcFR5cGVzLmZ1bmMsXG4gIGNsZWFyTm90aWZpY2F0aW9uOiBQcm9wVHlwZXMuZnVuYyxcbiAgY2xlYXJHcm91cDogUHJvcFR5cGVzLmZ1bmMsXG4gIHN0b3BOb3RpZmljYXRpb25zUG9sbGluZzogUHJvcFR5cGVzLmZ1bmMsXG4gIHRyYW5zbGF0aW9uczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB1bnJlYWRFdmVudDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB1bnJlYWRFdmVudHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZW1wdHlTdGF0ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByZWFkQWxsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNsZWFyQWxsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGRlbGV0ZU5vdGlmaWNhdGlvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgfSksXG59O1xuXG5ub3RpZmljYXRpb25Db250YWluZXIuZGVmYXVsdFByb3BzID0ge1xuICBpc0RyYXdlck9wZW46IGZhbHNlLFxuICBpc1JlYWR5OiBmYWxzZSxcbiAgbm90aWZpY2F0aW9uczoge30sXG4gIGV4cGFuZGVkR3JvdXA6IG51bGwsXG4gIGhhc1VucmVhZE1lc3NhZ2VzOiBmYWxzZSxcbiAgY2xpY2tlZExpbms6IG5vb3AsXG4gIHN0YXJ0Tm90aWZpY2F0aW9uc1BvbGxpbmc6IG5vb3AsXG4gIHRvZ2dsZURyYXdlcjogbm9vcCxcbiAgZXhwYW5kR3JvdXA6IG5vb3AsXG4gIG1hcmtBc1JlYWQ6IG5vb3AsXG4gIG1hcmtHcm91cEFzUmVhZDogbm9vcCxcbiAgY2xlYXJOb3RpZmljYXRpb246IG5vb3AsXG4gIGNsZWFyR3JvdXA6IG5vb3AsXG4gIHN0b3BOb3RpZmljYXRpb25zUG9sbGluZzogbm9vcCxcbiAgdHJhbnNsYXRpb25zOiBOb3RpZmljYXRpb25EcmF3ZXJQYW5lbFdyYXBwZXIuZGVmYXVsdFByb3BzLnRyYW5zbGF0aW9ucyxcbn07XG5cbmNvbnN0IG1hcFN0YXRlVG9Qcm9wcyA9IHN0YXRlID0+IHtcbiAgY29uc3Qge1xuICAgIG5vdGlmaWNhdGlvbnMsXG4gICAgaXNEcmF3ZXJPcGVuLFxuICAgIGV4cGFuZGVkR3JvdXAsXG4gICAgaGFzVW5yZWFkTWVzc2FnZXMsXG4gIH0gPSBzdGF0ZS5ub3RpZmljYXRpb25zO1xuXG4gIHJldHVybiB7XG4gICAgaXNEcmF3ZXJPcGVuLFxuICAgIG5vdGlmaWNhdGlvbnM6IGdyb3VwQnkobm90aWZpY2F0aW9ucywgbiA9PiBuLmdyb3VwKSxcbiAgICBleHBhbmRlZEdyb3VwLFxuICAgIGlzUmVhZHk6ICEhbm90aWZpY2F0aW9ucyxcbiAgICBoYXNVbnJlYWRNZXNzYWdlcyxcbiAgfTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QoXG4gIG1hcFN0YXRlVG9Qcm9wcyxcbiAgTm90aWZpY2F0aW9uQWN0aW9uc1xuKShvbkNsaWNrT3V0c2lkZShub3RpZmljYXRpb25Db250YWluZXIpKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvaW5kZXguanMiLCJpbXBvcnQgeyBiaW5kQWN0aW9uQ3JlYXRvcnMgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgKiBhcyBhY3Rpb25zIGZyb20gJy4vRGlmZk1vZGFsQWN0aW9ucyc7XG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL0RpZmZNb2RhbFJlZHVjZXInO1xuXG5pbXBvcnQgRGlmZk1vZGFsIGZyb20gJy4vRGlmZk1vZGFsJztcblxuLy8gbWFwIHN0YXRlIHRvIHByb3BzXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoeyBkaWZmTW9kYWwgfSkgPT4gKHtcbiAgaXNPcGVuOiBkaWZmTW9kYWwuaXNPcGVuLFxuICBkaWZmOiBkaWZmTW9kYWwuZGlmZixcbiAgdGl0bGU6IGRpZmZNb2RhbC50aXRsZSxcbiAgZGlmZlZpZXdUeXBlOiBkaWZmTW9kYWwuZGlmZlZpZXdUeXBlLFxufSk7XG5cbi8vIG1hcCBhY3Rpb24gZGlzcGF0Y2hlcnMgdG8gcHJvcHNcbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IGRpc3BhdGNoID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhhY3Rpb25zLCBkaXNwYXRjaCk7XG5cbi8vIGV4cG9ydCByZWR1Y2Vyc1xuZXhwb3J0IGNvbnN0IHJlZHVjZXJzID0geyBkaWZmTW9kYWw6IHJlZHVjZXIgfTtcblxuLy8gZXhwb3J0IGNvbm5lY3RlZCBjb21wb25lbnRcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpKERpZmZNb2RhbCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Db25maWdSZXBvcnRzL0RpZmZNb2RhbC9pbmRleC5qcyIsImV4cG9ydCBjb25zdCBESUZGX01PREFMX1RPR0dMRSA9ICdESUZGX01PREFMX1RPR0dMRSc7XG5leHBvcnQgY29uc3QgRElGRl9NT0RBTF9DUkVBVEUgPSAnRElGRl9NT0RBTF9DUkVBVEUnO1xuZXhwb3J0IGNvbnN0IERJRkZfTU9EQUxfVklFV1RZUEUgPSAnRElGRl9NT0RBTF9WSUVXVFlQRSc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Db25maWdSZXBvcnRzL0RpZmZNb2RhbC9EaWZmTW9kYWxDb25zdGFudHMuanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRGlmZlZpZXcvZGlmZnZpZXcuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMTIwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgeyBiaW5kQWN0aW9uQ3JlYXRvcnMgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgKiBhcyBhY3Rpb25zIGZyb20gJy4vRWRpdG9yQWN0aW9ucyc7XG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL0VkaXRvclJlZHVjZXInO1xuXG5pbXBvcnQgRWRpdG9yIGZyb20gJy4vRWRpdG9yJztcblxuaW1wb3J0IHtcbiAgbmF2RmlsdGVyZWRIb3N0c1NlbGVjdG9yLFxuICBuYXZIb3N0c1NlbGVjdG9yLFxuICBzZWxlY3RDaG9zZW5Ib3N0LFxuICBzZWxlY3RDaG9zZW5WaWV3LFxuICBzZWxlY3REaWZmVHlwZSxcbiAgc2VsZWN0RWRpdG9yTmFtZSxcbiAgc2VsZWN0RXJyb3JUZXh0LFxuICBzZWxlY3RJc0ZldGNoaW5nSG9zdHMsXG4gIHNlbGVjdElzTG9hZGluZyxcbiAgc2VsZWN0SXNNYXNrZWQsXG4gIHNlbGVjdElzTWF4aW1pemVkLFxuICBzZWxlY3RJc1JlYWRPbmx5LFxuICBzZWxlY3RJc1JlbmRlcmluZyxcbiAgc2VsZWN0SXNTZWFyY2hpbmdIb3N0cyxcbiAgc2VsZWN0SXNTZWxlY3RPcGVuLFxuICBzZWxlY3RLZXlCaW5kLFxuICBzZWxlY3RNb2RlLFxuICBzZWxlY3RQcmV2aWV3UmVzdWx0LFxuICBzZWxlY3RSZW5kZXJlZEVkaXRvclZhbHVlLFxuICBzZWxlY3RTZWFyY2hRdWVyeSxcbiAgc2VsZWN0U2hvd0Vycm9yLFxuICBzZWxlY3RUaGVtZSxcbiAgc2VsZWN0VmFsdWUsXG59IGZyb20gJy4vRWRpdG9yU2VsZWN0b3JzJztcblxuLy8gbWFwIHN0YXRlIHRvIHByb3BzXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSBzdGF0ZSA9PiAoe1xuICBkaWZmVmlld1R5cGU6IHNlbGVjdERpZmZUeXBlKHN0YXRlKSxcbiAgZWRpdG9yTmFtZTogc2VsZWN0RWRpdG9yTmFtZShzdGF0ZSksXG4gIGVycm9yVGV4dDogc2VsZWN0RXJyb3JUZXh0KHN0YXRlKSxcbiAgZmlsdGVyZWRIb3N0czogbmF2RmlsdGVyZWRIb3N0c1NlbGVjdG9yKHN0YXRlKSxcbiAgaG9zdHM6IG5hdkhvc3RzU2VsZWN0b3Ioc3RhdGUpLFxuICBpc0ZldGNoaW5nSG9zdHM6IHNlbGVjdElzRmV0Y2hpbmdIb3N0cyhzdGF0ZSksXG4gIGlzTG9hZGluZzogc2VsZWN0SXNMb2FkaW5nKHN0YXRlKSxcbiAgaXNNYXNrZWQ6IHNlbGVjdElzTWFza2VkKHN0YXRlKSxcbiAgaXNNYXhpbWl6ZWQ6IHNlbGVjdElzTWF4aW1pemVkKHN0YXRlKSxcbiAgaXNSZW5kZXJpbmc6IHNlbGVjdElzUmVuZGVyaW5nKHN0YXRlKSxcbiAgaXNTZWFyY2hpbmdIb3N0czogc2VsZWN0SXNTZWFyY2hpbmdIb3N0cyhzdGF0ZSksXG4gIGlzU2VsZWN0T3Blbjogc2VsZWN0SXNTZWxlY3RPcGVuKHN0YXRlKSxcbiAga2V5QmluZGluZzogc2VsZWN0S2V5QmluZChzdGF0ZSksXG4gIG1vZGU6IHNlbGVjdE1vZGUoc3RhdGUpLFxuICBwcmV2aWV3UmVzdWx0OiBzZWxlY3RQcmV2aWV3UmVzdWx0KHN0YXRlKSxcbiAgcmVuZGVyZWRFZGl0b3JWYWx1ZTogc2VsZWN0UmVuZGVyZWRFZGl0b3JWYWx1ZShzdGF0ZSksXG4gIHJlYWRPbmx5OiBzZWxlY3RJc1JlYWRPbmx5KHN0YXRlKSxcbiAgc2VhcmNoUXVlcnk6IHNlbGVjdFNlYXJjaFF1ZXJ5KHN0YXRlKSxcbiAgc2VsZWN0ZWRIb3N0OiBzZWxlY3RDaG9zZW5Ib3N0KHN0YXRlKSxcbiAgc2VsZWN0ZWRWaWV3OiBzZWxlY3RDaG9zZW5WaWV3KHN0YXRlKSxcbiAgc2hvd0Vycm9yOiBzZWxlY3RTaG93RXJyb3Ioc3RhdGUpLFxuICB0aGVtZTogc2VsZWN0VGhlbWUoc3RhdGUpLFxuICB2YWx1ZTogc2VsZWN0VmFsdWUoc3RhdGUpLFxufSk7XG5cbi8vIG1hcCBhY3Rpb24gZGlzcGF0Y2hlcnMgdG8gcHJvcHNcbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IGRpc3BhdGNoID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhhY3Rpb25zLCBkaXNwYXRjaCk7XG5cbi8vIGV4cG9ydCByZWR1Y2Vyc1xuZXhwb3J0IGNvbnN0IHJlZHVjZXJzID0geyBlZGl0b3I6IHJlZHVjZXIgfTtcblxuLy8gZXhwb3J0IGNvbm5lY3RlZCBjb21wb25lbnRcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpKEVkaXRvcik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvaW5kZXguanMiLCJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7IEVESVRPUl9IT1NUX0FSUiwgRURJVE9SX0hPU1RfRklMVEVSRURfQVJSIH0gZnJvbSAnLi9FZGl0b3JDb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0RWRpdG9yID0gc3RhdGUgPT4gc3RhdGUuZWRpdG9yO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0VmFsdWUgPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpLnZhbHVlO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFByZXZpZXdSZXN1bHQgPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpLnByZXZpZXdSZXN1bHQ7XG5leHBvcnQgY29uc3Qgc2VsZWN0RXJyb3JUZXh0ID0gc3RhdGUgPT4gc2VsZWN0RWRpdG9yKHN0YXRlKS5lcnJvclRleHQ7XG5leHBvcnQgY29uc3Qgc2VsZWN0TW9kZSA9IHN0YXRlID0+IHNlbGVjdEVkaXRvcihzdGF0ZSkubW9kZTtcbmV4cG9ydCBjb25zdCBzZWxlY3RLZXlCaW5kID0gc3RhdGUgPT4gc2VsZWN0RWRpdG9yKHN0YXRlKS5rZXlCaW5kaW5nO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEVkaXRvck5hbWUgPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpLmVkaXRvck5hbWU7XG5leHBvcnQgY29uc3Qgc2VsZWN0Q2hvc2VuVmlldyA9IHN0YXRlID0+IHNlbGVjdEVkaXRvcihzdGF0ZSkuc2VsZWN0ZWRWaWV3O1xuZXhwb3J0IGNvbnN0IHNlbGVjdFRoZW1lID0gc3RhdGUgPT4gc2VsZWN0RWRpdG9yKHN0YXRlKS50aGVtZTtcbmV4cG9ydCBjb25zdCBzZWxlY3REaWZmVHlwZSA9IHN0YXRlID0+IHNlbGVjdEVkaXRvcihzdGF0ZSkuZGlmZlZpZXdUeXBlO1xuZXhwb3J0IGNvbnN0IHNlbGVjdElzTWF4aW1pemVkID0gc3RhdGUgPT4gc2VsZWN0RWRpdG9yKHN0YXRlKS5pc01heGltaXplZDtcbmV4cG9ydCBjb25zdCBzZWxlY3RJc01hc2tlZCA9IHN0YXRlID0+IHNlbGVjdEVkaXRvcihzdGF0ZSkuaXNNYXNrZWQ7XG5leHBvcnQgY29uc3Qgc2VsZWN0SXNSZW5kZXJpbmcgPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpLmlzUmVuZGVyaW5nO1xuZXhwb3J0IGNvbnN0IHNlbGVjdElzTG9hZGluZyA9IHN0YXRlID0+IHNlbGVjdEVkaXRvcihzdGF0ZSkuaXNMb2FkaW5nO1xuZXhwb3J0IGNvbnN0IHNlbGVjdElzUmVhZE9ubHkgPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpLnJlYWRPbmx5O1xuZXhwb3J0IGNvbnN0IHNlbGVjdFNob3dFcnJvciA9IHN0YXRlID0+IHNlbGVjdEVkaXRvcihzdGF0ZSkuc2hvd0Vycm9yO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFRlbXBsYXRlQ2xhc3MgPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpLnRlbXBsYXRlQ2xhc3M7XG5leHBvcnQgY29uc3Qgc2VsZWN0UmVuZGVyZWRFZGl0b3JWYWx1ZSA9IHN0YXRlID0+XG4gIHNlbGVjdEVkaXRvcihzdGF0ZSkucmVuZGVyZWRFZGl0b3JWYWx1ZTtcblxuLy8gU2VsZWN0XG5leHBvcnQgY29uc3Qgc2VsZWN0SG9zdHMgPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpW0VESVRPUl9IT1NUX0FSUl07XG5leHBvcnQgY29uc3Qgc2VsZWN0RmlsdGVyZWRIb3N0cyA9IHN0YXRlID0+XG4gIHNlbGVjdEVkaXRvcihzdGF0ZSlbRURJVE9SX0hPU1RfRklMVEVSRURfQVJSXTtcbmV4cG9ydCBjb25zdCBzZWxlY3RJc1NlYXJjaGluZ0hvc3RzID0gc3RhdGUgPT5cbiAgc2VsZWN0RWRpdG9yKHN0YXRlKS5pc1NlYXJjaGluZ0hvc3RzO1xuZXhwb3J0IGNvbnN0IHNlbGVjdENob3Nlbkhvc3QgPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpLnNlbGVjdGVkSG9zdDtcbmV4cG9ydCBjb25zdCBzZWxlY3RJc1NlbGVjdE9wZW4gPSBzdGF0ZSA9PiBzZWxlY3RFZGl0b3Ioc3RhdGUpLmlzU2VsZWN0T3BlbjtcbmV4cG9ydCBjb25zdCBzZWxlY3RTZWFyY2hRdWVyeSA9IHN0YXRlID0+IHNlbGVjdEVkaXRvcihzdGF0ZSkuc2VhcmNoUXVlcnk7XG5leHBvcnQgY29uc3Qgc2VsZWN0SXNGZXRjaGluZ0hvc3RzID0gc3RhdGUgPT5cbiAgc2VsZWN0RWRpdG9yKHN0YXRlKS5pc0ZldGNoaW5nSG9zdHM7XG5cbmV4cG9ydCBjb25zdCBuYXZIb3N0c1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0SG9zdHMsIGhvc3RzID0+XG4gIG5hdkhvc3RzKGhvc3RzKVxuKTtcblxuZXhwb3J0IGNvbnN0IG5hdkZpbHRlcmVkSG9zdHNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RGaWx0ZXJlZEhvc3RzLFxuICBob3N0cyA9PiBuYXZIb3N0cyhob3N0cylcbik7XG5cbmNvbnN0IG5hdkhvc3RzID0gaG9zdHMgPT4ge1xuICBpZiAoaG9zdHMpXG4gICAgcmV0dXJuIGhvc3RzLm1hcChob3N0ID0+ICh7IGlkOiBob3N0LmlkLnRvU3RyaW5nKCksIG5hbWU6IGhvc3QubmFtZSB9KSk7XG4gIHJldHVybiBbXTtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9yU2VsZWN0b3JzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgQWNlRWRpdG9yIGZyb20gJ3JlYWN0LWFjZSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCAnYnJhY2UvZXh0L3NlYXJjaGJveCc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBFZGl0b3JWaWV3ID0gKHtcbiAgY2xhc3NOYW1lLFxuICBpc01hc2tlZCxcbiAga2V5QmluZGluZyxcbiAgbW9kZSxcbiAgbmFtZSxcbiAgb25DaGFuZ2UsXG4gIHJlYWRPbmx5LFxuICB0aGVtZSxcbiAgdmFsdWUsXG4gIGlzU2VsZWN0ZWQsXG59KSA9PiAoXG4gIDxBY2VFZGl0b3JcbiAgICB2YWx1ZT17dmFsdWV9XG4gICAgbW9kZT17bW9kZS50b0xvd2VyQ2FzZSgpfVxuICAgIHRoZW1lPXt0aGVtZS50b0xvd2VyQ2FzZSgpfVxuICAgIGtleWJvYXJkSGFuZGxlcj17a2V5QmluZGluZyA9PT0gJ0RlZmF1bHQnID8gbnVsbCA6IGtleUJpbmRpbmcudG9Mb3dlckNhc2UoKX1cbiAgICBvbkNoYW5nZT17KGVkaXRvclZhbHVlLCBldmVudCkgPT4gb25DaGFuZ2UoZWRpdG9yVmFsdWUpfVxuICAgIG5hbWU9e25hbWV9XG4gICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHtcbiAgICAgIFtjbGFzc05hbWVdOiBpc1NlbGVjdGVkLFxuICAgICAgJ21hc2stZWRpdG9yJzogaXNNYXNrZWQsXG4gICAgICBoaWRkZW46ICFpc1NlbGVjdGVkLFxuICAgIH0pfVxuICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICBlZGl0b3JQcm9wcz17eyAkYmxvY2tTY3JvbGxpbmc6IEluZmluaXR5IH19XG4gICAgc2hvd1ByaW50TWFyZ2luPXtmYWxzZX1cbiAgICBkZWJvdW5jZUNoYW5nZVBlcmlvZD17MjUwfVxuICAvPlxuKTtcbkVkaXRvclZpZXcucHJvcFR5cGVzID0ge1xuICBtb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRoZW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGtleUJpbmRpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICByZWFkT25seTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpc01hc2tlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaXNTZWxlY3RlZDogUHJvcFR5cGVzLmJvb2wsXG59O1xuRWRpdG9yVmlldy5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJycsXG4gIG9uQ2hhbmdlOiBub29wLFxuICB2YWx1ZTogJzwvPicsXG4gIGlzU2VsZWN0ZWQ6IHRydWUsXG59O1xuZXhwb3J0IGRlZmF1bHQgRWRpdG9yVmlldztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9jb21wb25lbnRzL0VkaXRvclZpZXcuanMiLCJleHBvcnQgY29uc3QgVEVNUExBVEVfR0VORVJBVEVfUkVRVUVTVCA9ICdURU1QTEFURV9HRU5FUkFURV9SRVFVRVNUJztcbmV4cG9ydCBjb25zdCBURU1QTEFURV9HRU5FUkFURV9QT0xMSU5HID0gJ1RFTVBMQVRFX0dFTkVSQVRFX1BPTExJTkcnO1xuZXhwb3J0IGNvbnN0IFRFTVBMQVRFX0dFTkVSQVRFX1NVQ0NFU1MgPSAnVEVNUExBVEVfR0VORVJBVEVfU1VDQ0VTUyc7XG5leHBvcnQgY29uc3QgVEVNUExBVEVfR0VORVJBVEVfRkFJTFVSRSA9ICdURU1QTEFURV9HRU5FUkFURV9GQUlMVVJFJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1RlbXBsYXRlR2VuZXJhdG9yL1RlbXBsYXRlR2VuZXJhdG9yQ29uc3RhbnRzLmpzIiwiaW1wb3J0IHsgY3JlYXRlU2xpY2UgfSBmcm9tICdAcmVkdXhqcy90b29sa2l0JztcblxuY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICBtb2RhbFRvRGlzcGxheToge30sXG59O1xuXG5jb25zdCBmYWN0Q2hhcnRTbGljZSA9IGNyZWF0ZVNsaWNlKHtcbiAgbmFtZTogJ2ZhY3RDaGFydCcsXG4gIGluaXRpYWxTdGF0ZSxcbiAgcmVkdWNlcnM6IHtcbiAgICBvcGVuTW9kYWwoc3RhdGUsIHsgcGF5bG9hZCB9KSB7XG4gICAgICBzdGF0ZS50aXRsZSA9IHBheWxvYWQudGl0bGU7XG4gICAgICBzdGF0ZS5tb2RhbFRvRGlzcGxheSA9IHsgW3BheWxvYWQuaWRdOiB0cnVlIH07XG4gICAgfSxcbiAgICBjbG9zZU1vZGFsKHN0YXRlKSB7XG4gICAgICBzdGF0ZS5tb2RhbFRvRGlzcGxheSA9IHt9O1xuICAgIH0sXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHsgb3Blbk1vZGFsLCBjbG9zZU1vZGFsIH0gPSBmYWN0Q2hhcnRTbGljZS5hY3Rpb25zO1xuZXhwb3J0IGRlZmF1bHQgZmFjdENoYXJ0U2xpY2UucmVkdWNlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZhY3RDaGFydHMvc2xpY2UuanMiLCJpbXBvcnQgeyBSRUdJU1RFUl9GSUxMLCBSRU1PVkVfRklMTEVEX0NPTVBPTkVOVCB9IGZyb20gJy4vRmlsbENvbnN0YW50cyc7XG5pbXBvcnQgU2xvdHNSZWdpc3RyeSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9TbG90c1JlZ2lzdHJ5JztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyRmlsbENvbXBvbmVudCA9IChcbiAgc2xvdElkLFxuICBvdmVycmlkZVByb3BzLFxuICBmaWxsSWQsXG4gIGNvbXBvbmVudCxcbiAgd2VpZ2h0LFxuICBtZXRhZGF0YVxuKSA9PiBkaXNwYXRjaCA9PiB7XG4gIFNsb3RzUmVnaXN0cnkuYWRkKHNsb3RJZCwgZmlsbElkLCBjb21wb25lbnQsIHdlaWdodCwgb3ZlcnJpZGVQcm9wcyk7XG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBSRUdJU1RFUl9GSUxMLFxuICAgIHBheWxvYWQ6IHsgc2xvdElkLCBmaWxsSWQsIHdlaWdodCwgbWV0YWRhdGEgfSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdW5yZWdpc3RlckZpbGxDb21wb25lbnQgPSAoc2xvdElkLCBmaWxsSWQpID0+IGRpc3BhdGNoID0+IHtcbiAgU2xvdHNSZWdpc3RyeS5yZW1vdmUoc2xvdElkLCBmaWxsSWQpO1xuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogUkVNT1ZFX0ZJTExFRF9DT01QT05FTlQsXG4gICAgcGF5bG9hZDogeyBzbG90SWQsIGZpbGxJZCB9LFxuICB9KTtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRmlsbC9GaWxsQWN0aW9ucy5qcyIsImV4cG9ydCBjb25zdCBSRUdJU1RFUl9GSUxMID0gJ1NMT1RfQU5EX0ZJTExfUkVHSVNURVJfRklMTCc7XG5cbmV4cG9ydCBjb25zdCBSRU1PVkVfRklMTEVEX0NPTVBPTkVOVCA9ICdTTE9UX0FORF9GSUxMX1JFTU9WRV9GSUxMRURfQ09NUE9ORU5UJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9GaWxsL0ZpbGxDb25zdGFudHMuanMiLCJpbXBvcnQgZm9yY2VTaW5nbGV0b24gZnJvbSAnLi4vLi4vcmVhY3RfYXBwL2NvbW1vbi9mb3JjZVNpbmdsZXRvbic7XG5cbmNsYXNzIFNsb3RzUmVnaXN0cnkge1xuICBzdGF0aWMgcmVnaXN0cnkgPSBmb3JjZVNpbmdsZXRvbignc2xvdHNfcmVnaXN0cnknLCAoKSA9PiAoe30pKTtcbiAgc3RhdGljIGFkZCA9IChTbG90SWQsIGZpbGxJZCwgY29tcG9uZW50LCB3ZWlnaHQsIG92ZXJyaWRlUHJvcHMpID0+IHtcbiAgICBpZiAodGhpcy5yZWdpc3RyeVtTbG90SWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVnaXN0cnlbU2xvdElkXSA9IHt9O1xuICAgIH1cbiAgICBjb21wb25lbnQgPSBjb21wb25lbnQgfHwgb3ZlcnJpZGVQcm9wcztcbiAgICB0aGlzLnJlZ2lzdHJ5W1Nsb3RJZF1bZmlsbElkXSA9IHsgY29tcG9uZW50LCB3ZWlnaHQsIGlkOiBmaWxsSWQgfTtcbiAgfTtcbiAgc3RhdGljIHJlbW92ZSA9IChTbG90SWQsIGZpbGxJZCkgPT4ge1xuICAgIGNvbnN0IHNsb3RJdGVtcyA9IHRoaXMucmVnaXN0cnlbU2xvdElkXTtcblxuICAgIGRlbGV0ZSBzbG90SXRlbXNbZmlsbElkXTtcbiAgfTtcblxuICBzdGF0aWMgZ2V0U2xvdENvbXBvbmVudHMgPSBpZCA9PlxuICAgIHRoaXMucmVnaXN0cnlbaWRdID8gT2JqZWN0LnZhbHVlcyh0aGlzLnJlZ2lzdHJ5W2lkXSkgOiBbXTtcblxuICBzdGF0aWMgZ2V0RmlsbHNGcm9tU2xvdCA9IHNsb3RJZCA9PiB0aGlzLnJlZ2lzdHJ5W3Nsb3RJZF07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNsb3RzUmVnaXN0cnk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9TbG90c1JlZ2lzdHJ5L2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBUeXBlQWhlYWRTZWxlY3QgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IGluaXRpYWxVcGRhdGUsIHVwZGF0ZVNlbGVjdGVkIH0gZnJvbSAnLi9UeXBlQWhlYWRTZWxlY3RBY3Rpb25zJztcbmltcG9ydCB7XG4gIHNlbGVjdFR5cGVBaGVhZFNlbGVjdEV4aXN0cyxcbiAgc2VsZWN0T3B0aW9ucyxcbiAgc2VsZWN0U2VsZWN0ZWQsXG59IGZyb20gJy4vVHlwZUFoZWFkU2VsZWN0U2VsZWN0b3JzJztcbmltcG9ydCByZWR1Y2VyIGZyb20gJy4vVHlwZUFoZWFkU2VsZWN0UmVkdWNlcic7XG5cbmNvbnN0IENvbm5lY3RlZFR5cGVBaGVhZFNlbGVjdCA9ICh7XG4gIGlkLFxuICBvcHRpb25zLFxuICBzZWxlY3RlZCxcbiAgYWxsb3dOZXcsXG4gIG11bHRpcGxlLFxuICBwbGFjZWhvbGRlcixcbiAgZGVmYXVsdElucHV0VmFsdWUsXG4gIGNsZWFyQnV0dG9uLFxuICBpbnB1dFByb3BzLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGV4aXN0cyA9IHVzZVNlbGVjdG9yKHN0YXRlID0+IHNlbGVjdFR5cGVBaGVhZFNlbGVjdEV4aXN0cyhzdGF0ZSwgaWQpKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZXhpc3RzKSB7XG4gICAgICBkaXNwYXRjaChpbml0aWFsVXBkYXRlKG9wdGlvbnMsIHNlbGVjdGVkLCBpZCkpO1xuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBleGlzdHMsIG9wdGlvbnMsIHNlbGVjdGVkLCBpZF0pO1xuXG4gIGNvbnN0IF9zZWxlY3RlZCA9IHVzZVNlbGVjdG9yKHN0YXRlID0+IHNlbGVjdFNlbGVjdGVkKHN0YXRlLCBpZCkpO1xuICBjb25zdCBfb3B0aW9ucyA9IHVzZVNlbGVjdG9yKHN0YXRlID0+IHNlbGVjdE9wdGlvbnMoc3RhdGUsIGlkKSk7XG4gIGNvbnN0IG9uQ2hhbmdlID0gaXRlbXMgPT4gZGlzcGF0Y2godXBkYXRlU2VsZWN0ZWQoaXRlbXMsIGlkKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8VHlwZUFoZWFkU2VsZWN0XG4gICAgICBpZD17aWR9XG4gICAgICBvcHRpb25zPXtfb3B0aW9uc31cbiAgICAgIHNlbGVjdGVkPXtfc2VsZWN0ZWR9XG4gICAgICBhbGxvd05ldz17YWxsb3dOZXd9XG4gICAgICBtdWx0aXBsZT17bXVsdGlwbGV9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBkZWZhdWx0SW5wdXRWYWx1ZT17ZGVmYXVsdElucHV0VmFsdWV9XG4gICAgICBjbGVhckJ1dHRvbj17Y2xlYXJCdXR0b259XG4gICAgICBpbnB1dFByb3BzPXtpbnB1dFByb3BzfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgIC8+XG4gICk7XG59O1xuXG5Db25uZWN0ZWRUeXBlQWhlYWRTZWxlY3QucHJvcFR5cGVzID0ge1xuICBpZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLmlzUmVxdWlyZWQsXG4gIG9wdGlvbnM6IFByb3BUeXBlcy5hcnJheSxcbiAgc2VsZWN0ZWQ6IFByb3BUeXBlcy5hcnJheSxcbiAgYWxsb3dOZXc6IFByb3BUeXBlcy5ib29sLFxuICBtdWx0aXBsZTogUHJvcFR5cGVzLmJvb2wsXG4gIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkZWZhdWx0SW5wdXRWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xlYXJCdXR0b246IFByb3BUeXBlcy5ib29sLFxuICBpbnB1dFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxufTtcblxuQ29ubmVjdGVkVHlwZUFoZWFkU2VsZWN0LmRlZmF1bHRQcm9wcyA9IHtcbiAgb3B0aW9uczogW10sXG4gIHNlbGVjdGVkOiBbXSxcbiAgYWxsb3dOZXc6IGZhbHNlLFxuICBtdWx0aXBsZTogZmFsc2UsXG4gIHBsYWNlaG9sZGVyOiAnJyxcbiAgZGVmYXVsdElucHV0VmFsdWU6ICcnLFxuICBjbGVhckJ1dHRvbjogZmFsc2UsXG4gIGlucHV0UHJvcHM6IHt9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29ubmVjdGVkVHlwZUFoZWFkU2VsZWN0O1xuXG5leHBvcnQgY29uc3QgcmVkdWNlcnMgPSB7IHR5cGVBaGVhZFNlbGVjdDogcmVkdWNlciB9O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1R5cGVBaGVhZFNlbGVjdC9pbmRleC5qcyIsImV4cG9ydCBjb25zdCBJTklUID0gJ1RZUEVBSEVBRF9JTklUJztcbmV4cG9ydCBjb25zdCBVUERBVEVfT1BUSU9OUyA9ICdUWVBFQUhFQURfVVBEQVRFX09QVElPTlMnO1xuZXhwb3J0IGNvbnN0IFVQREFURV9TRUxFQ1RFRCA9ICdUWVBFQUhFQURfVVBEQVRFX1NFTEVDVEVEJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9UeXBlQWhlYWRTZWxlY3QvVHlwZUFoZWFkU2VsZWN0Q29uc3RhbnRzLmpzIiwiaW1wb3J0IEltbXV0YWJsZSBmcm9tICdzZWFtbGVzcy1pbW11dGFibGUnO1xuXG5leHBvcnQgY29uc3QgbWFwU2VsZWN0ZWQgPSBzZWxlY3RlZCA9PiBzZWxlY3RlZC5tYXAoaXRlbSA9PiBpdGVtLmxhYmVsIHx8IGl0ZW0pO1xuXG5jb25zdCBzZWxlY3RUeXBlQWhlYWRTZWxlY3QgPSAoeyB0eXBlQWhlYWRTZWxlY3QgfSwgaWQpID0+XG4gIHR5cGVBaGVhZFNlbGVjdFtpZF0gfHwge307XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RUeXBlQWhlYWRTZWxlY3RFeGlzdHMgPSAoeyB0eXBlQWhlYWRTZWxlY3QgfSwgaWQpID0+XG4gICEhdHlwZUFoZWFkU2VsZWN0W2lkXTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdE9wdGlvbnMgPSAoc3RhdGUsIGlkKSA9PiB7XG4gIGNvbnN0IHR5cGVBaGVhZCA9IHNlbGVjdFR5cGVBaGVhZFNlbGVjdChzdGF0ZSwgaWQpO1xuICBjb25zdCBvcHRpb25zID0gdHlwZUFoZWFkLm9wdGlvbnMgfHwgW107XG4gIHJldHVybiBJbW11dGFibGUuaXNJbW11dGFibGUob3B0aW9ucykgPyBvcHRpb25zLmFzTXV0YWJsZSgpIDogb3B0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RTZWxlY3RlZCA9IChzdGF0ZSwgaWQpID0+XG4gIHNlbGVjdFR5cGVBaGVhZFNlbGVjdChzdGF0ZSwgaWQpLnNlbGVjdGVkO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1R5cGVBaGVhZFNlbGVjdC9UeXBlQWhlYWRTZWxlY3RTZWxlY3RvcnMuanMiLCJpbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgY29tcG9zZSwgY29tYmluZVJlZHVjZXJzLCBiaW5kQWN0aW9uQ3JlYXRvcnMgfSBmcm9tICdyZWR1eCc7XG5cbmltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSAnLi9BdWRpdHNQYWdlQWN0aW9ucyc7XG5cbmltcG9ydCBBdWRpdHNQYWdlIGZyb20gJy4vQXVkaXRzUGFnZSc7XG5pbXBvcnQge1xuICBzZWxlY3RBdWRpdHMsXG4gIHNlbGVjdEF1ZGl0c0NvdW50LFxuICBzZWxlY3RBdWRpdHNNZXNzYWdlLFxuICBzZWxlY3RBdWRpdHNQZXJQYWdlLFxuICBzZWxlY3RBdWRpdHNTZWFyY2gsXG4gIHNlbGVjdEF1ZGl0c1NlbGVjdGVkUGFnZSxcbiAgc2VsZWN0QXVkaXRzSGFzRGF0YSxcbiAgc2VsZWN0QXVkaXRzSGFzRXJyb3IsXG4gIHNlbGVjdEF1ZGl0c0lzTG9hZGluZ1BhZ2UsXG59IGZyb20gJy4vQXVkaXRzUGFnZVNlbGVjdG9ycyc7XG5pbXBvcnQgeyBjYWxsT25Nb3VudCwgY2FsbE9uUG9wU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSE9DJztcbmltcG9ydCB3aXRoUXVlcnlSZWR1Y2VyIGZyb20gJy4uLy4uL2NvbW1vbi9yZWR1Y2VySE9DL3dpdGhRdWVyeVJlZHVjZXInO1xuaW1wb3J0IHdpdGhEYXRhUmVkdWNlciBmcm9tICcuLi8uLi9jb21tb24vcmVkdWNlckhPQy93aXRoRGF0YVJlZHVjZXInO1xuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSBzdGF0ZSA9PiAoe1xuICBhdWRpdHM6IHNlbGVjdEF1ZGl0cyhzdGF0ZSksXG4gIGlzTG9hZGluZzogc2VsZWN0QXVkaXRzSXNMb2FkaW5nUGFnZShzdGF0ZSksXG4gIGl0ZW1Db3VudDogc2VsZWN0QXVkaXRzQ291bnQoc3RhdGUpLFxuICBtZXNzYWdlOiBzZWxlY3RBdWRpdHNNZXNzYWdlKHN0YXRlKSxcbiAgcGFnZTogc2VsZWN0QXVkaXRzU2VsZWN0ZWRQYWdlKHN0YXRlKSxcbiAgcGVyUGFnZTogc2VsZWN0QXVkaXRzUGVyUGFnZShzdGF0ZSksXG4gIHNlYXJjaFF1ZXJ5OiBzZWxlY3RBdWRpdHNTZWFyY2goc3RhdGUpLFxuICBoYXNFcnJvcjogc2VsZWN0QXVkaXRzSGFzRXJyb3Ioc3RhdGUpLFxuICBoYXNEYXRhOiBzZWxlY3RBdWRpdHNIYXNEYXRhKHN0YXRlKSxcbn0pO1xuXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSBkaXNwYXRjaCA9PiBiaW5kQWN0aW9uQ3JlYXRvcnMoYWN0aW9ucywgZGlzcGF0Y2gpO1xuXG5leHBvcnQgY29uc3QgcmVkdWNlcnMgPSB7XG4gIGF1ZGl0c1BhZ2U6IGNvbWJpbmVSZWR1Y2Vycyh7XG4gICAgZGF0YTogd2l0aERhdGFSZWR1Y2VyKCdBVURJVFNfUEFHRScpLFxuICAgIHF1ZXJ5OiB3aXRoUXVlcnlSZWR1Y2VyKCdBVURJVFNfUEFHRScpLFxuICB9KSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvc2UoXG4gIGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpLFxuICBjYWxsT25Nb3VudCgoeyBpbml0aWFsaXplQXVkaXRzIH0pID0+IGluaXRpYWxpemVBdWRpdHMoKSksXG4gIGNhbGxPblBvcFN0YXRlKCh7IGluaXRpYWxpemVBdWRpdHMgfSkgPT4gaW5pdGlhbGl6ZUF1ZGl0cygpKVxuKShBdWRpdHNQYWdlKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvQXVkaXRzL0F1ZGl0c1BhZ2UvaW5kZXguanMiLCJleHBvcnQgY29uc3Qgc2VsZWN0QXVkaXRzUGFnZURhdGEgPSBzdGF0ZSA9PiBzdGF0ZS5hdWRpdHNQYWdlLmRhdGE7XG5leHBvcnQgY29uc3Qgc2VsZWN0QXVkaXRzUGFnZVF1ZXJ5ID0gc3RhdGUgPT4gc3RhdGUuYXVkaXRzUGFnZS5xdWVyeTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEF1ZGl0cyA9IHN0YXRlID0+IHNlbGVjdEF1ZGl0c1BhZ2VEYXRhKHN0YXRlKS5hdWRpdHM7XG5leHBvcnQgY29uc3Qgc2VsZWN0QXVkaXRzTWVzc2FnZSA9IHN0YXRlID0+IHNlbGVjdEF1ZGl0c1BhZ2VEYXRhKHN0YXRlKS5tZXNzYWdlO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEF1ZGl0c0lzTG9hZGluZ1BhZ2UgPSBzdGF0ZSA9PlxuICBzZWxlY3RBdWRpdHNQYWdlRGF0YShzdGF0ZSkuaXNMb2FkaW5nO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEF1ZGl0c0hhc0Vycm9yID0gc3RhdGUgPT5cbiAgc2VsZWN0QXVkaXRzUGFnZURhdGEoc3RhdGUpLmhhc0Vycm9yO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEF1ZGl0c0hhc0RhdGEgPSBzdGF0ZSA9PiBzZWxlY3RBdWRpdHNQYWdlRGF0YShzdGF0ZSkuaGFzRGF0YTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEF1ZGl0c1NlbGVjdGVkUGFnZSA9IHN0YXRlID0+XG4gIHNlbGVjdEF1ZGl0c1BhZ2VRdWVyeShzdGF0ZSkucGFnZTtcbmV4cG9ydCBjb25zdCBzZWxlY3RBdWRpdHNQZXJQYWdlID0gc3RhdGUgPT5cbiAgc2VsZWN0QXVkaXRzUGFnZVF1ZXJ5KHN0YXRlKS5wZXJQYWdlO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEF1ZGl0c0NvdW50ID0gc3RhdGUgPT5cbiAgc2VsZWN0QXVkaXRzUGFnZVF1ZXJ5KHN0YXRlKS5pdGVtQ291bnQ7XG5leHBvcnQgY29uc3Qgc2VsZWN0QXVkaXRzU2VhcmNoID0gc3RhdGUgPT5cbiAgc2VsZWN0QXVkaXRzUGFnZVF1ZXJ5KHN0YXRlKS5zZWFyY2hRdWVyeTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvQXVkaXRzL0F1ZGl0c1BhZ2UvQXVkaXRzUGFnZVNlbGVjdG9ycy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgUm93LCBDb2wsIFNwaW5uZXIgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IGNoYW5nZVF1ZXJ5IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3VybEhlbHBlcnMnO1xuXG5pbXBvcnQgQnJlYWRjcnVtYkJhciBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0JyZWFkY3J1bWJCYXInO1xuaW1wb3J0IFNlYXJjaEJhciBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1NlYXJjaEJhcic7XG5pbXBvcnQgSGVhZCBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0hlYWQnO1xuXG5jb25zdCBQYWdlTGF5b3V0ID0gKHtcbiAgc2VhcmNoYWJsZSxcbiAgc2VhcmNoUHJvcHMsXG4gIHNlYXJjaFF1ZXJ5LFxuICBvblNlYXJjaCxcbiAgb25Cb29rbWFya0NsaWNrLFxuICBjdXN0b21CcmVhZGNydW1icyxcbiAgYnJlYWRjcnVtYk9wdGlvbnMsXG4gIHRvb2xiYXJCdXR0b25zLFxuICBoZWFkZXIsXG4gIGJlZm9yZVRvb2xiYXJDb21wb25lbnQsXG4gIGlzTG9hZGluZyxcbiAgY2hpbGRyZW4sXG59KSA9PiAoXG4gIDxkaXYgaWQ9XCJtYWluXCI+XG4gICAgPGRpdiBpZD1cInJlYWN0LWNvbnRlbnRcIj5cbiAgICAgIDxIZWFkPlxuICAgICAgICA8dGl0bGU+e2hlYWRlcn08L3RpdGxlPlxuICAgICAgPC9IZWFkPlxuICAgICAgPGRpdiBpZD1cImJyZWFkY3J1bWJcIj5cbiAgICAgICAgeyFicmVhZGNydW1iT3B0aW9ucyAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cImNvbC1tZC04XCI+e2hlYWRlcn08L2gxPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICB7Y3VzdG9tQnJlYWRjcnVtYnMgfHxcbiAgICAgICAgICAoYnJlYWRjcnVtYk9wdGlvbnMgJiYgPEJyZWFkY3J1bWJCYXIgey4uLmJyZWFkY3J1bWJPcHRpb25zfSAvPil9XG4gICAgICA8L2Rpdj5cbiAgICAgIHtiZWZvcmVUb29sYmFyQ29tcG9uZW50fVxuICAgICAgPFJvdz5cbiAgICAgICAgPENvbCBjbGFzc05hbWU9XCJ0aXRsZV9maWx0ZXJcIiBtZD17c2VhcmNoYWJsZSA/IDYgOiA0fT5cbiAgICAgICAgICB7c2VhcmNoYWJsZSAmJiAoXG4gICAgICAgICAgICA8U2VhcmNoQmFyXG4gICAgICAgICAgICAgIGRhdGE9e3NlYXJjaFByb3BzfVxuICAgICAgICAgICAgICBpbml0aWFsUXVlcnk9e3NlYXJjaFF1ZXJ5fVxuICAgICAgICAgICAgICBvblNlYXJjaD17b25TZWFyY2h9XG4gICAgICAgICAgICAgIG9uQm9va21hcmtDbGljaz17b25Cb29rbWFya0NsaWNrfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgICZuYnNwO1xuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBpZD1cInRpdGxlX2FjdGlvblwiIG1kPXtzZWFyY2hhYmxlID8gNiA6IDh9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnRuLXRvb2xiYXIgcHVsbC1yaWdodFwiPlxuICAgICAgICAgICAge2lzTG9hZGluZyAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgaWQ9XCJ0b29sYmFyLXNwaW5uZXJcIj5cbiAgICAgICAgICAgICAgICA8U3Bpbm5lciBsb2FkaW5nIHNpemU9XCJzbVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHt0b29sYmFyQnV0dG9uc31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4pO1xuXG5QYWdlTGF5b3V0LnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gIHNlYXJjaGFibGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGhlYWRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2VhcmNoUHJvcHM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYXV0b2NvbXBsZXRlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgcmVzdWx0czogUHJvcFR5cGVzLmFycmF5LFxuICAgICAgc2VhcmNoUXVlcnk6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB1cmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB1c2VLZXlTaG9ydGN1dHM6IFByb3BUeXBlcy5ib29sLFxuICAgIH0pLFxuICAgIGNvbnRyb2xsZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYm9va21hcmtzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHF1ZXJ5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIH0pLFxuICB9KSxcbiAgY3VzdG9tQnJlYWRjcnVtYnM6IFByb3BUeXBlcy5ub2RlLFxuICBicmVhZGNydW1iT3B0aW9uczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBpc1N3aXRjaGFibGU6IFByb3BUeXBlcy5ib29sLFxuICAgIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbmFtZUZpZWxkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgcmVzb3VyY2VVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBzd2l0Y2hlckl0ZW1Vcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICByZXNvdXJjZUZpbHRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9KSxcbiAgICBicmVhZGNydW1iSXRlbXM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgY2FwdGlvbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgICAgICAgUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICAgICAgICBpY29uOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICAgICAgICB1cmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgICAgICAgIGFsdDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSksXG4gICAgICAgIHVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIH0pXG4gICAgKSxcbiAgfSksXG4gIHRvb2xiYXJCdXR0b25zOiBQcm9wVHlwZXMubm9kZSxcbiAgb25TZWFyY2g6IFByb3BUeXBlcy5mdW5jLFxuICBvbkJvb2ttYXJrQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICBzZWFyY2hRdWVyeTogUHJvcFR5cGVzLnN0cmluZyxcbiAgYmVmb3JlVG9vbGJhckNvbXBvbmVudDogUHJvcFR5cGVzLm5vZGUsXG4gIGlzTG9hZGluZzogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5QYWdlTGF5b3V0LmRlZmF1bHRQcm9wcyA9IHtcbiAgc2VhcmNoUHJvcHM6IHt9LFxuICBoZWFkZXI6ICcnLFxuICBzZWFyY2hRdWVyeTogJycsXG4gIGN1c3RvbUJyZWFkY3J1bWJzOiBudWxsLFxuICB0b29sYmFyQnV0dG9uczogbnVsbCxcbiAgYnJlYWRjcnVtYk9wdGlvbnM6IG51bGwsXG4gIGlzTG9hZGluZzogZmFsc2UsXG4gIG9uU2VhcmNoOiBzZWFyY2hRdWVyeSA9PiBjaGFuZ2VRdWVyeSh7IHNlYXJjaDogc2VhcmNoUXVlcnkudHJpbSgpLCBwYWdlOiAxIH0pLFxuICBvbkJvb2ttYXJrQ2xpY2s6IHNlYXJjaFF1ZXJ5ID0+XG4gICAgY2hhbmdlUXVlcnkoeyBzZWFyY2g6IHNlYXJjaFF1ZXJ5LnRyaW0oKSwgcGFnZTogMSB9KSxcbiAgYmVmb3JlVG9vbGJhckNvbXBvbmVudDogbnVsbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBhZ2VMYXlvdXQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL2NvbW1vbi9QYWdlTGF5b3V0L1BhZ2VMYXlvdXQuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGdldEJvb2ttYXJrcyB9IGZyb20gJy4vQm9va21hcmtzQWN0aW9ucyc7XG5pbXBvcnQgeyBCT09LTUFSS1NfTU9EQUwsIEJPT0tNQVJLUyB9IGZyb20gJy4vQm9va21hcmtzQ29uc3RhbnRzJztcbmltcG9ydCB7IHVzZUZvcmVtYW5Nb2RhbCB9IGZyb20gJy4uLy4uL0ZvcmVtYW5Nb2RhbC9Gb3JlbWFuTW9kYWxIb29rcyc7XG5pbXBvcnQgeyBzZWxlY3RJc01vZGFsT3BlbiB9IGZyb20gJy4uLy4uL0ZvcmVtYW5Nb2RhbC9Gb3JlbWFuTW9kYWxTZWxlY3RvcnMnO1xuaW1wb3J0IEJvb2ttYXJrcyBmcm9tICcuL0Jvb2ttYXJrcyc7XG5cbmltcG9ydCByZWR1Y2VyIGZyb20gJy4vQm9va21hcmtzUmVkdWNlcic7XG5pbXBvcnQge1xuICBzZWxlY3RBUElTdGF0dXMsXG4gIHNlbGVjdEFQSUVycm9yLFxufSBmcm9tICcuLi8uLi8uLi9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzJztcbmltcG9ydCB7IHNlbGVjdEJvb2ttYXJrc1Jlc3VsdHMgfSBmcm9tICcuL0Jvb2ttYXJrc1NlbGVjdG9ycyc7XG5cbmNvbnN0IENvbm5lY3RlZEJvb2ttYXJrcyA9ICh7XG4gIGNvbnRyb2xsZXIsXG4gIG9uQm9va21hcmtDbGljayxcbiAgdXJsLFxuICBjYW5DcmVhdGUsXG4gIGRvY3VtZW50YXRpb25VcmwsXG59KSA9PiB7XG4gIGNvbnN0IGtleSA9IGAke0JPT0tNQVJLU31fJHtjb250cm9sbGVyLnRvVXBwZXJDYXNlKCl9YDtcbiAgY29uc3Qgc3RhdHVzID0gdXNlU2VsZWN0b3Ioc3RvcmUgPT4gc2VsZWN0QVBJU3RhdHVzKHN0b3JlLCBrZXkpKTtcbiAgY29uc3QgZXJyb3JzID0gdXNlU2VsZWN0b3Ioc3RvcmUgPT4gc2VsZWN0QVBJRXJyb3Ioc3RvcmUsIGtleSkpO1xuICBjb25zdCBib29rbWFya3MgPSB1c2VTZWxlY3RvcihzdG9yZSA9PlxuICAgIHNlbGVjdEJvb2ttYXJrc1Jlc3VsdHMoc3RvcmUsIGtleSwgY29udHJvbGxlcilcbiAgKTtcbiAgY29uc3QgaXNNb2RhbE9wZW4gPSB1c2VTZWxlY3RvcihzdG9yZSA9PlxuICAgIHNlbGVjdElzTW9kYWxPcGVuKHN0b3JlLCBCT09LTUFSS1NfTU9EQUwpXG4gICk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcblxuICBjb25zdCB7IHNldE1vZGFsT3Blbiwgc2V0TW9kYWxDbG9zZWQgfSA9IHVzZUZvcmVtYW5Nb2RhbCh7XG4gICAgaWQ6IEJPT0tNQVJLU19NT0RBTCxcbiAgfSk7XG4gIHJldHVybiAoXG4gICAgPEJvb2ttYXJrc1xuICAgICAgYm9va21hcmtzPXtib29rbWFya3N9XG4gICAgICBzdGF0dXM9e3N0YXR1c31cbiAgICAgIHVybD17dXJsfVxuICAgICAgY29udHJvbGxlcj17Y29udHJvbGxlcn1cbiAgICAgIGdldEJvb2ttYXJrcz17KCkgPT4gZGlzcGF0Y2goZ2V0Qm9va21hcmtzKHVybCwgY29udHJvbGxlcikpfVxuICAgICAgY2FuQ3JlYXRlPXtjYW5DcmVhdGV9XG4gICAgICBlcnJvcnM9e2Vycm9yc31cbiAgICAgIGRvY3VtZW50YXRpb25Vcmw9e2RvY3VtZW50YXRpb25Vcmx9XG4gICAgICBvbkJvb2ttYXJrQ2xpY2s9e29uQm9va21hcmtDbGlja31cbiAgICAgIHNldE1vZGFsT3Blbj17c2V0TW9kYWxPcGVufVxuICAgICAgc2V0TW9kYWxDbG9zZWQ9e3NldE1vZGFsQ2xvc2VkfVxuICAgICAgaXNNb2RhbE9wZW49e2lzTW9kYWxPcGVufVxuICAgIC8+XG4gICk7XG59O1xuXG5Db25uZWN0ZWRCb29rbWFya3MucHJvcFR5cGVzID0ge1xuICBjb250cm9sbGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG9uQm9va21hcmtDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdXJsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGNhbkNyZWF0ZTogUHJvcFR5cGVzLmJvb2wsXG4gIGRvY3VtZW50YXRpb25Vcmw6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5Db25uZWN0ZWRCb29rbWFya3MuZGVmYXVsdFByb3BzID0ge1xuICBjYW5DcmVhdGU6IGZhbHNlLFxuICBkb2N1bWVudGF0aW9uVXJsOiAnJyxcbn07XG5cbmV4cG9ydCBjb25zdCByZWR1Y2VycyA9IHsgYm9va21hcmtzUEY0OiByZWR1Y2VyIH07XG5leHBvcnQgZGVmYXVsdCBDb25uZWN0ZWRCb29rbWFya3M7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QRjQvQm9va21hcmtzL2luZGV4LmpzIiwiZXhwb3J0IGNvbnN0IFNFVF9NT0RBTF9PUEVOID0gJ1NFVF9NT0RBTF9PUEVOJztcbmV4cG9ydCBjb25zdCBTRVRfTU9EQUxfQ0xPU0VEID0gJ1NFVF9NT0RBTF9DTE9TRUQnO1xuZXhwb3J0IGNvbnN0IEFERF9NT0RBTCA9ICdBRERfTU9EQUwnO1xuZXhwb3J0IGNvbnN0IFNFVF9NT0RBTF9TVEFSVF9TVUJNSVRUSU5HID0gJ1NFVF9NT0RBTF9TVEFSVF9TVUJNSVRUSU5HJztcbmV4cG9ydCBjb25zdCBTRVRfTU9EQUxfU1RPUF9TVUJNSVRUSU5HID0gJ1NFVF9NT0RBTF9TVE9QX1NVQk1JVFRJTkcnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRm9yZW1hbk1vZGFsL0ZvcmVtYW5Nb2RhbENvbnN0YW50cy5qcyIsImltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5cbi8vIGNyZWF0aW5nIGNvbnRleHQgaW4gYSBzZXBhcmF0ZSBmaWxlIHRvIGF2b2lkIGNpcmN1bGFyIGltcG9ydHNcbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUNvbnRleHQobnVsbCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvRm9yZW1hbk1vZGFsQ29udGV4dC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEZvcmVtYW5Nb2RhbCBmcm9tICcuLi8uLi9Gb3JlbWFuTW9kYWwnO1xuaW1wb3J0IHsgQk9PS01BUktTX01PREFMIH0gZnJvbSAnLi4vQm9va21hcmtzQ29uc3RhbnRzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgQm9va21hcmtGb3JtIGZyb20gJy4vQm9va21hcmtGb3JtJztcblxuY29uc3QgU2VhcmNoTW9kYWwgPSAoe1xuICBzZXRNb2RhbENsb3NlZCxcbiAgb25FbnRlcixcbiAgdGl0bGUsXG4gIGNvbnRyb2xsZXIsXG4gIHVybCxcbiAgYm9va21hcmtzLFxufSkgPT4gKFxuICA8Rm9yZW1hbk1vZGFsXG4gICAgaWQ9e0JPT0tNQVJLU19NT0RBTH1cbiAgICB0aXRsZT17dGl0bGV9XG4gICAgZW5mb3JjZUZvY3VzXG4gICAgb25FbnRlcj17b25FbnRlcn1cbiAgPlxuICAgIDxCb29rbWFya0Zvcm1cbiAgICAgIGNvbnRyb2xsZXI9e2NvbnRyb2xsZXJ9XG4gICAgICB1cmw9e3VybH1cbiAgICAgIHNldE1vZGFsQ2xvc2VkPXtzZXRNb2RhbENsb3NlZH1cbiAgICAgIG9uQ2FuY2VsPXtzZXRNb2RhbENsb3NlZH1cbiAgICAgIGJvb2ttYXJrcz17Ym9va21hcmtzfVxuICAgIC8+XG4gIDwvRm9yZW1hbk1vZGFsPlxuKTtcblxuU2VhcmNoTW9kYWwucHJvcFR5cGVzID0ge1xuICBjb250cm9sbGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25FbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIHNldE1vZGFsQ2xvc2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBib29rbWFya3M6IFByb3BUeXBlcy5hcnJheSxcbn07XG5cblNlYXJjaE1vZGFsLmRlZmF1bHRQcm9wcyA9IHtcbiAgdGl0bGU6IF9fKCdDcmVhdGUgQm9va21hcmsnKSxcbiAgb25FbnRlcjogbm9vcCxcbiAgYm9va21hcmtzOiBbXSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaE1vZGFsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQm9va21hcmtzL2NvbXBvbmVudHMvU2VhcmNoTW9kYWwuanMiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX1lVUF9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fWVVQX19cIlxuLy8gbW9kdWxlIGlkID0gMTM5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgVGV4dEZpZWxkIGZyb20gJy4vVGV4dEZpZWxkJztcblxuZXhwb3J0IGRlZmF1bHQgVGV4dEZpZWxkO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL1RleHRGaWVsZC9pbmRleC5qcyIsImltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXywgc3ByaW50ZiB9IGZyb20gJy4uLy4uLy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5cbmV4cG9ydCBjb25zdCBtYXhMZW5ndGhNc2cgPSBudW1iZXIgPT4gW1xuICBudW1iZXIsXG4gIHNwcmludGYoX18oJ2lzIHRvbyBsb25nIChtYXhpbXVtIGlzICVzIGNoYXJhY3RlcnMpJyksIG51bWJlciksXG5dO1xuXG5leHBvcnQgY29uc3QgcmVxdWlyZWRNc2cgPSAoKSA9PiBfXyhcImNhbid0IGJlIGJsYW5rXCIpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL3ZhbGlkYXRvcnMuanMiLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEhlbG1ldCB9IGZyb20gJ3JlYWN0LWhlbG1ldCc7XG5cbmNvbnN0IEhlYWQgPSAoeyBjaGlsZHJlbiB9KSA9PiA8SGVsbWV0PntjaGlsZHJlbn08L0hlbG1ldD47XG5cbkhlYWQucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9IZWFkL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEljb24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7XG4gIFRpdGxlLFxuICBFbXB0eVN0YXRlLFxuICBFbXB0eVN0YXRlVmFyaWFudCxcbiAgRW1wdHlTdGF0ZUJvZHksXG4gIEVtcHR5U3RhdGVTZWNvbmRhcnlBY3Rpb25zLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCB7IGVtcHR5U3RhdGVQYXR0ZXJuUHJvcFR5cGVzIH0gZnJvbSAnLi9FbXB0eVN0YXRlUHJvcFR5cGVzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCAnLi9FbXB0eVN0YXRlLnNjc3MnO1xuXG5jb25zdCBFbXB0eVN0YXRlUGF0dGVybiA9IHByb3BzID0+IHtcbiAgY29uc3Qge1xuICAgIGRvY3VtZW50YXRpb24sXG4gICAgYWN0aW9uLFxuICAgIHNlY29uZGFyeUFjdGlvbnMsXG4gICAgaWNvblR5cGUsXG4gICAgaWNvbixcbiAgICBoZWFkZXIsXG4gICAgZGVzY3JpcHRpb24sXG4gIH0gPSBwcm9wcztcblxuICBjb25zdCBEb2N1bWVudGF0aW9uQmxvY2sgPSAoKSA9PiB7XG4gICAgaWYgKCFkb2N1bWVudGF0aW9uKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLy8gVGhlIGRvY3VtZW50YXRpb24gcHJvcCBjYW4gYWxzbyBiZSBhIGN1c3RvbWl6ZWQgbm9kZVxuICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChkb2N1bWVudGF0aW9uKSkge1xuICAgICAgcmV0dXJuIGRvY3VtZW50YXRpb247XG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIGxhYmVsID0gX18oJ0ZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgJyksIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVhY3QvcHJvcC10eXBlc1xuICAgICAgYnV0dG9uTGFiZWwgPSBfXygnZG9jdW1lbnRhdGlvbicpLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlYWN0L3Byb3AtdHlwZXNcbiAgICAgIHVybCA9ICcjJywgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZWFjdC9wcm9wLXR5cGVzXG4gICAgfSA9IGRvY3VtZW50YXRpb247XG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuPlxuICAgICAgICB7bGFiZWx9XG4gICAgICAgIDxhIGhyZWY9e3VybH0gdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwiZXh0ZXJuYWwgbm9yZWZlcnJlciBub29wZW5lclwiPlxuICAgICAgICAgIHtidXR0b25MYWJlbH1cbiAgICAgICAgPC9hPlxuICAgICAgPC9zcGFuPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgRW1wdHlTdGF0ZUljb24gPSAoKSA9PlxuICAgIFJlYWN0LmlzVmFsaWRFbGVtZW50KGljb24pID8gKFxuICAgICAgaWNvblxuICAgICkgOiAoXG4gICAgICA8SWNvbiBuYW1lPXtpY29ufSB0eXBlPXtpY29uVHlwZX0gc2l6ZT1cIjJ4XCIgLz5cbiAgICApO1xuXG4gIHJldHVybiAoXG4gICAgPEVtcHR5U3RhdGUgdmFyaWFudD17RW1wdHlTdGF0ZVZhcmlhbnQueGx9PlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZW1wdHktc3RhdGUtaWNvblwiPlxuICAgICAgICA8RW1wdHlTdGF0ZUljb24gLz5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxUaXRsZSBoZWFkaW5nTGV2ZWw9XCJoNVwiIHNpemU9XCI0eGxcIj5cbiAgICAgICAge2hlYWRlcn1cbiAgICAgIDwvVGl0bGU+XG4gICAgICA8RW1wdHlTdGF0ZUJvZHk+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZW1wdHktc3RhdGUtZGVzY3JpcHRpb25cIj57ZGVzY3JpcHRpb259PC9kaXY+XG4gICAgICAgIDxEb2N1bWVudGF0aW9uQmxvY2sgLz5cbiAgICAgIDwvRW1wdHlTdGF0ZUJvZHk+XG4gICAgICB7YWN0aW9ufVxuICAgICAgPEVtcHR5U3RhdGVTZWNvbmRhcnlBY3Rpb25zPlxuICAgICAgICB7c2Vjb25kYXJ5QWN0aW9uc31cbiAgICAgIDwvRW1wdHlTdGF0ZVNlY29uZGFyeUFjdGlvbnM+XG4gICAgPC9FbXB0eVN0YXRlPlxuICApO1xufTtcblxuRW1wdHlTdGF0ZVBhdHRlcm4ucHJvcFR5cGVzID0gZW1wdHlTdGF0ZVBhdHRlcm5Qcm9wVHlwZXM7XG5cbkVtcHR5U3RhdGVQYXR0ZXJuLmRlZmF1bHRQcm9wcyA9IHtcbiAgaWNvbjogJ2FkZC1jaXJjbGUtbycsXG4gIHNlY29uZGFyeUFjdGlvbnM6IFtdLFxuICBkb2N1bWVudGF0aW9uOiBudWxsLFxuICBhY3Rpb246IG51bGwsXG4gIGljb25UeXBlOiAncGYnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRW1wdHlTdGF0ZVBhdHRlcm47XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRW1wdHlTdGF0ZS9FbXB0eVN0YXRlUGF0dGVybi5qcyIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25CdXR0b25Qcm9wVHlwZXMgPSB7XG4gIHRpdGxlOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICB1cmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbmV4cG9ydCBjb25zdCBlbXB0eVN0YXRlUGF0dGVyblByb3BUeXBlcyA9IHtcbiAgaWNvbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm5vZGVdKSxcbiAgaWNvblR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlYWRlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBkb2N1bWVudGF0aW9uOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBidXR0b25MYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIH0pLFxuICAgIFByb3BUeXBlcy5ub2RlLFxuICBdKSxcbiAgZGVzY3JpcHRpb246IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5ub2RlXSlcbiAgICAuaXNSZXF1aXJlZCxcbiAgYWN0aW9uOiBQcm9wVHlwZXMubm9kZSxcbiAgc2Vjb25kYXJ5QWN0aW9uczogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEVtcHR5U3RhdGVQcm9wVHlwZXMgPSB7XG4gIC4uLmVtcHR5U3RhdGVQYXR0ZXJuUHJvcFR5cGVzLFxuICBhY3Rpb246IFByb3BUeXBlcy5zaGFwZShhY3Rpb25CdXR0b25Qcm9wVHlwZXMpLFxuICBzZWNvbmRhcnlBY3Rpb25zOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc2hhcGUoYWN0aW9uQnV0dG9uUHJvcFR5cGVzKSksXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0VtcHR5U3RhdGUvRW1wdHlTdGF0ZVByb3BUeXBlcy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgJy4vbG9hZGluZ3BhZ2Uuc2Nzcyc7XG5cbmNvbnN0IExvYWRpbmdQYWdlID0gKCkgPT4gKFxuICA8ZGl2IGlkPVwibG9hZGluZy1wYWdlXCI+XG4gICAgPFNwaW5uZXIgbG9hZGluZyBzaXplPVwibGdcIiAvPlxuICA8L2Rpdj5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IExvYWRpbmdQYWdlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9jb21tb24vTG9hZGluZ1BhZ2UvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEZvcm1hdHRlZERhdGUsIGludGxTaGFwZSB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgaXNvQ29tcGF0aWJsZURhdGUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5cbmNvbnN0IFNob3J0RGF0ZVRpbWUgPSAocHJvcHMsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgeyBkYXRlLCBkZWZhdWx0VmFsdWUsIHNlY29uZHMgfSA9IHByb3BzO1xuICBpZiAoZGF0ZSkge1xuICAgIGNvbnN0IGlzb0RhdGUgPSBpc29Db21wYXRpYmxlRGF0ZShkYXRlKTtcbiAgICBjb25zdCB0aXRsZSA9IHByb3BzLnNob3dSZWxhdGl2ZVRpbWVUb29sdGlwXG4gICAgICA/IGNvbnRleHQuaW50bC5mb3JtYXRSZWxhdGl2ZShpc29EYXRlKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2Vjb25kc0Zvcm1hdCA9IHNlY29uZHMgPyAnMi1kaWdpdCcgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuIHRpdGxlPXt0aXRsZX0+XG4gICAgICAgIDxGb3JtYXR0ZWREYXRlXG4gICAgICAgICAgdmFsdWU9e2lzb0RhdGV9XG4gICAgICAgICAgZGF5PVwiMi1kaWdpdFwiXG4gICAgICAgICAgbW9udGg9XCJzaG9ydFwiXG4gICAgICAgICAgaG91cj1cIjItZGlnaXRcIlxuICAgICAgICAgIHNlY29uZD17c2Vjb25kc0Zvcm1hdH1cbiAgICAgICAgICBtaW51dGU9XCIyLWRpZ2l0XCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICApO1xuICB9XG4gIHJldHVybiA8c3Bhbj57ZGVmYXVsdFZhbHVlfTwvc3Bhbj47XG59O1xuXG5TaG9ydERhdGVUaW1lLmNvbnRleHRUeXBlcyA9IHtcbiAgaW50bDogaW50bFNoYXBlLFxufTtcblxuU2hvcnREYXRlVGltZS5wcm9wVHlwZXMgPSB7XG4gIGRhdGU6IFByb3BUeXBlcy5hbnksXG4gIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2Vjb25kczogUHJvcFR5cGVzLmJvb2wsXG4gIHNob3dSZWxhdGl2ZVRpbWVUb29sdGlwOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cblNob3J0RGF0ZVRpbWUuZGVmYXVsdFByb3BzID0ge1xuICBkYXRlOiBudWxsLFxuICBkZWZhdWx0VmFsdWU6ICcnLFxuICBzZWNvbmRzOiBmYWxzZSxcbiAgc2hvd1JlbGF0aXZlVGltZVRvb2x0aXA6IGZhbHNlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2hvcnREYXRlVGltZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9kYXRlcy9TaG9ydERhdGVUaW1lLmpzIiwiaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGNvbXBvc2UsIGJpbmRBY3Rpb25DcmVhdG9ycyB9IGZyb20gJ3JlZHV4JztcblxuaW1wb3J0IE1vZGVsc1BhZ2UgZnJvbSAnLi9Nb2RlbHNQYWdlJztcbmltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSAnLi9Nb2RlbHNQYWdlQWN0aW9ucyc7XG5cbmltcG9ydCB7IGNhbGxPbk1vdW50LCBjYWxsT25Qb3BTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9IT0MnO1xuXG5pbXBvcnQge1xuICBzZWxlY3RNb2RlbHMsXG4gIHNlbGVjdFBhZ2UsXG4gIHNlbGVjdFBlclBhZ2UsXG4gIHNlbGVjdFNlYXJjaCxcbiAgc2VsZWN0U29ydCxcbiAgc2VsZWN0SGFzRGF0YSxcbiAgc2VsZWN0SGFzRXJyb3IsXG4gIHNlbGVjdElzTG9hZGluZyxcbiAgc2VsZWN0U3VidG90YWwsXG4gIHNlbGVjdE1lc3NhZ2UsXG4gIHNlbGVjdENhbkNyZWF0ZSxcbn0gZnJvbSAnLi9Nb2RlbHNQYWdlU2VsZWN0b3JzJztcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gc3RhdGUgPT4gKHtcbiAgbW9kZWxzOiBzZWxlY3RNb2RlbHMoc3RhdGUpLFxuICBwYWdlOiBzZWxlY3RQYWdlKHN0YXRlKSxcbiAgcGVyUGFnZTogc2VsZWN0UGVyUGFnZShzdGF0ZSksXG4gIHNlYXJjaDogc2VsZWN0U2VhcmNoKHN0YXRlKSxcbiAgc29ydDogc2VsZWN0U29ydChzdGF0ZSksXG4gIGlzTG9hZGluZzogc2VsZWN0SXNMb2FkaW5nKHN0YXRlKSxcbiAgaGFzRGF0YTogc2VsZWN0SGFzRGF0YShzdGF0ZSksXG4gIGhhc0Vycm9yOiBzZWxlY3RIYXNFcnJvcihzdGF0ZSksXG4gIGl0ZW1Db3VudDogc2VsZWN0U3VidG90YWwoc3RhdGUpLFxuICBtZXNzYWdlOiBzZWxlY3RNZXNzYWdlKHN0YXRlKSxcbiAgY2FuQ3JlYXRlOiBzZWxlY3RDYW5DcmVhdGUoc3RhdGUpLFxufSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IGRpc3BhdGNoID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhhY3Rpb25zLCBkaXNwYXRjaCk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvc2UoXG4gIGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpLFxuICBjYWxsT25Nb3VudCgoeyBpbml0aWFsaXplTW9kZWxzIH0pID0+IGluaXRpYWxpemVNb2RlbHMoKSksXG4gIGNhbGxPblBvcFN0YXRlKCh7IGluaXRpYWxpemVNb2RlbHMgfSkgPT4gaW5pdGlhbGl6ZU1vZGVscygpKVxuKShNb2RlbHNQYWdlKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvTW9kZWxzL01vZGVsc1BhZ2UvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IE1vZGVsc1RhYmxlIGZyb20gJy4vTW9kZWxzVGFibGUnO1xuaW1wb3J0IHsgTU9ERUxfREVMRVRFX01PREFMX0lEIH0gZnJvbSAnLi4vLi4vcm91dGVzL01vZGVscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlRm9yZW1hbk1vZGFsIH0gZnJvbSAnLi4vRm9yZW1hbk1vZGFsL0ZvcmVtYW5Nb2RhbEhvb2tzJztcblxuY29uc3QgV3JhcHBlZE1vZGVsc1RhYmxlID0gcHJvcHMgPT4ge1xuICBjb25zdCB7IHNldE1vZGFsT3BlbiB9ID0gdXNlRm9yZW1hbk1vZGFsKHsgaWQ6IE1PREVMX0RFTEVURV9NT0RBTF9JRCB9KTtcbiAgY29uc3QgeyBzZXRUb0RlbGV0ZSwgLi4ucmVzdCB9ID0gcHJvcHM7XG5cbiAgY29uc3Qgb25EZWxldGVDbGljayA9IHJvd0RhdGEgPT4ge1xuICAgIHNldFRvRGVsZXRlKHJvd0RhdGEpO1xuICAgIHNldE1vZGFsT3BlbigpO1xuICB9O1xuXG4gIHJldHVybiA8TW9kZWxzVGFibGUgey4uLnJlc3R9IG9uRGVsZXRlQ2xpY2s9e29uRGVsZXRlQ2xpY2t9IC8+O1xufTtcblxuV3JhcHBlZE1vZGVsc1RhYmxlLnByb3BUeXBlcyA9IHtcbiAgc2V0VG9EZWxldGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBXcmFwcGVkTW9kZWxzVGFibGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Nb2RlbHNUYWJsZS9pbmRleC5qcyIsImV4cG9ydCB7XG4gIGhlYWRlckZvcm1hdHRlcldpdGhQcm9wcyxcbiAgY2VsbEZvcm1hdHRlcldpdGhQcm9wcyxcbn0gZnJvbSAnLi9mb3JtYXR0ZXJXaXRoUHJvcHMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjZWxsRm9ybWF0dGVyIH0gZnJvbSAnLi9jZWxsRm9ybWF0dGVyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZWxsaXBzaXNDZWxsRm9ybWF0dGVyIH0gZnJvbSAnLi9lbGxpcHNpc0NlbGxGb3JtYXR0ZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBuYW1lQ2VsbEZvcm1hdHRlciB9IGZyb20gJy4vbmFtZUNlbGxGb3JtYXR0ZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBob3N0c0NvdW50Q2VsbEZvcm1hdHRlciB9IGZyb20gJy4vaG9zdHNDb3VudENlbGxGb3JtYXR0ZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzb3J0YWJsZUhlYWRlckZvcm1hdHRlciB9IGZyb20gJy4vc29ydGFibGVIZWFkZXJGb3JtYXR0ZXInO1xuZXhwb3J0IHsgZGVsZXRlQWN0aW9uQ2VsbEZvcm1hdHRlciB9IGZyb20gJy4vZGVsZXRlQWN0aW9uQ2VsbEZvcm1hdHRlcic7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHNlbGVjdGlvbkNlbGxGb3JtYXR0ZXIgfSBmcm9tICcuL3NlbGVjdGlvbkNlbGxGb3JtYXR0ZXInO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzZWxlY3Rpb25IZWFkZXJDZWxsRm9ybWF0dGVyIH0gZnJvbSAnLi9zZWxlY3Rpb25IZWFkZXJDZWxsRm9ybWF0dGVyJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFRhYmxlIGFzIFBmVGFibGUgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcblxuZXhwb3J0IGRlZmF1bHQgdmFsdWUgPT4gPFBmVGFibGUuQ2VsbD57dmFsdWV9PC9QZlRhYmxlLkNlbGw+O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL2Zvcm1hdHRlcnMvY2VsbEZvcm1hdHRlci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgVGFibGUgYXMgUGZUYWJsZSB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuXG5pbXBvcnQgVGFibGVCb2R5TWVzc2FnZSBmcm9tICcuL1RhYmxlQm9keU1lc3NhZ2UnO1xuXG5jb25zdCBUYWJsZUJvZHkgPSAoeyBjb2x1bW5zLCByb3dzLCBtZXNzYWdlLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGlmIChtZXNzYWdlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxUYWJsZUJvZHlNZXNzYWdlIGNvbFNwYW49e2NvbHVtbnMubGVuZ3RofT57bWVzc2FnZX08L1RhYmxlQm9keU1lc3NhZ2U+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFBmVGFibGUuQm9keSByb3dzPXtyb3dzfSByb3dLZXk9eyh7IHJvd0luZGV4IH0pID0+IHJvd0luZGV4fSB7Li4ucHJvcHN9IC8+XG4gICk7XG59O1xuXG5UYWJsZUJvZHkucHJvcFR5cGVzID0ge1xuICBjb2x1bW5zOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMub2JqZWN0KS5pc1JlcXVpcmVkLFxuICByb3dzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMub2JqZWN0KS5pc1JlcXVpcmVkLFxuICBtZXNzYWdlOiBQcm9wVHlwZXMubm9kZSxcbn07XG5cblRhYmxlQm9keS5kZWZhdWx0UHJvcHMgPSB7XG4gIG1lc3NhZ2U6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQm9keTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL1RhYmxlQm9keS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBUYWJsZUJvZHlNZXNzYWdlID0gKHsgY29sU3BhbiwgY2hpbGRyZW4gfSkgPT4gKFxuICA8dGJvZHk+XG4gICAgPHRyPlxuICAgICAgPHRkIGNvbFNwYW49e2NvbFNwYW59PntjaGlsZHJlbn08L3RkPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG4pO1xuXG5UYWJsZUJvZHlNZXNzYWdlLnByb3BUeXBlcyA9IHtcbiAgY29sU3BhbjogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQm9keU1lc3NhZ2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvY29tcG9uZW50cy9UYWJsZUJvZHlNZXNzYWdlLmpzIiwiLyoqXG4gKiBHZW5lcmF0ZSBhIGNvbHVtbiBmb3IgYSBwYXR0ZXJuZmx5LTMgdGFibGUuXG4gKiBTZWUgbW9yZSBpbiBodHRwOi8vcGF0dGVybmZseS1yZWFjdC5zdXJnZS5zaC9wYXR0ZXJuZmx5LTMvXG4gKiBTZWUgYW4gZXhhbXBsZTogY29tcG9uZW50cyBNb2RlbHNUYWJsZVNjaGVtYVxuICogQHBhcmFtICB7U3RyaW5nfSBwcm9wZXJ0eSAgdGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHRhYmxlLlxuICogQHBhcmFtICB7U3RyaW5nfSBsYWJlbCAgICAgdGhlIGNvbHVtbiBsYWJlbC5cbiAqIEBwYXJhbSAge0FycmF5fSBoZWFkRm9ybWF0IGFycmF5IG9mIGZ1bmN0aW9ucyB0aGF0IGZvcm1hdCB0aGUgaGVhZGVyLiBSZWFkIG1vcmUgYWJvdXQgZm9ybWF0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbnMgaGVyZTpcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vcmVhY3RhYnVsYXIuanMub3JnLyMvY29sdW1uLWRlZmluaXRpb24vZm9ybWF0dGVyc1xuICogQHBhcmFtICB7QXJyYXl9IGNlbGxGb3JtYXQgYXJyYXkgb2YgZnVuY3Rpb25zIHRoYXQgZm9ybWF0IGNvbHVtbiBjZWxscy4gUmVhZCBtb3JlIGFib3V0IGZvcm1hdFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25zIGhlcmU6XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwczovL3JlYWN0YWJ1bGFyLmpzLm9yZy8jL2NvbHVtbi1kZWZpbml0aW9uL2Zvcm1hdHRlcnNcbiAqIEBwYXJhbSAge09iamVjdH0gaGVhZFByb3BzIFJlYWN0IHByb3BzIHRoYXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgaGVhZGVyLlxuICogQHBhcmFtICB7T2JqZWN0fSBjZWxsUHJvcHMgUmVhY3QgcHJvcHMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGNlbGxzLlxuICogQHJldHVybiB7T2JqZWN0fSB0aGUgdGFibGUgY29sdW1uLlxuICovXG5leHBvcnQgY29uc3QgY29sdW1uID0gKFxuICBwcm9wZXJ0eSxcbiAgbGFiZWwsXG4gIGhlYWRGb3JtYXQsXG4gIGNlbGxGb3JtYXQsXG4gIGhlYWRQcm9wcyA9IHt9LFxuICBjZWxsUHJvcHMgPSB7fVxuKSA9PiAoe1xuICBwcm9wZXJ0eSxcbiAgaGVhZGVyOiB7XG4gICAgbGFiZWwsXG4gICAgcHJvcHM6IGhlYWRQcm9wcyxcbiAgICBmb3JtYXR0ZXJzOiBoZWFkRm9ybWF0LFxuICB9LFxuICBjZWxsOiB7XG4gICAgcHJvcHM6IGNlbGxQcm9wcyxcbiAgICBmb3JtYXR0ZXJzOiBjZWxsRm9ybWF0LFxuICB9LFxufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvc2NoZW1hSGVscGVycy9jb2x1bW4uanMiLCJpbXBvcnQge1xuICBTRUxFQ1RfUk9XUyxcbiAgU0VMRUNUX0FMTF9ST1dTLFxuICBVTlNFTEVDVF9BTExfUk9XUyxcbiAgVU5TRUxFQ1RfUk9XUyxcbiAgT1BFTl9TRUxFQ1RfQUxMLFxufSBmcm9tICcuLi9jb25zdGFudHMvU2VsZWN0aW9uQ29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFBhZ2UgPSAodGFibGVJRCwgcmVzdWx0cykgPT4gZGlzcGF0Y2ggPT4ge1xuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogU0VMRUNUX1JPV1MsXG4gICAgcGF5bG9hZDogcmVzdWx0cy5tYXAocm93ID0+IHJvdy5pZCksXG4gICAgdGFibGVJRCxcbiAgfSk7XG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBPUEVOX1NFTEVDVF9BTEwsXG4gICAgdGFibGVJRCxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0QWxsUm93cyA9IHRhYmxlSUQgPT4gKHtcbiAgdHlwZTogU0VMRUNUX0FMTF9ST1dTLFxuICB0YWJsZUlELFxufSk7XG5cbmV4cG9ydCBjb25zdCB1bnNlbGVjdEFsbFJvd3MgPSB0YWJsZUlEID0+ICh7XG4gIHR5cGU6IFVOU0VMRUNUX0FMTF9ST1dTLFxuICB0YWJsZUlELFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSb3cgPSAodGFibGVJRCwgaWQpID0+ICh7XG4gIHR5cGU6IFNFTEVDVF9ST1dTLFxuICBwYXlsb2FkOiBbaWRdLFxuICB0YWJsZUlELFxufSk7XG5cbmV4cG9ydCBjb25zdCB1bnNlbGVjdFJvdyA9ICh0YWJsZUlELCBpZCwgcmVzdWx0cykgPT4gKHtcbiAgdHlwZTogVU5TRUxFQ1RfUk9XUyxcbiAgcGF5bG9hZDogeyBpZCwgcmVzdWx0cyB9LFxuICB0YWJsZUlELFxufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvYWN0aW9ucy9zZWxlY3Rpb25BY3Rpb25zLmpzIiwiZXhwb3J0IGNvbnN0IFNFTEVDVF9ST1dTID0gJ1NFTEVDVF9ST1dTJztcbmV4cG9ydCBjb25zdCBVTlNFTEVDVF9ST1dTID0gJ1VOU0VMRUNUX1JPV1MnO1xuZXhwb3J0IGNvbnN0IFVOU0VMRUNUX0FMTF9ST1dTID0gJ1VOU0VMRUNUX0FMTF9ST1dTJztcbmV4cG9ydCBjb25zdCBTRUxFQ1RfQUxMX1JPV1MgPSAnU0VMRUNUX0FMTF9ST1dTJztcbmV4cG9ydCBjb25zdCBPUEVOX1NFTEVDVF9BTEwgPSAnT1BFTl9TRUxFQ1RfQUxMJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb25zdGFudHMvU2VsZWN0aW9uQ29uc3RhbnRzLmpzIiwiaW1wb3J0IHsgY2FtZWxDYXNlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcblxuaW1wb3J0IHsgQVBJX1JFUVVFU1RfS0VZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBkZWVwUHJvcHNUb0NhbWVsQ2FzZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IHJlc3BvbnNlID0ge1xuICByZXN1bHRzOiBbXSxcbiAgcGFnZTogMCxcbiAgcGVyUGFnZTogMCxcbiAgc2VhcmNoOiAnJyxcbiAgc29ydDoge30sXG4gIGNhbkNyZWF0ZTogZmFsc2UsXG4gIHN1YnRvdGFsOiAwLFxuICBtZXNzYWdlOiB7fSxcbn07XG5cbmNvbnN0IGVtcHR5U3RhdGUgPSBJbW11dGFibGUoe1xuICBwYXlsb2FkOiBudWxsLFxuICByZXNwb25zZSxcbiAgc3RhdHVzOiBudWxsLFxufSk7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RNb2RlbHNQYWdlRGF0YSA9IHN0YXRlID0+XG4gIGRlZXBQcm9wc1RvQ2FtZWxDYXNlKHN0YXRlLkFQSVtBUElfUkVRVUVTVF9LRVldKSB8fCBlbXB0eVN0YXRlO1xuXG5jb25zdCBzZWxlY3RNb2RlbHNQYWdlUmVzcG9uc2UgPSBzdGF0ZSA9PlxuICBzZWxlY3RNb2RlbHNQYWdlRGF0YShzdGF0ZSkucmVzcG9uc2UgfHwgSW1tdXRhYmxlKHJlc3BvbnNlKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdElzTG9hZGluZyA9IHN0YXRlID0+IHtcbiAgY29uc3QgeyBzdGF0dXMgfSA9IHNlbGVjdE1vZGVsc1BhZ2VEYXRhKHN0YXRlKTtcbiAgcmV0dXJuICFzdGF0dXMgfHwgc3RhdHVzID09PSBTVEFUVVMuUEVORElORztcbn07XG5cbmNvbnN0IHNlbGVjdE1vZGVsc1BhZ2VTdGF0dXMgPSBzdGF0ZSA9PiBzZWxlY3RNb2RlbHNQYWdlRGF0YShzdGF0ZSkuc3RhdHVzO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0SGFzRXJyb3IgPSBzdGF0ZSA9PlxuICBzZWxlY3RNb2RlbHNQYWdlU3RhdHVzKHN0YXRlKSA9PT0gU1RBVFVTLkVSUk9SO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0TW9kZWxzID0gc3RhdGUgPT4gc2VsZWN0TW9kZWxzUGFnZVJlc3BvbnNlKHN0YXRlKS5yZXN1bHRzO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0SGFzRGF0YSA9IHN0YXRlID0+IHtcbiAgY29uc3Qgc3RhdHVzID0gc2VsZWN0TW9kZWxzUGFnZVN0YXR1cyhzdGF0ZSk7XG4gIGNvbnN0IHJlc3VsdHMgPSBzZWxlY3RNb2RlbHMoc3RhdGUpO1xuXG4gIHJldHVybiBzdGF0dXMgPT09IFNUQVRVUy5SRVNPTFZFRCAmJiByZXN1bHRzICYmIHJlc3VsdHMubGVuZ3RoID4gMDtcbn07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RQYWdlID0gc3RhdGUgPT4gc2VsZWN0TW9kZWxzUGFnZVJlc3BvbnNlKHN0YXRlKS5wYWdlO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFBlclBhZ2UgPSBzdGF0ZSA9PiBzZWxlY3RNb2RlbHNQYWdlUmVzcG9uc2Uoc3RhdGUpLnBlclBhZ2U7XG5leHBvcnQgY29uc3Qgc2VsZWN0U2VhcmNoID0gc3RhdGUgPT4gc2VsZWN0TW9kZWxzUGFnZVJlc3BvbnNlKHN0YXRlKS5zZWFyY2g7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RTb3J0ID0gc3RhdGUgPT4ge1xuICBjb25zdCBzb3J0ID0gc2VsZWN0TW9kZWxzUGFnZVJlc3BvbnNlKHN0YXRlKS5zb3J0IHx8IEltbXV0YWJsZSh7fSk7XG4gIGlmIChzb3J0LmJ5ICYmIHNvcnQub3JkZXIpIHtcbiAgICByZXR1cm4geyAuLi5zb3J0LCBieTogY2FtZWxDYXNlKHNvcnQuYnkpIH07XG4gIH1cbiAgcmV0dXJuIHNvcnQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q2FuQ3JlYXRlID0gc3RhdGUgPT5cbiAgc2VsZWN0TW9kZWxzUGFnZVJlc3BvbnNlKHN0YXRlKS5jYW5DcmVhdGU7XG5leHBvcnQgY29uc3Qgc2VsZWN0U3VidG90YWwgPSBzdGF0ZSA9PiBzZWxlY3RNb2RlbHNQYWdlUmVzcG9uc2Uoc3RhdGUpLnN1YnRvdGFsO1xuZXhwb3J0IGNvbnN0IHNlbGVjdE1lc3NhZ2UgPSBzdGF0ZSA9PiBzZWxlY3RNb2RlbHNQYWdlUmVzcG9uc2Uoc3RhdGUpLm1lc3NhZ2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL01vZGVscy9Nb2RlbHNQYWdlL01vZGVsc1BhZ2VTZWxlY3RvcnMuanMiLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyBsb2FkU2V0dGluZ1JlY29yZHMgfSBmcm9tICcuL1NldHRpbmdSZWNvcmRzQWN0aW9ucyc7XG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL1NldHRpbmdSZWNvcmRzUmVkdWNlcic7XG5cbmV4cG9ydCBjb25zdCByZWR1Y2VycyA9IHtcbiAgc2V0dGluZ1JlY29yZHM6IHJlZHVjZXIsXG59O1xuXG5jb25zdCBTZXR0aW5nUmVjb3JkcyA9ICh7IHNldHRpbmdzIH0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGxvYWRTZXR0aW5nUmVjb3JkcyhzZXR0aW5ncykpO1xuICB9KTtcblxuICByZXR1cm4gPFJlYWN0LkZyYWdtZW50IC8+O1xufTtcblxuU2V0dGluZ1JlY29yZHMucHJvcFR5cGVzID0ge1xuICBzZXR0aW5nczogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cblNldHRpbmdSZWNvcmRzLmRlZmF1bHRQcm9wcyA9IHtcbiAgc2V0dGluZ3M6IHt9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2V0dGluZ1JlY29yZHM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nUmVjb3Jkcy9pbmRleC5qcyIsImltcG9ydCB7XG4gIExPQURfU0VUVElOR19SRUNPUkRTLFxuICBTRVRfRURJVElOR19TRVRUSU5HLFxufSBmcm9tICcuL1NldHRpbmdSZWNvcmRzQ29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGxvYWRTZXR0aW5nUmVjb3JkcyA9IHNldHRpbmdzID0+IGFzeW5jIGRpc3BhdGNoID0+XG4gIGRpc3BhdGNoKHsgdHlwZTogTE9BRF9TRVRUSU5HX1JFQ09SRFMsIHBheWxvYWQ6IHNldHRpbmdzIH0pO1xuXG5leHBvcnQgY29uc3Qgc2V0U2V0dGluZ0VkaXRpbmcgPSBzZXR0aW5nID0+ICh7XG4gIHR5cGU6IFNFVF9FRElUSU5HX1NFVFRJTkcsXG4gIHBheWxvYWQ6IHsgc2V0dGluZyB9LFxufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nUmVjb3Jkcy9TZXR0aW5nUmVjb3Jkc0FjdGlvbnMuanMiLCJleHBvcnQgY29uc3QgTE9BRF9TRVRUSU5HX1JFQ09SRFMgPSAnTE9BRF9TRVRUSU5HX1JFQ09SRFMnO1xuZXhwb3J0IGNvbnN0IFNFVFRJTkdTX0ZPUk1fU1VCTUlUVEVEX1NVQ0NFU1MgPVxuICAnU0VUVElOR1NfRk9STV9TVUJNSVRURURfU1VDQ0VTUyc7XG5leHBvcnQgY29uc3QgU0VUX0VESVRJTkdfU0VUVElORyA9ICdTRVRfRURJVElOR19TRVRUSU5HJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdSZWNvcmRzL1NldHRpbmdSZWNvcmRzQ29uc3RhbnRzLmpzIiwiaW1wb3J0IFBlcnNvbmFsQWNjZXNzVG9rZW5zIGZyb20gJy4vUGVyc29uYWxBY2Nlc3NUb2tlbnMnO1xuaW1wb3J0IHJlZHVjZXIgZnJvbSAnLi9QZXJzb25hbEFjY2Vzc1Rva2Vuc1JlZHVjZXInO1xuXG5leHBvcnQgY29uc3QgcmVkdWNlcnMgPSB7IHBlcnNvbmFsQWNjZXNzVG9rZW5zOiByZWR1Y2VyIH07XG5cbmV4cG9ydCBkZWZhdWx0IFBlcnNvbmFsQWNjZXNzVG9rZW5zO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvdXNlcnMvUGVyc29uYWxBY2Nlc3NUb2tlbnMvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uLCBPdmVybGF5VHJpZ2dlciwgVG9vbHRpcCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IFVVSUQgZnJvbSAndXVpZC92MSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgJy4vY2xpcGJvYXJkLWNvcHkuc2Nzcyc7XG5cbmNvbnN0IENsaXBib2FyZENvcHkgPSAoe1xuICB0ZXh0OiBkZWZhdWx0VGV4dCxcbiAgc3VjY2Vzc01lc3NhZ2UsXG4gIGJ1dHRvblRleHQsXG4gIHRleHRhcmVhUHJvcHMsXG4gIGJ1dHRvblByb3BzLFxufSkgPT4ge1xuICBjb25zdCBbdGV4dCwgc2V0VGV4dF0gPSB1c2VTdGF0ZShkZWZhdWx0VGV4dCk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNsaXBib2FyZC1jb3B5XCI+XG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgZGVmYXVsdFZhbHVlPXt0ZXh0fVxuICAgICAgICBvbkNoYW5nZT17KHsgdGFyZ2V0OiB7IHZhbHVlIH0gfSkgPT4gc2V0VGV4dCh2YWx1ZSl9XG4gICAgICAgIHsuLi50ZXh0YXJlYVByb3BzfVxuICAgICAgLz5cbiAgICAgIDxPdmVybGF5VHJpZ2dlclxuICAgICAgICBvdmVybGF5PXs8VG9vbHRpcCBpZD17VVVJRCgpfT57c3VjY2Vzc01lc3NhZ2V9PC9Ub29sdGlwPn1cbiAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICB0cmlnZ2VyPXtbJ2NsaWNrJ119XG4gICAgICAgIHJvb3RDbG9zZVxuICAgICAgPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCl9XG4gICAgICAgICAgYnNTdHlsZT1cImRlZmF1bHRcIlxuICAgICAgICAgIHsuLi5idXR0b25Qcm9wc31cbiAgICAgICAgPlxuICAgICAgICAgIHtidXR0b25UZXh0fVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgIDwvT3ZlcmxheVRyaWdnZXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5DbGlwYm9hcmRDb3B5LnByb3BUeXBlcyA9IHtcbiAgdGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBidXR0b25UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdWNjZXNzTWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdGV4dGFyZWFQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgYnV0dG9uUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG5DbGlwYm9hcmRDb3B5LmRlZmF1bHRQcm9wcyA9IHtcbiAgYnV0dG9uVGV4dDogX18oJ0NvcHkgdG8gY2xpcGJvYXJkJyksXG4gIHN1Y2Nlc3NNZXNzYWdlOiBfXygnQ29waWVkIScpLFxuICB0ZXh0YXJlYVByb3BzOiB7fSxcbiAgYnV0dG9uUHJvcHM6IHt9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xpcGJvYXJkQ29weTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9DbGlwYm9hcmRDb3B5L2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge1xuICBGb3JtQ29udHJvbCxcbiAgSW5wdXRHcm91cCxcbiAgSWNvbixcbiAgT3ZlcmxheVRyaWdnZXIsXG4gIFBvcG92ZXIsXG59IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IERhdGVJbnB1dCBmcm9tICcuL0RhdGVDb21wb25lbnRzL0RhdGVJbnB1dCc7XG5pbXBvcnQgVG9kYXlCdXR0b24gZnJvbSAnLi9EYXRlQ29tcG9uZW50cy9Ub2RheUJ1dHRvbic7XG5pbXBvcnQgVGltZUlucHV0IGZyb20gJy4vVGltZUNvbXBvbmVudHMvVGltZUlucHV0JztcbmltcG9ydCB7IE1PTlRIIH0gZnJvbSAnLi9EYXRlQ29tcG9uZW50cy9EYXRlQ29uc3RhbnRzJztcbmltcG9ydCB7IG5vb3AsIGZvcm1hdERhdGVUaW1lIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0ICcuL2RhdGUtdGltZS1waWNrZXIuc2Nzcyc7XG5cbmNsYXNzIERhdGVUaW1lUGlja2VyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgZ2V0IGhhc0RlZmF1bHRWYWx1ZSgpIHtcbiAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiAhIURhdGUucGFyc2UodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGluaXRpYWxEYXRlKCkge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIHRoaXMuaGFzRGVmYXVsdFZhbHVlID8gbmV3IERhdGUodmFsdWUpIDogbmV3IERhdGUoKTtcbiAgfVxuXG4gIHN0YXRlID0ge1xuICAgIHZhbHVlOiB0aGlzLmluaXRpYWxEYXRlLFxuICAgIHR5cGVPZkRhdGVJbnB1dDogTU9OVEgsXG4gICAgaXNUaW1lVGFibGVPcGVuOiBmYWxzZSxcbiAgICBoaWRkZW5WYWx1ZTogIXRoaXMuaGFzRGVmYXVsdFZhbHVlLFxuICB9O1xuXG4gIHNldFNlbGVjdGVkID0gZGF0ZSA9PiB7XG4gICAgaWYgKERhdGUucGFyc2UoZGF0ZSkpIHtcbiAgICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogbmV3RGF0ZSB9KTtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UobmV3RGF0ZSk7XG4gICAgfVxuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgdHlwZU9mRGF0ZUlucHV0OiBNT05USCxcbiAgICAgIGlzVGltZVRhYmxlT3BlbjogZmFsc2UsXG4gICAgfSk7XG4gIH07XG5cbiAgY2xlYXJTZWxlY3RlZCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgaGlkZGVuVmFsdWU6IHRydWUsIHZhbHVlOiBuZXcgRGF0ZSgpIH0pO1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UodW5kZWZpbmVkKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgbG9jYWxlLFxuICAgICAgd2Vla1N0YXJ0c09uLFxuICAgICAgaW5wdXRQcm9wcyxcbiAgICAgIGlkLFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgbmFtZSxcbiAgICAgIHJlcXVpcmVkLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgdmFsdWUsIHR5cGVPZkRhdGVJbnB1dCwgaXNUaW1lVGFibGVPcGVuLCBoaWRkZW5WYWx1ZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBwb3BvdmVyID0gKFxuICAgICAgPFBvcG92ZXJcbiAgICAgICAgaWQ9e2lkfVxuICAgICAgICBjbGFzc05hbWU9XCJib290c3RyYXAtZGF0ZXRpbWVwaWNrZXItd2lkZ2V0IGRyb3Bkb3duLW1lbnUgdGltZXBpY2tlci1zYnNcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgIGRhdGU9e3ZhbHVlfVxuICAgICAgICAgICAgc2V0U2VsZWN0ZWQ9e3RoaXMuc2V0U2VsZWN0ZWR9XG4gICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIHdlZWtTdGFydHNPbj17d2Vla1N0YXJ0c09ufVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sLW1kLTZcIlxuICAgICAgICAgICAgdHlwZU9mRGF0ZUlucHV0PXt0eXBlT2ZEYXRlSW5wdXR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8VGltZUlucHV0XG4gICAgICAgICAgICB0aW1lPXt2YWx1ZX1cbiAgICAgICAgICAgIHNldFNlbGVjdGVkPXt0aGlzLnNldFNlbGVjdGVkfVxuICAgICAgICAgICAgaXNUaW1lVGFibGVPcGVuPXtpc1RpbWVUYWJsZU9wZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxsaSBjbGFzc05hbWU9XCJwaWNrZXItc3dpdGNoIGFjY29yZGlvbi10b2dnbGVcIj5cbiAgICAgICAgICA8VG9kYXlCdXR0b24gc2V0U2VsZWN0ZWQ9e3RoaXMuc2V0U2VsZWN0ZWR9IC8+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L1BvcG92ZXI+XG4gICAgKTtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPElucHV0R3JvdXAgY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAgZGF0ZS10aW1lLXBpY2tlci1wZlwiPlxuICAgICAgICAgIDxGb3JtQ29udHJvbFxuICAgICAgICAgICAgey4uLmlucHV0UHJvcHN9XG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiZGF0ZS1waWNrZXItaW5wdXRcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZGF0ZS10aW1lLWlucHV0XCJcbiAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICB2YWx1ZT17aGlkZGVuVmFsdWUgJiYgIXJlcXVpcmVkID8gJycgOiBmb3JtYXREYXRlVGltZSh2YWx1ZSl9XG4gICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiB0aGlzLnNldFNlbGVjdGVkKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgcGxhY2VtZW50PXtwbGFjZW1lbnR9XG4gICAgICAgICAgICBvdmVybGF5PXtwb3BvdmVyfVxuICAgICAgICAgICAgcm9vdENsb3NlXG4gICAgICAgICAgICBjb250YWluZXI9e3RoaXN9XG4gICAgICAgICAgICBvbkVudGVyPXsoKSA9PiB0aGlzLnNldFN0YXRlKHsgaGlkZGVuVmFsdWU6IGZhbHNlIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJbnB1dEdyb3VwLkFkZG9uIGNsYXNzTmFtZT1cImRhdGUtdGltZS1waWNrZXItcGZcIj5cbiAgICAgICAgICAgICAgPEljb24gdHlwZT1cImZhXCIgbmFtZT1cImNhbGVuZGFyXCIgLz5cbiAgICAgICAgICAgIDwvSW5wdXRHcm91cC5BZGRvbj5cbiAgICAgICAgICA8L092ZXJsYXlUcmlnZ2VyPlxuICAgICAgICAgIHshcmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgPElucHV0R3JvdXAuQWRkb24gY2xhc3NOYW1lPVwiY2xlYXItYnV0dG9uXCI+XG4gICAgICAgICAgICAgIDxJY29uIHR5cGU9XCJmYVwiIG5hbWU9XCJjbG9zZVwiIG9uQ2xpY2s9e3RoaXMuY2xlYXJTZWxlY3RlZH0gLz5cbiAgICAgICAgICAgIDwvSW5wdXRHcm91cC5BZGRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L0lucHV0R3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbkRhdGVUaW1lUGlja2VyLnByb3BUeXBlcyA9IHtcbiAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5pbnN0YW5jZU9mKERhdGUpLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIGxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2Vla1N0YXJ0c09uOiBQcm9wVHlwZXMubnVtYmVyLFxuICBpbnB1dFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgcGxhY2VtZW50OiBPdmVybGF5VHJpZ2dlci5wcm9wVHlwZXMucGxhY2VtZW50LFxuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICByZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbkRhdGVUaW1lUGlja2VyLmRlZmF1bHRQcm9wcyA9IHtcbiAgdmFsdWU6IG51bGwsXG4gIGxvY2FsZTogJ2VuLVVTJyxcbiAgd2Vla1N0YXJ0c09uOiAxLFxuICBpbnB1dFByb3BzOiB7fSxcbiAgaWQ6ICdkYXRldGltZS1waWNrZXItcG9wb3ZlcicsXG4gIHBsYWNlbWVudDogJ3RvcCcsXG4gIG5hbWU6IHVuZGVmaW5lZCxcbiAgcmVxdWlyZWQ6IGZhbHNlLFxuICBvbkNoYW5nZTogbm9vcCxcbn07XG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZVBpY2tlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9EYXRlVGltZVBpY2tlci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBhZGRNb250aHMgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IE1vbnRoVmlldyBmcm9tICcuL01vbnRoVmlldyc7XG5pbXBvcnQgWWVhclZpZXcgZnJvbSAnLi9ZZWFyVmlldyc7XG5pbXBvcnQgRGVjYWRlVmlldyBmcm9tICcuL0RlY2FkZVZpZXcnO1xuaW1wb3J0IHsgWUVBUiwgREFZLCBNT05USCB9IGZyb20gJy4vRGF0ZUNvbnN0YW50cyc7XG5cbmNsYXNzIERhdGVJbnB1dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIGRhdGU6IG5ldyBEYXRlKHRoaXMucHJvcHMuZGF0ZSksXG4gICAgdHlwZU9mRGF0ZUlucHV0OiB0aGlzLnByb3BzLnR5cGVPZkRhdGVJbnB1dCxcbiAgfTtcbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICBpZiAocHJvcHMuZGF0ZSAhPT0gc3RhdGUuZGF0ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0ZTogcHJvcHMuZGF0ZSxcbiAgICAgICAgdHlwZU9mRGF0ZUlucHV0OiBwcm9wcy50eXBlT2ZEYXRlSW5wdXQsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBnZXRQcmV2TW9udGggPSAoKSA9PiB7XG4gICAgY29uc3QgeyBkYXRlIH0gPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRlOiBhZGRNb250aHMoZGF0ZSwgLTEpIH0pO1xuICB9O1xuICBnZXROZXh0TW9udGggPSAoKSA9PiB7XG4gICAgY29uc3QgeyBkYXRlIH0gPSB0aGlzLnN0YXRlO1xuICAgIHRoaXMuc2V0U3RhdGUoeyBkYXRlOiBhZGRNb250aHMoZGF0ZSwgMSkgfSk7XG4gIH07XG4gIHNldFNlbGVjdGVkID0gZGF5ID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIGRhdGU6IGRheSxcbiAgICB9KTtcbiAgICB0aGlzLnByb3BzLnNldFNlbGVjdGVkKGRheSk7XG4gIH07XG4gIHRvZ2dsZURhdGVWaWV3ID0gKHR5cGUgPSBudWxsKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICB0eXBlT2ZEYXRlSW5wdXQ6IHR5cGUsXG4gICAgfSk7XG4gIH07XG4gIGdldERhdGVWaWV3QnlUeXBlID0gdHlwZSA9PiB7XG4gICAgY29uc3QgeyBkYXRlLCBsb2NhbGUsIHdlZWtTdGFydHNPbiwgc2V0U2VsZWN0ZWQgfSA9IHRoaXMucHJvcHM7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIERBWTpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8RGVjYWRlVmlld1xuICAgICAgICAgICAgZGF0ZT17ZGF0ZX1cbiAgICAgICAgICAgIHNldFNlbGVjdGVkPXtzZXRTZWxlY3RlZH1cbiAgICAgICAgICAgIHRvZ2dsZURhdGVWaWV3PXt0aGlzLnRvZ2dsZURhdGVWaWV3fVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICBjYXNlIFlFQVI6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFllYXJWaWV3XG4gICAgICAgICAgICBkYXRlPXtkYXRlfVxuICAgICAgICAgICAgc2V0U2VsZWN0ZWQ9e3NldFNlbGVjdGVkfVxuICAgICAgICAgICAgbG9jYWxlPXtsb2NhbGV9XG4gICAgICAgICAgICB0b2dnbGVEYXRlVmlldz17dGhpcy50b2dnbGVEYXRlVmlld31cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TW9udGhWaWV3XG4gICAgICAgICAgICBkYXRlPXtkYXRlfVxuICAgICAgICAgICAgc2V0U2VsZWN0ZWQ9e3NldFNlbGVjdGVkfVxuICAgICAgICAgICAgbG9jYWxlPXtsb2NhbGV9XG4gICAgICAgICAgICB3ZWVrU3RhcnRzT249e3dlZWtTdGFydHNPbn1cbiAgICAgICAgICAgIHRvZ2dsZURhdGVWaWV3PXt0aGlzLnRvZ2dsZURhdGVWaWV3fVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgfVxuICB9O1xuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyB0eXBlT2ZEYXRlSW5wdXQgfSA9IHRoaXMuc3RhdGU7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdkYXRlcGlja2VyJywgY2xhc3NOYW1lKX0+XG4gICAgICAgIHt0aGlzLmdldERhdGVWaWV3QnlUeXBlKHR5cGVPZkRhdGVJbnB1dCl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbkRhdGVJbnB1dC5wcm9wVHlwZXMgPSB7XG4gIGRhdGU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5pbnN0YW5jZU9mKERhdGUpLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIHNldFNlbGVjdGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgbG9jYWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB3ZWVrU3RhcnRzT246IFByb3BUeXBlcy5udW1iZXIsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdHlwZU9mRGF0ZUlucHV0OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuRGF0ZUlucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgc2V0U2VsZWN0ZWQ6IG51bGwsXG4gIGRhdGU6IG5ldyBEYXRlKCksXG4gIGxvY2FsZTogJ2VuLVVTJyxcbiAgd2Vla1N0YXJ0c09uOiAxLFxuICBjbGFzc05hbWU6ICcnLFxuICB0eXBlT2ZEYXRlSW5wdXQ6IE1PTlRILFxufTtcbmV4cG9ydCBkZWZhdWx0IERhdGVJbnB1dDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9EYXRlQ29tcG9uZW50cy9EYXRlSW5wdXQuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgVG9kYXlCdXR0b24gPSAoeyBzZXRTZWxlY3RlZCB9KSA9PiAoXG4gIDx0YWJsZSBjbGFzc05hbWU9XCJ0YWJsZS1jb25kZW5zZWRcIj5cbiAgICA8dGJvZHk+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRvZGF5LWJ1dHRvblwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChzZXRTZWxlY3RlZCkgc2V0U2VsZWN0ZWQobmV3IERhdGUoKSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRvZGF5LWJ1dHRvbi1cIj57X18oJ1RvZGF5Jyl9PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuICA8L3RhYmxlPlxuKTtcblxuVG9kYXlCdXR0b24ucHJvcFR5cGVzID0ge1xuICBzZXRTZWxlY3RlZDogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5Ub2RheUJ1dHRvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHNldFNlbGVjdGVkOiBudWxsLFxufTtcbmV4cG9ydCBkZWZhdWx0IFRvZGF5QnV0dG9uO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL1RvZGF5QnV0dG9uLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUGlja1RpbWVUYWJsZSBmcm9tICcuL1BpY2tUaW1lVGFibGUnO1xuaW1wb3J0IFBpY2tUaW1lQ2xvY2sgZnJvbSAnLi9QaWNrVGltZUNsb2NrJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgeyBIT1VSIH0gZnJvbSAnLi9UaW1lQ29uc3RhbnRzJztcblxuY2xhc3MgVGltZUlucHV0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgaXNUaW1lVGFibGVPcGVuOiB0aGlzLnByb3BzLmlzVGltZVRhYmxlT3BlbixcbiAgICB0eXBlT2ZUaW1lSW5wdXQ6IEhPVVIsXG4gIH07XG4gIGNvbXBvbmVudERpZFVwZGF0ZSA9IHByZXZQcm9wcyA9PiB7XG4gICAgY29uc3QgeyB0aW1lOiBuZXh0VGltZSwgaXNUaW1lVGFibGVPcGVuIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmIChwcmV2UHJvcHMudGltZSAhPT0gbmV4dFRpbWUpIHtcbiAgICAgIHRoaXMuc2V0SXNUaW1lVGFibGVPcGVuKGlzVGltZVRhYmxlT3Blbik7XG4gICAgfVxuICB9O1xuICBzZXRJc1RpbWVUYWJsZU9wZW4gPSBpc1RpbWVUYWJsZU9wZW4gPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNUaW1lVGFibGVPcGVuLFxuICAgIH0pO1xuICB9O1xuICB0b2dnbGVUaW1lVGFibGUgPSB0eXBlID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHR5cGVPZlRpbWVJbnB1dDogdHlwZSxcbiAgICAgIGlzVGltZVRhYmxlT3BlbjogIXRoaXMuc3RhdGUuaXNUaW1lVGFibGVPcGVuLFxuICAgIH0pO1xuICB9O1xuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyB0aW1lLCBzZXRTZWxlY3RlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHR5cGVPZlRpbWVJbnB1dCwgaXNUaW1lVGFibGVPcGVuIH0gPSB0aGlzLnN0YXRlO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVwaWNrZXIgY29sLW1kLTZcIj5cbiAgICAgICAge2lzVGltZVRhYmxlT3BlbiA/IChcbiAgICAgICAgICA8UGlja1RpbWVUYWJsZVxuICAgICAgICAgICAgdGltZT17dGltZX1cbiAgICAgICAgICAgIHNldFNlbGVjdGVkPXtzZXRTZWxlY3RlZH1cbiAgICAgICAgICAgIHR5cGU9e3R5cGVPZlRpbWVJbnB1dH1cbiAgICAgICAgICAgIHNob3c9e2lzVGltZVRhYmxlT3Blbn1cbiAgICAgICAgICAgIHRvZ2dsZVRpbWVUYWJsZT17dGhpcy50b2dnbGVUaW1lVGFibGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UGlja1RpbWVDbG9ja1xuICAgICAgICAgICAgdGltZT17dGltZX1cbiAgICAgICAgICAgIHNldFNlbGVjdGVkPXtzZXRTZWxlY3RlZH1cbiAgICAgICAgICAgIHRvZ2dsZVRpbWVUYWJsZT17dGhpcy50b2dnbGVUaW1lVGFibGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuVGltZUlucHV0LnByb3BUeXBlcyA9IHtcbiAgc2V0U2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLFxuICB0aW1lOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuaW5zdGFuY2VPZihEYXRlKSwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICBpc1RpbWVUYWJsZU9wZW46IFByb3BUeXBlcy5ib29sLFxufTtcblRpbWVJbnB1dC5kZWZhdWx0UHJvcHMgPSB7XG4gIHNldFNlbGVjdGVkOiBub29wLFxuICB0aW1lOiBuZXcgRGF0ZSgpLFxuICBpc1RpbWVUYWJsZU9wZW46IGZhbHNlLFxufTtcbmV4cG9ydCBkZWZhdWx0IFRpbWVJbnB1dDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9UaW1lQ29tcG9uZW50cy9UaW1lSW5wdXQuanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL2RhdGUtdGltZS1waWNrZXIuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMTY2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX0FQT0xMT19DTElFTlRfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX0FQT0xMT19DTElFTlRfX1wiXG4vLyBtb2R1bGUgaWQgPSAxNjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHJvdXRlcyB9IGZyb20gJy4vcm91dGVzJztcbmltcG9ydCB7IHJlbmRlclJvdXRlIH0gZnJvbSAnLi9Sb3V0aW5nU2VydmljZSc7XG5pbXBvcnQgRm9yZW1hblN3aXRjaGVyIGZyb20gJy4vRm9yZW1hblN3aXRjaGVyJztcblxuY29uc3QgQXBwU3dpdGNoZXIgPSAoeyBjaGlsZHJlbiB9KSA9PiAoXG4gIDw+XG4gICAgPEZvcmVtYW5Td2l0Y2hlcj5cbiAgICAgIHtyb3V0ZXMubWFwKCh7IHJlbmRlciwgcGF0aCwgLi4ucm91dGVQcm9wcyB9KSA9PiAoXG4gICAgICAgIDxSb3V0ZVxuICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAga2V5PXtwYXRofVxuICAgICAgICAgIHsuLi5yb3V0ZVByb3BzfVxuICAgICAgICAgIHJlbmRlcj17cmVuZGVyUHJvcHMgPT4gcmVuZGVyUm91dGUocmVuZGVyLCByZW5kZXJQcm9wcyl9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L0ZvcmVtYW5Td2l0Y2hlcj5cbiAgICB7Y2hpbGRyZW59XG4gIDwvPlxuKTtcblxuQXBwU3dpdGNoZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cbkFwcFN3aXRjaGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IG51bGwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHBTd2l0Y2hlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvaW5kZXguanMiLCJpbXBvcnQgeyBzZWxlY3RBUElSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L0FQSS9BUElTZWxlY3RvcnMnO1xuaW1wb3J0IHsgc2VsZWN0Q29tcG9uZW50QnlXZWlnaHQgfSBmcm9tICcuLi8uLi9jb21tb24vU2xvdC9TbG90U2VsZWN0b3JzJztcbmltcG9ydCB7IFNVUFBPUlRFRF9FUlJPUlMsIEFQSV9PUFRJT05TIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0S2ViYWJJdGVtcyA9ICgpID0+XG4gIHNlbGVjdENvbXBvbmVudEJ5V2VpZ2h0KCdob3N0LWRldGFpbHMta2ViYWInKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEJ1aWxkRXJyb3JzID0gc3RhdGUgPT5cbiAgc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIEFQSV9PUFRJT05TLmtleSk/LmVycm9ycztcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEJ1aWxkRXJyb3JzVHJlZSA9IHN0YXRlID0+IHtcbiAgY29uc3QgYnVpbGRFcnJvcnMgPSBzZWxlY3RCdWlsZEVycm9ycyhzdGF0ZSk7XG4gIHJldHVybiBidWlsZEVycm9yc1xuICAgID8gT2JqZWN0LmVudHJpZXMoYnVpbGRFcnJvcnMpXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgICAgICBuYW1lOiBTVVBQT1JURURfRVJST1JTW2tleV0sXG4gICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICBjaGlsZHJlbjogdmFsdWUubWFwKChpdGVtLCBpZHgpID0+ICh7XG4gICAgICAgICAgICBuYW1lOiBpdGVtLm1lc3NhZ2UsXG4gICAgICAgICAgICBpZDogYCR7a2V5fS0ke2lkeH1gLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgfSkpXG4gICAgICAgID8uZmlsdGVyKGVycm9yID0+IGVycm9yLmNoaWxkcmVuLmxlbmd0aClcbiAgICA6IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdE5vRXJyb3JTdGF0ZSA9IHN0YXRlID0+IHtcbiAgY29uc3QgYnVpbGRFcnJvcnMgPSBzZWxlY3RCdWlsZEVycm9ycyhzdGF0ZSk7XG4gIGNvbnN0IGlzRW1wdHlBcnJheSA9IGN1cnJlbnRWYWx1ZSA9PiBjdXJyZW50VmFsdWUubGVuZ3RoID09PSAwO1xuICByZXR1cm4gYnVpbGRFcnJvcnMgPyBPYmplY3QudmFsdWVzKGJ1aWxkRXJyb3JzKS5ldmVyeShpc0VtcHR5QXJyYXkpIDogZmFsc2U7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvQWN0aW9uc0Jhci9TZWxlY3RvcnMuanMiLCJleHBvcnQgY29uc3QgU1VQUE9SVEVEX0VSUk9SUyA9IHtcbiAgaG9zdDogX18oJ0hvc3QnKSxcbiAgdGVtcGxhdGVzOiBfXygnVGVtcGxhdGVzJyksXG4gIHByb3hpZXM6IF9fKCdQcm94aWVzJyksXG59O1xuZXhwb3J0IGNvbnN0IEFQSV9PUFRJT05TID0geyBrZXk6ICdCVUlMRF9SRVZJRVcnIH07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9BY3Rpb25zQmFyL2NvbnN0YW50cy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgeyB2aXNpdCB9IGZyb20gJy4uLy4uLy4uLy4uL2ZvcmVtYW5fbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBmb3JlbWFuVXJsIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgc3ByaW50ZiwgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IHsgb3BlbkNvbmZpcm1Nb2RhbCB9IGZyb20gJy4uLy4uL0NvbmZpcm1Nb2RhbCc7XG5pbXBvcnQgeyBBUElBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcbmltcG9ydCB7IEhPU1RfREVUQUlMU19LRVkgfSBmcm9tICcuLi9jb25zdHMnO1xuaW1wb3J0IHsgc2VsZWN0QVBJUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzJztcbmltcG9ydCB7IFBPV0VSX1JFUVVSU1RfS0VZIH0gZnJvbSAnLi4vRGV0YWlsc0NhcmQvUG93ZXJTdGF0dXMvY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZUhvc3QgPSAoXG4gIGhvc3ROYW1lLFxuICBjb21wdXRlLFxuICBkZXN0cm95Vm1Pbkhvc3REZWxldGVcbikgPT4gZGlzcGF0Y2ggPT4ge1xuICBjb25zdCBzdWNjZXNzVG9hc3QgPSAoKSA9PlxuICAgIHNwcmludGYoX18oJ0hvc3QgJXMgaGFzIGJlZW4gcmVtb3ZlZCBzdWNjZXNzZnVsbHknKSwgaG9zdE5hbWUpO1xuICBjb25zdCBlcnJvclRvYXN0ID0gKHsgbWVzc2FnZSB9KSA9PiBtZXNzYWdlO1xuICBjb25zdCB1cmwgPSBmb3JlbWFuVXJsKGAvYXBpL2hvc3RzLyR7aG9zdE5hbWV9YCk7XG5cbiAgLy8gVE9ETzogUmVwbGFjZSB3aXRoIGEgY2hlY2tib3ggaW5zdGVhZCBvZiBhIGdsb2JhbCBzZXR0aW5nIGZvciBjYXNjYWRlIGhvc3QgZGVzdHJveVxuICBjb25zdCBjYXNjYWRlTWVzc2FnZSA9ICgpID0+IHtcbiAgICBpZiAoY29tcHV0ZSkge1xuICAgICAgcmV0dXJuIGRlc3Ryb3lWbU9uSG9zdERlbGV0ZVxuICAgICAgICA/IF9fKFxuICAgICAgICAgICAgJ1RoaXMgd2lsbCBkZWxldGUgdGhlIFZNIGFuZCBpdHMgZGlza3MuIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQgdmlhIGdsb2JhbCBzZXR0aW5nIFwiRGVzdHJveSBhc3NvY2lhdGVkIFZNIG9uIGhvc3QgZGVsZXRlXCIuJ1xuICAgICAgICAgIClcbiAgICAgICAgOiBfXyhcbiAgICAgICAgICAgICdWTSBhbmQgaXRzIGRpc2tzIHdpbGwgbm90IGJlIGRlbGV0ZWQuIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQgdmlhIGdsb2JhbCBzZXR0aW5nIFwiRGVzdHJveSBhc3NvY2lhdGVkIFZNIG9uIGhvc3QgZGVsZXRlXCIuJ1xuICAgICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIGRpc3BhdGNoKFxuICAgIG9wZW5Db25maXJtTW9kYWwoe1xuICAgICAgaXNXYXJuaW5nOiB0cnVlLFxuICAgICAgdGl0bGU6IF9fKCdEZWxldGUgaG9zdD8nKSxcbiAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBfXygnRGVsZXRlIGhvc3QnKSxcbiAgICAgIG9uQ29uZmlybTogKCkgPT5cbiAgICAgICAgZGlzcGF0Y2goXG4gICAgICAgICAgQVBJQWN0aW9ucy5kZWxldGUoe1xuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAga2V5OiBgJHtob3N0TmFtZX0tREVMRVRFYCxcbiAgICAgICAgICAgIHN1Y2Nlc3NUb2FzdCxcbiAgICAgICAgICAgIGVycm9yVG9hc3QsXG4gICAgICAgICAgICBoYW5kbGVTdWNjZXNzOiAoKSA9PiB2aXNpdChmb3JlbWFuVXJsKCcvaG9zdHMnKSksXG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgIG1lc3NhZ2U6IChcbiAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICBpZD1cImRlbGV0ZS1ob3N0XCJcbiAgICAgICAgICB2YWx1ZXM9e3tcbiAgICAgICAgICAgIGhvc3Q6IDxiPntob3N0TmFtZX08L2I+LFxuICAgICAgICAgICAgY2FzY2FkZTogY2FzY2FkZU1lc3NhZ2UoKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGRlZmF1bHRNZXNzYWdlPXtfXyhcbiAgICAgICAgICAgICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGhvc3Qge2hvc3R9PyBUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuIHtjYXNjYWRlfSdcbiAgICAgICAgICApfVxuICAgICAgICAvPlxuICAgICAgKSxcbiAgICB9KVxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUhvc3QgPSBob3N0SWQgPT4gZGlzcGF0Y2ggPT4ge1xuICBjb25zdCB1cmwgPSBmb3JlbWFuVXJsKGAvYXBpL2hvc3RzLyR7aG9zdElkfWApO1xuICBkaXNwYXRjaChcbiAgICBBUElBY3Rpb25zLmdldCh7XG4gICAgICB1cmwsXG4gICAgICBrZXk6IEhPU1RfREVUQUlMU19LRVksXG4gICAgfSlcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEhvc3QgPSBob3N0SWQgPT4gZGlzcGF0Y2ggPT4ge1xuICBjb25zdCBzdWNjZXNzVG9hc3QgPSAoKSA9PlxuICAgIHNwcmludGYoX18oJ0hvc3QgJXMgd2lsbCBiZSBidWlsdCBuZXh0IGJvb3QnKSwgaG9zdElkKTtcbiAgY29uc3QgZXJyb3JUb2FzdCA9ICh7IG1lc3NhZ2UgfSkgPT4gbWVzc2FnZTtcbiAgY29uc3QgdXJsID0gZm9yZW1hblVybChgL2hvc3RzLyR7aG9zdElkfS9zZXRCdWlsZGApO1xuICBkaXNwYXRjaChcbiAgICBBUElBY3Rpb25zLnB1dCh7XG4gICAgICB1cmwsXG4gICAgICBrZXk6IGAke2hvc3RJZH1fQlVJTERgLFxuICAgICAgc3VjY2Vzc1RvYXN0LFxuICAgICAgZXJyb3JUb2FzdCxcbiAgICAgIGhhbmRsZVN1Y2Nlc3M6ICgpID0+IGRpc3BhdGNoKHVwZGF0ZUhvc3QoaG9zdElkKSksXG4gICAgfSlcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYW5jZWxCdWlsZCA9IGhvc3RJZCA9PiBkaXNwYXRjaCA9PiB7XG4gIGNvbnN0IHN1Y2Nlc3NUb2FzdCA9ICgpID0+XG4gICAgc3ByaW50ZihfXygnQ2FuY2VsZWQgcGVuZGluZyBidWlsZCBmb3IgJXMnKSwgaG9zdElkKTtcbiAgY29uc3QgZXJyb3JUb2FzdCA9ICh7IG1lc3NhZ2UgfSkgPT4gbWVzc2FnZTtcbiAgY29uc3QgdXJsID0gZm9yZW1hblVybChgL2hvc3RzLyR7aG9zdElkfS9jYW5jZWxCdWlsZGApO1xuICBkaXNwYXRjaChcbiAgICBBUElBY3Rpb25zLmdldCh7XG4gICAgICB1cmwsXG4gICAgICBrZXk6IGAke2hvc3RJZH1fQ0FOQ0VMX0JVSUxEYCxcbiAgICAgIHN1Y2Nlc3NUb2FzdCxcbiAgICAgIGVycm9yVG9hc3QsXG4gICAgICBoYW5kbGVTdWNjZXNzOiAoKSA9PiBkaXNwYXRjaCh1cGRhdGVIb3N0KGhvc3RJZCkpLFxuICAgIH0pXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNIb3N0VHVybk9uID0gc3RvcmUgPT4ge1xuICBjb25zdCB7IHN0YXRlIH0gPSBzZWxlY3RBUElSZXNwb25zZShzdG9yZSwgUE9XRVJfUkVRVVJTVF9LRVkpO1xuICByZXR1cm4gc3RhdGUgPT09ICdvbic7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvQWN0aW9uc0Jhci9hY3Rpb25zLmpzIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNb2RhbCwgVGl0bGUsIFRpdGxlU2l6ZXMgfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCBTdGF0dXNUYWJsZSBmcm9tICcuL1N0YXR1c1RhYmxlJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5cbmNvbnN0IFN0YXR1c01vZGFsID0gKHtcbiAgaXNPcGVuLFxuICBvbkNsb3NlLFxuICBzdGF0dXNlcyxcbiAgaG9zdE5hbWUsXG4gIGNhbkZvcmdldFN0YXR1c2VzLFxufSkgPT4ge1xuICBjb25zdCBoZWFkZXIgPSAoXG4gICAgPD5cbiAgICAgIDxUaXRsZVxuICAgICAgICBpZD1cInN0YXR1c2VzLW1vZGFsLWhlYWRlclwiXG4gICAgICAgIGhlYWRpbmdMZXZlbD1cImgxXCJcbiAgICAgICAgc2l6ZT17VGl0bGVTaXplc1snMnhsJ119XG4gICAgICA+XG4gICAgICAgIHtfXyhcIk1hbmFnZSBIb3N0J3MgU3RhdHVzZXNcIil9XG4gICAgICA8L1RpdGxlPlxuICAgIDwvPlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPE1vZGFsXG4gICAgICB3aWR0aD1cIjUwJVwiXG4gICAgICBhcmlhLWxhYmVsPVwic3RhdHVzZXMgbW9kYWxcIlxuICAgICAgaXNPcGVuPXtpc09wZW59XG4gICAgICBoZWFkZXI9e2hlYWRlcn1cbiAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgICBhcHBlbmRUbz17ZG9jdW1lbnQuYm9keX1cbiAgICA+XG4gICAgICA8YnIgLz5cbiAgICAgIDxTdGF0dXNUYWJsZVxuICAgICAgICBjYW5Gb3JnZXRTdGF0dXNlcz17Y2FuRm9yZ2V0U3RhdHVzZXN9XG4gICAgICAgIHN0YXR1c2VzPXtzdGF0dXNlc31cbiAgICAgICAgaG9zdE5hbWU9e2hvc3ROYW1lfVxuICAgICAgLz5cbiAgICA8L01vZGFsPlxuICApO1xufTtcblxuU3RhdHVzTW9kYWwucHJvcFR5cGVzID0ge1xuICBob3N0TmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc09wZW46IFByb3BUeXBlcy5ib29sLFxuICBvbkNsb3NlOiBQcm9wVHlwZXMuZnVuYyxcbiAgc3RhdHVzZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5vYmplY3QpLFxuICBjYW5Gb3JnZXRTdGF0dXNlczogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5TdGF0dXNNb2RhbC5kZWZhdWx0UHJvcHMgPSB7XG4gIGlzT3BlbjogZmFsc2UsXG4gIG9uQ2xvc2U6IG5vb3AsXG4gIHN0YXR1c2VzOiBbXSxcbiAgY2FuRm9yZ2V0U3RhdHVzZXM6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFN0YXR1c01vZGFsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvU3RhdHVzL1N0YXR1c2VzTW9kYWwuanMiLCJpbXBvcnQgeyBkaWZmZXJlbmNlQnksIHVuaW9uQnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgc2VsZWN0QVBJUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzJztcbmltcG9ydCB7XG4gIEhPU1RfU1RBVFVTRVNfS0VZLFxuICBPS19TVEFUVVNfU1RBVEUsXG4gIFdBUk5JTkdfU1RBVFVTX1NUQVRFLFxuICBFUlJPUl9TVEFUVVNfU1RBVEUsXG4gIE5BX1NUQVRVU19TVEFURSxcbiAgQUxMX1NUQVRVU19TVEFURSxcbn0gZnJvbSAnLi9Db25zdGFudHMnO1xuXG5jb25zdCBFTVBUWV9BUlJBWSA9IFtdO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0U3RhdHVzQnlTdGF0ZSA9IChzdGF0ZSwgc3RhdHVzU3RhdGUpID0+IHtcbiAgY29uc3QgeyBzdGF0dXNlcyB9ID0gc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIEhPU1RfU1RBVFVTRVNfS0VZKTtcbiAgY29uc3Qgbm90QXZhaWxhYmxlU3RhdHVzZXMgPSBzZWxlY3RTdXBwb3J0ZWRTdGF0dXNlc0FzT2JqZWN0KHN0YXRlKTtcbiAgaWYgKCFub3RBdmFpbGFibGVTdGF0dXNlcykgcmV0dXJuIEVNUFRZX0FSUkFZO1xuICBzd2l0Y2ggKHN0YXR1c1N0YXRlKSB7XG4gICAgY2FzZSBBTExfU1RBVFVTX1NUQVRFOlxuICAgICAgcmV0dXJuIHN0YXR1c2VzPy5hc011dGFibGUoKSB8fCBFTVBUWV9BUlJBWTtcbiAgICBjYXNlIE5BX1NUQVRVU19TVEFURTpcbiAgICAgIHJldHVybiBzZWxlY3ROQVN0YXR1c2VzKHN0YXRlKTtcbiAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgIHJldHVybiB1bmlvbkJ5KHN0YXR1c2VzPy5hc011dGFibGUoKSwgbm90QXZhaWxhYmxlU3RhdHVzZXMsICduYW1lJyk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgc3RhdHVzZXM/LmFzTXV0YWJsZSgpLmZpbHRlcigoeyBnbG9iYWwgfSkgPT4gZ2xvYmFsID09PSBzdGF0dXNTdGF0ZSkgfHxcbiAgICAgICAgRU1QVFlfQVJSQVlcbiAgICAgICk7XG4gIH1cbn07XG5cbmNvbnN0IHNlbGVjdFN1cHBvcnRlZFN0YXR1c2VzID0gc3RhdGUgPT5cbiAgc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIEhPU1RfU1RBVFVTRVNfS0VZKT8uY2FwdGlvbnM/LmFzTXV0YWJsZSgpO1xuY29uc3Qgc2VsZWN0U3VwcG9ydGVkU3RhdHVzZXNBc09iamVjdCA9IHN0YXRlID0+XG4gIHNlbGVjdFN1cHBvcnRlZFN0YXR1c2VzKHN0YXRlKT8ubWFwKG5hbWUgPT4gKHtcbiAgICBuYW1lLFxuICAgIGRhdGU6IHVuZGVmaW5lZCxcbiAgICBsYWJlbDogJ04vQScsXG4gICAgbGluazogdW5kZWZpbmVkLFxuICAgIGdsb2JhbDogTkFfU1RBVFVTX1NUQVRFLFxuICAgIHJlcG9ydGVkX2F0OiB1bmRlZmluZWQsXG4gIH0pKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEVycm9yU3RhdHVzZXMgPSBzdGF0ZSA9PlxuICBzZWxlY3RTdGF0dXNCeVN0YXRlKHN0YXRlLCBFUlJPUl9TVEFUVVNfU1RBVEUpO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFdhcm5pbmdTdGF0dXNlcyA9IHN0YXRlID0+XG4gIHNlbGVjdFN0YXR1c0J5U3RhdGUoc3RhdGUsIFdBUk5JTkdfU1RBVFVTX1NUQVRFKTtcbmV4cG9ydCBjb25zdCBzZWxlY3RPS1N0YXR1c2VzID0gc3RhdGUgPT5cbiAgc2VsZWN0U3RhdHVzQnlTdGF0ZShzdGF0ZSwgT0tfU1RBVFVTX1NUQVRFKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdE5BU3RhdHVzZXMgPSBzdGF0ZSA9PiB7XG4gIGNvbnN0IHN1cHBvcnRlZFN0YXR1c2VzID0gc2VsZWN0U3VwcG9ydGVkU3RhdHVzZXNBc09iamVjdChzdGF0ZSk7XG4gIGNvbnN0IGV4aXN0U3RhdHVzZXMgPSBzZWxlY3RTdGF0dXNCeVN0YXRlKHN0YXRlLCBBTExfU1RBVFVTX1NUQVRFKTtcbiAgaWYgKHN1cHBvcnRlZFN0YXR1c2VzKVxuICAgIHJldHVybiBkaWZmZXJlbmNlQnkoc3VwcG9ydGVkU3RhdHVzZXMsIGV4aXN0U3RhdHVzZXMsICduYW1lJyk7XG4gIHJldHVybiBFTVBUWV9BUlJBWTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RBbGxTb3J0ZWRTdGF0dXNlcyA9IHN0YXRlID0+XG4gIHNlbGVjdEVycm9yU3RhdHVzZXMoc3RhdGUpXG4gICAgLmNvbmNhdChzZWxlY3RXYXJuaW5nU3RhdHVzZXMoc3RhdGUpKVxuICAgIC5jb25jYXQoc2VsZWN0T0tTdGF0dXNlcyhzdGF0ZSkpXG4gICAgLmNvbmNhdChzZWxlY3ROQVN0YXR1c2VzKHN0YXRlKSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvSG9zdFN0YXR1c1NlbGVjdG9yLmpzIiwiaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uLy4uL2ZvcmVtYW5fdG9vbHMnO1xuaW1wb3J0IHsgZ2V0LCBwb3N0IH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcblxuaW1wb3J0IHtcbiAgUkVHSVNUUkFUSU9OX0NPTU1BTkRTX0RBVEEsXG4gIFJFR0lTVFJBVElPTl9DT01NQU5EU19PU19URU1QTEFURSxcbiAgUkVHSVNUUkFUSU9OX0NPTU1BTkRTLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgZGF0YUFjdGlvbiA9IHBhcmFtcyA9PlxuICBnZXQoe1xuICAgIGtleTogUkVHSVNUUkFUSU9OX0NPTU1BTkRTX0RBVEEsXG4gICAgdXJsOiBmb3JlbWFuVXJsKCcvaG9zdHMvcmVnaXN0ZXIvZGF0YScpLFxuICAgIHBhcmFtcyxcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBvcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZUFjdGlvbiA9IG9wZXJhdGluZ1N5c3RlbUlkID0+XG4gIGdldCh7XG4gICAga2V5OiBSRUdJU1RSQVRJT05fQ09NTUFORFNfT1NfVEVNUExBVEUsXG4gICAgdXJsOiBmb3JlbWFuVXJsKGAvaG9zdHMvcmVnaXN0ZXIvb3MvJHtvcGVyYXRpbmdTeXN0ZW1JZH1gKSxcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBjb21tYW5kQWN0aW9uID0gcGFyYW1zID0+XG4gIHBvc3Qoe1xuICAgIGtleTogUkVHSVNUUkFUSU9OX0NPTU1BTkRTLFxuICAgIHVybDogZm9yZW1hblVybCgnL2hvc3RzL3JlZ2lzdGVyJyksXG4gICAgcGFyYW1zLFxuICB9KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZUFjdGlvbnMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuY29uc3QgTGlua09yTGFiZWwgPSAoeyBsYWJlbCwgcGF0aCB9KSA9PiB7XG4gIGlmIChwYXRoKSB7XG4gICAgcmV0dXJuIDxhIGhyZWY9e3BhdGh9PntsYWJlbH08L2E+O1xuICB9XG4gIHJldHVybiA8c3Bhbj57bGFiZWx9PC9zcGFuPjtcbn07XG5cbkxpbmtPckxhYmVsLnByb3BUeXBlcyA9IHtcbiAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkxpbmtPckxhYmVsLmRlZmF1bHRQcm9wcyA9IHtcbiAgcGF0aDogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTGlua09yTGFiZWw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvU3RhdHVzL0xpbmtPckxhYmVsLmpzIiwiaW1wb3J0IHsgc2VsZWN0QVBJUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzJztcbmltcG9ydCB7XG4gIEdMT0JBTF9TVEFUVVNfT0ssXG4gIEdMT0JBTF9TVEFUVVNfV0FSTixcbiAgR0xPQkFMX1NUQVRVU19FUlJPUixcbiAgSE9TVF9TVEFUVVNFU19LRVksXG59IGZyb20gJy4vSG9zdFN0YXR1c2VzQ29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEhvc3RTdGF0dXNlcyA9IHN0YXRlID0+XG4gIHNlbGVjdEFQSVJlc3BvbnNlKHN0YXRlLCBIT1NUX1NUQVRVU0VTX0tFWSk/LnJlc3VsdHMgfHwgW107XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RIb3N0U3RhdHVzZXNOYW1lcyA9IHN0YXRlID0+XG4gIHNlbGVjdEhvc3RTdGF0dXNlcyhzdGF0ZSkubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSk7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RIb3N0U3RhdHVzID0gKHN0YXRlLCBzdGF0dXNOYW1lKSA9PlxuICBzZWxlY3RIb3N0U3RhdHVzZXMoc3RhdGUpLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBzdGF0dXNOYW1lKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEhvc3RTdGF0dXNEZXRhaWxzID0gKHN0YXRlLCBzdGF0dXNOYW1lKSA9PlxuICBzZWxlY3RIb3N0U3RhdHVzKHN0YXRlLCBzdGF0dXNOYW1lKT8uZGV0YWlscyB8fCBbXTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEhvc3RTdGF0dXNEZXNjcmlwdGlvbiA9IChzdGF0ZSwgc3RhdHVzTmFtZSkgPT5cbiAgc2VsZWN0SG9zdFN0YXR1cyhzdGF0ZSwgc3RhdHVzTmFtZSk/LmRlc2NyaXB0aW9uIHx8ICcnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RIb3N0U3RhdHVzT2tUb3RhbFBhdGggPSAoc3RhdGUsIHN0YXR1c05hbWUpID0+XG4gIHNlbGVjdEhvc3RTdGF0dXMoc3RhdGUsIHN0YXR1c05hbWUpPy5va190b3RhbF9wYXRoO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0SG9zdFN0YXR1c09rT3duZWRQYXRoID0gKHN0YXRlLCBzdGF0dXNOYW1lKSA9PlxuICBzZWxlY3RIb3N0U3RhdHVzKHN0YXRlLCBzdGF0dXNOYW1lKT8ub2tfb3duZWRfcGF0aDtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEhvc3RTdGF0dXNXYXJuVG90YWxQYXRoID0gKHN0YXRlLCBzdGF0dXNOYW1lKSA9PlxuICBzZWxlY3RIb3N0U3RhdHVzKHN0YXRlLCBzdGF0dXNOYW1lKT8ud2Fybl90b3RhbF9wYXRoO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0SG9zdFN0YXR1c1dhcm5Pd25lZFBhdGggPSAoc3RhdGUsIHN0YXR1c05hbWUpID0+XG4gIHNlbGVjdEhvc3RTdGF0dXMoc3RhdGUsIHN0YXR1c05hbWUpPy53YXJuX293bmVkX3BhdGg7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RIb3N0U3RhdHVzRXJyb3JUb3RhbFBhdGggPSAoc3RhdGUsIHN0YXR1c05hbWUpID0+XG4gIHNlbGVjdEhvc3RTdGF0dXMoc3RhdGUsIHN0YXR1c05hbWUpPy5lcnJvcl9vd25lZF9wYXRoO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0SG9zdFN0YXR1c0Vycm9yT3duZWRQYXRoID0gKHN0YXRlLCBzdGF0dXNOYW1lKSA9PlxuICBzZWxlY3RIb3N0U3RhdHVzKHN0YXRlLCBzdGF0dXNOYW1lKT8uZXJyb3JfdG90YWxfcGF0aDtcbi8qIGVzbGludC1lbmFibGUgY2FtZWxjYXNlICovXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RIb3N0U3RhdHVzVG90YWxQYXRocyA9IChzdGF0ZSwgc3RhdHVzTmFtZSkgPT4gKHtcbiAgb2tUb3RhbFBhdGg6IHNlbGVjdEhvc3RTdGF0dXNPa1RvdGFsUGF0aChzdGF0ZSwgc3RhdHVzTmFtZSksXG4gIHdhcm5Ub3RhbFBhdGg6IHNlbGVjdEhvc3RTdGF0dXNXYXJuVG90YWxQYXRoKHN0YXRlLCBzdGF0dXNOYW1lKSxcbiAgZXJyb3JUb3RhbFBhdGg6IHNlbGVjdEhvc3RTdGF0dXNFcnJvclRvdGFsUGF0aChzdGF0ZSwgc3RhdHVzTmFtZSksXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEhvc3RTdGF0dXNPd25lZFBhdGhzID0gKHN0YXRlLCBzdGF0dXNOYW1lKSA9PiAoe1xuICBva093bmVkUGF0aDogc2VsZWN0SG9zdFN0YXR1c09rT3duZWRQYXRoKHN0YXRlLCBzdGF0dXNOYW1lKSxcbiAgd2Fybk93bmVkUGF0aDogc2VsZWN0SG9zdFN0YXR1c1dhcm5Pd25lZFBhdGgoc3RhdGUsIHN0YXR1c05hbWUpLFxuICBlcnJvck93bmVkUGF0aDogc2VsZWN0SG9zdFN0YXR1c0Vycm9yT3duZWRQYXRoKHN0YXRlLCBzdGF0dXNOYW1lKSxcbn0pO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0R2xvYmFsU3RhdHVzID0gKHN0YXRlLCBzdGF0dXNOYW1lKSA9PlxuICBNYXRoLm1heChcbiAgICAuLi5zZWxlY3RIb3N0U3RhdHVzRGV0YWlscyhzdGF0ZSwgc3RhdHVzTmFtZSlcbiAgICAgIC5maWx0ZXIoKHsgdG90YWwgfSkgPT4gdG90YWwgPiAwKVxuICAgICAgLm1hcCgoeyBnbG9iYWxfc3RhdHVzOiBncyB9KSA9PiBncyksXG4gICAgMFxuICApO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0SG9zdFN0YXR1c0NvdW50ZXIgPSAoc3RhdGUsIHN0YXR1c05hbWUpID0+IHtcbiAgY29uc3QgY2FsY3VsYXRlID0gKGFjYywgeyB0b3RhbCwgb3duZWQgfSkgPT4gKHtcbiAgICB0b3RhbDogYWNjLnRvdGFsICsgdG90YWwsXG4gICAgb3duZWQ6IGFjYy5vd25lZCArIG93bmVkLFxuICB9KTtcblxuICBjb25zdCBkZXRhaWxzID0gc2VsZWN0SG9zdFN0YXR1c0RldGFpbHMoc3RhdGUsIHN0YXR1c05hbWUpO1xuXG4gIHJldHVybiB7XG4gICAgdW5rbm93bjogZGV0YWlsc1xuICAgICAgLmZpbHRlcigoeyBnbG9iYWxfc3RhdHVzOiBncyB9KSA9PiBncyA9PT0gbnVsbClcbiAgICAgIC5yZWR1Y2UoY2FsY3VsYXRlLCB7IHRvdGFsOiAwLCBvd25lZDogMCB9KSxcbiAgICBvazogZGV0YWlsc1xuICAgICAgLmZpbHRlcigoeyBnbG9iYWxfc3RhdHVzOiBncyB9KSA9PiBncyA9PT0gR0xPQkFMX1NUQVRVU19PSylcbiAgICAgIC5yZWR1Y2UoY2FsY3VsYXRlLCB7IHRvdGFsOiAwLCBvd25lZDogMCB9KSxcbiAgICB3YXJuOiBkZXRhaWxzXG4gICAgICAuZmlsdGVyKCh7IGdsb2JhbF9zdGF0dXM6IGdzIH0pID0+IGdzID09PSBHTE9CQUxfU1RBVFVTX1dBUk4pXG4gICAgICAucmVkdWNlKGNhbGN1bGF0ZSwgeyB0b3RhbDogMCwgb3duZWQ6IDAgfSksXG4gICAgZXJyb3I6IGRldGFpbHNcbiAgICAgIC5maWx0ZXIoKHsgZ2xvYmFsX3N0YXR1czogZ3MgfSkgPT4gZ3MgPT09IEdMT0JBTF9TVEFUVVNfRVJST1IpXG4gICAgICAucmVkdWNlKGNhbGN1bGF0ZSwgeyB0b3RhbDogMCwgb3duZWQ6IDAgfSksXG4gIH07XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdFN0YXR1c2VzL0hvc3RTdGF0dXNlc1NlbGVjdG9ycy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQmFyQ2hhcnQgYXMgUGZCYXJDaGFydCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IHsgZ2V0QmFyQ2hhcnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jaGFydHMvQmFyQ2hhcnRTZXJ2aWNlJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgTWVzc2FnZUJveCBmcm9tICcuLi8uLi9NZXNzYWdlQm94JztcblxuY29uc3QgQmFyQ2hhcnQgPSAoe1xuICBkYXRhLFxuICBvbmNsaWNrLFxuICBub0RhdGFNc2csXG4gIGNvbmZpZyxcbiAgdGl0bGUsXG4gIHVubG9hZERhdGEsXG4gIHhBeGlzTGFiZWwsXG4gIHlBeGlzTGFiZWwsXG59KSA9PiB7XG4gIGNvbnN0IGNoYXJ0Q29uZmlnID0gZ2V0QmFyQ2hhcnRDb25maWcoe1xuICAgIGRhdGEsXG4gICAgY29uZmlnLFxuICAgIG9uY2xpY2ssXG4gICAgeEF4aXNMYWJlbCxcbiAgICB5QXhpc0xhYmVsLFxuICB9KTtcblxuICBpZiAoY2hhcnRDb25maWcuZGF0YS5jb2x1bW5zLmxlbmd0aCkge1xuICAgIHJldHVybiAoXG4gICAgICA8UGZCYXJDaGFydFxuICAgICAgICB7Li4uY2hhcnRDb25maWd9XG4gICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgdW5sb2FkQmVmb3JlTG9hZD17dW5sb2FkRGF0YX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPE1lc3NhZ2VCb3ggbXNnPXtub0RhdGFNc2d9IGljb250eXBlPVwiaW5mb1wiIC8+O1xufTtcblxuQmFyQ2hhcnQucHJvcFR5cGVzID0ge1xuICBkYXRhOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYXJyYXkpLFxuICBvbmNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgbm9EYXRhTXNnOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjb25maWc6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRpdGxlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIH0pLFxuICB1bmxvYWREYXRhOiBQcm9wVHlwZXMuYm9vbCxcbiAgeEF4aXNMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgeUF4aXNMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkJhckNoYXJ0LmRlZmF1bHRQcm9wcyA9IHtcbiAgZGF0YTogbnVsbCxcbiAgb25jbGljazogbm9vcCxcbiAgbm9EYXRhTXNnOiBfXygnTm8gZGF0YSBhdmFpbGFibGUnKSxcbiAgY29uZmlnOiAncmVndWxhcicsXG4gIHRpdGxlOiB7IHR5cGU6ICdwZXJjZW50JyB9LFxuICB1bmxvYWREYXRhOiBmYWxzZSxcbiAgeUF4aXNMYWJlbDogJycsXG4gIHhBeGlzTGFiZWw6ICcnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQmFyQ2hhcnQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vY2hhcnRzL0JhckNoYXJ0L2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IEF1dG9Db21wbGV0ZSBmcm9tICcuLi8uLi9BdXRvQ29tcGxldGUnO1xuaW1wb3J0IERhdGVUaW1lUGlja2VyIGZyb20gJy4uL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4uL0RhdGVUaW1lUGlja2VyL0RhdGVQaWNrZXInO1xuaW1wb3J0IE9yZGVyYWJsZVNlbGVjdCBmcm9tICcuL09yZGVyYWJsZVNlbGVjdCc7XG5pbXBvcnQgTWVtb3J5QWxsb2NhdGlvbklucHV0IGZyb20gJy4uLy4uL01lbW9yeUFsbG9jYXRpb25JbnB1dCc7XG5pbXBvcnQgQ291bnRlcklucHV0IGZyb20gJy4vQ291bnRlcklucHV0JztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4uL0RhdGVUaW1lUGlja2VyL1RpbWVQaWNrZXInO1xuaW1wb3J0IFNlbGVjdCBmcm9tICcuL1NlbGVjdCc7XG5cbmNvbnN0IGlucHV0Q29tcG9uZW50cyA9IHtcbiAgYXV0b2NvbXBsZXRlOiBBdXRvQ29tcGxldGUsXG4gIHNlbGVjdDogU2VsZWN0LFxuICBkYXRlOiBEYXRlUGlja2VyLFxuICBkYXRlVGltZTogRGF0ZVRpbWVQaWNrZXIsXG4gIG9yZGVyYWJsZVNlbGVjdDogT3JkZXJhYmxlU2VsZWN0LFxuICB0aW1lOiBUaW1lUGlja2VyLFxuICBtZW1vcnk6IE1lbW9yeUFsbG9jYXRpb25JbnB1dCxcbiAgY291bnRlcjogQ291bnRlcklucHV0LFxufTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVySW5wdXRDb21wb25lbnQgPSAobmFtZSwgQ29tcG9uZW50KSA9PiB7XG4gIGlucHV0Q29tcG9uZW50c1tuYW1lXSA9IENvbXBvbmVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb21wb25lbnRDbGFzcyA9IG5hbWUgPT4gaW5wdXRDb21wb25lbnRzW25hbWVdIHx8ICdpbnB1dCc7XG5cbmNvbnN0IElucHV0RmFjdG9yeSA9ICh7IHR5cGUsIHNldEVycm9yLCBzZXRXYXJuaW5nLCAuLi5jb250cm9sUHJvcHMgfSkgPT4ge1xuICBjb25zdCBjb21wb25lbnRDbGFzcyA9IGdldENvbXBvbmVudENsYXNzKHR5cGUpO1xuICBsZXQgdmFsaWRhdGlvbnMgPSB7fTtcbiAgaWYgKGNvbXBvbmVudENsYXNzICE9PSAnaW5wdXQnKSB2YWxpZGF0aW9ucyA9IHsgc2V0RXJyb3IsIHNldFdhcm5pbmcgfTtcbiAgcmV0dXJuIChcbiAgICA8Rm9ybUNvbnRyb2xcbiAgICAgIGNvbXBvbmVudENsYXNzPXtjb21wb25lbnRDbGFzc31cbiAgICAgIHR5cGU9e3R5cGV9XG4gICAgICB7Li4udmFsaWRhdGlvbnN9XG4gICAgICB7Li4uY29udHJvbFByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5JbnB1dEZhY3RvcnkucHJvcFR5cGVzID0ge1xuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICBQcm9wVHlwZXMubnVtYmVyLFxuICAgIFByb3BUeXBlcy5ib29sLFxuICAgIFByb3BUeXBlcy5pbnN0YW5jZU9mKERhdGUpLFxuICBdKSxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICByZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBzZXRFcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIHNldFdhcm5pbmc6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuSW5wdXRGYWN0b3J5LmRlZmF1bHRQcm9wcyA9IHtcbiAgdHlwZTogdW5kZWZpbmVkLFxuICBuYW1lOiB1bmRlZmluZWQsXG4gIHZhbHVlOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogJycsXG4gIHJlcXVpcmVkOiBmYWxzZSxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBvbkNoYW5nZTogbm9vcCxcbiAgc2V0RXJyb3I6IG5vb3AsXG4gIHNldFdhcm5pbmc6IG5vb3AsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbnB1dEZhY3Rvcnk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvSW5wdXRGYWN0b3J5LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge1xuICBGb3JtQ29udHJvbCxcbiAgSW5wdXRHcm91cCxcbiAgSWNvbixcbiAgT3ZlcmxheVRyaWdnZXIsXG4gIFBvcG92ZXIsXG59IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IERhdGVJbnB1dCBmcm9tICcuL0RhdGVDb21wb25lbnRzL0RhdGVJbnB1dCc7XG5pbXBvcnQgVG9kYXlCdXR0b24gZnJvbSAnLi9EYXRlQ29tcG9uZW50cy9Ub2RheUJ1dHRvbic7XG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0ICcuL2RhdGUtdGltZS1waWNrZXIuc2Nzcyc7XG5cbmNsYXNzIERhdGVQaWNrZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBnZXQgaGFzRGVmYXVsdFZhbHVlKCkge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuICEhRGF0ZS5wYXJzZSh2YWx1ZSk7XG4gIH1cblxuICBnZXQgaW5pdGlhbERhdGUoKSB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gdGhpcy5oYXNEZWZhdWx0VmFsdWUgPyBuZXcgRGF0ZSh2YWx1ZSkgOiBuZXcgRGF0ZSgpO1xuICB9XG5cbiAgc3RhdGUgPSB7XG4gICAgdmFsdWU6IHRoaXMuaW5pdGlhbERhdGUsXG4gICAgaGlkZGVuVmFsdWU6ICF0aGlzLmhhc0RlZmF1bHRWYWx1ZSxcbiAgfTtcblxuICBzZXRTZWxlY3RlZCA9IGRhdGUgPT4ge1xuICAgIGlmIChEYXRlLnBhcnNlKGRhdGUpKSB7XG4gICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWU6IG5ld0RhdGUgfSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGxvY2FsZSwgd2Vla1N0YXJ0c09uLCBuYW1lLCBpZCwgcGxhY2VtZW50LCByZXF1aXJlZCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHZhbHVlLCBoaWRkZW5WYWx1ZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBwb3BvdmVyID0gKFxuICAgICAgPFBvcG92ZXJcbiAgICAgICAgaWQ9e2lkfVxuICAgICAgICBjbGFzc05hbWU9XCJib290c3RyYXAtZGF0ZXRpbWVwaWNrZXItd2lkZ2V0IGRyb3Bkb3duLW1lbnVcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgIDxEYXRlSW5wdXRcbiAgICAgICAgICAgIGRhdGU9e3ZhbHVlfVxuICAgICAgICAgICAgc2V0U2VsZWN0ZWQ9e3RoaXMuc2V0U2VsZWN0ZWR9XG4gICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIHdlZWtTdGFydHNPbj17d2Vla1N0YXJ0c09ufVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiY29sLXhzLTEyXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJwaWNrZXItc3dpdGNoIGFjY29yZGlvbi10b2dnbGVcIj5cbiAgICAgICAgICAgIDxUb2RheUJ1dHRvbiBzZXRTZWxlY3RlZD17dGhpcy5zZXRTZWxlY3RlZH0gLz5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvUG9wb3Zlcj5cbiAgICApO1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8SW5wdXRHcm91cCBjbGFzc05hbWU9XCJpbnB1dC1ncm91cCBkYXRlLXRpbWUtcGlja2VyLXBmXCI+XG4gICAgICAgICAgPEZvcm1Db250cm9sXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiZGF0ZS10aW1lLXBpY2tlci1pbnB1dFwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJkYXRlLWlucHV0XCJcbiAgICAgICAgICAgIHZhbHVlPXtoaWRkZW5WYWx1ZSAmJiAhcmVxdWlyZWQgPyAnJyA6IGZvcm1hdERhdGUodmFsdWUpfVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHRoaXMuc2V0U2VsZWN0ZWQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICAgICAgICB0cmlnZ2VyPVwiY2xpY2tcIlxuICAgICAgICAgICAgcGxhY2VtZW50PXtwbGFjZW1lbnR9XG4gICAgICAgICAgICBvdmVybGF5PXtwb3BvdmVyfVxuICAgICAgICAgICAgcm9vdENsb3NlXG4gICAgICAgICAgICBjb250YWluZXI9e3RoaXN9XG4gICAgICAgICAgICBvbkVudGVyPXsoKSA9PiB0aGlzLnNldFN0YXRlKHsgaGlkZGVuVmFsdWU6IGZhbHNlIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJbnB1dEdyb3VwLkFkZG9uIGNsYXNzTmFtZT1cImRhdGUtcGlja2VyLXBmXCI+XG4gICAgICAgICAgICAgIDxJY29uIHR5cGU9XCJmYVwiIG5hbWU9XCJjYWxlbmRhclwiIC8+XG4gICAgICAgICAgICA8L0lucHV0R3JvdXAuQWRkb24+XG4gICAgICAgICAgPC9PdmVybGF5VHJpZ2dlcj5cbiAgICAgICAgICB7IXJlcXVpcmVkICYmIChcbiAgICAgICAgICAgIDxJbnB1dEdyb3VwLkFkZG9uIGNsYXNzTmFtZT1cImNsZWFyLWJ1dHRvblwiPlxuICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJmYVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNsb3NlXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGhpZGRlblZhbHVlOiB0cnVlLCB2YWx1ZTogbmV3IERhdGUoKSB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvSW5wdXRHcm91cC5BZGRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L0lucHV0R3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbkRhdGVQaWNrZXIucHJvcFR5cGVzID0ge1xuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgbG9jYWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB3ZWVrU3RhcnRzT246IFByb3BUeXBlcy5udW1iZXIsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBwbGFjZW1lbnQ6IE92ZXJsYXlUcmlnZ2VyLnByb3BUeXBlcy5wbGFjZW1lbnQsXG4gIHJlcXVpcmVkOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5EYXRlUGlja2VyLmRlZmF1bHRQcm9wcyA9IHtcbiAgdmFsdWU6IG51bGwsXG4gIG5hbWU6IG51bGwsXG4gIGxvY2FsZTogJ2VuLVVTJyxcbiAgd2Vla1N0YXJ0c09uOiAxLFxuICBpZDogJ2RhdGUtcGlja2VyLXBvcG92ZXInLFxuICBwbGFjZW1lbnQ6ICd0b3AnLFxuICByZXF1aXJlZDogZmFsc2UsXG59O1xuZXhwb3J0IGRlZmF1bHQgRGF0ZVBpY2tlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9EYXRlUGlja2VyLmpzIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IERyYWdTb3VyY2UsIERyb3BUYXJnZXQgfSBmcm9tICdyZWFjdC1kbmQnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBjb25zdCBvcmRlckRyYWdnZWQgPSAoaW5wdXRBcnJheSwgZHJhZ0luZGV4LCBob3ZlckluZGV4KSA9PiB7XG4gIGNvbnN0IGRyYWdlZFZhbHVlID0gaW5wdXRBcnJheVtkcmFnSW5kZXhdO1xuICBjb25zdCBvcmRlcmVkID0gWy4uLmlucHV0QXJyYXldO1xuICBvcmRlcmVkLnNwbGljZShkcmFnSW5kZXgsIDEpO1xuICBvcmRlcmVkLnNwbGljZShob3ZlckluZGV4LCAwLCBkcmFnZWRWYWx1ZSk7XG4gIHJldHVybiBvcmRlcmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IG1ha2VPbkhvdmVyID0gKGdldEluZGV4LCBnZXRNb3ZlRm5jLCBkaXJlY3Rpb24pID0+IChcbiAgcHJvcHMsXG4gIG1vbml0b3IsXG4gIGNvbXBvbmVudFxuKSA9PiB7XG4gIGNvbnN0IGRyYWdJbmRleCA9IG1vbml0b3IuZ2V0SXRlbSgpLmluZGV4O1xuICBjb25zdCBob3ZlckluZGV4ID0gZ2V0SW5kZXgocHJvcHMpO1xuXG4gIC8vIERvbid0IHJlcGxhY2UgaXRlbXMgd2l0aCB0aGVtc2VsdmVzXG4gIGlmIChkcmFnSW5kZXggPT09IGhvdmVySW5kZXgpIHJldHVybiBudWxsO1xuXG4gIC8vIERldGVybWluZSByZWN0YW5nbGUgb24gc2NyZWVuXG4gIGNvbnN0IGhvdmVyQm91bmRpbmdSZWN0ID0gY29tcG9uZW50LmdldE5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgbGV0IHNob3VsZE1vdmUgPSBmYWxzZTtcblxuICAvLyBEZXRlcm1pbmUgd2hpY2ggZHJhZyBkaXJlY3Rpb24gd2Ugc2hvdWxkIGhhbmRsZSBhbmQgd2hldGhlciB0byBtb3ZlIGFuIGl0ZW1cbiAgaWYgKGRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJykge1xuICAgIHNob3VsZE1vdmUgPSBvbkhvdmVyKFxuICAgICAgZHJhZ0luZGV4LFxuICAgICAgaG92ZXJJbmRleCxcbiAgICAgIGhvdmVyQm91bmRpbmdSZWN0LFxuICAgICAgbW9uaXRvcixcbiAgICAgICd5JyxcbiAgICAgICdib3R0b20nLFxuICAgICAgJ3RvcCdcbiAgICApO1xuICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgc2hvdWxkTW92ZSA9IG9uSG92ZXIoXG4gICAgICBkcmFnSW5kZXgsXG4gICAgICBob3ZlckluZGV4LFxuICAgICAgaG92ZXJCb3VuZGluZ1JlY3QsXG4gICAgICBtb25pdG9yLFxuICAgICAgJ3gnLFxuICAgICAgJ3JpZ2h0JyxcbiAgICAgICdsZWZ0J1xuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFVua25vd24gZHJhZyBkaXJlY3Rpb24sIGV4cGVjdGVkIG9uZSBvZjogaG9yaXpvbnRhbCwgdmVydGljYWwsIGdvdDogJHtkaXJlY3Rpb259YFxuICAgICk7XG4gIH1cblxuICBpZiAoIXNob3VsZE1vdmUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIFRpbWUgdG8gYWN0dWFsbHkgcGVyZm9ybSB0aGUgYWN0aW9uXG4gIGdldE1vdmVGbmMocHJvcHMpKGRyYWdJbmRleCwgaG92ZXJJbmRleCk7XG4gIC8vIE5vdGU6IHdlJ3JlIG11dGF0aW5nIHRoZSBtb25pdG9yIGl0ZW0gaGVyZSFcbiAgLy8gR2VuZXJhbGx5IGl0J3MgYmV0dGVyIHRvIGF2b2lkIG11dGF0aW9ucyxcbiAgLy8gYnV0IGl0J3MgZ29vZCBoZXJlIGZvciB0aGUgc2FrZSBvZiBwZXJmb3JtYW5jZVxuICAvLyB0byBhdm9pZCBleHBlbnNpdmUgaW5kZXggc2VhcmNoZXMuXG4gIG1vbml0b3IuZ2V0SXRlbSgpLmluZGV4ID0gaG92ZXJJbmRleDtcbiAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBvbkhvdmVyID0gKFxuICBkcmFnSW5kZXgsXG4gIGhvdmVySW5kZXgsXG4gIGhvdmVyQm91bmRpbmdSZWN0LFxuICBtb25pdG9yLFxuICBjbGllbnRBdHRyLFxuICByZWN0TWF4QXR0cixcbiAgcmVjdE1pbkF0dHJcbikgPT4ge1xuICAvLyBHZXQgbWlkcG9pbnRcbiAgY29uc3QgaG92ZXJNaWRkbGUgPVxuICAgIChob3ZlckJvdW5kaW5nUmVjdFtyZWN0TWF4QXR0cl0gLSBob3ZlckJvdW5kaW5nUmVjdFtyZWN0TWluQXR0cl0pIC8gMjtcbiAgLy8gRGV0ZXJtaW5lIG1vdXNlIHBvc2l0aW9uXG4gIGNvbnN0IGNsaWVudE9mZnNldCA9IG1vbml0b3IuZ2V0Q2xpZW50T2Zmc2V0KCk7XG4gIC8vIEdldCBwaXhlbHMgdG8gdGhlIGJvcmRlclxuICBjb25zdCBob3ZlckNsaWVudCA9IGNsaWVudE9mZnNldFtjbGllbnRBdHRyXSAtIGhvdmVyQm91bmRpbmdSZWN0W3JlY3RNaW5BdHRyXTtcblxuICAvLyBTd2FwIGl0ZW1zIG9ubHkgd2hlbiB0aGUgbW91c2UgaGFzIG1vdmVkIG92ZXIgdGhlIG1pZHBvaW50IG9mIG90aGVyIGl0ZW1cbiAgLy8gRHJhZ2dpbmcgcmlnaHQgb3IgZG93blxuICBpZiAoZHJhZ0luZGV4IDwgaG92ZXJJbmRleCAmJiBob3ZlckNsaWVudCA8IGhvdmVyTWlkZGxlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIERyYWdnaW5nIGxlZnQgb3IgdXBcbiAgaWYgKGRyYWdJbmRleCA+IGhvdmVySW5kZXggJiYgaG92ZXJDbGllbnQgPiBob3Zlck1pZGRsZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgZ2V0RHJvcFRhcmdldCA9IChkcm9wVHlwZXMsIGdldEluZGV4LCBnZXRNb3ZlRm5jLCBkaXJlY3Rpb24pID0+XG4gIERyb3BUYXJnZXQoXG4gICAgZHJvcFR5cGVzLFxuICAgIHsgaG92ZXI6IG1ha2VPbkhvdmVyKGdldEluZGV4LCBnZXRNb3ZlRm5jLCBkaXJlY3Rpb24pIH0sXG4gICAgY29ubmVjdCA9PiAoe1xuICAgICAgY29ubmVjdERyb3BUYXJnZXQ6IGNvbm5lY3QuZHJvcFRhcmdldCgpLFxuICAgIH0pXG4gICk7XG5cbmNvbnN0IGdldERyYWdTb3VyY2UgPSAoZHJhZ1R5cGUsIGdldEluZGV4LCBnZXRJdGVtKSA9PlxuICBEcmFnU291cmNlKFxuICAgIGRyYWdUeXBlLFxuICAgIHtcbiAgICAgIGJlZ2luRHJhZzogcHJvcHMgPT4gc2V0KGdldEl0ZW0ocHJvcHMpLCAnaW5kZXgnLCBnZXRJbmRleChwcm9wcykpLFxuICAgIH0sXG4gICAgKGNvbm5lY3QsIG1vbml0b3IpID0+ICh7XG4gICAgICBjb25uZWN0RHJhZ1NvdXJjZTogY29ubmVjdC5kcmFnU291cmNlKCksXG4gICAgICBpc0RyYWdnaW5nOiBtb25pdG9yLmlzRHJhZ2dpbmcoKSxcbiAgICB9KVxuICApO1xuXG5leHBvcnQgY29uc3Qgb3JkZXJhYmxlID0gKFxuICBDb21wb25lbnQsXG4gIHtcbiAgICB0eXBlID0gJ29yZGVyYWJsZScsXG4gICAgZGlyZWN0aW9uID0gJ2hvcml6b250YWwnLFxuICAgIGdldEl0ZW0gPSBwcm9wcyA9PiAoeyBpZDogcHJvcHMuaWQgfSksXG4gICAgZ2V0SW5kZXggPSBwcm9wcyA9PiBwcm9wcy5pbmRleCxcbiAgICBnZXRNb3ZlRm5jID0gcHJvcHMgPT4gcHJvcHMubW92ZVZhbHVlLFxuICB9XG4pID0+IHtcbiAgY29uc3QgT3JkZXJhYmxlID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgICAoXG4gICAgICB7XG4gICAgICAgIGlzRHJhZ2dpbmcsXG4gICAgICAgIHN0eWxlT25EcmFnLFxuICAgICAgICBjb25uZWN0RHJhZ1NvdXJjZSxcbiAgICAgICAgY29ubmVjdERyb3BUYXJnZXQsXG4gICAgICAgIC4uLnByb3BzXG4gICAgICB9LFxuICAgICAgcmVmXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50UmVmID0gdXNlUmVmKG51bGwpO1xuICAgICAgY29ubmVjdERyYWdTb3VyY2UoZWxlbWVudFJlZik7XG4gICAgICBjb25uZWN0RHJvcFRhcmdldChlbGVtZW50UmVmKTtcbiAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBnZXROb2RlOiAoKSA9PiBlbGVtZW50UmVmLmN1cnJlbnQsXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHJlZj17ZWxlbWVudFJlZn0gc3R5bGU9e2lzRHJhZ2dpbmcgPyBzdHlsZU9uRHJhZyA6IG51bGx9PlxuICAgICAgICAgIDxDb21wb25lbnQgaXNEcmFnZ2luZz17aXNEcmFnZ2luZ30gey4uLnByb3BzfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICApO1xuICBPcmRlcmFibGUuZGlzcGxheU5hbWUgPSBgT3JkZXJhYmxlKCR7Q29tcG9uZW50LmRpc3BsYXlOYW1lIHx8XG4gICAgQ29tcG9uZW50Lm5hbWUgfHxcbiAgICAnQ29tcG9uZW50J30pYDtcblxuICBPcmRlcmFibGUucHJvcFR5cGVzID0ge1xuICAgIGlzRHJhZ2dpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgY29ubmVjdERyYWdTb3VyY2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY29ubmVjdERyb3BUYXJnZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgc3R5bGVPbkRyYWc6IFByb3BUeXBlcy5vYmplY3QsXG4gIH07XG5cbiAgT3JkZXJhYmxlLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBzdHlsZU9uRHJhZzogeyBvcGFjaXR5OiAwLjYgfSxcbiAgfTtcblxuICByZXR1cm4gZ2V0RHJvcFRhcmdldChcbiAgICB0eXBlLFxuICAgIGdldEluZGV4LFxuICAgIGdldE1vdmVGbmMsXG4gICAgZGlyZWN0aW9uXG4gICkoZ2V0RHJhZ1NvdXJjZSh0eXBlLCBnZXRJbmRleCwgZ2V0SXRlbSkoT3JkZXJhYmxlKSk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL09yZGVyYWJsZVNlbGVjdC9oZWxwZXJzLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9OdW1lcmljSW5wdXQuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMTgxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jb25zdCByZW5kZXJPcHRpb24gPSAodmFsLCB0ZXh0LCBrZXkgPSBudWxsKSA9PiB7XG4gIGNvbnN0IG9wdFZhbHVlID0gdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkID8gJycgOiB2YWw7XG5cbiAgcmV0dXJuIChcbiAgICA8b3B0aW9uIHZhbHVlPXtvcHRWYWx1ZX0ga2V5PXtrZXkgfHwgdmFsfT5cbiAgICAgIHt0ZXh0fVxuICAgIDwvb3B0aW9uPlxuICApO1xufTtcblxuY29uc3QgcmVuZGVyT3B0R3JvdXAgPSBncm91cCA9PiAoXG4gIDxvcHRncm91cCBsYWJlbD17Z3JvdXAuZ3JvdXBMYWJlbH0ga2V5PXtncm91cC5ncm91cExhYmVsfT5cbiAgICB7cmVuZGVyT3B0aW9ucyhncm91cC5jaGlsZHJlbil9XG4gIDwvb3B0Z3JvdXA+XG4pO1xuXG5leHBvcnQgY29uc3QgcmVuZGVyT3B0aW9ucyA9IG9wdHMgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShvcHRzKSkge1xuICAgIHJldHVybiBvcHRzLm1hcCgob3B0LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG9wdC5jaGlsZHJlbikge1xuICAgICAgICByZXR1cm4gcmVuZGVyT3B0R3JvdXAob3B0KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZW5kZXJPcHRpb24ob3B0LnZhbHVlLCBvcHQubGFiZWwsIGluZGV4KTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob3B0cykubWFwKChbdmFsLCB0ZXh0XSkgPT4gcmVuZGVyT3B0aW9uKHZhbCwgdGV4dCkpO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9TZWxlY3RIZWxwZXJzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBDYXJkLCBNb2RhbCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBFbGlwc2lzV2l0aFRvb2x0aXAgZnJvbSAncmVhY3QtZWxsaXBzaXMtd2l0aC10b29sdGlwJztcbmltcG9ydCBEb251dENoYXJ0IGZyb20gJy4uL2NvbW1vbi9jaGFydHMvRG9udXRDaGFydCc7XG5pbXBvcnQgQmFyQ2hhcnQgZnJvbSAnLi4vY29tbW9uL2NoYXJ0cy9CYXJDaGFydCc7XG5pbXBvcnQgTG9hZGVyIGZyb20gJy4uL2NvbW1vbi9Mb2FkZXInO1xuaW1wb3J0IE1lc3NhZ2VCb3ggZnJvbSAnLi4vY29tbW9uL01lc3NhZ2VCb3gnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0ICcuL0NoYXJ0Qm94LmNzcyc7XG5cbmNsYXNzIENoYXJ0Qm94IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHsgc2hvd01vZGFsOiBmYWxzZSB9O1xuICB9XG4gIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgIHJldHVybiAoXG4gICAgICAhaXNFcXVhbCh0aGlzLnByb3BzLmNoYXJ0LCBuZXh0UHJvcHMuY2hhcnQpIHx8XG4gICAgICAhaXNFcXVhbCh0aGlzLnN0YXRlLCBuZXh0U3RhdGUpXG4gICAgKTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgc2hvd01vZGFsOiB0cnVlIH0pO1xuICB9O1xuXG4gIGNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNob3dNb2RhbDogZmFsc2UgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2hhcnQsIHR5cGUsIGNvbmZpZywgdGl0bGUsIHN0YXR1cywgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNvbXBvbmVudHMgPSB7XG4gICAgICBkb251dDogRG9udXRDaGFydCxcbiAgICAgIGJhcjogQmFyQ2hhcnQsXG4gICAgfTtcbiAgICBjb25zdCBDaGFydCA9IGNvbXBvbmVudHNbdHlwZV07XG4gICAgY29uc3QgZGF0YUZpbHRlcmVkID0gY2hhcnQuZGF0YSAmJiBjaGFydC5kYXRhLmZpbHRlcihhcnIgPT4gYXJyWzFdICE9PSAwKTtcbiAgICBjb25zdCBoYXNDaGFydERhdGEgPSBkYXRhRmlsdGVyZWQgJiYgZGF0YUZpbHRlcmVkLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgaGVhZGVyUHJvcHMgPSBoYXNDaGFydERhdGFcbiAgICAgID8ge1xuICAgICAgICAgIG9uQ2xpY2s6IHRoaXMub3Blbk1vZGFsLFxuICAgICAgICAgIHRpdGxlOiB0aGlzLnByb3BzLnRpcCxcbiAgICAgICAgICAnZGF0YS10b2dnbGUnOiAndG9vbHRpcCcsXG4gICAgICAgICAgJ2RhdGEtcGxhY2VtZW50JzogJ3RvcCcsXG4gICAgICAgIH1cbiAgICAgIDoge307XG4gICAgY29uc3QgY2hhcnRQcm9wcyA9IHtcbiAgICAgIHNlYXJjaFVybDpcbiAgICAgICAgY2hhcnQuc2VhcmNoICYmICFjaGFydC5zZWFyY2gubWF0Y2goLz0kLykgPyBjaGFydC5zZWFyY2ggOiBudWxsLFxuICAgICAgZGF0YTogY2hhcnQuZGF0YSA/IGNoYXJ0LmRhdGEgOiB1bmRlZmluZWQsXG4gICAgICBrZXk6IGAke2NoYXJ0LmlkfS1jaGFydGAsXG4gICAgfTtcblxuICAgIGNvbnN0IGJhckNoYXJ0UHJvcHMgPSB7XG4gICAgICAuLi5jaGFydFByb3BzLFxuICAgICAgeEF4aXNMYWJlbDogY2hhcnQueEF4aXNMYWJlbCxcbiAgICAgIHlBeGlzTGFiZWw6IGNoYXJ0LnlBeGlzTGFiZWwsXG4gICAgfTtcblxuICAgIGNvbnN0IGNoYXJ0UHJvcHNGb3JUeXBlID0ge1xuICAgICAgZG9udXQ6IGNoYXJ0UHJvcHMsXG4gICAgICBiYXI6IGJhckNoYXJ0UHJvcHMsXG4gICAgfTtcblxuICAgIGNvbnN0IHBhbmVsQ2hhcnQgPSA8Q2hhcnQgey4uLmNoYXJ0UHJvcHNGb3JUeXBlW3R5cGVdfSBjb25maWc9e2NvbmZpZ30gLz47XG4gICAgY29uc3QgZXJyb3IgPSAoXG4gICAgICA8TWVzc2FnZUJveFxuICAgICAgICBtc2c9e3RoaXMucHJvcHMuZXJyb3JUZXh0fVxuICAgICAgICBrZXk9e2Ake3RoaXMucHJvcHMuY2hhcnQuaWR9LWVycm9yYH1cbiAgICAgICAgaWNvbnR5cGU9XCJlcnJvci1jaXJjbGUtb1wiXG4gICAgICAvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPENhcmRcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdjaGFydC1ib3gnLCBjbGFzc05hbWUpfVxuICAgICAgICBrZXk9e2NoYXJ0LmlkfVxuICAgICAgICBhY2NlbnRlZFxuICAgICAgPlxuICAgICAgICA8Q2FyZC5IZWFkaW5nPlxuICAgICAgICAgIDxDYXJkLlRpdGxlIGNsYXNzTmFtZT1cInBvaW50ZXIgcGFuZWwtdGl0bGVcIiB7Li4uaGVhZGVyUHJvcHN9PlxuICAgICAgICAgICAgPEVsaXBzaXNXaXRoVG9vbHRpcD4ge3RpdGxlfSA8L0VsaXBzaXNXaXRoVG9vbHRpcD5cbiAgICAgICAgICA8L0NhcmQuVGl0bGU+XG4gICAgICAgIDwvQ2FyZC5IZWFkaW5nPlxuICAgICAgICA8Q2FyZC5Cb2R5PlxuICAgICAgICAgIDxMb2FkZXIgc3RhdHVzPXtzdGF0dXN9PntbcGFuZWxDaGFydCwgZXJyb3JdfTwvTG9hZGVyPlxuICAgICAgICAgIHt0aGlzLnN0YXRlLnNob3dNb2RhbCAmJiAoXG4gICAgICAgICAgICA8TW9kYWxcbiAgICAgICAgICAgICAgc2hvdz17dGhpcy5zdGF0ZS5zaG93TW9kYWx9XG4gICAgICAgICAgICAgIGVuZm9yY2VGb2N1c1xuICAgICAgICAgICAgICBvbkhpZGU9e3RoaXMuY2xvc2VNb2RhbH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPE1vZGFsLkhlYWRlciBjbG9zZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8TW9kYWwuVGl0bGU+e3RpdGxlfTwvTW9kYWwuVGl0bGU+XG4gICAgICAgICAgICAgIDwvTW9kYWwuSGVhZGVyPlxuICAgICAgICAgICAgICA8TW9kYWwuQm9keT5cbiAgICAgICAgICAgICAgICA8Q2hhcnQgey4uLmNoYXJ0UHJvcHN9IGNvbmZpZz17Y29uZmlnfSAvPlxuICAgICAgICAgICAgICA8L01vZGFsLkJvZHk+XG4gICAgICAgICAgICA8L01vZGFsPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvQ2FyZC5Cb2R5PlxuICAgICAgPC9DYXJkPlxuICAgICk7XG4gIH1cbn1cblxuQ2hhcnRCb3gucHJvcFR5cGVzID0ge1xuICBzdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgdGl0bGU6IFByb3BUeXBlcy5ub2RlLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNvbmZpZzogUHJvcFR5cGVzLnN0cmluZyxcbiAgbm9EYXRhTXNnOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBlcnJvclRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHR5cGU6IFByb3BUeXBlcy5vbmVPZihbJ2RvbnV0JywgJ2JhciddKS5pc1JlcXVpcmVkLFxuICBjaGFydDogUHJvcFR5cGVzLm9iamVjdCxcbiAgdGlwOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hhcnRCb3guZGVmYXVsdFByb3BzID0ge1xuICB0aXRsZTogJycsXG4gIGNsYXNzTmFtZTogJycsXG4gIGNvbmZpZzogJ3JlZ3VsYXInLFxuICBub0RhdGFNc2c6IF9fKCdObyBkYXRhIGF2YWlsYWJsZScpLFxuICBlcnJvclRleHQ6ICcnLFxuICBjaGFydDoge30sXG4gIHRpcDogJycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDaGFydEJveDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NoYXJ0Qm94L0NoYXJ0Qm94LmpzIiwiaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQgeyBwcm9wc1RvQ2FtZWxDYXNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBzZWxlY3RTZXR0aW5nUmVjb3JkcyA9IHN0YXRlID0+IHN0YXRlLnNldHRpbmdSZWNvcmRzO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFNldHRpbmdzID0gc3RhdGUgPT4gc2VsZWN0U2V0dGluZ1JlY29yZHMoc3RhdGUpLnNldHRpbmdzO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0U2V0dGluZ3NCeUNhdGVnb3J5ID0gY2F0ZWdvcnkgPT5cbiAgY3JlYXRlU2VsZWN0b3Ioc2VsZWN0U2V0dGluZ3MsIHNldHRpbmdzID0+XG4gICAgc2V0dGluZ3NbY2F0ZWdvcnldLm1hcChwcm9wc1RvQ2FtZWxDYXNlKVxuICApO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0U2V0dGluZ0J5SWQgPSAoaWQsIGNhdGVnb3J5KSA9PlxuICBjcmVhdGVTZWxlY3RvcihzZWxlY3RTZXR0aW5nc0J5Q2F0ZWdvcnkoY2F0ZWdvcnkpLCBzZXR0aW5ncyA9PlxuICAgIHNldHRpbmdzLmZpbmQoc2V0dGluZyA9PiBzZXR0aW5nLmlkID09PSBpZClcbiAgKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFNldHRpbmdFZGl0aW5nID0gc3RhdGUgPT5cbiAgc2VsZWN0U2V0dGluZ1JlY29yZHMoc3RhdGUpLmVkaXRpbmc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nUmVjb3Jkcy9TZXR0aW5nUmVjb3Jkc1NlbGVjdG9ycy5qcyIsImltcG9ydCB7IHVzZUZvcmVtYW5Nb2RhbCB9IGZyb20gJy4uL0ZvcmVtYW5Nb2RhbC9Gb3JlbWFuTW9kYWxIb29rcyc7XG5cbmltcG9ydCB7IFNFVFRJTkdfVVBEQVRFX01PREFMIH0gZnJvbSAnLi9TZXR0aW5nVXBkYXRlTW9kYWxDb25zdGFudHMnO1xuXG5jb25zdCB1c2VTZXR0aW5nTW9kYWwgPSAoKSA9PiB1c2VGb3JlbWFuTW9kYWwoeyBpZDogU0VUVElOR19VUERBVEVfTU9EQUwgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVNldHRpbmdNb2RhbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdVcGRhdGVNb2RhbC91c2VTZXR0aW5nTW9kYWwuanMiLCJpbXBvcnQgeyBjb21iaW5lUmVkdWNlcnMgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBjb25uZWN0Um91dGVyIH0gZnJvbSAnY29ubmVjdGVkLXJlYWN0LXJvdXRlcic7XG5pbXBvcnQgaGlzdG9yeSBmcm9tICcuLi8uLi9oaXN0b3J5JztcbmltcG9ydCBob3N0cyBmcm9tICcuL2hvc3RzJztcbmltcG9ydCBub3RpZmljYXRpb25zIGZyb20gJy4vbm90aWZpY2F0aW9ucyc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyBwYXNzd29yZFN0cmVuZ3RoUmVkdWNlcnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1Bhc3N3b3JkU3RyZW5ndGgnO1xuaW1wb3J0IHsgcmVkdWNlcnMgYXMgYnJlYWRjcnVtYkJhclJlZHVjZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9CcmVhZGNydW1iQmFyJztcbmltcG9ydCB7IHJlZHVjZXJzIGFzIGF1dG9Db21wbGV0ZVJlZHVjZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9BdXRvQ29tcGxldGUnO1xuaW1wb3J0IHsgcmVkdWNlcnMgYXMgbGF5b3V0UmVkdWNlcnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0xheW91dCc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyBkaWZmTW9kYWxSZWR1Y2VycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQ29uZmlnUmVwb3J0cy9EaWZmTW9kYWwnO1xuaW1wb3J0IHsgcmVkdWNlcnMgYXMgZWRpdG9yUmVkdWNlcnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0VkaXRvcic7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyB0ZW1wbGF0ZUdlbmVyYXRpb25SZWR1Y2VycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvVGVtcGxhdGVHZW5lcmF0b3InO1xuaW1wb3J0IGZhY3RDaGFydCBmcm9tICcuLi8uLi9jb21wb25lbnRzL0ZhY3RDaGFydHMvc2xpY2UnO1xuaW1wb3J0IHsgcmVkdWNlcnMgYXMgZmlsbFJlZHVjZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9jb21tb24vRmlsbCc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyB0eXBlQWhlYWRTZWxlY3RSZWR1Y2VycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY29tbW9uL1R5cGVBaGVhZFNlbGVjdCc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyBhdWRpdHNQYWdlUmVkdWNlcnMgfSBmcm9tICcuLi8uLi9yb3V0ZXMvQXVkaXRzL0F1ZGl0c1BhZ2UnO1xuaW1wb3J0IHsgcmVkdWNlcnMgYXMgaW50ZXJ2YWxSZWR1Y2VycyB9IGZyb20gJy4uL21pZGRsZXdhcmVzL0ludGVydmFsTWlkZGxld2FyZSc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyBib29rbWFya3NSZWR1Y2VycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQm9va21hcmtzJztcbmltcG9ydCB7IHJlZHVjZXJzIGFzIGJvb2ttYXJrc1BGNFJlZHVjZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9QRjQvQm9va21hcmtzJztcbmltcG9ydCB7IHJlZHVjZXJzIGFzIG1vZGFsUmVkdWNlcnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbCc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyBhcGlSZWR1Y2VyIH0gZnJvbSAnLi4vQVBJJztcbmltcG9ydCB7IHJlZHVjZXJzIGFzIG1vZGVsc1BhZ2VSZWR1Y2VycyB9IGZyb20gJy4uLy4uL3JvdXRlcy9Nb2RlbHMvTW9kZWxzUGFnZSc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyBzZXR0aW5nUmVjb3Jkc1JlZHVjZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9TZXR0aW5nUmVjb3Jkcyc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyBwZXJzb25hbEFjY2Vzc1Rva2Vuc1JlZHVjZXJzIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy91c2Vycy9QZXJzb25hbEFjY2Vzc1Rva2Vucyc7XG5pbXBvcnQgeyByZWR1Y2VycyBhcyBjb25maXJtTW9kYWxSZWR1Y2VycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvQ29uZmlybU1vZGFsJztcbmltcG9ydCB7IHJlZHVjZXJzIGFzIHRvYXN0c0xpc3RSZWR1Y2VycyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvVG9hc3RzTGlzdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lUmVkdWNlcnNBc3luYyhhc3luY1JlZHVjZXJzKSB7XG4gIHJldHVybiBjb21iaW5lUmVkdWNlcnMoe1xuICAgIC4uLmJvb2ttYXJrc1JlZHVjZXJzLFxuICAgIC4uLmJvb2ttYXJrc1BGNFJlZHVjZXJzLFxuICAgIGhvc3RzLFxuICAgIG5vdGlmaWNhdGlvbnMsXG4gICAgLi4udG9hc3RzTGlzdFJlZHVjZXJzLFxuICAgIC4uLnBhc3N3b3JkU3RyZW5ndGhSZWR1Y2VycyxcbiAgICAuLi5icmVhZGNydW1iQmFyUmVkdWNlcnMsXG4gICAgLi4ubGF5b3V0UmVkdWNlcnMsXG4gICAgLi4uYXN5bmNSZWR1Y2VycyxcbiAgICAuLi5hdXRvQ29tcGxldGVSZWR1Y2VycyxcbiAgICAuLi5kaWZmTW9kYWxSZWR1Y2VycyxcbiAgICAuLi5lZGl0b3JSZWR1Y2VycyxcbiAgICAuLi50ZW1wbGF0ZUdlbmVyYXRpb25SZWR1Y2VycyxcbiAgICBmYWN0Q2hhcnQsXG4gICAgLi4udHlwZUFoZWFkU2VsZWN0UmVkdWNlcnMsXG4gICAgLi4uc2V0dGluZ1JlY29yZHNSZWR1Y2VycyxcbiAgICAuLi5wZXJzb25hbEFjY2Vzc1Rva2Vuc1JlZHVjZXJzLFxuICAgIC4uLmNvbmZpcm1Nb2RhbFJlZHVjZXJzLFxuXG4gICAgcm91dGVyOiBjb25uZWN0Um91dGVyKGhpc3RvcnkpLFxuICAgIC8vIFBhZ2VzXG4gICAgLi4uZmlsbFJlZHVjZXJzLFxuICAgIC4uLmF1ZGl0c1BhZ2VSZWR1Y2VycyxcbiAgICAuLi5tb2RhbFJlZHVjZXJzLFxuICAgIC4uLm1vZGVsc1BhZ2VSZWR1Y2VycyxcblxuICAgIC8vIE1pZGRsZXdhcmVzXG4gICAgLi4uaW50ZXJ2YWxSZWR1Y2VycyxcbiAgICAuLi5hcGlSZWR1Y2VyLFxuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29tYmluZVJlZHVjZXJzQXN5bmMoKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9yZWR1Y2Vycy9pbmRleC5qcyIsImltcG9ydCB7IEFQSV9PUEVSQVRJT05TIH0gZnJvbSAnLi9BUElDb25zdGFudHMnO1xuXG5jb25zdCB7IEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIFBBVENIIH0gPSBBUElfT1BFUkFUSU9OUztcblxuLyoqXG4gKiBhbiBBUEkgYWN0aW9uIGNyZWF0b3IuXG4gKiBAcGFyYW0geyBTdHJpbmcgfSB0eXBlIHRoZSBBUEkgYWN0aW9uIHR5cGUuXG4gKiBAcGFyYW0geyBPYmplY3QgfSBwYXlsb2FkIHRoZSBBUEkgYWN0aW9uIHBheWxvYWQuXG4gKiBAcGFyYW0geyBTdHJpbmcgfSBwYXlsb2FkLmtleSB0aGUgdW5pcXVlIGtleSBvZiB0aGUgQVBJIHJlcXVlc3QsIHdpbGwgYmUgdXNlZCBpbiB0aGUgc2VsZWN0b3IgdG9vLlxuICogQHBhcmFtIHsgU3RyaW5nIH0gcGF5bG9hZC51cmwgdGhlIHVybCBmb3IgdGhlIEFQSSByZXF1ZXN0LlxuICogQHBhcmFtIHsgU3RyaW5nIH0gcGF5bG9hZC5oZWFkZXJzIHRoZSBBUEkgZ2V0IHJlcXVlc3QgaGVhZGVycy5cbiAqIEBwYXJhbSB7IE9iamVjdCB9IHBheWxvYWQucGFyYW1zIHRoZSBBUEkgZ2V0IHJlcXVlc3QgcGFyYW1zLlxuICogQHBhcmFtIHsgRnVuY3Rpb24gfSBwYXlsb2FkLmhhbmRsZUVycm9yIGFuIGVycm9yIGhhbmRsaW5nIGNhbGxiYWNrLlxuICogQHBhcmFtIHsgRnVuY3Rpb24gfSBwYXlsb2FkLmhhbmRsZVN1Y2Nlc3MgYSBzdWNjZXNzIGhhbmRsaW5nIGNhbGxiYWNrLlxuICogQHBhcmFtIHsgRnVuY3Rpb24gfSBwYXlsb2FkLmVycm9yVG9hc3QgYW4gZXJyb3IgdG9hc3Qgd2lsbCBiZSB0cmlnZ2VyZWQgd2l0aCB0aGlzIG1lc3NhZ2UgYWZ0ZXIgQVBJIGVycm9yLlxuICogQHBhcmFtIHsgRnVuY3Rpb24gfSBwYXlsb2FkLnN1Y2Nlc3NUb2FzdCBhIHN1Y2NlcyB0b2FzdCB3aWxsIGJlIHRyaWdnZXJlZCB3aXRoIHRoaXMgbWVzc2FnZSBhZnRlciBBUEkgc3VjY2Vzcy5cbiAqIEBwYXJhbSB7IE9iamVjdCB9IHBheWxvYWQucGF5bG9hZCB0aGUgQVBJIHBheWxvYWQgd2hpY2ggd2lsbCBiZSBwYXNzZWQgYWxzbyB0byB0aGUgcmVkdWNlci5cbiAqIEBwYXJhbSB7IE9iamVjdCB9IHBheWxvYWQuYWN0aW9uVHlwZXMgYWN0aW9uIHR5cGVzIHdoaWNoIHdpbGwgcmVwbGFjZSB0aGUgZGVmYXVsdCBhY3Rpb24gdHlwZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBhcGlBY3Rpb24gPSAodHlwZSwgcGF5bG9hZCkgPT4gKHsgdHlwZSwgcGF5bG9hZCB9KTtcblxuZXhwb3J0IGNvbnN0IGdldCA9IHBheWxvYWQgPT4gYXBpQWN0aW9uKEdFVCwgcGF5bG9hZCk7XG5cbmV4cG9ydCBjb25zdCBwb3N0ID0gcGF5bG9hZCA9PiBhcGlBY3Rpb24oUE9TVCwgcGF5bG9hZCk7XG5cbmV4cG9ydCBjb25zdCBwdXQgPSBwYXlsb2FkID0+IGFwaUFjdGlvbihQVVQsIHBheWxvYWQpO1xuXG5leHBvcnQgY29uc3QgcGF0Y2ggPSBwYXlsb2FkID0+IGFwaUFjdGlvbihQQVRDSCwgcGF5bG9hZCk7XG5cbmV4cG9ydCBjb25zdCBBUElBY3Rpb25zID0ge1xuICBnZXQsXG4gIHBvc3QsXG4gIHB1dCxcbiAgcGF0Y2gsXG4gIGRlbGV0ZTogcGF5bG9hZCA9PiBhcGlBY3Rpb24oREVMRVRFLCBwYXlsb2FkKSxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvQVBJL0FQSUFjdGlvbnMuanMiLCJpbXBvcnQgeyBmbGF0dGVuLCBnZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vLi4vcmVkdXgvQVBJJztcblxuaW1wb3J0IHtcbiAgQlJFQURDUlVNQl9CQVJfVE9HR0xFX1NXSVRDSEVSLFxuICBCUkVBRENSVU1CX0JBUl9DTE9TRV9TV0lUQ0hFUixcbiAgQlJFQURDUlVNQl9CQVJfUkVTT1VSQ0VTX1JFUVVFU1QsXG4gIEJSRUFEQ1JVTUJfQkFSX1JFU09VUkNFU19TVUNDRVNTLFxuICBCUkVBRENSVU1CX0JBUl9SRVNPVVJDRVNfRkFJTFVSRSxcbiAgQlJFQURDUlVNQl9CQVJfQ0xFQVJfU0VBUkNILFxuICBCUkVBRENSVU1CX0JBUl9VUERBVEVfVElUTEUsXG59IGZyb20gJy4vQnJlYWRjcnVtYkJhckNvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB0b2dnbGVTd2l0Y2hlciA9ICgpID0+ICh7XG4gIHR5cGU6IEJSRUFEQ1JVTUJfQkFSX1RPR0dMRV9TV0lUQ0hFUixcbn0pO1xuXG5leHBvcnQgY29uc3QgY2xvc2VTd2l0Y2hlciA9ICgpID0+ICh7XG4gIHR5cGU6IEJSRUFEQ1JVTUJfQkFSX0NMT1NFX1NXSVRDSEVSLFxufSk7XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWFyY2hRdWVyeSA9IHJlc291cmNlID0+IGRpc3BhdGNoID0+IHtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IEJSRUFEQ1JVTUJfQkFSX0NMRUFSX1NFQVJDSCxcbiAgfSk7XG4gIGxvYWRTd2l0Y2hlclJlc291cmNlc0J5UmVzb3VyY2UocmVzb3VyY2UpKGRpc3BhdGNoKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVCcmVhZGNydW1iVGl0bGUgPSB0aXRsZSA9PiAoe1xuICB0eXBlOiBCUkVBRENSVU1CX0JBUl9VUERBVEVfVElUTEUsXG4gIHBheWxvYWQ6IHRpdGxlLFxufSk7XG5cbmV4cG9ydCBjb25zdCBsb2FkU3dpdGNoZXJSZXNvdXJjZXNCeVJlc291cmNlID0gKFxuICByZXNvdXJjZSxcbiAgeyBwYWdlID0gMSwgc2VhcmNoUXVlcnkgPSAnJyB9ID0ge31cbikgPT4gYXN5bmMgZGlzcGF0Y2ggPT4ge1xuICBjb25zdCB7IHJlc291cmNlVXJsLCBuYW1lRmllbGQsIHN3aXRjaGVySXRlbVVybCB9ID0gcmVzb3VyY2U7XG4gIGNvbnN0IG9wdGlvbnMgPSB7IHBhZ2UsIHNlYXJjaFF1ZXJ5IH07XG4gIGNvbnN0IGJlZm9yZVJlcXVlc3QgPSAoKSA9PlxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEJSRUFEQ1JVTUJfQkFSX1JFU09VUkNFU19SRVFVRVNULFxuICAgICAgcGF5bG9hZDogeyByZXNvdXJjZVVybCwgb3B0aW9ucyB9LFxuICAgIH0pO1xuXG4gIGNvbnN0IG9uUmVxdWVzdFN1Y2Nlc3MgPSByZXNwb25zZSA9PlxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEJSRUFEQ1JVTUJfQkFSX1JFU09VUkNFU19TVUNDRVNTLFxuICAgICAgcGF5bG9hZDogeyAuLi5mb3JtYXRSZXN1bHRzKHJlc3BvbnNlKSwgcmVzb3VyY2VVcmwgfSxcbiAgICB9KTtcblxuICBjb25zdCBvblJlcXVlc3RGYWlsID0gZXJyb3IgPT5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBCUkVBRENSVU1CX0JBUl9SRVNPVVJDRVNfRkFJTFVSRSxcbiAgICAgIHBheWxvYWQ6IHsgZXJyb3IsIHJlc291cmNlVXJsIH0sXG4gICAgfSk7XG5cbiAgY29uc3QgZm9ybWF0UmVzdWx0cyA9ICh7IGRhdGEgfSkgPT4ge1xuICAgIGNvbnN0IHN3aXRjaGVySXRlbXMgPSBmbGF0dGVuKE9iamVjdC52YWx1ZXMoZGF0YS5yZXN1bHRzKSkubWFwKHJlc3VsdCA9PiB7XG4gICAgICBjb25zdCBpdGVtTmFtZSA9IGdldChyZXN1bHQsIG5hbWVGaWVsZCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBfXyhpdGVtTmFtZSksXG4gICAgICAgIGlkOiByZXN1bHQuaWQsXG4gICAgICAgIGhyZWY6IHN3aXRjaGVySXRlbVVybFxuICAgICAgICAgIC5yZXBsYWNlKCc6aWQnLCByZXN1bHQuaWQpXG4gICAgICAgICAgLnJlcGxhY2UoJzpuYW1lJywgaXRlbU5hbWUpLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogc3dpdGNoZXJJdGVtcyxcbiAgICAgIHBhZ2U6IE51bWJlcihkYXRhLnBhZ2UpLFxuICAgICAgcGFnZXM6IE51bWJlcihkYXRhLnN1YnRvdGFsKSAvIE51bWJlcihkYXRhLnBlcl9wYWdlKSxcbiAgICB9O1xuICB9O1xuICBiZWZvcmVSZXF1ZXN0KCk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBBUEkuZ2V0KFxuICAgICAgcmVzb3VyY2VVcmwsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgcGFnZSxcbiAgICAgICAgcGVyX3BhZ2U6IDEwLFxuICAgICAgICBzZWFyY2g6IGNyZWF0ZVNlYXJjaChuYW1lRmllbGQsIHNlYXJjaFF1ZXJ5LCByZXNvdXJjZS5yZXNvdXJjZUZpbHRlciksXG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gb25SZXF1ZXN0U3VjY2VzcyhyZXNwb25zZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIG9uUmVxdWVzdEZhaWwoZXJyb3IpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlU2VhcmNoID0gKG5hbWVGaWVsZCwgc2VhcmNoUXVlcnksIHJlc291cmNlRmlsdGVyKSA9PiB7XG4gIGxldCBxdWVyeSA9ICcnO1xuICBpZiAocmVzb3VyY2VGaWx0ZXIpIHtcbiAgICBxdWVyeSArPSByZXNvdXJjZUZpbHRlcjtcbiAgfVxuXG4gIGlmIChxdWVyeSAmJiBzZWFyY2hRdWVyeSkge1xuICAgIHF1ZXJ5ICs9IGAgQU5EICR7c2ltcGxlTmFtZVF1ZXJ5KG5hbWVGaWVsZCwgc2VhcmNoUXVlcnkpfWA7XG4gIH0gZWxzZSB7XG4gICAgcXVlcnkgKz0gc2ltcGxlTmFtZVF1ZXJ5KG5hbWVGaWVsZCwgc2VhcmNoUXVlcnkpO1xuICB9XG5cbiAgcmV0dXJuIHF1ZXJ5O1xufTtcblxuY29uc3Qgc2ltcGxlTmFtZVF1ZXJ5ID0gKG5hbWVGaWVsZCwgc2VhcmNoUXVlcnkpID0+XG4gIHNlYXJjaFF1ZXJ5ID8gYCR7W25hbWVGaWVsZF19fiR7c2VhcmNoUXVlcnl9YCA6ICcnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQnJlYWRjcnVtYkJhci9CcmVhZGNydW1iQmFyQWN0aW9ucy5qcyIsImltcG9ydCBVUkkgZnJvbSAndXJpanMnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vLi4vcmVkdXgvQVBJJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjbGVhclNwYWNlcyB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7XG4gIEFVVE9fQ09NUExFVEVfSU5JVCxcbiAgQVVUT19DT01QTEVURV9SRVFVRVNULFxuICBBVVRPX0NPTVBMRVRFX1NVQ0NFU1MsXG4gIEFVVE9fQ09NUExFVEVfRkFJTFVSRSxcbiAgQVVUT19DT01QTEVURV9SRVNFVCxcbiAgQVVUT19DT01QTEVURV9ESVNBQkxFRF9DSEFOR0UsXG4gIEFVVE9fQ09NUExFVEVfQ09OVFJPTExFUl9DSEFOR0UsXG4gIFRSSUdHRVJTLFxufSBmcm9tICcuL0F1dG9Db21wbGV0ZUNvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBnZXRSZXN1bHRzID0gKHtcbiAgdXJsLFxuICBzZWFyY2hRdWVyeSxcbiAgY29udHJvbGxlcixcbiAgdHJpZ2dlcixcbiAgaWQsXG59KSA9PiBkaXNwYXRjaCA9PiB7XG4gIGRpc3BhdGNoKFxuICAgIHN0YXJ0UmVxdWVzdCh7XG4gICAgICBjb250cm9sbGVyLFxuICAgICAgc2VhcmNoUXVlcnksXG4gICAgICB0cmlnZ2VyLFxuICAgICAgZGlzcGF0Y2gsXG4gICAgICBpZCxcbiAgICAgIHVybCxcbiAgICB9KVxuICApO1xuXG4gIHJldHVybiBjcmVhdGVBUElSZXF1ZXN0KHtcbiAgICBzZWFyY2hRdWVyeSxcbiAgICB0cmlnZ2VyLFxuICAgIGlkLFxuICAgIGRpc3BhdGNoLFxuICAgIHVybCxcbiAgfSk7XG59O1xuXG5sZXQgY3JlYXRlQVBJUmVxdWVzdCA9IGFzeW5jICh7IHNlYXJjaFF1ZXJ5LCB0cmlnZ2VyLCBpZCwgZGlzcGF0Y2gsIHVybCB9KSA9PiB7XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoKFxuICAgICAgcmVxdWVzdEZhaWx1cmUoe1xuICAgICAgICBlcnJvcjogbmV3IEVycm9yKCdObyBBUEkgcGF0aCB3YXMgcHJvdmlkZWQuJyksXG4gICAgICAgIGlkLFxuICAgICAgICBkaXNwYXRjaCxcbiAgICAgICAgaXNWaXNpYmxlOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHBhdGggPSBnZXRBUElQYXRoKHsgdHJpZ2dlciwgc2VhcmNoUXVlcnksIHVybCB9KTtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IEFQSS5nZXQocGF0aCk7XG5cbiAgICByZXR1cm4gZGlzcGF0Y2goXG4gICAgICByZXF1ZXN0U3VjY2Vzcyh7XG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICB0cmlnZ2VyLFxuICAgICAgICBpZCxcbiAgICAgIH0pXG4gICAgKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2goXG4gICAgICByZXF1ZXN0RmFpbHVyZSh7XG4gICAgICAgIGVycm9yLFxuICAgICAgICBpZCxcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIGlzVmlzaWJsZTogZXJyb3IubWVzc2FnZSA9PT0gJ05ldHdvcmsgRXJyb3InLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59O1xuXG5jcmVhdGVBUElSZXF1ZXN0ID0gZGVib3VuY2UoY3JlYXRlQVBJUmVxdWVzdCwgMjUwKTtcblxuY29uc3Qgc3RhcnRSZXF1ZXN0ID0gKHsgY29udHJvbGxlciwgc2VhcmNoUXVlcnksIHRyaWdnZXIsIGlkLCB1cmwgfSkgPT4gKHtcbiAgdHlwZTogQVVUT19DT01QTEVURV9SRVFVRVNULFxuICBwYXlsb2FkOiB7XG4gICAgY29udHJvbGxlcixcbiAgICBzZWFyY2hRdWVyeSxcbiAgICBzdGF0dXM6IFNUQVRVUy5QRU5ESU5HLFxuICAgIHRyaWdnZXIsXG4gICAgZXJyb3I6IG51bGwsXG4gICAgaWQsXG4gICAgdXJsLFxuICB9LFxufSk7XG5cbmNvbnN0IHJlcXVlc3RTdWNjZXNzID0gKHsgZGF0YSwgdHJpZ2dlciwgaWQgfSkgPT4ge1xuICBjb25zdCB7IGVycm9yIH0gPSBkYXRhWzBdIHx8IHt9O1xuICBpZiAoZXJyb3IpIHtcbiAgICByZXR1cm4gcmVxdWVzdEZhaWx1cmUoeyBlcnJvcjogbmV3IEVycm9yKGVycm9yKSwgaWQgfSk7XG4gIH1cbiAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgY29uc3Qgbm9EYXRhRXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICBgUmVzcG9uc2UgZGF0YSBpcyBub3QgYW4gYXJyYXksIGluc3RlYWQgcmVjZWl2ZWQ6ICR7SlNPTi5zdHJpbmdpZnkoZGF0YSl9YFxuICAgICk7XG4gICAgcmV0dXJuIHJlcXVlc3RGYWlsdXJlKHtcbiAgICAgIGVycm9yOiBub0RhdGFFcnJvcixcbiAgICAgIGlkLFxuICAgICAgaXNWaXNpYmxlOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICBjb25zdCByZXN1bHRzID0gZGF0YS5tYXAocmVzdWx0ID0+IG9iamVjdERlZXBUcmltKHJlc3VsdCwgdHJpZ2dlcikpO1xuICByZXR1cm4ge1xuICAgIHR5cGU6IEFVVE9fQ09NUExFVEVfU1VDQ0VTUyxcbiAgICBwYXlsb2FkOiB7XG4gICAgICByZXN1bHRzLFxuICAgICAgc3RhdHVzOiBTVEFUVVMuUkVTT0xWRUQsXG4gICAgICBpZCxcbiAgICB9LFxuICB9O1xufTtcblxuY29uc3QgcmVxdWVzdEZhaWx1cmUgPSAoeyBlcnJvciwgaWQsIGlzVmlzaWJsZSA9IHRydWUgfSkgPT4gKHtcbiAgdHlwZTogQVVUT19DT01QTEVURV9GQUlMVVJFLFxuICBwYXlsb2FkOiB7XG4gICAgcmVzdWx0czogW10sXG4gICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UsXG4gICAgaXNFcnJvclZpc2libGU6IGlzVmlzaWJsZSxcbiAgICBzdGF0dXM6IFNUQVRVUy5FUlJPUixcbiAgICBpZCxcbiAgfSxcbn0pO1xuXG5jb25zdCBpc0ZpbmlzaGVkV2l0aFBvaW50ID0gc3RyaW5nID0+IHN0cmluZy5zbGljZSgtMSkgPT09ICcuJztcblxuY29uc3QgZ2V0QVBJUGF0aCA9ICh7IHRyaWdnZXIsIHNlYXJjaFF1ZXJ5LCB1cmwgfSkgPT4ge1xuICBjb25zdCBsb2FkTmV4dFJlc3VsdHMgPVxuICAgIHRyaWdnZXIgPT09IFRSSUdHRVJTLklURU1fU0VMRUNUICYmICFpc0ZpbmlzaGVkV2l0aFBvaW50KHNlYXJjaFF1ZXJ5KVxuICAgICAgPyAnICdcbiAgICAgIDogJyc7XG4gIGNvbnN0IEFQSVNlYXJjaFF1ZXJ5ID0gc2VhcmNoUXVlcnkgKyBsb2FkTmV4dFJlc3VsdHM7XG4gIGNvbnN0IEFQSVBhdGggPSBuZXcgVVJJKHVybCk7XG4gIEFQSVBhdGguYWRkU2VhcmNoKHsgc2VhcmNoOiBBUElTZWFyY2hRdWVyeSB9KTtcbiAgcmV0dXJuIEFQSVBhdGgudG9TdHJpbmcoKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldERhdGEgPSAoY29udHJvbGxlciwgaWQpID0+ICh7XG4gIHR5cGU6IEFVVE9fQ09NUExFVEVfUkVTRVQsXG4gIHBheWxvYWQ6IHsgY29udHJvbGxlciwgaWQgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbFVwZGF0ZSA9ICh7XG4gIHNlYXJjaFF1ZXJ5LFxuICBjb250cm9sbGVyLFxuICBlcnJvcixcbiAgaWQsXG4gIHVybCxcbiAgZGlzYWJsZWQsXG59KSA9PiAoe1xuICB0eXBlOiBBVVRPX0NPTVBMRVRFX0lOSVQsXG4gIHBheWxvYWQ6IHtcbiAgICBzZWFyY2hRdWVyeSxcbiAgICBjb250cm9sbGVyLFxuICAgIHRyaWdnZXI6IFRSSUdHRVJTLkNPTVBPTkVOVF9ESURfTU9VTlQsXG4gICAgc3RhdHVzOiBTVEFUVVMuUkVTT0xWRUQsXG4gICAgZXJyb3IsXG4gICAgaXNFcnJvclZpc2libGU6ICEhZXJyb3IsXG4gICAgaWQsXG4gICAgZGlzYWJsZWQsXG4gICAgdXJsLFxuICB9LFxufSk7XG5cbmNvbnN0IG9iamVjdERlZXBUcmltID0gKG9iaiwgdHJpZ2dlcikgPT4ge1xuICBjb25zdCBjb3B5ID0geyAuLi5vYmogfTtcbiAgT2JqZWN0LmtleXMoY29weSkuZm9yRWFjaChrZXkgPT4ge1xuICAgIGNvbnN0IGFkZFNwYWNlID1cbiAgICAgIGtleSA9PT0gJ2xhYmVsJyAmJiB0cmlnZ2VyID09PSBUUklHR0VSUy5JVEVNX1NFTEVDVCA/ICcgJyA6ICcnO1xuICAgIGNvcHlba2V5XSA9IGNsZWFyU3BhY2VzKGNvcHlba2V5XSkgKyBhZGRTcGFjZTtcbiAgfSk7XG4gIHJldHVybiBjb3B5O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZURpc2FiaWxpdHkgPSAoZGlzYWJsZWQsIGlkKSA9PiAoe1xuICB0eXBlOiBBVVRPX0NPTVBMRVRFX0RJU0FCTEVEX0NIQU5HRSxcbiAgcGF5bG9hZDoge1xuICAgIGRpc2FibGVkLFxuICAgIGlkLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVDb250cm9sbGVyID0gKGNvbnRyb2xsZXIsIHVybCwgaWQpID0+ICh7XG4gIHR5cGU6IEFVVE9fQ09NUExFVEVfQ09OVFJPTExFUl9DSEFOR0UsXG4gIHBheWxvYWQ6IHtcbiAgICBjb250cm9sbGVyLFxuICAgIHVybCxcbiAgICB0cmlnZ2VyOiBUUklHR0VSUy5DT05UUk9MTEVSX0NIQU5HRUQsXG4gICAgaWQsXG4gIH0sXG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGVBY3Rpb25zLmpzIiwiaW1wb3J0IHtcbiAgRElGRl9NT0RBTF9UT0dHTEUsXG4gIERJRkZfTU9EQUxfQ1JFQVRFLFxuICBESUZGX01PREFMX1ZJRVdUWVBFLFxufSBmcm9tICcuL0RpZmZNb2RhbENvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB0b2dnbGVNb2RhbCA9ICgpID0+ICh7XG4gIHR5cGU6IERJRkZfTU9EQUxfVE9HR0xFLFxufSk7XG5cbmV4cG9ydCBjb25zdCBjaGFuZ2VWaWV3VHlwZSA9IHZpZXdUeXBlID0+IGRpc3BhdGNoID0+IHtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IERJRkZfTU9EQUxfVklFV1RZUEUsXG4gICAgcGF5bG9hZDoge1xuICAgICAgZGlmZlZpZXdUeXBlOiB2aWV3VHlwZSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEaWZmID0gKGRpZmYsIHRpdGxlKSA9PiBkaXNwYXRjaCA9PiB7XG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBESUZGX01PREFMX0NSRUFURSxcbiAgICBwYXlsb2FkOiB7XG4gICAgICBkaWZmLFxuICAgICAgdGl0bGUsXG4gICAgICBpc09wZW46IHRydWUsXG4gICAgfSxcbiAgfSk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQ29uZmlnUmVwb3J0cy9EaWZmTW9kYWwvRGlmZk1vZGFsQWN0aW9ucy5qcyIsImltcG9ydCB7IGRlYm91bmNlLCB0b1N0cmluZyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi8uLi9yZWR1eC9BUEknO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5pbXBvcnQge1xuICBFRElUT1JfQ0hBTkdFX0RJRkZfVklFVyxcbiAgRURJVE9SX0NIQU5HRV9TRVRUSU5HLFxuICBFRElUT1JfQ0hBTkdFX1RBQixcbiAgRURJVE9SX0NIQU5HRV9WQUxVRSxcbiAgRURJVE9SX0RJU01JU1NfRVJST1IsXG4gIEVESVRPUl9TSE9XX0VSUk9SLFxuICBFRElUT1JfRVhFQ19QUkVWSUVXLFxuICBFRElUT1JfU0hPV19MT0FESU5HLFxuICBFRElUT1JfSElERV9MT0FESU5HLFxuICBFRElUT1JfSU1QT1JUX0ZJTEUsXG4gIEVESVRPUl9JTklUSUFMSVpFLFxuICBFRElUT1JfTU9EQUxfVE9HR0xFLFxuICBFRElUT1JfUkVWRVJUX0NIQU5HRVMsXG4gIEVESVRPUl9UT0dHTEVfTUFTSyxcbiAgRURJVE9SX1RPR0dMRV9SRU5ERVJfVklFVyxcbiAgRURJVE9SX0hPU1RTX1VSTCxcbiAgRURJVE9SX0hPU1RfU0VMRUNUX1RPR0dMRSxcbiAgRURJVE9SX0hPU1RfU0VMRUNUX0NMRUFSLFxuICBFRElUT1JfRkVUQ0hfSE9TVF9QRU5ESU5HLFxuICBFRElUT1JfRkVUQ0hfSE9TVF9SRVNPTFZFRCxcbiAgRURJVE9SX0hPU1RfU0VMRUNUX1JFU0VULFxuICBFRElUT1JfSE9TVF9BUlIsXG4gIEVESVRPUl9IT1NUX0ZJTFRFUkVEX0FSUixcbn0gZnJvbSAnLi9FZGl0b3JDb25zdGFudHMnO1xuXG5pbXBvcnQge1xuICBzZWxlY3RUZW1wbGF0ZUNsYXNzLFxuICBzZWxlY3RWYWx1ZSxcbiAgc2VsZWN0U2hvd0Vycm9yLFxuICBzZWxlY3RJc1NlbGVjdE9wZW4sXG4gIHNlbGVjdEhvc3RzLFxufSBmcm9tICcuL0VkaXRvclNlbGVjdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsaXplRWRpdG9yID0gaW5pdGlhbGl6ZURhdGEgPT4gZGlzcGF0Y2ggPT4ge1xuICBjb25zdCB7XG4gICAgdGVtcGxhdGUsXG4gICAgbG9ja2VkLFxuICAgIHR5cGUsXG4gICAgdGVtcGxhdGVDbGFzcyxcbiAgICByZWFkT25seSxcbiAgICBpc01hc2tlZCxcbiAgICBzZWxlY3RlZFZpZXcsXG4gICAgaXNSZW5kZXJpbmcsXG4gICAgcHJldmlld1Jlc3VsdCxcbiAgICBzaG93RXJyb3IsXG4gIH0gPSBpbml0aWFsaXplRGF0YTtcblxuICBjb25zdCBpbml0aWFsU3RhdGUgPSB7fTtcbiAgLy8gaW5pdGlhbGl6ZSBhZnRlciBjaGFuZ2luZyBlZGl0b3JzXG4gIGluaXRpYWxTdGF0ZS5zZWxlY3RlZEhvc3QgPSB7IGlkOiAnJywgbmFtZTogJycgfTtcbiAgaW5pdGlhbFN0YXRlLmhvc3RzID0gW107XG4gIGluaXRpYWxTdGF0ZS5pc1NlYXJjaGluZ0hvc3RzID0gZmFsc2U7XG4gIGluaXRpYWxTdGF0ZS52YWx1ZSA9IHRlbXBsYXRlIHx8ICcnO1xuICBpbml0aWFsU3RhdGUudGVtcGxhdGVDbGFzcyA9IHRlbXBsYXRlQ2xhc3M7XG4gIGlmIChyZWFkT25seSAhPT0gbG9ja2VkKSB7XG4gICAgaWYgKGxvY2tlZCA9PT0gdHJ1ZSkgaW5pdGlhbFN0YXRlLnJlYWRPbmx5ID0gdHJ1ZTtcbiAgICBlbHNlIGluaXRpYWxTdGF0ZS5yZWFkT25seSA9IGZhbHNlO1xuICB9XG4gIGlmIChpc01hc2tlZCAmJiB0eXBlID09PSAndGVtcGxhdGVzJykgaW5pdGlhbFN0YXRlLmlzTWFza2VkID0gZmFsc2U7XG4gIGlmIChzZWxlY3RlZFZpZXcgIT09ICdpbnB1dCcpIGluaXRpYWxTdGF0ZS5zZWxlY3RlZFZpZXcgPSAnaW5wdXQnO1xuICBpZiAoaXNSZW5kZXJpbmcpIGluaXRpYWxTdGF0ZS5pc1JlbmRlcmluZyA9IGZhbHNlO1xuICBpZiAocHJldmlld1Jlc3VsdCAhPT0gJycpIGluaXRpYWxTdGF0ZS5wcmV2aWV3UmVzdWx0ID0gJyc7XG4gIGlmIChzaG93RXJyb3IpIGluaXRpYWxTdGF0ZS5zaG93RXJyb3IgPSBmYWxzZTtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IEVESVRPUl9JTklUSUFMSVpFLFxuICAgIHBheWxvYWQ6IGluaXRpYWxTdGF0ZSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgaW1wb3J0RmlsZSA9IGUgPT4gZGlzcGF0Y2ggPT4ge1xuICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICByZWFkZXIub25sb2Fkc3RhcnQgPSAoKSA9PiBkaXNwYXRjaCh7IHR5cGU6IEVESVRPUl9TSE9XX0xPQURJTkcgfSk7XG4gIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiBkaXNwYXRjaCh7IHR5cGU6IEVESVRPUl9ISURFX0xPQURJTkcgfSk7XG4gIHJlYWRlci5vbmxvYWQgPSBldmVudCA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRURJVE9SX0lNUE9SVF9GSUxFLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICB2YWx1ZTogZXZlbnQudGFyZ2V0LnJlc3VsdCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG4gIHJlYWRlci5yZWFkQXNUZXh0KGUudGFyZ2V0LmZpbGVzWzBdKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXZlcnRDaGFuZ2VzID0gdGVtcGxhdGUgPT4gZGlzcGF0Y2ggPT4ge1xuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogRURJVE9SX1JFVkVSVF9DSEFOR0VTLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIHZhbHVlOiB0ZW1wbGF0ZSB8fCAnJyxcbiAgICAgIGlzUmVuZGVyaW5nOiBmYWxzZSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcmV2aWV3VGVtcGxhdGUgPSAoeyBob3N0LCByZW5kZXJQYXRoIH0pID0+IGFzeW5jIChcbiAgZGlzcGF0Y2gsXG4gIGdldFN0YXRlXG4pID0+IHtcbiAgY29uc3QgeyBpZCwgbmFtZSB9ID0gaG9zdDtcbiAgaWYgKHNlbGVjdElzU2VsZWN0T3BlbihnZXRTdGF0ZSgpKSlcbiAgICBkaXNwYXRjaCh7IHR5cGU6IEVESVRPUl9IT1NUX1NFTEVDVF9UT0dHTEUgfSk7XG4gIGNvbnN0IHRlbXBsYXRlVmFsdWUgPSBzZWxlY3RWYWx1ZShnZXRTdGF0ZSgpKTtcbiAgY29uc3QgaXNFcnJvclNob3duID0gc2VsZWN0U2hvd0Vycm9yKGdldFN0YXRlKCkpO1xuXG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICB0ZW1wbGF0ZTogdGVtcGxhdGVWYWx1ZSxcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbiAgICBwcmV2aWV3X2hvc3RfaWQ6IGlkLFxuICB9O1xuICBkaXNwYXRjaCh7IHR5cGU6IEVESVRPUl9TSE9XX0xPQURJTkcgfSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaFRlbXBsYXRlUHJldmlldyhyZW5kZXJQYXRoLCBwYXJhbXMpO1xuICAgIGlmIChpc0Vycm9yU2hvd24pIGRpc3BhdGNoKGRpc21pc3NFcnJvclRvYXN0KCkpO1xuICAgIGRpc3BhdGNoKHsgdHlwZTogRURJVE9SX0hJREVfTE9BRElORyB9KTtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBFRElUT1JfRVhFQ19QUkVWSUVXLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICByZW5kZXJlZEVkaXRvclZhbHVlOiB0ZW1wbGF0ZVZhbHVlLFxuICAgICAgICBzZWxlY3RlZEhvc3Q6IHtcbiAgICAgICAgICBpZDogdG9TdHJpbmcoaWQpLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXZpZXdSZXN1bHQ6IHJlc3BvbnNlLmRhdGEsXG4gICAgICAgIGlzU2VhcmNoaW5nSG9zdHM6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6IEVESVRPUl9ISURFX0xPQURJTkcgfSk7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogRURJVE9SX1NIT1dfRVJST1IsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIHJlbmRlcmVkRWRpdG9yVmFsdWU6IHRlbXBsYXRlVmFsdWUsXG4gICAgICAgIHNob3dFcnJvcjogdHJ1ZSxcbiAgICAgICAgZXJyb3JUZXh0OiBlcnJvci5yZXNwb25zZSA/IF9fKGVycm9yLnJlc3BvbnNlLmRhdGEpIDogJycsXG4gICAgICAgIHByZXZpZXdSZXN1bHQ6IF9fKCdFcnJvciBkdXJpbmcgcmVuZGVyaW5nLCBSZXR1cm4gdG8gRWRpdG9yIHRhYi4nKSxcbiAgICAgICAgc2VsZWN0ZWRIb3N0OiB7XG4gICAgICAgICAgaWQ6IHRvU3RyaW5nKGlkKSxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZldGNoVGVtcGxhdGVQcmV2aWV3ID0gKHJlbmRlclBhdGgsIHBhcmFtcykgPT5cbiAgQVBJLnBvc3QocmVuZGVyUGF0aCwgcGFyYW1zKTtcblxuLy8gZmV0Y2ggJiBkZWJvdW5jZWQgZmV0Y2hcbmNvbnN0IGZldGNoSG9zdHMgPSAoXG4gIHF1ZXJ5ID0gJycsXG4gIGFycmF5ID0gRURJVE9SX0hPU1RfQVJSLFxuICB1cmwgPSBFRElUT1JfSE9TVFNfVVJMXG4pID0+IChkaXNwYXRjaCwgZ2V0U3RhdGUpID0+XG4gIGNyZWF0ZUhvc3RBUElSZXF1ZXN0KHF1ZXJ5LCBhcnJheSwgdXJsLCBkaXNwYXRjaCwgZ2V0U3RhdGUpO1xuXG5jb25zdCBkZWJvdW5jZWRGZXRjaEhvc3RzID0gKFxuICBxdWVyeSA9ICcnLFxuICBhcnJheSA9IEVESVRPUl9IT1NUX0FSUixcbiAgdXJsID0gRURJVE9SX0hPU1RTX1VSTFxuKSA9PiAoZGlzcGF0Y2gsIGdldFN0YXRlKSA9PlxuICBkZWJvdW5jZWRDcmVhdGVIb3N0QVBJUmVxdWVzdChxdWVyeSwgYXJyYXksIHVybCwgZGlzcGF0Y2gsIGdldFN0YXRlKTtcblxuLy8gQVBJICYgZGVib3VuY2VkIEFQSVxuY29uc3QgY3JlYXRlSG9zdEFQSVJlcXVlc3QgPSBhc3luYyAocXVlcnksIGFycmF5LCB1cmwsIGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICBjb25zdCBvblJlc3VsdHNTdWNjZXNzID0gcmVzcG9uc2UgPT5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBFRElUT1JfRkVUQ0hfSE9TVF9SRVNPTFZFRCxcbiAgICAgIHBheWxvYWQ6IHsgW2FycmF5XTogcmVzcG9uc2UuZGF0YSB9LFxuICAgIH0pO1xuXG4gIGNvbnN0IG9uUmVzdWx0c0Vycm9yID0gcmVzcG9uc2UgPT5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBFRElUT1JfU0hPV19FUlJPUixcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgc2hvd0Vycm9yOiB0cnVlLFxuICAgICAgICBlcnJvclRleHQ6IF9fKGBIb3N0IEZldGNoICR7cmVzcG9uc2V9YCksXG4gICAgICAgIHByZXZpZXdSZXN1bHQ6IF9fKCdFcnJvciBkdXJpbmcgcmVuZGVyaW5nLCBSZXR1cm4gdG8gRWRpdG9yIHRhYi4nKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IEFQSS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB7fSxcbiAgICAgIHsgcTogcXVlcnksIHNjb3BlOiBzZWxlY3RUZW1wbGF0ZUNsYXNzKGdldFN0YXRlKCkpIH1cbiAgICApO1xuICAgIHJldHVybiBvblJlc3VsdHNTdWNjZXNzKHJlc3BvbnNlKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gb25SZXN1bHRzRXJyb3IoZXJyb3IpO1xuICB9XG59O1xuY29uc3QgZGVib3VuY2VkQ3JlYXRlSG9zdEFQSVJlcXVlc3QgPSBkZWJvdW5jZShjcmVhdGVIb3N0QVBJUmVxdWVzdCwgMjUwKTtcblxuZXhwb3J0IGNvbnN0IG9uSG9zdFNlYXJjaCA9IGUgPT4gKGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICBpZiAoZS50YXJnZXQudmFsdWUgPT09ICcnKVxuICAgIHJldHVybiBkaXNwYXRjaCh7IHR5cGU6IEVESVRPUl9IT1NUX1NFTEVDVF9SRVNFVCB9KTtcblxuICBjb25zdCBwYXlsb2FkID0ge1xuICAgIGlzRmV0Y2hpbmdIb3N0czogdHJ1ZSxcbiAgICBzZWFyY2hRdWVyeTogZS50YXJnZXQudmFsdWUsXG4gICAgaXNTZWFyY2hpbmdIb3N0czogdHJ1ZSxcbiAgfTtcblxuICBkaXNwYXRjaCh7IHR5cGU6IEVESVRPUl9GRVRDSF9IT1NUX1BFTkRJTkcsIHBheWxvYWQgfSk7XG4gIHJldHVybiBkaXNwYXRjaChcbiAgICBkZWJvdW5jZWRGZXRjaEhvc3RzKGUudGFyZ2V0LnZhbHVlLCBFRElUT1JfSE9TVF9GSUxURVJFRF9BUlIpXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZmV0Y2hBbmRQcmV2aWV3ID0gcmVuZGVyUGF0aCA9PiBhc3luYyAoZGlzcGF0Y2gsIGdldFN0YXRlKSA9PiB7XG4gIGRpc3BhdGNoKHsgdHlwZTogRURJVE9SX1NIT1dfTE9BRElORyB9KTtcbiAgYXdhaXQgZGlzcGF0Y2goZmV0Y2hIb3N0cygpKTtcbiAgY29uc3QgaG9zdHMgPSBzZWxlY3RIb3N0cyhnZXRTdGF0ZSgpKTtcbiAgaWYgKGhvc3RzLmxlbmd0aCA+IDApXG4gICAgZGlzcGF0Y2gocHJldmlld1RlbXBsYXRlKHsgaG9zdDogaG9zdHNbMF0sIHJlbmRlclBhdGggfSkpO1xuICBlbHNlIGRpc3BhdGNoKHsgdHlwZTogRURJVE9SX0hJREVfTE9BRElORyB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2dnbGVNb2RhbCA9ICgpID0+ICh7XG4gIHR5cGU6IEVESVRPUl9NT0RBTF9UT0dHTEUsXG59KTtcblxuZXhwb3J0IGNvbnN0IGNoYW5nZURpZmZWaWV3VHlwZSA9IHZpZXdUeXBlID0+IGRpc3BhdGNoID0+IHtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IEVESVRPUl9DSEFOR0VfRElGRl9WSUVXLFxuICAgIHBheWxvYWQ6IHZpZXdUeXBlLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjaGFuZ2VFZGl0b3JWYWx1ZSA9IHZhbHVlID0+IGRpc3BhdGNoID0+IHtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IEVESVRPUl9DSEFOR0VfVkFMVUUsXG4gICAgcGF5bG9hZDogdmFsdWUsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRpc21pc3NFcnJvclRvYXN0ID0gKCkgPT4gZGlzcGF0Y2ggPT4ge1xuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogRURJVE9SX0RJU01JU1NfRVJST1IsXG4gICAgcGF5bG9hZDogeyBzaG93RXJyb3I6IGZhbHNlLCBlcnJvclRleHQ6ICcnIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoYW5nZVRhYiA9IHNlbGVjdGVkVmlldyA9PiBkaXNwYXRjaCA9PiB7XG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBFRElUT1JfQ0hBTkdFX1RBQixcbiAgICBwYXlsb2FkOiBzZWxlY3RlZFZpZXcsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZ2dsZU1hc2tWYWx1ZSA9ICgpID0+ICh7XG4gIHR5cGU6IEVESVRPUl9UT0dHTEVfTUFTSyxcbn0pO1xuXG5leHBvcnQgY29uc3QgY2hhbmdlU2V0dGluZyA9IG5ld1NldHRpbmcgPT4gZGlzcGF0Y2ggPT4ge1xuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogRURJVE9SX0NIQU5HRV9TRVRUSU5HLFxuICAgIHBheWxvYWQ6IG5ld1NldHRpbmcsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZ2dsZVJlbmRlclZpZXcgPSBpc1JlbmRlcmluZyA9PiAoe1xuICB0eXBlOiBFRElUT1JfVE9HR0xFX1JFTkRFUl9WSUVXLFxufSk7XG5cbmV4cG9ydCBjb25zdCBvblNlYXJjaENsZWFyID0gKCkgPT4gKHsgdHlwZTogRURJVE9SX0hPU1RfU0VMRUNUX0NMRUFSIH0pO1xuXG5leHBvcnQgY29uc3Qgb25Ib3N0U2VsZWN0VG9nZ2xlID0gKCkgPT4gKHtcbiAgdHlwZTogRURJVE9SX0hPU1RfU0VMRUNUX1RPR0dMRSxcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvckFjdGlvbnMuanMiLCJpbXBvcnQge1xuICBJTklULFxuICBVUERBVEVfT1BUSU9OUyxcbiAgVVBEQVRFX1NFTEVDVEVELFxufSBmcm9tICcuL1R5cGVBaGVhZFNlbGVjdENvbnN0YW50cyc7XG5pbXBvcnQgeyBtYXBTZWxlY3RlZCB9IGZyb20gJy4vVHlwZUFoZWFkU2VsZWN0U2VsZWN0b3JzJztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxVcGRhdGUgPSAob3B0aW9ucywgc2VsZWN0ZWQsIGlkKSA9PiAoe1xuICB0eXBlOiBJTklULFxuICBwYXlsb2FkOiB7XG4gICAgaWQsXG4gICAgb3B0aW9ucyxcbiAgICBzZWxlY3RlZCxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlT3B0aW9ucyA9IChvcHRpb25zLCBpZCkgPT4gKHtcbiAgdHlwZTogVVBEQVRFX09QVElPTlMsXG4gIHBheWxvYWQ6IHtcbiAgICBpZCxcbiAgICBvcHRpb25zLFxuICB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVTZWxlY3RlZCA9IChzZWxlY3RlZCwgaWQpID0+ICh7XG4gIHR5cGU6IFVQREFURV9TRUxFQ1RFRCxcbiAgcGF5bG9hZDoge1xuICAgIGlkLFxuICAgIHNlbGVjdGVkOiBtYXBTZWxlY3RlZChzZWxlY3RlZCksXG4gIH0sXG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9UeXBlQWhlYWRTZWxlY3QvVHlwZUFoZWFkU2VsZWN0QWN0aW9ucy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgUGFnaW5hdG9yIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL1BhZ2luYXRpb24nO1xuXG5jb25zdCBQYWdpbmF0aW9uV3JhcHBlciA9IHByb3BzID0+IHtcbiAgY29uc3Qge1xuICAgIG9uUGFnZVNldCxcbiAgICBvblBlclBhZ2VTZWxlY3QsXG4gICAgb25DaGFuZ2UsXG4gICAgcGFnaW5hdGlvbixcbiAgICBkcm9wZG93bkJ1dHRvbklkLFxuICAgIGl0ZW1Db3VudCxcbiAgICB2aWV3VHlwZSxcbiAgICAuLi5vdGhlclByb3BzXG4gIH0gPSBwcm9wcztcblxuICBjb25zdCBvblBhZ2VTZXRVcGRhdGUgPSBwYWdlID0+IHtcbiAgICB1cGRhdGUoeyBwYWdlIH0pO1xuICAgIG9uUGFnZVNldChwYWdlKTtcbiAgfTtcblxuICBjb25zdCBvblBlclBhZ2VTZWxlY3RVcGRhdGUgPSBwZXJQYWdlID0+IHtcbiAgICB1cGRhdGUoeyBwZXJQYWdlLCBwYWdlOiAxIH0pO1xuICAgIG9uUGVyUGFnZVNlbGVjdChwZXJQYWdlKTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGUgPSBjaGFuZ2VzID0+IHtcbiAgICBjb25zdCBuZXdQYWdpbmF0aW9uID0geyAuLi5wYWdpbmF0aW9uLCAuLi5jaGFuZ2VzIH07XG5cbiAgICBvbkNoYW5nZSh7XG4gICAgICBwYWdlOiBuZXdQYWdpbmF0aW9uLnBhZ2UsXG4gICAgICBwZXJQYWdlOiBuZXdQYWdpbmF0aW9uLnBlclBhZ2UsXG4gICAgfSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8UGFnaW5hdGlvblxuICAgICAgZGF0YT17eyBpdGVtQ291bnQsIHZpZXdUeXBlIH19XG4gICAgICBvblBhZ2VTZXQ9e29uUGFnZVNldFVwZGF0ZX1cbiAgICAgIG9uUGVyUGFnZVNlbGVjdD17b25QZXJQYWdlU2VsZWN0VXBkYXRlfVxuICAgICAgZHJvcGRvd25CdXR0b25JZD17ZHJvcGRvd25CdXR0b25JZH1cbiAgICAgIHBhZ2luYXRpb249e3BhZ2luYXRpb259XG4gICAgICB7Li4ub3RoZXJQcm9wc31cbiAgICAvPlxuICApO1xufTtcblxuUGFnaW5hdGlvbldyYXBwZXIuZGVmYXVsdFByb3BzID0ge1xuICBvbkNoYW5nZTogKCkgPT4ge30sXG4gIHZpZXdUeXBlOiAnbGlzdCcsXG4gIC4uLlBhZ2luYXRvci5kZWZhdWx0UHJvcHMsXG4gIHBhZ2luYXRpb246IHt9LFxufTtcblxuZGVsZXRlIFBhZ2luYXRpb25XcmFwcGVyLmRlZmF1bHRQcm9wcy5tZXNzYWdlcztcblxuUGFnaW5hdGlvbldyYXBwZXIucHJvcFR5cGVzID0ge1xuICAuLi5QYWdpbmF0b3IucHJvcFR5cGVzLFxuICAvKiogcGFnZSBhbmQgcGVyLXBhZ2Ugc2VsZWN0aW9uIGNhbGxiYWNrICovXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHZpZXcgdHlwZSAqL1xuICB2aWV3VHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIHBhZ2luYXRpb24gKi9cbiAgcGFnaW5hdGlvbjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogdGhlIGN1cnJlbnQgcGFnZSAqL1xuICAgIHBhZ2U6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgLyoqIHRoZSBjdXJyZW50IHBlciBwYWdlIHNldHRpbmcgKi9cbiAgICBwZXJQYWdlOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIC8qKiBwZXIgcGFnZSBvcHRpb25zICovXG4gICAgcGVyUGFnZU9wdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5udW1iZXIpLFxuICB9KSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBhZ2luYXRpb25XcmFwcGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUGFnaW5hdGlvbi9QYWdpbmF0aW9uV3JhcHBlci5qcyIsImltcG9ydCB7XG4gIFZNV0FSRV9DTFVTVEVSX0NIQU5HRSxcbiAgU1RPUkFHRV9WTVdBUkVfQUREX0NPTlRST0xMRVIsXG4gIFNUT1JBR0VfVk1XQVJFX0FERF9ESVNLLFxuICBTVE9SQUdFX1ZNV0FSRV9SRU1PVkVfQ09OVFJPTExFUixcbiAgU1RPUkFHRV9WTVdBUkVfVVBEQVRFX0NPTlRST0xMRVIsXG4gIFNUT1JBR0VfVk1XQVJFX1JFTU9WRV9ESVNLLFxuICBTVE9SQUdFX1ZNV0FSRV9VUERBVEVfRElTSyxcbiAgU1RPUkFHRV9WTVdBUkVfSU5JVCxcbiAgU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFUyxcbiAgU1RPUkFHRV9WTVdBUkVfU1RPUkFHRVBPRFMsXG59IGZyb20gJy4uLy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICcuLi8uLi8uLi9BUEknO1xuaW1wb3J0IHtcbiAgZGVmYXVsdENvbnRyb2xsZXJBdHRyaWJ1dGVzLFxuICBnZXREZWZhdWx0RGlza0F0dHJpYnV0ZXMsXG59IGZyb20gJy4vdm13YXJlLmNvbnN0cyc7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVEaXNrID0gKGtleSwgbmV3VmFsdWVzKSA9PiAoe1xuICB0eXBlOiBTVE9SQUdFX1ZNV0FSRV9VUERBVEVfRElTSyxcbiAgcGF5bG9hZDoge1xuICAgIGtleSxcbiAgICBuZXdWYWx1ZXMsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGluaXRDb250cm9sbGVyID0gKFxuICBjb25maWcsXG4gIGNsdXN0ZXIsXG4gIGNvbnRyb2xsZXJzLFxuICB2b2x1bWVzXG4pID0+IGRpc3BhdGNoID0+IHtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IFNUT1JBR0VfVk1XQVJFX0lOSVQsXG4gICAgcGF5bG9hZDoge1xuICAgICAgY29uZmlnLFxuICAgICAgY29udHJvbGxlcnM6IGNvbnRyb2xsZXJzIHx8IGRlZmF1bHRDb250cm9sbGVyQXR0cmlidXRlcyxcbiAgICAgIHZvbHVtZXM6IHZvbHVtZXMgfHwgZ2V0RGVmYXVsdERpc2tBdHRyaWJ1dGVzLFxuICAgICAgY2x1c3RlcixcbiAgICB9LFxuICB9KTtcbiAgaWYgKGNsdXN0ZXIpIHtcbiAgICBkaXNwYXRjaChmZXRjaERhdGFzdG9yZXMoY29uZmlnLmRhdGFzdG9yZXNVcmwsIGNsdXN0ZXIpKTtcbiAgICBkaXNwYXRjaChmZXRjaFN0b3JhZ2VQb2RzKGNvbmZpZy5zdG9yYWdlUG9kc1VybCwgY2x1c3RlcikpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY2hhbmdlQ2x1c3RlciA9IG5ld0NsdXN0ZXIgPT4gKGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICBjb25zdCB7IGNvbmZpZyB9ID0gZ2V0U3RhdGUoKS5ob3N0cy5zdG9yYWdlLnZtd2FyZTtcbiAgaWYgKG5ld0NsdXN0ZXIgPT09ICcnKSBuZXdDbHVzdGVyID0gbnVsbDtcblxuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogVk1XQVJFX0NMVVNURVJfQ0hBTkdFLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGNsdXN0ZXI6IG5ld0NsdXN0ZXIsXG4gICAgfSxcbiAgfSk7XG4gIGlmIChuZXdDbHVzdGVyKSB7XG4gICAgZGlzcGF0Y2goZmV0Y2hEYXRhc3RvcmVzKGNvbmZpZy5kYXRhc3RvcmVzVXJsLCBuZXdDbHVzdGVyKSk7XG4gICAgZGlzcGF0Y2goZmV0Y2hTdG9yYWdlUG9kcyhjb25maWcuc3RvcmFnZVBvZHNVcmwsIG5ld0NsdXN0ZXIpKTtcbiAgfVxufTtcblxuY29uc3QgZmV0Y2hTdG9yYWdlcyA9ICh1cmwsIGNsdXN0ZXIsIGtleSkgPT5cbiAgZ2V0KHtcbiAgICBrZXksXG4gICAgdXJsLFxuICAgIHBheWxvYWQ6IHsgcGFyYW1zOiB7IGNsdXN0ZXJfaWQ6IGNsdXN0ZXIgfSB9LFxuICB9KTtcblxuZXhwb3J0IGNvbnN0IGZldGNoRGF0YXN0b3JlcyA9ICh1cmwsIGNsdXN0ZXIpID0+XG4gIGZldGNoU3RvcmFnZXModXJsLCBjbHVzdGVyLCBTVE9SQUdFX1ZNV0FSRV9EQVRBU1RPUkVTKTtcblxuZXhwb3J0IGNvbnN0IGZldGNoU3RvcmFnZVBvZHMgPSAodXJsLCBjbHVzdGVyKSA9PlxuICBmZXRjaFN0b3JhZ2VzKHVybCwgY2x1c3RlciwgU1RPUkFHRV9WTVdBUkVfU1RPUkFHRVBPRFMpO1xuXG5leHBvcnQgY29uc3QgYWRkQ29udHJvbGxlciA9IGRhdGEgPT4gKHtcbiAgdHlwZTogU1RPUkFHRV9WTVdBUkVfQUREX0NPTlRST0xMRVIsXG4gIHBheWxvYWQ6IHtcbiAgICBjb250cm9sbGVyOiBkZWZhdWx0Q29udHJvbGxlckF0dHJpYnV0ZXMsXG4gICAgdm9sdW1lOiBnZXREZWZhdWx0RGlza0F0dHJpYnV0ZXMsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUNvbnRyb2xsZXIgPSAoaWR4LCBuZXdWYWx1ZXMpID0+ICh7XG4gIHR5cGU6IFNUT1JBR0VfVk1XQVJFX1VQREFURV9DT05UUk9MTEVSLFxuICBwYXlsb2FkOiB7XG4gICAgaWR4LFxuICAgIG5ld1ZhbHVlcyxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRGlzayA9IGtleSA9PiAoe1xuICB0eXBlOiBTVE9SQUdFX1ZNV0FSRV9SRU1PVkVfRElTSyxcbiAgcGF5bG9hZDoge1xuICAgIGtleSxcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlQ29udHJvbGxlciA9IGNvbnRyb2xsZXJLZXkgPT4gKHtcbiAgdHlwZTogU1RPUkFHRV9WTVdBUkVfUkVNT1ZFX0NPTlRST0xMRVIsXG4gIHBheWxvYWQ6IHsgY29udHJvbGxlcktleSB9LFxufSk7XG5cbmV4cG9ydCBjb25zdCBhZGREaXNrID0gY29udHJvbGxlcktleSA9PiAoe1xuICB0eXBlOiBTVE9SQUdFX1ZNV0FSRV9BRERfRElTSyxcbiAgcGF5bG9hZDoge1xuICAgIGNvbnRyb2xsZXJLZXksXG4gICAgZGF0YTogZ2V0RGVmYXVsdERpc2tBdHRyaWJ1dGVzLFxuICB9LFxufSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvYWN0aW9ucy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfRE5EX0hUTUxfNV9CQUNLRU5EX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9ETkRfSFRNTF81X0JBQ0tFTkRfX1wiXG4vLyBtb2R1bGUgaWQgPSAxOTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIi8qKlxuICogQHByZXNlcnZlIGplZC5qcyBodHRwczovL2dpdGh1Yi5jb20vU2xleEF4dG9uL0plZFxuICovXG4vKlxuLS0tLS0tLS0tLS1cbkEgZ2V0dGV4dCBjb21wYXRpYmxlIGkxOG4gbGlicmFyeSBmb3IgbW9kZXJuIEphdmFTY3JpcHQgQXBwbGljYXRpb25zXG5cbmJ5IEFsZXggU2V4dG9uIC0gQWxleFNleHRvbiBbYXRdIGdtYWlsIC0gQFNsZXhBeHRvblxuXG5NSVQgTGljZW5zZVxuXG5BIGpRdWVyeSBGb3VuZGF0aW9uIHByb2plY3QgLSByZXF1aXJlcyBDTEEgdG8gY29udHJpYnV0ZSAtXG5odHRwczovL2NvbnRyaWJ1dGUuanF1ZXJ5Lm9yZy9DTEEvXG5cblxuXG5KZWQgb2ZmZXJzIHRoZSBlbnRpcmUgYXBwbGljYWJsZSBHTlUgZ2V0dGV4dCBzcGVjJ2Qgc2V0IG9mXG5mdW5jdGlvbnMsIGJ1dCBhbHNvIG9mZmVycyBzb21lIG5pY2VyIHdyYXBwZXJzIGFyb3VuZCB0aGVtLlxuVGhlIGFwaSBmb3IgZ2V0dGV4dCB3YXMgd3JpdHRlbiBmb3IgYSBsYW5ndWFnZSB3aXRoIG5vIGZ1bmN0aW9uXG5vdmVybG9hZGluZywgc28gSmVkIGFsbG93cyBhIGxpdHRsZSBtb3JlIG9mIHRoYXQuXG5cbk1hbnkgdGhhbmtzIHRvIEpvc2h1YSBJLiBNaWxsZXIgLSB1bnJ0c3RAY3Bhbi5vcmcgLSB3aG8gd3JvdGVcbmdldHRleHQuanMgYmFjayBpbiAyMDA4LiBJIHdhcyBhYmxlIHRvIHZldCBhIGxvdCBvZiBteSBpZGVhc1xuYWdhaW5zdCBoaXMuIEkgYWxzbyBtYWRlIHN1cmUgSmVkIHBhc3NlZCBhZ2FpbnN0IGhpcyB0ZXN0c1xuaW4gb3JkZXIgdG8gb2ZmZXIgZWFzeSB1cGdyYWRlcyAtLSBqc2dldHRleHQuYmVybGlvcy5kZVxuKi9cbihmdW5jdGlvbiAocm9vdCwgdW5kZWYpIHtcblxuICAvLyBTZXQgdXAgc29tZSB1bmRlcnNjb3JlLXN0eWxlIGZ1bmN0aW9ucywgaWYgeW91IGFscmVhZHkgaGF2ZVxuICAvLyB1bmRlcnNjb3JlLCBmZWVsIGZyZWUgdG8gZGVsZXRlIHRoaXMgc2VjdGlvbiwgYW5kIHVzZSBpdFxuICAvLyBkaXJlY3RseSwgaG93ZXZlciwgdGhlIGFtb3VudCBvZiBmdW5jdGlvbnMgdXNlZCBkb2Vzbid0XG4gIC8vIHdhcnJhbnQgaGF2aW5nIHVuZGVyc2NvcmUgYXMgYSBmdWxsIGRlcGVuZGVuY3kuXG4gIC8vIFVuZGVyc2NvcmUgMS4zLjAgd2FzIHVzZWQgdG8gcG9ydCBhbmQgaXMgbGljZW5zZWRcbiAgLy8gdW5kZXIgdGhlIE1JVCBMaWNlbnNlIGJ5IEplcmVteSBBc2hrZW5hcy5cbiAgdmFyIEFycmF5UHJvdG8gICAgPSBBcnJheS5wcm90b3R5cGUsXG4gICAgICBPYmpQcm90byAgICAgID0gT2JqZWN0LnByb3RvdHlwZSxcbiAgICAgIHNsaWNlICAgICAgICAgPSBBcnJheVByb3RvLnNsaWNlLFxuICAgICAgaGFzT3duUHJvcCAgICA9IE9ialByb3RvLmhhc093blByb3BlcnR5LFxuICAgICAgbmF0aXZlRm9yRWFjaCA9IEFycmF5UHJvdG8uZm9yRWFjaCxcbiAgICAgIGJyZWFrZXIgICAgICAgPSB7fTtcblxuICAvLyBXZSdyZSBub3QgdXNpbmcgdGhlIE9PUCBzdHlsZSBfIHNvIHdlIGRvbid0IG5lZWQgdGhlXG4gIC8vIGV4dHJhIGxldmVsIG9mIGluZGlyZWN0aW9uLiBUaGlzIHN0aWxsIG1lYW5zIHRoYXQgeW91XG4gIC8vIHN1YiBvdXQgZm9yIHJlYWwgYF9gIHRob3VnaC5cbiAgdmFyIF8gPSB7XG4gICAgZm9yRWFjaCA6IGZ1bmN0aW9uKCBvYmosIGl0ZXJhdG9yLCBjb250ZXh0ICkge1xuICAgICAgdmFyIGksIGwsIGtleTtcbiAgICAgIGlmICggb2JqID09PSBudWxsICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICggbmF0aXZlRm9yRWFjaCAmJiBvYmouZm9yRWFjaCA9PT0gbmF0aXZlRm9yRWFjaCApIHtcbiAgICAgICAgb2JqLmZvckVhY2goIGl0ZXJhdG9yLCBjb250ZXh0ICk7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICggb2JqLmxlbmd0aCA9PT0gK29iai5sZW5ndGggKSB7XG4gICAgICAgIGZvciAoIGkgPSAwLCBsID0gb2JqLmxlbmd0aDsgaSA8IGw7IGkrKyApIHtcbiAgICAgICAgICBpZiAoIGkgaW4gb2JqICYmIGl0ZXJhdG9yLmNhbGwoIGNvbnRleHQsIG9ialtpXSwgaSwgb2JqICkgPT09IGJyZWFrZXIgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZm9yICgga2V5IGluIG9iaikge1xuICAgICAgICAgIGlmICggaGFzT3duUHJvcC5jYWxsKCBvYmosIGtleSApICkge1xuICAgICAgICAgICAgaWYgKCBpdGVyYXRvci5jYWxsIChjb250ZXh0LCBvYmpba2V5XSwga2V5LCBvYmogKSA9PT0gYnJlYWtlciApIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgZXh0ZW5kIDogZnVuY3Rpb24oIG9iaiApIHtcbiAgICAgIHRoaXMuZm9yRWFjaCggc2xpY2UuY2FsbCggYXJndW1lbnRzLCAxICksIGZ1bmN0aW9uICggc291cmNlICkge1xuICAgICAgICBmb3IgKCB2YXIgcHJvcCBpbiBzb3VyY2UgKSB7XG4gICAgICAgICAgb2JqW3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICB9O1xuICAvLyBFTkQgTWluaWF0dXJlIHVuZGVyc2NvcmUgaW1wbFxuXG4gIC8vIEplZCBpcyBhIGNvbnN0cnVjdG9yIGZ1bmN0aW9uXG4gIHZhciBKZWQgPSBmdW5jdGlvbiAoIG9wdGlvbnMgKSB7XG4gICAgLy8gU29tZSBtaW5pbWFsIGRlZmF1bHRzXG4gICAgdGhpcy5kZWZhdWx0cyA9IHtcbiAgICAgIFwibG9jYWxlX2RhdGFcIiA6IHtcbiAgICAgICAgXCJtZXNzYWdlc1wiIDoge1xuICAgICAgICAgIFwiXCIgOiB7XG4gICAgICAgICAgICBcImRvbWFpblwiICAgICAgIDogXCJtZXNzYWdlc1wiLFxuICAgICAgICAgICAgXCJsYW5nXCIgICAgICAgICA6IFwiZW5cIixcbiAgICAgICAgICAgIFwicGx1cmFsX2Zvcm1zXCIgOiBcIm5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcIlxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBUaGVyZSBhcmUgbm8gZGVmYXVsdCBrZXlzLCB0aG91Z2hcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIFRoZSBkZWZhdWx0IGRvbWFpbiBpZiBvbmUgaXMgbWlzc2luZ1xuICAgICAgXCJkb21haW5cIiA6IFwibWVzc2FnZXNcIixcbiAgICAgIC8vIGVuYWJsZSBkZWJ1ZyBtb2RlIHRvIGxvZyB1bnRyYW5zbGF0ZWQgc3RyaW5ncyB0byB0aGUgY29uc29sZVxuICAgICAgXCJkZWJ1Z1wiIDogZmFsc2VcbiAgICB9O1xuXG4gICAgLy8gTWl4IGluIHRoZSBzZW50IG9wdGlvbnMgd2l0aCB0aGUgZGVmYXVsdCBvcHRpb25zXG4gICAgdGhpcy5vcHRpb25zID0gXy5leHRlbmQoIHt9LCB0aGlzLmRlZmF1bHRzLCBvcHRpb25zICk7XG4gICAgdGhpcy50ZXh0ZG9tYWluKCB0aGlzLm9wdGlvbnMuZG9tYWluICk7XG5cbiAgICBpZiAoIG9wdGlvbnMuZG9tYWluICYmICEgdGhpcy5vcHRpb25zLmxvY2FsZV9kYXRhWyB0aGlzLm9wdGlvbnMuZG9tYWluIF0gKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RleHQgZG9tYWluIHNldCB0byBub24tZXhpc3RlbnQgZG9tYWluOiBgJyArIG9wdGlvbnMuZG9tYWluICsgJ2AnKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gVGhlIGdldHRleHQgc3BlYyBzZXRzIHRoaXMgY2hhcmFjdGVyIGFzIHRoZSBkZWZhdWx0XG4gIC8vIGRlbGltaXRlciBmb3IgY29udGV4dCBsb29rdXBzLlxuICAvLyBlLmcuOiBjb250ZXh0XFx1MDAwNGtleVxuICAvLyBJZiB5b3VyIHRyYW5zbGF0aW9uIGNvbXBhbnkgdXNlcyBzb21ldGhpbmcgZGlmZmVyZW50LFxuICAvLyBqdXN0IGNoYW5nZSB0aGlzIGF0IGFueSB0aW1lIGFuZCBpdCB3aWxsIHVzZSB0aGF0IGluc3RlYWQuXG4gIEplZC5jb250ZXh0X2RlbGltaXRlciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoIDQgKTtcblxuICBmdW5jdGlvbiBnZXRQbHVyYWxGb3JtRnVuYyAoIHBsdXJhbF9mb3JtX3N0cmluZyApIHtcbiAgICByZXR1cm4gSmVkLlBGLmNvbXBpbGUoIHBsdXJhbF9mb3JtX3N0cmluZyB8fCBcIm5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcIik7XG4gIH1cblxuICBmdW5jdGlvbiBDaGFpbigga2V5LCBpMThuICl7XG4gICAgdGhpcy5fa2V5ID0ga2V5O1xuICAgIHRoaXMuX2kxOG4gPSBpMThuO1xuICB9XG5cbiAgLy8gQ3JlYXRlIGEgY2hhaW5hYmxlIGFwaSBmb3IgYWRkaW5nIGFyZ3MgcHJldHRpbHlcbiAgXy5leHRlbmQoIENoYWluLnByb3RvdHlwZSwge1xuICAgIG9uRG9tYWluIDogZnVuY3Rpb24gKCBkb21haW4gKSB7XG4gICAgICB0aGlzLl9kb21haW4gPSBkb21haW47XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIHdpdGhDb250ZXh0IDogZnVuY3Rpb24gKCBjb250ZXh0ICkge1xuICAgICAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuICAgIGlmUGx1cmFsIDogZnVuY3Rpb24gKCBudW0sIHBrZXkgKSB7XG4gICAgICB0aGlzLl92YWwgPSBudW07XG4gICAgICB0aGlzLl9wa2V5ID0gcGtleTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH0sXG4gICAgZmV0Y2ggOiBmdW5jdGlvbiAoIHNBcnIgKSB7XG4gICAgICBpZiAoIHt9LnRvU3RyaW5nLmNhbGwoIHNBcnIgKSAhPSAnW29iamVjdCBBcnJheV0nICkge1xuICAgICAgICBzQXJyID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuICAgICAgfVxuICAgICAgcmV0dXJuICggc0FyciAmJiBzQXJyLmxlbmd0aCA/IEplZC5zcHJpbnRmIDogZnVuY3Rpb24oeCl7IHJldHVybiB4OyB9ICkoXG4gICAgICAgIHRoaXMuX2kxOG4uZGNucGdldHRleHQodGhpcy5fZG9tYWluLCB0aGlzLl9jb250ZXh0LCB0aGlzLl9rZXksIHRoaXMuX3BrZXksIHRoaXMuX3ZhbCksXG4gICAgICAgIHNBcnJcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICAvLyBBZGQgZnVuY3Rpb25zIHRvIHRoZSBKZWQgcHJvdG90eXBlLlxuICAvLyBUaGVzZSB3aWxsIGJlIHRoZSBmdW5jdGlvbnMgb24gdGhlIG9iamVjdCB0aGF0J3MgcmV0dXJuZWRcbiAgLy8gZnJvbSBjcmVhdGluZyBhIGBuZXcgSmVkKClgXG4gIC8vIFRoZXNlIHNlZW0gcmVkdW5kYW50LCBidXQgdGhleSBnemlwIHByZXR0eSB3ZWxsLlxuICBfLmV4dGVuZCggSmVkLnByb3RvdHlwZSwge1xuICAgIC8vIFRoZSBzZXhpZXIgYXBpIHN0YXJ0IHBvaW50XG4gICAgdHJhbnNsYXRlIDogZnVuY3Rpb24gKCBrZXkgKSB7XG4gICAgICByZXR1cm4gbmV3IENoYWluKCBrZXksIHRoaXMgKTtcbiAgICB9LFxuXG4gICAgdGV4dGRvbWFpbiA6IGZ1bmN0aW9uICggZG9tYWluICkge1xuICAgICAgaWYgKCAhIGRvbWFpbiApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRkb21haW47XG4gICAgICB9XG4gICAgICB0aGlzLl90ZXh0ZG9tYWluID0gZG9tYWluO1xuICAgIH0sXG5cbiAgICBnZXR0ZXh0IDogZnVuY3Rpb24gKCBrZXkgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kY25wZ2V0dGV4dC5jYWxsKCB0aGlzLCB1bmRlZiwgdW5kZWYsIGtleSApO1xuICAgIH0sXG5cbiAgICBkZ2V0dGV4dCA6IGZ1bmN0aW9uICggZG9tYWluLCBrZXkgKSB7XG4gICAgIHJldHVybiB0aGlzLmRjbnBnZXR0ZXh0LmNhbGwoIHRoaXMsIGRvbWFpbiwgdW5kZWYsIGtleSApO1xuICAgIH0sXG5cbiAgICBkY2dldHRleHQgOiBmdW5jdGlvbiAoIGRvbWFpbiAsIGtleSAvKiwgY2F0ZWdvcnkgKi8gKSB7XG4gICAgICAvLyBJZ25vcmVzIHRoZSBjYXRlZ29yeSBhbnl3YXlzXG4gICAgICByZXR1cm4gdGhpcy5kY25wZ2V0dGV4dC5jYWxsKCB0aGlzLCBkb21haW4sIHVuZGVmLCBrZXkgKTtcbiAgICB9LFxuXG4gICAgbmdldHRleHQgOiBmdW5jdGlvbiAoIHNrZXksIHBrZXksIHZhbCApIHtcbiAgICAgIHJldHVybiB0aGlzLmRjbnBnZXR0ZXh0LmNhbGwoIHRoaXMsIHVuZGVmLCB1bmRlZiwgc2tleSwgcGtleSwgdmFsICk7XG4gICAgfSxcblxuICAgIGRuZ2V0dGV4dCA6IGZ1bmN0aW9uICggZG9tYWluLCBza2V5LCBwa2V5LCB2YWwgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kY25wZ2V0dGV4dC5jYWxsKCB0aGlzLCBkb21haW4sIHVuZGVmLCBza2V5LCBwa2V5LCB2YWwgKTtcbiAgICB9LFxuXG4gICAgZGNuZ2V0dGV4dCA6IGZ1bmN0aW9uICggZG9tYWluLCBza2V5LCBwa2V5LCB2YWwvKiwgY2F0ZWdvcnkgKi8pIHtcbiAgICAgIHJldHVybiB0aGlzLmRjbnBnZXR0ZXh0LmNhbGwoIHRoaXMsIGRvbWFpbiwgdW5kZWYsIHNrZXksIHBrZXksIHZhbCApO1xuICAgIH0sXG5cbiAgICBwZ2V0dGV4dCA6IGZ1bmN0aW9uICggY29udGV4dCwga2V5ICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGNucGdldHRleHQuY2FsbCggdGhpcywgdW5kZWYsIGNvbnRleHQsIGtleSApO1xuICAgIH0sXG5cbiAgICBkcGdldHRleHQgOiBmdW5jdGlvbiAoIGRvbWFpbiwgY29udGV4dCwga2V5ICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGNucGdldHRleHQuY2FsbCggdGhpcywgZG9tYWluLCBjb250ZXh0LCBrZXkgKTtcbiAgICB9LFxuXG4gICAgZGNwZ2V0dGV4dCA6IGZ1bmN0aW9uICggZG9tYWluLCBjb250ZXh0LCBrZXkvKiwgY2F0ZWdvcnkgKi8pIHtcbiAgICAgIHJldHVybiB0aGlzLmRjbnBnZXR0ZXh0LmNhbGwoIHRoaXMsIGRvbWFpbiwgY29udGV4dCwga2V5ICk7XG4gICAgfSxcblxuICAgIG5wZ2V0dGV4dCA6IGZ1bmN0aW9uICggY29udGV4dCwgc2tleSwgcGtleSwgdmFsICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGNucGdldHRleHQuY2FsbCggdGhpcywgdW5kZWYsIGNvbnRleHQsIHNrZXksIHBrZXksIHZhbCApO1xuICAgIH0sXG5cbiAgICBkbnBnZXR0ZXh0IDogZnVuY3Rpb24gKCBkb21haW4sIGNvbnRleHQsIHNrZXksIHBrZXksIHZhbCApIHtcbiAgICAgIHJldHVybiB0aGlzLmRjbnBnZXR0ZXh0LmNhbGwoIHRoaXMsIGRvbWFpbiwgY29udGV4dCwgc2tleSwgcGtleSwgdmFsICk7XG4gICAgfSxcblxuICAgIC8vIFRoZSBtb3N0IGZ1bGx5IHF1YWxpZmllZCBnZXR0ZXh0IGZ1bmN0aW9uLiBJdCBoYXMgZXZlcnkgb3B0aW9uLlxuICAgIC8vIFNpbmNlIGl0IGhhcyBldmVyeSBvcHRpb24sIHdlIGNhbiB1c2UgaXQgZnJvbSBldmVyeSBvdGhlciBtZXRob2QuXG4gICAgLy8gVGhpcyBpcyB0aGUgYnJlYWQgYW5kIGJ1dHRlci5cbiAgICAvLyBUZWNobmljYWxseSB0aGVyZSBzaG91bGQgYmUgb25lIG1vcmUgYXJndW1lbnQgaW4gdGhpcyBmdW5jdGlvbiBmb3IgJ0NhdGVnb3J5JyxcbiAgICAvLyBidXQgc2luY2Ugd2UgbmV2ZXIgdXNlIGl0LCB3ZSBtaWdodCBhcyB3ZWxsIG5vdCB3YXN0ZSB0aGUgYnl0ZXMgdG8gZGVmaW5lIGl0LlxuICAgIGRjbnBnZXR0ZXh0IDogZnVuY3Rpb24gKCBkb21haW4sIGNvbnRleHQsIHNpbmd1bGFyX2tleSwgcGx1cmFsX2tleSwgdmFsICkge1xuICAgICAgLy8gU2V0IHNvbWUgZGVmYXVsdHNcblxuICAgICAgcGx1cmFsX2tleSA9IHBsdXJhbF9rZXkgfHwgc2luZ3VsYXJfa2V5O1xuXG4gICAgICAvLyBVc2UgdGhlIGdsb2JhbCBkb21haW4gZGVmYXVsdCBpZiBvbmVcbiAgICAgIC8vIGlzbid0IGV4cGxpY2l0bHkgcGFzc2VkIGluXG4gICAgICBkb21haW4gPSBkb21haW4gfHwgdGhpcy5fdGV4dGRvbWFpbjtcblxuICAgICAgdmFyIGZhbGxiYWNrO1xuXG4gICAgICAvLyBIYW5kbGUgc3BlY2lhbCBjYXNlc1xuXG4gICAgICAvLyBObyBvcHRpb25zIGZvdW5kXG4gICAgICBpZiAoICEgdGhpcy5vcHRpb25zICkge1xuICAgICAgICAvLyBUaGVyZSdzIGxpa2VseSBzb21ldGhpbmcgd3JvbmcsIGJ1dCB3ZSdsbCByZXR1cm4gdGhlIGNvcnJlY3Qga2V5IGZvciBlbmdsaXNoXG4gICAgICAgIC8vIFdlIGRvIHRoaXMgYnkgaW5zdGFudGlhdGluZyBhIGJyYW5kIG5ldyBKZWQgaW5zdGFuY2Ugd2l0aCB0aGUgZGVmYXVsdCBzZXRcbiAgICAgICAgLy8gZm9yIGV2ZXJ5dGhpbmcgdGhhdCBjb3VsZCBiZSBicm9rZW4uXG4gICAgICAgIGZhbGxiYWNrID0gbmV3IEplZCgpO1xuICAgICAgICByZXR1cm4gZmFsbGJhY2suZGNucGdldHRleHQuY2FsbCggZmFsbGJhY2ssIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBzaW5ndWxhcl9rZXksIHBsdXJhbF9rZXksIHZhbCApO1xuICAgICAgfVxuXG4gICAgICAvLyBObyB0cmFuc2xhdGlvbiBkYXRhIHByb3ZpZGVkXG4gICAgICBpZiAoICEgdGhpcy5vcHRpb25zLmxvY2FsZV9kYXRhICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGxvY2FsZSBkYXRhIHByb3ZpZGVkLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoICEgdGhpcy5vcHRpb25zLmxvY2FsZV9kYXRhWyBkb21haW4gXSApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEb21haW4gYCcgKyBkb21haW4gKyAnYCB3YXMgbm90IGZvdW5kLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoICEgdGhpcy5vcHRpb25zLmxvY2FsZV9kYXRhWyBkb21haW4gXVsgXCJcIiBdICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGxvY2FsZSBtZXRhIGluZm9ybWF0aW9uIHByb3ZpZGVkLicpO1xuICAgICAgfVxuXG4gICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBhIHRydXRoeSBrZXkuIE90aGVyd2lzZSB3ZSBtaWdodCBzdGFydCBsb29raW5nXG4gICAgICAvLyBpbnRvIHRoZSBlbXB0eSBzdHJpbmcga2V5LCB3aGljaCBpcyB0aGUgb3B0aW9ucyBmb3IgdGhlIGxvY2FsZVxuICAgICAgLy8gZGF0YS5cbiAgICAgIGlmICggISBzaW5ndWxhcl9rZXkgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdHJhbnNsYXRpb24ga2V5IGZvdW5kLicpO1xuICAgICAgfVxuXG4gICAgICB2YXIga2V5ICA9IGNvbnRleHQgPyBjb250ZXh0ICsgSmVkLmNvbnRleHRfZGVsaW1pdGVyICsgc2luZ3VsYXJfa2V5IDogc2luZ3VsYXJfa2V5LFxuICAgICAgICAgIGxvY2FsZV9kYXRhID0gdGhpcy5vcHRpb25zLmxvY2FsZV9kYXRhLFxuICAgICAgICAgIGRpY3QgPSBsb2NhbGVfZGF0YVsgZG9tYWluIF0sXG4gICAgICAgICAgZGVmYXVsdENvbmYgPSAobG9jYWxlX2RhdGEubWVzc2FnZXMgfHwgdGhpcy5kZWZhdWx0cy5sb2NhbGVfZGF0YS5tZXNzYWdlcylbXCJcIl0sXG4gICAgICAgICAgcGx1cmFsRm9ybXMgPSBkaWN0W1wiXCJdLnBsdXJhbF9mb3JtcyB8fCBkaWN0W1wiXCJdW1wiUGx1cmFsLUZvcm1zXCJdIHx8IGRpY3RbXCJcIl1bXCJwbHVyYWwtZm9ybXNcIl0gfHwgZGVmYXVsdENvbmYucGx1cmFsX2Zvcm1zIHx8IGRlZmF1bHRDb25mW1wiUGx1cmFsLUZvcm1zXCJdIHx8IGRlZmF1bHRDb25mW1wicGx1cmFsLWZvcm1zXCJdLFxuICAgICAgICAgIHZhbF9saXN0LFxuICAgICAgICAgIHJlcztcblxuICAgICAgdmFyIHZhbF9pZHg7XG4gICAgICBpZiAodmFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTm8gdmFsdWUgcGFzc2VkIGluOyBhc3N1bWUgc2luZ3VsYXIga2V5IGxvb2t1cC5cbiAgICAgICAgdmFsX2lkeCA9IDA7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFZhbHVlIGhhcyBiZWVuIHBhc3NlZCBpbjsgdXNlIHBsdXJhbC1mb3JtcyBjYWxjdWxhdGlvbnMuXG5cbiAgICAgICAgLy8gSGFuZGxlIGludmFsaWQgbnVtYmVycywgYnV0IHRyeSBjYXN0aW5nIHN0cmluZ3MgZm9yIGdvb2QgbWVhc3VyZVxuICAgICAgICBpZiAoIHR5cGVvZiB2YWwgIT0gJ251bWJlcicgKSB7XG4gICAgICAgICAgdmFsID0gcGFyc2VJbnQoIHZhbCwgMTAgKTtcblxuICAgICAgICAgIGlmICggaXNOYU4oIHZhbCApICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgbnVtYmVyIHRoYXQgd2FzIHBhc3NlZCBpbiBpcyBub3QgYSBudW1iZXIuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFsX2lkeCA9IGdldFBsdXJhbEZvcm1GdW5jKHBsdXJhbEZvcm1zKSh2YWwpO1xuICAgICAgfVxuXG4gICAgICAvLyBUaHJvdyBhbiBlcnJvciBpZiBhIGRvbWFpbiBpc24ndCBmb3VuZFxuICAgICAgaWYgKCAhIGRpY3QgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gZG9tYWluIG5hbWVkIGAnICsgZG9tYWluICsgJ2AgY291bGQgYmUgZm91bmQuJyk7XG4gICAgICB9XG5cbiAgICAgIHZhbF9saXN0ID0gZGljdFsga2V5IF07XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIG5vIG1hdGNoLCB0aGVuIHJldmVydCBiYWNrIHRvXG4gICAgICAvLyBlbmdsaXNoIHN0eWxlIHNpbmd1bGFyL3BsdXJhbCB3aXRoIHRoZSBrZXlzIHBhc3NlZCBpbi5cbiAgICAgIGlmICggISB2YWxfbGlzdCB8fCB2YWxfaWR4ID4gdmFsX2xpc3QubGVuZ3RoICkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLm1pc3Npbmdfa2V5X2NhbGxiYWNrKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLm1pc3Npbmdfa2V5X2NhbGxiYWNrKGtleSwgZG9tYWluKTtcbiAgICAgICAgfVxuICAgICAgICByZXMgPSBbIHNpbmd1bGFyX2tleSwgcGx1cmFsX2tleSBdO1xuXG4gICAgICAgIC8vIGNvbGxlY3QgdW50cmFuc2xhdGVkIHN0cmluZ3NcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kZWJ1Zz09PXRydWUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXNbIGdldFBsdXJhbEZvcm1GdW5jKHBsdXJhbEZvcm1zKSggdmFsICkgXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc1sgZ2V0UGx1cmFsRm9ybUZ1bmMoKSggdmFsICkgXTtcbiAgICAgIH1cblxuICAgICAgcmVzID0gdmFsX2xpc3RbIHZhbF9pZHggXTtcblxuICAgICAgLy8gVGhpcyBpbmNsdWRlcyBlbXB0eSBzdHJpbmdzIG9uIHB1cnBvc2VcbiAgICAgIGlmICggISByZXMgICkge1xuICAgICAgICByZXMgPSBbIHNpbmd1bGFyX2tleSwgcGx1cmFsX2tleSBdO1xuICAgICAgICByZXR1cm4gcmVzWyBnZXRQbHVyYWxGb3JtRnVuYygpKCB2YWwgKSBdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gIH0pO1xuXG5cbiAgLy8gV2UgYWRkIGluIHNwcmludGYgY2FwYWJpbGl0aWVzIGZvciBwb3N0IHRyYW5zbGF0aW9uIHZhbHVlIGludGVyb2xhdGlvblxuICAvLyBUaGlzIGlzIG5vdCBpbnRlcm5hbGx5IHVzZWQsIHNvIHlvdSBjYW4gcmVtb3ZlIGl0IGlmIHlvdSBoYXZlIHRoaXNcbiAgLy8gYXZhaWxhYmxlIHNvbWV3aGVyZSBlbHNlLCBvciB3YW50IHRvIHVzZSBhIGRpZmZlcmVudCBzeXN0ZW0uXG5cbiAgLy8gV2UgX3NsaWdodGx5XyBtb2RpZnkgdGhlIG5vcm1hbCBzcHJpbnRmIGJlaGF2aW9yIHRvIG1vcmUgZ3JhY2VmdWxseSBoYW5kbGVcbiAgLy8gdW5kZWZpbmVkIHZhbHVlcy5cblxuICAvKipcbiAgIHNwcmludGYoKSBmb3IgSmF2YVNjcmlwdCAwLjctYmV0YTFcbiAgIGh0dHA6Ly93d3cuZGl2ZWludG9qYXZhc2NyaXB0LmNvbS9wcm9qZWN0cy9qYXZhc2NyaXB0LXNwcmludGZcblxuICAgQ29weXJpZ2h0IChjKSBBbGV4YW5kcnUgTWFyYXN0ZWFudSA8YWxleGFob2xpYyBbYXQpIGdtYWlsIChkb3RdIGNvbT5cbiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cbiAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG4gICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICAgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHRcbiAgICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGVcbiAgICAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gICAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHNwcmludGYoKSBmb3IgSmF2YVNjcmlwdCBub3IgdGhlXG4gICAgICAgICBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0c1xuICAgICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG5cbiAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiIEFORFxuICAgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAgIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAgIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFsZXhhbmRydSBNYXJhc3RlYW51IEJFIExJQUJMRSBGT1IgQU5ZXG4gICBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICAgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTO1xuICAgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EXG4gICBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVNcbiAgIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICAqL1xuICB2YXIgc3ByaW50ZiA9IChmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiBnZXRfdHlwZSh2YXJpYWJsZSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YXJpYWJsZSkuc2xpY2UoOCwgLTEpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0cl9yZXBlYXQoaW5wdXQsIG11bHRpcGxpZXIpIHtcbiAgICAgIGZvciAodmFyIG91dHB1dCA9IFtdOyBtdWx0aXBsaWVyID4gMDsgb3V0cHV0Wy0tbXVsdGlwbGllcl0gPSBpbnB1dCkgey8qIGRvIG5vdGhpbmcgKi99XG4gICAgICByZXR1cm4gb3V0cHV0LmpvaW4oJycpO1xuICAgIH1cblxuICAgIHZhciBzdHJfZm9ybWF0ID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoIXN0cl9mb3JtYXQuY2FjaGUuaGFzT3duUHJvcGVydHkoYXJndW1lbnRzWzBdKSkge1xuICAgICAgICBzdHJfZm9ybWF0LmNhY2hlW2FyZ3VtZW50c1swXV0gPSBzdHJfZm9ybWF0LnBhcnNlKGFyZ3VtZW50c1swXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyX2Zvcm1hdC5mb3JtYXQuY2FsbChudWxsLCBzdHJfZm9ybWF0LmNhY2hlW2FyZ3VtZW50c1swXV0sIGFyZ3VtZW50cyk7XG4gICAgfTtcblxuICAgIHN0cl9mb3JtYXQuZm9ybWF0ID0gZnVuY3Rpb24ocGFyc2VfdHJlZSwgYXJndikge1xuICAgICAgdmFyIGN1cnNvciA9IDEsIHRyZWVfbGVuZ3RoID0gcGFyc2VfdHJlZS5sZW5ndGgsIG5vZGVfdHlwZSA9ICcnLCBhcmcsIG91dHB1dCA9IFtdLCBpLCBrLCBtYXRjaCwgcGFkLCBwYWRfY2hhcmFjdGVyLCBwYWRfbGVuZ3RoO1xuICAgICAgZm9yIChpID0gMDsgaSA8IHRyZWVfbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbm9kZV90eXBlID0gZ2V0X3R5cGUocGFyc2VfdHJlZVtpXSk7XG4gICAgICAgIGlmIChub2RlX3R5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgb3V0cHV0LnB1c2gocGFyc2VfdHJlZVtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobm9kZV90eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgICAgbWF0Y2ggPSBwYXJzZV90cmVlW2ldOyAvLyBjb252ZW5pZW5jZSBwdXJwb3NlcyBvbmx5XG4gICAgICAgICAgaWYgKG1hdGNoWzJdKSB7IC8vIGtleXdvcmQgYXJndW1lbnRcbiAgICAgICAgICAgIGFyZyA9IGFyZ3ZbY3Vyc29yXTtcbiAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBtYXRjaFsyXS5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICBpZiAoIWFyZy5oYXNPd25Qcm9wZXJ0eShtYXRjaFsyXVtrXSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyhzcHJpbnRmKCdbc3ByaW50Zl0gcHJvcGVydHkgXCIlc1wiIGRvZXMgbm90IGV4aXN0JywgbWF0Y2hbMl1ba10pKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBhcmcgPSBhcmdbbWF0Y2hbMl1ba11dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGlmIChtYXRjaFsxXSkgeyAvLyBwb3NpdGlvbmFsIGFyZ3VtZW50IChleHBsaWNpdClcbiAgICAgICAgICAgIGFyZyA9IGFyZ3ZbbWF0Y2hbMV1dO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHsgLy8gcG9zaXRpb25hbCBhcmd1bWVudCAoaW1wbGljaXQpXG4gICAgICAgICAgICBhcmcgPSBhcmd2W2N1cnNvcisrXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoL1tec10vLnRlc3QobWF0Y2hbOF0pICYmIChnZXRfdHlwZShhcmcpICE9ICdudW1iZXInKSkge1xuICAgICAgICAgICAgdGhyb3coc3ByaW50ZignW3NwcmludGZdIGV4cGVjdGluZyBudW1iZXIgYnV0IGZvdW5kICVzJywgZ2V0X3R5cGUoYXJnKSkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEplZCBFRElUXG4gICAgICAgICAgaWYgKCB0eXBlb2YgYXJnID09ICd1bmRlZmluZWQnIHx8IGFyZyA9PT0gbnVsbCApIHtcbiAgICAgICAgICAgIGFyZyA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBKZWQgRURJVFxuXG4gICAgICAgICAgc3dpdGNoIChtYXRjaFs4XSkge1xuICAgICAgICAgICAgY2FzZSAnYic6IGFyZyA9IGFyZy50b1N0cmluZygyKTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjJzogYXJnID0gU3RyaW5nLmZyb21DaGFyQ29kZShhcmcpOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2QnOiBhcmcgPSBwYXJzZUludChhcmcsIDEwKTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlJzogYXJnID0gbWF0Y2hbN10gPyBhcmcudG9FeHBvbmVudGlhbChtYXRjaFs3XSkgOiBhcmcudG9FeHBvbmVudGlhbCgpOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2YnOiBhcmcgPSBtYXRjaFs3XSA/IHBhcnNlRmxvYXQoYXJnKS50b0ZpeGVkKG1hdGNoWzddKSA6IHBhcnNlRmxvYXQoYXJnKTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvJzogYXJnID0gYXJnLnRvU3RyaW5nKDgpOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3MnOiBhcmcgPSAoKGFyZyA9IFN0cmluZyhhcmcpKSAmJiBtYXRjaFs3XSA/IGFyZy5zdWJzdHJpbmcoMCwgbWF0Y2hbN10pIDogYXJnKTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd1JzogYXJnID0gTWF0aC5hYnMoYXJnKTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd4JzogYXJnID0gYXJnLnRvU3RyaW5nKDE2KTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdYJzogYXJnID0gYXJnLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOyBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgYXJnID0gKC9bZGVmXS8udGVzdChtYXRjaFs4XSkgJiYgbWF0Y2hbM10gJiYgYXJnID49IDAgPyAnKycrIGFyZyA6IGFyZyk7XG4gICAgICAgICAgcGFkX2NoYXJhY3RlciA9IG1hdGNoWzRdID8gbWF0Y2hbNF0gPT0gJzAnID8gJzAnIDogbWF0Y2hbNF0uY2hhckF0KDEpIDogJyAnO1xuICAgICAgICAgIHBhZF9sZW5ndGggPSBtYXRjaFs2XSAtIFN0cmluZyhhcmcpLmxlbmd0aDtcbiAgICAgICAgICBwYWQgPSBtYXRjaFs2XSA/IHN0cl9yZXBlYXQocGFkX2NoYXJhY3RlciwgcGFkX2xlbmd0aCkgOiAnJztcbiAgICAgICAgICBvdXRwdXQucHVzaChtYXRjaFs1XSA/IGFyZyArIHBhZCA6IHBhZCArIGFyZyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBvdXRwdXQuam9pbignJyk7XG4gICAgfTtcblxuICAgIHN0cl9mb3JtYXQuY2FjaGUgPSB7fTtcblxuICAgIHN0cl9mb3JtYXQucGFyc2UgPSBmdW5jdGlvbihmbXQpIHtcbiAgICAgIHZhciBfZm10ID0gZm10LCBtYXRjaCA9IFtdLCBwYXJzZV90cmVlID0gW10sIGFyZ19uYW1lcyA9IDA7XG4gICAgICB3aGlsZSAoX2ZtdCkge1xuICAgICAgICBpZiAoKG1hdGNoID0gL15bXlxceDI1XSsvLmV4ZWMoX2ZtdCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgcGFyc2VfdHJlZS5wdXNoKG1hdGNoWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgobWF0Y2ggPSAvXlxceDI1ezJ9Ly5leGVjKF9mbXQpKSAhPT0gbnVsbCkge1xuICAgICAgICAgIHBhcnNlX3RyZWUucHVzaCgnJScpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKChtYXRjaCA9IC9eXFx4MjUoPzooWzEtOV1cXGQqKVxcJHxcXCgoW15cXCldKylcXCkpPyhcXCspPygwfCdbXiRdKT8oLSk/KFxcZCspPyg/OlxcLihcXGQrKSk/KFtiLWZvc3V4WF0pLy5leGVjKF9mbXQpKSAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChtYXRjaFsyXSkge1xuICAgICAgICAgICAgYXJnX25hbWVzIHw9IDE7XG4gICAgICAgICAgICB2YXIgZmllbGRfbGlzdCA9IFtdLCByZXBsYWNlbWVudF9maWVsZCA9IG1hdGNoWzJdLCBmaWVsZF9tYXRjaCA9IFtdO1xuICAgICAgICAgICAgaWYgKChmaWVsZF9tYXRjaCA9IC9eKFthLXpfXVthLXpfXFxkXSopL2kuZXhlYyhyZXBsYWNlbWVudF9maWVsZCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGZpZWxkX2xpc3QucHVzaChmaWVsZF9tYXRjaFsxXSk7XG4gICAgICAgICAgICAgIHdoaWxlICgocmVwbGFjZW1lbnRfZmllbGQgPSByZXBsYWNlbWVudF9maWVsZC5zdWJzdHJpbmcoZmllbGRfbWF0Y2hbMF0ubGVuZ3RoKSkgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKChmaWVsZF9tYXRjaCA9IC9eXFwuKFthLXpfXVthLXpfXFxkXSopL2kuZXhlYyhyZXBsYWNlbWVudF9maWVsZCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZF9saXN0LnB1c2goZmllbGRfbWF0Y2hbMV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICgoZmllbGRfbWF0Y2ggPSAvXlxcWyhcXGQrKVxcXS8uZXhlYyhyZXBsYWNlbWVudF9maWVsZCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZF9saXN0LnB1c2goZmllbGRfbWF0Y2hbMV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRocm93KCdbc3ByaW50Zl0gaHVoPycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93KCdbc3ByaW50Zl0gaHVoPycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWF0Y2hbMl0gPSBmaWVsZF9saXN0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFyZ19uYW1lcyB8PSAyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYXJnX25hbWVzID09PSAzKSB7XG4gICAgICAgICAgICB0aHJvdygnW3NwcmludGZdIG1peGluZyBwb3NpdGlvbmFsIGFuZCBuYW1lZCBwbGFjZWhvbGRlcnMgaXMgbm90ICh5ZXQpIHN1cHBvcnRlZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwYXJzZV90cmVlLnB1c2gobWF0Y2gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRocm93KCdbc3ByaW50Zl0gaHVoPycpO1xuICAgICAgICB9XG4gICAgICAgIF9mbXQgPSBfZm10LnN1YnN0cmluZyhtYXRjaFswXS5sZW5ndGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcnNlX3RyZWU7XG4gICAgfTtcblxuICAgIHJldHVybiBzdHJfZm9ybWF0O1xuICB9KSgpO1xuXG4gIHZhciB2c3ByaW50ZiA9IGZ1bmN0aW9uKGZtdCwgYXJndikge1xuICAgIGFyZ3YudW5zaGlmdChmbXQpO1xuICAgIHJldHVybiBzcHJpbnRmLmFwcGx5KG51bGwsIGFyZ3YpO1xuICB9O1xuXG4gIEplZC5wYXJzZV9wbHVyYWwgPSBmdW5jdGlvbiAoIHBsdXJhbF9mb3JtcywgbiApIHtcbiAgICBwbHVyYWxfZm9ybXMgPSBwbHVyYWxfZm9ybXMucmVwbGFjZSgvbi9nLCBuKTtcbiAgICByZXR1cm4gSmVkLnBhcnNlX2V4cHJlc3Npb24ocGx1cmFsX2Zvcm1zKTtcbiAgfTtcblxuICBKZWQuc3ByaW50ZiA9IGZ1bmN0aW9uICggZm10LCBhcmdzICkge1xuICAgIGlmICgge30udG9TdHJpbmcuY2FsbCggYXJncyApID09ICdbb2JqZWN0IEFycmF5XScgKSB7XG4gICAgICByZXR1cm4gdnNwcmludGYoIGZtdCwgW10uc2xpY2UuY2FsbChhcmdzKSApO1xuICAgIH1cbiAgICByZXR1cm4gc3ByaW50Zi5hcHBseSh0aGlzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cykgKTtcbiAgfTtcblxuICBKZWQucHJvdG90eXBlLnNwcmludGYgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIEplZC5zcHJpbnRmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG4gIC8vIEVORCBzcHJpbnRmIEltcGxlbWVudGF0aW9uXG5cbiAgLy8gU3RhcnQgdGhlIFBsdXJhbCBmb3JtcyBzZWN0aW9uXG4gIC8vIFRoaXMgaXMgYSBmdWxsIHBsdXJhbCBmb3JtIGV4cHJlc3Npb24gcGFyc2VyLiBJdCBpcyB1c2VkIHRvIGF2b2lkXG4gIC8vIHJ1bm5pbmcgJ2V2YWwnIG9yICduZXcgRnVuY3Rpb24nIGRpcmVjdGx5IGFnYWluc3QgdGhlIHBsdXJhbFxuICAvLyBmb3Jtcy5cbiAgLy9cbiAgLy8gVGhpcyBjYW4gYmUgaW1wb3J0YW50IGlmIHlvdSBnZXQgdHJhbnNsYXRpb25zIGRvbmUgdGhyb3VnaCBhIDNyZFxuICAvLyBwYXJ0eSB2ZW5kb3IuIEkgZW5jb3VyYWdlIHlvdSB0byB1c2UgdGhpcyBpbnN0ZWFkLCBob3dldmVyLCBJXG4gIC8vIGFsc28gd2lsbCBwcm92aWRlIGEgJ3ByZWNvbXBpbGVyJyB0aGF0IHlvdSBjYW4gdXNlIGF0IGJ1aWxkIHRpbWVcbiAgLy8gdG8gb3V0cHV0IHZhbGlkL3NhZmUgZnVuY3Rpb24gcmVwcmVzZW50YXRpb25zIG9mIHRoZSBwbHVyYWwgZm9ybVxuICAvLyBleHByZXNzaW9ucy4gVGhpcyBtZWFucyB5b3UgY2FuIGJ1aWxkIHRoaXMgY29kZSBvdXQgZm9yIHRoZSBtb3N0XG4gIC8vIHBhcnQuXG4gIEplZC5QRiA9IHt9O1xuXG4gIEplZC5QRi5wYXJzZSA9IGZ1bmN0aW9uICggcCApIHtcbiAgICB2YXIgcGx1cmFsX3N0ciA9IEplZC5QRi5leHRyYWN0UGx1cmFsRXhwciggcCApO1xuICAgIHJldHVybiBKZWQuUEYucGFyc2VyLnBhcnNlLmNhbGwoSmVkLlBGLnBhcnNlciwgcGx1cmFsX3N0cik7XG4gIH07XG5cbiAgSmVkLlBGLmNvbXBpbGUgPSBmdW5jdGlvbiAoIHAgKSB7XG4gICAgLy8gSGFuZGxlIHRydWVzIGFuZCBmYWxzZXMgYXMgMCBhbmQgMVxuICAgIGZ1bmN0aW9uIGltcGx5KCB2YWwgKSB7XG4gICAgICByZXR1cm4gKHZhbCA9PT0gdHJ1ZSA/IDEgOiB2YWwgPyB2YWwgOiAwKTtcbiAgICB9XG5cbiAgICB2YXIgYXN0ID0gSmVkLlBGLnBhcnNlKCBwICk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICggbiApIHtcbiAgICAgIHJldHVybiBpbXBseSggSmVkLlBGLmludGVycHJldGVyKCBhc3QgKSggbiApICk7XG4gICAgfTtcbiAgfTtcblxuICBKZWQuUEYuaW50ZXJwcmV0ZXIgPSBmdW5jdGlvbiAoIGFzdCApIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCBuICkge1xuICAgICAgdmFyIHJlcztcbiAgICAgIHN3aXRjaCAoIGFzdC50eXBlICkge1xuICAgICAgICBjYXNlICdHUk9VUCc6XG4gICAgICAgICAgcmV0dXJuIEplZC5QRi5pbnRlcnByZXRlciggYXN0LmV4cHIgKSggbiApO1xuICAgICAgICBjYXNlICdURVJOQVJZJzpcbiAgICAgICAgICBpZiAoIEplZC5QRi5pbnRlcnByZXRlciggYXN0LmV4cHIgKSggbiApICkge1xuICAgICAgICAgICAgcmV0dXJuIEplZC5QRi5pbnRlcnByZXRlciggYXN0LnRydXRoeSApKCBuICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBKZWQuUEYuaW50ZXJwcmV0ZXIoIGFzdC5mYWxzZXkgKSggbiApO1xuICAgICAgICBjYXNlICdPUic6XG4gICAgICAgICAgcmV0dXJuIEplZC5QRi5pbnRlcnByZXRlciggYXN0LmxlZnQgKSggbiApIHx8IEplZC5QRi5pbnRlcnByZXRlciggYXN0LnJpZ2h0ICkoIG4gKTtcbiAgICAgICAgY2FzZSAnQU5EJzpcbiAgICAgICAgICByZXR1cm4gSmVkLlBGLmludGVycHJldGVyKCBhc3QubGVmdCApKCBuICkgJiYgSmVkLlBGLmludGVycHJldGVyKCBhc3QucmlnaHQgKSggbiApO1xuICAgICAgICBjYXNlICdMVCc6XG4gICAgICAgICAgcmV0dXJuIEplZC5QRi5pbnRlcnByZXRlciggYXN0LmxlZnQgKSggbiApIDwgSmVkLlBGLmludGVycHJldGVyKCBhc3QucmlnaHQgKSggbiApO1xuICAgICAgICBjYXNlICdHVCc6XG4gICAgICAgICAgcmV0dXJuIEplZC5QRi5pbnRlcnByZXRlciggYXN0LmxlZnQgKSggbiApID4gSmVkLlBGLmludGVycHJldGVyKCBhc3QucmlnaHQgKSggbiApO1xuICAgICAgICBjYXNlICdMVEUnOlxuICAgICAgICAgIHJldHVybiBKZWQuUEYuaW50ZXJwcmV0ZXIoIGFzdC5sZWZ0ICkoIG4gKSA8PSBKZWQuUEYuaW50ZXJwcmV0ZXIoIGFzdC5yaWdodCApKCBuICk7XG4gICAgICAgIGNhc2UgJ0dURSc6XG4gICAgICAgICAgcmV0dXJuIEplZC5QRi5pbnRlcnByZXRlciggYXN0LmxlZnQgKSggbiApID49IEplZC5QRi5pbnRlcnByZXRlciggYXN0LnJpZ2h0ICkoIG4gKTtcbiAgICAgICAgY2FzZSAnRVEnOlxuICAgICAgICAgIHJldHVybiBKZWQuUEYuaW50ZXJwcmV0ZXIoIGFzdC5sZWZ0ICkoIG4gKSA9PSBKZWQuUEYuaW50ZXJwcmV0ZXIoIGFzdC5yaWdodCApKCBuICk7XG4gICAgICAgIGNhc2UgJ05FUSc6XG4gICAgICAgICAgcmV0dXJuIEplZC5QRi5pbnRlcnByZXRlciggYXN0LmxlZnQgKSggbiApICE9IEplZC5QRi5pbnRlcnByZXRlciggYXN0LnJpZ2h0ICkoIG4gKTtcbiAgICAgICAgY2FzZSAnTU9EJzpcbiAgICAgICAgICByZXR1cm4gSmVkLlBGLmludGVycHJldGVyKCBhc3QubGVmdCApKCBuICkgJSBKZWQuUEYuaW50ZXJwcmV0ZXIoIGFzdC5yaWdodCApKCBuICk7XG4gICAgICAgIGNhc2UgJ1ZBUic6XG4gICAgICAgICAgcmV0dXJuIG47XG4gICAgICAgIGNhc2UgJ05VTSc6XG4gICAgICAgICAgcmV0dXJuIGFzdC52YWw7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBUb2tlbiBmb3VuZC5cIik7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICBKZWQuUEYuZXh0cmFjdFBsdXJhbEV4cHIgPSBmdW5jdGlvbiAoIHAgKSB7XG4gICAgLy8gdHJpbSBmaXJzdFxuICAgIHAgPSBwLnJlcGxhY2UoL15cXHNcXHMqLywgJycpLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xuXG4gICAgaWYgKCEgLztcXHMqJC8udGVzdChwKSkge1xuICAgICAgcCA9IHAuY29uY2F0KCc7Jyk7XG4gICAgfVxuXG4gICAgdmFyIG5wbHVyYWxzX3JlID0gL25wbHVyYWxzXFw9KFxcZCspOy8sXG4gICAgICAgIHBsdXJhbF9yZSA9IC9wbHVyYWxcXD0oLiopOy8sXG4gICAgICAgIG5wbHVyYWxzX21hdGNoZXMgPSBwLm1hdGNoKCBucGx1cmFsc19yZSApLFxuICAgICAgICByZXMgPSB7fSxcbiAgICAgICAgcGx1cmFsX21hdGNoZXM7XG5cbiAgICAvLyBGaW5kIHRoZSBucGx1cmFscyBudW1iZXJcbiAgICBpZiAoIG5wbHVyYWxzX21hdGNoZXMubGVuZ3RoID4gMSApIHtcbiAgICAgIHJlcy5ucGx1cmFscyA9IG5wbHVyYWxzX21hdGNoZXNbMV07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCducGx1cmFscyBub3QgZm91bmQgaW4gcGx1cmFsX2Zvcm1zIHN0cmluZzogJyArIHAgKTtcbiAgICB9XG5cbiAgICAvLyByZW1vdmUgdGhhdCBkYXRhIHRvIGdldCB0byB0aGUgZm9ybXVsYVxuICAgIHAgPSBwLnJlcGxhY2UoIG5wbHVyYWxzX3JlLCBcIlwiICk7XG4gICAgcGx1cmFsX21hdGNoZXMgPSBwLm1hdGNoKCBwbHVyYWxfcmUgKTtcblxuICAgIGlmICghKCBwbHVyYWxfbWF0Y2hlcyAmJiBwbHVyYWxfbWF0Y2hlcy5sZW5ndGggPiAxICkgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BwbHVyYWxgIGV4cHJlc3Npb24gbm90IGZvdW5kOiAnICsgcCk7XG4gICAgfVxuICAgIHJldHVybiBwbHVyYWxfbWF0Y2hlc1sgMSBdO1xuICB9O1xuXG4gIC8qIEppc29uIGdlbmVyYXRlZCBwYXJzZXIgKi9cbiAgSmVkLlBGLnBhcnNlciA9IChmdW5jdGlvbigpe1xuXG52YXIgcGFyc2VyID0ge3RyYWNlOiBmdW5jdGlvbiB0cmFjZSgpIHsgfSxcbnl5OiB7fSxcbnN5bWJvbHNfOiB7XCJlcnJvclwiOjIsXCJleHByZXNzaW9uc1wiOjMsXCJlXCI6NCxcIkVPRlwiOjUsXCI/XCI6NixcIjpcIjo3LFwifHxcIjo4LFwiJiZcIjo5LFwiPFwiOjEwLFwiPD1cIjoxMSxcIj5cIjoxMixcIj49XCI6MTMsXCIhPVwiOjE0LFwiPT1cIjoxNSxcIiVcIjoxNixcIihcIjoxNyxcIilcIjoxOCxcIm5cIjoxOSxcIk5VTUJFUlwiOjIwLFwiJGFjY2VwdFwiOjAsXCIkZW5kXCI6MX0sXG50ZXJtaW5hbHNfOiB7MjpcImVycm9yXCIsNTpcIkVPRlwiLDY6XCI/XCIsNzpcIjpcIiw4OlwifHxcIiw5OlwiJiZcIiwxMDpcIjxcIiwxMTpcIjw9XCIsMTI6XCI+XCIsMTM6XCI+PVwiLDE0OlwiIT1cIiwxNTpcIj09XCIsMTY6XCIlXCIsMTc6XCIoXCIsMTg6XCIpXCIsMTk6XCJuXCIsMjA6XCJOVU1CRVJcIn0sXG5wcm9kdWN0aW9uc186IFswLFszLDJdLFs0LDVdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDNdLFs0LDFdLFs0LDFdXSxcbnBlcmZvcm1BY3Rpb246IGZ1bmN0aW9uIGFub255bW91cyh5eXRleHQseXlsZW5nLHl5bGluZW5vLHl5LHl5c3RhdGUsJCQsXyQpIHtcblxudmFyICQwID0gJCQubGVuZ3RoIC0gMTtcbnN3aXRjaCAoeXlzdGF0ZSkge1xuY2FzZSAxOiByZXR1cm4geyB0eXBlIDogJ0dST1VQJywgZXhwcjogJCRbJDAtMV0gfTtcbmJyZWFrO1xuY2FzZSAyOnRoaXMuJCA9IHsgdHlwZTogJ1RFUk5BUlknLCBleHByOiAkJFskMC00XSwgdHJ1dGh5IDogJCRbJDAtMl0sIGZhbHNleTogJCRbJDBdIH07XG5icmVhaztcbmNhc2UgMzp0aGlzLiQgPSB7IHR5cGU6IFwiT1JcIiwgbGVmdDogJCRbJDAtMl0sIHJpZ2h0OiAkJFskMF0gfTtcbmJyZWFrO1xuY2FzZSA0OnRoaXMuJCA9IHsgdHlwZTogXCJBTkRcIiwgbGVmdDogJCRbJDAtMl0sIHJpZ2h0OiAkJFskMF0gfTtcbmJyZWFrO1xuY2FzZSA1OnRoaXMuJCA9IHsgdHlwZTogJ0xUJywgbGVmdDogJCRbJDAtMl0sIHJpZ2h0OiAkJFskMF0gfTtcbmJyZWFrO1xuY2FzZSA2OnRoaXMuJCA9IHsgdHlwZTogJ0xURScsIGxlZnQ6ICQkWyQwLTJdLCByaWdodDogJCRbJDBdIH07XG5icmVhaztcbmNhc2UgNzp0aGlzLiQgPSB7IHR5cGU6ICdHVCcsIGxlZnQ6ICQkWyQwLTJdLCByaWdodDogJCRbJDBdIH07XG5icmVhaztcbmNhc2UgODp0aGlzLiQgPSB7IHR5cGU6ICdHVEUnLCBsZWZ0OiAkJFskMC0yXSwgcmlnaHQ6ICQkWyQwXSB9O1xuYnJlYWs7XG5jYXNlIDk6dGhpcy4kID0geyB0eXBlOiAnTkVRJywgbGVmdDogJCRbJDAtMl0sIHJpZ2h0OiAkJFskMF0gfTtcbmJyZWFrO1xuY2FzZSAxMDp0aGlzLiQgPSB7IHR5cGU6ICdFUScsIGxlZnQ6ICQkWyQwLTJdLCByaWdodDogJCRbJDBdIH07XG5icmVhaztcbmNhc2UgMTE6dGhpcy4kID0geyB0eXBlOiAnTU9EJywgbGVmdDogJCRbJDAtMl0sIHJpZ2h0OiAkJFskMF0gfTtcbmJyZWFrO1xuY2FzZSAxMjp0aGlzLiQgPSB7IHR5cGU6ICdHUk9VUCcsIGV4cHI6ICQkWyQwLTFdIH07XG5icmVhaztcbmNhc2UgMTM6dGhpcy4kID0geyB0eXBlOiAnVkFSJyB9O1xuYnJlYWs7XG5jYXNlIDE0OnRoaXMuJCA9IHsgdHlwZTogJ05VTScsIHZhbDogTnVtYmVyKHl5dGV4dCkgfTtcbmJyZWFrO1xufVxufSxcbnRhYmxlOiBbezM6MSw0OjIsMTc6WzEsM10sMTk6WzEsNF0sMjA6WzEsNV19LHsxOlszXX0sezU6WzEsNl0sNjpbMSw3XSw4OlsxLDhdLDk6WzEsOV0sMTA6WzEsMTBdLDExOlsxLDExXSwxMjpbMSwxMl0sMTM6WzEsMTNdLDE0OlsxLDE0XSwxNTpbMSwxNV0sMTY6WzEsMTZdfSx7NDoxNywxNzpbMSwzXSwxOTpbMSw0XSwyMDpbMSw1XX0sezU6WzIsMTNdLDY6WzIsMTNdLDc6WzIsMTNdLDg6WzIsMTNdLDk6WzIsMTNdLDEwOlsyLDEzXSwxMTpbMiwxM10sMTI6WzIsMTNdLDEzOlsyLDEzXSwxNDpbMiwxM10sMTU6WzIsMTNdLDE2OlsyLDEzXSwxODpbMiwxM119LHs1OlsyLDE0XSw2OlsyLDE0XSw3OlsyLDE0XSw4OlsyLDE0XSw5OlsyLDE0XSwxMDpbMiwxNF0sMTE6WzIsMTRdLDEyOlsyLDE0XSwxMzpbMiwxNF0sMTQ6WzIsMTRdLDE1OlsyLDE0XSwxNjpbMiwxNF0sMTg6WzIsMTRdfSx7MTpbMiwxXX0sezQ6MTgsMTc6WzEsM10sMTk6WzEsNF0sMjA6WzEsNV19LHs0OjE5LDE3OlsxLDNdLDE5OlsxLDRdLDIwOlsxLDVdfSx7NDoyMCwxNzpbMSwzXSwxOTpbMSw0XSwyMDpbMSw1XX0sezQ6MjEsMTc6WzEsM10sMTk6WzEsNF0sMjA6WzEsNV19LHs0OjIyLDE3OlsxLDNdLDE5OlsxLDRdLDIwOlsxLDVdfSx7NDoyMywxNzpbMSwzXSwxOTpbMSw0XSwyMDpbMSw1XX0sezQ6MjQsMTc6WzEsM10sMTk6WzEsNF0sMjA6WzEsNV19LHs0OjI1LDE3OlsxLDNdLDE5OlsxLDRdLDIwOlsxLDVdfSx7NDoyNiwxNzpbMSwzXSwxOTpbMSw0XSwyMDpbMSw1XX0sezQ6MjcsMTc6WzEsM10sMTk6WzEsNF0sMjA6WzEsNV19LHs2OlsxLDddLDg6WzEsOF0sOTpbMSw5XSwxMDpbMSwxMF0sMTE6WzEsMTFdLDEyOlsxLDEyXSwxMzpbMSwxM10sMTQ6WzEsMTRdLDE1OlsxLDE1XSwxNjpbMSwxNl0sMTg6WzEsMjhdfSx7NjpbMSw3XSw3OlsxLDI5XSw4OlsxLDhdLDk6WzEsOV0sMTA6WzEsMTBdLDExOlsxLDExXSwxMjpbMSwxMl0sMTM6WzEsMTNdLDE0OlsxLDE0XSwxNTpbMSwxNV0sMTY6WzEsMTZdfSx7NTpbMiwzXSw2OlsyLDNdLDc6WzIsM10sODpbMiwzXSw5OlsxLDldLDEwOlsxLDEwXSwxMTpbMSwxMV0sMTI6WzEsMTJdLDEzOlsxLDEzXSwxNDpbMSwxNF0sMTU6WzEsMTVdLDE2OlsxLDE2XSwxODpbMiwzXX0sezU6WzIsNF0sNjpbMiw0XSw3OlsyLDRdLDg6WzIsNF0sOTpbMiw0XSwxMDpbMSwxMF0sMTE6WzEsMTFdLDEyOlsxLDEyXSwxMzpbMSwxM10sMTQ6WzEsMTRdLDE1OlsxLDE1XSwxNjpbMSwxNl0sMTg6WzIsNF19LHs1OlsyLDVdLDY6WzIsNV0sNzpbMiw1XSw4OlsyLDVdLDk6WzIsNV0sMTA6WzIsNV0sMTE6WzIsNV0sMTI6WzIsNV0sMTM6WzIsNV0sMTQ6WzIsNV0sMTU6WzIsNV0sMTY6WzEsMTZdLDE4OlsyLDVdfSx7NTpbMiw2XSw2OlsyLDZdLDc6WzIsNl0sODpbMiw2XSw5OlsyLDZdLDEwOlsyLDZdLDExOlsyLDZdLDEyOlsyLDZdLDEzOlsyLDZdLDE0OlsyLDZdLDE1OlsyLDZdLDE2OlsxLDE2XSwxODpbMiw2XX0sezU6WzIsN10sNjpbMiw3XSw3OlsyLDddLDg6WzIsN10sOTpbMiw3XSwxMDpbMiw3XSwxMTpbMiw3XSwxMjpbMiw3XSwxMzpbMiw3XSwxNDpbMiw3XSwxNTpbMiw3XSwxNjpbMSwxNl0sMTg6WzIsN119LHs1OlsyLDhdLDY6WzIsOF0sNzpbMiw4XSw4OlsyLDhdLDk6WzIsOF0sMTA6WzIsOF0sMTE6WzIsOF0sMTI6WzIsOF0sMTM6WzIsOF0sMTQ6WzIsOF0sMTU6WzIsOF0sMTY6WzEsMTZdLDE4OlsyLDhdfSx7NTpbMiw5XSw2OlsyLDldLDc6WzIsOV0sODpbMiw5XSw5OlsyLDldLDEwOlsyLDldLDExOlsyLDldLDEyOlsyLDldLDEzOlsyLDldLDE0OlsyLDldLDE1OlsyLDldLDE2OlsxLDE2XSwxODpbMiw5XX0sezU6WzIsMTBdLDY6WzIsMTBdLDc6WzIsMTBdLDg6WzIsMTBdLDk6WzIsMTBdLDEwOlsyLDEwXSwxMTpbMiwxMF0sMTI6WzIsMTBdLDEzOlsyLDEwXSwxNDpbMiwxMF0sMTU6WzIsMTBdLDE2OlsxLDE2XSwxODpbMiwxMF19LHs1OlsyLDExXSw2OlsyLDExXSw3OlsyLDExXSw4OlsyLDExXSw5OlsyLDExXSwxMDpbMiwxMV0sMTE6WzIsMTFdLDEyOlsyLDExXSwxMzpbMiwxMV0sMTQ6WzIsMTFdLDE1OlsyLDExXSwxNjpbMiwxMV0sMTg6WzIsMTFdfSx7NTpbMiwxMl0sNjpbMiwxMl0sNzpbMiwxMl0sODpbMiwxMl0sOTpbMiwxMl0sMTA6WzIsMTJdLDExOlsyLDEyXSwxMjpbMiwxMl0sMTM6WzIsMTJdLDE0OlsyLDEyXSwxNTpbMiwxMl0sMTY6WzIsMTJdLDE4OlsyLDEyXX0sezQ6MzAsMTc6WzEsM10sMTk6WzEsNF0sMjA6WzEsNV19LHs1OlsyLDJdLDY6WzEsN10sNzpbMiwyXSw4OlsxLDhdLDk6WzEsOV0sMTA6WzEsMTBdLDExOlsxLDExXSwxMjpbMSwxMl0sMTM6WzEsMTNdLDE0OlsxLDE0XSwxNTpbMSwxNV0sMTY6WzEsMTZdLDE4OlsyLDJdfV0sXG5kZWZhdWx0QWN0aW9uczogezY6WzIsMV19LFxucGFyc2VFcnJvcjogZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3Ioc3RyKTtcbn0sXG5wYXJzZTogZnVuY3Rpb24gcGFyc2UoaW5wdXQpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgIHN0YWNrID0gWzBdLFxuICAgICAgICB2c3RhY2sgPSBbbnVsbF0sIC8vIHNlbWFudGljIHZhbHVlIHN0YWNrXG4gICAgICAgIGxzdGFjayA9IFtdLCAvLyBsb2NhdGlvbiBzdGFja1xuICAgICAgICB0YWJsZSA9IHRoaXMudGFibGUsXG4gICAgICAgIHl5dGV4dCA9ICcnLFxuICAgICAgICB5eWxpbmVubyA9IDAsXG4gICAgICAgIHl5bGVuZyA9IDAsXG4gICAgICAgIHJlY292ZXJpbmcgPSAwLFxuICAgICAgICBURVJST1IgPSAyLFxuICAgICAgICBFT0YgPSAxO1xuXG4gICAgLy90aGlzLnJlZHVjdGlvbkNvdW50ID0gdGhpcy5zaGlmdENvdW50ID0gMDtcblxuICAgIHRoaXMubGV4ZXIuc2V0SW5wdXQoaW5wdXQpO1xuICAgIHRoaXMubGV4ZXIueXkgPSB0aGlzLnl5O1xuICAgIHRoaXMueXkubGV4ZXIgPSB0aGlzLmxleGVyO1xuICAgIGlmICh0eXBlb2YgdGhpcy5sZXhlci55eWxsb2MgPT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHRoaXMubGV4ZXIueXlsbG9jID0ge307XG4gICAgdmFyIHl5bG9jID0gdGhpcy5sZXhlci55eWxsb2M7XG4gICAgbHN0YWNrLnB1c2goeXlsb2MpO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnl5LnBhcnNlRXJyb3IgPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHRoaXMucGFyc2VFcnJvciA9IHRoaXMueXkucGFyc2VFcnJvcjtcblxuICAgIGZ1bmN0aW9uIHBvcFN0YWNrIChuKSB7XG4gICAgICAgIHN0YWNrLmxlbmd0aCA9IHN0YWNrLmxlbmd0aCAtIDIqbjtcbiAgICAgICAgdnN0YWNrLmxlbmd0aCA9IHZzdGFjay5sZW5ndGggLSBuO1xuICAgICAgICBsc3RhY2subGVuZ3RoID0gbHN0YWNrLmxlbmd0aCAtIG47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGV4KCkge1xuICAgICAgICB2YXIgdG9rZW47XG4gICAgICAgIHRva2VuID0gc2VsZi5sZXhlci5sZXgoKSB8fCAxOyAvLyAkZW5kID0gMVxuICAgICAgICAvLyBpZiB0b2tlbiBpc24ndCBpdHMgbnVtZXJpYyB2YWx1ZSwgY29udmVydFxuICAgICAgICBpZiAodHlwZW9mIHRva2VuICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdG9rZW4gPSBzZWxmLnN5bWJvbHNfW3Rva2VuXSB8fCB0b2tlbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgfVxuXG4gICAgdmFyIHN5bWJvbCwgcHJlRXJyb3JTeW1ib2wsIHN0YXRlLCBhY3Rpb24sIGEsIHIsIHl5dmFsPXt9LHAsbGVuLG5ld1N0YXRlLCBleHBlY3RlZDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAvLyByZXRyZWl2ZSBzdGF0ZSBudW1iZXIgZnJvbSB0b3Agb2Ygc3RhY2tcbiAgICAgICAgc3RhdGUgPSBzdGFja1tzdGFjay5sZW5ndGgtMV07XG5cbiAgICAgICAgLy8gdXNlIGRlZmF1bHQgYWN0aW9ucyBpZiBhdmFpbGFibGVcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEFjdGlvbnNbc3RhdGVdKSB7XG4gICAgICAgICAgICBhY3Rpb24gPSB0aGlzLmRlZmF1bHRBY3Rpb25zW3N0YXRlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzeW1ib2wgPT0gbnVsbClcbiAgICAgICAgICAgICAgICBzeW1ib2wgPSBsZXgoKTtcbiAgICAgICAgICAgIC8vIHJlYWQgYWN0aW9uIGZvciBjdXJyZW50IHN0YXRlIGFuZCBmaXJzdCBpbnB1dFxuICAgICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGVdICYmIHRhYmxlW3N0YXRlXVtzeW1ib2xdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaGFuZGxlIHBhcnNlIGVycm9yXG4gICAgICAgIF9oYW5kbGVfZXJyb3I6XG4gICAgICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSAndW5kZWZpbmVkJyB8fCAhYWN0aW9uLmxlbmd0aCB8fCAhYWN0aW9uWzBdKSB7XG5cbiAgICAgICAgICAgIGlmICghcmVjb3ZlcmluZykge1xuICAgICAgICAgICAgICAgIC8vIFJlcG9ydCBlcnJvclxuICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChwIGluIHRhYmxlW3N0YXRlXSkgaWYgKHRoaXMudGVybWluYWxzX1twXSAmJiBwID4gMikge1xuICAgICAgICAgICAgICAgICAgICBleHBlY3RlZC5wdXNoKFwiJ1wiK3RoaXMudGVybWluYWxzX1twXStcIidcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBlcnJTdHIgPSAnJztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sZXhlci5zaG93UG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyU3RyID0gJ1BhcnNlIGVycm9yIG9uIGxpbmUgJysoeXlsaW5lbm8rMSkrXCI6XFxuXCIrdGhpcy5sZXhlci5zaG93UG9zaXRpb24oKStcIlxcbkV4cGVjdGluZyBcIitleHBlY3RlZC5qb2luKCcsICcpICsgXCIsIGdvdCAnXCIgKyB0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSsgXCInXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyU3RyID0gJ1BhcnNlIGVycm9yIG9uIGxpbmUgJysoeXlsaW5lbm8rMSkrXCI6IFVuZXhwZWN0ZWQgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzeW1ib2wgPT0gMSAvKkVPRiovID8gXCJlbmQgb2YgaW5wdXRcIiA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFwiJ1wiKyh0aGlzLnRlcm1pbmFsc19bc3ltYm9sXSB8fCBzeW1ib2wpK1wiJ1wiKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucGFyc2VFcnJvcihlcnJTdHIsXG4gICAgICAgICAgICAgICAgICAgIHt0ZXh0OiB0aGlzLmxleGVyLm1hdGNoLCB0b2tlbjogdGhpcy50ZXJtaW5hbHNfW3N5bWJvbF0gfHwgc3ltYm9sLCBsaW5lOiB0aGlzLmxleGVyLnl5bGluZW5vLCBsb2M6IHl5bG9jLCBleHBlY3RlZDogZXhwZWN0ZWR9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8ganVzdCByZWNvdmVyZWQgZnJvbSBhbm90aGVyIGVycm9yXG4gICAgICAgICAgICBpZiAocmVjb3ZlcmluZyA9PSAzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN5bWJvbCA9PSBFT0YpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyclN0ciB8fCAnUGFyc2luZyBoYWx0ZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZGlzY2FyZCBjdXJyZW50IGxvb2thaGVhZCBhbmQgZ3JhYiBhbm90aGVyXG4gICAgICAgICAgICAgICAgeXlsZW5nID0gdGhpcy5sZXhlci55eWxlbmc7XG4gICAgICAgICAgICAgICAgeXl0ZXh0ID0gdGhpcy5sZXhlci55eXRleHQ7XG4gICAgICAgICAgICAgICAgeXlsaW5lbm8gPSB0aGlzLmxleGVyLnl5bGluZW5vO1xuICAgICAgICAgICAgICAgIHl5bG9jID0gdGhpcy5sZXhlci55eWxsb2M7XG4gICAgICAgICAgICAgICAgc3ltYm9sID0gbGV4KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHRyeSB0byByZWNvdmVyIGZyb20gZXJyb3JcbiAgICAgICAgICAgIHdoaWxlICgxKSB7XG4gICAgICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGVycm9yIHJlY292ZXJ5IHJ1bGUgaW4gdGhpcyBzdGF0ZVxuICAgICAgICAgICAgICAgIGlmICgoVEVSUk9SLnRvU3RyaW5nKCkpIGluIHRhYmxlW3N0YXRlXSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyclN0ciB8fCAnUGFyc2luZyBoYWx0ZWQuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBvcFN0YWNrKDEpO1xuICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhY2tbc3RhY2subGVuZ3RoLTFdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcmVFcnJvclN5bWJvbCA9IHN5bWJvbDsgLy8gc2F2ZSB0aGUgbG9va2FoZWFkIHRva2VuXG4gICAgICAgICAgICBzeW1ib2wgPSBURVJST1I7ICAgICAgICAgLy8gaW5zZXJ0IGdlbmVyaWMgZXJyb3Igc3ltYm9sIGFzIG5ldyBsb29rYWhlYWRcbiAgICAgICAgICAgIHN0YXRlID0gc3RhY2tbc3RhY2subGVuZ3RoLTFdO1xuICAgICAgICAgICAgYWN0aW9uID0gdGFibGVbc3RhdGVdICYmIHRhYmxlW3N0YXRlXVtURVJST1JdO1xuICAgICAgICAgICAgcmVjb3ZlcmluZyA9IDM7IC8vIGFsbG93IDMgcmVhbCBzeW1ib2xzIHRvIGJlIHNoaWZ0ZWQgYmVmb3JlIHJlcG9ydGluZyBhIG5ldyBlcnJvclxuICAgICAgICB9XG5cbiAgICAgICAgLy8gdGhpcyBzaG91bGRuJ3QgaGFwcGVuLCB1bmxlc3MgcmVzb2x2ZSBkZWZhdWx0cyBhcmUgb2ZmXG4gICAgICAgIGlmIChhY3Rpb25bMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBhY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJzZSBFcnJvcjogbXVsdGlwbGUgYWN0aW9ucyBwb3NzaWJsZSBhdCBzdGF0ZTogJytzdGF0ZSsnLCB0b2tlbjogJytzeW1ib2wpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChhY3Rpb25bMF0pIHtcblxuICAgICAgICAgICAgY2FzZSAxOiAvLyBzaGlmdFxuICAgICAgICAgICAgICAgIC8vdGhpcy5zaGlmdENvdW50Kys7XG5cbiAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHN5bWJvbCk7XG4gICAgICAgICAgICAgICAgdnN0YWNrLnB1c2godGhpcy5sZXhlci55eXRleHQpO1xuICAgICAgICAgICAgICAgIGxzdGFjay5wdXNoKHRoaXMubGV4ZXIueXlsbG9jKTtcbiAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGFjdGlvblsxXSk7IC8vIHB1c2ggc3RhdGVcbiAgICAgICAgICAgICAgICBzeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAgICAgIGlmICghcHJlRXJyb3JTeW1ib2wpIHsgLy8gbm9ybWFsIGV4ZWN1dGlvbi9ubyBlcnJvclxuICAgICAgICAgICAgICAgICAgICB5eWxlbmcgPSB0aGlzLmxleGVyLnl5bGVuZztcbiAgICAgICAgICAgICAgICAgICAgeXl0ZXh0ID0gdGhpcy5sZXhlci55eXRleHQ7XG4gICAgICAgICAgICAgICAgICAgIHl5bGluZW5vID0gdGhpcy5sZXhlci55eWxpbmVubztcbiAgICAgICAgICAgICAgICAgICAgeXlsb2MgPSB0aGlzLmxleGVyLnl5bGxvYztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlY292ZXJpbmcgPiAwKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3ZlcmluZy0tO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGVycm9yIGp1c3Qgb2NjdXJyZWQsIHJlc3VtZSBvbGQgbG9va2FoZWFkIGYvIGJlZm9yZSBlcnJvclxuICAgICAgICAgICAgICAgICAgICBzeW1ib2wgPSBwcmVFcnJvclN5bWJvbDtcbiAgICAgICAgICAgICAgICAgICAgcHJlRXJyb3JTeW1ib2wgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAyOiAvLyByZWR1Y2VcbiAgICAgICAgICAgICAgICAvL3RoaXMucmVkdWN0aW9uQ291bnQrKztcblxuICAgICAgICAgICAgICAgIGxlbiA9IHRoaXMucHJvZHVjdGlvbnNfW2FjdGlvblsxXV1bMV07XG5cbiAgICAgICAgICAgICAgICAvLyBwZXJmb3JtIHNlbWFudGljIGFjdGlvblxuICAgICAgICAgICAgICAgIHl5dmFsLiQgPSB2c3RhY2tbdnN0YWNrLmxlbmd0aC1sZW5dOyAvLyBkZWZhdWx0IHRvICQkID0gJDFcbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGxvY2F0aW9uLCB1c2VzIGZpcnN0IHRva2VuIGZvciBmaXJzdHMsIGxhc3QgZm9yIGxhc3RzXG4gICAgICAgICAgICAgICAgeXl2YWwuXyQgPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoLShsZW58fDEpXS5maXJzdF9saW5lLFxuICAgICAgICAgICAgICAgICAgICBsYXN0X2xpbmU6IGxzdGFja1tsc3RhY2subGVuZ3RoLTFdLmxhc3RfbGluZSxcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiBsc3RhY2tbbHN0YWNrLmxlbmd0aC0obGVufHwxKV0uZmlyc3RfY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbHN0YWNrW2xzdGFjay5sZW5ndGgtMV0ubGFzdF9jb2x1bW5cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHIgPSB0aGlzLnBlcmZvcm1BY3Rpb24uY2FsbCh5eXZhbCwgeXl0ZXh0LCB5eWxlbmcsIHl5bGluZW5vLCB0aGlzLnl5LCBhY3Rpb25bMV0sIHZzdGFjaywgbHN0YWNrKTtcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gcG9wIG9mZiBzdGFja1xuICAgICAgICAgICAgICAgIGlmIChsZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhY2sgPSBzdGFjay5zbGljZSgwLC0xKmxlbioyKTtcbiAgICAgICAgICAgICAgICAgICAgdnN0YWNrID0gdnN0YWNrLnNsaWNlKDAsIC0xKmxlbik7XG4gICAgICAgICAgICAgICAgICAgIGxzdGFjayA9IGxzdGFjay5zbGljZSgwLCAtMSpsZW4pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YWNrLnB1c2godGhpcy5wcm9kdWN0aW9uc19bYWN0aW9uWzFdXVswXSk7ICAgIC8vIHB1c2ggbm9udGVybWluYWwgKHJlZHVjZSlcbiAgICAgICAgICAgICAgICB2c3RhY2sucHVzaCh5eXZhbC4kKTtcbiAgICAgICAgICAgICAgICBsc3RhY2sucHVzaCh5eXZhbC5fJCk7XG4gICAgICAgICAgICAgICAgLy8gZ290byBuZXcgc3RhdGUgPSB0YWJsZVtTVEFURV1bTk9OVEVSTUlOQUxdXG4gICAgICAgICAgICAgICAgbmV3U3RhdGUgPSB0YWJsZVtzdGFja1tzdGFjay5sZW5ndGgtMl1dW3N0YWNrW3N0YWNrLmxlbmd0aC0xXV07XG4gICAgICAgICAgICAgICAgc3RhY2sucHVzaChuZXdTdGF0ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgMzogLy8gYWNjZXB0XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufX07LyogSmlzb24gZ2VuZXJhdGVkIGxleGVyICovXG52YXIgbGV4ZXIgPSAoZnVuY3Rpb24oKXtcblxudmFyIGxleGVyID0gKHtFT0Y6MSxcbnBhcnNlRXJyb3I6ZnVuY3Rpb24gcGFyc2VFcnJvcihzdHIsIGhhc2gpIHtcbiAgICAgICAgaWYgKHRoaXMueXkucGFyc2VFcnJvcikge1xuICAgICAgICAgICAgdGhpcy55eS5wYXJzZUVycm9yKHN0ciwgaGFzaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc3RyKTtcbiAgICAgICAgfVxuICAgIH0sXG5zZXRJbnB1dDpmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBpbnB1dDtcbiAgICAgICAgdGhpcy5fbW9yZSA9IHRoaXMuX2xlc3MgPSB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy55eWxpbmVubyA9IHRoaXMueXlsZW5nID0gMDtcbiAgICAgICAgdGhpcy55eXRleHQgPSB0aGlzLm1hdGNoZWQgPSB0aGlzLm1hdGNoID0gJyc7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uU3RhY2sgPSBbJ0lOSVRJQUwnXTtcbiAgICAgICAgdGhpcy55eWxsb2MgPSB7Zmlyc3RfbGluZToxLGZpcnN0X2NvbHVtbjowLGxhc3RfbGluZToxLGxhc3RfY29sdW1uOjB9O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxuaW5wdXQ6ZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgY2ggPSB0aGlzLl9pbnB1dFswXTtcbiAgICAgICAgdGhpcy55eXRleHQrPWNoO1xuICAgICAgICB0aGlzLnl5bGVuZysrO1xuICAgICAgICB0aGlzLm1hdGNoKz1jaDtcbiAgICAgICAgdGhpcy5tYXRjaGVkKz1jaDtcbiAgICAgICAgdmFyIGxpbmVzID0gY2gubWF0Y2goL1xcbi8pO1xuICAgICAgICBpZiAobGluZXMpIHRoaXMueXlsaW5lbm8rKztcbiAgICAgICAgdGhpcy5faW5wdXQgPSB0aGlzLl9pbnB1dC5zbGljZSgxKTtcbiAgICAgICAgcmV0dXJuIGNoO1xuICAgIH0sXG51bnB1dDpmdW5jdGlvbiAoY2gpIHtcbiAgICAgICAgdGhpcy5faW5wdXQgPSBjaCArIHRoaXMuX2lucHV0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxubW9yZTpmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuX21vcmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9LFxucGFzdElucHV0OmZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHBhc3QgPSB0aGlzLm1hdGNoZWQuc3Vic3RyKDAsIHRoaXMubWF0Y2hlZC5sZW5ndGggLSB0aGlzLm1hdGNoLmxlbmd0aCk7XG4gICAgICAgIHJldHVybiAocGFzdC5sZW5ndGggPiAyMCA/ICcuLi4nOicnKSArIHBhc3Quc3Vic3RyKC0yMCkucmVwbGFjZSgvXFxuL2csIFwiXCIpO1xuICAgIH0sXG51cGNvbWluZ0lucHV0OmZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG5leHQgPSB0aGlzLm1hdGNoO1xuICAgICAgICBpZiAobmV4dC5sZW5ndGggPCAyMCkge1xuICAgICAgICAgICAgbmV4dCArPSB0aGlzLl9pbnB1dC5zdWJzdHIoMCwgMjAtbmV4dC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAobmV4dC5zdWJzdHIoMCwyMCkrKG5leHQubGVuZ3RoID4gMjAgPyAnLi4uJzonJykpLnJlcGxhY2UoL1xcbi9nLCBcIlwiKTtcbiAgICB9LFxuc2hvd1Bvc2l0aW9uOmZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHByZSA9IHRoaXMucGFzdElucHV0KCk7XG4gICAgICAgIHZhciBjID0gbmV3IEFycmF5KHByZS5sZW5ndGggKyAxKS5qb2luKFwiLVwiKTtcbiAgICAgICAgcmV0dXJuIHByZSArIHRoaXMudXBjb21pbmdJbnB1dCgpICsgXCJcXG5cIiArIGMrXCJeXCI7XG4gICAgfSxcbm5leHQ6ZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5kb25lKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dCkgdGhpcy5kb25lID0gdHJ1ZTtcblxuICAgICAgICB2YXIgdG9rZW4sXG4gICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgIGNvbCxcbiAgICAgICAgICAgIGxpbmVzO1xuICAgICAgICBpZiAoIXRoaXMuX21vcmUpIHtcbiAgICAgICAgICAgIHRoaXMueXl0ZXh0ID0gJyc7XG4gICAgICAgICAgICB0aGlzLm1hdGNoID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJ1bGVzID0gdGhpcy5fY3VycmVudFJ1bGVzKCk7XG4gICAgICAgIGZvciAodmFyIGk9MDtpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIG1hdGNoID0gdGhpcy5faW5wdXQubWF0Y2godGhpcy5ydWxlc1tydWxlc1tpXV0pO1xuICAgICAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgbGluZXMgPSBtYXRjaFswXS5tYXRjaCgvXFxuLiovZyk7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmVzKSB0aGlzLnl5bGluZW5vICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0aGlzLnl5bGxvYyA9IHtmaXJzdF9saW5lOiB0aGlzLnl5bGxvYy5sYXN0X2xpbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9saW5lOiB0aGlzLnl5bGluZW5vKzEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfY29sdW1uOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X2NvbHVtbjogbGluZXMgPyBsaW5lc1tsaW5lcy5sZW5ndGgtMV0ubGVuZ3RoLTEgOiB0aGlzLnl5bGxvYy5sYXN0X2NvbHVtbiArIG1hdGNoWzBdLmxlbmd0aH1cbiAgICAgICAgICAgICAgICB0aGlzLnl5dGV4dCArPSBtYXRjaFswXTtcbiAgICAgICAgICAgICAgICB0aGlzLm1hdGNoICs9IG1hdGNoWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMubWF0Y2hlcyA9IG1hdGNoO1xuICAgICAgICAgICAgICAgIHRoaXMueXlsZW5nID0gdGhpcy55eXRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vcmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnB1dCA9IHRoaXMuX2lucHV0LnNsaWNlKG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXRjaGVkICs9IG1hdGNoWzBdO1xuICAgICAgICAgICAgICAgIHRva2VuID0gdGhpcy5wZXJmb3JtQWN0aW9uLmNhbGwodGhpcywgdGhpcy55eSwgdGhpcywgcnVsZXNbaV0sdGhpcy5jb25kaXRpb25TdGFja1t0aGlzLmNvbmRpdGlvblN0YWNrLmxlbmd0aC0xXSk7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuKSByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgICAgZWxzZSByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0ID09PSBcIlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5FT0Y7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhcnNlRXJyb3IoJ0xleGljYWwgZXJyb3Igb24gbGluZSAnKyh0aGlzLnl5bGluZW5vKzEpKycuIFVucmVjb2duaXplZCB0ZXh0LlxcbicrdGhpcy5zaG93UG9zaXRpb24oKSxcbiAgICAgICAgICAgICAgICAgICAge3RleHQ6IFwiXCIsIHRva2VuOiBudWxsLCBsaW5lOiB0aGlzLnl5bGluZW5vfSk7XG4gICAgICAgIH1cbiAgICB9LFxubGV4OmZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHIgPSB0aGlzLm5leHQoKTtcbiAgICAgICAgaWYgKHR5cGVvZiByICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgfVxuICAgIH0sXG5iZWdpbjpmdW5jdGlvbiBiZWdpbihjb25kaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25TdGFjay5wdXNoKGNvbmRpdGlvbik7XG4gICAgfSxcbnBvcFN0YXRlOmZ1bmN0aW9uIHBvcFN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25TdGFjay5wb3AoKTtcbiAgICB9LFxuX2N1cnJlbnRSdWxlczpmdW5jdGlvbiBfY3VycmVudFJ1bGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zW3RoaXMuY29uZGl0aW9uU3RhY2tbdGhpcy5jb25kaXRpb25TdGFjay5sZW5ndGgtMV1dLnJ1bGVzO1xuICAgIH0sXG50b3BTdGF0ZTpmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmRpdGlvblN0YWNrW3RoaXMuY29uZGl0aW9uU3RhY2subGVuZ3RoLTJdO1xuICAgIH0sXG5wdXNoU3RhdGU6ZnVuY3Rpb24gYmVnaW4oY29uZGl0aW9uKSB7XG4gICAgICAgIHRoaXMuYmVnaW4oY29uZGl0aW9uKTtcbiAgICB9fSk7XG5sZXhlci5wZXJmb3JtQWN0aW9uID0gZnVuY3Rpb24gYW5vbnltb3VzKHl5LHl5XywkYXZvaWRpbmdfbmFtZV9jb2xsaXNpb25zLFlZX1NUQVJUKSB7XG5cbnZhciBZWVNUQVRFPVlZX1NUQVJUO1xuc3dpdGNoKCRhdm9pZGluZ19uYW1lX2NvbGxpc2lvbnMpIHtcbmNhc2UgMDovKiBza2lwIHdoaXRlc3BhY2UgKi9cbmJyZWFrO1xuY2FzZSAxOnJldHVybiAyMFxuYnJlYWs7XG5jYXNlIDI6cmV0dXJuIDE5XG5icmVhaztcbmNhc2UgMzpyZXR1cm4gOFxuYnJlYWs7XG5jYXNlIDQ6cmV0dXJuIDlcbmJyZWFrO1xuY2FzZSA1OnJldHVybiA2XG5icmVhaztcbmNhc2UgNjpyZXR1cm4gN1xuYnJlYWs7XG5jYXNlIDc6cmV0dXJuIDExXG5icmVhaztcbmNhc2UgODpyZXR1cm4gMTNcbmJyZWFrO1xuY2FzZSA5OnJldHVybiAxMFxuYnJlYWs7XG5jYXNlIDEwOnJldHVybiAxMlxuYnJlYWs7XG5jYXNlIDExOnJldHVybiAxNFxuYnJlYWs7XG5jYXNlIDEyOnJldHVybiAxNVxuYnJlYWs7XG5jYXNlIDEzOnJldHVybiAxNlxuYnJlYWs7XG5jYXNlIDE0OnJldHVybiAxN1xuYnJlYWs7XG5jYXNlIDE1OnJldHVybiAxOFxuYnJlYWs7XG5jYXNlIDE2OnJldHVybiA1XG5icmVhaztcbmNhc2UgMTc6cmV0dXJuICdJTlZBTElEJ1xuYnJlYWs7XG59XG59O1xubGV4ZXIucnVsZXMgPSBbL15cXHMrLywvXlswLTldKyhcXC5bMC05XSspP1xcYi8sL15uXFxiLywvXlxcfFxcfC8sL14mJi8sL15cXD8vLC9eOi8sL148PS8sL14+PS8sL148LywvXj4vLC9eIT0vLC9ePT0vLC9eJS8sL15cXCgvLC9eXFwpLywvXiQvLC9eLi9dO1xubGV4ZXIuY29uZGl0aW9ucyA9IHtcIklOSVRJQUxcIjp7XCJydWxlc1wiOlswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3XSxcImluY2x1c2l2ZVwiOnRydWV9fTtyZXR1cm4gbGV4ZXI7fSkoKVxucGFyc2VyLmxleGVyID0gbGV4ZXI7XG5yZXR1cm4gcGFyc2VyO1xufSkoKTtcbi8vIEVuZCBwYXJzZXJcblxuICAvLyBIYW5kbGUgbm9kZSwgYW1kLCBhbmQgZ2xvYmFsIHN5c3RlbXNcbiAgaWYgKHR5cGVvZiBleHBvcnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuICAgICAgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gSmVkO1xuICAgIH1cbiAgICBleHBvcnRzLkplZCA9IEplZDtcbiAgfVxuICBlbHNlIHtcbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICBkZWZpbmUoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBKZWQ7XG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gTGVhayBhIGdsb2JhbCByZWdhcmRsZXNzIG9mIG1vZHVsZSBzeXN0ZW1cbiAgICByb290WydKZWQnXSA9IEplZDtcbiAgfVxuXG59KSh0aGlzKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2plZC9qZWQuanNcbi8vIG1vZHVsZSBpZCA9IDE5N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwidmFyIG1hcCA9IHtcblx0XCIuL2NhXCI6IDE5OSxcblx0XCIuL2NzXCI6IDIwMCxcblx0XCIuL2RlXCI6IDIwMSxcblx0XCIuL2VuXCI6IDIwMixcblx0XCIuL2VzXCI6IDIwMyxcblx0XCIuL2ZyXCI6IDIwNCxcblx0XCIuL2dsXCI6IDIwNSxcblx0XCIuL2l0XCI6IDIwNixcblx0XCIuL2phXCI6IDIwNyxcblx0XCIuL2tvXCI6IDIwOCxcblx0XCIuL25sXCI6IDIwOSxcblx0XCIuL3BsXCI6IDIxMCxcblx0XCIuL3B0XCI6IDIxMSxcblx0XCIuL3J1XCI6IDIxMixcblx0XCIuL3N2XCI6IDIxMyxcblx0XCIuL3poXCI6IDIxNFxufTtcbmZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0KHJlcSkge1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyh3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSk7XG59O1xuZnVuY3Rpb24gd2VicGFja0NvbnRleHRSZXNvbHZlKHJlcSkge1xuXHR2YXIgaWQgPSBtYXBbcmVxXTtcblx0aWYoIShpZCArIDEpKSAvLyBjaGVjayBmb3IgbnVtYmVyIG9yIHN0cmluZ1xuXHRcdHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIgKyByZXEgKyBcIicuXCIpO1xuXHRyZXR1cm4gaWQ7XG59O1xud2VicGFja0NvbnRleHQua2V5cyA9IGZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0S2V5cygpIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKG1hcCk7XG59O1xud2VicGFja0NvbnRleHQucmVzb2x2ZSA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZTtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0NvbnRleHQ7XG53ZWJwYWNrQ29udGV4dC5pZCA9IDE5ODtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1pbnRsL2xvY2FsZS1kYXRhIFxcLyhjYXxjc3xkZXxlbnxlc3xmcnxnbHxpdHxqYXxrb3xubHxwbHxwdHxydXxzdnx6aCkkXG4vLyBtb2R1bGUgaWQgPSAxOThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIiFmdW5jdGlvbihhLGUpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWUoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKGUpOihhLlJlYWN0SW50bExvY2FsZURhdGE9YS5SZWFjdEludGxMb2NhbGVEYXRhfHx7fSxhLlJlYWN0SW50bExvY2FsZURhdGEuY2E9ZSgpKX0odGhpcyxmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3JldHVyblt7bG9jYWxlOlwiY2FcIixwbHVyYWxSdWxlRnVuY3Rpb246ZnVuY3Rpb24oYSxlKXt2YXIgdD0hU3RyaW5nKGEpLnNwbGl0KFwiLlwiKVsxXTtyZXR1cm4gZT8xPT1hfHwzPT1hP1wib25lXCI6Mj09YT9cInR3b1wiOjQ9PWE/XCJmZXdcIjpcIm90aGVyXCI6MT09YSYmdD9cIm9uZVwiOlwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcImFueVwiLHJlbGF0aXZlOnswOlwiZW5ndWFueVwiLDE6XCJs4oCZYW55IHF1ZSB2ZVwiLFwiLTFcIjpcImzigJlhbnkgcGFzc2F0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJk4oCZYXF1w60gYSB7MH0gYW55XCIsb3RoZXI6XCJk4oCZYXF1w60gYSB7MH0gYW55c1wifSxwYXN0OntvbmU6XCJmYSB7MH0gYW55XCIsb3RoZXI6XCJmYSB7MH0gYW55c1wifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImFueVwiLHJlbGF0aXZlOnswOlwiZW5ndWFueVwiLDE6XCJs4oCZYW55IHF1ZSB2ZVwiLFwiLTFcIjpcImzigJlhbnkgcGFzc2F0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJk4oCZYXF1w60gYSB7MH0gYW55XCIsb3RoZXI6XCJk4oCZYXF1w60gYSB7MH0gYW55c1wifSxwYXN0OntvbmU6XCJmYSB7MH0gYW55XCIsb3RoZXI6XCJmYSB7MH0gYW55c1wifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm1lc1wiLHJlbGF0aXZlOnswOlwiYXF1ZXN0IG1lc1wiLDE6XCJlbCBtZXMgcXVlIHZlXCIsXCItMVwiOlwiZWwgbWVzIHBhc3NhdFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IG1lc1wiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IG1lc29zXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBtZXNcIixvdGhlcjpcImZhIHswfSBtZXNvc1wifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtZXNcIixyZWxhdGl2ZTp7MDpcImFxdWVzdCBtZXNcIiwxOlwiZWwgbWVzIHF1ZSB2ZVwiLFwiLTFcIjpcImVsIG1lcyBwYXNzYXRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImTigJlhcXXDrSBhIHswfSBtZXNcIixvdGhlcjpcImTigJlhcXXDrSBhIHswfSBtZXNvc1wifSxwYXN0OntvbmU6XCJmYSB7MH0gbWVzXCIsb3RoZXI6XCJmYSB7MH0gbWVzb3NcIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiZGlhXCIscmVsYXRpdmU6ezA6XCJhdnVpXCIsMTpcImRlbcOgXCIsMjpcImRlbcOgIHBhc3NhdFwiLFwiLTJcIjpcImFiYW5zLWTigJlhaGlyXCIsXCItMVwiOlwiYWhpclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IGRpYVwiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IGRpZXNcIn0scGFzdDp7b25lOlwiZmEgezB9IGRpYVwiLG90aGVyOlwiZmEgezB9IGRpZXNcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImRpYVwiLHJlbGF0aXZlOnswOlwiYXZ1aVwiLDE6XCJkZW3DoFwiLDI6XCJkZW3DoCBwYXNzYXRcIixcIi0yXCI6XCJhYmFucy1k4oCZYWhpclwiLFwiLTFcIjpcImFoaXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImTigJlhcXXDrSBhIHswfSBkaWFcIixvdGhlcjpcImTigJlhcXXDrSBhIHswfSBkaWVzXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBkaWFcIixvdGhlcjpcImZhIHswfSBkaWVzXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJob3JhXCIscmVsYXRpdmU6ezA6XCJhcXVlc3RhIGhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImTigJlhcXXDrSBhIHswfSBob3JhXCIsb3RoZXI6XCJk4oCZYXF1w60gYSB7MH0gaG9yZXNcIn0scGFzdDp7b25lOlwiZmEgezB9IGhvcmFcIixvdGhlcjpcImZhIHswfSBob3Jlc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImFxdWVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IGhcIixvdGhlcjpcImTigJlhcXXDrSBhIHswfSBoXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBoXCIsb3RoZXI6XCJmYSB7MH0gaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dFwiLHJlbGF0aXZlOnswOlwiYXF1ZXN0IG1pbnV0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJk4oCZYXF1w60gYSB7MH0gbWludXRcIixvdGhlcjpcImTigJlhcXXDrSBhIHswfSBtaW51dHNcIn0scGFzdDp7b25lOlwiZmEgezB9IG1pbnV0XCIsb3RoZXI6XCJmYSB7MH0gbWludXRzXCJ9fX0sXCJtaW51dGUtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtaW5cIixyZWxhdGl2ZTp7MDpcImFxdWVzdCBtaW51dFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IG1pblwiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IG1pblwifSxwYXN0OntvbmU6XCJmYSB7MH0gbWluXCIsb3RoZXI6XCJmYSB7MH0gbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcInNlZ29uXCIscmVsYXRpdmU6ezA6XCJhcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImTigJlhcXXDrSBhIHswfSBzZWdvblwiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IHNlZ29uc1wifSxwYXN0OntvbmU6XCJmYSB7MH0gc2Vnb25cIixvdGhlcjpcImZhIHswfSBzZWdvbnNcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNcIixyZWxhdGl2ZTp7MDpcImFyYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IHNcIixvdGhlcjpcImTigJlhcXXDrSBhIHswfSBzXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBzXCIsb3RoZXI6XCJmYSB7MH0gc1wifX19fX0se2xvY2FsZTpcImNhLUFEXCIscGFyZW50TG9jYWxlOlwiY2FcIn0se2xvY2FsZTpcImNhLUVTLVZBTEVOQ0lBXCIscGFyZW50TG9jYWxlOlwiY2EtRVNcIixmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwiYW55XCIscmVsYXRpdmU6ezA6XCJlbmd1YW55XCIsMTpcImzigJlhbnkgcXVlIHZlXCIsXCItMVwiOlwibOKAmWFueSBwYXNzYXRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImTigJlhcXXDrSBhIHswfSBhbnlcIixvdGhlcjpcImTigJlhcXXDrSBhIHswfSBhbnlzXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBhbnlcIixvdGhlcjpcImZhIHswfSBhbnlzXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiYW55XCIscmVsYXRpdmU6ezA6XCJlbmd1YW55XCIsMTpcImzigJlhbnkgcXVlIHZlXCIsXCItMVwiOlwibOKAmWFueSBwYXNzYXRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImTigJlhcXXDrSBhIHswfSBhbnlcIixvdGhlcjpcImTigJlhcXXDrSBhIHswfSBhbnlzXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBhbnlcIixvdGhlcjpcImZhIHswfSBhbnlzXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwibWVzXCIscmVsYXRpdmU6ezA6XCJhcXVlc3QgbWVzXCIsMTpcImVsIG1lcyBxdWUgdmVcIixcIi0xXCI6XCJlbCBtZXMgcGFzc2F0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJk4oCZYXF1w60gYSB7MH0gbWVzXCIsb3RoZXI6XCJk4oCZYXF1w60gYSB7MH0gbWVzb3NcIn0scGFzdDp7b25lOlwiZmEgezB9IG1lc1wiLG90aGVyOlwiZmEgezB9IG1lc29zXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1lc1wiLHJlbGF0aXZlOnswOlwiYXF1ZXN0IG1lc1wiLDE6XCJlbCBtZXMgcXVlIHZlXCIsXCItMVwiOlwiZWwgbWVzIHBhc3NhdFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IG1lc1wiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IG1lc29zXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBtZXNcIixvdGhlcjpcImZhIHswfSBtZXNvc1wifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkaWFcIixyZWxhdGl2ZTp7MDpcImF2dWlcIiwxOlwiZGVtw6BcIiwyOlwiZGVtw6AgcGFzc2F0XCIsXCItMlwiOlwiYWJhbnMtZOKAmWFoaXJcIixcIi0xXCI6XCJhaGlyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJk4oCZYXF1w60gYSB7MH0gZGlhXCIsb3RoZXI6XCJk4oCZYXF1w60gYSB7MH0gZGllc1wifSxwYXN0OntvbmU6XCJmYSB7MH0gZGlhXCIsb3RoZXI6XCJmYSB7MH0gZGllc1wifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiZGlhXCIscmVsYXRpdmU6ezA6XCJhdnVpXCIsMTpcImRlbcOgXCIsMjpcImRlbcOgIHBhc3NhdFwiLFwiLTJcIjpcImFiYW5zLWTigJlhaGlyXCIsXCItMVwiOlwiYWhpclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IGRpYVwiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IGRpZXNcIn0scGFzdDp7b25lOlwiZmEgezB9IGRpYVwiLG90aGVyOlwiZmEgezB9IGRpZXNcIn19fSxob3VyOntkaXNwbGF5TmFtZTpcImhvcmFcIixyZWxhdGl2ZTp7MDpcImFxdWVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IGhvcmFcIixvdGhlcjpcImTigJlhcXXDrSBhIHswfSBob3Jlc1wifSxwYXN0OntvbmU6XCJmYSB7MH0gaG9yYVwiLG90aGVyOlwiZmEgezB9IGhvcmVzXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiaFwiLHJlbGF0aXZlOnswOlwiYXF1ZXN0YSBob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJk4oCZYXF1w60gYSB7MH0gaFwiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IGhcIn0scGFzdDp7b25lOlwiZmEgezB9IGhcIixvdGhlcjpcImZhIHswfSBoXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIm1pbnV0XCIscmVsYXRpdmU6ezA6XCJhcXVlc3QgbWludXRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImTigJlhcXXDrSBhIHswfSBtaW51dFwiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IG1pbnV0c1wifSxwYXN0OntvbmU6XCJmYSB7MH0gbWludXRcIixvdGhlcjpcImZhIHswfSBtaW51dHNcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwiYXF1ZXN0IG1pbnV0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJk4oCZYXF1w60gYSB7MH0gbWluXCIsb3RoZXI6XCJk4oCZYXF1w60gYSB7MH0gbWluXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBtaW5cIixvdGhlcjpcImZhIHswfSBtaW5cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2Vnb25cIixyZWxhdGl2ZTp7MDpcImFyYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZOKAmWFxdcOtIGEgezB9IHNlZ29uXCIsb3RoZXI6XCJk4oCZYXF1w60gYSB7MH0gc2Vnb25zXCJ9LHBhc3Q6e29uZTpcImZhIHswfSBzZWdvblwiLG90aGVyOlwiZmEgezB9IHNlZ29uc1wifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic1wiLHJlbGF0aXZlOnswOlwiYXJhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJk4oCZYXF1w60gYSB7MH0gc1wiLG90aGVyOlwiZOKAmWFxdcOtIGEgezB9IHNcIn0scGFzdDp7b25lOlwiZmEgezB9IHNcIixvdGhlcjpcImZhIHswfSBzXCJ9fX19fSx7bG9jYWxlOlwiY2EtRVNcIixwYXJlbnRMb2NhbGU6XCJjYVwifSx7bG9jYWxlOlwiY2EtRlJcIixwYXJlbnRMb2NhbGU6XCJjYVwifSx7bG9jYWxlOlwiY2EtSVRcIixwYXJlbnRMb2NhbGU6XCJjYVwifV19KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWludGwvbG9jYWxlLWRhdGEvY2EuanNcbi8vIG1vZHVsZSBpZCA9IDE5OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiIWZ1bmN0aW9uKGUsYSl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9YSgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoYSk6KGUuUmVhY3RJbnRsTG9jYWxlRGF0YT1lLlJlYWN0SW50bExvY2FsZURhdGF8fHt9LGUuUmVhY3RJbnRsTG9jYWxlRGF0YS5jcz1hKCkpfSh0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7cmV0dXJuW3tsb2NhbGU6XCJjc1wiLHBsdXJhbFJ1bGVGdW5jdGlvbjpmdW5jdGlvbihlLGEpe3ZhciBuPVN0cmluZyhlKS5zcGxpdChcIi5cIiksdD1uWzBdLG09IW5bMV07cmV0dXJuIGE/XCJvdGhlclwiOjE9PWUmJm0/XCJvbmVcIjp0Pj0yJiZ0PD00JiZtP1wiZmV3XCI6bT9cIm90aGVyXCI6XCJtYW55XCJ9LGZpZWxkczp7eWVhcjp7ZGlzcGxheU5hbWU6XCJyb2tcIixyZWxhdGl2ZTp7MDpcInRlbnRvIHJva1wiLDE6XCJwxZnDrcWhdMOtIHJva1wiLFwiLTFcIjpcIm1pbnVsw70gcm9rXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gcm9rXCIsZmV3OlwiemEgezB9IHJva3lcIixtYW55OlwiemEgezB9IHJva3VcIixvdGhlcjpcInphIHswfSBsZXRcIn0scGFzdDp7b25lOlwicMWZZWQgezB9IHJva2VtXCIsZmV3OlwicMWZZWQgezB9IGxldHlcIixtYW55OlwicMWZZWQgezB9IHJva3VcIixvdGhlcjpcInDFmWVkIHswfSBsZXR5XCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwici5cIixyZWxhdGl2ZTp7MDpcInRlbnRvIHJva1wiLDE6XCJwxZnDrcWhdMOtIHJva1wiLFwiLTFcIjpcIm1pbnVsw70gcm9rXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gci5cIixmZXc6XCJ6YSB7MH0gci5cIixtYW55OlwiemEgezB9IHIuXCIsb3RoZXI6XCJ6YSB7MH0gbC5cIn0scGFzdDp7b25lOlwicMWZZWQgezB9IHIuXCIsZmV3OlwicMWZZWQgezB9IHIuXCIsbWFueTpcInDFmWVkIHswfSByLlwiLG90aGVyOlwicMWZZWQgezB9IGwuXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwibcSbc8OtY1wiLHJlbGF0aXZlOnswOlwidGVudG8gbcSbc8OtY1wiLDE6XCJwxZnDrcWhdMOtIG3Em3PDrWNcIixcIi0xXCI6XCJtaW51bMO9IG3Em3PDrWNcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInphIHswfSBtxJtzw61jXCIsZmV3OlwiemEgezB9IG3Em3PDrWNlXCIsbWFueTpcInphIHswfSBtxJtzw61jZVwiLG90aGVyOlwiemEgezB9IG3Em3PDrWPFr1wifSxwYXN0OntvbmU6XCJwxZllZCB7MH0gbcSbc8OtY2VtXCIsZmV3OlwicMWZZWQgezB9IG3Em3PDrWNpXCIsbWFueTpcInDFmWVkIHswfSBtxJtzw61jZVwiLG90aGVyOlwicMWZZWQgezB9IG3Em3PDrWNpXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm3Em3MuXCIscmVsYXRpdmU6ezA6XCJ0ZW50byBtxJtzLlwiLDE6XCJwxZnDrcWhdMOtIG3Em3MuXCIsXCItMVwiOlwibWludWzDvSBtxJtzLlwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiemEgezB9IG3Em3MuXCIsZmV3OlwiemEgezB9IG3Em3MuXCIsbWFueTpcInphIHswfSBtxJtzLlwiLG90aGVyOlwiemEgezB9IG3Em3MuXCJ9LHBhc3Q6e29uZTpcInDFmWVkIHswfSBtxJtzLlwiLGZldzpcInDFmWVkIHswfSBtxJtzLlwiLG1hbnk6XCJwxZllZCB7MH0gbcSbcy5cIixvdGhlcjpcInDFmWVkIHswfSBtxJtzLlwifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkZW5cIixyZWxhdGl2ZTp7MDpcImRuZXNcIiwxOlwiesOtdHJhXCIsMjpcInBvesOtdMWZw61cIixcIi0yXCI6XCJwxZllZGV2xI3DrXJlbVwiLFwiLTFcIjpcInbEjWVyYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiemEgezB9IGRlblwiLGZldzpcInphIHswfSBkbnlcIixtYW55OlwiemEgezB9IGRuZVwiLG90aGVyOlwiemEgezB9IGRuw61cIn0scGFzdDp7b25lOlwicMWZZWQgezB9IGRuZW1cIixmZXc6XCJwxZllZCB7MH0gZG55XCIsbWFueTpcInDFmWVkIHswfSBkbmVcIixvdGhlcjpcInDFmWVkIHswfSBkbnlcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImRlblwiLHJlbGF0aXZlOnswOlwiZG5lc1wiLDE6XCJ6w610cmFcIiwyOlwicG96w610xZnDrVwiLFwiLTJcIjpcInDFmWVkZXbEjcOtcmVtXCIsXCItMVwiOlwidsSNZXJhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gZGVuXCIsZmV3OlwiemEgezB9IGRueVwiLG1hbnk6XCJ6YSB7MH0gZG5lXCIsb3RoZXI6XCJ6YSB7MH0gZG7DrVwifSxwYXN0OntvbmU6XCJwxZllZCB7MH0gZG5lbVwiLGZldzpcInDFmWVkIHswfSBkbnlcIixtYW55OlwicMWZZWQgezB9IGRuZVwiLG90aGVyOlwicMWZZWQgezB9IGRueVwifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwiaG9kaW5hXCIscmVsYXRpdmU6ezA6XCJ0dXRvIGhvZGludVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiemEgezB9IGhvZGludVwiLGZldzpcInphIHswfSBob2RpbnlcIixtYW55OlwiemEgezB9IGhvZGlueVwiLG90aGVyOlwiemEgezB9IGhvZGluXCJ9LHBhc3Q6e29uZTpcInDFmWVkIHswfSBob2Rpbm91XCIsZmV3OlwicMWZZWQgezB9IGhvZGluYW1pXCIsbWFueTpcInDFmWVkIHswfSBob2RpbnlcIixvdGhlcjpcInDFmWVkIHswfSBob2RpbmFtaVwifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcInR1dG8gaG9kaW51XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gaFwiLGZldzpcInphIHswfSBoXCIsbWFueTpcInphIHswfSBoXCIsb3RoZXI6XCJ6YSB7MH0gaFwifSxwYXN0OntvbmU6XCJwxZllZCB7MH0gaFwiLGZldzpcInDFmWVkIHswfSBoXCIsbWFueTpcInDFmWVkIHswfSBoXCIsb3RoZXI6XCJwxZllZCB7MH0gaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dGFcIixyZWxhdGl2ZTp7MDpcInR1dG8gbWludXR1XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gbWludXR1XCIsZmV3OlwiemEgezB9IG1pbnV0eVwiLG1hbnk6XCJ6YSB7MH0gbWludXR5XCIsb3RoZXI6XCJ6YSB7MH0gbWludXRcIn0scGFzdDp7b25lOlwicMWZZWQgezB9IG1pbnV0b3VcIixmZXc6XCJwxZllZCB7MH0gbWludXRhbWlcIixtYW55OlwicMWZZWQgezB9IG1pbnV0eVwiLG90aGVyOlwicMWZZWQgezB9IG1pbnV0YW1pXCJ9fX0sXCJtaW51dGUtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtaW5cIixyZWxhdGl2ZTp7MDpcInR1dG8gbWludXR1XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gbWluXCIsZmV3OlwiemEgezB9IG1pblwiLG1hbnk6XCJ6YSB7MH0gbWluXCIsb3RoZXI6XCJ6YSB7MH0gbWluXCJ9LHBhc3Q6e29uZTpcInDFmWVkIHswfSBtaW5cIixmZXc6XCJwxZllZCB7MH0gbWluXCIsbWFueTpcInDFmWVkIHswfSBtaW5cIixvdGhlcjpcInDFmWVkIHswfSBtaW5cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2VrdW5kYVwiLHJlbGF0aXZlOnswOlwibnluw61cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInphIHswfSBzZWt1bmR1XCIsZmV3OlwiemEgezB9IHNla3VuZHlcIixtYW55OlwiemEgezB9IHNla3VuZHlcIixvdGhlcjpcInphIHswfSBzZWt1bmRcIn0scGFzdDp7b25lOlwicMWZZWQgezB9IHNla3VuZG91XCIsZmV3OlwicMWZZWQgezB9IHNla3VuZGFtaVwiLG1hbnk6XCJwxZllZCB7MH0gc2VrdW5keVwiLG90aGVyOlwicMWZZWQgezB9IHNla3VuZGFtaVwifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic1wiLHJlbGF0aXZlOnswOlwibnluw61cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInphIHswfSBzXCIsZmV3OlwiemEgezB9IHNcIixtYW55OlwiemEgezB9IHNcIixvdGhlcjpcInphIHswfSBzXCJ9LHBhc3Q6e29uZTpcInDFmWVkIHswfSBzXCIsZmV3OlwicMWZZWQgezB9IHNcIixtYW55OlwicMWZZWQgezB9IHNcIixvdGhlcjpcInDFmWVkIHswfSBzXCJ9fX19fV19KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWludGwvbG9jYWxlLWRhdGEvY3MuanNcbi8vIG1vZHVsZSBpZCA9IDIwMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiIWZ1bmN0aW9uKGUsdCl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGUuUmVhY3RJbnRsTG9jYWxlRGF0YT1lLlJlYWN0SW50bExvY2FsZURhdGF8fHt9LGUuUmVhY3RJbnRsTG9jYWxlRGF0YS5kZT10KCkpfSh0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7cmV0dXJuW3tsb2NhbGU6XCJkZVwiLHBsdXJhbFJ1bGVGdW5jdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBuPSFTdHJpbmcoZSkuc3BsaXQoXCIuXCIpWzFdO3JldHVybiB0P1wib3RoZXJcIjoxPT1lJiZuP1wib25lXCI6XCJvdGhlclwifSxmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwiSmFoclwiLHJlbGF0aXZlOnswOlwiZGllc2VzIEphaHJcIiwxOlwibsOkY2hzdGVzIEphaHJcIixcIi0xXCI6XCJsZXR6dGVzIEphaHJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBKYWhyXCIsb3RoZXI6XCJpbiB7MH0gSmFocmVuXCJ9LHBhc3Q6e29uZTpcInZvciB7MH0gSmFoclwiLG90aGVyOlwidm9yIHswfSBKYWhyZW5cIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJKYWhyXCIscmVsYXRpdmU6ezA6XCJkaWVzZXMgSmFoclwiLDE6XCJuw6RjaHN0ZXMgSmFoclwiLFwiLTFcIjpcImxldHp0ZXMgSmFoclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IEphaHJcIixvdGhlcjpcImluIHswfSBKYWhyZW5cIn0scGFzdDp7b25lOlwidm9yIHswfSBKYWhyXCIsb3RoZXI6XCJ2b3IgezB9IEphaHJlblwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIk1vbmF0XCIscmVsYXRpdmU6ezA6XCJkaWVzZW4gTW9uYXRcIiwxOlwibsOkY2hzdGVuIE1vbmF0XCIsXCItMVwiOlwibGV0enRlbiBNb25hdFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IE1vbmF0XCIsb3RoZXI6XCJpbiB7MH0gTW9uYXRlblwifSxwYXN0OntvbmU6XCJ2b3IgezB9IE1vbmF0XCIsb3RoZXI6XCJ2b3IgezB9IE1vbmF0ZW5cIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiTW9uYXRcIixyZWxhdGl2ZTp7MDpcImRpZXNlbiBNb25hdFwiLDE6XCJuw6RjaHN0ZW4gTW9uYXRcIixcIi0xXCI6XCJsZXR6dGVuIE1vbmF0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gTW9uYXRcIixvdGhlcjpcImluIHswfSBNb25hdGVuXCJ9LHBhc3Q6e29uZTpcInZvciB7MH0gTW9uYXRcIixvdGhlcjpcInZvciB7MH3CoE1vbmF0ZW5cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiVGFnXCIscmVsYXRpdmU6ezA6XCJoZXV0ZVwiLDE6XCJtb3JnZW5cIiwyOlwiw7xiZXJtb3JnZW5cIixcIi0yXCI6XCJ2b3JnZXN0ZXJuXCIsXCItMVwiOlwiZ2VzdGVyblwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IFRhZ1wiLG90aGVyOlwiaW4gezB9IFRhZ2VuXCJ9LHBhc3Q6e29uZTpcInZvciB7MH0gVGFnXCIsb3RoZXI6XCJ2b3IgezB9IFRhZ2VuXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJUYWdcIixyZWxhdGl2ZTp7MDpcImhldXRlXCIsMTpcIm1vcmdlblwiLDI6XCLDvGJlcm1vcmdlblwiLFwiLTJcIjpcInZvcmdlc3Rlcm5cIixcIi0xXCI6XCJnZXN0ZXJuXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gVGFnXCIsb3RoZXI6XCJpbiB7MH0gVGFnZW5cIn0scGFzdDp7b25lOlwidm9yIHswfSBUYWdcIixvdGhlcjpcInZvciB7MH0gVGFnZW5cIn19fSxob3VyOntkaXNwbGF5TmFtZTpcIlN0dW5kZVwiLHJlbGF0aXZlOnswOlwiaW4gZGllc2VyIFN0dW5kZVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IFN0dW5kZVwiLG90aGVyOlwiaW4gezB9IFN0dW5kZW5cIn0scGFzdDp7b25lOlwidm9yIHswfSBTdHVuZGVcIixvdGhlcjpcInZvciB7MH0gU3R1bmRlblwifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIlN0ZC5cIixyZWxhdGl2ZTp7MDpcImluIGRpZXNlciBTdHVuZGVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBTdGQuXCIsb3RoZXI6XCJpbiB7MH0gU3RkLlwifSxwYXN0OntvbmU6XCJ2b3IgezB9IFN0ZC5cIixvdGhlcjpcInZvciB7MH0gU3RkLlwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJNaW51dGVcIixyZWxhdGl2ZTp7MDpcImluIGRpZXNlciBNaW51dGVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBNaW51dGVcIixvdGhlcjpcImluIHswfSBNaW51dGVuXCJ9LHBhc3Q6e29uZTpcInZvciB7MH0gTWludXRlXCIsb3RoZXI6XCJ2b3IgezB9IE1pbnV0ZW5cIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIk1pbi5cIixyZWxhdGl2ZTp7MDpcImluIGRpZXNlciBNaW51dGVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBNaW4uXCIsb3RoZXI6XCJpbiB7MH0gTWluLlwifSxwYXN0OntvbmU6XCJ2b3IgezB9IE1pbi5cIixvdGhlcjpcInZvciB7MH0gTWluLlwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJTZWt1bmRlXCIscmVsYXRpdmU6ezA6XCJqZXR6dFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IFNla3VuZGVcIixvdGhlcjpcImluIHswfSBTZWt1bmRlblwifSxwYXN0OntvbmU6XCJ2b3IgezB9IFNla3VuZGVcIixvdGhlcjpcInZvciB7MH0gU2VrdW5kZW5cIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIlNlay5cIixyZWxhdGl2ZTp7MDpcImpldHp0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gU2VrLlwiLG90aGVyOlwiaW4gezB9IFNlay5cIn0scGFzdDp7b25lOlwidm9yIHswfSBTZWsuXCIsb3RoZXI6XCJ2b3IgezB9IFNlay5cIn19fX19LHtsb2NhbGU6XCJkZS1BVFwiLHBhcmVudExvY2FsZTpcImRlXCJ9LHtsb2NhbGU6XCJkZS1CRVwiLHBhcmVudExvY2FsZTpcImRlXCJ9LHtsb2NhbGU6XCJkZS1DSFwiLHBhcmVudExvY2FsZTpcImRlXCJ9LHtsb2NhbGU6XCJkZS1JVFwiLHBhcmVudExvY2FsZTpcImRlXCJ9LHtsb2NhbGU6XCJkZS1MSVwiLHBhcmVudExvY2FsZTpcImRlXCJ9LHtsb2NhbGU6XCJkZS1MVVwiLHBhcmVudExvY2FsZTpcImRlXCJ9XX0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9kZS5qc1xuLy8gbW9kdWxlIGlkID0gMjAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCIhZnVuY3Rpb24oZSxhKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1hKCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShhKTooZS5SZWFjdEludGxMb2NhbGVEYXRhPWUuUmVhY3RJbnRsTG9jYWxlRGF0YXx8e30sZS5SZWFjdEludGxMb2NhbGVEYXRhLmVuPWEoKSl9KHRoaXMsZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtyZXR1cm5be2xvY2FsZTpcImVuXCIscGx1cmFsUnVsZUZ1bmN0aW9uOmZ1bmN0aW9uKGUsYSl7dmFyIHQ9U3RyaW5nKGUpLnNwbGl0KFwiLlwiKSxvPSF0WzFdLG49TnVtYmVyKHRbMF0pPT1lLHI9biYmdFswXS5zbGljZSgtMSksaT1uJiZ0WzBdLnNsaWNlKC0yKTtyZXR1cm4gYT8xPT1yJiYxMSE9aT9cIm9uZVwiOjI9PXImJjEyIT1pP1widHdvXCI6Mz09ciYmMTMhPWk/XCJmZXdcIjpcIm90aGVyXCI6MT09ZSYmbz9cIm9uZVwiOlwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcInllYXJcIixyZWxhdGl2ZTp7MDpcInRoaXMgeWVhclwiLDE6XCJuZXh0IHllYXJcIixcIi0xXCI6XCJsYXN0IHllYXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSB5ZWFyXCIsb3RoZXI6XCJpbiB7MH0geWVhcnNcIn0scGFzdDp7b25lOlwiezB9IHllYXIgYWdvXCIsb3RoZXI6XCJ7MH0geWVhcnMgYWdvXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwieXIuXCIscmVsYXRpdmU6ezA6XCJ0aGlzIHlyLlwiLDE6XCJuZXh0IHlyLlwiLFwiLTFcIjpcImxhc3QgeXIuXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0geXIuXCIsb3RoZXI6XCJpbiB7MH0geXIuXCJ9LHBhc3Q6e29uZTpcInswfSB5ci4gYWdvXCIsb3RoZXI6XCJ7MH0geXIuIGFnb1wifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm1vbnRoXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1vbnRoXCIsMTpcIm5leHQgbW9udGhcIixcIi0xXCI6XCJsYXN0IG1vbnRoXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gbW9udGhcIixvdGhlcjpcImluIHswfSBtb250aHNcIn0scGFzdDp7b25lOlwiezB9IG1vbnRoIGFnb1wiLG90aGVyOlwiezB9IG1vbnRocyBhZ29cIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibW8uXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1vLlwiLDE6XCJuZXh0IG1vLlwiLFwiLTFcIjpcImxhc3QgbW8uXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gbW8uXCIsb3RoZXI6XCJpbiB7MH0gbW8uXCJ9LHBhc3Q6e29uZTpcInswfSBtby4gYWdvXCIsb3RoZXI6XCJ7MH0gbW8uIGFnb1wifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkYXlcIixyZWxhdGl2ZTp7MDpcInRvZGF5XCIsMTpcInRvbW9ycm93XCIsXCItMVwiOlwieWVzdGVyZGF5XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gZGF5XCIsb3RoZXI6XCJpbiB7MH0gZGF5c1wifSxwYXN0OntvbmU6XCJ7MH0gZGF5IGFnb1wiLG90aGVyOlwiezB9IGRheXMgYWdvXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJkYXlcIixyZWxhdGl2ZTp7MDpcInRvZGF5XCIsMTpcInRvbW9ycm93XCIsXCItMVwiOlwieWVzdGVyZGF5XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gZGF5XCIsb3RoZXI6XCJpbiB7MH0gZGF5c1wifSxwYXN0OntvbmU6XCJ7MH0gZGF5IGFnb1wiLG90aGVyOlwiezB9IGRheXMgYWdvXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJob3VyXCIscmVsYXRpdmU6ezA6XCJ0aGlzIGhvdXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBob3VyXCIsb3RoZXI6XCJpbiB7MH0gaG91cnNcIn0scGFzdDp7b25lOlwiezB9IGhvdXIgYWdvXCIsb3RoZXI6XCJ7MH0gaG91cnMgYWdvXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiaHIuXCIscmVsYXRpdmU6ezA6XCJ0aGlzIGhvdXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBoci5cIixvdGhlcjpcImluIHswfSBoci5cIn0scGFzdDp7b25lOlwiezB9IGhyLiBhZ29cIixvdGhlcjpcInswfSBoci4gYWdvXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIm1pbnV0ZVwiLHJlbGF0aXZlOnswOlwidGhpcyBtaW51dGVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBtaW51dGVcIixvdGhlcjpcImluIHswfSBtaW51dGVzXCJ9LHBhc3Q6e29uZTpcInswfSBtaW51dGUgYWdvXCIsb3RoZXI6XCJ7MH0gbWludXRlcyBhZ29cIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pbi5cIixyZWxhdGl2ZTp7MDpcInRoaXMgbWludXRlXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gbWluLlwiLG90aGVyOlwiaW4gezB9IG1pbi5cIn0scGFzdDp7b25lOlwiezB9IG1pbi4gYWdvXCIsb3RoZXI6XCJ7MH0gbWluLiBhZ29cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2Vjb25kXCIscmVsYXRpdmU6ezA6XCJub3dcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBzZWNvbmRcIixvdGhlcjpcImluIHswfSBzZWNvbmRzXCJ9LHBhc3Q6e29uZTpcInswfSBzZWNvbmQgYWdvXCIsb3RoZXI6XCJ7MH0gc2Vjb25kcyBhZ29cIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNlYy5cIixyZWxhdGl2ZTp7MDpcIm5vd1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IHNlYy5cIixvdGhlcjpcImluIHswfSBzZWMuXCJ9LHBhc3Q6e29uZTpcInswfSBzZWMuIGFnb1wiLG90aGVyOlwiezB9IHNlYy4gYWdvXCJ9fX19fSx7bG9jYWxlOlwiZW4tMDAxXCIscGFyZW50TG9jYWxlOlwiZW5cIixmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwieWVhclwiLHJlbGF0aXZlOnswOlwidGhpcyB5ZWFyXCIsMTpcIm5leHQgeWVhclwiLFwiLTFcIjpcImxhc3QgeWVhclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IHllYXJcIixvdGhlcjpcImluIHswfSB5ZWFyc1wifSxwYXN0OntvbmU6XCJ7MH0geWVhciBhZ29cIixvdGhlcjpcInswfSB5ZWFycyBhZ29cIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJ5clwiLHJlbGF0aXZlOnswOlwidGhpcyB5ci5cIiwxOlwibmV4dCB5ci5cIixcIi0xXCI6XCJsYXN0IHlyLlwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IHlyXCIsb3RoZXI6XCJpbiB7MH0geXJcIn0scGFzdDp7b25lOlwiezB9IHlyIGFnb1wiLG90aGVyOlwiezB9IHlyIGFnb1wifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm1vbnRoXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1vbnRoXCIsMTpcIm5leHQgbW9udGhcIixcIi0xXCI6XCJsYXN0IG1vbnRoXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gbW9udGhcIixvdGhlcjpcImluIHswfSBtb250aHNcIn0scGFzdDp7b25lOlwiezB9IG1vbnRoIGFnb1wiLG90aGVyOlwiezB9IG1vbnRocyBhZ29cIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibW9cIixyZWxhdGl2ZTp7MDpcInRoaXMgbW8uXCIsMTpcIm5leHQgbW8uXCIsXCItMVwiOlwibGFzdCBtby5cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBtb1wiLG90aGVyOlwiaW4gezB9IG1vXCJ9LHBhc3Q6e29uZTpcInswfSBtbyBhZ29cIixvdGhlcjpcInswfSBtbyBhZ29cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiZGF5XCIscmVsYXRpdmU6ezA6XCJ0b2RheVwiLDE6XCJ0b21vcnJvd1wiLFwiLTFcIjpcInllc3RlcmRheVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IGRheVwiLG90aGVyOlwiaW4gezB9IGRheXNcIn0scGFzdDp7b25lOlwiezB9IGRheSBhZ29cIixvdGhlcjpcInswfSBkYXlzIGFnb1wifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiZGF5XCIscmVsYXRpdmU6ezA6XCJ0b2RheVwiLDE6XCJ0b21vcnJvd1wiLFwiLTFcIjpcInllc3RlcmRheVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IGRheVwiLG90aGVyOlwiaW4gezB9IGRheXNcIn0scGFzdDp7b25lOlwiezB9IGRheSBhZ29cIixvdGhlcjpcInswfSBkYXlzIGFnb1wifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwiaG91clwiLHJlbGF0aXZlOnswOlwidGhpcyBob3VyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gaG91clwiLG90aGVyOlwiaW4gezB9IGhvdXJzXCJ9LHBhc3Q6e29uZTpcInswfSBob3VyIGFnb1wiLG90aGVyOlwiezB9IGhvdXJzIGFnb1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhyXCIscmVsYXRpdmU6ezA6XCJ0aGlzIGhvdXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBoclwiLG90aGVyOlwiaW4gezB9IGhyXCJ9LHBhc3Q6e29uZTpcInswfSBociBhZ29cIixvdGhlcjpcInswfSBociBhZ29cIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwibWludXRlXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1pbnV0ZVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IG1pbnV0ZVwiLG90aGVyOlwiaW4gezB9IG1pbnV0ZXNcIn0scGFzdDp7b25lOlwiezB9IG1pbnV0ZSBhZ29cIixvdGhlcjpcInswfSBtaW51dGVzIGFnb1wifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibWluXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1pbnV0ZVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IG1pblwiLG90aGVyOlwiaW4gezB9IG1pblwifSxwYXN0OntvbmU6XCJ7MH0gbWluIGFnb1wiLG90aGVyOlwiezB9IG1pbiBhZ29cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2Vjb25kXCIscmVsYXRpdmU6ezA6XCJub3dcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBzZWNvbmRcIixvdGhlcjpcImluIHswfSBzZWNvbmRzXCJ9LHBhc3Q6e29uZTpcInswfSBzZWNvbmQgYWdvXCIsb3RoZXI6XCJ7MH0gc2Vjb25kcyBhZ29cIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNlY1wiLHJlbGF0aXZlOnswOlwibm93XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gc2VjXCIsb3RoZXI6XCJpbiB7MH0gc2VjXCJ9LHBhc3Q6e29uZTpcInswfSBzZWMgYWdvXCIsb3RoZXI6XCJ7MH0gc2VjIGFnb1wifX19fX0se2xvY2FsZTpcImVuLTE1MFwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tQUdcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUFJXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1BU1wiLHBhcmVudExvY2FsZTpcImVuXCJ9LHtsb2NhbGU6XCJlbi1BVFwiLHBhcmVudExvY2FsZTpcImVuLTE1MFwifSx7bG9jYWxlOlwiZW4tQVVcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIixmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwieWVhclwiLHJlbGF0aXZlOnswOlwidGhpcyB5ZWFyXCIsMTpcIm5leHQgeWVhclwiLFwiLTFcIjpcImxhc3QgeWVhclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IHllYXJcIixvdGhlcjpcImluIHswfSB5ZWFyc1wifSxwYXN0OntvbmU6XCJ7MH0geWVhciBhZ29cIixvdGhlcjpcInswfSB5ZWFycyBhZ29cIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJ5clwiLHJlbGF0aXZlOnswOlwidGhpcyB5ci5cIiwxOlwibmV4dCB5ci5cIixcIi0xXCI6XCJsYXN0IHlyLlwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IHlyXCIsb3RoZXI6XCJpbiB7MH0geXJzXCJ9LHBhc3Q6e29uZTpcInswfSB5ciBhZ29cIixvdGhlcjpcInswfSB5cnMgYWdvXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwibW9udGhcIixyZWxhdGl2ZTp7MDpcInRoaXMgbW9udGhcIiwxOlwibmV4dCBtb250aFwiLFwiLTFcIjpcImxhc3QgbW9udGhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBtb250aFwiLG90aGVyOlwiaW4gezB9IG1vbnRoc1wifSxwYXN0OntvbmU6XCJ7MH0gbW9udGggYWdvXCIsb3RoZXI6XCJ7MH0gbW9udGhzIGFnb1wifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtby5cIixyZWxhdGl2ZTp7MDpcInRoaXMgbW8uXCIsMTpcIm5leHQgbW8uXCIsXCItMVwiOlwibGFzdCBtby5cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBtby5cIixvdGhlcjpcImluIHswfSBtby5cIn0scGFzdDp7b25lOlwiezB9IG1vLiBhZ29cIixvdGhlcjpcInswfSBtby4gYWdvXCJ9fX0sZGF5OntkaXNwbGF5TmFtZTpcImRheVwiLHJlbGF0aXZlOnswOlwidG9kYXlcIiwxOlwidG9tb3Jyb3dcIixcIi0xXCI6XCJ5ZXN0ZXJkYXlcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBkYXlcIixvdGhlcjpcImluIHswfSBkYXlzXCJ9LHBhc3Q6e29uZTpcInswfSBkYXkgYWdvXCIsb3RoZXI6XCJ7MH0gZGF5cyBhZ29cIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImRheVwiLHJlbGF0aXZlOnswOlwidG9kYXlcIiwxOlwidG9tb3Jyb3dcIixcIi0xXCI6XCJ5ZXN0ZXJkYXlcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBkYXlcIixvdGhlcjpcImluIHswfSBkYXlzXCJ9LHBhc3Q6e29uZTpcInswfSBkYXkgYWdvXCIsb3RoZXI6XCJ7MH0gZGF5cyBhZ29cIn19fSxob3VyOntkaXNwbGF5TmFtZTpcImhvdXJcIixyZWxhdGl2ZTp7MDpcInRoaXMgaG91clwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IGhvdXJcIixvdGhlcjpcImluIHswfSBob3Vyc1wifSxwYXN0OntvbmU6XCJ7MH0gaG91ciBhZ29cIixvdGhlcjpcInswfSBob3VycyBhZ29cIn19fSxcImhvdXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJoXCIscmVsYXRpdmU6ezA6XCJ0aGlzIGhvdXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBoclwiLG90aGVyOlwiaW4gezB9IGhyc1wifSxwYXN0OntvbmU6XCJ7MH0gaHIgYWdvXCIsb3RoZXI6XCJ7MH0gaHJzIGFnb1wifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dGVcIixyZWxhdGl2ZTp7MDpcInRoaXMgbWludXRlXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gbWludXRlXCIsb3RoZXI6XCJpbiB7MH0gbWludXRlc1wifSxwYXN0OntvbmU6XCJ7MH0gbWludXRlIGFnb1wiLG90aGVyOlwiezB9IG1pbnV0ZXMgYWdvXCJ9fX0sXCJtaW51dGUtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtaW4uXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1pbnV0ZVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IG1pbi5cIixvdGhlcjpcImluIHswfSBtaW5zXCJ9LHBhc3Q6e29uZTpcInswfSBtaW4uIGFnb1wiLG90aGVyOlwiezB9IG1pbnMgYWdvXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcInNlY29uZFwiLHJlbGF0aXZlOnswOlwibm93XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gc2Vjb25kXCIsb3RoZXI6XCJpbiB7MH0gc2Vjb25kc1wifSxwYXN0OntvbmU6XCJ7MH0gc2Vjb25kIGFnb1wiLG90aGVyOlwiezB9IHNlY29uZHMgYWdvXCJ9fX0sXCJzZWNvbmQtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJzZWMuXCIscmVsYXRpdmU6ezA6XCJub3dcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBzZWMuXCIsb3RoZXI6XCJpbiB7MH0gc2Vjc1wifSxwYXN0OntvbmU6XCJ7MH0gc2VjLiBhZ29cIixvdGhlcjpcInswfSBzZWNzIGFnb1wifX19fX0se2xvY2FsZTpcImVuLUJCXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1CRVwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tQklcIixwYXJlbnRMb2NhbGU6XCJlblwifSx7bG9jYWxlOlwiZW4tQk1cIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUJTXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1CV1wiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tQlpcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUNBXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCIsZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcInllYXJcIixyZWxhdGl2ZTp7MDpcInRoaXMgeWVhclwiLDE6XCJuZXh0IHllYXJcIixcIi0xXCI6XCJsYXN0IHllYXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSB5ZWFyXCIsb3RoZXI6XCJpbiB7MH0geWVhcnNcIn0scGFzdDp7b25lOlwiezB9IHllYXIgYWdvXCIsb3RoZXI6XCJ7MH0geWVhcnMgYWdvXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwieXIuXCIscmVsYXRpdmU6ezA6XCJ0aGlzIHlyLlwiLDE6XCJuZXh0IHlyLlwiLFwiLTFcIjpcImxhc3QgeXIuXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0geXIuXCIsb3RoZXI6XCJpbiB7MH0geXJzLlwifSxwYXN0OntvbmU6XCJ7MH0geXIuIGFnb1wiLG90aGVyOlwiezB9IHlycy4gYWdvXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwibW9udGhcIixyZWxhdGl2ZTp7MDpcInRoaXMgbW9udGhcIiwxOlwibmV4dCBtb250aFwiLFwiLTFcIjpcImxhc3QgbW9udGhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBtb250aFwiLG90aGVyOlwiaW4gezB9IG1vbnRoc1wifSxwYXN0OntvbmU6XCJ7MH0gbW9udGggYWdvXCIsb3RoZXI6XCJ7MH0gbW9udGhzIGFnb1wifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtby5cIixyZWxhdGl2ZTp7MDpcInRoaXMgbW8uXCIsMTpcIm5leHQgbW8uXCIsXCItMVwiOlwibGFzdCBtby5cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBtby5cIixvdGhlcjpcImluIHswfSBtb3MuXCJ9LHBhc3Q6e29uZTpcInswfSBtby4gYWdvXCIsb3RoZXI6XCJ7MH0gbW9zLiBhZ29cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiZGF5XCIscmVsYXRpdmU6ezA6XCJ0b2RheVwiLDE6XCJ0b21vcnJvd1wiLFwiLTFcIjpcInllc3RlcmRheVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IGRheVwiLG90aGVyOlwiaW4gezB9IGRheXNcIn0scGFzdDp7b25lOlwiezB9IGRheSBhZ29cIixvdGhlcjpcInswfSBkYXlzIGFnb1wifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiZGF5XCIscmVsYXRpdmU6ezA6XCJ0b2RheVwiLDE6XCJ0b21vcnJvd1wiLFwiLTFcIjpcInllc3RlcmRheVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IGRheVwiLG90aGVyOlwiaW4gezB9IGRheXNcIn0scGFzdDp7b25lOlwiezB9IGRheSBhZ29cIixvdGhlcjpcInswfSBkYXlzIGFnb1wifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwiaG91clwiLHJlbGF0aXZlOnswOlwidGhpcyBob3VyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gaG91clwiLG90aGVyOlwiaW4gezB9IGhvdXJzXCJ9LHBhc3Q6e29uZTpcInswfSBob3VyIGFnb1wiLG90aGVyOlwiezB9IGhvdXJzIGFnb1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhyLlwiLHJlbGF0aXZlOnswOlwidGhpcyBob3VyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gaHIuXCIsb3RoZXI6XCJpbiB7MH0gaHJzLlwifSxwYXN0OntvbmU6XCJ7MH0gaHIuIGFnb1wiLG90aGVyOlwiezB9IGhycy4gYWdvXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIm1pbnV0ZVwiLHJlbGF0aXZlOnswOlwidGhpcyBtaW51dGVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBtaW51dGVcIixvdGhlcjpcImluIHswfSBtaW51dGVzXCJ9LHBhc3Q6e29uZTpcInswfSBtaW51dGUgYWdvXCIsb3RoZXI6XCJ7MH0gbWludXRlcyBhZ29cIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pbi5cIixyZWxhdGl2ZTp7MDpcInRoaXMgbWludXRlXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gbWluLlwiLG90aGVyOlwiaW4gezB9IG1pbnMuXCJ9LHBhc3Q6e29uZTpcInswfSBtaW4uIGFnb1wiLG90aGVyOlwiezB9IG1pbnMuIGFnb1wifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJzZWNvbmRcIixyZWxhdGl2ZTp7MDpcIm5vd1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IHNlY29uZFwiLG90aGVyOlwiaW4gezB9IHNlY29uZHNcIn0scGFzdDp7b25lOlwiezB9IHNlY29uZCBhZ29cIixvdGhlcjpcInswfSBzZWNvbmRzIGFnb1wifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic2VjLlwiLHJlbGF0aXZlOnswOlwibm93XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gc2VjLlwiLG90aGVyOlwiaW4gezB9IHNlY3MuXCJ9LHBhc3Q6e29uZTpcInswfSBzZWMuIGFnb1wiLG90aGVyOlwiezB9IHNlY3MuIGFnb1wifX19fX0se2xvY2FsZTpcImVuLUNDXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1DSFwiLHBhcmVudExvY2FsZTpcImVuLTE1MFwifSx7bG9jYWxlOlwiZW4tQ0tcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUNNXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1DWFwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tQ1lcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLURFXCIscGFyZW50TG9jYWxlOlwiZW4tMTUwXCJ9LHtsb2NhbGU6XCJlbi1ER1wiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tREtcIixwYXJlbnRMb2NhbGU6XCJlbi0xNTBcIn0se2xvY2FsZTpcImVuLURNXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1Ec3J0XCIscGx1cmFsUnVsZUZ1bmN0aW9uOmZ1bmN0aW9uKGUsYSl7cmV0dXJuXCJvdGhlclwifSxmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwiWWVhclwiLHJlbGF0aXZlOnswOlwidGhpcyB5ZWFyXCIsMTpcIm5leHQgeWVhclwiLFwiLTFcIjpcImxhc3QgeWVhclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCIrezB9IHlcIn0scGFzdDp7b3RoZXI6XCItezB9IHlcIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJZZWFyXCIscmVsYXRpdmU6ezA6XCJ0aGlzIHllYXJcIiwxOlwibmV4dCB5ZWFyXCIsXCItMVwiOlwibGFzdCB5ZWFyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0geVwifSxwYXN0OntvdGhlcjpcIi17MH0geVwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIk1vbnRoXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1vbnRoXCIsMTpcIm5leHQgbW9udGhcIixcIi0xXCI6XCJsYXN0IG1vbnRoXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0gbVwifSxwYXN0OntvdGhlcjpcIi17MH0gbVwifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJNb250aFwiLHJlbGF0aXZlOnswOlwidGhpcyBtb250aFwiLDE6XCJuZXh0IG1vbnRoXCIsXCItMVwiOlwibGFzdCBtb250aFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCIrezB9IG1cIn0scGFzdDp7b3RoZXI6XCItezB9IG1cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiRGF5XCIscmVsYXRpdmU6ezA6XCJ0b2RheVwiLDE6XCJ0b21vcnJvd1wiLFwiLTFcIjpcInllc3RlcmRheVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCIrezB9IGRcIn0scGFzdDp7b3RoZXI6XCItezB9IGRcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIkRheVwiLHJlbGF0aXZlOnswOlwidG9kYXlcIiwxOlwidG9tb3Jyb3dcIixcIi0xXCI6XCJ5ZXN0ZXJkYXlcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiK3swfSBkXCJ9LHBhc3Q6e290aGVyOlwiLXswfSBkXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJIb3VyXCIscmVsYXRpdmU6ezA6XCJ0aGlzIGhvdXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiK3swfSBoXCJ9LHBhc3Q6e290aGVyOlwiLXswfSBoXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiSG91clwiLHJlbGF0aXZlOnswOlwidGhpcyBob3VyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0gaFwifSxwYXN0OntvdGhlcjpcIi17MH0gaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJNaW51dGVcIixyZWxhdGl2ZTp7MDpcInRoaXMgbWludXRlXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0gbWluXCJ9LHBhc3Q6e290aGVyOlwiLXswfSBtaW5cIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIk1pbnV0ZVwiLHJlbGF0aXZlOnswOlwidGhpcyBtaW51dGVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiK3swfSBtaW5cIn0scGFzdDp7b3RoZXI6XCItezB9IG1pblwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJTZWNvbmRcIixyZWxhdGl2ZTp7MDpcIm5vd1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCIrezB9IHNcIn0scGFzdDp7b3RoZXI6XCItezB9IHNcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIlNlY29uZFwiLHJlbGF0aXZlOnswOlwibm93XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0gc1wifSxwYXN0OntvdGhlcjpcIi17MH0gc1wifX19fX0se2xvY2FsZTpcImVuLUVSXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1GSVwiLHBhcmVudExvY2FsZTpcImVuLTE1MFwifSx7bG9jYWxlOlwiZW4tRkpcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUZLXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1GTVwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tR0JcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUdEXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1HR1wiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tR0hcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUdJXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1HTVwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tR1VcIixwYXJlbnRMb2NhbGU6XCJlblwifSx7bG9jYWxlOlwiZW4tR1lcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUhLXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1JRVwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tSUxcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUlNXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1JTlwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tSU9cIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUpFXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1KTVwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tS0VcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUtJXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1LTlwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tS1lcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLUxDXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1MUlwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tTFNcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLU1HXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1NSFwiLHBhcmVudExvY2FsZTpcImVuXCJ9LHtsb2NhbGU6XCJlbi1NT1wiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tTVBcIixwYXJlbnRMb2NhbGU6XCJlblwifSx7bG9jYWxlOlwiZW4tTVNcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLU1UXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1NVVwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tTVdcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLU1ZXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1OQVwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tTkZcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLU5HXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1OTFwiLHBhcmVudExvY2FsZTpcImVuLTE1MFwifSx7bG9jYWxlOlwiZW4tTlJcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLU5VXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1OWlwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tUEdcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVBIXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1QS1wiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tUE5cIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVBSXCIscGFyZW50TG9jYWxlOlwiZW5cIn0se2xvY2FsZTpcImVuLVBXXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1SV1wiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tU0JcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVNDXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1TRFwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tU0VcIixwYXJlbnRMb2NhbGU6XCJlbi0xNTBcIn0se2xvY2FsZTpcImVuLVNHXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCIsZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcInllYXJcIixyZWxhdGl2ZTp7MDpcInRoaXMgeWVhclwiLDE6XCJuZXh0IHllYXJcIixcIi0xXCI6XCJsYXN0IHllYXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSB5ZWFyXCIsb3RoZXI6XCJpbiB7MH0geWVhcnNcIn0scGFzdDp7b25lOlwiezB9IHllYXIgYWdvXCIsb3RoZXI6XCJ7MH0geWVhcnMgYWdvXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwieXJcIixyZWxhdGl2ZTp7MDpcInRoaXMgeXJcIiwxOlwibmV4dCB5clwiLFwiLTFcIjpcImxhc3QgeXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSB5clwiLG90aGVyOlwiaW4gezB9IHlyXCJ9LHBhc3Q6e29uZTpcInswfSB5ciBhZ29cIixvdGhlcjpcInswfSB5ciBhZ29cIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJtb250aFwiLHJlbGF0aXZlOnswOlwidGhpcyBtb250aFwiLDE6XCJuZXh0IG1vbnRoXCIsXCItMVwiOlwibGFzdCBtb250aFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IG1vbnRoXCIsb3RoZXI6XCJpbiB7MH0gbW9udGhzXCJ9LHBhc3Q6e29uZTpcInswfSBtb250aCBhZ29cIixvdGhlcjpcInswfSBtb250aHMgYWdvXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm10aFwiLHJlbGF0aXZlOnswOlwidGhpcyBtdGhcIiwxOlwibmV4dCBtdGhcIixcIi0xXCI6XCJsYXN0IG10aFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IG10aFwiLG90aGVyOlwiaW4gezB9IG10aFwifSxwYXN0OntvbmU6XCJ7MH0gbXRoIGFnb1wiLG90aGVyOlwiezB9IG10aCBhZ29cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiZGF5XCIscmVsYXRpdmU6ezA6XCJ0b2RheVwiLDE6XCJ0b21vcnJvd1wiLFwiLTFcIjpcInllc3RlcmRheVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IGRheVwiLG90aGVyOlwiaW4gezB9IGRheXNcIn0scGFzdDp7b25lOlwiezB9IGRheSBhZ29cIixvdGhlcjpcInswfSBkYXlzIGFnb1wifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiZGF5XCIscmVsYXRpdmU6ezA6XCJ0b2RheVwiLDE6XCJ0b21vcnJvd1wiLFwiLTFcIjpcInllc3RlcmRheVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IGRheVwiLG90aGVyOlwiaW4gezB9IGRheXNcIn0scGFzdDp7b25lOlwiezB9IGRheSBhZ29cIixvdGhlcjpcInswfSBkYXlzIGFnb1wifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwiaG91clwiLHJlbGF0aXZlOnswOlwidGhpcyBob3VyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gaG91clwiLG90aGVyOlwiaW4gezB9IGhvdXJzXCJ9LHBhc3Q6e29uZTpcInswfSBob3VyIGFnb1wiLG90aGVyOlwiezB9IGhvdXJzIGFnb1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhyXCIscmVsYXRpdmU6ezA6XCJ0aGlzIGhvdXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBoclwiLG90aGVyOlwiaW4gezB9IGhyXCJ9LHBhc3Q6e29uZTpcInswfSBociBhZ29cIixvdGhlcjpcInswfSBociBhZ29cIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwibWludXRlXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1pbnV0ZVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IG1pbnV0ZVwiLG90aGVyOlwiaW4gezB9IG1pbnV0ZXNcIn0scGFzdDp7b25lOlwiezB9IG1pbnV0ZSBhZ29cIixvdGhlcjpcInswfSBtaW51dGVzIGFnb1wifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibWluXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1pbnV0ZVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiaW4gezB9IG1pblwiLG90aGVyOlwiaW4gezB9IG1pblwifSxwYXN0OntvbmU6XCJ7MH0gbWluIGFnb1wiLG90aGVyOlwiezB9IG1pbiBhZ29cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2Vjb25kXCIscmVsYXRpdmU6ezA6XCJub3dcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImluIHswfSBzZWNvbmRcIixvdGhlcjpcImluIHswfSBzZWNvbmRzXCJ9LHBhc3Q6e29uZTpcInswfSBzZWNvbmQgYWdvXCIsb3RoZXI6XCJ7MH0gc2Vjb25kcyBhZ29cIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNlY1wiLHJlbGF0aXZlOnswOlwibm93XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJpbiB7MH0gc2VjXCIsb3RoZXI6XCJpbiB7MH0gc2VjXCJ9LHBhc3Q6e29uZTpcInswfSBzZWMgYWdvXCIsb3RoZXI6XCJ7MH0gc2VjIGFnb1wifX19fX0se2xvY2FsZTpcImVuLVNIXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1TSVwiLHBhcmVudExvY2FsZTpcImVuLTE1MFwifSx7bG9jYWxlOlwiZW4tU0xcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVNTXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1TWFwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tU1pcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVNoYXdcIixwbHVyYWxSdWxlRnVuY3Rpb246ZnVuY3Rpb24oZSxhKXtyZXR1cm5cIm90aGVyXCJ9LGZpZWxkczp7eWVhcjp7ZGlzcGxheU5hbWU6XCJZZWFyXCIscmVsYXRpdmU6ezA6XCJ0aGlzIHllYXJcIiwxOlwibmV4dCB5ZWFyXCIsXCItMVwiOlwibGFzdCB5ZWFyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0geVwifSxwYXN0OntvdGhlcjpcIi17MH0geVwifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIlllYXJcIixyZWxhdGl2ZTp7MDpcInRoaXMgeWVhclwiLDE6XCJuZXh0IHllYXJcIixcIi0xXCI6XCJsYXN0IHllYXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiK3swfSB5XCJ9LHBhc3Q6e290aGVyOlwiLXswfSB5XCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwiTW9udGhcIixyZWxhdGl2ZTp7MDpcInRoaXMgbW9udGhcIiwxOlwibmV4dCBtb250aFwiLFwiLTFcIjpcImxhc3QgbW9udGhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiK3swfSBtXCJ9LHBhc3Q6e290aGVyOlwiLXswfSBtXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIk1vbnRoXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1vbnRoXCIsMTpcIm5leHQgbW9udGhcIixcIi0xXCI6XCJsYXN0IG1vbnRoXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0gbVwifSxwYXN0OntvdGhlcjpcIi17MH0gbVwifX19LGRheTp7ZGlzcGxheU5hbWU6XCJEYXlcIixyZWxhdGl2ZTp7MDpcInRvZGF5XCIsMTpcInRvbW9ycm93XCIsXCItMVwiOlwieWVzdGVyZGF5XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0gZFwifSxwYXN0OntvdGhlcjpcIi17MH0gZFwifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiRGF5XCIscmVsYXRpdmU6ezA6XCJ0b2RheVwiLDE6XCJ0b21vcnJvd1wiLFwiLTFcIjpcInllc3RlcmRheVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCIrezB9IGRcIn0scGFzdDp7b3RoZXI6XCItezB9IGRcIn19fSxob3VyOntkaXNwbGF5TmFtZTpcIkhvdXJcIixyZWxhdGl2ZTp7MDpcInRoaXMgaG91clwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCIrezB9IGhcIn0scGFzdDp7b3RoZXI6XCItezB9IGhcIn19fSxcImhvdXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJIb3VyXCIscmVsYXRpdmU6ezA6XCJ0aGlzIGhvdXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiK3swfSBoXCJ9LHBhc3Q6e290aGVyOlwiLXswfSBoXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIk1pbnV0ZVwiLHJlbGF0aXZlOnswOlwidGhpcyBtaW51dGVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiK3swfSBtaW5cIn0scGFzdDp7b3RoZXI6XCItezB9IG1pblwifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiTWludXRlXCIscmVsYXRpdmU6ezA6XCJ0aGlzIG1pbnV0ZVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCIrezB9IG1pblwifSxwYXN0OntvdGhlcjpcIi17MH0gbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcIlNlY29uZFwiLHJlbGF0aXZlOnswOlwibm93XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcIit7MH0gc1wifSxwYXN0OntvdGhlcjpcIi17MH0gc1wifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiU2Vjb25kXCIscmVsYXRpdmU6ezA6XCJub3dcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiK3swfSBzXCJ9LHBhc3Q6e290aGVyOlwiLXswfSBzXCJ9fX19fSx7bG9jYWxlOlwiZW4tVENcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVRLXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1UT1wiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tVFRcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVRWXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1UWlwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tVUdcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVVNXCIscGFyZW50TG9jYWxlOlwiZW5cIn0se2xvY2FsZTpcImVuLVVTXCIscGFyZW50TG9jYWxlOlwiZW5cIn0se2xvY2FsZTpcImVuLVZDXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1WR1wiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tVklcIixwYXJlbnRMb2NhbGU6XCJlblwifSx7bG9jYWxlOlwiZW4tVlVcIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVdTXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9LHtsb2NhbGU6XCJlbi1aQVwiLHBhcmVudExvY2FsZTpcImVuLTAwMVwifSx7bG9jYWxlOlwiZW4tWk1cIixwYXJlbnRMb2NhbGU6XCJlbi0wMDFcIn0se2xvY2FsZTpcImVuLVpXXCIscGFyZW50TG9jYWxlOlwiZW4tMDAxXCJ9XX0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9lbi5qc1xuLy8gbW9kdWxlIGlkID0gMjAyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCIhZnVuY3Rpb24oZSxhKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1hKCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShhKTooZS5SZWFjdEludGxMb2NhbGVEYXRhPWUuUmVhY3RJbnRsTG9jYWxlRGF0YXx8e30sZS5SZWFjdEludGxMb2NhbGVEYXRhLmVzPWEoKSl9KHRoaXMsZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtyZXR1cm5be2xvY2FsZTpcImVzXCIscGx1cmFsUnVsZUZ1bmN0aW9uOmZ1bmN0aW9uKGUsYSl7cmV0dXJuIGE/XCJvdGhlclwiOjE9PWU/XCJvbmVcIjpcIm90aGVyXCJ9LGZpZWxkczp7eWVhcjp7ZGlzcGxheU5hbWU6XCJhw7FvXCIscmVsYXRpdmU6ezA6XCJlc3RlIGHDsW9cIiwxOlwiZWwgcHLDs3hpbW8gYcOxb1wiLFwiLTFcIjpcImVsIGHDsW8gcGFzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGHDsW9cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gYcOxb3NcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gYcOxb1wiLG90aGVyOlwiaGFjZSB7MH0gYcOxb3NcIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJhXCIscmVsYXRpdmU6ezA6XCJlc3RlIGHDsW9cIiwxOlwiZWwgcHLDs3hpbW8gYcOxb1wiLFwiLTFcIjpcImVsIGHDsW8gcGFzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGFcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gYVwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBhXCIsb3RoZXI6XCJoYWNlIHswfSBhXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwibWVzXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1lc1wiLDE6XCJlbCBwcsOzeGltbyBtZXNcIixcIi0xXCI6XCJlbCBtZXMgcGFzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1lc1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtZXNlc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtZXNcIixvdGhlcjpcImhhY2UgezB9IG1lc2VzXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWVzXCIsMTpcImVsIHByw7N4aW1vIG1lc1wiLFwiLTFcIjpcImVsIG1lcyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gbVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1cIixvdGhlcjpcImhhY2UgezB9IG1cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiZMOtYVwiLHJlbGF0aXZlOnswOlwiaG95XCIsMTpcIm1hw7FhbmFcIiwyOlwicGFzYWRvIG1hw7FhbmFcIixcIi0yXCI6XCJhbnRlYXllclwiLFwiLTFcIjpcImF5ZXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gZMOtYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBkw61hc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBkw61hXCIsb3RoZXI6XCJoYWNlIHswfSBkw61hc1wifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiZFwiLHJlbGF0aXZlOnswOlwiaG95XCIsMTpcIm1hw7FhbmFcIiwyOlwicGFzYWRvIG1hw7FhbmFcIixcIi0yXCI6XCJhbnRlYXllclwiLFwiLTFcIjpcImF5ZXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gZMOtYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBkw61hc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBkw61hXCIsb3RoZXI6XCJoYWNlIHswfSBkw61hc1wifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwiaG9yYVwiLHJlbGF0aXZlOnswOlwiZXN0YSBob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGhvcmFcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gaG9yYXNcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gaG9yYVwiLG90aGVyOlwiaGFjZSB7MH0gaG9yYXNcIn19fSxcImhvdXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJoXCIscmVsYXRpdmU6ezA6XCJlc3RhIGhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gaFwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBoXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGhcIixvdGhlcjpcImhhY2UgezB9IGhcIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwibWludXRvXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtaW51dG9cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbWludXRvc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtaW51dG9cIixvdGhlcjpcImhhY2UgezB9IG1pbnV0b3NcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwiZXN0ZSBtaW51dG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gbWluXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1pblwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtaW5cIixvdGhlcjpcImhhY2UgezB9IG1pblwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJzZWd1bmRvXCIscmVsYXRpdmU6ezA6XCJhaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBzZWd1bmRvXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IHNlZ3VuZG9zXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IHNlZ3VuZG9cIixvdGhlcjpcImhhY2UgezB9IHNlZ3VuZG9zXCJ9fX0sXCJzZWNvbmQtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJzXCIscmVsYXRpdmU6ezA6XCJhaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBzXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IHNcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gc1wiLG90aGVyOlwiaGFjZSB7MH0gc1wifX19fX0se2xvY2FsZTpcImVzLTQxOVwiLHBhcmVudExvY2FsZTpcImVzXCJ9LHtsb2NhbGU6XCJlcy1BUlwiLHBhcmVudExvY2FsZTpcImVzLTQxOVwiLGZpZWxkczp7eWVhcjp7ZGlzcGxheU5hbWU6XCJhw7FvXCIscmVsYXRpdmU6ezA6XCJlc3RlIGHDsW9cIiwxOlwiZWwgcHLDs3hpbW8gYcOxb1wiLFwiLTFcIjpcImVsIGHDsW8gcGFzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGHDsW9cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gYcOxb3NcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gYcOxb1wiLG90aGVyOlwiaGFjZSB7MH0gYcOxb3NcIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJhXCIscmVsYXRpdmU6ezA6XCJlc3RlIGHDsW9cIiwxOlwiZWwgcHLDs3hpbW8gYcOxb1wiLFwiLTFcIjpcImVsIGHDsW8gcGFzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGFcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gYVwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBhXCIsb3RoZXI6XCJoYWNlIHswfSBhXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwibWVzXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1lc1wiLDE6XCJlbCBwcsOzeGltbyBtZXNcIixcIi0xXCI6XCJlbCBtZXMgcGFzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1lc1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtZXNlc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtZXNcIixvdGhlcjpcImhhY2UgezB9IG1lc2VzXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWVzXCIsMTpcImVsIHByw7N4aW1vIG1lc1wiLFwiLTFcIjpcImVsIG1lcyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gbVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1cIixvdGhlcjpcImhhY2UgezB9IG1cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiZMOtYVwiLHJlbGF0aXZlOnswOlwiaG95XCIsMTpcIm1hw7FhbmFcIiwyOlwicGFzYWRvIG1hw7FhbmFcIixcIi0yXCI6XCJhbnRlYXllclwiLFwiLTFcIjpcImF5ZXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gZMOtYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBkw61hc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBkw61hXCIsb3RoZXI6XCJoYWNlIHswfSBkw61hc1wifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiZFwiLHJlbGF0aXZlOnswOlwiaG95XCIsMTpcIm1hw7FhbmFcIiwyOlwicGFzYWRvIG1hw7FhbmFcIixcIi0yXCI6XCJhbnRlYXllclwiLFwiLTFcIjpcImF5ZXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gZMOtYXNcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gZMOtYXNcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gZMOtYXNcIixvdGhlcjpcImhhY2UgezB9IGTDrWFzXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJob3JhXCIscmVsYXRpdmU6ezA6XCJlc3RhIGhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gaG9yYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBob3Jhc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBob3JhXCIsb3RoZXI6XCJoYWNlIHswfSBob3Jhc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBoXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGhcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gaFwiLG90aGVyOlwiaGFjZSB7MH0gaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dG9cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWludXRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1pbnV0b1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtaW51dG9zXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1pbnV0b1wiLG90aGVyOlwiaGFjZSB7MH0gbWludXRvc1wifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibWluXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtaW5cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbWluXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1pblwiLG90aGVyOlwiaGFjZSB7MH0gbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcInNlZ3VuZG9cIixyZWxhdGl2ZTp7MDpcImFob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNlZ3VuZG9cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc2VndW5kb3NcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gc2VndW5kb1wiLG90aGVyOlwiaGFjZSB7MH0gc2VndW5kb3NcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNlZy5cIixyZWxhdGl2ZTp7MDpcImFob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNlZy5cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc2VnLlwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBzZWcuXCIsb3RoZXI6XCJoYWNlIHswfSBzZWcuXCJ9fX19fSx7bG9jYWxlOlwiZXMtQk9cIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIn0se2xvY2FsZTpcImVzLUJSXCIscGFyZW50TG9jYWxlOlwiZXMtNDE5XCJ9LHtsb2NhbGU6XCJlcy1CWlwiLHBhcmVudExvY2FsZTpcImVzLTQxOVwifSx7bG9jYWxlOlwiZXMtQ0xcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIn0se2xvY2FsZTpcImVzLUNPXCIscGFyZW50TG9jYWxlOlwiZXMtNDE5XCJ9LHtsb2NhbGU6XCJlcy1DUlwiLHBhcmVudExvY2FsZTpcImVzLTQxOVwifSx7bG9jYWxlOlwiZXMtQ1VcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIn0se2xvY2FsZTpcImVzLURPXCIscGFyZW50TG9jYWxlOlwiZXMtNDE5XCIsZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcIkHDsW9cIixyZWxhdGl2ZTp7MDpcImVzdGUgYcOxb1wiLDE6XCJlbCBwcsOzeGltbyBhw7FvXCIsXCItMVwiOlwiZWwgYcOxbyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gYcOxb1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBhw7Fvc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBhw7FvXCIsb3RoZXI6XCJoYWNlIHswfSBhw7Fvc1wifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImFcIixyZWxhdGl2ZTp7MDpcImVzdGUgYcOxb1wiLDE6XCJlbCBwcsOzeGltbyBhw7FvXCIsXCItMVwiOlwiZWwgYcOxbyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBhXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGFcIixvdGhlcjpcImhhY2UgezB9IGFcIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJNZXNcIixyZWxhdGl2ZTp7MDpcImVzdGUgbWVzXCIsMTpcImVsIHByw7N4aW1vIG1lc1wiLFwiLTFcIjpcImVsIG1lcyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gbWVzXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1lc2VzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1lc1wiLG90aGVyOlwiaGFjZSB7MH0gbWVzZXNcIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibVwiLHJlbGF0aXZlOnswOlwiZXN0ZSBtZXNcIiwxOlwiZWwgcHLDs3hpbW8gbWVzXCIsXCItMVwiOlwiZWwgbWVzIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1cIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gbVwiLG90aGVyOlwiaGFjZSB7MH0gbVwifX19LGRheTp7ZGlzcGxheU5hbWU6XCJEw61hXCIscmVsYXRpdmU6ezA6XCJob3lcIiwxOlwibWHDsWFuYVwiLDI6XCJwYXNhZG8gbWHDsWFuYVwiLFwiLTJcIjpcImFudGVheWVyXCIsXCItMVwiOlwiYXllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBkw61hXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGTDrWFzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGTDrWFcIixvdGhlcjpcImhhY2UgezB9IGTDrWFzXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJkXCIscmVsYXRpdmU6ezA6XCJob3lcIiwxOlwibWHDsWFuYVwiLDI6XCJwYXNhZG8gbWHDsWFuYVwiLFwiLTJcIjpcImFudGVheWVyXCIsXCItMVwiOlwiYXllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBkw61hXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGTDrWFzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGTDrWFcIixvdGhlcjpcImhhY2UgezB9IGTDrWFzXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJob3JhXCIscmVsYXRpdmU6ezA6XCJlc3RhIGhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gaG9yYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBob3Jhc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBob3JhXCIsb3RoZXI6XCJoYWNlIHswfSBob3Jhc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBoXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGhcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gaFwiLG90aGVyOlwiaGFjZSB7MH0gaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJNaW51dG9cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWludXRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1pbnV0b1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtaW51dG9zXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1pbnV0b1wiLG90aGVyOlwiaGFjZSB7MH0gbWludXRvc1wifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibWluXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtaW5cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbWluXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1pblwiLG90aGVyOlwiaGFjZSB7MH0gbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcIlNlZ3VuZG9cIixyZWxhdGl2ZTp7MDpcImFob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNlZ3VuZG9cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc2VndW5kb3NcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gc2VndW5kb1wiLG90aGVyOlwiaGFjZSB7MH0gc2VndW5kb3NcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNcIixyZWxhdGl2ZTp7MDpcImFob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBzXCIsb3RoZXI6XCJoYWNlIHswfSBzXCJ9fX19fSx7bG9jYWxlOlwiZXMtRUFcIixwYXJlbnRMb2NhbGU6XCJlc1wifSx7bG9jYWxlOlwiZXMtRUNcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIn0se2xvY2FsZTpcImVzLUdRXCIscGFyZW50TG9jYWxlOlwiZXNcIn0se2xvY2FsZTpcImVzLUdUXCIscGFyZW50TG9jYWxlOlwiZXMtNDE5XCJ9LHtsb2NhbGU6XCJlcy1ITlwiLHBhcmVudExvY2FsZTpcImVzLTQxOVwifSx7bG9jYWxlOlwiZXMtSUNcIixwYXJlbnRMb2NhbGU6XCJlc1wifSx7bG9jYWxlOlwiZXMtTVhcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIixmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwiYcOxb1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBhw7FvXCIsMTpcImVsIGHDsW8gcHLDs3hpbW9cIixcIi0xXCI6XCJlbCBhw7FvIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBhw7FvXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGHDsW9zXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGHDsW9cIixvdGhlcjpcImhhY2UgezB9IGHDsW9zXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiYVwiLHJlbGF0aXZlOnswOlwiZXN0ZSBhw7FvXCIsMTpcImVsIHByw7N4aW1vIGHDsW9cIixcIi0xXCI6XCJlbCBhw7FvIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZW4gezB9IGFcIixvdGhlcjpcImVuIHswfSBhXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGFcIixvdGhlcjpcImhhY2UgezB9IGFcIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJtZXNcIixyZWxhdGl2ZTp7MDpcImVzdGUgbWVzXCIsMTpcImVsIG1lcyBwcsOzeGltb1wiLFwiLTFcIjpcImVsIG1lcyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBtZXNcIixvdGhlcjpcImVuIHswfSBtZXNlc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtZXNcIixvdGhlcjpcImhhY2UgezB9IG1lc2VzXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWVzXCIsMTpcImVsIHByw7N4aW1vIG1lc1wiLFwiLTFcIjpcImVsIG1lcyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBtXCIsb3RoZXI6XCJlbiB7MH0gbVwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtXCIsb3RoZXI6XCJoYWNlIHswfSBtXCJ9fX0sZGF5OntkaXNwbGF5TmFtZTpcImTDrWFcIixyZWxhdGl2ZTp7MDpcImhveVwiLDE6XCJtYcOxYW5hXCIsMjpcInBhc2FkbyBtYcOxYW5hXCIsXCItMlwiOlwiYW50ZWF5ZXJcIixcIi0xXCI6XCJheWVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGTDrWFcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gZMOtYXNcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gZMOtYVwiLG90aGVyOlwiaGFjZSB7MH0gZMOtYXNcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImRcIixyZWxhdGl2ZTp7MDpcImhveVwiLDE6XCJtYcOxYW5hXCIsMjpcInBhc2FkbyBtYcOxYW5hXCIsXCItMlwiOlwiYW50ZWF5ZXJcIixcIi0xXCI6XCJheWVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbiB7MH0gZMOtYVwiLG90aGVyOlwiZW4gezB9IGTDrWFzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGTDrWFcIixvdGhlcjpcImhhY2UgezB9IGTDrWFzXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJob3JhXCIscmVsYXRpdmU6ezA6XCJlc3RhIGhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gaG9yYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBob3Jhc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBob3JhXCIsb3RoZXI6XCJoYWNlIHswfSBob3Jhc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZW4gezB9IGhcIixvdGhlcjpcImVuIHswfSBuXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGhcIixvdGhlcjpcImhhY2UgezB9IGhcIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwibWludXRvXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtaW51dG9cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbWludXRvc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtaW51dG9cIixvdGhlcjpcImhhY2UgezB9IG1pbnV0b3NcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwiZXN0ZSBtaW51dG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBtaW5cIixvdGhlcjpcImVuIHswfSBtaW5cIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gbWluXCIsb3RoZXI6XCJoYWNlIHswfSBtaW5cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2VndW5kb1wiLHJlbGF0aXZlOnswOlwiYWhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gc2VndW5kb1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBzZWd1bmRvc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBzZWd1bmRvXCIsb3RoZXI6XCJoYWNlIHswfSBzZWd1bmRvc1wifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic1wiLHJlbGF0aXZlOnswOlwiYWhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBzXCIsb3RoZXI6XCJlbiB7MH0gc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBzXCIsb3RoZXI6XCJoYWNlIHswfSBzXCJ9fX19fSx7bG9jYWxlOlwiZXMtTklcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIn0se2xvY2FsZTpcImVzLVBBXCIscGFyZW50TG9jYWxlOlwiZXMtNDE5XCJ9LHtsb2NhbGU6XCJlcy1QRVwiLHBhcmVudExvY2FsZTpcImVzLTQxOVwifSx7bG9jYWxlOlwiZXMtUEhcIixwYXJlbnRMb2NhbGU6XCJlc1wifSx7bG9jYWxlOlwiZXMtUFJcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIn0se2xvY2FsZTpcImVzLVBZXCIscGFyZW50TG9jYWxlOlwiZXMtNDE5XCIsZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcImHDsW9cIixyZWxhdGl2ZTp7MDpcImVzdGUgYcOxb1wiLDE6XCJlbCBwcsOzeGltbyBhw7FvXCIsXCItMVwiOlwiZWwgYcOxbyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gYcOxb1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBhw7Fvc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBhw7FvXCIsb3RoZXI6XCJoYWNlIHswfSBhw7Fvc1wifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImFcIixyZWxhdGl2ZTp7MDpcImVzdGUgYcOxb1wiLDE6XCJlbCBwcsOzeGltbyBhw7FvXCIsXCItMVwiOlwiZWwgYcOxbyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBhXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGFcIixvdGhlcjpcImhhY2UgezB9IGFcIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJtZXNcIixyZWxhdGl2ZTp7MDpcImVzdGUgbWVzXCIsMTpcImVsIHByw7N4aW1vIG1lc1wiLFwiLTFcIjpcImVsIG1lcyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gbWVzXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1lc2VzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1lc1wiLG90aGVyOlwiaGFjZSB7MH0gbWVzZXNcIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibVwiLHJlbGF0aXZlOnswOlwiZXN0ZSBtZXNcIiwxOlwiZWwgcHLDs3hpbW8gbWVzXCIsXCItMVwiOlwiZWwgbWVzIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1cIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gbVwiLG90aGVyOlwiaGFjZSB7MH0gbVwifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkw61hXCIscmVsYXRpdmU6ezA6XCJob3lcIiwxOlwibWHDsWFuYVwiLDI6XCJwYXNhZG8gbWHDsWFuYVwiLFwiLTJcIjpcImFudGVheWVyXCIsXCItMVwiOlwiYXllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBkw61hXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGTDrWFzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGTDrWFcIixvdGhlcjpcImhhY2UgezB9IGTDrWFzXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJkXCIscmVsYXRpdmU6ezA6XCJob3lcIiwxOlwibWHDsWFuYVwiLDI6XCJwYXNhZG8gbWHDsWFuYVwiLFwiLTJcIjpcImFudGVheWVyXCIsXCItMVwiOlwiYXllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBkw61hXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGTDrWFzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGTDrWFcIixvdGhlcjpcImhhY2UgezB9IGTDrWFzXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJob3JhXCIscmVsYXRpdmU6ezA6XCJlc3RhIGhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gaG9yYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBob3Jhc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBob3JhXCIsb3RoZXI6XCJoYWNlIHswfSBob3Jhc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBoXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGhcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gaFwiLG90aGVyOlwiaGFjZSB7MH0gaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dG9cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWludXRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1pbnV0b1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtaW51dG9zXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1pbnV0b1wiLG90aGVyOlwiaGFjZSB7MH0gbWludXRvc1wifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibWluXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtaW5cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbWluXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1pblwiLG90aGVyOlwiaGFjZSB7MH0gbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcInNlZ3VuZG9cIixyZWxhdGl2ZTp7MDpcImFob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNlZ3VuZG9cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc2VndW5kb3NcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gc2VndW5kb1wiLG90aGVyOlwiaGFjZSB7MH0gc2VndW5kb3NcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNlZy5cIixyZWxhdGl2ZTp7MDpcImFob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNlZy5cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc2VnLlwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBzZWcuXCIsb3RoZXI6XCJoYWNlIHswfSBzZWcuXCJ9fX19fSx7bG9jYWxlOlwiZXMtU1ZcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIixmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwiYcOxb1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBhw7FvXCIsMTpcImVsIHByw7N4aW1vIGHDsW9cIixcIi0xXCI6XCJlbCBhw7FvIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBhw7FvXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGHDsW9zXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGHDsW9cIixvdGhlcjpcImhhY2UgezB9IGHDsW9zXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiYVwiLHJlbGF0aXZlOnswOlwiZXN0ZSBhw7FvXCIsMTpcImVsIHByw7N4aW1vIGHDsW9cIixcIi0xXCI6XCJlbCBhw7FvIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBhXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGFcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gYVwiLG90aGVyOlwiaGFjZSB7MH0gYVwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm1lc1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBtZXNcIiwxOlwiZWwgcHLDs3hpbW8gbWVzXCIsXCItMVwiOlwiZWwgbWVzIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtZXNcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbWVzZXNcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gbWVzXCIsb3RoZXI6XCJoYWNlIHswfSBtZXNlc1wifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1lc1wiLDE6XCJlbCBwcsOzeGltbyBtZXNcIixcIi0xXCI6XCJlbCBtZXMgcGFzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbVwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtXCIsb3RoZXI6XCJoYWNlIHswfSBtXCJ9fX0sZGF5OntkaXNwbGF5TmFtZTpcImTDrWFcIixyZWxhdGl2ZTp7MDpcImhveVwiLDE6XCJtYcOxYW5hXCIsMjpcInBhc2FkbyBtYcOxYW5hXCIsXCItMlwiOlwiYW50aWVyXCIsXCItMVwiOlwiYXllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBkw61hXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGTDrWFzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGTDrWFcIixvdGhlcjpcImhhY2UgezB9IGTDrWFzXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJkXCIscmVsYXRpdmU6ezA6XCJob3lcIiwxOlwibWHDsWFuYVwiLDI6XCJwYXNhZG8gbWHDsWFuYVwiLFwiLTJcIjpcImFudGVheWVyXCIsXCItMVwiOlwiYXllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBkw61hXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGTDrWFzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGTDrWFcIixvdGhlcjpcImhhY2UgezB9IGTDrWFzXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJob3JhXCIscmVsYXRpdmU6ezA6XCJlc3RhIGhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gaG9yYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBob3Jhc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBob3JhXCIsb3RoZXI6XCJoYWNlIHswfSBob3Jhc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBoXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGhcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gaFwiLG90aGVyOlwiaGFjZSB7MH0gaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dG9cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWludXRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1pbnV0b1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtaW51dG9zXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1pbnV0b1wiLG90aGVyOlwiaGFjZSB7MH0gbWludXRvc1wifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibWluXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtaW5cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbWluXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IG1pblwiLG90aGVyOlwiaGFjZSB7MH0gbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcInNlZ3VuZG9cIixyZWxhdGl2ZTp7MDpcImFob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNlZ3VuZG9cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc2VndW5kb3NcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gc2VndW5kb1wiLG90aGVyOlwiaGFjZSB7MH0gc2VndW5kb3NcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNcIixyZWxhdGl2ZTp7MDpcImFob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBzXCIsb3RoZXI6XCJoYWNlIHswfSBzXCJ9fX19fSx7bG9jYWxlOlwiZXMtVVNcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIixmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwiYcOxb1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBhw7FvXCIsMTpcImVsIGHDsW8gcHLDs3hpbW9cIixcIi0xXCI6XCJlbCBhw7FvIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBhw7FvXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGHDsW9zXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGHDsW9cIixvdGhlcjpcImhhY2UgezB9IGHDsW9zXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiYVwiLHJlbGF0aXZlOnswOlwiZXN0ZSBhw7FvXCIsMTpcImVsIHByw7N4aW1vIGHDsW9cIixcIi0xXCI6XCJlbCBhw7FvIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBhXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGFcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gYVwiLG90aGVyOlwiaGFjZSB7MH0gYVwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm1lc1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBtZXNcIiwxOlwiZWwgbWVzIHByw7N4aW1vXCIsXCItMVwiOlwiZWwgbWVzIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtZXNcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbWVzZXNcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gbWVzXCIsb3RoZXI6XCJoYWNlIHswfSBtZXNlc1wifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1lc1wiLDE6XCJlbCBwcsOzeGltbyBtZXNcIixcIi0xXCI6XCJlbCBtZXMgcGFzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1cIixvdGhlcjpcImRlbnRybyBkZSB7MH0gbVwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBtXCIsb3RoZXI6XCJoYWNlIHswfSBtXCJ9fX0sZGF5OntkaXNwbGF5TmFtZTpcImTDrWFcIixyZWxhdGl2ZTp7MDpcImhveVwiLDE6XCJtYcOxYW5hXCIsMjpcInBhc2FkbyBtYcOxYW5hXCIsXCItMlwiOlwiYW50ZWF5ZXJcIixcIi0xXCI6XCJheWVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGTDrWFcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gZMOtYXNcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gZMOtYVwiLG90aGVyOlwiaGFjZSB7MH0gZMOtYXNcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImRcIixyZWxhdGl2ZTp7MDpcImhveVwiLDE6XCJtYcOxYW5hXCIsMjpcInBhc2FkbyBtYcOxYW5hXCIsXCItMlwiOlwiYW50ZWF5ZXJcIixcIi0xXCI6XCJheWVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGTDrWFcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gZMOtYXNcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gZMOtYVwiLG90aGVyOlwiaGFjZSB7MH0gZMOtYXNcIn19fSxob3VyOntkaXNwbGF5TmFtZTpcImhvcmFcIixyZWxhdGl2ZTp7MDpcImVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBob3JhXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGhvcmFzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IGhvcmFcIixvdGhlcjpcImhhY2UgezB9IGhvcmFzXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiaFwiLHJlbGF0aXZlOnswOlwiZXN0YSBob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGhcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gaFwifSxwYXN0OntvbmU6XCJoYWNlIHswfSBoXCIsb3RoZXI6XCJoYWNlIHswfSBoXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIm1pbnV0b1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBtaW51dG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gbWludXRvXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1pbnV0b3NcIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gbWludXRvXCIsb3RoZXI6XCJoYWNlIHswfSBtaW51dG9zXCJ9fX0sXCJtaW51dGUtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtaW5cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWludXRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1pblwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtaW5cIn0scGFzdDp7b25lOlwiaGFjZSB7MH0gbWluXCIsb3RoZXI6XCJoYWNlIHswfSBtaW5cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2VndW5kb1wiLHJlbGF0aXZlOnswOlwiYWhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gc2VndW5kb1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBzZWd1bmRvc1wifSxwYXN0OntvbmU6XCJoYWNlIHswfSBzZWd1bmRvXCIsb3RoZXI6XCJoYWNlIHswfSBzZWd1bmRvc1wifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic1wiLHJlbGF0aXZlOnswOlwiYWhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gc1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBzXCJ9LHBhc3Q6e29uZTpcImhhY2UgezB9IHNcIixvdGhlcjpcImhhY2UgezB9IHNcIn19fX19LHtsb2NhbGU6XCJlcy1VWVwiLHBhcmVudExvY2FsZTpcImVzLTQxOVwifSx7bG9jYWxlOlwiZXMtVkVcIixwYXJlbnRMb2NhbGU6XCJlcy00MTlcIn1dfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1pbnRsL2xvY2FsZS1kYXRhL2VzLmpzXG4vLyBtb2R1bGUgaWQgPSAyMDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIiFmdW5jdGlvbihlLGEpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWEoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKGEpOihlLlJlYWN0SW50bExvY2FsZURhdGE9ZS5SZWFjdEludGxMb2NhbGVEYXRhfHx7fSxlLlJlYWN0SW50bExvY2FsZURhdGEuZnI9YSgpKX0odGhpcyxmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3JldHVyblt7bG9jYWxlOlwiZnJcIixwbHVyYWxSdWxlRnVuY3Rpb246ZnVuY3Rpb24oZSxhKXtyZXR1cm4gYT8xPT1lP1wib25lXCI6XCJvdGhlclwiOmU+PTAmJmU8Mj9cIm9uZVwiOlwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcImFubsOpZVwiLHJlbGF0aXZlOnswOlwiY2V0dGUgYW5uw6llXCIsMTpcImzigJlhbm7DqWUgcHJvY2hhaW5lXCIsXCItMVwiOlwibOKAmWFubsOpZSBkZXJuacOocmVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IGFuXCIsb3RoZXI6XCJkYW5zIHswfSBhbnNcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfSBhblwiLG90aGVyOlwiaWwgeSBhIHswfSBhbnNcIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJhblwiLHJlbGF0aXZlOnswOlwiY2V0dGUgYW5uw6llXCIsMTpcImzigJlhbm7DqWUgcHJvY2hhaW5lXCIsXCItMVwiOlwibOKAmWFubsOpZSBkZXJuacOocmVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IGFcIixvdGhlcjpcImRhbnMgezB9IGFcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfSBhXCIsb3RoZXI6XCJpbCB5IGEgezB9IGFcIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJtb2lzXCIscmVsYXRpdmU6ezA6XCJjZSBtb2lzLWNpXCIsMTpcImxlIG1vaXMgcHJvY2hhaW5cIixcIi0xXCI6XCJsZSBtb2lzIGRlcm5pZXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IG1vaXNcIixvdGhlcjpcImRhbnMgezB9IG1vaXNcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfSBtb2lzXCIsb3RoZXI6XCJpbCB5IGEgezB9IG1vaXNcIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibS5cIixyZWxhdGl2ZTp7MDpcImNlIG1vaXMtY2lcIiwxOlwibGUgbW9pcyBwcm9jaGFpblwiLFwiLTFcIjpcImxlIG1vaXMgZGVybmllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH0gbS5cIixvdGhlcjpcImRhbnMgezB9IG0uXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gbS5cIixvdGhlcjpcImlsIHkgYSB7MH0gbS5cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiam91clwiLHJlbGF0aXZlOnswOlwiYXVqb3VyZOKAmWh1aVwiLDE6XCJkZW1haW5cIiwyOlwiYXByw6hzLWRlbWFpblwiLFwiLTJcIjpcImF2YW50LWhpZXJcIixcIi0xXCI6XCJoaWVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfSBqb3VyXCIsb3RoZXI6XCJkYW5zIHswfSBqb3Vyc1wifSxwYXN0OntvbmU6XCJpbCB5IGEgezB9IGpvdXJcIixvdGhlcjpcImlsIHkgYSB7MH0gam91cnNcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImpcIixyZWxhdGl2ZTp7MDpcImF1am91cmTigJlodWlcIiwxOlwiZGVtYWluXCIsMjpcImFwcsOocy1kZW1haW5cIixcIi0yXCI6XCJhdmFudC1oaWVyXCIsXCItMVwiOlwiaGllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH3CoGpcIixvdGhlcjpcImRhbnMgezB9wqBqXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH3CoGpcIixvdGhlcjpcImlsIHkgYSB7MH3CoGpcIn19fSxob3VyOntkaXNwbGF5TmFtZTpcImhldXJlXCIscmVsYXRpdmU6ezA6XCJjZXR0ZSBoZXVyZS1jaVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH0gaGV1cmVcIixvdGhlcjpcImRhbnMgezB9IGhldXJlc1wifSxwYXN0OntvbmU6XCJpbCB5IGEgezB9IGhldXJlXCIsb3RoZXI6XCJpbCB5IGEgezB9IGhldXJlc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImNldHRlIGhldXJlLWNpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfcKgaFwiLG90aGVyOlwiZGFucyB7MH3CoGhcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfcKgaFwiLG90aGVyOlwiaWwgeSBhIHswfcKgaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dGVcIixyZWxhdGl2ZTp7MDpcImNldHRlIG1pbnV0ZS1jaVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH0gbWludXRlXCIsb3RoZXI6XCJkYW5zIHswfSBtaW51dGVzXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gbWludXRlXCIsb3RoZXI6XCJpbCB5IGEgezB9IG1pbnV0ZXNcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwiY2V0dGUgbWludXRlLWNpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfcKgbWluXCIsb3RoZXI6XCJkYW5zIHswfcKgbWluXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH3CoG1pblwiLG90aGVyOlwiaWwgeSBhIHswfcKgbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcInNlY29uZGVcIixyZWxhdGl2ZTp7MDpcIm1haW50ZW5hbnRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IHNlY29uZGVcIixvdGhlcjpcImRhbnMgezB9IHNlY29uZGVzXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gc2Vjb25kZVwiLG90aGVyOlwiaWwgeSBhIHswfSBzZWNvbmRlc1wifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic1wiLHJlbGF0aXZlOnswOlwibWFpbnRlbmFudFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH3CoHNcIixvdGhlcjpcImRhbnMgezB9wqBzXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH3CoHNcIixvdGhlcjpcImlsIHkgYSB7MH3CoHNcIn19fX19LHtsb2NhbGU6XCJmci1CRVwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1CRlwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1CSVwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1CSlwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1CTFwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1DQVwiLHBhcmVudExvY2FsZTpcImZyXCIsZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcImFubsOpZVwiLHJlbGF0aXZlOnswOlwiY2V0dGUgYW5uw6llXCIsMTpcImzigJlhbm7DqWUgcHJvY2hhaW5lXCIsXCItMVwiOlwibOKAmWFubsOpZSBkZXJuacOocmVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIkRhbnMgezB9wqBhblwiLG90aGVyOlwiRGFucyB7MH3CoGFuc1wifSxwYXN0OntvbmU6XCJJbCB5IGEgezB9wqBhblwiLG90aGVyOlwiSWwgeSBhIHswfcKgYW5zXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiYVwiLHJlbGF0aXZlOnswOlwiY2V0dGUgYW5uw6llXCIsMTpcImzigJlhbm7DqWUgcHJvY2hhaW5lXCIsXCItMVwiOlwibOKAmWFubsOpZSBkZXJuacOocmVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IGFcIixvdGhlcjpcImRhbnMgezB9IGFcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfSBhXCIsb3RoZXI6XCJpbCB5IGEgezB9IGFcIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJtb2lzXCIscmVsYXRpdmU6ezA6XCJjZSBtb2lzLWNpXCIsMTpcImxlIG1vaXMgcHJvY2hhaW5cIixcIi0xXCI6XCJsZSBtb2lzIGRlcm5pZXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IG1vaXNcIixvdGhlcjpcImRhbnMgezB9IG1vaXNcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfSBtb2lzXCIsb3RoZXI6XCJpbCB5IGEgezB9IG1vaXNcIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibS5cIixyZWxhdGl2ZTp7MDpcImNlIG1vaXMtY2lcIiwxOlwibGUgbW9pcyBwcm9jaGFpblwiLFwiLTFcIjpcImxlIG1vaXMgZGVybmllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH0gbS5cIixvdGhlcjpcImRhbnMgezB9IG0uXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gbS5cIixvdGhlcjpcImlsIHkgYSB7MH0gbS5cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiam91clwiLHJlbGF0aXZlOnswOlwiYXVqb3VyZOKAmWh1aVwiLDE6XCJkZW1haW5cIiwyOlwiYXByw6hzLWRlbWFpblwiLFwiLTJcIjpcImF2YW50LWhpZXJcIixcIi0xXCI6XCJoaWVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfSBqb3VyXCIsb3RoZXI6XCJkYW5zIHswfSBqb3Vyc1wifSxwYXN0OntvbmU6XCJpbCB5IGEgezB9IGpvdXJcIixvdGhlcjpcImlsIHkgYSB7MH0gam91cnNcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImpcIixyZWxhdGl2ZTp7MDpcImF1am91cmTigJlodWlcIiwxOlwiZGVtYWluXCIsMjpcImFwcsOocy1kZW1haW5cIixcIi0yXCI6XCJhdmFudC1oaWVyXCIsXCItMVwiOlwiaGllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH3CoGpcIixvdGhlcjpcImRhbnMgezB9wqBqXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH3CoGpcIixvdGhlcjpcImlsIHkgYSB7MH3CoGpcIn19fSxob3VyOntkaXNwbGF5TmFtZTpcImhldXJlXCIscmVsYXRpdmU6ezA6XCJjZXR0ZSBoZXVyZS1jaVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH0gaGV1cmVcIixvdGhlcjpcImRhbnMgezB9IGhldXJlc1wifSxwYXN0OntvbmU6XCJpbCB5IGEgezB9IGhldXJlXCIsb3RoZXI6XCJpbCB5IGEgezB9IGhldXJlc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImNldHRlIGhldXJlLWNpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfcKgaFwiLG90aGVyOlwiZGFucyB7MH3CoGhcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfcKgaFwiLG90aGVyOlwiaWwgeSBhIHswfcKgaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dGVcIixyZWxhdGl2ZTp7MDpcImNldHRlIG1pbnV0ZS1jaVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH0gbWludXRlXCIsb3RoZXI6XCJkYW5zIHswfSBtaW51dGVzXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gbWludXRlXCIsb3RoZXI6XCJpbCB5IGEgezB9IG1pbnV0ZXNcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwiY2V0dGUgbWludXRlLWNpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfcKgbWluXCIsb3RoZXI6XCJkYW5zIHswfcKgbWluXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH3CoG1pblwiLG90aGVyOlwiaWwgeSBhIHswfcKgbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcInNlY29uZGVcIixyZWxhdGl2ZTp7MDpcIm1haW50ZW5hbnRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IHNlY29uZGVcIixvdGhlcjpcImRhbnMgezB9IHNlY29uZGVzXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gc2Vjb25kZVwiLG90aGVyOlwiaWwgeSBhIHswfSBzZWNvbmRlc1wifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic1wiLHJlbGF0aXZlOnswOlwibWFpbnRlbmFudFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH3CoHNcIixvdGhlcjpcImRhbnMgezB9wqBzXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH3CoHNcIixvdGhlcjpcImlsIHkgYSB7MH3CoHNcIn19fX19LHtsb2NhbGU6XCJmci1DRFwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1DRlwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1DR1wiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1DSFwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1DSVwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1DTVwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1ESlwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1EWlwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1HQVwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1HRlwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1HTlwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1HUFwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1HUVwiLHBhcmVudExvY2FsZTpcImZyXCJ9LHtsb2NhbGU6XCJmci1IVFwiLHBhcmVudExvY2FsZTpcImZyXCIsZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcImFubsOpZVwiLHJlbGF0aXZlOnswOlwiY2V0dGUgYW5uw6llXCIsMTpcImzigJlhbm7DqWUgcHJvY2hhaW5lXCIsXCItMVwiOlwibOKAmWFubsOpZSBkZXJuacOocmVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IGFuXCIsb3RoZXI6XCJkYW5zIHswfSBhbnNcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfSBhblwiLG90aGVyOlwiaWwgeSBhIHswfSBhbnNcIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJhblwiLHJlbGF0aXZlOnswOlwiY2V0dGUgYW5uw6llXCIsMTpcImzigJlhbm7DqWUgcHJvY2hhaW5lXCIsXCItMVwiOlwibOKAmWFubsOpZSBkZXJuacOocmVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IGFcIixvdGhlcjpcImRhbnMgezB9IGFcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfSBhXCIsb3RoZXI6XCJpbCB5IGEgezB9IGFcIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJtb2lzXCIscmVsYXRpdmU6ezA6XCJjZSBtb2lzLWNpXCIsMTpcImxlIG1vaXMgcHJvY2hhaW5cIixcIi0xXCI6XCJsZSBtb2lzIGRlcm5pZXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9IG1vaXNcIixvdGhlcjpcImRhbnMgezB9IG1vaXNcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfSBtb2lzXCIsb3RoZXI6XCJpbCB5IGEgezB9IG1vaXNcIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibS5cIixyZWxhdGl2ZTp7MDpcImNlIG1vaXMtY2lcIiwxOlwibGUgbW9pcyBwcm9jaGFpblwiLFwiLTFcIjpcImxlIG1vaXMgZGVybmllclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH0gbS5cIixvdGhlcjpcImRhbnMgezB9IG0uXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gbS5cIixvdGhlcjpcImlsIHkgYSB7MH0gbS5cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiam91clwiLHJlbGF0aXZlOnswOlwiYXVqb3VyZOKAmWh1aVwiLDE6XCJkZW1haW5cIiwyOlwiYXByw6hzLWRlbWFpblwiLFwiLTJcIjpcImF2YW50LWhpZXJcIixcIi0xXCI6XCJoaWVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfSBqb3VyXCIsb3RoZXI6XCJkYW5zIHswfSBqb3Vyc1wifSxwYXN0OntvbmU6XCJpbCB5IGEgezB9IGpvdXJcIixvdGhlcjpcImlsIHkgYSB7MH0gam91cnNcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImpyLlwiLHJlbGF0aXZlOnswOlwiYXVqb3VyZOKAmWh1aVwiLDE6XCJkZW1haW5cIiwyOlwiYXByw6hzLWRlbWFpblwiLFwiLTJcIjpcImF2YW50LWhpZXJcIixcIi0xXCI6XCJoaWVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfcKgalwiLG90aGVyOlwiZGFucyB7MH3CoGpcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfcKgalwiLG90aGVyOlwiaWwgeSBhIHswfcKgalwifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwiaGV1cmVcIixyZWxhdGl2ZTp7MDpcImNldHRlIGhldXJlLWNpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfSBoZXVyZVwiLG90aGVyOlwiZGFucyB7MH0gaGV1cmVzXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gaGV1cmVcIixvdGhlcjpcImlsIHkgYSB7MH0gaGV1cmVzXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiaHJcIixyZWxhdGl2ZTp7MDpcImNldHRlIGhldXJlLWNpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfcKgaFwiLG90aGVyOlwiZGFucyB7MH3CoGhcIn0scGFzdDp7b25lOlwiaWwgeSBhIHswfcKgaFwiLG90aGVyOlwiaWwgeSBhIHswfcKgaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dGVcIixyZWxhdGl2ZTp7MDpcImNldHRlIG1pbnV0ZS1jaVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH0gbWludXRlXCIsb3RoZXI6XCJkYW5zIHswfSBtaW51dGVzXCJ9LHBhc3Q6e29uZTpcImlsIHkgYSB7MH0gbWludXRlXCIsb3RoZXI6XCJpbCB5IGEgezB9IG1pbnV0ZXNcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pbi5cIixyZWxhdGl2ZTp7MDpcImNldHRlIG1pbnV0ZS1jaVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGFucyB7MH3CoG1pblwiLG90aGVyOlwiZGFucyB7MH3CoG1pblwifSxwYXN0OntvbmU6XCJpbCB5IGEgezB9wqBtaW5cIixvdGhlcjpcImlsIHkgYSB7MH3CoG1pblwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJzZWNvbmRlXCIscmVsYXRpdmU6ezA6XCJtYWludGVuYW50XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkYW5zIHswfSBzZWNvbmRlXCIsb3RoZXI6XCJkYW5zIHswfSBzZWNvbmRlc1wifSxwYXN0OntvbmU6XCJpbCB5IGEgezB9IHNlY29uZGVcIixvdGhlcjpcImlsIHkgYSB7MH0gc2Vjb25kZXNcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNcIixyZWxhdGl2ZTp7MDpcIm1haW50ZW5hbnRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRhbnMgezB9wqBzXCIsb3RoZXI6XCJkYW5zIHswfcKgc1wifSxwYXN0OntvbmU6XCJpbCB5IGEgezB9wqBzXCIsb3RoZXI6XCJpbCB5IGEgezB9wqBzXCJ9fX19fSx7bG9jYWxlOlwiZnItS01cIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTFVcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTUFcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTUNcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTUZcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTUdcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTUxcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTVFcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTVJcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTVVcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTkNcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItTkVcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItUEZcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItUE1cIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItUkVcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItUldcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItU0NcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItU05cIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItU1lcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItVERcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItVEdcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItVE5cIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItVlVcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItV0ZcIixwYXJlbnRMb2NhbGU6XCJmclwifSx7bG9jYWxlOlwiZnItWVRcIixwYXJlbnRMb2NhbGU6XCJmclwifV19KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWludGwvbG9jYWxlLWRhdGEvZnIuanNcbi8vIG1vZHVsZSBpZCA9IDIwNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiIWZ1bmN0aW9uKGUsYSl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9YSgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoYSk6KGUuUmVhY3RJbnRsTG9jYWxlRGF0YT1lLlJlYWN0SW50bExvY2FsZURhdGF8fHt9LGUuUmVhY3RJbnRsTG9jYWxlRGF0YS5nbD1hKCkpfSh0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7cmV0dXJuW3tsb2NhbGU6XCJnbFwiLHBsdXJhbFJ1bGVGdW5jdGlvbjpmdW5jdGlvbihlLGEpe3ZhciBvPSFTdHJpbmcoZSkuc3BsaXQoXCIuXCIpWzFdO3JldHVybiBhP1wib3RoZXJcIjoxPT1lJiZvP1wib25lXCI6XCJvdGhlclwifSxmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwiYW5vXCIscmVsYXRpdmU6ezA6XCJlc3RlIGFub1wiLDE6XCJvIHByw7N4aW1vIGFub1wiLFwiLTFcIjpcIm8gYW5vIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZW4gezB9IGFub1wiLG90aGVyOlwiZW4gezB9IGFub3NcIn0scGFzdDp7b25lOlwiaGFpIHswfSBhbm9cIixvdGhlcjpcImhhaSB7MH0gYW5vc1wifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImFub1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBhbm9cIiwxOlwic2VndWludGUgYW5vXCIsXCItMVwiOlwiYW5vIHBhc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZW4gezB9IGFub1wiLG90aGVyOlwiZW4gezB9IGFub3NcIn0scGFzdDp7b25lOlwiaGFpIHswfSBhbm9cIixvdGhlcjpcImhhaSB7MH0gYW5vc1wifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm1lc1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBtZXNcIiwxOlwibyBwcsOzeGltbyBtZXNcIixcIi0xXCI6XCJvIG1lcyBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBtZXNcIixvdGhlcjpcImVuIHswfSBtZXNlc1wifSxwYXN0OntvbmU6XCJoYWkgezB9IG1lc1wiLG90aGVyOlwiaGFpIHswfSBtZXNlc1wifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtZXNcIixyZWxhdGl2ZTp7MDpcImVzdGUgbS5cIiwxOlwibS4gc2VndWludGVcIixcIi0xXCI6XCJtLiBwYXNhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBtZXNcIixvdGhlcjpcImVuIHswfSBtZXNlc1wifSxwYXN0OntvbmU6XCJoYWkgezB9IG1lc1wiLG90aGVyOlwiaGFpIHswfSBtZXNlc1wifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkw61hXCIscmVsYXRpdmU6ezA6XCJob3hlXCIsMTpcIm1hw7HDoVwiLDI6XCJwYXNhZG9tYcOxw6FcIixcIi0yXCI6XCJhbnRvbnRlXCIsXCItMVwiOlwib250ZVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZW4gezB9IGTDrWFcIixvdGhlcjpcImVuIHswfSBkw61hc1wifSxwYXN0OntvbmU6XCJoYWkgezB9IGTDrWFcIixvdGhlcjpcImhhaSB7MH0gZMOtYXNcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImTDrWFcIixyZWxhdGl2ZTp7MDpcImhveGVcIiwxOlwibWHDscOhXCIsMjpcInBhc2Fkb21hw7HDoVwiLFwiLTJcIjpcImFudG9udGVcIixcIi0xXCI6XCJvbnRlXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbiB7MH0gZMOtYVwiLG90aGVyOlwiZW4gezB9IGTDrWFzXCJ9LHBhc3Q6e29uZTpcImhhaSB7MH0gZMOtYVwiLG90aGVyOlwiaGFpIHswfSBkw61hc1wifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwiaG9yYVwiLHJlbGF0aXZlOnswOlwiZXN0YSBob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbiB7MH0gaG9yYVwiLG90aGVyOlwiZW4gezB9IGhvcmFzXCJ9LHBhc3Q6e29uZTpcImhhaSB7MH0gaG9yYVwiLG90aGVyOlwiaGFpIHswfSBob3Jhc1wifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImhcIixyZWxhdGl2ZTp7MDpcImVzdGEgaG9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZW4gezB9IGhcIixvdGhlcjpcImVuIHswfSBoXCJ9LHBhc3Q6e29uZTpcImhhaSB7MH0gaFwiLG90aGVyOlwiaGFpIHswfSBoXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIm1pbnV0b1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBtaW51dG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBtaW51dG9cIixvdGhlcjpcImVuIHswfSBtaW51dG9zXCJ9LHBhc3Q6e29uZTpcImhhaSB7MH0gbWludXRvXCIsb3RoZXI6XCJoYWkgezB9IG1pbnV0b3NcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwiZXN0ZSBtaW51dG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBtaW5cIixvdGhlcjpcImVuIHswfSBtaW5cIn0scGFzdDp7b25lOlwiaGFpIHswfSBtaW5cIixvdGhlcjpcImhhaSB7MH0gbWluXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcInNlZ3VuZG9cIixyZWxhdGl2ZTp7MDpcImFnb3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbiB7MH0gc2VndW5kb1wiLG90aGVyOlwiZW4gezB9IHNlZ3VuZG9zXCJ9LHBhc3Q6e29uZTpcImhhaSB7MH0gc2VndW5kb1wiLG90aGVyOlwiaGFpIHswfSBzZWd1bmRvc1wifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic1wiLHJlbGF0aXZlOnswOlwiYWdvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVuIHswfSBzXCIsb3RoZXI6XCJlbiB7MH0gc1wifSxwYXN0OntvbmU6XCJoYWkgezB9IHNcIixvdGhlcjpcImhhaSB7MH0gc1wifX19fX1dfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1pbnRsL2xvY2FsZS1kYXRhL2dsLmpzXG4vLyBtb2R1bGUgaWQgPSAyMDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIiFmdW5jdGlvbihlLGEpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWEoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKGEpOihlLlJlYWN0SW50bExvY2FsZURhdGE9ZS5SZWFjdEludGxMb2NhbGVEYXRhfHx7fSxlLlJlYWN0SW50bExvY2FsZURhdGEuaXQ9YSgpKX0odGhpcyxmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3JldHVyblt7bG9jYWxlOlwiaXRcIixwbHVyYWxSdWxlRnVuY3Rpb246ZnVuY3Rpb24oZSxhKXt2YXIgdD0hU3RyaW5nKGUpLnNwbGl0KFwiLlwiKVsxXTtyZXR1cm4gYT8xMT09ZXx8OD09ZXx8ODA9PWV8fDgwMD09ZT9cIm1hbnlcIjpcIm90aGVyXCI6MT09ZSYmdD9cIm9uZVwiOlwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcImFubm9cIixyZWxhdGl2ZTp7MDpcInF1ZXN04oCZYW5ub1wiLDE6XCJhbm5vIHByb3NzaW1vXCIsXCItMVwiOlwiYW5ubyBzY29yc29cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInRyYSB7MH0gYW5ub1wiLG90aGVyOlwidHJhIHswfSBhbm5pXCJ9LHBhc3Q6e29uZTpcInswfSBhbm5vIGZhXCIsb3RoZXI6XCJ7MH0gYW5uaSBmYVwifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImFubm9cIixyZWxhdGl2ZTp7MDpcInF1ZXN04oCZYW5ub1wiLDE6XCJhbm5vIHByb3NzaW1vXCIsXCItMVwiOlwiYW5ubyBzY29yc29cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInRyYSB7MH0gYW5ub1wiLG90aGVyOlwidHJhIHswfSBhbm5pXCJ9LHBhc3Q6e29uZTpcInswfSBhbm5vIGZhXCIsb3RoZXI6XCJ7MH0gYW5uaSBmYVwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm1lc2VcIixyZWxhdGl2ZTp7MDpcInF1ZXN0byBtZXNlXCIsMTpcIm1lc2UgcHJvc3NpbW9cIixcIi0xXCI6XCJtZXNlIHNjb3Jzb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwidHJhIHswfSBtZXNlXCIsb3RoZXI6XCJ0cmEgezB9IG1lc2lcIn0scGFzdDp7b25lOlwiezB9IG1lc2UgZmFcIixvdGhlcjpcInswfSBtZXNpIGZhXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1lc2VcIixyZWxhdGl2ZTp7MDpcInF1ZXN0byBtZXNlXCIsMTpcIm1lc2UgcHJvc3NpbW9cIixcIi0xXCI6XCJtZXNlIHNjb3Jzb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwidHJhIHswfSBtZXNlXCIsb3RoZXI6XCJ0cmEgezB9IG1lc2lcIn0scGFzdDp7b25lOlwiezB9IG1lc2UgZmFcIixvdGhlcjpcInswfSBtZXNpIGZhXCJ9fX0sZGF5OntkaXNwbGF5TmFtZTpcImdpb3Jub1wiLHJlbGF0aXZlOnswOlwib2dnaVwiLDE6XCJkb21hbmlcIiwyOlwiZG9wb2RvbWFuaVwiLFwiLTJcIjpcImzigJlhbHRybyBpZXJpXCIsXCItMVwiOlwiaWVyaVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwidHJhIHswfSBnaW9ybm9cIixvdGhlcjpcInRyYSB7MH0gZ2lvcm5pXCJ9LHBhc3Q6e29uZTpcInswfSBnaW9ybm8gZmFcIixvdGhlcjpcInswfSBnaW9ybmkgZmFcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImdcIixyZWxhdGl2ZTp7MDpcIm9nZ2lcIiwxOlwiZG9tYW5pXCIsMjpcImRvcG9kb21hbmlcIixcIi0yXCI6XCJs4oCZYWx0cm8gaWVyaVwiLFwiLTFcIjpcImllcmlcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInRyYSB7MH0gZ1wiLG90aGVyOlwidHJhIHswfSBnZ1wifSxwYXN0OntvbmU6XCJ7MH0gZyBmYVwiLG90aGVyOlwiezB9IGdnIGZhXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJvcmFcIixyZWxhdGl2ZTp7MDpcInF1ZXN04oCZb3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ0cmEgezB9IG9yYVwiLG90aGVyOlwidHJhIHswfSBvcmVcIn0scGFzdDp7b25lOlwiezB9IG9yYSBmYVwiLG90aGVyOlwiezB9IG9yZSBmYVwifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImguXCIscmVsYXRpdmU6ezA6XCJxdWVzdOKAmW9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwidHJhIHswfSBoXCIsb3RoZXI6XCJ0cmEgezB9IGhcIn0scGFzdDp7b25lOlwiezB9IGggZmFcIixvdGhlcjpcInswfSBoIGZhXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIm1pbnV0b1wiLHJlbGF0aXZlOnswOlwicXVlc3RvIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwidHJhIHswfSBtaW51dG9cIixvdGhlcjpcInRyYSB7MH0gbWludXRpXCJ9LHBhc3Q6e29uZTpcInswfSBtaW51dG8gZmFcIixvdGhlcjpcInswfSBtaW51dGkgZmFcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwicXVlc3RvIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwidHJhIHswfSBtaW5cIixvdGhlcjpcInRyYSB7MH0gbWluXCJ9LHBhc3Q6e29uZTpcInswfSBtaW4gZmFcIixvdGhlcjpcInswfSBtaW4gZmFcIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2Vjb25kb1wiLHJlbGF0aXZlOnswOlwib3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ0cmEgezB9IHNlY29uZG9cIixvdGhlcjpcInRyYSB7MH0gc2Vjb25kaVwifSxwYXN0OntvbmU6XCJ7MH0gc2Vjb25kbyBmYVwiLG90aGVyOlwiezB9IHNlY29uZGkgZmFcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNcIixyZWxhdGl2ZTp7MDpcIm9yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwidHJhIHswfSBzXCIsb3RoZXI6XCJ0cmEgezB9IHNlYy5cIn0scGFzdDp7b25lOlwiezB9IHMgZmFcIixvdGhlcjpcInswfSBzZWMuIGZhXCJ9fX19fSx7bG9jYWxlOlwiaXQtQ0hcIixwYXJlbnRMb2NhbGU6XCJpdFwifSx7bG9jYWxlOlwiaXQtU01cIixwYXJlbnRMb2NhbGU6XCJpdFwifSx7bG9jYWxlOlwiaXQtVkFcIixwYXJlbnRMb2NhbGU6XCJpdFwifV19KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWludGwvbG9jYWxlLWRhdGEvaXQuanNcbi8vIG1vZHVsZSBpZCA9IDIwNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiIWZ1bmN0aW9uKGUsdCl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGUuUmVhY3RJbnRsTG9jYWxlRGF0YT1lLlJlYWN0SW50bExvY2FsZURhdGF8fHt9LGUuUmVhY3RJbnRsTG9jYWxlRGF0YS5qYT10KCkpfSh0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7cmV0dXJuW3tsb2NhbGU6XCJqYVwiLHBsdXJhbFJ1bGVGdW5jdGlvbjpmdW5jdGlvbihlLHQpe3JldHVyblwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcIuW5tFwiLHJlbGF0aXZlOnswOlwi5LuK5bm0XCIsMTpcIue/jOW5tFwiLFwiLTFcIjpcIuaYqOW5tFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5bm05b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOW5tOWJjVwifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuW5tFwiLHJlbGF0aXZlOnswOlwi5LuK5bm0XCIsMTpcIue/jOW5tFwiLFwiLTFcIjpcIuaYqOW5tFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5bm05b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOW5tOWJjVwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIuaciFwiLHJlbGF0aXZlOnswOlwi5LuK5pyIXCIsMTpcIue/jOaciFwiLFwiLTFcIjpcIuWFiOaciFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g44GL5pyI5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOOBi+aciOWJjVwifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLmnIhcIixyZWxhdGl2ZTp7MDpcIuS7iuaciFwiLDE6XCLnv4zmnIhcIixcIi0xXCI6XCLlhYjmnIhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOOBi+aciOW+jFwifSxwYXN0OntvdGhlcjpcInswfSDjgYvmnIjliY1cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwi5pelXCIscmVsYXRpdmU6ezA6XCLku4rml6VcIiwxOlwi5piO5pelXCIsMjpcIuaYjuW+jOaXpVwiLFwiLTJcIjpcIuS4gOaYqOaXpVwiLFwiLTFcIjpcIuaYqOaXpVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5pel5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOaXpeWJjVwifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5pelXCIscmVsYXRpdmU6ezA6XCLku4rml6VcIiwxOlwi5piO5pelXCIsMjpcIuaYjuW+jOaXpVwiLFwiLTJcIjpcIuS4gOaYqOaXpVwiLFwiLTFcIjpcIuaYqOaXpVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5pel5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOaXpeWJjVwifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwi5pmCXCIscmVsYXRpdmU6ezA6XCIxIOaZgumWk+S7peWGhVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5pmC6ZaT5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOaZgumWk+WJjVwifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuaZglwiLHJlbGF0aXZlOnswOlwiMSDmmYLplpPku6XlhoVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOaZgumWk+W+jFwifSxwYXN0OntvdGhlcjpcInswfSDmmYLplpPliY1cIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwi5YiGXCIscmVsYXRpdmU6ezA6XCIxIOWIhuS7peWGhVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5YiG5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOWIhuWJjVwifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5YiGXCIscmVsYXRpdmU6ezA6XCIxIOWIhuS7peWGhVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5YiG5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOWIhuWJjVwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCLnp5JcIixyZWxhdGl2ZTp7MDpcIuS7ilwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g56eS5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOenkuWJjVwifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi56eSXCIscmVsYXRpdmU6ezA6XCLku4pcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOenkuW+jFwifSxwYXN0OntvdGhlcjpcInswfSDnp5LliY1cIn19fX19XX0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9qYS5qc1xuLy8gbW9kdWxlIGlkID0gMjA3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCIhZnVuY3Rpb24oZSx0KXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZS5SZWFjdEludGxMb2NhbGVEYXRhPWUuUmVhY3RJbnRsTG9jYWxlRGF0YXx8e30sZS5SZWFjdEludGxMb2NhbGVEYXRhLmtvPXQoKSl9KHRoaXMsZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtyZXR1cm5be2xvY2FsZTpcImtvXCIscGx1cmFsUnVsZUZ1bmN0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuXCJvdGhlclwifSxmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwi64WEXCIscmVsYXRpdmU6ezA6XCLsmKztlbRcIiwxOlwi64K064WEXCIsXCItMVwiOlwi7J6R64WEXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeuFhCDtm4RcIn0scGFzdDp7b3RoZXI6XCJ7MH3rhYQg7KCEXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi64WEXCIscmVsYXRpdmU6ezA6XCLsmKztlbRcIiwxOlwi64K064WEXCIsXCItMVwiOlwi7J6R64WEXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeuFhCDtm4RcIn0scGFzdDp7b3RoZXI6XCJ7MH3rhYQg7KCEXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwi7JuUXCIscmVsYXRpdmU6ezA6XCLsnbTrsogg64usXCIsMTpcIuuLpOydjCDri6xcIixcIi0xXCI6XCLsp4Drgpzri6xcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB96rCc7JuUIO2bhFwifSxwYXN0OntvdGhlcjpcInswfeqwnOyblCDsoIRcIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi7JuUXCIscmVsYXRpdmU6ezA6XCLsnbTrsogg64usXCIsMTpcIuuLpOydjCDri6xcIixcIi0xXCI6XCLsp4Drgpzri6xcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB96rCc7JuUIO2bhFwifSxwYXN0OntvdGhlcjpcInswfeqwnOyblCDsoIRcIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwi7J28XCIscmVsYXRpdmU6ezA6XCLsmKTriphcIiwxOlwi64K07J28XCIsMjpcIuuqqOugiFwiLFwiLTJcIjpcIuq3uOyggOq7mFwiLFwiLTFcIjpcIuyWtOygnFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3snbwg7ZuEXCJ9LHBhc3Q6e290aGVyOlwiezB97J28IOyghFwifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi7J28XCIscmVsYXRpdmU6ezA6XCLsmKTriphcIiwxOlwi64K07J28XCIsMjpcIuuqqOugiFwiLFwiLTJcIjpcIuq3uOyggOq7mFwiLFwiLTFcIjpcIuyWtOygnFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3snbwg7ZuEXCJ9LHBhc3Q6e290aGVyOlwiezB97J28IOyghFwifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwi7IucXCIscmVsYXRpdmU6ezA6XCLtmITsnqwg7Iuc6rCEXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeyLnOqwhCDtm4RcIn0scGFzdDp7b3RoZXI6XCJ7MH3si5zqsIQg7KCEXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi7IucXCIscmVsYXRpdmU6ezA6XCLtmITsnqwg7Iuc6rCEXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeyLnOqwhCDtm4RcIn0scGFzdDp7b3RoZXI6XCJ7MH3si5zqsIQg7KCEXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIuu2hFwiLHJlbGF0aXZlOnswOlwi7ZiE7J6sIOu2hFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3rtoQg7ZuEXCJ9LHBhc3Q6e290aGVyOlwiezB967aEIOyghFwifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi67aEXCIscmVsYXRpdmU6ezA6XCLtmITsnqwg67aEXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeu2hCDtm4RcIn0scGFzdDp7b3RoZXI6XCJ7MH3rtoQg7KCEXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcIuy0iFwiLHJlbGF0aXZlOnswOlwi7KeA6riIXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfey0iCDtm4RcIn0scGFzdDp7b3RoZXI6XCJ7MH3stIgg7KCEXCJ9fX0sXCJzZWNvbmQtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLstIhcIixyZWxhdGl2ZTp7MDpcIuyngOq4iFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3stIgg7ZuEXCJ9LHBhc3Q6e290aGVyOlwiezB97LSIIOyghFwifX19fX0se2xvY2FsZTpcImtvLUtQXCIscGFyZW50TG9jYWxlOlwia29cIn1dfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1pbnRsL2xvY2FsZS1kYXRhL2tvLmpzXG4vLyBtb2R1bGUgaWQgPSAyMDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIiFmdW5jdGlvbihlLG4pe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPW4oKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKG4pOihlLlJlYWN0SW50bExvY2FsZURhdGE9ZS5SZWFjdEludGxMb2NhbGVEYXRhfHx7fSxlLlJlYWN0SW50bExvY2FsZURhdGEubmw9bigpKX0odGhpcyxmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3JldHVyblt7bG9jYWxlOlwibmxcIixwbHVyYWxSdWxlRnVuY3Rpb246ZnVuY3Rpb24oZSxuKXt2YXIgYT0hU3RyaW5nKGUpLnNwbGl0KFwiLlwiKVsxXTtyZXR1cm4gbj9cIm90aGVyXCI6MT09ZSYmYT9cIm9uZVwiOlwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcImphYXJcIixyZWxhdGl2ZTp7MDpcImRpdCBqYWFyXCIsMTpcInZvbGdlbmQgamFhclwiLFwiLTFcIjpcInZvcmlnIGphYXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm92ZXIgezB9IGphYXJcIixvdGhlcjpcIm92ZXIgezB9IGphYXJcIn0scGFzdDp7b25lOlwiezB9IGphYXIgZ2VsZWRlblwiLG90aGVyOlwiezB9IGphYXIgZ2VsZWRlblwifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImpyXCIscmVsYXRpdmU6ezA6XCJkaXQgamFhclwiLDE6XCJ2b2xnZW5kIGphYXJcIixcIi0xXCI6XCJ2b3JpZyBqYWFyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJvdmVyIHswfSBqYWFyXCIsb3RoZXI6XCJvdmVyIHswfSBqYWFyXCJ9LHBhc3Q6e29uZTpcInswfSBqYWFyIGdlbGVkZW5cIixvdGhlcjpcInswfSBqYWFyIGdlbGVkZW5cIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJtYWFuZFwiLHJlbGF0aXZlOnswOlwiZGV6ZSBtYWFuZFwiLDE6XCJ2b2xnZW5kZSBtYWFuZFwiLFwiLTFcIjpcInZvcmlnZSBtYWFuZFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwib3ZlciB7MH0gbWFhbmRcIixvdGhlcjpcIm92ZXIgezB9IG1hYW5kZW5cIn0scGFzdDp7b25lOlwiezB9IG1hYW5kIGdlbGVkZW5cIixvdGhlcjpcInswfSBtYWFuZGVuIGdlbGVkZW5cIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibW5kXCIscmVsYXRpdmU6ezA6XCJkZXplIG1hYW5kXCIsMTpcInZvbGdlbmRlIG1hYW5kXCIsXCItMVwiOlwidm9yaWdlIG1hYW5kXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJvdmVyIHswfSBtYWFuZFwiLG90aGVyOlwib3ZlciB7MH0gbWFhbmRlblwifSxwYXN0OntvbmU6XCJ7MH0gbWFhbmQgZ2VsZWRlblwiLG90aGVyOlwiezB9IG1hYW5kZW4gZ2VsZWRlblwifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkYWdcIixyZWxhdGl2ZTp7MDpcInZhbmRhYWdcIiwxOlwibW9yZ2VuXCIsMjpcIm92ZXJtb3JnZW5cIixcIi0yXCI6XCJlZXJnaXN0ZXJlblwiLFwiLTFcIjpcImdpc3RlcmVuXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJvdmVyIHswfSBkYWdcIixvdGhlcjpcIm92ZXIgezB9IGRhZ2VuXCJ9LHBhc3Q6e29uZTpcInswfSBkYWcgZ2VsZWRlblwiLG90aGVyOlwiezB9IGRhZ2VuIGdlbGVkZW5cIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImRhZ1wiLHJlbGF0aXZlOnswOlwidmFuZGFhZ1wiLDE6XCJtb3JnZW5cIiwyOlwib3Zlcm1vcmdlblwiLFwiLTJcIjpcImVlcmdpc3RlcmVuXCIsXCItMVwiOlwiZ2lzdGVyZW5cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm92ZXIgezB9IGRhZ1wiLG90aGVyOlwib3ZlciB7MH0gZGduXCJ9LHBhc3Q6e29uZTpcInswfSBkYWcgZ2VsZWRlblwiLG90aGVyOlwiezB9IGRnbiBnZWxlZGVuXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJ1dXJcIixyZWxhdGl2ZTp7MDpcImJpbm5lbiBlZW4gdXVyXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJvdmVyIHswfSB1dXJcIixvdGhlcjpcIm92ZXIgezB9IHV1clwifSxwYXN0OntvbmU6XCJ7MH0gdXVyIGdlbGVkZW5cIixvdGhlcjpcInswfSB1dXIgZ2VsZWRlblwifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInV1clwiLHJlbGF0aXZlOnswOlwiYmlubmVuIGVlbiB1dXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm92ZXIgezB9IHV1clwiLG90aGVyOlwib3ZlciB7MH0gdXVyXCJ9LHBhc3Q6e29uZTpcInswfSB1dXIgZ2VsZWRlblwiLG90aGVyOlwiezB9IHV1ciBnZWxlZGVuXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIm1pbnV1dFwiLHJlbGF0aXZlOnswOlwiYmlubmVuIGVlbiBtaW51dXRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm92ZXIgezB9IG1pbnV1dFwiLG90aGVyOlwib3ZlciB7MH0gbWludXRlblwifSxwYXN0OntvbmU6XCJ7MH0gbWludXV0IGdlbGVkZW5cIixvdGhlcjpcInswfSBtaW51dGVuIGdlbGVkZW5cIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwiYmlubmVuIGVlbiBtaW51dXRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm92ZXIgezB9IG1pbi5cIixvdGhlcjpcIm92ZXIgezB9IG1pbi5cIn0scGFzdDp7b25lOlwiezB9IG1pbi4gZ2VsZWRlblwiLG90aGVyOlwiezB9IG1pbi4gZ2VsZWRlblwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJzZWNvbmRlXCIscmVsYXRpdmU6ezA6XCJudVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwib3ZlciB7MH0gc2Vjb25kZVwiLG90aGVyOlwib3ZlciB7MH0gc2Vjb25kZW5cIn0scGFzdDp7b25lOlwiezB9IHNlY29uZGUgZ2VsZWRlblwiLG90aGVyOlwiezB9IHNlY29uZGVuIGdlbGVkZW5cIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNlY1wiLHJlbGF0aXZlOnswOlwibnVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm92ZXIgezB9IHNlYy5cIixvdGhlcjpcIm92ZXIgezB9IHNlYy5cIn0scGFzdDp7b25lOlwiezB9IHNlYy4gZ2VsZWRlblwiLG90aGVyOlwiezB9IHNlYy4gZ2VsZWRlblwifX19fX0se2xvY2FsZTpcIm5sLUFXXCIscGFyZW50TG9jYWxlOlwibmxcIn0se2xvY2FsZTpcIm5sLUJFXCIscGFyZW50TG9jYWxlOlwibmxcIn0se2xvY2FsZTpcIm5sLUJRXCIscGFyZW50TG9jYWxlOlwibmxcIn0se2xvY2FsZTpcIm5sLUNXXCIscGFyZW50TG9jYWxlOlwibmxcIn0se2xvY2FsZTpcIm5sLVNSXCIscGFyZW50TG9jYWxlOlwibmxcIn0se2xvY2FsZTpcIm5sLVNYXCIscGFyZW50TG9jYWxlOlwibmxcIn1dfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1pbnRsL2xvY2FsZS1kYXRhL25sLmpzXG4vLyBtb2R1bGUgaWQgPSAyMDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIiFmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOihlLlJlYWN0SW50bExvY2FsZURhdGE9ZS5SZWFjdEludGxMb2NhbGVEYXRhfHx7fSxlLlJlYWN0SW50bExvY2FsZURhdGEucGw9dCgpKX0odGhpcyxmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3JldHVyblt7bG9jYWxlOlwicGxcIixwbHVyYWxSdWxlRnVuY3Rpb246ZnVuY3Rpb24oZSx0KXt2YXIgYT1TdHJpbmcoZSkuc3BsaXQoXCIuXCIpLG09YVswXSxpPSFhWzFdLG49bS5zbGljZSgtMSksdT1tLnNsaWNlKC0yKTtyZXR1cm4gdD9cIm90aGVyXCI6MT09ZSYmaT9cIm9uZVwiOmkmJm4+PTImJm48PTQmJih1PDEyfHx1PjE0KT9cImZld1wiOmkmJjEhPW0mJigwPT1ufHwxPT1uKXx8aSYmbj49NSYmbjw9OXx8aSYmdT49MTImJnU8PTE0P1wibWFueVwiOlwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcInJva1wiLHJlbGF0aXZlOnswOlwidyB0eW0gcm9rdVwiLDE6XCJ3IHByenlzesWCeW0gcm9rdVwiLFwiLTFcIjpcIncgemVzesWCeW0gcm9rdVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiemEgezB9IHJva1wiLGZldzpcInphIHswfSBsYXRhXCIsbWFueTpcInphIHswfSBsYXRcIixvdGhlcjpcInphIHswfSByb2t1XCJ9LHBhc3Q6e29uZTpcInswfSByb2sgdGVtdVwiLGZldzpcInswfSBsYXRhIHRlbXVcIixtYW55OlwiezB9IGxhdCB0ZW11XCIsb3RoZXI6XCJ7MH0gcm9rdSB0ZW11XCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwici5cIixyZWxhdGl2ZTp7MDpcIncgdHltIHJva3VcIiwxOlwidyBwcnp5c3rFgnltIHJva3VcIixcIi0xXCI6XCJ3IHplc3rFgnltIHJva3VcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInphIHswfSByb2tcIixmZXc6XCJ6YSB7MH0gbGF0YVwiLG1hbnk6XCJ6YSB7MH0gbGF0XCIsb3RoZXI6XCJ6YSB7MH0gcm9rdVwifSxwYXN0OntvbmU6XCJ7MH0gcm9rIHRlbXVcIixmZXc6XCJ7MH0gbGF0YSB0ZW11XCIsbWFueTpcInswfSBsYXQgdGVtdVwiLG90aGVyOlwiezB9IHJva3UgdGVtdVwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm1pZXNpxIVjXCIscmVsYXRpdmU6ezA6XCJ3IHR5bSBtaWVzacSFY3VcIiwxOlwidyBwcnp5c3rFgnltIG1pZXNpxIVjdVwiLFwiLTFcIjpcIncgemVzesWCeW0gbWllc2nEhWN1XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gbWllc2nEhWNcIixmZXc6XCJ6YSB7MH0gbWllc2nEhWNlXCIsbWFueTpcInphIHswfSBtaWVzacSZY3lcIixvdGhlcjpcInphIHswfSBtaWVzacSFY2FcIn0scGFzdDp7b25lOlwiezB9IG1pZXNpxIVjIHRlbXVcIixmZXc6XCJ7MH0gbWllc2nEhWNlIHRlbXVcIixtYW55OlwiezB9IG1pZXNpxJljeSB0ZW11XCIsb3RoZXI6XCJ7MH0gbWllc2nEhWNhIHRlbXVcIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibWllcy5cIixyZWxhdGl2ZTp7MDpcIncgdHltIG1pZXNpxIVjdVwiLDE6XCJ3IHByenlzesWCeW0gbWllc2nEhWN1XCIsXCItMVwiOlwidyB6ZXN6xYJ5bSBtaWVzacSFY3VcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInphIHswfSBtaWVzLlwiLGZldzpcInphIHswfSBtaWVzLlwiLG1hbnk6XCJ6YSB7MH0gbWllcy5cIixvdGhlcjpcInphIHswfSBtaWVzLlwifSxwYXN0OntvbmU6XCJ7MH0gbWllcy4gdGVtdVwiLGZldzpcInswfSBtaWVzLiB0ZW11XCIsbWFueTpcInswfSBtaWVzLiB0ZW11XCIsb3RoZXI6XCJ7MH0gbWllcy4gdGVtdVwifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkemllxYRcIixyZWxhdGl2ZTp7MDpcImR6aXNpYWpcIiwxOlwianV0cm9cIiwyOlwicG9qdXRyemVcIixcIi0yXCI6XCJwcnplZHdjem9yYWpcIixcIi0xXCI6XCJ3Y3pvcmFqXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gZHppZcWEXCIsZmV3OlwiemEgezB9IGRuaVwiLG1hbnk6XCJ6YSB7MH0gZG5pXCIsb3RoZXI6XCJ6YSB7MH0gZG5pYVwifSxwYXN0OntvbmU6XCJ7MH0gZHppZcWEIHRlbXVcIixmZXc6XCJ7MH0gZG5pIHRlbXVcIixtYW55OlwiezB9IGRuaSB0ZW11XCIsb3RoZXI6XCJ7MH0gZG5pYSB0ZW11XCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJkemllxYRcIixyZWxhdGl2ZTp7MDpcImR6aXNpYWpcIiwxOlwianV0cm9cIiwyOlwicG9qdXRyemVcIixcIi0yXCI6XCJwcnplZHdjem9yYWpcIixcIi0xXCI6XCJ3Y3pvcmFqXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gZHppZcWEXCIsZmV3OlwiemEgezB9IGRuaVwiLG1hbnk6XCJ6YSB7MH0gZG5pXCIsb3RoZXI6XCJ6YSB7MH0gZG5pYVwifSxwYXN0OntvbmU6XCJ7MH0gZHppZcWEIHRlbXVcIixmZXc6XCJ7MH0gZG5pIHRlbXVcIixtYW55OlwiezB9IGRuaSB0ZW11XCIsb3RoZXI6XCJ7MH0gZG5pYSB0ZW11XCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJnb2R6aW5hXCIscmVsYXRpdmU6ezA6XCJ0YSBnb2R6aW5hXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gZ29kemluxJlcIixmZXc6XCJ6YSB7MH0gZ29kemlueVwiLG1hbnk6XCJ6YSB7MH0gZ29kemluXCIsb3RoZXI6XCJ6YSB7MH0gZ29kemlueVwifSxwYXN0OntvbmU6XCJ7MH0gZ29kemluxJkgdGVtdVwiLGZldzpcInswfSBnb2R6aW55IHRlbXVcIixtYW55OlwiezB9IGdvZHppbiB0ZW11XCIsb3RoZXI6XCJ7MH0gZ29kemlueSB0ZW11XCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiZ29kei5cIixyZWxhdGl2ZTp7MDpcInRhIGdvZHppbmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInphIHswfSBnb2R6LlwiLGZldzpcInphIHswfSBnb2R6LlwiLG1hbnk6XCJ6YSB7MH0gZ29kei5cIixvdGhlcjpcInphIHswfSBnb2R6LlwifSxwYXN0OntvbmU6XCJ7MH0gZ29kei4gdGVtdVwiLGZldzpcInswfSBnb2R6LiB0ZW11XCIsbWFueTpcInswfSBnb2R6LiB0ZW11XCIsb3RoZXI6XCJ7MH0gZ29kei4gdGVtdVwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dGFcIixyZWxhdGl2ZTp7MDpcInRhIG1pbnV0YVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiemEgezB9IG1pbnV0xJlcIixmZXc6XCJ6YSB7MH0gbWludXR5XCIsbWFueTpcInphIHswfSBtaW51dFwiLG90aGVyOlwiemEgezB9IG1pbnV0eVwifSxwYXN0OntvbmU6XCJ7MH0gbWludXTEmSB0ZW11XCIsZmV3OlwiezB9IG1pbnV0eSB0ZW11XCIsbWFueTpcInswfSBtaW51dCB0ZW11XCIsb3RoZXI6XCJ7MH0gbWludXR5IHRlbXVcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwidGEgbWludXRhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJ6YSB7MH0gbWluXCIsZmV3OlwiemEgezB9IG1pblwiLG1hbnk6XCJ6YSB7MH0gbWluXCIsb3RoZXI6XCJ6YSB7MH0gbWluXCJ9LHBhc3Q6e29uZTpcInswfSBtaW4gdGVtdVwiLGZldzpcInswfSBtaW4gdGVtdVwiLG1hbnk6XCJ7MH0gbWluIHRlbXVcIixvdGhlcjpcInswfSBtaW4gdGVtdVwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJzZWt1bmRhXCIscmVsYXRpdmU6ezA6XCJ0ZXJhelwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiemEgezB9IHNla3VuZMSZXCIsZmV3OlwiemEgezB9IHNla3VuZHlcIixtYW55OlwiemEgezB9IHNla3VuZFwiLG90aGVyOlwiemEgezB9IHNla3VuZHlcIn0scGFzdDp7b25lOlwiezB9IHNla3VuZMSZIHRlbXVcIixmZXc6XCJ7MH0gc2VrdW5keSB0ZW11XCIsbWFueTpcInswfSBzZWt1bmQgdGVtdVwiLG90aGVyOlwiezB9IHNla3VuZHkgdGVtdVwifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic2VrLlwiLHJlbGF0aXZlOnswOlwidGVyYXpcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcInphIHswfSBzZWsuXCIsZmV3OlwiemEgezB9IHNlay5cIixtYW55OlwiemEgezB9IHNlay5cIixvdGhlcjpcInphIHswfSBzZWsuXCJ9LHBhc3Q6e29uZTpcInswfSBzZWsuIHRlbXVcIixmZXc6XCJ7MH0gc2VrLiB0ZW11XCIsbWFueTpcInswfSBzZWsuIHRlbXVcIixvdGhlcjpcInswfSBzZWsuIHRlbXVcIn19fX19XX0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS9wbC5qc1xuLy8gbW9kdWxlIGlkID0gMjEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCIhZnVuY3Rpb24oZSx0KXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZS5SZWFjdEludGxMb2NhbGVEYXRhPWUuUmVhY3RJbnRsTG9jYWxlRGF0YXx8e30sZS5SZWFjdEludGxMb2NhbGVEYXRhLnB0PXQoKSl9KHRoaXMsZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtyZXR1cm5be2xvY2FsZTpcInB0XCIscGx1cmFsUnVsZUZ1bmN0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG89U3RyaW5nKGUpLnNwbGl0KFwiLlwiKVswXTtyZXR1cm4gdD9cIm90aGVyXCI6MD09b3x8MT09bz9cIm9uZVwiOlwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcImFub1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBhbm9cIiwxOlwicHLDs3hpbW8gYW5vXCIsXCItMVwiOlwiYW5vIHBhc3NhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVtIHswfSBhbm9cIixvdGhlcjpcImVtIHswfSBhbm9zXCJ9LHBhc3Q6e29uZTpcImjDoSB7MH0gYW5vXCIsb3RoZXI6XCJow6EgezB9IGFub3NcIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJhbm9cIixyZWxhdGl2ZTp7MDpcImVzdGUgYW5vXCIsMTpcInByw7N4aW1vIGFub1wiLFwiLTFcIjpcImFubyBwYXNzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbSB7MH0gYW5vXCIsb3RoZXI6XCJlbSB7MH0gYW5vc1wifSxwYXN0OntvbmU6XCJow6EgezB9IGFub1wiLG90aGVyOlwiaMOhIHswfSBhbm9zXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwibcOqc1wiLHJlbGF0aXZlOnswOlwiZXN0ZSBtw6pzXCIsMTpcInByw7N4aW1vIG3DqnNcIixcIi0xXCI6XCJtw6pzIHBhc3NhZG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVtIHswfSBtw6pzXCIsb3RoZXI6XCJlbSB7MH0gbWVzZXNcIn0scGFzdDp7b25lOlwiaMOhIHswfSBtw6pzXCIsb3RoZXI6XCJow6EgezB9IG1lc2VzXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm3DqnNcIixyZWxhdGl2ZTp7MDpcImVzdGUgbcOqc1wiLDE6XCJwcsOzeGltbyBtw6pzXCIsXCItMVwiOlwibcOqcyBwYXNzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbSB7MH0gbcOqc1wiLG90aGVyOlwiZW0gezB9IG1lc2VzXCJ9LHBhc3Q6e29uZTpcImjDoSB7MH0gbcOqc1wiLG90aGVyOlwiaMOhIHswfSBtZXNlc1wifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkaWFcIixyZWxhdGl2ZTp7MDpcImhvamVcIiwxOlwiYW1hbmjDo1wiLDI6XCJkZXBvaXMgZGUgYW1hbmjDo1wiLFwiLTJcIjpcImFudGVvbnRlbVwiLFwiLTFcIjpcIm9udGVtXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbSB7MH0gZGlhXCIsb3RoZXI6XCJlbSB7MH0gZGlhc1wifSxwYXN0OntvbmU6XCJow6EgezB9IGRpYVwiLG90aGVyOlwiaMOhIHswfSBkaWFzXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJkaWFcIixyZWxhdGl2ZTp7MDpcImhvamVcIiwxOlwiYW1hbmjDo1wiLDI6XCJkZXBvaXMgZGUgYW1hbmjDo1wiLFwiLTJcIjpcImFudGVvbnRlbVwiLFwiLTFcIjpcIm9udGVtXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbSB7MH0gZGlhXCIsb3RoZXI6XCJlbSB7MH0gZGlhc1wifSxwYXN0OntvbmU6XCJow6EgezB9IGRpYVwiLG90aGVyOlwiaMOhIHswfSBkaWFzXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCJob3JhXCIscmVsYXRpdmU6ezA6XCJlc3RhIGhvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVtIHswfSBob3JhXCIsb3RoZXI6XCJlbSB7MH0gaG9yYXNcIn0scGFzdDp7b25lOlwiaMOhIHswfSBob3JhXCIsb3RoZXI6XCJow6EgezB9IGhvcmFzXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiaFwiLHJlbGF0aXZlOnswOlwiZXN0YSBob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbSB7MH0gaFwiLG90aGVyOlwiZW0gezB9IGhcIn0scGFzdDp7b25lOlwiaMOhIHswfSBoXCIsb3RoZXI6XCJow6EgezB9IGhcIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwibWludXRvXCIscmVsYXRpdmU6ezA6XCJlc3RlIG1pbnV0b1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZW0gezB9IG1pbnV0b1wiLG90aGVyOlwiZW0gezB9IG1pbnV0b3NcIn0scGFzdDp7b25lOlwiaMOhIHswfSBtaW51dG9cIixvdGhlcjpcImjDoSB7MH0gbWludXRvc1wifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwibWluLlwiLHJlbGF0aXZlOnswOlwiZXN0ZSBtaW51dG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImVtIHswfSBtaW4uXCIsb3RoZXI6XCJlbSB7MH0gbWluLlwifSxwYXN0OntvbmU6XCJow6EgezB9IG1pbi5cIixvdGhlcjpcImjDoSB7MH0gbWluLlwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJzZWd1bmRvXCIscmVsYXRpdmU6ezA6XCJhZ29yYVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZW0gezB9IHNlZ3VuZG9cIixvdGhlcjpcImVtIHswfSBzZWd1bmRvc1wifSxwYXN0OntvbmU6XCJow6EgezB9IHNlZ3VuZG9cIixvdGhlcjpcImjDoSB7MH0gc2VndW5kb3NcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNlZy5cIixyZWxhdGl2ZTp7MDpcImFnb3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJlbSB7MH0gc2VnLlwiLG90aGVyOlwiZW0gezB9IHNlZy5cIn0scGFzdDp7b25lOlwiaMOhIHswfSBzZWcuXCIsb3RoZXI6XCJow6EgezB9IHNlZy5cIn19fX19LHtsb2NhbGU6XCJwdC1BT1wiLHBhcmVudExvY2FsZTpcInB0LVBUXCJ9LHtsb2NhbGU6XCJwdC1QVFwiLHBhcmVudExvY2FsZTpcInB0XCIscGx1cmFsUnVsZUZ1bmN0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIG89IVN0cmluZyhlKS5zcGxpdChcIi5cIilbMV07cmV0dXJuIHQ/XCJvdGhlclwiOjE9PWUmJm8/XCJvbmVcIjpcIm90aGVyXCJ9LGZpZWxkczp7eWVhcjp7ZGlzcGxheU5hbWU6XCJhbm9cIixyZWxhdGl2ZTp7MDpcImVzdGUgYW5vXCIsMTpcInByw7N4aW1vIGFub1wiLFwiLTFcIjpcImFubyBwYXNzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGFub1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBhbm9zXCJ9LHBhc3Q6e29uZTpcImjDoSB7MH0gYW5vXCIsb3RoZXI6XCJow6EgezB9IGFub3NcIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJhbm9cIixyZWxhdGl2ZTp7MDpcImVzdGUgYW5vXCIsMTpcInByw7N4aW1vIGFub1wiLFwiLTFcIjpcImFubyBwYXNzYWRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGFub1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBhbm9zXCJ9LHBhc3Q6e29uZTpcImjDoSB7MH0gYW5vXCIsb3RoZXI6XCJow6EgezB9IGFub3NcIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCJtw6pzXCIscmVsYXRpdmU6ezA6XCJlc3RlIG3DqnNcIiwxOlwicHLDs3hpbW8gbcOqc1wiLFwiLTFcIjpcIm3DqnMgcGFzc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtw6pzXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1lc2VzXCJ9LHBhc3Q6e29uZTpcImjDoSB7MH0gbcOqc1wiLG90aGVyOlwiaMOhIHswfSBtZXNlc1wifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtw6pzXCIscmVsYXRpdmU6ezA6XCJlc3RlIG3DqnNcIiwxOlwicHLDs3hpbW8gbcOqc1wiLFwiLTFcIjpcIm3DqnMgcGFzc2Fkb1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwiZGVudHJvIGRlIHswfSBtw6pzXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1lc2VzXCJ9LHBhc3Q6e29uZTpcImjDoSB7MH0gbcOqc1wiLG90aGVyOlwiaMOhIHswfSBtZXNlc1wifX19LGRheTp7ZGlzcGxheU5hbWU6XCJkaWFcIixyZWxhdGl2ZTp7MDpcImhvamVcIiwxOlwiYW1hbmjDo1wiLDI6XCJkZXBvaXMgZGUgYW1hbmjDo1wiLFwiLTJcIjpcImFudGVvbnRlbVwiLFwiLTFcIjpcIm9udGVtXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGRpYVwiLG90aGVyOlwiZGVudHJvIGRlIHswfSBkaWFzXCJ9LHBhc3Q6e29uZTpcImjDoSB7MH0gZGlhXCIsb3RoZXI6XCJow6EgezB9IGRpYXNcIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcImRpYVwiLHJlbGF0aXZlOnswOlwiaG9qZVwiLDE6XCJhbWFuaMOjXCIsMjpcImRlcG9pcyBkZSBhbWFuaMOjXCIsXCItMlwiOlwiYW50ZW9udGVtXCIsXCItMVwiOlwib250ZW1cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gZGlhXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IGRpYXNcIn0scGFzdDp7b25lOlwiaMOhIHswfSBkaWFcIixvdGhlcjpcImjDoSB7MH0gZGlhc1wifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwiaG9yYVwiLHJlbGF0aXZlOnswOlwiZXN0YSBob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGhvcmFcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gaG9yYXNcIn0scGFzdDp7b25lOlwiaMOhIHswfSBob3JhXCIsb3RoZXI6XCJow6EgezB9IGhvcmFzXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwiaFwiLHJlbGF0aXZlOnswOlwiZXN0YSBob3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IGhcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gaFwifSxwYXN0OntvbmU6XCJow6EgezB9IGhcIixvdGhlcjpcImjDoSB7MH0gaFwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCJtaW51dG9cIixyZWxhdGl2ZTp7MDpcImVzdGUgbWludXRvXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IG1pbnV0b1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBtaW51dG9zXCJ9LHBhc3Q6e29uZTpcImjDoSB7MH0gbWludXRvXCIsb3RoZXI6XCJow6EgezB9IG1pbnV0b3NcIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1pblwiLHJlbGF0aXZlOnswOlwiZXN0ZSBtaW51dG9cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gbWluXCIsb3RoZXI6XCJkZW50cm8gZGUgezB9IG1pblwifSxwYXN0OntvbmU6XCJow6EgezB9IG1pblwiLG90aGVyOlwiaMOhIHswfSBtaW5cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwic2VndW5kb1wiLHJlbGF0aXZlOnswOlwiYWdvcmFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcImRlbnRybyBkZSB7MH0gc2VndW5kb1wiLG90aGVyOlwiZGVudHJvIGRlIHswfSBzZWd1bmRvc1wifSxwYXN0OntvbmU6XCJow6EgezB9IHNlZ3VuZG9cIixvdGhlcjpcImjDoSB7MH0gc2VndW5kb3NcIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInNcIixyZWxhdGl2ZTp7MDpcImFnb3JhXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJkZW50cm8gZGUgezB9IHNcIixvdGhlcjpcImRlbnRybyBkZSB7MH0gc1wifSxwYXN0OntvbmU6XCJow6EgezB9IHNcIixvdGhlcjpcImjDoSB7MH0gc1wifX19fX0se2xvY2FsZTpcInB0LUNIXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn0se2xvY2FsZTpcInB0LUNWXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn0se2xvY2FsZTpcInB0LUdRXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn0se2xvY2FsZTpcInB0LUdXXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn0se2xvY2FsZTpcInB0LUxVXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn0se2xvY2FsZTpcInB0LU1PXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn0se2xvY2FsZTpcInB0LU1aXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn0se2xvY2FsZTpcInB0LVNUXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn0se2xvY2FsZTpcInB0LVRMXCIscGFyZW50TG9jYWxlOlwicHQtUFRcIn1dfSk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9yZWFjdC1pbnRsL2xvY2FsZS1kYXRhL3B0LmpzXG4vLyBtb2R1bGUgaWQgPSAyMTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIiFmdW5jdGlvbihlLGEpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWEoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKGEpOihlLlJlYWN0SW50bExvY2FsZURhdGE9ZS5SZWFjdEludGxMb2NhbGVEYXRhfHx7fSxlLlJlYWN0SW50bExvY2FsZURhdGEucnU9YSgpKX0odGhpcyxmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3JldHVyblt7bG9jYWxlOlwicnVcIixwbHVyYWxSdWxlRnVuY3Rpb246ZnVuY3Rpb24oZSxhKXt2YXIgdD1TdHJpbmcoZSkuc3BsaXQoXCIuXCIpLHI9dFswXSxvPSF0WzFdLG49ci5zbGljZSgtMSksbD1yLnNsaWNlKC0yKTtyZXR1cm4gYT9cIm90aGVyXCI6byYmMT09biYmMTEhPWw/XCJvbmVcIjpvJiZuPj0yJiZuPD00JiYobDwxMnx8bD4xNCk/XCJmZXdcIjpvJiYwPT1ufHxvJiZuPj01JiZuPD05fHxvJiZsPj0xMSYmbDw9MTQ/XCJtYW55XCI6XCJvdGhlclwifSxmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwi0LPQvtC0XCIscmVsYXRpdmU6ezA6XCLQsiDRjdGC0L7QvCDQs9C+0LTRg1wiLDE6XCLQsiDRgdC70LXQtNGD0Y7RidC10Lwg0LPQvtC00YNcIixcIi0xXCI6XCLQsiDQv9GA0L7RiNC70L7QvCDQs9C+0LTRg1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwi0YfQtdGA0LXQtyB7MH0g0LPQvtC0XCIsZmV3Olwi0YfQtdGA0LXQtyB7MH0g0LPQvtC00LBcIixtYW55Olwi0YfQtdGA0LXQtyB7MH0g0LvQtdGCXCIsb3RoZXI6XCLRh9C10YDQtdC3IHswfSDQs9C+0LTQsFwifSxwYXN0OntvbmU6XCJ7MH0g0LPQvtC0INC90LDQt9Cw0LRcIixmZXc6XCJ7MH0g0LPQvtC00LAg0L3QsNC30LDQtFwiLG1hbnk6XCJ7MH0g0LvQtdGCINC90LDQt9Cw0LRcIixvdGhlcjpcInswfSDQs9C+0LTQsCDQvdCw0LfQsNC0XCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi0LMuXCIscmVsYXRpdmU6ezA6XCLQsiDRjdGC0L7QvCDQsy5cIiwxOlwi0LIg0YHQu9C10LQuINCzLlwiLFwiLTFcIjpcItCyINC/0YDQvtGI0LvQvtC8INCzLlwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwi0YfQtdGA0LXQtyB7MH0g0LMuXCIsZmV3Olwi0YfQtdGA0LXQtyB7MH0g0LMuXCIsbWFueTpcItGH0LXRgNC10LcgezB9INC7LlwiLG90aGVyOlwi0YfQtdGA0LXQtyB7MH0g0LMuXCJ9LHBhc3Q6e29uZTpcInswfSDQsy4g0L3QsNC30LDQtFwiLGZldzpcInswfSDQsy4g0L3QsNC30LDQtFwiLG1hbnk6XCJ7MH0g0LsuINC90LDQt9Cw0LRcIixvdGhlcjpcInswfSDQsy4g0L3QsNC30LDQtFwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcItC80LXRgdGP0YZcIixyZWxhdGl2ZTp7MDpcItCyINGN0YLQvtC8INC80LXRgdGP0YbQtVwiLDE6XCLQsiDRgdC70LXQtNGD0Y7RidC10Lwg0LzQtdGB0Y/RhtC1XCIsXCItMVwiOlwi0LIg0L/RgNC+0YjQu9C+0Lwg0LzQtdGB0Y/RhtC1XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCLRh9C10YDQtdC3IHswfSDQvNC10YHRj9GGXCIsZmV3Olwi0YfQtdGA0LXQtyB7MH0g0LzQtdGB0Y/RhtCwXCIsbWFueTpcItGH0LXRgNC10LcgezB9INC80LXRgdGP0YbQtdCyXCIsb3RoZXI6XCLRh9C10YDQtdC3IHswfSDQvNC10YHRj9GG0LBcIn0scGFzdDp7b25lOlwiezB9INC80LXRgdGP0YYg0L3QsNC30LDQtFwiLGZldzpcInswfSDQvNC10YHRj9GG0LAg0L3QsNC30LDQtFwiLG1hbnk6XCJ7MH0g0LzQtdGB0Y/RhtC10LIg0L3QsNC30LDQtFwiLG90aGVyOlwiezB9INC80LXRgdGP0YbQsCDQvdCw0LfQsNC0XCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcItC80LXRgS5cIixyZWxhdGl2ZTp7MDpcItCyINGN0YLQvtC8INC80LXRgS5cIiwxOlwi0LIg0YHQu9C10LTRg9GO0YnQtdC8INC80LXRgS5cIixcIi0xXCI6XCLQsiDQv9GA0L7RiNC70L7QvCDQvNC10YEuXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCLRh9C10YDQtdC3IHswfSDQvNC10YEuXCIsZmV3Olwi0YfQtdGA0LXQtyB7MH0g0LzQtdGBLlwiLG1hbnk6XCLRh9C10YDQtdC3IHswfSDQvNC10YEuXCIsb3RoZXI6XCLRh9C10YDQtdC3IHswfSDQvNC10YEuXCJ9LHBhc3Q6e29uZTpcInswfSDQvNC10YEuINC90LDQt9Cw0LRcIixmZXc6XCJ7MH0g0LzQtdGBLiDQvdCw0LfQsNC0XCIsbWFueTpcInswfSDQvNC10YEuINC90LDQt9Cw0LRcIixvdGhlcjpcInswfSDQvNC10YEuINC90LDQt9Cw0LRcIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwi0LTQtdC90YxcIixyZWxhdGl2ZTp7MDpcItGB0LXQs9C+0LTQvdGPXCIsMTpcItC30LDQstGC0YDQsFwiLDI6XCLQv9C+0YHQu9C10LfQsNCy0YLRgNCwXCIsXCItMlwiOlwi0L/QvtC30LDQstGH0LXRgNCwXCIsXCItMVwiOlwi0LLRh9C10YDQsFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwi0YfQtdGA0LXQtyB7MH0g0LTQtdC90YxcIixmZXc6XCLRh9C10YDQtdC3IHswfSDQtNC90Y9cIixtYW55Olwi0YfQtdGA0LXQtyB7MH0g0LTQvdC10LlcIixvdGhlcjpcItGH0LXRgNC10LcgezB9INC00L3Rj1wifSxwYXN0OntvbmU6XCJ7MH0g0LTQtdC90Ywg0L3QsNC30LDQtFwiLGZldzpcInswfSDQtNC90Y8g0L3QsNC30LDQtFwiLG1hbnk6XCJ7MH0g0LTQvdC10Lkg0L3QsNC30LDQtFwiLG90aGVyOlwiezB9INC00L3RjyDQvdCw0LfQsNC0XCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLQtNC9LlwiLHJlbGF0aXZlOnswOlwi0YHQtdCz0L7QtNC90Y9cIiwxOlwi0LfQsNCy0YLRgNCwXCIsMjpcItC/0L7RgdC70LXQt9Cw0LLRgtGA0LBcIixcIi0yXCI6XCLQv9C+0LfQsNCy0YfQtdGA0LBcIixcIi0xXCI6XCLQstGH0LXRgNCwXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCLRh9C10YDQtdC3IHswfSDQtNC9LlwiLGZldzpcItGH0LXRgNC10LcgezB9INC00L0uXCIsbWFueTpcItGH0LXRgNC10LcgezB9INC00L0uXCIsb3RoZXI6XCLRh9C10YDQtdC3IHswfSDQtNC9LlwifSxwYXN0OntvbmU6XCJ7MH0g0LTQvS4g0L3QsNC30LDQtFwiLGZldzpcInswfSDQtNC9LiDQvdCw0LfQsNC0XCIsbWFueTpcInswfSDQtNC9LiDQvdCw0LfQsNC0XCIsb3RoZXI6XCJ7MH0g0LTQvS4g0L3QsNC30LDQtFwifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwi0YfQsNGBXCIscmVsYXRpdmU6ezA6XCLQsiDRjdGC0L7RgiDRh9Cw0YFcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcItGH0LXRgNC10LcgezB9INGH0LDRgVwiLGZldzpcItGH0LXRgNC10LcgezB9INGH0LDRgdCwXCIsbWFueTpcItGH0LXRgNC10LcgezB9INGH0LDRgdC+0LJcIixvdGhlcjpcItGH0LXRgNC10LcgezB9INGH0LDRgdCwXCJ9LHBhc3Q6e29uZTpcInswfSDRh9Cw0YEg0L3QsNC30LDQtFwiLGZldzpcInswfSDRh9Cw0YHQsCDQvdCw0LfQsNC0XCIsbWFueTpcInswfSDRh9Cw0YHQvtCyINC90LDQt9Cw0LRcIixvdGhlcjpcInswfSDRh9Cw0YHQsCDQvdCw0LfQsNC0XCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi0YdcIixyZWxhdGl2ZTp7MDpcItCyINGN0YLQvtGCINGH0LDRgVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwi0YfQtdGA0LXQtyB7MH3CoNGHLlwiLGZldzpcItGH0LXRgNC10LcgezB9INGHLlwiLG1hbnk6XCLRh9C10YDQtdC3IHswfSDRhy5cIixvdGhlcjpcItGH0LXRgNC10LcgezB9INGHLlwifSxwYXN0OntvbmU6XCJ7MH3CoNGHLiDQvdCw0LfQsNC0XCIsZmV3OlwiezB9INGHLiDQvdCw0LfQsNC0XCIsbWFueTpcInswfSDRhy4g0L3QsNC30LDQtFwiLG90aGVyOlwiezB9INGHLiDQvdCw0LfQsNC0XCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcItC80LjQvdGD0YLQsFwiLHJlbGF0aXZlOnswOlwi0LIg0Y3RgtGDINC80LjQvdGD0YLRg1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwi0YfQtdGA0LXQtyB7MH0g0LzQuNC90YPRgtGDXCIsZmV3Olwi0YfQtdGA0LXQtyB7MH0g0LzQuNC90YPRgtGLXCIsbWFueTpcItGH0LXRgNC10LcgezB9INC80LjQvdGD0YJcIixvdGhlcjpcItGH0LXRgNC10LcgezB9INC80LjQvdGD0YLRi1wifSxwYXN0OntvbmU6XCJ7MH0g0LzQuNC90YPRgtGDINC90LDQt9Cw0LRcIixmZXc6XCJ7MH0g0LzQuNC90YPRgtGLINC90LDQt9Cw0LRcIixtYW55OlwiezB9INC80LjQvdGD0YIg0L3QsNC30LDQtFwiLG90aGVyOlwiezB9INC80LjQvdGD0YLRiyDQvdCw0LfQsNC0XCJ9fX0sXCJtaW51dGUtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLQvNC40L0uXCIscmVsYXRpdmU6ezA6XCLQsiDRjdGC0YMg0LzQuNC90YPRgtGDXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCLRh9C10YDQtdC3IHswfSDQvNC40L0uXCIsZmV3Olwi0YfQtdGA0LXQtyB7MH0g0LzQuNC9LlwiLG1hbnk6XCLRh9C10YDQtdC3IHswfSDQvNC40L0uXCIsb3RoZXI6XCLRh9C10YDQtdC3IHswfSDQvNC40L0uXCJ9LHBhc3Q6e29uZTpcInswfSDQvNC40L0uINC90LDQt9Cw0LRcIixmZXc6XCJ7MH0g0LzQuNC9LiDQvdCw0LfQsNC0XCIsbWFueTpcInswfSDQvNC40L0uINC90LDQt9Cw0LRcIixvdGhlcjpcInswfSDQvNC40L0uINC90LDQt9Cw0LRcIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwi0YHQtdC60YPQvdC00LBcIixyZWxhdGl2ZTp7MDpcItGB0LXQudGH0LDRgVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwi0YfQtdGA0LXQtyB7MH0g0YHQtdC60YPQvdC00YNcIixmZXc6XCLRh9C10YDQtdC3IHswfSDRgdC10LrRg9C90LTRi1wiLG1hbnk6XCLRh9C10YDQtdC3IHswfSDRgdC10LrRg9C90LRcIixvdGhlcjpcItGH0LXRgNC10LcgezB9INGB0LXQutGD0L3QtNGLXCJ9LHBhc3Q6e29uZTpcInswfSDRgdC10LrRg9C90LTRgyDQvdCw0LfQsNC0XCIsZmV3OlwiezB9INGB0LXQutGD0L3QtNGLINC90LDQt9Cw0LRcIixtYW55OlwiezB9INGB0LXQutGD0L3QtCDQvdCw0LfQsNC0XCIsb3RoZXI6XCJ7MH0g0YHQtdC60YPQvdC00Ysg0L3QsNC30LDQtFwifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi0YHQtdC6LlwiLHJlbGF0aXZlOnswOlwi0YHQtdC50YfQsNGBXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCLRh9C10YDQtdC3IHswfcKg0YHQtdC6LlwiLGZldzpcItGH0LXRgNC10LcgezB9wqDRgdC10LouXCIsbWFueTpcItGH0LXRgNC10LcgezB9wqDRgdC10LouXCIsb3RoZXI6XCLRh9C10YDQtdC3IHswfcKg0YHQtdC6LlwifSxwYXN0OntvbmU6XCJ7MH0g0YHQtdC6LiDQvdCw0LfQsNC0XCIsZmV3OlwiezB9INGB0LXQui4g0L3QsNC30LDQtFwiLG1hbnk6XCJ7MH0g0YHQtdC6LiDQvdCw0LfQsNC0XCIsb3RoZXI6XCJ7MH0g0YHQtdC6LiDQvdCw0LfQsNC0XCJ9fX19fSx7bG9jYWxlOlwicnUtQllcIixwYXJlbnRMb2NhbGU6XCJydVwifSx7bG9jYWxlOlwicnUtS0dcIixwYXJlbnRMb2NhbGU6XCJydVwifSx7bG9jYWxlOlwicnUtS1pcIixwYXJlbnRMb2NhbGU6XCJydVwifSx7bG9jYWxlOlwicnUtTURcIixwYXJlbnRMb2NhbGU6XCJydVwifSx7bG9jYWxlOlwicnUtVUFcIixwYXJlbnRMb2NhbGU6XCJydVwifV19KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWludGwvbG9jYWxlLWRhdGEvcnUuanNcbi8vIG1vZHVsZSBpZCA9IDIxMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiIWZ1bmN0aW9uKGUscil7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9cigpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUocik6KGUuUmVhY3RJbnRsTG9jYWxlRGF0YT1lLlJlYWN0SW50bExvY2FsZURhdGF8fHt9LGUuUmVhY3RJbnRsTG9jYWxlRGF0YS5zdj1yKCkpfSh0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7cmV0dXJuW3tsb2NhbGU6XCJzdlwiLHBsdXJhbFJ1bGVGdW5jdGlvbjpmdW5jdGlvbihlLHIpe3ZhciB0PVN0cmluZyhlKS5zcGxpdChcIi5cIiksYT0hdFsxXSxuPU51bWJlcih0WzBdKT09ZSxvPW4mJnRbMF0uc2xpY2UoLTEpLG09biYmdFswXS5zbGljZSgtMik7cmV0dXJuIHI/MSE9byYmMiE9b3x8MTE9PW18fDEyPT1tP1wib3RoZXJcIjpcIm9uZVwiOjE9PWUmJmE/XCJvbmVcIjpcIm90aGVyXCJ9LGZpZWxkczp7eWVhcjp7ZGlzcGxheU5hbWU6XCLDpXJcIixyZWxhdGl2ZTp7MDpcImkgw6VyXCIsMTpcIm7DpHN0YSDDpXJcIixcIi0xXCI6XCJpIGZqb2xcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm9tIHswfSDDpXJcIixvdGhlcjpcIm9tIHswfSDDpXJcIn0scGFzdDp7b25lOlwiZsO2ciB7MH0gw6VyIHNlZGFuXCIsb3RoZXI6XCJmw7ZyIHswfSDDpXIgc2VkYW5cIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLDpXJcIixyZWxhdGl2ZTp7MDpcImkgw6VyXCIsMTpcIm7DpHN0YSDDpXJcIixcIi0xXCI6XCJpIGZqb2xcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm9tIHswfSDDpXJcIixvdGhlcjpcIm9tIHswfSDDpXJcIn0scGFzdDp7b25lOlwiZsO2ciB7MH0gw6VyIHNlblwiLG90aGVyOlwiZsO2ciB7MH0gw6VyIHNlblwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIm3DpW5hZFwiLHJlbGF0aXZlOnswOlwiZGVubmEgbcOlbmFkXCIsMTpcIm7DpHN0YSBtw6VuYWRcIixcIi0xXCI6XCJmw7ZycmEgbcOlbmFkZW5cIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm9tIHswfSBtw6VuYWRcIixvdGhlcjpcIm9tIHswfSBtw6VuYWRlclwifSxwYXN0OntvbmU6XCJmw7ZyIHswfSBtw6VuYWQgc2VkYW5cIixvdGhlcjpcImbDtnIgezB9IG3DpW5hZGVyIHNlZGFuXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIm1cIixyZWxhdGl2ZTp7MDpcImRlbm5hIG3DpW4uXCIsMTpcIm7DpHN0YSBtw6VuLlwiLFwiLTFcIjpcImbDtnJyYSBtw6VuLlwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwib20gezB9IG3DpW4uXCIsb3RoZXI6XCJvbSB7MH0gbcOlbi5cIn0scGFzdDp7b25lOlwiZsO2ciB7MH0gbcOlbi4gc2VuXCIsb3RoZXI6XCJmw7ZyIHswfSBtw6VuLiBzZW5cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwiZGFnXCIscmVsYXRpdmU6ezA6XCJpIGRhZ1wiLDE6XCJpIG1vcmdvblwiLDI6XCJpIMO2dmVybW9yZ29uXCIsXCItMlwiOlwiaSBmw7ZycmfDpXJcIixcIi0xXCI6XCJpIGfDpXJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm9tIHswfSBkYWdcIixvdGhlcjpcIm9tIHswfSBkYWdhclwifSxwYXN0OntvbmU6XCJmw7ZyIHswfSBkYWcgc2VkYW5cIixvdGhlcjpcImbDtnIgezB9IGRhZ2FyIHNlZGFuXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJkYWdcIixyZWxhdGl2ZTp7MDpcImkgZGFnXCIsMTpcImkgbW9yZ29uXCIsMjpcImkgw7Z2ZXJtb3Jnb25cIixcIi0yXCI6XCJpIGbDtnJyZ8OlclwiLFwiLTFcIjpcImkgZ8OlclwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwib20gezB9IGRcIixvdGhlcjpcIm9tIHswfSBkXCJ9LHBhc3Q6e29uZTpcImbDtnIgezB9IGQgc2VkYW5cIixvdGhlcjpcImbDtnLCoHswfcKgZCBzZWRhblwifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwidGltbWVcIixyZWxhdGl2ZTp7MDpcImRlbm5hIHRpbW1lXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJvbSB7MH0gdGltbWVcIixvdGhlcjpcIm9tIHswfSB0aW1tYXJcIn0scGFzdDp7b25lOlwiZsO2ciB7MH0gdGltbWUgc2VkYW5cIixvdGhlcjpcImbDtnIgezB9IHRpbW1hciBzZWRhblwifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcInRpbVwiLHJlbGF0aXZlOnswOlwiZGVubmEgdGltbWVcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e29uZTpcIm9tIHswfSB0aW1cIixvdGhlcjpcIm9tIHswfSB0aW1cIn0scGFzdDp7b25lOlwiZsO2ciB7MH0gdGltIHNlZGFuXCIsb3RoZXI6XCJmw7ZyIHswfSB0aW0gc2VkYW5cIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwibWludXRcIixyZWxhdGl2ZTp7MDpcImRlbm5hIG1pbnV0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJvbSB7MH0gbWludXRcIixvdGhlcjpcIm9tIHswfSBtaW51dGVyXCJ9LHBhc3Q6e29uZTpcImbDtnIgezB9IG1pbnV0IHNlZGFuXCIsb3RoZXI6XCJmw7ZyIHswfSBtaW51dGVyIHNlZGFuXCJ9fX0sXCJtaW51dGUtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCJtaW5cIixyZWxhdGl2ZTp7MDpcImRlbm5hIG1pbnV0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJvbcKgezB9IG1pblwiLG90aGVyOlwib23CoHswfSBtaW5cIn0scGFzdDp7b25lOlwiZsO2ciB7MH0gbWluIHNlblwiLG90aGVyOlwiZsO2ciB7MH0gbWluIHNlblwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCJzZWt1bmRcIixyZWxhdGl2ZTp7MDpcIm51XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvbmU6XCJvbSB7MH0gc2VrdW5kXCIsb3RoZXI6XCJvbSB7MH0gc2VrdW5kZXJcIn0scGFzdDp7b25lOlwiZsO2ciB7MH0gc2VrdW5kIHNlZGFuXCIsb3RoZXI6XCJmw7ZyIHswfSBzZWt1bmRlciBzZWRhblwifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwic2VrXCIscmVsYXRpdmU6ezA6XCJudVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b25lOlwib23CoHswfSBzZWtcIixvdGhlcjpcIm9tIHswfSBzZWtcIn0scGFzdDp7b25lOlwiZsO2ciB7MH0gcyBzZW5cIixvdGhlcjpcImbDtnIgezB9IHMgc2VuXCJ9fX19fSx7bG9jYWxlOlwic3YtQVhcIixwYXJlbnRMb2NhbGU6XCJzdlwifSx7bG9jYWxlOlwic3YtRklcIixwYXJlbnRMb2NhbGU6XCJzdlwifV19KTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3JlYWN0LWludGwvbG9jYWxlLWRhdGEvc3YuanNcbi8vIG1vZHVsZSBpZCA9IDIxM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiIWZ1bmN0aW9uKGUsdCl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUodCk6KGUuUmVhY3RJbnRsTG9jYWxlRGF0YT1lLlJlYWN0SW50bExvY2FsZURhdGF8fHt9LGUuUmVhY3RJbnRsTG9jYWxlRGF0YS56aD10KCkpfSh0aGlzLGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7cmV0dXJuW3tsb2NhbGU6XCJ6aFwiLHBsdXJhbFJ1bGVGdW5jdGlvbjpmdW5jdGlvbihlLHQpe3JldHVyblwib3RoZXJcIn0sZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcIuW5tFwiLHJlbGF0aXZlOnswOlwi5LuK5bm0XCIsMTpcIuaYjuW5tFwiLFwiLTFcIjpcIuWOu+W5tFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3lubTlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3lubTliY1cIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLlubRcIixyZWxhdGl2ZTp7MDpcIuS7iuW5tFwiLDE6XCLmmI7lubRcIixcIi0xXCI6XCLljrvlubRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95bm05ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95bm05YmNXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwi5pyIXCIscmVsYXRpdmU6ezA6XCLmnKzmnIhcIiwxOlwi5LiL5Liq5pyIXCIsXCItMVwiOlwi5LiK5Liq5pyIXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeS4quaciOWQjlwifSxwYXN0OntvdGhlcjpcInswfeS4quaciOWJjVwifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLmnIhcIixyZWxhdGl2ZTp7MDpcIuacrOaciFwiLDE6XCLkuIvkuKrmnIhcIixcIi0xXCI6XCLkuIrkuKrmnIhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95Liq5pyI5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95Liq5pyI5YmNXCJ9fX0sZGF5OntkaXNwbGF5TmFtZTpcIuaXpVwiLHJlbGF0aXZlOnswOlwi5LuK5aSpXCIsMTpcIuaYjuWkqVwiLDI6XCLlkI7lpKlcIixcIi0yXCI6XCLliY3lpKlcIixcIi0xXCI6XCLmmKjlpKlcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95aSp5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95aSp5YmNXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLml6VcIixyZWxhdGl2ZTp7MDpcIuS7iuWkqVwiLDE6XCLmmI7lpKlcIiwyOlwi5ZCO5aSpXCIsXCItMlwiOlwi5YmN5aSpXCIsXCItMVwiOlwi5pio5aSpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeWkqeWQjlwifSxwYXN0OntvdGhlcjpcInswfeWkqeWJjVwifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwi5bCP5pe2XCIscmVsYXRpdmU6ezA6XCLov5nkuIDml7bpl7QgLyDmraTml7ZcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95bCP5pe25ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95bCP5pe25YmNXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5bCP5pe2XCIscmVsYXRpdmU6ezA6XCLov5nkuIDml7bpl7QgLyDmraTml7ZcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95bCP5pe25ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95bCP5pe25YmNXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIuWIhumSn1wiLHJlbGF0aXZlOnswOlwi5q2k5Yi7XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeWIhumSn+WQjlwifSxwYXN0OntvdGhlcjpcInswfeWIhumSn+WJjVwifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5YiGXCIscmVsYXRpdmU6ezA6XCLmraTliLtcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95YiG6ZKf5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95YiG6ZKf5YmNXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcIuenklwiLHJlbGF0aXZlOnswOlwi546w5ZyoXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeenkumSn+WQjlwifSxwYXN0OntvdGhlcjpcInswfeenkumSn+WJjVwifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi56eSXCIscmVsYXRpdmU6ezA6XCLnjrDlnKhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB956eS5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB956eS5YmNXCJ9fX19fSx7bG9jYWxlOlwiemgtSGFuc1wiLHBhcmVudExvY2FsZTpcInpoXCJ9LHtsb2NhbGU6XCJ6aC1IYW5zLUhLXCIscGFyZW50TG9jYWxlOlwiemgtSGFuc1wiLGZpZWxkczp7eWVhcjp7ZGlzcGxheU5hbWU6XCLlubRcIixyZWxhdGl2ZTp7MDpcIuS7iuW5tFwiLDE6XCLmmI7lubRcIixcIi0xXCI6XCLljrvlubRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95bm05ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95bm05YmNXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5bm0XCIscmVsYXRpdmU6ezA6XCLku4rlubRcIiwxOlwi5piO5bm0XCIsXCItMVwiOlwi5Y675bm0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeW5tOWQjlwifSxwYXN0OntvdGhlcjpcInswfeW5tOWJjVwifX19LG1vbnRoOntkaXNwbGF5TmFtZTpcIuaciFwiLHJlbGF0aXZlOnswOlwi5pys5pyIXCIsMTpcIuS4i+S4quaciFwiLFwiLTFcIjpcIuS4iuS4quaciFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3kuKrmnIjlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3kuKrmnIjliY1cIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5pyIXCIscmVsYXRpdmU6ezA6XCLmnKzmnIhcIiwxOlwi5LiL5Liq5pyIXCIsXCItMVwiOlwi5LiK5Liq5pyIXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeS4quaciOWQjlwifSxwYXN0OntvdGhlcjpcInswfeS4quaciOWJjVwifX19LGRheTp7ZGlzcGxheU5hbWU6XCLml6VcIixyZWxhdGl2ZTp7MDpcIuS7iuWkqVwiLDE6XCLmmI7lpKlcIiwyOlwi5ZCO5aSpXCIsXCItMlwiOlwi5YmN5aSpXCIsXCItMVwiOlwi5pio5aSpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeWkqeWQjlwifSxwYXN0OntvdGhlcjpcInswfeWkqeWJjVwifX19LFwiZGF5LXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5pelXCIscmVsYXRpdmU6ezA6XCLku4rlpKlcIiwxOlwi5piO5aSpXCIsMjpcIuWQjuWkqVwiLFwiLTJcIjpcIuWJjeWkqVwiLFwiLTFcIjpcIuaYqOWkqVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3lpKnlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3lpKnliY1cIn19fSxob3VyOntkaXNwbGF5TmFtZTpcIuWwj+aXtlwiLHJlbGF0aXZlOnswOlwi6L+Z5LiA5pe26Ze0IC8g5q2k5pe2XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeWwj+aXtuWQjlwifSxwYXN0OntvdGhlcjpcInswfeWwj+aXtuWJjVwifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuWwj+aXtlwiLHJlbGF0aXZlOnswOlwi6L+Z5LiA5pe26Ze0IC8g5q2k5pe2XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeWwj+aXtuWQjlwifSxwYXN0OntvdGhlcjpcInswfeWwj+aXtuWJjVwifX19LG1pbnV0ZTp7ZGlzcGxheU5hbWU6XCLliIbpkp9cIixyZWxhdGl2ZTp7MDpcIuatpOWIu1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3liIbpkp/lkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3liIbpkp/liY1cIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuWIhlwiLHJlbGF0aXZlOnswOlwi5q2k5Yi7XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeWIhumSn+WQjlwifSxwYXN0OntvdGhlcjpcInswfeWIhumSn+WJjVwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCLnp5JcIixyZWxhdGl2ZTp7MDpcIueOsOWcqFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3np5LlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3np5LliY1cIn19fSxcInNlY29uZC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuenklwiLHJlbGF0aXZlOnswOlwi546w5ZyoXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeenkuWQjlwifSxwYXN0OntvdGhlcjpcInswfeenkuWJjVwifX19fX0se2xvY2FsZTpcInpoLUhhbnMtTU9cIixwYXJlbnRMb2NhbGU6XCJ6aC1IYW5zXCIsZmllbGRzOnt5ZWFyOntkaXNwbGF5TmFtZTpcIuW5tFwiLHJlbGF0aXZlOnswOlwi5LuK5bm0XCIsMTpcIuaYjuW5tFwiLFwiLTFcIjpcIuWOu+W5tFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3lubTlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3lubTliY1cIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLlubRcIixyZWxhdGl2ZTp7MDpcIuS7iuW5tFwiLDE6XCLmmI7lubRcIixcIi0xXCI6XCLljrvlubRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95bm05ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95bm05YmNXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwi5pyIXCIscmVsYXRpdmU6ezA6XCLmnKzmnIhcIiwxOlwi5LiL5Liq5pyIXCIsXCItMVwiOlwi5LiK5Liq5pyIXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeS4quaciOWQjlwifSxwYXN0OntvdGhlcjpcInswfeS4quaciOWJjVwifX19LFwibW9udGgtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLmnIhcIixyZWxhdGl2ZTp7MDpcIuacrOaciFwiLDE6XCLkuIvkuKrmnIhcIixcIi0xXCI6XCLkuIrkuKrmnIhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95Liq5pyI5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95Liq5pyI5YmNXCJ9fX0sZGF5OntkaXNwbGF5TmFtZTpcIuaXpVwiLHJlbGF0aXZlOnswOlwi5LuK5aSpXCIsMTpcIuaYjuWkqVwiLDI6XCLlkI7lpKlcIixcIi0yXCI6XCLliY3lpKlcIixcIi0xXCI6XCLmmKjlpKlcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95aSp5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95aSp5YmNXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLml6VcIixyZWxhdGl2ZTp7MDpcIuS7iuWkqVwiLDE6XCLmmI7lpKlcIiwyOlwi5ZCO5aSpXCIsXCItMlwiOlwi5YmN5aSpXCIsXCItMVwiOlwi5pio5aSpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeWkqeWQjlwifSxwYXN0OntvdGhlcjpcInswfeWkqeWJjVwifX19LGhvdXI6e2Rpc3BsYXlOYW1lOlwi5bCP5pe2XCIscmVsYXRpdmU6ezA6XCLov5nkuIDml7bpl7QgLyDmraTml7ZcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95bCP5pe25ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95bCP5pe25YmNXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5bCP5pe2XCIscmVsYXRpdmU6ezA6XCLov5nkuIDml7bpl7QgLyDmraTml7ZcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95bCP5pe25ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95bCP5pe25YmNXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIuWIhumSn1wiLHJlbGF0aXZlOnswOlwi5q2k5Yi7XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeWIhumSn+WQjlwifSxwYXN0OntvdGhlcjpcInswfeWIhumSn+WJjVwifX19LFwibWludXRlLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5YiGXCIscmVsYXRpdmU6ezA6XCLmraTliLtcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95YiG6ZKf5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95YiG6ZKf5YmNXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcIuenklwiLHJlbGF0aXZlOnswOlwi546w5ZyoXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeenkuWQjlwifSxwYXN0OntvdGhlcjpcInswfeenkuWJjVwifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi56eSXCIscmVsYXRpdmU6ezA6XCLnjrDlnKhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB956eS5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB956eS5YmNXCJ9fX19fSx7bG9jYWxlOlwiemgtSGFucy1TR1wiLHBhcmVudExvY2FsZTpcInpoLUhhbnNcIixmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwi5bm0XCIscmVsYXRpdmU6ezA6XCLku4rlubRcIiwxOlwi5piO5bm0XCIsXCItMVwiOlwi5Y675bm0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfeW5tOWQjlwifSxwYXN0OntvdGhlcjpcInswfeW5tOWJjVwifX19LFwieWVhci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuW5tFwiLHJlbGF0aXZlOnswOlwi5LuK5bm0XCIsMTpcIuaYjuW5tFwiLFwiLTFcIjpcIuWOu+W5tFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3lubTlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3lubTliY1cIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCLmnIhcIixyZWxhdGl2ZTp7MDpcIuacrOaciFwiLDE6XCLkuIvkuKrmnIhcIixcIi0xXCI6XCLkuIrkuKrmnIhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95Liq5pyI5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95Liq5pyI5YmNXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuaciFwiLHJlbGF0aXZlOnswOlwi5pys5pyIXCIsMTpcIuS4i+S4quaciFwiLFwiLTFcIjpcIuS4iuS4quaciFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3kuKrmnIjlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3kuKrmnIjliY1cIn19fSxkYXk6e2Rpc3BsYXlOYW1lOlwi5pelXCIscmVsYXRpdmU6ezA6XCLku4rlpKlcIiwxOlwi5piO5aSpXCIsMjpcIuWQjuWkqVwiLFwiLTJcIjpcIuWJjeWkqVwiLFwiLTFcIjpcIuaYqOWkqVwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3lpKnlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3lpKnliY1cIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuaXpVwiLHJlbGF0aXZlOnswOlwi5LuK5aSpXCIsMTpcIuaYjuWkqVwiLDI6XCLlkI7lpKlcIixcIi0yXCI6XCLliY3lpKlcIixcIi0xXCI6XCLmmKjlpKlcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95aSp5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95aSp5YmNXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCLlsI/ml7ZcIixyZWxhdGl2ZTp7MDpcIui/meS4gOaXtumXtCAvIOatpOaXtlwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3lsI/ml7blkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3lsI/ml7bliY1cIn19fSxcImhvdXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLlsI/ml7ZcIixyZWxhdGl2ZTp7MDpcIui/meS4gOaXtumXtCAvIOatpOaXtlwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3lsI/ml7blkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3lsI/ml7bliY1cIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwi5YiG6ZKfXCIscmVsYXRpdmU6ezA6XCLmraTliLtcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB95YiG6ZKf5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB95YiG6ZKf5YmNXCJ9fX0sXCJtaW51dGUtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLliIZcIixyZWxhdGl2ZTp7MDpcIuatpOWIu1wifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3liIbpkp/lkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3liIbpkp/liY1cIn19fSxzZWNvbmQ6e2Rpc3BsYXlOYW1lOlwi56eSXCIscmVsYXRpdmU6ezA6XCLnjrDlnKhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB956eS5ZCOXCJ9LHBhc3Q6e290aGVyOlwiezB956eS5YmNXCJ9fX0sXCJzZWNvbmQtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLnp5JcIixyZWxhdGl2ZTp7MDpcIueOsOWcqFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH3np5LlkI5cIn0scGFzdDp7b3RoZXI6XCJ7MH3np5LliY1cIn19fX19LHtsb2NhbGU6XCJ6aC1IYW50XCIscGx1cmFsUnVsZUZ1bmN0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuXCJvdGhlclwifSxmaWVsZHM6e3llYXI6e2Rpc3BsYXlOYW1lOlwi5bm0XCIscmVsYXRpdmU6ezA6XCLku4rlubRcIiwxOlwi5piO5bm0XCIsXCItMVwiOlwi5Y675bm0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDlubTlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5bm05YmNXCJ9fX0sXCJ5ZWFyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5bm0XCIscmVsYXRpdmU6ezA6XCLku4rlubRcIiwxOlwi5piO5bm0XCIsXCItMVwiOlwi5Y675bm0XCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDlubTlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5bm05YmNXCJ9fX0sbW9udGg6e2Rpc3BsYXlOYW1lOlwi5pyIXCIscmVsYXRpdmU6ezA6XCLmnKzmnIhcIiwxOlwi5LiL5YCL5pyIXCIsXCItMVwiOlwi5LiK5YCL5pyIXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDlgIvmnIjlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5YCL5pyI5YmNXCJ9fX0sXCJtb250aC1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuaciFwiLHJlbGF0aXZlOnswOlwi5pys5pyIXCIsMTpcIuS4i+WAi+aciFwiLFwiLTFcIjpcIuS4iuWAi+aciFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5YCL5pyI5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOWAi+aciOWJjVwifX19LGRheTp7ZGlzcGxheU5hbWU6XCLml6VcIixyZWxhdGl2ZTp7MDpcIuS7iuWkqVwiLDE6XCLmmI7lpKlcIiwyOlwi5b6M5aSpXCIsXCItMlwiOlwi5YmN5aSpXCIsXCItMVwiOlwi5pio5aSpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDlpKnlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5aSp5YmNXCJ9fX0sXCJkYXktc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLml6VcIixyZWxhdGl2ZTp7MDpcIuS7iuWkqVwiLDE6XCLmmI7lpKlcIiwyOlwi5b6M5aSpXCIsXCItMlwiOlwi5YmN5aSpXCIsXCItMVwiOlwi5pio5aSpXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDlpKnlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5aSp5YmNXCJ9fX0saG91cjp7ZGlzcGxheU5hbWU6XCLlsI/mmYJcIixyZWxhdGl2ZTp7MDpcIumAmeS4gOWwj+aZglwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5bCP5pmC5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOWwj+aZguWJjVwifX19LFwiaG91ci1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuWwj+aZglwiLHJlbGF0aXZlOnswOlwi6YCZ5LiA5bCP5pmCXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDlsI/mmYLlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5bCP5pmC5YmNXCJ9fX0sbWludXRlOntkaXNwbGF5TmFtZTpcIuWIhumQmFwiLHJlbGF0aXZlOnswOlwi6YCZ5LiA5YiG6ZCYXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDliIbpkJjlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5YiG6ZCY5YmNXCJ9fX0sXCJtaW51dGUtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLliIbpkJhcIixyZWxhdGl2ZTp7MDpcIumAmeS4gOWIhumQmFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g5YiG6ZCY5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOWIhumQmOWJjVwifX19LHNlY29uZDp7ZGlzcGxheU5hbWU6XCLnp5JcIixyZWxhdGl2ZTp7MDpcIuePvuWcqFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g56eS5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOenkuWJjVwifX19LFwic2Vjb25kLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi56eSXCIscmVsYXRpdmU6ezA6XCLnj77lnKhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOenkuW+jFwifSxwYXN0OntvdGhlcjpcInswfSDnp5LliY1cIn19fX19LHtsb2NhbGU6XCJ6aC1IYW50LUhLXCIscGFyZW50TG9jYWxlOlwiemgtSGFudFwiLGZpZWxkczp7eWVhcjp7ZGlzcGxheU5hbWU6XCLlubRcIixyZWxhdGl2ZTp7MDpcIuS7iuW5tFwiLDE6XCLkuIvlubRcIixcIi0xXCI6XCLkuIrlubRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOW5tOW+jFwifSxwYXN0OntvdGhlcjpcInswfSDlubTliY1cIn19fSxcInllYXItc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLlubRcIixyZWxhdGl2ZTp7MDpcIuS7iuW5tFwiLDE6XCLkuIvlubRcIixcIi0xXCI6XCLkuIrlubRcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOW5tOW+jFwifSxwYXN0OntvdGhlcjpcInswfSDlubTliY1cIn19fSxtb250aDp7ZGlzcGxheU5hbWU6XCLmnIhcIixyZWxhdGl2ZTp7MDpcIuacrOaciFwiLDE6XCLkuIvlgIvmnIhcIixcIi0xXCI6XCLkuIrlgIvmnIhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOWAi+aciOW+jFwifSxwYXN0OntvdGhlcjpcInswfSDlgIvmnIjliY1cIn19fSxcIm1vbnRoLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5pyIXCIscmVsYXRpdmU6ezA6XCLmnKzmnIhcIiwxOlwi5LiL5YCL5pyIXCIsXCItMVwiOlwi5LiK5YCL5pyIXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDlgIvmnIjlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5YCL5pyI5YmNXCJ9fX0sZGF5OntkaXNwbGF5TmFtZTpcIuaXpVwiLHJlbGF0aXZlOnswOlwi5LuK5pelXCIsMTpcIuaYjuaXpVwiLDI6XCLlvozml6VcIixcIi0yXCI6XCLliY3ml6VcIixcIi0xXCI6XCLmmKjml6VcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOaXpeW+jFwifSxwYXN0OntvdGhlcjpcInswfSDml6XliY1cIn19fSxcImRheS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuaXpVwiLHJlbGF0aXZlOnswOlwi5LuK5pelXCIsMTpcIuaYjuaXpVwiLDI6XCLlvozml6VcIixcIi0yXCI6XCLliY3ml6VcIixcIi0xXCI6XCLmmKjml6VcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOaXpeW+jFwifSxwYXN0OntvdGhlcjpcInswfSDml6XliY1cIn19fSxob3VyOntkaXNwbGF5TmFtZTpcIuWwj+aZglwiLHJlbGF0aXZlOnswOlwi6YCZ5YCL5bCP5pmCXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDlsI/mmYLlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5bCP5pmC5YmNXCJ9fX0sXCJob3VyLXNob3J0XCI6e2Rpc3BsYXlOYW1lOlwi5bCP5pmCXCIscmVsYXRpdmU6ezA6XCLpgJnlgIvlsI/mmYJcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOWwj+aZguW+jFwifSxwYXN0OntvdGhlcjpcInswfSDlsI/mmYLliY1cIn19fSxtaW51dGU6e2Rpc3BsYXlOYW1lOlwi5YiG6ZCYXCIscmVsYXRpdmU6ezA6XCLpgJnliIbpkJhcIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6e290aGVyOlwiezB9IOWIhumQmOW+jFwifSxwYXN0OntvdGhlcjpcInswfSDliIbpkJjliY1cIn19fSxcIm1pbnV0ZS1zaG9ydFwiOntkaXNwbGF5TmFtZTpcIuWIhumQmFwiLHJlbGF0aXZlOnswOlwi6YCZ5YiG6ZCYXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDliIbpkJjlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g5YiG6ZCY5YmNXCJ9fX0sc2Vjb25kOntkaXNwbGF5TmFtZTpcIuenklwiLHJlbGF0aXZlOnswOlwi54++5ZyoXCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOntvdGhlcjpcInswfSDnp5LlvoxcIn0scGFzdDp7b3RoZXI6XCJ7MH0g56eS5YmNXCJ9fX0sXCJzZWNvbmQtc2hvcnRcIjp7ZGlzcGxheU5hbWU6XCLnp5JcIixyZWxhdGl2ZTp7MDpcIuePvuWcqFwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTp7b3RoZXI6XCJ7MH0g56eS5b6MXCJ9LHBhc3Q6e290aGVyOlwiezB9IOenkuWJjVwifX19fX0se2xvY2FsZTpcInpoLUhhbnQtTU9cIixwYXJlbnRMb2NhbGU6XCJ6aC1IYW50LUhLXCJ9XX0pO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvcmVhY3QtaW50bC9sb2NhbGUtZGF0YS96aC5qc1xuLy8gbW9kdWxlIGlkID0gMjE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJ2YXIgbWFwID0ge1xuXHRcIi4vY2FcIjogMjE2LFxuXHRcIi4vY3NcIjogMjE3LFxuXHRcIi4vZGVcIjogMjE4LFxuXHRcIi4vZW5cIjogMjE5LFxuXHRcIi4vZXNcIjogMjIwLFxuXHRcIi4vZnJcIjogMjIxLFxuXHRcIi4vZ2xcIjogMjIyLFxuXHRcIi4vaXRcIjogMjIzLFxuXHRcIi4vamFcIjogMjI0LFxuXHRcIi4va29cIjogMjI1LFxuXHRcIi4vbmxcIjogMjI2LFxuXHRcIi4vcGxcIjogMjI3LFxuXHRcIi4vcHRcIjogMjI4LFxuXHRcIi4vcnVcIjogMjI5LFxuXHRcIi4vc3ZcIjogMjMwLFxuXHRcIi4vemhcIjogMjMxXG59O1xuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpKTtcbn07XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdHZhciBpZCA9IG1hcFtyZXFdO1xuXHRpZighKGlkICsgMSkpIC8vIGNoZWNrIGZvciBudW1iZXIgb3Igc3RyaW5nXG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIiArIHJlcSArIFwiJy5cIik7XG5cdHJldHVybiBpZDtcbn07XG53ZWJwYWNrQ29udGV4dC5rZXlzID0gZnVuY3Rpb24gd2VicGFja0NvbnRleHRLZXlzKCkge1xuXHRyZXR1cm4gT2JqZWN0LmtleXMobWFwKTtcbn07XG53ZWJwYWNrQ29udGV4dC5yZXNvbHZlID0gd2VicGFja0NvbnRleHRSZXNvbHZlO1xubW9kdWxlLmV4cG9ydHMgPSB3ZWJwYWNrQ29udGV4dDtcbndlYnBhY2tDb250ZXh0LmlkID0gMjE1O1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2ludGwvbG9jYWxlLWRhdGEvanNvbnAgXFwvKGNhfGNzfGRlfGVufGVzfGZyfGdsfGl0fGphfGtvfG5sfHBsfHB0fHJ1fHN2fHpoKSRcbi8vIG1vZHVsZSBpZCA9IDIxNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiSW50bFBvbHlmaWxsLl9fYWRkTG9jYWxlRGF0YSh7bG9jYWxlOlwiY2FcIixkYXRlOntjYTpbXCJncmVnb3J5XCIsXCJidWRkaGlzdFwiLFwiY2hpbmVzZVwiLFwiY29wdGljXCIsXCJkYW5naVwiLFwiZXRoaW9hYVwiLFwiZXRoaW9waWNcIixcImdlbmVyaWNcIixcImhlYnJld1wiLFwiaW5kaWFuXCIsXCJpc2xhbWljXCIsXCJpc2xhbWljY1wiLFwiamFwYW5lc2VcIixcInBlcnNpYW5cIixcInJvY1wiXSxob3VyTm8wOnRydWUsaG91cjEyOmZhbHNlLGZvcm1hdHM6e3Nob3J0OlwiezF9IHswfVwiLG1lZGl1bTpcInsxfSwgezB9XCIsZnVsbDpcInsxfSAnYScgJ2xlcycgezB9XCIsbG9uZzpcInsxfSwgezB9XCIsYXZhaWxhYmxlRm9ybWF0czp7XCJkXCI6XCJkXCIsXCJFXCI6XCJjY2NcIixFZDpcIkUgZFwiLEVobTpcIkUgaDptbSBhXCIsRUhtOlwiRSBIOm1tXCIsRWhtczpcIkUgaDptbTpzcyBhXCIsRUhtczpcIkUgSDptbTpzc1wiLEd5OlwieSBHXCIsR3lNTU06XCJMTEwgeSBHXCIsR3lNTU1kOlwiZCBNTU0geSBHXCIsR3lNTU1FZDpcIkUsIGQgTU1NIHkgR1wiLEd5TU1NTTpcIkxMTEwgJ2RlJyB5IEdcIixHeU1NTU1kOlwiZCBNTU1NICdkZScgeSBHXCIsR3lNTU1NRWQ6XCJFLCBkIE1NTU0gJ2RlJyB5IEdcIixcImhcIjpcImggYVwiLFwiSFwiOlwiSFwiLGhtOlwiaDptbSBhXCIsSG06XCJISDptbVwiLGhtczpcImg6bW06c3MgYVwiLEhtczpcIkhIOm1tOnNzXCIsaG1zdjpcImg6bW06c3MgYSB2XCIsSG1zdjpcIkhIOm1tOnNzIHZcIixobXY6XCJoOm1tIGEgdlwiLEhtdjpcIkhIOm1tIHZcIixcIk1cIjpcIkxcIixNZDpcImQvTVwiLE1FZDpcIkUgZC9NXCIsTU1NOlwiTExMXCIsTU1NZDpcImQgTU1NXCIsTU1NRWQ6XCJFLCBkIE1NTVwiLE1NTU1kOlwiZCBNTU1NXCIsTU1NTUVkOlwiRSwgZCBNTU1NXCIsbXM6XCJtbTpzc1wiLFwieVwiOlwieVwiLHlNOlwiTS95XCIseU1kOlwiZC9NL3lcIix5TUVkOlwiRSwgZC9NL3lcIix5TU1NOlwiTExMICdkZScgeVwiLHlNTU1kOlwiZCBNTU0geVwiLHlNTU1FZDpcIkUsIGQgTU1NIHlcIix5TU1NTTpcIkxMTEwgJ2RlJyB5XCIseU1NTU1kOlwiZCBNTU1NICdkZScgeVwiLHlNTU1NRWQ6XCJFLCBkIE1NTU0gJ2RlJyB5XCIseVFRUTpcIlFRUSB5XCIseVFRUVE6XCJRUVFRIHlcIn0sZGF0ZUZvcm1hdHM6e3lNTU1NRUVFRWQ6XCJFRUVFLCBkIE1NTU0gJ2RlJyB5XCIseU1NTU1kOlwiZCBNTU1NICdkZScgeVwiLHlNTU1kOlwiZCBNTU0geVwiLHlNZDpcImQvTS95eVwifSx0aW1lRm9ybWF0czp7aG1tc3N6enp6OlwiSDptbTpzcyB6enp6XCIsaG1zejpcIkg6bW06c3MgelwiLGhtczpcIkg6bW06c3NcIixobTpcIkg6bW1cIn19LGNhbGVuZGFyczp7YnVkZGhpc3Q6e21vbnRoczp7bmFycm93OltcIkdOXCIsXCJGQlwiLFwiTcOHXCIsXCJBQlwiLFwiTUdcIixcIkpOXCIsXCJKTFwiLFwiQUdcIixcIlNUXCIsXCJPQ1wiLFwiTlZcIixcIkRTXCJdLHNob3J0OltcImdlbi5cIixcImZlYnIuXCIsXCJtYXLDp1wiLFwiYWJyLlwiLFwibWFpZ1wiLFwianVueVwiLFwianVsLlwiLFwiYWcuXCIsXCJzZXQuXCIsXCJvY3QuXCIsXCJub3YuXCIsXCJkZXMuXCJdLGxvbmc6W1wiZGUgZ2VuZXJcIixcImRlIGZlYnJlclwiLFwiZGUgbWFyw6dcIixcImTigJlhYnJpbFwiLFwiZGUgbWFpZ1wiLFwiZGUganVueVwiLFwiZGUganVsaW9sXCIsXCJk4oCZYWdvc3RcIixcImRlIHNldGVtYnJlXCIsXCJk4oCZb2N0dWJyZVwiLFwiZGUgbm92ZW1icmVcIixcImRlIGRlc2VtYnJlXCJdfSxkYXlzOntuYXJyb3c6W1wiZGdcIixcImRsXCIsXCJkdFwiLFwiZGNcIixcImRqXCIsXCJkdlwiLFwiZHNcIl0sc2hvcnQ6W1wiZGcuXCIsXCJkbC5cIixcImR0LlwiLFwiZGMuXCIsXCJkai5cIixcImR2LlwiLFwiZHMuXCJdLGxvbmc6W1wiZGl1bWVuZ2VcIixcImRpbGx1bnNcIixcImRpbWFydHNcIixcImRpbWVjcmVzXCIsXCJkaWpvdXNcIixcImRpdmVuZHJlc1wiLFwiZGlzc2FidGVcIl19LGVyYXM6e25hcnJvdzpbXCJlQlwiXSxzaG9ydDpbXCJlQlwiXSxsb25nOltcImVCXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0sY2hpbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLGxvbmc6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXX0sZGF5czp7bmFycm93OltcImRnXCIsXCJkbFwiLFwiZHRcIixcImRjXCIsXCJkalwiLFwiZHZcIixcImRzXCJdLHNob3J0OltcImRnLlwiLFwiZGwuXCIsXCJkdC5cIixcImRjLlwiLFwiZGouXCIsXCJkdi5cIixcImRzLlwiXSxsb25nOltcImRpdW1lbmdlXCIsXCJkaWxsdW5zXCIsXCJkaW1hcnRzXCIsXCJkaW1lY3Jlc1wiLFwiZGlqb3VzXCIsXCJkaXZlbmRyZXNcIixcImRpc3NhYnRlXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0sY29wdGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJUb3V0XCIsXCJCYWJhXCIsXCJIYXRvclwiLFwiS2lhaGtcIixcIlRvYmFcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtb3VkYVwiLFwiQmFzaGFuc1wiLFwiUGFvbmFcIixcIkVwZXBcIixcIk1lc3JhXCIsXCJOYXNpZVwiXSxsb25nOltcIlRvdXRcIixcIkJhYmFcIixcIkhhdG9yXCIsXCJLaWFoa1wiLFwiVG9iYVwiLFwiQW1zaGlyXCIsXCJCYXJhbWhhdFwiLFwiQmFyYW1vdWRhXCIsXCJCYXNoYW5zXCIsXCJQYW9uYVwiLFwiRXBlcFwiLFwiTWVzcmFcIixcIk5hc2llXCJdfSxkYXlzOntuYXJyb3c6W1wiZGdcIixcImRsXCIsXCJkdFwiLFwiZGNcIixcImRqXCIsXCJkdlwiLFwiZHNcIl0sc2hvcnQ6W1wiZGcuXCIsXCJkbC5cIixcImR0LlwiLFwiZGMuXCIsXCJkai5cIixcImR2LlwiLFwiZHMuXCJdLGxvbmc6W1wiZGl1bWVuZ2VcIixcImRpbGx1bnNcIixcImRpbWFydHNcIixcImRpbWVjcmVzXCIsXCJkaWpvdXNcIixcImRpdmVuZHJlc1wiLFwiZGlzc2FidGVcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxsb25nOltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl19LGRheXM6e25hcnJvdzpbXCJkZ1wiLFwiZGxcIixcImR0XCIsXCJkY1wiLFwiZGpcIixcImR2XCIsXCJkc1wiXSxzaG9ydDpbXCJkZy5cIixcImRsLlwiLFwiZHQuXCIsXCJkYy5cIixcImRqLlwiLFwiZHYuXCIsXCJkcy5cIl0sbG9uZzpbXCJkaXVtZW5nZVwiLFwiZGlsbHVuc1wiLFwiZGltYXJ0c1wiLFwiZGltZWNyZXNcIixcImRpam91c1wiLFwiZGl2ZW5kcmVzXCIsXCJkaXNzYWJ0ZVwiXX0sZGF5UGVyaW9kczp7YW06XCJhLiBtLlwiLHBtOlwicC4gbS5cIn19LGV0aGlvcGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXSxsb25nOltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdfSxkYXlzOntuYXJyb3c6W1wiZGdcIixcImRsXCIsXCJkdFwiLFwiZGNcIixcImRqXCIsXCJkdlwiLFwiZHNcIl0sc2hvcnQ6W1wiZGcuXCIsXCJkbC5cIixcImR0LlwiLFwiZGMuXCIsXCJkai5cIixcImR2LlwiLFwiZHMuXCJdLGxvbmc6W1wiZGl1bWVuZ2VcIixcImRpbGx1bnNcIixcImRpbWFydHNcIixcImRpbWVjcmVzXCIsXCJkaWpvdXNcIixcImRpdmVuZHJlc1wiLFwiZGlzc2FidGVcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0sZXRoaW9hYTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl0sbG9uZzpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXX0sZGF5czp7bmFycm93OltcImRnXCIsXCJkbFwiLFwiZHRcIixcImRjXCIsXCJkalwiLFwiZHZcIixcImRzXCJdLHNob3J0OltcImRnLlwiLFwiZGwuXCIsXCJkdC5cIixcImRjLlwiLFwiZGouXCIsXCJkdi5cIixcImRzLlwiXSxsb25nOltcImRpdW1lbmdlXCIsXCJkaWxsdW5zXCIsXCJkaW1hcnRzXCIsXCJkaW1lY3Jlc1wiLFwiZGlqb3VzXCIsXCJkaXZlbmRyZXNcIixcImRpc3NhYnRlXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiXSxzaG9ydDpbXCJFUkEwXCJdLGxvbmc6W1wiRVJBMFwiXX0sZGF5UGVyaW9kczp7YW06XCJhLiBtLlwiLHBtOlwicC4gbS5cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJkZ1wiLFwiZGxcIixcImR0XCIsXCJkY1wiLFwiZGpcIixcImR2XCIsXCJkc1wiXSxzaG9ydDpbXCJkZy5cIixcImRsLlwiLFwiZHQuXCIsXCJkYy5cIixcImRqLlwiLFwiZHYuXCIsXCJkcy5cIl0sbG9uZzpbXCJkaXVtZW5nZVwiLFwiZGlsbHVuc1wiLFwiZGltYXJ0c1wiLFwiZGltZWNyZXNcIixcImRpam91c1wiLFwiZGl2ZW5kcmVzXCIsXCJkaXNzYWJ0ZVwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxncmVnb3J5Onttb250aHM6e25hcnJvdzpbXCJHTlwiLFwiRkJcIixcIk3Dh1wiLFwiQUJcIixcIk1HXCIsXCJKTlwiLFwiSkxcIixcIkFHXCIsXCJTVFwiLFwiT0NcIixcIk5WXCIsXCJEU1wiXSxzaG9ydDpbXCJnZW4uXCIsXCJmZWJyLlwiLFwibWFyw6dcIixcImFici5cIixcIm1haWdcIixcImp1bnlcIixcImp1bC5cIixcImFnLlwiLFwic2V0LlwiLFwib2N0LlwiLFwibm92LlwiLFwiZGVzLlwiXSxsb25nOltcImRlIGdlbmVyXCIsXCJkZSBmZWJyZXJcIixcImRlIG1hcsOnXCIsXCJk4oCZYWJyaWxcIixcImRlIG1haWdcIixcImRlIGp1bnlcIixcImRlIGp1bGlvbFwiLFwiZOKAmWFnb3N0XCIsXCJkZSBzZXRlbWJyZVwiLFwiZOKAmW9jdHVicmVcIixcImRlIG5vdmVtYnJlXCIsXCJkZSBkZXNlbWJyZVwiXX0sZGF5czp7bmFycm93OltcImRnXCIsXCJkbFwiLFwiZHRcIixcImRjXCIsXCJkalwiLFwiZHZcIixcImRzXCJdLHNob3J0OltcImRnLlwiLFwiZGwuXCIsXCJkdC5cIixcImRjLlwiLFwiZGouXCIsXCJkdi5cIixcImRzLlwiXSxsb25nOltcImRpdW1lbmdlXCIsXCJkaWxsdW5zXCIsXCJkaW1hcnRzXCIsXCJkaW1lY3Jlc1wiLFwiZGlqb3VzXCIsXCJkaXZlbmRyZXNcIixcImRpc3NhYnRlXCJdfSxlcmFzOntuYXJyb3c6W1wiYUNcIixcImRDXCIsXCJBRUNcIixcIkVDXCJdLHNob3J0OltcImFDXCIsXCJkQ1wiLFwiQUVDXCIsXCJFQ1wiXSxsb25nOltcImFiYW5zIGRlIENyaXN0XCIsXCJkZXNwcsOpcyBkZSBDcmlzdFwiLFwiYWJhbnMgZGUgbOKAmUVyYSBDb211bmFcIixcIkVyYSBDb211bmFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxoZWJyZXc6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCIsXCI3XCJdLHNob3J0OltcIlRpc2hyaVwiLFwiSGVzaHZhblwiLFwiS2lzbGV2XCIsXCJUZXZldFwiLFwiU2hldmF0XCIsXCJBZGFyIElcIixcIkFkYXJcIixcIk5pc2FuXCIsXCJJeWFyXCIsXCJTaXZhblwiLFwiVGFtdXpcIixcIkF2XCIsXCJFbHVsXCIsXCJBZGFyIElJXCJdLGxvbmc6W1wiVGlzaHJpXCIsXCJIZXNodmFuXCIsXCJLaXNsZXZcIixcIlRldmV0XCIsXCJTaGV2YXRcIixcIkFkYXIgSVwiLFwiQWRhclwiLFwiTmlzYW5cIixcIkl5YXJcIixcIlNpdmFuXCIsXCJUYW11elwiLFwiQXZcIixcIkVsdWxcIixcIkFkYXIgSUlcIl19LGRheXM6e25hcnJvdzpbXCJkZ1wiLFwiZGxcIixcImR0XCIsXCJkY1wiLFwiZGpcIixcImR2XCIsXCJkc1wiXSxzaG9ydDpbXCJkZy5cIixcImRsLlwiLFwiZHQuXCIsXCJkYy5cIixcImRqLlwiLFwiZHYuXCIsXCJkcy5cIl0sbG9uZzpbXCJkaXVtZW5nZVwiLFwiZGlsbHVuc1wiLFwiZGltYXJ0c1wiLFwiZGltZWNyZXNcIixcImRpam91c1wiLFwiZGl2ZW5kcmVzXCIsXCJkaXNzYWJ0ZVwiXX0sZXJhczp7bmFycm93OltcIkFNXCJdLHNob3J0OltcIkFNXCJdLGxvbmc6W1wiQU1cIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxpbmRpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdLGxvbmc6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdfSxkYXlzOntuYXJyb3c6W1wiZGdcIixcImRsXCIsXCJkdFwiLFwiZGNcIixcImRqXCIsXCJkdlwiLFwiZHNcIl0sc2hvcnQ6W1wiZGcuXCIsXCJkbC5cIixcImR0LlwiLFwiZGMuXCIsXCJkai5cIixcImR2LlwiLFwiZHMuXCJdLGxvbmc6W1wiZGl1bWVuZ2VcIixcImRpbGx1bnNcIixcImRpbWFydHNcIixcImRpbWVjcmVzXCIsXCJkaWpvdXNcIixcImRpdmVuZHJlc1wiLFwiZGlzc2FidGVcIl19LGVyYXM6e25hcnJvdzpbXCJTYWthXCJdLHNob3J0OltcIlNha2FcIl0sbG9uZzpbXCJTYWthXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0saXNsYW1pYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJKdW1hZGEgSVwiLFwiSnVtYWRhIElJXCIsXCJSYWphYlwiLFwiU2hhyrtiYW5cIixcIlJhbWFkYW5cIixcIlNoYXd3YWxcIixcIkRodcq7bC1Racq7ZGFoXCIsXCJEaHXKu2wtSGlqamFoXCJdfSxkYXlzOntuYXJyb3c6W1wiZGdcIixcImRsXCIsXCJkdFwiLFwiZGNcIixcImRqXCIsXCJkdlwiLFwiZHNcIl0sc2hvcnQ6W1wiZGcuXCIsXCJkbC5cIixcImR0LlwiLFwiZGMuXCIsXCJkai5cIixcImR2LlwiLFwiZHMuXCJdLGxvbmc6W1wiZGl1bWVuZ2VcIixcImRpbGx1bnNcIixcImRpbWFydHNcIixcImRpbWVjcmVzXCIsXCJkaWpvdXNcIixcImRpdmVuZHJlc1wiLFwiZGlzc2FidGVcIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0saXNsYW1pY2M6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTXVoLlwiLFwiU2FmLlwiLFwiUmFiLiBJXCIsXCJSYWIuIElJXCIsXCJKdW0uIElcIixcIkp1bS4gSUlcIixcIlJhai5cIixcIlNoYS5cIixcIlJhbS5cIixcIlNoYXcuXCIsXCJEaHXKu2wtUS5cIixcIkRodcq7bC1ILlwiXSxsb25nOltcIk11aGFycmFtXCIsXCJTYWZhclwiLFwiUmFiacq7IElcIixcIlJhYmnKuyBJSVwiLFwiSnVtYWRhIElcIixcIkp1bWFkYSBJSVwiLFwiUmFqYWJcIixcIlNoYcq7YmFuXCIsXCJSYW1hZGFuXCIsXCJTaGF3d2FsXCIsXCJEaHXKu2wtUWnKu2RhaFwiLFwiRGh1yrtsLUhpamphaFwiXX0sZGF5czp7bmFycm93OltcImRnXCIsXCJkbFwiLFwiZHRcIixcImRjXCIsXCJkalwiLFwiZHZcIixcImRzXCJdLHNob3J0OltcImRnLlwiLFwiZGwuXCIsXCJkdC5cIixcImRjLlwiLFwiZGouXCIsXCJkdi5cIixcImRzLlwiXSxsb25nOltcImRpdW1lbmdlXCIsXCJkaWxsdW5zXCIsXCJkaW1hcnRzXCIsXCJkaW1lY3Jlc1wiLFwiZGlqb3VzXCIsXCJkaXZlbmRyZXNcIixcImRpc3NhYnRlXCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCJhLiBtLlwiLHBtOlwicC4gbS5cIn19LGphcGFuZXNlOnttb250aHM6e25hcnJvdzpbXCJHTlwiLFwiRkJcIixcIk3Dh1wiLFwiQUJcIixcIk1HXCIsXCJKTlwiLFwiSkxcIixcIkFHXCIsXCJTVFwiLFwiT0NcIixcIk5WXCIsXCJEU1wiXSxzaG9ydDpbXCJnZW4uXCIsXCJmZWJyLlwiLFwibWFyw6dcIixcImFici5cIixcIm1haWdcIixcImp1bnlcIixcImp1bC5cIixcImFnLlwiLFwic2V0LlwiLFwib2N0LlwiLFwibm92LlwiLFwiZGVzLlwiXSxsb25nOltcImRlIGdlbmVyXCIsXCJkZSBmZWJyZXJcIixcImRlIG1hcsOnXCIsXCJk4oCZYWJyaWxcIixcImRlIG1haWdcIixcImRlIGp1bnlcIixcImRlIGp1bGlvbFwiLFwiZOKAmWFnb3N0XCIsXCJkZSBzZXRlbWJyZVwiLFwiZOKAmW9jdHVicmVcIixcImRlIG5vdmVtYnJlXCIsXCJkZSBkZXNlbWJyZVwiXX0sZGF5czp7bmFycm93OltcImRnXCIsXCJkbFwiLFwiZHRcIixcImRjXCIsXCJkalwiLFwiZHZcIixcImRzXCJdLHNob3J0OltcImRnLlwiLFwiZGwuXCIsXCJkdC5cIixcImRjLlwiLFwiZGouXCIsXCJkdi5cIixcImRzLlwiXSxsb25nOltcImRpdW1lbmdlXCIsXCJkaWxsdW5zXCIsXCJkaW1hcnRzXCIsXCJkaW1lY3Jlc1wiLFwiZGlqb3VzXCIsXCJkaXZlbmRyZXNcIixcImRpc3NhYnRlXCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdLGxvbmc6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxwZXJzaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIkZhcnZhcmRpblwiLFwiT3JkaWJlaGVzaHRcIixcIktob3JkYWRcIixcIlRpclwiLFwiTW9yZGFkXCIsXCJTaGFocml2YXJcIixcIk1laHJcIixcIkFiYW5cIixcIkF6YXJcIixcIkRleVwiLFwiQmFobWFuXCIsXCJFc2ZhbmRcIl0sbG9uZzpbXCJGYXJ2YXJkaW5cIixcIk9yZGliZWhlc2h0XCIsXCJLaG9yZGFkXCIsXCJUaXJcIixcIk1vcmRhZFwiLFwiU2hhaHJpdmFyXCIsXCJNZWhyXCIsXCJBYmFuXCIsXCJBemFyXCIsXCJEZXlcIixcIkJhaG1hblwiLFwiRXNmYW5kXCJdfSxkYXlzOntuYXJyb3c6W1wiZGdcIixcImRsXCIsXCJkdFwiLFwiZGNcIixcImRqXCIsXCJkdlwiLFwiZHNcIl0sc2hvcnQ6W1wiZGcuXCIsXCJkbC5cIixcImR0LlwiLFwiZGMuXCIsXCJkai5cIixcImR2LlwiLFwiZHMuXCJdLGxvbmc6W1wiZGl1bWVuZ2VcIixcImRpbGx1bnNcIixcImRpbWFydHNcIixcImRpbWVjcmVzXCIsXCJkaWpvdXNcIixcImRpdmVuZHJlc1wiLFwiZGlzc2FidGVcIl19LGVyYXM6e25hcnJvdzpbXCJBUFwiXSxzaG9ydDpbXCJBUFwiXSxsb25nOltcIkFQXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0scm9jOnttb250aHM6e25hcnJvdzpbXCJHTlwiLFwiRkJcIixcIk3Dh1wiLFwiQUJcIixcIk1HXCIsXCJKTlwiLFwiSkxcIixcIkFHXCIsXCJTVFwiLFwiT0NcIixcIk5WXCIsXCJEU1wiXSxzaG9ydDpbXCJnZW4uXCIsXCJmZWJyLlwiLFwibWFyw6dcIixcImFici5cIixcIm1haWdcIixcImp1bnlcIixcImp1bC5cIixcImFnLlwiLFwic2V0LlwiLFwib2N0LlwiLFwibm92LlwiLFwiZGVzLlwiXSxsb25nOltcImRlIGdlbmVyXCIsXCJkZSBmZWJyZXJcIixcImRlIG1hcsOnXCIsXCJk4oCZYWJyaWxcIixcImRlIG1haWdcIixcImRlIGp1bnlcIixcImRlIGp1bGlvbFwiLFwiZOKAmWFnb3N0XCIsXCJkZSBzZXRlbWJyZVwiLFwiZOKAmW9jdHVicmVcIixcImRlIG5vdmVtYnJlXCIsXCJkZSBkZXNlbWJyZVwiXX0sZGF5czp7bmFycm93OltcImRnXCIsXCJkbFwiLFwiZHRcIixcImRjXCIsXCJkalwiLFwiZHZcIixcImRzXCJdLHNob3J0OltcImRnLlwiLFwiZGwuXCIsXCJkdC5cIixcImRjLlwiLFwiZGouXCIsXCJkdi5cIixcImRzLlwiXSxsb25nOltcImRpdW1lbmdlXCIsXCJkaWxsdW5zXCIsXCJkaW1hcnRzXCIsXCJkaW1lY3Jlc1wiLFwiZGlqb3VzXCIsXCJkaXZlbmRyZXNcIixcImRpc3NhYnRlXCJdfSxlcmFzOntuYXJyb3c6W1wiQmVmb3JlIFIuTy5DLlwiLFwiUi5PLkMuXCJdLHNob3J0OltcIkJlZm9yZSBSLk8uQy5cIixcIlIuTy5DLlwiXSxsb25nOltcIkJlZm9yZSBSLk8uQy5cIixcIlIuTy5DLlwiXX0sZGF5UGVyaW9kczp7YW06XCJhLiBtLlwiLHBtOlwicC4gbS5cIn19fX0sbnVtYmVyOntudTpbXCJsYXRuXCJdLHBhdHRlcm5zOntkZWNpbWFsOntwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn1cIn0sY3VycmVuY3k6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9wqB7Y3VycmVuY3l9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfcKge2N1cnJlbmN5fVwifSxwZXJjZW50Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfXtwZXJjZW50U2lnbn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9e3BlcmNlbnRTaWdufVwifX0sc3ltYm9sczp7bGF0bjp7ZGVjaW1hbDpcIixcIixncm91cDpcIi5cIixuYW46XCJOYU5cIixwbHVzU2lnbjpcIitcIixtaW51c1NpZ246XCItXCIscGVyY2VudFNpZ246XCIlXCIsaW5maW5pdHk6XCLiiJ5cIn19LGN1cnJlbmNpZXM6e0FVRDpcIkFVJFwiLENOWTpcIsKlXCIsRVNQOlwi4oKnXCIsRVVSOlwi4oKsXCIsR0JQOlwiwqNcIixIS0Q6XCJISyRcIixJTFM6XCLigqpcIixJTlI6XCLigrlcIixKUFk6XCJKUMKlXCIsS1JXOlwi4oKpXCIsTlpEOlwiTlokXCIsVEhCOlwi4Li/XCIsVFdEOlwiTlQkXCIsVk5EOlwi4oKrXCIsWEFGOlwiRkNGQVwiLFhPRjpcIkNGQVwiLFhQRjpcIkNGUEZcIn19fSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9jYS5qc1xuLy8gbW9kdWxlIGlkID0gMjE2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJJbnRsUG9seWZpbGwuX19hZGRMb2NhbGVEYXRhKHtsb2NhbGU6XCJjc1wiLGRhdGU6e2NhOltcImdyZWdvcnlcIixcImJ1ZGRoaXN0XCIsXCJjaGluZXNlXCIsXCJjb3B0aWNcIixcImRhbmdpXCIsXCJldGhpb2FhXCIsXCJldGhpb3BpY1wiLFwiZ2VuZXJpY1wiLFwiaGVicmV3XCIsXCJpbmRpYW5cIixcImlzbGFtaWNcIixcImlzbGFtaWNjXCIsXCJqYXBhbmVzZVwiLFwicGVyc2lhblwiLFwicm9jXCJdLGhvdXJObzA6dHJ1ZSxob3VyMTI6ZmFsc2UsZm9ybWF0czp7c2hvcnQ6XCJ7MX0gezB9XCIsbWVkaXVtOlwiezF9IHswfVwiLGZ1bGw6XCJ7MX0gezB9XCIsbG9uZzpcInsxfSB7MH1cIixhdmFpbGFibGVGb3JtYXRzOntcImRcIjpcImQuXCIsXCJFXCI6XCJjY2NcIixFZDpcIkUgZC5cIixFaG06XCJFIGg6bW0gYVwiLEVIbTpcIkUgSDptbVwiLEVobXM6XCJFIGg6bW06c3MgYVwiLEVIbXM6XCJFIEg6bW06c3NcIixHeTpcInkgR1wiLEd5TU1NOlwiTExMTCB5IEdcIixHeU1NTWQ6XCJkLiBNLiB5IEdcIixHeU1NTUVkOlwiRSBkLiBNLiB5IEdcIixHeU1NTU1kOlwiZC4gTU1NTSB5IEdcIixHeU1NTU1FZDpcIkUgZC4gTU1NTSB5IEdcIixcImhcIjpcImggYVwiLFwiSFwiOlwiSFwiLGhtOlwiaDptbSBhXCIsSG06XCJIOm1tXCIsaG1zOlwiaDptbTpzcyBhXCIsSG1zOlwiSDptbTpzc1wiLGhtc3Y6XCJoOm1tOnNzIGEgdlwiLEhtc3Y6XCJIOm1tOnNzIHZcIixobXY6XCJoOm1tIGEgdlwiLEhtdjpcIkg6bW0gdlwiLFwiTVwiOlwiTFwiLE1kOlwiZC4gTS5cIixNRWQ6XCJFIGQuIE0uXCIsTU1NOlwiTExMXCIsTU1NZDpcImQuIE0uXCIsTU1NRWQ6XCJFIGQuIE0uXCIsTU1NTWQ6XCJkLiBNTU1NXCIsTU1NTUVkOlwiRSBkLiBNTU1NXCIsbXM6XCJtbTpzc1wiLFwieVwiOlwieVwiLHlNOlwiTS95XCIseU1kOlwiZC4gTS4geVwiLHlNRWQ6XCJFIGQuIE0uIHlcIix5TU1NOlwiTExMTCB5XCIseU1NTWQ6XCJkLiBNLiB5XCIseU1NTUVkOlwiRSBkLiBNLiB5XCIseU1NTU06XCJMTExMIHlcIix5TU1NTWQ6XCJkLiBNTU1NIHlcIix5TU1NTUVkOlwiRSBkLiBNTU1NIHlcIix5UVFROlwiUVFRIHlcIix5UVFRUTpcIlFRUVEgeVwifSxkYXRlRm9ybWF0czp7eU1NTU1FRUVFZDpcIkVFRUUgZC4gTU1NTSB5XCIseU1NTU1kOlwiZC4gTU1NTSB5XCIseU1NTWQ6XCJkLiBNLiB5XCIseU1kOlwiZGQuTU0ueXlcIn0sdGltZUZvcm1hdHM6e2htbXNzenp6ejpcIkg6bW06c3Mgenp6elwiLGhtc3o6XCJIOm1tOnNzIHpcIixobXM6XCJIOm1tOnNzXCIsaG06XCJIOm1tXCJ9fSxjYWxlbmRhcnM6e2J1ZGRoaXN0Onttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcImxlZFwiLFwiw7pub1wiLFwiYsWZZVwiLFwiZHViXCIsXCJrdsSbXCIsXCLEjXZuXCIsXCLEjXZjXCIsXCJzcnBcIixcInrDocWZXCIsXCLFmcOtalwiLFwibGlzXCIsXCJwcm9cIl0sbG9uZzpbXCJsZWRuYVwiLFwiw7pub3JhXCIsXCJixZllem5hXCIsXCJkdWJuYVwiLFwia3bEm3RuYVwiLFwixI1lcnZuYVwiLFwixI1lcnZlbmNlXCIsXCJzcnBuYVwiLFwiesOhxZnDrVwiLFwixZnDrWpuYVwiLFwibGlzdG9wYWR1XCIsXCJwcm9zaW5jZVwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIsOaXCIsXCJTXCIsXCLEjFwiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuZVwiLFwicG9cIixcIsO6dFwiLFwic3RcIixcIsSNdFwiLFwicMOhXCIsXCJzb1wiXSxsb25nOltcIm5lZMSbbGVcIixcInBvbmTEm2zDrVwiLFwiw7p0ZXLDvVwiLFwic3TFmWVkYVwiLFwixI10dnJ0ZWtcIixcInDDoXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiQkVcIl0sc2hvcnQ6W1wiQkVcIl0sbG9uZzpbXCJCRVwiXX0sZGF5UGVyaW9kczp7YW06XCJkb3AuXCIscG06XCJvZHAuXCJ9fSxjaGluZXNlOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl0sbG9uZzpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiw5pcIixcIlNcIixcIsSMXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5lXCIsXCJwb1wiLFwiw7p0XCIsXCJzdFwiLFwixI10XCIsXCJww6FcIixcInNvXCJdLGxvbmc6W1wibmVkxJtsZVwiLFwicG9uZMSbbMOtXCIsXCLDunRlcsO9XCIsXCJzdMWZZWRhXCIsXCLEjXR2cnRla1wiLFwicMOhdGVrXCIsXCJzb2JvdGFcIl19LGRheVBlcmlvZHM6e2FtOlwiZG9wLlwiLHBtOlwib2RwLlwifX0sY29wdGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJUb3V0XCIsXCJCYWJhXCIsXCJIYXRvclwiLFwiS2lhaGtcIixcIlRvYmFcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtb3VkYVwiLFwiQmFzaGFuc1wiLFwiUGFvbmFcIixcIkVwZXBcIixcIk1lc3JhXCIsXCJOYXNpZVwiXSxsb25nOltcIlRvdXRcIixcIkJhYmFcIixcIkhhdG9yXCIsXCJLaWFoa1wiLFwiVG9iYVwiLFwiQW1zaGlyXCIsXCJCYXJhbWhhdFwiLFwiQmFyYW1vdWRhXCIsXCJCYXNoYW5zXCIsXCJQYW9uYVwiLFwiRXBlcFwiLFwiTWVzcmFcIixcIk5hc2llXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiw5pcIixcIlNcIixcIsSMXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5lXCIsXCJwb1wiLFwiw7p0XCIsXCJzdFwiLFwixI10XCIsXCJww6FcIixcInNvXCJdLGxvbmc6W1wibmVkxJtsZVwiLFwicG9uZMSbbMOtXCIsXCLDunRlcsO9XCIsXCJzdMWZZWRhXCIsXCLEjXR2cnRla1wiLFwicMOhdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcImRvcC5cIixwbTpcIm9kcC5cIn19LGRhbmdpOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl0sbG9uZzpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiw5pcIixcIlNcIixcIsSMXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5lXCIsXCJwb1wiLFwiw7p0XCIsXCJzdFwiLFwixI10XCIsXCJww6FcIixcInNvXCJdLGxvbmc6W1wibmVkxJtsZVwiLFwicG9uZMSbbMOtXCIsXCLDunRlcsO9XCIsXCJzdMWZZWRhXCIsXCLEjXR2cnRla1wiLFwicMOhdGVrXCIsXCJzb2JvdGFcIl19LGRheVBlcmlvZHM6e2FtOlwiZG9wLlwiLHBtOlwib2RwLlwifX0sZXRoaW9waWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdLGxvbmc6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl19LGRheXM6e25hcnJvdzpbXCJOXCIsXCJQXCIsXCLDmlwiLFwiU1wiLFwixIxcIixcIlBcIixcIlNcIl0sc2hvcnQ6W1wibmVcIixcInBvXCIsXCLDunRcIixcInN0XCIsXCLEjXRcIixcInDDoVwiLFwic29cIl0sbG9uZzpbXCJuZWTEm2xlXCIsXCJwb25kxJtsw61cIixcIsO6dGVyw71cIixcInN0xZllZGFcIixcIsSNdHZydGVrXCIsXCJww6F0ZWtcIixcInNvYm90YVwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiZG9wLlwiLHBtOlwib2RwLlwifX0sZXRoaW9hYTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl0sbG9uZzpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIsOaXCIsXCJTXCIsXCLEjFwiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuZVwiLFwicG9cIixcIsO6dFwiLFwic3RcIixcIsSNdFwiLFwicMOhXCIsXCJzb1wiXSxsb25nOltcIm5lZMSbbGVcIixcInBvbmTEm2zDrVwiLFwiw7p0ZXLDvVwiLFwic3TFmWVkYVwiLFwixI10dnJ0ZWtcIixcInDDoXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiXSxzaG9ydDpbXCJFUkEwXCJdLGxvbmc6W1wiRVJBMFwiXX0sZGF5UGVyaW9kczp7YW06XCJkb3AuXCIscG06XCJvZHAuXCJ9fSxnZW5lcmljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl0sbG9uZzpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiw5pcIixcIlNcIixcIsSMXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5lXCIsXCJwb1wiLFwiw7p0XCIsXCJzdFwiLFwixI10XCIsXCJww6FcIixcInNvXCJdLGxvbmc6W1wibmVkxJtsZVwiLFwicG9uZMSbbMOtXCIsXCLDunRlcsO9XCIsXCJzdMWZZWRhXCIsXCLEjXR2cnRla1wiLFwicMOhdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcImRvcC5cIixwbTpcIm9kcC5cIn19LGdyZWdvcnk6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wibGVkXCIsXCLDum5vXCIsXCJixZllXCIsXCJkdWJcIixcImt2xJtcIixcIsSNdm5cIixcIsSNdmNcIixcInNycFwiLFwiesOhxZlcIixcIsWZw61qXCIsXCJsaXNcIixcInByb1wiXSxsb25nOltcImxlZG5hXCIsXCLDum5vcmFcIixcImLFmWV6bmFcIixcImR1Ym5hXCIsXCJrdsSbdG5hXCIsXCLEjWVydm5hXCIsXCLEjWVydmVuY2VcIixcInNycG5hXCIsXCJ6w6HFmcOtXCIsXCLFmcOtam5hXCIsXCJsaXN0b3BhZHVcIixcInByb3NpbmNlXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiw5pcIixcIlNcIixcIsSMXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5lXCIsXCJwb1wiLFwiw7p0XCIsXCJzdFwiLFwixI10XCIsXCJww6FcIixcInNvXCJdLGxvbmc6W1wibmVkxJtsZVwiLFwicG9uZMSbbMOtXCIsXCLDunRlcsO9XCIsXCJzdMWZZWRhXCIsXCLEjXR2cnRla1wiLFwicMOhdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJwxZkubi5sLlwiLFwibi5sLlwiLFwiQkNFXCIsXCJDRVwiXSxzaG9ydDpbXCJwxZkuIG4uIGwuXCIsXCJuLiBsLlwiLFwiQkNFXCIsXCJDRVwiXSxsb25nOltcInDFmS4gbi4gbC5cIixcIm4uIGwuXCIsXCJCQ0VcIixcIkNFXCJdfSxkYXlQZXJpb2RzOnthbTpcImRvcC5cIixwbTpcIm9kcC5cIn19LGhlYnJldzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIixcIjdcIl0sc2hvcnQ6W1wiVGlzaHJpXCIsXCJIZXNodmFuXCIsXCJLaXNsZXZcIixcIlRldmV0XCIsXCJTaGV2YXRcIixcIkFkYXIgSVwiLFwiQWRhclwiLFwiTmlzYW5cIixcIkl5YXJcIixcIlNpdmFuXCIsXCJUYW11elwiLFwiQXZcIixcIkVsdWxcIixcIkFkYXIgSUlcIl0sbG9uZzpbXCJUaXNocmlcIixcIkhlc2h2YW5cIixcIktpc2xldlwiLFwiVGV2ZXRcIixcIlNoZXZhdFwiLFwiQWRhciBJXCIsXCJBZGFyXCIsXCJOaXNhblwiLFwiSXlhclwiLFwiU2l2YW5cIixcIlRhbXV6XCIsXCJBdlwiLFwiRWx1bFwiLFwiQWRhciBJSVwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIsOaXCIsXCJTXCIsXCLEjFwiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuZVwiLFwicG9cIixcIsO6dFwiLFwic3RcIixcIsSNdFwiLFwicMOhXCIsXCJzb1wiXSxsb25nOltcIm5lZMSbbGVcIixcInBvbmTEm2zDrVwiLFwiw7p0ZXLDvVwiLFwic3TFmWVkYVwiLFwixI10dnJ0ZWtcIixcInDDoXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiQU1cIl0sc2hvcnQ6W1wiQU1cIl0sbG9uZzpbXCJBTVwiXX0sZGF5UGVyaW9kczp7YW06XCJkb3AuXCIscG06XCJvZHAuXCJ9fSxpbmRpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdLGxvbmc6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiw5pcIixcIlNcIixcIsSMXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5lXCIsXCJwb1wiLFwiw7p0XCIsXCJzdFwiLFwixI10XCIsXCJww6FcIixcInNvXCJdLGxvbmc6W1wibmVkxJtsZVwiLFwicG9uZMSbbMOtXCIsXCLDunRlcsO9XCIsXCJzdMWZZWRhXCIsXCLEjXR2cnRla1wiLFwicMOhdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJTYWthXCJdLHNob3J0OltcIlNha2FcIl0sbG9uZzpbXCJTYWthXCJdfSxkYXlQZXJpb2RzOnthbTpcImRvcC5cIixwbTpcIm9kcC5cIn19LGlzbGFtaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTXVoLlwiLFwiU2FmLlwiLFwiUmFiLiBJXCIsXCJSYWIuIElJXCIsXCJKdW0uIElcIixcIkp1bS4gSUlcIixcIlJhai5cIixcIlNoYS5cIixcIlJhbS5cIixcIlNoYXcuXCIsXCJEaHXKu2wtUS5cIixcIkRodcq7bC1ILlwiXSxsb25nOltcIk11aGFycmFtXCIsXCJTYWZhclwiLFwiUmFiacq7IElcIixcIlJhYmnKuyBJSVwiLFwiSnVtYWRhIElcIixcIkp1bWFkYSBJSVwiLFwiUmFqYWJcIixcIlNoYcq7YmFuXCIsXCJSYW1hZGFuXCIsXCJTaGF3d2FsXCIsXCJEaHXKu2wtUWnKu2RhaFwiLFwiRGh1yrtsLUhpamphaFwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIsOaXCIsXCJTXCIsXCLEjFwiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuZVwiLFwicG9cIixcIsO6dFwiLFwic3RcIixcIsSNdFwiLFwicMOhXCIsXCJzb1wiXSxsb25nOltcIm5lZMSbbGVcIixcInBvbmTEm2zDrVwiLFwiw7p0ZXLDvVwiLFwic3TFmWVkYVwiLFwixI10dnJ0ZWtcIixcInDDoXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCJkb3AuXCIscG06XCJvZHAuXCJ9fSxpc2xhbWljYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJKdW1hZGEgSVwiLFwiSnVtYWRhIElJXCIsXCJSYWphYlwiLFwiU2hhyrtiYW5cIixcIlJhbWFkYW5cIixcIlNoYXd3YWxcIixcIkRodcq7bC1Racq7ZGFoXCIsXCJEaHXKu2wtSGlqamFoXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiw5pcIixcIlNcIixcIsSMXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5lXCIsXCJwb1wiLFwiw7p0XCIsXCJzdFwiLFwixI10XCIsXCJww6FcIixcInNvXCJdLGxvbmc6W1wibmVkxJtsZVwiLFwicG9uZMSbbMOtXCIsXCLDunRlcsO9XCIsXCJzdMWZZWRhXCIsXCLEjXR2cnRla1wiLFwicMOhdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcImRvcC5cIixwbTpcIm9kcC5cIn19LGphcGFuZXNlOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcImxlZFwiLFwiw7pub1wiLFwiYsWZZVwiLFwiZHViXCIsXCJrdsSbXCIsXCLEjXZuXCIsXCLEjXZjXCIsXCJzcnBcIixcInrDocWZXCIsXCLFmcOtalwiLFwibGlzXCIsXCJwcm9cIl0sbG9uZzpbXCJsZWRuYVwiLFwiw7pub3JhXCIsXCJixZllem5hXCIsXCJkdWJuYVwiLFwia3bEm3RuYVwiLFwixI1lcnZuYVwiLFwixI1lcnZlbmNlXCIsXCJzcnBuYVwiLFwiesOhxZnDrVwiLFwixZnDrWpuYVwiLFwibGlzdG9wYWR1XCIsXCJwcm9zaW5jZVwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIsOaXCIsXCJTXCIsXCLEjFwiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuZVwiLFwicG9cIixcIsO6dFwiLFwic3RcIixcIsSNdFwiLFwicMOhXCIsXCJzb1wiXSxsb25nOltcIm5lZMSbbGVcIixcInBvbmTEm2zDrVwiLFwiw7p0ZXLDvVwiLFwic3TFmWVkYVwiLFwixI10dnJ0ZWtcIixcInDDoXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdLGxvbmc6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl19LGRheVBlcmlvZHM6e2FtOlwiZG9wLlwiLHBtOlwib2RwLlwifX0scGVyc2lhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJGYXJ2YXJkaW5cIixcIk9yZGliZWhlc2h0XCIsXCJLaG9yZGFkXCIsXCJUaXJcIixcIk1vcmRhZFwiLFwiU2hhaHJpdmFyXCIsXCJNZWhyXCIsXCJBYmFuXCIsXCJBemFyXCIsXCJEZXlcIixcIkJhaG1hblwiLFwiRXNmYW5kXCJdLGxvbmc6W1wiRmFydmFyZGluXCIsXCJPcmRpYmVoZXNodFwiLFwiS2hvcmRhZFwiLFwiVGlyXCIsXCJNb3JkYWRcIixcIlNoYWhyaXZhclwiLFwiTWVoclwiLFwiQWJhblwiLFwiQXphclwiLFwiRGV5XCIsXCJCYWhtYW5cIixcIkVzZmFuZFwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIsOaXCIsXCJTXCIsXCLEjFwiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuZVwiLFwicG9cIixcIsO6dFwiLFwic3RcIixcIsSNdFwiLFwicMOhXCIsXCJzb1wiXSxsb25nOltcIm5lZMSbbGVcIixcInBvbmTEm2zDrVwiLFwiw7p0ZXLDvVwiLFwic3TFmWVkYVwiLFwixI10dnJ0ZWtcIixcInDDoXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiQVBcIl0sc2hvcnQ6W1wiQVBcIl0sbG9uZzpbXCJBUFwiXX0sZGF5UGVyaW9kczp7YW06XCJkb3AuXCIscG06XCJvZHAuXCJ9fSxyb2M6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wibGVkXCIsXCLDum5vXCIsXCJixZllXCIsXCJkdWJcIixcImt2xJtcIixcIsSNdm5cIixcIsSNdmNcIixcInNycFwiLFwiesOhxZlcIixcIsWZw61qXCIsXCJsaXNcIixcInByb1wiXSxsb25nOltcImxlZG5hXCIsXCLDum5vcmFcIixcImLFmWV6bmFcIixcImR1Ym5hXCIsXCJrdsSbdG5hXCIsXCLEjWVydm5hXCIsXCLEjWVydmVuY2VcIixcInNycG5hXCIsXCJ6w6HFmcOtXCIsXCLFmcOtam5hXCIsXCJsaXN0b3BhZHVcIixcInByb3NpbmNlXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiw5pcIixcIlNcIixcIsSMXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5lXCIsXCJwb1wiLFwiw7p0XCIsXCJzdFwiLFwixI10XCIsXCJww6FcIixcInNvXCJdLGxvbmc6W1wibmVkxJtsZVwiLFwicG9uZMSbbMOtXCIsXCLDunRlcsO9XCIsXCJzdMWZZWRhXCIsXCLEjXR2cnRla1wiLFwicMOhdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJQxZllZCBSLiBPLiBDLlwiLFwiUi5PLkMuXCJdLHNob3J0OltcIlDFmWVkIFIuIE8uIEMuXCIsXCJSLk8uQy5cIl0sbG9uZzpbXCJQxZllZCBSLiBPLiBDLlwiLFwiUi5PLkMuXCJdfSxkYXlQZXJpb2RzOnthbTpcImRvcC5cIixwbTpcIm9kcC5cIn19fX0sbnVtYmVyOntudTpbXCJsYXRuXCJdLHBhdHRlcm5zOntkZWNpbWFsOntwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn1cIn0sY3VycmVuY3k6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9wqB7Y3VycmVuY3l9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfcKge2N1cnJlbmN5fVwifSxwZXJjZW50Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfcKge3BlcmNlbnRTaWdufVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn3CoHtwZXJjZW50U2lnbn1cIn19LHN5bWJvbHM6e2xhdG46e2RlY2ltYWw6XCIsXCIsZ3JvdXA6XCLCoFwiLG5hbjpcIk5hTlwiLHBsdXNTaWduOlwiK1wiLG1pbnVzU2lnbjpcIi1cIixwZXJjZW50U2lnbjpcIiVcIixpbmZpbml0eTpcIuKInlwifX0sY3VycmVuY2llczp7QVVEOlwiQVUkXCIsQlJMOlwiUiRcIixDQUQ6XCJDQSRcIixDTlk6XCJDTsKlXCIsQ1NLOlwiS8SNc1wiLENaSzpcIkvEjVwiLEVVUjpcIuKCrFwiLEdCUDpcIsKjXCIsSEtEOlwiSEskXCIsSlBZOlwiSlDCpVwiLEtSVzpcIuKCqVwiLE1YTjpcIk1YJFwiLE5aRDpcIk5aJFwiLFRXRDpcIk5UJFwiLFVTRDpcIlVTJFwiLFhBRjpcIkZDRkFcIixYQ0Q6XCJFQyRcIixYRVU6XCJFQ1VcIixYT0Y6XCJDRkFcIixYUEY6XCJDRlBGXCJ9fX0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2ludGwvbG9jYWxlLWRhdGEvanNvbnAvY3MuanNcbi8vIG1vZHVsZSBpZCA9IDIxN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiSW50bFBvbHlmaWxsLl9fYWRkTG9jYWxlRGF0YSh7bG9jYWxlOlwiZGVcIixkYXRlOntjYTpbXCJncmVnb3J5XCIsXCJidWRkaGlzdFwiLFwiY2hpbmVzZVwiLFwiY29wdGljXCIsXCJkYW5naVwiLFwiZXRoaW9hYVwiLFwiZXRoaW9waWNcIixcImdlbmVyaWNcIixcImhlYnJld1wiLFwiaW5kaWFuXCIsXCJpc2xhbWljXCIsXCJpc2xhbWljY1wiLFwiamFwYW5lc2VcIixcInBlcnNpYW5cIixcInJvY1wiXSxob3VyTm8wOnRydWUsaG91cjEyOmZhbHNlLGZvcm1hdHM6e3Nob3J0OlwiezF9LCB7MH1cIixtZWRpdW06XCJ7MX0sIHswfVwiLGZ1bGw6XCJ7MX0gJ3VtJyB7MH1cIixsb25nOlwiezF9ICd1bScgezB9XCIsYXZhaWxhYmxlRm9ybWF0czp7XCJkXCI6XCJkXCIsXCJFXCI6XCJjY2NcIixFZDpcIkUsIGQuXCIsRWhtOlwiRSBoOm1tIGFcIixFSG06XCJFLCBISDptbVwiLEVobXM6XCJFLCBoOm1tOnNzIGFcIixFSG1zOlwiRSwgSEg6bW06c3NcIixHeTpcInkgR1wiLEd5TU1NOlwiTU1NIHkgR1wiLEd5TU1NZDpcImQuIE1NTSB5IEdcIixHeU1NTUVkOlwiRSwgZC4gTU1NIHkgR1wiLFwiaFwiOlwiaCBhXCIsXCJIXCI6XCJISCAnVWhyJ1wiLGhtOlwiaDptbSBhXCIsSG06XCJISDptbVwiLGhtczpcImg6bW06c3MgYVwiLEhtczpcIkhIOm1tOnNzXCIsaG1zdjpcImg6bW06c3MgYSB2XCIsSG1zdjpcIkhIOm1tOnNzIHZcIixobXY6XCJoOm1tIGEgdlwiLEhtdjpcIkhIOm1tIHZcIixcIk1cIjpcIkxcIixNZDpcImQuTS5cIixNRWQ6XCJFLCBkLk0uXCIsTU1kOlwiZC5NTS5cIixNTWRkOlwiZGQuTU0uXCIsTU1NOlwiTExMXCIsTU1NZDpcImQuIE1NTVwiLE1NTUVkOlwiRSwgZC4gTU1NXCIsTU1NTWQ6XCJkLiBNTU1NXCIsTU1NTUVkOlwiRSwgZC4gTU1NTVwiLG1zOlwibW06c3NcIixcInlcIjpcInlcIix5TTpcIk0ueVwiLHlNZDpcImQuTS55XCIseU1FZDpcIkUsIGQuTS55XCIseU1NOlwiTU0ueVwiLHlNTWRkOlwiZGQuTU0ueVwiLHlNTU06XCJNTU0geVwiLHlNTU1kOlwiZC4gTU1NIHlcIix5TU1NRWQ6XCJFLCBkLiBNTU0geVwiLHlNTU1NOlwiTU1NTSB5XCIseVFRUTpcIlFRUSB5XCIseVFRUVE6XCJRUVFRIHlcIn0sZGF0ZUZvcm1hdHM6e3lNTU1NRUVFRWQ6XCJFRUVFLCBkLiBNTU1NIHlcIix5TU1NTWQ6XCJkLiBNTU1NIHlcIix5TU1NZDpcImRkLk1NLnlcIix5TWQ6XCJkZC5NTS55eVwifSx0aW1lRm9ybWF0czp7aG1tc3N6enp6OlwiSEg6bW06c3Mgenp6elwiLGhtc3o6XCJISDptbTpzcyB6XCIsaG1zOlwiSEg6bW06c3NcIixobTpcIkhIOm1tXCJ9fSxjYWxlbmRhcnM6e2J1ZGRoaXN0Onttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcIkphbi5cIixcIkZlYi5cIixcIk3DpHJ6XCIsXCJBcHIuXCIsXCJNYWlcIixcIkp1bmlcIixcIkp1bGlcIixcIkF1Zy5cIixcIlNlcC5cIixcIk9rdC5cIixcIk5vdi5cIixcIkRlei5cIl0sbG9uZzpbXCJKYW51YXJcIixcIkZlYnJ1YXJcIixcIk3DpHJ6XCIsXCJBcHJpbFwiLFwiTWFpXCIsXCJKdW5pXCIsXCJKdWxpXCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2t0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlemVtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiRFwiLFwiTVwiLFwiRFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTby5cIixcIk1vLlwiLFwiRGkuXCIsXCJNaS5cIixcIkRvLlwiLFwiRnIuXCIsXCJTYS5cIl0sbG9uZzpbXCJTb25udGFnXCIsXCJNb250YWdcIixcIkRpZW5zdGFnXCIsXCJNaXR0d29jaFwiLFwiRG9ubmVyc3RhZ1wiLFwiRnJlaXRhZ1wiLFwiU2Ftc3RhZ1wiXX0sZXJhczp7bmFycm93OltcIkJFXCJdLHNob3J0OltcIkJFXCJdLGxvbmc6W1wiQkVcIl19LGRheVBlcmlvZHM6e2FtOlwidm9ybS5cIixwbTpcIm5hY2htLlwifX0sY2hpbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIkRcIixcIk1cIixcIkRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU28uXCIsXCJNby5cIixcIkRpLlwiLFwiTWkuXCIsXCJEby5cIixcIkZyLlwiLFwiU2EuXCJdLGxvbmc6W1wiU29ubnRhZ1wiLFwiTW9udGFnXCIsXCJEaWVuc3RhZ1wiLFwiTWl0dHdvY2hcIixcIkRvbm5lcnN0YWdcIixcIkZyZWl0YWdcIixcIlNhbXN0YWdcIl19LGRheVBlcmlvZHM6e2FtOlwidm9ybS5cIixwbTpcIm5hY2htLlwifX0sY29wdGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJUb3V0XCIsXCJCYWJhXCIsXCJIYXRvclwiLFwiS2lhaGtcIixcIlRvYmFcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtb3VkYVwiLFwiQmFzaGFuc1wiLFwiUGFvbmFcIixcIkVwZXBcIixcIk1lc3JhXCIsXCJOYXNpZVwiXSxsb25nOltcIlRvdXRcIixcIkJhYmFcIixcIkhhdG9yXCIsXCJLaWFoa1wiLFwiVG9iYVwiLFwiQW1zaGlyXCIsXCJCYXJhbWhhdFwiLFwiQmFyYW1vdWRhXCIsXCJCYXNoYW5zXCIsXCJQYW9uYVwiLFwiRXBlcFwiLFwiTWVzcmFcIixcIk5hc2llXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiRFwiLFwiTVwiLFwiRFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTby5cIixcIk1vLlwiLFwiRGkuXCIsXCJNaS5cIixcIkRvLlwiLFwiRnIuXCIsXCJTYS5cIl0sbG9uZzpbXCJTb25udGFnXCIsXCJNb250YWdcIixcIkRpZW5zdGFnXCIsXCJNaXR0d29jaFwiLFwiRG9ubmVyc3RhZ1wiLFwiRnJlaXRhZ1wiLFwiU2Ftc3RhZ1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwidm9ybS5cIixwbTpcIm5hY2htLlwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJEXCIsXCJNXCIsXCJEXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlNvLlwiLFwiTW8uXCIsXCJEaS5cIixcIk1pLlwiLFwiRG8uXCIsXCJGci5cIixcIlNhLlwiXSxsb25nOltcIlNvbm50YWdcIixcIk1vbnRhZ1wiLFwiRGllbnN0YWdcIixcIk1pdHR3b2NoXCIsXCJEb25uZXJzdGFnXCIsXCJGcmVpdGFnXCIsXCJTYW1zdGFnXCJdfSxkYXlQZXJpb2RzOnthbTpcInZvcm0uXCIscG06XCJuYWNobS5cIn19LGV0aGlvcGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXSxsb25nOltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiRFwiLFwiTVwiLFwiRFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTby5cIixcIk1vLlwiLFwiRGkuXCIsXCJNaS5cIixcIkRvLlwiLFwiRnIuXCIsXCJTYS5cIl0sbG9uZzpbXCJTb25udGFnXCIsXCJNb250YWdcIixcIkRpZW5zdGFnXCIsXCJNaXR0d29jaFwiLFwiRG9ubmVyc3RhZ1wiLFwiRnJlaXRhZ1wiLFwiU2Ftc3RhZ1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwidm9ybS5cIixwbTpcIm5hY2htLlwifX0sZXRoaW9hYTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl0sbG9uZzpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIkRcIixcIk1cIixcIkRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU28uXCIsXCJNby5cIixcIkRpLlwiLFwiTWkuXCIsXCJEby5cIixcIkZyLlwiLFwiU2EuXCJdLGxvbmc6W1wiU29ubnRhZ1wiLFwiTW9udGFnXCIsXCJEaWVuc3RhZ1wiLFwiTWl0dHdvY2hcIixcIkRvbm5lcnN0YWdcIixcIkZyZWl0YWdcIixcIlNhbXN0YWdcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCJdLHNob3J0OltcIkVSQTBcIl0sbG9uZzpbXCJFUkEwXCJdfSxkYXlQZXJpb2RzOnthbTpcInZvcm0uXCIscG06XCJuYWNobS5cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJEXCIsXCJNXCIsXCJEXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlNvLlwiLFwiTW8uXCIsXCJEaS5cIixcIk1pLlwiLFwiRG8uXCIsXCJGci5cIixcIlNhLlwiXSxsb25nOltcIlNvbm50YWdcIixcIk1vbnRhZ1wiLFwiRGllbnN0YWdcIixcIk1pdHR3b2NoXCIsXCJEb25uZXJzdGFnXCIsXCJGcmVpdGFnXCIsXCJTYW1zdGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCJ2b3JtLlwiLHBtOlwibmFjaG0uXCJ9fSxncmVnb3J5Onttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcIkphbi5cIixcIkZlYi5cIixcIk3DpHJ6XCIsXCJBcHIuXCIsXCJNYWlcIixcIkp1bmlcIixcIkp1bGlcIixcIkF1Zy5cIixcIlNlcC5cIixcIk9rdC5cIixcIk5vdi5cIixcIkRlei5cIl0sbG9uZzpbXCJKYW51YXJcIixcIkZlYnJ1YXJcIixcIk3DpHJ6XCIsXCJBcHJpbFwiLFwiTWFpXCIsXCJKdW5pXCIsXCJKdWxpXCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2t0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlemVtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiRFwiLFwiTVwiLFwiRFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTby5cIixcIk1vLlwiLFwiRGkuXCIsXCJNaS5cIixcIkRvLlwiLFwiRnIuXCIsXCJTYS5cIl0sbG9uZzpbXCJTb25udGFnXCIsXCJNb250YWdcIixcIkRpZW5zdGFnXCIsXCJNaXR0d29jaFwiLFwiRG9ubmVyc3RhZ1wiLFwiRnJlaXRhZ1wiLFwiU2Ftc3RhZ1wiXX0sZXJhczp7bmFycm93OltcInYuIENoci5cIixcIm4uIENoci5cIixcInYuIHUuIFouXCIsXCJ1LiBaLlwiXSxzaG9ydDpbXCJ2LiBDaHIuXCIsXCJuLiBDaHIuXCIsXCJ2LiB1LiBaLlwiLFwidS4gWi5cIl0sbG9uZzpbXCJ2LiBDaHIuXCIsXCJuLiBDaHIuXCIsXCJ2b3IgdW5zZXJlciBaZWl0cmVjaG51bmdcIixcInVuc2VyZXIgWmVpdHJlY2hudW5nXCJdfSxkYXlQZXJpb2RzOnthbTpcInZvcm0uXCIscG06XCJuYWNobS5cIn19LGhlYnJldzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIixcIjdcIl0sc2hvcnQ6W1wiVGlzaHJpXCIsXCJIZXNodmFuXCIsXCJLaXNsZXZcIixcIlRldmV0XCIsXCJTaGV2YXRcIixcIkFkYXIgSVwiLFwiQWRhclwiLFwiTmlzYW5cIixcIkl5YXJcIixcIlNpdmFuXCIsXCJUYW11elwiLFwiQXZcIixcIkVsdWxcIixcIkFkYXIgSUlcIl0sbG9uZzpbXCJUaXNocmlcIixcIkhlc2h2YW5cIixcIktpc2xldlwiLFwiVGV2ZXRcIixcIlNoZXZhdFwiLFwiQWRhciBJXCIsXCJBZGFyXCIsXCJOaXNhblwiLFwiSXlhclwiLFwiU2l2YW5cIixcIlRhbXV6XCIsXCJBdlwiLFwiRWx1bFwiLFwiQWRhciBJSVwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIkRcIixcIk1cIixcIkRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU28uXCIsXCJNby5cIixcIkRpLlwiLFwiTWkuXCIsXCJEby5cIixcIkZyLlwiLFwiU2EuXCJdLGxvbmc6W1wiU29ubnRhZ1wiLFwiTW9udGFnXCIsXCJEaWVuc3RhZ1wiLFwiTWl0dHdvY2hcIixcIkRvbm5lcnN0YWdcIixcIkZyZWl0YWdcIixcIlNhbXN0YWdcIl19LGVyYXM6e25hcnJvdzpbXCJBTVwiXSxzaG9ydDpbXCJBTVwiXSxsb25nOltcIkFNXCJdfSxkYXlQZXJpb2RzOnthbTpcInZvcm0uXCIscG06XCJuYWNobS5cIn19LGluZGlhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJDaGFpdHJhXCIsXCJWYWlzYWtoYVwiLFwiSnlhaXN0aGFcIixcIkFzYWRoYVwiLFwiU3JhdmFuYVwiLFwiQmhhZHJhXCIsXCJBc3ZpbmFcIixcIkthcnRpa2FcIixcIkFncmFoYXlhbmFcIixcIlBhdXNhXCIsXCJNYWdoYVwiLFwiUGhhbGd1bmFcIl0sbG9uZzpbXCJDaGFpdHJhXCIsXCJWYWlzYWtoYVwiLFwiSnlhaXN0aGFcIixcIkFzYWRoYVwiLFwiU3JhdmFuYVwiLFwiQmhhZHJhXCIsXCJBc3ZpbmFcIixcIkthcnRpa2FcIixcIkFncmFoYXlhbmFcIixcIlBhdXNhXCIsXCJNYWdoYVwiLFwiUGhhbGd1bmFcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJEXCIsXCJNXCIsXCJEXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlNvLlwiLFwiTW8uXCIsXCJEaS5cIixcIk1pLlwiLFwiRG8uXCIsXCJGci5cIixcIlNhLlwiXSxsb25nOltcIlNvbm50YWdcIixcIk1vbnRhZ1wiLFwiRGllbnN0YWdcIixcIk1pdHR3b2NoXCIsXCJEb25uZXJzdGFnXCIsXCJGcmVpdGFnXCIsXCJTYW1zdGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiU2FrYVwiXSxzaG9ydDpbXCJTYWthXCJdLGxvbmc6W1wiU2FrYVwiXX0sZGF5UGVyaW9kczp7YW06XCJ2b3JtLlwiLHBtOlwibmFjaG0uXCJ9fSxpc2xhbWljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk11aC5cIixcIlNhZi5cIixcIlJhYi4gSVwiLFwiUmFiLiBJSVwiLFwiSnVtLiBJXCIsXCJKdW0uIElJXCIsXCJSYWouXCIsXCJTaGEuXCIsXCJSYW0uXCIsXCJTaGF3LlwiLFwiRGh1yrtsLVEuXCIsXCJEaHXKu2wtSC5cIl0sbG9uZzpbXCJNdWhhcnJhbVwiLFwiU2FmYXJcIixcIlJhYmnKuyBJXCIsXCJSYWJpyrsgSUlcIixcIkp1bWFkYSBJXCIsXCJKdW1hZGEgSUlcIixcIlJhamFiXCIsXCJTaGHKu2JhblwiLFwiUmFtYWRhblwiLFwiU2hhd3dhbFwiLFwiRGh1yrtsLVFpyrtkYWhcIixcIkRodcq7bC1IaWpqYWhcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJEXCIsXCJNXCIsXCJEXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlNvLlwiLFwiTW8uXCIsXCJEaS5cIixcIk1pLlwiLFwiRG8uXCIsXCJGci5cIixcIlNhLlwiXSxsb25nOltcIlNvbm50YWdcIixcIk1vbnRhZ1wiLFwiRGllbnN0YWdcIixcIk1pdHR3b2NoXCIsXCJEb25uZXJzdGFnXCIsXCJGcmVpdGFnXCIsXCJTYW1zdGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCJ2b3JtLlwiLHBtOlwibmFjaG0uXCJ9fSxpc2xhbWljYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJKdW1hZGEgSVwiLFwiSnVtYWRhIElJXCIsXCJSYWphYlwiLFwiU2hhyrtiYW5cIixcIlJhbWFkYW5cIixcIlNoYXd3YWxcIixcIkRodcq7bC1Racq7ZGFoXCIsXCJEaHXKu2wtSGlqamFoXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiRFwiLFwiTVwiLFwiRFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTby5cIixcIk1vLlwiLFwiRGkuXCIsXCJNaS5cIixcIkRvLlwiLFwiRnIuXCIsXCJTYS5cIl0sbG9uZzpbXCJTb25udGFnXCIsXCJNb250YWdcIixcIkRpZW5zdGFnXCIsXCJNaXR0d29jaFwiLFwiRG9ubmVyc3RhZ1wiLFwiRnJlaXRhZ1wiLFwiU2Ftc3RhZ1wiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwidm9ybS5cIixwbTpcIm5hY2htLlwifX0samFwYW5lc2U6e21vbnRoczp7bmFycm93OltcIkpcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiSmFuLlwiLFwiRmViLlwiLFwiTcOkcnpcIixcIkFwci5cIixcIk1haVwiLFwiSnVuaVwiLFwiSnVsaVwiLFwiQXVnLlwiLFwiU2VwLlwiLFwiT2t0LlwiLFwiTm92LlwiLFwiRGV6LlwiXSxsb25nOltcIkphbnVhclwiLFwiRmVicnVhclwiLFwiTcOkcnpcIixcIkFwcmlsXCIsXCJNYWlcIixcIkp1bmlcIixcIkp1bGlcIixcIkF1Z3VzdFwiLFwiU2VwdGVtYmVyXCIsXCJPa3RvYmVyXCIsXCJOb3ZlbWJlclwiLFwiRGV6ZW1iZXJcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJEXCIsXCJNXCIsXCJEXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlNvLlwiLFwiTW8uXCIsXCJEaS5cIixcIk1pLlwiLFwiRG8uXCIsXCJGci5cIixcIlNhLlwiXSxsb25nOltcIlNvbm50YWdcIixcIk1vbnRhZ1wiLFwiRGllbnN0YWdcIixcIk1pdHR3b2NoXCIsXCJEb25uZXJzdGFnXCIsXCJGcmVpdGFnXCIsXCJTYW1zdGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdLGxvbmc6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl19LGRheVBlcmlvZHM6e2FtOlwidm9ybS5cIixwbTpcIm5hY2htLlwifX0scGVyc2lhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJGYXJ2YXJkaW5cIixcIk9yZGliZWhlc2h0XCIsXCJLaG9yZGFkXCIsXCJUaXJcIixcIk1vcmRhZFwiLFwiU2hhaHJpdmFyXCIsXCJNZWhyXCIsXCJBYmFuXCIsXCJBemFyXCIsXCJEZXlcIixcIkJhaG1hblwiLFwiRXNmYW5kXCJdLGxvbmc6W1wiRmFydmFyZGluXCIsXCJPcmRpYmVoZXNodFwiLFwiS2hvcmRhZFwiLFwiVGlyXCIsXCJNb3JkYWRcIixcIlNoYWhyaXZhclwiLFwiTWVoclwiLFwiQWJhblwiLFwiQXphclwiLFwiRGV5XCIsXCJCYWhtYW5cIixcIkVzZmFuZFwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIkRcIixcIk1cIixcIkRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU28uXCIsXCJNby5cIixcIkRpLlwiLFwiTWkuXCIsXCJEby5cIixcIkZyLlwiLFwiU2EuXCJdLGxvbmc6W1wiU29ubnRhZ1wiLFwiTW9udGFnXCIsXCJEaWVuc3RhZ1wiLFwiTWl0dHdvY2hcIixcIkRvbm5lcnN0YWdcIixcIkZyZWl0YWdcIixcIlNhbXN0YWdcIl19LGVyYXM6e25hcnJvdzpbXCJBUFwiXSxzaG9ydDpbXCJBUFwiXSxsb25nOltcIkFQXCJdfSxkYXlQZXJpb2RzOnthbTpcInZvcm0uXCIscG06XCJuYWNobS5cIn19LHJvYzp7bW9udGhzOntuYXJyb3c6W1wiSlwiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiSlwiLFwiSlwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJKYW4uXCIsXCJGZWIuXCIsXCJNw6RyelwiLFwiQXByLlwiLFwiTWFpXCIsXCJKdW5pXCIsXCJKdWxpXCIsXCJBdWcuXCIsXCJTZXAuXCIsXCJPa3QuXCIsXCJOb3YuXCIsXCJEZXouXCJdLGxvbmc6W1wiSmFudWFyXCIsXCJGZWJydWFyXCIsXCJNw6RyelwiLFwiQXByaWxcIixcIk1haVwiLFwiSnVuaVwiLFwiSnVsaVwiLFwiQXVndXN0XCIsXCJTZXB0ZW1iZXJcIixcIk9rdG9iZXJcIixcIk5vdmVtYmVyXCIsXCJEZXplbWJlclwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIkRcIixcIk1cIixcIkRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU28uXCIsXCJNby5cIixcIkRpLlwiLFwiTWkuXCIsXCJEby5cIixcIkZyLlwiLFwiU2EuXCJdLGxvbmc6W1wiU29ubnRhZ1wiLFwiTW9udGFnXCIsXCJEaWVuc3RhZ1wiLFwiTWl0dHdvY2hcIixcIkRvbm5lcnN0YWdcIixcIkZyZWl0YWdcIixcIlNhbXN0YWdcIl19LGVyYXM6e25hcnJvdzpbXCJCZWZvcmUgUi5PLkMuXCIsXCJNaW5ndW9cIl0sc2hvcnQ6W1wiQmVmb3JlIFIuTy5DLlwiLFwiTWluZ3VvXCJdLGxvbmc6W1wiQmVmb3JlIFIuTy5DLlwiLFwiTWluZ3VvXCJdfSxkYXlQZXJpb2RzOnthbTpcInZvcm0uXCIscG06XCJuYWNobS5cIn19fX0sbnVtYmVyOntudTpbXCJsYXRuXCJdLHBhdHRlcm5zOntkZWNpbWFsOntwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn1cIn0sY3VycmVuY3k6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9wqB7Y3VycmVuY3l9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfcKge2N1cnJlbmN5fVwifSxwZXJjZW50Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfcKge3BlcmNlbnRTaWdufVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn3CoHtwZXJjZW50U2lnbn1cIn19LHN5bWJvbHM6e2xhdG46e2RlY2ltYWw6XCIsXCIsZ3JvdXA6XCIuXCIsbmFuOlwiTmFOXCIscGx1c1NpZ246XCIrXCIsbWludXNTaWduOlwiLVwiLHBlcmNlbnRTaWduOlwiJVwiLGluZmluaXR5Olwi4oieXCJ9fSxjdXJyZW5jaWVzOntBVFM6XCLDtlNcIixBVUQ6XCJBVSRcIixCR006XCJCR0tcIixCR086XCJCR0pcIixCUkw6XCJSJFwiLENBRDpcIkNBJFwiLENOWTpcIkNOwqVcIixERU06XCJETVwiLEVVUjpcIuKCrFwiLEdCUDpcIsKjXCIsSEtEOlwiSEskXCIsSUxTOlwi4oKqXCIsSU5SOlwi4oK5XCIsSlBZOlwiwqVcIixLUlc6XCLigqlcIixNWE46XCJNWCRcIixOWkQ6XCJOWiRcIixUSEI6XCLguL9cIixUV0Q6XCJOVCRcIixVU0Q6XCIkXCIsVk5EOlwi4oKrXCIsWEFGOlwiRkNGQVwiLFhDRDpcIkVDJFwiLFhPRjpcIkNGQVwiLFhQRjpcIkNGUEZcIn19fSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9kZS5qc1xuLy8gbW9kdWxlIGlkID0gMjE4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJJbnRsUG9seWZpbGwuX19hZGRMb2NhbGVEYXRhKHtsb2NhbGU6XCJlblwiLGRhdGU6e2NhOltcImdyZWdvcnlcIixcImJ1ZGRoaXN0XCIsXCJjaGluZXNlXCIsXCJjb3B0aWNcIixcImRhbmdpXCIsXCJldGhpb2FhXCIsXCJldGhpb3BpY1wiLFwiZ2VuZXJpY1wiLFwiaGVicmV3XCIsXCJpbmRpYW5cIixcImlzbGFtaWNcIixcImlzbGFtaWNjXCIsXCJqYXBhbmVzZVwiLFwicGVyc2lhblwiLFwicm9jXCJdLGhvdXJObzA6dHJ1ZSxob3VyMTI6dHJ1ZSxmb3JtYXRzOntzaG9ydDpcInsxfSwgezB9XCIsbWVkaXVtOlwiezF9LCB7MH1cIixmdWxsOlwiezF9ICdhdCcgezB9XCIsbG9uZzpcInsxfSAnYXQnIHswfVwiLGF2YWlsYWJsZUZvcm1hdHM6e1wiZFwiOlwiZFwiLFwiRVwiOlwiY2NjXCIsRWQ6XCJkIEVcIixFaG06XCJFIGg6bW0gYVwiLEVIbTpcIkUgSEg6bW1cIixFaG1zOlwiRSBoOm1tOnNzIGFcIixFSG1zOlwiRSBISDptbTpzc1wiLEd5OlwieSBHXCIsR3lNTU06XCJNTU0geSBHXCIsR3lNTU1kOlwiTU1NIGQsIHkgR1wiLEd5TU1NRWQ6XCJFLCBNTU0gZCwgeSBHXCIsXCJoXCI6XCJoIGFcIixcIkhcIjpcIkhIXCIsaG06XCJoOm1tIGFcIixIbTpcIkhIOm1tXCIsaG1zOlwiaDptbTpzcyBhXCIsSG1zOlwiSEg6bW06c3NcIixobXN2OlwiaDptbTpzcyBhIHZcIixIbXN2OlwiSEg6bW06c3MgdlwiLGhtdjpcImg6bW0gYSB2XCIsSG12OlwiSEg6bW0gdlwiLFwiTVwiOlwiTFwiLE1kOlwiTS9kXCIsTUVkOlwiRSwgTS9kXCIsTU1NOlwiTExMXCIsTU1NZDpcIk1NTSBkXCIsTU1NRWQ6XCJFLCBNTU0gZFwiLE1NTU1kOlwiTU1NTSBkXCIsbXM6XCJtbTpzc1wiLFwieVwiOlwieVwiLHlNOlwiTS95XCIseU1kOlwiTS9kL3lcIix5TUVkOlwiRSwgTS9kL3lcIix5TU1NOlwiTU1NIHlcIix5TU1NZDpcIk1NTSBkLCB5XCIseU1NTUVkOlwiRSwgTU1NIGQsIHlcIix5TU1NTTpcIk1NTU0geVwiLHlRUVE6XCJRUVEgeVwiLHlRUVFROlwiUVFRUSB5XCJ9LGRhdGVGb3JtYXRzOnt5TU1NTUVFRUVkOlwiRUVFRSwgTU1NTSBkLCB5XCIseU1NTU1kOlwiTU1NTSBkLCB5XCIseU1NTWQ6XCJNTU0gZCwgeVwiLHlNZDpcIk0vZC95eVwifSx0aW1lRm9ybWF0czp7aG1tc3N6enp6OlwiaDptbTpzcyBhIHp6enpcIixobXN6OlwiaDptbTpzcyBhIHpcIixobXM6XCJoOm1tOnNzIGFcIixobTpcImg6bW0gYVwifX0sY2FsZW5kYXJzOntidWRkaGlzdDp7bW9udGhzOntuYXJyb3c6W1wiSlwiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiSlwiLFwiSlwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJKYW5cIixcIkZlYlwiLFwiTWFyXCIsXCJBcHJcIixcIk1heVwiLFwiSnVuXCIsXCJKdWxcIixcIkF1Z1wiLFwiU2VwXCIsXCJPY3RcIixcIk5vdlwiLFwiRGVjXCJdLGxvbmc6W1wiSmFudWFyeVwiLFwiRmVicnVhcnlcIixcIk1hcmNoXCIsXCJBcHJpbFwiLFwiTWF5XCIsXCJKdW5lXCIsXCJKdWx5XCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2N0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlY2VtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiV1wiLFwiVFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTdW5cIixcIk1vblwiLFwiVHVlXCIsXCJXZWRcIixcIlRodVwiLFwiRnJpXCIsXCJTYXRcIl0sbG9uZzpbXCJTdW5kYXlcIixcIk1vbmRheVwiLFwiVHVlc2RheVwiLFwiV2VkbmVzZGF5XCIsXCJUaHVyc2RheVwiLFwiRnJpZGF5XCIsXCJTYXR1cmRheVwiXX0sZXJhczp7bmFycm93OltcIkJFXCJdLHNob3J0OltcIkJFXCJdLGxvbmc6W1wiQkVcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxjaGluZXNlOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk1vMVwiLFwiTW8yXCIsXCJNbzNcIixcIk1vNFwiLFwiTW81XCIsXCJNbzZcIixcIk1vN1wiLFwiTW84XCIsXCJNbzlcIixcIk1vMTBcIixcIk1vMTFcIixcIk1vMTJcIl0sbG9uZzpbXCJNb250aDFcIixcIk1vbnRoMlwiLFwiTW9udGgzXCIsXCJNb250aDRcIixcIk1vbnRoNVwiLFwiTW9udGg2XCIsXCJNb250aDdcIixcIk1vbnRoOFwiLFwiTW9udGg5XCIsXCJNb250aDEwXCIsXCJNb250aDExXCIsXCJNb250aDEyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiV1wiLFwiVFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTdW5cIixcIk1vblwiLFwiVHVlXCIsXCJXZWRcIixcIlRodVwiLFwiRnJpXCIsXCJTYXRcIl0sbG9uZzpbXCJTdW5kYXlcIixcIk1vbmRheVwiLFwiVHVlc2RheVwiLFwiV2VkbmVzZGF5XCIsXCJUaHVyc2RheVwiLFwiRnJpZGF5XCIsXCJTYXR1cmRheVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGNvcHRpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiVG91dFwiLFwiQmFiYVwiLFwiSGF0b3JcIixcIktpYWhrXCIsXCJUb2JhXCIsXCJBbXNoaXJcIixcIkJhcmFtaGF0XCIsXCJCYXJhbW91ZGFcIixcIkJhc2hhbnNcIixcIlBhb25hXCIsXCJFcGVwXCIsXCJNZXNyYVwiLFwiTmFzaWVcIl0sbG9uZzpbXCJUb3V0XCIsXCJCYWJhXCIsXCJIYXRvclwiLFwiS2lhaGtcIixcIlRvYmFcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtb3VkYVwiLFwiQmFzaGFuc1wiLFwiUGFvbmFcIixcIkVwZXBcIixcIk1lc3JhXCIsXCJOYXNpZVwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIldcIixcIlRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU3VuXCIsXCJNb25cIixcIlR1ZVwiLFwiV2VkXCIsXCJUaHVcIixcIkZyaVwiLFwiU2F0XCJdLGxvbmc6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTW8xXCIsXCJNbzJcIixcIk1vM1wiLFwiTW80XCIsXCJNbzVcIixcIk1vNlwiLFwiTW83XCIsXCJNbzhcIixcIk1vOVwiLFwiTW8xMFwiLFwiTW8xMVwiLFwiTW8xMlwiXSxsb25nOltcIk1vbnRoMVwiLFwiTW9udGgyXCIsXCJNb250aDNcIixcIk1vbnRoNFwiLFwiTW9udGg1XCIsXCJNb250aDZcIixcIk1vbnRoN1wiLFwiTW9udGg4XCIsXCJNb250aDlcIixcIk1vbnRoMTBcIixcIk1vbnRoMTFcIixcIk1vbnRoMTJcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJXXCIsXCJUXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxsb25nOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZXRoaW9waWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdLGxvbmc6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJXXCIsXCJUXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxsb25nOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGV0aGlvYWE6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdLGxvbmc6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJXXCIsXCJUXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxsb25nOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiXSxzaG9ydDpbXCJFUkEwXCJdLGxvbmc6W1wiRVJBMFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJXXCIsXCJUXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxsb25nOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGdyZWdvcnk6e21vbnRoczp7bmFycm93OltcIkpcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiSmFuXCIsXCJGZWJcIixcIk1hclwiLFwiQXByXCIsXCJNYXlcIixcIkp1blwiLFwiSnVsXCIsXCJBdWdcIixcIlNlcFwiLFwiT2N0XCIsXCJOb3ZcIixcIkRlY1wiXSxsb25nOltcIkphbnVhcnlcIixcIkZlYnJ1YXJ5XCIsXCJNYXJjaFwiLFwiQXByaWxcIixcIk1heVwiLFwiSnVuZVwiLFwiSnVseVwiLFwiQXVndXN0XCIsXCJTZXB0ZW1iZXJcIixcIk9jdG9iZXJcIixcIk5vdmVtYmVyXCIsXCJEZWNlbWJlclwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIldcIixcIlRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU3VuXCIsXCJNb25cIixcIlR1ZVwiLFwiV2VkXCIsXCJUaHVcIixcIkZyaVwiLFwiU2F0XCJdLGxvbmc6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl19LGVyYXM6e25hcnJvdzpbXCJCXCIsXCJBXCIsXCJCQ0VcIixcIkNFXCJdLHNob3J0OltcIkJDXCIsXCJBRFwiLFwiQkNFXCIsXCJDRVwiXSxsb25nOltcIkJlZm9yZSBDaHJpc3RcIixcIkFubm8gRG9taW5pXCIsXCJCZWZvcmUgQ29tbW9uIEVyYVwiLFwiQ29tbW9uIEVyYVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGhlYnJldzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIixcIjdcIl0sc2hvcnQ6W1wiVGlzaHJpXCIsXCJIZXNodmFuXCIsXCJLaXNsZXZcIixcIlRldmV0XCIsXCJTaGV2YXRcIixcIkFkYXIgSVwiLFwiQWRhclwiLFwiTmlzYW5cIixcIkl5YXJcIixcIlNpdmFuXCIsXCJUYW11elwiLFwiQXZcIixcIkVsdWxcIixcIkFkYXIgSUlcIl0sbG9uZzpbXCJUaXNocmlcIixcIkhlc2h2YW5cIixcIktpc2xldlwiLFwiVGV2ZXRcIixcIlNoZXZhdFwiLFwiQWRhciBJXCIsXCJBZGFyXCIsXCJOaXNhblwiLFwiSXlhclwiLFwiU2l2YW5cIixcIlRhbXV6XCIsXCJBdlwiLFwiRWx1bFwiLFwiQWRhciBJSVwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIldcIixcIlRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU3VuXCIsXCJNb25cIixcIlR1ZVwiLFwiV2VkXCIsXCJUaHVcIixcIkZyaVwiLFwiU2F0XCJdLGxvbmc6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl19LGVyYXM6e25hcnJvdzpbXCJBTVwiXSxzaG9ydDpbXCJBTVwiXSxsb25nOltcIkFNXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saW5kaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIkNoYWl0cmFcIixcIlZhaXNha2hhXCIsXCJKeWFpc3RoYVwiLFwiQXNhZGhhXCIsXCJTcmF2YW5hXCIsXCJCaGFkcmFcIixcIkFzdmluYVwiLFwiS2FydGlrYVwiLFwiQWdyYWhheWFuYVwiLFwiUGF1c2FcIixcIk1hZ2hhXCIsXCJQaGFsZ3VuYVwiXSxsb25nOltcIkNoYWl0cmFcIixcIlZhaXNha2hhXCIsXCJKeWFpc3RoYVwiLFwiQXNhZGhhXCIsXCJTcmF2YW5hXCIsXCJCaGFkcmFcIixcIkFzdmluYVwiLFwiS2FydGlrYVwiLFwiQWdyYWhheWFuYVwiLFwiUGF1c2FcIixcIk1hZ2hhXCIsXCJQaGFsZ3VuYVwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIldcIixcIlRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU3VuXCIsXCJNb25cIixcIlR1ZVwiLFwiV2VkXCIsXCJUaHVcIixcIkZyaVwiLFwiU2F0XCJdLGxvbmc6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl19LGVyYXM6e25hcnJvdzpbXCJTYWthXCJdLHNob3J0OltcIlNha2FcIl0sbG9uZzpbXCJTYWthXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saXNsYW1pYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJKdW1hZGEgSVwiLFwiSnVtYWRhIElJXCIsXCJSYWphYlwiLFwiU2hhyrtiYW5cIixcIlJhbWFkYW5cIixcIlNoYXd3YWxcIixcIkRodcq7bC1Racq7ZGFoXCIsXCJEaHXKu2wtSGlqamFoXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiV1wiLFwiVFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTdW5cIixcIk1vblwiLFwiVHVlXCIsXCJXZWRcIixcIlRodVwiLFwiRnJpXCIsXCJTYXRcIl0sbG9uZzpbXCJTdW5kYXlcIixcIk1vbmRheVwiLFwiVHVlc2RheVwiLFwiV2VkbmVzZGF5XCIsXCJUaHVyc2RheVwiLFwiRnJpZGF5XCIsXCJTYXR1cmRheVwiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxpc2xhbWljYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJKdW1hZGEgSVwiLFwiSnVtYWRhIElJXCIsXCJSYWphYlwiLFwiU2hhyrtiYW5cIixcIlJhbWFkYW5cIixcIlNoYXd3YWxcIixcIkRodcq7bC1Racq7ZGFoXCIsXCJEaHXKu2wtSGlqamFoXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiV1wiLFwiVFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTdW5cIixcIk1vblwiLFwiVHVlXCIsXCJXZWRcIixcIlRodVwiLFwiRnJpXCIsXCJTYXRcIl0sbG9uZzpbXCJTdW5kYXlcIixcIk1vbmRheVwiLFwiVHVlc2RheVwiLFwiV2VkbmVzZGF5XCIsXCJUaHVyc2RheVwiLFwiRnJpZGF5XCIsXCJTYXR1cmRheVwiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxqYXBhbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiSlwiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiSlwiLFwiSlwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJKYW5cIixcIkZlYlwiLFwiTWFyXCIsXCJBcHJcIixcIk1heVwiLFwiSnVuXCIsXCJKdWxcIixcIkF1Z1wiLFwiU2VwXCIsXCJPY3RcIixcIk5vdlwiLFwiRGVjXCJdLGxvbmc6W1wiSmFudWFyeVwiLFwiRmVicnVhcnlcIixcIk1hcmNoXCIsXCJBcHJpbFwiLFwiTWF5XCIsXCJKdW5lXCIsXCJKdWx5XCIsXCJBdWd1c3RcIixcIlNlcHRlbWJlclwiLFwiT2N0b2JlclwiLFwiTm92ZW1iZXJcIixcIkRlY2VtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiV1wiLFwiVFwiLFwiRlwiLFwiU1wiXSxzaG9ydDpbXCJTdW5cIixcIk1vblwiLFwiVHVlXCIsXCJXZWRcIixcIlRodVwiLFwiRnJpXCIsXCJTYXRcIl0sbG9uZzpbXCJTdW5kYXlcIixcIk1vbmRheVwiLFwiVHVlc2RheVwiLFwiV2VkbmVzZGF5XCIsXCJUaHVyc2RheVwiLFwiRnJpZGF5XCIsXCJTYXR1cmRheVwiXX0sZXJhczp7bmFycm93OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTVwiLFwiVFwiLFwiU1wiLFwiSFwiXSxzaG9ydDpbXCJUYWlrYSAoNjQ14oCTNjUwKVwiLFwiSGFrdWNoaSAoNjUw4oCTNjcxKVwiLFwiSGFrdWjFjSAoNjcy4oCTNjg2KVwiLFwiU2h1Y2jFjSAoNjg24oCTNzAxKVwiLFwiVGFpaMWNICg3MDHigJM3MDQpXCIsXCJLZWl1biAoNzA04oCTNzA4KVwiLFwiV2FkxY0gKDcwOOKAkzcxNSlcIixcIlJlaWtpICg3MTXigJM3MTcpXCIsXCJZxY1yxY0gKDcxN+KAkzcyNClcIixcIkppbmtpICg3MjTigJM3MjkpXCIsXCJUZW5wecWNICg3MjnigJM3NDkpXCIsXCJUZW5wecWNLWthbXDFjSAoNzQ5LTc0OSlcIixcIlRlbnB5xY0tc2jFjWjFjSAoNzQ5LTc1NylcIixcIlRlbnB5xY0taMWNamkgKDc1Ny03NjUpXCIsXCJUZW5wecWNLWppbmdvICg3NjUtNzY3KVwiLFwiSmluZ28ta2VpdW4gKDc2Ny03NzApXCIsXCJIxY1raSAoNzcw4oCTNzgwKVwiLFwiVGVuLcWNICg3ODEtNzgyKVwiLFwiRW5yeWFrdSAoNzgy4oCTODA2KVwiLFwiRGFpZMWNICg4MDbigJM4MTApXCIsXCJLxY1uaW4gKDgxMOKAkzgyNClcIixcIlRlbmNoxY0gKDgyNOKAkzgzNClcIixcIkrFjXdhICg4MzTigJM4NDgpXCIsXCJLYWrFjSAoODQ44oCTODUxKVwiLFwiTmluanUgKDg1MeKAkzg1NClcIixcIlNhaWvFjSAoODU04oCTODU3KVwiLFwiVGVuLWFuICg4NTctODU5KVwiLFwiSsWNZ2FuICg4NTnigJM4NzcpXCIsXCJHYW5necWNICg4NzfigJM4ODUpXCIsXCJOaW5uYSAoODg14oCTODg5KVwiLFwiS2FucHnFjSAoODg54oCTODk4KVwiLFwiU2jFjXRhaSAoODk44oCTOTAxKVwiLFwiRW5naSAoOTAx4oCTOTIzKVwiLFwiRW5jaMWNICg5MjPigJM5MzEpXCIsXCJKxY1oZWkgKDkzMeKAkzkzOClcIixcIlRlbmd5xY0gKDkzOOKAkzk0NylcIixcIlRlbnJ5YWt1ICg5NDfigJM5NTcpXCIsXCJUZW50b2t1ICg5NTfigJM5NjEpXCIsXCLFjHdhICg5NjHigJM5NjQpXCIsXCJLxY1oxY0gKDk2NOKAkzk2OClcIixcIkFubmEgKDk2OOKAkzk3MClcIixcIlRlbnJva3UgKDk3MOKAkzk3MylcIixcIlRlbuKAmWVuICg5NzPigJM5NzYpXCIsXCJKxY1nZW4gKDk3NuKAkzk3OClcIixcIlRlbmdlbiAoOTc44oCTOTgzKVwiLFwiRWlrYW4gKDk4M+KAkzk4NSlcIixcIkthbm5hICg5ODXigJM5ODcpXCIsXCJFaWVuICg5ODfigJM5ODkpXCIsXCJFaXNvICg5ODnigJM5OTApXCIsXCJTaMWNcnlha3UgKDk5MOKAkzk5NSlcIixcIkNoxY10b2t1ICg5OTXigJM5OTkpXCIsXCJDaMWNaMWNICg5OTnigJMxMDA0KVwiLFwiS2Fua8WNICgxMDA04oCTMTAxMilcIixcIkNoxY13YSAoMTAxMuKAkzEwMTcpXCIsXCJLYW5uaW4gKDEwMTfigJMxMDIxKVwiLFwiSmlhbiAoMTAyMeKAkzEwMjQpXCIsXCJNYW5qdSAoMTAyNOKAkzEwMjgpXCIsXCJDaMWNZ2VuICgxMDI44oCTMTAzNylcIixcIkNoxY1yeWFrdSAoMTAzN+KAkzEwNDApXCIsXCJDaMWNa3nFqyAoMTA0MOKAkzEwNDQpXCIsXCJLYW50b2t1ICgxMDQ04oCTMTA0NilcIixcIkVpc2jFjSAoMTA0NuKAkzEwNTMpXCIsXCJUZW5naSAoMTA1M+KAkzEwNTgpXCIsXCJLxY1oZWkgKDEwNTjigJMxMDY1KVwiLFwiSmlyeWFrdSAoMTA2NeKAkzEwNjkpXCIsXCJFbmt5xasgKDEwNjnigJMxMDc0KVwiLFwiU2jFjWhvICgxMDc04oCTMTA3NylcIixcIlNoxY1yeWFrdSAoMTA3N+KAkzEwODEpXCIsXCJFaWjFjSAoMTA4MeKAkzEwODQpXCIsXCLFjHRva3UgKDEwODTigJMxMDg3KVwiLFwiS2FuamkgKDEwODfigJMxMDk0KVwiLFwiS2FoxY0gKDEwOTTigJMxMDk2KVwiLFwiRWljaMWNICgxMDk24oCTMTA5NylcIixcIkrFjXRva3UgKDEwOTfigJMxMDk5KVwiLFwiS8WNd2EgKDEwOTnigJMxMTA0KVwiLFwiQ2jFjWppICgxMTA04oCTMTEwNilcIixcIkthc2jFjSAoMTEwNuKAkzExMDgpXCIsXCJUZW5uaW4gKDExMDjigJMxMTEwKVwiLFwiVGVuLWVpICgxMTEwLTExMTMpXCIsXCJFaWt5xasgKDExMTPigJMxMTE4KVwiLFwiR2Vu4oCZZWkgKDExMTjigJMxMTIwKVwiLFwiSMWNYW4gKDExMjDigJMxMTI0KVwiLFwiVGVuamkgKDExMjTigJMxMTI2KVwiLFwiRGFpamkgKDExMjbigJMxMTMxKVwiLFwiVGVuc2jFjSAoMTEzMeKAkzExMzIpXCIsXCJDaMWNc2jFjSAoMTEzMuKAkzExMzUpXCIsXCJIxY1lbiAoMTEzNeKAkzExNDEpXCIsXCJFaWppICgxMTQx4oCTMTE0MilcIixcIkvFjWppICgxMTQy4oCTMTE0NClcIixcIlRlbuKAmXnFjSAoMTE0NOKAkzExNDUpXCIsXCJLecWrYW4gKDExNDXigJMxMTUxKVwiLFwiTmlucGVpICgxMTUx4oCTMTE1NClcIixcIkt5xatqdSAoMTE1NOKAkzExNTYpXCIsXCJIxY1nZW4gKDExNTbigJMxMTU5KVwiLFwiSGVpamkgKDExNTnigJMxMTYwKVwiLFwiRWlyeWFrdSAoMTE2MOKAkzExNjEpXCIsXCLFjGhvICgxMTYx4oCTMTE2MylcIixcIkNoxY1rYW4gKDExNjPigJMxMTY1KVwiLFwiRWltYW4gKDExNjXigJMxMTY2KVwiLFwiTmlu4oCZYW4gKDExNjbigJMxMTY5KVwiLFwiS2HFjSAoMTE2OeKAkzExNzEpXCIsXCJTaMWNYW4gKDExNzHigJMxMTc1KVwiLFwiQW5nZW4gKDExNzXigJMxMTc3KVwiLFwiSmlzaMWNICgxMTc34oCTMTE4MSlcIixcIlnFjXdhICgxMTgx4oCTMTE4MilcIixcIkp1ZWkgKDExODLigJMxMTg0KVwiLFwiR2Vucnlha3UgKDExODTigJMxMTg1KVwiLFwiQnVuamkgKDExODXigJMxMTkwKVwiLFwiS2Vua3nFqyAoMTE5MOKAkzExOTkpXCIsXCJTaMWNamkgKDExOTnigJMxMjAxKVwiLFwiS2VubmluICgxMjAx4oCTMTIwNClcIixcIkdlbmt5xasgKDEyMDTigJMxMjA2KVwiLFwiS2Vu4oCZZWkgKDEyMDbigJMxMjA3KVwiLFwiSsWNZ2VuICgxMjA34oCTMTIxMSlcIixcIktlbnJ5YWt1ICgxMjEx4oCTMTIxMylcIixcIktlbnDFjSAoMTIxM+KAkzEyMTkpXCIsXCJKxY1recWrICgxMjE54oCTMTIyMilcIixcIkrFjcWNICgxMjIy4oCTMTIyNClcIixcIkdlbm5pbiAoMTIyNOKAkzEyMjUpXCIsXCJLYXJva3UgKDEyMjXigJMxMjI3KVwiLFwiQW50ZWkgKDEyMjfigJMxMjI5KVwiLFwiS2Fua2kgKDEyMjnigJMxMjMyKVwiLFwiSsWNZWkgKDEyMzLigJMxMjMzKVwiLFwiVGVucHVrdSAoMTIzM+KAkzEyMzQpXCIsXCJCdW5yeWFrdSAoMTIzNOKAkzEyMzUpXCIsXCJLYXRlaSAoMTIzNeKAkzEyMzgpXCIsXCJSeWFrdW5pbiAoMTIzOOKAkzEyMzkpXCIsXCJFbuKAmcWNICgxMjM54oCTMTI0MClcIixcIk5pbmppICgxMjQw4oCTMTI0MylcIixcIkthbmdlbiAoMTI0M+KAkzEyNDcpXCIsXCJIxY1qaSAoMTI0N+KAkzEyNDkpXCIsXCJLZW5jaMWNICgxMjQ54oCTMTI1NilcIixcIkvFjWdlbiAoMTI1NuKAkzEyNTcpXCIsXCJTaMWNa2EgKDEyNTfigJMxMjU5KVwiLFwiU2jFjWdlbiAoMTI1OeKAkzEyNjApXCIsXCJCdW7igJnFjSAoMTI2MOKAkzEyNjEpXCIsXCJLxY1jaMWNICgxMjYx4oCTMTI2NClcIixcIkJ1buKAmWVpICgxMjY04oCTMTI3NSlcIixcIktlbmppICgxMjc14oCTMTI3OClcIixcIkvFjWFuICgxMjc44oCTMTI4OClcIixcIlNoxY3FjSAoMTI4OOKAkzEyOTMpXCIsXCJFaW5pbiAoMTI5M+KAkzEyOTkpXCIsXCJTaMWNYW4gKDEyOTnigJMxMzAyKVwiLFwiS2VuZ2VuICgxMzAy4oCTMTMwMylcIixcIkthZ2VuICgxMzAz4oCTMTMwNilcIixcIlRva3VqaSAoMTMwNuKAkzEzMDgpXCIsXCJFbmt5xY0gKDEzMDjigJMxMzExKVwiLFwixYxjaMWNICgxMzEx4oCTMTMxMilcIixcIlNoxY13YSAoMTMxMuKAkzEzMTcpXCIsXCJCdW5wxY0gKDEzMTfigJMxMzE5KVwiLFwiR2VuxY0gKDEzMTnigJMxMzIxKVwiLFwiR2Vua8WNICgxMzIx4oCTMTMyNClcIixcIlNoxY1jaMWrICgxMzI04oCTMTMyNilcIixcIkthcnlha3UgKDEzMjbigJMxMzI5KVwiLFwiR2VudG9rdSAoMTMyOeKAkzEzMzEpXCIsXCJHZW5rxY0gKDEzMzHigJMxMzM0KVwiLFwiS2VubXUgKDEzMzTigJMxMzM2KVwiLFwiRW5nZW4gKDEzMzbigJMxMzQwKVwiLFwiS8WNa29rdSAoMTM0MOKAkzEzNDYpXCIsXCJTaMWNaGVpICgxMzQ24oCTMTM3MClcIixcIktlbnRva3UgKDEzNzDigJMxMzcyKVwiLFwiQnVuY2jFqyAoMTM3MuKAkzEzNzUpXCIsXCJUZW5qdSAoMTM3NeKAkzEzNzkpXCIsXCJLxY1yeWFrdSAoMTM3OeKAkzEzODEpXCIsXCJLxY13YSAoMTM4MeKAkzEzODQpXCIsXCJHZW5jaMWrICgxMzg04oCTMTM5MilcIixcIk1laXRva3UgKDEzODTigJMxMzg3KVwiLFwiS2FrZWkgKDEzODfigJMxMzg5KVwiLFwiS8WNxY0gKDEzODnigJMxMzkwKVwiLFwiTWVpdG9rdSAoMTM5MOKAkzEzOTQpXCIsXCLFjGVpICgxMzk04oCTMTQyOClcIixcIlNoxY1jaMWNICgxNDI44oCTMTQyOSlcIixcIkVpa3nFjSAoMTQyOeKAkzE0NDEpXCIsXCJLYWtpdHN1ICgxNDQx4oCTMTQ0NClcIixcIkJ1buKAmWFuICgxNDQ04oCTMTQ0OSlcIixcIkjFjXRva3UgKDE0NDnigJMxNDUyKVwiLFwiS3nFjXRva3UgKDE0NTLigJMxNDU1KVwiLFwiS8WNc2jFjSAoMTQ1NeKAkzE0NTcpXCIsXCJDaMWNcm9rdSAoMTQ1N+KAkzE0NjApXCIsXCJLYW5zaMWNICgxNDYw4oCTMTQ2NilcIixcIkJ1bnNoxY0gKDE0NjbigJMxNDY3KVwiLFwixYxuaW4gKDE0NjfigJMxNDY5KVwiLFwiQnVubWVpICgxNDY54oCTMTQ4NylcIixcIkNoxY1recWNICgxNDg34oCTMTQ4OSlcIixcIkVudG9rdSAoMTQ4OeKAkzE0OTIpXCIsXCJNZWnFjSAoMTQ5MuKAkzE1MDEpXCIsXCJCdW5raSAoMTUwMeKAkzE1MDQpXCIsXCJFaXNoxY0gKDE1MDTigJMxNTIxKVwiLFwiVGFpZWkgKDE1MjHigJMxNTI4KVwiLFwiS3nFjXJva3UgKDE1MjjigJMxNTMyKVwiLFwiVGVuYnVuICgxNTMy4oCTMTU1NSlcIixcIkvFjWppICgxNTU14oCTMTU1OClcIixcIkVpcm9rdSAoMTU1OOKAkzE1NzApXCIsXCJHZW5raSAoMTU3MOKAkzE1NzMpXCIsXCJUZW5zaMWNICgxNTcz4oCTMTU5MilcIixcIkJ1bnJva3UgKDE1OTLigJMxNTk2KVwiLFwiS2VpY2jFjSAoMTU5NuKAkzE2MTUpXCIsXCJHZW5uYSAoMTYxNeKAkzE2MjQpXCIsXCJLYW7igJllaSAoMTYyNOKAkzE2NDQpXCIsXCJTaMWNaG8gKDE2NDTigJMxNjQ4KVwiLFwiS2VpYW4gKDE2NDjigJMxNjUyKVwiLFwiSsWNxY0gKDE2NTLigJMxNjU1KVwiLFwiTWVpcmVraSAoMTY1NeKAkzE2NTgpXCIsXCJNYW5qaSAoMTY1OOKAkzE2NjEpXCIsXCJLYW5idW4gKDE2NjHigJMxNjczKVwiLFwiRW5wxY0gKDE2NzPigJMxNjgxKVwiLFwiVGVubmEgKDE2ODHigJMxNjg0KVwiLFwiSsWNa3nFjSAoMTY4NOKAkzE2ODgpXCIsXCJHZW5yb2t1ICgxNjg44oCTMTcwNClcIixcIkjFjWVpICgxNzA04oCTMTcxMSlcIixcIlNoxY10b2t1ICgxNzEx4oCTMTcxNilcIixcIkt5xY1oxY0gKDE3MTbigJMxNzM2KVwiLFwiR2VuYnVuICgxNzM24oCTMTc0MSlcIixcIkthbnDFjSAoMTc0MeKAkzE3NDQpXCIsXCJFbmt5xY0gKDE3NDTigJMxNzQ4KVwiLFwiS2Fu4oCZZW4gKDE3NDjigJMxNzUxKVwiLFwiSMWNcmVraSAoMTc1MeKAkzE3NjQpXCIsXCJNZWl3YSAoMTc2NOKAkzE3NzIpXCIsXCJBbuKAmWVpICgxNzcy4oCTMTc4MSlcIixcIlRlbm1laSAoMTc4MeKAkzE3ODkpXCIsXCJLYW5zZWkgKDE3ODnigJMxODAxKVwiLFwiS3nFjXdhICgxODAx4oCTMTgwNClcIixcIkJ1bmthICgxODA04oCTMTgxOClcIixcIkJ1bnNlaSAoMTgxOOKAkzE4MzApXCIsXCJUZW5wxY0gKDE4MzDigJMxODQ0KVwiLFwiS8WNa2EgKDE4NDTigJMxODQ4KVwiLFwiS2FlaSAoMTg0OOKAkzE4NTQpXCIsXCJBbnNlaSAoMTg1NOKAkzE4NjApXCIsXCJNYW7igJllbiAoMTg2MOKAkzE4NjEpXCIsXCJCdW5recWrICgxODYx4oCTMTg2NClcIixcIkdlbmppICgxODY04oCTMTg2NSlcIixcIktlacWNICgxODY14oCTMTg2OClcIixcIk1laWppXCIsXCJUYWlzaMWNXCIsXCJTaMWNd2FcIixcIkhlaXNlaVwiXSxsb25nOltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0scGVyc2lhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJGYXJ2YXJkaW5cIixcIk9yZGliZWhlc2h0XCIsXCJLaG9yZGFkXCIsXCJUaXJcIixcIk1vcmRhZFwiLFwiU2hhaHJpdmFyXCIsXCJNZWhyXCIsXCJBYmFuXCIsXCJBemFyXCIsXCJEZXlcIixcIkJhaG1hblwiLFwiRXNmYW5kXCJdLGxvbmc6W1wiRmFydmFyZGluXCIsXCJPcmRpYmVoZXNodFwiLFwiS2hvcmRhZFwiLFwiVGlyXCIsXCJNb3JkYWRcIixcIlNoYWhyaXZhclwiLFwiTWVoclwiLFwiQWJhblwiLFwiQXphclwiLFwiRGV5XCIsXCJCYWhtYW5cIixcIkVzZmFuZFwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIldcIixcIlRcIixcIkZcIixcIlNcIl0sc2hvcnQ6W1wiU3VuXCIsXCJNb25cIixcIlR1ZVwiLFwiV2VkXCIsXCJUaHVcIixcIkZyaVwiLFwiU2F0XCJdLGxvbmc6W1wiU3VuZGF5XCIsXCJNb25kYXlcIixcIlR1ZXNkYXlcIixcIldlZG5lc2RheVwiLFwiVGh1cnNkYXlcIixcIkZyaWRheVwiLFwiU2F0dXJkYXlcIl19LGVyYXM6e25hcnJvdzpbXCJBUFwiXSxzaG9ydDpbXCJBUFwiXSxsb25nOltcIkFQXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0scm9jOnttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcIkphblwiLFwiRmViXCIsXCJNYXJcIixcIkFwclwiLFwiTWF5XCIsXCJKdW5cIixcIkp1bFwiLFwiQXVnXCIsXCJTZXBcIixcIk9jdFwiLFwiTm92XCIsXCJEZWNcIl0sbG9uZzpbXCJKYW51YXJ5XCIsXCJGZWJydWFyeVwiLFwiTWFyY2hcIixcIkFwcmlsXCIsXCJNYXlcIixcIkp1bmVcIixcIkp1bHlcIixcIkF1Z3VzdFwiLFwiU2VwdGVtYmVyXCIsXCJPY3RvYmVyXCIsXCJOb3ZlbWJlclwiLFwiRGVjZW1iZXJcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJXXCIsXCJUXCIsXCJGXCIsXCJTXCJdLHNob3J0OltcIlN1blwiLFwiTW9uXCIsXCJUdWVcIixcIldlZFwiLFwiVGh1XCIsXCJGcmlcIixcIlNhdFwiXSxsb25nOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdfSxlcmFzOntuYXJyb3c6W1wiQmVmb3JlIFIuTy5DLlwiLFwiTWluZ3VvXCJdLHNob3J0OltcIkJlZm9yZSBSLk8uQy5cIixcIk1pbmd1b1wiXSxsb25nOltcIkJlZm9yZSBSLk8uQy5cIixcIk1pbmd1b1wiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19fX0sbnVtYmVyOntudTpbXCJsYXRuXCJdLHBhdHRlcm5zOntkZWNpbWFsOntwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn1cIn0sY3VycmVuY3k6e3Bvc2l0aXZlUGF0dGVybjpcIntjdXJyZW5jeX17bnVtYmVyfVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e2N1cnJlbmN5fXtudW1iZXJ9XCJ9LHBlcmNlbnQ6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9e3BlcmNlbnRTaWdufVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn17cGVyY2VudFNpZ259XCJ9fSxzeW1ib2xzOntsYXRuOntkZWNpbWFsOlwiLlwiLGdyb3VwOlwiLFwiLG5hbjpcIk5hTlwiLHBsdXNTaWduOlwiK1wiLG1pbnVzU2lnbjpcIi1cIixwZXJjZW50U2lnbjpcIiVcIixpbmZpbml0eTpcIuKInlwifX0sY3VycmVuY2llczp7QVVEOlwiQSRcIixCUkw6XCJSJFwiLENBRDpcIkNBJFwiLENOWTpcIkNOwqVcIixFVVI6XCLigqxcIixHQlA6XCLCo1wiLEhLRDpcIkhLJFwiLElMUzpcIuKCqlwiLElOUjpcIuKCuVwiLEpQWTpcIsKlXCIsS1JXOlwi4oKpXCIsTVhOOlwiTVgkXCIsTlpEOlwiTlokXCIsVFdEOlwiTlQkXCIsVVNEOlwiJFwiLFZORDpcIuKCq1wiLFhBRjpcIkZDRkFcIixYQ0Q6XCJFQyRcIixYT0Y6XCJDRkFcIixYUEY6XCJDRlBGXCJ9fX0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2ludGwvbG9jYWxlLWRhdGEvanNvbnAvZW4uanNcbi8vIG1vZHVsZSBpZCA9IDIxOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiSW50bFBvbHlmaWxsLl9fYWRkTG9jYWxlRGF0YSh7bG9jYWxlOlwiZXNcIixkYXRlOntjYTpbXCJncmVnb3J5XCIsXCJidWRkaGlzdFwiLFwiY2hpbmVzZVwiLFwiY29wdGljXCIsXCJkYW5naVwiLFwiZXRoaW9hYVwiLFwiZXRoaW9waWNcIixcImdlbmVyaWNcIixcImhlYnJld1wiLFwiaW5kaWFuXCIsXCJpc2xhbWljXCIsXCJpc2xhbWljY1wiLFwiamFwYW5lc2VcIixcInBlcnNpYW5cIixcInJvY1wiXSxob3VyTm8wOnRydWUsaG91cjEyOmZhbHNlLGZvcm1hdHM6e3Nob3J0OlwiezF9IHswfVwiLG1lZGl1bTpcInsxfSB7MH1cIixmdWxsOlwiezF9LCB7MH1cIixsb25nOlwiezF9LCB7MH1cIixhdmFpbGFibGVGb3JtYXRzOntcImRcIjpcImRcIixcIkVcIjpcImNjY1wiLEVkOlwiRSBkXCIsRWhtOlwiRSwgaDptbSBhXCIsRUhtOlwiRSwgSDptbVwiLEVobXM6XCJFLCBoOm1tOnNzIGFcIixFSG1zOlwiRSwgSDptbTpzc1wiLEd5OlwieSBHXCIsR3lNTU06XCJNTU0geSBHXCIsR3lNTU1kOlwiZCBNTU0geSBHXCIsR3lNTU1FZDpcIkUsIGQgTU1NIHkgR1wiLEd5TU1NTTpcIk1NTU0gJ2RlJyB5IEdcIixHeU1NTU1kOlwiZCAnZGUnIE1NTU0gJ2RlJyB5IEdcIixHeU1NTU1FZDpcIkUsIGQgJ2RlJyBNTU1NICdkZScgeSBHXCIsXCJoXCI6XCJoIGFcIixcIkhcIjpcIkhcIixobTpcImg6bW0gYVwiLEhtOlwiSDptbVwiLGhtczpcImg6bW06c3MgYVwiLEhtczpcIkg6bW06c3NcIixobXN2OlwiaDptbTpzcyBhIHZcIixIbXN2OlwiSDptbTpzcyB2XCIsaG1zdnZ2djpcImg6bW06c3MgYSAodnZ2dilcIixIbXN2dnZ2OlwiSDptbTpzcyAodnZ2dilcIixobXY6XCJoOm1tIGEgdlwiLEhtdjpcIkg6bW0gdlwiLFwiTVwiOlwiTFwiLE1kOlwiZC9NXCIsTUVkOlwiRSwgZC9NXCIsTU1kOlwiZC9NXCIsTU1kZDpcImQvTVwiLE1NTTpcIkxMTFwiLE1NTWQ6XCJkIE1NTVwiLE1NTUVkOlwiRSwgZCBNTU1cIixNTU1NZDpcImQgJ2RlJyBNTU1NXCIsTU1NTUVkOlwiRSwgZCAnZGUnIE1NTU1cIixtczpcIm1tOnNzXCIsXCJ5XCI6XCJ5XCIseU06XCJNL3lcIix5TWQ6XCJkL00veVwiLHlNRWQ6XCJFRUUsIGQvTS95XCIseU1NOlwiTS95XCIseU1NTTpcIk1NTSB5XCIseU1NTWQ6XCJkIE1NTSB5XCIseU1NTUVkOlwiRUVFLCBkIE1NTSB5XCIseU1NTU06XCJNTU1NICdkZScgeVwiLHlNTU1NZDpcImQgJ2RlJyBNTU1NICdkZScgeVwiLHlNTU1NRWQ6XCJFRUUsIGQgJ2RlJyBNTU1NICdkZScgeVwiLHlRUVE6XCJRUVEgeVwiLHlRUVFROlwiUVFRUSAnZGUnIHlcIn0sZGF0ZUZvcm1hdHM6e3lNTU1NRUVFRWQ6XCJFRUVFLCBkICdkZScgTU1NTSAnZGUnIHlcIix5TU1NTWQ6XCJkICdkZScgTU1NTSAnZGUnIHlcIix5TU1NZDpcImQgTU1NIHlcIix5TWQ6XCJkL00veXlcIn0sdGltZUZvcm1hdHM6e2htbXNzenp6ejpcIkg6bW06c3MgKHp6enopXCIsaG1zejpcIkg6bW06c3MgelwiLGhtczpcIkg6bW06c3NcIixobTpcIkg6bW1cIn19LGNhbGVuZGFyczp7YnVkZGhpc3Q6e21vbnRoczp7bmFycm93OltcIkVcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiZW5lLlwiLFwiZmViLlwiLFwibWFyLlwiLFwiYWJyLlwiLFwibWF5LlwiLFwianVuLlwiLFwianVsLlwiLFwiYWdvLlwiLFwic2VwdC5cIixcIm9jdC5cIixcIm5vdi5cIixcImRpYy5cIl0sbG9uZzpbXCJlbmVyb1wiLFwiZmVicmVyb1wiLFwibWFyem9cIixcImFicmlsXCIsXCJtYXlvXCIsXCJqdW5pb1wiLFwianVsaW9cIixcImFnb3N0b1wiLFwic2VwdGllbWJyZVwiLFwib2N0dWJyZVwiLFwibm92aWVtYnJlXCIsXCJkaWNpZW1icmVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJYXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1pw6kuXCIsXCJqdWUuXCIsXCJ2aWUuXCIsXCJzw6FiLlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bmVzXCIsXCJtYXJ0ZXNcIixcIm1pw6lyY29sZXNcIixcImp1ZXZlc1wiLFwidmllcm5lc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkJFXCJdLHNob3J0OltcIkJFXCJdLGxvbmc6W1wiQkVcIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxjaGluZXNlOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl0sbG9uZzpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiWFwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb20uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtacOpLlwiLFwianVlLlwiLFwidmllLlwiLFwic8OhYi5cIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5lc1wiLFwibWFydGVzXCIsXCJtacOpcmNvbGVzXCIsXCJqdWV2ZXNcIixcInZpZXJuZXNcIixcInPDoWJhZG9cIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxjb3B0aWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIlRvdXRcIixcIkJhYmFcIixcIkhhdG9yXCIsXCJLaWFoa1wiLFwiVG9iYVwiLFwiQW1zaGlyXCIsXCJCYXJhbWhhdFwiLFwiQmFyYW1vdWRhXCIsXCJCYXNoYW5zXCIsXCJQYW9uYVwiLFwiRXBlcFwiLFwiTWVzcmFcIixcIk5hc2llXCJdLGxvbmc6W1wiVG91dFwiLFwiQmFiYVwiLFwiSGF0b3JcIixcIktpYWhrXCIsXCJUb2JhXCIsXCJBbXNoaXJcIixcIkJhcmFtaGF0XCIsXCJCYXJhbW91ZGFcIixcIkJhc2hhbnNcIixcIlBhb25hXCIsXCJFcGVwXCIsXCJNZXNyYVwiLFwiTmFzaWVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJYXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1pw6kuXCIsXCJqdWUuXCIsXCJ2aWUuXCIsXCJzw6FiLlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bmVzXCIsXCJtYXJ0ZXNcIixcIm1pw6lyY29sZXNcIixcImp1ZXZlc1wiLFwidmllcm5lc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxkYW5naTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIlhcIixcIkpcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tLlwiLFwibHVuLlwiLFwibWFyLlwiLFwibWnDqS5cIixcImp1ZS5cIixcInZpZS5cIixcInPDoWIuXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwibHVuZXNcIixcIm1hcnRlc1wiLFwibWnDqXJjb2xlc1wiLFwianVldmVzXCIsXCJ2aWVybmVzXCIsXCJzw6FiYWRvXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0sZXRoaW9waWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdLGxvbmc6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJYXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1pw6kuXCIsXCJqdWUuXCIsXCJ2aWUuXCIsXCJzw6FiLlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bmVzXCIsXCJtYXJ0ZXNcIixcIm1pw6lyY29sZXNcIixcImp1ZXZlc1wiLFwidmllcm5lc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxldGhpb2FhOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXSxsb25nOltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiWFwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb20uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtacOpLlwiLFwianVlLlwiLFwidmllLlwiLFwic8OhYi5cIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5lc1wiLFwibWFydGVzXCIsXCJtacOpcmNvbGVzXCIsXCJqdWV2ZXNcIixcInZpZXJuZXNcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCJdLHNob3J0OltcIkVSQTBcIl0sbG9uZzpbXCJFUkEwXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0sZ2VuZXJpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIlhcIixcIkpcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tLlwiLFwibHVuLlwiLFwibWFyLlwiLFwibWnDqS5cIixcImp1ZS5cIixcInZpZS5cIixcInPDoWIuXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwibHVuZXNcIixcIm1hcnRlc1wiLFwibWnDqXJjb2xlc1wiLFwianVldmVzXCIsXCJ2aWVybmVzXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCJhLiBtLlwiLHBtOlwicC4gbS5cIn19LGdyZWdvcnk6e21vbnRoczp7bmFycm93OltcIkVcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiZW5lLlwiLFwiZmViLlwiLFwibWFyLlwiLFwiYWJyLlwiLFwibWF5LlwiLFwianVuLlwiLFwianVsLlwiLFwiYWdvLlwiLFwic2VwdC5cIixcIm9jdC5cIixcIm5vdi5cIixcImRpYy5cIl0sbG9uZzpbXCJlbmVyb1wiLFwiZmVicmVyb1wiLFwibWFyem9cIixcImFicmlsXCIsXCJtYXlvXCIsXCJqdW5pb1wiLFwianVsaW9cIixcImFnb3N0b1wiLFwic2VwdGllbWJyZVwiLFwib2N0dWJyZVwiLFwibm92aWVtYnJlXCIsXCJkaWNpZW1icmVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJYXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1pw6kuXCIsXCJqdWUuXCIsXCJ2aWUuXCIsXCJzw6FiLlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bmVzXCIsXCJtYXJ0ZXNcIixcIm1pw6lyY29sZXNcIixcImp1ZXZlc1wiLFwidmllcm5lc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcImEuIEMuXCIsXCJkLiBDLlwiLFwiYS4gZS4gYy5cIixcImUuIGMuXCJdLHNob3J0OltcImEuIEMuXCIsXCJkLiBDLlwiLFwiYS4gZS4gYy5cIixcImUuIGMuXCJdLGxvbmc6W1wiYW50ZXMgZGUgQ3Jpc3RvXCIsXCJkZXNwdcOpcyBkZSBDcmlzdG9cIixcImFudGVzIGRlIGxhIGVyYSBjb23Dum5cIixcImVyYSBjb23Dum5cIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxoZWJyZXc6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCIsXCI3XCJdLHNob3J0OltcIlRpc2hyaVwiLFwiSGVzaHZhblwiLFwiS2lzbGV2XCIsXCJUZXZldFwiLFwiU2hldmF0XCIsXCJBZGFyIElcIixcIkFkYXJcIixcIk5pc2FuXCIsXCJJeWFyXCIsXCJTaXZhblwiLFwiVGFtdXpcIixcIkF2XCIsXCJFbHVsXCIsXCJBZGFyIElJXCJdLGxvbmc6W1wiVGlzaHJpXCIsXCJIZXNodmFuXCIsXCJLaXNsZXZcIixcIlRldmV0XCIsXCJTaGV2YXRcIixcIkFkYXIgSVwiLFwiQWRhclwiLFwiTmlzYW5cIixcIkl5YXJcIixcIlNpdmFuXCIsXCJUYW11elwiLFwiQXZcIixcIkVsdWxcIixcIkFkYXIgSUlcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJYXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1pw6kuXCIsXCJqdWUuXCIsXCJ2aWUuXCIsXCJzw6FiLlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bmVzXCIsXCJtYXJ0ZXNcIixcIm1pw6lyY29sZXNcIixcImp1ZXZlc1wiLFwidmllcm5lc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkFNXCJdLHNob3J0OltcIkFNXCJdLGxvbmc6W1wiQU1cIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxpbmRpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdLGxvbmc6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiWFwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb20uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtacOpLlwiLFwianVlLlwiLFwidmllLlwiLFwic8OhYi5cIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5lc1wiLFwibWFydGVzXCIsXCJtacOpcmNvbGVzXCIsXCJqdWV2ZXNcIixcInZpZXJuZXNcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJTYWthXCJdLHNob3J0OltcIlNha2FcIl0sbG9uZzpbXCJTYWthXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0saXNsYW1pYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJKdW1hZGEgSVwiLFwiSnVtYWRhIElJXCIsXCJSYWphYlwiLFwiU2hhyrtiYW5cIixcIlJhbWFkYW5cIixcIlNoYXd3YWxcIixcIkRodcq7bC1Racq7ZGFoXCIsXCJEaHXKu2wtSGlqamFoXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiWFwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb20uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtacOpLlwiLFwianVlLlwiLFwidmllLlwiLFwic8OhYi5cIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5lc1wiLFwibWFydGVzXCIsXCJtacOpcmNvbGVzXCIsXCJqdWV2ZXNcIixcInZpZXJuZXNcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcImEuIG0uXCIscG06XCJwLiBtLlwifX0saXNsYW1pY2M6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTXVoLlwiLFwiU2FmLlwiLFwiUmFiLiBJXCIsXCJSYWIuIElJXCIsXCJKdW0uIElcIixcIkp1bS4gSUlcIixcIlJhai5cIixcIlNoYS5cIixcIlJhbS5cIixcIlNoYXcuXCIsXCJEaHXKu2wtUS5cIixcIkRodcq7bC1ILlwiXSxsb25nOltcIk11aGFycmFtXCIsXCJTYWZhclwiLFwiUmFiacq7IElcIixcIlJhYmnKuyBJSVwiLFwiSnVtYWRhIElcIixcIkp1bWFkYSBJSVwiLFwiUmFqYWJcIixcIlNoYcq7YmFuXCIsXCJSYW1hZGFuXCIsXCJTaGF3d2FsXCIsXCJEaHXKu2wtUWnKu2RhaFwiLFwiRGh1yrtsLUhpamphaFwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIlhcIixcIkpcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tLlwiLFwibHVuLlwiLFwibWFyLlwiLFwibWnDqS5cIixcImp1ZS5cIixcInZpZS5cIixcInPDoWIuXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwibHVuZXNcIixcIm1hcnRlc1wiLFwibWnDqXJjb2xlc1wiLFwianVldmVzXCIsXCJ2aWVybmVzXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCJhLiBtLlwiLHBtOlwicC4gbS5cIn19LGphcGFuZXNlOnttb250aHM6e25hcnJvdzpbXCJFXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImVuZS5cIixcImZlYi5cIixcIm1hci5cIixcImFici5cIixcIm1heS5cIixcImp1bi5cIixcImp1bC5cIixcImFnby5cIixcInNlcHQuXCIsXCJvY3QuXCIsXCJub3YuXCIsXCJkaWMuXCJdLGxvbmc6W1wiZW5lcm9cIixcImZlYnJlcm9cIixcIm1hcnpvXCIsXCJhYnJpbFwiLFwibWF5b1wiLFwianVuaW9cIixcImp1bGlvXCIsXCJhZ29zdG9cIixcInNlcHRpZW1icmVcIixcIm9jdHVicmVcIixcIm5vdmllbWJyZVwiLFwiZGljaWVtYnJlXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiWFwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb20uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtacOpLlwiLFwianVlLlwiLFwidmllLlwiLFwic8OhYi5cIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5lc1wiLFwibWFydGVzXCIsXCJtacOpcmNvbGVzXCIsXCJqdWV2ZXNcIixcInZpZXJuZXNcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJUYWlrYSAoNjQ14oCTNjUwKVwiLFwiSGFrdWNoaSAoNjUw4oCTNjcxKVwiLFwiSGFrdWjFjSAoNjcy4oCTNjg2KVwiLFwiU2h1Y2jFjSAoNjg24oCTNzAxKVwiLFwiVGFpaMWNICg3MDHigJM3MDQpXCIsXCJLZWl1biAoNzA04oCTNzA4KVwiLFwiV2FkxY0gKDcwOOKAkzcxNSlcIixcIlJlaWtpICg3MTXigJM3MTcpXCIsXCJZxY1yxY0gKDcxN+KAkzcyNClcIixcIkppbmtpICg3MjTigJM3MjkpXCIsXCJUZW5wecWNICg3MjnigJM3NDkpXCIsXCJUZW5wecWNLWthbXDFjSAoNzQ5LTc0OSlcIixcIlRlbnB5xY0tc2jFjWjFjSAoNzQ5LTc1NylcIixcIlRlbnB5xY0taMWNamkgKDc1Ny03NjUpXCIsXCJUZW5wecWNLWppbmdvICg3NjUtNzY3KVwiLFwiSmluZ28ta2VpdW4gKDc2Ny03NzApXCIsXCJIxY1raSAoNzcw4oCTNzgwKVwiLFwiVGVuLcWNICg3ODEtNzgyKVwiLFwiRW5yeWFrdSAoNzgy4oCTODA2KVwiLFwiRGFpZMWNICg4MDbigJM4MTApXCIsXCJLxY1uaW4gKDgxMOKAkzgyNClcIixcIlRlbmNoxY0gKDgyNOKAkzgzNClcIixcIkrFjXdhICg4MzTigJM4NDgpXCIsXCJLYWrFjSAoODQ44oCTODUxKVwiLFwiTmluanUgKDg1MeKAkzg1NClcIixcIlNhaWvFjSAoODU04oCTODU3KVwiLFwiVGVuLWFuICg4NTctODU5KVwiLFwiSsWNZ2FuICg4NTnigJM4NzcpXCIsXCJHYW5necWNICg4NzfigJM4ODUpXCIsXCJOaW5uYSAoODg14oCTODg5KVwiLFwiS2FucHnFjSAoODg54oCTODk4KVwiLFwiU2jFjXRhaSAoODk44oCTOTAxKVwiLFwiRW5naSAoOTAx4oCTOTIzKVwiLFwiRW5jaMWNICg5MjPigJM5MzEpXCIsXCJKxY1oZWkgKDkzMeKAkzkzOClcIixcIlRlbmd5xY0gKDkzOOKAkzk0NylcIixcIlRlbnJ5YWt1ICg5NDfigJM5NTcpXCIsXCJUZW50b2t1ICg5NTfigJM5NjEpXCIsXCLFjHdhICg5NjHigJM5NjQpXCIsXCJLxY1oxY0gKDk2NOKAkzk2OClcIixcIkFubmEgKDk2OOKAkzk3MClcIixcIlRlbnJva3UgKDk3MOKAkzk3MylcIixcIlRlbuKAmWVuICg5NzPigJM5NzYpXCIsXCJKxY1nZW4gKDk3NuKAkzk3OClcIixcIlRlbmdlbiAoOTc44oCTOTgzKVwiLFwiRWlrYW4gKDk4M+KAkzk4NSlcIixcIkthbm5hICg5ODXigJM5ODcpXCIsXCJFaWVuICg5ODfigJM5ODkpXCIsXCJFaXNvICg5ODnigJM5OTApXCIsXCJTaMWNcnlha3UgKDk5MOKAkzk5NSlcIixcIkNoxY10b2t1ICg5OTXigJM5OTkpXCIsXCJDaMWNaMWNICg5OTnigJMxMDA0KVwiLFwiS2Fua8WNICgxMDA04oCTMTAxMilcIixcIkNoxY13YSAoMTAxMuKAkzEwMTcpXCIsXCJLYW5uaW4gKDEwMTfigJMxMDIxKVwiLFwiSmlhbiAoMTAyMeKAkzEwMjQpXCIsXCJNYW5qdSAoMTAyNOKAkzEwMjgpXCIsXCJDaMWNZ2VuICgxMDI44oCTMTAzNylcIixcIkNoxY1yeWFrdSAoMTAzN+KAkzEwNDApXCIsXCJDaMWNa3nFqyAoMTA0MOKAkzEwNDQpXCIsXCJLYW50b2t1ICgxMDQ04oCTMTA0NilcIixcIkVpc2jFjSAoMTA0NuKAkzEwNTMpXCIsXCJUZW5naSAoMTA1M+KAkzEwNTgpXCIsXCJLxY1oZWkgKDEwNTjigJMxMDY1KVwiLFwiSmlyeWFrdSAoMTA2NeKAkzEwNjkpXCIsXCJFbmt5xasgKDEwNjnigJMxMDc0KVwiLFwiU2jFjWhvICgxMDc04oCTMTA3NylcIixcIlNoxY1yeWFrdSAoMTA3N+KAkzEwODEpXCIsXCJFaWjFjSAoMTA4MeKAkzEwODQpXCIsXCLFjHRva3UgKDEwODTigJMxMDg3KVwiLFwiS2FuamkgKDEwODfigJMxMDk0KVwiLFwiS2FoxY0gKDEwOTTigJMxMDk2KVwiLFwiRWljaMWNICgxMDk24oCTMTA5NylcIixcIkrFjXRva3UgKDEwOTfigJMxMDk5KVwiLFwiS8WNd2EgKDEwOTnigJMxMTA0KVwiLFwiQ2jFjWppICgxMTA04oCTMTEwNilcIixcIkthc2jFjSAoMTEwNuKAkzExMDgpXCIsXCJUZW5uaW4gKDExMDjigJMxMTEwKVwiLFwiVGVuLWVpICgxMTEwLTExMTMpXCIsXCJFaWt5xasgKDExMTPigJMxMTE4KVwiLFwiR2Vu4oCZZWkgKDExMTjigJMxMTIwKVwiLFwiSMWNYW4gKDExMjDigJMxMTI0KVwiLFwiVGVuamkgKDExMjTigJMxMTI2KVwiLFwiRGFpamkgKDExMjbigJMxMTMxKVwiLFwiVGVuc2jFjSAoMTEzMeKAkzExMzIpXCIsXCJDaMWNc2jFjSAoMTEzMuKAkzExMzUpXCIsXCJIxY1lbiAoMTEzNeKAkzExNDEpXCIsXCJFaWppICgxMTQx4oCTMTE0MilcIixcIkvFjWppICgxMTQy4oCTMTE0NClcIixcIlRlbuKAmXnFjSAoMTE0NOKAkzExNDUpXCIsXCJLecWrYW4gKDExNDXigJMxMTUxKVwiLFwiTmlucGVpICgxMTUx4oCTMTE1NClcIixcIkt5xatqdSAoMTE1NOKAkzExNTYpXCIsXCJIxY1nZW4gKDExNTbigJMxMTU5KVwiLFwiSGVpamkgKDExNTnigJMxMTYwKVwiLFwiRWlyeWFrdSAoMTE2MOKAkzExNjEpXCIsXCLFjGhvICgxMTYx4oCTMTE2MylcIixcIkNoxY1rYW4gKDExNjPigJMxMTY1KVwiLFwiRWltYW4gKDExNjXigJMxMTY2KVwiLFwiTmlu4oCZYW4gKDExNjbigJMxMTY5KVwiLFwiS2HFjSAoMTE2OeKAkzExNzEpXCIsXCJTaMWNYW4gKDExNzHigJMxMTc1KVwiLFwiQW5nZW4gKDExNzXigJMxMTc3KVwiLFwiSmlzaMWNICgxMTc34oCTMTE4MSlcIixcIlnFjXdhICgxMTgx4oCTMTE4MilcIixcIkp1ZWkgKDExODLigJMxMTg0KVwiLFwiR2Vucnlha3UgKDExODTigJMxMTg1KVwiLFwiQnVuamkgKDExODXigJMxMTkwKVwiLFwiS2Vua3nFqyAoMTE5MOKAkzExOTkpXCIsXCJTaMWNamkgKDExOTnigJMxMjAxKVwiLFwiS2VubmluICgxMjAx4oCTMTIwNClcIixcIkdlbmt5xasgKDEyMDTigJMxMjA2KVwiLFwiS2Vu4oCZZWkgKDEyMDbigJMxMjA3KVwiLFwiSsWNZ2VuICgxMjA34oCTMTIxMSlcIixcIktlbnJ5YWt1ICgxMjEx4oCTMTIxMylcIixcIktlbnDFjSAoMTIxM+KAkzEyMTkpXCIsXCJKxY1recWrICgxMjE54oCTMTIyMilcIixcIkrFjcWNICgxMjIy4oCTMTIyNClcIixcIkdlbm5pbiAoMTIyNOKAkzEyMjUpXCIsXCJLYXJva3UgKDEyMjXigJMxMjI3KVwiLFwiQW50ZWkgKDEyMjfigJMxMjI5KVwiLFwiS2Fua2kgKDEyMjnigJMxMjMyKVwiLFwiSsWNZWkgKDEyMzLigJMxMjMzKVwiLFwiVGVucHVrdSAoMTIzM+KAkzEyMzQpXCIsXCJCdW5yeWFrdSAoMTIzNOKAkzEyMzUpXCIsXCJLYXRlaSAoMTIzNeKAkzEyMzgpXCIsXCJSeWFrdW5pbiAoMTIzOOKAkzEyMzkpXCIsXCJFbuKAmcWNICgxMjM54oCTMTI0MClcIixcIk5pbmppICgxMjQw4oCTMTI0MylcIixcIkthbmdlbiAoMTI0M+KAkzEyNDcpXCIsXCJIxY1qaSAoMTI0N+KAkzEyNDkpXCIsXCJLZW5jaMWNICgxMjQ54oCTMTI1NilcIixcIkvFjWdlbiAoMTI1NuKAkzEyNTcpXCIsXCJTaMWNa2EgKDEyNTfigJMxMjU5KVwiLFwiU2jFjWdlbiAoMTI1OeKAkzEyNjApXCIsXCJCdW7igJnFjSAoMTI2MOKAkzEyNjEpXCIsXCJLxY1jaMWNICgxMjYx4oCTMTI2NClcIixcIkJ1buKAmWVpICgxMjY04oCTMTI3NSlcIixcIktlbmppICgxMjc14oCTMTI3OClcIixcIkvFjWFuICgxMjc44oCTMTI4OClcIixcIlNoxY3FjSAoMTI4OOKAkzEyOTMpXCIsXCJFaW5pbiAoMTI5M+KAkzEyOTkpXCIsXCJTaMWNYW4gKDEyOTnigJMxMzAyKVwiLFwiS2VuZ2VuICgxMzAy4oCTMTMwMylcIixcIkthZ2VuICgxMzAz4oCTMTMwNilcIixcIlRva3VqaSAoMTMwNuKAkzEzMDgpXCIsXCJFbmt5xY0gKDEzMDjigJMxMzExKVwiLFwixYxjaMWNICgxMzEx4oCTMTMxMilcIixcIlNoxY13YSAoMTMxMuKAkzEzMTcpXCIsXCJCdW5wxY0gKDEzMTfigJMxMzE5KVwiLFwiR2VuxY0gKDEzMTnigJMxMzIxKVwiLFwiR2Vua8WNICgxMzIx4oCTMTMyNClcIixcIlNoxY1jaMWrICgxMzI04oCTMTMyNilcIixcIkthcnlha3UgKDEzMjbigJMxMzI5KVwiLFwiR2VudG9rdSAoMTMyOeKAkzEzMzEpXCIsXCJHZW5rxY0gKDEzMzHigJMxMzM0KVwiLFwiS2VubXUgKDEzMzTigJMxMzM2KVwiLFwiRW5nZW4gKDEzMzbigJMxMzQwKVwiLFwiS8WNa29rdSAoMTM0MOKAkzEzNDYpXCIsXCJTaMWNaGVpICgxMzQ24oCTMTM3MClcIixcIktlbnRva3UgKDEzNzDigJMxMzcyKVwiLFwiQnVuY2jFqyAoMTM3MuKAkzEzNzUpXCIsXCJUZW5qdSAoMTM3NeKAkzEzNzkpXCIsXCJLxY1yeWFrdSAoMTM3OeKAkzEzODEpXCIsXCJLxY13YSAoMTM4MeKAkzEzODQpXCIsXCJHZW5jaMWrICgxMzg04oCTMTM5MilcIixcIk1laXRva3UgKDEzODTigJMxMzg3KVwiLFwiS2FrZWkgKDEzODfigJMxMzg5KVwiLFwiS8WNxY0gKDEzODnigJMxMzkwKVwiLFwiTWVpdG9rdSAoMTM5MOKAkzEzOTQpXCIsXCLFjGVpICgxMzk04oCTMTQyOClcIixcIlNoxY1jaMWNICgxNDI44oCTMTQyOSlcIixcIkVpa3nFjSAoMTQyOeKAkzE0NDEpXCIsXCJLYWtpdHN1ICgxNDQx4oCTMTQ0NClcIixcIkJ1buKAmWFuICgxNDQ04oCTMTQ0OSlcIixcIkjFjXRva3UgKDE0NDnigJMxNDUyKVwiLFwiS3nFjXRva3UgKDE0NTLigJMxNDU1KVwiLFwiS8WNc2jFjSAoMTQ1NeKAkzE0NTcpXCIsXCJDaMWNcm9rdSAoMTQ1N+KAkzE0NjApXCIsXCJLYW5zaMWNICgxNDYw4oCTMTQ2NilcIixcIkJ1bnNoxY0gKDE0NjbigJMxNDY3KVwiLFwixYxuaW4gKDE0NjfigJMxNDY5KVwiLFwiQnVubWVpICgxNDY54oCTMTQ4NylcIixcIkNoxY1recWNICgxNDg34oCTMTQ4OSlcIixcIkVudG9rdSAoMTQ4OeKAkzE0OTIpXCIsXCJNZWnFjSAoMTQ5MuKAkzE1MDEpXCIsXCJCdW5raSAoMTUwMeKAkzE1MDQpXCIsXCJFaXNoxY0gKDE1MDTigJMxNTIxKVwiLFwiVGFpZWkgKDE1MjHigJMxNTI4KVwiLFwiS3nFjXJva3UgKDE1MjjigJMxNTMyKVwiLFwiVGVuYnVuICgxNTMy4oCTMTU1NSlcIixcIkvFjWppICgxNTU14oCTMTU1OClcIixcIkVpcm9rdSAoMTU1OOKAkzE1NzApXCIsXCJHZW5raSAoMTU3MOKAkzE1NzMpXCIsXCJUZW5zaMWNICgxNTcz4oCTMTU5MilcIixcIkJ1bnJva3UgKDE1OTLigJMxNTk2KVwiLFwiS2VpY2jFjSAoMTU5NuKAkzE2MTUpXCIsXCJHZW5uYSAoMTYxNeKAkzE2MjQpXCIsXCJLYW7igJllaSAoMTYyNOKAkzE2NDQpXCIsXCJTaMWNaG8gKDE2NDTigJMxNjQ4KVwiLFwiS2VpYW4gKDE2NDjigJMxNjUyKVwiLFwiSsWNxY0gKDE2NTLigJMxNjU1KVwiLFwiTWVpcmVraSAoMTY1NeKAkzE2NTgpXCIsXCJNYW5qaSAoMTY1OOKAkzE2NjEpXCIsXCJLYW5idW4gKDE2NjHigJMxNjczKVwiLFwiRW5wxY0gKDE2NzPigJMxNjgxKVwiLFwiVGVubmEgKDE2ODHigJMxNjg0KVwiLFwiSsWNa3nFjSAoMTY4NOKAkzE2ODgpXCIsXCJHZW5yb2t1ICgxNjg44oCTMTcwNClcIixcIkjFjWVpICgxNzA04oCTMTcxMSlcIixcIlNoxY10b2t1ICgxNzEx4oCTMTcxNilcIixcIkt5xY1oxY0gKDE3MTbigJMxNzM2KVwiLFwiR2VuYnVuICgxNzM24oCTMTc0MSlcIixcIkthbnDFjSAoMTc0MeKAkzE3NDQpXCIsXCJFbmt5xY0gKDE3NDTigJMxNzQ4KVwiLFwiS2Fu4oCZZW4gKDE3NDjigJMxNzUxKVwiLFwiSMWNcmVraSAoMTc1MeKAkzE3NjQpXCIsXCJNZWl3YSAoMTc2NOKAkzE3NzIpXCIsXCJBbuKAmWVpICgxNzcy4oCTMTc4MSlcIixcIlRlbm1laSAoMTc4MeKAkzE3ODkpXCIsXCJLYW5zZWkgKDE3ODnigJMxODAxKVwiLFwiS3nFjXdhICgxODAx4oCTMTgwNClcIixcIkJ1bmthICgxODA04oCTMTgxOClcIixcIkJ1bnNlaSAoMTgxOOKAkzE4MzApXCIsXCJUZW5wxY0gKDE4MzDigJMxODQ0KVwiLFwiS8WNa2EgKDE4NDTigJMxODQ4KVwiLFwiS2FlaSAoMTg0OOKAkzE4NTQpXCIsXCJBbnNlaSAoMTg1NOKAkzE4NjApXCIsXCJNYW7igJllbiAoMTg2MOKAkzE4NjEpXCIsXCJCdW5recWrICgxODYx4oCTMTg2NClcIixcIkdlbmppICgxODY04oCTMTg2NSlcIixcIktlacWNICgxODY14oCTMTg2OClcIixcIk1cIixcIlRcIixcIlNcIixcIkhcIl0sc2hvcnQ6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl0sbG9uZzpbXCJUYWlrYSAoNjQ14oCTNjUwKVwiLFwiSGFrdWNoaSAoNjUw4oCTNjcxKVwiLFwiSGFrdWjFjSAoNjcy4oCTNjg2KVwiLFwiU2h1Y2jFjSAoNjg24oCTNzAxKVwiLFwiVGFpaMWNICg3MDHigJM3MDQpXCIsXCJLZWl1biAoNzA04oCTNzA4KVwiLFwiV2FkxY0gKDcwOOKAkzcxNSlcIixcIlJlaWtpICg3MTXigJM3MTcpXCIsXCJZxY1yxY0gKDcxN+KAkzcyNClcIixcIkppbmtpICg3MjTigJM3MjkpXCIsXCJUZW5wecWNICg3MjnigJM3NDkpXCIsXCJUZW5wecWNLWthbXDFjSAoNzQ5LTc0OSlcIixcIlRlbnB5xY0tc2jFjWjFjSAoNzQ5LTc1NylcIixcIlRlbnB5xY0taMWNamkgKDc1Ny03NjUpXCIsXCJUZW5wecWNLWppbmdvICg3NjUtNzY3KVwiLFwiSmluZ28ta2VpdW4gKDc2Ny03NzApXCIsXCJIxY1raSAoNzcw4oCTNzgwKVwiLFwiVGVuLcWNICg3ODEtNzgyKVwiLFwiRW5yeWFrdSAoNzgy4oCTODA2KVwiLFwiRGFpZMWNICg4MDbigJM4MTApXCIsXCJLxY1uaW4gKDgxMOKAkzgyNClcIixcIlRlbmNoxY0gKDgyNOKAkzgzNClcIixcIkrFjXdhICg4MzTigJM4NDgpXCIsXCJLYWrFjSAoODQ44oCTODUxKVwiLFwiTmluanUgKDg1MeKAkzg1NClcIixcIlNhaWvFjSAoODU04oCTODU3KVwiLFwiVGVuLWFuICg4NTctODU5KVwiLFwiSsWNZ2FuICg4NTnigJM4NzcpXCIsXCJHYW5necWNICg4NzfigJM4ODUpXCIsXCJOaW5uYSAoODg14oCTODg5KVwiLFwiS2FucHnFjSAoODg54oCTODk4KVwiLFwiU2jFjXRhaSAoODk44oCTOTAxKVwiLFwiRW5naSAoOTAx4oCTOTIzKVwiLFwiRW5jaMWNICg5MjPigJM5MzEpXCIsXCJKxY1oZWkgKDkzMeKAkzkzOClcIixcIlRlbmd5xY0gKDkzOOKAkzk0NylcIixcIlRlbnJ5YWt1ICg5NDfigJM5NTcpXCIsXCJUZW50b2t1ICg5NTfigJM5NjEpXCIsXCLFjHdhICg5NjHigJM5NjQpXCIsXCJLxY1oxY0gKDk2NOKAkzk2OClcIixcIkFubmEgKDk2OOKAkzk3MClcIixcIlRlbnJva3UgKDk3MOKAkzk3MylcIixcIlRlbuKAmWVuICg5NzPigJM5NzYpXCIsXCJKxY1nZW4gKDk3NuKAkzk3OClcIixcIlRlbmdlbiAoOTc44oCTOTgzKVwiLFwiRWlrYW4gKDk4M+KAkzk4NSlcIixcIkthbm5hICg5ODXigJM5ODcpXCIsXCJFaWVuICg5ODfigJM5ODkpXCIsXCJFaXNvICg5ODnigJM5OTApXCIsXCJTaMWNcnlha3UgKDk5MOKAkzk5NSlcIixcIkNoxY10b2t1ICg5OTXigJM5OTkpXCIsXCJDaMWNaMWNICg5OTnigJMxMDA0KVwiLFwiS2Fua8WNICgxMDA04oCTMTAxMilcIixcIkNoxY13YSAoMTAxMuKAkzEwMTcpXCIsXCJLYW5uaW4gKDEwMTfigJMxMDIxKVwiLFwiSmlhbiAoMTAyMeKAkzEwMjQpXCIsXCJNYW5qdSAoMTAyNOKAkzEwMjgpXCIsXCJDaMWNZ2VuICgxMDI44oCTMTAzNylcIixcIkNoxY1yeWFrdSAoMTAzN+KAkzEwNDApXCIsXCJDaMWNa3nFqyAoMTA0MOKAkzEwNDQpXCIsXCJLYW50b2t1ICgxMDQ04oCTMTA0NilcIixcIkVpc2jFjSAoMTA0NuKAkzEwNTMpXCIsXCJUZW5naSAoMTA1M+KAkzEwNTgpXCIsXCJLxY1oZWkgKDEwNTjigJMxMDY1KVwiLFwiSmlyeWFrdSAoMTA2NeKAkzEwNjkpXCIsXCJFbmt5xasgKDEwNjnigJMxMDc0KVwiLFwiU2jFjWhvICgxMDc04oCTMTA3NylcIixcIlNoxY1yeWFrdSAoMTA3N+KAkzEwODEpXCIsXCJFaWjFjSAoMTA4MeKAkzEwODQpXCIsXCLFjHRva3UgKDEwODTigJMxMDg3KVwiLFwiS2FuamkgKDEwODfigJMxMDk0KVwiLFwiS2FoxY0gKDEwOTTigJMxMDk2KVwiLFwiRWljaMWNICgxMDk24oCTMTA5NylcIixcIkrFjXRva3UgKDEwOTfigJMxMDk5KVwiLFwiS8WNd2EgKDEwOTnigJMxMTA0KVwiLFwiQ2jFjWppICgxMTA04oCTMTEwNilcIixcIkthc2jFjSAoMTEwNuKAkzExMDgpXCIsXCJUZW5uaW4gKDExMDjigJMxMTEwKVwiLFwiVGVuLWVpICgxMTEwLTExMTMpXCIsXCJFaWt5xasgKDExMTPigJMxMTE4KVwiLFwiR2Vu4oCZZWkgKDExMTjigJMxMTIwKVwiLFwiSMWNYW4gKDExMjDigJMxMTI0KVwiLFwiVGVuamkgKDExMjTigJMxMTI2KVwiLFwiRGFpamkgKDExMjbigJMxMTMxKVwiLFwiVGVuc2jFjSAoMTEzMeKAkzExMzIpXCIsXCJDaMWNc2jFjSAoMTEzMuKAkzExMzUpXCIsXCJIxY1lbiAoMTEzNeKAkzExNDEpXCIsXCJFaWppICgxMTQx4oCTMTE0MilcIixcIkvFjWppICgxMTQy4oCTMTE0NClcIixcIlRlbuKAmXnFjSAoMTE0NOKAkzExNDUpXCIsXCJLecWrYW4gKDExNDXigJMxMTUxKVwiLFwiTmlucGVpICgxMTUx4oCTMTE1NClcIixcIkt5xatqdSAoMTE1NOKAkzExNTYpXCIsXCJIxY1nZW4gKDExNTbigJMxMTU5KVwiLFwiSGVpamkgKDExNTnigJMxMTYwKVwiLFwiRWlyeWFrdSAoMTE2MOKAkzExNjEpXCIsXCLFjGhvICgxMTYx4oCTMTE2MylcIixcIkNoxY1rYW4gKDExNjPigJMxMTY1KVwiLFwiRWltYW4gKDExNjXigJMxMTY2KVwiLFwiTmlu4oCZYW4gKDExNjbigJMxMTY5KVwiLFwiS2HFjSAoMTE2OeKAkzExNzEpXCIsXCJTaMWNYW4gKDExNzHigJMxMTc1KVwiLFwiQW5nZW4gKDExNzXigJMxMTc3KVwiLFwiSmlzaMWNICgxMTc34oCTMTE4MSlcIixcIlnFjXdhICgxMTgx4oCTMTE4MilcIixcIkp1ZWkgKDExODLigJMxMTg0KVwiLFwiR2Vucnlha3UgKDExODTigJMxMTg1KVwiLFwiQnVuamkgKDExODXigJMxMTkwKVwiLFwiS2Vua3nFqyAoMTE5MOKAkzExOTkpXCIsXCJTaMWNamkgKDExOTnigJMxMjAxKVwiLFwiS2VubmluICgxMjAx4oCTMTIwNClcIixcIkdlbmt5xasgKDEyMDTigJMxMjA2KVwiLFwiS2Vu4oCZZWkgKDEyMDbigJMxMjA3KVwiLFwiSsWNZ2VuICgxMjA34oCTMTIxMSlcIixcIktlbnJ5YWt1ICgxMjEx4oCTMTIxMylcIixcIktlbnDFjSAoMTIxM+KAkzEyMTkpXCIsXCJKxY1recWrICgxMjE54oCTMTIyMilcIixcIkrFjcWNICgxMjIy4oCTMTIyNClcIixcIkdlbm5pbiAoMTIyNOKAkzEyMjUpXCIsXCJLYXJva3UgKDEyMjXigJMxMjI3KVwiLFwiQW50ZWkgKDEyMjfigJMxMjI5KVwiLFwiS2Fua2kgKDEyMjnigJMxMjMyKVwiLFwiSsWNZWkgKDEyMzLigJMxMjMzKVwiLFwiVGVucHVrdSAoMTIzM+KAkzEyMzQpXCIsXCJCdW5yeWFrdSAoMTIzNOKAkzEyMzUpXCIsXCJLYXRlaSAoMTIzNeKAkzEyMzgpXCIsXCJSeWFrdW5pbiAoMTIzOOKAkzEyMzkpXCIsXCJFbuKAmcWNICgxMjM54oCTMTI0MClcIixcIk5pbmppICgxMjQw4oCTMTI0MylcIixcIkthbmdlbiAoMTI0M+KAkzEyNDcpXCIsXCJIxY1qaSAoMTI0N+KAkzEyNDkpXCIsXCJLZW5jaMWNICgxMjQ54oCTMTI1NilcIixcIkvFjWdlbiAoMTI1NuKAkzEyNTcpXCIsXCJTaMWNa2EgKDEyNTfigJMxMjU5KVwiLFwiU2jFjWdlbiAoMTI1OeKAkzEyNjApXCIsXCJCdW7igJnFjSAoMTI2MOKAkzEyNjEpXCIsXCJLxY1jaMWNICgxMjYx4oCTMTI2NClcIixcIkJ1buKAmWVpICgxMjY04oCTMTI3NSlcIixcIktlbmppICgxMjc14oCTMTI3OClcIixcIkvFjWFuICgxMjc44oCTMTI4OClcIixcIlNoxY3FjSAoMTI4OOKAkzEyOTMpXCIsXCJFaW5pbiAoMTI5M+KAkzEyOTkpXCIsXCJTaMWNYW4gKDEyOTnigJMxMzAyKVwiLFwiS2VuZ2VuICgxMzAy4oCTMTMwMylcIixcIkthZ2VuICgxMzAz4oCTMTMwNilcIixcIlRva3VqaSAoMTMwNuKAkzEzMDgpXCIsXCJFbmt5xY0gKDEzMDjigJMxMzExKVwiLFwixYxjaMWNICgxMzEx4oCTMTMxMilcIixcIlNoxY13YSAoMTMxMuKAkzEzMTcpXCIsXCJCdW5wxY0gKDEzMTfigJMxMzE5KVwiLFwiR2VuxY0gKDEzMTnigJMxMzIxKVwiLFwiR2Vua8WNICgxMzIx4oCTMTMyNClcIixcIlNoxY1jaMWrICgxMzI04oCTMTMyNilcIixcIkthcnlha3UgKDEzMjbigJMxMzI5KVwiLFwiR2VudG9rdSAoMTMyOeKAkzEzMzEpXCIsXCJHZW5rxY0gKDEzMzHigJMxMzM0KVwiLFwiS2VubXUgKDEzMzTigJMxMzM2KVwiLFwiRW5nZW4gKDEzMzbigJMxMzQwKVwiLFwiS8WNa29rdSAoMTM0MOKAkzEzNDYpXCIsXCJTaMWNaGVpICgxMzQ24oCTMTM3MClcIixcIktlbnRva3UgKDEzNzDigJMxMzcyKVwiLFwiQnVuY2jFqyAoMTM3MuKAkzEzNzUpXCIsXCJUZW5qdSAoMTM3NeKAkzEzNzkpXCIsXCJLxY1yeWFrdSAoMTM3OeKAkzEzODEpXCIsXCJLxY13YSAoMTM4MeKAkzEzODQpXCIsXCJHZW5jaMWrICgxMzg04oCTMTM5MilcIixcIk1laXRva3UgKDEzODTigJMxMzg3KVwiLFwiS2FrZWkgKDEzODfigJMxMzg5KVwiLFwiS8WNxY0gKDEzODnigJMxMzkwKVwiLFwiTWVpdG9rdSAoMTM5MOKAkzEzOTQpXCIsXCLFjGVpICgxMzk04oCTMTQyOClcIixcIlNoxY1jaMWNICgxNDI44oCTMTQyOSlcIixcIkVpa3nFjSAoMTQyOeKAkzE0NDEpXCIsXCJLYWtpdHN1ICgxNDQx4oCTMTQ0NClcIixcIkJ1buKAmWFuICgxNDQ04oCTMTQ0OSlcIixcIkjFjXRva3UgKDE0NDnigJMxNDUyKVwiLFwiS3nFjXRva3UgKDE0NTLigJMxNDU1KVwiLFwiS8WNc2jFjSAoMTQ1NeKAkzE0NTcpXCIsXCJDaMWNcm9rdSAoMTQ1N+KAkzE0NjApXCIsXCJLYW5zaMWNICgxNDYw4oCTMTQ2NilcIixcIkJ1bnNoxY0gKDE0NjbigJMxNDY3KVwiLFwixYxuaW4gKDE0NjfigJMxNDY5KVwiLFwiQnVubWVpICgxNDY54oCTMTQ4NylcIixcIkNoxY1recWNICgxNDg34oCTMTQ4OSlcIixcIkVudG9rdSAoMTQ4OeKAkzE0OTIpXCIsXCJNZWnFjSAoMTQ5MuKAkzE1MDEpXCIsXCJCdW5raSAoMTUwMeKAkzE1MDQpXCIsXCJFaXNoxY0gKDE1MDTigJMxNTIxKVwiLFwiVGFpZWkgKDE1MjHigJMxNTI4KVwiLFwiS3nFjXJva3UgKDE1MjjigJMxNTMyKVwiLFwiVGVuYnVuICgxNTMy4oCTMTU1NSlcIixcIkvFjWppICgxNTU14oCTMTU1OClcIixcIkVpcm9rdSAoMTU1OOKAkzE1NzApXCIsXCJHZW5raSAoMTU3MOKAkzE1NzMpXCIsXCJUZW5zaMWNICgxNTcz4oCTMTU5MilcIixcIkJ1bnJva3UgKDE1OTLigJMxNTk2KVwiLFwiS2VpY2jFjSAoMTU5NuKAkzE2MTUpXCIsXCJHZW5uYSAoMTYxNeKAkzE2MjQpXCIsXCJLYW7igJllaSAoMTYyNOKAkzE2NDQpXCIsXCJTaMWNaG8gKDE2NDTigJMxNjQ4KVwiLFwiS2VpYW4gKDE2NDjigJMxNjUyKVwiLFwiSsWNxY0gKDE2NTLigJMxNjU1KVwiLFwiTWVpcmVraSAoMTY1NeKAkzE2NTgpXCIsXCJNYW5qaSAoMTY1OOKAkzE2NjEpXCIsXCJLYW5idW4gKDE2NjHigJMxNjczKVwiLFwiRW5wxY0gKDE2NzPigJMxNjgxKVwiLFwiVGVubmEgKDE2ODHigJMxNjg0KVwiLFwiSsWNa3nFjSAoMTY4NOKAkzE2ODgpXCIsXCJHZW5yb2t1ICgxNjg44oCTMTcwNClcIixcIkjFjWVpICgxNzA04oCTMTcxMSlcIixcIlNoxY10b2t1ICgxNzEx4oCTMTcxNilcIixcIkt5xY1oxY0gKDE3MTbigJMxNzM2KVwiLFwiR2VuYnVuICgxNzM24oCTMTc0MSlcIixcIkthbnDFjSAoMTc0MeKAkzE3NDQpXCIsXCJFbmt5xY0gKDE3NDTigJMxNzQ4KVwiLFwiS2Fu4oCZZW4gKDE3NDjigJMxNzUxKVwiLFwiSMWNcmVraSAoMTc1MeKAkzE3NjQpXCIsXCJNZWl3YSAoMTc2NOKAkzE3NzIpXCIsXCJBbuKAmWVpICgxNzcy4oCTMTc4MSlcIixcIlRlbm1laSAoMTc4MeKAkzE3ODkpXCIsXCJLYW5zZWkgKDE3ODnigJMxODAxKVwiLFwiS3nFjXdhICgxODAx4oCTMTgwNClcIixcIkJ1bmthICgxODA04oCTMTgxOClcIixcIkJ1bnNlaSAoMTgxOOKAkzE4MzApXCIsXCJUZW5wxY0gKDE4MzDigJMxODQ0KVwiLFwiS8WNa2EgKDE4NDTigJMxODQ4KVwiLFwiS2FlaSAoMTg0OOKAkzE4NTQpXCIsXCJBbnNlaSAoMTg1NOKAkzE4NjApXCIsXCJNYW7igJllbiAoMTg2MOKAkzE4NjEpXCIsXCJCdW5recWrICgxODYx4oCTMTg2NClcIixcIkdlbmppICgxODY04oCTMTg2NSlcIixcIktlacWNICgxODY14oCTMTg2OClcIixcIk1laWppXCIsXCJUYWlzaMWNXCIsXCJTaMWNd2FcIixcIkhlaXNlaVwiXX0sZGF5UGVyaW9kczp7YW06XCJhLiBtLlwiLHBtOlwicC4gbS5cIn19LHBlcnNpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiRmFydmFyZGluXCIsXCJPcmRpYmVoZXNodFwiLFwiS2hvcmRhZFwiLFwiVGlyXCIsXCJNb3JkYWRcIixcIlNoYWhyaXZhclwiLFwiTWVoclwiLFwiQWJhblwiLFwiQXphclwiLFwiRGV5XCIsXCJCYWhtYW5cIixcIkVzZmFuZFwiXSxsb25nOltcIkZhcnZhcmRpblwiLFwiT3JkaWJlaGVzaHRcIixcIktob3JkYWRcIixcIlRpclwiLFwiTW9yZGFkXCIsXCJTaGFocml2YXJcIixcIk1laHJcIixcIkFiYW5cIixcIkF6YXJcIixcIkRleVwiLFwiQmFobWFuXCIsXCJFc2ZhbmRcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJYXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1pw6kuXCIsXCJqdWUuXCIsXCJ2aWUuXCIsXCJzw6FiLlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bmVzXCIsXCJtYXJ0ZXNcIixcIm1pw6lyY29sZXNcIixcImp1ZXZlc1wiLFwidmllcm5lc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkFQXCJdLHNob3J0OltcIkFQXCJdLGxvbmc6W1wiQVBcIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fSxyb2M6e21vbnRoczp7bmFycm93OltcIkVcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiZW5lLlwiLFwiZmViLlwiLFwibWFyLlwiLFwiYWJyLlwiLFwibWF5LlwiLFwianVuLlwiLFwianVsLlwiLFwiYWdvLlwiLFwic2VwdC5cIixcIm9jdC5cIixcIm5vdi5cIixcImRpYy5cIl0sbG9uZzpbXCJlbmVyb1wiLFwiZmVicmVyb1wiLFwibWFyem9cIixcImFicmlsXCIsXCJtYXlvXCIsXCJqdW5pb1wiLFwianVsaW9cIixcImFnb3N0b1wiLFwic2VwdGllbWJyZVwiLFwib2N0dWJyZVwiLFwibm92aWVtYnJlXCIsXCJkaWNpZW1icmVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJYXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1pw6kuXCIsXCJqdWUuXCIsXCJ2aWUuXCIsXCJzw6FiLlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bmVzXCIsXCJtYXJ0ZXNcIixcIm1pw6lyY29sZXNcIixcImp1ZXZlc1wiLFwidmllcm5lc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcImFudGVzIGRlIFIuTy5DLlwiLFwiUi5PLkMuXCJdLHNob3J0OltcImFudGVzIGRlIFIuTy5DLlwiLFwiUi5PLkMuXCJdLGxvbmc6W1wiYW50ZXMgZGUgUi5PLkMuXCIsXCJSLk8uQy5cIl19LGRheVBlcmlvZHM6e2FtOlwiYS4gbS5cIixwbTpcInAuIG0uXCJ9fX19LG51bWJlcjp7bnU6W1wibGF0blwiXSxwYXR0ZXJuczp7ZGVjaW1hbDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9XCJ9LGN1cnJlbmN5Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfcKge2N1cnJlbmN5fVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn3CoHtjdXJyZW5jeX1cIn0scGVyY2VudDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn3CoHtwZXJjZW50U2lnbn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9wqB7cGVyY2VudFNpZ259XCJ9fSxzeW1ib2xzOntsYXRuOntkZWNpbWFsOlwiLFwiLGdyb3VwOlwiLlwiLG5hbjpcIk5hTlwiLHBsdXNTaWduOlwiK1wiLG1pbnVzU2lnbjpcIi1cIixwZXJjZW50U2lnbjpcIiVcIixpbmZpbml0eTpcIuKInlwifX0sY3VycmVuY2llczp7Q0FEOlwiQ0EkXCIsRVNQOlwi4oKnXCIsRVVSOlwi4oKsXCIsVEhCOlwi4Li/XCIsVVNEOlwiJFwiLFZORDpcIuKCq1wiLFhQRjpcIkNGUEZcIn19fSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9lcy5qc1xuLy8gbW9kdWxlIGlkID0gMjIwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJJbnRsUG9seWZpbGwuX19hZGRMb2NhbGVEYXRhKHtsb2NhbGU6XCJmclwiLGRhdGU6e2NhOltcImdyZWdvcnlcIixcImJ1ZGRoaXN0XCIsXCJjaGluZXNlXCIsXCJjb3B0aWNcIixcImRhbmdpXCIsXCJldGhpb2FhXCIsXCJldGhpb3BpY1wiLFwiZ2VuZXJpY1wiLFwiaGVicmV3XCIsXCJpbmRpYW5cIixcImlzbGFtaWNcIixcImlzbGFtaWNjXCIsXCJqYXBhbmVzZVwiLFwicGVyc2lhblwiLFwicm9jXCJdLGhvdXJObzA6dHJ1ZSxob3VyMTI6ZmFsc2UsZm9ybWF0czp7c2hvcnQ6XCJ7MX0gezB9XCIsbWVkaXVtOlwiezF9ICfDoCcgezB9XCIsZnVsbDpcInsxfSAnw6AnIHswfVwiLGxvbmc6XCJ7MX0gJ8OgJyB7MH1cIixhdmFpbGFibGVGb3JtYXRzOntcImRcIjpcImRcIixcIkVcIjpcIkVcIixFZDpcIkUgZFwiLEVobTpcIkUgaDptbSBhXCIsRUhtOlwiRSBISDptbVwiLEVobXM6XCJFIGg6bW06c3MgYVwiLEVIbXM6XCJFIEhIOm1tOnNzXCIsR3k6XCJ5IEdcIixHeU1NTTpcIk1NTSB5IEdcIixHeU1NTWQ6XCJkIE1NTSB5IEdcIixHeU1NTUVkOlwiRSBkIE1NTSB5IEdcIixcImhcIjpcImggYVwiLFwiSFwiOlwiSEggJ2gnXCIsaG06XCJoOm1tIGFcIixIbTpcIkhIOm1tXCIsaG1zOlwiaDptbTpzcyBhXCIsSG1zOlwiSEg6bW06c3NcIixobXN2OlwiaDptbTpzcyBhIHZcIixIbXN2OlwiSEg6bW06c3MgdlwiLGhtdjpcImg6bW0gYSB2XCIsSG12OlwiSEg6bW0gdlwiLFwiTVwiOlwiTFwiLE1kOlwiZGQvTU1cIixNRWQ6XCJFIGRkL01NXCIsTU1NOlwiTExMXCIsTU1NZDpcImQgTU1NXCIsTU1NRWQ6XCJFIGQgTU1NXCIsTU1NTWQ6XCJkIE1NTU1cIixtczpcIm1tOnNzXCIsXCJ5XCI6XCJ5XCIseU06XCJNTS95XCIseU1kOlwiZGQvTU0veVwiLHlNRWQ6XCJFIGRkL01NL3lcIix5TU1NOlwiTU1NIHlcIix5TU1NZDpcImQgTU1NIHlcIix5TU1NRWQ6XCJFIGQgTU1NIHlcIix5TU1NTTpcIk1NTU0geVwiLHlRUVE6XCJRUVEgeVwiLHlRUVFROlwiUVFRUSB5XCJ9LGRhdGVGb3JtYXRzOnt5TU1NTUVFRUVkOlwiRUVFRSBkIE1NTU0geVwiLHlNTU1NZDpcImQgTU1NTSB5XCIseU1NTWQ6XCJkIE1NTSB5XCIseU1kOlwiZGQvTU0veVwifSx0aW1lRm9ybWF0czp7aG1tc3N6enp6OlwiSEg6bW06c3Mgenp6elwiLGhtc3o6XCJISDptbTpzcyB6XCIsaG1zOlwiSEg6bW06c3NcIixobTpcIkhIOm1tXCJ9fSxjYWxlbmRhcnM6e2J1ZGRoaXN0Onttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImphbnYuXCIsXCJmw6l2ci5cIixcIm1hcnNcIixcImF2ci5cIixcIm1haVwiLFwianVpblwiLFwianVpbC5cIixcImFvw7t0XCIsXCJzZXB0LlwiLFwib2N0LlwiLFwibm92LlwiLFwiZMOpYy5cIl0sbG9uZzpbXCJqYW52aWVyXCIsXCJmw6l2cmllclwiLFwibWFyc1wiLFwiYXZyaWxcIixcIm1haVwiLFwianVpblwiLFwianVpbGxldFwiLFwiYW/Du3RcIixcInNlcHRlbWJyZVwiLFwib2N0b2JyZVwiLFwibm92ZW1icmVcIixcImTDqWNlbWJyZVwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIkpcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZGltLlwiLFwibHVuLlwiLFwibWFyLlwiLFwibWVyLlwiLFwiamV1LlwiLFwidmVuLlwiLFwic2FtLlwiXSxsb25nOltcImRpbWFuY2hlXCIsXCJsdW5kaVwiLFwibWFyZGlcIixcIm1lcmNyZWRpXCIsXCJqZXVkaVwiLFwidmVuZHJlZGlcIixcInNhbWVkaVwiXX0sZXJhczp7bmFycm93OltcIkUuQi5cIl0sc2hvcnQ6W1wiw6hyZSBiLlwiXSxsb25nOltcIsOocmUgYm91ZGRoaXN0ZVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGNoaW5lc2U6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMXl1w6hcIixcIjJ5dcOoXCIsXCIzeXXDqFwiLFwiNHl1w6hcIixcIjV5dcOoXCIsXCI2eXXDqFwiLFwiN3l1w6hcIixcIjh5dcOoXCIsXCI5eXXDqFwiLFwiMTB5dcOoXCIsXCIxMXl1w6hcIixcIjEyeXXDqFwiXSxsb25nOltcInpoxJNuZ3l1w6hcIixcIsOocnl1w6hcIixcInPEgW55dcOoXCIsXCJzw6x5dcOoXCIsXCJ3x5R5dcOoXCIsXCJsacO5eXXDqFwiLFwiccSreXXDqFwiLFwiYsSBeXXDqFwiLFwiamnHlHl1w6hcIixcInNow615dcOoXCIsXCJzaMOtecSreXXDqFwiLFwic2jDreKAmcOocnl1w6hcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRpbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1lci5cIixcImpldS5cIixcInZlbi5cIixcInNhbS5cIl0sbG9uZzpbXCJkaW1hbmNoZVwiLFwibHVuZGlcIixcIm1hcmRpXCIsXCJtZXJjcmVkaVwiLFwiamV1ZGlcIixcInZlbmRyZWRpXCIsXCJzYW1lZGlcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxjb3B0aWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIlRvdXRcIixcIkJhYmFcIixcIkhhdG9yXCIsXCJLaWFoa1wiLFwiVG9iYVwiLFwiQW1zaGlyXCIsXCJCYXJhbWhhdFwiLFwiQmFyYW1vdWRhXCIsXCJCYXNoYW5zXCIsXCJQYW9uYVwiLFwiRXBlcFwiLFwiTWVzcmFcIixcIk5hc2llXCJdLGxvbmc6W1wiVG91dFwiLFwiQmFiYVwiLFwiSGF0b3JcIixcIktpYWhrXCIsXCJUb2JhXCIsXCJBbXNoaXJcIixcIkJhcmFtaGF0XCIsXCJCYXJhbW91ZGFcIixcIkJhc2hhbnNcIixcIlBhb25hXCIsXCJFcGVwXCIsXCJNZXNyYVwiLFwiTmFzaWVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRpbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1lci5cIixcImpldS5cIixcInZlbi5cIixcInNhbS5cIl0sbG9uZzpbXCJkaW1hbmNoZVwiLFwibHVuZGlcIixcIm1hcmRpXCIsXCJtZXJjcmVkaVwiLFwiamV1ZGlcIixcInZlbmRyZWRpXCIsXCJzYW1lZGlcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMXl1w6hcIixcIjJ5dcOoXCIsXCIzeXXDqFwiLFwiNHl1w6hcIixcIjV5dcOoXCIsXCI2eXXDqFwiLFwiN3l1w6hcIixcIjh5dcOoXCIsXCI5eXXDqFwiLFwiMTB5dcOoXCIsXCIxMXl1w6hcIixcIjEyeXXDqFwiXSxsb25nOltcInpoxJNuZ3l1w6hcIixcIsOocnl1w6hcIixcInPEgW55dcOoXCIsXCJzw6x5dcOoXCIsXCJ3x5R5dcOoXCIsXCJsacO5eXXDqFwiLFwiccSreXXDqFwiLFwiYsSBeXXDqFwiLFwiamnHlHl1w6hcIixcInNow615dcOoXCIsXCJzaMOtecSreXXDqFwiLFwic2jDreKAmcOocnl1w6hcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRpbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1lci5cIixcImpldS5cIixcInZlbi5cIixcInNhbS5cIl0sbG9uZzpbXCJkaW1hbmNoZVwiLFwibHVuZGlcIixcIm1hcmRpXCIsXCJtZXJjcmVkaVwiLFwiamV1ZGlcIixcInZlbmRyZWRpXCIsXCJzYW1lZGlcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxldGhpb3BpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl0sbG9uZzpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIkpcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZGltLlwiLFwibHVuLlwiLFwibWFyLlwiLFwibWVyLlwiLFwiamV1LlwiLFwidmVuLlwiLFwic2FtLlwiXSxsb25nOltcImRpbWFuY2hlXCIsXCJsdW5kaVwiLFwibWFyZGlcIixcIm1lcmNyZWRpXCIsXCJqZXVkaVwiLFwidmVuZHJlZGlcIixcInNhbWVkaVwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxldGhpb2FhOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXSxsb25nOltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkaW0uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtZXIuXCIsXCJqZXUuXCIsXCJ2ZW4uXCIsXCJzYW0uXCJdLGxvbmc6W1wiZGltYW5jaGVcIixcImx1bmRpXCIsXCJtYXJkaVwiLFwibWVyY3JlZGlcIixcImpldWRpXCIsXCJ2ZW5kcmVkaVwiLFwic2FtZWRpXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiXSxzaG9ydDpbXCJFUkEwXCJdLGxvbmc6W1wiRVJBMFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRpbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1lci5cIixcImpldS5cIixcInZlbi5cIixcInNhbS5cIl0sbG9uZzpbXCJkaW1hbmNoZVwiLFwibHVuZGlcIixcIm1hcmRpXCIsXCJtZXJjcmVkaVwiLFwiamV1ZGlcIixcInZlbmRyZWRpXCIsXCJzYW1lZGlcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZ3JlZ29yeTp7bW9udGhzOntuYXJyb3c6W1wiSlwiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiSlwiLFwiSlwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJqYW52LlwiLFwiZsOpdnIuXCIsXCJtYXJzXCIsXCJhdnIuXCIsXCJtYWlcIixcImp1aW5cIixcImp1aWwuXCIsXCJhb8O7dFwiLFwic2VwdC5cIixcIm9jdC5cIixcIm5vdi5cIixcImTDqWMuXCJdLGxvbmc6W1wiamFudmllclwiLFwiZsOpdnJpZXJcIixcIm1hcnNcIixcImF2cmlsXCIsXCJtYWlcIixcImp1aW5cIixcImp1aWxsZXRcIixcImFvw7t0XCIsXCJzZXB0ZW1icmVcIixcIm9jdG9icmVcIixcIm5vdmVtYnJlXCIsXCJkw6ljZW1icmVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRpbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1lci5cIixcImpldS5cIixcInZlbi5cIixcInNhbS5cIl0sbG9uZzpbXCJkaW1hbmNoZVwiLFwibHVuZGlcIixcIm1hcmRpXCIsXCJtZXJjcmVkaVwiLFwiamV1ZGlcIixcInZlbmRyZWRpXCIsXCJzYW1lZGlcIl19LGVyYXM6e25hcnJvdzpbXCJhdi4gSi4tQy5cIixcImFwLiBKLi1DLlwiLFwiQUVDXCIsXCJFQ1wiXSxzaG9ydDpbXCJhdi4gSi4tQy5cIixcImFwLiBKLi1DLlwiLFwiQUVDXCIsXCJFQ1wiXSxsb25nOltcImF2YW50IErDqXN1cy1DaHJpc3RcIixcImFwcsOocyBKw6lzdXMtQ2hyaXN0XCIsXCJhdmFudCBs4oCZw6hyZSBjb21tdW5lXCIsXCJkZSBs4oCZw6hyZSBjb21tdW5lXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saGVicmV3Onttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiLFwiN1wiXSxzaG9ydDpbXCJUaXNzZXJpXCIsXCJIZXN2YW5cIixcIktpc2xldlwiLFwiVMOpYmV0aFwiLFwiU2Now6liYXRcIixcIkFkYXIgSVwiLFwiQWRhclwiLFwiTmlzc2FuXCIsXCJJeWFyXCIsXCJTaXZhblwiLFwiVGFtb3V6XCIsXCJBYlwiLFwiRWxsb3VsXCIsXCJBZGFyIElJXCJdLGxvbmc6W1wiVGlzc2VyaVwiLFwiSGVzdmFuXCIsXCJLaXNsZXZcIixcIlTDqWJldGhcIixcIlNjaMOpYmF0XCIsXCJBZGFyIElcIixcIkFkYXJcIixcIk5pc3NhblwiLFwiSXlhclwiLFwiU2l2YW5cIixcIlRhbW91elwiLFwiQWJcIixcIkVsbG91bFwiLFwiQWRhciBJSVwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIkpcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZGltLlwiLFwibHVuLlwiLFwibWFyLlwiLFwibWVyLlwiLFwiamV1LlwiLFwidmVuLlwiLFwic2FtLlwiXSxsb25nOltcImRpbWFuY2hlXCIsXCJsdW5kaVwiLFwibWFyZGlcIixcIm1lcmNyZWRpXCIsXCJqZXVkaVwiLFwidmVuZHJlZGlcIixcInNhbWVkaVwiXX0sZXJhczp7bmFycm93OltcIkFNXCJdLHNob3J0OltcIkFNXCJdLGxvbmc6W1wiQU1cIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxpbmRpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdLGxvbmc6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkaW0uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtZXIuXCIsXCJqZXUuXCIsXCJ2ZW4uXCIsXCJzYW0uXCJdLGxvbmc6W1wiZGltYW5jaGVcIixcImx1bmRpXCIsXCJtYXJkaVwiLFwibWVyY3JlZGlcIixcImpldWRpXCIsXCJ2ZW5kcmVkaVwiLFwic2FtZWRpXCJdfSxlcmFzOntuYXJyb3c6W1wiU2FrYVwiXSxzaG9ydDpbXCJTYWthXCJdLGxvbmc6W1wiU2FrYVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGlzbGFtaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wibW91aC5cIixcInNhZi5cIixcInJhYi4gYXcuXCIsXCJyYWIuIHRoLlwiLFwiam91bS4gb3VsLlwiLFwiam91bS4gdGhhLlwiLFwicmFqLlwiLFwiY2hhYS5cIixcInJhbS5cIixcImNoYXcuXCIsXCJkaG91LiBxLlwiLFwiZGhvdS4gaC5cIl0sbG9uZzpbXCJtb3VoYXJyYW1cIixcInNhZmFyXCIsXCJyYWJpYSBhbCBhd2FsXCIsXCJyYWJpYSBhdGgtdGhhbmlcIixcImpvdW1hZGEgYWwgb3VsYVwiLFwiam91bWFkYSBhdGgtdGhhbmlhXCIsXCJyYWphYlwiLFwiY2hhYWJhbmVcIixcInJhbWFkYW5cIixcImNoYXd3YWxcIixcImRob3UgYWwgcWlgZGFcIixcImRob3UgYWwtaGlqamFcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRpbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1lci5cIixcImpldS5cIixcInZlbi5cIixcInNhbS5cIl0sbG9uZzpbXCJkaW1hbmNoZVwiLFwibHVuZGlcIixcIm1hcmRpXCIsXCJtZXJjcmVkaVwiLFwiamV1ZGlcIixcInZlbmRyZWRpXCIsXCJzYW1lZGlcIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saXNsYW1pY2M6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wibW91aC5cIixcInNhZi5cIixcInJhYi4gYXcuXCIsXCJyYWIuIHRoLlwiLFwiam91bS4gb3VsLlwiLFwiam91bS4gdGhhLlwiLFwicmFqLlwiLFwiY2hhYS5cIixcInJhbS5cIixcImNoYXcuXCIsXCJkaG91LiBxLlwiLFwiZGhvdS4gaC5cIl0sbG9uZzpbXCJtb3VoYXJyYW1cIixcInNhZmFyXCIsXCJyYWJpYSBhbCBhd2FsXCIsXCJyYWJpYSBhdGgtdGhhbmlcIixcImpvdW1hZGEgYWwgb3VsYVwiLFwiam91bWFkYSBhdGgtdGhhbmlhXCIsXCJyYWphYlwiLFwiY2hhYWJhbmVcIixcInJhbWFkYW5cIixcImNoYXd3YWxcIixcImRob3UgYWwgcWlgZGFcIixcImRob3UgYWwtaGlqamFcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRpbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1lci5cIixcImpldS5cIixcInZlbi5cIixcInNhbS5cIl0sbG9uZzpbXCJkaW1hbmNoZVwiLFwibHVuZGlcIixcIm1hcmRpXCIsXCJtZXJjcmVkaVwiLFwiamV1ZGlcIixcInZlbmRyZWRpXCIsXCJzYW1lZGlcIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0samFwYW5lc2U6e21vbnRoczp7bmFycm93OltcIkpcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiamFudi5cIixcImbDqXZyLlwiLFwibWFyc1wiLFwiYXZyLlwiLFwibWFpXCIsXCJqdWluXCIsXCJqdWlsLlwiLFwiYW/Du3RcIixcInNlcHQuXCIsXCJvY3QuXCIsXCJub3YuXCIsXCJkw6ljLlwiXSxsb25nOltcImphbnZpZXJcIixcImbDqXZyaWVyXCIsXCJtYXJzXCIsXCJhdnJpbFwiLFwibWFpXCIsXCJqdWluXCIsXCJqdWlsbGV0XCIsXCJhb8O7dFwiLFwic2VwdGVtYnJlXCIsXCJvY3RvYnJlXCIsXCJub3ZlbWJyZVwiLFwiZMOpY2VtYnJlXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkaW0uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtZXIuXCIsXCJqZXUuXCIsXCJ2ZW4uXCIsXCJzYW0uXCJdLGxvbmc6W1wiZGltYW5jaGVcIixcImx1bmRpXCIsXCJtYXJkaVwiLFwibWVyY3JlZGlcIixcImpldWRpXCIsXCJ2ZW5kcmVkaVwiLFwic2FtZWRpXCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdLGxvbmc6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxwZXJzaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIkZhcnZhcmRpblwiLFwiT3JkaWJlaGVzaHRcIixcIktob3JkYWRcIixcIlRpclwiLFwiTW9yZGFkXCIsXCJTaGFocml2YXJcIixcIk1laHJcIixcIkFiYW5cIixcIkF6YXJcIixcIkRleVwiLFwiQmFobWFuXCIsXCJFc2ZhbmRcIl0sbG9uZzpbXCJGYXJ2YXJkaW5cIixcIk9yZGliZWhlc2h0XCIsXCJLaG9yZGFkXCIsXCJUaXJcIixcIk1vcmRhZFwiLFwiU2hhaHJpdmFyXCIsXCJNZWhyXCIsXCJBYmFuXCIsXCJBemFyXCIsXCJEZXlcIixcIkJhaG1hblwiLFwiRXNmYW5kXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiSlwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkaW0uXCIsXCJsdW4uXCIsXCJtYXIuXCIsXCJtZXIuXCIsXCJqZXUuXCIsXCJ2ZW4uXCIsXCJzYW0uXCJdLGxvbmc6W1wiZGltYW5jaGVcIixcImx1bmRpXCIsXCJtYXJkaVwiLFwibWVyY3JlZGlcIixcImpldWRpXCIsXCJ2ZW5kcmVkaVwiLFwic2FtZWRpXCJdfSxlcmFzOntuYXJyb3c6W1wiQVBcIl0sc2hvcnQ6W1wiQVBcIl0sbG9uZzpbXCJBUFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LHJvYzp7bW9udGhzOntuYXJyb3c6W1wiSlwiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiSlwiLFwiSlwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJqYW52LlwiLFwiZsOpdnIuXCIsXCJtYXJzXCIsXCJhdnIuXCIsXCJtYWlcIixcImp1aW5cIixcImp1aWwuXCIsXCJhb8O7dFwiLFwic2VwdC5cIixcIm9jdC5cIixcIm5vdi5cIixcImTDqWMuXCJdLGxvbmc6W1wiamFudmllclwiLFwiZsOpdnJpZXJcIixcIm1hcnNcIixcImF2cmlsXCIsXCJtYWlcIixcImp1aW5cIixcImp1aWxsZXRcIixcImFvw7t0XCIsXCJzZXB0ZW1icmVcIixcIm9jdG9icmVcIixcIm5vdmVtYnJlXCIsXCJkw6ljZW1icmVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJKXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRpbS5cIixcImx1bi5cIixcIm1hci5cIixcIm1lci5cIixcImpldS5cIixcInZlbi5cIixcInNhbS5cIl0sbG9uZzpbXCJkaW1hbmNoZVwiLFwibHVuZGlcIixcIm1hcmRpXCIsXCJtZXJjcmVkaVwiLFwiamV1ZGlcIixcInZlbmRyZWRpXCIsXCJzYW1lZGlcIl19LGVyYXM6e25hcnJvdzpbXCJhdmFudCBSZENcIixcIlJkQ1wiXSxzaG9ydDpbXCJhdmFudCBSZENcIixcIlJkQ1wiXSxsb25nOltcImF2YW50IFJkQ1wiLFwiUmRDXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX19fSxudW1iZXI6e251OltcImxhdG5cIl0scGF0dGVybnM6e2RlY2ltYWw6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfVwifSxjdXJyZW5jeTp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn3CoHtjdXJyZW5jeX1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9wqB7Y3VycmVuY3l9XCJ9LHBlcmNlbnQ6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9wqB7cGVyY2VudFNpZ259XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfcKge3BlcmNlbnRTaWdufVwifX0sc3ltYm9sczp7bGF0bjp7ZGVjaW1hbDpcIixcIixncm91cDpcIsKgXCIsbmFuOlwiTmFOXCIscGx1c1NpZ246XCIrXCIsbWludXNTaWduOlwiLVwiLHBlcmNlbnRTaWduOlwiJVwiLGluZmluaXR5Olwi4oieXCJ9fSxjdXJyZW5jaWVzOntBUlM6XCIkQVJcIixBVUQ6XCIkQVVcIixCRUY6XCJGQlwiLEJNRDpcIiRCTVwiLEJORDpcIiRCTlwiLEJSTDpcIlIkXCIsQlNEOlwiJEJTXCIsQlpEOlwiJEJaXCIsQ0FEOlwiJENBXCIsQ0xQOlwiJENMXCIsQ09QOlwiJENPXCIsQ1lQOlwiwqNDWVwiLEVVUjpcIuKCrFwiLEZKRDpcIiRGSlwiLEZLUDpcIsKjRktcIixGUkY6XCJGXCIsR0JQOlwiwqNHQlwiLEdJUDpcIsKjR0lcIixJRVA6XCLCo0lFXCIsSUxQOlwiwqNJTFwiLElMUzpcIuKCqlwiLElOUjpcIuKCuVwiLElUTDpcIuKCpElUXCIsS1JXOlwi4oKpXCIsTEJQOlwiwqNMQlwiLE1UUDpcIsKjTVRcIixNWE46XCIkTVhcIixOQUQ6XCIkTkFcIixOWkQ6XCIkTlpcIixSSEQ6XCIkUkhcIixTQkQ6XCIkU0JcIixTR0Q6XCIkU0dcIixTUkQ6XCIkU1JcIixUVEQ6XCIkVFRcIixVU0Q6XCIkVVNcIixVWVU6XCIkVVlcIixWTkQ6XCLigqtcIixXU1Q6XCJXUyRcIixYQUY6XCJGQ0ZBXCIsWE9GOlwiQ0ZBXCIsWFBGOlwiRkNGUFwifX19KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9pbnRsL2xvY2FsZS1kYXRhL2pzb25wL2ZyLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIkludGxQb2x5ZmlsbC5fX2FkZExvY2FsZURhdGEoe2xvY2FsZTpcImdsXCIsZGF0ZTp7Y2E6W1wiZ3JlZ29yeVwiLFwiYnVkZGhpc3RcIixcImNoaW5lc2VcIixcImNvcHRpY1wiLFwiZGFuZ2lcIixcImV0aGlvYWFcIixcImV0aGlvcGljXCIsXCJnZW5lcmljXCIsXCJoZWJyZXdcIixcImluZGlhblwiLFwiaXNsYW1pY1wiLFwiaXNsYW1pY2NcIixcImphcGFuZXNlXCIsXCJwZXJzaWFuXCIsXCJyb2NcIl0saG91ck5vMDp0cnVlLGhvdXIxMjpmYWxzZSxmb3JtYXRzOntzaG9ydDpcInsxfSB7MH1cIixtZWRpdW06XCJ7MX0gezB9XCIsZnVsbDpcInsxfSB7MH1cIixsb25nOlwiezF9IHswfVwiLGF2YWlsYWJsZUZvcm1hdHM6e1wiZFwiOlwiZFwiLFwiRVwiOlwiY2NjXCIsRWQ6XCJkIEVcIixFaG06XCJFIGg6bW0gYVwiLEVIbTpcIkUgSEg6bW1cIixFaG1zOlwiRSBoOm1tOnNzIGFcIixFSG1zOlwiRSBISDptbTpzc1wiLEd5OlwiRyB5XCIsR3lNTU06XCJHIHkgTU1NXCIsR3lNTU1kOlwiRyB5IE1NTSBkXCIsR3lNTU1FZDpcIkcgeSBNTU0gZCwgRVwiLFwiaFwiOlwiaCBhXCIsXCJIXCI6XCJISFwiLGhtOlwiaDptbSBhXCIsSG06XCJISDptbVwiLGhtczpcImg6bW06c3MgYVwiLEhtczpcIkhIOm1tOnNzXCIsaG1zdjpcImg6bW06c3MgYSB2XCIsSG1zdjpcIkhIOm1tOnNzIHZcIixobXY6XCJoOm1tIGEgdlwiLEhtdjpcIkhIOm1tIHZcIixcIk1cIjpcIkxcIixNZDpcImQtTVwiLE1FZDpcIkUsIGQtTVwiLE1NZGQ6XCJkZC9NTVwiLE1NTTpcIkxMTFwiLE1NTWQ6XCJkIE1NTVwiLE1NTUVkOlwiRSBkIE1NTVwiLE1NTU1kOlwiZCBNTU1NXCIsTU1NTUVkOlwiRSBkIE1NTU1cIixtczpcIm1tOnNzXCIsXCJ5XCI6XCJ5XCIseU06XCJNLXlcIix5TWQ6XCJkL00veVwiLHlNRWQ6XCJFLCBkL00veVwiLHlNTTpcIk1NL3lcIix5TU1NOlwiTU1NIHlcIix5TU1NZDpcImQgTU1NLCB5XCIseU1NTUVkOlwiRSwgZCBNTU0sIHlcIix5TU1NTTpcIk1NTU0geVwiLHlRUVE6XCJRUVEgeVwiLHlRUVFROlwiUVFRUSB5XCJ9LGRhdGVGb3JtYXRzOnt5TU1NTUVFRUVkOlwiRUVFRSBkZCBNTU1NIHlcIix5TU1NTWQ6XCJkZCBNTU1NIHlcIix5TU1NZDpcImQgTU1NLCB5XCIseU1kOlwiZGQvTU0veXlcIn0sdGltZUZvcm1hdHM6e2htbXNzenp6ejpcIkhIOm1tOnNzIHp6enpcIixobXN6OlwiSEg6bW06c3MgelwiLGhtczpcIkhIOm1tOnNzXCIsaG06XCJISDptbVwifX0sY2FsZW5kYXJzOntidWRkaGlzdDp7bW9udGhzOntuYXJyb3c6W1wiWFwiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiWFwiLFwiWFwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJ4YW5cIixcImZlYlwiLFwibWFyXCIsXCJhYnJcIixcIm1haVwiLFwieHXDsVwiLFwieHVsXCIsXCJhZ29cIixcInNldFwiLFwib3V0XCIsXCJub3ZcIixcImRlY1wiXSxsb25nOltcInhhbmVpcm9cIixcImZlYnJlaXJvXCIsXCJtYXJ6b1wiLFwiYWJyaWxcIixcIm1haW9cIixcInh1w7FvXCIsXCJ4dWxsb1wiLFwiYWdvc3RvXCIsXCJzZXRlbWJyb1wiLFwib3V0dWJyb1wiLFwibm92ZW1icm9cIixcImRlY2VtYnJvXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiWFwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1bnNcIixcIm1hclwiLFwibcOpclwiLFwieG92XCIsXCJ2ZW5cIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5zXCIsXCJtYXJ0ZXNcIixcIm3DqXJjb3Jlc1wiLFwieG92ZXNcIixcInZlbnJlc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkJFXCJdLHNob3J0OltcIkJFXCJdLGxvbmc6W1wiQkVcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0sY2hpbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIlhcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5zXCIsXCJtYXJcIixcIm3DqXJcIixcInhvdlwiLFwidmVuXCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwibHVuc1wiLFwibWFydGVzXCIsXCJtw6lyY29yZXNcIixcInhvdmVzXCIsXCJ2ZW5yZXNcIixcInPDoWJhZG9cIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0sY29wdGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJUb3V0XCIsXCJCYWJhXCIsXCJIYXRvclwiLFwiS2lhaGtcIixcIlRvYmFcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtb3VkYVwiLFwiQmFzaGFuc1wiLFwiUGFvbmFcIixcIkVwZXBcIixcIk1lc3JhXCIsXCJOYXNpZVwiXSxsb25nOltcIlRvdXRcIixcIkJhYmFcIixcIkhhdG9yXCIsXCJLaWFoa1wiLFwiVG9iYVwiLFwiQW1zaGlyXCIsXCJCYXJhbWhhdFwiLFwiQmFyYW1vdWRhXCIsXCJCYXNoYW5zXCIsXCJQYW9uYVwiLFwiRXBlcFwiLFwiTWVzcmFcIixcIk5hc2llXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiWFwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1bnNcIixcIm1hclwiLFwibcOpclwiLFwieG92XCIsXCJ2ZW5cIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5zXCIsXCJtYXJ0ZXNcIixcIm3DqXJjb3Jlc1wiLFwieG92ZXNcIixcInZlbnJlc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJYXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuc1wiLFwibWFyXCIsXCJtw6lyXCIsXCJ4b3ZcIixcInZlblwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bnNcIixcIm1hcnRlc1wiLFwibcOpcmNvcmVzXCIsXCJ4b3Zlc1wiLFwidmVucmVzXCIsXCJzw6FiYWRvXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19LGV0aGlvcGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXSxsb25nOltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiWFwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1bnNcIixcIm1hclwiLFwibcOpclwiLFwieG92XCIsXCJ2ZW5cIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5zXCIsXCJtYXJ0ZXNcIixcIm3DqXJjb3Jlc1wiLFwieG92ZXNcIixcInZlbnJlc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0sZXRoaW9hYTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl0sbG9uZzpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIlhcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5zXCIsXCJtYXJcIixcIm3DqXJcIixcInhvdlwiLFwidmVuXCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwibHVuc1wiLFwibWFydGVzXCIsXCJtw6lyY29yZXNcIixcInhvdmVzXCIsXCJ2ZW5yZXNcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCJdLHNob3J0OltcIkVSQTBcIl0sbG9uZzpbXCJFUkEwXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJYXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuc1wiLFwibWFyXCIsXCJtw6lyXCIsXCJ4b3ZcIixcInZlblwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bnNcIixcIm1hcnRlc1wiLFwibcOpcmNvcmVzXCIsXCJ4b3Zlc1wiLFwidmVucmVzXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCJhLm0uXCIscG06XCJwLm0uXCJ9fSxncmVnb3J5Onttb250aHM6e25hcnJvdzpbXCJYXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJYXCIsXCJYXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcInhhblwiLFwiZmViXCIsXCJtYXJcIixcImFiclwiLFwibWFpXCIsXCJ4dcOxXCIsXCJ4dWxcIixcImFnb1wiLFwic2V0XCIsXCJvdXRcIixcIm5vdlwiLFwiZGVjXCJdLGxvbmc6W1wieGFuZWlyb1wiLFwiZmVicmVpcm9cIixcIm1hcnpvXCIsXCJhYnJpbFwiLFwibWFpb1wiLFwieHXDsW9cIixcInh1bGxvXCIsXCJhZ29zdG9cIixcInNldGVtYnJvXCIsXCJvdXR1YnJvXCIsXCJub3ZlbWJyb1wiLFwiZGVjZW1icm9cIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJYXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuc1wiLFwibWFyXCIsXCJtw6lyXCIsXCJ4b3ZcIixcInZlblwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bnNcIixcIm1hcnRlc1wiLFwibcOpcmNvcmVzXCIsXCJ4b3Zlc1wiLFwidmVucmVzXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiYS5DLlwiLFwiZC5DLlwiLFwiQkNFXCIsXCJDRVwiXSxzaG9ydDpbXCJhLkMuXCIsXCJkLkMuXCIsXCJCQ0VcIixcIkNFXCJdLGxvbmc6W1wiYW50ZXMgZGUgQ3Jpc3RvXCIsXCJkZXNwb2lzIGRlIENyaXN0b1wiLFwiYS5DLlwiLFwiZC5DLlwiXX0sZGF5UGVyaW9kczp7YW06XCJhLm0uXCIscG06XCJwLm0uXCJ9fSxoZWJyZXc6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCIsXCI3XCJdLHNob3J0OltcIlRpc2hyaVwiLFwiSGVzaHZhblwiLFwiS2lzbGV2XCIsXCJUZXZldFwiLFwiU2hldmF0XCIsXCJBZGFyIElcIixcIkFkYXJcIixcIk5pc2FuXCIsXCJJeWFyXCIsXCJTaXZhblwiLFwiVGFtdXpcIixcIkF2XCIsXCJFbHVsXCIsXCJBZGFyIElJXCJdLGxvbmc6W1wiVGlzaHJpXCIsXCJIZXNodmFuXCIsXCJLaXNsZXZcIixcIlRldmV0XCIsXCJTaGV2YXRcIixcIkFkYXIgSVwiLFwiQWRhclwiLFwiTmlzYW5cIixcIkl5YXJcIixcIlNpdmFuXCIsXCJUYW11elwiLFwiQXZcIixcIkVsdWxcIixcIkFkYXIgSUlcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJYXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuc1wiLFwibWFyXCIsXCJtw6lyXCIsXCJ4b3ZcIixcInZlblwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bnNcIixcIm1hcnRlc1wiLFwibcOpcmNvcmVzXCIsXCJ4b3Zlc1wiLFwidmVucmVzXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiQU1cIl0sc2hvcnQ6W1wiQU1cIl0sbG9uZzpbXCJBTVwiXX0sZGF5UGVyaW9kczp7YW06XCJhLm0uXCIscG06XCJwLm0uXCJ9fSxpbmRpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdLGxvbmc6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiWFwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1bnNcIixcIm1hclwiLFwibcOpclwiLFwieG92XCIsXCJ2ZW5cIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5zXCIsXCJtYXJ0ZXNcIixcIm3DqXJjb3Jlc1wiLFwieG92ZXNcIixcInZlbnJlc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIlNha2FcIl0sc2hvcnQ6W1wiU2FrYVwiXSxsb25nOltcIlNha2FcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0saXNsYW1pYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJKdW1hZGEgSVwiLFwiSnVtYWRhIElJXCIsXCJSYWphYlwiLFwiU2hhyrtiYW5cIixcIlJhbWFkYW5cIixcIlNoYXd3YWxcIixcIkRodcq7bC1Racq7ZGFoXCIsXCJEaHXKu2wtSGlqamFoXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiWFwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1bnNcIixcIm1hclwiLFwibcOpclwiLFwieG92XCIsXCJ2ZW5cIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5zXCIsXCJtYXJ0ZXNcIixcIm3DqXJjb3Jlc1wiLFwieG92ZXNcIixcInZlbnJlc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0saXNsYW1pY2M6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTXVoLlwiLFwiU2FmLlwiLFwiUmFiLiBJXCIsXCJSYWIuIElJXCIsXCJKdW0uIElcIixcIkp1bS4gSUlcIixcIlJhai5cIixcIlNoYS5cIixcIlJhbS5cIixcIlNoYXcuXCIsXCJEaHXKu2wtUS5cIixcIkRodcq7bC1ILlwiXSxsb25nOltcIk11aGFycmFtXCIsXCJTYWZhclwiLFwiUmFiacq7IElcIixcIlJhYmnKuyBJSVwiLFwiSnVtYWRhIElcIixcIkp1bWFkYSBJSVwiLFwiUmFqYWJcIixcIlNoYcq7YmFuXCIsXCJSYW1hZGFuXCIsXCJTaGF3d2FsXCIsXCJEaHXKu2wtUWnKu2RhaFwiLFwiRGh1yrtsLUhpamphaFwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIlhcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5zXCIsXCJtYXJcIixcIm3DqXJcIixcInhvdlwiLFwidmVuXCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwibHVuc1wiLFwibWFydGVzXCIsXCJtw6lyY29yZXNcIixcInhvdmVzXCIsXCJ2ZW5yZXNcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19LGphcGFuZXNlOnttb250aHM6e25hcnJvdzpbXCJYXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJYXCIsXCJYXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcInhhblwiLFwiZmViXCIsXCJtYXJcIixcImFiclwiLFwibWFpXCIsXCJ4dcOxXCIsXCJ4dWxcIixcImFnb1wiLFwic2V0XCIsXCJvdXRcIixcIm5vdlwiLFwiZGVjXCJdLGxvbmc6W1wieGFuZWlyb1wiLFwiZmVicmVpcm9cIixcIm1hcnpvXCIsXCJhYnJpbFwiLFwibWFpb1wiLFwieHXDsW9cIixcInh1bGxvXCIsXCJhZ29zdG9cIixcInNldGVtYnJvXCIsXCJvdXR1YnJvXCIsXCJub3ZlbWJyb1wiLFwiZGVjZW1icm9cIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJYXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuc1wiLFwibWFyXCIsXCJtw6lyXCIsXCJ4b3ZcIixcInZlblwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcImx1bnNcIixcIm1hcnRlc1wiLFwibcOpcmNvcmVzXCIsXCJ4b3Zlc1wiLFwidmVucmVzXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdLGxvbmc6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0scGVyc2lhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJGYXJ2YXJkaW5cIixcIk9yZGliZWhlc2h0XCIsXCJLaG9yZGFkXCIsXCJUaXJcIixcIk1vcmRhZFwiLFwiU2hhaHJpdmFyXCIsXCJNZWhyXCIsXCJBYmFuXCIsXCJBemFyXCIsXCJEZXlcIixcIkJhaG1hblwiLFwiRXNmYW5kXCJdLGxvbmc6W1wiRmFydmFyZGluXCIsXCJPcmRpYmVoZXNodFwiLFwiS2hvcmRhZFwiLFwiVGlyXCIsXCJNb3JkYWRcIixcIlNoYWhyaXZhclwiLFwiTWVoclwiLFwiQWJhblwiLFwiQXphclwiLFwiRGV5XCIsXCJCYWhtYW5cIixcIkVzZmFuZFwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIlhcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5zXCIsXCJtYXJcIixcIm3DqXJcIixcInhvdlwiLFwidmVuXCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwibHVuc1wiLFwibWFydGVzXCIsXCJtw6lyY29yZXNcIixcInhvdmVzXCIsXCJ2ZW5yZXNcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJBUFwiXSxzaG9ydDpbXCJBUFwiXSxsb25nOltcIkFQXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19LHJvYzp7bW9udGhzOntuYXJyb3c6W1wiWFwiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiWFwiLFwiWFwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJ4YW5cIixcImZlYlwiLFwibWFyXCIsXCJhYnJcIixcIm1haVwiLFwieHXDsVwiLFwieHVsXCIsXCJhZ29cIixcInNldFwiLFwib3V0XCIsXCJub3ZcIixcImRlY1wiXSxsb25nOltcInhhbmVpcm9cIixcImZlYnJlaXJvXCIsXCJtYXJ6b1wiLFwiYWJyaWxcIixcIm1haW9cIixcInh1w7FvXCIsXCJ4dWxsb1wiLFwiYWdvc3RvXCIsXCJzZXRlbWJyb1wiLFwib3V0dWJyb1wiLFwibm92ZW1icm9cIixcImRlY2VtYnJvXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiWFwiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1bnNcIixcIm1hclwiLFwibcOpclwiLFwieG92XCIsXCJ2ZW5cIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJsdW5zXCIsXCJtYXJ0ZXNcIixcIm3DqXJjb3Jlc1wiLFwieG92ZXNcIixcInZlbnJlc1wiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkJlZm9yZSBSLk8uQy5cIixcIlIuTy5DLlwiXSxzaG9ydDpbXCJCZWZvcmUgUi5PLkMuXCIsXCJSLk8uQy5cIl0sbG9uZzpbXCJCZWZvcmUgUi5PLkMuXCIsXCJSLk8uQy5cIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX19fSxudW1iZXI6e251OltcImxhdG5cIl0scGF0dGVybnM6e2RlY2ltYWw6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfVwifSxjdXJyZW5jeTp7cG9zaXRpdmVQYXR0ZXJuOlwie2N1cnJlbmN5fXtudW1iZXJ9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17Y3VycmVuY3l9e251bWJlcn1cIn0scGVyY2VudDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn17cGVyY2VudFNpZ259XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfXtwZXJjZW50U2lnbn1cIn19LHN5bWJvbHM6e2xhdG46e2RlY2ltYWw6XCIsXCIsZ3JvdXA6XCIuXCIsbmFuOlwiTmFOXCIscGx1c1NpZ246XCIrXCIsbWludXNTaWduOlwiLVwiLHBlcmNlbnRTaWduOlwiJVwiLGluZmluaXR5Olwi4oieXCJ9fSxjdXJyZW5jaWVzOntBVUQ6XCIkQVwiLEJSTDpcIiRSXCIsQ0FEOlwiJENBXCIsQ05ZOlwiQ07CpVwiLEVTUDpcIuKCp1wiLEVVUjpcIuKCrFwiLEdCUDpcIsKjXCIsSEtEOlwiJEhLXCIsSUxTOlwi4oKqXCIsSU5SOlwi4oK5XCIsSlBZOlwiwqVKUFwiLEtSVzpcIuKCqVwiLE1YTjpcIiRNWFwiLE5aRDpcIk5aJFwiLFRIQjpcIuC4v1wiLFRXRDpcIiROVFwiLFVTRDpcIiRcIixWTkQ6XCLigqtcIixYQUY6XCJGQ0ZBXCIsWENEOlwiRUMkXCIsWE9GOlwiQ0ZBXCIsWFBGOlwiQ0ZQRlwifX19KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9pbnRsL2xvY2FsZS1kYXRhL2pzb25wL2dsLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIkludGxQb2x5ZmlsbC5fX2FkZExvY2FsZURhdGEoe2xvY2FsZTpcIml0XCIsZGF0ZTp7Y2E6W1wiZ3JlZ29yeVwiLFwiYnVkZGhpc3RcIixcImNoaW5lc2VcIixcImNvcHRpY1wiLFwiZGFuZ2lcIixcImV0aGlvYWFcIixcImV0aGlvcGljXCIsXCJnZW5lcmljXCIsXCJoZWJyZXdcIixcImluZGlhblwiLFwiaXNsYW1pY1wiLFwiaXNsYW1pY2NcIixcImphcGFuZXNlXCIsXCJwZXJzaWFuXCIsXCJyb2NcIl0saG91ck5vMDp0cnVlLGhvdXIxMjpmYWxzZSxmb3JtYXRzOntzaG9ydDpcInsxfSwgezB9XCIsbWVkaXVtOlwiezF9LCB7MH1cIixmdWxsOlwiezF9IHswfVwiLGxvbmc6XCJ7MX0gezB9XCIsYXZhaWxhYmxlRm9ybWF0czp7XCJkXCI6XCJkXCIsXCJFXCI6XCJjY2NcIixFZDpcIkUgZFwiLEVobTpcIkUgaDptbSBhXCIsRUhtOlwiRSBISDptbVwiLEVobXM6XCJFIGg6bW06c3MgYVwiLEVIbXM6XCJFIEhIOm1tOnNzXCIsR3k6XCJ5IEdcIixHeU1NTTpcIk1NTSB5IEdcIixHeU1NTWQ6XCJkIE1NTSB5IEdcIixHeU1NTUVkOlwiRSBkIE1NTSB5IEdcIixcImhcIjpcImggYVwiLFwiSFwiOlwiSEhcIixobTpcImg6bW0gYVwiLEhtOlwiSEg6bW1cIixobXM6XCJoOm1tOnNzIGFcIixIbXM6XCJISDptbTpzc1wiLGhtc3Y6XCJoOm1tOnNzIGEgdlwiLEhtc3Y6XCJISDptbTpzcyB2XCIsaG12OlwiaDptbSBhIHZcIixIbXY6XCJISDptbSB2XCIsXCJNXCI6XCJMXCIsTWQ6XCJkL01cIixNRWQ6XCJFIGQvTVwiLE1NTTpcIkxMTFwiLE1NTWQ6XCJkIE1NTVwiLE1NTUVkOlwiRSBkIE1NTVwiLE1NTU1kOlwiZCBNTU1NXCIsbXM6XCJtbTpzc1wiLFwieVwiOlwieVwiLHlNOlwiTS95XCIseU1kOlwiZC9NL3lcIix5TUVkOlwiRSBkL00veVwiLHlNTU06XCJNTU0geVwiLHlNTU1kOlwiZCBNTU0geVwiLHlNTU1FZDpcIkUgZCBNTU0geVwiLHlNTU1NOlwiTU1NTSB5XCIseVFRUTpcIlFRUSB5XCIseVFRUVE6XCJRUVFRIHlcIn0sZGF0ZUZvcm1hdHM6e3lNTU1NRUVFRWQ6XCJFRUVFIGQgTU1NTSB5XCIseU1NTU1kOlwiZCBNTU1NIHlcIix5TU1NZDpcImRkIE1NTSB5XCIseU1kOlwiZGQvTU0veXlcIn0sdGltZUZvcm1hdHM6e2htbXNzenp6ejpcIkhIOm1tOnNzIHp6enpcIixobXN6OlwiSEg6bW06c3MgelwiLGhtczpcIkhIOm1tOnNzXCIsaG06XCJISDptbVwifX0sY2FsZW5kYXJzOntidWRkaGlzdDp7bW9udGhzOntuYXJyb3c6W1wiR1wiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiR1wiLFwiTFwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJnZW5cIixcImZlYlwiLFwibWFyXCIsXCJhcHJcIixcIm1hZ1wiLFwiZ2l1XCIsXCJsdWdcIixcImFnb1wiLFwic2V0XCIsXCJvdHRcIixcIm5vdlwiLFwiZGljXCJdLGxvbmc6W1wiZ2VubmFpb1wiLFwiZmViYnJhaW9cIixcIm1hcnpvXCIsXCJhcHJpbGVcIixcIm1hZ2dpb1wiLFwiZ2l1Z25vXCIsXCJsdWdsaW9cIixcImFnb3N0b1wiLFwic2V0dGVtYnJlXCIsXCJvdHRvYnJlXCIsXCJub3ZlbWJyZVwiLFwiZGljZW1icmVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJHXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuXCIsXCJtYXJcIixcIm1lclwiLFwiZ2lvXCIsXCJ2ZW5cIixcInNhYlwiXSxsb25nOltcImRvbWVuaWNhXCIsXCJsdW5lZMOsXCIsXCJtYXJ0ZWTDrFwiLFwibWVyY29sZWTDrFwiLFwiZ2lvdmVkw6xcIixcInZlbmVyZMOsXCIsXCJzYWJhdG9cIl19LGVyYXM6e25hcnJvdzpbXCJFQlwiXSxzaG9ydDpbXCJFQlwiXSxsb25nOltcIkVCXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sY2hpbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIkdcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5cIixcIm1hclwiLFwibWVyXCIsXCJnaW9cIixcInZlblwiLFwic2FiXCJdLGxvbmc6W1wiZG9tZW5pY2FcIixcImx1bmVkw6xcIixcIm1hcnRlZMOsXCIsXCJtZXJjb2xlZMOsXCIsXCJnaW92ZWTDrFwiLFwidmVuZXJkw6xcIixcInNhYmF0b1wiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGNvcHRpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiVG91dFwiLFwiQmFiYVwiLFwiSGF0b3JcIixcIktpYWhrXCIsXCJUb2JhXCIsXCJBbXNoaXJcIixcIkJhcmFtaGF0XCIsXCJCYXJhbW91ZGFcIixcIkJhc2hhbnNcIixcIlBhb25hXCIsXCJFcGVwXCIsXCJNZXNyYVwiLFwiTmFzaWVcIl0sbG9uZzpbXCJUb3V0XCIsXCJCYWJhXCIsXCJIYXRvclwiLFwiS2lhaGtcIixcIlRvYmFcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtb3VkYVwiLFwiQmFzaGFuc1wiLFwiUGFvbmFcIixcIkVwZXBcIixcIk1lc3JhXCIsXCJOYXNpZVwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIkdcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5cIixcIm1hclwiLFwibWVyXCIsXCJnaW9cIixcInZlblwiLFwic2FiXCJdLGxvbmc6W1wiZG9tZW5pY2FcIixcImx1bmVkw6xcIixcIm1hcnRlZMOsXCIsXCJtZXJjb2xlZMOsXCIsXCJnaW92ZWTDrFwiLFwidmVuZXJkw6xcIixcInNhYmF0b1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxkYW5naTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIkdcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5cIixcIm1hclwiLFwibWVyXCIsXCJnaW9cIixcInZlblwiLFwic2FiXCJdLGxvbmc6W1wiZG9tZW5pY2FcIixcImx1bmVkw6xcIixcIm1hcnRlZMOsXCIsXCJtZXJjb2xlZMOsXCIsXCJnaW92ZWTDrFwiLFwidmVuZXJkw6xcIixcInNhYmF0b1wiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGV0aGlvcGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXSxsb25nOltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiR1wiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1blwiLFwibWFyXCIsXCJtZXJcIixcImdpb1wiLFwidmVuXCIsXCJzYWJcIl0sbG9uZzpbXCJkb21lbmljYVwiLFwibHVuZWTDrFwiLFwibWFydGVkw6xcIixcIm1lcmNvbGVkw6xcIixcImdpb3ZlZMOsXCIsXCJ2ZW5lcmTDrFwiLFwic2FiYXRvXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGV0aGlvYWE6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdLGxvbmc6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJHXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuXCIsXCJtYXJcIixcIm1lclwiLFwiZ2lvXCIsXCJ2ZW5cIixcInNhYlwiXSxsb25nOltcImRvbWVuaWNhXCIsXCJsdW5lZMOsXCIsXCJtYXJ0ZWTDrFwiLFwibWVyY29sZWTDrFwiLFwiZ2lvdmVkw6xcIixcInZlbmVyZMOsXCIsXCJzYWJhdG9cIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCJdLHNob3J0OltcIkVSQTBcIl0sbG9uZzpbXCJFUkEwXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZ2VuZXJpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIkdcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5cIixcIm1hclwiLFwibWVyXCIsXCJnaW9cIixcInZlblwiLFwic2FiXCJdLGxvbmc6W1wiZG9tZW5pY2FcIixcImx1bmVkw6xcIixcIm1hcnRlZMOsXCIsXCJtZXJjb2xlZMOsXCIsXCJnaW92ZWTDrFwiLFwidmVuZXJkw6xcIixcInNhYmF0b1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxncmVnb3J5Onttb250aHM6e25hcnJvdzpbXCJHXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJHXCIsXCJMXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImdlblwiLFwiZmViXCIsXCJtYXJcIixcImFwclwiLFwibWFnXCIsXCJnaXVcIixcImx1Z1wiLFwiYWdvXCIsXCJzZXRcIixcIm90dFwiLFwibm92XCIsXCJkaWNcIl0sbG9uZzpbXCJnZW5uYWlvXCIsXCJmZWJicmFpb1wiLFwibWFyem9cIixcImFwcmlsZVwiLFwibWFnZ2lvXCIsXCJnaXVnbm9cIixcImx1Z2xpb1wiLFwiYWdvc3RvXCIsXCJzZXR0ZW1icmVcIixcIm90dG9icmVcIixcIm5vdmVtYnJlXCIsXCJkaWNlbWJyZVwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIkxcIixcIk1cIixcIk1cIixcIkdcIixcIlZcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJsdW5cIixcIm1hclwiLFwibWVyXCIsXCJnaW9cIixcInZlblwiLFwic2FiXCJdLGxvbmc6W1wiZG9tZW5pY2FcIixcImx1bmVkw6xcIixcIm1hcnRlZMOsXCIsXCJtZXJjb2xlZMOsXCIsXCJnaW92ZWTDrFwiLFwidmVuZXJkw6xcIixcInNhYmF0b1wiXX0sZXJhczp7bmFycm93OltcImFDXCIsXCJkQ1wiLFwiQkNFXCIsXCJDRVwiXSxzaG9ydDpbXCJhLkMuXCIsXCJkLkMuXCIsXCJhLkUuVi5cIixcIkUuVi5cIl0sbG9uZzpbXCJhLkMuXCIsXCJkLkMuXCIsXCJhdmFudGkgRXJhIFZvbGdhcmVcIixcIkVyYSBWb2xnYXJlXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saGVicmV3Onttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiLFwiN1wiXSxzaG9ydDpbXCJUaXNocmlcIixcIkhlc2h2YW5cIixcIktpc2xldlwiLFwiVGV2ZXRcIixcIlNoZXZhdFwiLFwiQWRhciBJXCIsXCJBZGFyXCIsXCJOaXNhblwiLFwiSXlhclwiLFwiU2l2YW5cIixcIlRhbXV6XCIsXCJBdlwiLFwiRWx1bFwiLFwiQWRhciBJSVwiXSxsb25nOltcIlRpc2hyaVwiLFwiSGVzaHZhblwiLFwiS2lzbGV2XCIsXCJUZXZldFwiLFwiU2hldmF0XCIsXCJBZGFyIElcIixcIkFkYXJcIixcIk5pc2FuXCIsXCJJeWFyXCIsXCJTaXZhblwiLFwiVGFtdXpcIixcIkF2XCIsXCJFbHVsXCIsXCJBZGFyIElJXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiR1wiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1blwiLFwibWFyXCIsXCJtZXJcIixcImdpb1wiLFwidmVuXCIsXCJzYWJcIl0sbG9uZzpbXCJkb21lbmljYVwiLFwibHVuZWTDrFwiLFwibWFydGVkw6xcIixcIm1lcmNvbGVkw6xcIixcImdpb3ZlZMOsXCIsXCJ2ZW5lcmTDrFwiLFwic2FiYXRvXCJdfSxlcmFzOntuYXJyb3c6W1wiQU1cIl0sc2hvcnQ6W1wiQU1cIl0sbG9uZzpbXCJBTVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGluZGlhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJDaGFpdHJhXCIsXCJWYWlzYWtoYVwiLFwiSnlhaXN0aGFcIixcIkFzYWRoYVwiLFwiU3JhdmFuYVwiLFwiQmhhZHJhXCIsXCJBc3ZpbmFcIixcIkthcnRpa2FcIixcIkFncmFoYXlhbmFcIixcIlBhdXNhXCIsXCJNYWdoYVwiLFwiUGhhbGd1bmFcIl0sbG9uZzpbXCJDaGFpdHJhXCIsXCJWYWlzYWtoYVwiLFwiSnlhaXN0aGFcIixcIkFzYWRoYVwiLFwiU3JhdmFuYVwiLFwiQmhhZHJhXCIsXCJBc3ZpbmFcIixcIkthcnRpa2FcIixcIkFncmFoYXlhbmFcIixcIlBhdXNhXCIsXCJNYWdoYVwiLFwiUGhhbGd1bmFcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJHXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuXCIsXCJtYXJcIixcIm1lclwiLFwiZ2lvXCIsXCJ2ZW5cIixcInNhYlwiXSxsb25nOltcImRvbWVuaWNhXCIsXCJsdW5lZMOsXCIsXCJtYXJ0ZWTDrFwiLFwibWVyY29sZWTDrFwiLFwiZ2lvdmVkw6xcIixcInZlbmVyZMOsXCIsXCJzYWJhdG9cIl19LGVyYXM6e25hcnJvdzpbXCJTYWthXCJdLHNob3J0OltcIlNha2FcIl0sbG9uZzpbXCJTYWthXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saXNsYW1pYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJKdW1hZGEgSVwiLFwiSnVtYWRhIElJXCIsXCJSYWphYlwiLFwiU2hhyrtiYW5cIixcIlJhbWFkYW5cIixcIlNoYXd3YWxcIixcIkRodcq7bC1Racq7ZGFoXCIsXCJEaHXKu2wtSGlqamFoXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiR1wiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1blwiLFwibWFyXCIsXCJtZXJcIixcImdpb1wiLFwidmVuXCIsXCJzYWJcIl0sbG9uZzpbXCJkb21lbmljYVwiLFwibHVuZWTDrFwiLFwibWFydGVkw6xcIixcIm1lcmNvbGVkw6xcIixcImdpb3ZlZMOsXCIsXCJ2ZW5lcmTDrFwiLFwic2FiYXRvXCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGlzbGFtaWNjOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk11aC5cIixcIlNhZi5cIixcIlJhYi4gSVwiLFwiUmFiLiBJSVwiLFwiSnVtLiBJXCIsXCJKdW0uIElJXCIsXCJSYWouXCIsXCJTaGEuXCIsXCJSYW0uXCIsXCJTaGF3LlwiLFwiRGh1yrtsLVEuXCIsXCJEaHXKu2wtSC5cIl0sbG9uZzpbXCJNdWhhcnJhbVwiLFwiU2FmYXJcIixcIlJhYmnKuyBJXCIsXCJSYWJpyrsgSUlcIixcIkp1bWFkYSBJXCIsXCJKdW1hZGEgSUlcIixcIlJhamFiXCIsXCJTaGHKu2JhblwiLFwiUmFtYWRhblwiLFwiU2hhd3dhbFwiLFwiRGh1yrtsLVFpyrtkYWhcIixcIkRodcq7bC1IaWpqYWhcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJHXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuXCIsXCJtYXJcIixcIm1lclwiLFwiZ2lvXCIsXCJ2ZW5cIixcInNhYlwiXSxsb25nOltcImRvbWVuaWNhXCIsXCJsdW5lZMOsXCIsXCJtYXJ0ZWTDrFwiLFwibWVyY29sZWTDrFwiLFwiZ2lvdmVkw6xcIixcInZlbmVyZMOsXCIsXCJzYWJhdG9cIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0samFwYW5lc2U6e21vbnRoczp7bmFycm93OltcIkdcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkdcIixcIkxcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiZ2VuXCIsXCJmZWJcIixcIm1hclwiLFwiYXByXCIsXCJtYWdcIixcImdpdVwiLFwibHVnXCIsXCJhZ29cIixcInNldFwiLFwib3R0XCIsXCJub3ZcIixcImRpY1wiXSxsb25nOltcImdlbm5haW9cIixcImZlYmJyYWlvXCIsXCJtYXJ6b1wiLFwiYXByaWxlXCIsXCJtYWdnaW9cIixcImdpdWdub1wiLFwibHVnbGlvXCIsXCJhZ29zdG9cIixcInNldHRlbWJyZVwiLFwib3R0b2JyZVwiLFwibm92ZW1icmVcIixcImRpY2VtYnJlXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiR1wiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1blwiLFwibWFyXCIsXCJtZXJcIixcImdpb1wiLFwidmVuXCIsXCJzYWJcIl0sbG9uZzpbXCJkb21lbmljYVwiLFwibHVuZWTDrFwiLFwibWFydGVkw6xcIixcIm1lcmNvbGVkw6xcIixcImdpb3ZlZMOsXCIsXCJ2ZW5lcmTDrFwiLFwic2FiYXRvXCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdLGxvbmc6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxwZXJzaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIkZhcnZhcmRpblwiLFwiT3JkaWJlaGVzaHRcIixcIktob3JkYWRcIixcIlRpclwiLFwiTW9yZGFkXCIsXCJTaGFocml2YXJcIixcIk1laHJcIixcIkFiYW5cIixcIkF6YXJcIixcIkRleVwiLFwiQmFobWFuXCIsXCJFc2ZhbmRcIl0sbG9uZzpbXCJGYXJ2YXJkaW5cIixcIk9yZGliZWhlc2h0XCIsXCJLaG9yZGFkXCIsXCJUaXJcIixcIk1vcmRhZFwiLFwiU2hhaHJpdmFyXCIsXCJNZWhyXCIsXCJBYmFuXCIsXCJBemFyXCIsXCJEZXlcIixcIkJhaG1hblwiLFwiRXNmYW5kXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiTFwiLFwiTVwiLFwiTVwiLFwiR1wiLFwiVlwiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcImx1blwiLFwibWFyXCIsXCJtZXJcIixcImdpb1wiLFwidmVuXCIsXCJzYWJcIl0sbG9uZzpbXCJkb21lbmljYVwiLFwibHVuZWTDrFwiLFwibWFydGVkw6xcIixcIm1lcmNvbGVkw6xcIixcImdpb3ZlZMOsXCIsXCJ2ZW5lcmTDrFwiLFwic2FiYXRvXCJdfSxlcmFzOntuYXJyb3c6W1wiQVBcIl0sc2hvcnQ6W1wiQVBcIl0sbG9uZzpbXCJBUFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LHJvYzp7bW9udGhzOntuYXJyb3c6W1wiR1wiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiR1wiLFwiTFwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJnZW5cIixcImZlYlwiLFwibWFyXCIsXCJhcHJcIixcIm1hZ1wiLFwiZ2l1XCIsXCJsdWdcIixcImFnb1wiLFwic2V0XCIsXCJvdHRcIixcIm5vdlwiLFwiZGljXCJdLGxvbmc6W1wiZ2VubmFpb1wiLFwiZmViYnJhaW9cIixcIm1hcnpvXCIsXCJhcHJpbGVcIixcIm1hZ2dpb1wiLFwiZ2l1Z25vXCIsXCJsdWdsaW9cIixcImFnb3N0b1wiLFwic2V0dGVtYnJlXCIsXCJvdHRvYnJlXCIsXCJub3ZlbWJyZVwiLFwiZGljZW1icmVcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJMXCIsXCJNXCIsXCJNXCIsXCJHXCIsXCJWXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwibHVuXCIsXCJtYXJcIixcIm1lclwiLFwiZ2lvXCIsXCJ2ZW5cIixcInNhYlwiXSxsb25nOltcImRvbWVuaWNhXCIsXCJsdW5lZMOsXCIsXCJtYXJ0ZWTDrFwiLFwibWVyY29sZWTDrFwiLFwiZ2lvdmVkw6xcIixcInZlbmVyZMOsXCIsXCJzYWJhdG9cIl19LGVyYXM6e25hcnJvdzpbXCJQcmltYSBkaSBSLk8uQy5cIixcIk1pbmd1b1wiXSxzaG9ydDpbXCJQcmltYSBkaSBSLk8uQy5cIixcIk1pbmd1b1wiXSxsb25nOltcIlByaW1hIGRpIFIuTy5DLlwiLFwiTWluZ3VvXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX19fSxudW1iZXI6e251OltcImxhdG5cIl0scGF0dGVybnM6e2RlY2ltYWw6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfVwifSxjdXJyZW5jeTp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn3CoHtjdXJyZW5jeX1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9wqB7Y3VycmVuY3l9XCJ9LHBlcmNlbnQ6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9e3BlcmNlbnRTaWdufVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn17cGVyY2VudFNpZ259XCJ9fSxzeW1ib2xzOntsYXRuOntkZWNpbWFsOlwiLFwiLGdyb3VwOlwiLlwiLG5hbjpcIk5hTlwiLHBsdXNTaWduOlwiK1wiLG1pbnVzU2lnbjpcIi1cIixwZXJjZW50U2lnbjpcIiVcIixpbmZpbml0eTpcIuKInlwifX0sY3VycmVuY2llczp7QVVEOlwiQSRcIixDQUQ6XCJDQSRcIixDTlk6XCJDTsKlXCIsRVVSOlwi4oKsXCIsR0JQOlwiwqNcIixJTFM6XCLigqpcIixJTlI6XCLigrlcIixOWkQ6XCJOWiRcIixUSEI6XCLguL9cIixVU0Q6XCJVUyRcIixWTkQ6XCLigqtcIixYQUY6XCJGQ0ZBXCIsWENEOlwiRUMkXCIsWE9GOlwiQ0ZBXCIsWFBGOlwiQ0ZQRlwifX19KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9pbnRsL2xvY2FsZS1kYXRhL2pzb25wL2l0LmpzXG4vLyBtb2R1bGUgaWQgPSAyMjNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIkludGxQb2x5ZmlsbC5fX2FkZExvY2FsZURhdGEoe2xvY2FsZTpcImphXCIsZGF0ZTp7Y2E6W1wiZ3JlZ29yeVwiLFwiYnVkZGhpc3RcIixcImNoaW5lc2VcIixcImNvcHRpY1wiLFwiZGFuZ2lcIixcImV0aGlvYWFcIixcImV0aGlvcGljXCIsXCJnZW5lcmljXCIsXCJoZWJyZXdcIixcImluZGlhblwiLFwiaXNsYW1pY1wiLFwiaXNsYW1pY2NcIixcImphcGFuZXNlXCIsXCJwZXJzaWFuXCIsXCJyb2NcIl0saG91ck5vMDpmYWxzZSxob3VyMTI6ZmFsc2UsZm9ybWF0czp7c2hvcnQ6XCJ7MX0gezB9XCIsbWVkaXVtOlwiezF9IHswfVwiLGZ1bGw6XCJ7MX0gezB9XCIsbG9uZzpcInsxfSB7MH1cIixhdmFpbGFibGVGb3JtYXRzOntcImRcIjpcImTml6VcIixcIkVcIjpcImNjY1wiLEVkOlwiZOaXpShFKVwiLEVFRUVkOlwiZOaXpUVFRUVcIixFaG06XCJhSzptbSAoRSlcIixFSG06XCJIOm1tIChFKVwiLEVobXM6XCJhSzptbTpzcyAoRSlcIixFSG1zOlwiSDptbTpzcyAoRSlcIixHeTpcIkd55bm0XCIsR3lNTU06XCJHeeW5tE3mnIhcIixHeU1NTWQ6XCJHeeW5tE3mnIhk5pelXCIsR3lNTU1FZDpcIkd55bm0TeaciGTml6UoRSlcIixHeU1NTUVFRUVkOlwiR3nlubRN5pyIZOaXpUVFRUVcIixcImhcIjpcImFL5pmCXCIsXCJIXCI6XCJI5pmCXCIsaG06XCJhSzptbVwiLEhtOlwiSDptbVwiLGhtczpcImFLOm1tOnNzXCIsSG1zOlwiSDptbTpzc1wiLGhtc3Y6XCJhSzptbTpzcyB2XCIsSG1zdjpcIkg6bW06c3MgdlwiLGhtdjpcImFLOm1tIHZcIixIbXY6XCJIOm1tIHZcIixcIk1cIjpcIk3mnIhcIixNZDpcIk0vZFwiLE1FZDpcIk0vZChFKVwiLE1FRUVFZDpcIk0vZEVFRUVcIixNTU06XCJN5pyIXCIsTU1NZDpcIk3mnIhk5pelXCIsTU1NRWQ6XCJN5pyIZOaXpShFKVwiLE1NTUVFRUVkOlwiTeaciGTml6VFRUVFXCIsTU1NTWQ6XCJN5pyIZOaXpVwiLG1zOlwibW06c3NcIixcInlcIjpcInnlubRcIix5TTpcInkvTVwiLHlNZDpcInkvTS9kXCIseU1FZDpcInkvTS9kKEUpXCIseU1FRUVFZDpcInkvTS9kRUVFRVwiLHlNTTpcInkvTU1cIix5TU1NOlwieeW5tE3mnIhcIix5TU1NZDpcInnlubRN5pyIZOaXpVwiLHlNTU1FZDpcInnlubRN5pyIZOaXpShFKVwiLHlNTU1FRUVFZDpcInnlubRN5pyIZOaXpUVFRUVcIix5TU1NTTpcInnlubRN5pyIXCIseVFRUTpcInkvUVFRXCIseVFRUVE6XCJ5UVFRUVwifSxkYXRlRm9ybWF0czp7eU1NTU1FRUVFZDpcInnlubRN5pyIZOaXpUVFRUVcIix5TU1NTWQ6XCJ55bm0TeaciGTml6VcIix5TU1NZDpcInkvTU0vZGRcIix5TWQ6XCJ5L01NL2RkXCJ9LHRpbWVGb3JtYXRzOntobW1zc3p6eno6XCJI5pmCbW3liIZzc+enkiB6enp6XCIsaG1zejpcIkg6bW06c3MgelwiLGhtczpcIkg6bW06c3NcIixobTpcIkg6bW1cIn19LGNhbGVuZGFyczp7YnVkZGhpc3Q6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMeaciFwiLFwiMuaciFwiLFwiM+aciFwiLFwiNOaciFwiLFwiNeaciFwiLFwiNuaciFwiLFwiN+aciFwiLFwiOOaciFwiLFwiOeaciFwiLFwiMTDmnIhcIixcIjEx5pyIXCIsXCIxMuaciFwiXSxsb25nOltcIjHmnIhcIixcIjLmnIhcIixcIjPmnIhcIixcIjTmnIhcIixcIjXmnIhcIixcIjbmnIhcIixcIjfmnIhcIixcIjjmnIhcIixcIjnmnIhcIixcIjEw5pyIXCIsXCIxMeaciFwiLFwiMTLmnIhcIl19LGRheXM6e25hcnJvdzpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sc2hvcnQ6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLGxvbmc6W1wi5pel5puc5pelXCIsXCLmnIjmm5zml6VcIixcIueBq+abnOaXpVwiLFwi5rC05puc5pelXCIsXCLmnKjmm5zml6VcIixcIumHkeabnOaXpVwiLFwi5Zyf5puc5pelXCJdfSxlcmFzOntuYXJyb3c6W1wiQkVcIl0sc2hvcnQ6W1wiQkVcIl0sbG9uZzpbXCLku4/mmqZcIl19LGRheVBlcmlvZHM6e2FtOlwi5Y2I5YmNXCIscG06XCLljYjlvoxcIn19LGNoaW5lc2U6e21vbnRoczp7bmFycm93OltcIuato1wiLFwi5LqMXCIsXCLkuIlcIixcIuWbm1wiLFwi5LqUXCIsXCLlha1cIixcIuS4g1wiLFwi5YWrXCIsXCLkuZ1cIixcIuWNgVwiLFwi5Y2B5LiAXCIsXCLljYHkuoxcIl0sc2hvcnQ6W1wi5q2j5pyIXCIsXCLkuozmnIhcIixcIuS4ieaciFwiLFwi5Zub5pyIXCIsXCLkupTmnIhcIixcIuWFreaciFwiLFwi5LiD5pyIXCIsXCLlhavmnIhcIixcIuS5neaciFwiLFwi5Y2B5pyIXCIsXCLljYHkuIDmnIhcIixcIuWNgeS6jOaciFwiXSxsb25nOltcIuato+aciFwiLFwi5LqM5pyIXCIsXCLkuInmnIhcIixcIuWbm+aciFwiLFwi5LqU5pyIXCIsXCLlha3mnIhcIixcIuS4g+aciFwiLFwi5YWr5pyIXCIsXCLkuZ3mnIhcIixcIuWNgeaciFwiLFwi5Y2B5LiA5pyIXCIsXCLljYHkuozmnIhcIl19LGRheXM6e25hcnJvdzpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sc2hvcnQ6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLGxvbmc6W1wi5pel5puc5pelXCIsXCLmnIjmm5zml6VcIixcIueBq+abnOaXpVwiLFwi5rC05puc5pelXCIsXCLmnKjmm5zml6VcIixcIumHkeabnOaXpVwiLFwi5Zyf5puc5pelXCJdfSxkYXlQZXJpb2RzOnthbTpcIuWNiOWJjVwiLHBtOlwi5Y2I5b6MXCJ9fSxjb3B0aWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIuODiOOCpuODiFwiLFwi44OQ44OQXCIsXCLjg4/jg4jjg7zjg6tcIixcIuOCreOCouODg+OCr1wiLFwi44OI44O844OQXCIsXCLjgqLjg6Djgrfjg7zjg6tcIixcIuODkOODqeODoOODj+ODvOODiFwiLFwi44OQ44Op44Oi44Km44OAXCIsXCLjg5Djgrfjg6Pjg7PjgrlcIixcIuODkeOCquODvOODilwiLFwi44Ko44Oa44O844OXXCIsXCLjg6Hjgrnjg6lcIixcIuODiuOCt+OCqFwiXSxsb25nOltcIuODiOOCpuODiFwiLFwi44OQ44OQXCIsXCLjg4/jg4jjg7zjg6tcIixcIuOCreOCouODg+OCr1wiLFwi44OI44O844OQXCIsXCLjgqLjg6Djgrfjg7zjg6tcIixcIuODkOODqeODoOODj+ODvOODiFwiLFwi44OQ44Op44Oi44Km44OAXCIsXCLjg5Djgrfjg6Pjg7PjgrlcIixcIuODkeOCquODvOODilwiLFwi44Ko44Oa44O844OXXCIsXCLjg6Hjgrnjg6lcIixcIuODiuOCt+OCqFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxzaG9ydDpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sbG9uZzpbXCLml6Xmm5zml6VcIixcIuaciOabnOaXpVwiLFwi54Gr5puc5pelXCIsXCLmsLTmm5zml6VcIixcIuacqOabnOaXpVwiLFwi6YeR5puc5pelXCIsXCLlnJ/mm5zml6VcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIuWNiOWJjVwiLHBtOlwi5Y2I5b6MXCJ9fSxkYW5naTp7bW9udGhzOntuYXJyb3c6W1wi5q2jXCIsXCLkuoxcIixcIuS4iVwiLFwi5ZubXCIsXCLkupRcIixcIuWFrVwiLFwi5LiDXCIsXCLlhatcIixcIuS5nVwiLFwi5Y2BXCIsXCLljYHkuIBcIixcIuWNgeS6jFwiXSxzaG9ydDpbXCLmraPmnIhcIixcIuS6jOaciFwiLFwi5LiJ5pyIXCIsXCLlm5vmnIhcIixcIuS6lOaciFwiLFwi5YWt5pyIXCIsXCLkuIPmnIhcIixcIuWFq+aciFwiLFwi5Lmd5pyIXCIsXCLljYHmnIhcIixcIuWNgeS4gOaciFwiLFwi5Y2B5LqM5pyIXCJdLGxvbmc6W1wi5q2j5pyIXCIsXCLkuozmnIhcIixcIuS4ieaciFwiLFwi5Zub5pyIXCIsXCLkupTmnIhcIixcIuWFreaciFwiLFwi5LiD5pyIXCIsXCLlhavmnIhcIixcIuS5neaciFwiLFwi5Y2B5pyIXCIsXCLljYHkuIDmnIhcIixcIuWNgeS6jOaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxzaG9ydDpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sbG9uZzpbXCLml6Xmm5zml6VcIixcIuaciOabnOaXpVwiLFwi54Gr5puc5pelXCIsXCLmsLTmm5zml6VcIixcIuacqOabnOaXpVwiLFwi6YeR5puc5pelXCIsXCLlnJ/mm5zml6VcIl19LGRheVBlcmlvZHM6e2FtOlwi5Y2I5YmNXCIscG06XCLljYjlvoxcIn19LGV0aGlvcGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCLjg6HjgrnjgrHjg6zjg6BcIixcIuODhuOCseODoOODiFwiLFwi44OY44OA44OrXCIsXCLjgr/jg7zjgrXjgrlcIixcIuODhuODq1wiLFwi44Kk44Kn44Kr44OG44Kj44OIXCIsXCLjg6Hjgqzjg5Pjg4hcIixcIuODn+OCouOCuOOColwiLFwi44Ky44Oz44Oc44OIXCIsXCLjgrvjg41cIixcIuODj+ODoOODrFwiLFwi44ON44OP44OD44K7XCIsXCLjg5HjgrDjg6Hjg7NcIl0sbG9uZzpbXCLjg6HjgrnjgrHjg6zjg6BcIixcIuODhuOCseODoOODiFwiLFwi44OY44OA44OrXCIsXCLjgr/jg7zjgrXjgrlcIixcIuODhuODq1wiLFwi44Kk44Kn44Kr44OG44Kj44OIXCIsXCLjg6Hjgqzjg5Pjg4hcIixcIuODn+OCouOCuOOColwiLFwi44Ky44Oz44Oc44OIXCIsXCLjgrvjg41cIixcIuODj+ODoOODrFwiLFwi44ON44OP44OD44K7XCIsXCLjg5HjgrDjg6Hjg7NcIl19LGRheXM6e25hcnJvdzpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sc2hvcnQ6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLGxvbmc6W1wi5pel5puc5pelXCIsXCLmnIjmm5zml6VcIixcIueBq+abnOaXpVwiLFwi5rC05puc5pelXCIsXCLmnKjmm5zml6VcIixcIumHkeabnOaXpVwiLFwi5Zyf5puc5pelXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCLljYjliY1cIixwbTpcIuWNiOW+jFwifX0sZXRoaW9hYTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wi44Oh44K544Kx44Os44OgXCIsXCLjg4bjgrHjg6Djg4hcIixcIuODmOODgOODq1wiLFwi44K/44O844K144K5XCIsXCLjg4bjg6tcIixcIuOCpOOCp+OCq+ODhuOCo+ODiFwiLFwi44Oh44Ks44OT44OIXCIsXCLjg5/jgqLjgrjjgqJcIixcIuOCsuODs+ODnOODiFwiLFwi44K744ONXCIsXCLjg4/jg6Djg6xcIixcIuODjeODj+ODg+OCu1wiLFwi44OR44Kw44Oh44OzXCJdLGxvbmc6W1wi44Oh44K544Kx44Os44OgXCIsXCLjg4bjgrHjg6Djg4hcIixcIuODmOODgOODq1wiLFwi44K/44O844K144K5XCIsXCLjg4bjg6tcIixcIuOCpOOCp+OCq+ODhuOCo+ODiFwiLFwi44Oh44Ks44OT44OIXCIsXCLjg5/jgqLjgrjjgqJcIixcIuOCsuODs+ODnOODiFwiLFwi44K744ONXCIsXCLjg4/jg6Djg6xcIixcIuODjeODj+ODg+OCu1wiLFwi44OR44Kw44Oh44OzXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLHNob3J0OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxsb25nOltcIuaXpeabnOaXpVwiLFwi5pyI5puc5pelXCIsXCLngavmm5zml6VcIixcIuawtOabnOaXpVwiLFwi5pyo5puc5pelXCIsXCLph5Hmm5zml6VcIixcIuWcn+abnOaXpVwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIl0sc2hvcnQ6W1wiRVJBMFwiXSxsb25nOltcIkVSQTBcIl19LGRheVBlcmlvZHM6e2FtOlwi5Y2I5YmNXCIscG06XCLljYjlvoxcIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sc2hvcnQ6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLGxvbmc6W1wi5pel5puc5pelXCIsXCLmnIjmm5zml6VcIixcIueBq+abnOaXpVwiLFwi5rC05puc5pelXCIsXCLmnKjmm5zml6VcIixcIumHkeabnOaXpVwiLFwi5Zyf5puc5pelXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCLljYjliY1cIixwbTpcIuWNiOW+jFwifX0sZ3JlZ29yeTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCJdLGxvbmc6W1wiMeaciFwiLFwiMuaciFwiLFwiM+aciFwiLFwiNOaciFwiLFwiNeaciFwiLFwiNuaciFwiLFwiN+aciFwiLFwiOOaciFwiLFwiOeaciFwiLFwiMTDmnIhcIixcIjEx5pyIXCIsXCIxMuaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxzaG9ydDpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sbG9uZzpbXCLml6Xmm5zml6VcIixcIuaciOabnOaXpVwiLFwi54Gr5puc5pelXCIsXCLmsLTmm5zml6VcIixcIuacqOabnOaXpVwiLFwi6YeR5puc5pelXCIsXCLlnJ/mm5zml6VcIl19LGVyYXM6e25hcnJvdzpbXCJCQ1wiLFwiQURcIixcIkJDRVwiLFwiQ0VcIl0sc2hvcnQ6W1wi57SA5YWD5YmNXCIsXCLopb/mmqZcIixcIuilv+aapue0gOWFg+WJjVwiLFwi6KW/5pqm57SA5YWDXCJdLGxvbmc6W1wi57SA5YWD5YmNXCIsXCLopb/mmqZcIixcIuilv+aapue0gOWFg+WJjVwiLFwi6KW/5pqm57SA5YWDXCJdfSxkYXlQZXJpb2RzOnthbTpcIuWNiOWJjVwiLHBtOlwi5Y2I5b6MXCJ9fSxoZWJyZXc6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCIsXCI3XCJdLHNob3J0OltcIuODhuOCo+OCueODrFwiLFwi44G444K344Oc44OzXCIsXCLjgq3jgrnjg6zjg5ZcIixcIuODhuODmeODg+ODiFwiLFwi44K344OQ44OD44OIXCIsXCLjgqLjg4Djg6sgSVwiLFwi44Ki44OA44OrXCIsXCLjg4vjgrXjg7NcIixcIuOCpOODpOODq1wiLFwi44K344OQ44OzXCIsXCLjgr/jg6DjgrpcIixcIuOCouODtFwiLFwi44Ko44Or44OrXCIsXCLjgqLjg4Djg6sgSUlcIl0sbG9uZzpbXCLjg4bjgqPjgrnjg6xcIixcIuOBuOOCt+ODnOODs1wiLFwi44Kt44K544Os44OWXCIsXCLjg4bjg5njg4Pjg4hcIixcIuOCt+ODkOODg+ODiFwiLFwi44Ki44OA44OrIElcIixcIuOCouODgOODq1wiLFwi44OL44K144OzXCIsXCLjgqTjg6Tjg6tcIixcIuOCt+ODkOODs1wiLFwi44K/44Og44K6XCIsXCLjgqLjg7RcIixcIuOCqOODq+ODq1wiLFwi44Ki44OA44OrIElJXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLHNob3J0OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxsb25nOltcIuaXpeabnOaXpVwiLFwi5pyI5puc5pelXCIsXCLngavmm5zml6VcIixcIuawtOabnOaXpVwiLFwi5pyo5puc5pelXCIsXCLph5Hmm5zml6VcIixcIuWcn+abnOaXpVwiXX0sZXJhczp7bmFycm93OltcIkFNXCJdLHNob3J0OltcIkFNXCJdLGxvbmc6W1wiQU1cIl19LGRheVBlcmlvZHM6e2FtOlwi5Y2I5YmNXCIscG06XCLljYjlvoxcIn19LGluZGlhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCLjgqvjgqTjg4jjg6lcIixcIuODtOOCoeOCpOOCteOCq1wiLFwi44K444Oj44Kk44K544K/XCIsXCLjgqLjg7zjgrXjg4BcIixcIuOCueODqeODkOODilwiLFwi44OQ44O844OJ44OpXCIsXCLjgqLjgrnjg5Pjg4pcIixcIuOCq+ODq+ODh+OCo+OCq1wiLFwi44Ki44O044Op44OP44Ok44OKXCIsXCLjg5HjgqbjgrVcIixcIuODnuODvOOCrFwiLFwi44OR44Or44Kw44OKXCJdLGxvbmc6W1wi44Kr44Kk44OI44OpXCIsXCLjg7TjgqHjgqTjgrXjgqtcIixcIuOCuOODo+OCpOOCueOCv1wiLFwi44Ki44O844K144OAXCIsXCLjgrnjg6njg5Djg4pcIixcIuODkOODvOODieODqVwiLFwi44Ki44K544OT44OKXCIsXCLjgqvjg6vjg4fjgqPjgqtcIixcIuOCouODtOODqeODj+ODpOODilwiLFwi44OR44Km44K1XCIsXCLjg57jg7zjgqxcIixcIuODkeODq+OCsOODilwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxzaG9ydDpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sbG9uZzpbXCLml6Xmm5zml6VcIixcIuaciOabnOaXpVwiLFwi54Gr5puc5pelXCIsXCLmsLTmm5zml6VcIixcIuacqOabnOaXpVwiLFwi6YeR5puc5pelXCIsXCLlnJ/mm5zml6VcIl19LGVyYXM6e25hcnJvdzpbXCLjgrXjgqtcIl0sc2hvcnQ6W1wi44K144KrXCJdLGxvbmc6W1wi44K144KrXCJdfSxkYXlQZXJpb2RzOnthbTpcIuWNiOWJjVwiLHBtOlwi5Y2I5b6MXCJ9fSxpc2xhbWljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIuODoOODj+ODg+ODqeODoFwiLFwi44K144OV44Ki44OrXCIsXCLjg6njg5Pjg7zjg7vjgqbjg6vjg7vjgqLjgqbjg6/jg6tcIixcIuODqeODk+ODvOODu+OCpuODg+ODu+OCteODvOODi+ODvFwiLFwi44K444Ol44Oe44O844OA44Or44O744Ki44Km44Ov44OrXCIsXCLjgrjjg6Xjg57jg7zjg4Djg4PjgrXjg7zjg4vjg7xcIixcIuODqeOCuOODo+ODllwiLFwi44K344Oj44Ki44OQ44O844OzXCIsXCLjg6njg57jg4Djg7zjg7NcIixcIuOCt+ODo+OCpuODr+ODvOODq1wiLFwi44K644Or44O744Kr44Kk44OAXCIsXCLjgrrjg6vjg7vjg5Ljg4Pjgrjjg6NcIl0sbG9uZzpbXCLjg6Djg4/jg4Pjg6njg6BcIixcIuOCteODleOCouODq1wiLFwi44Op44OT44O844O744Km44Or44O744Ki44Km44Ov44OrXCIsXCLjg6njg5Pjg7zjg7vjgqbjg4Pjg7vjgrXjg7zjg4vjg7xcIixcIuOCuOODpeODnuODvOODgOODq+ODu+OCouOCpuODr+ODq1wiLFwi44K444Ol44Oe44O844OA44OD44K144O844OL44O8XCIsXCLjg6njgrjjg6Pjg5ZcIixcIuOCt+ODo+OCouODkOODvOODs1wiLFwi44Op44Oe44OA44O844OzXCIsXCLjgrfjg6Pjgqbjg6/jg7zjg6tcIixcIuOCuuODq+ODu+OCq+OCpOODgFwiLFwi44K644Or44O744OS44OD44K444OjXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLHNob3J0OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxsb25nOltcIuaXpeabnOaXpVwiLFwi5pyI5puc5pelXCIsXCLngavmm5zml6VcIixcIuawtOabnOaXpVwiLFwi5pyo5puc5pelXCIsXCLph5Hmm5zml6VcIixcIuWcn+abnOaXpVwiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwi5Y2I5YmNXCIscG06XCLljYjlvoxcIn19LGlzbGFtaWNjOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIuODoOODj+ODg+ODqeODoFwiLFwi44K144OV44Ki44OrXCIsXCLjg6njg5Pjg7zjg7vjgqbjg6vjg7vjgqLjgqbjg6/jg6tcIixcIuODqeODk+ODvOODu+OCpuODg+ODu+OCteODvOODi+ODvFwiLFwi44K444Ol44Oe44O844OA44Or44O744Ki44Km44Ov44OrXCIsXCLjgrjjg6Xjg57jg7zjg4Djg4PjgrXjg7zjg4vjg7xcIixcIuODqeOCuOODo+ODllwiLFwi44K344Oj44Ki44OQ44O844OzXCIsXCLjg6njg57jg4Djg7zjg7NcIixcIuOCt+ODo+OCpuODr+ODvOODq1wiLFwi44K644Or44O744Kr44Kk44OAXCIsXCLjgrrjg6vjg7vjg5Ljg4Pjgrjjg6NcIl0sbG9uZzpbXCLjg6Djg4/jg4Pjg6njg6BcIixcIuOCteODleOCouODq1wiLFwi44Op44OT44O844O744Km44Or44O744Ki44Km44Ov44OrXCIsXCLjg6njg5Pjg7zjg7vjgqbjg4Pjg7vjgrXjg7zjg4vjg7xcIixcIuOCuOODpeODnuODvOODgOODq+ODu+OCouOCpuODr+ODq1wiLFwi44K444Ol44Oe44O844OA44OD44K144O844OL44O8XCIsXCLjg6njgrjjg6Pjg5ZcIixcIuOCt+ODo+OCouODkOODvOODs1wiLFwi44Op44Oe44OA44O844OzXCIsXCLjgrfjg6Pjgqbjg6/jg7zjg6tcIixcIuOCuuODq+ODu+OCq+OCpOODgFwiLFwi44K644Or44O744OS44OD44K444OjXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLHNob3J0OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxsb25nOltcIuaXpeabnOaXpVwiLFwi5pyI5puc5pelXCIsXCLngavmm5zml6VcIixcIuawtOabnOaXpVwiLFwi5pyo5puc5pelXCIsXCLph5Hmm5zml6VcIixcIuWcn+abnOaXpVwiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwi5Y2I5YmNXCIscG06XCLljYjlvoxcIn19LGphcGFuZXNlOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIjHmnIhcIixcIjLmnIhcIixcIjPmnIhcIixcIjTmnIhcIixcIjXmnIhcIixcIjbmnIhcIixcIjfmnIhcIixcIjjmnIhcIixcIjnmnIhcIixcIjEw5pyIXCIsXCIxMeaciFwiLFwiMTLmnIhcIl0sbG9uZzpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLHNob3J0OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxsb25nOltcIuaXpeabnOaXpVwiLFwi5pyI5puc5pelXCIsXCLngavmm5zml6VcIixcIuawtOabnOaXpVwiLFwi5pyo5puc5pelXCIsXCLph5Hmm5zml6VcIixcIuWcn+abnOaXpVwiXX0sZXJhczp7bmFycm93OltcIuWkp+WMllwiLFwi55m96ZuJXCIsXCLnmb3ps69cIixcIuacsemzpVwiLFwi5aSn5a6dXCIsXCLmhbbpm7JcIixcIuWSjOmKhVwiLFwi6ZyK5LqAXCIsXCLppIrogIFcIixcIuelnuS6gFwiLFwi5aSp5bmzXCIsXCLlpKnlubPmhJ/lrp1cIixcIuWkqeW5s+WLneWunVwiLFwi5aSp5bmz5a6d5a2XXCIsXCLlpKnlubPnpZ7orbdcIixcIuelnuitt+aZr+mbslwiLFwi5a6d5LqAXCIsXCLlpKnlv5xcIixcIuW7tuaaplwiLFwi5aSn5ZCMXCIsXCLlvJjku4FcIixcIuWkqemVt1wiLFwi5om/5ZKMXCIsXCLlmInnpaVcIixcIuS7geWvv1wiLFwi5paJ6KGhXCIsXCLlpKnlrolcIixcIuiynuims1wiLFwi5YWD5oW2XCIsXCLku4HlkoxcIixcIuWvm+W5s1wiLFwi5piM5rOwXCIsXCLlu7bllpxcIixcIuW7tumVt1wiLFwi5om/5bmzXCIsXCLlpKnmhbZcIixcIuWkqeaaplwiLFwi5aSp5b6zXCIsXCLlv5zlkoxcIixcIuW6t+S/nVwiLFwi5a6J5ZKMXCIsXCLlpKnnpoRcIixcIuWkqeW7tlwiLFwi6LKe5YWDXCIsXCLlpKnlhYNcIixcIuawuOims1wiLFwi5a+b5ZKMXCIsXCLmsLjlu7ZcIixcIuawuOelmlwiLFwi5q2j5pqmXCIsXCLplbflvrNcIixcIumVt+S/nVwiLFwi5a+b5byYXCIsXCLplbflkoxcIixcIuWvm+S7gVwiLFwi5rK75a6JXCIsXCLkuIflr79cIixcIumVt+WFg1wiLFwi6ZW35pqmXCIsXCLplbfkuYVcIixcIuWvm+W+s1wiLFwi5rC45om/XCIsXCLlpKnllpxcIixcIuW6t+W5s1wiLFwi5rK75pqmXCIsXCLlu7bkuYVcIixcIuaJv+S/nVwiLFwi5om/5pqmXCIsXCLmsLjkv51cIixcIuW/nOW+s1wiLFwi5a+b5rK7XCIsXCLlmInkv51cIixcIuawuOmVt1wiLFwi5om/5b6zXCIsXCLlurflkoxcIixcIumVt+ayu1wiLFwi5ZiJ5om/XCIsXCLlpKnku4FcIixcIuWkqeawuFwiLFwi5rC45LmFXCIsXCLlhYPmsLhcIixcIuS/neWuiVwiLFwi5aSp5rK7XCIsXCLlpKfmsrtcIixcIuWkqeaJv1wiLFwi6ZW35om/XCIsXCLkv53lu7ZcIixcIuawuOayu1wiLFwi5bq35rK7XCIsXCLlpKnppIpcIixcIuS5heWuiVwiLFwi5LuB5bmzXCIsXCLkuYXlr79cIixcIuS/neWFg1wiLFwi5bmz5rK7XCIsXCLmsLjmmqZcIixcIuW/nOS/nVwiLFwi6ZW35a+bXCIsXCLmsLjkuIdcIixcIuS7geWuiVwiLFwi5ZiJ5b+cXCIsXCLmib/lrolcIixcIuWuieWFg1wiLFwi5rK75om/XCIsXCLppIrlkoxcIixcIuWvv+awuFwiLFwi5YWD5pqmXCIsXCLmlofmsrtcIixcIuW7uuS5hVwiLFwi5q2j5rK7XCIsXCLlu7rku4FcIixcIuWFg+S5hVwiLFwi5bu65rC4XCIsXCLmib/lhYNcIixcIuW7uuaaplwiLFwi5bu65L+dXCIsXCLmib/kuYVcIixcIuiynuW/nFwiLFwi5YWD5LuBXCIsXCLlmInnpoRcIixcIuWuieiynlwiLFwi5a+b5ZacXCIsXCLosp7msLhcIixcIuWkqeemj1wiLFwi5paH5pqmXCIsXCLlmInnpo5cIixcIuaapuS7gVwiLFwi5bu25b+cXCIsXCLku4HmsrtcIixcIuWvm+WFg1wiLFwi5a6d5rK7XCIsXCLlu7rplbdcIixcIuW6t+WFg1wiLFwi5q2j5ZiJXCIsXCLmraPlhYNcIixcIuaWh+W/nFwiLFwi5byY6ZW3XCIsXCLmlofmsLhcIixcIuW7uuayu1wiLFwi5byY5a6JXCIsXCLmraPlv5xcIixcIuawuOS7gVwiLFwi5q2j5a6JXCIsXCLkub7lhYNcIixcIuWYieWFg1wiLFwi5b6z5rK7XCIsXCLlu7bmhbZcIixcIuW/nOmVt1wiLFwi5q2j5ZKMXCIsXCLmlofkv51cIixcIuWFg+W/nFwiLFwi5YWD5LqoXCIsXCLmraPkuK1cIixcIuWYieaaplwiLFwi5YWD5b6zXCIsXCLlhYPlvJhcIixcIuW7uuatplwiLFwi5bu25YWDXCIsXCLoiIjlm71cIixcIuato+W5s1wiLFwi5bu65b6zXCIsXCLmlofkuK1cIixcIuWkqeaOiFwiLFwi5bq35pqmXCIsXCLlvJjlkoxcIixcIuWFg+S4rVwiLFwi6Iez5b6zXCIsXCLlmInmhbZcIixcIuW6t+W/nFwiLFwi5piO5b6zXCIsXCLlv5zmsLhcIixcIuato+mVt1wiLFwi5rC45LqrXCIsXCLlmInlkIlcIixcIuaWh+WuiVwiLFwi5a6d5b6zXCIsXCLkuqvlvrNcIixcIuW6t+ato1wiLFwi6ZW356aEXCIsXCLlr5vmraNcIixcIuaWh+ato1wiLFwi5b+c5LuBXCIsXCLmlofmmI5cIixcIumVt+S6q1wiLFwi5bu25b6zXCIsXCLmmI7lv5xcIixcIuaWh+S6gFwiLFwi5rC45q2jXCIsXCLlpKfmsLhcIixcIuS6q+emhFwiLFwi5aSp5paHXCIsXCLlvJjmsrtcIixcIuawuOemhFwiLFwi5YWD5LqAXCIsXCLlpKnmraNcIixcIuaWh+emhFwiLFwi5oW26ZW3XCIsXCLlhYPlkoxcIixcIuWvm+awuFwiLFwi5q2j5L+dXCIsXCLmhbblrolcIixcIuaJv+W/nFwiLFwi5piO5pqmXCIsXCLkuIfmsrtcIixcIuWvm+aWh1wiLFwi5bu25a6dXCIsXCLlpKnlkoxcIixcIuiynuS6q1wiLFwi5YWD56aEXCIsXCLlrp3msLhcIixcIuato+W+s1wiLFwi5Lqr5L+dXCIsXCLlhYPmlodcIixcIuWvm+S/nVwiLFwi5bu25LqrXCIsXCLlr5vlu7ZcIixcIuWuneaaplwiLFwi5piO5ZKMXCIsXCLlronmsLhcIixcIuWkqeaYjlwiLFwi5a+b5pS/XCIsXCLkuqvlkoxcIixcIuaWh+WMllwiLFwi5paH5pS/XCIsXCLlpKnkv51cIixcIuW8mOWMllwiLFwi5ZiJ5rC4XCIsXCLlronmlL9cIixcIuS4h+W7tlwiLFwi5paH5LmFXCIsXCLlhYPmsrtcIixcIuaFtuW/nFwiLFwiTVwiLFwiVFwiLFwiU1wiLFwiSFwiXSxzaG9ydDpbXCLlpKfljJZcIixcIueZvembiVwiLFwi55m96bOvXCIsXCLmnLHps6VcIixcIuWkp+WunVwiLFwi5oW26ZuyXCIsXCLlkozpioVcIixcIumciuS6gFwiLFwi6aSK6ICBXCIsXCLnpZ7kuoBcIixcIuWkqeW5s1wiLFwi5aSp5bmz5oSf5a6dXCIsXCLlpKnlubPli53lrp1cIixcIuWkqeW5s+WuneWtl1wiLFwi5aSp5bmz56We6K23XCIsXCLnpZ7orbfmma/pm7JcIixcIuWuneS6gFwiLFwi5aSp5b+cXCIsXCLlu7bmmqZcIixcIuWkp+WQjFwiLFwi5byY5LuBXCIsXCLlpKnplbdcIixcIuaJv+WSjFwiLFwi5ZiJ56WlXCIsXCLku4Hlr79cIixcIuaWieihoVwiLFwi5aSp5a6JXCIsXCLosp7oprNcIixcIuWFg+aFtlwiLFwi5LuB5ZKMXCIsXCLlr5vlubNcIixcIuaYjOazsFwiLFwi5bu25ZacXCIsXCLlu7bplbdcIixcIuaJv+W5s1wiLFwi5aSp5oW2XCIsXCLlpKnmmqZcIixcIuWkqeW+s1wiLFwi5b+c5ZKMXCIsXCLlurfkv51cIixcIuWuieWSjFwiLFwi5aSp56aEXCIsXCLlpKnlu7ZcIixcIuiynuWFg1wiLFwi5aSp5YWDXCIsXCLmsLjoprNcIixcIuWvm+WSjFwiLFwi5rC45bu2XCIsXCLmsLjnpZpcIixcIuato+aaplwiLFwi6ZW35b6zXCIsXCLplbfkv51cIixcIuWvm+W8mFwiLFwi6ZW35ZKMXCIsXCLlr5vku4FcIixcIuayu+WuiVwiLFwi5LiH5a+/XCIsXCLplbflhYNcIixcIumVt+aaplwiLFwi6ZW35LmFXCIsXCLlr5vlvrNcIixcIuawuOaJv1wiLFwi5aSp5ZacXCIsXCLlurflubNcIixcIuayu+aaplwiLFwi5bu25LmFXCIsXCLmib/kv51cIixcIuaJv+aaplwiLFwi5rC45L+dXCIsXCLlv5zlvrNcIixcIuWvm+ayu1wiLFwi5ZiJ5L+dXCIsXCLmsLjplbdcIixcIuaJv+W+s1wiLFwi5bq35ZKMXCIsXCLplbfmsrtcIixcIuWYieaJv1wiLFwi5aSp5LuBXCIsXCLlpKnmsLhcIixcIuawuOS5hVwiLFwi5YWD5rC4XCIsXCLkv53lrolcIixcIuWkqeayu1wiLFwi5aSn5rK7XCIsXCLlpKnmib9cIixcIumVt+aJv1wiLFwi5L+d5bu2XCIsXCLmsLjmsrtcIixcIuW6t+ayu1wiLFwi5aSp6aSKXCIsXCLkuYXlrolcIixcIuS7geW5s1wiLFwi5LmF5a+/XCIsXCLkv53lhYNcIixcIuW5s+ayu1wiLFwi5rC45pqmXCIsXCLlv5zkv51cIixcIumVt+Wvm1wiLFwi5rC45LiHXCIsXCLku4HlrolcIixcIuWYieW/nFwiLFwi5om/5a6JXCIsXCLlronlhYNcIixcIuayu+aJv1wiLFwi6aSK5ZKMXCIsXCLlr7/msLhcIixcIuWFg+aaplwiLFwi5paH5rK7XCIsXCLlu7rkuYVcIixcIuato+ayu1wiLFwi5bu65LuBXCIsXCLlhYPkuYVcIixcIuW7uuawuFwiLFwi5om/5YWDXCIsXCLlu7rmmqZcIixcIuW7uuS/nVwiLFwi5om/5LmFXCIsXCLosp7lv5xcIixcIuWFg+S7gVwiLFwi5ZiJ56aEXCIsXCLlronosp5cIixcIuWvm+WWnFwiLFwi6LKe5rC4XCIsXCLlpKnnpo9cIixcIuaWh+aaplwiLFwi5ZiJ56aOXCIsXCLmmqbku4FcIixcIuW7tuW/nFwiLFwi5LuB5rK7XCIsXCLlr5vlhYNcIixcIuWuneayu1wiLFwi5bu66ZW3XCIsXCLlurflhYNcIixcIuato+WYiVwiLFwi5q2j5YWDXCIsXCLmloflv5xcIixcIuW8mOmVt1wiLFwi5paH5rC4XCIsXCLlu7rmsrtcIixcIuW8mOWuiVwiLFwi5q2j5b+cXCIsXCLmsLjku4FcIixcIuato+WuiVwiLFwi5Lm+5YWDXCIsXCLlmInlhYNcIixcIuW+s+ayu1wiLFwi5bu25oW2XCIsXCLlv5zplbdcIixcIuato+WSjFwiLFwi5paH5L+dXCIsXCLlhYPlv5xcIixcIuWFg+S6qFwiLFwi5q2j5LitXCIsXCLlmInmmqZcIixcIuWFg+W+s1wiLFwi5YWD5byYXCIsXCLlu7rmraZcIixcIuW7tuWFg1wiLFwi6IiI5Zu9XCIsXCLmraPlubNcIixcIuW7uuW+s1wiLFwi5paH5LitXCIsXCLlpKnmjohcIixcIuW6t+aaplwiLFwi5byY5ZKMXCIsXCLlhYPkuK1cIixcIuiHs+W+s1wiLFwi5ZiJ5oW2XCIsXCLlurflv5xcIixcIuaYjuW+s1wiLFwi5b+c5rC4XCIsXCLmraPplbdcIixcIuawuOS6q1wiLFwi5ZiJ5ZCJXCIsXCLmloflrolcIixcIuWuneW+s1wiLFwi5Lqr5b6zXCIsXCLlurfmraNcIixcIumVt+emhFwiLFwi5a+b5q2jXCIsXCLmlofmraNcIixcIuW/nOS7gVwiLFwi5paH5piOXCIsXCLplbfkuqtcIixcIuW7tuW+s1wiLFwi5piO5b+cXCIsXCLmlofkuoBcIixcIuawuOato1wiLFwi5aSn5rC4XCIsXCLkuqvnpoRcIixcIuWkqeaWh1wiLFwi5byY5rK7XCIsXCLmsLjnpoRcIixcIuWFg+S6gFwiLFwi5aSp5q2jXCIsXCLmlofnpoRcIixcIuaFtumVt1wiLFwi5YWD5ZKMXCIsXCLlr5vmsLhcIixcIuato+S/nVwiLFwi5oW25a6JXCIsXCLmib/lv5xcIixcIuaYjuaaplwiLFwi5LiH5rK7XCIsXCLlr5vmlodcIixcIuW7tuWunVwiLFwi5aSp5ZKMXCIsXCLosp7kuqtcIixcIuWFg+emhFwiLFwi5a6d5rC4XCIsXCLmraPlvrNcIixcIuS6q+S/nVwiLFwi5YWD5paHXCIsXCLlr5vkv51cIixcIuW7tuS6q1wiLFwi5a+b5bu2XCIsXCLlrp3mmqZcIixcIuaYjuWSjFwiLFwi5a6J5rC4XCIsXCLlpKnmmI5cIixcIuWvm+aUv1wiLFwi5Lqr5ZKMXCIsXCLmlofljJZcIixcIuaWh+aUv1wiLFwi5aSp5L+dXCIsXCLlvJjljJZcIixcIuWYieawuFwiLFwi5a6J5pS/XCIsXCLkuIflu7ZcIixcIuaWh+S5hVwiLFwi5YWD5rK7XCIsXCLmhbblv5xcIixcIuaYjuayu1wiLFwi5aSn5q2jXCIsXCLmmK3lkoxcIixcIuW5s+aIkFwiXSxsb25nOltcIuWkp+WMllwiLFwi55m96ZuJXCIsXCLnmb3ps69cIixcIuacsemzpVwiLFwi5aSn5a6dXCIsXCLmhbbpm7JcIixcIuWSjOmKhVwiLFwi6ZyK5LqAXCIsXCLppIrogIFcIixcIuelnuS6gFwiLFwi5aSp5bmzXCIsXCLlpKnlubPmhJ/lrp1cIixcIuWkqeW5s+WLneWunVwiLFwi5aSp5bmz5a6d5a2XXCIsXCLlpKnlubPnpZ7orbdcIixcIuelnuitt+aZr+mbslwiLFwi5a6d5LqAXCIsXCLlpKnlv5xcIixcIuW7tuaaplwiLFwi5aSn5ZCMXCIsXCLlvJjku4FcIixcIuWkqemVt1wiLFwi5om/5ZKMXCIsXCLlmInnpaVcIixcIuS7geWvv1wiLFwi5paJ6KGhXCIsXCLlpKnlrolcIixcIuiynuims1wiLFwi5YWD5oW2XCIsXCLku4HlkoxcIixcIuWvm+W5s1wiLFwi5piM5rOwXCIsXCLlu7bllpxcIixcIuW7tumVt1wiLFwi5om/5bmzXCIsXCLlpKnmhbZcIixcIuWkqeaaplwiLFwi5aSp5b6zXCIsXCLlv5zlkoxcIixcIuW6t+S/nVwiLFwi5a6J5ZKMXCIsXCLlpKnnpoRcIixcIuWkqeW7tlwiLFwi6LKe5YWDXCIsXCLlpKnlhYNcIixcIuawuOims1wiLFwi5a+b5ZKMXCIsXCLmsLjlu7ZcIixcIuawuOelmlwiLFwi5q2j5pqmXCIsXCLplbflvrNcIixcIumVt+S/nVwiLFwi5a+b5byYXCIsXCLplbflkoxcIixcIuWvm+S7gVwiLFwi5rK75a6JXCIsXCLkuIflr79cIixcIumVt+WFg1wiLFwi6ZW35pqmXCIsXCLplbfkuYVcIixcIuWvm+W+s1wiLFwi5rC45om/XCIsXCLlpKnllpxcIixcIuW6t+W5s1wiLFwi5rK75pqmXCIsXCLlu7bkuYVcIixcIuaJv+S/nVwiLFwi5om/5pqmXCIsXCLmsLjkv51cIixcIuW/nOW+s1wiLFwi5a+b5rK7XCIsXCLlmInkv51cIixcIuawuOmVt1wiLFwi5om/5b6zXCIsXCLlurflkoxcIixcIumVt+ayu1wiLFwi5ZiJ5om/XCIsXCLlpKnku4FcIixcIuWkqeawuFwiLFwi5rC45LmFXCIsXCLlhYPmsLhcIixcIuS/neWuiVwiLFwi5aSp5rK7XCIsXCLlpKfmsrtcIixcIuWkqeaJv1wiLFwi6ZW35om/XCIsXCLkv53lu7ZcIixcIuawuOayu1wiLFwi5bq35rK7XCIsXCLlpKnppIpcIixcIuS5heWuiVwiLFwi5LuB5bmzXCIsXCLkuYXlr79cIixcIuS/neWFg1wiLFwi5bmz5rK7XCIsXCLmsLjmmqZcIixcIuW/nOS/nVwiLFwi6ZW35a+bXCIsXCLmsLjkuIdcIixcIuS7geWuiVwiLFwi5ZiJ5b+cXCIsXCLmib/lrolcIixcIuWuieWFg1wiLFwi5rK75om/XCIsXCLppIrlkoxcIixcIuWvv+awuFwiLFwi5YWD5pqmXCIsXCLmlofmsrtcIixcIuW7uuS5hVwiLFwi5q2j5rK7XCIsXCLlu7rku4FcIixcIuWFg+S5hVwiLFwi5bu65rC4XCIsXCLmib/lhYNcIixcIuW7uuaaplwiLFwi5bu65L+dXCIsXCLmib/kuYVcIixcIuiynuW/nFwiLFwi5YWD5LuBXCIsXCLlmInnpoRcIixcIuWuieiynlwiLFwi5a+b5ZacXCIsXCLosp7msLhcIixcIuWkqeemj1wiLFwi5paH5pqmXCIsXCLlmInnpo5cIixcIuaapuS7gVwiLFwi5bu25b+cXCIsXCLku4HmsrtcIixcIuWvm+WFg1wiLFwi5a6d5rK7XCIsXCLlu7rplbdcIixcIuW6t+WFg1wiLFwi5q2j5ZiJXCIsXCLmraPlhYNcIixcIuaWh+W/nFwiLFwi5byY6ZW3XCIsXCLmlofmsLhcIixcIuW7uuayu1wiLFwi5byY5a6JXCIsXCLmraPlv5xcIixcIuawuOS7gVwiLFwi5q2j5a6JXCIsXCLkub7lhYNcIixcIuWYieWFg1wiLFwi5b6z5rK7XCIsXCLlu7bmhbZcIixcIuW/nOmVt1wiLFwi5q2j5ZKMXCIsXCLmlofkv51cIixcIuWFg+W/nFwiLFwi5YWD5LqoXCIsXCLmraPkuK1cIixcIuWYieaaplwiLFwi5YWD5b6zXCIsXCLlhYPlvJhcIixcIuW7uuatplwiLFwi5bu25YWDXCIsXCLoiIjlm71cIixcIuato+W5s1wiLFwi5bu65b6zXCIsXCLmlofkuK1cIixcIuWkqeaOiFwiLFwi5bq35pqmXCIsXCLlvJjlkoxcIixcIuWFg+S4rVwiLFwi6Iez5b6zXCIsXCLlmInmhbZcIixcIuW6t+W/nFwiLFwi5piO5b6zXCIsXCLlv5zmsLhcIixcIuato+mVt1wiLFwi5rC45LqrXCIsXCLlmInlkIlcIixcIuaWh+WuiVwiLFwi5a6d5b6zXCIsXCLkuqvlvrNcIixcIuW6t+ato1wiLFwi6ZW356aEXCIsXCLlr5vmraNcIixcIuaWh+ato1wiLFwi5b+c5LuBXCIsXCLmlofmmI5cIixcIumVt+S6q1wiLFwi5bu25b6zXCIsXCLmmI7lv5xcIixcIuaWh+S6gFwiLFwi5rC45q2jXCIsXCLlpKfmsLhcIixcIuS6q+emhFwiLFwi5aSp5paHXCIsXCLlvJjmsrtcIixcIuawuOemhFwiLFwi5YWD5LqAXCIsXCLlpKnmraNcIixcIuaWh+emhFwiLFwi5oW26ZW3XCIsXCLlhYPlkoxcIixcIuWvm+awuFwiLFwi5q2j5L+dXCIsXCLmhbblrolcIixcIuaJv+W/nFwiLFwi5piO5pqmXCIsXCLkuIfmsrtcIixcIuWvm+aWh1wiLFwi5bu25a6dXCIsXCLlpKnlkoxcIixcIuiynuS6q1wiLFwi5YWD56aEXCIsXCLlrp3msLhcIixcIuato+W+s1wiLFwi5Lqr5L+dXCIsXCLlhYPmlodcIixcIuWvm+S/nVwiLFwi5bu25LqrXCIsXCLlr5vlu7ZcIixcIuWuneaaplwiLFwi5piO5ZKMXCIsXCLlronmsLhcIixcIuWkqeaYjlwiLFwi5a+b5pS/XCIsXCLkuqvlkoxcIixcIuaWh+WMllwiLFwi5paH5pS/XCIsXCLlpKnkv51cIixcIuW8mOWMllwiLFwi5ZiJ5rC4XCIsXCLlronmlL9cIixcIuS4h+W7tlwiLFwi5paH5LmFXCIsXCLlhYPmsrtcIixcIuaFtuW/nFwiLFwi5piO5rK7XCIsXCLlpKfmraNcIixcIuaYreWSjFwiLFwi5bmz5oiQXCJdfSxkYXlQZXJpb2RzOnthbTpcIuWNiOWJjVwiLHBtOlwi5Y2I5b6MXCJ9fSxwZXJzaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIuODleOCoeODq+ODtOOCoeODq+ODh+OCo+ODvOODs1wiLFwi44Kq44Or44OH44Kj44O844OZ44OY44K344Ol44OIXCIsXCLjg5vjg6vjg4Djg7zjg4lcIixcIuODhuOCo+ODvOODq1wiLFwi44Oi44Or44OA44O844OJXCIsXCLjgrfjg6Pjg4/jg6rjg7zjg7TjgqHjg6tcIixcIuODoeODleODq1wiLFwi44Ki44O844OQ44O844OzXCIsXCLjgqLjg7zjgrbjg6tcIixcIuODh+OCpFwiLFwi44OQ44OV44Oe44OzXCIsXCLjgqjjgrnjg5XjgqHjg7Pjg4lcIl0sbG9uZzpbXCLjg5XjgqHjg6vjg7TjgqHjg6vjg4fjgqPjg7zjg7NcIixcIuOCquODq+ODh+OCo+ODvOODmeODmOOCt+ODpeODiFwiLFwi44Ob44Or44OA44O844OJXCIsXCLjg4bjgqPjg7zjg6tcIixcIuODouODq+ODgOODvOODiVwiLFwi44K344Oj44OP44Oq44O844O044Kh44OrXCIsXCLjg6Hjg5Xjg6tcIixcIuOCouODvOODkOODvOODs1wiLFwi44Ki44O844K244OrXCIsXCLjg4fjgqRcIixcIuODkOODleODnuODs1wiLFwi44Ko44K544OV44Kh44Oz44OJXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLmnIhcIixcIueBq1wiLFwi5rC0XCIsXCLmnKhcIixcIumHkVwiLFwi5ZyfXCJdLHNob3J0OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxsb25nOltcIuaXpeabnOaXpVwiLFwi5pyI5puc5pelXCIsXCLngavmm5zml6VcIixcIuawtOabnOaXpVwiLFwi5pyo5puc5pelXCIsXCLph5Hmm5zml6VcIixcIuWcn+abnOaXpVwiXX0sZXJhczp7bmFycm93OltcIkFQXCJdLHNob3J0OltcIkFQXCJdLGxvbmc6W1wiQVBcIl19LGRheVBlcmlvZHM6e2FtOlwi5Y2I5YmNXCIscG06XCLljYjlvoxcIn19LHJvYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCJdLGxvbmc6W1wiMeaciFwiLFwiMuaciFwiLFwiM+aciFwiLFwiNOaciFwiLFwiNeaciFwiLFwiNuaciFwiLFwiN+aciFwiLFwiOOaciFwiLFwiOeaciFwiLFwiMTDmnIhcIixcIjEx5pyIXCIsXCIxMuaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5pyIXCIsXCLngatcIixcIuawtFwiLFwi5pyoXCIsXCLph5FcIixcIuWcn1wiXSxzaG9ydDpbXCLml6VcIixcIuaciFwiLFwi54GrXCIsXCLmsLRcIixcIuacqFwiLFwi6YeRXCIsXCLlnJ9cIl0sbG9uZzpbXCLml6Xmm5zml6VcIixcIuaciOabnOaXpVwiLFwi54Gr5puc5pelXCIsXCLmsLTmm5zml6VcIixcIuacqOabnOaXpVwiLFwi6YeR5puc5pelXCIsXCLlnJ/mm5zml6VcIl19LGVyYXM6e25hcnJvdzpbXCLmsJHlm73liY1cIixcIuawkeWbvVwiXSxzaG9ydDpbXCLmsJHlm73liY1cIixcIuawkeWbvVwiXSxsb25nOltcIuawkeWbveWJjVwiLFwi5rCR5Zu9XCJdfSxkYXlQZXJpb2RzOnthbTpcIuWNiOWJjVwiLHBtOlwi5Y2I5b6MXCJ9fX19LG51bWJlcjp7bnU6W1wibGF0blwiXSxwYXR0ZXJuczp7ZGVjaW1hbDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9XCJ9LGN1cnJlbmN5Ontwb3NpdGl2ZVBhdHRlcm46XCJ7Y3VycmVuY3l9e251bWJlcn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtjdXJyZW5jeX17bnVtYmVyfVwifSxwZXJjZW50Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfXtwZXJjZW50U2lnbn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9e3BlcmNlbnRTaWdufVwifX0sc3ltYm9sczp7bGF0bjp7ZGVjaW1hbDpcIi5cIixncm91cDpcIixcIixuYW46XCJOYU5cIixwbHVzU2lnbjpcIitcIixtaW51c1NpZ246XCItXCIscGVyY2VudFNpZ246XCIlXCIsaW5maW5pdHk6XCLiiJ5cIn19LGN1cnJlbmNpZXM6e0FVRDpcIkFVJFwiLEJSTDpcIlIkXCIsQ0FEOlwiQ0EkXCIsQ05ZOlwi5YWDXCIsRVVSOlwi4oKsXCIsR0JQOlwiwqNcIixIS0Q6XCJISyRcIixJTFM6XCLigqpcIixJTlI6XCLigrlcIixKUFk6XCLvv6VcIixLUlc6XCLigqlcIixNWE46XCJNWCRcIixOWkQ6XCJOWiRcIixUSEI6XCLguL9cIixUV0Q6XCJOVCRcIixVU0Q6XCIkXCIsVk5EOlwi4oKrXCIsWEFGOlwiRkNGQVwiLFhDRDpcIkVDJFwiLFhPRjpcIkNGQVwiLFhQRjpcIkNGUEZcIn19fSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9qYS5qc1xuLy8gbW9kdWxlIGlkID0gMjI0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJJbnRsUG9seWZpbGwuX19hZGRMb2NhbGVEYXRhKHtsb2NhbGU6XCJrb1wiLGRhdGU6e2NhOltcImdyZWdvcnlcIixcImJ1ZGRoaXN0XCIsXCJjaGluZXNlXCIsXCJjb3B0aWNcIixcImRhbmdpXCIsXCJldGhpb2FhXCIsXCJldGhpb3BpY1wiLFwiZ2VuZXJpY1wiLFwiaGVicmV3XCIsXCJpbmRpYW5cIixcImlzbGFtaWNcIixcImlzbGFtaWNjXCIsXCJqYXBhbmVzZVwiLFwicGVyc2lhblwiLFwicm9jXCJdLGhvdXJObzA6dHJ1ZSxob3VyMTI6dHJ1ZSxmb3JtYXRzOntzaG9ydDpcInsxfSB7MH1cIixtZWRpdW06XCJ7MX0gezB9XCIsZnVsbDpcInsxfSB7MH1cIixsb25nOlwiezF9IHswfVwiLGF2YWlsYWJsZUZvcm1hdHM6e1wiZFwiOlwiZOydvFwiLFwiRVwiOlwiY2NjXCIsRWQ6XCJk7J28IChFKVwiLEVFRUVkOlwiZOydvCBFRUVFXCIsRWhtOlwiKEUpIGEgaDptbVwiLEVIbTpcIihFKSBISDptbVwiLEVobXM6XCIoRSkgYSBoOm1tOnNzXCIsRUhtczpcIihFKSBISDptbTpzc1wiLEd5OlwiRyB564WEXCIsR3lNTU06XCJHIHnrhYQgTU1NXCIsR3lNTU1kOlwiRyB564WEIE1NTSBk7J28XCIsR3lNTU1FZDpcIkcgeeuFhCBNTU0gZOydvCAoRSlcIixHeU1NTUVFRUVkOlwiRyB564WEIE1NTSBk7J28IEVFRUVcIixcImhcIjpcImEgaOyLnFwiLFwiSFwiOlwiSOyLnFwiLEhIbW1zczpcIkhIOm1tOnNzXCIsaG06XCJhIGg6bW1cIixIbTpcIkhIOm1tXCIsaG1zOlwiYSBoOm1tOnNzXCIsSG1zOlwiSOyLnCBt67aEIHPstIhcIixobXN2OlwiYSBoOm1tOnNzIHZcIixIbXN2OlwiSOyLnCBt67aEIHPstIggdlwiLGhtdjpcImEgaDptbSB2XCIsSG12OlwiSEg6bW0gdlwiLFwiTVwiOlwiTeyblFwiLE1kOlwiTS4gZC5cIixNRWQ6XCJNLiBkLiAoRSlcIixNRUVFRWQ6XCJNLiBkLiBFRUVFXCIsTU1NOlwiTExMXCIsTU1NZDpcIk1NTSBk7J28XCIsTU1NRWQ6XCJNTU0gZOydvCAoRSlcIixNTU1FRUVFZDpcIk1NTSBk7J28IEVFRUVcIixNTU1NZDpcIk1NTU0gZOydvFwiLG1tc3M6XCJtbTpzc1wiLG1zOlwibW06c3NcIixcInlcIjpcInnrhYRcIix5TTpcInkuIE0uXCIseU1kOlwieS4gTS4gZC5cIix5TUVkOlwieS4gTS4gZC4gKEUpXCIseU1FRUVFZDpcInkuIE0uIGQuIEVFRUVcIix5TU06XCJ5LiBNLlwiLHlNTU06XCJ564WEIE1NTVwiLHlNTU1kOlwieeuFhCBNTU0gZOydvFwiLHlNTU1FZDpcInnrhYQgTU1NIGTsnbwgKEUpXCIseU1NTUVFRUVkOlwieeuFhCBNTU0gZOydvCBFRUVFXCIseU1NTU06XCJ564WEIE1NTU1cIix5UVFROlwieeuFhCBRUVFcIix5UVFRUTpcInnrhYQgUVFRUVwifSxkYXRlRm9ybWF0czp7eU1NTU1FRUVFZDpcInnrhYQgTeyblCBk7J28IEVFRUVcIix5TU1NTWQ6XCJ564WEIE3sm5QgZOydvFwiLHlNTU1kOlwieS4gTS4gZC5cIix5TWQ6XCJ5eS4gTS4gZC5cIn0sdGltZUZvcm1hdHM6e2htbXNzenp6ejpcImEgaOyLnCBt67aEIHPstIggenp6elwiLGhtc3o6XCJhIGjsi5wgbeu2hCBz7LSIIHpcIixobXM6XCJhIGg6bW06c3NcIixobTpcImEgaDptbVwifX0sY2FsZW5kYXJzOntidWRkaGlzdDp7bW9udGhzOntuYXJyb3c6W1wiMeyblFwiLFwiMuyblFwiLFwiM+yblFwiLFwiNOyblFwiLFwiNeyblFwiLFwiNuyblFwiLFwiN+yblFwiLFwiOOyblFwiLFwiOeyblFwiLFwiMTDsm5RcIixcIjEx7JuUXCIsXCIxMuyblFwiXSxzaG9ydDpbXCIx7JuUXCIsXCIy7JuUXCIsXCIz7JuUXCIsXCI07JuUXCIsXCI17JuUXCIsXCI27JuUXCIsXCI37JuUXCIsXCI47JuUXCIsXCI57JuUXCIsXCIxMOyblFwiLFwiMTHsm5RcIixcIjEy7JuUXCJdLGxvbmc6W1wiMeyblFwiLFwiMuyblFwiLFwiM+yblFwiLFwiNOyblFwiLFwiNeyblFwiLFwiNuyblFwiLFwiN+yblFwiLFwiOOyblFwiLFwiOeyblFwiLFwiMTDsm5RcIixcIjEx7JuUXCIsXCIxMuyblFwiXX0sZGF5czp7bmFycm93OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxzaG9ydDpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sbG9uZzpbXCLsnbzsmpTsnbxcIixcIuyblOyalOydvFwiLFwi7ZmU7JqU7J28XCIsXCLsiJjsmpTsnbxcIixcIuuqqeyalOydvFwiLFwi6riI7JqU7J28XCIsXCLthqDsmpTsnbxcIl19LGVyYXM6e25hcnJvdzpbXCLrtojquLBcIl0sc2hvcnQ6W1wi67aI6riwXCJdLGxvbmc6W1wi67aI6riwXCJdfSxkYXlQZXJpb2RzOnthbTpcIuyYpOyghFwiLHBtOlwi7Jik7ZuEXCJ9fSxjaGluZXNlOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIjHsm5RcIixcIjLsm5RcIixcIjPsm5RcIixcIjTsm5RcIixcIjXsm5RcIixcIjbsm5RcIixcIjfsm5RcIixcIjjsm5RcIixcIjnsm5RcIixcIjEw7JuUXCIsXCIxMeyblFwiLFwiMTLsm5RcIl0sbG9uZzpbXCIx7JuUXCIsXCIy7JuUXCIsXCIz7JuUXCIsXCI07JuUXCIsXCI17JuUXCIsXCI27JuUXCIsXCI37JuUXCIsXCI47JuUXCIsXCI57JuUXCIsXCIxMOyblFwiLFwiMTHsm5RcIixcIjEy7JuUXCJdfSxkYXlzOntuYXJyb3c6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLHNob3J0OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxsb25nOltcIuydvOyalOydvFwiLFwi7JuU7JqU7J28XCIsXCLtmZTsmpTsnbxcIixcIuyImOyalOydvFwiLFwi66qp7JqU7J28XCIsXCLquIjsmpTsnbxcIixcIu2GoOyalOydvFwiXX0sZGF5UGVyaW9kczp7YW06XCLsmKTsoIRcIixwbTpcIuyYpO2bhFwifX0sY29wdGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCLtiKztirhcIixcIuuwlOuwlO2dkFwiLFwi7ZWY7Yis66W0XCIsXCLtgqTslbztnZDtgaxcIixcIu2IrOuwlO2dkFwiLFwi7JWU7Ims66W0XCIsXCLrsJTrnbzrp4jtirhcIixcIuuwlOudvOusuOuLpO2dkFwiLFwi67CU7IOo7IqkXCIsXCLrsJTsmrDrgpjtnZBcIixcIuyVhOu5hOu4jFwiLFwi66+47Iqk6528XCIsXCLrgpjsi5xcIl0sbG9uZzpbXCLtiKztirhcIixcIuuwlOuwlO2dkFwiLFwi7ZWY7Yis66W0XCIsXCLtgqTslbztnZDtgaxcIixcIu2IrOuwlO2dkFwiLFwi7JWU7Ims66W0XCIsXCLrsJTrnbzrp4jtirhcIixcIuuwlOudvOusuOuLpO2dkFwiLFwi67CU7IOo7IqkXCIsXCLrsJTsmrDrgpjtnZBcIixcIuyVhOu5hOu4jFwiLFwi66+47Iqk6528XCIsXCLrgpjsi5xcIl19LGRheXM6e25hcnJvdzpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sc2hvcnQ6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLGxvbmc6W1wi7J287JqU7J28XCIsXCLsm5TsmpTsnbxcIixcIu2ZlOyalOydvFwiLFwi7IiY7JqU7J28XCIsXCLrqqnsmpTsnbxcIixcIuq4iOyalOydvFwiLFwi7Yag7JqU7J28XCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCLsmKTsoIRcIixwbTpcIuyYpO2bhFwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMeyblFwiLFwiMuyblFwiLFwiM+yblFwiLFwiNOyblFwiLFwiNeyblFwiLFwiNuyblFwiLFwiN+yblFwiLFwiOOyblFwiLFwiOeyblFwiLFwiMTDsm5RcIixcIjEx7JuUXCIsXCIxMuyblFwiXSxsb25nOltcIjHsm5RcIixcIjLsm5RcIixcIjPsm5RcIixcIjTsm5RcIixcIjXsm5RcIixcIjbsm5RcIixcIjfsm5RcIixcIjjsm5RcIixcIjnsm5RcIixcIjEw7JuUXCIsXCIxMeyblFwiLFwiMTLsm5RcIl19LGRheXM6e25hcnJvdzpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sc2hvcnQ6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLGxvbmc6W1wi7J287JqU7J28XCIsXCLsm5TsmpTsnbxcIixcIu2ZlOyalOydvFwiLFwi7IiY7JqU7J28XCIsXCLrqqnsmpTsnbxcIixcIuq4iOyalOydvFwiLFwi7Yag7JqU7J28XCJdfSxkYXlQZXJpb2RzOnthbTpcIuyYpOyghFwiLHBtOlwi7Jik7ZuEXCJ9fSxldGhpb3BpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wi66ek7Iqk7LqQ656oXCIsXCLthYzsvJDtirhcIixcIu2XpOuLpOultFwiLFwi7YOA7Z2Q7IKs7IqkXCIsXCLthYzrpbRcIixcIuyWmOy5tO2LsO2KuFwiLFwi66ek6rCA67mE7Yq4XCIsXCLrr7jslbzsp4DslbxcIixcIuqykOuztO2KuFwiLFwi7IOI64SkXCIsXCLtlajroIhcIixcIuuCtO2VmOyEuFwiLFwi7YyM6rWs66eoXCJdLGxvbmc6W1wi66ek7Iqk7LqQ656oXCIsXCLthYzsvJDtirhcIixcIu2XpOuLpOultFwiLFwi7YOA7Z2Q7IKs7IqkXCIsXCLthYzrpbRcIixcIuyWmOy5tO2LsO2KuFwiLFwi66ek6rCA67mE7Yq4XCIsXCLrr7jslbzsp4DslbxcIixcIuqykOuztO2KuFwiLFwi7IOI64SkXCIsXCLtlajroIhcIixcIuuCtO2VmOyEuFwiLFwi7YyM6rWs66eoXCJdfSxkYXlzOntuYXJyb3c6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLHNob3J0OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxsb25nOltcIuydvOyalOydvFwiLFwi7JuU7JqU7J28XCIsXCLtmZTsmpTsnbxcIixcIuyImOyalOydvFwiLFwi66qp7JqU7J28XCIsXCLquIjsmpTsnbxcIixcIu2GoOyalOydvFwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwi7Jik7KCEXCIscG06XCLsmKTtm4RcIn19LGV0aGlvYWE6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIuunpOyKpOy6kOueqFwiLFwi7YWM7LyQ7Yq4XCIsXCLtl6Tri6TrpbRcIixcIu2DgO2dkOyCrOyKpFwiLFwi7YWM66W0XCIsXCLslpjsubTti7DtirhcIixcIuunpOqwgOu5hO2KuFwiLFwi66+47JW87KeA7JW8XCIsXCLqspDrs7TtirhcIixcIuyDiOuEpFwiLFwi7ZWo66CIXCIsXCLrgrTtlZjshLhcIixcIu2MjOq1rOunqFwiXSxsb25nOltcIuunpOyKpOy6kOueqFwiLFwi7YWM7LyQ7Yq4XCIsXCLtl6Tri6TrpbRcIixcIu2DgO2dkOyCrOyKpFwiLFwi7YWM66W0XCIsXCLslpjsubTti7DtirhcIixcIuunpOqwgOu5hO2KuFwiLFwi66+47JW87KeA7JW8XCIsXCLqspDrs7TtirhcIixcIuyDiOuEpFwiLFwi7ZWo66CIXCIsXCLrgrTtlZjshLhcIixcIu2MjOq1rOunqFwiXX0sZGF5czp7bmFycm93OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxzaG9ydDpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sbG9uZzpbXCLsnbzsmpTsnbxcIixcIuyblOyalOydvFwiLFwi7ZmU7JqU7J28XCIsXCLsiJjsmpTsnbxcIixcIuuqqeyalOydvFwiLFwi6riI7JqU7J28XCIsXCLthqDsmpTsnbxcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCJdLHNob3J0OltcIkVSQTBcIl0sbG9uZzpbXCJFUkEwXCJdfSxkYXlQZXJpb2RzOnthbTpcIuyYpOyghFwiLHBtOlwi7Jik7ZuEXCJ9fSxnZW5lcmljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl0sbG9uZzpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdfSxkYXlzOntuYXJyb3c6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLHNob3J0OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxsb25nOltcIuydvOyalOydvFwiLFwi7JuU7JqU7J28XCIsXCLtmZTsmpTsnbxcIixcIuyImOyalOydvFwiLFwi66qp7JqU7J28XCIsXCLquIjsmpTsnbxcIixcIu2GoOyalOydvFwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwi7Jik7KCEXCIscG06XCLsmKTtm4RcIn19LGdyZWdvcnk6e21vbnRoczp7bmFycm93OltcIjHsm5RcIixcIjLsm5RcIixcIjPsm5RcIixcIjTsm5RcIixcIjXsm5RcIixcIjbsm5RcIixcIjfsm5RcIixcIjjsm5RcIixcIjnsm5RcIixcIjEw7JuUXCIsXCIxMeyblFwiLFwiMTLsm5RcIl0sc2hvcnQ6W1wiMeyblFwiLFwiMuyblFwiLFwiM+yblFwiLFwiNOyblFwiLFwiNeyblFwiLFwiNuyblFwiLFwiN+yblFwiLFwiOOyblFwiLFwiOeyblFwiLFwiMTDsm5RcIixcIjEx7JuUXCIsXCIxMuyblFwiXSxsb25nOltcIjHsm5RcIixcIjLsm5RcIixcIjPsm5RcIixcIjTsm5RcIixcIjXsm5RcIixcIjbsm5RcIixcIjfsm5RcIixcIjjsm5RcIixcIjnsm5RcIixcIjEw7JuUXCIsXCIxMeyblFwiLFwiMTLsm5RcIl19LGRheXM6e25hcnJvdzpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sc2hvcnQ6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLGxvbmc6W1wi7J287JqU7J28XCIsXCLsm5TsmpTsnbxcIixcIu2ZlOyalOydvFwiLFwi7IiY7JqU7J28XCIsXCLrqqnsmpTsnbxcIixcIuq4iOyalOydvFwiLFwi7Yag7JqU7J28XCJdfSxlcmFzOntuYXJyb3c6W1wiQkNcIixcIkFEXCIsXCJCQ0VcIixcIkNFXCJdLHNob3J0OltcIkJDXCIsXCJBRFwiLFwiQkNFXCIsXCJDRVwiXSxsb25nOltcIuq4sOybkOyghFwiLFwi7ISc6riwXCIsXCJCQ0VcIixcIkNFXCJdfSxkYXlQZXJpb2RzOnthbTpcIuyYpOyghFwiLHBtOlwi7Jik7ZuEXCJ9fSxoZWJyZXc6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCIsXCI3XCJdLHNob3J0OltcIuuUlOyKpOumrOyblFwiLFwi66eQ7LyA7Iqk7JuUXCIsXCLquLDsiqzrpbTsm5RcIixcIuuNsOuys+yblFwiLFwi7Iqk67Cn7JuUXCIsXCLslYTri6zsm5QgMVwiLFwi7JWE64us7JuUXCIsXCLri5vsgrDsm5RcIixcIuydtOyVvOultOyblFwiLFwi7Iuc7JmE7JuUXCIsXCLri7TrrLTrpbTsm5RcIixcIuyVleyblFwiLFwi7JeY66Ow7JuUXCIsXCLslYTri6zsm5QgMlwiXSxsb25nOltcIuuUlOyKpOumrOyblFwiLFwi66eQ7LyA7Iqk7JuUXCIsXCLquLDsiqzrpbTsm5RcIixcIuuNsOuys+yblFwiLFwi7Iqk67Cn7JuUXCIsXCLslYTri6zsm5QgMVwiLFwi7JWE64us7JuUXCIsXCLri5vsgrDsm5RcIixcIuydtOyVvOultOyblFwiLFwi7Iuc7JmE7JuUXCIsXCLri7TrrLTrpbTsm5RcIixcIuyVleyblFwiLFwi7JeY66Ow7JuUXCIsXCLslYTri6zsm5QgMlwiXX0sZGF5czp7bmFycm93OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxzaG9ydDpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sbG9uZzpbXCLsnbzsmpTsnbxcIixcIuyblOyalOydvFwiLFwi7ZmU7JqU7J28XCIsXCLsiJjsmpTsnbxcIixcIuuqqeyalOydvFwiLFwi6riI7JqU7J28XCIsXCLthqDsmpTsnbxcIl19LGVyYXM6e25hcnJvdzpbXCJBTVwiXSxzaG9ydDpbXCJBTVwiXSxsb25nOltcIkFNXCJdfSxkYXlQZXJpb2RzOnthbTpcIuyYpOyghFwiLHBtOlwi7Jik7ZuEXCJ9fSxpbmRpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdLGxvbmc6W1wiQ2hhaXRyYVwiLFwiVmFpc2FraGFcIixcIkp5YWlzdGhhXCIsXCJBc2FkaGFcIixcIlNyYXZhbmFcIixcIkJoYWRyYVwiLFwiQXN2aW5hXCIsXCJLYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzYVwiLFwiTWFnaGFcIixcIlBoYWxndW5hXCJdfSxkYXlzOntuYXJyb3c6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLHNob3J0OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxsb25nOltcIuydvOyalOydvFwiLFwi7JuU7JqU7J28XCIsXCLtmZTsmpTsnbxcIixcIuyImOyalOydvFwiLFwi66qp7JqU7J28XCIsXCLquIjsmpTsnbxcIixcIu2GoOyalOydvFwiXX0sZXJhczp7bmFycm93OltcIlNha2FcIl0sc2hvcnQ6W1wiU2FrYVwiXSxsb25nOltcIlNha2FcIl19LGRheVBlcmlvZHM6e2FtOlwi7Jik7KCEXCIscG06XCLsmKTtm4RcIn19LGlzbGFtaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTXVoLlwiLFwiU2FmLlwiLFwiUmFiLiBJXCIsXCJSYWIuIElJXCIsXCJKdW0uIElcIixcIkp1bS4gSUlcIixcIlJhai5cIixcIlNoYS5cIixcIlJhbS5cIixcIlNoYXcuXCIsXCJEaHXKu2wtUS5cIixcIkRodcq7bC1ILlwiXSxsb25nOltcIuustO2VmOuejFwiLFwi7IKs7YyM66W0XCIsXCLrnbzruYQg7JWMIOyVhOyZiFwiLFwi652867mEIOyVjCDsjoTri4hcIixcIuyjvOuniOuLpCDslYwg7JWE7JmIXCIsXCLso7zrp4jri6Qg7JWMIOyOhOuLiFwiLFwi65287J6hXCIsXCLsiZDslYTrsJhcIixcIuudvOuniOuLqFwiLFwi7ImQ7JmIXCIsXCLrk4Ag7JWMIOq5jOuLpFwiLFwi65OAIOyVjCDtnojsnpBcIl19LGRheXM6e25hcnJvdzpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sc2hvcnQ6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLGxvbmc6W1wi7J287JqU7J28XCIsXCLsm5TsmpTsnbxcIixcIu2ZlOyalOydvFwiLFwi7IiY7JqU7J28XCIsXCLrqqnsmpTsnbxcIixcIuq4iOyalOydvFwiLFwi7Yag7JqU7J28XCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCLsmKTsoIRcIixwbTpcIuyYpO2bhFwifX0saXNsYW1pY2M6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTXVoLlwiLFwiU2FmLlwiLFwiUmFiLiBJXCIsXCJSYWIuIElJXCIsXCJKdW0uIElcIixcIkp1bS4gSUlcIixcIlJhai5cIixcIlNoYS5cIixcIlJhbS5cIixcIlNoYXcuXCIsXCJEaHXKu2wtUS5cIixcIkRodcq7bC1ILlwiXSxsb25nOltcIuustO2VmOuejFwiLFwi7IKs7YyM66W0XCIsXCLrnbzruYQg7JWMIOyVhOyZiFwiLFwi652867mEIOyVjCDsjoTri4hcIixcIuyjvOuniOuLpCDslYwg7JWE7JmIXCIsXCLso7zrp4jri6Qg7JWMIOyOhOuLiFwiLFwi65287J6hXCIsXCLsiZDslYTrsJhcIixcIuudvOuniOuLqFwiLFwi7ImQ7JmIXCIsXCLrk4Ag7JWMIOq5jOuLpFwiLFwi65OAIOyVjCDtnojsnpBcIl19LGRheXM6e25hcnJvdzpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sc2hvcnQ6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLGxvbmc6W1wi7J287JqU7J28XCIsXCLsm5TsmpTsnbxcIixcIu2ZlOyalOydvFwiLFwi7IiY7JqU7J28XCIsXCLrqqnsmpTsnbxcIixcIuq4iOyalOydvFwiLFwi7Yag7JqU7J28XCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCLsmKTsoIRcIixwbTpcIuyYpO2bhFwifX0samFwYW5lc2U6e21vbnRoczp7bmFycm93OltcIjHsm5RcIixcIjLsm5RcIixcIjPsm5RcIixcIjTsm5RcIixcIjXsm5RcIixcIjbsm5RcIixcIjfsm5RcIixcIjjsm5RcIixcIjnsm5RcIixcIjEw7JuUXCIsXCIxMeyblFwiLFwiMTLsm5RcIl0sc2hvcnQ6W1wiMeyblFwiLFwiMuyblFwiLFwiM+yblFwiLFwiNOyblFwiLFwiNeyblFwiLFwiNuyblFwiLFwiN+yblFwiLFwiOOyblFwiLFwiOeyblFwiLFwiMTDsm5RcIixcIjEx7JuUXCIsXCIxMuyblFwiXSxsb25nOltcIjHsm5RcIixcIjLsm5RcIixcIjPsm5RcIixcIjTsm5RcIixcIjXsm5RcIixcIjbsm5RcIixcIjfsm5RcIixcIjjsm5RcIixcIjnsm5RcIixcIjEw7JuUXCIsXCIxMeyblFwiLFwiMTLsm5RcIl19LGRheXM6e25hcnJvdzpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sc2hvcnQ6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLGxvbmc6W1wi7J287JqU7J28XCIsXCLsm5TsmpTsnbxcIixcIu2ZlOyalOydvFwiLFwi7IiY7JqU7J28XCIsXCLrqqnsmpTsnbxcIixcIuq4iOyalOydvFwiLFwi7Yag7JqU7J28XCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcIuuLpOydtOy5tCAoNjQ1IH4gNjUwKVwiLFwi7ZWY7L+g7LmYICg2NTAgfiA2NzEpXCIsXCLtlZjsv6DtmLggKDY3MiB+IDY4NilcIixcIuyKiOy0iCAoNjg2IH4gNzAxKVwiLFwi64uk7J207Zi4ICg3MDEgfiA3MDQpXCIsXCLqsozsnbTsmrQgKDcwNCB+IDcwOClcIixcIuyZgOuPhCAoNzA4IH4gNzE1KVwiLFwi66CI7J207YKkICg3MTUgfiA3MTcpXCIsXCLsmpTroZwgKDcxNyB+IDcyNClcIixcIuynhO2CpCAoNzI0IH4gNzI5KVwiLFwi64207ZGcICg3MjkgfiA3NDkpXCIsXCLrjbTtkZzsubjtj6wgKDc0OSB+IDc0OSlcIixcIuuNtO2RnOyHvO2YuCAoNzQ5IH4gNzU3KVwiLFwi64207ZGc7Zi47KeAICg3NTcgfiA3NjUpXCIsXCLrjbTtkZzsp4Tqs6AgKDc2NSB+IDc2NylcIixcIuynhOqzoOy8gOydtOyatCAoNzY3IH4gNzcwKVwiLFwi7Zi47YKkICg3NzAgfiA3ODApXCIsXCLrjbTsmKQgKDc4MSB+IDc4MilcIixcIuyXlOuetOy/oCAoNzgyIH4gODA2KVwiLFwi64uk7J2064+EICg4MDYgfiA4MTApXCIsXCLqs6Dri4wgKDgxMCB+IDgyNClcIixcIuuNtOy0iCAoODI0IH4gODM0KVwiLFwi7KGw7JmAICg4MzQgfiA4NDgpXCIsXCLqsIDsh7wgKDg0OCB+IDg1MSlcIixcIuuLjOyjvCAoODUxIH4gODU0KVwiLFwi7IKs7J207L2UICg4NTQgfiA4NTcpXCIsXCLrjbTrgpwgKDg1NyB+IDg1OSlcIixcIuyhsOqwhCAoODU5IH4gODc3KVwiLFwi6rCE6rWQICg4NzcgfiA4ODUpXCIsXCLri4zrgpggKDg4NSB+IDg4OSlcIixcIuqwhO2RnCAoODg5IH4gODk4KVwiLFwi7Ie87YOA7J20ICg4OTggfiA5MDEpXCIsXCLsl5TquLAgKDkwMSB+IDkyMylcIixcIuyXlOy0iCAoOTIzIH4gOTMxKVwiLFwi7KGw7Zek7J20ICg5MzEgfiA5MzgpXCIsXCLrjbTqtZAgKDkzOCB+IDk0NylcIixcIuuNtOuetOy/oCAoOTQ3IH4gOTU3KVwiLFwi64207Yag7L+gICg5NTcgfiA5NjEpXCIsXCLsmKTsmYAgKDk2MSB+IDk2NClcIixcIuqzoO2YuCAoOTY0IH4gOTY4KVwiLFwi7JWI64KYICg5NjggfiA5NzApXCIsXCLrjbTroZzsv6AgKDk3MCB+IDk3MylcIixcIuuNtOyXlCAoOTczIH4gOTc2KVwiLFwi7KGw6rKQICg5NzYgfiA5NzgpXCIsXCLrjbTqspAgKDk3OCB+IDk4MylcIixcIuyXkOydtOqwhCAoOTgzIH4gOTg1KVwiLFwi6rCE64KYICg5ODUgfiA5ODcpXCIsXCLsl5DsnbTsl5QgKDk4NyB+IDk4OSlcIixcIuyXkOydtOyGjCAoOTg5IH4gOTkwKVwiLFwi7Ie865607L+gICg5OTAgfiA5OTUpXCIsXCLsobDthqDsv6AgKDk5NSB+IDk5OSlcIixcIuyhsO2YuCAoOTk5IH4gMTAwNClcIixcIuqwhOy9lCAoMTAwNCB+IDEwMTIpXCIsXCLsobDsmYAgKDEwMTIgfiAxMDE3KVwiLFwi6rCE64uMICgxMDE3IH4gMTAyMSlcIixcIuyngOyViCAoMTAyMSB+IDEwMjQpXCIsXCLrp4zso7wgKDEwMjQgfiAxMDI4KVwiLFwi7KGw6rKQICgxMDI4IH4gMTAzNylcIixcIuyhsOuetOy/oCAoMTAzNyB+IDEwNDApXCIsXCLsobDtgZAgKDEwNDAgfiAxMDQ0KVwiLFwi6rCE7Yag7L+gICgxMDQ0IH4gMTA0NilcIixcIuyXkOydtOyHvCAoMTA0NiB+IDEwNTMpXCIsXCLrjbTquLAgKDEwNTMgfiAxMDU4KVwiLFwi6rOg7Zek7J20ICgxMDU4IH4gMTA2NSlcIixcIuyngOuetOy/oCAoMTA2NSB+IDEwNjkpXCIsXCLsl5TtgZAgKDEwNjkgfiAxMDc0KVwiLFwi7KGw7Zi4ICgxMDc0IH4gMTA3NylcIixcIuyHvOuetOy/oCAoMTA3NyB+IDEwODEpXCIsXCLsl5DsnbTtmLggKDEwODEgfiAxMDg0KVwiLFwi7Jik7Yag7L+gICgxMDg0IH4gMTA4NylcIixcIuqwhOyngCAoMTA4NyB+IDEwOTQpXCIsXCLqsIDtmLggKDEwOTQgfiAxMDk2KVwiLFwi7JeQ7J207LSIICgxMDk2IH4gMTA5NylcIixcIuyhsO2GoOy/oCAoMTA5NyB+IDEwOTkpXCIsXCLqs6DsmYAgKDEwOTkgfiAxMTA0KVwiLFwi7KGw7KeAICgxMTA0IH4gMTEwNilcIixcIuqwgOyHvCAoMTEwNiB+IDExMDgpXCIsXCLrjbTri4wgKDExMDggfiAxMTEwKVwiLFwi64207JeQ7J20ICgxMTEwIH4gMTExMylcIixcIuyXkOydtO2BkCAoMTExMyB+IDExMTgpXCIsXCLqspDsl5DsnbQgKDExMTggfiAxMTIwKVwiLFwi7Zi47JWIICgxMTIwIH4gMTEyNClcIixcIuuNtOyngCAoMTEyNCB+IDExMjYpXCIsXCLri6TsnbTsp4AgKDExMjYgfiAxMTMxKVwiLFwi64207Ie8ICgxMTMxIH4gMTEzMilcIixcIuyhsOyHvCAoMTEzMiB+IDExMzUpXCIsXCLtmLjsl5QgKDExMzUgfiAxMTQxKVwiLFwi7JeQ7J207KeAICgxMTQxIH4gMTE0MilcIixcIuqzoOyngCAoMTE0MiB+IDExNDQpXCIsXCLrjbTsmpQgKDExNDQgfiAxMTQ1KVwiLFwi6rec7JWIICgxMTQ1IH4gMTE1MSlcIixcIuuLjO2OmOydtCAoMTE1MSB+IDExNTQpXCIsXCLqt5zso7wgKDExNTQgfiAxMTU2KVwiLFwi7Zi46rKQICgxMTU2IH4gMTE1OSlcIixcIu2XpOydtOyngCAoMTE1OSB+IDExNjApXCIsXCLsl5DsnbTrnrTsv6AgKDExNjAgfiAxMTYxKVwiLFwi7Jik7Zi4ICgxMTYxIH4gMTE2MylcIixcIuyhsOy5uCAoMTE2MyB+IDExNjUpXCIsXCLsl5DsnbTrp4wgKDExNjUgfiAxMTY2KVwiLFwi64uM64KcICgxMTY2IH4gMTE2OSlcIixcIuqwgOyYpCAoMTE2OSB+IDExNzEpXCIsXCLsobDslYggKDExNzEgfiAxMTc1KVwiLFwi7JWI6rKQICgxMTc1IH4gMTE3NylcIixcIuyngOyHvCAoMTE3NyB+IDExODEpXCIsXCLsmpTsmYAgKDExODEgfiAxMTgyKVwiLFwi7KO87JeQ7J20ICgxMTgyIH4gMTE4NClcIixcIuqykOuetOy/oCAoMTE4NCB+IDExODUpXCIsXCLrtoTsp4AgKDExODUgfiAxMTkwKVwiLFwi6rKQ7YGQICgxMTkwIH4gMTE5OSlcIixcIuyHvOyngCAoMTE5OSB+IDEyMDEpXCIsXCLqspDri4wgKDEyMDEgfiAxMjA0KVwiLFwi6rKQ7YGQICgxMjA0IH4gMTIwNilcIixcIuqykOyXkOydtCAoMTIwNiB+IDEyMDcpXCIsXCLsobDqspAgKDEyMDcgfiAxMjExKVwiLFwi6rKQ65607L+gICgxMjExIH4gMTIxMylcIixcIuqykO2PrCAoMTIxMyB+IDEyMTkpXCIsXCLsobDtgZAgKDEyMTkgfiAxMjIyKVwiLFwi7KGw7JikICgxMjIyIH4gMTIyNClcIixcIuqykOuLjCAoMTIyNCB+IDEyMjUpXCIsXCLqsIDroZzsv6AgKDEyMjUgfiAxMjI3KVwiLFwi7JWI7YWM7J20ICgxMjI3IH4gMTIyOSlcIixcIuqwhO2CpCAoMTIyOSB+IDEyMzIpXCIsXCLsobDsl5DsnbQgKDEyMzIgfiAxMjMzKVwiLFwi64207ZG47L+gICgxMjMzIH4gMTIzNClcIixcIuu2hOuetOy/oCAoMTIzNCB+IDEyMzUpXCIsXCLqsIDthYzsnbQgKDEyMzUgfiAxMjM4KVwiLFwi65607L+g64uMICgxMjM4IH4gMTIzOSlcIixcIuyXlOyYpCAoMTIzOSB+IDEyNDApXCIsXCLri4zsp4AgKDEyNDAgfiAxMjQzKVwiLFwi6rCE6rKQICgxMjQzIH4gMTI0NylcIixcIu2YuOyngCAoMTI0NyB+IDEyNDkpXCIsXCLqspDstIggKDEyNDkgfiAxMjU2KVwiLFwi6rOg6rKQICgxMjU2IH4gMTI1NylcIixcIuyHvOy5tCAoMTI1NyB+IDEyNTkpXCIsXCLsh7zqspAgKDEyNTkgfiAxMjYwKVwiLFwi67aE7JikICgxMjYwIH4gMTI2MSlcIixcIuqzoOy0iCAoMTI2MSB+IDEyNjQpXCIsXCLrtoTsl5DsnbQgKDEyNjQgfiAxMjc1KVwiLFwi6rKQ7KeAICgxMjc1IH4gMTI3OClcIixcIuqzoOyViCAoMTI3OCB+IDEyODgpXCIsXCLsh7zsmKQgKDEyODggfiAxMjkzKVwiLFwi7JeQ7J2064uMICgxMjkzIH4gMTI5OSlcIixcIuyHvOyViCAoMTI5OSB+IDEzMDIpXCIsXCLqspDqspAgKDEzMDIgfiAxMzAzKVwiLFwi6rCA6rKQICgxMzAzIH4gMTMwNilcIixcIuuPhOy/oOyngCAoMTMwNiB+IDEzMDgpXCIsXCLsl5Tsv4QgKDEzMDggfiAxMzExKVwiLFwi7Jik7LSIICgxMzExIH4gMTMxMilcIixcIuyHvOyZgCAoMTMxMiB+IDEzMTcpXCIsXCLrtoTtj6wgKDEzMTcgfiAxMzE5KVwiLFwi6rKQ7JikICgxMzE5IH4gMTMyMSlcIixcIuqykOy9lCAoMTMyMSB+IDEzMjQpXCIsXCLsh7zstpQgKDEzMjQgfiAxMzI2KVwiLFwi6rCA65607L+gICgxMzI2IH4gMTMyOSlcIixcIuqykO2GoOy/oCAoMTMyOSB+IDEzMzEpXCIsXCLqspDsvZQgKDEzMzEgfiAxMzM0KVwiLFwi6rKQ66y0ICgxMzM0IH4gMTMzNilcIixcIuyXlOqykCAoMTMzNiB+IDEzNDApXCIsXCLqs6DsvZTsv6AgKDEzNDAgfiAxMzQ2KVwiLFwi7Ie87Zek7J20ICgxMzQ2IH4gMTM3MClcIixcIuqykO2GoOy/oCAoMTM3MCB+IDEzNzIpXCIsXCLrtoTstpQgKDEzNzIgfiAxMzc1KVwiLFwi64207KO8ICgxMzc1IH4gMTM3OSlcIixcIuqzoOuetOy/oCAoMTM3OSB+IDEzODEpXCIsXCLqs6DsmYAgKDEzODEgfiAxMzg0KVwiLFwi6rKQ7LaUICgxMzg0IH4gMTM5MilcIixcIuuplOydtO2GoOy/oCAoMTM4NCB+IDEzODcpXCIsXCLqsIDsv4QgKDEzODcgfiAxMzg5KVwiLFwi6rOg7JikICgxMzg5IH4gMTM5MClcIixcIuuplOydtO2GoOy/oCAoMTM5MCB+IDEzOTQpXCIsXCLsmKTsl5DsnbQgKDEzOTQgfiAxNDI4KVwiLFwi7Ie87LSIICgxNDI4IH4gMTQyOSlcIixcIuyXkOydtOy/hCAoMTQyOSB+IDE0NDEpXCIsXCLqsIDtgqTsk7AgKDE0NDEgfiAxNDQ0KVwiLFwi67aE7JWIICgxNDQ0IH4gMTQ0OSlcIixcIu2YuO2GoOy/oCAoMTQ0OSB+IDE0NTIpXCIsXCLqtZDthqDsv6AgKDE0NTIgfiAxNDU1KVwiLFwi6rOg7Ie8ICgxNDU1IH4gMTQ1NylcIixcIuyhsOuhnOy/oCAoMTQ1NyB+IDE0NjApXCIsXCLqsITsh7wgKDE0NjAgfiAxNDY2KVwiLFwi67aE7Ie8ICgxNDY2IH4gMTQ2NylcIixcIuyYpOuLjCAoMTQ2NyB+IDE0NjkpXCIsXCLrtoTrqZTsnbQgKDE0NjkgfiAxNDg3KVwiLFwi7KGw7L+EICgxNDg3IH4gMTQ4OSk8XCIsXCLsl5TthqDsv6AgKDE0ODkgfiAxNDkyKVwiLFwi66mU7J207JikICgxNDkyIH4gMTUwMSlcIixcIuu2hO2CpCAoMTUwMSB+IDE1MDQpXCIsXCLsl5DsnbTsh7wgKDE1MDQgfiAxNTIxKVwiLFwi64uk7J207JeQ7J20ICgxNTIxIH4gMTUyOClcIixcIuq1kOuhnOy/oCAoMTUyOCB+IDE1MzIpXCIsXCLrjbTrtoQgKDE1MzIgfiAxNTU1KVwiLFwi6rOg7KeAICgxNTU1IH4gMTU1OClcIixcIuyXkOydtOuhnOy/oCAoMTU1OCB+IDE1NzApXCIsXCLqspDtgqQgKDE1NzAgfiAxNTczKVwiLFwi64207Ie8ICgxNTczIH4gMTU5MilcIixcIuu2hOuhnOy/oCAoMTU5MiB+IDE1OTYpXCIsXCLqsozsnbTstIggKDE1OTYgfiAxNjE1KVwiLFwi6rKQ64KYICgxNjE1IH4gMTYyNClcIixcIuqwhOyXkOydtCAoMTYyNCB+IDE2NDQpXCIsXCLsh7ztmLggKDE2NDQgfiAxNjQ4KVwiLFwi6rKM7J207JWIICgxNjQ4IH4gMTY1MilcIixcIuyhsOyYpCAoMTY1MiB+IDE2NTUpXCIsXCLrqZTsnbTroIjtgqQgKDE2NTUgfiAxNjU4KVwiLFwi66eM7KeAICgxNjU4IH4gMTY2MSlcIixcIuqwhOu2hCAoMTY2MSB+IDE2NzMpXCIsXCLsl5Ttj6wgKDE2NzMgfiAxNjgxKVwiLFwi642064KYICgxNjgxIH4gMTY4NClcIixcIuyhsOy/hCAoMTY4NCB+IDE2ODgpXCIsXCLqspDroZzsv6AgKDE2ODggfiAxNzA0KVwiLFwi7Zi47JeQ7J20ICgxNzA0IH4gMTcxMSlcIixcIuyHvO2GoOy/oCAoMTcxMSB+IDE3MTYpXCIsXCLqtZDtmLggKDE3MTYgfiAxNzM2KVwiLFwi6rKQ67aEICgxNzM2IH4gMTc0MSlcIixcIuqwhO2PrCAoMTc0MSB+IDE3NDQpXCIsXCLsl5Tsv4QgKDE3NDQgfiAxNzQ4KVwiLFwi6rCE7JeUICgxNzQ4IH4gMTc1MSlcIixcIu2YuOugiO2CpCAoMTc1MSB+IDE3NjQpXCIsXCLrqZTsnbTsmYAgKDE3NjQgfiAxNzcyKVwiLFwi7JWI7JeQ7J20ICgxNzcyIH4gMTc4MSlcIixcIuuNtOuplOydtCAoMTc4MSB+IDE3ODkpXCIsXCLqsITshLjsnbQgKDE3ODkgfiAxODAxKVwiLFwi6rWQ7JmAICgxODAxIH4gMTgwNClcIixcIuu2hOy5tCAoMTgwNCB+IDE4MTgpXCIsXCLrtoTshLjsnbQgKDE4MTggfiAxODMwKVwiLFwi64207Y+sICgxODMwIH4gMTg0NClcIixcIuqzoOy5tCAoMTg0NCB+IDE4NDgpXCIsXCLqsIDsl5DsnbQgKDE4NDggfiAxODU0KVwiLFwi7JWI7IS47J20ICgxODU0IH4gMTg2MClcIixcIuunjOyXlCAoMTg2MCB+IDE4NjEpXCIsXCLrtoTtgZAgKDE4NjEgfiAxODY0KVwiLFwi6rKQ7KeAICgxODY0IH4gMTg2NSlcIixcIuqyjOydtOyYpCAoMTg2NSB+IDE4NjgpXCIsXCLrqZTsnbTsp4BcIixcIuuLpOydtOyHvFwiLFwi7Ie87JmAXCIsXCLtl6TsnbTshLjsnbRcIl0sbG9uZzpbXCLri6TsnbTsubQgKDY0NSB+IDY1MClcIixcIu2VmOy/oOy5mCAoNjUwIH4gNjcxKVwiLFwi7ZWY7L+g7Zi4ICg2NzIgfiA2ODYpXCIsXCLsiojstIggKDY4NiB+IDcwMSlcIixcIuuLpOydtO2YuCAoNzAxIH4gNzA0KVwiLFwi6rKM7J207Jq0ICg3MDQgfiA3MDgpXCIsXCLsmYDrj4QgKDcwOCB+IDcxNSlcIixcIuugiOydtO2CpCAoNzE1IH4gNzE3KVwiLFwi7JqU66GcICg3MTcgfiA3MjQpXCIsXCLsp4TtgqQgKDcyNCB+IDcyOSlcIixcIuuNtO2RnCAoNzI5IH4gNzQ5KVwiLFwi64207ZGc7Lm47Y+sICg3NDkgfiA3NDkpXCIsXCLrjbTtkZzsh7ztmLggKDc0OSB+IDc1NylcIixcIuuNtO2RnO2YuOyngCAoNzU3IH4gNzY1KVwiLFwi64207ZGc7KeE6rOgICg3NjUgfiA3NjcpXCIsXCLsp4Tqs6DsvIDsnbTsmrQgKDc2NyB+IDc3MClcIixcIu2YuO2CpCAoNzcwIH4gNzgwKVwiLFwi64207JikICg3ODEgfiA3ODIpXCIsXCLsl5TrnrTsv6AgKDc4MiB+IDgwNilcIixcIuuLpOydtOuPhCAoODA2IH4gODEwKVwiLFwi6rOg64uMICg4MTAgfiA4MjQpXCIsXCLrjbTstIggKDgyNCB+IDgzNClcIixcIuyhsOyZgCAoODM0IH4gODQ4KVwiLFwi6rCA7Ie8ICg4NDggfiA4NTEpXCIsXCLri4zso7wgKDg1MSB+IDg1NClcIixcIuyCrOydtOy9lCAoODU0IH4gODU3KVwiLFwi642064KcICg4NTcgfiA4NTkpXCIsXCLsobDqsIQgKDg1OSB+IDg3NylcIixcIuqwhOq1kCAoODc3IH4gODg1KVwiLFwi64uM64KYICg4ODUgfiA4ODkpXCIsXCLqsITtkZwgKDg4OSB+IDg5OClcIixcIuyHvO2DgOydtCAoODk4IH4gOTAxKVwiLFwi7JeU6riwICg5MDEgfiA5MjMpXCIsXCLsl5TstIggKDkyMyB+IDkzMSlcIixcIuyhsO2XpOydtCAoOTMxIH4gOTM4KVwiLFwi64206rWQICg5MzggfiA5NDcpXCIsXCLrjbTrnrTsv6AgKDk0NyB+IDk1NylcIixcIuuNtO2GoOy/oCAoOTU3IH4gOTYxKVwiLFwi7Jik7JmAICg5NjEgfiA5NjQpXCIsXCLqs6DtmLggKDk2NCB+IDk2OClcIixcIuyViOuCmCAoOTY4IH4gOTcwKVwiLFwi642066Gc7L+gICg5NzAgfiA5NzMpXCIsXCLrjbTsl5QgKDk3MyB+IDk3NilcIixcIuyhsOqykCAoOTc2IH4gOTc4KVwiLFwi64206rKQICg5NzggfiA5ODMpXCIsXCLsl5DsnbTqsIQgKDk4MyB+IDk4NSlcIixcIuqwhOuCmCAoOTg1IH4gOTg3KVwiLFwi7JeQ7J207JeUICg5ODcgfiA5ODkpXCIsXCLsl5DsnbTshowgKDk4OSB+IDk5MClcIixcIuyHvOuetOy/oCAoOTkwIH4gOTk1KVwiLFwi7KGw7Yag7L+gICg5OTUgfiA5OTkpXCIsXCLsobDtmLggKDk5OSB+IDEwMDQpXCIsXCLqsITsvZQgKDEwMDQgfiAxMDEyKVwiLFwi7KGw7JmAICgxMDEyIH4gMTAxNylcIixcIuqwhOuLjCAoMTAxNyB+IDEwMjEpXCIsXCLsp4DslYggKDEwMjEgfiAxMDI0KVwiLFwi66eM7KO8ICgxMDI0IH4gMTAyOClcIixcIuyhsOqykCAoMTAyOCB+IDEwMzcpXCIsXCLsobDrnrTsv6AgKDEwMzcgfiAxMDQwKVwiLFwi7KGw7YGQICgxMDQwIH4gMTA0NClcIixcIuqwhO2GoOy/oCAoMTA0NCB+IDEwNDYpXCIsXCLsl5DsnbTsh7wgKDEwNDYgfiAxMDUzKVwiLFwi64206riwICgxMDUzIH4gMTA1OClcIixcIuqzoO2XpOydtCAoMTA1OCB+IDEwNjUpXCIsXCLsp4DrnrTsv6AgKDEwNjUgfiAxMDY5KVwiLFwi7JeU7YGQICgxMDY5IH4gMTA3NClcIixcIuyhsO2YuCAoMTA3NCB+IDEwNzcpXCIsXCLsh7zrnrTsv6AgKDEwNzcgfiAxMDgxKVwiLFwi7JeQ7J207Zi4ICgxMDgxIH4gMTA4NClcIixcIuyYpO2GoOy/oCAoMTA4NCB+IDEwODcpXCIsXCLqsITsp4AgKDEwODcgfiAxMDk0KVwiLFwi6rCA7Zi4ICgxMDk0IH4gMTA5NilcIixcIuyXkOydtOy0iCAoMTA5NiB+IDEwOTcpXCIsXCLsobDthqDsv6AgKDEwOTcgfiAxMDk5KVwiLFwi6rOg7JmAICgxMDk5IH4gMTEwNClcIixcIuyhsOyngCAoMTEwNCB+IDExMDYpXCIsXCLqsIDsh7wgKDExMDYgfiAxMTA4KVwiLFwi642064uMICgxMTA4IH4gMTExMClcIixcIuuNtOyXkOydtCAoMTExMCB+IDExMTMpXCIsXCLsl5DsnbTtgZAgKDExMTMgfiAxMTE4KVwiLFwi6rKQ7JeQ7J20ICgxMTE4IH4gMTEyMClcIixcIu2YuOyViCAoMTEyMCB+IDExMjQpXCIsXCLrjbTsp4AgKDExMjQgfiAxMTI2KVwiLFwi64uk7J207KeAICgxMTI2IH4gMTEzMSlcIixcIuuNtOyHvCAoMTEzMSB+IDExMzIpXCIsXCLsobDsh7wgKDExMzIgfiAxMTM1KVwiLFwi7Zi47JeUICgxMTM1IH4gMTE0MSlcIixcIuyXkOydtOyngCAoMTE0MSB+IDExNDIpXCIsXCLqs6Dsp4AgKDExNDIgfiAxMTQ0KVwiLFwi64207JqUICgxMTQ0IH4gMTE0NSlcIixcIuq3nOyViCAoMTE0NSB+IDExNTEpXCIsXCLri4ztjpjsnbQgKDExNTEgfiAxMTU0KVwiLFwi6rec7KO8ICgxMTU0IH4gMTE1NilcIixcIu2YuOqykCAoMTE1NiB+IDExNTkpXCIsXCLtl6TsnbTsp4AgKDExNTkgfiAxMTYwKVwiLFwi7JeQ7J2065607L+gICgxMTYwIH4gMTE2MSlcIixcIuyYpO2YuCAoMTE2MSB+IDExNjMpXCIsXCLsobDsubggKDExNjMgfiAxMTY1KVwiLFwi7JeQ7J2066eMICgxMTY1IH4gMTE2NilcIixcIuuLjOuCnCAoMTE2NiB+IDExNjkpXCIsXCLqsIDsmKQgKDExNjkgfiAxMTcxKVwiLFwi7KGw7JWIICgxMTcxIH4gMTE3NSlcIixcIuyViOqykCAoMTE3NSB+IDExNzcpXCIsXCLsp4Dsh7wgKDExNzcgfiAxMTgxKVwiLFwi7JqU7JmAICgxMTgxIH4gMTE4MilcIixcIuyjvOyXkOydtCAoMTE4MiB+IDExODQpXCIsXCLqspDrnrTsv6AgKDExODQgfiAxMTg1KVwiLFwi67aE7KeAICgxMTg1IH4gMTE5MClcIixcIuqykO2BkCAoMTE5MCB+IDExOTkpXCIsXCLsh7zsp4AgKDExOTkgfiAxMjAxKVwiLFwi6rKQ64uMICgxMjAxIH4gMTIwNClcIixcIuqykO2BkCAoMTIwNCB+IDEyMDYpXCIsXCLqspDsl5DsnbQgKDEyMDYgfiAxMjA3KVwiLFwi7KGw6rKQICgxMjA3IH4gMTIxMSlcIixcIuqykOuetOy/oCAoMTIxMSB+IDEyMTMpXCIsXCLqspDtj6wgKDEyMTMgfiAxMjE5KVwiLFwi7KGw7YGQICgxMjE5IH4gMTIyMilcIixcIuyhsOyYpCAoMTIyMiB+IDEyMjQpXCIsXCLqspDri4wgKDEyMjQgfiAxMjI1KVwiLFwi6rCA66Gc7L+gICgxMjI1IH4gMTIyNylcIixcIuyViO2FjOydtCAoMTIyNyB+IDEyMjkpXCIsXCLqsITtgqQgKDEyMjkgfiAxMjMyKVwiLFwi7KGw7JeQ7J20ICgxMjMyIH4gMTIzMylcIixcIuuNtO2RuOy/oCAoMTIzMyB+IDEyMzQpXCIsXCLrtoTrnrTsv6AgKDEyMzQgfiAxMjM1KVwiLFwi6rCA7YWM7J20ICgxMjM1IH4gMTIzOClcIixcIuuetOy/oOuLjCAoMTIzOCB+IDEyMzkpXCIsXCLsl5TsmKQgKDEyMzkgfiAxMjQwKVwiLFwi64uM7KeAICgxMjQwIH4gMTI0MylcIixcIuqwhOqykCAoMTI0MyB+IDEyNDcpXCIsXCLtmLjsp4AgKDEyNDcgfiAxMjQ5KVwiLFwi6rKQ7LSIICgxMjQ5IH4gMTI1NilcIixcIuqzoOqykCAoMTI1NiB+IDEyNTcpXCIsXCLsh7zsubQgKDEyNTcgfiAxMjU5KVwiLFwi7Ie86rKQICgxMjU5IH4gMTI2MClcIixcIuu2hOyYpCAoMTI2MCB+IDEyNjEpXCIsXCLqs6DstIggKDEyNjEgfiAxMjY0KVwiLFwi67aE7JeQ7J20ICgxMjY0IH4gMTI3NSlcIixcIuqykOyngCAoMTI3NSB+IDEyNzgpXCIsXCLqs6DslYggKDEyNzggfiAxMjg4KVwiLFwi7Ie87JikICgxMjg4IH4gMTI5MylcIixcIuyXkOydtOuLjCAoMTI5MyB+IDEyOTkpXCIsXCLsh7zslYggKDEyOTkgfiAxMzAyKVwiLFwi6rKQ6rKQICgxMzAyIH4gMTMwMylcIixcIuqwgOqykCAoMTMwMyB+IDEzMDYpXCIsXCLrj4Tsv6Dsp4AgKDEzMDYgfiAxMzA4KVwiLFwi7JeU7L+EICgxMzA4IH4gMTMxMSlcIixcIuyYpOy0iCAoMTMxMSB+IDEzMTIpXCIsXCLsh7zsmYAgKDEzMTIgfiAxMzE3KVwiLFwi67aE7Y+sICgxMzE3IH4gMTMxOSlcIixcIuqykOyYpCAoMTMxOSB+IDEzMjEpXCIsXCLqspDsvZQgKDEzMjEgfiAxMzI0KVwiLFwi7Ie87LaUICgxMzI0IH4gMTMyNilcIixcIuqwgOuetOy/oCAoMTMyNiB+IDEzMjkpXCIsXCLqspDthqDsv6AgKDEzMjkgfiAxMzMxKVwiLFwi6rKQ7L2UICgxMzMxIH4gMTMzNClcIixcIuqykOustCAoMTMzNCB+IDEzMzYpXCIsXCLsl5TqspAgKDEzMzYgfiAxMzQwKVwiLFwi6rOg7L2U7L+gICgxMzQwIH4gMTM0NilcIixcIuyHvO2XpOydtCAoMTM0NiB+IDEzNzApXCIsXCLqspDthqDsv6AgKDEzNzAgfiAxMzcyKVwiLFwi67aE7LaUICgxMzcyIH4gMTM3NSlcIixcIuuNtOyjvCAoMTM3NSB+IDEzNzkpXCIsXCLqs6DrnrTsv6AgKDEzNzkgfiAxMzgxKVwiLFwi6rOg7JmAICgxMzgxIH4gMTM4NClcIixcIuqykOy2lCAoMTM4NCB+IDEzOTIpXCIsXCLrqZTsnbTthqDsv6AgKDEzODQgfiAxMzg3KVwiLFwi6rCA7L+EICgxMzg3IH4gMTM4OSlcIixcIuqzoOyYpCAoMTM4OSB+IDEzOTApXCIsXCLrqZTsnbTthqDsv6AgKDEzOTAgfiAxMzk0KVwiLFwi7Jik7JeQ7J20ICgxMzk0IH4gMTQyOClcIixcIuyHvOy0iCAoMTQyOCB+IDE0MjkpXCIsXCLsl5DsnbTsv4QgKDE0MjkgfiAxNDQxKVwiLFwi6rCA7YKk7JOwICgxNDQxIH4gMTQ0NClcIixcIuu2hOyViCAoMTQ0NCB+IDE0NDkpXCIsXCLtmLjthqDsv6AgKDE0NDkgfiAxNDUyKVwiLFwi6rWQ7Yag7L+gICgxNDUyIH4gMTQ1NSlcIixcIuqzoOyHvCAoMTQ1NSB+IDE0NTcpXCIsXCLsobDroZzsv6AgKDE0NTcgfiAxNDYwKVwiLFwi6rCE7Ie8ICgxNDYwIH4gMTQ2NilcIixcIuu2hOyHvCAoMTQ2NiB+IDE0NjcpXCIsXCLsmKTri4wgKDE0NjcgfiAxNDY5KVwiLFwi67aE66mU7J20ICgxNDY5IH4gMTQ4NylcIixcIuyhsOy/hCAoMTQ4NyB+IDE0ODkpPFwiLFwi7JeU7Yag7L+gICgxNDg5IH4gMTQ5MilcIixcIuuplOydtOyYpCAoMTQ5MiB+IDE1MDEpXCIsXCLrtoTtgqQgKDE1MDEgfiAxNTA0KVwiLFwi7JeQ7J207Ie8ICgxNTA0IH4gMTUyMSlcIixcIuuLpOydtOyXkOydtCAoMTUyMSB+IDE1MjgpXCIsXCLqtZDroZzsv6AgKDE1MjggfiAxNTMyKVwiLFwi642067aEICgxNTMyIH4gMTU1NSlcIixcIuqzoOyngCAoMTU1NSB+IDE1NTgpXCIsXCLsl5DsnbTroZzsv6AgKDE1NTggfiAxNTcwKVwiLFwi6rKQ7YKkICgxNTcwIH4gMTU3MylcIixcIuuNtOyHvCAoMTU3MyB+IDE1OTIpXCIsXCLrtoTroZzsv6AgKDE1OTIgfiAxNTk2KVwiLFwi6rKM7J207LSIICgxNTk2IH4gMTYxNSlcIixcIuqykOuCmCAoMTYxNSB+IDE2MjQpXCIsXCLqsITsl5DsnbQgKDE2MjQgfiAxNjQ0KVwiLFwi7Ie87Zi4ICgxNjQ0IH4gMTY0OClcIixcIuqyjOydtOyViCAoMTY0OCB+IDE2NTIpXCIsXCLsobDsmKQgKDE2NTIgfiAxNjU1KVwiLFwi66mU7J2066CI7YKkICgxNjU1IH4gMTY1OClcIixcIuunjOyngCAoMTY1OCB+IDE2NjEpXCIsXCLqsITrtoQgKDE2NjEgfiAxNjczKVwiLFwi7JeU7Y+sICgxNjczIH4gMTY4MSlcIixcIuuNtOuCmCAoMTY4MSB+IDE2ODQpXCIsXCLsobDsv4QgKDE2ODQgfiAxNjg4KVwiLFwi6rKQ66Gc7L+gICgxNjg4IH4gMTcwNClcIixcIu2YuOyXkOydtCAoMTcwNCB+IDE3MTEpXCIsXCLsh7zthqDsv6AgKDE3MTEgfiAxNzE2KVwiLFwi6rWQ7Zi4ICgxNzE2IH4gMTczNilcIixcIuqykOu2hCAoMTczNiB+IDE3NDEpXCIsXCLqsITtj6wgKDE3NDEgfiAxNzQ0KVwiLFwi7JeU7L+EICgxNzQ0IH4gMTc0OClcIixcIuqwhOyXlCAoMTc0OCB+IDE3NTEpXCIsXCLtmLjroIjtgqQgKDE3NTEgfiAxNzY0KVwiLFwi66mU7J207JmAICgxNzY0IH4gMTc3MilcIixcIuyViOyXkOydtCAoMTc3MiB+IDE3ODEpXCIsXCLrjbTrqZTsnbQgKDE3ODEgfiAxNzg5KVwiLFwi6rCE7IS47J20ICgxNzg5IH4gMTgwMSlcIixcIuq1kOyZgCAoMTgwMSB+IDE4MDQpXCIsXCLrtoTsubQgKDE4MDQgfiAxODE4KVwiLFwi67aE7IS47J20ICgxODE4IH4gMTgzMClcIixcIuuNtO2PrCAoMTgzMCB+IDE4NDQpXCIsXCLqs6DsubQgKDE4NDQgfiAxODQ4KVwiLFwi6rCA7JeQ7J20ICgxODQ4IH4gMTg1NClcIixcIuyViOyEuOydtCAoMTg1NCB+IDE4NjApXCIsXCLrp4zsl5QgKDE4NjAgfiAxODYxKVwiLFwi67aE7YGQICgxODYxIH4gMTg2NClcIixcIuqykOyngCAoMTg2NCB+IDE4NjUpXCIsXCLqsozsnbTsmKQgKDE4NjUgfiAxODY4KVwiLFwi66mU7J207KeAXCIsXCLri6TsnbTsh7xcIixcIuyHvOyZgFwiLFwi7Zek7J207IS47J20XCJdfSxkYXlQZXJpb2RzOnthbTpcIuyYpOyghFwiLHBtOlwi7Jik7ZuEXCJ9fSxwZXJzaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIu2ZlOultOuwlOuUmFwiLFwi7Jik66W065SU67Kg7Zek7Ims7Yq4XCIsXCLtmLjrpbTri6Trk5xcIixcIu2LsOultFwiLFwi66qo66W064uk65OcXCIsXCLsg6TtnZDrpqzrsJTrpbRcIixcIuuplO2dkOultFwiLFwi7JWE67CYXCIsXCLslYTsnpDrpbRcIixcIuuLpOydtFwiLFwi67CU7Z2Q66eMXCIsXCLsl5DsiqTtjJDrk5xcIl0sbG9uZzpbXCLtmZTrpbTrsJTrlJhcIixcIuyYpOultOuUlOuyoO2XpOyJrO2KuFwiLFwi7Zi466W064uk65OcXCIsXCLti7DrpbRcIixcIuuqqOultOuLpOuTnFwiLFwi7IOk7Z2Q66as67CU66W0XCIsXCLrqZTtnZDrpbRcIixcIuyVhOuwmFwiLFwi7JWE7J6Q66W0XCIsXCLri6TsnbRcIixcIuuwlO2dkOunjFwiLFwi7JeQ7Iqk7YyQ65OcXCJdfSxkYXlzOntuYXJyb3c6W1wi7J28XCIsXCLsm5RcIixcIu2ZlFwiLFwi7IiYXCIsXCLrqqlcIixcIuq4iFwiLFwi7YagXCJdLHNob3J0OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxsb25nOltcIuydvOyalOydvFwiLFwi7JuU7JqU7J28XCIsXCLtmZTsmpTsnbxcIixcIuyImOyalOydvFwiLFwi66qp7JqU7J28XCIsXCLquIjsmpTsnbxcIixcIu2GoOyalOydvFwiXX0sZXJhczp7bmFycm93OltcIkFQXCJdLHNob3J0OltcIkFQXCJdLGxvbmc6W1wiQVBcIl19LGRheVBlcmlvZHM6e2FtOlwi7Jik7KCEXCIscG06XCLsmKTtm4RcIn19LHJvYzp7bW9udGhzOntuYXJyb3c6W1wiMeyblFwiLFwiMuyblFwiLFwiM+yblFwiLFwiNOyblFwiLFwiNeyblFwiLFwiNuyblFwiLFwiN+yblFwiLFwiOOyblFwiLFwiOeyblFwiLFwiMTDsm5RcIixcIjEx7JuUXCIsXCIxMuyblFwiXSxzaG9ydDpbXCIx7JuUXCIsXCIy7JuUXCIsXCIz7JuUXCIsXCI07JuUXCIsXCI17JuUXCIsXCI27JuUXCIsXCI37JuUXCIsXCI47JuUXCIsXCI57JuUXCIsXCIxMOyblFwiLFwiMTHsm5RcIixcIjEy7JuUXCJdLGxvbmc6W1wiMeyblFwiLFwiMuyblFwiLFwiM+yblFwiLFwiNOyblFwiLFwiNeyblFwiLFwiNuyblFwiLFwiN+yblFwiLFwiOOyblFwiLFwiOeyblFwiLFwiMTDsm5RcIixcIjEx7JuUXCIsXCIxMuyblFwiXX0sZGF5czp7bmFycm93OltcIuydvFwiLFwi7JuUXCIsXCLtmZRcIixcIuyImFwiLFwi66qpXCIsXCLquIhcIixcIu2GoFwiXSxzaG9ydDpbXCLsnbxcIixcIuyblFwiLFwi7ZmUXCIsXCLsiJhcIixcIuuqqVwiLFwi6riIXCIsXCLthqBcIl0sbG9uZzpbXCLsnbzsmpTsnbxcIixcIuyblOyalOydvFwiLFwi7ZmU7JqU7J28XCIsXCLsiJjsmpTsnbxcIixcIuuqqeyalOydvFwiLFwi6riI7JqU7J28XCIsXCLthqDsmpTsnbxcIl19LGVyYXM6e25hcnJvdzpbXCLspJHtmZTrr7zqta3soIRcIixcIuykke2ZlOuvvOq1rVwiXSxzaG9ydDpbXCLspJHtmZTrr7zqta3soIRcIixcIuykke2ZlOuvvOq1rVwiXSxsb25nOltcIuykke2ZlOuvvOq1reyghFwiLFwi7KSR7ZmU66+86rWtXCJdfSxkYXlQZXJpb2RzOnthbTpcIuyYpOyghFwiLHBtOlwi7Jik7ZuEXCJ9fX19LG51bWJlcjp7bnU6W1wibGF0blwiXSxwYXR0ZXJuczp7ZGVjaW1hbDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9XCJ9LGN1cnJlbmN5Ontwb3NpdGl2ZVBhdHRlcm46XCJ7Y3VycmVuY3l9e251bWJlcn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtjdXJyZW5jeX17bnVtYmVyfVwifSxwZXJjZW50Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfXtwZXJjZW50U2lnbn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9e3BlcmNlbnRTaWdufVwifX0sc3ltYm9sczp7bGF0bjp7ZGVjaW1hbDpcIi5cIixncm91cDpcIixcIixuYW46XCJOYU5cIixwbHVzU2lnbjpcIitcIixtaW51c1NpZ246XCItXCIscGVyY2VudFNpZ246XCIlXCIsaW5maW5pdHk6XCLiiJ5cIn19LGN1cnJlbmNpZXM6e0FVRDpcIkFVJFwiLEJSTDpcIlIkXCIsQ0FEOlwiQ0EkXCIsQ05ZOlwiQ07CpVwiLEVVUjpcIuKCrFwiLEdCUDpcIsKjXCIsSEtEOlwiSEskXCIsSUxTOlwi4oKqXCIsSU5SOlwi4oK5XCIsSlBZOlwiSlDCpVwiLEtSVzpcIuKCqVwiLE1YTjpcIk1YJFwiLE5aRDpcIk5aJFwiLFRIQjpcIuC4v1wiLFRXRDpcIk5UJFwiLFVTRDpcIlVTJFwiLFZORDpcIuKCq1wiLFhBRjpcIkZDRkFcIixYQ0Q6XCJFQyRcIixYT0Y6XCJDRkFcIixYUEY6XCJDRlBGXCJ9fX0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2ludGwvbG9jYWxlLWRhdGEvanNvbnAva28uanNcbi8vIG1vZHVsZSBpZCA9IDIyNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiSW50bFBvbHlmaWxsLl9fYWRkTG9jYWxlRGF0YSh7bG9jYWxlOlwibmxcIixkYXRlOntjYTpbXCJncmVnb3J5XCIsXCJidWRkaGlzdFwiLFwiY2hpbmVzZVwiLFwiY29wdGljXCIsXCJkYW5naVwiLFwiZXRoaW9hYVwiLFwiZXRoaW9waWNcIixcImdlbmVyaWNcIixcImhlYnJld1wiLFwiaW5kaWFuXCIsXCJpc2xhbWljXCIsXCJpc2xhbWljY1wiLFwiamFwYW5lc2VcIixcInBlcnNpYW5cIixcInJvY1wiXSxob3VyTm8wOnRydWUsaG91cjEyOmZhbHNlLGZvcm1hdHM6e3Nob3J0OlwiezF9IHswfVwiLG1lZGl1bTpcInsxfSB7MH1cIixmdWxsOlwiezF9IHswfVwiLGxvbmc6XCJ7MX0gezB9XCIsYXZhaWxhYmxlRm9ybWF0czp7XCJkXCI6XCJkXCIsXCJFXCI6XCJjY2NcIixFZDpcIkUgZFwiLEVobTpcIkUgaDptbSBhXCIsRUhtOlwiRSBISDptbVwiLEVobXM6XCJFIGg6bW06c3MgYVwiLEVIbXM6XCJFIEhIOm1tOnNzXCIsR3k6XCJ5IEdcIixHeU1NTTpcIk1NTSB5IEdcIixHeU1NTWQ6XCJkIE1NTSB5IEdcIixHeU1NTUVkOlwiRSBkIE1NTSB5IEdcIixcImhcIjpcImggYVwiLFwiSFwiOlwiSEhcIixobTpcImg6bW0gYVwiLEhtOlwiSEg6bW1cIixobXM6XCJoOm1tOnNzIGFcIixIbXM6XCJISDptbTpzc1wiLGhtc3Y6XCJoOm1tOnNzIGEgdlwiLEhtc3Y6XCJISDptbTpzcyB2XCIsaG12OlwiaDptbSBhIHZcIixIbXY6XCJISDptbSB2XCIsXCJNXCI6XCJMXCIsTWQ6XCJkLU1cIixNRWQ6XCJFIGQtTVwiLE1NTTpcIkxMTFwiLE1NTWQ6XCJkIE1NTVwiLE1NTUVkOlwiRSBkIE1NTVwiLE1NTU1kOlwiZCBNTU1NXCIsbXM6XCJtbTpzc1wiLFwieVwiOlwieVwiLHlNOlwiTS15XCIseU1kOlwiZC1NLXlcIix5TUVkOlwiRSBkLU0teVwiLHlNTU06XCJNTU0geVwiLHlNTU1kOlwiZCBNTU0geVwiLHlNTU1FZDpcIkUgZCBNTU0geVwiLHlNTU1NOlwiTU1NTSB5XCIseVFRUTpcIlFRUSB5XCIseVFRUVE6XCJRUVFRIHlcIn0sZGF0ZUZvcm1hdHM6e3lNTU1NRUVFRWQ6XCJFRUVFIGQgTU1NTSB5XCIseU1NTU1kOlwiZCBNTU1NIHlcIix5TU1NZDpcImQgTU1NIHlcIix5TWQ6XCJkZC1NTS15eVwifSx0aW1lRm9ybWF0czp7aG1tc3N6enp6OlwiSEg6bW06c3Mgenp6elwiLGhtc3o6XCJISDptbTpzcyB6XCIsaG1zOlwiSEg6bW06c3NcIixobTpcIkhIOm1tXCJ9fSxjYWxlbmRhcnM6e2J1ZGRoaXN0Onttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImphbi5cIixcImZlYi5cIixcIm1ydC5cIixcImFwci5cIixcIm1laVwiLFwianVuLlwiLFwianVsLlwiLFwiYXVnLlwiLFwic2VwLlwiLFwib2t0LlwiLFwibm92LlwiLFwiZGVjLlwiXSxsb25nOltcImphbnVhcmlcIixcImZlYnJ1YXJpXCIsXCJtYWFydFwiLFwiYXByaWxcIixcIm1laVwiLFwianVuaVwiLFwianVsaVwiLFwiYXVndXN0dXNcIixcInNlcHRlbWJlclwiLFwib2t0b2JlclwiLFwibm92ZW1iZXJcIixcImRlY2VtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiWlwiLFwiTVwiLFwiRFwiLFwiV1wiLFwiRFwiLFwiVlwiLFwiWlwiXSxzaG9ydDpbXCJ6b1wiLFwibWFcIixcImRpXCIsXCJ3b1wiLFwiZG9cIixcInZyXCIsXCJ6YVwiXSxsb25nOltcInpvbmRhZ1wiLFwibWFhbmRhZ1wiLFwiZGluc2RhZ1wiLFwid29lbnNkYWdcIixcImRvbmRlcmRhZ1wiLFwidnJpamRhZ1wiLFwiemF0ZXJkYWdcIl19LGVyYXM6e25hcnJvdzpbXCJCRVwiXSxzaG9ydDpbXCJCRVwiXSxsb25nOltcIkJFXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19LGNoaW5lc2U6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wibW5kIDFcIixcIm1uZCAyXCIsXCJtbmQgM1wiLFwibW5kIDRcIixcIm1uZCA1XCIsXCJtbmQgNlwiLFwibW5kIDdcIixcIm1uZCA4XCIsXCJtbmQgOVwiLFwibW5kIDEwXCIsXCJtbmQgMTFcIixcIm1uZCAxMlwiXSxsb25nOltcIm1hYW5kIDFcIixcIm1hYW5kIDJcIixcIm1hYW5kIDNcIixcIm1hYW5kIDRcIixcIm1hYW5kIDVcIixcIm1hYW5kIDZcIixcIm1hYW5kIDdcIixcIm1hYW5kIDhcIixcIm1hYW5kIDlcIixcIm1hYW5kIDEwXCIsXCJtYWFuZCAxMVwiLFwibWFhbmQgMTJcIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZGF5UGVyaW9kczp7YW06XCJhLm0uXCIscG06XCJwLm0uXCJ9fSxjb3B0aWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIixcIjEzXCJdLHNob3J0OltcIlR1dFwiLFwiQmFiYWhcIixcIkhhdHVyXCIsXCJLaXlhaGtcIixcIlR1YmFoXCIsXCJBbXNoaXJcIixcIkJhcmFtaGF0XCIsXCJCYXJhbXVuZGFoXCIsXCJCYXNoYW5zXCIsXCJCYeKAmXVuYWhcIixcIkFiaWJcIixcIk1pc3JhXCIsXCJOYXNpXCJdLGxvbmc6W1wiVHV0XCIsXCJCYWJhaFwiLFwiSGF0dXJcIixcIktpeWFoa1wiLFwiVHViYWhcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtdW5kYWhcIixcIkJhc2hhbnNcIixcIkJh4oCZdW5haFwiLFwiQWJpYlwiLFwiTWlzcmFcIixcIk5hc2lcIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wibW5kIDFcIixcIm1uZCAyXCIsXCJtbmQgM1wiLFwibW5kIDRcIixcIm1uZCA1XCIsXCJtbmQgNlwiLFwibW5kIDdcIixcIm1uZCA4XCIsXCJtbmQgOVwiLFwibW5kIDEwXCIsXCJtbmQgMTFcIixcIm1uZCAxMlwiXSxsb25nOltcIm1hYW5kIDFcIixcIm1hYW5kIDJcIixcIm1hYW5kIDNcIixcIm1hYW5kIDRcIixcIm1hYW5kIDVcIixcIm1hYW5kIDZcIixcIm1hYW5kIDdcIixcIm1hYW5kIDhcIixcIm1hYW5kIDlcIixcIm1hYW5kIDEwXCIsXCJtYWFuZCAxMVwiLFwibWFhbmQgMTJcIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZGF5UGVyaW9kczp7YW06XCJhLm0uXCIscG06XCJwLm0uXCJ9fSxldGhpb3BpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTcOkc2vDpHLDpG1cIixcIlRlcWVtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVOKAmWVyXCIsXCJZw6RrYXRpdFwiLFwiTcOkZ2FiaXRcIixcIk1peWF6eWFcIixcIkdlbmJvdFwiLFwiU8OkbmVcIixcIkhhbWxlXCIsXCJOw6RoYXNlXCIsXCJQYWd1bcOkblwiXSxsb25nOltcIk3DpHNrw6Ryw6RtXCIsXCJUZXFlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlTigJllclwiLFwiWcOka2F0aXRcIixcIk3DpGdhYml0XCIsXCJNaXlhenlhXCIsXCJHZW5ib3RcIixcIlPDpG5lXCIsXCJIYW1sZVwiLFwiTsOkaGFzZVwiLFwiUGFndW3DpG5cIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0sZXRoaW9hYTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTcOkc2vDpHLDpG1cIixcIlRlcWVtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVOKAmWVyXCIsXCJZw6RrYXRpdFwiLFwiTcOkZ2FiaXRcIixcIk1peWF6eWFcIixcIkdlbmJvdFwiLFwiU8OkbmVcIixcIkhhbWxlXCIsXCJOw6RoYXNlXCIsXCJQYWd1bcOkblwiXSxsb25nOltcIk3DpHNrw6Ryw6RtXCIsXCJUZXFlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlTigJllclwiLFwiWcOka2F0aXRcIixcIk3DpGdhYml0XCIsXCJNaXlhenlhXCIsXCJHZW5ib3RcIixcIlPDpG5lXCIsXCJIYW1sZVwiLFwiTsOkaGFzZVwiLFwiUGFndW3DpG5cIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIl0sc2hvcnQ6W1wiRVJBMFwiXSxsb25nOltcIkVSQTBcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0sZ2VuZXJpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIlpcIixcIk1cIixcIkRcIixcIldcIixcIkRcIixcIlZcIixcIlpcIl0sc2hvcnQ6W1wiem9cIixcIm1hXCIsXCJkaVwiLFwid29cIixcImRvXCIsXCJ2clwiLFwiemFcIl0sbG9uZzpbXCJ6b25kYWdcIixcIm1hYW5kYWdcIixcImRpbnNkYWdcIixcIndvZW5zZGFnXCIsXCJkb25kZXJkYWdcIixcInZyaWpkYWdcIixcInphdGVyZGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCJhLm0uXCIscG06XCJwLm0uXCJ9fSxncmVnb3J5Onttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImphbi5cIixcImZlYi5cIixcIm1ydC5cIixcImFwci5cIixcIm1laVwiLFwianVuLlwiLFwianVsLlwiLFwiYXVnLlwiLFwic2VwLlwiLFwib2t0LlwiLFwibm92LlwiLFwiZGVjLlwiXSxsb25nOltcImphbnVhcmlcIixcImZlYnJ1YXJpXCIsXCJtYWFydFwiLFwiYXByaWxcIixcIm1laVwiLFwianVuaVwiLFwianVsaVwiLFwiYXVndXN0dXNcIixcInNlcHRlbWJlclwiLFwib2t0b2JlclwiLFwibm92ZW1iZXJcIixcImRlY2VtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiWlwiLFwiTVwiLFwiRFwiLFwiV1wiLFwiRFwiLFwiVlwiLFwiWlwiXSxzaG9ydDpbXCJ6b1wiLFwibWFcIixcImRpXCIsXCJ3b1wiLFwiZG9cIixcInZyXCIsXCJ6YVwiXSxsb25nOltcInpvbmRhZ1wiLFwibWFhbmRhZ1wiLFwiZGluc2RhZ1wiLFwid29lbnNkYWdcIixcImRvbmRlcmRhZ1wiLFwidnJpamRhZ1wiLFwiemF0ZXJkYWdcIl19LGVyYXM6e25hcnJvdzpbXCJ2LkMuXCIsXCJuLkMuXCIsXCJ2Z2pcIixcImdqXCJdLHNob3J0OltcInYuQ2hyLlwiLFwibi5DaHIuXCIsXCJ2Lmcuai5cIixcImcuai5cIl0sbG9uZzpbXCJ2b29yIENocmlzdHVzXCIsXCJuYSBDaHJpc3R1c1wiLFwidsOzw7NyIGdld29uZSBqYWFydGVsbGluZ1wiLFwiZ2V3b25lIGphYXJ0ZWxsaW5nXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19LGhlYnJldzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIixcIjdcIl0sc2hvcnQ6W1wiVGlzanJpZVwiLFwiQ2hlc2p3YW5cIixcIktpc2xldlwiLFwiVGV2ZXRcIixcIlNqZXZhdFwiLFwiQWRhciBBXCIsXCJBZGFyXCIsXCJOaXNhblwiLFwiSWphclwiLFwiU2l2YW5cIixcIlRhbW1vZXpcIixcIkF2XCIsXCJFbGxvZWxcIixcIkFkYXIgQlwiXSxsb25nOltcIlRpc2pyaWVcIixcIkNoZXNqd2FuXCIsXCJLaXNsZXZcIixcIlRldmV0XCIsXCJTamV2YXRcIixcIkFkYXIgQVwiLFwiQWRhclwiLFwiTmlzYW5cIixcIklqYXJcIixcIlNpdmFuXCIsXCJUYW1tb2V6XCIsXCJBdlwiLFwiRWxsb2VsXCIsXCJBZGFyIEJcIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkFNXCJdLHNob3J0OltcIkFNXCJdLGxvbmc6W1wiQU1cIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0saW5kaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIkNoYWl0cmFcIixcIlZhaXNoYWtoYVwiLFwiSnllc2h0aGFcIixcIkFhc2hhYWRoYVwiLFwiU2hyYWF2YW5hXCIsXCJCaGFhZHJhcGFkYVwiLFwiQXNodmluYVwiLFwiS2FhcnRpa2FcIixcIkFncmFoYXlhbmFcIixcIlBhdXNoYVwiLFwiTWFhZ2hhXCIsXCJQaGFhbGd1bmFcIl0sbG9uZzpbXCJDaGFpdHJhXCIsXCJWYWlzaGFraGFcIixcIkp5ZXNodGhhXCIsXCJBYXNoYWFkaGFcIixcIlNocmFhdmFuYVwiLFwiQmhhYWRyYXBhZGFcIixcIkFzaHZpbmFcIixcIkthYXJ0aWthXCIsXCJBZ3JhaGF5YW5hXCIsXCJQYXVzaGFcIixcIk1hYWdoYVwiLFwiUGhhYWxndW5hXCJdfSxkYXlzOntuYXJyb3c6W1wiWlwiLFwiTVwiLFwiRFwiLFwiV1wiLFwiRFwiLFwiVlwiLFwiWlwiXSxzaG9ydDpbXCJ6b1wiLFwibWFcIixcImRpXCIsXCJ3b1wiLFwiZG9cIixcInZyXCIsXCJ6YVwiXSxsb25nOltcInpvbmRhZ1wiLFwibWFhbmRhZ1wiLFwiZGluc2RhZ1wiLFwid29lbnNkYWdcIixcImRvbmRlcmRhZ1wiLFwidnJpamRhZ1wiLFwiemF0ZXJkYWdcIl19LGVyYXM6e25hcnJvdzpbXCJTQUtBXCJdLHNob3J0OltcIlNBS0FcIl0sbG9uZzpbXCJTQUtBXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19LGlzbGFtaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTW9laC5cIixcIlNhZi5cIixcIlJhYi4gSVwiLFwiUmFiLiBJSVwiLFwiSm9lbS4gSVwiLFwiSm9lbS4gSUlcIixcIlJhai5cIixcIlNqYS5cIixcIlJhbS5cIixcIlNqYXcuXCIsXCJEb2UgYWwgay5cIixcIkRvZSBhbCBoLlwiXSxsb25nOltcIk1vZWhhcnJhbVwiLFwiU2FmYXJcIixcIlJhYmnKu2EgYWwgYXdhbFwiLFwiUmFiacq7YSBhbCB0aGFuaVwiLFwiSm9lbWFkyrthbCBhd2FsXCIsXCJKb2VtYWTKu2FsIHRoYW5pXCIsXCJSYWphYlwiLFwiU2phyrthYmFuXCIsXCJSYW1hZGFuXCIsXCJTamF3YWxcIixcIkRvZSBhbCBrYcq7YWJhXCIsXCJEb2UgYWwgaGl6amFcIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZXJhczp7bmFycm93OltcIlNhyrtuYSBIaXpqcmlhXCJdLHNob3J0OltcIlNhyrtuYSBIaXpqcmlhXCJdLGxvbmc6W1wiU2HKu25hIEhpempyaWFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0saXNsYW1pY2M6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTW9laC5cIixcIlNhZi5cIixcIlJhYi4gSVwiLFwiUmFiLiBJSVwiLFwiSm9lbS4gSVwiLFwiSm9lbS4gSUlcIixcIlJhai5cIixcIlNqYS5cIixcIlJhbS5cIixcIlNqYXcuXCIsXCJEb2UgYWwgay5cIixcIkRvZSBhbCBoLlwiXSxsb25nOltcIk1vZWhhcnJhbVwiLFwiU2FmYXJcIixcIlJhYmnKu2EgYWwgYXdhbFwiLFwiUmFiacq7YSBhbCB0aGFuaVwiLFwiSm9lbWFkyrthbCBhd2FsXCIsXCJKb2VtYWTKu2FsIHRoYW5pXCIsXCJSYWphYlwiLFwiU2phyrthYmFuXCIsXCJSYW1hZGFuXCIsXCJTamF3YWxcIixcIkRvZSBhbCBrYcq7YWJhXCIsXCJEb2UgYWwgaGl6amFcIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZXJhczp7bmFycm93OltcIlNhyrtuYSBIaXpqcmlhXCJdLHNob3J0OltcIlNhyrtuYSBIaXpqcmlhXCJdLGxvbmc6W1wiU2HKu25hIEhpempyaWFcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0samFwYW5lc2U6e21vbnRoczp7bmFycm93OltcIkpcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiamFuLlwiLFwiZmViLlwiLFwibXJ0LlwiLFwiYXByLlwiLFwibWVpXCIsXCJqdW4uXCIsXCJqdWwuXCIsXCJhdWcuXCIsXCJzZXAuXCIsXCJva3QuXCIsXCJub3YuXCIsXCJkZWMuXCJdLGxvbmc6W1wiamFudWFyaVwiLFwiZmVicnVhcmlcIixcIm1hYXJ0XCIsXCJhcHJpbFwiLFwibWVpXCIsXCJqdW5pXCIsXCJqdWxpXCIsXCJhdWd1c3R1c1wiLFwic2VwdGVtYmVyXCIsXCJva3RvYmVyXCIsXCJub3ZlbWJlclwiLFwiZGVjZW1iZXJcIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZXJhczp7bmFycm93OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTVwiLFwiVFwiLFwiU1wiLFwiSFwiXSxzaG9ydDpbXCJUYWlrYSAoNjQ14oCTNjUwKVwiLFwiSGFrdWNoaSAoNjUw4oCTNjcxKVwiLFwiSGFrdWjFjSAoNjcy4oCTNjg2KVwiLFwiU2h1Y2jFjSAoNjg24oCTNzAxKVwiLFwiVGFpaMWNICg3MDHigJM3MDQpXCIsXCJLZWl1biAoNzA04oCTNzA4KVwiLFwiV2FkxY0gKDcwOOKAkzcxNSlcIixcIlJlaWtpICg3MTXigJM3MTcpXCIsXCJZxY1yxY0gKDcxN+KAkzcyNClcIixcIkppbmtpICg3MjTigJM3MjkpXCIsXCJUZW5wecWNICg3MjnigJM3NDkpXCIsXCJUZW5wecWNLWthbXDFjSAoNzQ5LTc0OSlcIixcIlRlbnB5xY0tc2jFjWjFjSAoNzQ5LTc1NylcIixcIlRlbnB5xY0taMWNamkgKDc1Ny03NjUpXCIsXCJUZW5wecWNLWppbmdvICg3NjUtNzY3KVwiLFwiSmluZ28ta2VpdW4gKDc2Ny03NzApXCIsXCJIxY1raSAoNzcw4oCTNzgwKVwiLFwiVGVuLcWNICg3ODEtNzgyKVwiLFwiRW5yeWFrdSAoNzgy4oCTODA2KVwiLFwiRGFpZMWNICg4MDbigJM4MTApXCIsXCJLxY1uaW4gKDgxMOKAkzgyNClcIixcIlRlbmNoxY0gKDgyNOKAkzgzNClcIixcIkrFjXdhICg4MzTigJM4NDgpXCIsXCJLYWrFjSAoODQ44oCTODUxKVwiLFwiTmluanUgKDg1MeKAkzg1NClcIixcIlNhaWvFjSAoODU04oCTODU3KVwiLFwiVGVuLWFuICg4NTctODU5KVwiLFwiSsWNZ2FuICg4NTnigJM4NzcpXCIsXCJHYW5necWNICg4NzfigJM4ODUpXCIsXCJOaW5uYSAoODg14oCTODg5KVwiLFwiS2FucHnFjSAoODg54oCTODk4KVwiLFwiU2jFjXRhaSAoODk44oCTOTAxKVwiLFwiRW5naSAoOTAx4oCTOTIzKVwiLFwiRW5jaMWNICg5MjPigJM5MzEpXCIsXCJKxY1oZWkgKDkzMeKAkzkzOClcIixcIlRlbmd5xY0gKDkzOOKAkzk0NylcIixcIlRlbnJ5YWt1ICg5NDfigJM5NTcpXCIsXCJUZW50b2t1ICg5NTfigJM5NjEpXCIsXCLFjHdhICg5NjHigJM5NjQpXCIsXCJLxY1oxY0gKDk2NOKAkzk2OClcIixcIkFubmEgKDk2OOKAkzk3MClcIixcIlRlbnJva3UgKDk3MOKAkzk3MylcIixcIlRlbuKAmWVuICg5NzPigJM5NzYpXCIsXCJKxY1nZW4gKDk3NuKAkzk3OClcIixcIlRlbmdlbiAoOTc44oCTOTgzKVwiLFwiRWlrYW4gKDk4M+KAkzk4NSlcIixcIkthbm5hICg5ODXigJM5ODcpXCIsXCJFaWVuICg5ODfigJM5ODkpXCIsXCJFaXNvICg5ODnigJM5OTApXCIsXCJTaMWNcnlha3UgKDk5MOKAkzk5NSlcIixcIkNoxY10b2t1ICg5OTXigJM5OTkpXCIsXCJDaMWNaMWNICg5OTnigJMxMDA0KVwiLFwiS2Fua8WNICgxMDA04oCTMTAxMilcIixcIkNoxY13YSAoMTAxMuKAkzEwMTcpXCIsXCJLYW5uaW4gKDEwMTfigJMxMDIxKVwiLFwiSmlhbiAoMTAyMeKAkzEwMjQpXCIsXCJNYW5qdSAoMTAyNOKAkzEwMjgpXCIsXCJDaMWNZ2VuICgxMDI44oCTMTAzNylcIixcIkNoxY1yeWFrdSAoMTAzN+KAkzEwNDApXCIsXCJDaMWNa3nFqyAoMTA0MOKAkzEwNDQpXCIsXCJLYW50b2t1ICgxMDQ04oCTMTA0NilcIixcIkVpc2jFjSAoMTA0NuKAkzEwNTMpXCIsXCJUZW5naSAoMTA1M+KAkzEwNTgpXCIsXCJLxY1oZWkgKDEwNTjigJMxMDY1KVwiLFwiSmlyeWFrdSAoMTA2NeKAkzEwNjkpXCIsXCJFbmt5xasgKDEwNjnigJMxMDc0KVwiLFwiU2jFjWhvICgxMDc04oCTMTA3NylcIixcIlNoxY1yeWFrdSAoMTA3N+KAkzEwODEpXCIsXCJFaWjFjSAoMTA4MeKAkzEwODQpXCIsXCLFjHRva3UgKDEwODTigJMxMDg3KVwiLFwiS2FuamkgKDEwODfigJMxMDk0KVwiLFwiS2FobyAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiU2jFjXRva3UgKDEwOTfigJMxMDk5KVwiLFwiS8WNd2EgKDEwOTnigJMxMTA0KVwiLFwiQ2jFjWppICgxMTA04oCTMTEwNilcIixcIkthc2jFjSAoMTEwNuKAkzExMDgpXCIsXCJUZW5uaW4gKDExMDjigJMxMTEwKVwiLFwiVGVuLWVpICgxMTEwLTExMTMpXCIsXCJFaWt5xasgKDExMTPigJMxMTE4KVwiLFwiR2VuLWVpICgxMTE4LTExMjApXCIsXCJIb2FuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSG9lbiAoMTEzNeKAkzExNDEpXCIsXCJFaWppICgxMTQx4oCTMTE0MilcIixcIkvFjWppICgxMTQy4oCTMTE0NClcIixcIlRlbuKAmXnFjSAoMTE0NOKAkzExNDUpXCIsXCJLecWrYW4gKDExNDXigJMxMTUxKVwiLFwiTmlucGVpICgxMTUx4oCTMTE1NClcIixcIkt5xatqdSAoMTE1NOKAkzExNTYpXCIsXCJIb2dlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW4tZWkgKDEyMDYtMTIwNylcIixcIlNoxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIlNoxY1recWrICgxMjE54oCTMTIyMilcIixcIkrFjcWNICgxMjIy4oCTMTIyNClcIixcIkdlbm5pbiAoMTIyNOKAkzEyMjUpXCIsXCJLYXJva3UgKDEyMjXigJMxMjI3KVwiLFwiQW50ZWkgKDEyMjfigJMxMjI5KVwiLFwiS2Fua2kgKDEyMjnigJMxMjMyKVwiLFwiSsWNZWkgKDEyMzLigJMxMjMzKVwiLFwiVGVtcHVrdSAoMTIzM+KAkzEyMzQpXCIsXCJCdW5yeWFrdSAoMTIzNOKAkzEyMzUpXCIsXCJLYXRlaSAoMTIzNeKAkzEyMzgpXCIsXCJSeWFrdW5pbiAoMTIzOOKAkzEyMzkpXCIsXCJFbi3FjSAoMTIzOS0xMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1bi3FjSAoMTI2MC0xMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW4tZWkgKDEyNjQtMTI3NSlcIixcIktlbmppICgxMjc14oCTMTI3OClcIixcIkvFjWFuICgxMjc44oCTMTI4OClcIixcIlNoxY3FjSAoMTI4OOKAkzEyOTMpXCIsXCJFaW5pbiAoMTI5M+KAkzEyOTkpXCIsXCJTaMWNYW4gKDEyOTnigJMxMzAyKVwiLFwiS2VuZ2VuICgxMzAy4oCTMTMwMylcIixcIkthZ2VuICgxMzAz4oCTMTMwNilcIixcIlRva3VqaSAoMTMwNuKAkzEzMDgpXCIsXCJFbmtlaSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5recWNICgxMzIx4oCTMTMyNClcIixcIlNoxY1jaMWrICgxMzI04oCTMTMyNilcIixcIkthcmVraSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW1tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVuLWFuICgxNDQ0LTE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbm1vbiAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2Vud2EgKDE2MTXigJMxNjI0KVwiLFwiS2FuLWVpICgxNjI0LTE2NDQpXCIsXCJTaMWNaG8gKDE2NDTigJMxNjQ4KVwiLFwiS2VpYW4gKDE2NDjigJMxNjUyKVwiLFwiU2jFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJ5YWt1ICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW53YSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW4tZW4gKDE3NDgtMTc1MSlcIixcIkjFjXJ5YWt1ICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFuLWVpICgxNzcyLTE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFuLWVuICgxODYwLTE4NjEpXCIsXCJCdW5recWrICgxODYx4oCTMTg2NClcIixcIkdlbmppICgxODY04oCTMTg2NSlcIixcIktlacWNICgxODY14oCTMTg2OClcIixcIk1laWppXCIsXCJUYWlzaMWNXCIsXCJTaMWNd2FcIixcIkhlaXNlaVwiXSxsb25nOltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWhvICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJTaMWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW4tZWkgKDExMTgtMTEyMClcIixcIkhvYW4gKDExMjDigJMxMTI0KVwiLFwiVGVuamkgKDExMjTigJMxMTI2KVwiLFwiRGFpamkgKDExMjbigJMxMTMxKVwiLFwiVGVuc2jFjSAoMTEzMeKAkzExMzIpXCIsXCJDaMWNc2jFjSAoMTEzMuKAkzExMzUpXCIsXCJIb2VuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkhvZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbi1laSAoMTIwNi0xMjA3KVwiLFwiU2jFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiU2jFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW1wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVuLcWNICgxMjM5LTEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVuLcWNICgxMjYwLTEyNjEpXCIsXCJLxY1jaMWNICgxMjYx4oCTMTI2NClcIixcIkJ1bi1laSAoMTI2NC0xMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua2VpICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmt5xY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyZWtpICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbW11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW4tYW4gKDE0NDQtMTQ0OSlcIixcIkjFjXRva3UgKDE0NDnigJMxNDUyKVwiLFwiS3nFjXRva3UgKDE0NTLigJMxNDU1KVwiLFwiS8WNc2jFjSAoMTQ1NeKAkzE0NTcpXCIsXCJDaMWNcm9rdSAoMTQ1N+KAkzE0NjApXCIsXCJLYW5zaMWNICgxNDYw4oCTMTQ2NilcIixcIkJ1bnNoxY0gKDE0NjbigJMxNDY3KVwiLFwixYxuaW4gKDE0NjfigJMxNDY5KVwiLFwiQnVubWVpICgxNDY54oCTMTQ4NylcIixcIkNoxY1recWNICgxNDg34oCTMTQ4OSlcIixcIkVudG9rdSAoMTQ4OeKAkzE0OTIpXCIsXCJNZWnFjSAoMTQ5MuKAkzE1MDEpXCIsXCJCdW5raSAoMTUwMeKAkzE1MDQpXCIsXCJFaXNoxY0gKDE1MDTigJMxNTIxKVwiLFwiVGFpZWkgKDE1MjHigJMxNTI4KVwiLFwiS3nFjXJva3UgKDE1MjjigJMxNTMyKVwiLFwiVGVubW9uICgxNTMy4oCTMTU1NSlcIixcIkvFjWppICgxNTU14oCTMTU1OClcIixcIkVpcm9rdSAoMTU1OOKAkzE1NzApXCIsXCJHZW5raSAoMTU3MOKAkzE1NzMpXCIsXCJUZW5zaMWNICgxNTcz4oCTMTU5MilcIixcIkJ1bnJva3UgKDE1OTLigJMxNTk2KVwiLFwiS2VpY2jFjSAoMTU5NuKAkzE2MTUpXCIsXCJHZW53YSAoMTYxNeKAkzE2MjQpXCIsXCJLYW4tZWkgKDE2MjQtMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJTaMWNxY0gKDE2NTLigJMxNjU1KVwiLFwiTWVpcnlha3UgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbndhICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbi1lbiAoMTc0OC0xNzUxKVwiLFwiSMWNcnlha3UgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW4tZWkgKDE3NzItMTc4MSlcIixcIlRlbm1laSAoMTc4MeKAkzE3ODkpXCIsXCJLYW5zZWkgKDE3ODnigJMxODAxKVwiLFwiS3nFjXdhICgxODAx4oCTMTgwNClcIixcIkJ1bmthICgxODA04oCTMTgxOClcIixcIkJ1bnNlaSAoMTgxOOKAkzE4MzApXCIsXCJUZW5wxY0gKDE4MzDigJMxODQ0KVwiLFwiS8WNa2EgKDE4NDTigJMxODQ4KVwiLFwiS2FlaSAoMTg0OOKAkzE4NTQpXCIsXCJBbnNlaSAoMTg1NOKAkzE4NjApXCIsXCJNYW4tZW4gKDE4NjAtMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19LHBlcnNpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiRmFydmFyZGluXCIsXCJPcmRpYmVoZXNodFwiLFwiS2hvcmRhZFwiLFwiVGlyXCIsXCJNb3JkYWRcIixcIlNoYWhyaXZhclwiLFwiTWVoclwiLFwiQWJhblwiLFwiQXphclwiLFwiRGV5XCIsXCJCYWhtYW5cIixcIkVzZmFuZFwiXSxsb25nOltcIkZhcnZhcmRpblwiLFwiT3JkaWJlaGVzaHRcIixcIktob3JkYWRcIixcIlRpclwiLFwiTW9yZGFkXCIsXCJTaGFocml2YXJcIixcIk1laHJcIixcIkFiYW5cIixcIkF6YXJcIixcIkRleVwiLFwiQmFobWFuXCIsXCJFc2ZhbmRcIl19LGRheXM6e25hcnJvdzpbXCJaXCIsXCJNXCIsXCJEXCIsXCJXXCIsXCJEXCIsXCJWXCIsXCJaXCJdLHNob3J0OltcInpvXCIsXCJtYVwiLFwiZGlcIixcIndvXCIsXCJkb1wiLFwidnJcIixcInphXCJdLGxvbmc6W1wiem9uZGFnXCIsXCJtYWFuZGFnXCIsXCJkaW5zZGFnXCIsXCJ3b2Vuc2RhZ1wiLFwiZG9uZGVyZGFnXCIsXCJ2cmlqZGFnXCIsXCJ6YXRlcmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkFQXCJdLHNob3J0OltcIkFQXCJdLGxvbmc6W1wiQVBcIl19LGRheVBlcmlvZHM6e2FtOlwiYS5tLlwiLHBtOlwicC5tLlwifX0scm9jOnttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImphbi5cIixcImZlYi5cIixcIm1ydC5cIixcImFwci5cIixcIm1laVwiLFwianVuLlwiLFwianVsLlwiLFwiYXVnLlwiLFwic2VwLlwiLFwib2t0LlwiLFwibm92LlwiLFwiZGVjLlwiXSxsb25nOltcImphbnVhcmlcIixcImZlYnJ1YXJpXCIsXCJtYWFydFwiLFwiYXByaWxcIixcIm1laVwiLFwianVuaVwiLFwianVsaVwiLFwiYXVndXN0dXNcIixcInNlcHRlbWJlclwiLFwib2t0b2JlclwiLFwibm92ZW1iZXJcIixcImRlY2VtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiWlwiLFwiTVwiLFwiRFwiLFwiV1wiLFwiRFwiLFwiVlwiLFwiWlwiXSxzaG9ydDpbXCJ6b1wiLFwibWFcIixcImRpXCIsXCJ3b1wiLFwiZG9cIixcInZyXCIsXCJ6YVwiXSxsb25nOltcInpvbmRhZ1wiLFwibWFhbmRhZ1wiLFwiZGluc2RhZ1wiLFwid29lbnNkYWdcIixcImRvbmRlcmRhZ1wiLFwidnJpamRhZ1wiLFwiemF0ZXJkYWdcIl19LGVyYXM6e25hcnJvdzpbXCJ2b29yIFIuTy5DLlwiLFwiTWluZ3VvXCJdLHNob3J0OltcInZvb3IgUi5PLkMuXCIsXCJNaW5ndW9cIl0sbG9uZzpbXCJ2b29yIFIuTy5DLlwiLFwiTWluZ3VvXCJdfSxkYXlQZXJpb2RzOnthbTpcImEubS5cIixwbTpcInAubS5cIn19fX0sbnVtYmVyOntudTpbXCJsYXRuXCJdLHBhdHRlcm5zOntkZWNpbWFsOntwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn1cIn0sY3VycmVuY3k6e3Bvc2l0aXZlUGF0dGVybjpcIntjdXJyZW5jeX3CoHtudW1iZXJ9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie2N1cnJlbmN5fcKge21pbnVzU2lnbn17bnVtYmVyfVwifSxwZXJjZW50Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfXtwZXJjZW50U2lnbn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9e3BlcmNlbnRTaWdufVwifX0sc3ltYm9sczp7bGF0bjp7ZGVjaW1hbDpcIixcIixncm91cDpcIi5cIixuYW46XCJOYU5cIixwbHVzU2lnbjpcIitcIixtaW51c1NpZ246XCItXCIscGVyY2VudFNpZ246XCIlXCIsaW5maW5pdHk6XCLiiJ5cIn19LGN1cnJlbmNpZXM6e0FVRDpcIkFVJFwiLEJSTDpcIlIkXCIsQ0FEOlwiQyRcIixDTlk6XCJDTsKlXCIsRVVSOlwi4oKsXCIsRkpEOlwiRkokXCIsR0JQOlwiwqNcIixIS0Q6XCJISyRcIixJTFM6XCLigqpcIixJTlI6XCLigrlcIixKUFk6XCJKUMKlXCIsS1JXOlwi4oKpXCIsTVhOOlwiTVgkXCIsTlpEOlwiTlokXCIsU0JEOlwiU0kkXCIsVEhCOlwi4Li/XCIsVFdEOlwiTlQkXCIsVVNEOlwiVVMkXCIsVk5EOlwi4oKrXCIsWEFGOlwiRkNGQVwiLFhDRDpcIkVDJFwiLFhPRjpcIkNGQVwifX19KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9pbnRsL2xvY2FsZS1kYXRhL2pzb25wL25sLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIkludGxQb2x5ZmlsbC5fX2FkZExvY2FsZURhdGEoe2xvY2FsZTpcInBsXCIsZGF0ZTp7Y2E6W1wiZ3JlZ29yeVwiLFwiYnVkZGhpc3RcIixcImNoaW5lc2VcIixcImNvcHRpY1wiLFwiZGFuZ2lcIixcImV0aGlvYWFcIixcImV0aGlvcGljXCIsXCJnZW5lcmljXCIsXCJoZWJyZXdcIixcImluZGlhblwiLFwiaXNsYW1pY1wiLFwiaXNsYW1pY2NcIixcImphcGFuZXNlXCIsXCJwZXJzaWFuXCIsXCJyb2NcIl0saG91ck5vMDp0cnVlLGhvdXIxMjpmYWxzZSxmb3JtYXRzOntzaG9ydDpcInsxfSwgezB9XCIsbWVkaXVtOlwiezF9LCB7MH1cIixmdWxsOlwiezF9IHswfVwiLGxvbmc6XCJ7MX0gezB9XCIsYXZhaWxhYmxlRm9ybWF0czp7XCJkXCI6XCJkXCIsXCJFXCI6XCJjY2NcIixFZDpcIkUsIGRcIixFaG06XCJFLCBoOm1tIGFcIixFSG06XCJFLCBISDptbVwiLEVobXM6XCJFLCBoOm1tOnNzIGFcIixFSG1zOlwiRSwgSEg6bW06c3NcIixHeTpcInkgR1wiLEd5TU1NOlwiTU1NIHkgR1wiLEd5TU1NZDpcImQuTU0ueSBHXCIsR3lNTU1FZDpcIkUsIGQgTU1NIHkgR1wiLEd5TU1NTTpcIkxMTEwgeSBHXCIsR3lNTU1NZDpcImQgTU1NTSB5IEdcIixHeU1NTU1FZDpcIkUsIGQgTU1NTSB5IEdcIixcImhcIjpcImggYVwiLFwiSFwiOlwiSEhcIixobTpcImg6bW0gYVwiLEhtOlwiSEg6bW1cIixobXM6XCJoOm1tOnNzIGFcIixIbXM6XCJISDptbTpzc1wiLGhtc3Y6XCJoOm1tOnNzIGEgdlwiLEhtc3Y6XCJISDptbTpzcyB2XCIsaG12OlwiaDptbSBhIHZcIixIbXY6XCJISDptbSB2XCIsXCJNXCI6XCJMXCIsTWQ6XCJkLk1NXCIsTUVkOlwiRSwgZC5NTVwiLE1NTTpcIkxMTFwiLE1NTWQ6XCJkLk1NXCIsTU1NRWQ6XCJFLCBkLk1NXCIsTU1NTWQ6XCJkIE1NTU1cIixNTU1NRWQ6XCJFLCBkIE1NTU1cIixtczpcIm1tOnNzXCIsXCJ5XCI6XCJ5XCIseU06XCJNTS55XCIseU1kOlwiZC5NTS55XCIseU1FZDpcIkUsIGQuTU0ueVwiLHlNTU06XCJNTS55XCIseU1NTWQ6XCJkLk1NLnlcIix5TU1NRWQ6XCJFLCBkLk1NLnlcIix5TU1NTTpcIkxMTEwgeVwiLHlNTU1NZDpcImQgTU1NTSB5XCIseU1NTU1FZDpcIkUsIGQgTU1NTSB5XCIseVFRUTpcIlFRUSB5XCIseVFRUVE6XCJRUVFRIHlcIn0sZGF0ZUZvcm1hdHM6e3lNTU1NRUVFRWQ6XCJFRUVFLCBkIE1NTU0geVwiLHlNTU1NZDpcImQgTU1NTSB5XCIseU1NTWQ6XCJkZC5NTS55XCIseU1kOlwiZGQuTU0ueVwifSx0aW1lRm9ybWF0czp7aG1tc3N6enp6OlwiSEg6bW06c3Mgenp6elwiLGhtc3o6XCJISDptbTpzcyB6XCIsaG1zOlwiSEg6bW06c3NcIixobTpcIkhIOm1tXCJ9fSxjYWxlbmRhcnM6e2J1ZGRoaXN0Onttb250aHM6e25hcnJvdzpbXCJzXCIsXCJsXCIsXCJtXCIsXCJrXCIsXCJtXCIsXCJjXCIsXCJsXCIsXCJzXCIsXCJ3XCIsXCJwXCIsXCJsXCIsXCJnXCJdLHNob3J0OltcInN0eVwiLFwibHV0XCIsXCJtYXJcIixcImt3aVwiLFwibWFqXCIsXCJjemVcIixcImxpcFwiLFwic2llXCIsXCJ3cnpcIixcInBhxbpcIixcImxpc1wiLFwiZ3J1XCJdLGxvbmc6W1wic3R5Y3puaWFcIixcImx1dGVnb1wiLFwibWFyY2FcIixcImt3aWV0bmlhXCIsXCJtYWphXCIsXCJjemVyd2NhXCIsXCJsaXBjYVwiLFwic2llcnBuaWFcIixcIndyemXFm25pYVwiLFwicGHFumR6aWVybmlrYVwiLFwibGlzdG9wYWRhXCIsXCJncnVkbmlhXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiV1wiLFwixZpcIixcIkNcIixcIlBcIixcIlNcIl0sc2hvcnQ6W1wibmllZHouXCIsXCJwb24uXCIsXCJ3dC5cIixcIsWbci5cIixcImN6dy5cIixcInB0LlwiLFwic29iLlwiXSxsb25nOltcIm5pZWR6aWVsYVwiLFwicG9uaWVkemlhxYJla1wiLFwid3RvcmVrXCIsXCLFm3JvZGFcIixcImN6d2FydGVrXCIsXCJwacSFdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJCRVwiXSxzaG9ydDpbXCJCRVwiXSxsb25nOltcIkJFXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sY2hpbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIldcIixcIsWaXCIsXCJDXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5pZWR6LlwiLFwicG9uLlwiLFwid3QuXCIsXCLFm3IuXCIsXCJjencuXCIsXCJwdC5cIixcInNvYi5cIl0sbG9uZzpbXCJuaWVkemllbGFcIixcInBvbmllZHppYcWCZWtcIixcInd0b3Jla1wiLFwixZtyb2RhXCIsXCJjendhcnRla1wiLFwicGnEhXRla1wiLFwic29ib3RhXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sY29wdGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJUb3V0XCIsXCJCYWJhXCIsXCJIYXRvclwiLFwiS2lhaGtcIixcIlRvYmFcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtb3VkYVwiLFwiQmFzaGFuc1wiLFwiUGFvbmFcIixcIkVwZXBcIixcIk1lc3JhXCIsXCJOYXNpZVwiXSxsb25nOltcIlRvdXRcIixcIkJhYmFcIixcIkhhdG9yXCIsXCJLaWFoa1wiLFwiVG9iYVwiLFwiQW1zaGlyXCIsXCJCYXJhbWhhdFwiLFwiQmFyYW1vdWRhXCIsXCJCYXNoYW5zXCIsXCJQYW9uYVwiLFwiRXBlcFwiLFwiTWVzcmFcIixcIk5hc2llXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiV1wiLFwixZpcIixcIkNcIixcIlBcIixcIlNcIl0sc2hvcnQ6W1wibmllZHouXCIsXCJwb24uXCIsXCJ3dC5cIixcIsWbci5cIixcImN6dy5cIixcInB0LlwiLFwic29iLlwiXSxsb25nOltcIm5pZWR6aWVsYVwiLFwicG9uaWVkemlhxYJla1wiLFwid3RvcmVrXCIsXCLFm3JvZGFcIixcImN6d2FydGVrXCIsXCJwacSFdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJOXCIsXCJQXCIsXCJXXCIsXCLFmlwiLFwiQ1wiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuaWVkei5cIixcInBvbi5cIixcInd0LlwiLFwixZtyLlwiLFwiY3p3LlwiLFwicHQuXCIsXCJzb2IuXCJdLGxvbmc6W1wibmllZHppZWxhXCIsXCJwb25pZWR6aWHFgmVrXCIsXCJ3dG9yZWtcIixcIsWbcm9kYVwiLFwiY3p3YXJ0ZWtcIixcInBpxIV0ZWtcIixcInNvYm90YVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGV0aGlvcGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXSxsb25nOltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiV1wiLFwixZpcIixcIkNcIixcIlBcIixcIlNcIl0sc2hvcnQ6W1wibmllZHouXCIsXCJwb24uXCIsXCJ3dC5cIixcIsWbci5cIixcImN6dy5cIixcInB0LlwiLFwic29iLlwiXSxsb25nOltcIm5pZWR6aWVsYVwiLFwicG9uaWVkemlhxYJla1wiLFwid3RvcmVrXCIsXCLFm3JvZGFcIixcImN6d2FydGVrXCIsXCJwacSFdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZXRoaW9hYTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl0sbG9uZzpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIldcIixcIsWaXCIsXCJDXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5pZWR6LlwiLFwicG9uLlwiLFwid3QuXCIsXCLFm3IuXCIsXCJjencuXCIsXCJwdC5cIixcInNvYi5cIl0sbG9uZzpbXCJuaWVkemllbGFcIixcInBvbmllZHppYcWCZWtcIixcInd0b3Jla1wiLFwixZtyb2RhXCIsXCJjendhcnRla1wiLFwicGnEhXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiXSxzaG9ydDpbXCJFUkEwXCJdLGxvbmc6W1wiRVJBMFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJOXCIsXCJQXCIsXCJXXCIsXCLFmlwiLFwiQ1wiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuaWVkei5cIixcInBvbi5cIixcInd0LlwiLFwixZtyLlwiLFwiY3p3LlwiLFwicHQuXCIsXCJzb2IuXCJdLGxvbmc6W1wibmllZHppZWxhXCIsXCJwb25pZWR6aWHFgmVrXCIsXCJ3dG9yZWtcIixcIsWbcm9kYVwiLFwiY3p3YXJ0ZWtcIixcInBpxIV0ZWtcIixcInNvYm90YVwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxncmVnb3J5Onttb250aHM6e25hcnJvdzpbXCJzXCIsXCJsXCIsXCJtXCIsXCJrXCIsXCJtXCIsXCJjXCIsXCJsXCIsXCJzXCIsXCJ3XCIsXCJwXCIsXCJsXCIsXCJnXCJdLHNob3J0OltcInN0eVwiLFwibHV0XCIsXCJtYXJcIixcImt3aVwiLFwibWFqXCIsXCJjemVcIixcImxpcFwiLFwic2llXCIsXCJ3cnpcIixcInBhxbpcIixcImxpc1wiLFwiZ3J1XCJdLGxvbmc6W1wic3R5Y3puaWFcIixcImx1dGVnb1wiLFwibWFyY2FcIixcImt3aWV0bmlhXCIsXCJtYWphXCIsXCJjemVyd2NhXCIsXCJsaXBjYVwiLFwic2llcnBuaWFcIixcIndyemXFm25pYVwiLFwicGHFumR6aWVybmlrYVwiLFwibGlzdG9wYWRhXCIsXCJncnVkbmlhXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiV1wiLFwixZpcIixcIkNcIixcIlBcIixcIlNcIl0sc2hvcnQ6W1wibmllZHouXCIsXCJwb24uXCIsXCJ3dC5cIixcIsWbci5cIixcImN6dy5cIixcInB0LlwiLFwic29iLlwiXSxsb25nOltcIm5pZWR6aWVsYVwiLFwicG9uaWVkemlhxYJla1wiLFwid3RvcmVrXCIsXCLFm3JvZGFcIixcImN6d2FydGVrXCIsXCJwacSFdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJwLm4uZS5cIixcIm4uZS5cIixcIkJDRVwiLFwiQ0VcIl0sc2hvcnQ6W1wicC5uLmUuXCIsXCJuLmUuXCIsXCJCQ0VcIixcIkNFXCJdLGxvbmc6W1wicC5uLmUuXCIsXCJuLmUuXCIsXCJCQ0VcIixcIkNFXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saGVicmV3Onttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiLFwiN1wiXSxzaG9ydDpbXCJUaXN6cmlcIixcIkNoZXN6d2FuXCIsXCJLaXNsZXdcIixcIlRld2V0XCIsXCJTendhdFwiLFwiQWRhciBJXCIsXCJBZGFyXCIsXCJOaXNhblwiLFwiSWphclwiLFwiU2l3YW5cIixcIlRhbXV6XCIsXCJBd1wiLFwiRWx1bFwiLFwiQWRhciBJSVwiXSxsb25nOltcIlRpc3pyaVwiLFwiQ2hlc3p3YW5cIixcIktpc2xld1wiLFwiVGV3ZXRcIixcIlN6d2F0XCIsXCJBZGFyIElcIixcIkFkYXJcIixcIk5pc2FuXCIsXCJJamFyXCIsXCJTaXdhblwiLFwiVGFtdXpcIixcIkF3XCIsXCJFbHVsXCIsXCJBZGFyIElJXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiV1wiLFwixZpcIixcIkNcIixcIlBcIixcIlNcIl0sc2hvcnQ6W1wibmllZHouXCIsXCJwb24uXCIsXCJ3dC5cIixcIsWbci5cIixcImN6dy5cIixcInB0LlwiLFwic29iLlwiXSxsb25nOltcIm5pZWR6aWVsYVwiLFwicG9uaWVkemlhxYJla1wiLFwid3RvcmVrXCIsXCLFm3JvZGFcIixcImN6d2FydGVrXCIsXCJwacSFdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJBTVwiXSxzaG9ydDpbXCJBTVwiXSxsb25nOltcIkFNXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saW5kaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIkNoYWl0cmFcIixcIlZhaXNha2hhXCIsXCJKeWFpc3RoYVwiLFwiQXNhZGhhXCIsXCJTcmF2YW5hXCIsXCJCaGFkcmFcIixcIkFzdmluYVwiLFwiS2FydGlrYVwiLFwiQWdyYWhheWFuYVwiLFwiUGF1c2FcIixcIk1hZ2hhXCIsXCJQaGFsZ3VuYVwiXSxsb25nOltcIkNoYWl0cmFcIixcIlZhaXNha2hhXCIsXCJKeWFpc3RoYVwiLFwiQXNhZGhhXCIsXCJTcmF2YW5hXCIsXCJCaGFkcmFcIixcIkFzdmluYVwiLFwiS2FydGlrYVwiLFwiQWdyYWhheWFuYVwiLFwiUGF1c2FcIixcIk1hZ2hhXCIsXCJQaGFsZ3VuYVwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIldcIixcIsWaXCIsXCJDXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5pZWR6LlwiLFwicG9uLlwiLFwid3QuXCIsXCLFm3IuXCIsXCJjencuXCIsXCJwdC5cIixcInNvYi5cIl0sbG9uZzpbXCJuaWVkemllbGFcIixcInBvbmllZHppYcWCZWtcIixcInd0b3Jla1wiLFwixZtyb2RhXCIsXCJjendhcnRla1wiLFwicGnEhXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiU2FrYVwiXSxzaG9ydDpbXCJTYWthXCJdLGxvbmc6W1wiU2FrYVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGlzbGFtaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTXVoLlwiLFwiU2FmLlwiLFwiUmFiLiBJXCIsXCJSYWIuIElJXCIsXCJExbx1LiBJXCIsXCJExbx1LiBJSVwiLFwiUmEuXCIsXCJTemEuXCIsXCJSYW0uXCIsXCJTemF3LlwiLFwiWnUgYWwtay5cIixcIlp1IGFsLWguXCJdLGxvbmc6W1wiTXVoYXJyYW1cIixcIlNhZmFyXCIsXCJSYWJpyrsgSVwiLFwiUmFiacq7IElJXCIsXCJExbx1bWFkYSBJXCIsXCJExbx1bWFkYSBJSVwiLFwiUmFkxbxhYlwiLFwiU3phYmFuXCIsXCJSYW1hZGFuXCIsXCJTemF3d2FsXCIsXCJadSBhbC1rYWRhXCIsXCJadSBhbC1oaWTFvGTFvGFcIl19LGRheXM6e25hcnJvdzpbXCJOXCIsXCJQXCIsXCJXXCIsXCLFmlwiLFwiQ1wiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuaWVkei5cIixcInBvbi5cIixcInd0LlwiLFwixZtyLlwiLFwiY3p3LlwiLFwicHQuXCIsXCJzb2IuXCJdLGxvbmc6W1wibmllZHppZWxhXCIsXCJwb25pZWR6aWHFgmVrXCIsXCJ3dG9yZWtcIixcIsWbcm9kYVwiLFwiY3p3YXJ0ZWtcIixcInBpxIV0ZWtcIixcInNvYm90YVwiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxpc2xhbWljYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkTFvHUuIElcIixcIkTFvHUuIElJXCIsXCJSYS5cIixcIlN6YS5cIixcIlJhbS5cIixcIlN6YXcuXCIsXCJadSBhbC1rLlwiLFwiWnUgYWwtaC5cIl0sbG9uZzpbXCJNdWhhcnJhbVwiLFwiU2FmYXJcIixcIlJhYmnKuyBJXCIsXCJSYWJpyrsgSUlcIixcIkTFvHVtYWRhIElcIixcIkTFvHVtYWRhIElJXCIsXCJSYWTFvGFiXCIsXCJTemFiYW5cIixcIlJhbWFkYW5cIixcIlN6YXd3YWxcIixcIlp1IGFsLWthZGFcIixcIlp1IGFsLWhpZMW8ZMW8YVwiXX0sZGF5czp7bmFycm93OltcIk5cIixcIlBcIixcIldcIixcIsWaXCIsXCJDXCIsXCJQXCIsXCJTXCJdLHNob3J0OltcIm5pZWR6LlwiLFwicG9uLlwiLFwid3QuXCIsXCLFm3IuXCIsXCJjencuXCIsXCJwdC5cIixcInNvYi5cIl0sbG9uZzpbXCJuaWVkemllbGFcIixcInBvbmllZHppYcWCZWtcIixcInd0b3Jla1wiLFwixZtyb2RhXCIsXCJjendhcnRla1wiLFwicGnEhXRla1wiLFwic29ib3RhXCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGphcGFuZXNlOnttb250aHM6e25hcnJvdzpbXCJzXCIsXCJsXCIsXCJtXCIsXCJrXCIsXCJtXCIsXCJjXCIsXCJsXCIsXCJzXCIsXCJ3XCIsXCJwXCIsXCJsXCIsXCJnXCJdLHNob3J0OltcInN0eVwiLFwibHV0XCIsXCJtYXJcIixcImt3aVwiLFwibWFqXCIsXCJjemVcIixcImxpcFwiLFwic2llXCIsXCJ3cnpcIixcInBhxbpcIixcImxpc1wiLFwiZ3J1XCJdLGxvbmc6W1wic3R5Y3puaWFcIixcImx1dGVnb1wiLFwibWFyY2FcIixcImt3aWV0bmlhXCIsXCJtYWphXCIsXCJjemVyd2NhXCIsXCJsaXBjYVwiLFwic2llcnBuaWFcIixcIndyemXFm25pYVwiLFwicGHFumR6aWVybmlrYVwiLFwibGlzdG9wYWRhXCIsXCJncnVkbmlhXCJdfSxkYXlzOntuYXJyb3c6W1wiTlwiLFwiUFwiLFwiV1wiLFwixZpcIixcIkNcIixcIlBcIixcIlNcIl0sc2hvcnQ6W1wibmllZHouXCIsXCJwb24uXCIsXCJ3dC5cIixcIsWbci5cIixcImN6dy5cIixcInB0LlwiLFwic29iLlwiXSxsb25nOltcIm5pZWR6aWVsYVwiLFwicG9uaWVkemlhxYJla1wiLFwid3RvcmVrXCIsXCLFm3JvZGFcIixcImN6d2FydGVrXCIsXCJwacSFdGVrXCIsXCJzb2JvdGFcIl19LGVyYXM6e25hcnJvdzpbXCJUYWlrYSAoNjQ14oCTNjUwKVwiLFwiSGFrdWNoaSAoNjUw4oCTNjcxKVwiLFwiSGFrdWjFjSAoNjcy4oCTNjg2KVwiLFwiU2h1Y2jFjSAoNjg24oCTNzAxKVwiLFwiVGFpaMWNICg3MDHigJM3MDQpXCIsXCJLZWl1biAoNzA04oCTNzA4KVwiLFwiV2FkxY0gKDcwOOKAkzcxNSlcIixcIlJlaWtpICg3MTXigJM3MTcpXCIsXCJZxY1yxY0gKDcxN+KAkzcyNClcIixcIkppbmtpICg3MjTigJM3MjkpXCIsXCJUZW5wecWNICg3MjnigJM3NDkpXCIsXCJUZW5wecWNLWthbXDFjSAoNzQ5LTc0OSlcIixcIlRlbnB5xY0tc2jFjWjFjSAoNzQ5LTc1NylcIixcIlRlbnB5xY0taMWNamkgKDc1Ny03NjUpXCIsXCJUZW5wecWNLWppbmdvICg3NjUtNzY3KVwiLFwiSmluZ28ta2VpdW4gKDc2Ny03NzApXCIsXCJIxY1raSAoNzcw4oCTNzgwKVwiLFwiVGVuLcWNICg3ODEtNzgyKVwiLFwiRW5yeWFrdSAoNzgy4oCTODA2KVwiLFwiRGFpZMWNICg4MDbigJM4MTApXCIsXCJLxY1uaW4gKDgxMOKAkzgyNClcIixcIlRlbmNoxY0gKDgyNOKAkzgzNClcIixcIkrFjXdhICg4MzTigJM4NDgpXCIsXCJLYWrFjSAoODQ44oCTODUxKVwiLFwiTmluanUgKDg1MeKAkzg1NClcIixcIlNhaWvFjSAoODU04oCTODU3KVwiLFwiVGVuLWFuICg4NTctODU5KVwiLFwiSsWNZ2FuICg4NTnigJM4NzcpXCIsXCJHYW5necWNICg4NzfigJM4ODUpXCIsXCJOaW5uYSAoODg14oCTODg5KVwiLFwiS2FucHnFjSAoODg54oCTODk4KVwiLFwiU2jFjXRhaSAoODk44oCTOTAxKVwiLFwiRW5naSAoOTAx4oCTOTIzKVwiLFwiRW5jaMWNICg5MjPigJM5MzEpXCIsXCJKxY1oZWkgKDkzMeKAkzkzOClcIixcIlRlbmd5xY0gKDkzOOKAkzk0NylcIixcIlRlbnJ5YWt1ICg5NDfigJM5NTcpXCIsXCJUZW50b2t1ICg5NTfigJM5NjEpXCIsXCLFjHdhICg5NjHigJM5NjQpXCIsXCJLxY1oxY0gKDk2NOKAkzk2OClcIixcIkFubmEgKDk2OOKAkzk3MClcIixcIlRlbnJva3UgKDk3MOKAkzk3MylcIixcIlRlbuKAmWVuICg5NzPigJM5NzYpXCIsXCJKxY1nZW4gKDk3NuKAkzk3OClcIixcIlRlbmdlbiAoOTc44oCTOTgzKVwiLFwiRWlrYW4gKDk4M+KAkzk4NSlcIixcIkthbm5hICg5ODXigJM5ODcpXCIsXCJFaWVuICg5ODfigJM5ODkpXCIsXCJFaXNvICg5ODnigJM5OTApXCIsXCJTaMWNcnlha3UgKDk5MOKAkzk5NSlcIixcIkNoxY10b2t1ICg5OTXigJM5OTkpXCIsXCJDaMWNaMWNICg5OTnigJMxMDA0KVwiLFwiS2Fua8WNICgxMDA04oCTMTAxMilcIixcIkNoxY13YSAoMTAxMuKAkzEwMTcpXCIsXCJLYW5uaW4gKDEwMTfigJMxMDIxKVwiLFwiSmlhbiAoMTAyMeKAkzEwMjQpXCIsXCJNYW5qdSAoMTAyNOKAkzEwMjgpXCIsXCJDaMWNZ2VuICgxMDI44oCTMTAzNylcIixcIkNoxY1yeWFrdSAoMTAzN+KAkzEwNDApXCIsXCJDaMWNa3nFqyAoMTA0MOKAkzEwNDQpXCIsXCJLYW50b2t1ICgxMDQ04oCTMTA0NilcIixcIkVpc2jFjSAoMTA0NuKAkzEwNTMpXCIsXCJUZW5naSAoMTA1M+KAkzEwNTgpXCIsXCJLxY1oZWkgKDEwNTjigJMxMDY1KVwiLFwiSmlyeWFrdSAoMTA2NeKAkzEwNjkpXCIsXCJFbmt5xasgKDEwNjnigJMxMDc0KVwiLFwiU2jFjWhvICgxMDc04oCTMTA3NylcIixcIlNoxY1yeWFrdSAoMTA3N+KAkzEwODEpXCIsXCJFaWjFjSAoMTA4MeKAkzEwODQpXCIsXCLFjHRva3UgKDEwODTigJMxMDg3KVwiLFwiS2FuamkgKDEwODfigJMxMDk0KVwiLFwiS2FoxY0gKDEwOTTigJMxMDk2KVwiLFwiRWljaMWNICgxMDk24oCTMTA5NylcIixcIkrFjXRva3UgKDEwOTfigJMxMDk5KVwiLFwiS8WNd2EgKDEwOTnigJMxMTA0KVwiLFwiQ2jFjWppICgxMTA04oCTMTEwNilcIixcIkthc2jFjSAoMTEwNuKAkzExMDgpXCIsXCJUZW5uaW4gKDExMDjigJMxMTEwKVwiLFwiVGVuLWVpICgxMTEwLTExMTMpXCIsXCJFaWt5xasgKDExMTPigJMxMTE4KVwiLFwiR2Vu4oCZZWkgKDExMTjigJMxMTIwKVwiLFwiSMWNYW4gKDExMjDigJMxMTI0KVwiLFwiVGVuamkgKDExMjTigJMxMTI2KVwiLFwiRGFpamkgKDExMjbigJMxMTMxKVwiLFwiVGVuc2jFjSAoMTEzMeKAkzExMzIpXCIsXCJDaMWNc2jFjSAoMTEzMuKAkzExMzUpXCIsXCJIxY1lbiAoMTEzNeKAkzExNDEpXCIsXCJFaWppICgxMTQx4oCTMTE0MilcIixcIkvFjWppICgxMTQy4oCTMTE0NClcIixcIlRlbuKAmXnFjSAoMTE0NOKAkzExNDUpXCIsXCJLecWrYW4gKDExNDXigJMxMTUxKVwiLFwiTmlucGVpICgxMTUx4oCTMTE1NClcIixcIkt5xatqdSAoMTE1NOKAkzExNTYpXCIsXCJIxY1nZW4gKDExNTbigJMxMTU5KVwiLFwiSGVpamkgKDExNTnigJMxMTYwKVwiLFwiRWlyeWFrdSAoMTE2MOKAkzExNjEpXCIsXCLFjGhvICgxMTYx4oCTMTE2MylcIixcIkNoxY1rYW4gKDExNjPigJMxMTY1KVwiLFwiRWltYW4gKDExNjXigJMxMTY2KVwiLFwiTmlu4oCZYW4gKDExNjbigJMxMTY5KVwiLFwiS2HFjSAoMTE2OeKAkzExNzEpXCIsXCJTaMWNYW4gKDExNzHigJMxMTc1KVwiLFwiQW5nZW4gKDExNzXigJMxMTc3KVwiLFwiSmlzaMWNICgxMTc34oCTMTE4MSlcIixcIlnFjXdhICgxMTgx4oCTMTE4MilcIixcIkp1ZWkgKDExODLigJMxMTg0KVwiLFwiR2Vucnlha3UgKDExODTigJMxMTg1KVwiLFwiQnVuamkgKDExODXigJMxMTkwKVwiLFwiS2Vua3nFqyAoMTE5MOKAkzExOTkpXCIsXCJTaMWNamkgKDExOTnigJMxMjAxKVwiLFwiS2VubmluICgxMjAx4oCTMTIwNClcIixcIkdlbmt5xasgKDEyMDTigJMxMjA2KVwiLFwiS2Vu4oCZZWkgKDEyMDbigJMxMjA3KVwiLFwiSsWNZ2VuICgxMjA34oCTMTIxMSlcIixcIktlbnJ5YWt1ICgxMjEx4oCTMTIxMylcIixcIktlbnDFjSAoMTIxM+KAkzEyMTkpXCIsXCJKxY1recWrICgxMjE54oCTMTIyMilcIixcIkrFjcWNICgxMjIy4oCTMTIyNClcIixcIkdlbm5pbiAoMTIyNOKAkzEyMjUpXCIsXCJLYXJva3UgKDEyMjXigJMxMjI3KVwiLFwiQW50ZWkgKDEyMjfigJMxMjI5KVwiLFwiS2Fua2kgKDEyMjnigJMxMjMyKVwiLFwiSsWNZWkgKDEyMzLigJMxMjMzKVwiLFwiVGVucHVrdSAoMTIzM+KAkzEyMzQpXCIsXCJCdW5yeWFrdSAoMTIzNOKAkzEyMzUpXCIsXCJLYXRlaSAoMTIzNeKAkzEyMzgpXCIsXCJSeWFrdW5pbiAoMTIzOOKAkzEyMzkpXCIsXCJFbuKAmcWNICgxMjM54oCTMTI0MClcIixcIk5pbmppICgxMjQw4oCTMTI0MylcIixcIkthbmdlbiAoMTI0M+KAkzEyNDcpXCIsXCJIxY1qaSAoMTI0N+KAkzEyNDkpXCIsXCJLZW5jaMWNICgxMjQ54oCTMTI1NilcIixcIkvFjWdlbiAoMTI1NuKAkzEyNTcpXCIsXCJTaMWNa2EgKDEyNTfigJMxMjU5KVwiLFwiU2jFjWdlbiAoMTI1OeKAkzEyNjApXCIsXCJCdW7igJnFjSAoMTI2MOKAkzEyNjEpXCIsXCJLxY1jaMWNICgxMjYx4oCTMTI2NClcIixcIkJ1buKAmWVpICgxMjY04oCTMTI3NSlcIixcIktlbmppICgxMjc14oCTMTI3OClcIixcIkvFjWFuICgxMjc44oCTMTI4OClcIixcIlNoxY3FjSAoMTI4OOKAkzEyOTMpXCIsXCJFaW5pbiAoMTI5M+KAkzEyOTkpXCIsXCJTaMWNYW4gKDEyOTnigJMxMzAyKVwiLFwiS2VuZ2VuICgxMzAy4oCTMTMwMylcIixcIkthZ2VuICgxMzAz4oCTMTMwNilcIixcIlRva3VqaSAoMTMwNuKAkzEzMDgpXCIsXCJFbmt5xY0gKDEzMDjigJMxMzExKVwiLFwixYxjaMWNICgxMzEx4oCTMTMxMilcIixcIlNoxY13YSAoMTMxMuKAkzEzMTcpXCIsXCJCdW5wxY0gKDEzMTfigJMxMzE5KVwiLFwiR2VuxY0gKDEzMTnigJMxMzIxKVwiLFwiR2Vua8WNICgxMzIx4oCTMTMyNClcIixcIlNoxY1jaMWrICgxMzI04oCTMTMyNilcIixcIkthcnlha3UgKDEzMjbigJMxMzI5KVwiLFwiR2VudG9rdSAoMTMyOeKAkzEzMzEpXCIsXCJHZW5rxY0gKDEzMzHigJMxMzM0KVwiLFwiS2VubXUgKDEzMzTigJMxMzM2KVwiLFwiRW5nZW4gKDEzMzbigJMxMzQwKVwiLFwiS8WNa29rdSAoMTM0MOKAkzEzNDYpXCIsXCJTaMWNaGVpICgxMzQ24oCTMTM3MClcIixcIktlbnRva3UgKDEzNzDigJMxMzcyKVwiLFwiQnVuY2jFqyAoMTM3MuKAkzEzNzUpXCIsXCJUZW5qdSAoMTM3NeKAkzEzNzkpXCIsXCJLxY1yeWFrdSAoMTM3OeKAkzEzODEpXCIsXCJLxY13YSAoMTM4MeKAkzEzODQpXCIsXCJHZW5jaMWrICgxMzg04oCTMTM5MilcIixcIk1laXRva3UgKDEzODTigJMxMzg3KVwiLFwiS2FrZWkgKDEzODfigJMxMzg5KVwiLFwiS8WNxY0gKDEzODnigJMxMzkwKVwiLFwiTWVpdG9rdSAoMTM5MOKAkzEzOTQpXCIsXCLFjGVpICgxMzk04oCTMTQyOClcIixcIlNoxY1jaMWNICgxNDI44oCTMTQyOSlcIixcIkVpa3nFjSAoMTQyOeKAkzE0NDEpXCIsXCJLYWtpdHN1ICgxNDQx4oCTMTQ0NClcIixcIkJ1buKAmWFuICgxNDQ04oCTMTQ0OSlcIixcIkjFjXRva3UgKDE0NDnigJMxNDUyKVwiLFwiS3nFjXRva3UgKDE0NTLigJMxNDU1KVwiLFwiS8WNc2jFjSAoMTQ1NeKAkzE0NTcpXCIsXCJDaMWNcm9rdSAoMTQ1N+KAkzE0NjApXCIsXCJLYW5zaMWNICgxNDYw4oCTMTQ2NilcIixcIkJ1bnNoxY0gKDE0NjbigJMxNDY3KVwiLFwixYxuaW4gKDE0NjfigJMxNDY5KVwiLFwiQnVubWVpICgxNDY54oCTMTQ4NylcIixcIkNoxY1recWNICgxNDg34oCTMTQ4OSlcIixcIkVudG9rdSAoMTQ4OeKAkzE0OTIpXCIsXCJNZWnFjSAoMTQ5MuKAkzE1MDEpXCIsXCJCdW5raSAoMTUwMeKAkzE1MDQpXCIsXCJFaXNoxY0gKDE1MDTigJMxNTIxKVwiLFwiVGFpZWkgKDE1MjHigJMxNTI4KVwiLFwiS3nFjXJva3UgKDE1MjjigJMxNTMyKVwiLFwiVGVuYnVuICgxNTMy4oCTMTU1NSlcIixcIkvFjWppICgxNTU14oCTMTU1OClcIixcIkVpcm9rdSAoMTU1OOKAkzE1NzApXCIsXCJHZW5raSAoMTU3MOKAkzE1NzMpXCIsXCJUZW5zaMWNICgxNTcz4oCTMTU5MilcIixcIkJ1bnJva3UgKDE1OTLigJMxNTk2KVwiLFwiS2VpY2jFjSAoMTU5NuKAkzE2MTUpXCIsXCJHZW5uYSAoMTYxNeKAkzE2MjQpXCIsXCJLYW7igJllaSAoMTYyNOKAkzE2NDQpXCIsXCJTaMWNaG8gKDE2NDTigJMxNjQ4KVwiLFwiS2VpYW4gKDE2NDjigJMxNjUyKVwiLFwiSsWNxY0gKDE2NTLigJMxNjU1KVwiLFwiTWVpcmVraSAoMTY1NeKAkzE2NTgpXCIsXCJNYW5qaSAoMTY1OOKAkzE2NjEpXCIsXCJLYW5idW4gKDE2NjHigJMxNjczKVwiLFwiRW5wxY0gKDE2NzPigJMxNjgxKVwiLFwiVGVubmEgKDE2ODHigJMxNjg0KVwiLFwiSsWNa3nFjSAoMTY4NOKAkzE2ODgpXCIsXCJHZW5yb2t1ICgxNjg44oCTMTcwNClcIixcIkjFjWVpICgxNzA04oCTMTcxMSlcIixcIlNoxY10b2t1ICgxNzEx4oCTMTcxNilcIixcIkt5xY1oxY0gKDE3MTbigJMxNzM2KVwiLFwiR2VuYnVuICgxNzM24oCTMTc0MSlcIixcIkthbnDFjSAoMTc0MeKAkzE3NDQpXCIsXCJFbmt5xY0gKDE3NDTigJMxNzQ4KVwiLFwiS2Fu4oCZZW4gKDE3NDjigJMxNzUxKVwiLFwiSMWNcmVraSAoMTc1MeKAkzE3NjQpXCIsXCJNZWl3YSAoMTc2NOKAkzE3NzIpXCIsXCJBbuKAmWVpICgxNzcy4oCTMTc4MSlcIixcIlRlbm1laSAoMTc4MeKAkzE3ODkpXCIsXCJLYW5zZWkgKDE3ODnigJMxODAxKVwiLFwiS3nFjXdhICgxODAx4oCTMTgwNClcIixcIkJ1bmthICgxODA04oCTMTgxOClcIixcIkJ1bnNlaSAoMTgxOOKAkzE4MzApXCIsXCJUZW5wxY0gKDE4MzDigJMxODQ0KVwiLFwiS8WNa2EgKDE4NDTigJMxODQ4KVwiLFwiS2FlaSAoMTg0OOKAkzE4NTQpXCIsXCJBbnNlaSAoMTg1NOKAkzE4NjApXCIsXCJNYW7igJllbiAoMTg2MOKAkzE4NjEpXCIsXCJCdW5recWrICgxODYx4oCTMTg2NClcIixcIkdlbmppICgxODY04oCTMTg2NSlcIixcIktlacWNICgxODY14oCTMTg2OClcIixcIk1cIixcIlRcIixcIlNcIixcIkhcIl0sc2hvcnQ6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl0sbG9uZzpbXCJUYWlrYSAoNjQ14oCTNjUwKVwiLFwiSGFrdWNoaSAoNjUw4oCTNjcxKVwiLFwiSGFrdWjFjSAoNjcy4oCTNjg2KVwiLFwiU2h1Y2jFjSAoNjg24oCTNzAxKVwiLFwiVGFpaMWNICg3MDHigJM3MDQpXCIsXCJLZWl1biAoNzA04oCTNzA4KVwiLFwiV2FkxY0gKDcwOOKAkzcxNSlcIixcIlJlaWtpICg3MTXigJM3MTcpXCIsXCJZxY1yxY0gKDcxN+KAkzcyNClcIixcIkppbmtpICg3MjTigJM3MjkpXCIsXCJUZW5wecWNICg3MjnigJM3NDkpXCIsXCJUZW5wecWNLWthbXDFjSAoNzQ5LTc0OSlcIixcIlRlbnB5xY0tc2jFjWjFjSAoNzQ5LTc1NylcIixcIlRlbnB5xY0taMWNamkgKDc1Ny03NjUpXCIsXCJUZW5wecWNLWppbmdvICg3NjUtNzY3KVwiLFwiSmluZ28ta2VpdW4gKDc2Ny03NzApXCIsXCJIxY1raSAoNzcw4oCTNzgwKVwiLFwiVGVuLcWNICg3ODEtNzgyKVwiLFwiRW5yeWFrdSAoNzgy4oCTODA2KVwiLFwiRGFpZMWNICg4MDbigJM4MTApXCIsXCJLxY1uaW4gKDgxMOKAkzgyNClcIixcIlRlbmNoxY0gKDgyNOKAkzgzNClcIixcIkrFjXdhICg4MzTigJM4NDgpXCIsXCJLYWrFjSAoODQ44oCTODUxKVwiLFwiTmluanUgKDg1MeKAkzg1NClcIixcIlNhaWvFjSAoODU04oCTODU3KVwiLFwiVGVuLWFuICg4NTctODU5KVwiLFwiSsWNZ2FuICg4NTnigJM4NzcpXCIsXCJHYW5necWNICg4NzfigJM4ODUpXCIsXCJOaW5uYSAoODg14oCTODg5KVwiLFwiS2FucHnFjSAoODg54oCTODk4KVwiLFwiU2jFjXRhaSAoODk44oCTOTAxKVwiLFwiRW5naSAoOTAx4oCTOTIzKVwiLFwiRW5jaMWNICg5MjPigJM5MzEpXCIsXCJKxY1oZWkgKDkzMeKAkzkzOClcIixcIlRlbmd5xY0gKDkzOOKAkzk0NylcIixcIlRlbnJ5YWt1ICg5NDfigJM5NTcpXCIsXCJUZW50b2t1ICg5NTfigJM5NjEpXCIsXCLFjHdhICg5NjHigJM5NjQpXCIsXCJLxY1oxY0gKDk2NOKAkzk2OClcIixcIkFubmEgKDk2OOKAkzk3MClcIixcIlRlbnJva3UgKDk3MOKAkzk3MylcIixcIlRlbuKAmWVuICg5NzPigJM5NzYpXCIsXCJKxY1nZW4gKDk3NuKAkzk3OClcIixcIlRlbmdlbiAoOTc44oCTOTgzKVwiLFwiRWlrYW4gKDk4M+KAkzk4NSlcIixcIkthbm5hICg5ODXigJM5ODcpXCIsXCJFaWVuICg5ODfigJM5ODkpXCIsXCJFaXNvICg5ODnigJM5OTApXCIsXCJTaMWNcnlha3UgKDk5MOKAkzk5NSlcIixcIkNoxY10b2t1ICg5OTXigJM5OTkpXCIsXCJDaMWNaMWNICg5OTnigJMxMDA0KVwiLFwiS2Fua8WNICgxMDA04oCTMTAxMilcIixcIkNoxY13YSAoMTAxMuKAkzEwMTcpXCIsXCJLYW5uaW4gKDEwMTfigJMxMDIxKVwiLFwiSmlhbiAoMTAyMeKAkzEwMjQpXCIsXCJNYW5qdSAoMTAyNOKAkzEwMjgpXCIsXCJDaMWNZ2VuICgxMDI44oCTMTAzNylcIixcIkNoxY1yeWFrdSAoMTAzN+KAkzEwNDApXCIsXCJDaMWNa3nFqyAoMTA0MOKAkzEwNDQpXCIsXCJLYW50b2t1ICgxMDQ04oCTMTA0NilcIixcIkVpc2jFjSAoMTA0NuKAkzEwNTMpXCIsXCJUZW5naSAoMTA1M+KAkzEwNTgpXCIsXCJLxY1oZWkgKDEwNTjigJMxMDY1KVwiLFwiSmlyeWFrdSAoMTA2NeKAkzEwNjkpXCIsXCJFbmt5xasgKDEwNjnigJMxMDc0KVwiLFwiU2jFjWhvICgxMDc04oCTMTA3NylcIixcIlNoxY1yeWFrdSAoMTA3N+KAkzEwODEpXCIsXCJFaWjFjSAoMTA4MeKAkzEwODQpXCIsXCLFjHRva3UgKDEwODTigJMxMDg3KVwiLFwiS2FuamkgKDEwODfigJMxMDk0KVwiLFwiS2FoxY0gKDEwOTTigJMxMDk2KVwiLFwiRWljaMWNICgxMDk24oCTMTA5NylcIixcIkrFjXRva3UgKDEwOTfigJMxMDk5KVwiLFwiS8WNd2EgKDEwOTnigJMxMTA0KVwiLFwiQ2jFjWppICgxMTA04oCTMTEwNilcIixcIkthc2jFjSAoMTEwNuKAkzExMDgpXCIsXCJUZW5uaW4gKDExMDjigJMxMTEwKVwiLFwiVGVuLWVpICgxMTEwLTExMTMpXCIsXCJFaWt5xasgKDExMTPigJMxMTE4KVwiLFwiR2Vu4oCZZWkgKDExMTjigJMxMTIwKVwiLFwiSMWNYW4gKDExMjDigJMxMTI0KVwiLFwiVGVuamkgKDExMjTigJMxMTI2KVwiLFwiRGFpamkgKDExMjbigJMxMTMxKVwiLFwiVGVuc2jFjSAoMTEzMeKAkzExMzIpXCIsXCJDaMWNc2jFjSAoMTEzMuKAkzExMzUpXCIsXCJIxY1lbiAoMTEzNeKAkzExNDEpXCIsXCJFaWppICgxMTQx4oCTMTE0MilcIixcIkvFjWppICgxMTQy4oCTMTE0NClcIixcIlRlbuKAmXnFjSAoMTE0NOKAkzExNDUpXCIsXCJLecWrYW4gKDExNDXigJMxMTUxKVwiLFwiTmlucGVpICgxMTUx4oCTMTE1NClcIixcIkt5xatqdSAoMTE1NOKAkzExNTYpXCIsXCJIxY1nZW4gKDExNTbigJMxMTU5KVwiLFwiSGVpamkgKDExNTnigJMxMTYwKVwiLFwiRWlyeWFrdSAoMTE2MOKAkzExNjEpXCIsXCLFjGhvICgxMTYx4oCTMTE2MylcIixcIkNoxY1rYW4gKDExNjPigJMxMTY1KVwiLFwiRWltYW4gKDExNjXigJMxMTY2KVwiLFwiTmlu4oCZYW4gKDExNjbigJMxMTY5KVwiLFwiS2HFjSAoMTE2OeKAkzExNzEpXCIsXCJTaMWNYW4gKDExNzHigJMxMTc1KVwiLFwiQW5nZW4gKDExNzXigJMxMTc3KVwiLFwiSmlzaMWNICgxMTc34oCTMTE4MSlcIixcIlnFjXdhICgxMTgx4oCTMTE4MilcIixcIkp1ZWkgKDExODLigJMxMTg0KVwiLFwiR2Vucnlha3UgKDExODTigJMxMTg1KVwiLFwiQnVuamkgKDExODXigJMxMTkwKVwiLFwiS2Vua3nFqyAoMTE5MOKAkzExOTkpXCIsXCJTaMWNamkgKDExOTnigJMxMjAxKVwiLFwiS2VubmluICgxMjAx4oCTMTIwNClcIixcIkdlbmt5xasgKDEyMDTigJMxMjA2KVwiLFwiS2Vu4oCZZWkgKDEyMDbigJMxMjA3KVwiLFwiSsWNZ2VuICgxMjA34oCTMTIxMSlcIixcIktlbnJ5YWt1ICgxMjEx4oCTMTIxMylcIixcIktlbnDFjSAoMTIxM+KAkzEyMTkpXCIsXCJKxY1recWrICgxMjE54oCTMTIyMilcIixcIkrFjcWNICgxMjIy4oCTMTIyNClcIixcIkdlbm5pbiAoMTIyNOKAkzEyMjUpXCIsXCJLYXJva3UgKDEyMjXigJMxMjI3KVwiLFwiQW50ZWkgKDEyMjfigJMxMjI5KVwiLFwiS2Fua2kgKDEyMjnigJMxMjMyKVwiLFwiSsWNZWkgKDEyMzLigJMxMjMzKVwiLFwiVGVucHVrdSAoMTIzM+KAkzEyMzQpXCIsXCJCdW5yeWFrdSAoMTIzNOKAkzEyMzUpXCIsXCJLYXRlaSAoMTIzNeKAkzEyMzgpXCIsXCJSeWFrdW5pbiAoMTIzOOKAkzEyMzkpXCIsXCJFbuKAmcWNICgxMjM54oCTMTI0MClcIixcIk5pbmppICgxMjQw4oCTMTI0MylcIixcIkthbmdlbiAoMTI0M+KAkzEyNDcpXCIsXCJIxY1qaSAoMTI0N+KAkzEyNDkpXCIsXCJLZW5jaMWNICgxMjQ54oCTMTI1NilcIixcIkvFjWdlbiAoMTI1NuKAkzEyNTcpXCIsXCJTaMWNa2EgKDEyNTfigJMxMjU5KVwiLFwiU2jFjWdlbiAoMTI1OeKAkzEyNjApXCIsXCJCdW7igJnFjSAoMTI2MOKAkzEyNjEpXCIsXCJLxY1jaMWNICgxMjYx4oCTMTI2NClcIixcIkJ1buKAmWVpICgxMjY04oCTMTI3NSlcIixcIktlbmppICgxMjc14oCTMTI3OClcIixcIkvFjWFuICgxMjc44oCTMTI4OClcIixcIlNoxY3FjSAoMTI4OOKAkzEyOTMpXCIsXCJFaW5pbiAoMTI5M+KAkzEyOTkpXCIsXCJTaMWNYW4gKDEyOTnigJMxMzAyKVwiLFwiS2VuZ2VuICgxMzAy4oCTMTMwMylcIixcIkthZ2VuICgxMzAz4oCTMTMwNilcIixcIlRva3VqaSAoMTMwNuKAkzEzMDgpXCIsXCJFbmt5xY0gKDEzMDjigJMxMzExKVwiLFwixYxjaMWNICgxMzEx4oCTMTMxMilcIixcIlNoxY13YSAoMTMxMuKAkzEzMTcpXCIsXCJCdW5wxY0gKDEzMTfigJMxMzE5KVwiLFwiR2VuxY0gKDEzMTnigJMxMzIxKVwiLFwiR2Vua8WNICgxMzIx4oCTMTMyNClcIixcIlNoxY1jaMWrICgxMzI04oCTMTMyNilcIixcIkthcnlha3UgKDEzMjbigJMxMzI5KVwiLFwiR2VudG9rdSAoMTMyOeKAkzEzMzEpXCIsXCJHZW5rxY0gKDEzMzHigJMxMzM0KVwiLFwiS2VubXUgKDEzMzTigJMxMzM2KVwiLFwiRW5nZW4gKDEzMzbigJMxMzQwKVwiLFwiS8WNa29rdSAoMTM0MOKAkzEzNDYpXCIsXCJTaMWNaGVpICgxMzQ24oCTMTM3MClcIixcIktlbnRva3UgKDEzNzDigJMxMzcyKVwiLFwiQnVuY2jFqyAoMTM3MuKAkzEzNzUpXCIsXCJUZW5qdSAoMTM3NeKAkzEzNzkpXCIsXCJLxY1yeWFrdSAoMTM3OeKAkzEzODEpXCIsXCJLxY13YSAoMTM4MeKAkzEzODQpXCIsXCJHZW5jaMWrICgxMzg04oCTMTM5MilcIixcIk1laXRva3UgKDEzODTigJMxMzg3KVwiLFwiS2FrZWkgKDEzODfigJMxMzg5KVwiLFwiS8WNxY0gKDEzODnigJMxMzkwKVwiLFwiTWVpdG9rdSAoMTM5MOKAkzEzOTQpXCIsXCLFjGVpICgxMzk04oCTMTQyOClcIixcIlNoxY1jaMWNICgxNDI44oCTMTQyOSlcIixcIkVpa3nFjSAoMTQyOeKAkzE0NDEpXCIsXCJLYWtpdHN1ICgxNDQx4oCTMTQ0NClcIixcIkJ1buKAmWFuICgxNDQ04oCTMTQ0OSlcIixcIkjFjXRva3UgKDE0NDnigJMxNDUyKVwiLFwiS3nFjXRva3UgKDE0NTLigJMxNDU1KVwiLFwiS8WNc2jFjSAoMTQ1NeKAkzE0NTcpXCIsXCJDaMWNcm9rdSAoMTQ1N+KAkzE0NjApXCIsXCJLYW5zaMWNICgxNDYw4oCTMTQ2NilcIixcIkJ1bnNoxY0gKDE0NjbigJMxNDY3KVwiLFwixYxuaW4gKDE0NjfigJMxNDY5KVwiLFwiQnVubWVpICgxNDY54oCTMTQ4NylcIixcIkNoxY1recWNICgxNDg34oCTMTQ4OSlcIixcIkVudG9rdSAoMTQ4OeKAkzE0OTIpXCIsXCJNZWnFjSAoMTQ5MuKAkzE1MDEpXCIsXCJCdW5raSAoMTUwMeKAkzE1MDQpXCIsXCJFaXNoxY0gKDE1MDTigJMxNTIxKVwiLFwiVGFpZWkgKDE1MjHigJMxNTI4KVwiLFwiS3nFjXJva3UgKDE1MjjigJMxNTMyKVwiLFwiVGVuYnVuICgxNTMy4oCTMTU1NSlcIixcIkvFjWppICgxNTU14oCTMTU1OClcIixcIkVpcm9rdSAoMTU1OOKAkzE1NzApXCIsXCJHZW5raSAoMTU3MOKAkzE1NzMpXCIsXCJUZW5zaMWNICgxNTcz4oCTMTU5MilcIixcIkJ1bnJva3UgKDE1OTLigJMxNTk2KVwiLFwiS2VpY2jFjSAoMTU5NuKAkzE2MTUpXCIsXCJHZW5uYSAoMTYxNeKAkzE2MjQpXCIsXCJLYW7igJllaSAoMTYyNOKAkzE2NDQpXCIsXCJTaMWNaG8gKDE2NDTigJMxNjQ4KVwiLFwiS2VpYW4gKDE2NDjigJMxNjUyKVwiLFwiSsWNxY0gKDE2NTLigJMxNjU1KVwiLFwiTWVpcmVraSAoMTY1NeKAkzE2NTgpXCIsXCJNYW5qaSAoMTY1OOKAkzE2NjEpXCIsXCJLYW5idW4gKDE2NjHigJMxNjczKVwiLFwiRW5wxY0gKDE2NzPigJMxNjgxKVwiLFwiVGVubmEgKDE2ODHigJMxNjg0KVwiLFwiSsWNa3nFjSAoMTY4NOKAkzE2ODgpXCIsXCJHZW5yb2t1ICgxNjg44oCTMTcwNClcIixcIkjFjWVpICgxNzA04oCTMTcxMSlcIixcIlNoxY10b2t1ICgxNzEx4oCTMTcxNilcIixcIkt5xY1oxY0gKDE3MTbigJMxNzM2KVwiLFwiR2VuYnVuICgxNzM24oCTMTc0MSlcIixcIkthbnDFjSAoMTc0MeKAkzE3NDQpXCIsXCJFbmt5xY0gKDE3NDTigJMxNzQ4KVwiLFwiS2Fu4oCZZW4gKDE3NDjigJMxNzUxKVwiLFwiSMWNcmVraSAoMTc1MeKAkzE3NjQpXCIsXCJNZWl3YSAoMTc2NOKAkzE3NzIpXCIsXCJBbuKAmWVpICgxNzcy4oCTMTc4MSlcIixcIlRlbm1laSAoMTc4MeKAkzE3ODkpXCIsXCJLYW5zZWkgKDE3ODnigJMxODAxKVwiLFwiS3nFjXdhICgxODAx4oCTMTgwNClcIixcIkJ1bmthICgxODA04oCTMTgxOClcIixcIkJ1bnNlaSAoMTgxOOKAkzE4MzApXCIsXCJUZW5wxY0gKDE4MzDigJMxODQ0KVwiLFwiS8WNa2EgKDE4NDTigJMxODQ4KVwiLFwiS2FlaSAoMTg0OOKAkzE4NTQpXCIsXCJBbnNlaSAoMTg1NOKAkzE4NjApXCIsXCJNYW7igJllbiAoMTg2MOKAkzE4NjEpXCIsXCJCdW5recWrICgxODYx4oCTMTg2NClcIixcIkdlbmppICgxODY04oCTMTg2NSlcIixcIktlacWNICgxODY14oCTMTg2OClcIixcIk1laWppXCIsXCJUYWlzaMWNXCIsXCJTaMWNd2FcIixcIkhlaXNlaVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LHBlcnNpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiRmFyd2FyZGluXCIsXCJPcmRpYmVoZXN6dFwiLFwiQ2hvcmTEgWRcIixcIlRpclwiLFwiTW9yZMSBZFwiLFwiU3phaHJpd2FyXCIsXCJNZWhyXCIsXCLEgGLEgW5cIixcIsSAc2FyXCIsXCJEw6lpXCIsXCJCYWhtYW5cIixcIkVzZmFuZFwiXSxsb25nOltcIkZhcndhcmRpblwiLFwiT3JkaWJlaGVzenRcIixcIkNob3JkxIFkXCIsXCJUaXJcIixcIk1vcmTEgWRcIixcIlN6YWhyaXdhclwiLFwiTWVoclwiLFwixIBixIFuXCIsXCLEgHNhclwiLFwiRMOpaVwiLFwiQmFobWFuXCIsXCJFc2ZhbmRcIl19LGRheXM6e25hcnJvdzpbXCJOXCIsXCJQXCIsXCJXXCIsXCLFmlwiLFwiQ1wiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuaWVkei5cIixcInBvbi5cIixcInd0LlwiLFwixZtyLlwiLFwiY3p3LlwiLFwicHQuXCIsXCJzb2IuXCJdLGxvbmc6W1wibmllZHppZWxhXCIsXCJwb25pZWR6aWHFgmVrXCIsXCJ3dG9yZWtcIixcIsWbcm9kYVwiLFwiY3p3YXJ0ZWtcIixcInBpxIV0ZWtcIixcInNvYm90YVwiXX0sZXJhczp7bmFycm93OltcIkFQXCJdLHNob3J0OltcIkFQXCJdLGxvbmc6W1wiQVBcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxyb2M6e21vbnRoczp7bmFycm93OltcInNcIixcImxcIixcIm1cIixcImtcIixcIm1cIixcImNcIixcImxcIixcInNcIixcIndcIixcInBcIixcImxcIixcImdcIl0sc2hvcnQ6W1wic3R5XCIsXCJsdXRcIixcIm1hclwiLFwia3dpXCIsXCJtYWpcIixcImN6ZVwiLFwibGlwXCIsXCJzaWVcIixcIndyelwiLFwicGHFulwiLFwibGlzXCIsXCJncnVcIl0sbG9uZzpbXCJzdHljem5pYVwiLFwibHV0ZWdvXCIsXCJtYXJjYVwiLFwia3dpZXRuaWFcIixcIm1hamFcIixcImN6ZXJ3Y2FcIixcImxpcGNhXCIsXCJzaWVycG5pYVwiLFwid3J6ZcWbbmlhXCIsXCJwYcW6ZHppZXJuaWthXCIsXCJsaXN0b3BhZGFcIixcImdydWRuaWFcIl19LGRheXM6e25hcnJvdzpbXCJOXCIsXCJQXCIsXCJXXCIsXCLFmlwiLFwiQ1wiLFwiUFwiLFwiU1wiXSxzaG9ydDpbXCJuaWVkei5cIixcInBvbi5cIixcInd0LlwiLFwixZtyLlwiLFwiY3p3LlwiLFwicHQuXCIsXCJzb2IuXCJdLGxvbmc6W1wibmllZHppZWxhXCIsXCJwb25pZWR6aWHFgmVrXCIsXCJ3dG9yZWtcIixcIsWbcm9kYVwiLFwiY3p3YXJ0ZWtcIixcInBpxIV0ZWtcIixcInNvYm90YVwiXX0sZXJhczp7bmFycm93OltcIlByemVkIFJPQ1wiLFwiUk9DXCJdLHNob3J0OltcIlByemVkIFJPQ1wiLFwiUk9DXCJdLGxvbmc6W1wiUHJ6ZWQgUk9DXCIsXCJST0NcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fX19LG51bWJlcjp7bnU6W1wibGF0blwiXSxwYXR0ZXJuczp7ZGVjaW1hbDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9XCJ9LGN1cnJlbmN5Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfcKge2N1cnJlbmN5fVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn3CoHtjdXJyZW5jeX1cIn0scGVyY2VudDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn17cGVyY2VudFNpZ259XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfXtwZXJjZW50U2lnbn1cIn19LHN5bWJvbHM6e2xhdG46e2RlY2ltYWw6XCIsXCIsZ3JvdXA6XCLCoFwiLG5hbjpcIk5hTlwiLHBsdXNTaWduOlwiK1wiLG1pbnVzU2lnbjpcIi1cIixwZXJjZW50U2lnbjpcIiVcIixpbmZpbml0eTpcIuKInlwifX0sY3VycmVuY2llczp7QlJMOlwiUiRcIixFVVI6XCLigqxcIixQTE46XCJ6xYJcIixYQUY6XCJGQ0ZBXCIsWENEOlwiRUMkXCIsWE9GOlwiQ0ZBXCIsWFBGOlwiQ0ZQRlwifX19KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9pbnRsL2xvY2FsZS1kYXRhL2pzb25wL3BsLmpzXG4vLyBtb2R1bGUgaWQgPSAyMjdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIkludGxQb2x5ZmlsbC5fX2FkZExvY2FsZURhdGEoe2xvY2FsZTpcInB0XCIsZGF0ZTp7Y2E6W1wiZ3JlZ29yeVwiLFwiYnVkZGhpc3RcIixcImNoaW5lc2VcIixcImNvcHRpY1wiLFwiZGFuZ2lcIixcImV0aGlvYWFcIixcImV0aGlvcGljXCIsXCJnZW5lcmljXCIsXCJoZWJyZXdcIixcImluZGlhblwiLFwiaXNsYW1pY1wiLFwiaXNsYW1pY2NcIixcImphcGFuZXNlXCIsXCJwZXJzaWFuXCIsXCJyb2NcIl0saG91ck5vMDp0cnVlLGhvdXIxMjpmYWxzZSxmb3JtYXRzOntzaG9ydDpcInsxfSB7MH1cIixtZWRpdW06XCJ7MX0gezB9XCIsZnVsbDpcInsxfSB7MH1cIixsb25nOlwiezF9IHswfVwiLGF2YWlsYWJsZUZvcm1hdHM6e1wiZFwiOlwiZFwiLFwiRVwiOlwiY2NjXCIsRWQ6XCJFLCBkXCIsRWhtOlwiRSwgaDptbSBhXCIsRUhtOlwiRSwgSEg6bW1cIixFaG1zOlwiRSwgaDptbTpzcyBhXCIsRUhtczpcIkUsIEhIOm1tOnNzXCIsR3k6XCJ5IEdcIixHeU1NTTpcIk1NTSAnZGUnIHkgR1wiLEd5TU1NZDpcImQgJ2RlJyBNTU0gJ2RlJyB5IEdcIixHeU1NTUVkOlwiRSwgZCAnZGUnIE1NTSAnZGUnIHkgR1wiLFwiaFwiOlwiaCBhXCIsXCJIXCI6XCJISFwiLGhtOlwiaDptbSBhXCIsSG06XCJISDptbVwiLGhtczpcImg6bW06c3MgYVwiLEhtczpcIkhIOm1tOnNzXCIsaG1zdjpcImg6bW06c3MgYSB2XCIsSG1zdjpcIkhIOm1tOnNzIHZcIixobXY6XCJoOm1tIGEgdlwiLEhtdjpcIkhIOm1tIHZcIixcIk1cIjpcIkxcIixNZDpcImQvTVwiLE1FZDpcIkUsIGRkL01NXCIsTU1kZDpcImRkL01NXCIsTU1NOlwiTExMXCIsTU1NZDpcImQgJ2RlJyBNTU1cIixNTU1FZDpcIkUsIGQgJ2RlJyBNTU1cIixNTU1NZDpcImQgJ2RlJyBNTU1NXCIsTU1NTUVkOlwiRSwgZCAnZGUnIE1NTU1cIixtczpcIm1tOnNzXCIsXCJ5XCI6XCJ5XCIseU06XCJNTS95XCIseU1kOlwiZGQvTU0veVwiLHlNRWQ6XCJFLCBkZC9NTS95XCIseU1NOlwiTU0veVwiLHlNTU06XCJNTU0gJ2RlJyB5XCIseU1NTWQ6XCJkICdkZScgTU1NICdkZScgeVwiLHlNTU1FZDpcIkUsIGQgJ2RlJyBNTU0gJ2RlJyB5XCIseU1NTU06XCJNTU1NICdkZScgeVwiLHlNTU1NZDpcImQgJ2RlJyBNTU1NICdkZScgeVwiLHlNTU1NRWQ6XCJFLCBkICdkZScgTU1NTSAnZGUnIHlcIix5UVFROlwieSBRUVFcIix5UVFRUTpcInkgUVFRUVwifSxkYXRlRm9ybWF0czp7eU1NTU1FRUVFZDpcIkVFRUUsIGQgJ2RlJyBNTU1NICdkZScgeVwiLHlNTU1NZDpcImQgJ2RlJyBNTU1NICdkZScgeVwiLHlNTU1kOlwiZCAnZGUnIE1NTSAnZGUnIHlcIix5TWQ6XCJkZC9NTS95eVwifSx0aW1lRm9ybWF0czp7aG1tc3N6enp6OlwiSEg6bW06c3Mgenp6elwiLGhtc3o6XCJISDptbTpzcyB6XCIsaG1zOlwiSEg6bW06c3NcIixobTpcIkhIOm1tXCJ9fSxjYWxlbmRhcnM6e2J1ZGRoaXN0Onttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImphblwiLFwiZmV2XCIsXCJtYXJcIixcImFiclwiLFwibWFpXCIsXCJqdW5cIixcImp1bFwiLFwiYWdvXCIsXCJzZXRcIixcIm91dFwiLFwibm92XCIsXCJkZXpcIl0sbG9uZzpbXCJqYW5laXJvXCIsXCJmZXZlcmVpcm9cIixcIm1hcsOnb1wiLFwiYWJyaWxcIixcIm1haW9cIixcImp1bmhvXCIsXCJqdWxob1wiLFwiYWdvc3RvXCIsXCJzZXRlbWJyb1wiLFwib3V0dWJyb1wiLFwibm92ZW1icm9cIixcImRlemVtYnJvXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiU1wiLFwiVFwiLFwiUVwiLFwiUVwiLFwiU1wiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcInNlZ1wiLFwidGVyXCIsXCJxdWFcIixcInF1aVwiLFwic2V4XCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwic2VndW5kYS1mZWlyYVwiLFwidGVyw6dhLWZlaXJhXCIsXCJxdWFydGEtZmVpcmFcIixcInF1aW50YS1mZWlyYVwiLFwic2V4dGEtZmVpcmFcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJCRVwiXSxzaG9ydDpbXCJCRVwiXSxsb25nOltcIkJFXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sY2hpbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNw6pzIDFcIixcIk3DqnMgMlwiLFwiTcOqcyAzXCIsXCJNw6pzIDRcIixcIk3DqnMgNVwiLFwiTcOqcyA2XCIsXCJNw6pzIDdcIixcIk3DqnMgOFwiLFwiTcOqcyA5XCIsXCJNw6pzIDEwXCIsXCJNw6pzIDExXCIsXCJNw6pzIDEyXCJdLGxvbmc6W1wiTcOqcyAxXCIsXCJNw6pzIDJcIixcIk3DqnMgM1wiLFwiTcOqcyA0XCIsXCJNw6pzIDVcIixcIk3DqnMgNlwiLFwiTcOqcyA3XCIsXCJNw6pzIDhcIixcIk3DqnMgOVwiLFwiTcOqcyAxMFwiLFwiTcOqcyAxMVwiLFwiTcOqcyAxMlwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIlNcIixcIlRcIixcIlFcIixcIlFcIixcIlNcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJzZWdcIixcInRlclwiLFwicXVhXCIsXCJxdWlcIixcInNleFwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcInNlZ3VuZGEtZmVpcmFcIixcInRlcsOnYS1mZWlyYVwiLFwicXVhcnRhLWZlaXJhXCIsXCJxdWludGEtZmVpcmFcIixcInNleHRhLWZlaXJhXCIsXCJzw6FiYWRvXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sY29wdGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJUb3V0XCIsXCJCYWJhXCIsXCJIYXRvclwiLFwiS2lhaGtcIixcIlRvYmFcIixcIkFtc2hpclwiLFwiQmFyYW1oYXRcIixcIkJhcmFtb3VkYVwiLFwiQmFzaGFuc1wiLFwiUGFvbmFcIixcIkVwZXBcIixcIk1lc3JhXCIsXCJOYXNpZVwiXSxsb25nOltcIlRvdXRcIixcIkJhYmFcIixcIkhhdG9yXCIsXCJLaWFoa1wiLFwiVG9iYVwiLFwiQW1zaGlyXCIsXCJCYXJhbWhhdFwiLFwiQmFyYW1vdWRhXCIsXCJCYXNoYW5zXCIsXCJQYW9uYVwiLFwiRXBlcFwiLFwiTWVzcmFcIixcIk5hc2llXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiU1wiLFwiVFwiLFwiUVwiLFwiUVwiLFwiU1wiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcInNlZ1wiLFwidGVyXCIsXCJxdWFcIixcInF1aVwiLFwic2V4XCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwic2VndW5kYS1mZWlyYVwiLFwidGVyw6dhLWZlaXJhXCIsXCJxdWFydGEtZmVpcmFcIixcInF1aW50YS1mZWlyYVwiLFwic2V4dGEtZmVpcmFcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTcOqcyAxXCIsXCJNw6pzIDJcIixcIk3DqnMgM1wiLFwiTcOqcyA0XCIsXCJNw6pzIDVcIixcIk3DqnMgNlwiLFwiTcOqcyA3XCIsXCJNw6pzIDhcIixcIk3DqnMgOVwiLFwiTcOqcyAxMFwiLFwiTcOqcyAxMVwiLFwiTcOqcyAxMlwiXSxsb25nOltcIk3DqnMgMVwiLFwiTcOqcyAyXCIsXCJNw6pzIDNcIixcIk3DqnMgNFwiLFwiTcOqcyA1XCIsXCJNw6pzIDZcIixcIk3DqnMgN1wiLFwiTcOqcyA4XCIsXCJNw6pzIDlcIixcIk3DqnMgMTBcIixcIk3DqnMgMTFcIixcIk3DqnMgMTJcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJTXCIsXCJUXCIsXCJRXCIsXCJRXCIsXCJTXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwic2VnXCIsXCJ0ZXJcIixcInF1YVwiLFwicXVpXCIsXCJzZXhcIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJzZWd1bmRhLWZlaXJhXCIsXCJ0ZXLDp2EtZmVpcmFcIixcInF1YXJ0YS1mZWlyYVwiLFwicXVpbnRhLWZlaXJhXCIsXCJzZXh0YS1mZWlyYVwiLFwic8OhYmFkb1wiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGV0aGlvcGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXSxsb25nOltcIk1lc2tlcmVtXCIsXCJUZWtlbXRcIixcIkhlZGFyXCIsXCJUYWhzYXNcIixcIlRlclwiLFwiWWVrYXRpdFwiLFwiTWVnYWJpdFwiLFwiTWlhemlhXCIsXCJHZW5ib3RcIixcIlNlbmVcIixcIkhhbWxlXCIsXCJOZWhhc3NlXCIsXCJQYWd1bWVuXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiU1wiLFwiVFwiLFwiUVwiLFwiUVwiLFwiU1wiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcInNlZ1wiLFwidGVyXCIsXCJxdWFcIixcInF1aVwiLFwic2V4XCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwic2VndW5kYS1mZWlyYVwiLFwidGVyw6dhLWZlaXJhXCIsXCJxdWFydGEtZmVpcmFcIixcInF1aW50YS1mZWlyYVwiLFwic2V4dGEtZmVpcmFcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0sZXRoaW9hYTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wiTWVza2VyZW1cIixcIlRla2VtdFwiLFwiSGVkYXJcIixcIlRhaHNhc1wiLFwiVGVyXCIsXCJZZWthdGl0XCIsXCJNZWdhYml0XCIsXCJNaWF6aWFcIixcIkdlbmJvdFwiLFwiU2VuZVwiLFwiSGFtbGVcIixcIk5laGFzc2VcIixcIlBhZ3VtZW5cIl0sbG9uZzpbXCJNZXNrZXJlbVwiLFwiVGVrZW10XCIsXCJIZWRhclwiLFwiVGFoc2FzXCIsXCJUZXJcIixcIllla2F0aXRcIixcIk1lZ2FiaXRcIixcIk1pYXppYVwiLFwiR2VuYm90XCIsXCJTZW5lXCIsXCJIYW1sZVwiLFwiTmVoYXNzZVwiLFwiUGFndW1lblwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIlNcIixcIlRcIixcIlFcIixcIlFcIixcIlNcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJzZWdcIixcInRlclwiLFwicXVhXCIsXCJxdWlcIixcInNleFwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcInNlZ3VuZGEtZmVpcmFcIixcInRlcsOnYS1mZWlyYVwiLFwicXVhcnRhLWZlaXJhXCIsXCJxdWludGEtZmVpcmFcIixcInNleHRhLWZlaXJhXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiXSxzaG9ydDpbXCJFUkEwXCJdLGxvbmc6W1wiRVJBMFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJTXCIsXCJUXCIsXCJRXCIsXCJRXCIsXCJTXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwic2VnXCIsXCJ0ZXJcIixcInF1YVwiLFwicXVpXCIsXCJzZXhcIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJzZWd1bmRhLWZlaXJhXCIsXCJ0ZXLDp2EtZmVpcmFcIixcInF1YXJ0YS1mZWlyYVwiLFwicXVpbnRhLWZlaXJhXCIsXCJzZXh0YS1mZWlyYVwiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxncmVnb3J5Onttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImphblwiLFwiZmV2XCIsXCJtYXJcIixcImFiclwiLFwibWFpXCIsXCJqdW5cIixcImp1bFwiLFwiYWdvXCIsXCJzZXRcIixcIm91dFwiLFwibm92XCIsXCJkZXpcIl0sbG9uZzpbXCJqYW5laXJvXCIsXCJmZXZlcmVpcm9cIixcIm1hcsOnb1wiLFwiYWJyaWxcIixcIm1haW9cIixcImp1bmhvXCIsXCJqdWxob1wiLFwiYWdvc3RvXCIsXCJzZXRlbWJyb1wiLFwib3V0dWJyb1wiLFwibm92ZW1icm9cIixcImRlemVtYnJvXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiU1wiLFwiVFwiLFwiUVwiLFwiUVwiLFwiU1wiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcInNlZ1wiLFwidGVyXCIsXCJxdWFcIixcInF1aVwiLFwic2V4XCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwic2VndW5kYS1mZWlyYVwiLFwidGVyw6dhLWZlaXJhXCIsXCJxdWFydGEtZmVpcmFcIixcInF1aW50YS1mZWlyYVwiLFwic2V4dGEtZmVpcmFcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJhLkMuXCIsXCJkLkMuXCIsXCJBRUNcIixcIkVDXCJdLHNob3J0OltcImEuQy5cIixcImQuQy5cIixcIkFFQ1wiLFwiRUNcIl0sbG9uZzpbXCJhbnRlcyBkZSBDcmlzdG9cIixcImRlcG9pcyBkZSBDcmlzdG9cIixcImFudGVzIGRhIEVyYSBDb211bVwiLFwiRXJhIENvbXVtXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saGVicmV3Onttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiLFwiN1wiXSxzaG9ydDpbXCJUaXNocmlcIixcIkhlc2h2YW5cIixcIktpc2xldlwiLFwiVGV2ZXRcIixcIlNoZXZhdFwiLFwiQWRhciBJXCIsXCJBZGFyXCIsXCJOaXNhblwiLFwiSXlhclwiLFwiU2l2YW5cIixcIlRhbXV6XCIsXCJBdlwiLFwiRWx1bFwiLFwiQWRhciBJSVwiXSxsb25nOltcIlRpc2hyaVwiLFwiSGVzaHZhblwiLFwiS2lzbGV2XCIsXCJUZXZldFwiLFwiU2hldmF0XCIsXCJBZGFyIElcIixcIkFkYXJcIixcIk5pc2FuXCIsXCJJeWFyXCIsXCJTaXZhblwiLFwiVGFtdXpcIixcIkF2XCIsXCJFbHVsXCIsXCJBZGFyIElJXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiU1wiLFwiVFwiLFwiUVwiLFwiUVwiLFwiU1wiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcInNlZ1wiLFwidGVyXCIsXCJxdWFcIixcInF1aVwiLFwic2V4XCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwic2VndW5kYS1mZWlyYVwiLFwidGVyw6dhLWZlaXJhXCIsXCJxdWFydGEtZmVpcmFcIixcInF1aW50YS1mZWlyYVwiLFwic2V4dGEtZmVpcmFcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJBTVwiXSxzaG9ydDpbXCJBTVwiXSxsb25nOltcIkFNXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0saW5kaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIkNoYWl0cmFcIixcIlZhaXNha2hhXCIsXCJKeWFpc3RoYVwiLFwiQXNhZGhhXCIsXCJTcmF2YW5hXCIsXCJCaGFkcmFcIixcIkFzdmluYVwiLFwiS2FydGlrYVwiLFwiQWdyYWhheWFuYVwiLFwiUGF1c2FcIixcIk1hZ2hhXCIsXCJQaGFsZ3VuYVwiXSxsb25nOltcIkNoYWl0cmFcIixcIlZhaXNha2hhXCIsXCJKeWFpc3RoYVwiLFwiQXNhZGhhXCIsXCJTcmF2YW5hXCIsXCJCaGFkcmFcIixcIkFzdmluYVwiLFwiS2FydGlrYVwiLFwiQWdyYWhheWFuYVwiLFwiUGF1c2FcIixcIk1hZ2hhXCIsXCJQaGFsZ3VuYVwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIlNcIixcIlRcIixcIlFcIixcIlFcIixcIlNcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJzZWdcIixcInRlclwiLFwicXVhXCIsXCJxdWlcIixcInNleFwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcInNlZ3VuZGEtZmVpcmFcIixcInRlcsOnYS1mZWlyYVwiLFwicXVhcnRhLWZlaXJhXCIsXCJxdWludGEtZmVpcmFcIixcInNleHRhLWZlaXJhXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiU2FrYVwiXSxzaG9ydDpbXCJTYWthXCJdLGxvbmc6W1wiU2FrYVwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGlzbGFtaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTXVoLlwiLFwiU2FmLlwiLFwiUmFiLiBJXCIsXCJSYWIuIElJXCIsXCJKdW0uIElcIixcIkp1bS4gSUlcIixcIlJhai5cIixcIlNoYS5cIixcIlJhbS5cIixcIlNoYXcuXCIsXCJEaHXKu2wtUS5cIixcIkRodcq7bC1ILlwiXSxsb25nOltcIk11aGFycmFtXCIsXCJTYWZhclwiLFwiUmFiacq7IElcIixcIlJhYmnKuyBJSVwiLFwiSnVtYWRhIElcIixcIkp1bWFkYSBJSVwiLFwiUmFqYWJcIixcIlNoYcq7YmFuXCIsXCJSYW1hZGFuXCIsXCJTaGF3d2FsXCIsXCJEaHXKu2wtUWnKu2RhaFwiLFwiRGh1yrtsLUhpamphaFwiXX0sZGF5czp7bmFycm93OltcIkRcIixcIlNcIixcIlRcIixcIlFcIixcIlFcIixcIlNcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJzZWdcIixcInRlclwiLFwicXVhXCIsXCJxdWlcIixcInNleFwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcInNlZ3VuZGEtZmVpcmFcIixcInRlcsOnYS1mZWlyYVwiLFwicXVhcnRhLWZlaXJhXCIsXCJxdWludGEtZmVpcmFcIixcInNleHRhLWZlaXJhXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCJBTVwiLHBtOlwiUE1cIn19LGlzbGFtaWNjOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk11aC5cIixcIlNhZi5cIixcIlJhYi4gSVwiLFwiUmFiLiBJSVwiLFwiSnVtLiBJXCIsXCJKdW0uIElJXCIsXCJSYWouXCIsXCJTaGEuXCIsXCJSYW0uXCIsXCJTaGF3LlwiLFwiRGh1yrtsLVEuXCIsXCJEaHXKu2wtSC5cIl0sbG9uZzpbXCJNdWhhcnJhbVwiLFwiU2FmYXJcIixcIlJhYmnKuyBJXCIsXCJSYWJpyrsgSUlcIixcIkp1bWFkYSBJXCIsXCJKdW1hZGEgSUlcIixcIlJhamFiXCIsXCJTaGHKu2JhblwiLFwiUmFtYWRhblwiLFwiU2hhd3dhbFwiLFwiRGh1yrtsLVFpyrtkYWhcIixcIkRodcq7bC1IaWpqYWhcIl19LGRheXM6e25hcnJvdzpbXCJEXCIsXCJTXCIsXCJUXCIsXCJRXCIsXCJRXCIsXCJTXCIsXCJTXCJdLHNob3J0OltcImRvbVwiLFwic2VnXCIsXCJ0ZXJcIixcInF1YVwiLFwicXVpXCIsXCJzZXhcIixcInPDoWJcIl0sbG9uZzpbXCJkb21pbmdvXCIsXCJzZWd1bmRhLWZlaXJhXCIsXCJ0ZXLDp2EtZmVpcmFcIixcInF1YXJ0YS1mZWlyYVwiLFwicXVpbnRhLWZlaXJhXCIsXCJzZXh0YS1mZWlyYVwiLFwic8OhYmFkb1wiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxqYXBhbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiSlwiLFwiRlwiLFwiTVwiLFwiQVwiLFwiTVwiLFwiSlwiLFwiSlwiLFwiQVwiLFwiU1wiLFwiT1wiLFwiTlwiLFwiRFwiXSxzaG9ydDpbXCJqYW5cIixcImZldlwiLFwibWFyXCIsXCJhYnJcIixcIm1haVwiLFwianVuXCIsXCJqdWxcIixcImFnb1wiLFwic2V0XCIsXCJvdXRcIixcIm5vdlwiLFwiZGV6XCJdLGxvbmc6W1wiamFuZWlyb1wiLFwiZmV2ZXJlaXJvXCIsXCJtYXLDp29cIixcImFicmlsXCIsXCJtYWlvXCIsXCJqdW5ob1wiLFwianVsaG9cIixcImFnb3N0b1wiLFwic2V0ZW1icm9cIixcIm91dHVicm9cIixcIm5vdmVtYnJvXCIsXCJkZXplbWJyb1wiXX0sZGF5czp7bmFycm93OltcIkRcIixcIlNcIixcIlRcIixcIlFcIixcIlFcIixcIlNcIixcIlNcIl0sc2hvcnQ6W1wiZG9tXCIsXCJzZWdcIixcInRlclwiLFwicXVhXCIsXCJxdWlcIixcInNleFwiLFwic8OhYlwiXSxsb25nOltcImRvbWluZ29cIixcInNlZ3VuZGEtZmVpcmFcIixcInRlcsOnYS1mZWlyYVwiLFwicXVhcnRhLWZlaXJhXCIsXCJxdWludGEtZmVpcmFcIixcInNleHRhLWZlaXJhXCIsXCJzw6FiYWRvXCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTWVpamlcIixcIlRhaXNoxY1cIixcIlNoxY13YVwiLFwiSGVpc2VpXCJdLGxvbmc6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl19LGRheVBlcmlvZHM6e2FtOlwiQU1cIixwbTpcIlBNXCJ9fSxwZXJzaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIkZhcnZhcmRpblwiLFwiT3JkaWJlaGVzaHRcIixcIktob3JkYWRcIixcIlRpclwiLFwiTW9yZGFkXCIsXCJTaGFocml2YXJcIixcIk1laHJcIixcIkFiYW5cIixcIkF6YXJcIixcIkRleVwiLFwiQmFobWFuXCIsXCJFc2ZhbmRcIl0sbG9uZzpbXCJGYXJ2YXJkaW5cIixcIk9yZGliZWhlc2h0XCIsXCJLaG9yZGFkXCIsXCJUaXJcIixcIk1vcmRhZFwiLFwiU2hhaHJpdmFyXCIsXCJNZWhyXCIsXCJBYmFuXCIsXCJBemFyXCIsXCJEZXlcIixcIkJhaG1hblwiLFwiRXNmYW5kXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiU1wiLFwiVFwiLFwiUVwiLFwiUVwiLFwiU1wiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcInNlZ1wiLFwidGVyXCIsXCJxdWFcIixcInF1aVwiLFwic2V4XCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwic2VndW5kYS1mZWlyYVwiLFwidGVyw6dhLWZlaXJhXCIsXCJxdWFydGEtZmVpcmFcIixcInF1aW50YS1mZWlyYVwiLFwic2V4dGEtZmVpcmFcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJBUFwiXSxzaG9ydDpbXCJBUFwiXSxsb25nOltcIkFQXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX0scm9jOnttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImphblwiLFwiZmV2XCIsXCJtYXJcIixcImFiclwiLFwibWFpXCIsXCJqdW5cIixcImp1bFwiLFwiYWdvXCIsXCJzZXRcIixcIm91dFwiLFwibm92XCIsXCJkZXpcIl0sbG9uZzpbXCJqYW5laXJvXCIsXCJmZXZlcmVpcm9cIixcIm1hcsOnb1wiLFwiYWJyaWxcIixcIm1haW9cIixcImp1bmhvXCIsXCJqdWxob1wiLFwiYWdvc3RvXCIsXCJzZXRlbWJyb1wiLFwib3V0dWJyb1wiLFwibm92ZW1icm9cIixcImRlemVtYnJvXCJdfSxkYXlzOntuYXJyb3c6W1wiRFwiLFwiU1wiLFwiVFwiLFwiUVwiLFwiUVwiLFwiU1wiLFwiU1wiXSxzaG9ydDpbXCJkb21cIixcInNlZ1wiLFwidGVyXCIsXCJxdWFcIixcInF1aVwiLFwic2V4XCIsXCJzw6FiXCJdLGxvbmc6W1wiZG9taW5nb1wiLFwic2VndW5kYS1mZWlyYVwiLFwidGVyw6dhLWZlaXJhXCIsXCJxdWFydGEtZmVpcmFcIixcInF1aW50YS1mZWlyYVwiLFwic2V4dGEtZmVpcmFcIixcInPDoWJhZG9cIl19LGVyYXM6e25hcnJvdzpbXCJBbnRlcyBkZSBSLk8uQy5cIixcIlIuTy5DLlwiXSxzaG9ydDpbXCJBbnRlcyBkZSBSLk8uQy5cIixcIlIuTy5DLlwiXSxsb25nOltcIkFudGVzIGRlIFIuTy5DLlwiLFwiUi5PLkMuXCJdfSxkYXlQZXJpb2RzOnthbTpcIkFNXCIscG06XCJQTVwifX19fSxudW1iZXI6e251OltcImxhdG5cIl0scGF0dGVybnM6e2RlY2ltYWw6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfVwifSxjdXJyZW5jeTp7cG9zaXRpdmVQYXR0ZXJuOlwie2N1cnJlbmN5fXtudW1iZXJ9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17Y3VycmVuY3l9e251bWJlcn1cIn0scGVyY2VudDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn17cGVyY2VudFNpZ259XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfXtwZXJjZW50U2lnbn1cIn19LHN5bWJvbHM6e2xhdG46e2RlY2ltYWw6XCIsXCIsZ3JvdXA6XCIuXCIsbmFuOlwiTmFOXCIscGx1c1NpZ246XCIrXCIsbWludXNTaWduOlwiLVwiLHBlcmNlbnRTaWduOlwiJVwiLGluZmluaXR5Olwi4oieXCJ9fSxjdXJyZW5jaWVzOntBVUQ6XCJBVSRcIixCUkw6XCJSJFwiLENBRDpcIkNBJFwiLENOWTpcIkNOwqVcIixFVVI6XCLigqxcIixHQlA6XCLCo1wiLEhLRDpcIkhLJFwiLElMUzpcIuKCqlwiLElOUjpcIuKCuVwiLEpQWTpcIkpQwqVcIixLUlc6XCLigqlcIixNWE46XCJNWCRcIixOWkQ6XCJOWiRcIixQVEU6XCJFc2MuXCIsVEhCOlwi4Li/XCIsVFdEOlwiTlQkXCIsVVNEOlwiVVMkXCIsVk5EOlwi4oKrXCIsWEFGOlwiRkNGQVwiLFhDRDpcIkVDJFwiLFhPRjpcIkNGQVwiLFhQRjpcIkNGUEZcIn19fSk7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvaW50bC9sb2NhbGUtZGF0YS9qc29ucC9wdC5qc1xuLy8gbW9kdWxlIGlkID0gMjI4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJJbnRsUG9seWZpbGwuX19hZGRMb2NhbGVEYXRhKHtsb2NhbGU6XCJydVwiLGRhdGU6e2NhOltcImdyZWdvcnlcIixcImJ1ZGRoaXN0XCIsXCJjaGluZXNlXCIsXCJjb3B0aWNcIixcImRhbmdpXCIsXCJldGhpb2FhXCIsXCJldGhpb3BpY1wiLFwiZ2VuZXJpY1wiLFwiaGVicmV3XCIsXCJpbmRpYW5cIixcImlzbGFtaWNcIixcImlzbGFtaWNjXCIsXCJqYXBhbmVzZVwiLFwicGVyc2lhblwiLFwicm9jXCJdLGhvdXJObzA6dHJ1ZSxob3VyMTI6ZmFsc2UsZm9ybWF0czp7c2hvcnQ6XCJ7MX0sIHswfVwiLG1lZGl1bTpcInsxfSwgezB9XCIsZnVsbDpcInsxfSwgezB9XCIsbG9uZzpcInsxfSwgezB9XCIsYXZhaWxhYmxlRm9ybWF0czp7XCJkXCI6XCJkXCIsXCJFXCI6XCJjY2NcIixFZDpcImNjYywgZFwiLEVobTpcIkUgaDptbSBhXCIsRUhtOlwiRSBISDptbVwiLEVobXM6XCJFIGg6bW06c3MgYVwiLEVIbXM6XCJFIEhIOm1tOnNzXCIsR3k6XCJ5ICfQsycuIEdcIixHeU1NTTpcIkxMTCB5IEdcIixHeU1NTWQ6XCJkIE1NTSB5ICfQsycuIEdcIixHeU1NTUVkOlwiRSwgZCBNTU0geSAn0LMnLiBHXCIsXCJoXCI6XCJoIGFcIixcIkhcIjpcIkhcIixobTpcImg6bW0gYVwiLEhtOlwiSDptbVwiLGhtczpcImg6bW06c3MgYVwiLEhtczpcIkg6bW06c3NcIixobXN2OlwiaDptbTpzcyBhIHZcIixIbXN2OlwiSDptbTpzcyB2XCIsaG12OlwiaDptbSBhIHZcIixIbXY6XCJIOm1tIHZcIixcIk1cIjpcIkxcIixNZDpcImRkLk1NXCIsTUVkOlwiRSwgZGQuTU1cIixNTWRkOlwiZGQuTU1cIixNTU06XCJMTExcIixNTU1kOlwiZCBNTU1cIixNTU1FZDpcImNjYywgZCBNTU1cIixNTU1NZDpcImQgTU1NTVwiLG1zOlwibW06c3NcIixcInlcIjpcInlcIix5TTpcIk1NLnlcIix5TWQ6XCJkZC5NTS55XCIseU1FZDpcImNjYywgZC5NTS55ICfQsycuXCIseU1NOlwiTU0ueVwiLHlNTU06XCJMTEwgeSAn0LMnLlwiLHlNTU1kOlwiZCBNTU0geSAn0LMnLlwiLHlNTU1FZDpcIkUsIGQgTU1NIHkgJ9CzJy5cIix5TU1NTTpcIkxMTEwgeSAn0LMnLlwiLHlRUVE6XCJRUVEgeSAn0LMnLlwiLHlRUVFROlwiUVFRUSB5ICfQsycuXCJ9LGRhdGVGb3JtYXRzOnt5TU1NTUVFRUVkOlwiRUVFRSwgZCBNTU1NIHkgJ9CzJy5cIix5TU1NTWQ6XCJkIE1NTU0geSAn0LMnLlwiLHlNTU1kOlwiZCBNTU0geSAn0LMnLlwiLHlNZDpcImRkLk1NLnl5XCJ9LHRpbWVGb3JtYXRzOntobW1zc3p6eno6XCJIOm1tOnNzIHp6enpcIixobXN6OlwiSDptbTpzcyB6XCIsaG1zOlwiSDptbTpzc1wiLGhtOlwiSDptbVwifX0sY2FsZW5kYXJzOntidWRkaGlzdDp7bW9udGhzOntuYXJyb3c6W1wi0K9cIixcItCkXCIsXCLQnFwiLFwi0JBcIixcItCcXCIsXCLQmFwiLFwi0JhcIixcItCQXCIsXCLQoVwiLFwi0J5cIixcItCdXCIsXCLQlFwiXSxzaG9ydDpbXCLRj9C90LIuXCIsXCLRhNC10LLRgC5cIixcItC80LDRgC5cIixcItCw0L/RgC5cIixcItC80LDRj1wiLFwi0LjRjtC9LlwiLFwi0LjRjtC7LlwiLFwi0LDQstCzLlwiLFwi0YHQtdC90YIuXCIsXCLQvtC60YIuXCIsXCLQvdC+0Y/QsS5cIixcItC00LXQui5cIl0sbG9uZzpbXCLRj9C90LLQsNGA0Y9cIixcItGE0LXQstGA0LDQu9GPXCIsXCLQvNCw0YDRgtCwXCIsXCLQsNC/0YDQtdC70Y9cIixcItC80LDRj1wiLFwi0LjRjtC90Y9cIixcItC40Y7Qu9GPXCIsXCLQsNCy0LPRg9GB0YLQsFwiLFwi0YHQtdC90YLRj9Cx0YDRj1wiLFwi0L7QutGC0Y/QsdGA0Y9cIixcItC90L7Rj9Cx0YDRj1wiLFwi0LTQtdC60LDQsdGA0Y9cIl19LGRheXM6e25hcnJvdzpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLHNob3J0OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sbG9uZzpbXCLQstC+0YHQutGA0LXRgdC10L3RjNC1XCIsXCLQv9C+0L3QtdC00LXQu9GM0L3QuNC6XCIsXCLQstGC0L7RgNC90LjQulwiLFwi0YHRgNC10LTQsFwiLFwi0YfQtdGC0LLQtdGA0LNcIixcItC/0Y/RgtC90LjRhtCwXCIsXCLRgdGD0LHQsdC+0YLQsFwiXX0sZXJhczp7bmFycm93OltcIkJFXCJdLHNob3J0OltcIkJFXCJdLGxvbmc6W1wiQkVcIl19LGRheVBlcmlvZHM6e2FtOlwi0JTQn1wiLHBtOlwi0J/Qn1wifX0sY2hpbmVzZTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sc2hvcnQ6W1wi0LLRgVwiLFwi0L/QvVwiLFwi0LLRglwiLFwi0YHRgFwiLFwi0YfRglwiLFwi0L/RglwiLFwi0YHQsVwiXSxsb25nOltcItCy0L7RgdC60YDQtdGB0LXQvdGM0LVcIixcItC/0L7QvdC10LTQtdC70YzQvdC40LpcIixcItCy0YLQvtGA0L3QuNC6XCIsXCLRgdGA0LXQtNCwXCIsXCLRh9C10YLQstC10YDQs1wiLFwi0L/Rj9GC0L3QuNGG0LBcIixcItGB0YPQsdCx0L7RgtCwXCJdfSxkYXlQZXJpb2RzOnthbTpcItCU0J9cIixwbTpcItCf0J9cIn19LGNvcHRpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wi0KLQvtGCXCIsXCLQkdCw0LHRjVwiLFwi0KXQsNGC0YPRgFwiLFwi0JrQuNGF0LDQulwiLFwi0KLRg9Cx0Y1cIixcItCQ0LzRiNC40YBcIixcItCR0LDRgNCw0LzRhdCw0YJcIixcItCR0LDRgNC80YPQtNCwXCIsXCLQkdCw0YjQvdCw0YFcIixcItCR0LDRg9C90LBcIixcItCQ0LHQuNCxXCIsXCLQnNC40YHRgNCwXCIsXCLQndCw0YHQuFwiXSxsb25nOltcItCi0L7RglwiLFwi0JHQsNCx0Y1cIixcItCl0LDRgtGD0YBcIixcItCa0LjRhdCw0LpcIixcItCi0YPQsdGNXCIsXCLQkNC80YjQuNGAXCIsXCLQkdCw0YDQsNC80YXQsNGCXCIsXCLQkdCw0YDQvNGD0LTQsFwiLFwi0JHQsNGI0L3QsNGBXCIsXCLQkdCw0YPQvdCwXCIsXCLQkNCx0LjQsVwiLFwi0JzQuNGB0YDQsFwiLFwi0J3QsNGB0LhcIl19LGRheXM6e25hcnJvdzpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLHNob3J0OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sbG9uZzpbXCLQstC+0YHQutGA0LXRgdC10L3RjNC1XCIsXCLQv9C+0L3QtdC00LXQu9GM0L3QuNC6XCIsXCLQstGC0L7RgNC90LjQulwiLFwi0YHRgNC10LTQsFwiLFwi0YfQtdGC0LLQtdGA0LNcIixcItC/0Y/RgtC90LjRhtCwXCIsXCLRgdGD0LHQsdC+0YLQsFwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwi0JTQn1wiLHBtOlwi0J/Qn1wifX0sZGFuZ2k6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLHNob3J0OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sbG9uZzpbXCLQstC+0YHQutGA0LXRgdC10L3RjNC1XCIsXCLQv9C+0L3QtdC00LXQu9GM0L3QuNC6XCIsXCLQstGC0L7RgNC90LjQulwiLFwi0YHRgNC10LTQsFwiLFwi0YfQtdGC0LLQtdGA0LNcIixcItC/0Y/RgtC90LjRhtCwXCIsXCLRgdGD0LHQsdC+0YLQsFwiXX0sZGF5UGVyaW9kczp7YW06XCLQlNCfXCIscG06XCLQn9CfXCJ9fSxldGhpb3BpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wi0JzQtdGB0LrQtdGA0LXQvFwiLFwi0KLQtdC60LXQvNGCXCIsXCLQpdC10LTQsNGAXCIsXCLQotCw0YXRgdCw0YFcIixcItCi0LXRgFwiLFwi0K/QutCw0YLQuNGCXCIsXCLQnNCw0LPQsNCx0LjRglwiLFwi0JzQuNCw0LfQuNGPXCIsXCLQk9C10L3QsdC+0YJcIixcItCh0Y3QvdGNXCIsXCLQpdCw0LzQu9GNXCIsXCLQndCw0YXQsNGB0Y1cIixcItCt0L/QsNCz0L7QvNC10L1cIl0sbG9uZzpbXCLQnNC10YHQutC10YDQtdC8XCIsXCLQotC10LrQtdC80YJcIixcItCl0LXQtNCw0YBcIixcItCi0LDRhdGB0LDRgVwiLFwi0KLQtdGAXCIsXCLQr9C60LDRgtC40YJcIixcItCc0LDQs9Cw0LHQuNGCXCIsXCLQnNC40LDQt9C40Y9cIixcItCT0LXQvdCx0L7RglwiLFwi0KHRjdC90Y1cIixcItCl0LDQvNC70Y1cIixcItCd0LDRhdCw0YHRjVwiLFwi0K3Qv9Cw0LPQvtC80LXQvVwiXX0sZGF5czp7bmFycm93OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sc2hvcnQ6W1wi0LLRgVwiLFwi0L/QvVwiLFwi0LLRglwiLFwi0YHRgFwiLFwi0YfRglwiLFwi0L/RglwiLFwi0YHQsVwiXSxsb25nOltcItCy0L7RgdC60YDQtdGB0LXQvdGM0LVcIixcItC/0L7QvdC10LTQtdC70YzQvdC40LpcIixcItCy0YLQvtGA0L3QuNC6XCIsXCLRgdGA0LXQtNCwXCIsXCLRh9C10YLQstC10YDQs1wiLFwi0L/Rj9GC0L3QuNGG0LBcIixcItGB0YPQsdCx0L7RgtCwXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCLQlNCfXCIscG06XCLQn9CfXCJ9fSxldGhpb2FhOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCLQnNC10YHQutC10YDQtdC8XCIsXCLQotC10LrQtdC80YJcIixcItCl0LXQtNCw0YBcIixcItCi0LDRhdGB0LDRgVwiLFwi0KLQtdGAXCIsXCLQr9C60LDRgtC40YJcIixcItCc0LDQs9Cw0LHQuNGCXCIsXCLQnNC40LDQt9C40Y9cIixcItCT0LXQvdCx0L7RglwiLFwi0KHRjdC90Y1cIixcItCl0LDQvNC70Y1cIixcItCd0LDRhdCw0YHRjVwiLFwi0K3Qv9Cw0LPQvtC80LXQvVwiXSxsb25nOltcItCc0LXRgdC60LXRgNC10LxcIixcItCi0LXQutC10LzRglwiLFwi0KXQtdC00LDRgFwiLFwi0KLQsNGF0YHQsNGBXCIsXCLQotC10YBcIixcItCv0LrQsNGC0LjRglwiLFwi0JzQsNCz0LDQsdC40YJcIixcItCc0LjQsNC30LjRj1wiLFwi0JPQtdC90LHQvtGCXCIsXCLQodGN0L3RjVwiLFwi0KXQsNC80LvRjVwiLFwi0J3QsNGF0LDRgdGNXCIsXCLQrdC/0LDQs9C+0LzQtdC9XCJdfSxkYXlzOntuYXJyb3c6W1wi0LLRgVwiLFwi0L/QvVwiLFwi0LLRglwiLFwi0YHRgFwiLFwi0YfRglwiLFwi0L/RglwiLFwi0YHQsVwiXSxzaG9ydDpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLGxvbmc6W1wi0LLQvtGB0LrRgNC10YHQtdC90YzQtVwiLFwi0L/QvtC90LXQtNC10LvRjNC90LjQulwiLFwi0LLRgtC+0YDQvdC40LpcIixcItGB0YDQtdC00LBcIixcItGH0LXRgtCy0LXRgNCzXCIsXCLQv9GP0YLQvdC40YbQsFwiLFwi0YHRg9Cx0LHQvtGC0LBcIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCJdLHNob3J0OltcIkVSQTBcIl0sbG9uZzpbXCJFUkEwXCJdfSxkYXlQZXJpb2RzOnthbTpcItCU0J9cIixwbTpcItCf0J9cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLHNob3J0OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sbG9uZzpbXCLQstC+0YHQutGA0LXRgdC10L3RjNC1XCIsXCLQv9C+0L3QtdC00LXQu9GM0L3QuNC6XCIsXCLQstGC0L7RgNC90LjQulwiLFwi0YHRgNC10LTQsFwiLFwi0YfQtdGC0LLQtdGA0LNcIixcItC/0Y/RgtC90LjRhtCwXCIsXCLRgdGD0LHQsdC+0YLQsFwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwi0JTQn1wiLHBtOlwi0J/Qn1wifX0sZ3JlZ29yeTp7bW9udGhzOntuYXJyb3c6W1wi0K9cIixcItCkXCIsXCLQnFwiLFwi0JBcIixcItCcXCIsXCLQmFwiLFwi0JhcIixcItCQXCIsXCLQoVwiLFwi0J5cIixcItCdXCIsXCLQlFwiXSxzaG9ydDpbXCLRj9C90LIuXCIsXCLRhNC10LLRgC5cIixcItC80LDRgC5cIixcItCw0L/RgC5cIixcItC80LDRj1wiLFwi0LjRjtC9LlwiLFwi0LjRjtC7LlwiLFwi0LDQstCzLlwiLFwi0YHQtdC90YIuXCIsXCLQvtC60YIuXCIsXCLQvdC+0Y/QsS5cIixcItC00LXQui5cIl0sbG9uZzpbXCLRj9C90LLQsNGA0Y9cIixcItGE0LXQstGA0LDQu9GPXCIsXCLQvNCw0YDRgtCwXCIsXCLQsNC/0YDQtdC70Y9cIixcItC80LDRj1wiLFwi0LjRjtC90Y9cIixcItC40Y7Qu9GPXCIsXCLQsNCy0LPRg9GB0YLQsFwiLFwi0YHQtdC90YLRj9Cx0YDRj1wiLFwi0L7QutGC0Y/QsdGA0Y9cIixcItC90L7Rj9Cx0YDRj1wiLFwi0LTQtdC60LDQsdGA0Y9cIl19LGRheXM6e25hcnJvdzpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLHNob3J0OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sbG9uZzpbXCLQstC+0YHQutGA0LXRgdC10L3RjNC1XCIsXCLQv9C+0L3QtdC00LXQu9GM0L3QuNC6XCIsXCLQstGC0L7RgNC90LjQulwiLFwi0YHRgNC10LTQsFwiLFwi0YfQtdGC0LLQtdGA0LNcIixcItC/0Y/RgtC90LjRhtCwXCIsXCLRgdGD0LHQsdC+0YLQsFwiXX0sZXJhczp7bmFycm93OltcItC00L4g0L0u0Y0uXCIsXCLQvS7RjS5cIixcIkJDRVwiLFwiQ0VcIl0sc2hvcnQ6W1wi0LTQviDQvS4g0Y0uXCIsXCLQvS4g0Y0uXCIsXCJCQ0VcIixcIkNFXCJdLGxvbmc6W1wi0LTQviDQoNC+0LbQtNC10YHRgtCy0LAg0KXRgNC40YHRgtC+0LLQsFwiLFwi0L7RgiDQoNC+0LbQtNC10YHRgtCy0LAg0KXRgNC40YHRgtC+0LLQsFwiLFwi0LTQviDQvdCw0YjQtdC5INGN0YDRi1wiLFwi0L3QsNGI0LXQuSDRjdGA0YtcIl19LGRheVBlcmlvZHM6e2FtOlwi0JTQn1wiLHBtOlwi0J/Qn1wifX0saGVicmV3Onttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiLFwiN1wiXSxzaG9ydDpbXCLQotC40YjRgNC10LlcIixcItCl0LXRiNCy0LDQvVwiLFwi0JrQuNGB0LvQtdCyXCIsXCLQotC10LLQtdGCXCIsXCLQqNC10LLQsNGCXCIsXCLQkNC00LDRgCBJXCIsXCLQkNC00LDRgFwiLFwi0J3QuNGB0LDQvVwiLFwi0JjRj9GAXCIsXCLQodC40LLQsNC9XCIsXCLQotCw0LzQvNGD0LdcIixcItCQ0LJcIixcItCt0LvRg9C7XCIsXCLQkNC00LDRgCBJSVwiXSxsb25nOltcItCi0LjRiNGA0LXQuVwiLFwi0KXQtdGI0LLQsNC9XCIsXCLQmtC40YHQu9C10LJcIixcItCi0LXQstC10YJcIixcItCo0LXQstCw0YJcIixcItCQ0LTQsNGAIElcIixcItCQ0LTQsNGAXCIsXCLQndC40YHQsNC9XCIsXCLQmNGP0YBcIixcItCh0LjQstCw0L1cIixcItCi0LDQvNC80YPQt1wiLFwi0JDQslwiLFwi0K3Qu9GD0LtcIixcItCQ0LTQsNGAIElJXCJdfSxkYXlzOntuYXJyb3c6W1wi0LLRgVwiLFwi0L/QvVwiLFwi0LLRglwiLFwi0YHRgFwiLFwi0YfRglwiLFwi0L/RglwiLFwi0YHQsVwiXSxzaG9ydDpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLGxvbmc6W1wi0LLQvtGB0LrRgNC10YHQtdC90YzQtVwiLFwi0L/QvtC90LXQtNC10LvRjNC90LjQulwiLFwi0LLRgtC+0YDQvdC40LpcIixcItGB0YDQtdC00LBcIixcItGH0LXRgtCy0LXRgNCzXCIsXCLQv9GP0YLQvdC40YbQsFwiLFwi0YHRg9Cx0LHQvtGC0LBcIl19LGVyYXM6e25hcnJvdzpbXCJBTVwiXSxzaG9ydDpbXCJBTVwiXSxsb25nOltcIkFNXCJdfSxkYXlQZXJpb2RzOnthbTpcItCU0J9cIixwbTpcItCf0J9cIn19LGluZGlhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCLQp9Cw0LnRgtGA0LBcIixcItCS0LDQuNGB0LDQutGF0LBcIixcItCU0LbQsNC90YjRgtGF0LBcIixcItCQ0YHQsNC00YXQsFwiLFwi0KHRgNCw0LLQsNC90LBcIixcItCR0YXQsNC00YDQsFwiLFwi0JDQt9Cy0LjQvdCwXCIsXCLQmtCw0YDRgtC40LrQsFwiLFwi0JDQs9GA0LDRhdCw0LnQsNC90LBcIixcItCf0LDRg9C30LBcIixcItCc0LDQs9GF0LBcIixcItCf0YXQsNC70LPRg9C90LBcIl0sbG9uZzpbXCLQp9Cw0LnRgtGA0LBcIixcItCS0LDQuNGB0LDQutGF0LBcIixcItCU0LbQsNC90YjRgtGF0LBcIixcItCQ0YHQsNC00YXQsFwiLFwi0KHRgNCw0LLQsNC90LBcIixcItCR0YXQsNC00YDQsFwiLFwi0JDQt9Cy0LjQvdCwXCIsXCLQmtCw0YDRgtC40LrQsFwiLFwi0JDQs9GA0LDRhdCw0LnQsNC90LBcIixcItCf0LDRg9C30LBcIixcItCc0LDQs9GF0LBcIixcItCf0YXQsNC70LPRg9C90LBcIl19LGRheXM6e25hcnJvdzpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLHNob3J0OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sbG9uZzpbXCLQstC+0YHQutGA0LXRgdC10L3RjNC1XCIsXCLQv9C+0L3QtdC00LXQu9GM0L3QuNC6XCIsXCLQstGC0L7RgNC90LjQulwiLFwi0YHRgNC10LTQsFwiLFwi0YfQtdGC0LLQtdGA0LNcIixcItC/0Y/RgtC90LjRhtCwXCIsXCLRgdGD0LHQsdC+0YLQsFwiXX0sZXJhczp7bmFycm93OltcIlNha2FcIl0sc2hvcnQ6W1wiU2FrYVwiXSxsb25nOltcIlNha2FcIl19LGRheVBlcmlvZHM6e2FtOlwi0JTQn1wiLHBtOlwi0J/Qn1wifX0saXNsYW1pYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCLQnNGD0YXQsNGA0YDQsNC8XCIsXCLQodCw0YTQsNGAXCIsXCLQoNCw0LHQuC3Rg9C70Ywt0LDQstCy0LDQu9GMXCIsXCLQoNCw0LHQuC3Rg9C70Ywt0LDRhdC40YBcIixcItCU0LbRg9C80LDQtC3Rg9C70Ywt0LDQstCy0LDQu9GMXCIsXCLQlNC20YPQvNCw0LQt0YPQu9GMLdCw0YXQuNGAXCIsXCLQoNCw0LTQttCw0LFcIixcItCo0LDQsNCx0LDQvVwiLFwi0KDQsNC80LDQtNCw0L1cIixcItCo0LDQstCy0LDQu9GMXCIsXCLQl9GD0LvRjC3QmtCw0LDQtNCwXCIsXCLQl9GD0LvRjC3QpdC40LTQttC20LBcIl0sbG9uZzpbXCLQnNGD0YXQsNGA0YDQsNC8XCIsXCLQodCw0YTQsNGAXCIsXCLQoNCw0LHQuC3Rg9C70Ywt0LDQstCy0LDQu9GMXCIsXCLQoNCw0LHQuC3Rg9C70Ywt0LDRhdC40YBcIixcItCU0LbRg9C80LDQtC3Rg9C70Ywt0LDQstCy0LDQu9GMXCIsXCLQlNC20YPQvNCw0LQt0YPQu9GMLdCw0YXQuNGAXCIsXCLQoNCw0LTQttCw0LFcIixcItCo0LDQsNCx0LDQvVwiLFwi0KDQsNC80LDQtNCw0L1cIixcItCo0LDQstCy0LDQu9GMXCIsXCLQl9GD0LvRjC3QmtCw0LDQtNCwXCIsXCLQl9GD0LvRjC3QpdC40LTQttC20LBcIl19LGRheXM6e25hcnJvdzpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLHNob3J0OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sbG9uZzpbXCLQstC+0YHQutGA0LXRgdC10L3RjNC1XCIsXCLQv9C+0L3QtdC00LXQu9GM0L3QuNC6XCIsXCLQstGC0L7RgNC90LjQulwiLFwi0YHRgNC10LTQsFwiLFwi0YfQtdGC0LLQtdGA0LNcIixcItC/0Y/RgtC90LjRhtCwXCIsXCLRgdGD0LHQsdC+0YLQsFwiXX0sZXJhczp7bmFycm93OltcIkFIXCJdLHNob3J0OltcIkFIXCJdLGxvbmc6W1wiQUhcIl19LGRheVBlcmlvZHM6e2FtOlwi0JTQn1wiLHBtOlwi0J/Qn1wifX0saXNsYW1pY2M6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wi0JzRg9GF0LDRgNGA0LDQvFwiLFwi0KHQsNGE0LDRgFwiLFwi0KDQsNCx0Lgt0YPQu9GMLdCw0LLQstCw0LvRjFwiLFwi0KDQsNCx0Lgt0YPQu9GMLdCw0YXQuNGAXCIsXCLQlNC20YPQvNCw0LQt0YPQu9GMLdCw0LLQstCw0LvRjFwiLFwi0JTQttGD0LzQsNC0LdGD0LvRjC3QsNGF0LjRgFwiLFwi0KDQsNC00LbQsNCxXCIsXCLQqNCw0LDQsdCw0L1cIixcItCg0LDQvNCw0LTQsNC9XCIsXCLQqNCw0LLQstCw0LvRjFwiLFwi0JfRg9C70Ywt0JrQsNCw0LTQsFwiLFwi0JfRg9C70Ywt0KXQuNC00LbQttCwXCJdLGxvbmc6W1wi0JzRg9GF0LDRgNGA0LDQvFwiLFwi0KHQsNGE0LDRgFwiLFwi0KDQsNCx0Lgt0YPQu9GMLdCw0LLQstCw0LvRjFwiLFwi0KDQsNCx0Lgt0YPQu9GMLdCw0YXQuNGAXCIsXCLQlNC20YPQvNCw0LQt0YPQu9GMLdCw0LLQstCw0LvRjFwiLFwi0JTQttGD0LzQsNC0LdGD0LvRjC3QsNGF0LjRgFwiLFwi0KDQsNC00LbQsNCxXCIsXCLQqNCw0LDQsdCw0L1cIixcItCg0LDQvNCw0LTQsNC9XCIsXCLQqNCw0LLQstCw0LvRjFwiLFwi0JfRg9C70Ywt0JrQsNCw0LTQsFwiLFwi0JfRg9C70Ywt0KXQuNC00LbQttCwXCJdfSxkYXlzOntuYXJyb3c6W1wi0LLRgVwiLFwi0L/QvVwiLFwi0LLRglwiLFwi0YHRgFwiLFwi0YfRglwiLFwi0L/RglwiLFwi0YHQsVwiXSxzaG9ydDpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLGxvbmc6W1wi0LLQvtGB0LrRgNC10YHQtdC90YzQtVwiLFwi0L/QvtC90LXQtNC10LvRjNC90LjQulwiLFwi0LLRgtC+0YDQvdC40LpcIixcItGB0YDQtdC00LBcIixcItGH0LXRgtCy0LXRgNCzXCIsXCLQv9GP0YLQvdC40YbQsFwiLFwi0YHRg9Cx0LHQvtGC0LBcIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcItCU0J9cIixwbTpcItCf0J9cIn19LGphcGFuZXNlOnttb250aHM6e25hcnJvdzpbXCLQr1wiLFwi0KRcIixcItCcXCIsXCLQkFwiLFwi0JxcIixcItCYXCIsXCLQmFwiLFwi0JBcIixcItChXCIsXCLQnlwiLFwi0J1cIixcItCUXCJdLHNob3J0OltcItGP0L3Qsi5cIixcItGE0LXQstGALlwiLFwi0LzQsNGALlwiLFwi0LDQv9GALlwiLFwi0LzQsNGPXCIsXCLQuNGO0L0uXCIsXCLQuNGO0LsuXCIsXCLQsNCy0LMuXCIsXCLRgdC10L3Rgi5cIixcItC+0LrRgi5cIixcItC90L7Rj9CxLlwiLFwi0LTQtdC6LlwiXSxsb25nOltcItGP0L3QstCw0YDRj1wiLFwi0YTQtdCy0YDQsNC70Y9cIixcItC80LDRgNGC0LBcIixcItCw0L/RgNC10LvRj1wiLFwi0LzQsNGPXCIsXCLQuNGO0L3Rj1wiLFwi0LjRjtC70Y9cIixcItCw0LLQs9GD0YHRgtCwXCIsXCLRgdC10L3RgtGP0LHRgNGPXCIsXCLQvtC60YLRj9Cx0YDRj1wiLFwi0L3QvtGP0LHRgNGPXCIsXCLQtNC10LrQsNCx0YDRj1wiXX0sZGF5czp7bmFycm93OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sc2hvcnQ6W1wi0LLRgVwiLFwi0L/QvVwiLFwi0LLRglwiLFwi0YHRgFwiLFwi0YfRglwiLFwi0L/RglwiLFwi0YHQsVwiXSxsb25nOltcItCy0L7RgdC60YDQtdGB0LXQvdGM0LVcIixcItC/0L7QvdC10LTQtdC70YzQvdC40LpcIixcItCy0YLQvtGA0L3QuNC6XCIsXCLRgdGA0LXQtNCwXCIsXCLRh9C10YLQstC10YDQs1wiLFwi0L/Rj9GC0L3QuNGG0LBcIixcItGB0YPQsdCx0L7RgtCwXCJdfSxlcmFzOntuYXJyb3c6W1wiVGFpa2EgKDY0NeKAkzY1MClcIixcIkhha3VjaGkgKDY1MOKAkzY3MSlcIixcIkhha3VoxY0gKDY3MuKAkzY4NilcIixcIlNodWNoxY0gKDY4NuKAkzcwMSlcIixcIlRhaWjFjSAoNzAx4oCTNzA0KVwiLFwiS2VpdW4gKDcwNOKAkzcwOClcIixcIldhZMWNICg3MDjigJM3MTUpXCIsXCJSZWlraSAoNzE14oCTNzE3KVwiLFwiWcWNcsWNICg3MTfigJM3MjQpXCIsXCJKaW5raSAoNzI04oCTNzI5KVwiLFwiVGVucHnFjSAoNzI54oCTNzQ5KVwiLFwiVGVucHnFjS1rYW1wxY0gKDc0OS03NDkpXCIsXCJUZW5wecWNLXNoxY1oxY0gKDc0OS03NTcpXCIsXCJUZW5wecWNLWjFjWppICg3NTctNzY1KVwiLFwiVGVucHnFjS1qaW5nbyAoNzY1LTc2NylcIixcIkppbmdvLWtlaXVuICg3NjctNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgxLTc4MilcIixcIkVucnlha3UgKDc4MuKAkzgwNilcIixcIkRhaWTFjSAoODA24oCTODEwKVwiLFwiS8WNbmluICg4MTDigJM4MjQpXCIsXCJUZW5jaMWNICg4MjTigJM4MzQpXCIsXCJKxY13YSAoODM04oCTODQ4KVwiLFwiS2FqxY0gKDg0OOKAkzg1MSlcIixcIk5pbmp1ICg4NTHigJM4NTQpXCIsXCJTYWlrxY0gKDg1NOKAkzg1NylcIixcIlRlbi1hbiAoODU3LTg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2FuZ3nFjSAoODc34oCTODg1KVwiLFwiTmlubmEgKDg4NeKAkzg4OSlcIixcIkthbnB5xY0gKDg4OeKAkzg5OClcIixcIlNoxY10YWkgKDg5OOKAkzkwMSlcIixcIkVuZ2kgKDkwMeKAkzkyMylcIixcIkVuY2jFjSAoOTIz4oCTOTMxKVwiLFwiSsWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW7igJllbiAoOTcz4oCTOTc2KVwiLFwiSsWNZ2VuICg5NzbigJM5NzgpXCIsXCJUZW5nZW4gKDk3OOKAkzk4MylcIixcIkVpa2FuICg5ODPigJM5ODUpXCIsXCJLYW5uYSAoOTg14oCTOTg3KVwiLFwiRWllbiAoOTg34oCTOTg5KVwiLFwiRWlzbyAoOTg54oCTOTkwKVwiLFwiU2jFjXJ5YWt1ICg5OTDigJM5OTUpXCIsXCJDaMWNdG9rdSAoOTk14oCTOTk5KVwiLFwiQ2jFjWjFjSAoOTk54oCTMTAwNClcIixcIkthbmvFjSAoMTAwNOKAkzEwMTIpXCIsXCJDaMWNd2EgKDEwMTLigJMxMDE3KVwiLFwiS2FubmluICgxMDE34oCTMTAyMSlcIixcIkppYW4gKDEwMjHigJMxMDI0KVwiLFwiTWFuanUgKDEwMjTigJMxMDI4KVwiLFwiQ2jFjWdlbiAoMTAyOOKAkzEwMzcpXCIsXCJDaMWNcnlha3UgKDEwMzfigJMxMDQwKVwiLFwiQ2jFjWt5xasgKDEwNDDigJMxMDQ0KVwiLFwiS2FudG9rdSAoMTA0NOKAkzEwNDYpXCIsXCJFaXNoxY0gKDEwNDbigJMxMDUzKVwiLFwiVGVuZ2kgKDEwNTPigJMxMDU4KVwiLFwiS8WNaGVpICgxMDU44oCTMTA2NSlcIixcIkppcnlha3UgKDEwNjXigJMxMDY5KVwiLFwiRW5recWrICgxMDY54oCTMTA3NClcIixcIlNoxY1obyAoMTA3NOKAkzEwNzcpXCIsXCJTaMWNcnlha3UgKDEwNzfigJMxMDgxKVwiLFwiRWloxY0gKDEwODHigJMxMDg0KVwiLFwixYx0b2t1ICgxMDg04oCTMTA4NylcIixcIkthbmppICgxMDg34oCTMTA5NClcIixcIkthaMWNICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJKxY10b2t1ICgxMDk34oCTMTA5OSlcIixcIkvFjXdhICgxMDk54oCTMTEwNClcIixcIkNoxY1qaSAoMTEwNOKAkzExMDYpXCIsXCJLYXNoxY0gKDExMDbigJMxMTA4KVwiLFwiVGVubmluICgxMTA44oCTMTExMClcIixcIlRlbi1laSAoMTExMC0xMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbuKAmWVpICgxMTE44oCTMTEyMClcIixcIkjFjWFuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSMWNZW4gKDExMzXigJMxMTQxKVwiLFwiRWlqaSAoMTE0MeKAkzExNDIpXCIsXCJLxY1qaSAoMTE0MuKAkzExNDQpXCIsXCJUZW7igJl5xY0gKDExNDTigJMxMTQ1KVwiLFwiS3nFq2FuICgxMTQ14oCTMTE1MSlcIixcIk5pbnBlaSAoMTE1MeKAkzExNTQpXCIsXCJLecWranUgKDExNTTigJMxMTU2KVwiLFwiSMWNZ2VuICgxMTU24oCTMTE1OSlcIixcIkhlaWppICgxMTU54oCTMTE2MClcIixcIkVpcnlha3UgKDExNjDigJMxMTYxKVwiLFwixYxobyAoMTE2MeKAkzExNjMpXCIsXCJDaMWNa2FuICgxMTYz4oCTMTE2NSlcIixcIkVpbWFuICgxMTY14oCTMTE2NilcIixcIk5pbuKAmWFuICgxMTY24oCTMTE2OSlcIixcIkthxY0gKDExNjnigJMxMTcxKVwiLFwiU2jFjWFuICgxMTcx4oCTMTE3NSlcIixcIkFuZ2VuICgxMTc14oCTMTE3NylcIixcIkppc2jFjSAoMTE3N+KAkzExODEpXCIsXCJZxY13YSAoMTE4MeKAkzExODIpXCIsXCJKdWVpICgxMTgy4oCTMTE4NClcIixcIkdlbnJ5YWt1ICgxMTg04oCTMTE4NSlcIixcIkJ1bmppICgxMTg14oCTMTE5MClcIixcIktlbmt5xasgKDExOTDigJMxMTk5KVwiLFwiU2jFjWppICgxMTk54oCTMTIwMSlcIixcIktlbm5pbiAoMTIwMeKAkzEyMDQpXCIsXCJHZW5recWrICgxMjA04oCTMTIwNilcIixcIktlbuKAmWVpICgxMjA24oCTMTIwNylcIixcIkrFjWdlbiAoMTIwN+KAkzEyMTEpXCIsXCJLZW5yeWFrdSAoMTIxMeKAkzEyMTMpXCIsXCJLZW5wxY0gKDEyMTPigJMxMjE5KVwiLFwiSsWNa3nFqyAoMTIxOeKAkzEyMjIpXCIsXCJKxY3FjSAoMTIyMuKAkzEyMjQpXCIsXCJHZW5uaW4gKDEyMjTigJMxMjI1KVwiLFwiS2Fyb2t1ICgxMjI14oCTMTIyNylcIixcIkFudGVpICgxMjI34oCTMTIyOSlcIixcIkthbmtpICgxMjI54oCTMTIzMilcIixcIkrFjWVpICgxMjMy4oCTMTIzMylcIixcIlRlbnB1a3UgKDEyMzPigJMxMjM0KVwiLFwiQnVucnlha3UgKDEyMzTigJMxMjM1KVwiLFwiS2F0ZWkgKDEyMzXigJMxMjM4KVwiLFwiUnlha3VuaW4gKDEyMzjigJMxMjM5KVwiLFwiRW7igJnFjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVu4oCZxY0gKDEyNjDigJMxMjYxKVwiLFwiS8WNY2jFjSAoMTI2MeKAkzEyNjQpXCIsXCJCdW7igJllaSAoMTI2NOKAkzEyNzUpXCIsXCJLZW5qaSAoMTI3NeKAkzEyNzgpXCIsXCJLxY1hbiAoMTI3OOKAkzEyODgpXCIsXCJTaMWNxY0gKDEyODjigJMxMjkzKVwiLFwiRWluaW4gKDEyOTPigJMxMjk5KVwiLFwiU2jFjWFuICgxMjk54oCTMTMwMilcIixcIktlbmdlbiAoMTMwMuKAkzEzMDMpXCIsXCJLYWdlbiAoMTMwM+KAkzEzMDYpXCIsXCJUb2t1amkgKDEzMDbigJMxMzA4KVwiLFwiRW5recWNICgxMzA44oCTMTMxMSlcIixcIsWMY2jFjSAoMTMxMeKAkzEzMTIpXCIsXCJTaMWNd2EgKDEzMTLigJMxMzE3KVwiLFwiQnVucMWNICgxMzE34oCTMTMxOSlcIixcIkdlbsWNICgxMzE54oCTMTMyMSlcIixcIkdlbmvFjSAoMTMyMeKAkzEzMjQpXCIsXCJTaMWNY2jFqyAoMTMyNOKAkzEzMjYpXCIsXCJLYXJ5YWt1ICgxMzI24oCTMTMyOSlcIixcIkdlbnRva3UgKDEzMjnigJMxMzMxKVwiLFwiR2Vua8WNICgxMzMx4oCTMTMzNClcIixcIktlbm11ICgxMzM04oCTMTMzNilcIixcIkVuZ2VuICgxMzM24oCTMTM0MClcIixcIkvFjWtva3UgKDEzNDDigJMxMzQ2KVwiLFwiU2jFjWhlaSAoMTM0NuKAkzEzNzApXCIsXCJLZW50b2t1ICgxMzcw4oCTMTM3MilcIixcIkJ1bmNoxasgKDEzNzLigJMxMzc1KVwiLFwiVGVuanUgKDEzNzXigJMxMzc5KVwiLFwiS8WNcnlha3UgKDEzNznigJMxMzgxKVwiLFwiS8WNd2EgKDEzODHigJMxMzg0KVwiLFwiR2VuY2jFqyAoMTM4NOKAkzEzOTIpXCIsXCJNZWl0b2t1ICgxMzg04oCTMTM4NylcIixcIktha2VpICgxMzg34oCTMTM4OSlcIixcIkvFjcWNICgxMzg54oCTMTM5MClcIixcIk1laXRva3UgKDEzOTDigJMxMzk0KVwiLFwixYxlaSAoMTM5NOKAkzE0MjgpXCIsXCJTaMWNY2jFjSAoMTQyOOKAkzE0MjkpXCIsXCJFaWt5xY0gKDE0MjnigJMxNDQxKVwiLFwiS2FraXRzdSAoMTQ0MeKAkzE0NDQpXCIsXCJCdW7igJlhbiAoMTQ0NOKAkzE0NDkpXCIsXCJIxY10b2t1ICgxNDQ54oCTMTQ1MilcIixcIkt5xY10b2t1ICgxNDUy4oCTMTQ1NSlcIixcIkvFjXNoxY0gKDE0NTXigJMxNDU3KVwiLFwiQ2jFjXJva3UgKDE0NTfigJMxNDYwKVwiLFwiS2Fuc2jFjSAoMTQ2MOKAkzE0NjYpXCIsXCJCdW5zaMWNICgxNDY24oCTMTQ2NylcIixcIsWMbmluICgxNDY34oCTMTQ2OSlcIixcIkJ1bm1laSAoMTQ2OeKAkzE0ODcpXCIsXCJDaMWNa3nFjSAoMTQ4N+KAkzE0ODkpXCIsXCJFbnRva3UgKDE0ODnigJMxNDkyKVwiLFwiTWVpxY0gKDE0OTLigJMxNTAxKVwiLFwiQnVua2kgKDE1MDHigJMxNTA0KVwiLFwiRWlzaMWNICgxNTA04oCTMTUyMSlcIixcIlRhaWVpICgxNTIx4oCTMTUyOClcIixcIkt5xY1yb2t1ICgxNTI44oCTMTUzMilcIixcIlRlbmJ1biAoMTUzMuKAkzE1NTUpXCIsXCJLxY1qaSAoMTU1NeKAkzE1NTgpXCIsXCJFaXJva3UgKDE1NTjigJMxNTcwKVwiLFwiR2Vua2kgKDE1NzDigJMxNTczKVwiLFwiVGVuc2jFjSAoMTU3M+KAkzE1OTIpXCIsXCJCdW5yb2t1ICgxNTky4oCTMTU5NilcIixcIktlaWNoxY0gKDE1OTbigJMxNjE1KVwiLFwiR2VubmEgKDE2MTXigJMxNjI0KVwiLFwiS2Fu4oCZZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIkrFjcWNICgxNjUy4oCTMTY1NSlcIixcIk1laXJla2kgKDE2NTXigJMxNjU4KVwiLFwiTWFuamkgKDE2NTjigJMxNjYxKVwiLFwiS2FuYnVuICgxNjYx4oCTMTY3MylcIixcIkVucMWNICgxNjcz4oCTMTY4MSlcIixcIlRlbm5hICgxNjgx4oCTMTY4NClcIixcIkrFjWt5xY0gKDE2ODTigJMxNjg4KVwiLFwiR2Vucm9rdSAoMTY4OOKAkzE3MDQpXCIsXCJIxY1laSAoMTcwNOKAkzE3MTEpXCIsXCJTaMWNdG9rdSAoMTcxMeKAkzE3MTYpXCIsXCJLecWNaMWNICgxNzE24oCTMTczNilcIixcIkdlbmJ1biAoMTczNuKAkzE3NDEpXCIsXCJLYW5wxY0gKDE3NDHigJMxNzQ0KVwiLFwiRW5recWNICgxNzQ04oCTMTc0OClcIixcIkthbuKAmWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJla2kgKDE3NTHigJMxNzY0KVwiLFwiTWVpd2EgKDE3NjTigJMxNzcyKVwiLFwiQW7igJllaSAoMTc3MuKAkzE3ODEpXCIsXCJUZW5tZWkgKDE3ODHigJMxNzg5KVwiLFwiS2Fuc2VpICgxNzg54oCTMTgwMSlcIixcIkt5xY13YSAoMTgwMeKAkzE4MDQpXCIsXCJCdW5rYSAoMTgwNOKAkzE4MTgpXCIsXCJCdW5zZWkgKDE4MTjigJMxODMwKVwiLFwiVGVucMWNICgxODMw4oCTMTg0NClcIixcIkvFjWthICgxODQ04oCTMTg0OClcIixcIkthZWkgKDE4NDjigJMxODU0KVwiLFwiQW5zZWkgKDE4NTTigJMxODYwKVwiLFwiTWFu4oCZZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNXCIsXCJUXCIsXCJTXCIsXCJIXCJdLHNob3J0OltcItCt0L/QvtGF0LAg0KLQsNC50LrQsCAoNjQ14oCTNjUwKVwiLFwi0K3Qv9C+0YXQsCDQpdCw0LrRg9GC0LggKDY1MOKAkzY3MSlcIixcItCt0L/QvtGF0LAg0KXQsNC60YPRhdC+ICg2NzLigJM2ODYpXCIsXCLQrdC/0L7RhdCwINCh0Y7Rh9GRICg2ODbigJM3MDEpXCIsXCLQrdC/0L7RhdCwINCi0LDQudGF0L4gKDcwMeKAkzcwNClcIixcItCt0L/QvtGF0LAg0JrRkdGO0L0gKDcwNOKAkzcwOClcIixcItCt0L/QvtGF0LAg0JLQsNC00L4gKDcwOOKAkzcxNSlcIixcItCt0L/QvtGF0LAg0KDRjdC50LrQuCAoNzE14oCTNzE3KVwiLFwi0K3Qv9C+0YXQsCDQgdGA0L4gKDcxN+KAkzcyNClcIixcItCt0L/QvtGF0LAg0JTQt9C40L3QutC4ICg3MjTigJM3MjkpXCIsXCLQrdC/0L7RhdCwINCi0LXQvNC/0YzRkSAoNzI54oCTNzQ5KVwiLFwi0K3Qv9C+0YXQsCDQotC10LzQv9GM0ZEgKDc0OeKAkzc0OSlcIixcItCt0L/QvtGF0LAg0KLQtdC80L/RjNGRLdCh0YzQvtGF0L4gKDc0OS03NTcpXCIsXCLQrdC/0L7RhdCwINCi0LXQvNC/0YzRkS3QpdC+0LTQt9C4ICg3NTctNzY1KVwiLFwi0K3Qv9C+0YXQsCDQotC10LzQv9GM0ZEt0KXQvtC00LfQuCAoNzY1LTc2NylcIixcItCt0L/QvtGF0LAg0JTQttC40L3Qs9C+LdCa0ZHRjtC9ICg3NjctNzcwKVwiLFwi0K3Qv9C+0YXQsCDQpdC+0LrQuCAoNzcw4oCTNzgwKVwiLFwi0K3Qv9C+0YXQsCDQotC10L3RjNGRICg3ODHigJM3ODIpXCIsXCLQrdC/0L7RhdCwINCV0L3RgNGP0LrRgyAoNzgy4oCTODA2KVwiLFwi0K3Qv9C+0YXQsCDQlNCw0LnQtNC+ICg4MDbigJM4MTApXCIsXCLQrdC/0L7RhdCwINCa0L7QvdC40L0gKDgxMOKAkzgyNClcIixcItCt0L/QvtGF0LAg0KLQtdC90YLRjNC+ICg4MjTigJM4MzQpXCIsXCLQrdC/0L7RhdCwINCo0L7QstCwICg4MzTigJM4NDgpXCIsXCLQrdC/0L7RhdCwINCa0LDQudC+ICg4NDjigJM4NTEpXCIsXCLQrdC/0L7RhdCwINCd0LjQvdC00LfRjiAoODUx4oCTODU0KVwiLFwi0K3Qv9C+0YXQsCDQodCw0LnQutC+ICg4NTTigJM4NTcpXCIsXCLQrdC/0L7RhdCwINCi0LXQvdC90LDQvSAoODU34oCTODU5KVwiLFwi0K3Qv9C+0YXQsCDQmdC+0LPQsNC9ICg4NTnigJM4NzcpXCIsXCLQrdC/0L7RhdCwINCT0LXQvdC60LXQuSAoODc34oCTODg1KVwiLFwi0K3Qv9C+0YXQsCDQndC40L3QvdCwICg4ODXigJM4ODkpXCIsXCLQrdC/0L7RhdCwINCa0LDQvNC/0YzRkSAoODg54oCTODk4KVwiLFwi0K3Qv9C+0YXQsCDQodGM0L7RgtCw0LkgKDg5OOKAkzkwMSlcIixcItCt0L/QvtGF0LAg0K3QvdCz0LggKDkwMeKAkzkyMylcIixcItCt0L/QvtGF0LAg0JXQvdGC0YzQviAoOTIz4oCTOTMxKVwiLFwi0K3Qv9C+0YXQsCDQodGM0ZHRhdGN0LkgKDkzMeKAkzkzOClcIixcItCt0L/QvtGF0LAg0KLQtdC90LPRjNC+ICg5MzjigJM5NDcpXCIsXCLQrdC/0L7RhdCwINCi0LXQvdGA0LjRj9C60YMgKDk0N+KAkzk1NylcIixcItCt0L/QvtGF0LAg0KLQtdC90YLQvtC60YMgKDk1N+KAkzk2MSlcIixcItCt0L/QvtGF0LAg0J7QstCwICg5NjHigJM5NjQpXCIsXCLQrdC/0L7RhdCwINCa0L7RhdC+ICg5NjTigJM5NjgpXCIsXCLQrdC/0L7RhdCwINCQ0L3QvdCwICg5NjjigJM5NzApXCIsXCLQrdC/0L7RhdCwINCi0LXQvdGA0L7QutGDICg5NzDigJM5NzMpXCIsXCLQrdC/0L7RhdCwINCi0LXQvdGM0LXQvSAoOTcz4oCTOTc2KVwiLFwi0K3Qv9C+0YXQsCDQlNC30YzQvtCz0LXQvSAoOTc24oCTOTc4KVwiLFwi0K3Qv9C+0YXQsCDQotC10L3Qs9C10L0gKDk3OOKAkzk4MylcIixcItCt0L/QvtGF0LAg0JXQudC60LDQvSAoOTgz4oCTOTg1KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0L3QvdCwICg5ODXigJM5ODcpXCIsXCLQrdC/0L7RhdCwINCV0LnQtdC9ICg5ODfigJM5ODkpXCIsXCLQrdC/0L7RhdCwINCV0LnRgdC+ICg5ODnigJM5OTApXCIsXCLQrdC/0L7RhdCwINCh0ZHRgNGP0LrRgyAoOTkw4oCTOTk1KVwiLFwi0K3Qv9C+0YXQsCDQotGR0YLQvtC60YMgKDk5NeKAkzk5OSlcIixcItCt0L/QvtGF0LAg0KLRkdGF0L4gKDk5OeKAkzEwMDQpXCIsXCLQrdC/0L7RhdCwINCa0LDQvdC60L4gKDEwMDTigJMxMDEyKVwiLFwi0K3Qv9C+0YXQsCDQotGR0LLQsCAoMTAxMuKAkzEwMTcpXCIsXCLQrdC/0L7RhdCwINCa0LDQvdC90LjQvSAoMTAxN+KAkzEwMjEpXCIsXCLQrdC/0L7RhdCwINCU0LfQuNCw0L0gKDEwMjHigJMxMDI0KVwiLFwi0K3Qv9C+0YXQsCDQnNCw0L3QtNC30Y4gKDEwMjTigJMxMDI4KVwiLFwi0K3Qv9C+0YXQsCDQotGR0LPRjdC9ICgxMDI44oCTMTAzNylcIixcItCt0L/QvtGF0LAg0KLRkdGA0Y/QutGDICgxMDM34oCTMTA0MClcIixcItCt0L/QvtGF0LAg0KLRkdC60Y4gKDEwNDDigJMxMDQ0KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0YLQvtC60YMgKDEwNDTigJMxMDQ2KVwiLFwi0K3Qv9C+0YXQsCDQrdC50YHQviAoMTA0NuKAkzEwNTMpXCIsXCLQrdC/0L7RhdCwINCi0Y3QvdCz0LggKDEwNTPigJMxMDU4KVwiLFwi0K3Qv9C+0YXQsCDQmtC+0YXRjdC5ICgxMDU44oCTMTA2NSlcIixcItCt0L/QvtGF0LAg0JTQt9C40YDRj9C60YMgKDEwNjXigJMxMDY5KVwiLFwi0K3Qv9C+0YXQsCDQrdC90LrRjiAoMTA2OeKAkzEwNzQpXCIsXCLQrdC/0L7RhdCwINCh0ZHRhdC+ICgxMDc04oCTMTA3NylcIixcItCt0L/QvtGF0LAg0KHRkdGA0Y/QutGDICgxMDc34oCTMTA4MSlcIixcItCt0L/QvtGF0LAg0K3QudGF0L4gKDEwODHigJMxMDg0KVwiLFwi0K3Qv9C+0YXQsCDQntGC0L7QutGDICgxMDg04oCTMTA4NylcIixcItCt0L/QvtGF0LAg0JrQsNC90LTQt9C4ICgxMDg34oCTMTA5NClcIixcItCt0L/QvtGF0LAg0JrQsNGF0L4gKDEwOTTigJMxMDk2KVwiLFwi0K3Qv9C+0YXQsCDQrdC50YLRkSAoMTA5NuKAkzEwOTcpXCIsXCLQrdC/0L7RhdCwINCh0ZHRgtC+0LrRgyAoMTA5N+KAkzEwOTkpXCIsXCLQrdC/0L7RhdCwINCa0L7QstCwICgxMDk54oCTMTEwNClcIixcItCt0L/QvtGF0LAg0KLRkdC00LfQuCAoMTEwNOKAkzExMDYpXCIsXCLQrdC/0L7RhdCwINCa0LDRgdGRICgxMTA24oCTMTEwOClcIixcItCt0L/QvtGF0LAg0KLRjdC90L3QuNC9ICgxMTA44oCTMTExMClcIixcItCt0L/QvtGF0LAg0KLRjdC90YrRjdC5ICgxMTEw4oCTMTExMylcIixcItCt0L/QvtGF0LAg0K3QudC60Y4gKDExMTPigJMxMTE4KVwiLFwi0K3Qv9C+0YXQsCDQk9GN0L3RitGN0LkgKDExMTjigJMxMTIwKVwiLFwi0K3Qv9C+0YXQsCDQpdC+0LDQvSAoMTEyMOKAkzExMjQpXCIsXCLQrdC/0L7RhdCwINCi0Y3QvdC00LfQuCAoMTEyNOKAkzExMjYpXCIsXCLQrdC/0L7RhdCwINCU0LDQudC00LfQuCAoMTEyNuKAkzExMzEpXCIsXCLQrdC/0L7RhdCwINCi0Y3QvdGB0ZEgKDExMzHigJMxMTMyKVwiLFwi0K3Qv9C+0YXQsCDQotGR0YHRkSAoMTEzMuKAkzExMzUpXCIsXCLQrdC/0L7RhdCwINCl0L7RjdC9ICgxMTM14oCTMTE0MSlcIixcItCt0L/QvtGF0LAg0K3QudC00LfQuCAoMTE0MeKAkzExNDIpXCIsXCLQrdC/0L7RhdCwINCa0L7QtNC30LggKDExNDLigJMxMTQ0KVwiLFwi0K3Qv9C+0YXQsCDQotGN0L3RkSAoMTE0NOKAkzExNDUpXCIsXCLQrdC/0L7RhdCwINCa0Y7QsNC9ICgxMTQ14oCTMTE1MSlcIixcItCt0L/QvtGF0LAg0J3QuNC80L/RjdC5ICgxMTUx4oCTMTE1NClcIixcItCt0L/QvtGF0LAg0JrRjtC00LfRjiAoMTE1NOKAkzExNTYpXCIsXCLQrdC/0L7RhdCwINCl0L7Qs9GN0L0gKDExNTbigJMxMTU5KVwiLFwi0K3Qv9C+0YXQsCDQpdGN0LnQtNC30LggKDExNTnigJMxMTYwKVwiLFwi0K3Qv9C+0YXQsCDQrdC50YDRj9C60YMgKDExNjDigJMxMTYxKVwiLFwi0K3Qv9C+0YXQsCDQntGF0L4gKDExNjHigJMxMTYzKVwiLFwi0K3Qv9C+0YXQsCDQotGR0LrQsNC9ICgxMTYz4oCTMTE2NSlcIixcItCt0L/QvtGF0LAg0K3QudC80LDQvSAoMTE2NeKAkzExNjYpXCIsXCLQrdC/0L7RhdCwINCd0LjQvdGK0LDQvSAoMTE2NuKAkzExNjkpXCIsXCLQrdC/0L7RhdCwINCa0LDQviAoMTE2OeKAkzExNzEpXCIsXCLQrdC/0L7RhdCwINCh0ZHQsNC9ICgxMTcx4oCTMTE3NSlcIixcItCt0L/QvtGF0LAg0JDQvdCz0Y3QvSAoMTE3NeKAkzExNzcpXCIsXCLQrdC/0L7RhdCwINCU0LfQuNGB0ZEgKDExNzfigJMxMTgxKVwiLFwi0K3Qv9C+0YXQsCDQgdCy0LAgKDExODHigJMxMTgyKVwiLFwi0K3Qv9C+0YXQsCDQlNC30Y7RjdC5ICgxMTgy4oCTMTE4NClcIixcItCt0L/QvtGF0LAg0JPRjdC90YDRjtC60YMgKDExODTigJMxMTg1KVwiLFwi0K3Qv9C+0YXQsCDQkdGD0L3QtNC30LggKDExODXigJMxMTkwKVwiLFwi0K3Qv9C+0YXQsCDQmtGN0L3QutGOICgxMTkw4oCTMTE5OSlcIixcItCt0L/QvtGF0LAg0KHRkdC00LfQuCAoMTE5OeKAkzEyMDEpXCIsXCLQrdC/0L7RhdCwINCa0Y3QvdC90LjQvSAoMTIwMeKAkzEyMDQpXCIsXCLQrdC/0L7RhdCwINCT0Y3QvdC60Y4gKDEyMDTigJMxMjA2KVwiLFwi0K3Qv9C+0YXQsCDQmtGN0L3RitGN0LkgKDEyMDbigJMxMjA3KVwiLFwi0K3Qv9C+0YXQsCDQodGR0LPRjdC9ICgxMjA34oCTMTIxMSlcIixcItCt0L/QvtGF0LAg0JrRjdC90YDRj9C60YMgKDEyMTHigJMxMjEzKVwiLFwi0K3Qv9C+0YXQsCDQmtGN0LzQv9C+ICgxMjEz4oCTMTIxOSlcIixcItCt0L/QvtGF0LAg0KHRkdC60Y4gKDEyMTnigJMxMjIyKVwiLFwi0K3Qv9C+0YXQsCDQlNC30ZHQviAoMTIyMuKAkzEyMjQpXCIsXCLQrdC/0L7RhdCwINCT0Y3QvdC90LjQvSAoMTIyNOKAkzEyMjUpXCIsXCLQrdC/0L7RhdCwINCa0LDRgNC+0LrRgyAoMTIyNeKAkzEyMjcpXCIsXCLQrdC/0L7RhdCwINCQ0L3RgtGN0LkgKDEyMjfigJMxMjI5KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0L3QutC4ICgxMjI54oCTMTIzMilcIixcItCt0L/QvtGF0LAg0JTQt9GR0Y3QuSAoMTIzMuKAkzEyMzMpXCIsXCLQrdC/0L7RhdCwINCi0Y3QvNC/0YPQutGDICgxMjMz4oCTMTIzNClcIixcItCt0L/QvtGF0LAg0JHRg9C90YDRj9C60YMgKDEyMzTigJMxMjM1KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0YLRjdC5ICgxMjM14oCTMTIzOClcIixcItCt0L/QvtGF0LAg0KDRj9C60YPQvdC40L0gKDEyMzjigJMxMjM5KVwiLFwi0K3Qv9C+0YXQsCDQrdC90YrQviAoMTIzOeKAkzEyNDApXCIsXCLQrdC/0L7RhdCwINCd0LjQvdC00LfQuCAoMTI0MOKAkzEyNDMpXCIsXCLQrdC/0L7RhdCwINCa0LDQvdCz0Y3QvSAoMTI0M+KAkzEyNDcpXCIsXCLQrdC/0L7RhdCwINCl0L7QtNC30LggKDEyNDfigJMxMjQ5KVwiLFwi0K3Qv9C+0YXQsCDQmtGN0L3RgtGRICgxMjQ54oCTMTI1NilcIixcItCt0L/QvtGF0LAg0JrQvtCz0Y3QvSAoMTI1NuKAkzEyNTcpXCIsXCLQrdC/0L7RhdCwINCh0ZHQutCwICgxMjU34oCTMTI1OSlcIixcItCt0L/QvtGF0LAg0KHRkdCz0Y3QvSAoMTI1OeKAkzEyNjApXCIsXCLQrdC/0L7RhdCwINCR0YPQvdGK0L4gKDEyNjDigJMxMjYxKVwiLFwi0K3Qv9C+0YXQsCDQmtC+0YLRkSAoMTI2MeKAkzEyNjQpXCIsXCLQrdC/0L7RhdCwINCR0YPQvdGK0Y3QuSAoMTI2NOKAkzEyNzUpXCIsXCLQrdC/0L7RhdCwINCa0Y3QvdC00LfQuCAoMTI3NeKAkzEyNzgpXCIsXCLQrdC/0L7RhdCwINCa0L7QsNC9ICgxMjc44oCTMTI4OClcIixcItCt0L/QvtGF0LAg0KHRkdC+ICgxMjg44oCTMTI5MylcIixcItCt0L/QvtGF0LAg0K3QudC90LjQvSAoMTI5M+KAkzEyOTkpXCIsXCLQrdC/0L7RhdCwINCh0ZHQsNC9ICgxMjk54oCTMTMwMilcIixcItCt0L/QvtGF0LAg0JrRjdC90LPRjdC9ICgxMzAy4oCTMTMwMylcIixcItCt0L/QvtGF0LAg0JrQsNCz0Y3QvSAoMTMwM+KAkzEzMDYpXCIsXCLQrdC/0L7RhdCwINCi0L7QutGD0LTQt9C4ICgxMzA24oCTMTMwOClcIixcItCt0L/QvtGF0LAg0K3QvdC60Y3QuSAoMTMwOOKAkzEzMTEpXCIsXCLQrdC/0L7RhdCwINCe0YLRkSAoMTMxMeKAkzEzMTIpXCIsXCLQrdC/0L7RhdCwINCh0ZHQstCwICgxMzEy4oCTMTMxNylcIixcItCt0L/QvtGF0LAg0JHRg9C80L/QviAoMTMxN+KAkzEzMTkpXCIsXCLQrdC/0L7RhdCwINCT0Y3QvdC+ICgxMzE54oCTMTMyMSlcIixcItCt0L/QvtGF0LAg0JPRjdC90LrRkSAoMTMyMeKAkzEzMjQpXCIsXCLQrdC/0L7RhdCwINCh0ZHRgtGOICgxMzI04oCTMTMyNilcIixcItCt0L/QvtGF0LAg0JrQsNGA0Y3QutC4ICgxMzI24oCTMTMyOSlcIixcItCt0L/QvtGF0LAg0JPRjdC90YLQvtC60YMgKDEzMjnigJMxMzMxKVwiLFwi0K3Qv9C+0YXQsCDQk9GN0L3QutC+ICgxMzMx4oCTMTMzNClcIixcItCt0L/QvtGF0LAg0JrRjdC80LzRgyAoMTMzNOKAkzEzMzYpXCIsXCLQrdC/0L7RhdCwINCt0L3Qs9GN0L0gKDEzMzbigJMxMzQwKVwiLFwi0K3Qv9C+0YXQsCDQmtC+0LrQvtC60YMgKDEzNDDigJMxMzQ2KVwiLFwi0K3Qv9C+0YXQsCDQodGR0YXRjdC5ICgxMzQ24oCTMTM3MClcIixcItCt0L/QvtGF0LAg0JrRjdC90YLQvtC60YMgKDEzNzDigJMxMzcyKVwiLFwi0K3Qv9C+0YXQsCDQkdGD0L3RgtGOICgxMzcy4oCTMTM3NSlcIixcItCt0L/QvtGF0LAg0JjRjdC90LTQt9GOICgxMzc14oCTMTM3OSlcIixcItCt0L/QvtGF0LAg0JrQvtGA0Y/QutGDICgxMzc54oCTMTM4MSlcIixcItCt0L/QvtGF0LAg0JrQvtCy0LAgKDEzODHigJMxMzg0KVwiLFwi0K3Qv9C+0YXQsCDQk9GN0L3RgtGOICgxMzg04oCTMTM5MilcIixcItCt0L/QvtGF0LAg0JzRjdC50YLQvtC60YMgKDEzODTigJMxMzg3KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0LrRjdC5ICgxMzg34oCTMTM4OSlcIixcItCt0L/QvtGF0LAg0JrQvtC+ICgxMzg54oCTMTM5MClcIixcItCt0L/QvtGF0LAg0JzRjdC50YLQvtC60YMgKDEzOTDigJMxMzk0KVwiLFwi0K3Qv9C+0YXQsCDQntGN0LkgKDEzOTTigJMxNDI4KVwiLFwi0K3Qv9C+0YXQsCDQodGR0YLRkSAoMTQyOOKAkzE0MjkpXCIsXCLQrdC/0L7RhdCwINCt0LnQutGRICgxNDI54oCTMTQ0MSlcIixcItCt0L/QvtGF0LAg0JrQsNC60LjRhtGDICgxNDQx4oCTMTQ0NClcIixcItCt0L/QvtGF0LAg0JHQsNC90YrQsNC9ICgxNDQ04oCTMTQ0OSlcIixcItCt0L/QvtGF0LAg0KXQvtGC0L7QutGDICgxNDQ54oCTMTQ1MilcIixcItCt0L/QvtGF0LAg0JrRkdGC0L7QutGDICgxNDUy4oCTMTQ1NSlcIixcItCt0L/QvtGF0LAg0JrQvtGB0ZEgKDE0NTXigJMxNDU3KVwiLFwi0K3Qv9C+0YXQsCDQotGR0YDQvtC60YMgKDE0NTfigJMxNDYwKVwiLFwi0K3Qv9C+0YXQsCDQmtCw0L3RgdGRICgxNDYw4oCTMTQ2NilcIixcItCt0L/QvtGF0LAg0JHRg9C90YHRkSAoMTQ2NuKAkzE0NjcpXCIsXCLQrdC/0L7RhdCwINCe0L3QuNC9ICgxNDY34oCTMTQ2OSlcIixcItCt0L/QvtGF0LAg0JHRg9C80LzRjdC5ICgxNDY54oCTMTQ4NylcIixcItCt0L/QvtGF0LAg0KLRkdC60ZEgKDE0ODfigJMxNDg5KVwiLFwi0K3Qv9C+0YXQsCDQrdC90YLQvtC60YMgKDE0ODnigJMxNDkyKVwiLFwi0K3Qv9C+0YXQsCDQnNGN0LnQviAoMTQ5MuKAkzE1MDEpXCIsXCLQrdC/0L7RhdCwINCR0YPQvdC60LggKDE1MDHigJMxNTA0KVwiLFwi0K3Qv9C+0YXQsCDQrdC50YHRkSAoMTUwNOKAkzE1MjEpXCIsXCLQrdC/0L7RhdCwINCi0LDQudGN0LkgKDE1MjHigJMxNTI4KVwiLFwi0K3Qv9C+0YXQsCDQmtGR0YDQvtC60YMgKDE1MjjigJMxNTMyKVwiLFwi0K3Qv9C+0YXQsCDQotGN0LzQvNC+0L0gKDE1MzLigJMxNTU1KVwiLFwi0K3Qv9C+0YXQsCDQmtC+0LTQt9C4ICgxNTU14oCTMTU1OClcIixcItCt0L/QvtGF0LAg0K3QudGA0L7QutGDICgxNTU44oCTMTU3MClcIixcItCt0L/QvtGF0LAg0JPRjdC90LrQuCAoMTU3MOKAkzE1NzMpXCIsXCLQrdC/0L7RhdCwINCi0Y3QvdGB0ZEgKDE1NzPigJMxNTkyKVwiLFwi0K3Qv9C+0YXQsCDQkdGD0L3RgNC+0LrRgyAoMTU5MuKAkzE1OTYpXCIsXCLQrdC/0L7RhdCwINCa0Y3QudGC0ZEgKDE1OTbigJMxNjE1KVwiLFwi0K3Qv9C+0YXQsCDQk9GN0L3QstCwICgxNjE14oCTMTYyNClcIixcItCt0L/QvtGF0LAg0JrQsNC90YrRjdC5ICgxNjI04oCTMTY0NClcIixcItCt0L/QvtGF0LAg0KHRkdGF0L4gKDE2NDTigJMxNjQ4KVwiLFwi0K3Qv9C+0YXQsCDQmtGN0LnQsNC9ICgxNjQ44oCTMTY1MilcIixcItCt0L/QvtGF0LAg0KHRkSAoMTY1MuKAkzE2NTUpXCIsXCLQrdC/0L7RhdCwINCc0Y3QudGA0Y/QutGDICgxNjU14oCTMTY1OClcIixcItCt0L/QvtGF0LAg0JzQsNC90LTQt9C4ICgxNjU44oCTMTY2MSlcIixcItCt0L/QvtGF0LAg0JrQsNC80LHRg9C9ICgxNjYx4oCTMTY3MylcIixcItCt0L/QvtGF0LAg0K3QvNC/0L4gKDE2NzPigJMxNjgxKVwiLFwi0K3Qv9C+0YXQsCDQotGN0L3QstCwICgxNjgx4oCTMTY4NClcIixcItCt0L/QvtGF0LAg0JTQt9GR0LrRkSAoMTY4NOKAkzE2ODgpXCIsXCLQrdC/0L7RhdCwINCT0Y3QvdGA0L7QutGDICgxNjg44oCTMTcwNClcIixcItCt0L/QvtGF0LAg0KXQvtGN0LkgKDE3MDTigJMxNzExKVwiLFwi0K3Qv9C+0YXQsCDQodGR0YLQvtC60YMgKDE3MTHigJMxNzE2KVwiLFwi0K3Qv9C+0YXQsCDQmtGR0YXQviAoMTcxNuKAkzE3MzYpXCIsXCLQrdC/0L7RhdCwINCT0Y3QvNCx0YPQvSAoMTczNuKAkzE3NDEpXCIsXCLQrdC/0L7RhdCwINCa0LDQvNC/0L4gKDE3NDHigJMxNzQ0KVwiLFwi0K3Qv9C+0YXQsCDQrdC90LrRkSAoMTc0NOKAkzE3NDgpXCIsXCLQrdC/0L7RhdCwINCa0LDQvdGK0Y3QvSAoMTc0OOKAkzE3NTEpXCIsXCLQrdC/0L7RhdCwINCl0L7RgNGP0LrRgyAoMTc1MeKAkzE3NjQpXCIsXCLQrdC/0L7RhdCwINCc0Y3QudCy0LAgKDE3NjTigJMxNzcyKVwiLFwi0K3Qv9C+0YXQsCDQkNC90YrRjdC5ICgxNzcy4oCTMTc4MSlcIixcItCt0L/QvtGF0LAg0KLRjdC80LzRjdC5ICgxNzgx4oCTMTc4OSlcIixcItCt0L/QvtGF0LAg0JrQsNC90YHRjdC5ICgxNzg54oCTMTgwMSlcIixcItCt0L/QvtGF0LAg0JrRkdCy0LAgKDE4MDHigJMxODA0KVwiLFwi0K3Qv9C+0YXQsCDQkdGD0L3QutCwICgxODA04oCTMTgxOClcIixcItCt0L/QvtGF0LAg0JHRg9C90YHRjdC5ICgxODE44oCTMTgzMClcIixcItCt0L/QvtGF0LAg0KLRjdC80L/QviAoMTgzMOKAkzE4NDQpXCIsXCLQrdC/0L7RhdCwINCa0L7QutCwICgxODQ04oCTMTg0OClcIixcItCt0L/QvtGF0LAg0JrQsNGN0LkgKDE4NDjigJMxODU0KVwiLFwi0K3Qv9C+0YXQsCDQkNC90YHRjdC5ICgxODU04oCTMTg2MClcIixcItCt0L/QvtGF0LAg0JzQsNC90YrRjdC9ICgxODYw4oCTMTg2MSlcIixcItCt0L/QvtGF0LAg0JHRg9C90LrRjiAoMTg2MeKAkzE4NjQpXCIsXCLQrdC/0L7RhdCwINCT0LXQvdC00LfQuCAoMTg2NOKAkzE4NjUpXCIsXCLQrdC/0L7RhdCwINCa0LXQudC+ICgxODY14oCTMTg2OClcIixcItCt0L/QvtGF0LAg0JzRjdC50LTQt9C4XCIsXCLQrdC/0L7RhdCwINCi0LDQudGB0YzQvlwiLFwi0KHRjNC+0LLQsFwiLFwi0K3Qv9C+0YXQsCDQpdGN0LnRgdGN0LlcIl0sbG9uZzpbXCLQrdC/0L7RhdCwINCi0LDQudC60LAgKDY0NeKAkzY1MClcIixcItCt0L/QvtGF0LAg0KXQsNC60YPRgtC4ICg2NTDigJM2NzEpXCIsXCLQrdC/0L7RhdCwINCl0LDQutGD0YXQviAoNjcy4oCTNjg2KVwiLFwi0K3Qv9C+0YXQsCDQodGO0YfRkSAoNjg24oCTNzAxKVwiLFwi0K3Qv9C+0YXQsCDQotCw0LnRhdC+ICg3MDHigJM3MDQpXCIsXCLQrdC/0L7RhdCwINCa0ZHRjtC9ICg3MDTigJM3MDgpXCIsXCLQrdC/0L7RhdCwINCS0LDQtNC+ICg3MDjigJM3MTUpXCIsXCLQrdC/0L7RhdCwINCg0Y3QudC60LggKDcxNeKAkzcxNylcIixcItCt0L/QvtGF0LAg0IHRgNC+ICg3MTfigJM3MjQpXCIsXCLQrdC/0L7RhdCwINCU0LfQuNC90LrQuCAoNzI04oCTNzI5KVwiLFwi0K3Qv9C+0YXQsCDQotC10LzQv9GM0ZEgKDcyOeKAkzc0OSlcIixcItCt0L/QvtGF0LAg0KLQtdC80L/RjNGRICg3NDnigJM3NDkpXCIsXCLQrdC/0L7RhdCwINCi0LXQvNC/0YzRkS3QodGM0L7RhdC+ICg3NDktNzU3KVwiLFwi0K3Qv9C+0YXQsCDQotC10LzQv9GM0ZEt0KXQvtC00LfQuCAoNzU3LTc2NSlcIixcItCt0L/QvtGF0LAg0KLQtdC80L/RjNGRLdCl0L7QtNC30LggKDc2NS03NjcpXCIsXCLQrdC/0L7RhdCwINCU0LbQuNC90LPQvi3QmtGR0Y7QvSAoNzY3LTc3MClcIixcItCt0L/QvtGF0LAg0KXQvtC60LggKDc3MOKAkzc4MClcIixcItCt0L/QvtGF0LAg0KLQtdC90YzRkSAoNzgx4oCTNzgyKVwiLFwi0K3Qv9C+0YXQsCDQldC90YDRj9C60YMgKDc4MuKAkzgwNilcIixcItCt0L/QvtGF0LAg0JTQsNC50LTQviAoODA24oCTODEwKVwiLFwi0K3Qv9C+0YXQsCDQmtC+0L3QuNC9ICg4MTDigJM4MjQpXCIsXCLQrdC/0L7RhdCwINCi0LXQvdGC0YzQviAoODI04oCTODM0KVwiLFwi0K3Qv9C+0YXQsCDQqNC+0LLQsCAoODM04oCTODQ4KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0LnQviAoODQ44oCTODUxKVwiLFwi0K3Qv9C+0YXQsCDQndC40L3QtNC30Y4gKDg1MeKAkzg1NClcIixcItCt0L/QvtGF0LAg0KHQsNC50LrQviAoODU04oCTODU3KVwiLFwi0K3Qv9C+0YXQsCDQotC10L3QvdCw0L0gKDg1N+KAkzg1OSlcIixcItCt0L/QvtGF0LAg0JnQvtCz0LDQvSAoODU54oCTODc3KVwiLFwi0K3Qv9C+0YXQsCDQk9C10L3QutC10LkgKDg3N+KAkzg4NSlcIixcItCt0L/QvtGF0LAg0J3QuNC90L3QsCAoODg14oCTODg5KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0LzQv9GM0ZEgKDg4OeKAkzg5OClcIixcItCt0L/QvtGF0LAg0KHRjNC+0YLQsNC5ICg4OTjigJM5MDEpXCIsXCLQrdC/0L7RhdCwINCt0L3Qs9C4ICg5MDHigJM5MjMpXCIsXCLQrdC/0L7RhdCwINCV0L3RgtGM0L4gKDkyM+KAkzkzMSlcIixcItCt0L/QvtGF0LAg0KHRjNGR0YXRjdC5ICg5MzHigJM5MzgpXCIsXCLQrdC/0L7RhdCwINCi0LXQvdCz0YzQviAoOTM44oCTOTQ3KVwiLFwi0K3Qv9C+0YXQsCDQotC10L3RgNC40Y/QutGDICg5NDfigJM5NTcpXCIsXCLQrdC/0L7RhdCwINCi0LXQvdGC0L7QutGDICg5NTfigJM5NjEpXCIsXCLQrdC/0L7RhdCwINCe0LLQsCAoOTYx4oCTOTY0KVwiLFwi0K3Qv9C+0YXQsCDQmtC+0YXQviAoOTY04oCTOTY4KVwiLFwi0K3Qv9C+0YXQsCDQkNC90L3QsCAoOTY44oCTOTcwKVwiLFwi0K3Qv9C+0YXQsCDQotC10L3RgNC+0LrRgyAoOTcw4oCTOTczKVwiLFwi0K3Qv9C+0YXQsCDQotC10L3RjNC10L0gKDk3M+KAkzk3NilcIixcItCt0L/QvtGF0LAg0JTQt9GM0L7Qs9C10L0gKDk3NuKAkzk3OClcIixcItCt0L/QvtGF0LAg0KLQtdC90LPQtdC9ICg5NzjigJM5ODMpXCIsXCLQrdC/0L7RhdCwINCV0LnQutCw0L0gKDk4M+KAkzk4NSlcIixcItCt0L/QvtGF0LAg0JrQsNC90L3QsCAoOTg14oCTOTg3KVwiLFwi0K3Qv9C+0YXQsCDQldC50LXQvSAoOTg34oCTOTg5KVwiLFwi0K3Qv9C+0YXQsCDQldC50YHQviAoOTg54oCTOTkwKVwiLFwi0K3Qv9C+0YXQsCDQodGR0YDRj9C60YMgKDk5MOKAkzk5NSlcIixcItCt0L/QvtGF0LAg0KLRkdGC0L7QutGDICg5OTXigJM5OTkpXCIsXCLQrdC/0L7RhdCwINCi0ZHRhdC+ICg5OTnigJMxMDA0KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0L3QutC+ICgxMDA04oCTMTAxMilcIixcItCt0L/QvtGF0LAg0KLRkdCy0LAgKDEwMTLigJMxMDE3KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0L3QvdC40L0gKDEwMTfigJMxMDIxKVwiLFwi0K3Qv9C+0YXQsCDQlNC30LjQsNC9ICgxMDIx4oCTMTAyNClcIixcItCt0L/QvtGF0LAg0JzQsNC90LTQt9GOICgxMDI04oCTMTAyOClcIixcItCt0L/QvtGF0LAg0KLRkdCz0Y3QvSAoMTAyOOKAkzEwMzcpXCIsXCLQrdC/0L7RhdCwINCi0ZHRgNGP0LrRgyAoMTAzN+KAkzEwNDApXCIsXCLQrdC/0L7RhdCwINCi0ZHQutGOICgxMDQw4oCTMTA0NClcIixcItCt0L/QvtGF0LAg0JrQsNGC0L7QutGDICgxMDQ04oCTMTA0NilcIixcItCt0L/QvtGF0LAg0K3QudGB0L4gKDEwNDbigJMxMDUzKVwiLFwi0K3Qv9C+0YXQsCDQotGN0L3Qs9C4ICgxMDUz4oCTMTA1OClcIixcItCt0L/QvtGF0LAg0JrQvtGF0Y3QuSAoMTA1OOKAkzEwNjUpXCIsXCLQrdC/0L7RhdCwINCU0LfQuNGA0Y/QutGDICgxMDY14oCTMTA2OSlcIixcItCt0L/QvtGF0LAg0K3QvdC60Y4gKDEwNjnigJMxMDc0KVwiLFwi0K3Qv9C+0YXQsCDQodGR0YXQviAoMTA3NOKAkzEwNzcpXCIsXCLQrdC/0L7RhdCwINCh0ZHRgNGP0LrRgyAoMTA3N+KAkzEwODEpXCIsXCLQrdC/0L7RhdCwINCt0LnRhdC+ICgxMDgx4oCTMTA4NClcIixcItCt0L/QvtGF0LAg0J7RgtC+0LrRgyAoMTA4NOKAkzEwODcpXCIsXCLQrdC/0L7RhdCwINCa0LDQvdC00LfQuCAoMTA4N+KAkzEwOTQpXCIsXCLQrdC/0L7RhdCwINCa0LDRhdC+ICgxMDk04oCTMTA5NilcIixcItCt0L/QvtGF0LAg0K3QudGC0ZEgKDEwOTbigJMxMDk3KVwiLFwi0K3Qv9C+0YXQsCDQodGR0YLQvtC60YMgKDEwOTfigJMxMDk5KVwiLFwi0K3Qv9C+0YXQsCDQmtC+0LLQsCAoMTA5OeKAkzExMDQpXCIsXCLQrdC/0L7RhdCwINCi0ZHQtNC30LggKDExMDTigJMxMTA2KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0YHRkSAoMTEwNuKAkzExMDgpXCIsXCLQrdC/0L7RhdCwINCi0Y3QvdC90LjQvSAoMTEwOOKAkzExMTApXCIsXCLQrdC/0L7RhdCwINCi0Y3QvdGK0Y3QuSAoMTExMOKAkzExMTMpXCIsXCLQrdC/0L7RhdCwINCt0LnQutGOICgxMTEz4oCTMTExOClcIixcItCt0L/QvtGF0LAg0JPRjdC90YrRjdC5ICgxMTE44oCTMTEyMClcIixcItCt0L/QvtGF0LAg0KXQvtCw0L0gKDExMjDigJMxMTI0KVwiLFwi0K3Qv9C+0YXQsCDQotGN0L3QtNC30LggKDExMjTigJMxMTI2KVwiLFwi0K3Qv9C+0YXQsCDQlNCw0LnQtNC30LggKDExMjbigJMxMTMxKVwiLFwi0K3Qv9C+0YXQsCDQotGN0L3RgdGRICgxMTMx4oCTMTEzMilcIixcItCt0L/QvtGF0LAg0KLRkdGB0ZEgKDExMzLigJMxMTM1KVwiLFwi0K3Qv9C+0YXQsCDQpdC+0Y3QvSAoMTEzNeKAkzExNDEpXCIsXCLQrdC/0L7RhdCwINCt0LnQtNC30LggKDExNDHigJMxMTQyKVwiLFwi0K3Qv9C+0YXQsCDQmtC+0LTQt9C4ICgxMTQy4oCTMTE0NClcIixcItCt0L/QvtGF0LAg0KLRjdC90ZEgKDExNDTigJMxMTQ1KVwiLFwi0K3Qv9C+0YXQsCDQmtGO0LDQvSAoMTE0NeKAkzExNTEpXCIsXCLQrdC/0L7RhdCwINCd0LjQvNC/0Y3QuSAoMTE1MeKAkzExNTQpXCIsXCLQrdC/0L7RhdCwINCa0Y7QtNC30Y4gKDExNTTigJMxMTU2KVwiLFwi0K3Qv9C+0YXQsCDQpdC+0LPRjdC9ICgxMTU24oCTMTE1OSlcIixcItCt0L/QvtGF0LAg0KXRjdC50LTQt9C4ICgxMTU54oCTMTE2MClcIixcItCt0L/QvtGF0LAg0K3QudGA0Y/QutGDICgxMTYw4oCTMTE2MSlcIixcItCt0L/QvtGF0LAg0J7RhdC+ICgxMTYx4oCTMTE2MylcIixcItCt0L/QvtGF0LAg0KLRkdC60LDQvSAoMTE2M+KAkzExNjUpXCIsXCLQrdC/0L7RhdCwINCt0LnQvNCw0L0gKDExNjXigJMxMTY2KVwiLFwi0K3Qv9C+0YXQsCDQndC40L3RitCw0L0gKDExNjbigJMxMTY5KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0L4gKDExNjnigJMxMTcxKVwiLFwi0K3Qv9C+0YXQsCDQodGR0LDQvSAoMTE3MeKAkzExNzUpXCIsXCLQrdC/0L7RhdCwINCQ0L3Qs9GN0L0gKDExNzXigJMxMTc3KVwiLFwi0K3Qv9C+0YXQsCDQlNC30LjRgdGRICgxMTc34oCTMTE4MSlcIixcItCt0L/QvtGF0LAg0IHQstCwICgxMTgx4oCTMTE4MilcIixcItCt0L/QvtGF0LAg0JTQt9GO0Y3QuSAoMTE4MuKAkzExODQpXCIsXCLQrdC/0L7RhdCwINCT0Y3QvdGA0Y7QutGDICgxMTg04oCTMTE4NSlcIixcItCt0L/QvtGF0LAg0JHRg9C90LTQt9C4ICgxMTg14oCTMTE5MClcIixcItCt0L/QvtGF0LAg0JrRjdC90LrRjiAoMTE5MOKAkzExOTkpXCIsXCLQrdC/0L7RhdCwINCh0ZHQtNC30LggKDExOTnigJMxMjAxKVwiLFwi0K3Qv9C+0YXQsCDQmtGN0L3QvdC40L0gKDEyMDHigJMxMjA0KVwiLFwi0K3Qv9C+0YXQsCDQk9GN0L3QutGOICgxMjA04oCTMTIwNilcIixcItCt0L/QvtGF0LAg0JrRjdC90YrRjdC5ICgxMjA24oCTMTIwNylcIixcItCt0L/QvtGF0LAg0KHRkdCz0Y3QvSAoMTIwN+KAkzEyMTEpXCIsXCLQrdC/0L7RhdCwINCa0Y3QvdGA0Y/QutGDICgxMjEx4oCTMTIxMylcIixcItCt0L/QvtGF0LAg0JrRjdC80L/QviAoMTIxM+KAkzEyMTkpXCIsXCLQrdC/0L7RhdCwINCh0ZHQutGOICgxMjE54oCTMTIyMilcIixcItCt0L/QvtGF0LAg0JTQt9GR0L4gKDEyMjLigJMxMjI0KVwiLFwi0K3Qv9C+0YXQsCDQk9GN0L3QvdC40L0gKDEyMjTigJMxMjI1KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0YDQvtC60YMgKDEyMjXigJMxMjI3KVwiLFwi0K3Qv9C+0YXQsCDQkNC90YLRjdC5ICgxMjI34oCTMTIyOSlcIixcItCt0L/QvtGF0LAg0JrQsNC90LrQuCAoMTIyOeKAkzEyMzIpXCIsXCLQrdC/0L7RhdCwINCU0LfRkdGN0LkgKDEyMzLigJMxMjMzKVwiLFwi0K3Qv9C+0YXQsCDQotGN0LzQv9GD0LrRgyAoMTIzM+KAkzEyMzQpXCIsXCLQrdC/0L7RhdCwINCR0YPQvdGA0Y/QutGDICgxMjM04oCTMTIzNSlcIixcItCt0L/QvtGF0LAg0JrQsNGC0Y3QuSAoMTIzNeKAkzEyMzgpXCIsXCLQrdC/0L7RhdCwINCg0Y/QutGD0L3QuNC9ICgxMjM44oCTMTIzOSlcIixcItCt0L/QvtGF0LAg0K3QvdGK0L4gKDEyMznigJMxMjQwKVwiLFwi0K3Qv9C+0YXQsCDQndC40L3QtNC30LggKDEyNDDigJMxMjQzKVwiLFwi0K3Qv9C+0YXQsCDQmtCw0L3Qs9GN0L0gKDEyNDPigJMxMjQ3KVwiLFwi0K3Qv9C+0YXQsCDQpdC+0LTQt9C4ICgxMjQ34oCTMTI0OSlcIixcItCt0L/QvtGF0LAg0JrRjdC90YLRkSAoMTI0OeKAkzEyNTYpXCIsXCLQrdC/0L7RhdCwINCa0L7Qs9GN0L0gKDEyNTbigJMxMjU3KVwiLFwi0K3Qv9C+0YXQsCDQodGR0LrQsCAoMTI1N+KAkzEyNTkpXCIsXCLQrdC/0L7RhdCwINCh0ZHQs9GN0L0gKDEyNTnigJMxMjYwKVwiLFwi0K3Qv9C+0YXQsCDQkdGD0L3RitC+ICgxMjYw4oCTMTI2MSlcIixcItCt0L/QvtGF0LAg0JrQvtGC0ZEgKDEyNjHigJMxMjY0KVwiLFwi0K3Qv9C+0YXQsCDQkdGD0L3RitGN0LkgKDEyNjTigJMxMjc1KVwiLFwi0K3Qv9C+0YXQsCDQmtGN0L3QtNC30LggKDEyNzXigJMxMjc4KVwiLFwi0K3Qv9C+0YXQsCDQmtC+0LDQvSAoMTI3OOKAkzEyODgpXCIsXCLQrdC/0L7RhdCwINCh0ZHQviAoMTI4OOKAkzEyOTMpXCIsXCLQrdC/0L7RhdCwINCt0LnQvdC40L0gKDEyOTPigJMxMjk5KVwiLFwi0K3Qv9C+0YXQsCDQodGR0LDQvSAoMTI5OeKAkzEzMDIpXCIsXCLQrdC/0L7RhdCwINCa0Y3QvdCz0Y3QvSAoMTMwMuKAkzEzMDMpXCIsXCLQrdC/0L7RhdCwINCa0LDQs9GN0L0gKDEzMDPigJMxMzA2KVwiLFwi0K3Qv9C+0YXQsCDQotC+0LrRg9C00LfQuCAoMTMwNuKAkzEzMDgpXCIsXCLQrdC/0L7RhdCwINCt0L3QutGN0LkgKDEzMDjigJMxMzExKVwiLFwi0K3Qv9C+0YXQsCDQntGC0ZEgKDEzMTHigJMxMzEyKVwiLFwi0K3Qv9C+0YXQsCDQodGR0LLQsCAoMTMxMuKAkzEzMTcpXCIsXCLQrdC/0L7RhdCwINCR0YPQvNC/0L4gKDEzMTfigJMxMzE5KVwiLFwi0K3Qv9C+0YXQsCDQk9GN0L3QviAoMTMxOeKAkzEzMjEpXCIsXCLQrdC/0L7RhdCwINCT0Y3QvdC60ZEgKDEzMjHigJMxMzI0KVwiLFwi0K3Qv9C+0YXQsCDQodGR0YLRjiAoMTMyNOKAkzEzMjYpXCIsXCLQrdC/0L7RhdCwINCa0LDRgNGN0LrQuCAoMTMyNuKAkzEzMjkpXCIsXCLQrdC/0L7RhdCwINCT0Y3QvdGC0L7QutGDICgxMzI54oCTMTMzMSlcIixcItCt0L/QvtGF0LAg0JPRjdC90LrQviAoMTMzMeKAkzEzMzQpXCIsXCLQrdC/0L7RhdCwINCa0Y3QvNC80YMgKDEzMzTigJMxMzM2KVwiLFwi0K3Qv9C+0YXQsCDQrdC90LPRjdC9ICgxMzM24oCTMTM0MClcIixcItCt0L/QvtGF0LAg0JrQvtC60L7QutGDICgxMzQw4oCTMTM0NilcIixcItCt0L/QvtGF0LAg0KHRkdGF0Y3QuSAoMTM0NuKAkzEzNzApXCIsXCLQrdC/0L7RhdCwINCa0Y3QvdGC0L7QutGDICgxMzcw4oCTMTM3MilcIixcItCt0L/QvtGF0LAg0JHRg9C90YLRjiAoMTM3MuKAkzEzNzUpXCIsXCLQrdC/0L7RhdCwINCY0Y3QvdC00LfRjiAoMTM3NeKAkzEzNzkpXCIsXCLQrdC/0L7RhdCwINCa0L7RgNGP0LrRgyAoMTM3OeKAkzEzODEpXCIsXCLQrdC/0L7RhdCwINCa0L7QstCwICgxMzgx4oCTMTM4NClcIixcItCt0L/QvtGF0LAg0JPRjdC90YLRjiAoMTM4NOKAkzEzOTIpXCIsXCLQrdC/0L7RhdCwINCc0Y3QudGC0L7QutGDICgxMzg04oCTMTM4NylcIixcItCt0L/QvtGF0LAg0JrQsNC60Y3QuSAoMTM4N+KAkzEzODkpXCIsXCLQrdC/0L7RhdCwINCa0L7QviAoMTM4OeKAkzEzOTApXCIsXCLQrdC/0L7RhdCwINCc0Y3QudGC0L7QutGDICgxMzkw4oCTMTM5NClcIixcItCt0L/QvtGF0LAg0J7RjdC5ICgxMzk04oCTMTQyOClcIixcItCt0L/QvtGF0LAg0KHRkdGC0ZEgKDE0MjjigJMxNDI5KVwiLFwi0K3Qv9C+0YXQsCDQrdC50LrRkSAoMTQyOeKAkzE0NDEpXCIsXCLQrdC/0L7RhdCwINCa0LDQutC40YbRgyAoMTQ0MeKAkzE0NDQpXCIsXCLQrdC/0L7RhdCwINCR0LDQvdGK0LDQvSAoMTQ0NOKAkzE0NDkpXCIsXCLQrdC/0L7RhdCwINCl0L7RgtC+0LrRgyAoMTQ0OeKAkzE0NTIpXCIsXCLQrdC/0L7RhdCwINCa0ZHRgtC+0LrRgyAoMTQ1MuKAkzE0NTUpXCIsXCLQrdC/0L7RhdCwINCa0L7RgdGRICgxNDU14oCTMTQ1NylcIixcItCt0L/QvtGF0LAg0KLRkdGA0L7QutGDICgxNDU34oCTMTQ2MClcIixcItCt0L/QvtGF0LAg0JrQsNC90YHRkSAoMTQ2MOKAkzE0NjYpXCIsXCLQrdC/0L7RhdCwINCR0YPQvdGB0ZEgKDE0NjbigJMxNDY3KVwiLFwi0K3Qv9C+0YXQsCDQntC90LjQvSAoMTQ2N+KAkzE0NjkpXCIsXCLQrdC/0L7RhdCwINCR0YPQvNC80Y3QuSAoMTQ2OeKAkzE0ODcpXCIsXCLQrdC/0L7RhdCwINCi0ZHQutGRICgxNDg34oCTMTQ4OSlcIixcItCt0L/QvtGF0LAg0K3QvdGC0L7QutGDICgxNDg54oCTMTQ5MilcIixcItCt0L/QvtGF0LAg0JzRjdC50L4gKDE0OTLigJMxNTAxKVwiLFwi0K3Qv9C+0YXQsCDQkdGD0L3QutC4ICgxNTAx4oCTMTUwNClcIixcItCt0L/QvtGF0LAg0K3QudGB0ZEgKDE1MDTigJMxNTIxKVwiLFwi0K3Qv9C+0YXQsCDQotCw0LnRjdC5ICgxNTIx4oCTMTUyOClcIixcItCt0L/QvtGF0LAg0JrRkdGA0L7QutGDICgxNTI44oCTMTUzMilcIixcItCt0L/QvtGF0LAg0KLRjdC80LzQvtC9ICgxNTMy4oCTMTU1NSlcIixcItCt0L/QvtGF0LAg0JrQvtC00LfQuCAoMTU1NeKAkzE1NTgpXCIsXCLQrdC/0L7RhdCwINCt0LnRgNC+0LrRgyAoMTU1OOKAkzE1NzApXCIsXCLQrdC/0L7RhdCwINCT0Y3QvdC60LggKDE1NzDigJMxNTczKVwiLFwi0K3Qv9C+0YXQsCDQotGN0L3RgdGRICgxNTcz4oCTMTU5MilcIixcItCt0L/QvtGF0LAg0JHRg9C90YDQvtC60YMgKDE1OTLigJMxNTk2KVwiLFwi0K3Qv9C+0YXQsCDQmtGN0LnRgtGRICgxNTk24oCTMTYxNSlcIixcItCt0L/QvtGF0LAg0JPRjdC90LLQsCAoMTYxNeKAkzE2MjQpXCIsXCLQrdC/0L7RhdCwINCa0LDQvdGK0Y3QuSAoMTYyNOKAkzE2NDQpXCIsXCLQrdC/0L7RhdCwINCh0ZHRhdC+ICgxNjQ04oCTMTY0OClcIixcItCt0L/QvtGF0LAg0JrRjdC50LDQvSAoMTY0OOKAkzE2NTIpXCIsXCLQrdC/0L7RhdCwINCh0ZEgKDE2NTLigJMxNjU1KVwiLFwi0K3Qv9C+0YXQsCDQnNGN0LnRgNGP0LrRgyAoMTY1NeKAkzE2NTgpXCIsXCLQrdC/0L7RhdCwINCc0LDQvdC00LfQuCAoMTY1OOKAkzE2NjEpXCIsXCLQrdC/0L7RhdCwINCa0LDQvNCx0YPQvSAoMTY2MeKAkzE2NzMpXCIsXCLQrdC/0L7RhdCwINCt0LzQv9C+ICgxNjcz4oCTMTY4MSlcIixcItCt0L/QvtGF0LAg0KLRjdC90LLQsCAoMTY4MeKAkzE2ODQpXCIsXCLQrdC/0L7RhdCwINCU0LfRkdC60ZEgKDE2ODTigJMxNjg4KVwiLFwi0K3Qv9C+0YXQsCDQk9GN0L3RgNC+0LrRgyAoMTY4OOKAkzE3MDQpXCIsXCLQrdC/0L7RhdCwINCl0L7RjdC5ICgxNzA04oCTMTcxMSlcIixcItCt0L/QvtGF0LAg0KHRkdGC0L7QutGDICgxNzEx4oCTMTcxNilcIixcItCt0L/QvtGF0LAg0JrRkdGF0L4gKDE3MTbigJMxNzM2KVwiLFwi0K3Qv9C+0YXQsCDQk9GN0LzQsdGD0L0gKDE3MzbigJMxNzQxKVwiLFwi0K3Qv9C+0YXQsCDQmtCw0LzQv9C+ICgxNzQx4oCTMTc0NClcIixcItCt0L/QvtGF0LAg0K3QvdC60ZEgKDE3NDTigJMxNzQ4KVwiLFwi0K3Qv9C+0YXQsCDQmtCw0L3RitGN0L0gKDE3NDjigJMxNzUxKVwiLFwi0K3Qv9C+0YXQsCDQpdC+0YDRj9C60YMgKDE3NTHigJMxNzY0KVwiLFwi0K3Qv9C+0YXQsCDQnNGN0LnQstCwICgxNzY04oCTMTc3MilcIixcItCt0L/QvtGF0LAg0JDQvdGK0Y3QuSAoMTc3MuKAkzE3ODEpXCIsXCLQrdC/0L7RhdCwINCi0Y3QvNC80Y3QuSAoMTc4MeKAkzE3ODkpXCIsXCLQrdC/0L7RhdCwINCa0LDQvdGB0Y3QuSAoMTc4OeKAkzE4MDEpXCIsXCLQrdC/0L7RhdCwINCa0ZHQstCwICgxODAx4oCTMTgwNClcIixcItCt0L/QvtGF0LAg0JHRg9C90LrQsCAoMTgwNOKAkzE4MTgpXCIsXCLQrdC/0L7RhdCwINCR0YPQvdGB0Y3QuSAoMTgxOOKAkzE4MzApXCIsXCLQrdC/0L7RhdCwINCi0Y3QvNC/0L4gKDE4MzDigJMxODQ0KVwiLFwi0K3Qv9C+0YXQsCDQmtC+0LrQsCAoMTg0NOKAkzE4NDgpXCIsXCLQrdC/0L7RhdCwINCa0LDRjdC5ICgxODQ44oCTMTg1NClcIixcItCt0L/QvtGF0LAg0JDQvdGB0Y3QuSAoMTg1NOKAkzE4NjApXCIsXCLQrdC/0L7RhdCwINCc0LDQvdGK0Y3QvSAoMTg2MOKAkzE4NjEpXCIsXCLQrdC/0L7RhdCwINCR0YPQvdC60Y4gKDE4NjHigJMxODY0KVwiLFwi0K3Qv9C+0YXQsCDQk9C10L3QtNC30LggKDE4NjTigJMxODY1KVwiLFwi0K3Qv9C+0YXQsCDQmtC10LnQviAoMTg2NeKAkzE4NjgpXCIsXCLQrdC/0L7RhdCwINCc0Y3QudC00LfQuFwiLFwi0K3Qv9C+0YXQsCDQotCw0LnRgdGM0L5cIixcItCh0YzQvtCy0LBcIixcItCt0L/QvtGF0LAg0KXRjdC50YHRjdC5XCJdfSxkYXlQZXJpb2RzOnthbTpcItCU0J9cIixwbTpcItCf0J9cIn19LHBlcnNpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wi0KTQsNGA0LLQsNGA0LTQuNC9XCIsXCLQntGA0LTQuNCx0LXRhdC10YjRglwiLFwi0KXQvtGA0LTQsNC0XCIsXCLQotC40YBcIixcItCc0L7RgNC00LDQtFwiLFwi0KjQsNGF0YDQuNCy0LXRgFwiLFwi0JzQtdGF0YBcIixcItCQ0LHQsNC9XCIsXCLQkNC30LXRgFwiLFwi0JTQtdC5XCIsXCLQkdCw0YXQvNCw0L1cIixcItCt0YHRhNCw0L3QtFwiXSxsb25nOltcItCk0LDRgNCy0LDRgNC00LjQvVwiLFwi0J7RgNC00LjQsdC10YXQtdGI0YJcIixcItCl0L7RgNC00LDQtFwiLFwi0KLQuNGAXCIsXCLQnNC+0YDQtNCw0LRcIixcItCo0LDRhdGA0LjQstC10YBcIixcItCc0LXRhdGAXCIsXCLQkNCx0LDQvVwiLFwi0JDQt9C10YBcIixcItCU0LXQuVwiLFwi0JHQsNGF0LzQsNC9XCIsXCLQrdGB0YTQsNC90LRcIl19LGRheXM6e25hcnJvdzpbXCLQstGBXCIsXCLQv9C9XCIsXCLQstGCXCIsXCLRgdGAXCIsXCLRh9GCXCIsXCLQv9GCXCIsXCLRgdCxXCJdLHNob3J0OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sbG9uZzpbXCLQstC+0YHQutGA0LXRgdC10L3RjNC1XCIsXCLQv9C+0L3QtdC00LXQu9GM0L3QuNC6XCIsXCLQstGC0L7RgNC90LjQulwiLFwi0YHRgNC10LTQsFwiLFwi0YfQtdGC0LLQtdGA0LNcIixcItC/0Y/RgtC90LjRhtCwXCIsXCLRgdGD0LHQsdC+0YLQsFwiXX0sZXJhczp7bmFycm93OltcIkFQXCJdLHNob3J0OltcIkFQXCJdLGxvbmc6W1wiQVBcIl19LGRheVBlcmlvZHM6e2FtOlwi0JTQn1wiLHBtOlwi0J/Qn1wifX0scm9jOnttb250aHM6e25hcnJvdzpbXCLQr1wiLFwi0KRcIixcItCcXCIsXCLQkFwiLFwi0JxcIixcItCYXCIsXCLQmFwiLFwi0JBcIixcItChXCIsXCLQnlwiLFwi0J1cIixcItCUXCJdLHNob3J0OltcItGP0L3Qsi5cIixcItGE0LXQstGALlwiLFwi0LzQsNGALlwiLFwi0LDQv9GALlwiLFwi0LzQsNGPXCIsXCLQuNGO0L0uXCIsXCLQuNGO0LsuXCIsXCLQsNCy0LMuXCIsXCLRgdC10L3Rgi5cIixcItC+0LrRgi5cIixcItC90L7Rj9CxLlwiLFwi0LTQtdC6LlwiXSxsb25nOltcItGP0L3QstCw0YDRj1wiLFwi0YTQtdCy0YDQsNC70Y9cIixcItC80LDRgNGC0LBcIixcItCw0L/RgNC10LvRj1wiLFwi0LzQsNGPXCIsXCLQuNGO0L3Rj1wiLFwi0LjRjtC70Y9cIixcItCw0LLQs9GD0YHRgtCwXCIsXCLRgdC10L3RgtGP0LHRgNGPXCIsXCLQvtC60YLRj9Cx0YDRj1wiLFwi0L3QvtGP0LHRgNGPXCIsXCLQtNC10LrQsNCx0YDRj1wiXX0sZGF5czp7bmFycm93OltcItCy0YFcIixcItC/0L1cIixcItCy0YJcIixcItGB0YBcIixcItGH0YJcIixcItC/0YJcIixcItGB0LFcIl0sc2hvcnQ6W1wi0LLRgVwiLFwi0L/QvVwiLFwi0LLRglwiLFwi0YHRgFwiLFwi0YfRglwiLFwi0L/RglwiLFwi0YHQsVwiXSxsb25nOltcItCy0L7RgdC60YDQtdGB0LXQvdGM0LVcIixcItC/0L7QvdC10LTQtdC70YzQvdC40LpcIixcItCy0YLQvtGA0L3QuNC6XCIsXCLRgdGA0LXQtNCwXCIsXCLRh9C10YLQstC10YDQs1wiLFwi0L/Rj9GC0L3QuNGG0LBcIixcItGB0YPQsdCx0L7RgtCwXCJdfSxlcmFzOntuYXJyb3c6W1wiQmVmb3JlIFIuTy5DLlwiLFwiTWluZ3VvXCJdLHNob3J0OltcIkJlZm9yZSBSLk8uQy5cIixcIk1pbmd1b1wiXSxsb25nOltcIkJlZm9yZSBSLk8uQy5cIixcIk1pbmd1b1wiXX0sZGF5UGVyaW9kczp7YW06XCLQlNCfXCIscG06XCLQn9CfXCJ9fX19LG51bWJlcjp7bnU6W1wibGF0blwiXSxwYXR0ZXJuczp7ZGVjaW1hbDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9XCJ9LGN1cnJlbmN5Ontwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfcKge2N1cnJlbmN5fVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn3CoHtjdXJyZW5jeX1cIn0scGVyY2VudDp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn3CoHtwZXJjZW50U2lnbn1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9wqB7cGVyY2VudFNpZ259XCJ9fSxzeW1ib2xzOntsYXRuOntkZWNpbWFsOlwiLFwiLGdyb3VwOlwiwqBcIixuYW46XCLQvdC1wqDRh9C40YHQu9C+XCIscGx1c1NpZ246XCIrXCIsbWludXNTaWduOlwiLVwiLHBlcmNlbnRTaWduOlwiJVwiLGluZmluaXR5Olwi4oieXCJ9fSxjdXJyZW5jaWVzOntBVUQ6XCJBJFwiLEJSTDpcIlIkXCIsQ0FEOlwiQ0EkXCIsQ05ZOlwiQ07CpVwiLEVVUjpcIuKCrFwiLEdCUDpcIsKjXCIsSEtEOlwiSEskXCIsSUxTOlwi4oKqXCIsSU5SOlwi4oK5XCIsSlBZOlwiwqVcIixLUlc6XCLigqlcIixNWE46XCJNWCRcIixOWkQ6XCJOWiRcIixSVUI6XCLigr1cIixSVVI6XCLRgC5cIixUSEI6XCLguL9cIixUTVQ6XCLQotCc0KJcIixUV0Q6XCJOVCRcIixVQUg6XCLigrRcIixVU0Q6XCIkXCIsVk5EOlwi4oKrXCIsWEFGOlwiRkNGQVwiLFhDRDpcIkVDJFwiLFhPRjpcIkNGQVwiLFhQRjpcIkNGUEZcIixYWFg6XCJYWFhYXCJ9fX0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2ludGwvbG9jYWxlLWRhdGEvanNvbnAvcnUuanNcbi8vIG1vZHVsZSBpZCA9IDIyOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiSW50bFBvbHlmaWxsLl9fYWRkTG9jYWxlRGF0YSh7bG9jYWxlOlwic3ZcIixkYXRlOntjYTpbXCJncmVnb3J5XCIsXCJidWRkaGlzdFwiLFwiY2hpbmVzZVwiLFwiY29wdGljXCIsXCJkYW5naVwiLFwiZXRoaW9hYVwiLFwiZXRoaW9waWNcIixcImdlbmVyaWNcIixcImhlYnJld1wiLFwiaW5kaWFuXCIsXCJpc2xhbWljXCIsXCJpc2xhbWljY1wiLFwiamFwYW5lc2VcIixcInBlcnNpYW5cIixcInJvY1wiXSxob3VyTm8wOnRydWUsaG91cjEyOmZhbHNlLGZvcm1hdHM6e3Nob3J0OlwiezF9IHswfVwiLG1lZGl1bTpcInsxfSB7MH1cIixmdWxsOlwiezF9IHswfVwiLGxvbmc6XCJ7MX0gezB9XCIsYXZhaWxhYmxlRm9ybWF0czp7XCJkXCI6XCJkXCIsXCJFXCI6XCJjY2NcIixFZDpcIkUgZFwiLEVobTpcIkUgaDptbSBhXCIsRUhtOlwiRSBISDptbVwiLEVobXM6XCJFIGg6bW06c3MgYVwiLEVIbXM6XCJFIEhIOm1tOnNzXCIsR3k6XCJ5IEdcIixHeU1NTTpcIk1NTSB5IEdcIixHeU1NTWQ6XCJkIE1NTSB5IEdcIixHeU1NTUVkOlwiRSBkIE1NTSB5IEdcIixcImhcIjpcImggYVwiLFwiSFwiOlwiSEhcIixobTpcImg6bW0gYVwiLEhtOlwiSEg6bW1cIixobXM6XCJoOm1tOnNzIGFcIixIbXM6XCJISDptbTpzc1wiLGhtc3Y6XCJoOm1tOnNzIGEgdlwiLEhtc3Y6XCJISDptbTpzcyB2XCIsaG12OlwiaDptbSBhIHZcIixIbXY6XCJISDptbSB2XCIsXCJNXCI6XCJMXCIsTWQ6XCJkL01cIixNRWQ6XCJFIGQvTVwiLE1NZDpcImQvTVwiLE1NZGQ6XCJkZC9NTVwiLE1NTTpcIkxMTFwiLE1NTWQ6XCJkIE1NTVwiLE1NTUVkOlwiRSBkIE1NTVwiLE1NTU1kOlwiZCBNTU1NXCIsTU1NTUVkOlwiRSBkIE1NTU1cIixtczpcIm1tOnNzXCIsXCJ5XCI6XCJ5XCIseU06XCJ5LU1NXCIseU1kOlwieS1NTS1kZFwiLHlNRWQ6XCJFLCB5LU1NLWRkXCIseU1NOlwieS1NTVwiLHlNTU06XCJNTU0geVwiLHlNTU1kOlwiZCBNTU0geVwiLHlNTU1FZDpcIkUgZCBNTU0geVwiLHlNTU1NOlwiTU1NTSB5XCIseVFRUTpcIlFRUSB5XCIseVFRUVE6XCJRUVFRIHlcIn0sZGF0ZUZvcm1hdHM6e3lNTU1NRUVFRWQ6XCJFRUVFIGQgTU1NTSB5XCIseU1NTU1kOlwiZCBNTU1NIHlcIix5TU1NZDpcImQgTU1NIHlcIix5TWQ6XCJ5LU1NLWRkXCJ9LHRpbWVGb3JtYXRzOntobW1zc3p6eno6XCIna2wnLiBISDptbTpzcyB6enp6XCIsaG1zejpcIkhIOm1tOnNzIHpcIixobXM6XCJISDptbTpzc1wiLGhtOlwiSEg6bW1cIn19LGNhbGVuZGFyczp7YnVkZGhpc3Q6e21vbnRoczp7bmFycm93OltcIkpcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiamFuLlwiLFwiZmViLlwiLFwibWFyc1wiLFwiYXByLlwiLFwibWFqXCIsXCJqdW5pXCIsXCJqdWxpXCIsXCJhdWcuXCIsXCJzZXAuXCIsXCJva3QuXCIsXCJub3YuXCIsXCJkZWMuXCJdLGxvbmc6W1wiamFudWFyaVwiLFwiZmVicnVhcmlcIixcIm1hcnNcIixcImFwcmlsXCIsXCJtYWpcIixcImp1bmlcIixcImp1bGlcIixcImF1Z3VzdGlcIixcInNlcHRlbWJlclwiLFwib2t0b2JlclwiLFwibm92ZW1iZXJcIixcImRlY2VtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiT1wiLFwiVFwiLFwiRlwiLFwiTFwiXSxzaG9ydDpbXCJzw7ZuXCIsXCJtw6VuXCIsXCJ0aXNcIixcIm9uc1wiLFwidG9yc1wiLFwiZnJlXCIsXCJsw7ZyXCJdLGxvbmc6W1wic8O2bmRhZ1wiLFwibcOlbmRhZ1wiLFwidGlzZGFnXCIsXCJvbnNkYWdcIixcInRvcnNkYWdcIixcImZyZWRhZ1wiLFwibMO2cmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkJFXCJdLHNob3J0OltcIkJFXCJdLGxvbmc6W1wiQkVcIl19LGRheVBlcmlvZHM6e2FtOlwiZm1cIixwbTpcImVtXCJ9fSxjaGluZXNlOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl0sbG9uZzpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiT1wiLFwiVFwiLFwiRlwiLFwiTFwiXSxzaG9ydDpbXCJzw7ZuXCIsXCJtw6VuXCIsXCJ0aXNcIixcIm9uc1wiLFwidG9yc1wiLFwiZnJlXCIsXCJsw7ZyXCJdLGxvbmc6W1wic8O2bmRhZ1wiLFwibcOlbmRhZ1wiLFwidGlzZGFnXCIsXCJvbnNkYWdcIixcInRvcnNkYWdcIixcImZyZWRhZ1wiLFwibMO2cmRhZ1wiXX0sZGF5UGVyaW9kczp7YW06XCJmbVwiLHBtOlwiZW1cIn19LGNvcHRpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1widG91dFwiLFwiYsOiYsOiXCIsXCJow6J0b3VyXCIsXCJraWFoa1wiLFwidG91YmFoXCIsXCJhbXNow65yXCIsXCJiYXJtYWjDonRcIixcImJhcm1vdWRhaFwiLFwiYmFzaGFuc1wiLFwiYmHigJlvdW5haFwiLFwiYWLDrmJcIixcIm1pc3JhXCIsXCJhbC1uYXNpXCJdLGxvbmc6W1widG91dFwiLFwiYsOiYsOiXCIsXCJow6J0b3VyXCIsXCJraWFoa1wiLFwidG91YmFoXCIsXCJhbXNow65yXCIsXCJiYXJtYWjDonRcIixcImJhcm1vdWRhaFwiLFwiYmFzaGFuc1wiLFwiYmHigJlvdW5haFwiLFwiYWLDrmJcIixcIm1pc3JhXCIsXCJhbC1uYXNpXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiT1wiLFwiVFwiLFwiRlwiLFwiTFwiXSxzaG9ydDpbXCJzw7ZuXCIsXCJtw6VuXCIsXCJ0aXNcIixcIm9uc1wiLFwidG9yc1wiLFwiZnJlXCIsXCJsw7ZyXCJdLGxvbmc6W1wic8O2bmRhZ1wiLFwibcOlbmRhZ1wiLFwidGlzZGFnXCIsXCJvbnNkYWdcIixcInRvcnNkYWdcIixcImZyZWRhZ1wiLFwibMO2cmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiZm1cIixwbTpcImVtXCJ9fSxkYW5naTp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdLGxvbmc6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIk9cIixcIlRcIixcIkZcIixcIkxcIl0sc2hvcnQ6W1wic8O2blwiLFwibcOlblwiLFwidGlzXCIsXCJvbnNcIixcInRvcnNcIixcImZyZVwiLFwibMO2clwiXSxsb25nOltcInPDtm5kYWdcIixcIm3DpW5kYWdcIixcInRpc2RhZ1wiLFwib25zZGFnXCIsXCJ0b3JzZGFnXCIsXCJmcmVkYWdcIixcImzDtnJkYWdcIl19LGRheVBlcmlvZHM6e2FtOlwiZm1cIixwbTpcImVtXCJ9fSxldGhpb3BpYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiLFwiMTNcIl0sc2hvcnQ6W1wibcOkc2vDpHLDpG1cIixcInRlcWVtdFwiLFwiaGVkYXJcIixcInRhaGVzYXNcIixcInRlclwiLFwiecOka2F0aXRcIixcIm3DpGdhYml0XCIsXCJtaXlhenlhXCIsXCJndWVuYm90XCIsXCJzw6Ruw6lcIixcImhhbWzDqVwiLFwibsOkaGFzw6lcIixcInBhZ3Vtw6luXCJdLGxvbmc6W1wibcOkc2vDpHLDpG1cIixcInRlcWVtdFwiLFwiaGVkYXJcIixcInRhaGVzYXNcIixcInRlclwiLFwiecOka2F0aXRcIixcIm3DpGdhYml0XCIsXCJtaXlhenlhXCIsXCJndWVuYm90XCIsXCJzw6Ruw6lcIixcImhhbWzDqVwiLFwibsOkaGFzw6lcIixcInBhZ3Vtw6luXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiT1wiLFwiVFwiLFwiRlwiLFwiTFwiXSxzaG9ydDpbXCJzw7ZuXCIsXCJtw6VuXCIsXCJ0aXNcIixcIm9uc1wiLFwidG9yc1wiLFwiZnJlXCIsXCJsw7ZyXCJdLGxvbmc6W1wic8O2bmRhZ1wiLFwibcOlbmRhZ1wiLFwidGlzZGFnXCIsXCJvbnNkYWdcIixcInRvcnNkYWdcIixcImZyZWRhZ1wiLFwibMO2cmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwiZm1cIixwbTpcImVtXCJ9fSxldGhpb2FhOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCJtw6Rza8OkcsOkbVwiLFwidGVxZW10XCIsXCJoZWRhclwiLFwidGFoZXNhc1wiLFwidGVyXCIsXCJ5w6RrYXRpdFwiLFwibcOkZ2FiaXRcIixcIm1peWF6eWFcIixcImd1ZW5ib3RcIixcInPDpG7DqVwiLFwiaGFtbMOpXCIsXCJuw6RoYXPDqVwiLFwicGFndW3DqW5cIl0sbG9uZzpbXCJtw6Rza8OkcsOkbVwiLFwidGVxZW10XCIsXCJoZWRhclwiLFwidGFoZXNhc1wiLFwidGVyXCIsXCJ5w6RrYXRpdFwiLFwibcOkZ2FiaXRcIixcIm1peWF6eWFcIixcImd1ZW5ib3RcIixcInPDpG7DqVwiLFwiaGFtbMOpXCIsXCJuw6RoYXPDqVwiLFwicGFndW3DqW5cIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJPXCIsXCJUXCIsXCJGXCIsXCJMXCJdLHNob3J0OltcInPDtm5cIixcIm3DpW5cIixcInRpc1wiLFwib25zXCIsXCJ0b3JzXCIsXCJmcmVcIixcImzDtnJcIl0sbG9uZzpbXCJzw7ZuZGFnXCIsXCJtw6VuZGFnXCIsXCJ0aXNkYWdcIixcIm9uc2RhZ1wiLFwidG9yc2RhZ1wiLFwiZnJlZGFnXCIsXCJsw7ZyZGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiXSxzaG9ydDpbXCJFUkEwXCJdLGxvbmc6W1wiRVJBMFwiXX0sZGF5UGVyaW9kczp7YW06XCJmbVwiLHBtOlwiZW1cIn19LGdlbmVyaWM6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiTTAxXCIsXCJNMDJcIixcIk0wM1wiLFwiTTA0XCIsXCJNMDVcIixcIk0wNlwiLFwiTTA3XCIsXCJNMDhcIixcIk0wOVwiLFwiTTEwXCIsXCJNMTFcIixcIk0xMlwiXSxsb25nOltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJPXCIsXCJUXCIsXCJGXCIsXCJMXCJdLHNob3J0OltcInPDtm5cIixcIm3DpW5cIixcInRpc1wiLFwib25zXCIsXCJ0b3JzXCIsXCJmcmVcIixcImzDtnJcIl0sbG9uZzpbXCJzw7ZuZGFnXCIsXCJtw6VuZGFnXCIsXCJ0aXNkYWdcIixcIm9uc2RhZ1wiLFwidG9yc2RhZ1wiLFwiZnJlZGFnXCIsXCJsw7ZyZGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiRVJBMFwiLFwiRVJBMVwiXSxzaG9ydDpbXCJFUkEwXCIsXCJFUkExXCJdLGxvbmc6W1wiRVJBMFwiLFwiRVJBMVwiXX0sZGF5UGVyaW9kczp7YW06XCJmbVwiLHBtOlwiZW1cIn19LGdyZWdvcnk6e21vbnRoczp7bmFycm93OltcIkpcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiamFuLlwiLFwiZmViLlwiLFwibWFyc1wiLFwiYXByLlwiLFwibWFqXCIsXCJqdW5pXCIsXCJqdWxpXCIsXCJhdWcuXCIsXCJzZXAuXCIsXCJva3QuXCIsXCJub3YuXCIsXCJkZWMuXCJdLGxvbmc6W1wiamFudWFyaVwiLFwiZmVicnVhcmlcIixcIm1hcnNcIixcImFwcmlsXCIsXCJtYWpcIixcImp1bmlcIixcImp1bGlcIixcImF1Z3VzdGlcIixcInNlcHRlbWJlclwiLFwib2t0b2JlclwiLFwibm92ZW1iZXJcIixcImRlY2VtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiT1wiLFwiVFwiLFwiRlwiLFwiTFwiXSxzaG9ydDpbXCJzw7ZuXCIsXCJtw6VuXCIsXCJ0aXNcIixcIm9uc1wiLFwidG9yc1wiLFwiZnJlXCIsXCJsw7ZyXCJdLGxvbmc6W1wic8O2bmRhZ1wiLFwibcOlbmRhZ1wiLFwidGlzZGFnXCIsXCJvbnNkYWdcIixcInRvcnNkYWdcIixcImZyZWRhZ1wiLFwibMO2cmRhZ1wiXX0sZXJhczp7bmFycm93OltcImYuS3IuXCIsXCJlLktyLlwiLFwiZnZ0XCIsXCJ2dFwiXSxzaG9ydDpbXCJmLktyLlwiLFwiZS5Lci5cIixcImYudi50LlwiLFwidi50LlwiXSxsb25nOltcImbDtnJlIEtyaXN0dXNcIixcImVmdGVyIEtyaXN0dXNcIixcImbDtnJlIHbDpHN0ZXJsw6RuZHNrIHRpZGVyw6RrbmluZ1wiLFwidsOkc3RlcmzDpG5kc2sgdGlkZXLDpGtuaW5nXCJdfSxkYXlQZXJpb2RzOnthbTpcImZtXCIscG06XCJlbVwifX0saGVicmV3Onttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiLFwiN1wiXSxzaG9ydDpbXCJ0aXNocsOtXCIsXCJoZXNodsOhblwiLFwia2lzbMOpdlwiLFwidGV2w6l0XCIsXCJzaGV2w6F0XCIsXCJhZMOhciBJXCIsXCJhZMOhclwiLFwibmlzw6FuXCIsXCJpamrDoXJcIixcInNpdsOhblwiLFwidGFtbcO6elwiLFwiYWJcIixcImVsw7psXCIsXCJhZMOhciBJSVwiXSxsb25nOltcInRpc2hyw61cIixcImhlc2h2w6FuXCIsXCJraXNsw6l2XCIsXCJ0ZXbDqXRcIixcInNoZXbDoXRcIixcImFkw6FyIElcIixcImFkw6FyXCIsXCJuaXPDoW5cIixcImlqasOhclwiLFwic2l2w6FuXCIsXCJ0YW1tw7p6XCIsXCJhYlwiLFwiZWzDumxcIixcImFkw6FyIElJXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiT1wiLFwiVFwiLFwiRlwiLFwiTFwiXSxzaG9ydDpbXCJzw7ZuXCIsXCJtw6VuXCIsXCJ0aXNcIixcIm9uc1wiLFwidG9yc1wiLFwiZnJlXCIsXCJsw7ZyXCJdLGxvbmc6W1wic8O2bmRhZ1wiLFwibcOlbmRhZ1wiLFwidGlzZGFnXCIsXCJvbnNkYWdcIixcInRvcnNkYWdcIixcImZyZWRhZ1wiLFwibMO2cmRhZ1wiXX0sZXJhczp7bmFycm93OltcIkFNXCJdLHNob3J0OltcIkFNXCJdLGxvbmc6W1wiQU1cIl19LGRheVBlcmlvZHM6e2FtOlwiZm1cIixwbTpcImVtXCJ9fSxpbmRpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiY2hhaXRyYVwiLFwidmFpc2jEgWtoXCIsXCJqeWFpc2h0aGFcIixcIsSBc2jEgWRoYVwiLFwic2hyxIF2YW5hXCIsXCJiaMSBZHJhcGFkXCIsXCLEgXNod2luXCIsXCJrxIFydGlrXCIsXCJtxIFyZ2FzaMSrcnNoYVwiLFwicGF1c2hcIixcIm3EgWdoXCIsXCJwaMSBbGd1blwiXSxsb25nOltcImNoYWl0cmFcIixcInZhaXNoxIFraFwiLFwianlhaXNodGhhXCIsXCLEgXNoxIFkaGFcIixcInNocsSBdmFuYVwiLFwiYmjEgWRyYXBhZFwiLFwixIFzaHdpblwiLFwia8SBcnRpa1wiLFwibcSBcmdhc2jEq3JzaGFcIixcInBhdXNoXCIsXCJtxIFnaFwiLFwicGjEgWxndW5cIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJPXCIsXCJUXCIsXCJGXCIsXCJMXCJdLHNob3J0OltcInPDtm5cIixcIm3DpW5cIixcInRpc1wiLFwib25zXCIsXCJ0b3JzXCIsXCJmcmVcIixcImzDtnJcIl0sbG9uZzpbXCJzw7ZuZGFnXCIsXCJtw6VuZGFnXCIsXCJ0aXNkYWdcIixcIm9uc2RhZ1wiLFwidG9yc2RhZ1wiLFwiZnJlZGFnXCIsXCJsw7ZyZGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiU0FLQVwiXSxzaG9ydDpbXCJTQUtBXCJdLGxvbmc6W1wiU2FrYS1lcmFuXCJdfSxkYXlQZXJpb2RzOnthbTpcImZtXCIscG06XCJlbVwifX0saXNsYW1pYzp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCJNdWguXCIsXCJTYWYuXCIsXCJSYWIuIElcIixcIlJhYi4gSUlcIixcIkp1bS4gSVwiLFwiSnVtLiBJSVwiLFwiUmFqLlwiLFwiU2hhLlwiLFwiUmFtLlwiLFwiU2hhdy5cIixcIkRodcq7bC1RLlwiLFwiRGh1yrtsLUguXCJdLGxvbmc6W1wibXVoYXJyYW1cIixcInNhZmFyXCIsXCJyYWJp4oCZIGFsLWF3d2FsXCIsXCJyYWJp4oCZIGFsLWFraGlyXCIsXCJqdW1hZGEtbC11bGFcIixcImp1bWFkYS1sLWFraGlyYVwiLFwicmFqYWJcIixcInNoYeKAmWJhblwiLFwicmFtYWRhblwiLFwic2hhd3dhbFwiLFwiZGh1LWwtZ2HigJlkYVwiLFwiZGh1LWwtaGlqamFcIl19LGRheXM6e25hcnJvdzpbXCJTXCIsXCJNXCIsXCJUXCIsXCJPXCIsXCJUXCIsXCJGXCIsXCJMXCJdLHNob3J0OltcInPDtm5cIixcIm3DpW5cIixcInRpc1wiLFwib25zXCIsXCJ0b3JzXCIsXCJmcmVcIixcImzDtnJcIl0sbG9uZzpbXCJzw7ZuZGFnXCIsXCJtw6VuZGFnXCIsXCJ0aXNkYWdcIixcIm9uc2RhZ1wiLFwidG9yc2RhZ1wiLFwiZnJlZGFnXCIsXCJsw7ZyZGFnXCJdfSxlcmFzOntuYXJyb3c6W1wiQUhcIl0sc2hvcnQ6W1wiQUhcIl0sbG9uZzpbXCJBSFwiXX0sZGF5UGVyaW9kczp7YW06XCJmbVwiLHBtOlwiZW1cIn19LGlzbGFtaWNjOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk11aC5cIixcIlNhZi5cIixcIlJhYi4gSVwiLFwiUmFiLiBJSVwiLFwiSnVtLiBJXCIsXCJKdW0uIElJXCIsXCJSYWouXCIsXCJTaGEuXCIsXCJSYW0uXCIsXCJTaGF3LlwiLFwiRGh1yrtsLVEuXCIsXCJEaHXKu2wtSC5cIl0sbG9uZzpbXCJtdWhhcnJhbVwiLFwic2FmYXJcIixcInJhYmnigJkgYWwtYXd3YWxcIixcInJhYmnigJkgYWwtYWtoaXJcIixcImp1bWFkYS1sLXVsYVwiLFwianVtYWRhLWwtYWtoaXJhXCIsXCJyYWphYlwiLFwic2hh4oCZYmFuXCIsXCJyYW1hZGFuXCIsXCJzaGF3d2FsXCIsXCJkaHUtbC1nYeKAmWRhXCIsXCJkaHUtbC1oaWpqYVwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIk9cIixcIlRcIixcIkZcIixcIkxcIl0sc2hvcnQ6W1wic8O2blwiLFwibcOlblwiLFwidGlzXCIsXCJvbnNcIixcInRvcnNcIixcImZyZVwiLFwibMO2clwiXSxsb25nOltcInPDtm5kYWdcIixcIm3DpW5kYWdcIixcInRpc2RhZ1wiLFwib25zZGFnXCIsXCJ0b3JzZGFnXCIsXCJmcmVkYWdcIixcImzDtnJkYWdcIl19LGVyYXM6e25hcnJvdzpbXCJBSFwiXSxzaG9ydDpbXCJBSFwiXSxsb25nOltcIkFIXCJdfSxkYXlQZXJpb2RzOnthbTpcImZtXCIscG06XCJlbVwifX0samFwYW5lc2U6e21vbnRoczp7bmFycm93OltcIkpcIixcIkZcIixcIk1cIixcIkFcIixcIk1cIixcIkpcIixcIkpcIixcIkFcIixcIlNcIixcIk9cIixcIk5cIixcIkRcIl0sc2hvcnQ6W1wiamFuLlwiLFwiZmViLlwiLFwibWFyc1wiLFwiYXByLlwiLFwibWFqXCIsXCJqdW5pXCIsXCJqdWxpXCIsXCJhdWcuXCIsXCJzZXAuXCIsXCJva3QuXCIsXCJub3YuXCIsXCJkZWMuXCJdLGxvbmc6W1wiamFudWFyaVwiLFwiZmVicnVhcmlcIixcIm1hcnNcIixcImFwcmlsXCIsXCJtYWpcIixcImp1bmlcIixcImp1bGlcIixcImF1Z3VzdGlcIixcInNlcHRlbWJlclwiLFwib2t0b2JlclwiLFwibm92ZW1iZXJcIixcImRlY2VtYmVyXCJdfSxkYXlzOntuYXJyb3c6W1wiU1wiLFwiTVwiLFwiVFwiLFwiT1wiLFwiVFwiLFwiRlwiLFwiTFwiXSxzaG9ydDpbXCJzw7ZuXCIsXCJtw6VuXCIsXCJ0aXNcIixcIm9uc1wiLFwidG9yc1wiLFwiZnJlXCIsXCJsw7ZyXCJdLGxvbmc6W1wic8O2bmRhZ1wiLFwibcOlbmRhZ1wiLFwidGlzZGFnXCIsXCJvbnNkYWdcIixcInRvcnNkYWdcIixcImZyZWRhZ1wiLFwibMO2cmRhZ1wiXX0sZXJhczp7bmFycm93OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTVwiLFwiVFwiLFwiU1wiLFwiSFwiXSxzaG9ydDpbXCJUYWlrYSAoNjQ14oCTNjUwKVwiLFwiSGFrdWNoaSAoNjUw4oCTNjcxKVwiLFwiSGFrdWjFjSAoNjcy4oCTNjg2KVwiLFwiU2h1Y2jFjSAoNjg24oCTNzAxKVwiLFwiVGFpaMWNICg3MDHigJM3MDQpXCIsXCJLZWl1biAoNzA04oCTNzA4KVwiLFwiV2FkxY0gKDcwOOKAkzcxNSlcIixcIlJlaWtpICg3MTXigJM3MTcpXCIsXCJZxY1yxY0gKDcxN+KAkzcyNClcIixcIkppbmtpICg3MjTigJM3MjkpXCIsXCJUZW1wecWNICg3MjnigJM3NDkpXCIsXCJUZW1wecWNLWthbXDFjSAoNzQ54oCTNzQ5KVwiLFwiVGVtcHnFjS1zaMWNaMWNICg3NDnigJM3NTcpXCIsXCJUZW1wecWNLWjFjWppICg3NTfigJM3NjUpXCIsXCJUZW1waMWNLWppbmdvICg3NjXigJM3NjcpXCIsXCJKaW5nby1rZWl1biAoNzY34oCTNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgx4oCTNzgyKVwiLFwiRW5yeWFrdSAoNzgy4oCTODA2KVwiLFwiRGFpZMWNICg4MDbigJM4MTApXCIsXCJLxY1uaW4gKDgxMOKAkzgyNClcIixcIlRlbmNoxY0gKDgyNOKAkzgzNClcIixcIkrFjXdhICg4MzTigJM4NDgpXCIsXCJLYWrFjSAoODQ44oCTODUxKVwiLFwiTmluanUgKDg1MeKAkzg1NClcIixcIlNhaWtvICg4NTTigJM4NTcpXCIsXCJUZW5uYW4gKDg1N+KAkzg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2Vua2VpICg4NzfigJM4ODUpXCIsXCJOaW5uYSAoODg14oCTODg5KVwiLFwiS2FtcHnFjSAoODg54oCTODk4KVwiLFwiU2jFjXRhaSAoODk44oCTOTAxKVwiLFwiRW5naSAoOTAx4oCTOTIzKVwiLFwiRW5jaMWNICg5MjPigJM5MzEpXCIsXCJTaMWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW4tZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpLWVuICg5ODfigJM5ODkpXCIsXCJFaXNvICg5ODnigJM5OTApXCIsXCJTaMWNcnlha3UgKDk5MOKAkzk5NSlcIixcIkNoxY10b2t1ICg5OTXigJM5OTkpXCIsXCJDaMWNaMWNICg5OTnigJMxMDA0KVwiLFwiS2Fua8WNICgxMDA04oCTMTAxMilcIixcIkNoxY13YSAoMTAxMuKAkzEwMTcpXCIsXCJLYW5uaW4gKDEwMTfigJMxMDIxKVwiLFwiSmlhbiAoMTAyMeKAkzEwMjQpXCIsXCJNYW5qdSAoMTAyNOKAkzEwMjgpXCIsXCJDaMWNZ2VuICgxMDI44oCTMTAzNylcIixcIkNoxY1yeWFrdSAoMTAzN+KAkzEwNDApXCIsXCJDaMWNa3nFqyAoMTA0MOKAkzEwNDQpXCIsXCJLYW50b2t1ICgxMDQ04oCTMTA0NilcIixcIkVpc2jFjSAoMTA0NuKAkzEwNTMpXCIsXCJUZW5naSAoMTA1M+KAkzEwNTgpXCIsXCJLxY1oZWkgKDEwNTjigJMxMDY1KVwiLFwiSmlyeWFrdSAoMTA2NeKAkzEwNjkpXCIsXCJFbmt5xasgKDEwNjnigJMxMDc0KVwiLFwiU2jFjWhvICgxMDc04oCTMTA3NylcIixcIlNoxY1yeWFrdSAoMTA3N+KAkzEwODEpXCIsXCJFaWhvICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWhvICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJTaMWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTDigJMxMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbi1laSAoMTExOOKAkzExMjApXCIsXCJIb2FuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSG9lbiAoMTEzNeKAkzExNDEpXCIsXCJFaWppICgxMTQx4oCTMTE0MilcIixcIkvFjWppICgxMTQy4oCTMTE0NClcIixcIlRlbnnFjSAoMTE0NOKAkzExNDUpXCIsXCJLecWrYW4gKDExNDXigJMxMTUxKVwiLFwiTmlucGVpICgxMTUx4oCTMTE1NClcIixcIkt5xatqdSAoMTE1NOKAkzExNTYpXCIsXCJIb2dlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW4tYW4gKDExNjbigJMxMTY5KVwiLFwiS2HFjSAoMTE2OeKAkzExNzEpXCIsXCJTaMWNYW4gKDExNzHigJMxMTc1KVwiLFwiQW5nZW4gKDExNzXigJMxMTc3KVwiLFwiSmlzaMWNICgxMTc34oCTMTE4MSlcIixcIlnFjXdhICgxMTgx4oCTMTE4MilcIixcIkp1ZWkgKDExODLigJMxMTg0KVwiLFwiR2Vucnl1a3UgKDExODTigJMxMTg1KVwiLFwiQnVuamkgKDExODXigJMxMTkwKVwiLFwiS2Vua3nFqyAoMTE5MOKAkzExOTkpXCIsXCJTaMWNamkgKDExOTnigJMxMjAxKVwiLFwiS2VubmluICgxMjAx4oCTMTIwNClcIixcIkdlbmt5xasgKDEyMDTigJMxMjA2KVwiLFwiS2VuLWVpICgxMjA24oCTMTIwNylcIixcIlNoxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIlNoxY1recWrICgxMjE54oCTMTIyMilcIixcIkrFjcWNICgxMjIy4oCTMTIyNClcIixcIkdlbm5pbiAoMTIyNOKAkzEyMjUpXCIsXCJLYXJva3UgKDEyMjXigJMxMjI3KVwiLFwiQW50ZWkgKDEyMjfigJMxMjI5KVwiLFwiS2Fua2kgKDEyMjnigJMxMjMyKVwiLFwiSsWNZWkgKDEyMzLigJMxMjMzKVwiLFwiVGVtcHVrdSAoMTIzM+KAkzEyMzQpXCIsXCJCdW5yeWFrdSAoMTIzNOKAkzEyMzUpXCIsXCJLYXRlaSAoMTIzNeKAkzEyMzgpXCIsXCJSeWFrdW5pbiAoMTIzOOKAkzEyMzkpXCIsXCJFbi3FjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVuLcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVuLWVpICgxMjY04oCTMTI3NSlcIixcIktlbmppICgxMjc14oCTMTI3OClcIixcIkvFjWFuICgxMjc44oCTMTI4OClcIixcIlNoxY3FjSAoMTI4OOKAkzEyOTMpXCIsXCJFaW5pbiAoMTI5M+KAkzEyOTkpXCIsXCJTaMWNYW4gKDEyOTnigJMxMzAyKVwiLFwiS2VuZ2VuICgxMzAy4oCTMTMwMylcIixcIkthZ2VuICgxMzAz4oCTMTMwNilcIixcIlRva3VqaSAoMTMwNuKAkzEzMDgpXCIsXCJFbmtlaSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5recWNICgxMzIx4oCTMTMyNClcIixcIlNoxY1jaMWrICgxMzI04oCTMTMyNilcIixcIkthcmVraSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW1tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVuLWFuICgxNDQ04oCTMTQ0OSlcIixcIkjFjXRva3UgKDE0NDnigJMxNDUyKVwiLFwiS3nFjXRva3UgKDE0NTLigJMxNDU1KVwiLFwiS8WNc2jFjSAoMTQ1NeKAkzE0NTcpXCIsXCJDaMWNcm9rdSAoMTQ1N+KAkzE0NjApXCIsXCJLYW5zaMWNICgxNDYw4oCTMTQ2NilcIixcIkJ1bnNoxY0gKDE0NjbigJMxNDY3KVwiLFwixYxuaW4gKDE0NjfigJMxNDY5KVwiLFwiQnVubWVpICgxNDY54oCTMTQ4NylcIixcIkNoxY1recWNICgxNDg34oCTMTQ4OSlcIixcIkVudG9rdSAoMTQ4OeKAkzE0OTIpXCIsXCJNZWnFjSAoMTQ5MuKAkzE1MDEpXCIsXCJCdW5raSAoMTUwMeKAkzE1MDQpXCIsXCJFaXNoxY0gKDE1MDTigJMxNTIxKVwiLFwiVGFpZWkgKDE1MjHigJMxNTI4KVwiLFwiS3nFjXJva3UgKDE1MjjigJMxNTMyKVwiLFwiVGVubW9uICgxNTMy4oCTMTU1NSlcIixcIkvFjWppICgxNTU14oCTMTU1OClcIixcIkVpcm9rdSAoMTU1OOKAkzE1NzApXCIsXCJHZW5raSAoMTU3MOKAkzE1NzMpXCIsXCJUZW5zaMWNICgxNTcz4oCTMTU5MilcIixcIkJ1bnJva3UgKDE1OTLigJMxNTk2KVwiLFwiS2VpY2jFjSAoMTU5NuKAkzE2MTUpXCIsXCJHZW53YSAoMTYxNeKAkzE2MjQpXCIsXCJLYW4tZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIlNoxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyeWFrdSAoMTY1NeKAkzE2NTgpXCIsXCJNYW5qaSAoMTY1OOKAkzE2NjEpXCIsXCJLYW5idW4gKDE2NjHigJMxNjczKVwiLFwiRW5wxY0gKDE2NzPigJMxNjgxKVwiLFwiVGVud2EgKDE2ODHigJMxNjg0KVwiLFwiSsWNa3nFjSAoMTY4NOKAkzE2ODgpXCIsXCJHZW5yb2t1ICgxNjg44oCTMTcwNClcIixcIkjFjWVpICgxNzA04oCTMTcxMSlcIixcIlNoxY10b2t1ICgxNzEx4oCTMTcxNilcIixcIkt5xY1oxY0gKDE3MTbigJMxNzM2KVwiLFwiR2VuYnVuICgxNzM24oCTMTc0MSlcIixcIkthbnDFjSAoMTc0MeKAkzE3NDQpXCIsXCJFbmt5xY0gKDE3NDTigJMxNzQ4KVwiLFwiS2FuLWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJ5YWt1ICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFuLWVpICgxNzcy4oCTMTc4MSlcIixcIlRlbm1laSAoMTc4MeKAkzE3ODkpXCIsXCJLYW5zZWkgKDE3ODnigJMxODAxKVwiLFwiS3nFjXdhICgxODAx4oCTMTgwNClcIixcIkJ1bmthICgxODA04oCTMTgxOClcIixcIkJ1bnNlaSAoMTgxOOKAkzE4MzApXCIsXCJUZW5wxY0gKDE4MzDigJMxODQ0KVwiLFwiS8WNa2EgKDE4NDTigJMxODQ4KVwiLFwiS2FlaSAoMTg0OOKAkzE4NTQpXCIsXCJBbnNlaSAoMTg1NOKAkzE4NjApXCIsXCJNYW4tZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl0sbG9uZzpbXCJUYWlrYSAoNjQ14oCTNjUwKVwiLFwiSGFrdWNoaSAoNjUw4oCTNjcxKVwiLFwiSGFrdWjFjSAoNjcy4oCTNjg2KVwiLFwiU2h1Y2jFjSAoNjg24oCTNzAxKVwiLFwiVGFpaMWNICg3MDHigJM3MDQpXCIsXCJLZWl1biAoNzA04oCTNzA4KVwiLFwiV2FkxY0gKDcwOOKAkzcxNSlcIixcIlJlaWtpICg3MTXigJM3MTcpXCIsXCJZxY1yxY0gKDcxN+KAkzcyNClcIixcIkppbmtpICg3MjTigJM3MjkpXCIsXCJUZW1wecWNICg3MjnigJM3NDkpXCIsXCJUZW1wecWNLWthbXDFjSAoNzQ54oCTNzQ5KVwiLFwiVGVtcHnFjS1zaMWNaMWNICg3NDnigJM3NTcpXCIsXCJUZW1wecWNLWjFjWppICg3NTfigJM3NjUpXCIsXCJUZW1waMWNLWppbmdvICg3NjXigJM3NjcpXCIsXCJKaW5nby1rZWl1biAoNzY34oCTNzcwKVwiLFwiSMWNa2kgKDc3MOKAkzc4MClcIixcIlRlbi3FjSAoNzgx4oCTNzgyKVwiLFwiRW5yeWFrdSAoNzgy4oCTODA2KVwiLFwiRGFpZMWNICg4MDbigJM4MTApXCIsXCJLxY1uaW4gKDgxMOKAkzgyNClcIixcIlRlbmNoxY0gKDgyNOKAkzgzNClcIixcIkrFjXdhICg4MzTigJM4NDgpXCIsXCJLYWrFjSAoODQ44oCTODUxKVwiLFwiTmluanUgKDg1MeKAkzg1NClcIixcIlNhaWtvICg4NTTigJM4NTcpXCIsXCJUZW5uYW4gKDg1N+KAkzg1OSlcIixcIkrFjWdhbiAoODU54oCTODc3KVwiLFwiR2Vua2VpICg4NzfigJM4ODUpXCIsXCJOaW5uYSAoODg14oCTODg5KVwiLFwiS2FtcHnFjSAoODg54oCTODk4KVwiLFwiU2jFjXRhaSAoODk44oCTOTAxKVwiLFwiRW5naSAoOTAx4oCTOTIzKVwiLFwiRW5jaMWNICg5MjPigJM5MzEpXCIsXCJTaMWNaGVpICg5MzHigJM5MzgpXCIsXCJUZW5necWNICg5MzjigJM5NDcpXCIsXCJUZW5yeWFrdSAoOTQ34oCTOTU3KVwiLFwiVGVudG9rdSAoOTU34oCTOTYxKVwiLFwixYx3YSAoOTYx4oCTOTY0KVwiLFwiS8WNaMWNICg5NjTigJM5NjgpXCIsXCJBbm5hICg5NjjigJM5NzApXCIsXCJUZW5yb2t1ICg5NzDigJM5NzMpXCIsXCJUZW4tZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpLWVuICg5ODfigJM5ODkpXCIsXCJFaXNvICg5ODnigJM5OTApXCIsXCJTaMWNcnlha3UgKDk5MOKAkzk5NSlcIixcIkNoxY10b2t1ICg5OTXigJM5OTkpXCIsXCJDaMWNaMWNICg5OTnigJMxMDA0KVwiLFwiS2Fua8WNICgxMDA04oCTMTAxMilcIixcIkNoxY13YSAoMTAxMuKAkzEwMTcpXCIsXCJLYW5uaW4gKDEwMTfigJMxMDIxKVwiLFwiSmlhbiAoMTAyMeKAkzEwMjQpXCIsXCJNYW5qdSAoMTAyNOKAkzEwMjgpXCIsXCJDaMWNZ2VuICgxMDI44oCTMTAzNylcIixcIkNoxY1yeWFrdSAoMTAzN+KAkzEwNDApXCIsXCJDaMWNa3nFqyAoMTA0MOKAkzEwNDQpXCIsXCJLYW50b2t1ICgxMDQ04oCTMTA0NilcIixcIkVpc2jFjSAoMTA0NuKAkzEwNTMpXCIsXCJUZW5naSAoMTA1M+KAkzEwNTgpXCIsXCJLxY1oZWkgKDEwNTjigJMxMDY1KVwiLFwiSmlyeWFrdSAoMTA2NeKAkzEwNjkpXCIsXCJFbmt5xasgKDEwNjnigJMxMDc0KVwiLFwiU2jFjWhvICgxMDc04oCTMTA3NylcIixcIlNoxY1yeWFrdSAoMTA3N+KAkzEwODEpXCIsXCJFaWhvICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWhvICgxMDk04oCTMTA5NilcIixcIkVpY2jFjSAoMTA5NuKAkzEwOTcpXCIsXCJTaMWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTDigJMxMTEzKVwiLFwiRWlrecWrICgxMTEz4oCTMTExOClcIixcIkdlbi1laSAoMTExOOKAkzExMjApXCIsXCJIb2FuICgxMTIw4oCTMTEyNClcIixcIlRlbmppICgxMTI04oCTMTEyNilcIixcIkRhaWppICgxMTI24oCTMTEzMSlcIixcIlRlbnNoxY0gKDExMzHigJMxMTMyKVwiLFwiQ2jFjXNoxY0gKDExMzLigJMxMTM1KVwiLFwiSG9lbiAoMTEzNeKAkzExNDEpXCIsXCJFaWppICgxMTQx4oCTMTE0MilcIixcIkvFjWppICgxMTQy4oCTMTE0NClcIixcIlRlbnnFjSAoMTE0NOKAkzExNDUpXCIsXCJLecWrYW4gKDExNDXigJMxMTUxKVwiLFwiTmlucGVpICgxMTUx4oCTMTE1NClcIixcIkt5xatqdSAoMTE1NOKAkzExNTYpXCIsXCJIb2dlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW4tYW4gKDExNjbigJMxMTY5KVwiLFwiS2HFjSAoMTE2OeKAkzExNzEpXCIsXCJTaMWNYW4gKDExNzHigJMxMTc1KVwiLFwiQW5nZW4gKDExNzXigJMxMTc3KVwiLFwiSmlzaMWNICgxMTc34oCTMTE4MSlcIixcIlnFjXdhICgxMTgx4oCTMTE4MilcIixcIkp1ZWkgKDExODLigJMxMTg0KVwiLFwiR2Vucnl1a3UgKDExODTigJMxMTg1KVwiLFwiQnVuamkgKDExODXigJMxMTkwKVwiLFwiS2Vua3nFqyAoMTE5MOKAkzExOTkpXCIsXCJTaMWNamkgKDExOTnigJMxMjAxKVwiLFwiS2VubmluICgxMjAx4oCTMTIwNClcIixcIkdlbmt5xasgKDEyMDTigJMxMjA2KVwiLFwiS2VuLWVpICgxMjA24oCTMTIwNylcIixcIlNoxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIlNoxY1recWrICgxMjE54oCTMTIyMilcIixcIkrFjcWNICgxMjIy4oCTMTIyNClcIixcIkdlbm5pbiAoMTIyNOKAkzEyMjUpXCIsXCJLYXJva3UgKDEyMjXigJMxMjI3KVwiLFwiQW50ZWkgKDEyMjfigJMxMjI5KVwiLFwiS2Fua2kgKDEyMjnigJMxMjMyKVwiLFwiSsWNZWkgKDEyMzLigJMxMjMzKVwiLFwiVGVtcHVrdSAoMTIzM+KAkzEyMzQpXCIsXCJCdW5yeWFrdSAoMTIzNOKAkzEyMzUpXCIsXCJLYXRlaSAoMTIzNeKAkzEyMzgpXCIsXCJSeWFrdW5pbiAoMTIzOOKAkzEyMzkpXCIsXCJFbi3FjSAoMTIzOeKAkzEyNDApXCIsXCJOaW5qaSAoMTI0MOKAkzEyNDMpXCIsXCJLYW5nZW4gKDEyNDPigJMxMjQ3KVwiLFwiSMWNamkgKDEyNDfigJMxMjQ5KVwiLFwiS2VuY2jFjSAoMTI0OeKAkzEyNTYpXCIsXCJLxY1nZW4gKDEyNTbigJMxMjU3KVwiLFwiU2jFjWthICgxMjU34oCTMTI1OSlcIixcIlNoxY1nZW4gKDEyNTnigJMxMjYwKVwiLFwiQnVuLcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVuLWVpICgxMjY04oCTMTI3NSlcIixcIktlbmppICgxMjc14oCTMTI3OClcIixcIkvFjWFuICgxMjc44oCTMTI4OClcIixcIlNoxY3FjSAoMTI4OOKAkzEyOTMpXCIsXCJFaW5pbiAoMTI5M+KAkzEyOTkpXCIsXCJTaMWNYW4gKDEyOTnigJMxMzAyKVwiLFwiS2VuZ2VuICgxMzAy4oCTMTMwMylcIixcIkthZ2VuICgxMzAz4oCTMTMwNilcIixcIlRva3VqaSAoMTMwNuKAkzEzMDgpXCIsXCJFbmtlaSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5recWNICgxMzIx4oCTMTMyNClcIixcIlNoxY1jaMWrICgxMzI04oCTMTMyNilcIixcIkthcmVraSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW1tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVuLWFuICgxNDQ04oCTMTQ0OSlcIixcIkjFjXRva3UgKDE0NDnigJMxNDUyKVwiLFwiS3nFjXRva3UgKDE0NTLigJMxNDU1KVwiLFwiS8WNc2jFjSAoMTQ1NeKAkzE0NTcpXCIsXCJDaMWNcm9rdSAoMTQ1N+KAkzE0NjApXCIsXCJLYW5zaMWNICgxNDYw4oCTMTQ2NilcIixcIkJ1bnNoxY0gKDE0NjbigJMxNDY3KVwiLFwixYxuaW4gKDE0NjfigJMxNDY5KVwiLFwiQnVubWVpICgxNDY54oCTMTQ4NylcIixcIkNoxY1recWNICgxNDg34oCTMTQ4OSlcIixcIkVudG9rdSAoMTQ4OeKAkzE0OTIpXCIsXCJNZWnFjSAoMTQ5MuKAkzE1MDEpXCIsXCJCdW5raSAoMTUwMeKAkzE1MDQpXCIsXCJFaXNoxY0gKDE1MDTigJMxNTIxKVwiLFwiVGFpZWkgKDE1MjHigJMxNTI4KVwiLFwiS3nFjXJva3UgKDE1MjjigJMxNTMyKVwiLFwiVGVubW9uICgxNTMy4oCTMTU1NSlcIixcIkvFjWppICgxNTU14oCTMTU1OClcIixcIkVpcm9rdSAoMTU1OOKAkzE1NzApXCIsXCJHZW5raSAoMTU3MOKAkzE1NzMpXCIsXCJUZW5zaMWNICgxNTcz4oCTMTU5MilcIixcIkJ1bnJva3UgKDE1OTLigJMxNTk2KVwiLFwiS2VpY2jFjSAoMTU5NuKAkzE2MTUpXCIsXCJHZW53YSAoMTYxNeKAkzE2MjQpXCIsXCJLYW4tZWkgKDE2MjTigJMxNjQ0KVwiLFwiU2jFjWhvICgxNjQ04oCTMTY0OClcIixcIktlaWFuICgxNjQ44oCTMTY1MilcIixcIlNoxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyeWFrdSAoMTY1NeKAkzE2NTgpXCIsXCJNYW5qaSAoMTY1OOKAkzE2NjEpXCIsXCJLYW5idW4gKDE2NjHigJMxNjczKVwiLFwiRW5wxY0gKDE2NzPigJMxNjgxKVwiLFwiVGVud2EgKDE2ODHigJMxNjg0KVwiLFwiSsWNa3nFjSAoMTY4NOKAkzE2ODgpXCIsXCJHZW5yb2t1ICgxNjg44oCTMTcwNClcIixcIkjFjWVpICgxNzA04oCTMTcxMSlcIixcIlNoxY10b2t1ICgxNzEx4oCTMTcxNilcIixcIkt5xY1oxY0gKDE3MTbigJMxNzM2KVwiLFwiR2VuYnVuICgxNzM24oCTMTc0MSlcIixcIkthbnDFjSAoMTc0MeKAkzE3NDQpXCIsXCJFbmt5xY0gKDE3NDTigJMxNzQ4KVwiLFwiS2FuLWVuICgxNzQ44oCTMTc1MSlcIixcIkjFjXJ5YWt1ICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFuLWVpICgxNzcy4oCTMTc4MSlcIixcIlRlbm1laSAoMTc4MeKAkzE3ODkpXCIsXCJLYW5zZWkgKDE3ODnigJMxODAxKVwiLFwiS3nFjXdhICgxODAx4oCTMTgwNClcIixcIkJ1bmthICgxODA04oCTMTgxOClcIixcIkJ1bnNlaSAoMTgxOOKAkzE4MzApXCIsXCJUZW5wxY0gKDE4MzDigJMxODQ0KVwiLFwiS8WNa2EgKDE4NDTigJMxODQ4KVwiLFwiS2FlaSAoMTg0OOKAkzE4NTQpXCIsXCJBbnNlaSAoMTg1NOKAkzE4NjApXCIsXCJNYW4tZW4gKDE4NjDigJMxODYxKVwiLFwiQnVua3nFqyAoMTg2MeKAkzE4NjQpXCIsXCJHZW5qaSAoMTg2NOKAkzE4NjUpXCIsXCJLZWnFjSAoMTg2NeKAkzE4NjgpXCIsXCJNZWlqaVwiLFwiVGFpc2jFjVwiLFwiU2jFjXdhXCIsXCJIZWlzZWlcIl19LGRheVBlcmlvZHM6e2FtOlwiZm1cIixwbTpcImVtXCJ9fSxwZXJzaWFuOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcImZhcnZhcmRpblwiLFwib3JkaWJlaGVzaHRcIixcImtob3JkxIFkXCIsXCJ0aXJcIixcIm1vcmTEgWRcIixcInNoYWhyaXZhclwiLFwibWVoclwiLFwixIFixIFuXCIsXCLEgXphclwiLFwiZGV5XCIsXCJiYWhtYW5cIixcImVzZmFuZFwiXSxsb25nOltcImZhcnZhcmRpblwiLFwib3JkaWJlaGVzaHRcIixcImtob3JkxIFkXCIsXCJ0aXJcIixcIm1vcmTEgWRcIixcInNoYWhyaXZhclwiLFwibWVoclwiLFwixIFixIFuXCIsXCLEgXphclwiLFwiZGV5XCIsXCJiYWhtYW5cIixcImVzZmFuZFwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIk9cIixcIlRcIixcIkZcIixcIkxcIl0sc2hvcnQ6W1wic8O2blwiLFwibcOlblwiLFwidGlzXCIsXCJvbnNcIixcInRvcnNcIixcImZyZVwiLFwibMO2clwiXSxsb25nOltcInPDtm5kYWdcIixcIm3DpW5kYWdcIixcInRpc2RhZ1wiLFwib25zZGFnXCIsXCJ0b3JzZGFnXCIsXCJmcmVkYWdcIixcImzDtnJkYWdcIl19LGVyYXM6e25hcnJvdzpbXCJBUFwiXSxzaG9ydDpbXCJBUFwiXSxsb25nOltcIkFQXCJdfSxkYXlQZXJpb2RzOnthbTpcImZtXCIscG06XCJlbVwifX0scm9jOnttb250aHM6e25hcnJvdzpbXCJKXCIsXCJGXCIsXCJNXCIsXCJBXCIsXCJNXCIsXCJKXCIsXCJKXCIsXCJBXCIsXCJTXCIsXCJPXCIsXCJOXCIsXCJEXCJdLHNob3J0OltcImphbi5cIixcImZlYi5cIixcIm1hcnNcIixcImFwci5cIixcIm1halwiLFwianVuaVwiLFwianVsaVwiLFwiYXVnLlwiLFwic2VwLlwiLFwib2t0LlwiLFwibm92LlwiLFwiZGVjLlwiXSxsb25nOltcImphbnVhcmlcIixcImZlYnJ1YXJpXCIsXCJtYXJzXCIsXCJhcHJpbFwiLFwibWFqXCIsXCJqdW5pXCIsXCJqdWxpXCIsXCJhdWd1c3RpXCIsXCJzZXB0ZW1iZXJcIixcIm9rdG9iZXJcIixcIm5vdmVtYmVyXCIsXCJkZWNlbWJlclwiXX0sZGF5czp7bmFycm93OltcIlNcIixcIk1cIixcIlRcIixcIk9cIixcIlRcIixcIkZcIixcIkxcIl0sc2hvcnQ6W1wic8O2blwiLFwibcOlblwiLFwidGlzXCIsXCJvbnNcIixcInRvcnNcIixcImZyZVwiLFwibMO2clwiXSxsb25nOltcInPDtm5kYWdcIixcIm3DpW5kYWdcIixcInRpc2RhZ1wiLFwib25zZGFnXCIsXCJ0b3JzZGFnXCIsXCJmcmVkYWdcIixcImzDtnJkYWdcIl19LGVyYXM6e25hcnJvdzpbXCJmw7ZyZSBSLksuXCIsXCJSLksuXCJdLHNob3J0OltcImbDtnJlIFIuSy5cIixcIlIuSy5cIl0sbG9uZzpbXCJmw7ZyZSBSLksuXCIsXCJSLksuXCJdfSxkYXlQZXJpb2RzOnthbTpcImZtXCIscG06XCJlbVwifX19fSxudW1iZXI6e251OltcImxhdG5cIl0scGF0dGVybnM6e2RlY2ltYWw6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfVwifSxjdXJyZW5jeTp7cG9zaXRpdmVQYXR0ZXJuOlwie251bWJlcn3CoHtjdXJyZW5jeX1cIixuZWdhdGl2ZVBhdHRlcm46XCJ7bWludXNTaWdufXtudW1iZXJ9wqB7Y3VycmVuY3l9XCJ9LHBlcmNlbnQ6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9wqB7cGVyY2VudFNpZ259XCIsbmVnYXRpdmVQYXR0ZXJuOlwie21pbnVzU2lnbn17bnVtYmVyfcKge3BlcmNlbnRTaWdufVwifX0sc3ltYm9sczp7bGF0bjp7ZGVjaW1hbDpcIixcIixncm91cDpcIsKgXCIsbmFuOlwiwqTCpMKkXCIscGx1c1NpZ246XCIrXCIsbWludXNTaWduOlwi4oiSXCIscGVyY2VudFNpZ246XCIlXCIsaW5maW5pdHk6XCLiiJ5cIn19LGN1cnJlbmNpZXM6e0JCRDpcIkJkcyRcIixCTUQ6XCJCTSRcIixCUkw6XCJCUiRcIixCU0Q6XCJCUyRcIixCWkQ6XCJCWiRcIixDQUQ6XCJDQSRcIixES0s6XCJEa3JcIixET1A6XCJSRCRcIixFRUs6XCJFa3JcIixFR1A6XCJFR8KjXCIsRVVSOlwi4oKsXCIsSUxTOlwi4oKqXCIsSVNLOlwiSWtyXCIsSk1EOlwiSk0kXCIsTVhOOlwiTVgkXCIsTk9LOlwiTmtyXCIsU0VLOlwia3JcIixVU0Q6XCJVUyRcIixYQUY6XCJGQ0ZBXCIsWENEOlwiRUMkXCIsWE9GOlwiQ0ZBXCIsWFBGOlwiQ0ZQRlwifX19KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9pbnRsL2xvY2FsZS1kYXRhL2pzb25wL3N2LmpzXG4vLyBtb2R1bGUgaWQgPSAyMzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIkludGxQb2x5ZmlsbC5fX2FkZExvY2FsZURhdGEoe2xvY2FsZTpcInpoXCIsZGF0ZTp7Y2E6W1wiZ3JlZ29yeVwiLFwiYnVkZGhpc3RcIixcImNoaW5lc2VcIixcImNvcHRpY1wiLFwiZGFuZ2lcIixcImV0aGlvYWFcIixcImV0aGlvcGljXCIsXCJnZW5lcmljXCIsXCJoZWJyZXdcIixcImluZGlhblwiLFwiaXNsYW1pY1wiLFwiaXNsYW1pY2NcIixcImphcGFuZXNlXCIsXCJwZXJzaWFuXCIsXCJyb2NcIl0saG91ck5vMDp0cnVlLGhvdXIxMjp0cnVlLGZvcm1hdHM6e3Nob3J0OlwiezF9IHswfVwiLG1lZGl1bTpcInsxfSB7MH1cIixmdWxsOlwiezF9IHswfVwiLGxvbmc6XCJ7MX0gezB9XCIsYXZhaWxhYmxlRm9ybWF0czp7XCJkXCI6XCJk5pelXCIsXCJFXCI6XCJjY2NcIixFZDpcImTml6VFXCIsRWhtOlwiRSBhaDptbVwiLEVIbTpcIkVISDptbVwiLEVobXM6XCJFIGFoOm1tOnNzXCIsRUhtczpcIkVISDptbTpzc1wiLEd5OlwiR3nlubRcIixHeU1NTTpcIkd55bm0TeaciFwiLEd5TU1NZDpcIkd55bm0TeaciGTml6VcIixHeU1NTUVkOlwiR3nlubRN5pyIZOaXpUVcIixcImhcIjpcImFo5pe2XCIsXCJIXCI6XCJI5pe2XCIsaG06XCJhaDptbVwiLEhtOlwiSEg6bW1cIixobXM6XCJhaDptbTpzc1wiLEhtczpcIkhIOm1tOnNzXCIsaG1zdjpcInYgYWg6bW06c3NcIixIbXN2OlwidiBISDptbTpzc1wiLGhtdjpcInYgYWg6bW1cIixIbXY6XCJ2IEhIOm1tXCIsXCJNXCI6XCJN5pyIXCIsTWQ6XCJNL2RcIixNRWQ6XCJNL2RFXCIsTU1kZDpcIk1NL2RkXCIsTU1NOlwiTExMXCIsTU1NZDpcIk3mnIhk5pelXCIsTU1NRWQ6XCJN5pyIZOaXpUVcIixNTU1NZDpcIk3mnIhk5pelXCIsbXM6XCJtbTpzc1wiLFwieVwiOlwieeW5tFwiLHlNOlwieeW5tE3mnIhcIix5TWQ6XCJ5L00vZFwiLHlNRWQ6XCJ5L00vZEVcIix5TU06XCJ55bm0TeaciFwiLHlNTU06XCJ55bm0TeaciFwiLHlNTU1kOlwieeW5tE3mnIhk5pelXCIseU1NTUVkOlwieeW5tE3mnIhk5pelRVwiLHlNTU1NOlwieeW5tE3mnIhcIix5UVFROlwieeW5tOesrFHlraPluqZcIix5UVFRUTpcInnlubTnrKxR5a2j5bqmXCJ9LGRhdGVGb3JtYXRzOnt5TU1NTUVFRUVkOlwieeW5tE3mnIhk5pelRUVFRVwiLHlNTU1NZDpcInnlubRN5pyIZOaXpVwiLHlNTU1kOlwieeW5tE3mnIhk5pelXCIseU1kOlwieS9NL2RcIn0sdGltZUZvcm1hdHM6e2htbXNzenp6ejpcInp6enogYWg6bW06c3NcIixobXN6OlwieiBhaDptbTpzc1wiLGhtczpcImFoOm1tOnNzXCIsaG06XCJhaDptbVwifX0sY2FsZW5kYXJzOntidWRkaGlzdDp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCJdLGxvbmc6W1wi5LiA5pyIXCIsXCLkuozmnIhcIixcIuS4ieaciFwiLFwi5Zub5pyIXCIsXCLkupTmnIhcIixcIuWFreaciFwiLFwi5LiD5pyIXCIsXCLlhavmnIhcIixcIuS5neaciFwiLFwi5Y2B5pyIXCIsXCLljYHkuIDmnIhcIixcIuWNgeS6jOaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5LiAXCIsXCLkuoxcIixcIuS4iVwiLFwi5ZubXCIsXCLkupRcIixcIuWFrVwiXSxzaG9ydDpbXCLlkajml6VcIixcIuWRqOS4gFwiLFwi5ZGo5LqMXCIsXCLlkajkuIlcIixcIuWRqOWbm1wiLFwi5ZGo5LqUXCIsXCLlkajlha1cIl0sbG9uZzpbXCLmmJ/mnJ/ml6VcIixcIuaYn+acn+S4gFwiLFwi5pif5pyf5LqMXCIsXCLmmJ/mnJ/kuIlcIixcIuaYn+acn+Wbm1wiLFwi5pif5pyf5LqUXCIsXCLmmJ/mnJ/lha1cIl19LGVyYXM6e25hcnJvdzpbXCLkvZvljoZcIl0sc2hvcnQ6W1wi5L2b5Y6GXCJdLGxvbmc6W1wi5L2b5Y6GXCJdfSxkYXlQZXJpb2RzOnthbTpcIuS4iuWNiFwiLHBtOlwi5LiL5Y2IXCJ9fSxjaGluZXNlOnttb250aHM6e25hcnJvdzpbXCLmraNcIixcIuS6jFwiLFwi5LiJXCIsXCLlm5tcIixcIuS6lFwiLFwi5YWtXCIsXCLkuINcIixcIuWFq1wiLFwi5LmdXCIsXCLljYFcIixcIuWGrFwiLFwi6IWKXCJdLHNob3J0OltcIuato+aciFwiLFwi5LqM5pyIXCIsXCLkuInmnIhcIixcIuWbm+aciFwiLFwi5LqU5pyIXCIsXCLlha3mnIhcIixcIuS4g+aciFwiLFwi5YWr5pyIXCIsXCLkuZ3mnIhcIixcIuWNgeaciFwiLFwi5Yas5pyIXCIsXCLohYrmnIhcIl0sbG9uZzpbXCLmraPmnIhcIixcIuS6jOaciFwiLFwi5LiJ5pyIXCIsXCLlm5vmnIhcIixcIuS6lOaciFwiLFwi5YWt5pyIXCIsXCLkuIPmnIhcIixcIuWFq+aciFwiLFwi5Lmd5pyIXCIsXCLljYHmnIhcIixcIuWGrOaciFwiLFwi6IWK5pyIXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLkuIBcIixcIuS6jFwiLFwi5LiJXCIsXCLlm5tcIixcIuS6lFwiLFwi5YWtXCJdLHNob3J0OltcIuWRqOaXpVwiLFwi5ZGo5LiAXCIsXCLlkajkuoxcIixcIuWRqOS4iVwiLFwi5ZGo5ZubXCIsXCLlkajkupRcIixcIuWRqOWFrVwiXSxsb25nOltcIuaYn+acn+aXpVwiLFwi5pif5pyf5LiAXCIsXCLmmJ/mnJ/kuoxcIixcIuaYn+acn+S4iVwiLFwi5pif5pyf5ZubXCIsXCLmmJ/mnJ/kupRcIixcIuaYn+acn+WFrVwiXX0sZGF5UGVyaW9kczp7YW06XCLkuIrljYhcIixwbTpcIuS4i+WNiFwifX0sY29wdGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCIsXCIxM+aciFwiXSxsb25nOltcIuS4gOaciFwiLFwi5LqM5pyIXCIsXCLkuInmnIhcIixcIuWbm+aciFwiLFwi5LqU5pyIXCIsXCLlha3mnIhcIixcIuS4g+aciFwiLFwi5YWr5pyIXCIsXCLkuZ3mnIhcIixcIuWNgeaciFwiLFwi5Y2B5LiA5pyIXCIsXCLljYHkuozmnIhcIixcIuWNgeS4ieaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5LiAXCIsXCLkuoxcIixcIuS4iVwiLFwi5ZubXCIsXCLkupRcIixcIuWFrVwiXSxzaG9ydDpbXCLlkajml6VcIixcIuWRqOS4gFwiLFwi5ZGo5LqMXCIsXCLlkajkuIlcIixcIuWRqOWbm1wiLFwi5ZGo5LqUXCIsXCLlkajlha1cIl0sbG9uZzpbXCLmmJ/mnJ/ml6VcIixcIuaYn+acn+S4gFwiLFwi5pif5pyf5LqMXCIsXCLmmJ/mnJ/kuIlcIixcIuaYn+acn+Wbm1wiLFwi5pif5pyf5LqUXCIsXCLmmJ/mnJ/lha1cIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIuS4iuWNiFwiLHBtOlwi5LiL5Y2IXCJ9fSxkYW5naTp7bW9udGhzOntuYXJyb3c6W1wi5q2jXCIsXCLkuoxcIixcIuS4iVwiLFwi5ZubXCIsXCLkupRcIixcIuWFrVwiLFwi5LiDXCIsXCLlhatcIixcIuS5nVwiLFwi5Y2BXCIsXCLlhqxcIixcIuiFilwiXSxzaG9ydDpbXCLmraPmnIhcIixcIuS6jOaciFwiLFwi5LiJ5pyIXCIsXCLlm5vmnIhcIixcIuS6lOaciFwiLFwi5YWt5pyIXCIsXCLkuIPmnIhcIixcIuWFq+aciFwiLFwi5Lmd5pyIXCIsXCLljYHmnIhcIixcIuWGrOaciFwiLFwi6IWK5pyIXCJdLGxvbmc6W1wi5q2j5pyIXCIsXCLkuozmnIhcIixcIuS4ieaciFwiLFwi5Zub5pyIXCIsXCLkupTmnIhcIixcIuWFreaciFwiLFwi5LiD5pyIXCIsXCLlhavmnIhcIixcIuS5neaciFwiLFwi5Y2B5pyIXCIsXCLlhqzmnIhcIixcIuiFiuaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5LiAXCIsXCLkuoxcIixcIuS4iVwiLFwi5ZubXCIsXCLkupRcIixcIuWFrVwiXSxzaG9ydDpbXCLlkajml6VcIixcIuWRqOS4gFwiLFwi5ZGo5LqMXCIsXCLlkajkuIlcIixcIuWRqOWbm1wiLFwi5ZGo5LqUXCIsXCLlkajlha1cIl0sbG9uZzpbXCLmmJ/mnJ/ml6VcIixcIuaYn+acn+S4gFwiLFwi5pif5pyf5LqMXCIsXCLmmJ/mnJ/kuIlcIixcIuaYn+acn+Wbm1wiLFwi5pif5pyf5LqUXCIsXCLmmJ/mnJ/lha1cIl19LGRheVBlcmlvZHM6e2FtOlwi5LiK5Y2IXCIscG06XCLkuIvljYhcIn19LGV0aGlvcGljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCIsXCIxM+aciFwiXSxsb25nOltcIuS4gOaciFwiLFwi5LqM5pyIXCIsXCLkuInmnIhcIixcIuWbm+aciFwiLFwi5LqU5pyIXCIsXCLlha3mnIhcIixcIuS4g+aciFwiLFwi5YWr5pyIXCIsXCLkuZ3mnIhcIixcIuWNgeaciFwiLFwi5Y2B5LiA5pyIXCIsXCLljYHkuozmnIhcIixcIuWNgeS4ieaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5LiAXCIsXCLkuoxcIixcIuS4iVwiLFwi5ZubXCIsXCLkupRcIixcIuWFrVwiXSxzaG9ydDpbXCLlkajml6VcIixcIuWRqOS4gFwiLFwi5ZGo5LqMXCIsXCLlkajkuIlcIixcIuWRqOWbm1wiLFwi5ZGo5LqUXCIsXCLlkajlha1cIl0sbG9uZzpbXCLmmJ/mnJ/ml6VcIixcIuaYn+acn+S4gFwiLFwi5pif5pyf5LqMXCIsXCLmmJ/mnJ/kuIlcIixcIuaYn+acn+Wbm1wiLFwi5pif5pyf5LqUXCIsXCLmmJ/mnJ/lha1cIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCIsXCJFUkExXCJdLHNob3J0OltcIkVSQTBcIixcIkVSQTFcIl0sbG9uZzpbXCJFUkEwXCIsXCJFUkExXCJdfSxkYXlQZXJpb2RzOnthbTpcIuS4iuWNiFwiLHBtOlwi5LiL5Y2IXCJ9fSxldGhpb2FhOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiXSxzaG9ydDpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCIsXCIxM+aciFwiXSxsb25nOltcIuS4gOaciFwiLFwi5LqM5pyIXCIsXCLkuInmnIhcIixcIuWbm+aciFwiLFwi5LqU5pyIXCIsXCLlha3mnIhcIixcIuS4g+aciFwiLFwi5YWr5pyIXCIsXCLkuZ3mnIhcIixcIuWNgeaciFwiLFwi5Y2B5LiA5pyIXCIsXCLljYHkuozmnIhcIixcIuWNgeS4ieaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5LiAXCIsXCLkuoxcIixcIuS4iVwiLFwi5ZubXCIsXCLkupRcIixcIuWFrVwiXSxzaG9ydDpbXCLlkajml6VcIixcIuWRqOS4gFwiLFwi5ZGo5LqMXCIsXCLlkajkuIlcIixcIuWRqOWbm1wiLFwi5ZGo5LqUXCIsXCLlkajlha1cIl0sbG9uZzpbXCLmmJ/mnJ/ml6VcIixcIuaYn+acn+S4gFwiLFwi5pif5pyf5LqMXCIsXCLmmJ/mnJ/kuIlcIixcIuaYn+acn+Wbm1wiLFwi5pif5pyf5LqUXCIsXCLmmJ/mnJ/lha1cIl19LGVyYXM6e25hcnJvdzpbXCJFUkEwXCJdLHNob3J0OltcIkVSQTBcIl0sbG9uZzpbXCJFUkEwXCJdfSxkYXlQZXJpb2RzOnthbTpcIuS4iuWNiFwiLHBtOlwi5LiL5Y2IXCJ9fSxnZW5lcmljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIk0wMVwiLFwiTTAyXCIsXCJNMDNcIixcIk0wNFwiLFwiTTA1XCIsXCJNMDZcIixcIk0wN1wiLFwiTTA4XCIsXCJNMDlcIixcIk0xMFwiLFwiTTExXCIsXCJNMTJcIl0sbG9uZzpbXCJNMDFcIixcIk0wMlwiLFwiTTAzXCIsXCJNMDRcIixcIk0wNVwiLFwiTTA2XCIsXCJNMDdcIixcIk0wOFwiLFwiTTA5XCIsXCJNMTBcIixcIk0xMVwiLFwiTTEyXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLkuIBcIixcIuS6jFwiLFwi5LiJXCIsXCLlm5tcIixcIuS6lFwiLFwi5YWtXCJdLHNob3J0OltcIuWRqOaXpVwiLFwi5ZGo5LiAXCIsXCLlkajkuoxcIixcIuWRqOS4iVwiLFwi5ZGo5ZubXCIsXCLlkajkupRcIixcIuWRqOWFrVwiXSxsb25nOltcIuaYn+acn+aXpVwiLFwi5pif5pyf5LiAXCIsXCLmmJ/mnJ/kuoxcIixcIuaYn+acn+S4iVwiLFwi5pif5pyf5ZubXCIsXCLmmJ/mnJ/kupRcIixcIuaYn+acn+WFrVwiXX0sZXJhczp7bmFycm93OltcIkVSQTBcIixcIkVSQTFcIl0sc2hvcnQ6W1wiRVJBMFwiLFwiRVJBMVwiXSxsb25nOltcIkVSQTBcIixcIkVSQTFcIl19LGRheVBlcmlvZHM6e2FtOlwi5LiK5Y2IXCIscG06XCLkuIvljYhcIn19LGdyZWdvcnk6e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMeaciFwiLFwiMuaciFwiLFwiM+aciFwiLFwiNOaciFwiLFwiNeaciFwiLFwiNuaciFwiLFwiN+aciFwiLFwiOOaciFwiLFwiOeaciFwiLFwiMTDmnIhcIixcIjEx5pyIXCIsXCIxMuaciFwiXSxsb25nOltcIuS4gOaciFwiLFwi5LqM5pyIXCIsXCLkuInmnIhcIixcIuWbm+aciFwiLFwi5LqU5pyIXCIsXCLlha3mnIhcIixcIuS4g+aciFwiLFwi5YWr5pyIXCIsXCLkuZ3mnIhcIixcIuWNgeaciFwiLFwi5Y2B5LiA5pyIXCIsXCLljYHkuozmnIhcIl19LGRheXM6e25hcnJvdzpbXCLml6VcIixcIuS4gFwiLFwi5LqMXCIsXCLkuIlcIixcIuWbm1wiLFwi5LqUXCIsXCLlha1cIl0sc2hvcnQ6W1wi5ZGo5pelXCIsXCLlkajkuIBcIixcIuWRqOS6jFwiLFwi5ZGo5LiJXCIsXCLlkajlm5tcIixcIuWRqOS6lFwiLFwi5ZGo5YWtXCJdLGxvbmc6W1wi5pif5pyf5pelXCIsXCLmmJ/mnJ/kuIBcIixcIuaYn+acn+S6jFwiLFwi5pif5pyf5LiJXCIsXCLmmJ/mnJ/lm5tcIixcIuaYn+acn+S6lFwiLFwi5pif5pyf5YWtXCJdfSxlcmFzOntuYXJyb3c6W1wi5YWs5YWD5YmNXCIsXCLlhazlhYNcIixcIuilv+WFg+WJjVwiLFwi6KW/5YWDXCJdLHNob3J0OltcIuWFrOWFg+WJjVwiLFwi5YWs5YWDXCIsXCLopb/lhYPliY1cIixcIuilv+WFg1wiXSxsb25nOltcIuWFrOWFg+WJjVwiLFwi5YWs5YWDXCIsXCLopb/lhYPliY1cIixcIuilv+WFg1wiXX0sZGF5UGVyaW9kczp7YW06XCLkuIrljYhcIixwbTpcIuS4i+WNiFwifX0saGVicmV3Onttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCIsXCIxM1wiLFwiN1wiXSxzaG9ydDpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCIsXCIxM+aciFwiLFwi6ZewN+aciFwiXSxsb25nOltcIuS4gOaciFwiLFwi5LqM5pyIXCIsXCLkuInmnIhcIixcIuWbm+aciFwiLFwi5LqU5pyIXCIsXCLlha3mnIhcIixcIuS4g+aciFwiLFwi5YWr5pyIXCIsXCLkuZ3mnIhcIixcIuWNgeaciFwiLFwi5Y2B5LiA5pyIXCIsXCLljYHkuozmnIhcIixcIuWNgeS4ieaciFwiLFwi6Zew5LiD5pyIXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLkuIBcIixcIuS6jFwiLFwi5LiJXCIsXCLlm5tcIixcIuS6lFwiLFwi5YWtXCJdLHNob3J0OltcIuWRqOaXpVwiLFwi5ZGo5LiAXCIsXCLlkajkuoxcIixcIuWRqOS4iVwiLFwi5ZGo5ZubXCIsXCLlkajkupRcIixcIuWRqOWFrVwiXSxsb25nOltcIuaYn+acn+aXpVwiLFwi5pif5pyf5LiAXCIsXCLmmJ/mnJ/kuoxcIixcIuaYn+acn+S4iVwiLFwi5pif5pyf5ZubXCIsXCLmmJ/mnJ/kupRcIixcIuaYn+acn+WFrVwiXX0sZXJhczp7bmFycm93OltcIuW4jOS8r+adpeWOhlwiXSxzaG9ydDpbXCLluIzkvK/mnaXljoZcIl0sbG9uZzpbXCLluIzkvK/mnaXljoZcIl19LGRheVBlcmlvZHM6e2FtOlwi5LiK5Y2IXCIscG06XCLkuIvljYhcIn19LGluZGlhbjp7bW9udGhzOntuYXJyb3c6W1wiMVwiLFwiMlwiLFwiM1wiLFwiNFwiLFwiNVwiLFwiNlwiLFwiN1wiLFwiOFwiLFwiOVwiLFwiMTBcIixcIjExXCIsXCIxMlwiXSxzaG9ydDpbXCIx5pyIXCIsXCIy5pyIXCIsXCIz5pyIXCIsXCI05pyIXCIsXCI15pyIXCIsXCI25pyIXCIsXCI35pyIXCIsXCI45pyIXCIsXCI55pyIXCIsXCIxMOaciFwiLFwiMTHmnIhcIixcIjEy5pyIXCJdLGxvbmc6W1wi5LiA5pyIXCIsXCLkuozmnIhcIixcIuS4ieaciFwiLFwi5Zub5pyIXCIsXCLkupTmnIhcIixcIuWFreaciFwiLFwi5LiD5pyIXCIsXCLlhavmnIhcIixcIuS5neaciFwiLFwi5Y2B5pyIXCIsXCLljYHkuIDmnIhcIixcIuWNgeS6jOaciFwiXX0sZGF5czp7bmFycm93OltcIuaXpVwiLFwi5LiAXCIsXCLkuoxcIixcIuS4iVwiLFwi5ZubXCIsXCLkupRcIixcIuWFrVwiXSxzaG9ydDpbXCLlkajml6VcIixcIuWRqOS4gFwiLFwi5ZGo5LqMXCIsXCLlkajkuIlcIixcIuWRqOWbm1wiLFwi5ZGo5LqUXCIsXCLlkajlha1cIl0sbG9uZzpbXCLmmJ/mnJ/ml6VcIixcIuaYn+acn+S4gFwiLFwi5pif5pyf5LqMXCIsXCLmmJ/mnJ/kuIlcIixcIuaYn+acn+Wbm1wiLFwi5pif5pyf5LqUXCIsXCLmmJ/mnJ/lha1cIl19LGVyYXM6e25hcnJvdzpbXCLljbDluqbljoZcIl0sc2hvcnQ6W1wi5Y2w5bqm5Y6GXCJdLGxvbmc6W1wi5Y2w5bqm5Y6GXCJdfSxkYXlQZXJpb2RzOnthbTpcIuS4iuWNiFwiLHBtOlwi5LiL5Y2IXCJ9fSxpc2xhbWljOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIjHmnIhcIixcIjLmnIhcIixcIjPmnIhcIixcIjTmnIhcIixcIjXmnIhcIixcIjbmnIhcIixcIjfmnIhcIixcIjjmnIhcIixcIjnmnIhcIixcIjEw5pyIXCIsXCIxMeaciFwiLFwiMTLmnIhcIl0sbG9uZzpbXCLkuIDmnIhcIixcIuS6jOaciFwiLFwi5LiJ5pyIXCIsXCLlm5vmnIhcIixcIuS6lOaciFwiLFwi5YWt5pyIXCIsXCLkuIPmnIhcIixcIuWFq+aciFwiLFwi5Lmd5pyIXCIsXCLljYHmnIhcIixcIuWNgeS4gOaciFwiLFwi5Y2B5LqM5pyIXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLkuIBcIixcIuS6jFwiLFwi5LiJXCIsXCLlm5tcIixcIuS6lFwiLFwi5YWtXCJdLHNob3J0OltcIuWRqOaXpVwiLFwi5ZGo5LiAXCIsXCLlkajkuoxcIixcIuWRqOS4iVwiLFwi5ZGo5ZubXCIsXCLlkajkupRcIixcIuWRqOWFrVwiXSxsb25nOltcIuaYn+acn+aXpVwiLFwi5pif5pyf5LiAXCIsXCLmmJ/mnJ/kuoxcIixcIuaYn+acn+S4iVwiLFwi5pif5pyf5ZubXCIsXCLmmJ/mnJ/kupRcIixcIuaYn+acn+WFrVwiXX0sZXJhczp7bmFycm93OltcIuS8iuaWr+WFsOWOhlwiXSxzaG9ydDpbXCLkvIrmlq/lhbDljoZcIl0sbG9uZzpbXCLkvIrmlq/lhbDljoZcIl19LGRheVBlcmlvZHM6e2FtOlwi5LiK5Y2IXCIscG06XCLkuIvljYhcIn19LGlzbGFtaWNjOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIjHmnIhcIixcIjLmnIhcIixcIjPmnIhcIixcIjTmnIhcIixcIjXmnIhcIixcIjbmnIhcIixcIjfmnIhcIixcIjjmnIhcIixcIjnmnIhcIixcIjEw5pyIXCIsXCIxMeaciFwiLFwiMTLmnIhcIl0sbG9uZzpbXCLkuIDmnIhcIixcIuS6jOaciFwiLFwi5LiJ5pyIXCIsXCLlm5vmnIhcIixcIuS6lOaciFwiLFwi5YWt5pyIXCIsXCLkuIPmnIhcIixcIuWFq+aciFwiLFwi5Lmd5pyIXCIsXCLljYHmnIhcIixcIuWNgeS4gOaciFwiLFwi5Y2B5LqM5pyIXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLkuIBcIixcIuS6jFwiLFwi5LiJXCIsXCLlm5tcIixcIuS6lFwiLFwi5YWtXCJdLHNob3J0OltcIuWRqOaXpVwiLFwi5ZGo5LiAXCIsXCLlkajkuoxcIixcIuWRqOS4iVwiLFwi5ZGo5ZubXCIsXCLlkajkupRcIixcIuWRqOWFrVwiXSxsb25nOltcIuaYn+acn+aXpVwiLFwi5pif5pyf5LiAXCIsXCLmmJ/mnJ/kuoxcIixcIuaYn+acn+S4iVwiLFwi5pif5pyf5ZubXCIsXCLmmJ/mnJ/kupRcIixcIuaYn+acn+WFrVwiXX0sZXJhczp7bmFycm93OltcIuS8iuaWr+WFsOWOhlwiXSxzaG9ydDpbXCLkvIrmlq/lhbDljoZcIl0sbG9uZzpbXCLkvIrmlq/lhbDljoZcIl19LGRheVBlcmlvZHM6e2FtOlwi5LiK5Y2IXCIscG06XCLkuIvljYhcIn19LGphcGFuZXNlOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIjHmnIhcIixcIjLmnIhcIixcIjPmnIhcIixcIjTmnIhcIixcIjXmnIhcIixcIjbmnIhcIixcIjfmnIhcIixcIjjmnIhcIixcIjnmnIhcIixcIjEw5pyIXCIsXCIxMeaciFwiLFwiMTLmnIhcIl0sbG9uZzpbXCLkuIDmnIhcIixcIuS6jOaciFwiLFwi5LiJ5pyIXCIsXCLlm5vmnIhcIixcIuS6lOaciFwiLFwi5YWt5pyIXCIsXCLkuIPmnIhcIixcIuWFq+aciFwiLFwi5Lmd5pyIXCIsXCLljYHmnIhcIixcIuWNgeS4gOaciFwiLFwi5Y2B5LqM5pyIXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLkuIBcIixcIuS6jFwiLFwi5LiJXCIsXCLlm5tcIixcIuS6lFwiLFwi5YWtXCJdLHNob3J0OltcIuWRqOaXpVwiLFwi5ZGo5LiAXCIsXCLlkajkuoxcIixcIuWRqOS4iVwiLFwi5ZGo5ZubXCIsXCLlkajkupRcIixcIuWRqOWFrVwiXSxsb25nOltcIuaYn+acn+aXpVwiLFwi5pif5pyf5LiAXCIsXCLmmJ/mnJ/kuoxcIixcIuaYn+acn+S4iVwiLFwi5pif5pyf5ZubXCIsXCLmmJ/mnJ/kupRcIixcIuaYn+acn+WFrVwiXX0sZXJhczp7bmFycm93OltcIlRhaWthICg2NDXigJM2NTApXCIsXCJIYWt1Y2hpICg2NTDigJM2NzEpXCIsXCJIYWt1aMWNICg2NzLigJM2ODYpXCIsXCJTaHVjaMWNICg2ODbigJM3MDEpXCIsXCJUYWloxY0gKDcwMeKAkzcwNClcIixcIktlaXVuICg3MDTigJM3MDgpXCIsXCJXYWTFjSAoNzA44oCTNzE1KVwiLFwiUmVpa2kgKDcxNeKAkzcxNylcIixcIlnFjXLFjSAoNzE34oCTNzI0KVwiLFwiSmlua2kgKDcyNOKAkzcyOSlcIixcIlRlbnB5xY0gKDcyOeKAkzc0OSlcIixcIlRlbnB5xY0ta2FtcMWNICg3NDktNzQ5KVwiLFwiVGVucHnFjS1zaMWNaMWNICg3NDktNzU3KVwiLFwiVGVucHnFjS1oxY1qaSAoNzU3LTc2NSlcIixcIlRlbnB5xY0tamluZ28gKDc2NS03NjcpXCIsXCJKaW5nby1rZWl1biAoNzY3LTc3MClcIixcIkjFjWtpICg3NzDigJM3ODApXCIsXCJUZW4txY0gKDc4MS03ODIpXCIsXCJFbnJ5YWt1ICg3ODLigJM4MDYpXCIsXCJEYWlkxY0gKDgwNuKAkzgxMClcIixcIkvFjW5pbiAoODEw4oCTODI0KVwiLFwiVGVuY2jFjSAoODI04oCTODM0KVwiLFwiSsWNd2EgKDgzNOKAkzg0OClcIixcIkthasWNICg4NDjigJM4NTEpXCIsXCJOaW5qdSAoODUx4oCTODU0KVwiLFwiU2Fpa8WNICg4NTTigJM4NTcpXCIsXCJUZW4tYW4gKDg1Ny04NTkpXCIsXCJKxY1nYW4gKDg1OeKAkzg3NylcIixcIkdhbmd5xY0gKDg3N+KAkzg4NSlcIixcIk5pbm5hICg4ODXigJM4ODkpXCIsXCJLYW5wecWNICg4ODnigJM4OTgpXCIsXCJTaMWNdGFpICg4OTjigJM5MDEpXCIsXCJFbmdpICg5MDHigJM5MjMpXCIsXCJFbmNoxY0gKDkyM+KAkzkzMSlcIixcIkrFjWhlaSAoOTMx4oCTOTM4KVwiLFwiVGVuZ3nFjSAoOTM44oCTOTQ3KVwiLFwiVGVucnlha3UgKDk0N+KAkzk1NylcIixcIlRlbnRva3UgKDk1N+KAkzk2MSlcIixcIsWMd2EgKDk2MeKAkzk2NClcIixcIkvFjWjFjSAoOTY04oCTOTY4KVwiLFwiQW5uYSAoOTY44oCTOTcwKVwiLFwiVGVucm9rdSAoOTcw4oCTOTczKVwiLFwiVGVu4oCZZW4gKDk3M+KAkzk3NilcIixcIkrFjWdlbiAoOTc24oCTOTc4KVwiLFwiVGVuZ2VuICg5NzjigJM5ODMpXCIsXCJFaWthbiAoOTgz4oCTOTg1KVwiLFwiS2FubmEgKDk4NeKAkzk4NylcIixcIkVpZW4gKDk4N+KAkzk4OSlcIixcIkVpc28gKDk4OeKAkzk5MClcIixcIlNoxY1yeWFrdSAoOTkw4oCTOTk1KVwiLFwiQ2jFjXRva3UgKDk5NeKAkzk5OSlcIixcIkNoxY1oxY0gKDk5OeKAkzEwMDQpXCIsXCJLYW5rxY0gKDEwMDTigJMxMDEyKVwiLFwiQ2jFjXdhICgxMDEy4oCTMTAxNylcIixcIkthbm5pbiAoMTAxN+KAkzEwMjEpXCIsXCJKaWFuICgxMDIx4oCTMTAyNClcIixcIk1hbmp1ICgxMDI04oCTMTAyOClcIixcIkNoxY1nZW4gKDEwMjjigJMxMDM3KVwiLFwiQ2jFjXJ5YWt1ICgxMDM34oCTMTA0MClcIixcIkNoxY1recWrICgxMDQw4oCTMTA0NClcIixcIkthbnRva3UgKDEwNDTigJMxMDQ2KVwiLFwiRWlzaMWNICgxMDQ24oCTMTA1MylcIixcIlRlbmdpICgxMDUz4oCTMTA1OClcIixcIkvFjWhlaSAoMTA1OOKAkzEwNjUpXCIsXCJKaXJ5YWt1ICgxMDY14oCTMTA2OSlcIixcIkVua3nFqyAoMTA2OeKAkzEwNzQpXCIsXCJTaMWNaG8gKDEwNzTigJMxMDc3KVwiLFwiU2jFjXJ5YWt1ICgxMDc34oCTMTA4MSlcIixcIkVpaMWNICgxMDgx4oCTMTA4NClcIixcIsWMdG9rdSAoMTA4NOKAkzEwODcpXCIsXCJLYW5qaSAoMTA4N+KAkzEwOTQpXCIsXCJLYWjFjSAoMTA5NOKAkzEwOTYpXCIsXCJFaWNoxY0gKDEwOTbigJMxMDk3KVwiLFwiSsWNdG9rdSAoMTA5N+KAkzEwOTkpXCIsXCJLxY13YSAoMTA5OeKAkzExMDQpXCIsXCJDaMWNamkgKDExMDTigJMxMTA2KVwiLFwiS2FzaMWNICgxMTA24oCTMTEwOClcIixcIlRlbm5pbiAoMTEwOOKAkzExMTApXCIsXCJUZW4tZWkgKDExMTAtMTExMylcIixcIkVpa3nFqyAoMTExM+KAkzExMTgpXCIsXCJHZW7igJllaSAoMTExOOKAkzExMjApXCIsXCJIxY1hbiAoMTEyMOKAkzExMjQpXCIsXCJUZW5qaSAoMTEyNOKAkzExMjYpXCIsXCJEYWlqaSAoMTEyNuKAkzExMzEpXCIsXCJUZW5zaMWNICgxMTMx4oCTMTEzMilcIixcIkNoxY1zaMWNICgxMTMy4oCTMTEzNSlcIixcIkjFjWVuICgxMTM14oCTMTE0MSlcIixcIkVpamkgKDExNDHigJMxMTQyKVwiLFwiS8WNamkgKDExNDLigJMxMTQ0KVwiLFwiVGVu4oCZecWNICgxMTQ04oCTMTE0NSlcIixcIkt5xathbiAoMTE0NeKAkzExNTEpXCIsXCJOaW5wZWkgKDExNTHigJMxMTU0KVwiLFwiS3nFq2p1ICgxMTU04oCTMTE1NilcIixcIkjFjWdlbiAoMTE1NuKAkzExNTkpXCIsXCJIZWlqaSAoMTE1OeKAkzExNjApXCIsXCJFaXJ5YWt1ICgxMTYw4oCTMTE2MSlcIixcIsWMaG8gKDExNjHigJMxMTYzKVwiLFwiQ2jFjWthbiAoMTE2M+KAkzExNjUpXCIsXCJFaW1hbiAoMTE2NeKAkzExNjYpXCIsXCJOaW7igJlhbiAoMTE2NuKAkzExNjkpXCIsXCJLYcWNICgxMTY54oCTMTE3MSlcIixcIlNoxY1hbiAoMTE3MeKAkzExNzUpXCIsXCJBbmdlbiAoMTE3NeKAkzExNzcpXCIsXCJKaXNoxY0gKDExNzfigJMxMTgxKVwiLFwiWcWNd2EgKDExODHigJMxMTgyKVwiLFwiSnVlaSAoMTE4MuKAkzExODQpXCIsXCJHZW5yeWFrdSAoMTE4NOKAkzExODUpXCIsXCJCdW5qaSAoMTE4NeKAkzExOTApXCIsXCJLZW5recWrICgxMTkw4oCTMTE5OSlcIixcIlNoxY1qaSAoMTE5OeKAkzEyMDEpXCIsXCJLZW5uaW4gKDEyMDHigJMxMjA0KVwiLFwiR2Vua3nFqyAoMTIwNOKAkzEyMDYpXCIsXCJLZW7igJllaSAoMTIwNuKAkzEyMDcpXCIsXCJKxY1nZW4gKDEyMDfigJMxMjExKVwiLFwiS2Vucnlha3UgKDEyMTHigJMxMjEzKVwiLFwiS2VucMWNICgxMjEz4oCTMTIxOSlcIixcIkrFjWt5xasgKDEyMTnigJMxMjIyKVwiLFwiSsWNxY0gKDEyMjLigJMxMjI0KVwiLFwiR2VubmluICgxMjI04oCTMTIyNSlcIixcIkthcm9rdSAoMTIyNeKAkzEyMjcpXCIsXCJBbnRlaSAoMTIyN+KAkzEyMjkpXCIsXCJLYW5raSAoMTIyOeKAkzEyMzIpXCIsXCJKxY1laSAoMTIzMuKAkzEyMzMpXCIsXCJUZW5wdWt1ICgxMjMz4oCTMTIzNClcIixcIkJ1bnJ5YWt1ICgxMjM04oCTMTIzNSlcIixcIkthdGVpICgxMjM14oCTMTIzOClcIixcIlJ5YWt1bmluICgxMjM44oCTMTIzOSlcIixcIkVu4oCZxY0gKDEyMznigJMxMjQwKVwiLFwiTmluamkgKDEyNDDigJMxMjQzKVwiLFwiS2FuZ2VuICgxMjQz4oCTMTI0NylcIixcIkjFjWppICgxMjQ34oCTMTI0OSlcIixcIktlbmNoxY0gKDEyNDnigJMxMjU2KVwiLFwiS8WNZ2VuICgxMjU24oCTMTI1NylcIixcIlNoxY1rYSAoMTI1N+KAkzEyNTkpXCIsXCJTaMWNZ2VuICgxMjU54oCTMTI2MClcIixcIkJ1buKAmcWNICgxMjYw4oCTMTI2MSlcIixcIkvFjWNoxY0gKDEyNjHigJMxMjY0KVwiLFwiQnVu4oCZZWkgKDEyNjTigJMxMjc1KVwiLFwiS2VuamkgKDEyNzXigJMxMjc4KVwiLFwiS8WNYW4gKDEyNzjigJMxMjg4KVwiLFwiU2jFjcWNICgxMjg44oCTMTI5MylcIixcIkVpbmluICgxMjkz4oCTMTI5OSlcIixcIlNoxY1hbiAoMTI5OeKAkzEzMDIpXCIsXCJLZW5nZW4gKDEzMDLigJMxMzAzKVwiLFwiS2FnZW4gKDEzMDPigJMxMzA2KVwiLFwiVG9rdWppICgxMzA24oCTMTMwOClcIixcIkVua3nFjSAoMTMwOOKAkzEzMTEpXCIsXCLFjGNoxY0gKDEzMTHigJMxMzEyKVwiLFwiU2jFjXdhICgxMzEy4oCTMTMxNylcIixcIkJ1bnDFjSAoMTMxN+KAkzEzMTkpXCIsXCJHZW7FjSAoMTMxOeKAkzEzMjEpXCIsXCJHZW5rxY0gKDEzMjHigJMxMzI0KVwiLFwiU2jFjWNoxasgKDEzMjTigJMxMzI2KVwiLFwiS2FyeWFrdSAoMTMyNuKAkzEzMjkpXCIsXCJHZW50b2t1ICgxMzI54oCTMTMzMSlcIixcIkdlbmvFjSAoMTMzMeKAkzEzMzQpXCIsXCJLZW5tdSAoMTMzNOKAkzEzMzYpXCIsXCJFbmdlbiAoMTMzNuKAkzEzNDApXCIsXCJLxY1rb2t1ICgxMzQw4oCTMTM0NilcIixcIlNoxY1oZWkgKDEzNDbigJMxMzcwKVwiLFwiS2VudG9rdSAoMTM3MOKAkzEzNzIpXCIsXCJCdW5jaMWrICgxMzcy4oCTMTM3NSlcIixcIlRlbmp1ICgxMzc14oCTMTM3OSlcIixcIkvFjXJ5YWt1ICgxMzc54oCTMTM4MSlcIixcIkvFjXdhICgxMzgx4oCTMTM4NClcIixcIkdlbmNoxasgKDEzODTigJMxMzkyKVwiLFwiTWVpdG9rdSAoMTM4NOKAkzEzODcpXCIsXCJLYWtlaSAoMTM4N+KAkzEzODkpXCIsXCJLxY3FjSAoMTM4OeKAkzEzOTApXCIsXCJNZWl0b2t1ICgxMzkw4oCTMTM5NClcIixcIsWMZWkgKDEzOTTigJMxNDI4KVwiLFwiU2jFjWNoxY0gKDE0MjjigJMxNDI5KVwiLFwiRWlrecWNICgxNDI54oCTMTQ0MSlcIixcIktha2l0c3UgKDE0NDHigJMxNDQ0KVwiLFwiQnVu4oCZYW4gKDE0NDTigJMxNDQ5KVwiLFwiSMWNdG9rdSAoMTQ0OeKAkzE0NTIpXCIsXCJLecWNdG9rdSAoMTQ1MuKAkzE0NTUpXCIsXCJLxY1zaMWNICgxNDU14oCTMTQ1NylcIixcIkNoxY1yb2t1ICgxNDU34oCTMTQ2MClcIixcIkthbnNoxY0gKDE0NjDigJMxNDY2KVwiLFwiQnVuc2jFjSAoMTQ2NuKAkzE0NjcpXCIsXCLFjG5pbiAoMTQ2N+KAkzE0NjkpXCIsXCJCdW5tZWkgKDE0NjnigJMxNDg3KVwiLFwiQ2jFjWt5xY0gKDE0ODfigJMxNDg5KVwiLFwiRW50b2t1ICgxNDg54oCTMTQ5MilcIixcIk1lacWNICgxNDky4oCTMTUwMSlcIixcIkJ1bmtpICgxNTAx4oCTMTUwNClcIixcIkVpc2jFjSAoMTUwNOKAkzE1MjEpXCIsXCJUYWllaSAoMTUyMeKAkzE1MjgpXCIsXCJLecWNcm9rdSAoMTUyOOKAkzE1MzIpXCIsXCJUZW5idW4gKDE1MzLigJMxNTU1KVwiLFwiS8WNamkgKDE1NTXigJMxNTU4KVwiLFwiRWlyb2t1ICgxNTU44oCTMTU3MClcIixcIkdlbmtpICgxNTcw4oCTMTU3MylcIixcIlRlbnNoxY0gKDE1NzPigJMxNTkyKVwiLFwiQnVucm9rdSAoMTU5MuKAkzE1OTYpXCIsXCJLZWljaMWNICgxNTk24oCTMTYxNSlcIixcIkdlbm5hICgxNjE14oCTMTYyNClcIixcIkthbuKAmWVpICgxNjI04oCTMTY0NClcIixcIlNoxY1obyAoMTY0NOKAkzE2NDgpXCIsXCJLZWlhbiAoMTY0OOKAkzE2NTIpXCIsXCJKxY3FjSAoMTY1MuKAkzE2NTUpXCIsXCJNZWlyZWtpICgxNjU14oCTMTY1OClcIixcIk1hbmppICgxNjU44oCTMTY2MSlcIixcIkthbmJ1biAoMTY2MeKAkzE2NzMpXCIsXCJFbnDFjSAoMTY3M+KAkzE2ODEpXCIsXCJUZW5uYSAoMTY4MeKAkzE2ODQpXCIsXCJKxY1recWNICgxNjg04oCTMTY4OClcIixcIkdlbnJva3UgKDE2ODjigJMxNzA0KVwiLFwiSMWNZWkgKDE3MDTigJMxNzExKVwiLFwiU2jFjXRva3UgKDE3MTHigJMxNzE2KVwiLFwiS3nFjWjFjSAoMTcxNuKAkzE3MzYpXCIsXCJHZW5idW4gKDE3MzbigJMxNzQxKVwiLFwiS2FucMWNICgxNzQx4oCTMTc0NClcIixcIkVua3nFjSAoMTc0NOKAkzE3NDgpXCIsXCJLYW7igJllbiAoMTc0OOKAkzE3NTEpXCIsXCJIxY1yZWtpICgxNzUx4oCTMTc2NClcIixcIk1laXdhICgxNzY04oCTMTc3MilcIixcIkFu4oCZZWkgKDE3NzLigJMxNzgxKVwiLFwiVGVubWVpICgxNzgx4oCTMTc4OSlcIixcIkthbnNlaSAoMTc4OeKAkzE4MDEpXCIsXCJLecWNd2EgKDE4MDHigJMxODA0KVwiLFwiQnVua2EgKDE4MDTigJMxODE4KVwiLFwiQnVuc2VpICgxODE44oCTMTgzMClcIixcIlRlbnDFjSAoMTgzMOKAkzE4NDQpXCIsXCJLxY1rYSAoMTg0NOKAkzE4NDgpXCIsXCJLYWVpICgxODQ44oCTMTg1NClcIixcIkFuc2VpICgxODU04oCTMTg2MClcIixcIk1hbuKAmWVuICgxODYw4oCTMTg2MSlcIixcIkJ1bmt5xasgKDE4NjHigJMxODY0KVwiLFwiR2VuamkgKDE4NjTigJMxODY1KVwiLFwiS2VpxY0gKDE4NjXigJMxODY4KVwiLFwiTVwiLFwiVFwiLFwiU1wiLFwiSFwiXSxzaG9ydDpbXCLlpKfljJYgKDY0NeKAkzY1MClcIixcIueZvembiSAoNjUw4oCTNjcxKVwiLFwi55m95YekICg2NzLigJM2ODYpXCIsXCLmnLHpuJ8gKDY4NuKAkzcwMSlcIixcIuWkp+WunSAoNzAx4oCTNzA0KVwiLFwi5bqG5LqRICg3MDTigJM3MDgpXCIsXCLlkozpk5wgKDcwOOKAkzcxNSlcIixcIueBtem+nyAoNzE14oCTNzE3KVwiLFwi5YW76ICBICg3MTfigJM3MjQpXCIsXCLnpZ7pvp8gKDcyNOKAkzcyOSlcIixcIuWkqeW5syAoNzI54oCTNzQ5KVwiLFwi5aSp5bmz5oSf5a6dICg3NDnigJM3NDkpXCIsXCLlpKnlubPog5zlrp0gKDc0OeKAkzc1NylcIixcIuWkqeW5s+WuneWtlyAoNzU34oCTNzY1KVwiLFwi5aSp5bmz56We5oqkICg3NjXigJM3NjcpXCIsXCLnpZ7miqTmma/kupEgKDc2N+KAkzc3MClcIixcIuWunem+nyAoNzcw4oCTNzgwKVwiLFwi5aSp5bqUICg3ODHigJM3ODIpXCIsXCLlu7bljoYgKDc4MuKAkzgwNilcIixcIuWkp+WQjCAoODA24oCTODEwKVwiLFwi5byY5LuBICg4MTDigJM4MjQpXCIsXCLlpKnplb8gKDgyNOKAkzgzNClcIixcIuaJv+WSjCAoODM04oCTODQ4KVwiLFwi5ZiJ56WlICg4NDjigJM4NTEpXCIsXCLku4Hlr78gKDg1MeKAkzg1NClcIixcIum9kOihoSAoODU04oCTODU3KVwiLFwi5aSp5a6JICg4NTfigJM4NTkpXCIsXCLotJ7op4IgKDg1OeKAkzg3NylcIixcIuWFg+W6hiAoODc34oCTODg1KVwiLFwi5LuB5ZKMICg4ODXigJM4ODkpXCIsXCLlrr3lubMgKDg4OeKAkzg5OClcIixcIuaYjOazsCAoODk44oCTOTAxKVwiLFwi5bu25ZacICg5MDHigJM5MjMpXCIsXCLlu7bplb8gKDkyM+KAkzkzMSlcIixcIuaJv+W5syAoOTMx4oCTOTM4KVwiLFwi5aSp5bqGICg5MzjigJM5NDcpXCIsXCLlpKnljoYgKDk0N+KAkzk1NylcIixcIuWkqeW+tyAoOTU34oCTOTYxKVwiLFwi5bqU5ZKMICg5NjHigJM5NjQpXCIsXCLlurfkv50gKDk2NOKAkzk2OClcIixcIuWuieWSjCAoOTY44oCTOTcwKVwiLFwi5aSp56aEICg5NzDigJM5NzMpXCIsXCLlpKnlu7YgKDk3M+KAkzk3NilcIixcIui0nuWFgyAoOTc24oCTOTc4KVwiLFwi5aSp5YWDICg5NzjigJM5ODMpXCIsXCLmsLjop4IgKDk4M+KAkzk4NSlcIixcIuWuveWSjCAoOTg14oCTOTg3KVwiLFwi5rC45bu2ICg5ODfigJM5ODkpXCIsXCLmsLjnpZogKDk4OeKAkzk5MClcIixcIuato+WOhiAoOTkw4oCTOTk1KVwiLFwi6ZW/5b63ICg5OTXigJM5OTkpXCIsXCLplb/kv50gKDk5OeKAkzEwMDQpXCIsXCLlrr3lvJggKDEwMDTigJMxMDEyKVwiLFwi6ZW/5ZKMICgxMDEy4oCTMTAxNylcIixcIuWuveS7gSAoMTAxN+KAkzEwMjEpXCIsXCLmsrvlrokgKDEwMjHigJMxMDI0KVwiLFwi5LiH5a+/ICgxMDI04oCTMTAyOClcIixcIumVv+WFgyAoMTAyOOKAkzEwMzcpXCIsXCLplb/ljoYgKDEwMzfigJMxMDQwKVwiLFwi6ZW/5LmFICgxMDQw4oCTMTA0NClcIixcIuWuveW+tyAoMTA0NOKAkzEwNDYpXCIsXCLmsLjmib8gKDEwNDbigJMxMDUzKVwiLFwi5aSp5ZacICgxMDUz4oCTMTA1OClcIixcIuW6t+W5syAoMTA1OOKAkzEwNjUpXCIsXCLmsrvljoYgKDEwNjXigJMxMDY5KVwiLFwi5bu25LmFICgxMDY54oCTMTA3NClcIixcIuaJv+S/nSAoMTA3NOKAkzEwNzcpXCIsXCLmraPljoYgKDEwNzfigJMxMDgxKVwiLFwi5rC45L+dICgxMDgx4oCTMTA4NClcIixcIuW6lOW+tyAoMTA4NOKAkzEwODcpXCIsXCLlrr3msrsgKDEwODfigJMxMDk0KVwiLFwi5ZiJ5L+dICgxMDk04oCTMTA5NilcIixcIuawuOmVvyAoMTA5NuKAkzEwOTcpXCIsXCLmib/lvrcgKDEwOTfigJMxMDk5KVwiLFwi5bq35ZKMICgxMDk54oCTMTEwNClcIixcIumVv+ayuyAoMTEwNOKAkzExMDYpXCIsXCLlmInmib8gKDExMDbigJMxMTA4KVwiLFwi5aSp5LuBICgxMTA44oCTMTExMClcIixcIuWkqeawuCAoMTExMOKAkzExMTMpXCIsXCLmsLjkuYUgKDExMTPigJMxMTE4KVwiLFwi5YWD5rC4ICgxMTE44oCTMTEyMClcIixcIuS/neWuiSAoMTEyMOKAkzExMjQpXCIsXCLlpKnmsrsgKDExMjTigJMxMTI2KVwiLFwi5aSn5rK7ICgxMTI24oCTMTEzMSlcIixcIuWkqeaJvyAoMTEzMeKAkzExMzIpXCIsXCLplb/mib8gKDExMzLigJMxMTM1KVwiLFwi5L+d5bu2ICgxMTM14oCTMTE0MSlcIixcIuawuOayuyAoMTE0MeKAkzExNDIpXCIsXCLlurfmsrsgKDExNDLigJMxMTQ0KVwiLFwi5aSp5YW7ICgxMTQ04oCTMTE0NSlcIixcIuS5heWuiSAoMTE0NeKAkzExNTEpXCIsXCLku4HlubMgKDExNTHigJMxMTU0KVwiLFwi5LmF5a+/ICgxMTU04oCTMTE1NilcIixcIuS/neWFgyAoMTE1NuKAkzExNTkpXCIsXCLlubPmsrsgKDExNTnigJMxMTYwKVwiLFwi5rC45Y6GICgxMTYw4oCTMTE2MSlcIixcIuW6lOS/nSAoMTE2MeKAkzExNjMpXCIsXCLplb/lrr0gKDExNjPigJMxMTY1KVwiLFwi5rC45LiHICgxMTY14oCTMTE2NilcIixcIuS7geWuiSAoMTE2NuKAkzExNjkpXCIsXCLlmInlupQgKDExNjnigJMxMTcxKVwiLFwi5om/5a6JICgxMTcx4oCTMTE3NSlcIixcIuWuieWFgyAoMTE3NeKAkzExNzcpXCIsXCLmsrvmib8gKDExNzfigJMxMTgxKVwiLFwi5YW75ZKMICgxMTgx4oCTMTE4MilcIixcIuWvv+awuCAoMTE4MuKAkzExODQpXCIsXCLlhYPljoYgKDExODTigJMxMTg1KVwiLFwi5paH5rK7ICgxMTg14oCTMTE5MClcIixcIuW7uuS5hSAoMTE5MOKAkzExOTkpXCIsXCLmraPmsrsgKDExOTnigJMxMjAxKVwiLFwi5bu65LuBICgxMjAx4oCTMTIwNClcIixcIuWFg+S5hSAoMTIwNOKAkzEyMDYpXCIsXCLlu7rmsLggKDEyMDbigJMxMjA3KVwiLFwi5om/5YWDICgxMjA34oCTMTIxMSlcIixcIuW7uuWOhiAoMTIxMeKAkzEyMTMpXCIsXCLlu7rkv50gKDEyMTPigJMxMjE5KVwiLFwi5om/5LmFICgxMjE54oCTMTIyMilcIixcIui0nuW6lCAoMTIyMuKAkzEyMjQpXCIsXCLlhYPku4EgKDEyMjTigJMxMjI1KVwiLFwi5ZiJ56aEICgxMjI14oCTMTIyNylcIixcIuWuiei0niAoMTIyN+KAkzEyMjkpXCIsXCLlrr3llpwgKDEyMjnigJMxMjMyKVwiLFwi6LSe5rC4ICgxMjMy4oCTMTIzMylcIixcIuWkqeemjyAoMTIzM+KAkzEyMzQpXCIsXCLmlofljoYgKDEyMzTigJMxMjM1KVwiLFwi5ZiJ56WvICgxMjM14oCTMTIzOClcIixcIuWOhuS7gSAoMTIzOOKAkzEyMzkpXCIsXCLlu7blupQgKDEyMznigJMxMjQwKVwiLFwi5LuB5rK7ICgxMjQw4oCTMTI0MylcIixcIuWuveWFgyAoMTI0M+KAkzEyNDcpXCIsXCLlrp3msrsgKDEyNDfigJMxMjQ5KVwiLFwi5bu66ZW/ICgxMjQ54oCTMTI1NilcIixcIuW6t+WFgyAoMTI1NuKAkzEyNTcpXCIsXCLmraPlmIkgKDEyNTfigJMxMjU5KVwiLFwi5q2j5YWDICgxMjU54oCTMTI2MClcIixcIuaWh+W6lCAoMTI2MOKAkzEyNjEpXCIsXCLlvJjplb8gKDEyNjHigJMxMjY0KVwiLFwi5paH5rC4ICgxMjY04oCTMTI3NSlcIixcIuW7uuayuyAoMTI3NeKAkzEyNzgpXCIsXCLlvJjlrokgKDEyNzjigJMxMjg4KVwiLFwi5q2j5bqUICgxMjg44oCTMTI5MylcIixcIuawuOS7gSAoMTI5M+KAkzEyOTkpXCIsXCLmraPlrokgKDEyOTnigJMxMzAyKVwiLFwi5bmy5YWDICgxMzAy4oCTMTMwMylcIixcIuWYieWFgyAoMTMwM+KAkzEzMDYpXCIsXCLlvrfmsrsgKDEzMDbigJMxMzA4KVwiLFwi5bu25bqGICgxMzA44oCTMTMxMSlcIixcIuW6lOmVvyAoMTMxMeKAkzEzMTIpXCIsXCLmraPlkowgKDEzMTLigJMxMzE3KVwiLFwi5paH5L+dICgxMzE34oCTMTMxOSlcIixcIuWFg+W6lCAoMTMxOeKAkzEzMjEpXCIsXCLlhYPkuqggKDEzMjHigJMxMzI0KVwiLFwi5q2j5LitICgxMzI04oCTMTMyNilcIixcIuWYieWOhiAoMTMyNuKAkzEzMjkpXCIsXCLlhYPlvrcgKDEzMjnigJMxMzMxKVwiLFwi5YWD5byYICgxMzMx4oCTMTMzNClcIixcIuW7uuatpiAoMTMzNOKAkzEzMzYpXCIsXCLlu7blhYMgKDEzMzbigJMxMzQwKVwiLFwi5YW05Zu9ICgxMzQw4oCTMTM0NilcIixcIuato+W5syAoMTM0NuKAkzEzNzApXCIsXCLlu7rlvrcgKDEzNzDigJMxMzcyKVwiLFwi5paH5LitICgxMzcy4oCTMTM3NSlcIixcIuWkqeaOiCAoMTM3NeKAkzEzNzkpXCIsXCLlurfljoYgKDEzNznigJMxMzgxKVwiLFwi5byY5ZKMICgxMzgx4oCTMTM4NClcIixcIuWFg+S4rSAoMTM4NOKAkzEzOTIpXCIsXCLoh7PlvrcgKDEzODTigJMxMzg3KVwiLFwi5ZiJ5bqGICgxMzg34oCTMTM4OSlcIixcIuW6t+W6lCAoMTM4OeKAkzEzOTApXCIsXCLmmI7lvrcgKDEzOTDigJMxMzk0KVwiLFwi5bqU5rC4ICgxMzk04oCTMTQyOClcIixcIuato+mVvyAoMTQyOOKAkzE0MjkpXCIsXCLmsLjkuqsgKDE0MjnigJMxNDQxKVwiLFwi5ZiJ5ZCJICgxNDQx4oCTMTQ0NClcIixcIuaWh+WuiSAoMTQ0NOKAkzE0NDkpXCIsXCLlrp3lvrcgKDE0NDnigJMxNDUyKVwiLFwi5Lqr5b63ICgxNDUy4oCTMTQ1NSlcIixcIuW6t+atoyAoMTQ1NeKAkzE0NTcpXCIsXCLplb/npoQgKDE0NTfigJMxNDYwKVwiLFwi5a695q2jICgxNDYw4oCTMTQ2NilcIixcIuaWh+atoyAoMTQ2NuKAkzE0NjcpXCIsXCLlupTku4EgKDE0NjfigJMxNDY5KVwiLFwi5paH5piOICgxNDY54oCTMTQ4NylcIixcIumVv+S6qyAoMTQ4N+KAkzE0ODkpXCIsXCLlu7blvrcgKDE0ODnigJMxNDkyKVwiLFwi5piO5bqUICgxNDky4oCTMTUwMSlcIixcIuaWh+m+nyAoMTUwMeKAkzE1MDQpXCIsXCLmsLjmraMgKDE1MDTigJMxNTIxKVwiLFwi5aSn5rC4ICgxNTIx4oCTMTUyOClcIixcIuS6q+emhCAoMTUyOOKAkzE1MzIpXCIsXCLlpKnmlocgKDE1MzLigJMxNTU1KVwiLFwi5byY5rK7ICgxNTU14oCTMTU1OClcIixcIuawuOemhCAoMTU1OOKAkzE1NzApXCIsXCLlhYPpvp8gKDE1NzDigJMxNTczKVwiLFwi5aSp5q2jICgxNTcz4oCTMTU5MilcIixcIuaWh+emhCAoMTU5MuKAkzE1OTYpXCIsXCLluobplb8gKDE1OTbigJMxNjE1KVwiLFwi5YWD5ZKMICgxNjE14oCTMTYyNClcIixcIuWuveawuCAoMTYyNOKAkzE2NDQpXCIsXCLmraPkv50gKDE2NDTigJMxNjQ4KVwiLFwi5bqG5a6JICgxNjQ44oCTMTY1MilcIixcIuaJv+W6lCAoMTY1MuKAkzE2NTUpXCIsXCLmmI7ljoYgKDE2NTXigJMxNjU4KVwiLFwi5LiH5rK7ICgxNjU44oCTMTY2MSlcIixcIuWuveaWhyAoMTY2MeKAkzE2NzMpXCIsXCLlu7blrp0gKDE2NzPigJMxNjgxKVwiLFwi5aSp5ZKMICgxNjgx4oCTMTY4NClcIixcIui0nuS6qyAoMTY4NOKAkzE2ODgpXCIsXCLlhYPnpoQgKDE2ODjigJMxNzA0KVwiLFwi5a6d5rC4ICgxNzA04oCTMTcxMSlcIixcIuato+W+tyAoMTcxMeKAkzE3MTYpXCIsXCLkuqvkv50gKDE3MTbigJMxNzM2KVwiLFwi5YWD5paHICgxNzM24oCTMTc0MSlcIixcIuWuveS/nSAoMTc0MeKAkzE3NDQpXCIsXCLlu7bkuqsgKDE3NDTigJMxNzQ4KVwiLFwi5a695bu2ICgxNzQ44oCTMTc1MSlcIixcIuWuneWOhiAoMTc1MeKAkzE3NjQpXCIsXCLmmI7lkowgKDE3NjTigJMxNzcyKVwiLFwi5a6J5rC4ICgxNzcy4oCTMTc4MSlcIixcIuWkqeaYjiAoMTc4MeKAkzE3ODkpXCIsXCLlrr3mlL8gKDE3ODnigJMxODAxKVwiLFwi5Lqr5ZKMICgxODAx4oCTMTgwNClcIixcIuaWh+WMliAoMTgwNOKAkzE4MTgpXCIsXCLmlofmlL8gKDE4MTjigJMxODMwKVwiLFwi5aSp5L+dICgxODMw4oCTMTg0NClcIixcIuW8mOWMliAoMTg0NOKAkzE4NDgpXCIsXCLlmInmsLggKDE4NDjigJMxODU0KVwiLFwi5a6J5pS/ICgxODU04oCTMTg2MClcIixcIuS4h+W7tiAoMTg2MOKAkzE4NjEpXCIsXCLmlofkuYUgKDE4NjHigJMxODY0KVwiLFwi5YWD5rK7ICgxODY04oCTMTg2NSlcIixcIuW6huW6lCAoMTg2NeKAkzE4NjgpXCIsXCLmmI7msrtcIixcIuWkp+ato1wiLFwi5pit5ZKMXCIsXCLlubPmiJBcIl0sbG9uZzpbXCLlpKfljJYgKDY0NeKAkzY1MClcIixcIueZvembiSAoNjUw4oCTNjcxKVwiLFwi55m95YekICg2NzLigJM2ODYpXCIsXCLmnLHpuJ8gKDY4NuKAkzcwMSlcIixcIuWkp+WunSAoNzAx4oCTNzA0KVwiLFwi5bqG5LqRICg3MDTigJM3MDgpXCIsXCLlkozpk5wgKDcwOOKAkzcxNSlcIixcIueBtem+nyAoNzE14oCTNzE3KVwiLFwi5YW76ICBICg3MTfigJM3MjQpXCIsXCLnpZ7pvp8gKDcyNOKAkzcyOSlcIixcIuWkqeW5syAoNzI54oCTNzQ5KVwiLFwi5aSp5bmz5oSf5a6dICg3NDnigJM3NDkpXCIsXCLlpKnlubPog5zlrp0gKDc0OeKAkzc1NylcIixcIuWkqeW5s+WuneWtlyAoNzU34oCTNzY1KVwiLFwi5aSp5bmz56We5oqkICg3NjXigJM3NjcpXCIsXCLnpZ7miqTmma/kupEgKDc2N+KAkzc3MClcIixcIuWunem+nyAoNzcw4oCTNzgwKVwiLFwi5aSp5bqUICg3ODHigJM3ODIpXCIsXCLlu7bljoYgKDc4MuKAkzgwNilcIixcIuWkp+WQjCAoODA24oCTODEwKVwiLFwi5byY5LuBICg4MTDigJM4MjQpXCIsXCLlpKnplb8gKDgyNOKAkzgzNClcIixcIuaJv+WSjCAoODM04oCTODQ4KVwiLFwi5ZiJ56WlICg4NDjigJM4NTEpXCIsXCLku4Hlr78gKDg1MeKAkzg1NClcIixcIum9kOihoSAoODU04oCTODU3KVwiLFwi5aSp5a6JICg4NTfigJM4NTkpXCIsXCLotJ7op4IgKDg1OeKAkzg3NylcIixcIuWFg+W6hiAoODc34oCTODg1KVwiLFwi5LuB5ZKMICg4ODXigJM4ODkpXCIsXCLlrr3lubMgKDg4OeKAkzg5OClcIixcIuaYjOazsCAoODk44oCTOTAxKVwiLFwi5bu25ZacICg5MDHigJM5MjMpXCIsXCLlu7bplb8gKDkyM+KAkzkzMSlcIixcIuaJv+W5syAoOTMx4oCTOTM4KVwiLFwi5aSp5bqGICg5MzjigJM5NDcpXCIsXCLlpKnljoYgKDk0N+KAkzk1NylcIixcIuWkqeW+tyAoOTU34oCTOTYxKVwiLFwi5bqU5ZKMICg5NjHigJM5NjQpXCIsXCLlurfkv50gKDk2NOKAkzk2OClcIixcIuWuieWSjCAoOTY44oCTOTcwKVwiLFwi5aSp56aEICg5NzDigJM5NzMpXCIsXCLlpKnlu7YgKDk3M+KAkzk3NilcIixcIui0nuWFgyAoOTc24oCTOTc4KVwiLFwi5aSp5YWDICg5NzjigJM5ODMpXCIsXCLmsLjop4IgKDk4M+KAkzk4NSlcIixcIuWuveWSjCAoOTg14oCTOTg3KVwiLFwi5rC45bu2ICg5ODfigJM5ODkpXCIsXCLmsLjnpZogKDk4OeKAkzk5MClcIixcIuato+WOhiAoOTkw4oCTOTk1KVwiLFwi6ZW/5b63ICg5OTXigJM5OTkpXCIsXCLplb/kv50gKDk5OeKAkzEwMDQpXCIsXCLlrr3lvJggKDEwMDTigJMxMDEyKVwiLFwi6ZW/5ZKMICgxMDEy4oCTMTAxNylcIixcIuWuveS7gSAoMTAxN+KAkzEwMjEpXCIsXCLmsrvlrokgKDEwMjHigJMxMDI0KVwiLFwi5LiH5a+/ICgxMDI04oCTMTAyOClcIixcIumVv+WFgyAoMTAyOOKAkzEwMzcpXCIsXCLplb/ljoYgKDEwMzfigJMxMDQwKVwiLFwi6ZW/5LmFICgxMDQw4oCTMTA0NClcIixcIuWuveW+tyAoMTA0NOKAkzEwNDYpXCIsXCLmsLjmib8gKDEwNDbigJMxMDUzKVwiLFwi5aSp5ZacICgxMDUz4oCTMTA1OClcIixcIuW6t+W5syAoMTA1OOKAkzEwNjUpXCIsXCLmsrvljoYgKDEwNjXigJMxMDY5KVwiLFwi5bu25LmFICgxMDY54oCTMTA3NClcIixcIuaJv+S/nSAoMTA3NOKAkzEwNzcpXCIsXCLmraPljoYgKDEwNzfigJMxMDgxKVwiLFwi5rC45L+dICgxMDgx4oCTMTA4NClcIixcIuW6lOW+tyAoMTA4NOKAkzEwODcpXCIsXCLlrr3msrsgKDEwODfigJMxMDk0KVwiLFwi5ZiJ5L+dICgxMDk04oCTMTA5NilcIixcIuawuOmVvyAoMTA5NuKAkzEwOTcpXCIsXCLmib/lvrcgKDEwOTfigJMxMDk5KVwiLFwi5bq35ZKMICgxMDk54oCTMTEwNClcIixcIumVv+ayuyAoMTEwNOKAkzExMDYpXCIsXCLlmInmib8gKDExMDbigJMxMTA4KVwiLFwi5aSp5LuBICgxMTA44oCTMTExMClcIixcIuWkqeawuCAoMTExMOKAkzExMTMpXCIsXCLmsLjkuYUgKDExMTPigJMxMTE4KVwiLFwi5YWD5rC4ICgxMTE44oCTMTEyMClcIixcIuS/neWuiSAoMTEyMOKAkzExMjQpXCIsXCLlpKnmsrsgKDExMjTigJMxMTI2KVwiLFwi5aSn5rK7ICgxMTI24oCTMTEzMSlcIixcIuWkqeaJvyAoMTEzMeKAkzExMzIpXCIsXCLplb/mib8gKDExMzLigJMxMTM1KVwiLFwi5L+d5bu2ICgxMTM14oCTMTE0MSlcIixcIuawuOayuyAoMTE0MeKAkzExNDIpXCIsXCLlurfmsrsgKDExNDLigJMxMTQ0KVwiLFwi5aSp5YW7ICgxMTQ04oCTMTE0NSlcIixcIuS5heWuiSAoMTE0NeKAkzExNTEpXCIsXCLku4HlubMgKDExNTHigJMxMTU0KVwiLFwi5LmF5a+/ICgxMTU04oCTMTE1NilcIixcIuS/neWFgyAoMTE1NuKAkzExNTkpXCIsXCLlubPmsrsgKDExNTnigJMxMTYwKVwiLFwi5rC45Y6GICgxMTYw4oCTMTE2MSlcIixcIuW6lOS/nSAoMTE2MeKAkzExNjMpXCIsXCLplb/lrr0gKDExNjPigJMxMTY1KVwiLFwi5rC45LiHICgxMTY14oCTMTE2NilcIixcIuS7geWuiSAoMTE2NuKAkzExNjkpXCIsXCLlmInlupQgKDExNjnigJMxMTcxKVwiLFwi5om/5a6JICgxMTcx4oCTMTE3NSlcIixcIuWuieWFgyAoMTE3NeKAkzExNzcpXCIsXCLmsrvmib8gKDExNzfigJMxMTgxKVwiLFwi5YW75ZKMICgxMTgx4oCTMTE4MilcIixcIuWvv+awuCAoMTE4MuKAkzExODQpXCIsXCLlhYPljoYgKDExODTigJMxMTg1KVwiLFwi5paH5rK7ICgxMTg14oCTMTE5MClcIixcIuW7uuS5hSAoMTE5MOKAkzExOTkpXCIsXCLmraPmsrsgKDExOTnigJMxMjAxKVwiLFwi5bu65LuBICgxMjAx4oCTMTIwNClcIixcIuWFg+S5hSAoMTIwNOKAkzEyMDYpXCIsXCLlu7rmsLggKDEyMDbigJMxMjA3KVwiLFwi5om/5YWDICgxMjA34oCTMTIxMSlcIixcIuW7uuWOhiAoMTIxMeKAkzEyMTMpXCIsXCLlu7rkv50gKDEyMTPigJMxMjE5KVwiLFwi5om/5LmFICgxMjE54oCTMTIyMilcIixcIui0nuW6lCAoMTIyMuKAkzEyMjQpXCIsXCLlhYPku4EgKDEyMjTigJMxMjI1KVwiLFwi5ZiJ56aEICgxMjI14oCTMTIyNylcIixcIuWuiei0niAoMTIyN+KAkzEyMjkpXCIsXCLlrr3llpwgKDEyMjnigJMxMjMyKVwiLFwi6LSe5rC4ICgxMjMy4oCTMTIzMylcIixcIuWkqeemjyAoMTIzM+KAkzEyMzQpXCIsXCLmlofljoYgKDEyMzTigJMxMjM1KVwiLFwi5ZiJ56WvICgxMjM14oCTMTIzOClcIixcIuWOhuS7gSAoMTIzOOKAkzEyMzkpXCIsXCLlu7blupQgKDEyMznigJMxMjQwKVwiLFwi5LuB5rK7ICgxMjQw4oCTMTI0MylcIixcIuWuveWFgyAoMTI0M+KAkzEyNDcpXCIsXCLlrp3msrsgKDEyNDfigJMxMjQ5KVwiLFwi5bu66ZW/ICgxMjQ54oCTMTI1NilcIixcIuW6t+WFgyAoMTI1NuKAkzEyNTcpXCIsXCLmraPlmIkgKDEyNTfigJMxMjU5KVwiLFwi5q2j5YWDICgxMjU54oCTMTI2MClcIixcIuaWh+W6lCAoMTI2MOKAkzEyNjEpXCIsXCLlvJjplb8gKDEyNjHigJMxMjY0KVwiLFwi5paH5rC4ICgxMjY04oCTMTI3NSlcIixcIuW7uuayuyAoMTI3NeKAkzEyNzgpXCIsXCLlvJjlrokgKDEyNzjigJMxMjg4KVwiLFwi5q2j5bqUICgxMjg44oCTMTI5MylcIixcIuawuOS7gSAoMTI5M+KAkzEyOTkpXCIsXCLmraPlrokgKDEyOTnigJMxMzAyKVwiLFwi5bmy5YWDICgxMzAy4oCTMTMwMylcIixcIuWYieWFgyAoMTMwM+KAkzEzMDYpXCIsXCLlvrfmsrsgKDEzMDbigJMxMzA4KVwiLFwi5bu25bqGICgxMzA44oCTMTMxMSlcIixcIuW6lOmVvyAoMTMxMeKAkzEzMTIpXCIsXCLmraPlkowgKDEzMTLigJMxMzE3KVwiLFwi5paH5L+dICgxMzE34oCTMTMxOSlcIixcIuWFg+W6lCAoMTMxOeKAkzEzMjEpXCIsXCLlhYPkuqggKDEzMjHigJMxMzI0KVwiLFwi5q2j5LitICgxMzI04oCTMTMyNilcIixcIuWYieWOhiAoMTMyNuKAkzEzMjkpXCIsXCLlhYPlvrcgKDEzMjnigJMxMzMxKVwiLFwi5YWD5byYICgxMzMx4oCTMTMzNClcIixcIuW7uuatpiAoMTMzNOKAkzEzMzYpXCIsXCLlu7blhYMgKDEzMzbigJMxMzQwKVwiLFwi5YW05Zu9ICgxMzQw4oCTMTM0NilcIixcIuato+W5syAoMTM0NuKAkzEzNzApXCIsXCLlu7rlvrcgKDEzNzDigJMxMzcyKVwiLFwi5paH5LitICgxMzcy4oCTMTM3NSlcIixcIuWkqeaOiCAoMTM3NeKAkzEzNzkpXCIsXCLlurfljoYgKDEzNznigJMxMzgxKVwiLFwi5byY5ZKMICgxMzgx4oCTMTM4NClcIixcIuWFg+S4rSAoMTM4NOKAkzEzOTIpXCIsXCLoh7PlvrcgKDEzODTigJMxMzg3KVwiLFwi5ZiJ5bqGICgxMzg34oCTMTM4OSlcIixcIuW6t+W6lCAoMTM4OeKAkzEzOTApXCIsXCLmmI7lvrcgKDEzOTDigJMxMzk0KVwiLFwi5bqU5rC4ICgxMzk04oCTMTQyOClcIixcIuato+mVvyAoMTQyOOKAkzE0MjkpXCIsXCLmsLjkuqsgKDE0MjnigJMxNDQxKVwiLFwi5ZiJ5ZCJICgxNDQx4oCTMTQ0NClcIixcIuaWh+WuiSAoMTQ0NOKAkzE0NDkpXCIsXCLlrp3lvrcgKDE0NDnigJMxNDUyKVwiLFwi5Lqr5b63ICgxNDUy4oCTMTQ1NSlcIixcIuW6t+atoyAoMTQ1NeKAkzE0NTcpXCIsXCLplb/npoQgKDE0NTfigJMxNDYwKVwiLFwi5a695q2jICgxNDYw4oCTMTQ2NilcIixcIuaWh+atoyAoMTQ2NuKAkzE0NjcpXCIsXCLlupTku4EgKDE0NjfigJMxNDY5KVwiLFwi5paH5piOICgxNDY54oCTMTQ4NylcIixcIumVv+S6qyAoMTQ4N+KAkzE0ODkpXCIsXCLlu7blvrcgKDE0ODnigJMxNDkyKVwiLFwi5piO5bqUICgxNDky4oCTMTUwMSlcIixcIuaWh+m+nyAoMTUwMeKAkzE1MDQpXCIsXCLmsLjmraMgKDE1MDTigJMxNTIxKVwiLFwi5aSn5rC4ICgxNTIx4oCTMTUyOClcIixcIuS6q+emhCAoMTUyOOKAkzE1MzIpXCIsXCLlpKnmlocgKDE1MzLigJMxNTU1KVwiLFwi5byY5rK7ICgxNTU14oCTMTU1OClcIixcIuawuOemhCAoMTU1OOKAkzE1NzApXCIsXCLlhYPpvp8gKDE1NzDigJMxNTczKVwiLFwi5aSp5q2jICgxNTcz4oCTMTU5MilcIixcIuaWh+emhCAoMTU5MuKAkzE1OTYpXCIsXCLluobplb8gKDE1OTbigJMxNjE1KVwiLFwi5YWD5ZKMICgxNjE14oCTMTYyNClcIixcIuWuveawuCAoMTYyNOKAkzE2NDQpXCIsXCLmraPkv50gKDE2NDTigJMxNjQ4KVwiLFwi5bqG5a6JICgxNjQ44oCTMTY1MilcIixcIuaJv+W6lCAoMTY1MuKAkzE2NTUpXCIsXCLmmI7ljoYgKDE2NTXigJMxNjU4KVwiLFwi5LiH5rK7ICgxNjU44oCTMTY2MSlcIixcIuWuveaWhyAoMTY2MeKAkzE2NzMpXCIsXCLlu7blrp0gKDE2NzPigJMxNjgxKVwiLFwi5aSp5ZKMICgxNjgx4oCTMTY4NClcIixcIui0nuS6qyAoMTY4NOKAkzE2ODgpXCIsXCLlhYPnpoQgKDE2ODjigJMxNzA0KVwiLFwi5a6d5rC4ICgxNzA04oCTMTcxMSlcIixcIuato+W+tyAoMTcxMeKAkzE3MTYpXCIsXCLkuqvkv50gKDE3MTbigJMxNzM2KVwiLFwi5YWD5paHICgxNzM24oCTMTc0MSlcIixcIuWuveS/nSAoMTc0MeKAkzE3NDQpXCIsXCLlu7bkuqsgKDE3NDTigJMxNzQ4KVwiLFwi5a695bu2ICgxNzQ44oCTMTc1MSlcIixcIuWuneWOhiAoMTc1MeKAkzE3NjQpXCIsXCLmmI7lkowgKDE3NjTigJMxNzcyKVwiLFwi5a6J5rC4ICgxNzcy4oCTMTc4MSlcIixcIuWkqeaYjiAoMTc4MeKAkzE3ODkpXCIsXCLlrr3mlL8gKDE3ODnigJMxODAxKVwiLFwi5Lqr5ZKMICgxODAx4oCTMTgwNClcIixcIuaWh+WMliAoMTgwNOKAkzE4MTgpXCIsXCLmlofmlL8gKDE4MTjigJMxODMwKVwiLFwi5aSp5L+dICgxODMw4oCTMTg0NClcIixcIuW8mOWMliAoMTg0NOKAkzE4NDgpXCIsXCLlmInmsLggKDE4NDjigJMxODU0KVwiLFwi5a6J5pS/ICgxODU04oCTMTg2MClcIixcIuS4h+W7tiAoMTg2MOKAkzE4NjEpXCIsXCLmlofkuYUgKDE4NjHigJMxODY0KVwiLFwi5YWD5rK7ICgxODY04oCTMTg2NSlcIixcIuW6huW6lCAoMTg2NeKAkzE4NjgpXCIsXCLmmI7msrtcIixcIuWkp+ato1wiLFwi5pit5ZKMXCIsXCLlubPmiJBcIl19LGRheVBlcmlvZHM6e2FtOlwi5LiK5Y2IXCIscG06XCLkuIvljYhcIn19LHBlcnNpYW46e21vbnRoczp7bmFycm93OltcIjFcIixcIjJcIixcIjNcIixcIjRcIixcIjVcIixcIjZcIixcIjdcIixcIjhcIixcIjlcIixcIjEwXCIsXCIxMVwiLFwiMTJcIl0sc2hvcnQ6W1wiMeaciFwiLFwiMuaciFwiLFwiM+aciFwiLFwiNOaciFwiLFwiNeaciFwiLFwiNuaciFwiLFwiN+aciFwiLFwiOOaciFwiLFwiOeaciFwiLFwiMTDmnIhcIixcIjEx5pyIXCIsXCIxMuaciFwiXSxsb25nOltcIuS4gOaciFwiLFwi5LqM5pyIXCIsXCLkuInmnIhcIixcIuWbm+aciFwiLFwi5LqU5pyIXCIsXCLlha3mnIhcIixcIuS4g+aciFwiLFwi5YWr5pyIXCIsXCLkuZ3mnIhcIixcIuWNgeaciFwiLFwi5Y2B5LiA5pyIXCIsXCLljYHkuozmnIhcIl19LGRheXM6e25hcnJvdzpbXCLml6VcIixcIuS4gFwiLFwi5LqMXCIsXCLkuIlcIixcIuWbm1wiLFwi5LqUXCIsXCLlha1cIl0sc2hvcnQ6W1wi5ZGo5pelXCIsXCLlkajkuIBcIixcIuWRqOS6jFwiLFwi5ZGo5LiJXCIsXCLlkajlm5tcIixcIuWRqOS6lFwiLFwi5ZGo5YWtXCJdLGxvbmc6W1wi5pif5pyf5pelXCIsXCLmmJ/mnJ/kuIBcIixcIuaYn+acn+S6jFwiLFwi5pif5pyf5LiJXCIsXCLmmJ/mnJ/lm5tcIixcIuaYn+acn+S6lFwiLFwi5pif5pyf5YWtXCJdfSxlcmFzOntuYXJyb3c6W1wi5rOi5pav5Y6GXCJdLHNob3J0OltcIuazouaWr+WOhlwiXSxsb25nOltcIuazouaWr+WOhlwiXX0sZGF5UGVyaW9kczp7YW06XCLkuIrljYhcIixwbTpcIuS4i+WNiFwifX0scm9jOnttb250aHM6e25hcnJvdzpbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCIsXCI1XCIsXCI2XCIsXCI3XCIsXCI4XCIsXCI5XCIsXCIxMFwiLFwiMTFcIixcIjEyXCJdLHNob3J0OltcIjHmnIhcIixcIjLmnIhcIixcIjPmnIhcIixcIjTmnIhcIixcIjXmnIhcIixcIjbmnIhcIixcIjfmnIhcIixcIjjmnIhcIixcIjnmnIhcIixcIjEw5pyIXCIsXCIxMeaciFwiLFwiMTLmnIhcIl0sbG9uZzpbXCLkuIDmnIhcIixcIuS6jOaciFwiLFwi5LiJ5pyIXCIsXCLlm5vmnIhcIixcIuS6lOaciFwiLFwi5YWt5pyIXCIsXCLkuIPmnIhcIixcIuWFq+aciFwiLFwi5Lmd5pyIXCIsXCLljYHmnIhcIixcIuWNgeS4gOaciFwiLFwi5Y2B5LqM5pyIXCJdfSxkYXlzOntuYXJyb3c6W1wi5pelXCIsXCLkuIBcIixcIuS6jFwiLFwi5LiJXCIsXCLlm5tcIixcIuS6lFwiLFwi5YWtXCJdLHNob3J0OltcIuWRqOaXpVwiLFwi5ZGo5LiAXCIsXCLlkajkuoxcIixcIuWRqOS4iVwiLFwi5ZGo5ZubXCIsXCLlkajkupRcIixcIuWRqOWFrVwiXSxsb25nOltcIuaYn+acn+aXpVwiLFwi5pif5pyf5LiAXCIsXCLmmJ/mnJ/kuoxcIixcIuaYn+acn+S4iVwiLFwi5pif5pyf5ZubXCIsXCLmmJ/mnJ/kupRcIixcIuaYn+acn+WFrVwiXX0sZXJhczp7bmFycm93OltcIuawkeWbveWJjVwiLFwi5rCR5Zu9XCJdLHNob3J0OltcIuawkeWbveWJjVwiLFwi5rCR5Zu9XCJdLGxvbmc6W1wi5rCR5Zu95YmNXCIsXCLmsJHlm71cIl19LGRheVBlcmlvZHM6e2FtOlwi5LiK5Y2IXCIscG06XCLkuIvljYhcIn19fX0sbnVtYmVyOntudTpbXCJsYXRuXCJdLHBhdHRlcm5zOntkZWNpbWFsOntwb3NpdGl2ZVBhdHRlcm46XCJ7bnVtYmVyfVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn1cIn0sY3VycmVuY3k6e3Bvc2l0aXZlUGF0dGVybjpcIntjdXJyZW5jeX17bnVtYmVyfVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e2N1cnJlbmN5fXtudW1iZXJ9XCJ9LHBlcmNlbnQ6e3Bvc2l0aXZlUGF0dGVybjpcIntudW1iZXJ9e3BlcmNlbnRTaWdufVwiLG5lZ2F0aXZlUGF0dGVybjpcInttaW51c1NpZ259e251bWJlcn17cGVyY2VudFNpZ259XCJ9fSxzeW1ib2xzOntoYW5pZGVjOntkZWNpbWFsOlwiLlwiLGdyb3VwOlwiLFwiLG5hbjpcIk5hTlwiLHBsdXNTaWduOlwiK1wiLG1pbnVzU2lnbjpcIi1cIixwZXJjZW50U2lnbjpcIiVcIixpbmZpbml0eTpcIuKInlwifSxsYXRuOntkZWNpbWFsOlwiLlwiLGdyb3VwOlwiLFwiLG5hbjpcIk5hTlwiLHBsdXNTaWduOlwiK1wiLG1pbnVzU2lnbjpcIi1cIixwZXJjZW50U2lnbjpcIiVcIixpbmZpbml0eTpcIuKInlwifX0sY3VycmVuY2llczp7QVVEOlwiQVUkXCIsQlJMOlwiUiRcIixDQUQ6XCJDQSRcIixDTlk6XCLvv6VcIixFVVI6XCLigqxcIixHQlA6XCLCo1wiLEhLRDpcIkhLJFwiLElMUjpcIklMU1wiLElMUzpcIuKCqlwiLElOUjpcIuKCuVwiLEpQWTpcIkpQwqVcIixLUlc6XCLvv6ZcIixNWE46XCJNWCRcIixOWkQ6XCJOWiRcIixUV0Q6XCJOVCRcIixVU0Q6XCJVUyRcIixWTkQ6XCLigqtcIixYQUY6XCJGQ0ZBXCIsWENEOlwiRUMkXCIsWE9GOlwiQ0ZBXCIsWFBGOlwiQ0ZQRlwifX19KTtcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9pbnRsL2xvY2FsZS1kYXRhL2pzb25wL3poLmpzXG4vLyBtb2R1bGUgaWQgPSAyMzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fSElTVE9SWV9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fSElTVE9SWV9fXCJcbi8vIG1vZHVsZSBpZCA9IDIzMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IHsgY29tYmluZVJlZHVjZXJzIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHN0b3JhZ2UgZnJvbSAnLi9zdG9yYWdlJztcblxuZXhwb3J0IGRlZmF1bHQgY29tYmluZVJlZHVjZXJzKHtcbiAgc3RvcmFnZSxcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L3JlZHVjZXJzL2hvc3RzL2luZGV4LmpzIiwiaW1wb3J0IHsgY29tYmluZVJlZHVjZXJzIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHZtd2FyZSBmcm9tICcuL3Ztd2FyZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbWJpbmVSZWR1Y2Vycyh7XG4gIHZtd2FyZSxcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L3JlZHVjZXJzL2hvc3RzL3N0b3JhZ2UvaW5kZXguanMiLCIvKiBlc2xpbnQgbm8tY2FzZS1kZWNsYXJhdGlvbnM6MCAqL1xuLyogZXNsaW50IG5vLWNhc2UtZGVjbGFyYXRpb25zOjAgKi9cbmltcG9ydCB7IGRpZmZlcmVuY2UsIGhlYWQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEltbXV0YWJsZSBmcm9tICdzZWFtbGVzcy1pbW11dGFibGUnO1xuaW1wb3J0IHV1aWRWMSBmcm9tICd1dWlkL3YxJztcblxuaW1wb3J0IHtcbiAgVk1XQVJFX0NMVVNURVJfQ0hBTkdFLFxuICBTVE9SQUdFX1ZNV0FSRV9BRERfQ09OVFJPTExFUixcbiAgU1RPUkFHRV9WTVdBUkVfQUREX0RJU0ssXG4gIFNUT1JBR0VfVk1XQVJFX1JFTU9WRV9ESVNLLFxuICBTVE9SQUdFX1ZNV0FSRV9SRU1PVkVfQ09OVFJPTExFUixcbiAgU1RPUkFHRV9WTVdBUkVfVVBEQVRFX0NPTlRST0xMRVIsXG4gIFNUT1JBR0VfVk1XQVJFX1VQREFURV9ESVNLLFxuICBTVE9SQUdFX1ZNV0FSRV9JTklULFxuICBTVE9SQUdFX1ZNV0FSRV9EQVRBU1RPUkVTX1JFUVVFU1QsXG4gIFNUT1JBR0VfVk1XQVJFX0RBVEFTVE9SRVNfU1VDQ0VTUyxcbiAgU1RPUkFHRV9WTVdBUkVfREFUQVNUT1JFU19GQUlMVVJFLFxuICBTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EU19SRVFVRVNULFxuICBTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EU19TVUNDRVNTLFxuICBTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EU19GQUlMVVJFLFxufSBmcm9tICcuLi8uLi8uLi9jb25zdHMnO1xuXG5jb25zdCBpbml0aWFsU3RhdGUgPSBJbW11dGFibGUoe1xuICBjb250cm9sbGVyczogW10sXG4gIHZvbHVtZXM6IFtdLFxufSk7XG5cbmNvbnN0IGF2YWlsYWJsZUNvbnRyb2xsZXJLZXlzID0gWzEwMDAsIDEwMDEsIDEwMDIsIDEwMDMsIDEwMDRdO1xuXG5jb25zdCBnZXRBdmFpbGFibGVLZXkgPSBjb250cm9sbGVycyA9PlxuICBoZWFkKFxuICAgIGRpZmZlcmVuY2UoXG4gICAgICBhdmFpbGFibGVDb250cm9sbGVyS2V5cyxcbiAgICAgIGNvbnRyb2xsZXJzLm1hcChjID0+IGMua2V5KVxuICAgIClcbiAgKTtcblxuZXhwb3J0IGRlZmF1bHQgKHN0YXRlID0gaW5pdGlhbFN0YXRlLCB7IHR5cGUsIHBheWxvYWQsIHJlc3BvbnNlIH0pID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBWTVdBUkVfQ0xVU1RFUl9DSEFOR0U6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdjbHVzdGVyJywgcGF5bG9hZC5jbHVzdGVyKTtcbiAgICBjYXNlIFNUT1JBR0VfVk1XQVJFX0FERF9DT05UUk9MTEVSOlxuICAgICAgY29uc3QgYXZhaWxhYmxlS2V5ID0gZ2V0QXZhaWxhYmxlS2V5KHN0YXRlLmNvbnRyb2xsZXJzKTtcblxuICAgICAgLy8gY29udHJvbGxlciBrZXkgaXMgYXNzaWduZWQgaGVyZSB1c2luZyBnZXRBdmFpbGFibGVLZXlcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAudXBkYXRlKCdjb250cm9sbGVycycsIGN0cmxzID0+XG4gICAgICAgICAgY3RybHMuY29uY2F0KFxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgcGF5bG9hZC5jb250cm9sbGVyLCB7IGtleTogYXZhaWxhYmxlS2V5IH0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC51cGRhdGUoJ3ZvbHVtZXMnLCB2b2x1bWVzID0+XG4gICAgICAgICAgdm9sdW1lcy5jb25jYXQoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgcGF5bG9hZC52b2x1bWUsXG4gICAgICAgICAgICAgIHsgY29udHJvbGxlcktleTogYXZhaWxhYmxlS2V5IH0sXG4gICAgICAgICAgICAgIHsga2V5OiB1dWlkVjEoKSB9XG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgIGNhc2UgU1RPUkFHRV9WTVdBUkVfQUREX0RJU0s6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KFxuICAgICAgICAndm9sdW1lcycsXG4gICAgICAgIHN0YXRlLnZvbHVtZXMuY29uY2F0KHtcbiAgICAgICAgICAuLi5wYXlsb2FkLmRhdGEsXG4gICAgICAgICAga2V5OiB1dWlkVjEoKSxcbiAgICAgICAgICBjb250cm9sbGVyS2V5OiBwYXlsb2FkLmNvbnRyb2xsZXJLZXksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIGNhc2UgU1RPUkFHRV9WTVdBUkVfUkVNT1ZFX0NPTlRST0xMRVI6XG4gICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgLnVwZGF0ZSgnY29udHJvbGxlcnMnLCBjdHJscyA9PlxuICAgICAgICAgIGN0cmxzLmZpbHRlcihjdHJsID0+IGN0cmwua2V5ICE9PSBwYXlsb2FkLmNvbnRyb2xsZXJLZXkpXG4gICAgICAgIClcbiAgICAgICAgLnVwZGF0ZSgndm9sdW1lcycsIHZvbHVtZXMgPT5cbiAgICAgICAgICB2b2x1bWVzLmZpbHRlcihcbiAgICAgICAgICAgIHZvbHVtZSA9PiB2b2x1bWUuY29udHJvbGxlcktleSAhPT0gcGF5bG9hZC5jb250cm9sbGVyS2V5XG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgIGNhc2UgU1RPUkFHRV9WTVdBUkVfVVBEQVRFX0NPTlRST0xMRVI6XG4gICAgICByZXR1cm4gc3RhdGUudXBkYXRlSW4oWydjb250cm9sbGVycycsIHBheWxvYWQuaWR4XSwgY29udHJvbGxlciA9PlxuICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBjb250cm9sbGVyLCBwYXlsb2FkLm5ld1ZhbHVlcylcbiAgICAgICk7XG4gICAgY2FzZSBTVE9SQUdFX1ZNV0FSRV9VUERBVEVfRElTSzpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoXG4gICAgICAgICd2b2x1bWVzJyxcbiAgICAgICAgc3RhdGUudm9sdW1lcy5tYXAodiA9PlxuICAgICAgICAgIHYua2V5ID09PSBwYXlsb2FkLmtleSA/IE9iamVjdC5hc3NpZ24oe30sIHYsIHBheWxvYWQubmV3VmFsdWVzKSA6IHZcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICBjYXNlIFNUT1JBR0VfVk1XQVJFX1JFTU9WRV9ESVNLOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldChcbiAgICAgICAgJ3ZvbHVtZXMnLFxuICAgICAgICBzdGF0ZS52b2x1bWVzLmZpbHRlcih2ID0+IHYua2V5ICE9PSBwYXlsb2FkLmtleSlcbiAgICAgICk7XG4gICAgY2FzZSBTVE9SQUdFX1ZNV0FSRV9JTklUOlxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGNvbnRyb2xsZXJzOiBwYXlsb2FkLmNvbnRyb2xsZXJzLFxuICAgICAgICBwYXJhbXNTY29wZTogcGF5bG9hZC5jb25maWcucGFyYW1zU2NvcGUsXG4gICAgICAgIGRhdGFzdG9yZXM6IFtdLFxuICAgICAgICBkYXRhc3RvcmVzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIGRhdGFzdG9yZXNFcnJvcjogdW5kZWZpbmVkLFxuICAgICAgICBzdG9yYWdlUG9kczogW10sXG4gICAgICAgIHN0b3JhZ2VQb2RzTG9hZGluZzogZmFsc2UsXG4gICAgICAgIHN0b3JhZ2VQb2RzRXJyb3I6IHVuZGVmaW5lZCxcbiAgICAgICAgdm9sdW1lczogcGF5bG9hZC52b2x1bWVzLm1hcCh2b2x1bWUgPT4gKHsgLi4udm9sdW1lLCBrZXk6IHV1aWRWMSgpIH0pKSxcbiAgICAgICAgY2x1c3RlcjogcGF5bG9hZC5jbHVzdGVyLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBpbml0aWFsU3RhdGVcbiAgICAgICAgLnNldCgnY29uZmlnJywgcGF5bG9hZC5jb25maWcpXG4gICAgICAgIC5zZXRJbihcbiAgICAgICAgICBbJ2NvbmZpZycsICdhZGRDb250cm9sbGVyRW5hYmxlZCddLFxuICAgICAgICAgICEhZ2V0QXZhaWxhYmxlS2V5KHBheWxvYWQuY29udHJvbGxlcnMpXG4gICAgICAgIClcbiAgICAgICAgLm1lcmdlKG5ld1N0YXRlKTtcbiAgICBjYXNlIFNUT1JBR0VfVk1XQVJFX0RBVEFTVE9SRVNfUkVRVUVTVDpcbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZSh7XG4gICAgICAgIGRhdGFzdG9yZXNFcnJvcjogdW5kZWZpbmVkLFxuICAgICAgICBkYXRhc3RvcmVzOiBbXSxcbiAgICAgICAgZGF0YXN0b3Jlc0xvYWRpbmc6IHRydWUsXG4gICAgICB9KTtcbiAgICBjYXNlIFNUT1JBR0VfVk1XQVJFX0RBVEFTVE9SRVNfU1VDQ0VTUzpcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAuc2V0KCdkYXRhc3RvcmVzJywgcmVzcG9uc2UucmVzdWx0cylcbiAgICAgICAgLnNldCgnZGF0YXN0b3Jlc0xvYWRpbmcnLCBmYWxzZSk7XG4gICAgY2FzZSBTVE9SQUdFX1ZNV0FSRV9EQVRBU1RPUkVTX0ZBSUxVUkU6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdkYXRhc3RvcmVzRXJyb3InLCByZXNwb25zZS5tZXNzYWdlKTtcbiAgICBjYXNlIFNUT1JBR0VfVk1XQVJFX1NUT1JBR0VQT0RTX1JFUVVFU1Q6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgICAgICBzdG9yYWdlUG9kc0Vycm9yOiB1bmRlZmluZWQsXG4gICAgICAgIHN0b3JhZ2VQb2RzOiBbXSxcbiAgICAgICAgc3RvcmFnZVBvZHNMb2FkaW5nOiB0cnVlLFxuICAgICAgfSk7XG4gICAgY2FzZSBTVE9SQUdFX1ZNV0FSRV9TVE9SQUdFUE9EU19TVUNDRVNTOlxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgc3RvcmFnZVBvZHM6IHJlc3BvbnNlLnJlc3VsdHMsXG4gICAgICAgIHN0b3JhZ2VQb2RzTG9hZGluZzogZmFsc2UsXG4gICAgICB9KTtcbiAgICBjYXNlIFNUT1JBR0VfVk1XQVJFX1NUT1JBR0VQT0RTX0ZBSUxVUkU6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdzdG9yYWdlUG9kc0Vycm9yJywgcmVzcG9uc2UubWVzc2FnZSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9yZWR1Y2Vycy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS5qcyIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcblxuaW1wb3J0IHtcbiAgTk9USUZJQ0FUSU9OU19UT0dHTEVfRFJBV0VSLFxuICBOT1RJRklDQVRJT05TX1NFVF9FWFBBTkRFRF9HUk9VUCxcbiAgTk9USUZJQ0FUSU9OU19NQVJLX0FTX0NMRUFSLFxuICBOT1RJRklDQVRJT05TX01BUktfQVNfUkVBRCxcbiAgTk9USUZJQ0FUSU9OU19NQVJLX0dST1VQX0FTX1JFQUQsXG4gIE5PVElGSUNBVElPTlNfTUFSS19HUk9VUF9BU19DTEVBUkVELFxuICBOT1RJRklDQVRJT05TLFxufSBmcm9tICcuLi8uLi9jb25zdHMnO1xuaW1wb3J0ICogYXMgc2Vzc2lvblN0b3JhZ2UgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkRyYXdlclNlc3Npb25TdG9yYWdlJztcbmltcG9ydCB7IGFjdGlvblR5cGVHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9BUEknO1xuXG5jb25zdCBpbml0aWFsU3RhdGUgPSBJbW11dGFibGUoe1xuICBpc0RyYXdlck9wZW46IHNlc3Npb25TdG9yYWdlLmdldElzT3BlbmVkKCksXG4gIGV4cGFuZGVkR3JvdXA6IHNlc3Npb25TdG9yYWdlLmdldEV4cGFuZGVkR3JvdXAoKSxcbiAgaGFzVW5yZWFkTWVzc2FnZXM6IHNlc3Npb25TdG9yYWdlLmdldEhhc1VucmVhZE1lc3NhZ2VzKCkgfHwgZmFsc2UsXG59KTtcblxuY29uc3QgaGFzVW5yZWFkTWVzc2FnZXMgPSBub3RpZmljYXRpb25zID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LnZhbHVlcyhub3RpZmljYXRpb25zKS5zb21lKG4gPT4gIW4uc2Vlbik7XG5cbiAgLy8gc3RvcmUgaW5kaWNhdG9yIGluIHNlc3Npb25TdG9yYWdlLlxuICAvLyBUT0RPOiBjb25zaWRlciBtb3ZpbmcgdGhpcyBlaXRoZXIgdG8gYSByZXNlbGVjdFxuICAvLyAsc3RvcmUuc3Vic2NyaWJlIE9SIHRvIGEgZGlzdGludCByZWR1eCBhY3Rpb25cbiAgLy8gbGVhdmluZyBpdCBoZXJlIGFzIGl0IG1ha2VzIHRoZSBtb3N0IHNlbnNlIHRvIG1lLlxuICBzZXNzaW9uU3RvcmFnZS5zZXRIYXNVbnJlYWRNZXNzYWdlcyhyZXN1bHQpO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgeyBTVUNDRVNTLCBGQUlMVVJFIH0gPSBhY3Rpb25UeXBlR2VuZXJhdG9yKE5PVElGSUNBVElPTlMpO1xuXG5leHBvcnQgZGVmYXVsdCAoc3RhdGUgPSBpbml0aWFsU3RhdGUsIHsgdHlwZSwgcGF5bG9hZCwgcmVzcG9uc2UgfSkgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFNVQ0NFU1M6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgICAgICBub3RpZmljYXRpb25zOiByZXNwb25zZS5ub3RpZmljYXRpb25zLFxuICAgICAgICBoYXNVbnJlYWRNZXNzYWdlczogaGFzVW5yZWFkTWVzc2FnZXMocmVzcG9uc2Uubm90aWZpY2F0aW9ucyksXG4gICAgICB9KTtcbiAgICBjYXNlIEZBSUxVUkU6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2Vycm9yJywgcmVzcG9uc2UpO1xuICAgIH1cbiAgICBjYXNlIE5PVElGSUNBVElPTlNfVE9HR0xFX0RSQVdFUjpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2lzRHJhd2VyT3BlbicsIHBheWxvYWQudmFsdWUpO1xuICAgIGNhc2UgTk9USUZJQ0FUSU9OU19TRVRfRVhQQU5ERURfR1JPVVA6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdleHBhbmRlZEdyb3VwJywgcGF5bG9hZC5ncm91cCk7XG4gICAgY2FzZSBOT1RJRklDQVRJT05TX01BUktfQVNfUkVBRDoge1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9ucyA9IHN0YXRlLm5vdGlmaWNhdGlvbnMubWFwKG4gPT5cbiAgICAgICAgbi5pZCA9PT0gcGF5bG9hZC5pZCA/IHsgLi4ubiwgc2VlbjogdHJ1ZSB9IDogblxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgbm90aWZpY2F0aW9ucyxcbiAgICAgICAgaGFzVW5yZWFkTWVzc2FnZXM6IGhhc1VucmVhZE1lc3NhZ2VzKG5vdGlmaWNhdGlvbnMpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNhc2UgTk9USUZJQ0FUSU9OU19NQVJLX0FTX0NMRUFSOiB7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25zID0gc3RhdGUubm90aWZpY2F0aW9ucy5maWx0ZXIoXG4gICAgICAgIG4gPT4gbi5pZCAhPT0gcGF5bG9hZC5pZFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgbm90aWZpY2F0aW9ucyxcbiAgICAgICAgaGFzVW5yZWFkTWVzc2FnZXM6IGhhc1VucmVhZE1lc3NhZ2VzKG5vdGlmaWNhdGlvbnMpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNhc2UgTk9USUZJQ0FUSU9OU19NQVJLX0dST1VQX0FTX1JFQUQ6IHtcbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbnMgPSBzdGF0ZS5ub3RpZmljYXRpb25zLm1hcChuID0+XG4gICAgICAgIG4uZ3JvdXAgPT09IHBheWxvYWQuZ3JvdXAgPyB7IC4uLm4sIHNlZW46IHRydWUgfSA6IG5cbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZSh7XG4gICAgICAgIG5vdGlmaWNhdGlvbnMsXG4gICAgICAgIGhhc1VucmVhZE1lc3NhZ2VzOiBoYXNVbnJlYWRNZXNzYWdlcyhub3RpZmljYXRpb25zKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjYXNlIE5PVElGSUNBVElPTlNfTUFSS19HUk9VUF9BU19DTEVBUkVEOiB7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25zID0gc3RhdGUubm90aWZpY2F0aW9ucy5maWx0ZXIoXG4gICAgICAgIG4gPT4gbi5ncm91cCAhPT0gcGF5bG9hZC5ncm91cFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgbm90aWZpY2F0aW9ucyxcbiAgICAgICAgaGFzVW5yZWFkTWVzc2FnZXM6IGhhc1VucmVhZE1lc3NhZ2VzKG5vdGlmaWNhdGlvbnMpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvcmVkdWNlcnMvbm90aWZpY2F0aW9ucy9pbmRleC5qcyIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcbmltcG9ydCB7IGFjdGlvblR5cGVHZW5lcmF0b3IgfSBmcm9tICcuL0FQSUFjdGlvblR5cGVHZW5lcmF0b3InO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuY29uc3QgaW5pdGlhbFN0YXRlID0gSW1tdXRhYmxlKHt9KTtcblxuY29uc3QgYXBpUmVkdWNlciA9IChzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgeyB0eXBlLCBrZXksIHBheWxvYWQsIHJlc3BvbnNlIH0pID0+IHtcbiAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gc3RhdGU7XG5cbiAgY29uc3QgeyBSRVFVRVNULCBTVUNDRVNTLCBGQUlMVVJFLCBVUERBVEUgfSA9IGFjdGlvblR5cGVHZW5lcmF0b3Ioa2V5KTtcbiAgY29uc3QgeyBQRU5ESU5HLCBSRVNPTFZFRCwgRVJST1IgfSA9IFNUQVRVUztcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFJFUVVFU1Q6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgICAgICBba2V5XToge1xuICAgICAgICAgIHJlc3BvbnNlOiBudWxsLFxuICAgICAgICAgIC4uLnN0YXRlW2tleV0sXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICBzdGF0dXM6IFBFTkRJTkcsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICBjYXNlIFNVQ0NFU1M6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgICAgICBba2V5XToge1xuICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgc3RhdHVzOiBSRVNPTFZFRCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNhc2UgRkFJTFVSRTpcbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZSh7XG4gICAgICAgIFtrZXldOiB7XG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICBzdGF0dXM6IEVSUk9SLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgY2FzZSBVUERBVEU6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW2tleSwgJ3Jlc3BvbnNlJ10sIHBheWxvYWQpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGFwaVJlZHVjZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvQVBJL0FQSVJlZHVjZXIuanMiLCJpbXBvcnQgeyBhcGlSZXF1ZXN0IH0gZnJvbSAnLi9BUElSZXF1ZXN0JztcbmltcG9ydCB7IGlzQVBJQWN0aW9uIH0gZnJvbSAnLi9BUElIZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IEFQSU1pZGRsZXdhcmUgPSBzdG9yZSA9PiBuZXh0ID0+IGFjdGlvbiA9PiB7XG4gIGlmIChpc0FQSUFjdGlvbihhY3Rpb24pKSB7XG4gICAgYXBpUmVxdWVzdChhY3Rpb24sIHN0b3JlKTtcbiAgfVxuICByZXR1cm4gbmV4dChhY3Rpb24pO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvQVBJTWlkZGxld2FyZS5qcyIsIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IGdldEFwaVJlc3BvbnNlIH0gZnJvbSAnLi9BUElIZWxwZXJzJztcbmltcG9ydCB7IGFjdGlvblR5cGVHZW5lcmF0b3IgfSBmcm9tICcuL0FQSUFjdGlvblR5cGVHZW5lcmF0b3InO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7IHN0b3BJbnRlcnZhbCB9IGZyb20gJy4uL21pZGRsZXdhcmVzL0ludGVydmFsTWlkZGxld2FyZSc7XG5pbXBvcnQgeyBzZWxlY3REb2VzSW50ZXJ2YWxFeGlzdCB9IGZyb20gJy4uL21pZGRsZXdhcmVzL0ludGVydmFsTWlkZGxld2FyZS9JbnRlcnZhbFNlbGVjdG9ycyc7XG5pbXBvcnQgeyBzZWxlY3RBUElSZXNwb25zZSB9IGZyb20gJy4vQVBJU2VsZWN0b3JzJztcbmltcG9ydCB7IGFkZFRvYXN0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Ub2FzdHNMaXN0JztcblxuZXhwb3J0IGNvbnN0IGFwaVJlcXVlc3QgPSBhc3luYyAoXG4gIHtcbiAgICB0eXBlLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGtleSxcbiAgICAgIHVybCxcbiAgICAgIGhlYWRlcnMgPSB7fSxcbiAgICAgIHBhcmFtcyA9IHt9LFxuICAgICAgYWN0aW9uVHlwZXMgPSB7fSxcbiAgICAgIGhhbmRsZUVycm9yID0gbm9vcCxcbiAgICAgIGhhbmRsZVN1Y2Nlc3MgPSBub29wLFxuICAgICAgc3VjY2Vzc1RvYXN0LFxuICAgICAgZXJyb3JUb2FzdCxcbiAgICAgIHBheWxvYWQgPSB7fSxcbiAgICAgIHVwZGF0ZURhdGEsXG4gICAgfSxcbiAgfSxcbiAgeyBkaXNwYXRjaCwgZ2V0U3RhdGUgfVxuKSA9PiB7XG4gIGNvbnN0IHByZXZTdGF0ZSA9IGdldFN0YXRlKCk7XG4gIGNvbnN0IHsgUkVRVUVTVCwgU1VDQ0VTUywgRkFJTFVSRSwgVVBEQVRFIH0gPSBhY3Rpb25UeXBlR2VuZXJhdG9yKFxuICAgIGtleSxcbiAgICBhY3Rpb25UeXBlc1xuICApO1xuICBjb25zdCBtb2RpZmllZFBheWxvYWQgPSB7IC4uLnBheWxvYWQsIHVybCB9O1xuICBjb25zdCBzdG9wSW50ZXJ2YWxDYWxsYmFjayA9IHNlbGVjdERvZXNJbnRlcnZhbEV4aXN0KHByZXZTdGF0ZSwga2V5KVxuICAgID8gKCkgPT4gZGlzcGF0Y2goc3RvcEludGVydmFsKGtleSkpXG4gICAgOiAoKSA9PiBjb25zb2xlLndhcm4oYFRoZXJlJ3Mgbm8gaW50ZXJ2YWwgQVBJIHJlcXVlc3QgZm9yIHRoZSBrZXk6ICR7a2V5fWApO1xuXG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBSRVFVRVNULFxuICAgIGtleSxcbiAgICBwYXlsb2FkOiBtb2RpZmllZFBheWxvYWQsXG4gIH0pO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRBcGlSZXNwb25zZSh7IHR5cGUsIHVybCwgaGVhZGVycywgcGFyYW1zIH0pO1xuXG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogU1VDQ0VTUyxcbiAgICAgIGtleSxcbiAgICAgIHBheWxvYWQ6IG1vZGlmaWVkUGF5bG9hZCxcbiAgICAgIHJlc3BvbnNlOiByZXNwb25zZS5kYXRhLFxuICAgIH0pO1xuXG4gICAgdXBkYXRlRGF0YSAmJlxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBVUERBVEUsXG4gICAgICAgIGtleSxcbiAgICAgICAgcGF5bG9hZDogdXBkYXRlRGF0YShzZWxlY3RBUElSZXNwb25zZShwcmV2U3RhdGUsIGtleSksIHJlc3BvbnNlLmRhdGEpLFxuICAgICAgfSk7XG5cbiAgICBzdWNjZXNzVG9hc3QgJiZcbiAgICAgIGRpc3BhdGNoKFxuICAgICAgICBhZGRUb2FzdCh7XG4gICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgIG1lc3NhZ2U6IHN1Y2Nlc3NUb2FzdChyZXNwb25zZSksXG4gICAgICAgICAga2V5OiBTVUNDRVNTLFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIGhhbmRsZVN1Y2Nlc3MocmVzcG9uc2UsIHN0b3BJbnRlcnZhbENhbGxiYWNrKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBGQUlMVVJFLFxuICAgICAga2V5LFxuICAgICAgcGF5bG9hZDogbW9kaWZpZWRQYXlsb2FkLFxuICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgIH0pO1xuXG4gICAgZXJyb3JUb2FzdCAmJlxuICAgICAgZGlzcGF0Y2goXG4gICAgICAgIGFkZFRvYXN0KHsgdHlwZTogJ2RhbmdlcicsIG1lc3NhZ2U6IGVycm9yVG9hc3QoZXJyb3IpLCBrZXk6IEZBSUxVUkUgfSlcbiAgICAgICk7XG5cbiAgICBoYW5kbGVFcnJvcihlcnJvciwgc3RvcEludGVydmFsQ2FsbGJhY2spO1xuICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L0FQSS9BUElSZXF1ZXN0LmpzIiwiaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTVE9QX0lOVEVSVkFMIH0gZnJvbSAnLi9JbnRlcnZhbENvbnN0YW50cyc7XG5pbXBvcnQgeyBzZWxlY3REb2VzSW50ZXJ2YWxFeGlzdCwgc2VsZWN0SW50ZXJ2YWxJRCB9IGZyb20gJy4vSW50ZXJ2YWxTZWxlY3RvcnMnO1xuaW1wb3J0IHtcbiAgcmVnaXN0ZXJlZEludGVydmFsRXhjZXB0aW9uLFxuICBnZXREZWZhdWx0SW50ZXJ2YWwsXG59IGZyb20gJy4vSW50ZXJ2YWxIZWxwZXJzJztcbmltcG9ydCB7IHN0YXJ0SW50ZXJ2YWwgYXMgc3RhcnRJbnRlcnZhbEFjdGlvbiB9IGZyb20gJy4vSW50ZXJ2YWxBY3Rpb25zJztcbmltcG9ydCB7IHdoZW5Eb2N1bWVudElzVmlzaWJsZSB9IGZyb20gJy4uL2NvbW1vbi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IEludGVydmFsTWlkZGxld2FyZSA9IHN0b3JlID0+IG5leHQgPT4gYWN0aW9uID0+IHtcbiAgY29uc3QgeyB0eXBlLCBrZXksIGludGVydmFsLCBwYXlsb2FkID0ge30gfSA9IGFjdGlvbjtcbiAgY29uc3QgaW50ZXJ2YWxLZXkgPSBrZXkgfHwgcGF5bG9hZC5rZXk7XG5cbiAgaWYgKGludGVydmFsKSB7XG4gICAgaWYgKHNlbGVjdERvZXNJbnRlcnZhbEV4aXN0KHN0b3JlLmdldFN0YXRlKCksIGludGVydmFsS2V5KSkge1xuICAgICAgdGhyb3cgcmVnaXN0ZXJlZEludGVydmFsRXhjZXB0aW9uKGludGVydmFsS2V5KTtcbiAgICB9XG5cbiAgICAvLyBUbyBhdm9pZCB0aGUgYWN0aW9uIGZyb20gZ2V0dGluZyBpbnRvIGFuIGVuZGxlc3MgbG9vcCBpbiB0aGlzIG1pZGRsZXdhcmUuXG4gICAgY29uc3QgbW9kaWZpZWRBY3Rpb24gPSBvbWl0KGFjdGlvbiwgWydpbnRlcnZhbCddKTtcbiAgICBjb25zdCBkaXNwYXRjaE1vZGlmaWVkQWN0aW9uID0gKCkgPT4gc3RvcmUuZGlzcGF0Y2gobW9kaWZpZWRBY3Rpb24pO1xuXG4gICAgZGlzcGF0Y2hNb2RpZmllZEFjdGlvbigpOyAvLyBmb3JjZSB0aGUgYWN0aW9uIHRvIHJ1biBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAgY29uc3QgZGVsYXkgPVxuICAgICAgdHlwZW9mIGludGVydmFsID09PSAnbnVtYmVyJyA/IGludGVydmFsIDogZ2V0RGVmYXVsdEludGVydmFsKCk7XG4gICAgY29uc3QgaW50ZXJ2YWxGdW5jID0gKCkgPT4gd2hlbkRvY3VtZW50SXNWaXNpYmxlKGRpc3BhdGNoTW9kaWZpZWRBY3Rpb24pO1xuICAgIGNvbnN0IGludGVydmFsSUQgPSBzZXRJbnRlcnZhbChpbnRlcnZhbEZ1bmMsIGRlbGF5KTtcbiAgICByZXR1cm4gc3RvcmUuZGlzcGF0Y2goc3RhcnRJbnRlcnZhbEFjdGlvbihpbnRlcnZhbEtleSwgaW50ZXJ2YWxJRCkpO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFNUT1BfSU5URVJWQUwpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHN0b3JlLmdldFN0YXRlKCk7XG4gICAgY29uc3QgaW50ZXJ2YWxJRCA9IHNlbGVjdEludGVydmFsSUQoc3RhdGUsIGludGVydmFsS2V5KTtcbiAgICBpbnRlcnZhbElEICYmIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJRCk7XG4gIH1cblxuICByZXR1cm4gbmV4dChhY3Rpb24pO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSW50ZXJ2YWxNaWRkbGV3YXJlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L21pZGRsZXdhcmVzL0ludGVydmFsTWlkZGxld2FyZS9JbnRlcnZhbE1pZGRsZXdhcmUuanMiLCIvKipcbiAqIEV4ZWN1dGVzIGEgY2FsbGJhY2sgd2hlbiB0aGUgZG9jdW1lbnQgaXMgdmlzaWJsZS5cbiAqIFVzZWQgdG8gZGVjcmVhc2UgbG9hZCB3aGVuIHRhYiBpcyBoaWRkZW4sIGZvciBleGFtcGxlIHdoZW4gaW50ZXJ2YWxzIGFyZSBydW5uaW5nLlxuICogQHBhcmFtIHsgRnVuY3Rpb24gfSBjYWxsYmFja1xuICovXG5leHBvcnQgY29uc3Qgd2hlbkRvY3VtZW50SXNWaXNpYmxlID0gY2FsbGJhY2sgPT4ge1xuICBjb25zdCB7IGhpZGRlbiwgbXNIaWRkZW4sIHdlYmtpdEhpZGRlbiB9ID0gZG9jdW1lbnQ7XG4gIGxldCBpc0hpZGRlbiA9IHRydWU7XG4gIGNvbnN0IGlzTm90VW5kZWZpbmVkID0gbiA9PiB0eXBlb2YgbiAhPT0gJ3VuZGVmaW5lZCc7XG5cbiAgaWYgKGlzTm90VW5kZWZpbmVkKGhpZGRlbikpIHtcbiAgICAvLyBPcGVyYSAxMi4xMCBhbmQgRmlyZWZveCAxOCBhbmQgbGF0ZXIgc3VwcG9ydFxuICAgIGlzSGlkZGVuID0gaGlkZGVuO1xuICB9IGVsc2UgaWYgKGlzTm90VW5kZWZpbmVkKG1zSGlkZGVuKSkge1xuICAgIGlzSGlkZGVuID0gbXNIaWRkZW47XG4gIH0gZWxzZSBpZiAoaXNOb3RVbmRlZmluZWQod2Via2l0SGlkZGVuKSkge1xuICAgIGlzSGlkZGVuID0gd2Via2l0SGlkZGVuO1xuICB9XG5cbiAgaWYgKCFpc0hpZGRlbikge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvbWlkZGxld2FyZXMvY29tbW9uL2hlbHBlcnMuanMiLCJpbXBvcnQgSW1tdXRhYmxlIGZyb20gJ3NlYW1sZXNzLWltbXV0YWJsZSc7XG5pbXBvcnQgeyBTVEFSVF9JTlRFUlZBTCwgU1RPUF9JTlRFUlZBTCB9IGZyb20gJy4vSW50ZXJ2YWxDb25zdGFudHMnO1xuXG5jb25zdCBpbml0aWFsU3RhdGUgPSBJbW11dGFibGUoe30pO1xuXG5leHBvcnQgY29uc3QgcmVkdWNlciA9IChzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uKSA9PiB7XG4gIGNvbnN0IHsgdHlwZSwga2V5LCBpbnRlcnZhbElEIH0gPSBhY3Rpb247XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgU1RBUlRfSU5URVJWQUw6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2UoeyBba2V5XTogaW50ZXJ2YWxJRCB9KTtcbiAgICBjYXNlIFNUT1BfSU5URVJWQUw6XG4gICAgICByZXR1cm4gc3RhdGUud2l0aG91dChrZXkpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCByZWR1Y2VycyA9IHsgaW50ZXJ2YWxzOiByZWR1Y2VyIH07XG5cbmV4cG9ydCBkZWZhdWx0IHJlZHVjZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvbWlkZGxld2FyZXMvSW50ZXJ2YWxNaWRkbGV3YXJlL0ludGVydmFsUmVkdWNlci5qcyIsImltcG9ydCB7IGNyZWF0ZVNsaWNlLCBuYW5vaWQgfSBmcm9tICdAcmVkdXhqcy90b29sa2l0JztcblxuY29uc3QgaW5pdGlhbFN0YXRlID0ge307XG5jb25zdCB0b2FzdHNMaXN0U2xpY2UgPSBjcmVhdGVTbGljZSh7XG4gIG5hbWU6ICd0b2FzdHMnLFxuICBpbml0aWFsU3RhdGUsXG4gIHJlZHVjZXJzOiB7XG4gICAgYWRkVG9hc3Q6IHtcbiAgICAgIHJlZHVjZXI6IChzdGF0ZSwgeyBwYXlsb2FkOiB7IGtleSwgdG9hc3QgfSB9KSA9PiB7XG4gICAgICAgIHN0YXRlW2tleV0gPSB0b2FzdDtcbiAgICAgIH0sXG4gICAgICBwcmVwYXJlOiB0b2FzdCA9PiB7XG4gICAgICAgIGNvbnN0IGtleSA9IHRvYXN0LmtleSB8fCBuYW5vaWQoKTtcbiAgICAgICAgcmV0dXJuIHsgcGF5bG9hZDogeyBrZXksIHRvYXN0IH0gfTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWxldGVUb2FzdDogKHN0YXRlLCB7IHBheWxvYWQgfSkgPT4ge1xuICAgICAgZGVsZXRlIHN0YXRlW3BheWxvYWRdO1xuICAgIH0sXG4gICAgY2xlYXJUb2FzdHM6ICgpID0+IGluaXRpYWxTdGF0ZSxcbiAgfSxcbn0pO1xuXG5jb25zdCB7IG5hbWUsIHJlZHVjZXIsIGFjdGlvbnMgfSA9IHRvYXN0c0xpc3RTbGljZTtcblxuZXhwb3J0IGNvbnN0IHsgYWRkVG9hc3QsIGRlbGV0ZVRvYXN0LCBjbGVhclRvYXN0cyB9ID0gYWN0aW9ucztcblxuZXhwb3J0IGNvbnN0IHJlZHVjZXJzID0geyBbbmFtZV06IHJlZHVjZXIgfTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRvYXN0c0xpc3QgPSBzdGF0ZSA9PiBzdGF0ZVtuYW1lXTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1RvYXN0c0xpc3Qvc2xpY2UuanMiLCIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5cbmltcG9ydCB7IEFsZXJ0VmFyaWFudCB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuXG5leHBvcnQgY29uc3QgdG9hc3RUeXBlID0gdHlwZSA9PiB7XG4gIGlmICh0eXBlIGluIEFsZXJ0VmFyaWFudCkgcmV0dXJuIHR5cGU7XG5cbiAgY29uc29sZS53YXJuKFxuICAgIGBUb2FzdCBub3RpZmljYXRpb24gdHlwZSAnJHt0eXBlfScgaXMgaW52YWxpZC4gUGxlYXNlIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB0eXBlczogJHtPYmplY3QudmFsdWVzKFxuICAgICAgQWxlcnRWYXJpYW50XG4gICAgKX1gXG4gICk7XG5cbiAgY29uc3QgZmFsbGJhY2tUeXBlcyA9IHtcbiAgICBhbGVydDogQWxlcnRWYXJpYW50Lndhcm5pbmcsXG4gICAgbm90aWNlOiBBbGVydFZhcmlhbnQuaW5mbyxcbiAgICBlcnJvcjogQWxlcnRWYXJpYW50LmRhbmdlcixcbiAgfTtcblxuICByZXR1cm4gZmFsbGJhY2tUeXBlc1t0eXBlXSB8fCBBbGVydFZhcmlhbnQuZGVmYXVsdDtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2FzdFRpdGxlID0gKG1lc3NhZ2UsIHR5cGUpID0+IHtcbiAgaWYgKG1lc3NhZ2UubGVuZ3RoIDw9IDYwKSByZXR1cm4gbWVzc2FnZTtcbiAgcmV0dXJuIGRlZmF1bHRUaXRsZSh0eXBlKTtcbn07XG5cbmNvbnN0IGRlZmF1bHRUaXRsZSA9IHR5cGUgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdkYW5nZXInOlxuICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgIHJldHVybiAnRXJyb3InO1xuICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgcmV0dXJuICdXYXJuaW5nJztcbiAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgIHJldHVybiAnU3VjY2Vzcyc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnSW5mbyc7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ub2FzdHNMaXN0L2hlbHBlcnMuanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvVG9hc3RzTGlzdC9zdHlsZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSAyNDVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgJy4vQVBJVGVzdFNldHVwJztcbmltcG9ydCB7IGZvcmVtYW5VcmwgfSBmcm9tICcuLi8uLi8uLi9mb3JlbWFuX3Rvb2xzJztcblxuY29uc3QgZ2V0Y3NyZlRva2VuID0gKCkgPT4ge1xuICBjb25zdCB0b2tlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImNzcmYtdG9rZW5cIl0nKTtcblxuICByZXR1cm4gdG9rZW4gPyB0b2tlbi5jb250ZW50IDogJyc7XG59O1xuXG5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1SZXF1ZXN0ZWQtV2l0aCddID0gJ1hNTEh0dHBSZXF1ZXN0JztcbmF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydYLUNTUkYtVG9rZW4nXSA9IGdldGNzcmZUb2tlbigpO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGdldCh1cmwsIGhlYWRlcnMgPSB7fSwgcGFyYW1zID0ge30pIHtcbiAgICByZXR1cm4gYXhpb3MuZ2V0KGZvcmVtYW5VcmwodXJsKSwge1xuICAgICAgaGVhZGVycyxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgfSxcbiAgcHV0KHVybCwgZGF0YSA9IHt9LCBoZWFkZXJzID0ge30pIHtcbiAgICByZXR1cm4gYXhpb3MucHV0KGZvcmVtYW5VcmwodXJsKSwgZGF0YSwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfSxcbiAgcG9zdCh1cmwsIGRhdGEgPSB7fSwgaGVhZGVycyA9IHt9KSB7XG4gICAgcmV0dXJuIGF4aW9zLnBvc3QoZm9yZW1hblVybCh1cmwpLCBkYXRhLCB7XG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9LFxuICBkZWxldGUodXJsLCBoZWFkZXJzID0ge30pIHtcbiAgICByZXR1cm4gYXhpb3MuZGVsZXRlKGZvcmVtYW5VcmwodXJsKSwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfSxcbiAgcGF0Y2godXJsLCBkYXRhID0ge30sIGhlYWRlcnMgPSB7fSkge1xuICAgIHJldHVybiBheGlvcy5wYXRjaChmb3JlbWFuVXJsKHVybCksIGRhdGEsIHtcbiAgICAgIGhlYWRlcnMsXG4gICAgfSk7XG4gIH0sXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L0FQSS9BUEkuanMiLCJpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG4vLyBhIGNvdW50ZXIgZm9yIGFjdGl2ZSByZXF1ZXN0cywgbGlrZSBqUXVlcnkuYWN0aXZlXG53aW5kb3cuYXhpb3NBY3RpdmUgPSAwO1xuXG5heGlvcy5pbnRlcmNlcHRvcnMucmVxdWVzdC51c2UoY29uZmlnID0+IHtcbiAgd2luZG93LmF4aW9zQWN0aXZlICs9IDE7XG4gIHJldHVybiBjb25maWc7XG59KTtcblxuYXhpb3MuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZShyZXNwb25zZSA9PiB7XG4gIHdpbmRvdy5heGlvc0FjdGl2ZSAtPSAxO1xuICByZXR1cm4gcmVzcG9uc2U7XG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9BUEkvQVBJVGVzdFNldHVwLmpzIiwiaW1wb3J0IHtcbiAgUEFTU1dPUkRfU1RSRU5HVEhfUEFTU1dPUkRfQ0hBTkdFRCxcbiAgUEFTU1dPUkRfU1RSRU5HVEhfUEFTU1dPUkRfQ09ORklSTUFUSU9OX0NIQU5HRUQsXG59IGZyb20gJy4vUGFzc3dvcmRTdHJlbmd0aENvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVQYXNzd29yZCA9IHBhc3N3b3JkID0+ICh7XG4gIHR5cGU6IFBBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX0NIQU5HRUQsXG4gIHBheWxvYWQ6IHBhc3N3b3JkLFxufSk7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVQYXNzd29yZENvbmZpcm1hdGlvbiA9IHBhc3N3b3JkID0+ICh7XG4gIHR5cGU6IFBBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX0NPTkZJUk1BVElPTl9DSEFOR0VELFxuICBwYXlsb2FkOiBwYXNzd29yZCxcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUGFzc3dvcmRTdHJlbmd0aC9QYXNzd29yZFN0cmVuZ3RoQWN0aW9ucy5qcyIsImV4cG9ydCBjb25zdCBkb2VzUGFzc3dvcmRzTWF0Y2ggPSAoeyBwYXNzd29yZCwgcGFzc3dvcmRDb25maXJtYXRpb24gfSkgPT5cbiAgIXBhc3N3b3JkQ29uZmlybWF0aW9uIHx8IHBhc3N3b3JkID09PSBwYXNzd29yZENvbmZpcm1hdGlvbjtcblxuZXhwb3J0IGNvbnN0IHBhc3N3b3JkUHJlc2VudCA9IHBhc3N3b3JkU3RyZW5ndGggPT5cbiAgcGFzc3dvcmRTdHJlbmd0aCAmJiAhIXBhc3N3b3JkU3RyZW5ndGgucGFzc3dvcmQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QYXNzd29yZFN0cmVuZ3RoL1Bhc3N3b3JkU3RyZW5ndGhTZWxlY3RvcnMuanMiLCJpbXBvcnQgSW1tdXRhYmxlIGZyb20gJ3NlYW1sZXNzLWltbXV0YWJsZSc7XG5cbmltcG9ydCB7XG4gIFBBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX0NIQU5HRUQsXG4gIFBBU1NXT1JEX1NUUkVOR1RIX1BBU1NXT1JEX0NPTkZJUk1BVElPTl9DSEFOR0VELFxufSBmcm9tICcuL1Bhc3N3b3JkU3RyZW5ndGhDb25zdGFudHMnO1xuXG5jb25zdCBpbml0aWFsU3RhdGUgPSBJbW11dGFibGUoe1xuICBwYXNzd29yZDogJycsXG4gIHBhc3N3b3JkQ29uZmlybWF0aW9uOiAnJyxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCAoc3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbikgPT4ge1xuICBjb25zdCB7IHBheWxvYWQgfSA9IGFjdGlvbjtcblxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBQQVNTV09SRF9TVFJFTkdUSF9QQVNTV09SRF9DSEFOR0VEOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgncGFzc3dvcmQnLCBwYXlsb2FkKTtcblxuICAgIGNhc2UgUEFTU1dPUkRfU1RSRU5HVEhfUEFTU1dPUkRfQ09ORklSTUFUSU9OX0NIQU5HRUQ6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdwYXNzd29yZENvbmZpcm1hdGlvbicsIHBheWxvYWQpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1Bhc3N3b3JkU3RyZW5ndGgvUGFzc3dvcmRTdHJlbmd0aFJlZHVjZXIuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdFBhc3N3b3JkU3RyZW5ndGggZnJvbSAncmVhY3QtcGFzc3dvcmQtc3RyZW5ndGgnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vcmVhY3RfYXBwL2NvbW1vbi9JMThuJztcbmltcG9ydCBDb21tb25Gb3JtIGZyb20gJy4uL2NvbW1vbi9mb3Jtcy9Db21tb25Gb3JtJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9jb21tb24vaGVscGVycyc7XG5cbmltcG9ydCAnLi9QYXNzd29yZFN0cmVuZ3RoLnNjc3MnO1xuXG5jb25zdCBQYXNzd29yZFN0cmVuZ3RoID0gKHtcbiAgdXBkYXRlUGFzc3dvcmQsXG4gIHVwZGF0ZVBhc3N3b3JkQ29uZmlybWF0aW9uLFxuICBkb2VzUGFzc3dvcmRzTWF0Y2gsXG4gIHBhc3N3b3JkUHJlc2VudCxcbiAgZGF0YTogeyBjbGFzc05hbWUsIGlkLCBuYW1lLCB2ZXJpZnksIGVycm9yLCB1c2VySW5wdXRJZHMsIHJlcXVpcmVkIH0sXG59KSA9PiB7XG4gIGNvbnN0IHVzZXJJbnB1dHMgPVxuICAgIHVzZXJJbnB1dElkcyAmJiB1c2VySW5wdXRJZHMubGVuZ3RoID4gMFxuICAgICAgPyB1c2VySW5wdXRJZHMubWFwKGlucHV0ID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0KS52YWx1ZSlcbiAgICAgIDogW107XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPENvbW1vbkZvcm1cbiAgICAgICAgbGFiZWw9e19fKCdQYXNzd29yZCcpfVxuICAgICAgICB0b3VjaGVkXG4gICAgICAgIGVycm9yPXshcGFzc3dvcmRQcmVzZW50ICYmIGVycm9yfVxuICAgICAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgICA+XG4gICAgICAgIDxSZWFjdFBhc3N3b3JkU3RyZW5ndGhcbiAgICAgICAgICBjaGFuZ2VDYWxsYmFjaz17KHsgcGFzc3dvcmQgfSkgPT4gdXBkYXRlUGFzc3dvcmQocGFzc3dvcmQpfVxuICAgICAgICAgIG1pbkxlbmd0aD17Nn1cbiAgICAgICAgICBtaW5TY29yZT17Mn1cbiAgICAgICAgICB1c2VySW5wdXRzPXt1c2VySW5wdXRzfVxuICAgICAgICAgIHRvb1Nob3J0V29yZD17X18oJ1RvbyBzaG9ydCcpfVxuICAgICAgICAgIHNjb3JlV29yZHM9e1tcbiAgICAgICAgICAgIF9fKCdXZWFrJyksXG4gICAgICAgICAgICBfXygnTWVkaXVtJyksXG4gICAgICAgICAgICBfXygnTm9ybWFsJyksXG4gICAgICAgICAgICBfXygnU3Ryb25nJyksXG4gICAgICAgICAgICBfXygnVmVyeSBzdHJvbmcnKSxcbiAgICAgICAgICBdfVxuICAgICAgICAgIGlucHV0UHJvcHM9e3sgbmFtZSwgaWQsIGNsYXNzTmFtZSwgYXV0b0NvbXBsZXRlOiAnbmV3LXBhc3N3b3JkJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9Db21tb25Gb3JtPlxuICAgICAge3ZlcmlmeSAmJiAoXG4gICAgICAgIDxDb21tb25Gb3JtXG4gICAgICAgICAgbGFiZWw9e19fKCdWZXJpZnknKX1cbiAgICAgICAgICB0b3VjaGVkXG4gICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgIGVycm9yPXtcbiAgICAgICAgICAgIGRvZXNQYXNzd29yZHNNYXRjaCA/IHZlcmlmeS5lcnJvciA6IF9fKCdQYXNzd29yZHMgZG8gbm90IG1hdGNoJylcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwicGFzc3dvcmRfY29uZmlybWF0aW9uXCJcbiAgICAgICAgICAgIG5hbWU9e3ZlcmlmeS5uYW1lfVxuICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoeyB0YXJnZXQgfSkgPT4gdXBkYXRlUGFzc3dvcmRDb25maXJtYXRpb24odGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Db21tb25Gb3JtPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cblBhc3N3b3JkU3RyZW5ndGgucHJvcFR5cGVzID0ge1xuICB1cGRhdGVQYXNzd29yZDogUHJvcFR5cGVzLmZ1bmMsXG4gIHVwZGF0ZVBhc3N3b3JkQ29uZmlybWF0aW9uOiBQcm9wVHlwZXMuZnVuYyxcbiAgZG9lc1Bhc3N3b3Jkc01hdGNoOiBQcm9wVHlwZXMuYm9vbCxcbiAgcGFzc3dvcmRQcmVzZW50OiBQcm9wVHlwZXMuYm9vbCxcbiAgZGF0YTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBlcnJvcjogUHJvcFR5cGVzLm5vZGUsXG4gICAgdXNlcklucHV0SWRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuc3RyaW5nKSxcbiAgICByZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgdmVyaWZ5OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgZXJyb3I6IFByb3BUeXBlcy5ub2RlLFxuICAgIH0pLFxuICB9KS5pc1JlcXVpcmVkLFxufTtcblxuUGFzc3dvcmRTdHJlbmd0aC5kZWZhdWx0UHJvcHMgPSB7XG4gIHVwZGF0ZVBhc3N3b3JkOiBub29wLFxuICB1cGRhdGVQYXNzd29yZENvbmZpcm1hdGlvbjogbm9vcCxcbiAgZG9lc1Bhc3N3b3Jkc01hdGNoOiBmYWxzZSxcbiAgcGFzc3dvcmRQcmVzZW50OiBmYWxzZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBhc3N3b3JkU3RyZW5ndGg7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QYXNzd29yZFN0cmVuZ3RoL1Bhc3N3b3JkU3RyZW5ndGguanMiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX1BBU1NXT1JEX1NUUkVOR1RIX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9QQVNTV09SRF9TVFJFTkdUSF9fXCJcbi8vIG1vZHVsZSBpZCA9IDI1MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1Bhc3N3b3JkU3RyZW5ndGgvUGFzc3dvcmRTdHJlbmd0aC5zY3NzXG4vLyBtb2R1bGUgaWQgPSAyNTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcblxuaW1wb3J0IHtcbiAgQlJFQURDUlVNQl9CQVJfVE9HR0xFX1NXSVRDSEVSLFxuICBCUkVBRENSVU1CX0JBUl9DTE9TRV9TV0lUQ0hFUixcbiAgQlJFQURDUlVNQl9CQVJfUkVTT1VSQ0VTX1JFUVVFU1QsXG4gIEJSRUFEQ1JVTUJfQkFSX1JFU09VUkNFU19TVUNDRVNTLFxuICBCUkVBRENSVU1CX0JBUl9SRVNPVVJDRVNfRkFJTFVSRSxcbiAgQlJFQURDUlVNQl9CQVJfQ0xFQVJfU0VBUkNILFxuICBCUkVBRENSVU1CX0JBUl9VUERBVEVfVElUTEUsXG59IGZyb20gJy4vQnJlYWRjcnVtYkJhckNvbnN0YW50cyc7XG5cbmNvbnN0IGluaXRpYWxTdGF0ZSA9IEltbXV0YWJsZSh7XG4gIHJlc291cmNlU3dpdGNoZXJJdGVtczogW10sXG4gIGlzTG9hZGluZ1Jlc291cmNlczogZmFsc2UsXG4gIGlzU3dpdGNoZXJPcGVuOiBmYWxzZSxcbiAgcmVzb3VyY2VVcmw6IG51bGwsXG4gIHJlcXVlc3RFcnJvcjogbnVsbCxcbiAgY3VycmVudFBhZ2U6IG51bGwsXG4gIHNlYXJjaFF1ZXJ5OiAnJyxcbiAgcGFnZXM6IG51bGwsXG4gIHRpdGxlUmVwbGFjZW1lbnQ6IG51bGwsXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgKHN0YXRlID0gaW5pdGlhbFN0YXRlLCBhY3Rpb24pID0+IHtcbiAgY29uc3QgeyBwYXlsb2FkIH0gPSBhY3Rpb247XG5cbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgQlJFQURDUlVNQl9CQVJfQ0xFQVJfU0VBUkNIOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnc2VhcmNoUXVlcnknLCAnJyk7XG5cbiAgICBjYXNlIEJSRUFEQ1JVTUJfQkFSX1VQREFURV9USVRMRTpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ3RpdGxlUmVwbGFjZW1lbnQnLCBwYXlsb2FkKTtcblxuICAgIGNhc2UgQlJFQURDUlVNQl9CQVJfUkVTT1VSQ0VTX1JFUVVFU1Q6XG4gICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgLnNldCgncmVzb3VyY2VTd2l0Y2hlckl0ZW1zJywgW10pXG4gICAgICAgIC5zZXQoJ3Jlc291cmNlVXJsJywgcGF5bG9hZC5yZXNvdXJjZVVybClcbiAgICAgICAgLnNldCgncmVxdWVzdEVycm9yJywgbnVsbClcbiAgICAgICAgLnNldCgnaXNMb2FkaW5nUmVzb3VyY2VzJywgdHJ1ZSlcbiAgICAgICAgLnNldCgnc2VhcmNoUXVlcnknLCBwYXlsb2FkLm9wdGlvbnMuc2VhcmNoUXVlcnkpO1xuXG4gICAgY2FzZSBCUkVBRENSVU1CX0JBUl9SRVNPVVJDRVNfU1VDQ0VTUzpcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAuc2V0KCdyZXNvdXJjZVN3aXRjaGVySXRlbXMnLCBwYXlsb2FkLml0ZW1zKVxuICAgICAgICAuc2V0KCdyZXNvdXJjZVVybCcsIHBheWxvYWQucmVzb3VyY2VVcmwpXG4gICAgICAgIC5zZXQoJ2N1cnJlbnRQYWdlJywgcGF5bG9hZC5wYWdlKVxuICAgICAgICAuc2V0KCdwYWdlcycsIHBheWxvYWQucGFnZXMpXG4gICAgICAgIC5zZXQoJ3JlcXVlc3RFcnJvcicsIG51bGwpXG4gICAgICAgIC5zZXQoJ2lzTG9hZGluZ1Jlc291cmNlcycsIGZhbHNlKTtcblxuICAgIGNhc2UgQlJFQURDUlVNQl9CQVJfUkVTT1VSQ0VTX0ZBSUxVUkU6XG4gICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgLnNldCgncmVzb3VyY2VTd2l0Y2hlckl0ZW1zJywgW10pXG4gICAgICAgIC5zZXQoJ3JlcXVlc3RFcnJvcicsIHBheWxvYWQuZXJyb3IpXG4gICAgICAgIC5zZXQoJ3Jlc291cmNlVXJsJywgcGF5bG9hZC5yZXNvdXJjZVVybClcbiAgICAgICAgLnNldCgnaXNMb2FkaW5nUmVzb3VyY2VzJywgZmFsc2UpO1xuXG4gICAgY2FzZSBCUkVBRENSVU1CX0JBUl9UT0dHTEVfU1dJVENIRVI6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdpc1N3aXRjaGVyT3BlbicsICFzdGF0ZS5pc1N3aXRjaGVyT3Blbik7XG5cbiAgICBjYXNlIEJSRUFEQ1JVTUJfQkFSX0NMT1NFX1NXSVRDSEVSOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnaXNTd2l0Y2hlck9wZW4nLCBmYWxzZSk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQnJlYWRjcnVtYkJhci9CcmVhZGNydW1iQmFyUmVkdWNlci5qcyIsImV4cG9ydCBjb25zdCBzZWxlY3RCcmVhZGNydW1iQmFyID0gc3RhdGUgPT4gc3RhdGUuYnJlYWRjcnVtYkJhcjtcbmV4cG9ydCBjb25zdCBzZWxlY3RSZXNvdXJjZVN3aXRjaGVySXRlbXMgPSBzdGF0ZSA9PlxuICBzZWxlY3RCcmVhZGNydW1iQmFyKHN0YXRlKS5yZXNvdXJjZVN3aXRjaGVySXRlbXM7XG5leHBvcnQgY29uc3Qgc2VsZWN0UmVzb3VyY2VVcmwgPSBzdGF0ZSA9PlxuICBzZWxlY3RCcmVhZGNydW1iQmFyKHN0YXRlKS5yZXNvdXJjZVVybDtcbmV4cG9ydCBjb25zdCBzZWxlY3RJc1N3aXRjaGVyT3BlbiA9IHN0YXRlID0+XG4gIHNlbGVjdEJyZWFkY3J1bWJCYXIoc3RhdGUpLmlzU3dpdGNoZXJPcGVuO1xuZXhwb3J0IGNvbnN0IHNlbGVjdElzTG9hZGluZ1Jlc291cmNlcyA9IHN0YXRlID0+XG4gIHNlbGVjdEJyZWFkY3J1bWJCYXIoc3RhdGUpLmlzTG9hZGluZ1Jlc291cmNlcztcbmV4cG9ydCBjb25zdCBzZWxlY3RIYXNFcnJvciA9IHN0YXRlID0+XG4gIHNlbGVjdEJyZWFkY3J1bWJCYXIoc3RhdGUpLnJlcXVlc3RFcnJvciAhPSBudWxsO1xuZXhwb3J0IGNvbnN0IHNlbGVjdEN1cnJlbnRQYWdlID0gc3RhdGUgPT5cbiAgc2VsZWN0QnJlYWRjcnVtYkJhcihzdGF0ZSkuY3VycmVudFBhZ2U7XG5leHBvcnQgY29uc3Qgc2VsZWN0VG90YWxQYWdlcyA9IHN0YXRlID0+IHNlbGVjdEJyZWFkY3J1bWJCYXIoc3RhdGUpLnBhZ2VzO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFNlYXJjaFF1ZXJ5ID0gc3RhdGUgPT5cbiAgc2VsZWN0QnJlYWRjcnVtYkJhcihzdGF0ZSkuc2VhcmNoUXVlcnk7XG5leHBvcnQgY29uc3Qgc2VsZWN0UmVtb3ZlU2VhcmNoUXVlcnkgPSBzdGF0ZSA9PlxuICBzZWxlY3RCcmVhZGNydW1iQmFyKHN0YXRlKS5yZW1vdmVTZWFyY2hRdWVyeTtcbmV4cG9ydCBjb25zdCBzZWxlY3RUaXRsZVJlcGxhY2VtZW50ID0gc3RhdGUgPT5cbiAgc2VsZWN0QnJlYWRjcnVtYkJhcihzdGF0ZSkudGl0bGVSZXBsYWNlbWVudDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0JyZWFkY3J1bWJCYXIvQnJlYWRjcnVtYkJhclNlbGVjdG9yLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBCcmVhZGNydW1iU3dpdGNoZXIgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcblxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCBCcmVhZGNydW1iIGZyb20gJy4vY29tcG9uZW50cy9CcmVhZGNydW1iJztcbmltcG9ydCAnLi9CcmVhZGNydW1iQmFyLnNjc3MnO1xuXG5jbGFzcyBCcmVhZGNydW1iQmFyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgaGFuZGxlT3BlbigpIHtcbiAgICBjb25zdCB7XG4gICAgICByZXNvdXJjZSxcbiAgICAgIGxvYWRTd2l0Y2hlclJlc291cmNlc0J5UmVzb3VyY2UsXG4gICAgICBjdXJyZW50UGFnZSxcbiAgICAgIHJlc291cmNlVXJsLFxuICAgICAgcmVzb3VyY2VTd2l0Y2hlckl0ZW1zLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGlzVXJsRm9ybWF0VmFsaWQgPSByZXNvdXJjZVN3aXRjaGVySXRlbXMubGVuZ3RoXG4gICAgICA/IHJlc291cmNlU3dpdGNoZXJJdGVtc1swXS51cmwgPT09XG4gICAgICAgIHJlc291cmNlLnN3aXRjaGVySXRlbVVybD8ucmVwbGFjZSgnOmlkJywgcmVzb3VyY2VTd2l0Y2hlckl0ZW1zWzBdLmlkKVxuICAgICAgOiB0cnVlO1xuICAgIGlmIChcbiAgICAgICFjdXJyZW50UGFnZSB8fFxuICAgICAgcmVzb3VyY2VVcmwgIT09IHJlc291cmNlLnJlc291cmNlVXJsIHx8XG4gICAgICAhaXNVcmxGb3JtYXRWYWxpZFxuICAgICkge1xuICAgICAgbG9hZFN3aXRjaGVyUmVzb3VyY2VzQnlSZXNvdXJjZShyZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGJyZWFkY3J1bWJJdGVtcyxcbiAgICAgIGlzU3dpdGNoYWJsZSxcbiAgICAgIHJlc291cmNlLFxuICAgICAgY3VycmVudFBhZ2UsXG4gICAgICB0b3RhbFBhZ2VzLFxuICAgICAgcmVzb3VyY2VTd2l0Y2hlckl0ZW1zLFxuICAgICAgaXNMb2FkaW5nUmVzb3VyY2VzLFxuICAgICAgaGFzRXJyb3IsXG4gICAgICBpc1N3aXRjaGVyT3BlbixcbiAgICAgIHRvZ2dsZVN3aXRjaGVyLFxuICAgICAgY2xvc2VTd2l0Y2hlcixcbiAgICAgIGxvYWRTd2l0Y2hlclJlc291cmNlc0J5UmVzb3VyY2UsXG4gICAgICBzZWFyY2hRdWVyeSxcbiAgICAgIHJlbW92ZVNlYXJjaFF1ZXJ5LFxuICAgICAgc2VhcmNoRGVib3VuY2VUaW1lb3V0LFxuICAgICAgb25Td2l0Y2hlckl0ZW1DbGljayxcbiAgICAgIHRpdGxlUmVwbGFjZW1lbnQsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBpc1RpdGxlID0gYnJlYWRjcnVtYkl0ZW1zLmxlbmd0aCA9PT0gMTtcbiAgICBjb25zdCBvcHRpb25zID0gKHsgcGFnZUluY3JlbWVudCB9KSA9PiAoe1xuICAgICAgc2VhcmNoUXVlcnksXG4gICAgICBwYWdlOiBOdW1iZXIoY3VycmVudFBhZ2UpICsgcGFnZUluY3JlbWVudCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZVN3aXRjaGVySXRlbUNsaWNrID0gKGUsIGhyZWYpID0+IHtcbiAgICAgIGNsb3NlU3dpdGNoZXIoKTtcbiAgICAgIG9uU3dpdGNoZXJJdGVtQ2xpY2soZSwgaHJlZik7XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJyZWFkY3J1bWItYmFyXCI+XG4gICAgICAgIDxCcmVhZGNydW1iXG4gICAgICAgICAgaXRlbXM9e2JyZWFkY3J1bWJJdGVtc31cbiAgICAgICAgICBpc1RpdGxlPXtpc1RpdGxlfVxuICAgICAgICAgIHRpdGxlUmVwbGFjZW1lbnQ9e3RpdGxlUmVwbGFjZW1lbnR9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYnJlYWRjcnVtYnMtbGlzdFwiXG4gICAgICAgID5cbiAgICAgICAgICB7aXNTd2l0Y2hhYmxlICYmIChcbiAgICAgICAgICAgIDxCcmVhZGNydW1iU3dpdGNoZXJcbiAgICAgICAgICAgICAgb3Blbj17aXNTd2l0Y2hlck9wZW59XG4gICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nUmVzb3VyY2VzfVxuICAgICAgICAgICAgICBoYXNFcnJvcj17aGFzRXJyb3J9XG4gICAgICAgICAgICAgIHJlc291cmNlcz17cmVzb3VyY2VTd2l0Y2hlckl0ZW1zfVxuICAgICAgICAgICAgICBjdXJyZW50UGFnZT17Y3VycmVudFBhZ2V9XG4gICAgICAgICAgICAgIHRvdGFsUGFnZXM9e3RvdGFsUGFnZXN9XG4gICAgICAgICAgICAgIG9uVG9nZ2xlckNsaWNrPXsoKSA9PiB0b2dnbGVTd2l0Y2hlcigpfVxuICAgICAgICAgICAgICBvbkhpZGU9eygpID0+IGNsb3NlU3dpdGNoZXIoKX1cbiAgICAgICAgICAgICAgb25PcGVuPXsoKSA9PiB0aGlzLmhhbmRsZU9wZW4oKX1cbiAgICAgICAgICAgICAgb25TZWFyY2hDaGFuZ2U9e2V2ZW50ID0+XG4gICAgICAgICAgICAgICAgbG9hZFN3aXRjaGVyUmVzb3VyY2VzQnlSZXNvdXJjZShyZXNvdXJjZSwge1xuICAgICAgICAgICAgICAgICAgc2VhcmNoUXVlcnk6IGV2ZW50LnRhcmdldC52YWx1ZSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG9uTmV4dFBhZ2VDbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICBsb2FkU3dpdGNoZXJSZXNvdXJjZXNCeVJlc291cmNlKFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2UsXG4gICAgICAgICAgICAgICAgICBvcHRpb25zKHsgcGFnZUluY3JlbWVudDogMSB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBvblByZXZQYWdlQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgbG9hZFN3aXRjaGVyUmVzb3VyY2VzQnlSZXNvdXJjZShcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlLFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucyh7IHBhZ2VJbmNyZW1lbnQ6IC0xIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHNlYXJjaFZhbHVlPXtzZWFyY2hRdWVyeX1cbiAgICAgICAgICAgICAgb25TZWFyY2hDbGVhcj17KCkgPT4gcmVtb3ZlU2VhcmNoUXVlcnkocmVzb3VyY2UpfVxuICAgICAgICAgICAgICBzZWFyY2hEZWJvdW5jZVRpbWVvdXQ9e3NlYXJjaERlYm91bmNlVGltZW91dH1cbiAgICAgICAgICAgICAgb25SZXNvdXJjZUNsaWNrPXtoYW5kbGVTd2l0Y2hlckl0ZW1DbGlja31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9CcmVhZGNydW1iPlxuICAgICAgICB7IWlzVGl0bGUgJiYgPGhyIGNsYXNzTmFtZT1cImJyZWFkY3J1bWItbGluZVwiIC8+fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5CcmVhZGNydW1iQmFyLnByb3BUeXBlcyA9IHtcbiAgaXNTd2l0Y2hhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgcmVzb3VyY2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgbmFtZUZpZWxkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHJlc291cmNlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN3aXRjaGVySXRlbVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICByZXNvdXJjZUZpbHRlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgfSksXG4gIGJyZWFkY3J1bWJJdGVtczogQnJlYWRjcnVtYi5wcm9wVHlwZXMuaXRlbXMsXG4gIHNlYXJjaERlYm91bmNlVGltZW91dDogUHJvcFR5cGVzLm51bWJlcixcbiAgc2VhcmNoUXVlcnk6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGN1cnJlbnRQYWdlOiBQcm9wVHlwZXMubnVtYmVyLFxuICB0b3RhbFBhZ2VzOiBQcm9wVHlwZXMubnVtYmVyLFxuICByZXNvdXJjZVN3aXRjaGVySXRlbXM6IEJyZWFkY3J1bWJTd2l0Y2hlci5wcm9wVHlwZXMucmVzb3VyY2VzLFxuICByZXNvdXJjZVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNMb2FkaW5nUmVzb3VyY2VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgaGFzRXJyb3I6IFByb3BUeXBlcy5ib29sLFxuICBpc1N3aXRjaGVyT3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIHRpdGxlUmVwbGFjZW1lbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRvZ2dsZVN3aXRjaGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgY2xvc2VTd2l0Y2hlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIGxvYWRTd2l0Y2hlclJlc291cmNlc0J5UmVzb3VyY2U6IFByb3BUeXBlcy5mdW5jLFxuICBvblN3aXRjaGVySXRlbUNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgcmVtb3ZlU2VhcmNoUXVlcnk6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuQnJlYWRjcnVtYkJhci5kZWZhdWx0UHJvcHMgPSB7XG4gIGlzU3dpdGNoYWJsZTogZmFsc2UsXG4gIHJlc291cmNlOiB7fSxcbiAgYnJlYWRjcnVtYkl0ZW1zOiBbXSxcbiAgc2VhcmNoUXVlcnk6ICcnLFxuICBjdXJyZW50UGFnZTogbnVsbCxcbiAgdG90YWxQYWdlczogMSxcbiAgcmVzb3VyY2VTd2l0Y2hlckl0ZW1zOiBbXSxcbiAgcmVzb3VyY2VVcmw6IG51bGwsXG4gIGlzTG9hZGluZ1Jlc291cmNlczogZmFsc2UsXG4gIGhhc0Vycm9yOiBmYWxzZSxcbiAgaXNTd2l0Y2hlck9wZW46IGZhbHNlLFxuICBzZWFyY2hEZWJvdW5jZVRpbWVvdXQ6IDMwMCxcbiAgdGl0bGVSZXBsYWNlbWVudDogbnVsbCxcbiAgdG9nZ2xlU3dpdGNoZXI6IG5vb3AsXG4gIGNsb3NlU3dpdGNoZXI6IG5vb3AsXG4gIGxvYWRTd2l0Y2hlclJlc291cmNlc0J5UmVzb3VyY2U6IG5vb3AsXG4gIG9uU3dpdGNoZXJJdGVtQ2xpY2s6IG5vb3AsXG4gIHJlbW92ZVNlYXJjaFF1ZXJ5OiBub29wLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQnJlYWRjcnVtYkJhcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0JyZWFkY3J1bWJCYXIvQnJlYWRjcnVtYkJhci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge1xuICBCcmVhZGNydW1iIGFzIFBmQnJlYWRjcnVtYixcbiAgQnJlYWRjcnVtYkl0ZW0sXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IEVsbGlwc2lzV2l0aFRvb2x0aXAgZnJvbSAncmVhY3QtZWxsaXBzaXMtd2l0aC10b29sdGlwJztcbmltcG9ydCAnLi9CcmVhZGNydW1icy5zY3NzJztcblxuY29uc3QgQnJlYWRjcnVtYiA9ICh7XG4gIGl0ZW1zLFxuICBpc1RpdGxlLFxuICB0aXRsZVJlcGxhY2VtZW50LFxuICBjaGlsZHJlbixcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgaWYgKGlzVGl0bGUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxoMT57aXRlbXNbMF0uY2FwdGlvbn08L2gxPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFBmQnJlYWRjcnVtYiB7Li4ucHJvcHN9PlxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZlID0gaW5kZXggPT09IGl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IHsgY2FwdGlvbiwgdXJsLCBvbkNsaWNrIH0gPSBpdGVtO1xuICAgICAgICBjb25zdCB7IGljb24sIHRleHQgfSA9IGNhcHRpb24gfHwge307XG5cbiAgICAgICAgY29uc3Qgb3ZlcnJpZGVUaXRsZSA9IGFjdGl2ZSAmJiB0aXRsZVJlcGxhY2VtZW50O1xuICAgICAgICBjb25zdCBpdGVtVGl0bGUgPSBvdmVycmlkZVRpdGxlIHx8IHRleHQgfHwgY2FwdGlvbiB8fCAnJztcblxuICAgICAgICBpZiAoIWljb24gJiYgIWl0ZW1UaXRsZSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgaW5uZXIgPSBhY3RpdmUgPyAoXG4gICAgICAgICAgPEVsbGlwc2lzV2l0aFRvb2x0aXAgcGxhY2VtZW50PVwiYm90dG9tXCI+XG4gICAgICAgICAgICB7aXRlbVRpdGxlfVxuICAgICAgICAgIDwvRWxsaXBzaXNXaXRoVG9vbHRpcD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBpdGVtVGl0bGVcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxCcmVhZGNydW1iSXRlbVxuICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgIGlzQWN0aXZlPXthY3RpdmV9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICAgICAgdG89e3VybH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnYnJlYWRjcnVtYi1pdGVtJywge1xuICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICdicmVhZGNydW1iLWl0ZW0td2l0aC1pY29uJzogaWNvbiAmJiBhY3RpdmUsXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7aWNvbiAmJiA8aW1nIHNyYz17aWNvbi51cmx9IGFsdD17aWNvbi5hbHR9IHRpdGxlPXtpY29uLmFsdH0gLz59eycgJ31cbiAgICAgICAgICAgIHtpbm5lcn1cbiAgICAgICAgICAgIHthY3RpdmUgJiYgY2hpbGRyZW59XG4gICAgICAgICAgPC9CcmVhZGNydW1iSXRlbT5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvUGZCcmVhZGNydW1iPlxuICApO1xufTtcblxuQnJlYWRjcnVtYi5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgdGl0bGVSZXBsYWNlbWVudDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNUaXRsZTogUHJvcFR5cGVzLmJvb2wsXG4gIGl0ZW1zOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgY2FwdGlvbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbXG4gICAgICAgIFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgICAgICBpY29uOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICAgICAgdXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAgICAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAgIH0pLFxuICAgICAgXSksXG4gICAgICB1cmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgfSlcbiAgKSxcbn07XG5cbkJyZWFkY3J1bWIuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogbnVsbCxcbiAgaXNUaXRsZTogZmFsc2UsXG4gIGl0ZW1zOiBbXSxcbiAgdGl0bGVSZXBsYWNlbWVudDogbnVsbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJyZWFkY3J1bWI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9CcmVhZGNydW1iQmFyL2NvbXBvbmVudHMvQnJlYWRjcnVtYi5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9CcmVhZGNydW1iQmFyL2NvbXBvbmVudHMvQnJlYWRjcnVtYnMuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMjU4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQnJlYWRjcnVtYkJhci9CcmVhZGNydW1iQmFyLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDI1OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IEltbXV0YWJsZSBmcm9tICdzZWFtbGVzcy1pbW11dGFibGUnO1xuaW1wb3J0IHtcbiAgQVVUT19DT01QTEVURV9JTklULFxuICBBVVRPX0NPTVBMRVRFX1JFUVVFU1QsXG4gIEFVVE9fQ09NUExFVEVfU1VDQ0VTUyxcbiAgQVVUT19DT01QTEVURV9GQUlMVVJFLFxuICBBVVRPX0NPTVBMRVRFX1JFU0VULFxuICBBVVRPX0NPTVBMRVRFX0RJU0FCTEVEX0NIQU5HRSxcbiAgQVVUT19DT01QTEVURV9DT05UUk9MTEVSX0NIQU5HRSxcbiAgVFJJR0dFUlMsXG59IGZyb20gJy4vQXV0b0NvbXBsZXRlQ29uc3RhbnRzJztcblxuY29uc3QgaW5pdGlhbEF1dG9jb21wbGV0ZVN0YXRlID0ge1xuICBjb250cm9sbGVyOiBudWxsLFxuICBlcnJvcjogbnVsbCxcbiAgaXNFcnJvclZpc2libGU6IGZhbHNlLFxuICByZXN1bHRzOiBbXSxcbiAgc2VhcmNoUXVlcnk6ICcnLFxuICBzdGF0dXM6IG51bGwsXG4gIHRyaWdnZXI6IG51bGwsXG4gIHVybDogdW5kZWZpbmVkLFxuICBkaXNhYmxlZDogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCAoc3RhdGUgPSBJbW11dGFibGUoe30pLCBhY3Rpb24pID0+IHtcbiAgY29uc3Qge1xuICAgIHR5cGUsXG4gICAgcGF5bG9hZDoge1xuICAgICAgY29udHJvbGxlcixcbiAgICAgIGVycm9yLFxuICAgICAgcmVzdWx0cyxcbiAgICAgIHNlYXJjaFF1ZXJ5LFxuICAgICAgc3RhdHVzLFxuICAgICAgdHJpZ2dlcixcbiAgICAgIGlzRXJyb3JWaXNpYmxlLFxuICAgICAgaWQsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIHVybCxcbiAgICB9ID0ge30sXG4gIH0gPSBhY3Rpb247XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgQVVUT19DT01QTEVURV9JTklUOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKFtpZF0sIHtcbiAgICAgICAgLi4uc3RhdGVbaWRdLFxuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgaXNFcnJvclZpc2libGUsXG4gICAgICAgIHJlc3VsdHMsXG4gICAgICAgIHNlYXJjaFF1ZXJ5LFxuICAgICAgICBzdGF0dXMsXG4gICAgICAgIHRyaWdnZXIsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB1cmwsXG4gICAgICB9KTtcbiAgICBjYXNlIEFVVE9fQ09NUExFVEVfUkVRVUVTVDpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbihbaWRdLCB7XG4gICAgICAgIC4uLnN0YXRlW2lkXSxcbiAgICAgICAgY29udHJvbGxlcixcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHNlYXJjaFF1ZXJ5LFxuICAgICAgICBzdGF0dXMsXG4gICAgICAgIHRyaWdnZXIsXG4gICAgICAgIHVybCxcbiAgICAgIH0pO1xuICAgIGNhc2UgQVVUT19DT01QTEVURV9TVUNDRVNTOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKFtpZF0sIHtcbiAgICAgICAgLi4uc3RhdGVbaWRdLFxuICAgICAgICByZXN1bHRzLFxuICAgICAgICBzdGF0dXMsXG4gICAgICB9KTtcbiAgICBjYXNlIEFVVE9fQ09NUExFVEVfRkFJTFVSRTpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbihbaWRdLCB7XG4gICAgICAgIC4uLnN0YXRlW2lkXSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGlzRXJyb3JWaXNpYmxlLFxuICAgICAgICByZXN1bHRzLFxuICAgICAgICBzdGF0dXMsXG4gICAgICB9KTtcbiAgICBjYXNlIEFVVE9fQ09NUExFVEVfUkVTRVQ6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW2lkXSwge1xuICAgICAgICAuLi5pbml0aWFsQXV0b2NvbXBsZXRlU3RhdGUsXG4gICAgICAgIHRyaWdnZXI6IFRSSUdHRVJTLlJFU0VULFxuICAgICAgfSk7XG4gICAgY2FzZSBBVVRPX0NPTVBMRVRFX0RJU0FCTEVEX0NIQU5HRTpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbihbaWRdLCB7XG4gICAgICAgIC4uLnN0YXRlW2lkXSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICB9KTtcbiAgICBjYXNlIEFVVE9fQ09NUExFVEVfQ09OVFJPTExFUl9DSEFOR0U6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW2lkXSwge1xuICAgICAgICAuLi5zdGF0ZVtpZF0sXG4gICAgICAgIGNvbnRyb2xsZXIsXG4gICAgICAgIHVybCxcbiAgICAgICAgdHJpZ2dlcixcbiAgICAgIH0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRvQ29tcGxldGUvQXV0b0NvbXBsZXRlUmVkdWNlci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgVHlwZUFoZWFkU2VsZWN0IH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcbmltcG9ydCB7IGJpbmRNZXRob2RzLCBkZWJvdW5jZU1ldGhvZHMsIG5vb3AgfSBmcm9tICcuLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgQXV0b0NvbXBsZXRlTWVudSBmcm9tICcuL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlTWVudSc7XG5pbXBvcnQgQXV0b0NvbXBsZXRlRXJyb3IgZnJvbSAnLi9jb21wb25lbnRzL0F1dG9Db21wbGV0ZUVycm9yJztcbmltcG9ydCBBdXRvQ29tcGxldGVBdXggZnJvbSAnLi9jb21wb25lbnRzL0F1dG9Db21wbGV0ZUF1eCc7XG5pbXBvcnQgQXV0b0NvbXBsZXRlRm9jdXNTaG9ydGN1dCBmcm9tICcuL2NvbXBvbmVudHMvQXV0b0NvbXBsZXRlRm9jdXNTaG9ydGN1dCc7XG5pbXBvcnQgeyBTVEFUVVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVFJJR0dFUlMgfSBmcm9tICcuL0F1dG9Db21wbGV0ZUNvbnN0YW50cyc7XG5pbXBvcnQgeyBLRVlDT0RFUyB9IGZyb20gJy4uLy4uL2NvbW1vbi9rZXlDb2Rlcyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgJy4vYXV0by1jb21wbGV0ZS5zY3NzJztcblxuY2xhc3MgQXV0b0NvbXBsZXRlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgYmluZE1ldGhvZHModGhpcywgW1xuICAgICAgJ2hhbmRsZUNsZWFyJyxcbiAgICAgICdoYW5kbGVJbnB1dENoYW5nZScsXG4gICAgICAnaGFuZGxlUmVzdWx0c0NoYW5nZScsXG4gICAgICAnaGFuZGxlSW5wdXRGb2N1cycsXG4gICAgICAnZ2V0UmVzdWx0cycsXG4gICAgICAnd2luZG93S2V5UHJlc3NIYW5kbGVyJyxcbiAgICAgICdoYW5kbGVLZXlEb3duJyxcbiAgICBdKTtcbiAgICB0aGlzLl90eXBlYWhlYWQgPSBSZWFjdC5jcmVhdGVSZWYoKTtcbiAgICBkZWJvdW5jZU1ldGhvZHModGhpcywgNTAwLCBbJ2hhbmRsZUxvYWRpbmcnXSk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLndpbmRvd0tleVByZXNzSGFuZGxlcik7XG4gICAgY29uc3Qge1xuICAgICAgY29udHJvbGxlcixcbiAgICAgIHNlYXJjaFF1ZXJ5LFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBlcnJvcixcbiAgICAgIGlkLFxuICAgICAgdXJsLFxuICAgICAgaW5pdGlhbFVwZGF0ZSxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGluaXRpYWxVcGRhdGUoeyBzZWFyY2hRdWVyeSwgY29udHJvbGxlciwgaWQsIGRpc2FibGVkLCBlcnJvciwgdXJsIH0pO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIHRoaXMuaGFuZGxlTG9hZGluZygpO1xuICAgIGNvbnN0IHsgc2VhcmNoUXVlcnksIHRyaWdnZXIgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBSRVNFVCwgQ09OVFJPTExFUl9DSEFOR0VEIH0gPSBUUklHR0VSUztcbiAgICBpZiAodHJpZ2dlciA9PT0gUkVTRVQgfHwgdHJpZ2dlciA9PT0gQ09OVFJPTExFUl9DSEFOR0VEKSB7XG4gICAgICB0aGlzLmhhbmRsZUNsZWFyKCk7XG4gICAgfVxuICAgIGlmIChwcmV2UHJvcHMuc2VhcmNoUXVlcnkgIT09IHNlYXJjaFF1ZXJ5KSB7XG4gICAgICBjb25zdCB0eXBlYWhlYWQgPSB0aGlzLl90eXBlYWhlYWQgJiYgdGhpcy5fdHlwZWFoZWFkLmN1cnJlbnQ7XG4gICAgICB0eXBlYWhlYWQgJiYgdHlwZWFoZWFkLnNldFN0YXRlKHsgdGV4dDogc2VhcmNoUXVlcnkgfSk7XG4gICAgfVxuICB9XG5cbiAgd2luZG93S2V5UHJlc3NIYW5kbGVyKGUpIHtcbiAgICBjb25zdCB7IHVzZUtleVNob3J0Y3V0cywgaGFuZGxlU2VhcmNoIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5fdHlwZWFoZWFkLmN1cnJlbnQuZ2V0SW5zdGFuY2UoKTtcbiAgICBjb25zdCB7IEVOVEVSLCBGV0RfU0xBU0gsIEJBQ0tfU0xBU0ggfSA9IEtFWUNPREVTO1xuICAgIGNvbnN0IHsgdGFnTmFtZSB9ID0gZS50YXJnZXQ7XG4gICAgY29uc3QgZGlkRXZlbnRDYW1lRnJvbUlucHV0ID0gdGFnTmFtZSA9PT0gJ0lOUFVUJyB8fCB0YWdOYW1lID09PSAnVEVYVEFSRUEnO1xuXG4gICAgLyoqXG4gICAgIERpc2FibGUgdGhpcyBmdW5jdGlvbmFsaXR5IGlmIHRoZSBldmVudCBjYW1lIGZyb20gYW4gaW5wdXQsXG4gICAgIG9yIGlmIHRoZSAndXNlS2V5U2hvcnRjdXRzJyBpcyBmYWxzeS5cbiAgICAqL1xuICAgIGlmIChkaWRFdmVudENhbWVGcm9tSW5wdXQgfHwgIXVzZUtleVNob3J0Y3V0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZS5jaGFyQ29kZSkge1xuICAgICAgY2FzZSBFTlRFUjoge1xuICAgICAgICBoYW5kbGVTZWFyY2goKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIEZXRF9TTEFTSDpcbiAgICAgIGNhc2UgQkFDS19TTEFTSDoge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgZm9jdXMsXG4gICAgICAgICAgc3RhdGU6IHsgc2hvd01lbnUgfSxcbiAgICAgICAgfSA9IGluc3RhbmNlO1xuICAgICAgICBjb25zdCBpc01lbnVIaWRkZW4gPSAhc2hvd01lbnU7XG4gICAgICAgIGlmIChpc01lbnVIaWRkZW4pIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVzdWx0cyhzZWFyY2hRdWVyeSwgdHJpZ2dlciwgaWQpIHtcbiAgICBjb25zdCB7IGdldFJlc3VsdHMsIGNvbnRyb2xsZXIsIHVybCB9ID0gdGhpcy5wcm9wcztcbiAgICBnZXRSZXN1bHRzKHtcbiAgICAgIHVybCxcbiAgICAgIHNlYXJjaFF1ZXJ5LFxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHRyaWdnZXIsXG4gICAgICBpZCxcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUlucHV0Rm9jdXMoeyB0YXJnZXQ6IHsgdmFsdWUgfSB9KSB7XG4gICAgY29uc3QgeyBpZCwgcmVzdWx0cyB9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZ2V0UmVzdWx0cyh2YWx1ZSwgVFJJR0dFUlMuSU5QVVRfRk9DVVMsIGlkKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVJbnB1dENoYW5nZShzZWFyY2hRdWVyeSkge1xuICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMucHJvcHM7XG4gICAgdGhpcy5nZXRSZXN1bHRzKHNlYXJjaFF1ZXJ5LCBUUklHR0VSUy5JTlBVVF9DSEFOR0UsIGlkKTtcbiAgfVxuXG4gIC8vIEdldHMgdGhlIGZpcnN0IHJlc3VsdCBmcm9tIGFuIGFycmF5IG9mIHNlbGVjdGVkIHJlc3VsdHMuXG4gIGhhbmRsZVJlc3VsdHNDaGFuZ2UoeyAwOiByZXN1bHQgfSkge1xuICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5nZXRSZXN1bHRzKHJlc3VsdCwgVFJJR0dFUlMuSVRFTV9TRUxFQ1QsIGlkKTtcbiAgICAvKipcbiAgICAgKiAgSEFDSzogSSBoYWQgbm8gY2hvaWNlIGJ1dCB0byBjYWxsIHRvIGFuIGlubmVyIGZ1bmN0aW9uLFxuICAgICAqIGR1ZSB0byBsYWNrIG9mIGRlc2lnbiBpbiByZWFjdC1ib290c3RyYXAtdHlwZWFoZWFkLlxuICAgICAqL1xuICAgIHRoaXMuX3R5cGVhaGVhZC5jdXJyZW50LmdldEluc3RhbmNlKCkuX3Nob3dNZW51KCk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKHsga2V5Q29kZSB9KSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLl90eXBlYWhlYWQuY3VycmVudC5nZXRJbnN0YW5jZSgpO1xuICAgIHN3aXRjaCAoa2V5Q29kZSkge1xuICAgICAgY2FzZSBLRVlDT0RFUy5FTlRFUjoge1xuICAgICAgICBpZiAoIWluc3RhbmNlLnN0YXRlLmFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZVNlYXJjaCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBLRVlDT0RFUy5FU0M6IHtcbiAgICAgICAgaW5zdGFuY2UuYmx1cigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2xlYXIoKSB7XG4gICAgY29uc3QgeyBpZCB9ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLl90eXBlYWhlYWQuY3VycmVudC5nZXRJbnN0YW5jZSgpLmNsZWFyKCk7XG4gICAgdGhpcy5nZXRSZXN1bHRzKCcnLCBUUklHR0VSUy5JTlBVVF9DTEVBUiwgaWQpO1xuICB9XG5cbiAgaGFuZGxlTG9hZGluZygpIHtcbiAgICBjb25zdCB7IHN0YXR1cyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB0aGlzLl90eXBlYWhlYWQgJiYgdGhpcy5fdHlwZWFoZWFkLmN1cnJlbnQ7XG4gICAgY29uc3QgaXNMb2FkaW5nID0gc3RhdHVzID09PSBTVEFUVVMuUEVORElORztcbiAgICB0eXBlYWhlYWQgJiYgdHlwZWFoZWFkLnNldFN0YXRlKHsgaXNMb2FkaW5nIH0pO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgdGhpcy53aW5kb3dLZXlQcmVzc0hhbmRsZXIpO1xuICAgIGNvbnN0IHsgcmVzZXREYXRhLCBjb250cm9sbGVyLCBpZCB9ID0gdGhpcy5wcm9wcztcbiAgICByZXNldERhdGEoY29udHJvbGxlciwgaWQpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGlkLFxuICAgICAgZXJyb3IsXG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBzZWFyY2hRdWVyeSxcbiAgICAgIGlucHV0UHJvcHMsXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIHJlc3VsdHMsXG4gICAgICB1c2VLZXlTaG9ydGN1dHMsXG4gICAgICBkaXNhYmxlZCxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAvKiogVXNpbmcgYSAzcmQgcGFydHkgbGlicmFyeSAocmVhY3QtYm9vdHN0cmFwLXR5cGVhaGVhZCkgdGhhdCBleHBlY3RzIGEgbXV0YWJsZSBhcnJheS4gKi9cbiAgICBjb25zdCBvcHRpb25zID0gSW1tdXRhYmxlLmlzSW1tdXRhYmxlKHJlc3VsdHMpXG4gICAgICA/IHJlc3VsdHMuYXNNdXRhYmxlKClcbiAgICAgIDogcmVzdWx0cztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcmVtYW4tYXV0b2NvbXBsZXRlXCI+XG4gICAgICAgIDxUeXBlQWhlYWRTZWxlY3RcbiAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgcmVmPXt0aGlzLl90eXBlYWhlYWR9XG4gICAgICAgICAgZGVmYXVsdElucHV0VmFsdWU9e3ZhbHVlIHx8IHNlYXJjaFF1ZXJ5fVxuICAgICAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgb25JbnB1dENoYW5nZT17dGhpcy5oYW5kbGVJbnB1dENoYW5nZX1cbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVSZXN1bHRzQ2hhbmdlfVxuICAgICAgICAgIG9uRm9jdXM9e3RoaXMuaGFuZGxlSW5wdXRGb2N1c31cbiAgICAgICAgICBvbktleURvd249e3RoaXMuaGFuZGxlS2V5RG93bn1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHJlbmRlck1lbnU9eyhyLCBtZW51UHJvcHMpID0+IChcbiAgICAgICAgICAgIDxBdXRvQ29tcGxldGVNZW51IHsuLi57IHJlc3VsdHM6IHIsIG1lbnVQcm9wcyB9fSAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgaW5wdXRQcm9wcz17e1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKFxuICAgICAgICAgICAgICAnc2VhcmNoLWlucHV0JyxcbiAgICAgICAgICAgICAgdXNlS2V5U2hvcnRjdXRzID8gJ3VzZS1zaG9ydGN1dHMnIDogJydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzcGVsbENoZWNrOiAnZmFsc2UnLFxuICAgICAgICAgICAgJ2RhdGEtYXV0b2NvbXBsZXRlLWlkJzogaWQsXG4gICAgICAgICAgICBhdXRvQ29tcGxldGU6ICdvZmYnLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIC4uLmlucHV0UHJvcHMsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAge3NlYXJjaFF1ZXJ5ICYmIDxBdXRvQ29tcGxldGVBdXggb25DbGVhcj17dGhpcy5oYW5kbGVDbGVhcn0gLz59XG4gICAgICAgIDxBdXRvQ29tcGxldGVGb2N1c1Nob3J0Y3V0IHVzZUtleVNob3J0Y3V0cz17dXNlS2V5U2hvcnRjdXRzfSAvPlxuICAgICAgICA8QXV0b0NvbXBsZXRlRXJyb3IgZXJyb3I9e2Vycm9yfSAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5BdXRvQ29tcGxldGUucHJvcFR5cGVzID0ge1xuICBpZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLmlzUmVxdWlyZWQsXG4gIHVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgcmVzdWx0czogUHJvcFR5cGVzLmFycmF5LFxuICBzZWFyY2hRdWVyeTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaW5wdXRQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgc3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBlcnJvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgaW5pdGlhbEVycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjb250cm9sbGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoYW5kbGVTZWFyY2g6IFByb3BUeXBlcy5mdW5jLFxuICBnZXRSZXN1bHRzOiBQcm9wVHlwZXMuZnVuYyxcbiAgcmVzZXREYXRhOiBQcm9wVHlwZXMuZnVuYyxcbiAgaW5pdGlhbFVwZGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIHVzZUtleVNob3J0Y3V0czogUHJvcFR5cGVzLmJvb2wsXG4gIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIHRyaWdnZXI6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5BdXRvQ29tcGxldGUuZGVmYXVsdFByb3BzID0ge1xuICBuYW1lOiBudWxsLFxuICB2YWx1ZTogbnVsbCxcbiAgcmVzdWx0czogW10sXG4gIHNlYXJjaFF1ZXJ5OiAnJyxcbiAgaW5wdXRQcm9wczoge30sXG4gIHN0YXR1czogbnVsbCxcbiAgZXJyb3I6IG51bGwsXG4gIGluaXRpYWxFcnJvcjogbnVsbCxcbiAgY29udHJvbGxlcjogbnVsbCxcbiAgaGFuZGxlU2VhcmNoOiBub29wLFxuICBnZXRSZXN1bHRzOiBub29wLFxuICByZXNldERhdGE6IG5vb3AsXG4gIGluaXRpYWxVcGRhdGU6IG5vb3AsXG4gIHVzZUtleVNob3J0Y3V0czogZmFsc2UsXG4gIHBsYWNlaG9sZGVyOiBfXygnU2VhcmNoJyksXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgdHJpZ2dlcjogbnVsbCxcbn07XG5cbkF1dG9Db21wbGV0ZS5FcnJvciA9IEF1dG9Db21wbGV0ZUVycm9yO1xuXG5leHBvcnQgZGVmYXVsdCBBdXRvQ29tcGxldGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRvQ29tcGxldGUvQXV0b0NvbXBsZXRlLmpzIiwiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGdyb3VwQnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgVHlwZUFoZWFkU2VsZWN0IH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgU3Vic3RyaW5nV3JhcHBlciBmcm9tICcuLi8uLi9jb21tb24vU3Vic3RyaW5nV3JhcHBlcic7XG5cbmNvbnN0IHsgTWVudSwgTWVudUl0ZW0gfSA9IFR5cGVBaGVhZFNlbGVjdDtcbmNvbnN0IHsgRGl2aWRlciwgSGVhZGVyIH0gPSBNZW51O1xuXG5jb25zdCBBdXRvQ29tcGxldGVNZW51ID0gKHsgcmVzdWx0cywgbWVudVByb3BzIH0pID0+IHtcbiAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGxldCBpdGVtSW5kZXggPSAwO1xuICBjb25zdCBncm91cGVkID0gZ3JvdXBCeShyZXN1bHRzLCByID0+IHIuY2F0ZWdvcnkpO1xuICBjb25zdCBnZXRNZW51SXRlbXNCeUNhdGVnb3J5ID0gY2F0ZWdvcnkgPT5cbiAgICBncm91cGVkW2NhdGVnb3J5XS5tYXAocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSAoXG4gICAgICAgIDxNZW51SXRlbSBrZXk9e2l0ZW1JbmRleH0gb3B0aW9uPXtyZXN1bHQubGFiZWx9IHBvc2l0aW9uPXtpdGVtSW5kZXh9PlxuICAgICAgICAgIDxTdWJzdHJpbmdXcmFwcGVyIHN1YnN0cmluZz17bWVudVByb3BzLnRleHR9PlxuICAgICAgICAgICAge3Jlc3VsdC5sYWJlbH1cbiAgICAgICAgICA8L1N1YnN0cmluZ1dyYXBwZXI+XG4gICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICApO1xuICAgICAgaXRlbUluZGV4ICs9IDE7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9KTtcbiAgY29uc3QgaXRlbXMgPSBPYmplY3Qua2V5cyhncm91cGVkKVxuICAgIC5zb3J0KClcbiAgICAubWFwKGNhdGVnb3J5ID0+IChcbiAgICAgIDxGcmFnbWVudCBrZXk9e2Ake2NhdGVnb3J5fS1mcmFnbWVudGB9PlxuICAgICAgICB7ISFpdGVtSW5kZXggJiYgPERpdmlkZXIga2V5PXtgJHtjYXRlZ29yeX0tZGl2aWRlcmB9IC8+fVxuICAgICAgICA8SGVhZGVyIGtleT17YCR7Y2F0ZWdvcnl9LWhlYWRlcmB9PntjYXRlZ29yeX08L0hlYWRlcj5cbiAgICAgICAge2dldE1lbnVJdGVtc0J5Q2F0ZWdvcnkoY2F0ZWdvcnkpfVxuICAgICAgPC9GcmFnbWVudD5cbiAgICApKTtcbiAgcmV0dXJuIDxNZW51IHsuLi5tZW51UHJvcHN9PntpdGVtc308L01lbnU+O1xufTtcblxuQXV0b0NvbXBsZXRlTWVudS5wcm9wVHlwZXMgPSB7XG4gIHJlc3VsdHM6IFByb3BUeXBlcy5hcnJheSxcbiAgbWVudVByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxufTtcblxuQXV0b0NvbXBsZXRlTWVudS5kZWZhdWx0UHJvcHMgPSB7XG4gIHJlc3VsdHM6IFtdLFxuICBtZW51UHJvcHM6IHt9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQXV0b0NvbXBsZXRlTWVudTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9jb21wb25lbnRzL0F1dG9Db21wbGV0ZU1lbnUuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuY29uc3QgU3Vic3RyaW5nV3JhcHBlciA9ICh7IGNoaWxkcmVuLCBzdWJzdHJpbmcsIEVsZW1lbnQgfSkgPT4ge1xuICBjb25zdCByZWdleFN0cmluZyA9ICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoYCgke3N1YnN0cmluZ30pYCwgJ2dpJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHN1YnN0cmluZztcbiAgICB9XG4gIH07XG4gIGNvbnN0IHNwaWx0dGVkVGV4dCA9ICgpID0+IHtcbiAgICBjb25zdCBwYXJ0cyA9IGNoaWxkcmVuLnNwbGl0KHJlZ2V4U3RyaW5nKCkpO1xuICAgIGNvbnN0IHdyYXBwZWRUZXh0ID0gW107XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICB3cmFwcGVkVGV4dFtpXSA9IChcbiAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17YCR7aX0tZnJhZ21lbnRgfT5cbiAgICAgICAgICB7cGFydHNbaV19XG4gICAgICAgICAge3BhcnRzW2kgKyAxXSAmJiA8RWxlbWVudCBrZXk9e2l9PntwYXJ0c1tpICsgMV19PC9FbGVtZW50Pn1cbiAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB3cmFwcGVkVGV4dDtcbiAgfTtcblxuICByZXR1cm4gPFJlYWN0LkZyYWdtZW50PntzcGlsdHRlZFRleHQoKX08L1JlYWN0LkZyYWdtZW50Pjtcbn07XG5cblN1YnN0cmluZ1dyYXBwZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzdWJzdHJpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgRWxlbWVudDogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5TdWJzdHJpbmdXcmFwcGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgRWxlbWVudDogJ2InLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU3Vic3RyaW5nV3JhcHBlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9TdWJzdHJpbmdXcmFwcGVyL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmNvbnN0IEF1dG9Db21wbGV0ZUVycm9yID0gKHsgZXJyb3IgfSkgPT4gKFxuICA8ZGl2IGNsYXNzTmFtZT1cImF1dG9jb21wbGV0ZS1lcnJvclwiPntlcnJvcn08L2Rpdj5cbik7XG5cbkF1dG9Db21wbGV0ZUVycm9yLnByb3BUeXBlcyA9IHtcbiAgZXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5BdXRvQ29tcGxldGVFcnJvci5kZWZhdWx0UHJvcHMgPSB7XG4gIGVycm9yOiBudWxsLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQXV0b0NvbXBsZXRlRXJyb3I7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRvQ29tcGxldGUvY29tcG9uZW50cy9BdXRvQ29tcGxldGVFcnJvci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQXV0b0NvbXBsZXRlQ2xlYXJCdXR0b24gZnJvbSAnLi9BdXRvQ29tcGxldGVDbGVhckJ1dHRvbic7XG5cbmNvbnN0IEF1dG9Db21wbGV0ZUF1eCA9ICh7IC4uLnByb3BzIH0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJhdXRvY29tcGxldGUtYXV4XCI+XG4gICAgPEF1dG9Db21wbGV0ZUNsZWFyQnV0dG9uIHsuLi5wcm9wc30gLz5cbiAgPC9kaXY+XG4pO1xuXG5BdXRvQ29tcGxldGVBdXgucHJvcFR5cGVzID0ge1xuICAuLi5BdXRvQ29tcGxldGVDbGVhckJ1dHRvbi5wcm9wVHlwZXMsXG59O1xuXG5BdXRvQ29tcGxldGVBdXguZGVmYXVsdFByb3BzID0ge1xuICAuLi5BdXRvQ29tcGxldGVDbGVhckJ1dHRvbi5kZWZhdWx0UHJvcHMsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBdXRvQ29tcGxldGVBdXg7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRvQ29tcGxldGUvY29tcG9uZW50cy9BdXRvQ29tcGxldGVBdXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBVVUlEIGZyb20gJ3V1aWQvdjEnO1xuaW1wb3J0IHsgSWNvbiwgT3ZlcmxheVRyaWdnZXIsIFRvb2x0aXAgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbmNvbnN0IEF1dG9Db21wbGV0ZUNsZWFyQnV0dG9uID0gKHsgb25DbGVhciB9KSA9PiAoXG4gIDxPdmVybGF5VHJpZ2dlclxuICAgIG92ZXJsYXk9ezxUb29sdGlwIGlkPXtVVUlEKCl9PntfXygnQ2xlYXInKX08L1Rvb2x0aXA+fVxuICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgdHJpZ2dlcj17Wydob3ZlcicsICdmb2N1cyddfVxuICA+XG4gICAgPEljb25cbiAgICAgIG5hbWU9XCJjbG9zZVwiXG4gICAgICBjbGFzc05hbWU9XCJhdXRvY29tcGxldGUtY2xlYXItYnV0dG9uXCJcbiAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgLz5cbiAgPC9PdmVybGF5VHJpZ2dlcj5cbik7XG5cbkF1dG9Db21wbGV0ZUNsZWFyQnV0dG9uLnByb3BUeXBlcyA9IHtcbiAgb25DbGVhcjogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5BdXRvQ29tcGxldGVDbGVhckJ1dHRvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIG9uQ2xlYXI6IG5vb3AsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBdXRvQ29tcGxldGVDbGVhckJ1dHRvbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1dG9Db21wbGV0ZS9jb21wb25lbnRzL0F1dG9Db21wbGV0ZUNsZWFyQnV0dG9uLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVVVJRCBmcm9tICd1dWlkL3YxJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgT3ZlcmxheVRyaWdnZXIsIFRvb2x0aXAgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgQXV0b0NvbXBsZXRlRm9jdXNTaG9ydGN1dCA9ICh7IHVzZUtleVNob3J0Y3V0cyB9KSA9PiB7XG4gIGNvbnN0IHRvb2x0aXAgPSB1c2VLZXlTaG9ydGN1dHMgJiYgKFxuICAgIDxUb29sdGlwIGlkPXtVVUlEKCl9PntfXyhcIlByZXNzICcgLyAnIHRvIGZvY3VzIG9uIHNlYXJjaFwiKX08L1Rvb2x0aXA+XG4gICk7XG4gIHJldHVybiAoXG4gICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICBvdmVybGF5PXt0b29sdGlwfVxuICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgIHRyaWdnZXI9e1snaG92ZXInLCAnZm9jdXMnXX1cbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgJ2F1dG9jb21wbGV0ZS1mb2N1cy1zaG9ydGN1dCcsXG4gICAgICAgICAgIXVzZUtleVNob3J0Y3V0cyA/ICdoaWRlJyA6ICcnXG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIC9cbiAgICAgIDwvc3Bhbj5cbiAgICA8L092ZXJsYXlUcmlnZ2VyPlxuICApO1xufTtcblxuQXV0b0NvbXBsZXRlRm9jdXNTaG9ydGN1dC5wcm9wVHlwZXMgPSB7XG4gIHVzZUtleVNob3J0Y3V0czogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5BdXRvQ29tcGxldGVGb2N1c1Nob3J0Y3V0LmRlZmF1bHRQcm9wcyA9IHtcbiAgdXNlS2V5U2hvcnRjdXRzOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF1dG9Db21wbGV0ZUZvY3VzU2hvcnRjdXQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRvQ29tcGxldGUvY29tcG9uZW50cy9BdXRvQ29tcGxldGVGb2N1c1Nob3J0Y3V0LmpzIiwiZXhwb3J0IGNvbnN0IEtFWUNPREVTID0ge1xuICBFTlRFUjogMTMsXG4gIEZXRF9TTEFTSDogNDcsXG4gIEJBQ0tfU0xBU0g6IDQ2LFxuICBFU0M6IDI3LFxuICBUQUJfS0VZOiA5LFxufTtcbmV4cG9ydCBkZWZhdWx0IEtFWUNPREVTO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbW1vbi9rZXlDb2Rlcy5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRvQ29tcGxldGUvYXV0by1jb21wbGV0ZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSAyNjlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcblxuaW1wb3J0IHtcbiAgTEFZT1VUX0lOSVRJQUxJWkUsXG4gIExBWU9VVF9TSE9XX0xPQURJTkcsXG4gIExBWU9VVF9ISURFX0xPQURJTkcsXG4gIExBWU9VVF9DSEFOR0VfQUNUSVZFLFxuICBMQVlPVVRfRVhQQU5ELFxuICBMQVlPVVRfQ09MTEFQU0UsXG59IGZyb20gJy4vTGF5b3V0Q29uc3RhbnRzJztcblxuY29uc3QgaW5pdGlhbFN0YXRlID0gSW1tdXRhYmxlKHtcbiAgaXRlbXM6IFtdLFxuICBpc0xvYWRpbmc6IGZhbHNlLFxuICBpc0NvbGxhcHNlZDogZmFsc2UsXG4gIGFjdGl2ZU1lbnU6ICdpbml0aWFsQWN0aXZlJyxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCAoc3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbikgPT4ge1xuICBjb25zdCB7IHBheWxvYWQsIHR5cGUgfSA9IGFjdGlvbjtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIExBWU9VVF9JTklUSUFMSVpFOlxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIC5zZXQoJ2l0ZW1zJywgcGF5bG9hZC5pdGVtcylcbiAgICAgICAgLnNldCgnYWN0aXZlTWVudScsIHBheWxvYWQuYWN0aXZlTWVudSlcbiAgICAgICAgLnNldCgnaXNDb2xsYXBzZWQnLCBwYXlsb2FkLmlzQ29sbGFwc2VkKVxuICAgICAgICAuc2V0KCdjdXJyZW50T3JnYW5pemF0aW9uJywgcGF5bG9hZC5vcmdhbml6YXRpb24pXG4gICAgICAgIC5zZXQoJ2N1cnJlbnRMb2NhdGlvbicsIHBheWxvYWQubG9jYXRpb24pO1xuXG4gICAgY2FzZSBMQVlPVVRfU0hPV19MT0FESU5HOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnaXNMb2FkaW5nJywgdHJ1ZSk7XG5cbiAgICBjYXNlIExBWU9VVF9ISURFX0xPQURJTkc6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdpc0xvYWRpbmcnLCBmYWxzZSk7XG5cbiAgICBjYXNlIExBWU9VVF9DSEFOR0VfQUNUSVZFOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnYWN0aXZlTWVudScsIHBheWxvYWQuYWN0aXZlTWVudSk7XG5cbiAgICBjYXNlIExBWU9VVF9FWFBBTkQ6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdpc0NvbGxhcHNlZCcsIGZhbHNlKTtcblxuICAgIGNhc2UgTEFZT1VUX0NPTExBUFNFOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnaXNDb2xsYXBzZWQnLCB0cnVlKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvTGF5b3V0UmVkdWNlci5qcyIsImltcG9ydCB7IGdldFZhbHVlIH0gZnJvbSAnLi4vLi4vY29tbW9uL1Nlc3Npb25TdG9yYWdlJztcblxuZXhwb3J0IGNvbnN0IGdldElzTmF2YmFyQ29sbGFwc2VkID0gKCkgPT5cbiAgISFnZXRWYWx1ZShgW1wibmF2Q29sbGFwc2VkXCIsXCJwaW5uZWRQYXRoXCJdYCk/Lm5hdkNvbGxhcHNlZDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9MYXlvdXRTZXNzaW9uU3RvcmFnZS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IFZlcnRpY2FsTmF2IH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5cbmltcG9ydCB7XG4gIGhhbmRsZU1lbnVDbGljayxcbiAgbGF5b3V0UHJvcFR5cGVzLFxuICBsYXlvdXREZWZhdWx0UHJvcHMsXG59IGZyb20gJy4vTGF5b3V0SGVscGVyJztcbmltcG9ydCBMYXlvdXRDb250YWluZXIgZnJvbSAnLi9jb21wb25lbnRzL0xheW91dENvbnRhaW5lcic7XG5pbXBvcnQgSGVhZGVyVG9vbGJhciBmcm9tICcuL2NvbXBvbmVudHMvVG9vbGJhci9IZWFkZXJUb29sYmFyJztcbmltcG9ydCAnLi9sYXlvdXQuc2Nzcyc7XG5cbmNvbnN0IExheW91dCA9ICh7XG4gIGl0ZW1zLFxuICBkYXRhLFxuICBpc0xvYWRpbmcsXG4gIGlzQ29sbGFwc2VkLFxuICBuYXZpZ2F0ZSxcbiAgZXhwYW5kTGF5b3V0TWVudXMsXG4gIGNvbGxhcHNlTGF5b3V0TWVudXMsXG4gIGNoYW5nZUFjdGl2ZU1lbnUsXG4gIGFjdGl2ZU1lbnUsXG4gIGNoaWxkcmVuLFxufSkgPT4gKFxuICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgPFZlcnRpY2FsTmF2XG4gICAgICBob3ZlckRlbGF5PXsxMDB9XG4gICAgICBpdGVtcz17aXRlbXN9XG4gICAgICBvbkl0ZW1DbGljaz17cHJpbWFyeSA9PlxuICAgICAgICBoYW5kbGVNZW51Q2xpY2socHJpbWFyeSwgYWN0aXZlTWVudSwgY2hhbmdlQWN0aXZlTWVudSlcbiAgICAgIH1cbiAgICAgIG9uTmF2aWdhdGU9eyh7IGhyZWYgfSkgPT4gbmF2aWdhdGUoaHJlZil9XG4gICAgICBhY3RpdmVQYXRoPXtgLyR7X18oYWN0aXZlTWVudSB8fCAnYWN0aXZlJyl9L2B9XG4gICAgICBvbkNvbGxhcHNlPXtjb2xsYXBzZUxheW91dE1lbnVzfVxuICAgICAgb25FeHBhbmQ9e2V4cGFuZExheW91dE1lbnVzfVxuICAgID5cbiAgICAgIDxWZXJ0aWNhbE5hdi5NYXN0aGVhZD5cbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJwZi1jLXBhZ2VfX2hlYWRlciBwZi1jLXBhZ2VcIiBpZD1cIm5hdmJhci1oZWFkZXJcIj5cbiAgICAgICAgICA8VmVydGljYWxOYXYuQnJhbmRcbiAgICAgICAgICAgIHRpdGxlPXtkYXRhLmJyYW5kfVxuICAgICAgICAgICAgaWNvbkltZz17ZGF0YS5sb2dvfVxuICAgICAgICAgICAgaHJlZj17ZGF0YS5yb290fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEhlYWRlclRvb2xiYXJcbiAgICAgICAgICAgIHsuLi5kYXRhfVxuICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICBjaGFuZ2VBY3RpdmVNZW51PXtjaGFuZ2VBY3RpdmVNZW51fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvaGVhZGVyPlxuICAgICAgPC9WZXJ0aWNhbE5hdi5NYXN0aGVhZD5cbiAgICA8L1ZlcnRpY2FsTmF2PlxuICAgIDxMYXlvdXRDb250YWluZXIgaXNDb2xsYXBzZWQ9e2lzQ29sbGFwc2VkfT57Y2hpbGRyZW59PC9MYXlvdXRDb250YWluZXI+XG4gIDwvUmVhY3QuRnJhZ21lbnQ+XG4pO1xuXG5MYXlvdXQucHJvcFR5cGVzID0gbGF5b3V0UHJvcFR5cGVzO1xuTGF5b3V0LmRlZmF1bHRQcm9wcyA9IGxheW91dERlZmF1bHRQcm9wcztcblxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC5qcyIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBMYXlvdXRDb250YWluZXIgPSAoeyBpc0NvbGxhcHNlZCwgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCBjbGFzc2VzID0gJ3JlYWN0LWNvbnRhaW5lciBjb250YWluZXItZmx1aWQgbmF2LXBmLXBlcnNpc3RlbnQtc2Vjb25kYXJ5JztcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc0NvbGxhcHNlZCkgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdjb2xsYXBzZWQtbmF2Jyk7XG4gICAgZWxzZSBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2NvbGxhcHNlZC1uYXYnKTtcbiAgfSwgW2lzQ29sbGFwc2VkXSk7XG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlc30+e2NoaWxkcmVufTwvZGl2Pjtcbn07XG5cbkxheW91dENvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIGlzQ29sbGFwc2VkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5MYXlvdXRDb250YWluZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogbnVsbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExheW91dENvbnRhaW5lcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9jb21wb25lbnRzL0xheW91dENvbnRhaW5lci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBQYWdlSGVhZGVyVG9vbHMsXG4gIFBhZ2VIZWFkZXJUb29sc0dyb3VwLFxuICBQYWdlSGVhZGVyVG9vbHNJdGVtLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCBUYXhvbm9teVN3aXRjaGVyIGZyb20gJy4uL1RheG9ub215U3dpdGNoZXIvVGF4b25vbXlTd2l0Y2hlcic7XG5pbXBvcnQgVXNlckRyb3Bkb3ducyBmcm9tICcuL1VzZXJEcm9wZG93bnMnO1xuaW1wb3J0IE5vdGlmaWNhdGlvbkNvbnRhaW5lciBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb25zJztcbmltcG9ydCBJbXBlcnNvbmF0ZUljb24gZnJvbSAnLi4vSW1wZXJzb25hdGVJY29uJztcbmltcG9ydCB7XG4gIGxheW91dFByb3BUeXBlcyxcbiAgbGF5b3V0RGVmYXVsdFByb3BzLFxuICBkYXRhUHJvcFR5cGUsXG59IGZyb20gJy4uLy4uL0xheW91dEhlbHBlcic7XG5pbXBvcnQgSW5zdGFuY2VUaXRsZVZpZXdlciBmcm9tICcuL0luc3RhbmNlVGl0bGVWaWV3ZXInO1xuaW1wb3J0ICcuL0hlYWRlclRvb2xiYXIuc2Nzcyc7XG5cbmNvbnN0IEhlYWRlclRvb2xiYXIgPSAoe1xuICBsb2NhdGlvbnMsXG4gIG9yZ3MsXG4gIG5vdGlmaWNhdGlvbl91cmw6IG5vdGlmaWNhdGlvblVybCxcbiAgdXNlcixcbiAgc3RvcF9pbXBlcnNvbmF0aW9uX3VybDogc3RvcEltcGVyc29uYXRpb25VcmwsXG4gIGluc3RhbmNlX3RpdGxlOiBpbnN0YW5jZVRpdGxlLFxuICBpc0xvYWRpbmcsXG4gIGNoYW5nZUFjdGl2ZU1lbnUsXG59KSA9PiAoXG4gIDxQYWdlSGVhZGVyVG9vbHMgaWQ9XCJkYXRhLXRvb2xiYXJcIj5cbiAgICA8UGFnZUhlYWRlclRvb2xzR3JvdXAgY2xhc3NOYW1lPVwiaGVhZGVyLXRvb2wtaXRlbS1oaWRkZW4tbGdcIj5cbiAgICAgIDxUYXhvbm9teVN3aXRjaGVyXG4gICAgICAgIGxvY2F0aW9ucz17bG9jYXRpb25zLmF2YWlsYWJsZV9sb2NhdGlvbnMgfHwgW119XG4gICAgICAgIG9yZ2FuaXphdGlvbnM9e29yZ3MuYXZhaWxhYmxlX29yZ2FuaXphdGlvbnMgfHwgW119XG4gICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgLz5cbiAgICA8L1BhZ2VIZWFkZXJUb29sc0dyb3VwPlxuICAgIDxQYWdlSGVhZGVyVG9vbHNHcm91cD5cbiAgICAgIDxQYWdlSGVhZGVyVG9vbHNJdGVtPlxuICAgICAgICA8SW5zdGFuY2VUaXRsZVZpZXdlciB0aXRsZT17aW5zdGFuY2VUaXRsZX0gLz5cbiAgICAgIDwvUGFnZUhlYWRlclRvb2xzSXRlbT5cbiAgICAgIDxQYWdlSGVhZGVyVG9vbHNJdGVtIGNsYXNzTmFtZT1cIm5vdGlmaWNhdGlvbnNfY29udGFpbmVyXCI+XG4gICAgICAgIDxOb3RpZmljYXRpb25Db250YWluZXIgZGF0YT17eyB1cmw6IG5vdGlmaWNhdGlvblVybCB9fSAvPlxuICAgICAgPC9QYWdlSGVhZGVyVG9vbHNJdGVtPlxuICAgICAge3VzZXIuaW1wZXJzb25hdGVkX2J5ICYmIChcbiAgICAgICAgPFBhZ2VIZWFkZXJUb29sc0l0ZW0gY2xhc3NOYW1lPVwiaW1wZXJzb25hdGlvbi1pdGVtXCI+XG4gICAgICAgICAgPEltcGVyc29uYXRlSWNvbiBzdG9wSW1wZXJzb25hdGlvblVybD17c3RvcEltcGVyc29uYXRpb25Vcmx9IC8+XG4gICAgICAgIDwvUGFnZUhlYWRlclRvb2xzSXRlbT5cbiAgICAgICl9XG5cbiAgICAgIDxQYWdlSGVhZGVyVG9vbHNJdGVtIGNsYXNzTmFtZT1cImhlYWRlci10b29sLWl0ZW0taGlkZGVuLWxnIHVzZXItbmF2LWl0ZW1cIj5cbiAgICAgICAgPFVzZXJEcm9wZG93bnNcbiAgICAgICAgICBub3RpZmljYXRpb25Vcmw9e25vdGlmaWNhdGlvblVybH1cbiAgICAgICAgICB1c2VyPXt1c2VyfVxuICAgICAgICAgIGNoYW5nZUFjdGl2ZU1lbnU9e2NoYW5nZUFjdGl2ZU1lbnV9XG4gICAgICAgIC8+XG4gICAgICA8L1BhZ2VIZWFkZXJUb29sc0l0ZW0+XG4gICAgPC9QYWdlSGVhZGVyVG9vbHNHcm91cD5cbiAgPC9QYWdlSGVhZGVyVG9vbHM+XG4pO1xuSGVhZGVyVG9vbGJhci5wcm9wVHlwZXMgPSB7XG4gIC4uLmRhdGFQcm9wVHlwZSxcbiAgaXNMb2FkaW5nOiBsYXlvdXRQcm9wVHlwZXMuaXNMb2FkaW5nLFxuICBjaGFuZ2VBY3RpdmVNZW51OiBsYXlvdXRQcm9wVHlwZXMuY2hhbmdlQWN0aXZlTWVudSxcbn07XG5cbkhlYWRlclRvb2xiYXIuZGVmYXVsdFByb3BzID0ge1xuICBpc0xvYWRpbmc6IGxheW91dERlZmF1bHRQcm9wcy5pc0xvYWRpbmcsXG4gIGNoYW5nZUFjdGl2ZU1lbnU6IGxheW91dERlZmF1bHRQcm9wcy5jaGFuZ2VBY3RpdmVNZW51LFxufTtcbmV4cG9ydCBkZWZhdWx0IEhlYWRlclRvb2xiYXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvY29tcG9uZW50cy9Ub29sYmFyL0hlYWRlclRvb2xiYXIuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IFRvb2xiYXJJdGVtLCBTcGlubmVyIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5pbXBvcnQge1xuICB1c2VGb3JlbWFuT3JnYW5pemF0aW9uLFxuICB1c2VGb3JlbWFuTG9jYXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uL1Jvb3QvQ29udGV4dC9Gb3JlbWFuQ29udGV4dCc7XG5cbmltcG9ydCB7IGxvY2F0aW9uUHJvcFR5cGUsIG9yZ2FuaXphdGlvblByb3BUeXBlIH0gZnJvbSAnLi4vLi4vTGF5b3V0SGVscGVyJztcbmltcG9ydCBUYXhvbm9teURyb3Bkb3duIGZyb20gJy4vVGF4b25vbXlEcm9wZG93bic7XG5cbmNvbnN0IFRheG9ub215U3dpdGNoZXIgPSAoeyBvcmdhbml6YXRpb25zLCBsb2NhdGlvbnMsIGlzTG9hZGluZyB9KSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRMb2NhdGlvbiA9IHVzZUZvcmVtYW5Mb2NhdGlvbigpPy50aXRsZTtcbiAgY29uc3QgY3VycmVudE9yZ2FuaXphdGlvbiA9IHVzZUZvcmVtYW5Pcmdhbml6YXRpb24oKT8udGl0bGU7XG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPFRvb2xiYXJJdGVtPlxuICAgICAgICA8VGF4b25vbXlEcm9wZG93blxuICAgICAgICAgIHRheG9ub215VHlwZT1cIm9yZ2FuaXphdGlvblwiXG4gICAgICAgICAgY3VycmVudFRheG9ub215PXtjdXJyZW50T3JnYW5pemF0aW9ufVxuICAgICAgICAgIHRheG9ub21pZXM9e29yZ2FuaXphdGlvbnN9XG4gICAgICAgIC8+XG4gICAgICA8L1Rvb2xiYXJJdGVtPlxuICAgICAgPFRvb2xiYXJJdGVtPlxuICAgICAgICA8VGF4b25vbXlEcm9wZG93blxuICAgICAgICAgIHRheG9ub215VHlwZT1cImxvY2F0aW9uXCJcbiAgICAgICAgICBjdXJyZW50VGF4b25vbXk9e2N1cnJlbnRMb2NhdGlvbn1cbiAgICAgICAgICB0YXhvbm9taWVzPXtsb2NhdGlvbnN9XG4gICAgICAgIC8+XG4gICAgICA8L1Rvb2xiYXJJdGVtPlxuICAgICAge2lzTG9hZGluZyAmJiA8U3Bpbm5lciBzaXplPVwibWRcIiAvPn1cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufTtcblRheG9ub215U3dpdGNoZXIucHJvcFR5cGVzID0ge1xuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLFxuICBvcmdhbml6YXRpb25zOiBQcm9wVHlwZXMuYXJyYXlPZihvcmdhbml6YXRpb25Qcm9wVHlwZSkuaXNSZXF1aXJlZCxcbiAgbG9jYXRpb25zOiBQcm9wVHlwZXMuYXJyYXlPZihsb2NhdGlvblByb3BUeXBlKS5pc1JlcXVpcmVkLFxufTtcblxuVGF4b25vbXlTd2l0Y2hlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGlzTG9hZGluZzogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBUYXhvbm9teVN3aXRjaGVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvVGF4b25vbXlTd2l0Y2hlci9UYXhvbm9teVN3aXRjaGVyLmpzIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7XG4gIENvbnRleHRTZWxlY3RvcixcbiAgQ29udGV4dFNlbGVjdG9ySXRlbSxcbiAgQ29udGV4dFNlbGVjdG9yRm9vdGVyLFxuICBCdXR0b24sXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IHsgQ2hlY2tJY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCAnLi9UYXhvbm9teURyb3Bkb3duLnNjc3MnO1xuXG5jb25zdCBUYXhvbm9teURyb3Bkb3duID0gKHsgdGF4b25vbXlUeXBlLCBjdXJyZW50VGF4b25vbXksIHRheG9ub21pZXMgfSkgPT4ge1xuICBjb25zdCBpZCA9IGAke3RheG9ub215VHlwZX0tZHJvcGRvd25gO1xuICBjb25zdCBhbnlUYXhvbm9teVVSTCA9IGZvcmVtYW5VcmwoYC8ke3RheG9ub215VHlwZX1zL2NsZWFyYCk7XG4gIGNvbnN0IG1hbmFnZVRheG9ub215VVJMID0gZm9yZW1hblVybChgLyR7dGF4b25vbXlUeXBlfXNgKTtcbiAgY29uc3QgYW55VGF4b25vbXlUZXh0ID1cbiAgICB0YXhvbm9teVR5cGUgPT09ICdvcmdhbml6YXRpb24nXG4gICAgICA/IF9fKCdBbnkgT3JnYW5pemF0aW9uJylcbiAgICAgIDogX18oJ0FueSBMb2NhdGlvbicpO1xuXG4gIGNvbnN0IFtzZWFyY2hWYWx1ZSwgc2V0U2VhcmNoVmFsdWVdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZmlsdGVyZWRJdGVtcywgc2V0RmlsdGVyZWRJdGVtc10gPSB1c2VTdGF0ZSh0YXhvbm9taWVzKTtcblxuICBjb25zdCBvblNlYXJjaEJ1dHRvbkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGZpbHRlcmVkID1cbiAgICAgIHNlYXJjaFZhbHVlID09PSAnJ1xuICAgICAgICA/IHRheG9ub21pZXNcbiAgICAgICAgOiB0YXhvbm9taWVzLmZpbHRlcihpdGVtID0+XG4gICAgICAgICAgICBpdGVtLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICApO1xuICAgIHNldEZpbHRlcmVkSXRlbXMoZmlsdGVyZWQgfHwgW10pO1xuICB9LCBbc2VhcmNoVmFsdWUsIHRheG9ub21pZXNdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG9uU2VhcmNoQnV0dG9uQ2xpY2soKTtcbiAgfSwgW3NlYXJjaFZhbHVlLCBvblNlYXJjaEJ1dHRvbkNsaWNrXSk7XG5cbiAgY29uc3Qgb25Ub2dnbGUgPSAoZXZlbnQsIG5ld0lzT3BlbikgPT4ge1xuICAgIHNldElzT3BlbihuZXdJc09wZW4pO1xuICB9O1xuICBjb25zdCBvblNlbGVjdCA9ICgpID0+IHtcbiAgICBzZXRJc09wZW4oIWlzT3Blbik7XG4gIH07XG4gIGNvbnN0IG9uU2VhcmNoSW5wdXRDaGFuZ2UgPSAodmFsdWUsIGV2ZW50KSA9PiB7XG4gICAgc2V0U2VhcmNoVmFsdWUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfTtcblxuICBjb25zdCBzZWxlY3RlZEljb24gPSA8Q2hlY2tJY29uIHNpemU9XCJzbVwiIGNsYXNzTmFtZT1cImN1cnJlbnQtdGF4b25vbXktdlwiIC8+O1xuXG4gIGNvbnN0IGFueVRheG9ub215SXRlbSA9IChcbiAgICA8Q29udGV4dFNlbGVjdG9ySXRlbVxuICAgICAga2V5PXswfVxuICAgICAgY2xhc3NOYW1lPXtgJHt0YXhvbm9teVR5cGV9c19jbGVhcmB9XG4gICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24oYW55VGF4b25vbXlVUkwpO1xuICAgICAgfX1cbiAgICAgIGlzRGlzYWJsZWQ9eyFjdXJyZW50VGF4b25vbXl9XG4gICAgPlxuICAgICAgeyFjdXJyZW50VGF4b25vbXkgJiYgc2VsZWN0ZWRJY29ufVxuICAgICAge2FueVRheG9ub215VGV4dH1cbiAgICA8L0NvbnRleHRTZWxlY3Rvckl0ZW0+XG4gICk7XG4gIGNvbnN0IGZvb3RlciA9IChcbiAgICA8Q29udGV4dFNlbGVjdG9yRm9vdGVyPlxuICAgICAgPEJ1dHRvblxuICAgICAgICBpc1NtYWxsXG4gICAgICAgIGNvbXBvbmVudD1cImFcIlxuICAgICAgICBjbGFzc05hbWU9e3RheG9ub215VHlwZX1cbiAgICAgICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gICAgICAgIGhyZWY9e21hbmFnZVRheG9ub215VVJMfVxuICAgICAgPlxuICAgICAgICB7dGF4b25vbXlUeXBlID09PSAnb3JnYW5pemF0aW9uJ1xuICAgICAgICAgID8gX18oJ01hbmFnZSBPcmdhbml6YXRpb25zJylcbiAgICAgICAgICA6IF9fKCdNYW5hZ2UgTG9jYXRpb25zJyl9XG4gICAgICA8L0J1dHRvbj5cbiAgICA8L0NvbnRleHRTZWxlY3RvckZvb3Rlcj5cbiAgKTtcbiAgcmV0dXJuIChcbiAgICA8Q29udGV4dFNlbGVjdG9yXG4gICAgICBpZD17aWR9XG4gICAgICB0b2dnbGVUZXh0PXtjdXJyZW50VGF4b25vbXkgfHwgYW55VGF4b25vbXlUZXh0fVxuICAgICAgb25TZWFyY2hJbnB1dENoYW5nZT17b25TZWFyY2hJbnB1dENoYW5nZX1cbiAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgc2VhcmNoSW5wdXRWYWx1ZT17c2VhcmNoVmFsdWV9XG4gICAgICBvblRvZ2dsZT17b25Ub2dnbGV9XG4gICAgICBvblNlbGVjdD17b25TZWxlY3R9XG4gICAgICBvblNlYXJjaEJ1dHRvbkNsaWNrPXtvblNlYXJjaEJ1dHRvbkNsaWNrfVxuICAgICAgc2NyZWVuUmVhZGVyTGFiZWw9XCJTZWxlY3RlZCBUYXhvbm9teTpcIlxuICAgICAgY2xhc3NOYW1lPVwiY29udGV4dC1zZWxlY3RvclwiXG4gICAgICBmb290ZXI9e2Zvb3Rlcn1cbiAgICA+XG4gICAgICB7YW55VGF4b25vbXlJdGVtfVxuICAgICAge2ZpbHRlcmVkSXRlbXMubWFwKCh7IHRpdGxlLCBocmVmIH0sIGkpID0+IChcbiAgICAgICAgPENvbnRleHRTZWxlY3Rvckl0ZW1cbiAgICAgICAgICBrZXk9e2kgKyAxfVxuICAgICAgICAgIGlkPXtgc2VsZWN0X3RheG9ub215XyR7dGl0bGV9YH1cbiAgICAgICAgICBjbGFzc05hbWU9e2Ake3RheG9ub215VHlwZX1fbWVudWl0ZW1gfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChocmVmKSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24oaHJlZik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBpc0Rpc2FibGVkPXt0aXRsZSA9PT0gY3VycmVudFRheG9ub215fVxuICAgICAgICA+XG4gICAgICAgICAge3RpdGxlID09PSBjdXJyZW50VGF4b25vbXkgJiYgc2VsZWN0ZWRJY29ufVxuICAgICAgICAgIHt0aXRsZX1cbiAgICAgICAgPC9Db250ZXh0U2VsZWN0b3JJdGVtPlxuICAgICAgKSl9XG4gICAgPC9Db250ZXh0U2VsZWN0b3I+XG4gICk7XG59O1xuXG5UYXhvbm9teURyb3Bkb3duLnByb3BUeXBlcyA9IHtcbiAgdGF4b25vbXlUeXBlOiBQcm9wVHlwZXMub25lT2YoWydvcmdhbml6YXRpb24nLCAnbG9jYXRpb24nXSkuaXNSZXF1aXJlZCxcbiAgY3VycmVudFRheG9ub215OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0YXhvbm9taWVzOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgaHJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIH0pXG4gICkuaXNSZXF1aXJlZCxcbn07XG5cblRheG9ub215RHJvcGRvd24uZGVmYXVsdFByb3BzID0ge1xuICBjdXJyZW50VGF4b25vbXk6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRheG9ub215RHJvcGRvd247XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvY29tcG9uZW50cy9UYXhvbm9teVN3aXRjaGVyL1RheG9ub215RHJvcGRvd24uanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvVGF4b25vbXlTd2l0Y2hlci9UYXhvbm9teURyb3Bkb3duLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDI3N1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7XG4gIERyb3Bkb3duLFxuICBEcm9wZG93blRvZ2dsZSxcbiAgRHJvcGRvd25JdGVtLFxuICBEcm9wZG93blNlcGFyYXRvcixcbn0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5pbXBvcnQgeyBVc2VyQWx0SWNvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25zJztcblxuaW1wb3J0IHsgdXNlclByb3BUeXBlIH0gZnJvbSAnLi4vLi4vTGF5b3V0SGVscGVyJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgVXNlckRyb3Bkb3ducyA9ICh7XG4gIHVzZXIsXG4gIGNoYW5nZUFjdGl2ZU1lbnUsXG4gIG5vdGlmaWNhdGlvblVybCxcbiAgaW5zdGFuY2VUaXRsZSxcbiAgLi4ucHJvcHNcbn0pID0+IHtcbiAgY29uc3QgW3VzZXJEcm9wZG93bk9wZW4sIHNldFVzZXJEcm9wZG93bk9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IG9uRHJvcGRvd25Ub2dnbGUgPSBuZXdVc2VyRHJvcGRvd25PcGVuID0+IHtcbiAgICBzZXRVc2VyRHJvcGRvd25PcGVuKG5ld1VzZXJEcm9wZG93bk9wZW4pO1xuICB9O1xuICBjb25zdCBvbkRyb3Bkb3duU2VsZWN0ID0gKCkgPT4ge1xuICAgIHNldFVzZXJEcm9wZG93bk9wZW4odXNlckRyb3Bkb3duT3Blbik7XG4gIH07XG4gIGNvbnN0IHVzZXJJbmZvID0gdXNlci5jdXJyZW50X3VzZXI7XG5cbiAgY29uc3QgdXNlckRyb3Bkb3duSXRlbXMgPSB1c2VyLnVzZXJfZHJvcGRvd25bMF0uY2hpbGRyZW4ubWFwKChpdGVtLCBpKSA9PlxuICAgIGl0ZW0udHlwZSA9PT0gJ2RpdmlkZXInID8gKFxuICAgICAgPERyb3Bkb3duU2VwYXJhdG9yIGtleT17aX0gLz5cbiAgICApIDogKFxuICAgICAgPERyb3Bkb3duSXRlbVxuICAgICAgICBrZXk9e2l9XG4gICAgICAgIGNsYXNzTmFtZT1cInVzZXJfbWVudWl0ZW1cIlxuICAgICAgICBocmVmPXtpdGVtLnVybH1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIGNoYW5nZUFjdGl2ZU1lbnUoeyB0aXRsZTogJ1VzZXInIH0pO1xuICAgICAgICB9fVxuICAgICAgICB7Li4uaXRlbS5odG1sX29wdGlvbnN9XG4gICAgICA+XG4gICAgICAgIHtfXyhpdGVtLm5hbWUpfVxuICAgICAgPC9Ecm9wZG93bkl0ZW0+XG4gICAgKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgdXNlckluZm8gJiYgKFxuICAgICAgPERyb3Bkb3duXG4gICAgICAgIGlzUGxhaW5cbiAgICAgICAgcG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgIG9uU2VsZWN0PXtvbkRyb3Bkb3duU2VsZWN0fVxuICAgICAgICBpc09wZW49e3VzZXJEcm9wZG93bk9wZW59XG4gICAgICAgIHRvZ2dsZT17XG4gICAgICAgICAgPERyb3Bkb3duVG9nZ2xlIG9uVG9nZ2xlPXtvbkRyb3Bkb3duVG9nZ2xlfT5cbiAgICAgICAgICAgIDxVc2VyQWx0SWNvbiBjbGFzc05hbWU9XCJ1c2VyLWljb25cIiAvPlxuICAgICAgICAgICAge3VzZXJJbmZvLm5hbWV9XG4gICAgICAgICAgPC9Ecm9wZG93blRvZ2dsZT5cbiAgICAgICAgfVxuICAgICAgICBkcm9wZG93bkl0ZW1zPXt1c2VyRHJvcGRvd25JdGVtc31cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICApXG4gICk7XG59O1xuXG5Vc2VyRHJvcGRvd25zLnByb3BUeXBlcyA9IHtcbiAgLyoqIEFkZGl0aW9uYWwgZWxlbWVudCBjc3MgY2xhc3NlcyAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBVc2VyIERhdGEgQXJyYXkgKi9cbiAgdXNlcjogdXNlclByb3BUeXBlLFxuICAvKiogbm90aWZpY2F0aW9uIFVSTCAqL1xuICBub3RpZmljYXRpb25Vcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBjaGFuZ2VBY3RpdmVNZW51IEZ1bmMgKi9cbiAgY2hhbmdlQWN0aXZlTWVudTogUHJvcFR5cGVzLmZ1bmMsXG4gIGluc3RhbmNlVGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuVXNlckRyb3Bkb3ducy5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJycsXG4gIHVzZXI6IHt9LFxuICBub3RpZmljYXRpb25Vcmw6ICcnLFxuICBjaGFuZ2VBY3RpdmVNZW51OiBudWxsLFxuICBpbnN0YW5jZVRpdGxlOiAnJyxcbn07XG5leHBvcnQgZGVmYXVsdCBVc2VyRHJvcGRvd25zO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvVG9vbGJhci9Vc2VyRHJvcGRvd25zLmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9PTkNMSUNLT1VUU0lERV9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfT05DTElDS09VVFNJREVfX1wiXG4vLyBtb2R1bGUgaWQgPSAyNzlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCB7XG4gIE5PVElGSUNBVElPTlMsXG4gIE5PVElGSUNBVElPTlNfVE9HR0xFX0RSQVdFUixcbiAgTk9USUZJQ0FUSU9OU19TRVRfRVhQQU5ERURfR1JPVVAsXG4gIE5PVElGSUNBVElPTlNfTUFSS19BU19SRUFELFxuICBOT1RJRklDQVRJT05TX01BUktfR1JPVVBfQVNfUkVBRCxcbiAgTk9USUZJQ0FUSU9OU19NQVJLX0FTX0NMRUFSLFxuICBOT1RJRklDQVRJT05TX01BUktfR1JPVVBfQVNfQ0xFQVJFRCxcbiAgTk9USUZJQ0FUSU9OU19MSU5LX0NMSUNLRUQsXG59IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgKiBhcyBzZXNzaW9uU3RvcmFnZSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uRHJhd2VyU2Vzc2lvblN0b3JhZ2UnO1xuaW1wb3J0IHsgQVBJLCBnZXQgfSBmcm9tICcuLi8uLi9BUEknO1xuaW1wb3J0IHsgcmVsb2FkUGFnZSB9IGZyb20gJy4uLy4uLy4uLy4uL2ZvcmVtYW5fbmF2aWdhdGlvbic7XG5pbXBvcnQge1xuICBzdG9wSW50ZXJ2YWwsXG4gIHdpdGhJbnRlcnZhbCxcbn0gZnJvbSAnLi4vLi4vbWlkZGxld2FyZXMvSW50ZXJ2YWxNaWRkbGV3YXJlJztcbmltcG9ydCB7IERFRkFVTFRfSU5URVJWQUwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmNvbnN0IGludGVydmFsID0gcHJvY2Vzcy5lbnYuTk9USUZJQ0FUSU9OU19QT0xMSU5HIHx8IERFRkFVTFRfSU5URVJWQUw7XG5cbmNvbnN0IGhhbmRsZU5vdGlmaWNhdGlvblBvbGxpbmdFcnJvciA9IChlcnJvciwgc3RvcE5vdGlmaWNhdGlvblBvbGxpbmcpID0+IHtcbiAgaWYgKGVycm9yLnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMSkge1xuICAgIHN0b3BOb3RpZmljYXRpb25Qb2xsaW5nKCk7XG4gICAgcmVsb2FkUGFnZSgpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc3RhcnROb3RpZmljYXRpb25zUG9sbGluZyA9IHVybCA9PlxuICB3aXRoSW50ZXJ2YWwoXG4gICAgZ2V0KHtcbiAgICAgIGtleTogTk9USUZJQ0FUSU9OUyxcbiAgICAgIHVybCxcbiAgICAgIGhhbmRsZUVycm9yOiBoYW5kbGVOb3RpZmljYXRpb25Qb2xsaW5nRXJyb3IsXG4gICAgfSksXG4gICAgaW50ZXJ2YWxcbiAgKTtcblxuZXhwb3J0IGNvbnN0IHN0b3BOb3RpZmljYXRpb25zUG9sbGluZyA9ICgpID0+IHN0b3BJbnRlcnZhbChOT1RJRklDQVRJT05TKTtcblxuZXhwb3J0IGNvbnN0IG1hcmtBc1JlYWQgPSAoZ3JvdXAsIGlkKSA9PiBkaXNwYXRjaCA9PiB7XG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBOT1RJRklDQVRJT05TX01BUktfQVNfUkVBRCxcbiAgICBwYXlsb2FkOiB7XG4gICAgICBncm91cCxcbiAgICAgIGlkLFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCB1cmwgPSBgL25vdGlmaWNhdGlvbl9yZWNpcGllbnRzLyR7aWR9YDtcbiAgY29uc3QgZGF0YSA9IHsgc2VlbjogdHJ1ZSB9O1xuICBBUEkucHV0KHVybCwgZGF0YSk7XG59O1xuXG5leHBvcnQgY29uc3QgbWFya0dyb3VwQXNSZWFkID0gZ3JvdXAgPT4gZGlzcGF0Y2ggPT4ge1xuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogTk9USUZJQ0FUSU9OU19NQVJLX0dST1VQX0FTX1JFQUQsXG4gICAgcGF5bG9hZDoge1xuICAgICAgZ3JvdXAsXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IHVybCA9IGAvbm90aWZpY2F0aW9uX3JlY2lwaWVudHMvZ3JvdXAvJHtncm91cH1gO1xuICBBUEkucHV0KHVybCk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJOb3RpZmljYXRpb24gPSAoZ3JvdXAsIGlkKSA9PiBkaXNwYXRjaCA9PiB7XG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBOT1RJRklDQVRJT05TX01BUktfQVNfQ0xFQVIsXG4gICAgcGF5bG9hZDoge1xuICAgICAgZ3JvdXAsXG4gICAgICBpZCxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgdXJsID0gYC9ub3RpZmljYXRpb25fcmVjaXBpZW50cy8ke2lkfWA7XG4gIEFQSS5kZWxldGUodXJsKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbGVhckdyb3VwID0gZ3JvdXAgPT4gZGlzcGF0Y2ggPT4ge1xuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogTk9USUZJQ0FUSU9OU19NQVJLX0dST1VQX0FTX0NMRUFSRUQsXG4gICAgcGF5bG9hZDoge1xuICAgICAgZ3JvdXAsXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IHVybCA9IGAvbm90aWZpY2F0aW9uX3JlY2lwaWVudHMvZ3JvdXAvJHtncm91cH1gO1xuICBBUEkuZGVsZXRlKHVybCk7XG59O1xuXG5leHBvcnQgY29uc3QgZXhwYW5kR3JvdXAgPSBncm91cCA9PiAoZGlzcGF0Y2gsIGdldFN0YXRlKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRFeHBhbmRlZCA9IGdldFN0YXRlKCkubm90aWZpY2F0aW9ucy5leHBhbmRlZEdyb3VwO1xuXG4gIGNvbnN0IGdldE5ld0V4cGFuZGVkR3JvdXAgPSAoKSA9PiAoY3VycmVudEV4cGFuZGVkID09PSBncm91cCA/ICcnIDogZ3JvdXApO1xuXG4gIHNlc3Npb25TdG9yYWdlLnNldEV4cGFuZGVkR3JvdXAoZ2V0TmV3RXhwYW5kZWRHcm91cCgpKTtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IE5PVElGSUNBVElPTlNfU0VUX0VYUEFOREVEX0dST1VQLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGdyb3VwOiBnZXROZXdFeHBhbmRlZEdyb3VwKCksXG4gICAgfSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdG9nZ2xlRHJhd2VyID0gKCkgPT4gKGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICBjb25zdCBpc0RyYXdlck9wZW5lZCA9IGdldFN0YXRlKCkubm90aWZpY2F0aW9ucy5pc0RyYXdlck9wZW47XG5cbiAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXNPcGVuZWQoIWlzRHJhd2VyT3BlbmVkKTtcbiAgZGlzcGF0Y2goe1xuICAgIHR5cGU6IE5PVElGSUNBVElPTlNfVE9HR0xFX0RSQVdFUixcbiAgICBwYXlsb2FkOiB7XG4gICAgICB2YWx1ZTogIWlzRHJhd2VyT3BlbmVkLFxuICAgIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsaWNrZWRMaW5rID0gKFxuICB7IGhyZWYsIGV4dGVybmFsID0gZmFsc2UgfSxcbiAgdG9nZ2xlRHJhd2VyQWN0aW9uID0gdG9nZ2xlRHJhd2VyXG4pID0+IGRpc3BhdGNoID0+IHtcbiAgZGlzcGF0Y2godG9nZ2xlRHJhd2VyQWN0aW9uKCkpO1xuXG4gIGNvbnN0IG9wZW5lZFdpbmRvdyA9IHdpbmRvdy5vcGVuKGhyZWYsIGV4dGVybmFsID8gJ19ibGFuaycgOiAnX3NlbGYnKTtcblxuICBpZiAoZXh0ZXJuYWwpIHtcbiAgICBvcGVuZWRXaW5kb3cub3BlbmVyID0gbnVsbDtcbiAgfVxuXG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBOT1RJRklDQVRJT05TX0xJTktfQ0xJQ0tFRCxcbiAgICBwYXlsb2FkOiB7IGhyZWYsIGV4dGVybmFsIH0sXG4gIH0pO1xuXG4gIHJldHVybiBvcGVuZWRXaW5kb3c7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L2FjdGlvbnMvbm90aWZpY2F0aW9ucy9pbmRleC5qcyIsImV4cG9ydCBjb25zdCBERUZBVUxUX0lOVEVSVkFMID0gMTAwMDA7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvYWN0aW9ucy9ub3RpZmljYXRpb25zL2NvbnN0YW50cy5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMjgyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgT3ZlcmxheVRyaWdnZXIsIFRvb2x0aXAgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5jb25zdCBUb2dnbGVJY29uID0gKHsgaGFzVW5yZWFkTWVzc2FnZXMsIG9uQ2xpY2sgfSkgPT4ge1xuICBjb25zdCBpY29uVHlwZSA9IGhhc1VucmVhZE1lc3NhZ2VzID8gJ2ZhLWJlbGwnIDogJ2ZhLWJlbGwtbyc7XG4gIGNvbnN0IHRvb2x0aXAgPSA8VG9vbHRpcCBpZD1cInRvb2x0aXBcIj57X18oJ05vdGlmaWNhdGlvbnMnKX08L1Rvb2x0aXA+O1xuXG4gIHJldHVybiAoXG4gICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgaWQ9XCJub3RpZmljYXRpb25zLXRvZ2dsZS1pY29uXCJcbiAgICAgIG92ZXJsYXk9e3Rvb2x0aXB9XG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgY2xhc3NOYW1lPXtgZmEgJHtpY29uVHlwZX1gfVxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwidG9vbHRpcFwiXG4gICAgICAvPlxuICAgIDwvT3ZlcmxheVRyaWdnZXI+XG4gICk7XG59O1xuXG5Ub2dnbGVJY29uLnByb3BUeXBlcyA9IHtcbiAgaGFzVW5yZWFkTWVzc2FnZXM6IFByb3BUeXBlcy5ib29sLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cblRvZ2dsZUljb24uZGVmYXVsdFByb3BzID0ge1xuICBoYXNVbnJlYWRNZXNzYWdlczogZmFsc2UsXG4gIG9uQ2xpY2s6IG5vb3AsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBUb2dnbGVJY29uO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9Ub2dnbGVJY29uL1RvZ2dsZUljb24uanMiLCJpbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgYmluZEFjdGlvbkNyZWF0b3JzIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IEltcGVyc29uYXRlSWNvbiBmcm9tICcuL0ltcGVyc29uYXRlSWNvbic7XG5cbmltcG9ydCAqIGFzIEltcGVyc29uYXRlSWNvbkFjdGlvbnMgZnJvbSAnLi9JbXBlcnNvbmF0ZUljb25BY3Rpb25zJztcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gZGlzcGF0Y2ggPT5cbiAgYmluZEFjdGlvbkNyZWF0b3JzKEltcGVyc29uYXRlSWNvbkFjdGlvbnMsIGRpc3BhdGNoKTtcblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChudWxsLCBtYXBEaXNwYXRjaFRvUHJvcHMpKEltcGVyc29uYXRlSWNvbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvY29tcG9uZW50cy9JbXBlcnNvbmF0ZUljb24vaW5kZXguanMiLCJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyBFeWVJY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgT3ZlcmxheVRyaWdnZXIsIFRvb2x0aXAsIE1lc3NhZ2VEaWFsb2cgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuaW1wb3J0ICcuL0ltcGVyc29uYXRlSWNvbi5zY3NzJztcblxuY29uc3QgSW1wZXJzb25hdGVJY29uID0gcHJvcHMgPT4ge1xuICBjb25zdCBbc2hvd01vZGFsLCBzZXRTaG93TW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IHRvZ2dsZU1vZGFsID0gKCkgPT4gc2V0U2hvd01vZGFsKCFzaG93TW9kYWwpO1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICAgIG92ZXJsYXk9e1xuICAgICAgICAgIDxUb29sdGlwIGlkPVwic3RvcC1pbXBlcnNvbmF0aW9uXCI+XG4gICAgICAgICAgICB7X18oXG4gICAgICAgICAgICAgICdZb3UgYXJlIGltcGVyc29uYXRpbmcgYW5vdGhlciB1c2VyLCBjbGljayB0byBzdG9wIHRoZSBpbXBlcnNvbmF0aW9uJ1xuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIH1cbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgdHJpZ2dlcj17Wydob3ZlcicsICdmb2N1cyddfVxuICAgICAgICByb290Q2xvc2U9e2ZhbHNlfVxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJuYXYtaXRlbS1pY29uaWNcIiBvbkNsaWNrPXt0b2dnbGVNb2RhbH0+XG4gICAgICAgICAgPEV5ZUljb24gY2xhc3NOYW1lPVwiYmxpbmstaW1hZ2VcIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L092ZXJsYXlUcmlnZ2VyPlxuICAgICAgPE1lc3NhZ2VEaWFsb2dcbiAgICAgICAgc2hvdz17c2hvd01vZGFsfVxuICAgICAgICBvbkhpZGU9e3RvZ2dsZU1vZGFsfVxuICAgICAgICBwcmltYXJ5QWN0aW9uPXsoKSA9PlxuICAgICAgICAgIHByb3BzLnN0b3BJbXBlcnNvbmF0aW5nKHByb3BzLnN0b3BJbXBlcnNvbmF0aW9uVXJsKVxuICAgICAgICB9XG4gICAgICAgIHNlY29uZGFyeUFjdGlvbj17dG9nZ2xlTW9kYWx9XG4gICAgICAgIHByaW1hcnlBY3Rpb25CdXR0b25Db250ZW50PXtfXygnQ29uZmlybScpfVxuICAgICAgICBzZWNvbmRhcnlBY3Rpb25CdXR0b25Db250ZW50PXtfXygnQ2FuY2VsJyl9XG4gICAgICAgIHRpdGxlPXtfXygnQ29uZmlybSBBY3Rpb24nKX1cbiAgICAgICAgcHJpbWFyeUNvbnRlbnQ9e19fKFxuICAgICAgICAgICdZb3UgYXJlIGFib3V0IHRvIHN0b3AgaW1wZXJzb25hdGluZyBvdGhlciB1c2VyLiBBcmUgeW91IHN1cmU/J1xuICAgICAgICApfVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufTtcblxuSW1wZXJzb25hdGVJY29uLnByb3BUeXBlcyA9IHtcbiAgc3RvcEltcGVyc29uYXRpb25Vcmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgc3RvcEltcGVyc29uYXRpbmc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbXBlcnNvbmF0ZUljb247XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvY29tcG9uZW50cy9JbXBlcnNvbmF0ZUljb24vSW1wZXJzb25hdGVJY29uLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9jb21wb25lbnRzL0ltcGVyc29uYXRlSWNvbi9JbXBlcnNvbmF0ZUljb24uc2Nzc1xuLy8gbW9kdWxlIGlkID0gMjg2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgeyBBUEkgfSBmcm9tICcuLi8uLi8uLi8uLi9yZWR1eC9BUEknO1xuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ZvcmVtYW5fdG9vbHMnO1xuXG5pbXBvcnQgeyBhZGRUb2FzdCB9IGZyb20gJy4uLy4uLy4uL1RvYXN0c0xpc3QnO1xuXG5leHBvcnQgY29uc3Qgc3RvcEltcGVyc29uYXRpbmcgPSB1cmwgPT4gYXN5bmMgZGlzcGF0Y2ggPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgQVBJLmRlbGV0ZSh1cmwpO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZm9yZW1hblVybCgnL3VzZXJzJyk7XG4gICAgcmV0dXJuIGRpc3BhdGNoKFxuICAgICAgYWRkVG9hc3Qoe1xuICAgICAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgICAgIG1lc3NhZ2U6IGRhdGEubWVzc2FnZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2goXG4gICAgICBhZGRUb2FzdCh7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6ICdGYWlsZWQgdG8gc3RvcCBpbXBlcnNvbmF0aW9uJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9jb21wb25lbnRzL0ltcGVyc29uYXRlSWNvbi9JbXBlcnNvbmF0ZUljb25BY3Rpb25zLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEljb24sIE92ZXJsYXlUcmlnZ2VyLCBUb29sdGlwIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBJbnN0YW5jZVRpdGxlVmlld2VyID0gKHsgdGl0bGUgfSkgPT4ge1xuICBpZiAoIXRpdGxlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCB0b29sdGlwID0gPFRvb2x0aXAgaWQ9XCJ0b29sdGlwXCI+e3RpdGxlfTwvVG9vbHRpcD47XG5cbiAgcmV0dXJuIChcbiAgICA8T3ZlcmxheVRyaWdnZXJcbiAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICBpZD1cImluc3RhbmNlLXRvZ2dsZS1pY29uXCJcbiAgICAgIG92ZXJsYXk9e3Rvb2x0aXB9XG4gICAgPlxuICAgICAgPEljb24gdHlwZT1cImZhXCIgbmFtZT1cInNlcnZlciBzbWFsbFwiIC8+XG4gICAgPC9PdmVybGF5VHJpZ2dlcj5cbiAgKTtcbn07XG5cbkluc3RhbmNlVGl0bGVWaWV3ZXIucHJvcFR5cGVzID0ge1xuICAvKiogVGl0bGUgdG8gZGlzcGxheSAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5JbnN0YW5jZVRpdGxlVmlld2VyLmRlZmF1bHRQcm9wcyA9IHtcbiAgdGl0bGU6ICcnLFxufTtcbmV4cG9ydCBkZWZhdWx0IEluc3RhbmNlVGl0bGVWaWV3ZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9MYXlvdXQvY29tcG9uZW50cy9Ub29sYmFyL0luc3RhbmNlVGl0bGVWaWV3ZXIuanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTGF5b3V0L2NvbXBvbmVudHMvVG9vbGJhci9IZWFkZXJUb29sYmFyLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDI4OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xheW91dC9sYXlvdXQuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMjkwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgSW1tdXRhYmxlIGZyb20gJ3NlYW1sZXNzLWltbXV0YWJsZSc7XG5pbXBvcnQge1xuICBESUZGX01PREFMX1RPR0dMRSxcbiAgRElGRl9NT0RBTF9DUkVBVEUsXG4gIERJRkZfTU9EQUxfVklFV1RZUEUsXG59IGZyb20gJy4vRGlmZk1vZGFsQ29uc3RhbnRzJztcblxuY29uc3QgaW5pdGlhbFN0YXRlID0gSW1tdXRhYmxlKHtcbiAgaXNPcGVuOiBmYWxzZSxcbiAgZGlmZjogJycsXG4gIHRpdGxlOiAnJyxcbiAgZGlmZlZpZXdUeXBlOiAnc3BsaXQnLFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IChzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uKSA9PiB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIERJRkZfTU9EQUxfVE9HR0xFOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnaXNPcGVuJywgIXN0YXRlLmlzT3Blbik7XG4gICAgY2FzZSBESUZGX01PREFMX1ZJRVdUWVBFOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnZGlmZlZpZXdUeXBlJywgYWN0aW9uLnBheWxvYWQuZGlmZlZpZXdUeXBlKTtcbiAgICBjYXNlIERJRkZfTU9EQUxfQ1JFQVRFOlxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKGFjdGlvbi5wYXlsb2FkKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Db25maWdSZXBvcnRzL0RpZmZNb2RhbC9EaWZmTW9kYWxSZWR1Y2VyLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1vZGFsLCBJY29uLCBCdXR0b24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgRGlmZlZpZXcgZnJvbSAnLi4vLi4vRGlmZlZpZXcvRGlmZlZpZXcnO1xuaW1wb3J0IERpZmZSYWRpb0J1dHRvbnMgZnJvbSAnLi4vLi4vRGlmZlZpZXcvRGlmZlJhZGlvQnV0dG9ucyc7XG5cbmltcG9ydCAnLi9kaWZmbW9kYWwuc2Nzcyc7XG5cbmNvbnN0IERpZmZNb2RhbCA9ICh7XG4gIHRpdGxlLFxuICBvbGRUZXh0LFxuICBuZXdUZXh0LFxuICBkaWZmLFxuICBpc09wZW4sXG4gIHRvZ2dsZU1vZGFsLFxuICBkaWZmVmlld1R5cGUsXG4gIGNoYW5nZVZpZXdUeXBlLFxufSkgPT4gKFxuICA8TW9kYWwgc2hvdz17aXNPcGVufSBvbkhpZGU9e3RvZ2dsZU1vZGFsfSBjbGFzc05hbWU9XCJkaWZmLW1vZGFsXCI+XG4gICAgPE1vZGFsLkhlYWRlcj5cbiAgICAgIDxoNCBpZD1cImRpZmYtbW9kYWwtaDRcIj57dGl0bGV9PC9oND5cbiAgICAgIDxCdXR0b25cbiAgICAgICAgY2xhc3NOYW1lPVwiY2xvc2UgZGlmZi1tb2RhbC1jbG9zZVwiXG4gICAgICAgIG9uQ2xpY2s9e3RvZ2dsZU1vZGFsfVxuICAgICAgICBic1N0eWxlPVwibGlua1wiXG4gICAgICA+XG4gICAgICAgIDxJY29uIHR5cGU9XCJwZlwiIG5hbWU9XCJjbG9zZVwiIC8+XG4gICAgICA8L0J1dHRvbj5cbiAgICAgIDxEaWZmUmFkaW9CdXR0b25zIGNoYW5nZVN0YXRlPXtjaGFuZ2VWaWV3VHlwZX0gc3RhdGVWaWV3PXtkaWZmVmlld1R5cGV9IC8+XG4gICAgPC9Nb2RhbC5IZWFkZXI+XG4gICAgPE1vZGFsLkJvZHkgY2xhc3NOYW1lPVwiZGlmZi1tb2RhbC1ib2R5XCI+XG4gICAgICA8ZGl2IGlkPVwiZGlmZi10YWJsZVwiPlxuICAgICAgICA8RGlmZlZpZXdcbiAgICAgICAgICBvbGRUZXh0PXtvbGRUZXh0fVxuICAgICAgICAgIG5ld1RleHQ9e25ld1RleHR9XG4gICAgICAgICAgcGF0Y2g9e2RpZmZ9XG4gICAgICAgICAgdmlld1R5cGU9e2RpZmZWaWV3VHlwZX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvTW9kYWwuQm9keT5cbiAgPC9Nb2RhbD5cbik7XG5cbkRpZmZNb2RhbC5wcm9wVHlwZXMgPSB7XG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaWZmOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbGRUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBuZXdUZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaWZmVmlld1R5cGU6IFByb3BUeXBlcy5vbmVPZihbJ3NwbGl0JywgJ3VuaWZpZWQnXSksXG4gIGlzT3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIGNoYW5nZVZpZXdUeXBlOiBQcm9wVHlwZXMuZnVuYyxcbiAgdG9nZ2xlTW9kYWw6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuRGlmZk1vZGFsLmRlZmF1bHRQcm9wcyA9IHtcbiAgdGl0bGU6ICcnLFxuICBkaWZmOiAnJyxcbiAgb2xkVGV4dDogJycsXG4gIG5ld1RleHQ6ICcnLFxuICBkaWZmVmlld1R5cGU6ICdzcGxpdCcsXG4gIGlzT3BlbjogZmFsc2UsXG4gIGNoYW5nZVZpZXdUeXBlOiBub29wLFxuICB0b2dnbGVNb2RhbDogbm9vcCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERpZmZNb2RhbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpZ1JlcG9ydHMvRGlmZk1vZGFsL0RpZmZNb2RhbC5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfRElGRl9WSUVXX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9ESUZGX1ZJRVdfX1wiXG4vLyBtb2R1bGUgaWQgPSAyOTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fVU5JRElGRl9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fVU5JRElGRl9fXCJcbi8vIG1vZHVsZSBpZCA9IDI5NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiZXhwb3J0IGNvbnN0IFNQTElUID0gJ3NwbGl0JztcbmV4cG9ydCBjb25zdCBVTklGSUVEID0gJ3VuaWZpZWQnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRGlmZlZpZXcvRGlmZkNvbnN0cy5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Db25maWdSZXBvcnRzL0RpZmZNb2RhbC9kaWZmbW9kYWwuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMjk2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgSW1tdXRhYmxlIGZyb20gJ3NlYW1sZXNzLWltbXV0YWJsZSc7XG5cbmltcG9ydCB7XG4gIEVESVRPUl9DSEFOR0VfRElGRl9WSUVXLFxuICBFRElUT1JfQ0hBTkdFX1NFVFRJTkcsXG4gIEVESVRPUl9DSEFOR0VfVEFCLFxuICBFRElUT1JfQ0hBTkdFX1ZBTFVFLFxuICBFRElUT1JfRElTTUlTU19FUlJPUixcbiAgRURJVE9SX1NIT1dfRVJST1IsXG4gIEVESVRPUl9FWEVDX1BSRVZJRVcsXG4gIEVESVRPUl9TSE9XX0xPQURJTkcsXG4gIEVESVRPUl9ISURFX0xPQURJTkcsXG4gIEVESVRPUl9JTVBPUlRfRklMRSxcbiAgRURJVE9SX0lOSVRJQUxJWkUsXG4gIEVESVRPUl9NT0RBTF9UT0dHTEUsXG4gIEVESVRPUl9SRVZFUlRfQ0hBTkdFUyxcbiAgRURJVE9SX1RPR0dMRV9NQVNLLFxuICBFRElUT1JfVE9HR0xFX1JFTkRFUl9WSUVXLFxuICBFRElUT1JfSE9TVF9TRUxFQ1RfQ0xFQVIsXG4gIEVESVRPUl9IT1NUX1NFTEVDVF9UT0dHTEUsXG4gIEVESVRPUl9GRVRDSF9IT1NUX1BFTkRJTkcsXG4gIEVESVRPUl9IT1NUX1NFTEVDVF9SRVNFVCxcbiAgRURJVE9SX0ZFVENIX0hPU1RfUkVTT0xWRUQsXG4gIEVESVRPUl9IT1NUX0lOSVRJQUxfRkVUQ0gsXG4gIEVESVRPUl9IT1NUX0FSUixcbiAgRURJVE9SX0hPU1RfRklMVEVSRURfQVJSLFxufSBmcm9tICcuL0VkaXRvckNvbnN0YW50cyc7XG5cbmNvbnN0IGluaXRpYWxTdGF0ZSA9IEltbXV0YWJsZSh7XG4gIFtFRElUT1JfSE9TVF9BUlJdOiBbXSxcbiAgW0VESVRPUl9IT1NUX0ZJTFRFUkVEX0FSUl06IFtdLFxuICBkaWZmVmlld1R5cGU6ICdzcGxpdCcsXG4gIGVkaXRvck5hbWU6ICdlZGl0b3InLFxuICBlcnJvclRleHQ6ICcnLFxuICBpc0ZldGNoaW5nSG9zdHM6IGZhbHNlLFxuICBpc0xvYWRpbmc6IGZhbHNlLFxuICBpc01hc2tlZDogZmFsc2UsXG4gIGlzTWF4aW1pemVkOiBmYWxzZSxcbiAgaXNSZW5kZXJpbmc6IGZhbHNlLFxuICBpc1NlYXJjaGluZ0hvc3RzOiBmYWxzZSxcbiAgaXNTZWxlY3RPcGVuOiBmYWxzZSxcbiAga2V5QmluZGluZzogJ0RlZmF1bHQnLFxuICBtb2RlOiAnUnVieScsXG4gIHByZXZpZXdSZXN1bHQ6ICcnLFxuICByZW5kZXJlZEVkaXRvclZhbHVlOiAnJyxcbiAgcmVhZE9ubHk6IGZhbHNlLFxuICBzZWFyY2hRdWVyeTogJycsXG4gIHNlbGVjdGVkSG9zdDoge1xuICAgIGlkOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgfSxcbiAgc2VsZWN0ZWRWaWV3OiAnaW5wdXQnLFxuICBzaG93RXJyb3I6IGZhbHNlLFxuICB0ZW1wbGF0ZUNsYXNzOiAnJyxcbiAgdGhlbWU6ICdNb25va2FpJyxcbiAgdmFsdWU6ICcnLFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IChzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uKSA9PiB7XG4gIGNvbnN0IHsgcGF5bG9hZCB9ID0gYWN0aW9uO1xuXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIEVESVRPUl9JTklUSUFMSVpFOiB7XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2UocGF5bG9hZCk7XG4gICAgfVxuXG4gICAgY2FzZSBFRElUT1JfUkVWRVJUX0NIQU5HRVM6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZShwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBjYXNlIEVESVRPUl9JTVBPUlRfRklMRToge1xuICAgICAgcmV0dXJuIHN0YXRlLnNldCgndmFsdWUnLCBwYXlsb2FkLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjYXNlIEVESVRPUl9FWEVDX1BSRVZJRVc6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZShwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBjYXNlIEVESVRPUl9IT1NUX1NFTEVDVF9DTEVBUjoge1xuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnc2VhcmNoUXVlcnknLCAnJykuc2V0KCdpc1NlYXJjaGluZ0hvc3RzJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGNhc2UgRURJVE9SX01PREFMX1RPR0dMRToge1xuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnaXNNYXhpbWl6ZWQnLCAhc3RhdGUuaXNNYXhpbWl6ZWQpO1xuICAgIH1cblxuICAgIGNhc2UgRURJVE9SX0NIQU5HRV9ESUZGX1ZJRVc6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2RpZmZWaWV3VHlwZScsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIGNhc2UgRURJVE9SX0NIQU5HRV9WQUxVRToge1xuICAgICAgcmV0dXJuIHN0YXRlLnNldCgndmFsdWUnLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBjYXNlIEVESVRPUl9TSE9XX0VSUk9SOiB7XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2UocGF5bG9hZCk7XG4gICAgfVxuXG4gICAgY2FzZSBFRElUT1JfRElTTUlTU19FUlJPUjoge1xuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHBheWxvYWQpO1xuICAgIH1cblxuICAgIGNhc2UgRURJVE9SX0NIQU5HRV9UQUI6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ3NlbGVjdGVkVmlldycsIHBheWxvYWQpO1xuICAgIH1cblxuICAgIGNhc2UgRURJVE9SX0NIQU5HRV9TRVRUSU5HOiB7XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2UocGF5bG9hZCk7XG4gICAgfVxuXG4gICAgY2FzZSBFRElUT1JfVE9HR0xFX01BU0s6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2lzTWFza2VkJywgIXN0YXRlLmlzTWFza2VkKTtcbiAgICB9XG5cbiAgICBjYXNlIEVESVRPUl9UT0dHTEVfUkVOREVSX1ZJRVc6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2lzUmVuZGVyaW5nJywgIXN0YXRlLmlzUmVuZGVyaW5nKTtcbiAgICB9XG5cbiAgICBjYXNlIEVESVRPUl9TSE9XX0xPQURJTkc6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2lzTG9hZGluZycsIHRydWUpO1xuICAgIH1cblxuICAgIGNhc2UgRURJVE9SX0hJREVfTE9BRElORzoge1xuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnaXNMb2FkaW5nJywgZmFsc2UpO1xuICAgIH1cblxuICAgIGNhc2UgRURJVE9SX0ZFVENIX0hPU1RfUEVORElORzoge1xuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHBheWxvYWQpO1xuICAgIH1cblxuICAgIGNhc2UgRURJVE9SX0ZFVENIX0hPU1RfUkVTT0xWRUQ6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2lzRmV0Y2hpbmdIb3N0cycsIGZhbHNlKS5tZXJnZShwYXlsb2FkKTtcbiAgICB9XG5cbiAgICBjYXNlIEVESVRPUl9IT1NUX0lOSVRJQUxfRkVUQ0g6IHtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2hvc3RzJywgcGF5bG9hZCk7XG4gICAgfVxuXG4gICAgY2FzZSBFRElUT1JfSE9TVF9TRUxFQ1RfVE9HR0xFOiB7XG4gICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgLnNldCgnaXNTZWxlY3RPcGVuJywgIXN0YXRlLmlzU2VsZWN0T3BlbilcbiAgICAgICAgLnNldCgnc2VhcmNoUXVlcnknLCAnJyk7XG4gICAgfVxuXG4gICAgY2FzZSBFRElUT1JfSE9TVF9TRUxFQ1RfUkVTRVQ6IHtcbiAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICAuc2V0KCdzZWFyY2hRdWVyeScsICcnKVxuICAgICAgICAuc2V0KCdpc0ZldGNoaW5nSG9zdHMnLCBmYWxzZSlcbiAgICAgICAgLnNldCgnaXNTZWFyY2hpbmdIb3N0cycsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvclJlZHVjZXIuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IFRvYXN0Tm90aWZpY2F0aW9uIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgRGlmZlZpZXcgZnJvbSAnLi4vRGlmZlZpZXcvRGlmZlZpZXcnO1xuaW1wb3J0IEVkaXRvclZpZXcgZnJvbSAnLi9jb21wb25lbnRzL0VkaXRvclZpZXcnO1xuaW1wb3J0IEVkaXRvck5hdmJhciBmcm9tICcuL2NvbXBvbmVudHMvRWRpdG9yTmF2YmFyJztcbmltcG9ydCBFZGl0b3JNb2RhbCBmcm9tICcuL2NvbXBvbmVudHMvRWRpdG9yTW9kYWwnO1xuaW1wb3J0IHtcbiAgRURJVE9SX1RIRU1FUyxcbiAgRURJVE9SX0tFWUJJTkRJTkdTLFxuICBFRElUT1JfTU9ERVMsXG59IGZyb20gJy4vRWRpdG9yQ29uc3RhbnRzJztcbmltcG9ydCAnLi9lZGl0b3Iuc2Nzcyc7XG5cbmNsYXNzIEVkaXRvciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGRhdGE6IHsgaG9zdHMsIHRlbXBsYXRlQ2xhc3MsIGxvY2tlZCwgdGVtcGxhdGUsIHR5cGUgfSxcbiAgICAgIGluaXRpYWxpemVFZGl0b3IsXG4gICAgICBpc01hc2tlZCxcbiAgICAgIGlzUmVuZGVyaW5nLFxuICAgICAgcmVhZE9ubHksXG4gICAgICBwcmV2aWV3UmVzdWx0LFxuICAgICAgc2VsZWN0ZWRWaWV3LFxuICAgICAgc2hvd0Vycm9yLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgaW5pdGlhbGl6ZURhdGEgPSB7XG4gICAgICBob3N0cyxcbiAgICAgIGlzTWFza2VkLFxuICAgICAgdGVtcGxhdGVDbGFzcyxcbiAgICAgIGlzUmVuZGVyaW5nLFxuICAgICAgbG9ja2VkLFxuICAgICAgcmVhZE9ubHksXG4gICAgICBwcmV2aWV3UmVzdWx0LFxuICAgICAgc2VsZWN0ZWRWaWV3LFxuICAgICAgc2hvd0Vycm9yLFxuICAgICAgdGVtcGxhdGUsXG4gICAgICB0eXBlLFxuICAgIH07XG4gICAgaW5pdGlhbGl6ZUVkaXRvcihpbml0aWFsaXplRGF0YSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgZGF0YToge1xuICAgICAgICBuYW1lLFxuICAgICAgICBpc1NhZmVtb2RlRW5hYmxlZCxcbiAgICAgICAgcmVuZGVyUGF0aCxcbiAgICAgICAgc2FmZW1vZGVSZW5kZXJQYXRoLFxuICAgICAgICBzaG93SGlkZSxcbiAgICAgICAgc2hvd0ltcG9ydCxcbiAgICAgICAgc2hvd1ByZXZpZXcsXG4gICAgICAgIHNob3dIb3N0U2VsZWN0b3IsXG4gICAgICAgIHRlbXBsYXRlLFxuICAgICAgICB0aXRsZSxcbiAgICAgIH0sXG4gICAgICBjaGFuZ2VEaWZmVmlld1R5cGUsXG4gICAgICBjaGFuZ2VFZGl0b3JWYWx1ZSxcbiAgICAgIGNoYW5nZVNldHRpbmcsXG4gICAgICBjaGFuZ2VUYWIsXG4gICAgICBkaWZmVmlld1R5cGUsXG4gICAgICBkaXNtaXNzRXJyb3JUb2FzdCxcbiAgICAgIGVkaXRvck5hbWUsXG4gICAgICBlcnJvclRleHQsXG4gICAgICBmZXRjaEFuZFByZXZpZXcsXG4gICAgICBmaWx0ZXJlZEhvc3RzLFxuICAgICAgaG9zdHMsXG4gICAgICBpbXBvcnRGaWxlLFxuICAgICAgaXNGZXRjaGluZ0hvc3RzLFxuICAgICAgaXNMb2FkaW5nLFxuICAgICAgaXNNYXNrZWQsXG4gICAgICBpc01heGltaXplZCxcbiAgICAgIGlzUmVuZGVyaW5nLFxuICAgICAgaXNTZWFyY2hpbmdIb3N0cyxcbiAgICAgIGlzU2VsZWN0T3BlbixcbiAgICAgIGtleUJpbmRpbmcsXG4gICAgICBtb2RlLFxuICAgICAgb25Ib3N0U2VhcmNoLFxuICAgICAgb25Ib3N0U2VsZWN0VG9nZ2xlLFxuICAgICAgb25TZWFyY2hDbGVhcixcbiAgICAgIHByZXZpZXdSZXN1bHQsXG4gICAgICBwcmV2aWV3VGVtcGxhdGUsXG4gICAgICByZWFkT25seSxcbiAgICAgIHJlbmRlcmVkRWRpdG9yVmFsdWUsXG4gICAgICByZXZlcnRDaGFuZ2VzLFxuICAgICAgc2VhcmNoUXVlcnksXG4gICAgICBzZWxlY3RlZEhvc3QsXG4gICAgICBzZWxlY3RlZFZpZXcsXG4gICAgICBzaG93RXJyb3IsXG4gICAgICB0aGVtZSxcbiAgICAgIHRvZ2dsZU1hc2tWYWx1ZSxcbiAgICAgIHRvZ2dsZU1vZGFsLFxuICAgICAgdG9nZ2xlUmVuZGVyVmlldyxcbiAgICAgIHZhbHVlLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgZWRpdG9yVmlld1Byb3BzID0ge1xuICAgICAgdmFsdWU6IGlzUmVuZGVyaW5nID8gcHJldmlld1Jlc3VsdCA6IHZhbHVlLFxuICAgICAgbW9kZTogaXNSZW5kZXJpbmcgPyAnVGV4dCcgOiBtb2RlLFxuICAgICAgdGhlbWUsXG4gICAgICBrZXlCaW5kaW5nLFxuICAgICAgb25DaGFuZ2U6IGlzUmVuZGVyaW5nID8gbm9vcCA6IGNoYW5nZUVkaXRvclZhbHVlLFxuICAgICAgcmVhZE9ubHk6IHJlYWRPbmx5IHx8IGlzUmVuZGVyaW5nLFxuICAgICAgaXNNYXNrZWQsXG4gICAgfTtcbiAgICBjb25zdCBlZGl0b3JOYW1lVGFiID0ge1xuICAgICAgaW5wdXQ6IGAke2VkaXRvck5hbWV9Q29kZWAsXG4gICAgICBwcmV2aWV3OiBgJHtlZGl0b3JOYW1lfVByZXZpZXdgLFxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBpZD1cImVkaXRvci1jb250YWluZXJcIj5cbiAgICAgICAgPFRvYXN0Tm90aWZpY2F0aW9uXG4gICAgICAgICAgaWQ9XCJwcmV2aWV3X2Vycm9yX3RvYXN0XCJcbiAgICAgICAgICB0eXBlPVwiZXJyb3JcIlxuICAgICAgICAgIGNsYXNzTmFtZT17c2hvd0Vycm9yID8gJycgOiAnaGlkZGVuJ31cbiAgICAgICAgICBvbkRpc21pc3M9eygpID0+IGRpc21pc3NFcnJvclRvYXN0KCl9XG4gICAgICAgID5cbiAgICAgICAgICB7ZXJyb3JUZXh0fVxuICAgICAgICA8L1RvYXN0Tm90aWZpY2F0aW9uPlxuICAgICAgICA8RWRpdG9yTmF2YmFyXG4gICAgICAgICAgY2hhbmdlRGlmZlZpZXdUeXBlPXtjaGFuZ2VEaWZmVmlld1R5cGV9XG4gICAgICAgICAgY2hhbmdlVGFiPXtjaGFuZ2VUYWJ9XG4gICAgICAgICAgY2hhbmdlU2V0dGluZz17Y2hhbmdlU2V0dGluZ31cbiAgICAgICAgICBtb2Rlcz17RURJVE9SX01PREVTfVxuICAgICAgICAgIHRoZW1lcz17RURJVE9SX1RIRU1FU31cbiAgICAgICAgICBrZXlCaW5kaW5ncz17RURJVE9SX0tFWUJJTkRJTkdTfVxuICAgICAgICAgIG1vZGU9e2lzUmVuZGVyaW5nID8gJ1RleHQnIDogbW9kZX1cbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAga2V5QmluZGluZz17a2V5QmluZGluZ31cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgcmVuZGVyZWRFZGl0b3JWYWx1ZT17cmVuZGVyZWRFZGl0b3JWYWx1ZX1cbiAgICAgICAgICBkaWZmVmlld1R5cGU9e2RpZmZWaWV3VHlwZX1cbiAgICAgICAgICB0ZW1wbGF0ZT17dGVtcGxhdGV9XG4gICAgICAgICAgc2VsZWN0ZWRWaWV3PXtzZWxlY3RlZFZpZXd9XG4gICAgICAgICAgaXNEaWZmPXt0ZW1wbGF0ZSA/IHZhbHVlICE9PSB0ZW1wbGF0ZSA6IGZhbHNlfVxuICAgICAgICAgIGlzTWFza2VkPXtpc01hc2tlZH1cbiAgICAgICAgICBpc1JlbmRlcmluZz17aXNSZW5kZXJpbmd9XG4gICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgaXNGZXRjaGluZ0hvc3RzPXtpc0ZldGNoaW5nSG9zdHN9XG4gICAgICAgICAgaXNTZWFyY2hpbmdIb3N0cz17aXNTZWFyY2hpbmdIb3N0c31cbiAgICAgICAgICBpbXBvcnRGaWxlPXtpbXBvcnRGaWxlfVxuICAgICAgICAgIHNob3dJbXBvcnQ9e3Nob3dJbXBvcnR9XG4gICAgICAgICAgc2hvd1ByZXZpZXc9e3Nob3dQcmV2aWV3fVxuICAgICAgICAgIHNob3dIb3N0U2VsZWN0b3I9e3Nob3dIb3N0U2VsZWN0b3J9XG4gICAgICAgICAgc2hvd0hpZGU9e3Nob3dIaWRlfVxuICAgICAgICAgIHJldmVydENoYW5nZXM9e3JldmVydENoYW5nZXN9XG4gICAgICAgICAgcHJldmlld1RlbXBsYXRlPXtwcmV2aWV3VGVtcGxhdGV9XG4gICAgICAgICAgaG9zdHM9e2hvc3RzfVxuICAgICAgICAgIGZpbHRlcmVkSG9zdHM9e2ZpbHRlcmVkSG9zdHN9XG4gICAgICAgICAgc2VsZWN0ZWRIb3N0PXtzZWxlY3RlZEhvc3R9XG4gICAgICAgICAgaXNTYWZlbW9kZUVuYWJsZWQ9e2lzU2FmZW1vZGVFbmFibGVkfVxuICAgICAgICAgIHJlbmRlclBhdGg9e3JlbmRlclBhdGh9XG4gICAgICAgICAgc2FmZW1vZGVSZW5kZXJQYXRoPXtzYWZlbW9kZVJlbmRlclBhdGh9XG4gICAgICAgICAgdG9nZ2xlTWFza1ZhbHVlPXt0b2dnbGVNYXNrVmFsdWV9XG4gICAgICAgICAgdG9nZ2xlUmVuZGVyVmlldz17dG9nZ2xlUmVuZGVyVmlld31cbiAgICAgICAgICB0b2dnbGVNb2RhbD17dG9nZ2xlTW9kYWx9XG4gICAgICAgICAgcHJldmlld1Jlc3VsdD17cHJldmlld1Jlc3VsdH1cbiAgICAgICAgICBzZWFyY2hRdWVyeT17c2VhcmNoUXVlcnl9XG4gICAgICAgICAgb25Ib3N0U2VsZWN0VG9nZ2xlPXtvbkhvc3RTZWxlY3RUb2dnbGV9XG4gICAgICAgICAgb25Ib3N0U2VhcmNoPXtvbkhvc3RTZWFyY2h9XG4gICAgICAgICAgb25TZWFyY2hDbGVhcj17b25TZWFyY2hDbGVhcn1cbiAgICAgICAgICBpc1NlbGVjdE9wZW49e2lzU2VsZWN0T3Blbn1cbiAgICAgICAgICBzaG93RXJyb3I9e3Nob3dFcnJvcn1cbiAgICAgICAgICBmZXRjaEFuZFByZXZpZXc9e2ZldGNoQW5kUHJldmlld31cbiAgICAgICAgLz5cbiAgICAgICAgPEVkaXRvclZpZXdcbiAgICAgICAgICB7Li4uZWRpdG9yVmlld1Byb3BzfVxuICAgICAgICAgIGtleT1cImVkaXRvclByZXZpZXdcIlxuICAgICAgICAgIG5hbWU9e2VkaXRvck5hbWVUYWIucHJldmlld31cbiAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZFZpZXcgPT09ICdwcmV2aWV3J31cbiAgICAgICAgICBjbGFzc05hbWU9XCJhY2VfZWRpdG9yX2Zvcm0gYWNlX3ByZXZpZXdcIlxuICAgICAgICAvPlxuICAgICAgICA8RWRpdG9yVmlld1xuICAgICAgICAgIHsuLi5lZGl0b3JWaWV3UHJvcHN9XG4gICAgICAgICAga2V5PVwiZWRpdG9yQ29kZVwiXG4gICAgICAgICAgbmFtZT17ZWRpdG9yTmFtZVRhYi5pbnB1dH1cbiAgICAgICAgICBpc1NlbGVjdGVkPXtzZWxlY3RlZFZpZXcgPT09ICdpbnB1dCd9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYWNlX2VkaXRvcl9mb3JtIGFjZV9pbnB1dFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD1cImRpZmYtdGFibGVcIlxuICAgICAgICAgIGNsYXNzTmFtZT17c2VsZWN0ZWRWaWV3ID09PSAnZGlmZicgPyAnJyA6ICdoaWRkZW4nfVxuICAgICAgICA+XG4gICAgICAgICAgPERpZmZWaWV3XG4gICAgICAgICAgICBvbGRUZXh0PXt0ZW1wbGF0ZSB8fCAnJ31cbiAgICAgICAgICAgIG5ld1RleHQ9e3ZhbHVlfVxuICAgICAgICAgICAgdmlld1R5cGU9e2RpZmZWaWV3VHlwZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPEVkaXRvck1vZGFsXG4gICAgICAgICAga2V5PVwiZWRpdG9yTW9kYWxcIlxuICAgICAgICAgIGNoYW5nZUVkaXRvclZhbHVlPXtjaGFuZ2VFZGl0b3JWYWx1ZX1cbiAgICAgICAgICBjaGFuZ2VEaWZmVmlld1R5cGU9e2NoYW5nZURpZmZWaWV3VHlwZX1cbiAgICAgICAgICBuYW1lPXtlZGl0b3JOYW1lfVxuICAgICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgICB0b2dnbGVNb2RhbD17dG9nZ2xlTW9kYWx9XG4gICAgICAgICAgZGlmZlZpZXdUeXBlPXtkaWZmVmlld1R5cGV9XG4gICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAga2V5QmluZGluZz17a2V5QmluZGluZ31cbiAgICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAgICAgaXNNYXhpbWl6ZWQ9e2lzTWF4aW1pemVkfVxuICAgICAgICAgIHRlbXBsYXRlPXt0ZW1wbGF0ZSB8fCAnJ31cbiAgICAgICAgICBlZGl0b3JWYWx1ZT17dmFsdWV9XG4gICAgICAgICAgcHJldmlld1ZhbHVlPXtwcmV2aWV3UmVzdWx0fVxuICAgICAgICAgIHNlbGVjdGVkVmlldz17c2VsZWN0ZWRWaWV3fVxuICAgICAgICAgIGlzTWFza2VkPXtpc01hc2tlZH1cbiAgICAgICAgICBpc1JlbmRlcmluZz17aXNSZW5kZXJpbmd9XG4gICAgICAgIC8+XG4gICAgICAgIHshcmVhZE9ubHkgJiYgKFxuICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzc05hbWU9XCJoaWRkZW5cIiBuYW1lPXtuYW1lfSB2YWx1ZT17dmFsdWV9IHJlYWRPbmx5IC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvci5wcm9wVHlwZXMgPSB7XG4gIGRhdGE6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgc2hvd0hpZGU6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dJbXBvcnQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHNob3dQcmV2aWV3OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93SG9zdFNlbGVjdG9yOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0ZW1wbGF0ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0ZW1wbGF0ZUNsYXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaXNTYWZlbW9kZUVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHJlbmRlclBhdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc2FmZW1vZGVSZW5kZXJQYXRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhvc3RzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgbG9ja2VkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KS5pc1JlcXVpcmVkLFxuICBzZWxlY3RlZEhvc3Q6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgaWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KS5pc1JlcXVpcmVkLFxuICBjaGFuZ2VEaWZmVmlld1R5cGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoYW5nZUVkaXRvclZhbHVlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjaGFuZ2VTZXR0aW5nOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjaGFuZ2VUYWI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGRpZmZWaWV3VHlwZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBkaXNtaXNzRXJyb3JUb2FzdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZWRpdG9yTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBlcnJvclRleHQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaG9zdHM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBmaWx0ZXJlZEhvc3RzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgaW1wb3J0RmlsZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaW5pdGlhbGl6ZUVkaXRvcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaXNNYXNrZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzTWF4aW1pemVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc1JlbmRlcmluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc0ZldGNoaW5nSG9zdHM6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGtleUJpbmRpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbW9kZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBwcmV2aWV3VGVtcGxhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBwcmV2aWV3UmVzdWx0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHJldmVydENoYW5nZXM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNlbGVjdGVkVmlldzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzaG93RXJyb3I6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIHRoZW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRvZ2dsZU1hc2tWYWx1ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdG9nZ2xlTW9kYWw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHRvZ2dsZVJlbmRlclZpZXc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHJlbmRlcmVkRWRpdG9yVmFsdWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaXNTZWxlY3RPcGVuOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBzZWFyY2hRdWVyeTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBvbkhvc3RTZWxlY3RUb2dnbGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uSG9zdFNlYXJjaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25TZWFyY2hDbGVhcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaXNTZWFyY2hpbmdIb3N0czogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgZmV0Y2hBbmRQcmV2aWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL0VkaXRvci5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUkVBQ1RfQUNFX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9BQ0VfX1wiXG4vLyBtb2R1bGUgaWQgPSAyOTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fQlJBQ0VfRVhUX1NFQVJDSEJPWF9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fQlJBQ0VfRVhUX1NFQVJDSEJPWF9fXCJcbi8vIG1vZHVsZSBpZCA9IDMwMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IE5hdiwgU3Bpbm5lciwgQWxlcnQsIEJ1dHRvbiB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IEVkaXRvclJhZGlvQnV0dG9uIGZyb20gJy4vRWRpdG9yUmFkaW9CdXR0b24nO1xuaW1wb3J0IEVkaXRvck9wdGlvbnMgZnJvbSAnLi9FZGl0b3JPcHRpb25zJztcbmltcG9ydCBFZGl0b3JIb3N0U2VsZWN0IGZyb20gJy4vRWRpdG9ySG9zdFNlbGVjdCc7XG5pbXBvcnQgRWRpdG9yU2FmZW1vZGVDaGVja2JveCBmcm9tICcuL0VkaXRvclNhZmVtb2RlQ2hlY2tib3gnO1xuXG5jb25zdCBFZGl0b3JOYXZiYXIgPSAoe1xuICBjaGFuZ2VEaWZmVmlld1R5cGUsXG4gIGNoYW5nZVNldHRpbmcsXG4gIGNoYW5nZVRhYixcbiAgZGlmZlZpZXdUeXBlLFxuICBob3N0cyxcbiAgZmlsdGVyZWRIb3N0cyxcbiAgaW1wb3J0RmlsZSxcbiAgaXNEaWZmLFxuICBpc0xvYWRpbmcsXG4gIGlzTWFza2VkLFxuICBpc1JlbmRlcmluZyxcbiAgaXNGZXRjaGluZ0hvc3RzLFxuICBpc1NlYXJjaGluZ0hvc3RzLFxuICBrZXlCaW5kaW5nLFxuICBrZXlCaW5kaW5ncyxcbiAgbW9kZSxcbiAgbW9kZXMsXG4gIHByZXZpZXdUZW1wbGF0ZSxcbiAgaXNTYWZlbW9kZUVuYWJsZWQsXG4gIHJlbmRlclBhdGgsXG4gIHNhZmVtb2RlUmVuZGVyUGF0aCxcbiAgcmV2ZXJ0Q2hhbmdlcyxcbiAgc2VsZWN0ZWRIb3N0LFxuICBzZWxlY3RlZFZpZXcsXG4gIHNob3dIaWRlLFxuICBzaG93SW1wb3J0LFxuICBzaG93UHJldmlldyxcbiAgc2hvd0hvc3RTZWxlY3RvcixcbiAgdGVtcGxhdGUsXG4gIHRoZW1lLFxuICB0aGVtZXMsXG4gIHRvZ2dsZU1hc2tWYWx1ZSxcbiAgdG9nZ2xlTW9kYWwsXG4gIHRvZ2dsZVJlbmRlclZpZXcsXG4gIHZhbHVlLFxuICByZW5kZXJlZEVkaXRvclZhbHVlLFxuICBwcmV2aWV3UmVzdWx0LFxuICBzZWFyY2hRdWVyeSxcbiAgb25Ib3N0U2VsZWN0VG9nZ2xlLFxuICBvbkhvc3RTZWFyY2gsXG4gIG9uU2VhcmNoQ2xlYXIsXG4gIGlzU2VsZWN0T3BlbixcbiAgc2hvd0Vycm9yLFxuICBmZXRjaEFuZFByZXZpZXcsXG59KSA9PiB7XG4gIGNvbnN0IFtzYWZlbW9kZSwgc2V0U2FmZW1vZGVdID0gdXNlU3RhdGUoaXNTYWZlbW9kZUVuYWJsZWQpO1xuICBjb25zdCBoYW5kbGVTYWZlTW9kZUNoYW5nZSA9ICh7IGN1cnJlbnRUYXJnZXQ6IHsgY2hlY2tlZDogbmV3Q2hlY2tlZCB9IH0pID0+IHtcbiAgICBzZXRTYWZlbW9kZShuZXdDaGVja2VkKTtcbiAgICBjb25zdCBuZXdSZW5kZXJQYXRoID0gbmV3Q2hlY2tlZCA/IHNhZmVtb2RlUmVuZGVyUGF0aCA6IHJlbmRlclBhdGg7XG4gICAgcHJldmlld1RlbXBsYXRlKHsgaG9zdDogc2VsZWN0ZWRIb3N0LCByZW5kZXJQYXRoOiBuZXdSZW5kZXJQYXRoIH0pO1xuICB9O1xuICBjb25zdCBzZWxlY3RlZFJlbmRlclBhdGggPSBzYWZlbW9kZSA/IHNhZmVtb2RlUmVuZGVyUGF0aCA6IHJlbmRlclBhdGg7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm5hdmJhciBuYXZiYXItZm9ybSBuYXZiYXItZnVsbC13aWR0aCBuYXZiYXItZWRpdG9yXCI+XG4gICAgICA8TmF2IGNsYXNzTmFtZT1cIm5hdiBuYXYtdGFicyBuYXYtdGFicy1wZiBuYXYtdGFicy1wZi1zZWNvbmRhcnlcIj5cbiAgICAgICAgPEVkaXRvclJhZGlvQnV0dG9uXG4gICAgICAgICAgc3RhdGVWaWV3PXtzZWxlY3RlZFZpZXd9XG4gICAgICAgICAgYnRuVmlldz1cImlucHV0XCJcbiAgICAgICAgICB0aXRsZT17X18oJ0VkaXRvcicpfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFZpZXcgIT09ICdpbnB1dCcpIHtcbiAgICAgICAgICAgICAgaWYgKGlzUmVuZGVyaW5nKSB0b2dnbGVSZW5kZXJWaWV3KCk7XG4gICAgICAgICAgICAgIGNoYW5nZVRhYignaW5wdXQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8RWRpdG9yUmFkaW9CdXR0b25cbiAgICAgICAgICBzdGF0ZVZpZXc9e3NlbGVjdGVkVmlld31cbiAgICAgICAgICBkaXNhYmxlZD17IWlzRGlmZn1cbiAgICAgICAgICBidG5WaWV3PVwiZGlmZlwiXG4gICAgICAgICAgdGl0bGU9e19fKCdDaGFuZ2VzJyl9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkVmlldyAhPT0gJ2RpZmYnKSB7XG4gICAgICAgICAgICAgIGNoYW5nZVRhYignZGlmZicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIHtzaG93UHJldmlldyAmJiAoXG4gICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgPEVkaXRvclJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgIHN0YXRlVmlldz17c2VsZWN0ZWRWaWV3fVxuICAgICAgICAgICAgICBidG5WaWV3PVwicHJldmlld1wiXG4gICAgICAgICAgICAgIHRpdGxlPXtfXygnUHJldmlldycpfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkVmlldyAhPT0gJ3ByZXZpZXcnKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoIWlzUmVuZGVyaW5nKSB0b2dnbGVSZW5kZXJWaWV3KCk7XG4gICAgICAgICAgICAgICAgICBjaGFuZ2VUYWIoJ3ByZXZpZXcnKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEhvc3QuaWQgPT09ICcnKVxuICAgICAgICAgICAgICAgICAgICBmZXRjaEFuZFByZXZpZXcoc2VsZWN0ZWRSZW5kZXJQYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge3Nob3dIb3N0U2VsZWN0b3IgJiYgKFxuICAgICAgICAgICAgICA8RWRpdG9ySG9zdFNlbGVjdFxuICAgICAgICAgICAgICAgIHNob3c9e3NlbGVjdGVkVmlldyA9PT0gJ3ByZXZpZXcnfVxuICAgICAgICAgICAgICAgIG9wZW49e2lzU2VsZWN0T3Blbn1cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW09e3NlbGVjdGVkSG9zdH1cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17X18oJ1NlbGVjdCBIb3N0Li4uJyl9XG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0ZldGNoaW5nSG9zdHN9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hvc3QgPT5cbiAgICAgICAgICAgICAgICAgIHByZXZpZXdUZW1wbGF0ZSh7IGhvc3QsIHJlbmRlclBhdGg6IHNlbGVjdGVkUmVuZGVyUGF0aCB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZWFyY2hRdWVyeT17c2VhcmNoUXVlcnl9XG4gICAgICAgICAgICAgICAgb25Ub2dnbGU9e29uSG9zdFNlbGVjdFRvZ2dsZX1cbiAgICAgICAgICAgICAgICBvblNlYXJjaENoYW5nZT17b25Ib3N0U2VhcmNofVxuICAgICAgICAgICAgICAgIG9uU2VhcmNoQ2xlYXI9e29uU2VhcmNoQ2xlYXJ9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17aXNTZWFyY2hpbmdIb3N0cyA/IGZpbHRlcmVkSG9zdHMgOiBob3N0c31cbiAgICAgICAgICAgICAgICBrZXk9XCJob3N0c1NlbGVjdFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPEVkaXRvclNhZmVtb2RlQ2hlY2tib3hcbiAgICAgICAgICAgICAgc2hvdz17c2VsZWN0ZWRWaWV3ID09PSAncHJldmlldyd9XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e3NhZmVtb2RlfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17aXNTYWZlbW9kZUVuYWJsZWR9XG4gICAgICAgICAgICAgIGhhbmRsZVNhZmVNb2RlQ2hhbmdlPXtoYW5kbGVTYWZlTW9kZUNoYW5nZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7c2VsZWN0ZWRWaWV3ID09PSAncHJldmlldycgJiZcbiAgICAgICAgICAgICAgcHJldmlld1Jlc3VsdCAhPT0gJycgJiZcbiAgICAgICAgICAgICAgcmVuZGVyZWRFZGl0b3JWYWx1ZSAhPT0gdmFsdWUgJiYgKFxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJvdXRkYXRlZC1wcmV2aWV3LWFsZXJ0XCI+XG4gICAgICAgICAgICAgICAgICA8QWxlcnQgdHlwZT1cIndhcm5pbmdcIj5cbiAgICAgICAgICAgICAgICAgICAge19fKCdQcmV2aWV3IGlzIG91dGRhdGVkLicpfVxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYnNTdHlsZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3VGVtcGxhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0OiBzZWxlY3RlZEhvc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlclBhdGg6IHNlbGVjdGVkUmVuZGVyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge19fKCdQcmV2aWV3Jyl9XG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9BbGVydD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHtpc0xvYWRpbmcgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGlkPVwicHJldmlldy1zcGlubmVyXCI+XG4gICAgICAgICAgICAgICAgPFNwaW5uZXIgc2l6ZT1cInNtXCIgbG9hZGluZyAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgKX1cbiAgICAgIDwvTmF2PlxuICAgICAgPEVkaXRvck9wdGlvbnNcbiAgICAgICAgaG9zdHM9e2hvc3RzfVxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIHJlbmRlclBhdGg9e3JlbmRlclBhdGh9XG4gICAgICAgIHByZXZpZXdUZW1wbGF0ZT17cHJldmlld1RlbXBsYXRlfVxuICAgICAgICBzaG93SW1wb3J0PXtzaG93SW1wb3J0fVxuICAgICAgICBzaG93SGlkZT17c2hvd0hpZGV9XG4gICAgICAgIHNob3dQcmV2aWV3PXtzaG93UHJldmlld31cbiAgICAgICAgc2hvd0hvc3RTZWxlY3Rvcj17c2hvd0hvc3RTZWxlY3Rvcn1cbiAgICAgICAgaXNEaWZmPXtpc0RpZmZ9XG4gICAgICAgIGRpZmZWaWV3VHlwZT17ZGlmZlZpZXdUeXBlfVxuICAgICAgICBpc01hc2tlZD17aXNNYXNrZWR9XG4gICAgICAgIGlzUmVuZGVyaW5nPXtpc1JlbmRlcmluZ31cbiAgICAgICAgaW1wb3J0RmlsZT17aW1wb3J0RmlsZX1cbiAgICAgICAgdGVtcGxhdGU9e3RlbXBsYXRlfVxuICAgICAgICByZXZlcnRDaGFuZ2VzPXtyZXZlcnRDaGFuZ2VzfVxuICAgICAgICBjaGFuZ2VEaWZmVmlld1R5cGU9e2NoYW5nZURpZmZWaWV3VHlwZX1cbiAgICAgICAgdG9nZ2xlTWFza1ZhbHVlPXt0b2dnbGVNYXNrVmFsdWV9XG4gICAgICAgIGNoYW5nZVNldHRpbmc9e2NoYW5nZVNldHRpbmd9XG4gICAgICAgIGNoYW5nZVRhYj17Y2hhbmdlVGFifVxuICAgICAgICB0b2dnbGVNb2RhbD17dG9nZ2xlTW9kYWx9XG4gICAgICAgIHNlbGVjdGVkVmlldz17c2VsZWN0ZWRWaWV3fVxuICAgICAgICBtb2RlPXttb2RlfVxuICAgICAgICBtb2Rlcz17bW9kZXN9XG4gICAgICAgIGtleUJpbmRpbmc9e2tleUJpbmRpbmd9XG4gICAgICAgIGtleUJpbmRpbmdzPXtrZXlCaW5kaW5nc31cbiAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICB0aGVtZXM9e3RoZW1lc31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5FZGl0b3JOYXZiYXIucHJvcFR5cGVzID0ge1xuICBjaGFuZ2VEaWZmVmlld1R5cGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoYW5nZVNldHRpbmc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoYW5nZVRhYjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGlmZlZpZXdUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGZldGNoQW5kUHJldmlldzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZmlsdGVyZWRIb3N0czogUHJvcFR5cGVzLmFycmF5LFxuICBob3N0czogUHJvcFR5cGVzLmFycmF5LFxuICBpbXBvcnRGaWxlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpc0RpZmY6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzRmV0Y2hpbmdIb3N0czogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc01hc2tlZDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaXNSZW5kZXJpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzU2VhcmNoaW5nSG9zdHM6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzU2VsZWN0T3BlbjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAga2V5QmluZGluZzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBrZXlCaW5kaW5nczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIG1vZGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbW9kZXM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBvbkhvc3RTZWFyY2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uSG9zdFNlbGVjdFRvZ2dsZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25TZWFyY2hDbGVhcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgcHJldmlld1Jlc3VsdDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBwcmV2aWV3VGVtcGxhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHJlbmRlcmVkRWRpdG9yVmFsdWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaXNTYWZlbW9kZUVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIHJlbmRlclBhdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNhZmVtb2RlUmVuZGVyUGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgcmV2ZXJ0Q2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2VhcmNoUXVlcnk6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgc2VsZWN0ZWRIb3N0OiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGlkOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgfSkuaXNSZXF1aXJlZCxcbiAgc2VsZWN0ZWRWaWV3OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNob3dFcnJvcjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgc2hvd0hpZGU6IFByb3BUeXBlcy5ib29sLFxuICBzaG93SW1wb3J0OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBzaG93UHJldmlldzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgc2hvd0hvc3RTZWxlY3RvcjogUHJvcFR5cGVzLmJvb2wsXG4gIHRlbXBsYXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0aGVtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB0aGVtZXM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICB0b2dnbGVNYXNrVmFsdWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHRvZ2dsZU1vZGFsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0b2dnbGVSZW5kZXJWaWV3OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxufTtcblxuRWRpdG9yTmF2YmFyLmRlZmF1bHRQcm9wcyA9IHtcbiAgaG9zdHM6IFtdLFxuICBmaWx0ZXJlZEhvc3RzOiBbXSxcbiAgcmVuZGVyUGF0aDogJycsXG4gIHNhZmVtb2RlUmVuZGVyUGF0aDogJycsXG4gIHNob3dIaWRlOiBmYWxzZSxcbiAgdGVtcGxhdGU6ICcnLFxuICBzaG93SG9zdFNlbGVjdG9yOiB0cnVlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yTmF2YmFyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL2NvbXBvbmVudHMvRWRpdG9yTmF2YmFyLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBJY29uLCBOYXZJdGVtIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5cbmNvbnN0IEVkaXRvclJhZGlvQnV0dG9uID0gKHtcbiAgYnRuVmlldyxcbiAgZGlzYWJsZWQsXG4gIGljb24sXG4gIG9uQ2xpY2ssXG4gIHN0YXRlVmlldyxcbiAgdGl0bGUsXG59KSA9PiAoXG4gIDxOYXZJdGVtXG4gICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgIGFjdGl2ZT17c3RhdGVWaWV3ID09PSBidG5WaWV3fVxuICAgIGlkPXtgJHtidG5WaWV3fS1uYXZpdGVtYH1cbiAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICA+XG4gICAge2ljb24gJiYgPEljb24gdHlwZT17aWNvbi50eXBlfSBuYW1lPXtpY29uLm5hbWV9IC8+fVxuICAgIHtpY29uID8gYCAke3RpdGxlfWAgOiB0aXRsZX1cbiAgPC9OYXZJdGVtPlxuKTtcblxuRWRpdG9yUmFkaW9CdXR0b24ucHJvcFR5cGVzID0ge1xuICBidG5WaWV3OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgaWNvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc3RhdGVWaWV3OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59O1xuXG5FZGl0b3JSYWRpb0J1dHRvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGljb246IG51bGwsXG4gIGRpc2FibGVkOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRvclJhZGlvQnV0dG9uO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL2NvbXBvbmVudHMvRWRpdG9yUmFkaW9CdXR0b24uanMiLCIvKiBlc2xpbnQtZGlzYWJsZSBuby1hbGVydCAqL1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7XG4gIEJ1dHRvbixcbiAgSWNvbixcbiAgT3ZlcmxheVRyaWdnZXIsXG4gIEZvcm1Db250cm9sLFxuICBUb29sdGlwLFxufSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcblxuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IHsgYmluZE1ldGhvZHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgRGlmZlJhZGlvQnV0dG9ucyBmcm9tICcuLi8uLi9EaWZmVmlldy9EaWZmUmFkaW9CdXR0b25zJztcbmltcG9ydCBFZGl0b3JTZXR0aW5ncyBmcm9tICcuL0VkaXRvclNldHRpbmdzJztcblxuY2xhc3MgRWRpdG9yT3B0aW9ucyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIGJpbmRNZXRob2RzKHRoaXMsIFsnZmlsZURpYWxvZyddKTtcbiAgICB0aGlzLmZpbGVJbnB1dCA9IFJlYWN0LmNyZWF0ZVJlZigpO1xuICB9XG5cbiAgZmlsZURpYWxvZygpIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5jbGljaygpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoYW5nZURpZmZWaWV3VHlwZSxcbiAgICAgIGNoYW5nZVNldHRpbmcsXG4gICAgICBjaGFuZ2VUYWIsXG4gICAgICBkaWZmVmlld1R5cGUsXG4gICAgICBpbXBvcnRGaWxlLFxuICAgICAgaXNEaWZmLFxuICAgICAgaXNNYXNrZWQsXG4gICAgICBrZXlCaW5kaW5nLFxuICAgICAga2V5QmluZGluZ3MsXG4gICAgICBtb2RlLFxuICAgICAgbW9kZXMsXG4gICAgICByZXZlcnRDaGFuZ2VzLFxuICAgICAgc2VsZWN0ZWRWaWV3LFxuICAgICAgc2hvd0hpZGUsXG4gICAgICBzaG93SW1wb3J0LFxuICAgICAgdGVtcGxhdGUsXG4gICAgICB0aGVtZSxcbiAgICAgIHRoZW1lcyxcbiAgICAgIHRvZ2dsZU1hc2tWYWx1ZSxcbiAgICAgIHRvZ2dsZU1vZGFsLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgaWQ9XCJlZGl0b3ItZHJvcGRvd25zXCI+XG4gICAgICAgIHtzZWxlY3RlZFZpZXcgPT09ICdkaWZmJyAmJiAoXG4gICAgICAgICAgPERpZmZSYWRpb0J1dHRvbnNcbiAgICAgICAgICAgIHN0YXRlVmlldz17ZGlmZlZpZXdUeXBlfVxuICAgICAgICAgICAgY2hhbmdlU3RhdGU9e3ZpZXdUeXBlID0+IGNoYW5nZURpZmZWaWV3VHlwZSh2aWV3VHlwZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cblxuICAgICAgICA8aDQgaWQ9XCJkaXZpZGVyXCI+fDwvaDQ+XG4gICAgICAgIHtzaG93SGlkZSAmJiAoXG4gICAgICAgICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICAgICAgICBkZWxheVNob3c9ezUwMH1cbiAgICAgICAgICAgIG92ZXJsYXk9ezxUb29sdGlwIGlkPVwibWFzay10b29sdGlwXCI+e19fKCdIaWRlIENvbnRlbnQnKX08L1Rvb2x0aXA+fVxuICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgIHRyaWdnZXI9e1snaG92ZXInXX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGRpc2FibGVkPXtzZWxlY3RlZFZpZXcgIT09ICdpbnB1dCd9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXRvci1idXR0b25cIlxuICAgICAgICAgICAgICBpZD1cImhpZGUtYnRuXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdG9nZ2xlTWFza1ZhbHVlKGlzTWFza2VkKX1cbiAgICAgICAgICAgICAgYnNTdHlsZT1cImxpbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SWNvbiBzaXplPVwibGdcIiB0eXBlPVwiZmFcIiBuYW1lPXtpc01hc2tlZCA/ICdleWUnIDogJ2V5ZS1zbGFzaCd9IC8+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L092ZXJsYXlUcmlnZ2VyPlxuICAgICAgICApfVxuICAgICAgICB7aXNEaWZmID8gKCAvLyBmaXhpbmcgdG9vbHRpcCBzaG93aW5nIHNvbWV0aW1lcyBmb3IgZGlzYWJsZWQgaWNvblxuICAgICAgICAgIDxPdmVybGF5VHJpZ2dlclxuICAgICAgICAgICAgZGVsYXlTaG93PXs1MDB9XG4gICAgICAgICAgICBvdmVybGF5PXtcbiAgICAgICAgICAgICAgPFRvb2x0aXAgaWQ9XCJyZXZlcnQtdG9vbHRpcFwiPlxuICAgICAgICAgICAgICAgIHtfXygnUmV2ZXJ0IExvY2FsIENoYW5nZXMnKX1cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgIHRyaWdnZXI9e1snaG92ZXInXX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXRvci1idXR0b25cIlxuICAgICAgICAgICAgICBpZD1cInVuZG8tYnRuXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5jb25maXJtKFxuICAgICAgICAgICAgICAgICAgICAnQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIHJldmVydCBhbGwgY2hhbmdlcz8nXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICByZXZlcnRDaGFuZ2VzKHRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZFZpZXcgIT09ICdpbnB1dCcpIGNoYW5nZVRhYignaW5wdXQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGJzU3R5bGU9XCJsaW5rXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEljb24gc2l6ZT1cIjJ4XCIgdHlwZT1cInBmXCIgbmFtZT1cInJlc3RhcnRcIiAvPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9PdmVybGF5VHJpZ2dlcj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZWRpdG9yLWJ1dHRvblwiXG4gICAgICAgICAgICBpZD1cInVuZG8tYnRuXCJcbiAgICAgICAgICAgIGJzU3R5bGU9XCJsaW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8SWNvbiBzaXplPVwiMnhcIiB0eXBlPVwicGZcIiBuYW1lPVwicmVzdGFydFwiIC8+XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICl9XG4gICAgICAgIHtzaG93SW1wb3J0ICYmIChcbiAgICAgICAgICA8T3ZlcmxheVRyaWdnZXJcbiAgICAgICAgICAgIGRlbGF5U2hvdz17NTAwfVxuICAgICAgICAgICAgb3ZlcmxheT17PFRvb2x0aXAgaWQ9XCJpbXBvcnQtdG9vbHRpcFwiPntfXygnSW1wb3J0IEZpbGUnKX08L1Rvb2x0aXA+fVxuICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgIHRyaWdnZXI9e1snaG92ZXInXX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGRpc2FibGVkPXtzZWxlY3RlZFZpZXcgIT09ICdpbnB1dCd9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImltcG9ydC1idXR0b25cIlxuICAgICAgICAgICAgICBpZD1cImltcG9ydC1idG5cIlxuICAgICAgICAgICAgICBic1N0eWxlPVwibGlua1wiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMuZmlsZURpYWxvZygpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8SWNvbiBzaXplPVwibGdcIiB0eXBlPVwicGZcIiBuYW1lPVwiZm9sZGVyLW9wZW5cIiAvPlxuICAgICAgICAgICAgICA8Rm9ybUNvbnRyb2xcbiAgICAgICAgICAgICAgICBpbnB1dFJlZj17cmVmID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0ID0gcmVmO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2ltcG9ydEZpbGV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L092ZXJsYXlUcmlnZ2VyPlxuICAgICAgICApfVxuICAgICAgICA8RWRpdG9yU2V0dGluZ3NcbiAgICAgICAgICBjaGFuZ2VTZXR0aW5nPXtjaGFuZ2VTZXR0aW5nfVxuICAgICAgICAgIHNlbGVjdGVkVmlldz17c2VsZWN0ZWRWaWV3fVxuICAgICAgICAgIG1vZGVzPXttb2Rlc31cbiAgICAgICAgICBtb2RlPXttb2RlfVxuICAgICAgICAgIGtleUJpbmRpbmdzPXtrZXlCaW5kaW5nc31cbiAgICAgICAgICBrZXlCaW5kaW5nPXtrZXlCaW5kaW5nfVxuICAgICAgICAgIHRoZW1lPXt0aGVtZX1cbiAgICAgICAgICB0aGVtZXM9e3RoZW1lc31cbiAgICAgICAgLz5cbiAgICAgICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICAgICAgZGVsYXlTaG93PXs1MDB9XG4gICAgICAgICAgb3ZlcmxheT17PFRvb2x0aXAgaWQ9XCJmdWxsc2NyZWVuLXRvb2x0aXBcIj57X18oJ01heGltaXplJyl9PC9Ub29sdGlwPn1cbiAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAgIHRyaWdnZXI9e1snaG92ZXInXX1cbiAgICAgICAgPlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXRvci1idXR0b25cIlxuICAgICAgICAgICAgaWQ9XCJmdWxsc2NyZWVuLWJ0blwiXG4gICAgICAgICAgICBvbkNsaWNrPXt0b2dnbGVNb2RhbH1cbiAgICAgICAgICAgIGJzU3R5bGU9XCJsaW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8SWNvbiBzaXplPVwibGdcIiB0eXBlPVwiZmFcIiBuYW1lPVwiYXJyb3dzLWFsdFwiIC8+XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvT3ZlcmxheVRyaWdnZXI+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvck9wdGlvbnMucHJvcFR5cGVzID0ge1xuICBjaGFuZ2VEaWZmVmlld1R5cGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoYW5nZVNldHRpbmc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoYW5nZVRhYjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGlmZlZpZXdUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGltcG9ydEZpbGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGlzRGlmZjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaXNNYXNrZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGtleUJpbmRpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAga2V5QmluZGluZ3M6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBtb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG1vZGVzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgcmV2ZXJ0Q2hhbmdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2VsZWN0ZWRWaWV3OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNob3dIaWRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgc2hvd0ltcG9ydDogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgdGVtcGxhdGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRoZW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRoZW1lczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIHRvZ2dsZU1hc2tWYWx1ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdG9nZ2xlTW9kYWw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5FZGl0b3JPcHRpb25zLmRlZmF1bHRQcm9wcyA9IHtcbiAgc2hvd0hpZGU6IGZhbHNlLFxuICB0ZW1wbGF0ZTogJycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JPcHRpb25zO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL2NvbXBvbmVudHMvRWRpdG9yT3B0aW9ucy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtcbiAgUG9wb3ZlcixcbiAgRHJvcGRvd24sXG4gIE1lbnVJdGVtLFxuICBCdXR0b24sXG4gIEljb24sXG4gIE92ZXJsYXlUcmlnZ2VyLFxufSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgRWRpdG9yU2V0dGluZ3MgPSAoe1xuICBzZWxlY3RlZFZpZXcsXG4gIGNoYW5nZVNldHRpbmcsXG4gIGtleUJpbmRpbmcsXG4gIGtleUJpbmRpbmdzLFxuICBtb2RlLFxuICBtb2RlcyxcbiAgdGhlbWUsXG4gIHRoZW1lcyxcbn0pID0+IChcbiAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgb3ZlcmxheT17XG4gICAgICA8UG9wb3ZlciBwbGFjZW1lbnQ9XCJib3R0b21cIiB0aXRsZT17X18oJ1NldHRpbmdzJyl9IGlkPVwiY29nLXBvcG92ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2ctcG9wb3Zlci1kcm9wZG93blwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29nLXBvcG92ZXItZHJvcGRvd24tdGl0bGVcIj57X18oJ1N5bnRheCcpfTwvZGl2PlxuICAgICAgICAgIDxEcm9wZG93biBkaXNhYmxlZD17c2VsZWN0ZWRWaWV3ID09PSAncHJldmlldyd9IGlkPVwibW9kZS1kcm9wZG93blwiPlxuICAgICAgICAgICAgPERyb3Bkb3duLlRvZ2dsZT57bW9kZX08L0Ryb3Bkb3duLlRvZ2dsZT5cbiAgICAgICAgICAgIDxEcm9wZG93bi5NZW51IGlkPVwic2V0dGluZ3MtZHJvcGRvd25cIj5cbiAgICAgICAgICAgICAge21vZGVzLm1hcCgoYWNlTW9kZSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgIDxNZW51SXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXtpfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gY2hhbmdlU2V0dGluZyh7IG1vZGU6IGFjZU1vZGUgfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2FjZU1vZGV9XG4gICAgICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L0Ryb3Bkb3duLk1lbnU+XG4gICAgICAgICAgPC9Ecm9wZG93bj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29nLXBvcG92ZXItZHJvcGRvd25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvZy1wb3BvdmVyLWRyb3Bkb3duLXRpdGxlXCI+e19fKCdLZXliaW5kJyl9PC9kaXY+XG4gICAgICAgICAgPERyb3Bkb3duXG4gICAgICAgICAgICBkaXNhYmxlZD17c2VsZWN0ZWRWaWV3ID09PSAncHJldmlldyd9XG4gICAgICAgICAgICBpZD1cImtleWJpbmRpbmdzLWRyb3Bkb3duXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlPntrZXlCaW5kaW5nfTwvRHJvcGRvd24uVG9nZ2xlPlxuICAgICAgICAgICAgPERyb3Bkb3duLk1lbnUgaWQ9XCJzZXR0aW5ncy1kcm9wZG93blwiPlxuICAgICAgICAgICAgICB7a2V5QmluZGluZ3MubWFwKChrZXlCaW5kLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjaGFuZ2VTZXR0aW5nKHsga2V5QmluZGluZzoga2V5QmluZCB9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7a2V5QmluZH1cbiAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRHJvcGRvd24uTWVudT5cbiAgICAgICAgICA8L0Ryb3Bkb3duPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2ctcG9wb3Zlci1kcm9wZG93blwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29nLXBvcG92ZXItZHJvcGRvd24tdGl0bGVcIj57X18oJ1RoZW1lJyl9PC9kaXY+XG4gICAgICAgICAgPERyb3Bkb3duIGlkPVwidGhlbWVzLWRyb3Bkb3duXCI+XG4gICAgICAgICAgICA8RHJvcGRvd24uVG9nZ2xlPnt0aGVtZX08L0Ryb3Bkb3duLlRvZ2dsZT5cbiAgICAgICAgICAgIDxEcm9wZG93bi5NZW51IGlkPVwic2V0dGluZ3MtZHJvcGRvd25cIj5cbiAgICAgICAgICAgICAge3RoZW1lcy5tYXAoKHRoZW1lS2V5LCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtXG4gICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjaGFuZ2VTZXR0aW5nKHsgdGhlbWU6IHRoZW1lS2V5IH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt0aGVtZUtleX1cbiAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvRHJvcGRvd24uTWVudT5cbiAgICAgICAgICA8L0Ryb3Bkb3duPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvUG9wb3Zlcj5cbiAgICB9XG4gICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICB0cmlnZ2VyPXtbJ2NsaWNrJ119XG4gICAgcm9vdENsb3NlXG4gID5cbiAgICA8QnV0dG9uIGNsYXNzTmFtZT1cImVkaXRvci1idXR0b25cIiBpZD1cImNvZy1idG5cIiBic1N0eWxlPVwibGlua1wiPlxuICAgICAgPEljb24gc2l6ZT1cImxnXCIgbmFtZT1cImNvZ1wiIC8+XG4gICAgPC9CdXR0b24+XG4gIDwvT3ZlcmxheVRyaWdnZXI+XG4pO1xuXG5FZGl0b3JTZXR0aW5ncy5wcm9wVHlwZXMgPSB7XG4gIGNoYW5nZVNldHRpbmc6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGtleUJpbmRpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAga2V5QmluZGluZ3M6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBzZWxlY3RlZFZpZXc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbW9kZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBtb2RlczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIHRoZW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRoZW1lczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGl0b3JTZXR0aW5ncztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9jb21wb25lbnRzL0VkaXRvclNldHRpbmdzLmpzIiwiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0LWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0ICcuL2VkaXRvcmhvc3RzZWxlY3Quc2Nzcyc7XG5cbmNsYXNzIEVkaXRvckhvc3RTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBzZXRXcmFwcGVyUmVmID0gbm9kZSA9PiB7XG4gICAgdGhpcy5zZWxlY3RSZWYgPSBub2RlO1xuICB9O1xuXG4gIGhhbmRsZUNsaWNrT3V0c2lkZSA9IGV2ZW50ID0+IHtcbiAgICBpZiAodGhpcy5zZWxlY3RSZWYgJiYgIXRoaXMuc2VsZWN0UmVmLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIGNvbnN0IHsgb3Blbiwgb25Ub2dnbGUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAob3Blbikgb25Ub2dnbGUoKTtcbiAgICB9XG4gIH07XG5cbiAgb25LZXkgPSBldmVudCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICBjb25zdCB7IG9wZW4sIG9uVG9nZ2xlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKG9wZW4pIG9uVG9nZ2xlKCk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBzaG93LFxuICAgICAgaXNMb2FkaW5nLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblNlYXJjaENoYW5nZSxcbiAgICAgIG9uU2VhcmNoQ2xlYXIsXG4gICAgICBvblRvZ2dsZSxcbiAgICAgIG9wZW4sXG4gICAgICBvcHRpb25zLFxuICAgICAgc2VhcmNoUXVlcnksXG4gICAgICBzZWxlY3RlZEl0ZW0sXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXt0aGlzLnNldFdyYXBwZXJSZWZ9XG4gICAgICAgIGlkPVwiZWRpdG9yLXNlbGVjdC1jb250YWluZXJcIlxuICAgICAgICBjbGFzc05hbWU9e3Nob3cgPyAnJyA6ICdoaWRkZW4nfVxuICAgICAgPlxuICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICBwbGFjZWhvbGRlcj17X18oJ0ZpbHRlciBIb3N0Li4uJyl9XG4gICAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgICBvblRvZ2dsZT17b25Ub2dnbGV9XG4gICAgICAgICAgc2VhcmNoVmFsdWU9e3NlYXJjaFF1ZXJ5fVxuICAgICAgICAgIG9uU2VhcmNoQ2hhbmdlPXtvblNlYXJjaENoYW5nZX1cbiAgICAgICAgICBvblNlYXJjaENsZWFyPXtvblNlYXJjaENsZWFyfVxuICAgICAgICAgIG9uS2V5RG93bj17dGhpcy5vbktleX1cbiAgICAgICAgICBvbkl0ZW1DbGljaz17b25DaGFuZ2V9XG4gICAgICAgICAgc2VsZWN0ZWRJdGVtPXtzZWxlY3RlZEl0ZW19XG4gICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbkVkaXRvckhvc3RTZWxlY3QucHJvcFR5cGVzID0ge1xuICBzaG93OiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblNlYXJjaENoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25TZWFyY2hDbGVhcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25Ub2dnbGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9wZW46IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9wdGlvbnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICBzZWFyY2hRdWVyeTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzZWxlY3RlZEl0ZW06IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgaWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KS5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdG9ySG9zdFNlbGVjdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9jb21wb25lbnRzL0VkaXRvckhvc3RTZWxlY3QuanMiLCJtb2R1bGUuZXhwb3J0cyA9IF9fRk9SRU1BTl9WRU5ET1JfX1BBVFRFUk5GTFlfUkVBQ1RfRVhURU5TSU9OU19fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fUEFUVEVSTkZMWV9SRUFDVF9FWFRFTlNJT05TX19cIlxuLy8gbW9kdWxlIGlkID0gMzA2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRWRpdG9yL2NvbXBvbmVudHMvZWRpdG9yaG9zdHNlbGVjdC5zY3NzXG4vLyBtb2R1bGUgaWQgPSAzMDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0ICcuL2VkaXRvcnNhZmVtb2RlY2hlY2tib3guc2Nzcyc7XG5cbmNvbnN0IEVkaXRvclNhZmVtb2RlQ2hlY2tib3ggPSAoe1xuICBzaG93LFxuICBjaGVja2VkLFxuICBkaXNhYmxlZCxcbiAgaGFuZGxlU2FmZU1vZGVDaGFuZ2UsXG59KSA9PiB7XG4gIGlmIChzaG93KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgY2xhc3NOYW1lPVwic2FmZW1vZGUtcmVuZGVyaW5nLWNoZWNrYm94XCJcbiAgICAgICAgICBodG1sRm9yPVwic2FmZW1vZGUtcmVuZGVyaW5nLWNoZWNrYm94XCJcbiAgICAgICAgPlxuICAgICAgICAgIHtfXygnU2FmZW1vZGUnKX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBpZD1cInNhZmVtb2RlLXJlbmRlcmluZy1jaGVja2JveFwiXG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNhZmVNb2RlQ2hhbmdlfVxuICAgICAgICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICApO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuRWRpdG9yU2FmZW1vZGVDaGVja2JveC5wcm9wVHlwZXMgPSB7XG4gIHNob3c6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGNoZWNrZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBoYW5kbGVTYWZlTW9kZUNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRvclNhZmVtb2RlQ2hlY2tib3g7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvY29tcG9uZW50cy9FZGl0b3JTYWZlbW9kZUNoZWNrYm94LmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0VkaXRvci9jb21wb25lbnRzL2VkaXRvcnNhZmVtb2RlY2hlY2tib3guc2Nzc1xuLy8gbW9kdWxlIGlkID0gMzA5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTW9kYWwsIEljb24sIEJ1dHRvbiB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IEVkaXRvclZpZXcgZnJvbSAnLi9FZGl0b3JWaWV3JztcbmltcG9ydCBEaWZmUmFkaW9CdXR0b25zIGZyb20gJy4uLy4uL0RpZmZWaWV3L0RpZmZSYWRpb0J1dHRvbnMnO1xuaW1wb3J0IERpZmZWaWV3IGZyb20gJy4uLy4uL0RpZmZWaWV3L0RpZmZWaWV3JztcblxuY29uc3QgRWRpdG9yTW9kYWwgPSAoe1xuICBjaGFuZ2VEaWZmVmlld1R5cGUsXG4gIGNoYW5nZUVkaXRvclZhbHVlLFxuICBkaWZmVmlld1R5cGUsXG4gIGVkaXRvclZhbHVlLFxuICBwcmV2aWV3VmFsdWUsXG4gIGlzTWFza2VkLFxuICBpc01heGltaXplZCxcbiAgaXNSZW5kZXJpbmcsXG4gIGtleUJpbmRpbmcsXG4gIG1vZGUsXG4gIG5hbWUsXG4gIHJlYWRPbmx5LFxuICBzZWxlY3RlZFZpZXcsXG4gIHRlbXBsYXRlLFxuICB0aGVtZSxcbiAgdGl0bGUsXG4gIHRvZ2dsZU1vZGFsLFxufSkgPT4gKFxuICA8TW9kYWwgc2hvdz17aXNNYXhpbWl6ZWR9IG9uSGlkZT17dG9nZ2xlTW9kYWx9IGNsYXNzTmFtZT1cImVkaXRvci1tb2RhbFwiPlxuICAgIDxNb2RhbC5IZWFkZXIgY2xhc3NOYW1lPXtgJHtzZWxlY3RlZFZpZXd9ICR7dGhlbWUudG9Mb3dlckNhc2UoKX1gfT5cbiAgICAgIDxoNCBpZD1cImVkaXRvci1tb2RhbC1oNFwiPnt0aXRsZX08L2g0PlxuICAgICAgPEJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJjbG9zZVwiXG4gICAgICAgIG9uQ2xpY2s9e3RvZ2dsZU1vZGFsfVxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2VcIlxuICAgICAgICBic1N0eWxlPVwibGlua1wiXG4gICAgICA+XG4gICAgICAgIDxJY29uIHR5cGU9XCJwZlwiIG5hbWU9XCJjbG9zZVwiIC8+XG4gICAgICA8L0J1dHRvbj5cbiAgICAgIHtzZWxlY3RlZFZpZXcgPT09ICdkaWZmJyAmJiAoXG4gICAgICAgIDxEaWZmUmFkaW9CdXR0b25zXG4gICAgICAgICAgc3RhdGVWaWV3PXtkaWZmVmlld1R5cGV9XG4gICAgICAgICAgY2hhbmdlU3RhdGU9e3ZpZXdUeXBlID0+IGNoYW5nZURpZmZWaWV3VHlwZSh2aWV3VHlwZSl9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvTW9kYWwuSGVhZGVyPlxuICAgIDxNb2RhbC5Cb2R5IGNsYXNzTmFtZT17c2VsZWN0ZWRWaWV3fT5cbiAgICAgIHtzZWxlY3RlZFZpZXcgPT09ICdkaWZmJyA/IChcbiAgICAgICAgPGRpdiBpZD1cImRpZmYtdGFibGVcIj5cbiAgICAgICAgICA8RGlmZlZpZXdcbiAgICAgICAgICAgIG9sZFRleHQ9e3RlbXBsYXRlfVxuICAgICAgICAgICAgbmV3VGV4dD17ZWRpdG9yVmFsdWV9XG4gICAgICAgICAgICB2aWV3VHlwZT17ZGlmZlZpZXdUeXBlfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPEVkaXRvclZpZXdcbiAgICAgICAgICB2YWx1ZT17aXNSZW5kZXJpbmcgPyBwcmV2aWV3VmFsdWUgOiBlZGl0b3JWYWx1ZX1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIG1vZGU9e2lzUmVuZGVyaW5nID8gJ3RleHQnIDogbW9kZX1cbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAga2V5QmluZGluZz17a2V5QmluZGluZ31cbiAgICAgICAgICBvbkNoYW5nZT17Y2hhbmdlRWRpdG9yVmFsdWV9XG4gICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5IHx8IHNlbGVjdGVkVmlldyA9PT0gJ3ByZXZpZXcnfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImVkaXRvciBhY2VfZWRpdG9yX21vZGFsXCJcbiAgICAgICAgICBpc01hc2tlZD17aXNNYXNrZWR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvTW9kYWwuQm9keT5cbiAgPC9Nb2RhbD5cbik7XG5cbkVkaXRvck1vZGFsLnByb3BUeXBlcyA9IHtcbiAgY2hhbmdlRGlmZlZpZXdUeXBlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBjaGFuZ2VFZGl0b3JWYWx1ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGlmZlZpZXdUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGVkaXRvclZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHByZXZpZXdWYWx1ZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc1JlbmRlcmluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaXNNYXNrZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzTWF4aW1pemVkOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBrZXlCaW5kaW5nOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIG1vZGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICByZWFkT25seTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgc2VsZWN0ZWRWaWV3OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRlbXBsYXRlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRoZW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0b2dnbGVNb2RhbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbkVkaXRvck1vZGFsLmRlZmF1bHRQcm9wcyA9IHtcbiAgdGl0bGU6ICcnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yTW9kYWw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvY29tcG9uZW50cy9FZGl0b3JNb2RhbC5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FZGl0b3IvZWRpdG9yLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDMxMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiY29uc3Qgc2VsZWN0VGVtcGxhdGVzID0gc3RhdGUgPT4gc3RhdGUudGVtcGxhdGVzO1xuXG5jb25zdCBzZWxlY3RHZW5lcmF0aW5nUHJvcHNGcm9tVGVtcGxhdGVzID0gKHtcbiAgcG9sbGluZyxcbiAgZGF0YVVybCxcbiAgZ2VuZXJhdGluZ0Vycm9yLFxuICBnZW5lcmF0aW5nRXJyb3JNZXNzYWdlcyxcbn0pID0+ICh7XG4gIHBvbGxpbmcsXG4gIGRhdGFVcmwsXG4gIGdlbmVyYXRpbmdFcnJvcixcbiAgZ2VuZXJhdGluZ0Vycm9yTWVzc2FnZXMsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEdlbmVyYXRpbmdQcm9wcyA9IHN0YXRlID0+XG4gIHNlbGVjdEdlbmVyYXRpbmdQcm9wc0Zyb21UZW1wbGF0ZXMoc2VsZWN0VGVtcGxhdGVzKHN0YXRlKSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9UZW1wbGF0ZUdlbmVyYXRvci9UZW1wbGF0ZUdlbmVyYXRvclNlbGVjdG9ycy5qcyIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcblxuaW1wb3J0IHtcbiAgVEVNUExBVEVfR0VORVJBVEVfUkVRVUVTVCxcbiAgVEVNUExBVEVfR0VORVJBVEVfUE9MTElORyxcbiAgVEVNUExBVEVfR0VORVJBVEVfU1VDQ0VTUyxcbiAgVEVNUExBVEVfR0VORVJBVEVfRkFJTFVSRSxcbn0gZnJvbSAnLi9UZW1wbGF0ZUdlbmVyYXRvckNvbnN0YW50cyc7XG5cbmNvbnN0IGluaXRpYWxTdGF0ZSA9IEltbXV0YWJsZSh7XG4gIHNjaGVkdWxlSW5Qcm9ncmVzczogZmFsc2UsXG4gIHBvbGxpbmc6IGZhbHNlLFxuICBkYXRhVXJsOiBudWxsLFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IChzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgeyB0eXBlLCBwYXlsb2FkIH0pID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBURU1QTEFURV9HRU5FUkFURV9SRVFVRVNUOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnc2NoZWR1bGVJblByb2dyZXNzJywgdHJ1ZSk7XG4gICAgY2FzZSBURU1QTEFURV9HRU5FUkFURV9QT0xMSU5HOlxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgc2NoZWR1bGVJblByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgZGF0YVVybDogcGF5bG9hZC51cmwsXG4gICAgICAgIHBvbGxpbmc6IHRydWUsXG4gICAgICB9KTtcbiAgICBjYXNlIFRFTVBMQVRFX0dFTkVSQVRFX0ZBSUxVUkU6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgICAgICBzY2hlZHVsZUluUHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgICBwb2xsaW5nOiBmYWxzZSxcbiAgICAgICAgZ2VuZXJhdGluZ0Vycm9yOiBwYXlsb2FkLmVycm9yLm1lc3NhZ2UsXG4gICAgICAgIGdlbmVyYXRpbmdFcnJvck1lc3NhZ2VzOiBwYXlsb2FkLm1lc3NhZ2VzLFxuICAgICAgfSk7XG4gICAgY2FzZSBURU1QTEFURV9HRU5FUkFURV9TVUNDRVNTOlxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgc2NoZWR1bGVJblByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgcG9sbGluZzogZmFsc2UsXG4gICAgICB9KTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvVGVtcGxhdGVHZW5lcmF0b3IvVGVtcGxhdGVHZW5lcmF0b3JSZWR1Y2VyLmpzIiwiLyogZXNsaW50LWRpc2FibGUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tdGhlbiAqL1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi8uLi9yZWR1eC9BUEknO1xuXG5pbXBvcnQge1xuICBURU1QTEFURV9HRU5FUkFURV9SRVFVRVNULFxuICBURU1QTEFURV9HRU5FUkFURV9QT0xMSU5HLFxuICBURU1QTEFURV9HRU5FUkFURV9TVUNDRVNTLFxuICBURU1QTEFURV9HRU5FUkFURV9GQUlMVVJFLFxufSBmcm9tICcuL1RlbXBsYXRlR2VuZXJhdG9yQ29uc3RhbnRzJztcblxuY29uc3QgcG9sbGluZ0ludGVydmFsID0gMzAwMDtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlVGVtcGxhdGUgPSAodXJsLCB0ZW1wbGF0ZUlucHV0RGF0YSkgPT4gZGlzcGF0Y2ggPT4ge1xuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogVEVNUExBVEVfR0VORVJBVEVfUkVRVUVTVCxcbiAgICBwYXlsb2FkOiB7IC4uLnRlbXBsYXRlSW5wdXREYXRhIH0sXG4gIH0pO1xuICByZXR1cm4gQVBJLnBvc3QodXJsLCB0ZW1wbGF0ZUlucHV0RGF0YSlcbiAgICAudGhlbigoeyBkYXRhIH0pID0+IHtcbiAgICAgIGRpc3BhdGNoKHBvbGxSZXBvcnREYXRhKGRhdGEuZGF0YV91cmwpKTtcbiAgICB9KVxuICAgIC5jYXRjaChlcnJvciA9PlxuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBURU1QTEFURV9HRU5FUkFURV9GQUlMVVJFLFxuICAgICAgICBwYXlsb2FkOiB7IGVycm9yLCBpdGVtOiB0ZW1wbGF0ZUlucHV0RGF0YSB9LFxuICAgICAgfSlcbiAgICApO1xufTtcblxuY29uc3QgX2Rvd25sb2FkRmlsZSA9IHJlc3BvbnNlID0+IHtcbiAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZS5kYXRhXSwge1xuICAgIHR5cGU6IHJlc3BvbnNlLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddLFxuICB9KTtcbiAgY29uc3QgZmlsZW5hbWUgPSByZXNwb25zZS5oZWFkZXJzWydjb250ZW50LWRpc3Bvc2l0aW9uJ10ubWF0Y2goXG4gICAgL2ZpbGVuYW1lPVwiKC4qKVwiL1xuICApO1xuICBzYXZlQXMoYmxvYiwgKGZpbGVuYW1lICYmIGZpbGVuYW1lWzFdKSB8fCAncmVwb3J0LnR4dCcpO1xufTtcblxuY29uc3QgX2dldEVycm9ycyA9IGVycm9yUmVzcG9uc2UgPT4ge1xuICBpZiAoIWVycm9yUmVzcG9uc2UgfHwgIWVycm9yUmVzcG9uc2UuZGF0YSkgcmV0dXJuIG51bGw7XG4gIGlmIChlcnJvclJlc3BvbnNlLnN0YXR1cyA9PT0gNDIyKSByZXR1cm4gZXJyb3JSZXNwb25zZS5kYXRhLmVycm9ycztcbiAgaWYgKGVycm9yUmVzcG9uc2UuZGF0YS5lcnJvcikgcmV0dXJuIFtlcnJvclJlc3BvbnNlLmRhdGEuZXJyb3JdOyAvLyBtb3N0IG9mID41MDBcbiAgcmV0dXJuIFtlcnJvclJlc3BvbnNlLmRhdGFdO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvbGxSZXBvcnREYXRhID0gcG9sbFVybCA9PiBkaXNwYXRjaCA9PiB7XG4gIGRpc3BhdGNoKHsgdHlwZTogVEVNUExBVEVfR0VORVJBVEVfUE9MTElORywgcGF5bG9hZDogeyB1cmw6IHBvbGxVcmwgfSB9KTtcblxuICByZXR1cm4gQVBJLmdldChwb2xsVXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pXG4gICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgIGRpc3BhdGNoKHsgdHlwZTogVEVNUExBVEVfR0VORVJBVEVfU1VDQ0VTUywgcGF5bG9hZDoge30gfSk7XG4gICAgICAgIF9kb3dubG9hZEZpbGUocmVzcG9uc2UpO1xuICAgICAgfSBlbHNlIGlmIChwb2xsaW5nSW50ZXJ2YWwpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBkaXNwYXRjaChwb2xsUmVwb3J0RGF0YShwb2xsVXJsKSksIHBvbGxpbmdJbnRlcnZhbCk7XG4gICAgICB9XG4gICAgfSlcbiAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBURU1QTEFURV9HRU5FUkFURV9GQUlMVVJFLFxuICAgICAgICBwYXlsb2FkOiB7IGVycm9yLCBtZXNzYWdlczogX2dldEVycm9ycyhlcnJvci5yZXNwb25zZSkgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1RlbXBsYXRlR2VuZXJhdG9yL1RlbXBsYXRlR2VuZXJhdG9yQWN0aW9ucy5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fRklMRV9TQVZFUl9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fRklMRV9TQVZFUl9fXCJcbi8vIG1vZHVsZSBpZCA9IDMxNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBBbGVydCwgQnV0dG9uIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgeyBzcHJpbnRmLCB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgQWxlcnRCb2R5IGZyb20gJy4uL2NvbW1vbi9BbGVydC9BbGVydEJvZHknO1xuXG5jb25zdCBwb2xsaW5nTXNnID0gYFxuICBSZXBvcnQgJXMgaXMgbm93IGJlaW5nIGdlbmVyYXRlZCwgdGhlIGRvd25sb2FkIHdpbGwgc3RhcnQgb25jZSBpdCdzIGRvbmUuXG4gIFlvdSBjYW4gY29tZSB0byB0aGlzIHBhZ2UgbGF0ZXIgdG8gZ2V0IHRoZSByZXN1bHRzLiBUaGUgcmVzdWx0IGlzIGF2YWlsYWJsZSBmb3IgMjQgaG91cnMuXG5gO1xuY29uc3QgZG9uZU1zZyA9IGBcbiAgR2VuZXJhdGluZyBvZiB0aGUgcmVwb3J0ICVzIGhhcyBiZWVuIGNvbXBsZXRlZC5cbiAgRG93bmxvYWQgc2hvdWxkIHN0YXJ0IGF1dG9tYXRpY2FsbHkuXG4gIEluIGNhc2UgaXQgZG9lcyBub3QsIHBsZWFzZSB1c2UgdGhlIGRvd25sb2FkIGJ1dHRvbiBiZWxvdy5cbmA7XG5cbmNvbnN0IGdldEFsZXJ0ID0gKHR5cGUsIG1zZykgPT4gKFxuICA8QWxlcnQgdHlwZT17dHlwZX0gdGl0bGU9e19fKCdHZW5lcmF0aW5nIGEgcmVwb3J0Jyl9PlxuICAgIDxBbGVydEJvZHkgbWVzc2FnZT17bXNnfSAvPlxuICA8L0FsZXJ0PlxuKTtcblxuY2xhc3MgVGVtcGxhdGVHZW5lcmF0b3IgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBnZXRFcnJvcigpIHtcbiAgICBjb25zdCB7IGdlbmVyYXRpbmdFcnJvciwgZ2VuZXJhdGluZ0Vycm9yTWVzc2FnZXMgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgZXJyb3JzID1cbiAgICAgIGdlbmVyYXRpbmdFcnJvck1lc3NhZ2VzICYmXG4gICAgICBnZW5lcmF0aW5nRXJyb3JNZXNzYWdlcy5tYXAoZSA9PiBlLm1lc3NhZ2UpLmpvaW4oJ1xcbicpO1xuXG4gICAgcmV0dXJuIGVycm9ycyB8fCBnZW5lcmF0aW5nRXJyb3I7XG4gIH1cblxuICByZW5kZXJBbGVydCgpIHtcbiAgICBjb25zdCB7XG4gICAgICBwb2xsaW5nLFxuICAgICAgZGF0YTogeyB0ZW1wbGF0ZU5hbWUgfSxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuZ2V0RXJyb3IoKTtcbiAgICBpZiAocG9sbGluZykgcmV0dXJuIGdldEFsZXJ0KCdpbmZvJywgc3ByaW50Zihwb2xsaW5nTXNnLCB0ZW1wbGF0ZU5hbWUpKTtcbiAgICBpZiAoZXJyb3IpIHJldHVybiBnZXRBbGVydCgnZXJyb3InLCBlcnJvcik7XG4gICAgcmV0dXJuIGdldEFsZXJ0KCdzdWNjZXNzJywgc3ByaW50Zihkb25lTXNnLCB0ZW1wbGF0ZU5hbWUpKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHBvbGxpbmcsIGRhdGFVcmwsIHBvbGxSZXBvcnREYXRhLCBnZW5lcmF0aW5nRXJyb3IgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWRhdGFVcmwgJiYgIXBvbGxpbmcpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAge3RoaXMucmVuZGVyQWxlcnQoKX1cbiAgICAgICAgeyFwb2xsaW5nICYmICFnZW5lcmF0aW5nRXJyb3IgJiYgKFxuICAgICAgICAgIDxCdXR0b24gYnNTdHlsZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBwb2xsUmVwb3J0RGF0YShkYXRhVXJsKX0+XG4gICAgICAgICAgICB7X18oJ0Rvd25sb2FkJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICk7XG4gIH1cbn1cblxuVGVtcGxhdGVHZW5lcmF0b3IucHJvcFR5cGVzID0ge1xuICBkYXRhOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHRlbXBsYXRlTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB9KS5pc1JlcXVpcmVkLFxuICBwb2xsaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgcG9sbFJlcG9ydERhdGE6IFByb3BUeXBlcy5mdW5jLFxuICBkYXRhVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBnZW5lcmF0aW5nRXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGdlbmVyYXRpbmdFcnJvck1lc3NhZ2VzOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoeyBtZXNzYWdlOiBQcm9wVHlwZXMuc3RyaW5nIH0pXG4gICksXG59O1xuXG5UZW1wbGF0ZUdlbmVyYXRvci5kZWZhdWx0UHJvcHMgPSB7XG4gIHBvbGxpbmc6IGZhbHNlLFxuICBwb2xsUmVwb3J0RGF0YTogbm9vcCxcbiAgZGF0YVVybDogbnVsbCxcbiAgZ2VuZXJhdGluZ0Vycm9yOiBudWxsLFxuICBnZW5lcmF0aW5nRXJyb3JNZXNzYWdlczogbnVsbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRlbXBsYXRlR2VuZXJhdG9yO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvVGVtcGxhdGVHZW5lcmF0b3IvVGVtcGxhdGVHZW5lcmF0b3IuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuY29uc3QgQWxlcnRMaW5rID0gKHsgY2hpbGRyZW4sIC4uLnByb3BzIH0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJwdWxsLXJpZ2h0IHRvYXN0LXBmLWFjdGlvblwiPlxuICAgIDxhIHsuLi5wcm9wc30+e2NoaWxkcmVufTwvYT5cbiAgPC9kaXY+XG4pO1xuXG5BbGVydExpbmsucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBocmVmOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbkFsZXJ0TGluay5kZWZhdWx0UHJvcHMgPSB7XG4gIGhyZWY6IHVuZGVmaW5lZCxcbiAgb25DbGljazogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQWxlcnRMaW5rO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0FsZXJ0L0FsZXJ0TGluay5qcyIsImltcG9ydCB7IGJpbmRBY3Rpb25DcmVhdG9ycyB9IGZyb20gJ3JlZHV4JztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCAqIGFzIGFjdGlvbnMgZnJvbSAnLi9GaWxsQWN0aW9ucyc7XG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL0ZpbGxSZWR1Y2VyJztcblxuaW1wb3J0IEZpbGwgZnJvbSAnLi9GaWxsJztcblxuLy8gbWFwIGFjdGlvbiBkaXNwYXRjaGVycyB0byBwcm9wc1xuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gZGlzcGF0Y2ggPT4gYmluZEFjdGlvbkNyZWF0b3JzKGFjdGlvbnMsIGRpc3BhdGNoKTtcblxuLy8gZXhwb3J0IHJlZHVjZXJzXG5leHBvcnQgY29uc3QgcmVkdWNlcnMgPSB7IGV4dGVuZGFibGU6IHJlZHVjZXIgfTtcblxuLy8gZXhwb3J0IGNvbm5lY3RlZCBjb21wb25lbnRcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobnVsbCwgbWFwRGlzcGF0Y2hUb1Byb3BzKShGaWxsKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9GaWxsL2luZGV4LmpzIiwiaW1wb3J0IEltbXV0YWJsZSBmcm9tICdzZWFtbGVzcy1pbW11dGFibGUnO1xuXG5pbXBvcnQgeyBSRUdJU1RFUl9GSUxMLCBSRU1PVkVfRklMTEVEX0NPTVBPTkVOVCB9IGZyb20gJy4vRmlsbENvbnN0YW50cyc7XG5cbmNvbnN0IGluaXRpYWxTdGF0ZSA9IEltbXV0YWJsZSh7fSk7XG5cbmV4cG9ydCBkZWZhdWx0IChzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uKSA9PiB7XG4gIGNvbnN0IHsgcGF5bG9hZCB9ID0gYWN0aW9uO1xuXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIFJFR0lTVEVSX0ZJTEw6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW3BheWxvYWQuc2xvdElkLCBwYXlsb2FkLmZpbGxJZF0sIHtcbiAgICAgICAgd2VpZ2h0OiBwYXlsb2FkLndlaWdodCxcbiAgICAgICAgbWV0YWRhdGE6IHBheWxvYWQubWV0YWRhdGEsXG4gICAgICB9KTtcblxuICAgIGNhc2UgUkVNT1ZFX0ZJTExFRF9DT01QT05FTlQ6XG4gICAgICByZXR1cm4gc3RhdGUudXBkYXRlKHBheWxvYWQuc2xvdElkLCBmaWxscyA9PlxuICAgICAgICBmaWxscy53aXRob3V0KHBheWxvYWQuZmlsbElkKVxuICAgICAgKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0ZpbGwvRmlsbFJlZHVjZXIuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuY2xhc3MgRmlsbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgb3ZlcnJpZGVQcm9wcyxcbiAgICAgIHJlZ2lzdGVyRmlsbENvbXBvbmVudCxcbiAgICAgIHNsb3RJZCxcbiAgICAgIHdlaWdodCxcbiAgICAgIGlkLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmVnaXN0ZXJGaWxsQ29tcG9uZW50KHNsb3RJZCwgb3ZlcnJpZGVQcm9wcywgaWQsIGNoaWxkcmVuLCB3ZWlnaHQpO1xuICB9XG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgc2xvdElkLCB1bnJlZ2lzdGVyRmlsbENvbXBvbmVudCwgaWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICB1bnJlZ2lzdGVyRmlsbENvbXBvbmVudChzbG90SWQsIGlkKTtcbiAgfVxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuRmlsbC5wcm9wVHlwZXMgPSB7XG4gIC8vIGEgY29tcG9uZW50IHRvIGJlIGluamVjdGVkIG9uIGEgc2xvdFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm5vZGUsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgcmVnaXN0ZXJGaWxsQ29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1bnJlZ2lzdGVyRmlsbENvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2xvdElkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8vIG9yZGVyaW5nIGJldHdlZW4gc2xvdCdzIGZpbGxzLCBoaWdoZXIgd2lsbCBiZSByZW5kZXJlZCBmaXJzdFxuICB3ZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgLy8gZmlsbCdzIGlkXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8vIGEgcHJvcHMgb2JqZWN0IHRvIGJlIGluamVjdGVkIG9uIHRoZSBzbG90J3MgY2hpbGRyZW5cbiAgb3ZlcnJpZGVQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cbkZpbGwuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxuICBvdmVycmlkZVByb3BzOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGaWxsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0ZpbGwvRmlsbC5qcyIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcbmltcG9ydCB7XG4gIElOSVQsXG4gIFVQREFURV9PUFRJT05TLFxuICBVUERBVEVfU0VMRUNURUQsXG59IGZyb20gJy4vVHlwZUFoZWFkU2VsZWN0Q29uc3RhbnRzJztcblxuY29uc3QgaW5pdGlhbFN0YXRlID0gSW1tdXRhYmxlKHt9KTtcblxuZXhwb3J0IGRlZmF1bHQgKFxuICBzdGF0ZSA9IGluaXRpYWxTdGF0ZSxcbiAgeyB0eXBlLCBwYXlsb2FkOiB7IGlkLCBvcHRpb25zLCBzZWxlY3RlZCB9ID0ge30gfVxuKSA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgSU5JVDpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbihbaWRdLCB7XG4gICAgICAgIC4uLnN0YXRlW2lkXSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgc2VsZWN0ZWQsXG4gICAgICB9KTtcbiAgICBjYXNlIFVQREFURV9PUFRJT05TOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKFtpZF0sIHtcbiAgICAgICAgLi4uc3RhdGVbaWRdLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgfSk7XG4gICAgY2FzZSBVUERBVEVfU0VMRUNURUQ6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW2lkXSwge1xuICAgICAgICAuLi5zdGF0ZVtpZF0sXG4gICAgICAgIHNlbGVjdGVkLFxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9UeXBlQWhlYWRTZWxlY3QvVHlwZUFoZWFkU2VsZWN0UmVkdWNlci5qcyIsImltcG9ydCBoaXN0b3J5IGZyb20gJy4uLy4uLy4uL2hpc3RvcnknO1xuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcbmltcG9ydCB7XG4gIEFVRElUU19QQVRILFxuICBBVURJVFNfUEFHRV9EQVRBX1JFU09MVkVELFxuICBBVURJVFNfUEFHRV9EQVRBX0ZBSUxFRCxcbiAgQVVESVRTX1BBR0VfSElERV9MT0FESU5HLFxuICBBVURJVFNfUEFHRV9VUERBVEVfUVVFUlksXG4gIEFVRElUU19QQUdFX0NMRUFSX0VSUk9SLFxuICBBVURJVFNfUEFHRV9TSE9XX0xPQURJTkcsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBzZWxlY3RBdWRpdHNTZWxlY3RlZFBhZ2UsXG4gIHNlbGVjdEF1ZGl0c0hhc0Vycm9yLFxuICBzZWxlY3RBdWRpdHNQZXJQYWdlLFxuICBzZWxlY3RBdWRpdHNTZWFyY2gsXG4gIHNlbGVjdEF1ZGl0c0lzTG9hZGluZ1BhZ2UsXG59IGZyb20gJy4vQXVkaXRzUGFnZVNlbGVjdG9ycyc7XG5pbXBvcnQgeyBzdHJpbmdpZnlQYXJhbXMsIGdldFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91cmxIZWxwZXJzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuLy8gb24gZGlkTW91bnQgb3IgcG9wc3RhdGVlXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZUF1ZGl0cyA9ICgpID0+IGRpc3BhdGNoID0+IHtcbiAgY29uc3QgcGFyYW1zID0gZ2V0UGFyYW1zKCk7XG4gIGRpc3BhdGNoKGZldGNoQXVkaXRzKHBhcmFtcykpO1xuICBpZiAoIWhpc3RvcnkuYWN0aW9uID09PSAnUE9QJykge1xuICAgIGhpc3RvcnkucmVwbGFjZSh7XG4gICAgICBwYXRobmFtZTogQVVESVRTX1BBVEgsXG4gICAgICBzZWFyY2g6IHN0cmluZ2lmeVBhcmFtcyhwYXJhbXMpLFxuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZmV0Y2hBdWRpdHMgPSAoXG4gIHsgcGFnZSwgcGVyUGFnZSwgc2VhcmNoUXVlcnkgfSxcbiAgdXJsID0gQVVESVRTX1BBVEhcbikgPT4gYXN5bmMgKGRpc3BhdGNoLCBnZXRTdGF0ZSkgPT4ge1xuICBkaXNwYXRjaCh7IHR5cGU6IEFVRElUU19QQUdFX1NIT1dfTE9BRElORyB9KTtcbiAgaWYgKHNlbGVjdEF1ZGl0c0hhc0Vycm9yKGdldFN0YXRlKCkpKVxuICAgIGRpc3BhdGNoKHtcbiAgICAgIHR5cGU6IEFVRElUU19QQUdFX0NMRUFSX0VSUk9SLFxuICAgIH0pO1xuXG4gIGNvbnN0IG9uUmVxdWVzdFN1Y2Nlc3MgPSAoeyBkYXRhOiB7IGF1ZGl0cywgaXRlbUNvdW50IH0gfSkgPT4ge1xuICAgIGlmIChzZWxlY3RBdWRpdHNJc0xvYWRpbmdQYWdlKGdldFN0YXRlKCkpKVxuICAgICAgZGlzcGF0Y2goeyB0eXBlOiBBVURJVFNfUEFHRV9ISURFX0xPQURJTkcgfSk7XG5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBBVURJVFNfUEFHRV9VUERBVEVfUVVFUlksXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIHBhZ2UsXG4gICAgICAgIHBlclBhZ2UsXG4gICAgICAgIHNlYXJjaFF1ZXJ5LFxuICAgICAgICBpdGVtQ291bnQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogQVVESVRTX1BBR0VfREFUQV9SRVNPTFZFRCxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgYXVkaXRzLFxuICAgICAgICBoYXNEYXRhOiBpdGVtQ291bnQgPiAwLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcbiAgY29uc3Qgb25SZXF1ZXN0RmFpbCA9IGVycm9yID0+IHtcbiAgICBpZiAoc2VsZWN0QXVkaXRzSXNMb2FkaW5nUGFnZShnZXRTdGF0ZSgpKSlcbiAgICAgIGRpc3BhdGNoKHsgdHlwZTogQVVESVRTX1BBR0VfSElERV9MT0FESU5HIH0pO1xuXG4gICAgZGlzcGF0Y2goe1xuICAgICAgdHlwZTogQVVESVRTX1BBR0VfREFUQV9GQUlMRUQsXG4gICAgICBwYXlsb2FkOiB7XG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICAgIHRleHQ6IGAke2Vycm9yLnJlc3BvbnNlLnN0YXR1c30gJHtfXyhlcnJvci5yZXNwb25zZS5zdGF0dXNUZXh0KX1gLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IEFQSS5nZXQoXG4gICAgICB1cmwsXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgcGFnZSxcbiAgICAgICAgcGVyX3BhZ2U6IHBlclBhZ2UsXG4gICAgICAgIHNlYXJjaDogc2VhcmNoUXVlcnksXG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gb25SZXF1ZXN0U3VjY2VzcyhyZXNwb25zZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIG9uUmVxdWVzdEZhaWwoZXJyb3IpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZmV0Y2hBbmRQdXNoID0gcGFyYW1zID0+IChkaXNwYXRjaCwgZ2V0U3RhdGUpID0+IHtcbiAgY29uc3QgcXVlcnkgPSBidWlsZFF1ZXJ5KHBhcmFtcywgZ2V0U3RhdGUoKSk7XG4gIGRpc3BhdGNoKGZldGNoQXVkaXRzKHF1ZXJ5KSk7XG4gIGhpc3RvcnkucHVzaCh7XG4gICAgcGF0aG5hbWU6IEFVRElUU19QQVRILFxuICAgIHNlYXJjaDogc3RyaW5naWZ5UGFyYW1zKHF1ZXJ5KSxcbiAgfSk7XG59O1xuXG5jb25zdCBidWlsZFF1ZXJ5ID0gKHF1ZXJ5LCBzdGF0ZSkgPT4gKHtcbiAgcGFnZTogcXVlcnkucGFnZSB8fCBzZWxlY3RBdWRpdHNTZWxlY3RlZFBhZ2Uoc3RhdGUpLFxuICBwZXJQYWdlOiBxdWVyeS5wZXJQYWdlIHx8IHNlbGVjdEF1ZGl0c1BlclBhZ2Uoc3RhdGUpLFxuICBzZWFyY2hRdWVyeTpcbiAgICBxdWVyeS5zZWFyY2hRdWVyeSA9PT0gdW5kZWZpbmVkXG4gICAgICA/IHNlbGVjdEF1ZGl0c1NlYXJjaChzdGF0ZSlcbiAgICAgIDogcXVlcnkuc2VhcmNoUXVlcnksXG59KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvQXVkaXRzL0F1ZGl0c1BhZ2UvQXVkaXRzUGFnZUFjdGlvbnMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0ICcuL2F1ZGl0c3BhZ2Uuc2Nzcyc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IGdldE1hbnVhbFVSTCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCBQYWdlTGF5b3V0IGZyb20gJy4uLy4uL2NvbW1vbi9QYWdlTGF5b3V0L1BhZ2VMYXlvdXQnO1xuaW1wb3J0IEF1ZGl0c1RhYmxlIGZyb20gJy4vY29tcG9uZW50cy9BdWRpdHNUYWJsZSc7XG5pbXBvcnQgeyBBVURJVFNfU0VBUkNIX1BST1BTIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuY29uc3QgQXVkaXRzUGFnZSA9ICh7XG4gIHNlYXJjaFF1ZXJ5LFxuICBmZXRjaEFuZFB1c2gsXG4gIGlzTG9hZGluZyxcbiAgaGFzRGF0YSxcbiAgLi4ucHJvcHNcbn0pID0+IChcbiAgPFBhZ2VMYXlvdXRcbiAgICBoZWFkZXI9e19fKCdBdWRpdHMnKX1cbiAgICBzZWFyY2hhYmxlXG4gICAgc2VhcmNoUHJvcHM9e0FVRElUU19TRUFSQ0hfUFJPUFN9XG4gICAgc2VhcmNoUXVlcnk9e3NlYXJjaFF1ZXJ5fVxuICAgIGlzTG9hZGluZz17aXNMb2FkaW5nICYmIGhhc0RhdGF9XG4gICAgb25TZWFyY2g9e3NlYXJjaCA9PiBmZXRjaEFuZFB1c2goeyBzZWFyY2hRdWVyeTogc2VhcmNoLCBwYWdlOiAxIH0pfVxuICAgIG9uQm9va21hcmtDbGljaz17c2VhcmNoID0+IGZldGNoQW5kUHVzaCh7IHNlYXJjaFF1ZXJ5OiBzZWFyY2gsIHBhZ2U6IDEgfSl9XG4gICAgdG9vbGJhckJ1dHRvbnM9e1xuICAgICAgPEJ1dHRvblxuICAgICAgICBjb21wb25lbnQ9XCJhXCJcbiAgICAgICAgY2xhc3NOYW1lPVwiYnRuLWRvY3NcIlxuICAgICAgICBocmVmPXtnZXRNYW51YWxVUkwoJzQuMS40QXVkaXRpbmcnKX1cbiAgICAgICAgcmVsPVwiZXh0ZXJuYWwgbm9yZWZlcnJlciBub29wZW5lclwiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgPlxuICAgICAgICB7X18oJyBEb2N1bWVudGF0aW9uJyl9XG4gICAgICA8L0J1dHRvbj5cbiAgICB9XG4gID5cbiAgICA8QXVkaXRzVGFibGVcbiAgICAgIGZldGNoQW5kUHVzaD17ZmV0Y2hBbmRQdXNofVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICBoYXNEYXRhPXtoYXNEYXRhfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIDwvUGFnZUxheW91dD5cbik7XG5cbkF1ZGl0c1BhZ2UucHJvcFR5cGVzID0ge1xuICBzZWFyY2hRdWVyeTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBmZXRjaEFuZFB1c2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGlzTG9hZGluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaGFzRGF0YTogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF1ZGl0c1BhZ2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0F1ZGl0cy9BdWRpdHNQYWdlL0F1ZGl0c1BhZ2UuanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9BdWRpdHMvQXVkaXRzUGFnZS9hdWRpdHNwYWdlLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDMyNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IHsgU2VhcmNoSWNvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25zJztcbmltcG9ydCBBdXRvQ29tcGxldGUgZnJvbSAnLi4vQXV0b0NvbXBsZXRlJztcbmltcG9ydCBCb29rbWFya3MgZnJvbSAnLi4vUEY0L0Jvb2ttYXJrcyc7XG5pbXBvcnQgeyBjaGFuZ2VRdWVyeSB9IGZyb20gJy4uLy4uL2NvbW1vbi91cmxIZWxwZXJzJztcbmltcG9ydCAnLi9zZWFyY2gtYmFyLnNjc3MnO1xuXG5jb25zdCBTZWFyY2hCYXIgPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHtcbiAgICBkYXRhOiB7IGF1dG9jb21wbGV0ZSwgY29udHJvbGxlciwgYm9va21hcmtzIH0sXG4gICAgc2VhcmNoUXVlcnksXG4gICAgb25TZWFyY2gsXG4gICAgaW5pdGlhbFF1ZXJ5LFxuICAgIG9uQm9va21hcmtDbGljayxcbiAgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwZi1jLXNlYXJjaC1pbnB1dFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWFyY2gtYmFyIHBmLWMtaW5wdXQtZ3JvdXBcIiBpZD1cInNlYXJjaC1iYXJcIj5cbiAgICAgICAgPEF1dG9Db21wbGV0ZVxuICAgICAgICAgIGlkPXthdXRvY29tcGxldGUuaWR9XG4gICAgICAgICAgaGFuZGxlU2VhcmNoPXsoKSA9PiBvblNlYXJjaChzZWFyY2hRdWVyeSl9XG4gICAgICAgICAgc2VhcmNoUXVlcnk9e2luaXRpYWxRdWVyeSB8fCBhdXRvY29tcGxldGUuc2VhcmNoUXVlcnkgfHwgJyd9XG4gICAgICAgICAgdXNlS2V5U2hvcnRjdXRzPXthdXRvY29tcGxldGUudXNlS2V5U2hvcnRjdXRzfVxuICAgICAgICAgIHVybD17YXV0b2NvbXBsZXRlLnVybH1cbiAgICAgICAgICBjb250cm9sbGVyPXtjb250cm9sbGVyfVxuICAgICAgICAvPlxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgaWQ9XCJidG4tc2VhcmNoXCJcbiAgICAgICAgICB2YXJpYW50PVwiY29udHJvbFwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cInNlYXJjaCBidXR0b24gZm9yIHNlYXJjaCBpbnB1dFwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiYXV0b2NvbXBsZXRlLXNlYXJjaC1idG5cIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2VhcmNoKHNlYXJjaFF1ZXJ5KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTZWFyY2hJY29uIC8+XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgICB7IWlzRW1wdHkoYm9va21hcmtzKSAmJiAoXG4gICAgICAgICAgPEJvb2ttYXJrc1xuICAgICAgICAgICAgb25Cb29rbWFya0NsaWNrPXtvbkJvb2ttYXJrQ2xpY2t9XG4gICAgICAgICAgICBjb250cm9sbGVyPXtjb250cm9sbGVyfVxuICAgICAgICAgICAgc2VhcmNoUXVlcnk9e3NlYXJjaFF1ZXJ5fVxuICAgICAgICAgICAgey4uLmJvb2ttYXJrc31cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5TZWFyY2hCYXIucHJvcFR5cGVzID0ge1xuICBzZWFyY2hRdWVyeTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaW5pdGlhbFF1ZXJ5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvblNlYXJjaDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uQm9va21hcmtDbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIGRhdGE6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYXV0b2NvbXBsZXRlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgcmVzdWx0czogUHJvcFR5cGVzLmFycmF5LFxuICAgICAgc2VhcmNoUXVlcnk6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB1cmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB1c2VLZXlTaG9ydGN1dHM6IFByb3BUeXBlcy5ib29sLFxuICAgICAgaWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKS5pc1JlcXVpcmVkLFxuICAgIH0pLFxuICAgIGNvbnRyb2xsZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYm9va21hcmtzOiBQcm9wVHlwZXMub2JqZWN0LFxuICB9KSxcbn07XG5cblNlYXJjaEJhci5kZWZhdWx0UHJvcHMgPSB7XG4gIHNlYXJjaFF1ZXJ5OiAnJyxcbiAgaW5pdGlhbFF1ZXJ5OiAnJyxcbiAgb25TZWFyY2g6IHNlYXJjaFF1ZXJ5ID0+IGNoYW5nZVF1ZXJ5KHsgc2VhcmNoOiBzZWFyY2hRdWVyeS50cmltKCksIHBhZ2U6IDEgfSksXG4gIG9uQm9va21hcmtDbGljazogc2VhcmNoUXVlcnkgPT5cbiAgICBjaGFuZ2VRdWVyeSh7IHNlYXJjaDogc2VhcmNoUXVlcnkudHJpbSgpLCBwYWdlOiAxIH0pLFxuICBkYXRhOiB7XG4gICAgYXV0b2NvbXBsZXRlOiB7XG4gICAgICByZXN1bHRzOiBbXSxcbiAgICAgIHNlYXJjaFF1ZXJ5OiBudWxsLFxuICAgICAgdXJsOiBudWxsLFxuICAgICAgdXNlS2V5U2hvcnRjdXRzOiB0cnVlLFxuICAgIH0sXG4gICAgY29udHJvbGxlcjogbnVsbCxcbiAgICBib29rbWFya3M6IHt9LFxuICB9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoQmFyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2VhcmNoQmFyL1NlYXJjaEJhci5qcyIsImltcG9ydCBVUkkgZnJvbSAndXJpanMnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcbmltcG9ydCB7IEJPT0tNQVJLUyB9IGZyb20gJy4vQm9va21hcmtzQ29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGdldEJvb2ttYXJrcyA9ICh1cmwsIGNvbnRyb2xsZXIpID0+IHtcbiAgY29uc3QgdXJpID0gbmV3IFVSSSh1cmwpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG4gIHVyaS5zZXRTZWFyY2goeyBzZWFyY2g6IGBjb250cm9sbGVyPSR7Y29udHJvbGxlcn1gLCBwZXJfcGFnZTogJ2FsbCcgfSk7XG5cbiAgcmV0dXJuIGdldCh7XG4gICAgdXJsOiB1cmkudG9TdHJpbmcoKSxcbiAgICBrZXk6IGAke0JPT0tNQVJLU31fJHtjb250cm9sbGVyLnRvVXBwZXJDYXNlKCl9YCxcbiAgfSk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUEY0L0Jvb2ttYXJrcy9Cb29rbWFya3NBY3Rpb25zLmpzIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IERyb3Bkb3duLCBEcm9wZG93blRvZ2dsZSB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IHsgT3V0bGluZWRCb29rbWFya0ljb24gfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1pY29ucyc7XG5pbXBvcnQgQm9va21hcmtNb2RhbCBmcm9tICcuLi8uLi9Cb29rbWFya3MvY29tcG9uZW50cy9TZWFyY2hNb2RhbCc7XG5pbXBvcnQgeyBTVEFUVVMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7XG4gIGFkZEJvb2ttYXJrSXRlbSxcbiAgc2F2ZWRCb29rbWFya3NJdGVtcyxcbiAgbWFuYWdlQm9va21hcmtzSXRlbSxcbn0gZnJvbSAnLi9Cb29rbWFya0l0ZW1zJztcbmltcG9ydCBoaXN0b3J5IGZyb20gJy4uLy4uLy4uL2hpc3RvcnknO1xuaW1wb3J0IHsgc3RyaW5naWZ5UGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3VybEhlbHBlcnMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5jb25zdCBCb29rbWFya3MgPSAoe1xuICBib29rbWFya3MsXG4gIHN0YXR1cyxcbiAgdXJsLFxuICBjb250cm9sbGVyLFxuICBnZXRCb29rbWFya3MsXG4gIGNhbkNyZWF0ZSxcbiAgZXJyb3JzLFxuICBkb2N1bWVudGF0aW9uVXJsLFxuICBvbkJvb2ttYXJrQ2xpY2ssXG4gIHNldE1vZGFsT3BlbixcbiAgc2V0TW9kYWxDbG9zZWQsXG59KSA9PiB7XG4gIGNvbnN0IFtpc0Ryb3Bkb3duT3Blbiwgc2V0SXNEcm9wZG93bk9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IG9uVG9nZ2xlID0gaXNPcGVuID0+IHtcbiAgICBzZXRJc0Ryb3Bkb3duT3Blbihpc09wZW4pO1xuICAgIGlmIChib29rbWFya3MubGVuZ3RoID09PSAwICYmIHN0YXR1cyAhPT0gU1RBVFVTLlBFTkRJTkcpIHtcbiAgICAgIGdldEJvb2ttYXJrcygpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBtYW5hZ2VCb29rbWFya3MgPSAoKSA9PiB7XG4gICAgY29uc3QgcXVlcnkgPSBzdHJpbmdpZnlQYXJhbXMoeyBzZWFyY2hRdWVyeTogYGNvbnRyb2xsZXI9JHtjb250cm9sbGVyfWAgfSk7XG4gICAgaGlzdG9yeS5wdXNoKHsgcGF0aG5hbWU6ICcvYm9va21hcmtzJywgc2VhcmNoOiBxdWVyeSB9KTtcbiAgfTtcblxuICBjb25zdCBkcm9wZG93bkl0ZW1zID0gW1xuICAgIGFkZEJvb2ttYXJrSXRlbSh7IGNhbkNyZWF0ZSwgc2V0TW9kYWxPcGVuIH0pLFxuICAgIHNhdmVkQm9va21hcmtzSXRlbXMoe1xuICAgICAgYm9va21hcmtzLFxuICAgICAgb25Cb29rbWFya0NsaWNrLFxuICAgICAgc3RhdHVzLFxuICAgICAgZXJyb3JzLFxuICAgIH0pLFxuICAgIG1hbmFnZUJvb2ttYXJrc0l0ZW0oe1xuICAgICAgY2FuQ3JlYXRlLFxuICAgICAgb25DbGljazogbWFuYWdlQm9va21hcmtzLFxuICAgICAgZG9jdW1lbnRhdGlvblVybCxcbiAgICB9KSxcbiAgXTtcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxCb29rbWFya01vZGFsXG4gICAgICAgIGNvbnRyb2xsZXI9e2NvbnRyb2xsZXJ9XG4gICAgICAgIHVybD17dXJsfVxuICAgICAgICBzZXRNb2RhbENsb3NlZD17c2V0TW9kYWxDbG9zZWR9XG4gICAgICAgIGJvb2ttYXJrcz17Ym9va21hcmtzfVxuICAgICAgLz5cbiAgICAgIDxEcm9wZG93blxuICAgICAgICBpc09wZW49e2lzRHJvcGRvd25PcGVufVxuICAgICAgICB0b2dnbGU9e1xuICAgICAgICAgIDxEcm9wZG93blRvZ2dsZVxuICAgICAgICAgICAgb25Ub2dnbGU9e29uVG9nZ2xlfVxuICAgICAgICAgICAgdGl0bGU9e19fKCdCb29rbWFya3MnKX1cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJib29rbWFya3MgZHJvcGRvd24gdG9nZ2xlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8T3V0bGluZWRCb29rbWFya0ljb24gLz5cbiAgICAgICAgICA8L0Ryb3Bkb3duVG9nZ2xlPlxuICAgICAgICB9XG4gICAgICAgIGlkPXtjb250cm9sbGVyfVxuICAgICAgICBkcm9wZG93bkl0ZW1zPXtkcm9wZG93bkl0ZW1zfVxuICAgICAgICBpc0dyb3VwZWRcbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cbkJvb2ttYXJrcy5wcm9wVHlwZXMgPSB7XG4gIGNvbnRyb2xsZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgb25Cb29rbWFya0NsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1cmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2FuQ3JlYXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgYm9va21hcmtzOiBQcm9wVHlwZXMuYXJyYXksXG4gIGVycm9yczogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkb2N1bWVudGF0aW9uVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBnZXRCb29rbWFya3M6IFByb3BUeXBlcy5mdW5jLFxuICBzZXRNb2RhbE9wZW46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNldE1vZGFsQ2xvc2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuQm9va21hcmtzLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2FuQ3JlYXRlOiBmYWxzZSxcbiAgYm9va21hcmtzOiBbXSxcbiAgZXJyb3JzOiAnJyxcbiAgc3RhdHVzOiBudWxsLFxuICBkb2N1bWVudGF0aW9uVXJsOiAnJyxcbiAgZ2V0Qm9va21hcmtzOiBub29wLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va21hcmtzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUEY0L0Jvb2ttYXJrcy9Cb29rbWFya3MuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTW9kYWwgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTW9kYWxDb250ZXh0IGZyb20gJy4vRm9yZW1hbk1vZGFsQ29udGV4dCc7XG5pbXBvcnQgRm9yZW1hbk1vZGFsSGVhZGVyIGZyb20gJy4vc3ViY29tcG9uZW50cy9Gb3JlbWFuTW9kYWxIZWFkZXInO1xuaW1wb3J0IEZvcmVtYW5Nb2RhbEZvb3RlciBmcm9tICcuL3N1YmNvbXBvbmVudHMvRm9yZW1hbk1vZGFsRm9vdGVyJztcbmltcG9ydCB7IGV4dHJhY3RNb2RhbE5vZGVzIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuY29uc3QgRm9yZW1hbk1vZGFsID0gcHJvcHMgPT4ge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgdGl0bGUsXG4gICAgb25DbG9zZSxcbiAgICBpc09wZW4sXG4gICAgY2hpbGRyZW4sXG4gICAgaXNTdWJtaXR0aW5nLFxuICAgIHN1Ym1pdFByb3BzLFxuICAgIC4uLnByb3BzVG9QYXNzRG93blxuICB9ID0gcHJvcHM7XG4gIC8vIEV4dHJhY3QgaGVhZGVyIGFuZCBmb290ZXIgZnJvbSBjaGlsZHJlbiwgaWYgcHJvdmlkZWRcbiAgY29uc3QgeyBoZWFkZXJDaGlsZCwgZm9vdGVyQ2hpbGQsIG90aGVyQ2hpbGRyZW4gfSA9IGV4dHJhY3RNb2RhbE5vZGVzKFxuICAgIGNoaWxkcmVuXG4gICk7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgaXNPcGVuLFxuICAgIG9uQ2xvc2UsXG4gICAgaXNTdWJtaXR0aW5nLFxuICAgIGlkLFxuICAgIHRpdGxlLFxuICAgIHN1Ym1pdFByb3BzLFxuICB9O1xuXG4gIGNvbnN0IGRlZmF1bHRIZWFkZXIgPSBoZWFkZXJUaXRsZSA9PlxuICAgIGhlYWRlclRpdGxlID8gPEZvcmVtYW5Nb2RhbEhlYWRlciAvPiA6IG51bGw7XG4gIGNvbnN0IGhlYWRlclRvUmVuZGVyID0gaGVhZGVyQ2hpbGQgfHwgZGVmYXVsdEhlYWRlcih0aXRsZSk7XG5cbiAgY29uc3QgZGVmYXVsdEZvb3RlciA9IHN1YlByb3BzID0+XG4gICAgT2JqZWN0LmtleXMoc3ViUHJvcHMpLmxlbmd0aCAhPT0gMCA/IDxGb3JlbWFuTW9kYWxGb290ZXIgLz4gOiBudWxsO1xuICBjb25zdCBmb290ZXJUb1JlbmRlciA9IGZvb3RlckNoaWxkIHx8IGRlZmF1bHRGb290ZXIoc3VibWl0UHJvcHMpO1xuXG4gIHJldHVybiAoXG4gICAgPE1vZGFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dH0+XG4gICAgICA8TW9kYWxcbiAgICAgICAgb25IaWRlPXtvbkNsb3NlfVxuICAgICAgICBzaG93PXtpc09wZW59XG4gICAgICAgIGNsYXNzTmFtZT1cImZvcmVtYW4tbW9kYWxcIlxuICAgICAgICB7Li4ucHJvcHNUb1Bhc3NEb3dufVxuICAgICAgPlxuICAgICAgICB7aGVhZGVyVG9SZW5kZXJ9XG4gICAgICAgIDxNb2RhbC5Cb2R5PntvdGhlckNoaWxkcmVufTwvTW9kYWwuQm9keT5cbiAgICAgICAge2Zvb3RlclRvUmVuZGVyfVxuICAgICAgPC9Nb2RhbD5cbiAgICA8L01vZGFsQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbkZvcmVtYW5Nb2RhbC5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgdGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGlzT3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGlzU3VibWl0dGluZzogUHJvcFR5cGVzLmJvb2wsXG4gIHN1Ym1pdFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxufTtcblxuRm9yZW1hbk1vZGFsLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IG51bGwsXG4gIGlzT3BlbjogZmFsc2UsXG4gIHRpdGxlOiAnJyxcbiAgaXNTdWJtaXR0aW5nOiBmYWxzZSxcbiAgc3VibWl0UHJvcHM6IHt9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRm9yZW1hbk1vZGFsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRm9yZW1hbk1vZGFsL0ZvcmVtYW5Nb2RhbC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IHN1Ym1pdE1vZGFsIH0gZnJvbSAnLi9TdWJtaXRPckNhbmNlbEFjdGlvbnMnO1xuaW1wb3J0IFN1Ym1pdE9yQ2FuY2VsIGZyb20gJy4vU3VibWl0T3JDYW5jZWwnO1xuXG5jb25zdCBDb25uZWN0ZWRTdWJtaXRPckNhbmNlbCA9ICh7XG4gIGlzU3VibWl0dGluZyxcbiAgb25DYW5jZWwsXG4gIHN1Ym1pdFByb3BzLFxuICBpZCxcbn0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IHsgc3VibWl0QnRuUHJvcHMsIGNhbmNlbEJ0blByb3BzLCAuLi5yZXN0IH0gPSBzdWJtaXRQcm9wcztcblxuICBjb25zdCBib3VuZE9uU3VibWl0ID0gKCkgPT5cbiAgICBkaXNwYXRjaChcbiAgICAgIHN1Ym1pdE1vZGFsKHtcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgICAgY2xvc2VGbjogb25DYW5jZWwsXG4gICAgICAgIGlkLFxuICAgICAgfSlcbiAgICApO1xuXG4gIHJldHVybiAoXG4gICAgPFN1Ym1pdE9yQ2FuY2VsXG4gICAgICBpc1N1Ym1pdHRpbmc9e2lzU3VibWl0dGluZ31cbiAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgIG9uU3VibWl0PXtib3VuZE9uU3VibWl0fVxuICAgICAgc3VibWl0QnRuUHJvcHM9e3N1Ym1pdEJ0blByb3BzfVxuICAgICAgY2FuY2VsQnRuUHJvcHM9e2NhbmNlbEJ0blByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5Db25uZWN0ZWRTdWJtaXRPckNhbmNlbC5wcm9wVHlwZXMgPSB7XG4gIGlzU3VibWl0dGluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgc3VibWl0UHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uQ2FuY2VsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxufTtcblxuQ29ubmVjdGVkU3VibWl0T3JDYW5jZWwuZGVmYXVsdFByb3BzID0ge1xuICBzdWJtaXRQcm9wczoge30sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb25uZWN0ZWRTdWJtaXRPckNhbmNlbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9zdWJjb21wb25lbnRzL1N1Ym1pdE9yQ2FuY2VsL2luZGV4LmpzIiwiaW1wb3J0IHsgZGVlcFByb3BzVG9DYW1lbENhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5cbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uLy4uLy4uLy4uL3JlZHV4L0FQSSc7XG5cbmltcG9ydCB7IGFkZFRvYXN0IH0gZnJvbSAnLi4vLi4vLi4vVG9hc3RzTGlzdCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQge1xuICBzZXRNb2RhbFN0YXJ0U3VibWl0dGluZyxcbiAgc2V0TW9kYWxTdG9wU3VibWl0dGluZyxcbn0gZnJvbSAnLi4vLi4vRm9yZW1hbk1vZGFsQWN0aW9ucyc7XG5cbmNvbnN0IG9uTW9kYWxFcnJvciA9IGVycm9yID0+IHtcbiAgY29uc3Qge1xuICAgIHJlc3BvbnNlOiB7XG4gICAgICBzdGF0dXMsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGVycm9yOiB7IG1lc3NhZ2UsIGZ1bGxNZXNzYWdlcyB9LFxuICAgICAgfSxcbiAgICB9ID0ge30sXG4gIH0gPSBkZWVwUHJvcHNUb0NhbWVsQ2FzZShlcnJvcik7XG5cbiAgaWYgKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIGlmIChmdWxsTWVzc2FnZXMpIHtcbiAgICByZXR1cm4gZnVsbE1lc3NhZ2VzLmpvaW4oJywgJyk7XG4gIH1cblxuICByZXR1cm4gYCR7c3RhdHVzfTogJHtfXygnRmFpbGVkIHRvIHN1Ym1pdCB0aGUgcmVxdWVzdC4nKX1gO1xufTtcblxuZXhwb3J0IGNvbnN0IHN1Ym1pdE1vZGFsID0gKHtcbiAgdXJsLFxuICBtZXNzYWdlLFxuICBtZXRob2QgPSAnZGVsZXRlJyxcbiAgY2xvc2VGbixcbiAgZ2V0RXJyb3JNc2cgPSBvbk1vZGFsRXJyb3IsXG4gIG9uU3VjY2VzcyA9ICgpID0+IHt9LFxuICBpZCxcbn0pID0+IGFzeW5jIGRpc3BhdGNoID0+IHtcbiAgdHJ5IHtcbiAgICBkaXNwYXRjaChzZXRNb2RhbFN0YXJ0U3VibWl0dGluZyh7IGlkIH0pKTtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IEFQSVttZXRob2RdKHVybCwge30pO1xuICAgIGRpc3BhdGNoKHNldE1vZGFsU3RvcFN1Ym1pdHRpbmcoeyBpZCB9KSk7XG4gICAgb25TdWNjZXNzKGRhdGEpO1xuICAgIGNsb3NlRm4oKTtcbiAgICBkaXNwYXRjaChcbiAgICAgIGFkZFRvYXN0KHtcbiAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgfSlcbiAgICApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGRpc3BhdGNoKHNldE1vZGFsU3RvcFN1Ym1pdHRpbmcoeyBpZCB9KSk7XG4gICAgZGlzcGF0Y2goXG4gICAgICBhZGRUb2FzdCh7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IGdldEVycm9yTXNnKGVycm9yKSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9zdWJjb21wb25lbnRzL1N1Ym1pdE9yQ2FuY2VsL1N1Ym1pdE9yQ2FuY2VsQWN0aW9ucy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgU3VibWl0QnRuIGZyb20gJy4vU3VibWl0QnRuJztcbmltcG9ydCBDYW5jZWxCdG4gZnJvbSAnLi9DYW5jZWxCdG4nO1xuXG5jb25zdCBTdWJtaXRPckNhbmNlbCA9ICh7XG4gIGlzU3VibWl0dGluZyxcbiAgb25DYW5jZWwsXG4gIG9uU3VibWl0LFxuICBzdWJtaXRCdG5Qcm9wcyxcbiAgY2FuY2VsQnRuUHJvcHMsXG59KSA9PiAoXG4gIDxSZWFjdC5GcmFnbWVudD5cbiAgICA8U3VibWl0QnRuXG4gICAgICBvblN1Ym1pdD17b25TdWJtaXR9XG4gICAgICBpc1N1Ym1pdHRpbmc9e2lzU3VibWl0dGluZ31cbiAgICAgIHsuLi5zdWJtaXRCdG5Qcm9wc31cbiAgICAvPlxuICAgIDxDYW5jZWxCdG5cbiAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgIGRpc2FibGVkPXtpc1N1Ym1pdHRpbmd9XG4gICAgICB7Li4uY2FuY2VsQnRuUHJvcHN9XG4gICAgLz5cbiAgPC9SZWFjdC5GcmFnbWVudD5cbik7XG5cblN1Ym1pdE9yQ2FuY2VsLnByb3BUeXBlcyA9IHtcbiAgaXNTdWJtaXR0aW5nOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvbkNhbmNlbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25TdWJtaXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHN1Ym1pdEJ0blByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBjYW5jZWxCdG5Qcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cblN1Ym1pdE9yQ2FuY2VsLmRlZmF1bHRQcm9wcyA9IHtcbiAgc3VibWl0QnRuUHJvcHM6IHt9LFxuICBjYW5jZWxCdG5Qcm9wczoge30sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTdWJtaXRPckNhbmNlbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0ZvcmVtYW5Nb2RhbC9zdWJjb21wb25lbnRzL1N1Ym1pdE9yQ2FuY2VsL1N1Ym1pdE9yQ2FuY2VsLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IHNpbXBsZUxvYWRlciB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9Mb2FkZXInO1xuXG5jb25zdCBTdWJtaXRCdG4gPSAoeyBpc1N1Ym1pdHRpbmcsIG9uU3VibWl0LCBic1N0eWxlLCBidG5UZXh0IH0pID0+IChcbiAgPEJ1dHRvbiBic1N0eWxlPXtic1N0eWxlfSBkaXNhYmxlZD17aXNTdWJtaXR0aW5nfSBvbkNsaWNrPXtvblN1Ym1pdH0+XG4gICAgJm5ic3A7XG4gICAge2J0blRleHR9XG4gICAgJm5ic3A7XG4gICAge2lzU3VibWl0dGluZyAmJiA8c3BhbiBjbGFzc05hbWU9XCJmclwiPntzaW1wbGVMb2FkZXIoJ3NtJyl9PC9zcGFuPn1cbiAgPC9CdXR0b24+XG4pO1xuXG5TdWJtaXRCdG4ucHJvcFR5cGVzID0ge1xuICBpc1N1Ym1pdHRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uU3VibWl0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBic1N0eWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBidG5UZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuU3VibWl0QnRuLmRlZmF1bHRQcm9wcyA9IHtcbiAgYnNTdHlsZTogJ3ByaW1hcnknLFxuICBidG5UZXh0OiBfXygnU3VibWl0JyksXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTdWJtaXRCdG47XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvc3ViY29tcG9uZW50cy9TdWJtaXRPckNhbmNlbC9TdWJtaXRCdG4uanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL01lc3NhZ2VCb3gvTWVzc2FnZUJveC5jc3Ncbi8vIG1vZHVsZSBpZCA9IDMzM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9Mb2FkZXIvTG9hZGVyLmNzc1xuLy8gbW9kdWxlIGlkID0gMzM0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbmNvbnN0IENhbmNlbEJ0biA9ICh7IG9uQ2FuY2VsLCBkaXNhYmxlZCwgYnNTdHlsZSwgYnRuVGV4dCB9KSA9PiAoXG4gIDxCdXR0b24gYnNTdHlsZT17YnNTdHlsZX0gb25DbGljaz17b25DYW5jZWx9IGRpc2FibGVkPXtkaXNhYmxlZH0+XG4gICAge2J0blRleHR9XG4gIDwvQnV0dG9uPlxuKTtcblxuQ2FuY2VsQnRuLnByb3BUeXBlcyA9IHtcbiAgb25DYW5jZWw6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgYnNTdHlsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgYnRuVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkNhbmNlbEJ0bi5kZWZhdWx0UHJvcHMgPSB7XG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgYnNTdHlsZTogJ2RlZmF1bHQnLFxuICBidG5UZXh0OiBfXygnQ2FuY2VsJyksXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDYW5jZWxCdG47XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvc3ViY29tcG9uZW50cy9TdWJtaXRPckNhbmNlbC9DYW5jZWxCdG4uanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEZvcmVtYW5Nb2RhbEhlYWRlciBmcm9tICcuL3N1YmNvbXBvbmVudHMvRm9yZW1hbk1vZGFsSGVhZGVyJztcbmltcG9ydCBGb3JlbWFuTW9kYWxGb290ZXIgZnJvbSAnLi9zdWJjb21wb25lbnRzL0ZvcmVtYW5Nb2RhbEZvb3Rlcic7XG5cbi8qKlxuICogRXh0cmFjdCBIZWFkZXIgYW5kIEZvb3RlciBjaGlsZCBub2RlcyBmcm9tIEZvcmVtYW5Nb2RhbC5cbiAqIEBwYXJhbSAge1Byb3BUeXBlcy5ub2RlfSBjaGlsZHJlbiBGb3JlbWFuTW9kYWwgcHJvcHMuY2hpbGRyZW5cbiAqIEByZXR1cm4ge29iamVjdH0gQ2hpbGQgbm9kZXMgc2VwYXJhdGVkIG91dCBpbnRvIGhlYWRlckNoaWxkLCBmb290ZXJDaGlsZCwgb3RoZXJDaGlsZHJlblxuICovXG5leHBvcnQgY29uc3QgZXh0cmFjdE1vZGFsTm9kZXMgPSBjaGlsZHJlbiA9PiB7XG4gIGNoaWxkcmVuID0gUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbik7XG4gIGNvbnN0IGhlYWRlckNoaWxkID1cbiAgICBjaGlsZHJlbi5maW5kKGNoaWxkID0+IGNoaWxkLnR5cGUgPT09IEZvcmVtYW5Nb2RhbEhlYWRlcikgfHwgbnVsbDtcbiAgY29uc3QgZm9vdGVyQ2hpbGQgPVxuICAgIGNoaWxkcmVuLmZpbmQoY2hpbGQgPT4gY2hpbGQudHlwZSA9PT0gRm9yZW1hbk1vZGFsRm9vdGVyKSB8fCBudWxsO1xuICBjb25zdCBvdGhlckNoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKFxuICAgIGNoaWxkID0+XG4gICAgICBjaGlsZCAmJlxuICAgICAgLy8gY2hpbGQudHlwZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBjaGlsZCAhPT0gaGVhZGVyQ2hpbGQgJiZcbiAgICAgIGNoaWxkICE9PSBmb290ZXJDaGlsZFxuICApO1xuICByZXR1cm4geyBoZWFkZXJDaGlsZCwgZm9vdGVyQ2hpbGQsIG90aGVyQ2hpbGRyZW4gfTtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvaGVscGVycy5qcyIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcbmltcG9ydCB7XG4gIFNFVF9NT0RBTF9PUEVOLFxuICBTRVRfTU9EQUxfQ0xPU0VELFxuICBBRERfTU9EQUwsXG4gIFNFVF9NT0RBTF9TVEFSVF9TVUJNSVRUSU5HLFxuICBTRVRfTU9EQUxfU1RPUF9TVUJNSVRUSU5HLFxufSBmcm9tICcuL0ZvcmVtYW5Nb2RhbENvbnN0YW50cyc7XG5cbmNvbnN0IGluaXRpYWxTdGF0ZSA9IEltbXV0YWJsZSh7fSk7XG5cbi8vIE1vZGFscyBzdGF0ZSBoYXMgaWQgYXMga2V5IGFuZCBvcGVuIHN0YXRlIGFzIHZhbHVlOlxuLy8geyBteU1vZGFsOiB7b3BlbjogdHJ1ZX0gfVxuLy8gU2luY2Uga2V5cyBjYW5ub3QgYmUgZHVwbGljYXRlZCwgd2UgYXZvaWQgY3JlYXRpbmcgZHVwbGljYXRlIG1vZGFscyBpbiB0aGlzIHdheS5cblxuZXhwb3J0IGRlZmF1bHQgKHN0YXRlID0gaW5pdGlhbFN0YXRlLCBhY3Rpb24pID0+IHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgU0VUX01PREFMX09QRU46XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW2FjdGlvbi5wYXlsb2FkLmlkLCAnaXNPcGVuJ10sIHRydWUpOyAvLyBzZXRJbihrZXlwYXRoLCB2YWx1ZSlcbiAgICBjYXNlIFNFVF9NT0RBTF9DTE9TRUQ6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW2FjdGlvbi5wYXlsb2FkLmlkLCAnaXNPcGVuJ10sIGZhbHNlKTtcbiAgICBjYXNlIEFERF9NT0RBTDpcbiAgICAgIGlmIChzdGF0ZVthY3Rpb24ucGF5bG9hZC5pZF0pIHJldHVybiBzdGF0ZTsgLy8gaWYgaXQgYWxyZWFkeSBleGlzdHMsIGRvbid0IGNoYW5nZSBpdHMgc3RhdGVcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbihbYWN0aW9uLnBheWxvYWQuaWRdLCB7XG4gICAgICAgIGlzT3BlbjogYWN0aW9uLnBheWxvYWQuaXNPcGVuIHx8IGZhbHNlLFxuICAgICAgICBpc1N1Ym1pdHRpbmc6IGFjdGlvbi5wYXlsb2FkLmlzU3VibWl0dGluZyB8fCBmYWxzZSxcbiAgICAgIH0pO1xuICAgIGNhc2UgU0VUX01PREFMX1NUQVJUX1NVQk1JVFRJTkc6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0SW4oW2FjdGlvbi5wYXlsb2FkLmlkLCAnaXNTdWJtaXR0aW5nJ10sIHRydWUpO1xuICAgIGNhc2UgU0VUX01PREFMX1NUT1BfU1VCTUlUVElORzpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbihbYWN0aW9uLnBheWxvYWQuaWQsICdpc1N1Ym1pdHRpbmcnXSwgZmFsc2UpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwvRm9yZW1hbk1vZGFsUmVkdWNlci5qcyIsImltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgQm9va21hcmtGb3JtIGZyb20gJy4vQm9va21hcmtGb3JtJztcbmltcG9ydCB7IHN1Ym1pdEZvcm0gfSBmcm9tICcuLi8uLi8uLi8uLi9yZWR1eC9hY3Rpb25zL2NvbW1vbi9mb3Jtcyc7XG5pbXBvcnQgeyBzZWxlY3RBdXRvY29tcGxldGVTZWFyY2hRdWVyeSB9IGZyb20gJy4uLy4uLy4uL0F1dG9Db21wbGV0ZS9BdXRvQ29tcGxldGVTZWxlY3RvcnMnO1xuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUsIHsgY29udHJvbGxlciB9KSA9PiAoe1xuICBpbml0aWFsVmFsdWVzOiB7XG4gICAgcHVibGljOiB0cnVlLFxuICAgIHF1ZXJ5OiBzZWxlY3RBdXRvY29tcGxldGVTZWFyY2hRdWVyeShzdGF0ZSwgJ3NlYXJjaEJhcicsIHsgY29udHJvbGxlciB9KSxcbiAgfSxcbn0pO1xuXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSB7XG4gIHN1Ym1pdEZvcm0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzKShCb29rbWFya0Zvcm0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQm9va21hcmtzL2NvbXBvbmVudHMvQm9va21hcmtGb3JtL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgKiBhcyBZdXAgZnJvbSAneXVwJztcblxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCBGb3JlbWFuRm9ybSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvRm9yZW1hbkZvcm0nO1xuaW1wb3J0IFRleHRGaWVsZCBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvVGV4dEZpZWxkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBtYXhMZW5ndGhNc2csIHJlcXVpcmVkTXNnIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL3ZhbGlkYXRvcnMnO1xuXG5jb25zdCBCb29rbWFya0Zvcm0gPSAoe1xuICB1cmwsXG4gIHN1Ym1pdEZvcm0sXG4gIGNvbnRyb2xsZXIsXG4gIG9uQ2FuY2VsLFxuICBpbml0aWFsVmFsdWVzLFxuICBzZXRNb2RhbENsb3NlZCxcbiAgYm9va21hcmtzLFxufSkgPT4ge1xuICBjb25zdCBleGlzdHNOYW1lc1JlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICBgXig/ISgke2Jvb2ttYXJrcy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKS5qb2luKCd8Jyl9KSQpLitgXG4gICk7XG4gIGNvbnN0IGJvb2ttYXJrRm9ybVNjaGVtYSA9IFl1cC5vYmplY3QoKS5zaGFwZSh7XG4gICAgbmFtZTogWXVwLnN0cmluZygpXG4gICAgICAubWF4KC4uLm1heExlbmd0aE1zZygyNTQpKVxuICAgICAgLnJlcXVpcmVkKHJlcXVpcmVkTXNnKCkpXG4gICAgICAubWF0Y2hlcyhleGlzdHNOYW1lc1JlZ2V4LCB7XG4gICAgICAgIGV4Y2x1ZGVFbXB0eVN0cmluZzogdHJ1ZSxcbiAgICAgICAgbWVzc2FnZTogX18oJ25hbWUgYWxyZWFkeSBleGlzdHMnKSxcbiAgICAgIH0pLFxuICAgIHF1ZXJ5OiBZdXAuc3RyaW5nKClcbiAgICAgIC5tYXgoLi4ubWF4TGVuZ3RoTXNnKDQwOTYpKVxuICAgICAgLnJlcXVpcmVkKHJlcXVpcmVkTXNnKCkpLFxuICB9KTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSAodmFsdWVzLCBhY3Rpb25zKSA9PlxuICAgIHN1Ym1pdEZvcm0oe1xuICAgICAgdXJsLFxuICAgICAgdmFsdWVzOiB7IC4uLnZhbHVlcywgY29udHJvbGxlciB9LFxuICAgICAgaXRlbTogJ0Jvb2ttYXJrcycsXG4gICAgICBtZXNzYWdlOiBfXygnQm9va21hcmsgd2FzIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLicpLFxuICAgICAgc3VjY2Vzc0NhbGxiYWNrOiBzZXRNb2RhbENsb3NlZCxcbiAgICAgIGFjdGlvbnMsXG4gICAgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9yZW1hbkZvcm1cbiAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICBpbml0aWFsVmFsdWVzPXtpbml0aWFsVmFsdWVzfVxuICAgICAgdmFsaWRhdGlvblNjaGVtYT17Ym9va21hcmtGb3JtU2NoZW1hfVxuICAgICAgb25DYW5jZWw9e29uQ2FuY2VsfVxuICAgID5cbiAgICAgIDxUZXh0RmllbGQgbmFtZT1cIm5hbWVcIiB0eXBlPVwidGV4dFwiIHJlcXVpcmVkPVwidHJ1ZVwiIGxhYmVsPXtfXygnTmFtZScpfSAvPlxuICAgICAgPFRleHRGaWVsZFxuICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICB0eXBlPVwidGV4dGFyZWFcIlxuICAgICAgICByZXF1aXJlZD1cInRydWVcIlxuICAgICAgICBsYWJlbD17X18oJ1F1ZXJ5Jyl9XG4gICAgICAgIGlucHV0Q2xhc3NOYW1lPVwiY29sLW1kLThcIlxuICAgICAgLz5cbiAgICAgIDxUZXh0RmllbGQgbmFtZT1cInB1YmxpY1wiIHR5cGU9XCJjaGVja2JveFwiIGxhYmVsPXtfXygnUHVibGljJyl9IC8+XG4gICAgPC9Gb3JlbWFuRm9ybT5cbiAgKTtcbn07XG5cbkJvb2ttYXJrRm9ybS5wcm9wVHlwZXMgPSB7XG4gIG9uQ2FuY2VsOiBQcm9wVHlwZXMuZnVuYyxcbiAgc3VibWl0Rm9ybTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY29udHJvbGxlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpbml0aWFsVmFsdWVzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzZXRNb2RhbENsb3NlZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgYm9va21hcmtzOiBQcm9wVHlwZXMuYXJyYXksXG59O1xuXG5Cb29rbWFya0Zvcm0uZGVmYXVsdFByb3BzID0ge1xuICBvbkNhbmNlbDogbm9vcCxcbiAgYm9va21hcmtzOiBbXSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2ttYXJrRm9ybTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0Jvb2ttYXJrcy9jb21wb25lbnRzL0Jvb2ttYXJrRm9ybS9Cb29rbWFya0Zvcm0uanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybWlrIH0gZnJvbSAnZm9ybWlrJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgRm9ybSBmcm9tICcuLi9Gb3JtJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuZXhwb3J0IGNvbnN0IGlzSW5pdGlhbFZhbGlkID0gKHsgdmFsaWRhdGlvblNjaGVtYSwgaW5pdGlhbFZhbHVlcyB9KSA9PlxuICAhdmFsaWRhdGlvblNjaGVtYSA/IHRydWUgOiB2YWxpZGF0aW9uU2NoZW1hLmlzVmFsaWRTeW5jKGluaXRpYWxWYWx1ZXMpO1xuXG5jb25zdCBGb3JlbWFuRm9ybSA9ICh7XG4gIG9uU3VibWl0LFxuICBjaGlsZHJlbixcbiAgaW5pdGlhbFZhbHVlcyxcbiAgdmFsaWRhdGlvblNjaGVtYSxcbiAgZW5hYmxlUmVpbml0aWFsaXplLFxuICBvbkNhbmNlbCxcbn0pID0+IChcbiAgPEZvcm1pa1xuICAgIG9uU3VibWl0PXtvblN1Ym1pdH1cbiAgICBpbml0aWFsVmFsdWVzPXtpbml0aWFsVmFsdWVzfVxuICAgIHZhbGlkYXRpb25TY2hlbWE9e3ZhbGlkYXRpb25TY2hlbWF9XG4gICAgaXNJbml0aWFsVmFsaWQ9e2lzSW5pdGlhbFZhbGlkfVxuICAgIGVuYWJsZVJlaW5pdGlhbGl6ZT17ZW5hYmxlUmVpbml0aWFsaXplfVxuICA+XG4gICAge2Zvcm1Qcm9wcyA9PiB7XG4gICAgICBjb25zdCBkaXNhYmxlZCA9IGZvcm1Qcm9wcy5pc1N1Ym1pdHRpbmcgfHwgIWZvcm1Qcm9wcy5pc1ZhbGlkO1xuICAgICAgY29uc3Qgc3VibWlzc2lvbkVycm9yID0gZm9ybVByb3BzLmVycm9ycy5fZXJyb3I7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxGb3JtXG4gICAgICAgICAgb25TdWJtaXQ9e2Zvcm1Qcm9wcy5oYW5kbGVTdWJtaXR9XG4gICAgICAgICAgb25DYW5jZWw9e29uQ2FuY2VsfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBlcnJvcj17c3VibWlzc2lvbkVycm9yfVxuICAgICAgICAgIGVycm9yVGl0bGU9e1xuICAgICAgICAgICAgc3VibWlzc2lvbkVycm9yPy5zZXZlcml0eSA9PT0gJ2RhbmdlcidcbiAgICAgICAgICAgICAgPyBfXygnRXJyb3IhICcpXG4gICAgICAgICAgICAgIDogX18oJ1dhcm5pbmchICcpXG4gICAgICAgICAgfVxuICAgICAgICAgIHN1Ym1pdHRpbmc9e2Zvcm1Qcm9wcy5pc1N1Ym1pdHRpbmd9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2xvbmVDaGlsZHJlbihjaGlsZHJlbiwgeyBmb3JtUHJvcHMsIGRpc2FibGVkIH0pfVxuICAgICAgICA8L0Zvcm0+XG4gICAgICApO1xuICAgIH19XG4gIDwvRm9ybWlrPlxuKTtcblxuY29uc3QgY2xvbmVDaGlsZHJlbiA9IChjaGlsZHJlbiwgY2hpbGRQcm9wcykgPT4gKFxuICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAge2NoaWxkcmVuLm1hcFxuICAgICAgPyBjaGlsZHJlbi5tYXAoKGNoaWxkLCBpZHgpID0+XG4gICAgICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7IC4uLmNoaWxkUHJvcHMsIGtleTogaWR4IH0pXG4gICAgICAgIClcbiAgICAgIDogUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7IC4uLmNoaWxkUHJvcHMgfSl9XG4gIDwvUmVhY3QuRnJhZ21lbnQ+XG4pO1xuXG5Gb3JlbWFuRm9ybS5wcm9wVHlwZXMgPSB7XG4gIG9uU3VibWl0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvbkNhbmNlbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaW5pdGlhbFZhbHVlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB2YWxpZGF0aW9uU2NoZW1hOiBQcm9wVHlwZXMub2JqZWN0LFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmFycmF5XSkuaXNSZXF1aXJlZCxcbiAgZW5hYmxlUmVpbml0aWFsaXplOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbkZvcmVtYW5Gb3JtLmRlZmF1bHRQcm9wcyA9IHtcbiAgdmFsaWRhdGlvblNjaGVtYTogdW5kZWZpbmVkLFxuICBlbmFibGVSZWluaXRpYWxpemU6IGZhbHNlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRm9yZW1hbkZvcm07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvRm9yZW1hbkZvcm0vRm9yZW1hbkZvcm0uanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgQWxlcnRCb2R5IGZyb20gJy4uL0FsZXJ0L0FsZXJ0Qm9keSc7XG5pbXBvcnQgQWN0aW9ucyBmcm9tICcuL0FjdGlvbnMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vcmVhY3RfYXBwL2NvbW1vbi9JMThuJztcblxuY29uc3QgRm9ybSA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgb25TdWJtaXQsXG4gIG9uQ2FuY2VsLFxuICBjaGlsZHJlbixcbiAgZXJyb3IsXG4gIHRvdWNoZWQsXG4gIGRpc2FibGVkLFxuICBzdWJtaXR0aW5nLFxuICBlcnJvclRpdGxlLFxufSkgPT4gKFxuICA8Zm9ybSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gb25TdWJtaXQ9e29uU3VibWl0fT5cbiAgICB7ZXJyb3IgJiYgKFxuICAgICAgPEFsZXJ0IGNsYXNzTmFtZT1cImJhc2UgaW4gZmFkZVwiIHR5cGU9e2Vycm9yLnNldmVyaXR5IHx8ICdkYW5nZXInfT5cbiAgICAgICAgPEFsZXJ0Qm9keSB0aXRsZT17ZXJyb3JUaXRsZX0+XG4gICAgICAgICAge2Vycm9yLmVycm9yTXNncy5sZW5ndGggPT09IDEgPyAoXG4gICAgICAgICAgICA8c3Bhbj57ZXJyb3IuZXJyb3JNc2dzWzBdfTwvc3Bhbj5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgZXJyb3IuZXJyb3JNc2dzLm1hcCgoZSwgaWR4KSA9PiA8bGkga2V5PXtpZHh9PntlfTwvbGk+KVxuICAgICAgICAgICl9XG4gICAgICAgIDwvQWxlcnRCb2R5PlxuICAgICAgPC9BbGVydD5cbiAgICApfVxuICAgIHtjaGlsZHJlbn1cbiAgICA8QWN0aW9ucyBvbkNhbmNlbD17b25DYW5jZWx9IGRpc2FibGVkPXtkaXNhYmxlZH0gc3VibWl0dGluZz17c3VibWl0dGluZ30gLz5cbiAgPC9mb3JtPlxuKTtcblxuRm9ybS5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBlcnJvcjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBlcnJvck1zZ3M6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIHNldmVyaXR5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KSxcbiAgdG91Y2hlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgc3VibWl0dGluZzogUHJvcFR5cGVzLmJvb2wsXG4gIGVycm9yVGl0bGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uU3VibWl0OiBQcm9wVHlwZXMuZnVuYyxcbiAgb25DYW5jZWw6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuRm9ybS5kZWZhdWx0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZTogJ2Zvcm0taG9yaXpvbnRhbCB3ZWxsJyxcbiAgY2hpbGRyZW46IG51bGwsXG4gIGVycm9yOiBudWxsLFxuICB0b3VjaGVkOiBmYWxzZSxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBzdWJtaXR0aW5nOiBmYWxzZSxcbiAgZXJyb3JUaXRsZTogYCR7X18oJ1VuYWJsZSB0byBzYXZlJyl9LiBgLFxuICBvblN1Ym1pdDogbm9vcCxcbiAgb25DYW5jZWw6IG5vb3AsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGb3JtO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0Zvcm0uanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgc2ltcGxlTG9hZGVyIH0gZnJvbSAnLi4vTG9hZGVyJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5cbmNvbnN0IEZvcm1BY3Rpb25zID0gKHsgb25DYW5jZWwsIGRpc2FibGVkLCBzdWJtaXR0aW5nIH0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9XCJjbGVhcmZpeFwiPlxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1hY3Rpb25zXCI+XG4gICAgICA8QnV0dG9uIGJzU3R5bGU9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGRpc2FibGVkPXtkaXNhYmxlZCB8fCBzdWJtaXR0aW5nfT5cbiAgICAgICAgJm5ic3A7XG4gICAgICAgIHtfXygnU3VibWl0Jyl9XG4gICAgICAgIHtzdWJtaXR0aW5nICYmIDxzcGFuIGNsYXNzTmFtZT1cImZyXCI+e3NpbXBsZUxvYWRlcignc20nKX08L3NwYW4+fVxuICAgICAgPC9CdXR0b24+XG4gICAgICB7JyAnIC8qIGFkZHMgd2hpdGVzcGFjZSBiZXR3ZWVuIHRoZSBidXR0b25zICovfVxuICAgICAgPEJ1dHRvbiBic1N0eWxlPVwiZGVmYXVsdFwiIG9uQ2xpY2s9e29uQ2FuY2VsfSBkaXNhYmxlZD17c3VibWl0dGluZ30+XG4gICAgICAgIHtfXygnQ2FuY2VsJyl9XG4gICAgICA8L0J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4pO1xuXG5Gb3JtQWN0aW9ucy5wcm9wVHlwZXMgPSB7XG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgc3VibWl0dGluZzogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2FuY2VsOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbkZvcm1BY3Rpb25zLmRlZmF1bHRQcm9wcyA9IHtcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBzdWJtaXR0aW5nOiBmYWxzZSxcbiAgb25DYW5jZWw6IG5vb3AsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGb3JtQWN0aW9ucztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9BY3Rpb25zLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJ2Zvcm1payc7XG5pbXBvcnQgVGV4dEZpZWxkSW5uZXIgZnJvbSAnLi9UZXh0RmllbGRJbm5lcic7XG5cbmNvbnN0IFRleHRGaWVsZCA9ICh7XG4gIG5hbWUsXG4gIGxhYmVsLFxuICB0eXBlLFxuICBjbGFzc05hbWUsXG4gIGlucHV0Q2xhc3NOYW1lLFxuICByZXF1aXJlZCxcbiAgdmFsaWRhdGUsXG59KSA9PiAoXG4gIDxGaWVsZFxuICAgIG5hbWU9e25hbWV9XG4gICAgdmFsaWRhdGU9e3ZhbGlkYXRlfVxuICAgIHJlbmRlcj17KHsgZmllbGQsIGZvcm06IHsgdG91Y2hlZCwgZXJyb3JzIH0gfSkgPT4gKFxuICAgICAgPFRleHRGaWVsZElubmVyXG4gICAgICAgIGlucHV0PXt7IC4uLmZpZWxkLCB2YWx1ZTogZmllbGQudmFsdWUgfHwgJycgfX1cbiAgICAgICAgbWV0YT17eyB0b3VjaGVkOiB0b3VjaGVkW25hbWVdLCBlcnJvcjogZXJyb3JzW25hbWVdIH19XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIHR5cGU9e3R5cGV9XG4gICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIGlucHV0Q2xhc3NOYW1lPXtpbnB1dENsYXNzTmFtZX1cbiAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgLz5cbiAgICApfVxuICAvPlxuKTtcblxuVGV4dEZpZWxkLnByb3BUeXBlcyA9IHtcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbnB1dENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgcmVxdWlyZWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ib29sLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIHZhbGlkYXRlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cblRleHRGaWVsZC5kZWZhdWx0UHJvcHMgPSB7XG4gIGxhYmVsOiAnJyxcbiAgdHlwZTogJ3RleHQnLFxuICBjbGFzc05hbWU6ICcnLFxuICByZXF1aXJlZDogZmFsc2UsXG4gIGlucHV0Q2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIHZhbGlkYXRlOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvVGV4dEZpZWxkL1RleHRGaWVsZC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IENvbW1vbkZvcm0gZnJvbSAnLi4vQ29tbW9uRm9ybSc7XG5cbmNvbnN0IFRleHRGaWVsZElubmVyID0gKHtcbiAgaW5wdXQsXG4gIGxhYmVsLFxuICB0eXBlLFxuICByZXF1aXJlZCxcbiAgY2xhc3NOYW1lLFxuICBpbnB1dENsYXNzTmFtZSxcbiAgbWV0YTogeyB0b3VjaGVkLCBlcnJvciB9LFxufSkgPT4gKFxuICA8Q29tbW9uRm9ybVxuICAgIGxhYmVsPXtsYWJlbH1cbiAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICBpbnB1dENsYXNzTmFtZT17aW5wdXRDbGFzc05hbWV9XG4gICAgdG91Y2hlZD17dG91Y2hlZH1cbiAgICByZXF1aXJlZD17cmVxdWlyZWR9XG4gICAgZXJyb3I9e2Vycm9yfVxuICA+XG4gICAge3R5cGUgPT09ICd0ZXh0YXJlYScgPyAoXG4gICAgICA8dGV4dGFyZWEgey4uLmlucHV0fSBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIiAvPlxuICAgICkgOiAoXG4gICAgICA8aW5wdXRcbiAgICAgICAgey4uLmlucHV0fVxuICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICBjaGVja2VkPXt0eXBlID09PSAnY2hlY2tib3gnID8gaW5wdXQudmFsdWUgOiB1bmRlZmluZWR9XG4gICAgICAgIGNsYXNzTmFtZT17dHlwZSA9PT0gJ2NoZWNrYm94JyA/ICcnIDogJ2Zvcm0tY29udHJvbCd9XG4gICAgICAvPlxuICAgICl9XG4gIDwvQ29tbW9uRm9ybT5cbik7XG5cblRleHRGaWVsZElubmVyLnByb3BUeXBlcyA9IHtcbiAgaW5wdXQ6IFByb3BUeXBlcy5vYmplY3QsXG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICByZXF1aXJlZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmJvb2wsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbnB1dENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgbWV0YTogUHJvcFR5cGVzLnNoYXBlKHsgdG91Y2hlZDogUHJvcFR5cGVzLmJvb2wsIGVycm9yOiBQcm9wVHlwZXMuc3RyaW5nIH0pLFxufTtcblxuVGV4dEZpZWxkSW5uZXIuZGVmYXVsdFByb3BzID0ge1xuICBpbnB1dDoge30sXG4gIGxhYmVsOiAnJyxcbiAgdHlwZTogJ3RleHQnLFxuICBjbGFzc05hbWU6ICcnLFxuICByZXF1aXJlZDogZmFsc2UsXG4gIGlucHV0Q2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIG1ldGE6IHsgdG91Y2hlZDogZmFsc2UsIGVycm9yOiB1bmRlZmluZWQgfSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRGaWVsZElubmVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL1RleHRGaWVsZC9UZXh0RmllbGRJbm5lci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgRWxsaXBpc1dpdGhUb29sdGlwIGZyb20gJ3JlYWN0LWVsbGlwc2lzLXdpdGgtdG9vbHRpcCc7XG5pbXBvcnQgeyBQbHVzSWNvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25zJztcbmltcG9ydCB7XG4gIERyb3Bkb3duSXRlbSxcbiAgRHJvcGRvd25Hcm91cCxcbiAgRHJvcGRvd25TZXBhcmF0b3IsXG4gIFNwaW5uZXIsXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IHsgc3ByaW50ZiwgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCBEb2N1bWVudGF0aW9uVXJsIGZyb20gJy4uL0RvY3VtZW50YXRpb25MaW5rJztcblxuZXhwb3J0IGNvbnN0IGFkZEJvb2ttYXJrSXRlbSA9ICh7IGNhbkNyZWF0ZSwgc2V0TW9kYWxPcGVuIH0pID0+XG4gIGNhbkNyZWF0ZSAmJiAoXG4gICAgPERyb3Bkb3duR3JvdXAga2V5PVwiZ3JvdXAgMVwiPlxuICAgICAgPERyb3Bkb3duSXRlbSBrZXk9XCJuZXdCb29rbWFya1wiIGlkPVwibmV3Qm9va21hcmtcIiBvbkNsaWNrPXtzZXRNb2RhbE9wZW59PlxuICAgICAgICA8UGx1c0ljb24gLz4ge19fKCdCb29rbWFyayB0aGlzIHNlYXJjaCcpfVxuICAgICAgPC9Ecm9wZG93bkl0ZW0+XG4gICAgICA8RHJvcGRvd25TZXBhcmF0b3Iga2V5PVwic2VwYXJhdG9yXCIgLz5cbiAgICA8L0Ryb3Bkb3duR3JvdXA+XG4gICk7XG5cbmNvbnN0IHBlbmRpbmdJdGVtID0gKFxuICA8RHJvcGRvd25JdGVtIGtleT1cInNwaW5uZXJcIiBjbGFzc05hbWU9XCJsb2FkZXItcm9vdFwiIGlzRGlzYWJsZWQ+XG4gICAgPFNwaW5uZXIgc2l6ZT1cInhzXCIgYXJpYS1sYWJlbD1cImxvYWRpbmcgYm9va21hcmtzXCIgLz5cbiAgPC9Ecm9wZG93bkl0ZW0+XG4pO1xuXG5jb25zdCBib29rbWFya3NMaXN0ID0gKHsgYm9va21hcmtzLCBvbkJvb2ttYXJrQ2xpY2sgfSkgPT5cbiAgKGJvb2ttYXJrcy5sZW5ndGggPiAwICYmXG4gICAgYm9va21hcmtzLm1hcCgoeyBuYW1lLCBxdWVyeSB9KSA9PiAoXG4gICAgICA8RHJvcGRvd25JdGVtIGtleT17bmFtZX0gb25DbGljaz17KCkgPT4gb25Cb29rbWFya0NsaWNrKHF1ZXJ5KX0+XG4gICAgICAgIDxFbGxpcGlzV2l0aFRvb2x0aXA+e25hbWV9PC9FbGxpcGlzV2l0aFRvb2x0aXA+XG4gICAgICA8L0Ryb3Bkb3duSXRlbT5cbiAgICApKSkgfHwgKFxuICAgIDxEcm9wZG93bkl0ZW0ga2V5PVwibm90IGZvdW5kXCIgaXNEaXNhYmxlZD5cbiAgICAgIHtfXygnTm9uZSBmb3VuZCcpfVxuICAgIDwvRHJvcGRvd25JdGVtPlxuICApO1xuXG5jb25zdCBlcnJvckl0ZW0gPSBlcnJvcnMgPT4gKFxuICA8RHJvcGRvd25JdGVtIGtleT1cImJvb2ttYXJrcy1lcnJvcnNcIiBpc0Rpc2FibGVkPlxuICAgIDxFbGxpcGlzV2l0aFRvb2x0aXA+XG4gICAgICB7c3ByaW50ZignRmFpbGVkIHRvIGxvYWQgYm9va21hcmtzOiAlcycsIGVycm9ycyl9XG4gICAgPC9FbGxpcGlzV2l0aFRvb2x0aXA+XG4gIDwvRHJvcGRvd25JdGVtPlxuKTtcblxuZXhwb3J0IGNvbnN0IHNhdmVkQm9va21hcmtzSXRlbXMgPSAoe1xuICBib29rbWFya3MsXG4gIG9uQm9va21hcmtDbGljayxcbiAgc3RhdHVzLFxuICBlcnJvcnMsXG59KSA9PiAoXG4gIDxEcm9wZG93bkdyb3VwIGtleT1cInNhdmVkIGJvb2ttYXJrc1wiIGxhYmVsPXtfXygnU2F2ZWQgQm9va21hcmtzJyl9PlxuICAgIHtbXG4gICAgICBzdGF0dXMgPT09IFNUQVRVUy5QRU5ESU5HICYmIFtwZW5kaW5nSXRlbV0sXG4gICAgICBzdGF0dXMgPT09IFNUQVRVUy5SRVNPTFZFRCAmJiBbXG4gICAgICAgIGJvb2ttYXJrc0xpc3QoeyBib29rbWFya3MsIG9uQm9va21hcmtDbGljayB9KSxcbiAgICAgIF0sXG4gICAgICBzdGF0dXMgPT09IFNUQVRVUy5FUlJPUiAmJiBbZXJyb3JJdGVtKGVycm9ycyldLFxuICAgIF0uZmlsdGVyKGl0ZW0gPT4gaXRlbSl9XG4gIDwvRHJvcGRvd25Hcm91cD5cbik7XG5cbmV4cG9ydCBjb25zdCBtYW5hZ2VCb29rbWFya3NJdGVtID0gKHtcbiAgY2FuQ3JlYXRlLFxuICBvbkNsaWNrLFxuICBkb2N1bWVudGF0aW9uVXJsLFxufSkgPT4gKFxuICA8RHJvcGRvd25Hcm91cCBrZXk9XCJtYW5hZ2UgYm9va21hcmtzXCI+XG4gICAgPERyb3Bkb3duU2VwYXJhdG9yIGtleT1cInNlcGFyYXRvclwiIC8+XG4gICAge2NhbkNyZWF0ZSAmJiAoXG4gICAgICA8RHJvcGRvd25JdGVtXG4gICAgICAgIGtleT1cIm1hbmFnZUJvb2ttYXJrc1wiXG4gICAgICAgIGlkPVwibWFuYWdlQm9va21hcmtzXCJcbiAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgID5cbiAgICAgICAge19fKCdNYW5hZ2UgQm9va21hcmtzJyl9XG4gICAgICA8L0Ryb3Bkb3duSXRlbT5cbiAgICApfVxuICAgIDxEb2N1bWVudGF0aW9uVXJsIGhyZWY9e2RvY3VtZW50YXRpb25Vcmx9IC8+XG4gIDwvRHJvcGRvd25Hcm91cD5cbik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QRjQvQm9va21hcmtzL0Jvb2ttYXJrSXRlbXMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IERyb3Bkb3duSXRlbSB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IHsgUXVlc3Rpb25DaXJjbGVJY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgbmV3V2luZG93T25DbGljayB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5cbmNvbnN0IERvY3VtZW50YXRpb25MaW5rID0gKHsgaHJlZiwgY2hpbGRyZW4gfSkgPT4gKFxuICA8RHJvcGRvd25JdGVtIGtleT1cImRvY3VtZW50YXRpb25VcmxcIiBvbkNsaWNrPXtuZXdXaW5kb3dPbkNsaWNrKGhyZWYpfT5cbiAgICA8UXVlc3Rpb25DaXJjbGVJY29uIC8+IHtjaGlsZHJlbn1cbiAgPC9Ecm9wZG93bkl0ZW0+XG4pO1xuXG5Eb2N1bWVudGF0aW9uTGluay5wcm9wVHlwZXMgPSB7XG4gIGhyZWY6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxufTtcblxuRG9jdW1lbnRhdGlvbkxpbmsuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogX18oJ0RvY3VtZW50YXRpb24nKSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IERvY3VtZW50YXRpb25MaW5rO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvUEY0L0RvY3VtZW50YXRpb25MaW5rL2luZGV4LmpzIiwiaW1wb3J0IEltbXV0YWJsZSBmcm9tICdzZWFtbGVzcy1pbW11dGFibGUnO1xuaW1wb3J0IHsgQk9PS01BUktTX0ZPUk1fU1VCTUlUVEVEX1NVQ0NFU1MgfSBmcm9tICcuL0Jvb2ttYXJrc0NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGUgPSBJbW11dGFibGUoe30pO1xuXG5leHBvcnQgZGVmYXVsdCAoc3RhdGUgPSBpbml0aWFsU3RhdGUsIHsgdHlwZSwgcGF5bG9hZCwgcmVzcG9uc2UgfSkgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIEJPT0tNQVJLU19GT1JNX1NVQk1JVFRFRF9TVUNDRVNTOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldEluKFxuICAgICAgICBbcmVzcG9uc2UuY29udHJvbGxlciwgJ3Jlc3VsdHMnXSxcbiAgICAgICAgWy4uLihzdGF0ZS5yZXN1bHRzIHx8IFtdKSwgcmVzcG9uc2VdXG4gICAgICApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9QRjQvQm9va21hcmtzL0Jvb2ttYXJrc1JlZHVjZXIuanMiLCJpbXBvcnQgeyBzZWxlY3RBUElSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L0FQSS9BUElTZWxlY3RvcnMnO1xuXG5jb25zdCBzb3J0QnlOYW1lID0gKGEsIGIpID0+IHtcbiAgaWYgKGEubmFtZSA8IGIubmFtZSkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuICBpZiAoYS5uYW1lID4gYi5uYW1lKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgLy8gbmFtZXMgbXVzdCBiZSBlcXVhbFxuICByZXR1cm4gMDtcbn07XG5jb25zdCBzZWxlY3RCb29rbWFya3MgPSBzdGF0ZSA9PiBzdGF0ZS5ib29rbWFya3NQRjQgfHwge307XG5jb25zdCBzZWxlY3RCb29rbWFya3NCeUNvbnRyb2xsZXIgPSAoc3RhdGUsIGNvbnRyb2xsZXIpID0+XG4gIHNlbGVjdEJvb2ttYXJrcyhzdGF0ZSlbY29udHJvbGxlcl0gfHwge307XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RCb29rbWFya3NSZXN1bHRzID0gKHN0b3JlLCBrZXksIGNvbnRyb2xsZXIpID0+XG4gIFtcbiAgICAuLi4oc2VsZWN0Qm9va21hcmtzQnlDb250cm9sbGVyKHN0b3JlLCBjb250cm9sbGVyKS5yZXN1bHRzIHx8IFtdKSxcbiAgICAuLi4oc2VsZWN0QVBJUmVzcG9uc2Uoc3RvcmUsIGtleSkucmVzdWx0cyB8fCBbXSksXG4gIF0uc29ydChzb3J0QnlOYW1lKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1BGNC9Cb29rbWFya3MvQm9va21hcmtzU2VsZWN0b3JzLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NlYXJjaEJhci9zZWFyY2gtYmFyLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDM0OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9IRUxNRVRfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX0hFTE1FVF9fXCJcbi8vIG1vZHVsZSBpZCA9IDM1MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoUmVuZGVySGFuZGxlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9IT0MnO1xuaW1wb3J0IEF1ZGl0c0xpc3QgZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9BdWRpdHNMaXN0JztcbmltcG9ydCBBdWRpdHNMb2FkaW5nUGFnZSBmcm9tICcuL0F1ZGl0c0xvYWRpbmdQYWdlJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvUGFnaW5hdGlvbi9QYWdpbmF0aW9uJztcblxuY29uc3QgQXVkaXRzVGFibGUgPSAoeyBhdWRpdHMsIHBhZ2UsIGl0ZW1Db3VudCwgZmV0Y2hBbmRQdXNoIH0pID0+IChcbiAgPFJlYWN0LkZyYWdtZW50PlxuICAgIDxkaXYgaWQ9XCJhdWRpdC1saXN0XCI+XG4gICAgICA8QXVkaXRzTGlzdCBkYXRhPXt7IGF1ZGl0cyB9fSBmZXRjaEFuZFB1c2g9e2ZldGNoQW5kUHVzaH0gLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwicGFnaW5hdGlvblwiPlxuICAgICAgPFBhZ2luYXRpb25cbiAgICAgICAgZGF0YT17e1xuICAgICAgICAgIGl0ZW1Db3VudCxcbiAgICAgICAgICB2aWV3VHlwZTogJ3RhYmxlJyxcbiAgICAgICAgICBjbGFzc05hbWVzOiB7IHBhZ2luYXRpb25fY2xhc3NlczogJ2F1ZGl0cy1wYWdpbmF0aW9uJyB9LFxuICAgICAgICB9fVxuICAgICAgICBwYWdpbmF0aW9uPXt7XG4gICAgICAgICAgcGFnZSxcbiAgICAgICAgfX1cbiAgICAgICAgb25QYWdlU2V0PXtuZXdQYWdlID0+IGZldGNoQW5kUHVzaCh7IHBhZ2U6IG5ld1BhZ2UgfSl9XG4gICAgICAgIG9uUGVyUGFnZVNlbGVjdD17bmV3UGVyUGFnZSA9PlxuICAgICAgICAgIGZldGNoQW5kUHVzaCh7IHBlclBhZ2U6IG5ld1BlclBhZ2UsIHBhZ2U6IDEgfSlcbiAgICAgICAgfVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgPC9SZWFjdC5GcmFnbWVudD5cbik7XG5cbkF1ZGl0c1RhYmxlLnByb3BUeXBlcyA9IHtcbiAgYXVkaXRzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgcGFnZTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBpdGVtQ291bnQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgZmV0Y2hBbmRQdXNoOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFJlbmRlckhhbmRsZXIoe1xuICBDb21wb25lbnQ6IEF1ZGl0c1RhYmxlLFxuICBMb2FkaW5nQ29tcG9uZW50OiBBdWRpdHNMb2FkaW5nUGFnZSxcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9BdWRpdHMvQXVkaXRzUGFnZS9jb21wb25lbnRzL0F1ZGl0c1RhYmxlLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgRGVmYXVsdEVtcHR5U3RhdGUgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb21tb24vRW1wdHlTdGF0ZSc7XG5pbXBvcnQgJy4vZW1wdHlwYWdlLnNjc3MnO1xuXG5jb25zdCBFbXB0eVBhZ2UgPSAoeyBtZXNzYWdlOiB7IHR5cGUsIHRleHQgfSB9KSA9PiAoXG4gIDxEZWZhdWx0RW1wdHlTdGF0ZVxuICAgIGljb249e3R5cGUgPT09ICdlcnJvcicgPyAnZXJyb3ItY2lyY2xlLW8nIDogJ2FkZC1jaXJjbGUtbyd9XG4gICAgaGVhZGVyPXt0eXBlID09PSAnZXJyb3InID8gX18oJ0Vycm9yJykgOiBfXygnTm8gUmVzdWx0cycpfVxuICAgIGRlc2NyaXB0aW9uPXt0ZXh0fVxuICAvPlxuKTtcblxuRW1wdHlQYWdlLnByb3BUeXBlcyA9IHtcbiAgbWVzc2FnZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICB0eXBlOiBQcm9wVHlwZXMub25lT2YoWydlbXB0eScsICdlcnJvciddKSxcbiAgICB0ZXh0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KSxcbn07XG5cbkVtcHR5UGFnZS5kZWZhdWx0UHJvcHMgPSB7XG4gIG1lc3NhZ2U6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgdHlwZTogJ2VtcHR5JyxcbiAgICB0ZXh0OiAnTm8gUmVzdWx0cycsXG4gIH0pLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRW1wdHlQYWdlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9jb21tb24vRW1wdHlQYWdlL2luZGV4LmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9FbXB0eVN0YXRlL0VtcHR5U3RhdGUuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMzUzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBwdXNoIH0gZnJvbSAnY29ubmVjdGVkLXJlYWN0LXJvdXRlcic7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCBFbXB0eVN0YXRlUGF0dGVybiBmcm9tICcuL0VtcHR5U3RhdGVQYXR0ZXJuJztcbmltcG9ydCB7IGRlZmF1bHRFbXB0eVN0YXRlUHJvcFR5cGVzIH0gZnJvbSAnLi9FbXB0eVN0YXRlUHJvcFR5cGVzJztcblxuY29uc3QgRGVmYXVsdEVtcHR5U3RhdGUgPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHtcbiAgICBpY29uLFxuICAgIGljb25UeXBlLFxuICAgIGhlYWRlcixcbiAgICBkZXNjcmlwdGlvbixcbiAgICBkb2N1bWVudGF0aW9uLFxuICAgIGFjdGlvbixcbiAgICBzZWNvbmRhcnlBY3Rpb25zLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBhY3Rpb25CdXR0b25DbGlja0hhbmRsZXIgPSAoeyB1cmwsIG9uQ2xpY2sgfSkgPT4ge1xuICAgIGlmIChvbkNsaWNrKSBvbkNsaWNrKCk7XG4gICAgZWxzZSBpZiAodXJsKSBkaXNwYXRjaChwdXNoKHVybCkpO1xuICB9O1xuXG4gIGNvbnN0IEFjdGlvbkJ1dHRvbiA9IGFjdGlvbiA/IChcbiAgICA8QnV0dG9uXG4gICAgICBjb21wb25lbnQ9XCJhXCJcbiAgICAgIG9uQ2xpY2s9eygpID0+IGFjdGlvbkJ1dHRvbkNsaWNrSGFuZGxlcihhY3Rpb24pfVxuICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgID5cbiAgICAgIHthY3Rpb24udGl0bGV9XG4gICAgPC9CdXR0b24+XG4gICkgOiBudWxsO1xuXG4gIGNvbnN0IFNlY29uZGFyeUJ1dHRvbiA9IHNlY29uZGFyeUFjdGlvbnNcbiAgICA/IHNlY29uZGFyeUFjdGlvbnMubWFwKCh7IHRpdGxlLCB1cmwsIG9uQ2xpY2sgfSkgPT4gKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgY29tcG9uZW50PVwiYVwiXG4gICAgICAgICAga2V5PXtgc2VjLWJ1dHRvbi0ke3RpdGxlfWB9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gYWN0aW9uQnV0dG9uQ2xpY2tIYW5kbGVyKHsgdXJsLCBvbkNsaWNrIH0pfVxuICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICA+XG4gICAgICAgICAge3RpdGxlfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICkpXG4gICAgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPEVtcHR5U3RhdGVQYXR0ZXJuXG4gICAgICBpY29uPXtpY29ufVxuICAgICAgaWNvblR5cGU9e2ljb25UeXBlfVxuICAgICAgaGVhZGVyPXtoZWFkZXJ9XG4gICAgICBkZXNjcmlwdGlvbj17ZGVzY3JpcHRpb259XG4gICAgICBkb2N1bWVudGF0aW9uPXtkb2N1bWVudGF0aW9ufVxuICAgICAgYWN0aW9uPXtBY3Rpb25CdXR0b259XG4gICAgICBzZWNvbmRhcnlBY3Rpb25zPXtTZWNvbmRhcnlCdXR0b259XG4gICAgLz5cbiAgKTtcbn07XG5cbkRlZmF1bHRFbXB0eVN0YXRlLnByb3BUeXBlcyA9IGRlZmF1bHRFbXB0eVN0YXRlUHJvcFR5cGVzO1xuXG5EZWZhdWx0RW1wdHlTdGF0ZS5kZWZhdWx0UHJvcHMgPSB7XG4gIGljb246ICdhZGQtY2lyY2xlLW8nLFxuICBzZWNvbmRhcnlBY3Rpb25zOiBbXSxcbiAgaWNvblR5cGU6ICdwZicsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEZWZhdWx0RW1wdHlTdGF0ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9FbXB0eVN0YXRlL0RlZmF1bHRFbXB0eVN0YXRlLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvY29tbW9uL0VtcHR5UGFnZS9lbXB0eXBhZ2Uuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMzU1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9jb21tb24vTG9hZGluZ1BhZ2UvbG9hZGluZ3BhZ2Uuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMzU2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IExpc3RWaWV3LCBSb3cgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBTZWFyY2hMaW5rIGZyb20gJy4vU2VhcmNoTGluayc7XG5pbXBvcnQgU2hvd0lubGluZVJlcXVlc3RVdWlkIGZyb20gJy4vU2hvd0lubGluZVJlcXVlc3RVdWlkJztcbmltcG9ydCBTaG93T3Jnc0xvY3MgZnJvbSAnLi9TaG93T3Jnc0xvY3MnO1xuaW1wb3J0IEFjdGlvbkxpbmtzIGZyb20gJy4vQWN0aW9uTGlua3MnO1xuaW1wb3J0IEV4cGFuc2l2ZVZpZXcgZnJvbSAnLi9FeHBhbnNpdmVWaWV3JztcbmltcG9ydCBVc2VyRGV0YWlscyBmcm9tICcuL1VzZXJEZXRhaWxzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCBTaG9ydERhdGVUaW1lIGZyb20gJy4uL2NvbW1vbi9kYXRlcy9TaG9ydERhdGVUaW1lJztcbmltcG9ydCAnLi9hdWRpdC5zY3NzJztcblxuY29uc3QgaXNBdWRpdExvZ2luID0gYXVkaXRlZENoYW5nZXMgPT4ge1xuICBsZXQgbmFtZTtcbiAgdHJ5IHtcbiAgICBbbmFtZV0gPSBPYmplY3Qua2V5cyhhdWRpdGVkQ2hhbmdlcyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBuYW1lID0gJyc7XG4gIH1cbiAgcmV0dXJuIG5hbWUgPT09ICdsYXN0X2xvZ2luX29uJztcbn07XG5cbmNvbnN0IGRlc2NyaXB0aW9uID0gYWN0aW9uRGlzcGxheU5hbWUgPT4gKFxuICA8TGlzdFZpZXcuRGVzY3JpcHRpb24+XG4gICAgPExpc3RWaWV3LkRlc2NyaXB0aW9uVGV4dD57YWN0aW9uRGlzcGxheU5hbWV9PC9MaXN0Vmlldy5EZXNjcmlwdGlvblRleHQ+XG4gIDwvTGlzdFZpZXcuRGVzY3JpcHRpb24+XG4pO1xuXG5jb25zdCByZW5kZXJBZGRpdGlvbmFsSW5mb0l0ZW1zID0gaXRlbXMgPT5cbiAgaXRlbXMgJiZcbiAgaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgIDxMaXN0Vmlldy5JbmZvSXRlbSBrZXk9e2luZGV4fT57aXRlbX08L0xpc3RWaWV3LkluZm9JdGVtPlxuICApKTtcblxuY29uc3QgcmVuZGVyVGltZXN0YW1wID0gZGF0ZSA9PiAoXG4gIDxzcGFuIGNsYXNzTmFtZT1cImdyYXktdGV4dFwiPlxuICAgIDxTaG9ydERhdGVUaW1lXG4gICAgICBkYXRlPXtkYXRlfVxuICAgICAgZGVmYXVsdFZhbHVlPXtfXygnTi9BJyl9XG4gICAgICBzaG93UmVsYXRpdmVUaW1lVG9vbHRpcFxuICAgIC8+XG4gIDwvc3Bhbj5cbik7XG5cbmNvbnN0IHJlbmRlclJlc291cmNlTGluayA9IChhdWRpdFRpdGxlLCBhdWRpdFRpdGxlVXJsLCBpZCkgPT4ge1xuICBpZiAoYXVkaXRUaXRsZVVybCkge1xuICAgIHJldHVybiAoXG4gICAgICA8U2VhcmNoTGlua1xuICAgICAgICB1cmw9e2F1ZGl0VGl0bGVVcmx9XG4gICAgICAgIHRleHRWYWx1ZT17YXVkaXRUaXRsZX1cbiAgICAgICAgdGl0bGU9e19fKCdGaWx0ZXIgYXVkaXRzIGZvciB0aGlzIHJlc291cmNlIG9ubHknKX1cbiAgICAgICAgaWQ9e2lkfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4gIHJldHVybiBhdWRpdFRpdGxlO1xufTtcblxuY29uc3QgQXVkaXRzTGlzdCA9ICh7IGRhdGE6IHsgYXVkaXRzIH0sIGZldGNoQW5kUHVzaCB9KSA9PiB7XG4gIGNvbnN0IGluaXRFeHBhbmRlZCA9IGF1ZGl0cy5sZW5ndGggPT09IDE7XG4gIHJldHVybiAoXG4gICAgPExpc3RWaWV3PlxuICAgICAge2F1ZGl0cy5tYXAoXG4gICAgICAgICh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY3JlYXRlZF9hdDogY3JlYXRlZEF0LFxuICAgICAgICAgIGF1ZGl0ZWRfdHlwZV9uYW1lOiBhdWRpdGVkVHlwZU5hbWUsXG4gICAgICAgICAgYXVkaXRfdGl0bGU6IGF1ZGl0VGl0bGUsXG4gICAgICAgICAgYXVkaXRfdGl0bGVfdXJsOiBhdWRpdFRpdGxlVXJsLFxuICAgICAgICAgIGF1ZGl0ZWRfY2hhbmdlczogYXVkaXRlZENoYW5nZXMsXG4gICAgICAgICAgdXNlcl9pbmZvOiB1c2VySW5mbyxcbiAgICAgICAgICByZW1vdGVfYWRkcmVzczogcmVtb3RlQWRkcmVzcyxcbiAgICAgICAgICBhY3Rpb25fZGlzcGxheV9uYW1lOiBhY3Rpb25EaXNwbGF5TmFtZSxcbiAgICAgICAgICBhZmZlY3RlZF9vcmdhbml6YXRpb25zOiBhZmZlY3RlZE9yZ2FuaXphdGlvbnMsXG4gICAgICAgICAgYWZmZWN0ZWRfbG9jYXRpb25zOiBhZmZlY3RlZExvY2F0aW9ucyxcbiAgICAgICAgICBhbGxvd2VkX2FjdGlvbnM6IGFsbG93ZWRBY3Rpb25zLFxuICAgICAgICAgIHJlcXVlc3RfdXVpZDogcmVxdWVzdFV1aWQsXG4gICAgICAgICAgY29tbWVudCxcbiAgICAgICAgICBhdWRpdGVkX2NoYW5nZXNfd2l0aF9pZF90b19sYWJlbDogYXVkaXRlZENoYW5nZXNXaXRoSWRUb0xhYmVsLFxuICAgICAgICAgIGRldGFpbHMsXG4gICAgICAgIH0pID0+IChcbiAgICAgICAgICA8TGlzdFZpZXcuSXRlbVxuICAgICAgICAgICAgaWQ9e2lkfVxuICAgICAgICAgICAga2V5PXtpZH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgIHJlbW90ZUFkZHJlc3NcbiAgICAgICAgICAgICAgICA/ICdtYWluLWluZm8tbWluaW1pemUtcGFkZGluZydcbiAgICAgICAgICAgICAgICA6ICdtYWluLWluZm8tbWF4aW1pemUtcGFkZGluZydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFjdGlvbnM9e3JlbmRlclRpbWVzdGFtcChjcmVhdGVkQXQpfVxuICAgICAgICAgICAgYWRkaXRpb25hbEluZm89e3JlbmRlckFkZGl0aW9uYWxJbmZvSXRlbXMoW1xuICAgICAgICAgICAgICBhdWRpdGVkVHlwZU5hbWUudG9VcHBlckNhc2UoKSxcbiAgICAgICAgICAgICAgcmVuZGVyUmVzb3VyY2VMaW5rKGF1ZGl0VGl0bGUsIGF1ZGl0VGl0bGVVcmwsIGlkKSxcbiAgICAgICAgICAgIF0pfVxuICAgICAgICAgICAgaGVhZGluZz17XG4gICAgICAgICAgICAgIDxVc2VyRGV0YWlsc1xuICAgICAgICAgICAgICAgIGlzQXVkaXRMb2dpbj17aXNBdWRpdExvZ2luKGF1ZGl0ZWRDaGFuZ2VzKX1cbiAgICAgICAgICAgICAgICB1c2VySW5mbz17dXNlckluZm99XG4gICAgICAgICAgICAgICAgcmVtb3RlQWRkcmVzcz17cmVtb3RlQWRkcmVzc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtkZXNjcmlwdGlvbihhY3Rpb25EaXNwbGF5TmFtZSl9XG4gICAgICAgICAgICBzdGFja2VkPXtmYWxzZX1cbiAgICAgICAgICAgIGhpZGVDbG9zZUljb25cbiAgICAgICAgICAgIGluaXRFeHBhbmRlZD17aW5pdEV4cGFuZGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSb3c+XG4gICAgICAgICAgICAgIDxTaG93T3Jnc0xvY3NcbiAgICAgICAgICAgICAgICBvcmdzPXthZmZlY3RlZE9yZ2FuaXphdGlvbnN9XG4gICAgICAgICAgICAgICAgbG9jcz17YWZmZWN0ZWRMb2NhdGlvbnN9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxBY3Rpb25MaW5rcyBhbGxvd2VkQWN0aW9ucz17YWxsb3dlZEFjdGlvbnN9IC8+XG4gICAgICAgICAgICA8L1Jvdz5cblxuICAgICAgICAgICAgPFJvdz5cbiAgICAgICAgICAgICAgPFNob3dJbmxpbmVSZXF1ZXN0VXVpZFxuICAgICAgICAgICAgICAgIGZldGNoQW5kUHVzaD17ZmV0Y2hBbmRQdXNofVxuICAgICAgICAgICAgICAgIHJlcXVlc3RVdWlkPXtyZXF1ZXN0VXVpZH1cbiAgICAgICAgICAgICAgICBpZD17aWR9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1Jvdz5cblxuICAgICAgICAgICAgPEV4cGFuc2l2ZVZpZXdcbiAgICAgICAgICAgICAgey4uLntcbiAgICAgICAgICAgICAgICBhY3Rpb25EaXNwbGF5TmFtZSxcbiAgICAgICAgICAgICAgICBkZXRhaWxzLFxuICAgICAgICAgICAgICAgIGNvbW1lbnQsXG4gICAgICAgICAgICAgICAgYXVkaXRUaXRsZSxcbiAgICAgICAgICAgICAgICBhdWRpdGVkQ2hhbmdlcyxcbiAgICAgICAgICAgICAgICBhdWRpdGVkQ2hhbmdlc1dpdGhJZFRvTGFiZWwsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTGlzdFZpZXcuSXRlbT5cbiAgICAgICAgKVxuICAgICAgKX1cbiAgICA8L0xpc3RWaWV3PlxuICApO1xufTtcbkF1ZGl0c0xpc3QucHJvcFR5cGVzID0ge1xuICBkYXRhOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGF1ZGl0czogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIGZldGNoQW5kUHVzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF1ZGl0c0xpc3Q7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdWRpdHNMaXN0L2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgRWxsaXBzaXNXaXRoVG9vbHRpcCBmcm9tICdyZWFjdC1lbGxpcHNpcy13aXRoLXRvb2x0aXAnO1xuXG5jb25zdCBTZWFyY2hMaW5rID0gKHsgdXJsLCB0aXRsZSwgaWQsIHRleHRWYWx1ZSB9KSA9PiB7XG4gIGNvbnN0IGxpbmtQcm9wcyA9IHtcbiAgICBocmVmOiB1cmwsXG4gICAgdGl0bGUsXG4gICAgaWQ6IGByZXNvdXJjZS1saW5rLSR7aWR9YCxcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxFbGxpcHNpc1dpdGhUb29sdGlwPlxuICAgICAgPGEgey4uLmxpbmtQcm9wc30+e3RleHRWYWx1ZX08L2E+XG4gICAgPC9FbGxpcHNpc1dpdGhUb29sdGlwPlxuICApO1xufTtcblxuU2VhcmNoTGluay5wcm9wVHlwZXMgPSB7XG4gIHVybDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpZDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgdGV4dFZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuU2VhcmNoTGluay5kZWZhdWx0UHJvcHMgPSB7XG4gIHRpdGxlOiB1bmRlZmluZWQsXG4gIHRleHRWYWx1ZTogJycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2hMaW5rO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQXVkaXRzTGlzdC9TZWFyY2hMaW5rLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBSb3csIENvbCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IEVsbGlwc2lzV2l0aFRvb2x0aXAgZnJvbSAncmVhY3QtZWxsaXBzaXMtd2l0aC10b29sdGlwJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgU2hvd0lubGluZVJlcXVlc3RVdWlkID0gKHsgZmV0Y2hBbmRQdXNoLCByZXF1ZXN0VXVpZCwgaWQgfSkgPT4gKFxuICA8Q29sIHNtPXsxMH0gY2xhc3NOYW1lPVwicmVxdWVzdC11dWlkLWNvbHVtblwiPlxuICAgIDxSb3c+XG4gICAgICA8Q29sIG1kPXsyfT5cbiAgICAgICAgPHNwYW4+e19fKCdSZXF1ZXN0IFVVSUQnKX08L3NwYW4+XG4gICAgICA8L0NvbD5cbiAgICAgIDxDb2wgbWQ9ezEwfSBjbGFzc05hbWU9XCJ2YWx1ZVwiPlxuICAgICAgICA8RWxsaXBzaXNXaXRoVG9vbHRpcD5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgZmV0Y2hBbmRQdXNoKHsgc2VhcmNoUXVlcnk6IGByZXF1ZXN0X3V1aWQgPSAke3JlcXVlc3RVdWlkfWAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRpdGxlPXtfXyhcbiAgICAgICAgICAgICAgJ0hUVFAgcmVxdWVzdCBVVUlELCBjbGlja2luZyB3aWxsIGZpbHRlciBhdWRpdHMgZm9yIHRoaXMgcmVxdWVzdC4gSXQgY2FuIGFsc28gYmUgdXNlZCBmb3Igc2VhcmNoaW5nIGluIGFwcGxpY2F0aW9uIGxvZ3MuJ1xuICAgICAgICAgICAgKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVxdWVzdFV1aWR9XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L0VsbGlwc2lzV2l0aFRvb2x0aXA+XG4gICAgICA8L0NvbD5cbiAgICA8L1Jvdz5cbiAgPC9Db2w+XG4pO1xuXG5TaG93SW5saW5lUmVxdWVzdFV1aWQucHJvcFR5cGVzID0ge1xuICBmZXRjaEFuZFB1c2g6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHJlcXVlc3RVdWlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGlkOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTaG93SW5saW5lUmVxdWVzdFV1aWQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdWRpdHNMaXN0L1Nob3dJbmxpbmVSZXF1ZXN0VXVpZC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQ29sIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgU2hvd1RheG9ub215SW5saW5lIGZyb20gJy4vU2hvd1RheG9ub215SW5saW5lJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgU2hvd09yZ3NMb2NzID0gKHsgb3JncywgbG9jcyB9KSA9PiAoXG4gIDxDb2wgc209ezEwfSBjbGFzc05hbWU9XCJ0YXhvbm9teS1zZWN0aW9uXCI+XG4gICAgPFNob3dUYXhvbm9teUlubGluZVxuICAgICAgZGlzcGxheUxhYmVsPXtfXygnQWZmZWN0ZWQgT3JnYW5pemF0aW9ucycpfVxuICAgICAgaXRlbXM9e29yZ3N9XG4gICAgLz5cbiAgICA8U2hvd1RheG9ub215SW5saW5lIGRpc3BsYXlMYWJlbD17X18oJ0FmZmVjdGVkIExvY2F0aW9ucycpfSBpdGVtcz17bG9jc30gLz5cbiAgPC9Db2w+XG4pO1xuXG5TaG93T3Jnc0xvY3MucHJvcFR5cGVzID0ge1xuICBvcmdzOiBQcm9wVHlwZXMuYXJyYXksXG4gIGxvY3M6IFByb3BUeXBlcy5hcnJheSxcbn07XG5cblNob3dPcmdzTG9jcy5kZWZhdWx0UHJvcHMgPSB7XG4gIG9yZ3M6IFtdLFxuICBsb2NzOiBbXSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNob3dPcmdzTG9jcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1ZGl0c0xpc3QvU2hvd09yZ3NMb2NzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBSb3csIENvbCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuXG5jb25zdCBTaG93VGF4b25vbXlJbmxpbmUgPSAoeyBkaXNwbGF5TGFiZWwsIGl0ZW1zIH0pID0+IHtcbiAgY29uc3QgbGlzdEl0ZW1zID0gaXRlbXMubWFwKFxuICAgICh7IG5hbWUsIHVybCwgZGlzYWJsZWQsIGNzc19jbGFzczogYWRkQ1NTIH0sIGluZGV4KSA9PiAoXG4gICAgICA8YVxuICAgICAgICBocmVmPXt1cmx9XG4gICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgIGNsYXNzTmFtZT17YGFwcGx5LWNvbW1hICR7YWRkQ1NTIHx8ICcnfWB9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgID5cbiAgICAgICAge25hbWV9XG4gICAgICA8L2E+XG4gICAgKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFJvdz5cbiAgICAgIDxDb2wgbWQ9ezJ9PlxuICAgICAgICA8c3Bhbj57ZGlzcGxheUxhYmVsfTwvc3Bhbj5cbiAgICAgIDwvQ29sPlxuICAgICAgPENvbCBtZD17MTB9PlxuICAgICAgICA8c3Ryb25nPntpdGVtcyAmJiBsaXN0SXRlbXN9PC9zdHJvbmc+XG4gICAgICA8L0NvbD5cbiAgICA8L1Jvdz5cbiAgKTtcbn07XG5cblNob3dUYXhvbm9teUlubGluZS5wcm9wVHlwZXMgPSB7XG4gIGRpc3BsYXlMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXRlbXM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgY3NzX2NsYXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIH0pXG4gICksXG59O1xuXG5TaG93VGF4b25vbXlJbmxpbmUuZGVmYXVsdFByb3BzID0ge1xuICBkaXNwbGF5TGFiZWw6ICcnLFxuICBpdGVtczogW10sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTaG93VGF4b25vbXlJbmxpbmU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdWRpdHNMaXN0L1Nob3dUYXhvbm9teUlubGluZS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb2wgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmNvbnN0IEFjdGlvbkxpbmtzID0gKHsgYWxsb3dlZEFjdGlvbnMgfSkgPT4gKFxuICA8Q29sIHNtPXsyfSBjbGFzc05hbWU9XCJhY3Rpb25zLWJ0bnNcIj5cbiAgICB7YWxsb3dlZEFjdGlvbnMgJiZcbiAgICAgIGFsbG93ZWRBY3Rpb25zLm1hcChcbiAgICAgICAgKHsgdXJsLCBjc3NfY2xhc3M6IENzc0NsYXNzU3RyaW5nLCBkaXNhYmxlZCwgbmFtZSwgdGl0bGUgfSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8YVxuICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgIHsuLi57IGNsYXNzTmFtZTogQ3NzQ2xhc3NTdHJpbmcsIGhyZWY6IHVybCwgZGlzYWJsZWQgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bmFtZSB8fCB0aXRsZX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIClcbiAgICAgICl9XG4gIDwvQ29sPlxuKTtcblxuQWN0aW9uTGlua3MucHJvcFR5cGVzID0ge1xuICBhbGxvd2VkQWN0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGNzc19jbGFzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB9KVxuICApLFxufTtcblxuQWN0aW9uTGlua3MuZGVmYXVsdFByb3BzID0ge1xuICBhbGxvd2VkQWN0aW9uczogW10sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBY3Rpb25MaW5rcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1ZGl0c0xpc3QvQWN0aW9uTGlua3MuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBEaWZmQ29udGFpbmVyIGZyb20gJy4uL0RpZmZWaWV3L0RpZmZDb250YWluZXInO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5jb25zdCByZW5kZXJMaXN0SXRlbXMgPSBpdGVtcyA9PlxuICBpdGVtcyAmJlxuICBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PlxuICAgIGl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnICYmIGl0ZW0ubGVuZ3RoID4gMCA/IChcbiAgICAgIDx0ciBrZXk9e2luZGV4fT5cbiAgICAgICAgPHRkPntpdGVtfTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICkgOiBudWxsXG4gICk7XG5cbmNvbnN0IHJlbmRlckNvbHMgPSBjaGFuZ2VBcnIgPT5cbiAgY2hhbmdlQXJyICYmXG4gIGNoYW5nZUFyci5tYXAoKHsgY3NzX2NsYXNzOiBDc3NDbGFzc1N0ciwgaWRfdG9fbGFiZWw6IGlkVG9MYWJlbCB9LCBpbmRleCkgPT4gKFxuICAgIDx0ZFxuICAgICAga2V5PXtpbmRleH1cbiAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgIGNoYW5nZUFyci5sZW5ndGggPiAxXG4gICAgICAgICAgPyBgY29sLTYgY29sLW1kLTQgJHtDc3NDbGFzc1N0cn1gXG4gICAgICAgICAgOiBgY29sLTEyIGNvbC1tZC04ICR7Q3NzQ2xhc3NTdHJ9YFxuICAgICAgfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtDc3NDbGFzc1N0cn0+XG4gICAgICAgIDxwPntpZFRvTGFiZWx9PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgKSk7XG5cbmNvbnN0IHJlbmRlclRhYmxlUm93cyA9IGNoYW5nZUVudHJpZXMgPT5cbiAgY2hhbmdlRW50cmllcyAmJlxuICBjaGFuZ2VFbnRyaWVzLm1hcCgoeyBuYW1lLCBjaGFuZ2UgfSwgaW5kZXgpID0+IChcbiAgICA8dHIga2V5PXtpbmRleH0+XG4gICAgICA8dGQga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiY29sLTYgY29sLW1kLTRcIj5cbiAgICAgICAgPGRpdj57bmFtZX08L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgICB7cmVuZGVyQ29scyhjaGFuZ2UpfVxuICAgIDwvdHI+XG4gICkpO1xuXG5jb25zdCBzaG93QXVkaXRDaGFuZ2VzID0gKFxuICBhY3Rpb25EaXNwbGF5TmFtZSxcbiAgYXVkaXRlZENoYW5nZXNXaXRoSWRUb0xhYmVsLFxuICBkZXRhaWxzXG4pID0+IHtcbiAgY29uc3QgdGFibGVDbGFzc2VzID0gJ3RhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyJztcblxuICBpZiAoWydhZGQnLCAncmVtb3ZlJ10uaW5jbHVkZXMoYWN0aW9uRGlzcGxheU5hbWUpICYmIGRldGFpbHMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8dGFibGVcbiAgICAgICAgY2xhc3NOYW1lPXtgJHt0YWJsZUNsYXNzZXN9IGRldGFpbHMtcm93IHRhYmxlLWlubGluZS1jaGFuZ2VzICR7XG4gICAgICAgICAgYWN0aW9uRGlzcGxheU5hbWUgPT09ICdhZGQnID8gJ3Nob3ctbmV3JyA6ICdzaG93LW9sZCdcbiAgICAgICAgfWB9XG4gICAgICA+XG4gICAgICAgIDx0Ym9keT57cmVuZGVyTGlzdEl0ZW1zKGRldGFpbHMpfTwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgICk7XG4gIH1cblxuICBpZiAoYXVkaXRlZENoYW5nZXNXaXRoSWRUb0xhYmVsLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHRhYmxlIGNsYXNzTmFtZT17YHRhYmxlLWNoYW5nZXMgJHt0YWJsZUNsYXNzZXN9YH0+XG4gICAgICAgIDx0Ym9keT57cmVuZGVyVGFibGVSb3dzKGF1ZGl0ZWRDaGFuZ2VzV2l0aElkVG9MYWJlbCl9PC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmNsYXNzIEV4cGFuc2l2ZVZpZXcgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzaG93VGVtcGxhdGVEaWZmSWZBbnkoKSB7XG4gICAgY29uc3QgeyB0ZW1wbGF0ZSB9ID0gdGhpcy5wcm9wcy5hdWRpdGVkQ2hhbmdlcztcbiAgICBpZiAodGVtcGxhdGUgJiYgdGVtcGxhdGVbMF0gIT09IHRlbXBsYXRlWzFdKSB7XG4gICAgICByZXR1cm4gPERpZmZDb250YWluZXIgb2xkVGV4dD17dGVtcGxhdGVbMF19IG5ld1RleHQ9e3RlbXBsYXRlWzFdfSAvPjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY29tbWVudCxcbiAgICAgIGFjdGlvbkRpc3BsYXlOYW1lLFxuICAgICAgYXVkaXRlZENoYW5nZXNXaXRoSWRUb0xhYmVsLFxuICAgICAgZGV0YWlscyxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQtY29udGFpbmVyXCI+XG4gICAgICAgIHt0aGlzLnNob3dUZW1wbGF0ZURpZmZJZkFueSgpfVxuICAgICAgICB7c2hvd0F1ZGl0Q2hhbmdlcyhcbiAgICAgICAgICBhY3Rpb25EaXNwbGF5TmFtZSxcbiAgICAgICAgICBhdWRpdGVkQ2hhbmdlc1dpdGhJZFRvTGFiZWwsXG4gICAgICAgICAgZGV0YWlsc1xuICAgICAgICApfVxuICAgICAgICB7Y29tbWVudCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWxzLXJvdyBjb21tZW50LXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImNvbW1lbnQtdGl0bGVcIj5cbiAgICAgICAgICAgICAgPHN0cm9uZz57X18oJ0NvbW1lbnRzJyl9PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJjb21tZW50LWRlc2NcIj57Y29tbWVudH08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbkV4cGFuc2l2ZVZpZXcucHJvcFR5cGVzID0ge1xuICBhY3Rpb25EaXNwbGF5TmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBhdWRpdGVkQ2hhbmdlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjb21tZW50OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhdWRpdGVkQ2hhbmdlc1dpdGhJZFRvTGFiZWw6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBjaGFuZ2U6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgICAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICAgIGNzc19jbGFzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgICBpZF90b19sYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIH0pXG4gICksXG4gIGRldGFpbHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxufTtcblxuRXhwYW5zaXZlVmlldy5kZWZhdWx0UHJvcHMgPSB7XG4gIGNvbW1lbnQ6IHVuZGVmaW5lZCxcbiAgYXVkaXRlZENoYW5nZXNXaXRoSWRUb0xhYmVsOiBbXSxcbiAgZGV0YWlsczogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXhwYW5zaXZlVmlldztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1ZGl0c0xpc3QvRXhwYW5zaXZlVmlldy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgYmluZE1ldGhvZHMgfSBmcm9tICcuLi8uLi9jb21tb24vaGVscGVycyc7XG5cbmltcG9ydCBEaWZmVmlldyBmcm9tICcuL0RpZmZWaWV3JztcbmltcG9ydCBEaWZmUmFkaW9CdXR0b25zIGZyb20gJy4vRGlmZlJhZGlvQnV0dG9ucyc7XG5pbXBvcnQgJy4vZGlmZnZpZXcuc2Nzcyc7XG5cbmNsYXNzIERpZmZDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICBiaW5kTWV0aG9kcyh0aGlzLCBbJ2NoYW5nZVN0YXRlJ10pO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICB2aWV3VHlwZTogJ3NwbGl0JyxcbiAgICB9O1xuICB9XG5cbiAgY2hhbmdlU3RhdGUodmlld1R5cGUpIHtcbiAgICB0aGlzLnNldFN0YXRlKHsgdmlld1R5cGUgfSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBwYXRjaCwgb2xkVGV4dCwgbmV3VGV4dCwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgdmlld1R5cGUgfSA9IHRoaXMuc3RhdGU7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgaWQ9XCJkaWZmLWNvbnRhaW5lclwiIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgPERpZmZSYWRpb0J1dHRvbnMgY2hhbmdlU3RhdGU9e3RoaXMuY2hhbmdlU3RhdGV9IHN0YXRlVmlldz17dmlld1R5cGV9IC8+XG4gICAgICAgIDxkaXYgaWQ9XCJkaWZmLXRhYmxlXCI+XG4gICAgICAgICAgPERpZmZWaWV3XG4gICAgICAgICAgICBwYXRjaD17cGF0Y2h9XG4gICAgICAgICAgICBvbGRUZXh0PXtvbGRUZXh0fVxuICAgICAgICAgICAgbmV3VGV4dD17bmV3VGV4dH1cbiAgICAgICAgICAgIHZpZXdUeXBlPXt2aWV3VHlwZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuRGlmZkNvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gIG9sZFRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG5ld1RleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHBhdGNoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5EaWZmQ29udGFpbmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgb2xkVGV4dDogJycsXG4gIG5ld1RleHQ6ICcnLFxuICBwYXRjaDogJycsXG4gIGNsYXNzTmFtZTogJycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEaWZmQ29udGFpbmVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRGlmZlZpZXcvRGlmZkNvbnRhaW5lci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEVsbGlwc2lzV2l0aFRvb2x0aXAgZnJvbSAncmVhY3QtZWxsaXBzaXMtd2l0aC10b29sdGlwJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgVXNlckRldGFpbHMgPSAoeyBpc0F1ZGl0TG9naW4sIHVzZXJJbmZvLCByZW1vdGVBZGRyZXNzIH0pID0+IHtcbiAgY29uc3Qge1xuICAgIHNlYXJjaF9wYXRoOiBzZWFyY2hQYXRoLFxuICAgIGRpc3BsYXlfbmFtZTogVXNlckRpc3BsYXlOYW1lLFxuICAgIGF1ZGl0X3BhdGg6IGF1ZGl0UGF0aCxcbiAgfSA9IHVzZXJJbmZvO1xuXG4gIGNvbnN0IGxpbmtQcm9wcyA9IHtcbiAgICBocmVmOiBzZWFyY2hQYXRoLFxuICAgIHRpdGxlOiBfXygnRmlsdGVyIGF1ZGl0cyBmb3IgdGhpcyB1c2VyIG9ubHknKSxcbiAgICBjbGFzc05hbWU6ICd1c2VyLWluZm8nLFxuICB9O1xuXG4gIGlmIChpc0F1ZGl0TG9naW4pIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidXNlci1ncmlkXCI+XG4gICAgICAgIDxFbGxpcHNpc1dpdGhUb29sdGlwPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgPGEgey4uLmxpbmtQcm9wc30+e1VzZXJEaXNwbGF5TmFtZX08L2E+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L0VsbGlwc2lzV2l0aFRvb2x0aXA+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxhIGhyZWY9e2F1ZGl0UGF0aH0+e19fKCdMb2dnZWQtaW4nKX08L2E+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8c3BhbiBjbGFzc05hbWU9XCJ1c2VyLWdyaWRcIj5cbiAgICAgIDxFbGxpcHNpc1dpdGhUb29sdGlwPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICA8YSB7Li4ubGlua1Byb3BzfT57VXNlckRpc3BsYXlOYW1lfTwvYT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9FbGxpcHNpc1dpdGhUb29sdGlwPlxuICAgICAge3JlbW90ZUFkZHJlc3MgPyAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdyYXktdGV4dFwiPih7cmVtb3RlQWRkcmVzc30pPC9zcGFuPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9zcGFuPlxuICApO1xufTtcblxuVXNlckRldGFpbHMucHJvcFR5cGVzID0ge1xuICB1c2VySW5mbzogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBzZWFyY2hfcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXNwbGF5X25hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgYXVkaXRfcGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgfSkuaXNSZXF1aXJlZCxcbiAgaXNBdWRpdExvZ2luOiBQcm9wVHlwZXMuYm9vbCxcbiAgcmVtb3RlQWRkcmVzczogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cblVzZXJEZXRhaWxzLmRlZmF1bHRQcm9wcyA9IHtcbiAgaXNBdWRpdExvZ2luOiBmYWxzZSxcbiAgcmVtb3RlQWRkcmVzczogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgVXNlckRldGFpbHM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdWRpdHNMaXN0L1VzZXJEZXRhaWxzLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0F1ZGl0c0xpc3QvYXVkaXQuc2Nzc1xuLy8gbW9kdWxlIGlkID0gMzY2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNrZWxldG9uIGZyb20gJ3JlYWN0LWxvYWRpbmctc2tlbGV0b24nO1xuaW1wb3J0ICcuL2F1ZGl0c2xvYWRpbmcuc2Nzcyc7XG5cbmNvbnN0IEF1ZGl0c0xvYWRpbmdQYWdlID0gKCkgPT4gKFxuICA8ZGl2IGlkPVwiYXVkaXRzLWVtcHR5LXRhYmxlXCI+XG4gICAgPFNrZWxldG9uIGNvdW50PXs1fSAvPlxuICA8L2Rpdj5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IEF1ZGl0c0xvYWRpbmdQYWdlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9BdWRpdHMvQXVkaXRzUGFnZS9jb21wb25lbnRzL0F1ZGl0c0xvYWRpbmdQYWdlLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvQXVkaXRzL0F1ZGl0c1BhZ2UvY29tcG9uZW50cy9hdWRpdHNsb2FkaW5nLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDM2OFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IHsgZ2V0VVJJcGVyUGFnZSB9IGZyb20gJy4uLy4uL2NvbW1vbi91cmxIZWxwZXJzJztcbmltcG9ydCB7IHVzZUZvcmVtYW5TZXR0aW5ncyB9IGZyb20gJy4uLy4uL1Jvb3QvQ29udGV4dC9Gb3JlbWFuQ29udGV4dCc7XG5cbmV4cG9ydCBjb25zdCB1c2VQYWdpbmF0aW9uT3B0aW9ucyA9ICgpID0+IHtcbiAgY29uc3QgcGVyUGFnZU9wdGlvbnMgPSBuZXcgU2V0KFs1LCAxMCwgMTUsIDI1LCA1MF0pO1xuICBjb25zdCB7IHBlclBhZ2UgfSA9IHVzZUZvcmVtYW5TZXR0aW5ncygpO1xuICBjb25zdCBVUklQZXJQYWdlID0gZ2V0VVJJcGVyUGFnZSgpO1xuXG4gIHBlclBhZ2VPcHRpb25zLmFkZChwZXJQYWdlKTtcbiAgaWYgKFVSSVBlclBhZ2UpIHBlclBhZ2VPcHRpb25zLmFkZChVUklQZXJQYWdlKTtcbiAgcmV0dXJuIFsuLi5wZXJQYWdlT3B0aW9uc10uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1BhZ2luYXRpb24vUGFnaW5hdGlvbkhvb2tzLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1BhZ2luYXRpb24vcGFnaW5hdGlvbi5zY3NzXG4vLyBtb2R1bGUgaWQgPSAzNzBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcblxuY29uc3QgaW5pdGlhbFN0YXRlID0gSW1tdXRhYmxlKHtcbiAgcGFnZTogMSxcbiAgc2VhcmNoUXVlcnk6ICcnLFxuICBpdGVtQ291bnQ6IDAsXG59KTtcblxuY29uc3Qgd2l0aFF1ZXJ5UmVkdWNlciA9IGNvbnRyb2xsZXIgPT4gKFxuICBzdGF0ZSA9IGluaXRpYWxTdGF0ZSxcbiAgeyB0eXBlLCBwYXlsb2FkIH1cbikgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIGAke2NvbnRyb2xsZXJ9X1VQREFURV9RVUVSWWA6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2UocGF5bG9hZCk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoUXVlcnlSZWR1Y2VyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9jb21tb24vcmVkdWNlckhPQy93aXRoUXVlcnlSZWR1Y2VyLmpzIiwiaW1wb3J0IEltbXV0YWJsZSBmcm9tICdzZWFtbGVzcy1pbW11dGFibGUnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbFN0YXRlID0gSW1tdXRhYmxlKHtcbiAgaXNMb2FkaW5nOiB0cnVlLFxuICBoYXNFcnJvcjogZmFsc2UsXG4gIGhhc0RhdGE6IGZhbHNlLFxuICBtZXNzYWdlOiB7IHR5cGU6ICdlbXB0eScsIHRleHQ6ICcnIH0sXG59KTtcblxuY29uc3Qgd2l0aERhdGFSZWR1Y2VyID0gKGNvbnRyb2xsZXIsIGFkZGl0aW9uYWxTdGF0ZSA9IEltbXV0YWJsZSh7fSkpID0+IChcbiAgc3RhdGUgPSBpbml0aWFsU3RhdGUubWVyZ2UoYWRkaXRpb25hbFN0YXRlKSxcbiAgeyB0eXBlLCBwYXlsb2FkIH1cbikgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIGAke2NvbnRyb2xsZXJ9X0RBVEFfUkVTT0xWRURgOlxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHsgLi4ucGF5bG9hZCwgaXNMb2FkaW5nOiBmYWxzZSB9KTtcblxuICAgIGNhc2UgYCR7Y29udHJvbGxlcn1fREFUQV9GQUlMRURgOlxuICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHsgLi4ucGF5bG9hZCwgaXNMb2FkaW5nOiBmYWxzZSwgaGFzRXJyb3I6IHRydWUgfSk7XG5cbiAgICBjYXNlIGAke2NvbnRyb2xsZXJ9X0NMRUFSX0VSUk9SYDpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ2hhc0Vycm9yJywgZmFsc2UpO1xuXG4gICAgY2FzZSBgJHtjb250cm9sbGVyfV9TSE9XX0xPQURJTkdgOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnaXNMb2FkaW5nJywgdHJ1ZSk7XG5cbiAgICBjYXNlIGAke2NvbnRyb2xsZXJ9X0hJREVfTE9BRElOR2A6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdpc0xvYWRpbmcnLCBmYWxzZSk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoRGF0YVJlZHVjZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL2NvbW1vbi9yZWR1Y2VySE9DL3dpdGhEYXRhUmVkdWNlci5qcyIsImltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBCT09LTUFSS1NfTU9EQUwgfSBmcm9tICcuL0Jvb2ttYXJrc0NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBib29rbWFya3NBY3Rpb25zIGZyb20gJy4vQm9va21hcmtzQWN0aW9ucyc7XG5pbXBvcnQgeyBiaW5kRm9yZW1hbk1vZGFsQWN0aW9uc1RvSWQgfSBmcm9tICcuLi9Gb3JlbWFuTW9kYWwvRm9yZW1hbk1vZGFsQWN0aW9ucyc7XG5pbXBvcnQgeyBzZWxlY3RJc01vZGFsT3BlbiB9IGZyb20gJy4uL0ZvcmVtYW5Nb2RhbC9Gb3JlbWFuTW9kYWxTZWxlY3RvcnMnO1xuaW1wb3J0IEJvb2ttYXJrcyBmcm9tICcuL0Jvb2ttYXJrcyc7XG5pbXBvcnQgcmVkdWNlciBmcm9tICcuL0Jvb2ttYXJrc1JlZHVjZXInO1xuaW1wb3J0IHtcbiAgc2VsZWN0Qm9va21hcmtzU3RhdHVzLFxuICBzZWxlY3RCb29rbWFya3NSZXN1bHRzLFxuICBzZWxlY3RCb29rbWFya3NFcnJvcnMsXG59IGZyb20gJy4vQm9va21hcmtzU2VsZWN0b3JzJztcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlLCB7IGNvbnRyb2xsZXIgfSkgPT4gKHtcbiAgZXJyb3JzOiBzZWxlY3RCb29rbWFya3NFcnJvcnMoc3RhdGUsIGNvbnRyb2xsZXIpLFxuICBib29rbWFya3M6IHNlbGVjdEJvb2ttYXJrc1Jlc3VsdHMoc3RhdGUsIGNvbnRyb2xsZXIpLFxuICBzdGF0dXM6IHNlbGVjdEJvb2ttYXJrc1N0YXR1cyhzdGF0ZSwgY29udHJvbGxlciksXG4gIGlzTW9kYWxPcGVuOiBzZWxlY3RJc01vZGFsT3BlbihzdGF0ZSwgQk9PS01BUktTX01PREFMKSxcbn0pO1xuXG5jb25zdCBib3VuZE1vZGFsQWN0aW9ucyA9IGJpbmRGb3JlbWFuTW9kYWxBY3Rpb25zVG9JZCh7IGlkOiBCT09LTUFSS1NfTU9EQUwgfSk7XG5cbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IHtcbiAgLi4uYm9va21hcmtzQWN0aW9ucyxcbiAgLi4uYm91bmRNb2RhbEFjdGlvbnMsIC8vIGdpdmVzIHVzIHNldE1vZGFsT3BlbiBhbmQgc2V0TW9kYWxDbG9zZWRcbn07XG5cbmV4cG9ydCBjb25zdCByZWR1Y2VycyA9IHsgYm9va21hcmtzOiByZWR1Y2VyIH07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBtYXBEaXNwYXRjaFRvUHJvcHMpKEJvb2ttYXJrcyk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Cb29rbWFya3MvaW5kZXguanMiLCJpbXBvcnQgVVJJIGZyb20gJ3VyaWpzJztcbmltcG9ydCB7IGdldCB9IGZyb20gJy4uLy4uL3JlZHV4L0FQSSc7XG5pbXBvcnQgeyBCT09LTUFSS1MgfSBmcm9tICcuL0Jvb2ttYXJrc0NvbnN0YW50cyc7XG5cbmNvbnN0IF9nZXRCb29rbWFya3MgPSAodXJsLCBjb250cm9sbGVyKSA9PlxuICBnZXQoe1xuICAgIGtleTogQk9PS01BUktTLFxuICAgIHVybCxcbiAgICBwYXlsb2FkOiB7IGNvbnRyb2xsZXIgfSxcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBnZXRCb29rbWFya3MgPSAodXJsLCBjb250cm9sbGVyKSA9PiB7XG4gIGNvbnN0IHVyaSA9IG5ldyBVUkkodXJsKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlXG4gIHVyaS5zZXRTZWFyY2goeyBzZWFyY2g6IGBjb250cm9sbGVyPSR7Y29udHJvbGxlcn1gLCBwZXJfcGFnZTogJ2FsbCcgfSk7XG5cbiAgcmV0dXJuIF9nZXRCb29rbWFya3ModXJpLnRvU3RyaW5nKCksIGNvbnRyb2xsZXIpO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0Jvb2ttYXJrcy9Cb29rbWFya3NBY3Rpb25zLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgRWxsaXBpc1dpdGhUb29sdGlwIGZyb20gJ3JlYWN0LWVsbGlwc2lzLXdpdGgtdG9vbHRpcCc7XG5pbXBvcnQgeyBEcm9wZG93biwgTWVudUl0ZW0sIFNwaW5uZXIsIEljb24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IFBsdXNJY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IFNlYXJjaE1vZGFsIGZyb20gJy4vY29tcG9uZW50cy9TZWFyY2hNb2RhbCc7XG5pbXBvcnQgQm9va21hcmsgZnJvbSAnLi9jb21wb25lbnRzL0Jvb2ttYXJrJztcbmltcG9ydCBEb2N1bWVudGF0aW9uVXJsIGZyb20gJy4uL2NvbW1vbi9Eb2N1bWVudGF0aW9uTGluayc7XG5pbXBvcnQgeyBTVEFUVVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7IHNwcmludGYsIHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5pbXBvcnQgaGlzdG9yeSBmcm9tICcuLi8uLi9oaXN0b3J5JztcbmltcG9ydCB7IHN0cmluZ2lmeVBhcmFtcyB9IGZyb20gJy4uLy4uL2NvbW1vbi91cmxIZWxwZXJzJztcblxuY29uc3QgQm9va21hcmtzID0gcHJvcHMgPT4ge1xuICBjb25zdCBsb2FkQm9va21hcmtzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgYm9va21hcmtzLCBzdGF0dXMsIHVybCwgY29udHJvbGxlciwgZ2V0Qm9va21hcmtzIH0gPSBwcm9wcztcblxuICAgIGlmIChib29rbWFya3MubGVuZ3RoID09PSAwICYmIHN0YXR1cyAhPT0gU1RBVFVTLlBFTkRJTkcpIHtcbiAgICAgIGdldEJvb2ttYXJrcyh1cmwsIGNvbnRyb2xsZXIpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBtYW5hZ2VCb29rbWFya3MgPSBjb250cm9sbGVyID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IHN0cmluZ2lmeVBhcmFtcyh7IHNlYXJjaFF1ZXJ5OiBgY29udHJvbGxlcj0ke2NvbnRyb2xsZXJ9YCB9KTtcbiAgICBoaXN0b3J5LnB1c2goeyBwYXRobmFtZTogJy9ib29rbWFya3MnLCBzZWFyY2g6IHF1ZXJ5IH0pO1xuICB9O1xuXG4gIGNvbnN0IHtcbiAgICBjb250cm9sbGVyLFxuICAgIHVybCxcbiAgICBjYW5DcmVhdGUsXG4gICAgYm9va21hcmtzLFxuICAgIGVycm9ycyxcbiAgICBzdGF0dXMsXG4gICAgZG9jdW1lbnRhdGlvblVybCxcbiAgICBvbkJvb2ttYXJrQ2xpY2ssXG4gICAgc2V0TW9kYWxPcGVuLFxuICAgIHNldE1vZGFsQ2xvc2VkLFxuICB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8U2VhcmNoTW9kYWxcbiAgICAgICAgY29udHJvbGxlcj17Y29udHJvbGxlcn1cbiAgICAgICAgdXJsPXt1cmx9XG4gICAgICAgIHNldE1vZGFsQ2xvc2VkPXtzZXRNb2RhbENsb3NlZH1cbiAgICAgICAgYm9va21hcmtzPXtib29rbWFya3N9XG4gICAgICAvPlxuICAgICAgPERyb3Bkb3duIHB1bGxSaWdodCBpZD17Y29udHJvbGxlcn0gb25DbGljaz17bG9hZEJvb2ttYXJrc30+XG4gICAgICAgIDxEcm9wZG93bi5Ub2dnbGUgdGl0bGU9e19fKCdCb29rbWFya3MnKX0+XG4gICAgICAgICAgPEljb24gdHlwZT1cImZhXCIgbmFtZT1cImJvb2ttYXJrXCIgLz5cbiAgICAgICAgPC9Ecm9wZG93bi5Ub2dnbGU+XG4gICAgICAgIDxEcm9wZG93bi5NZW51IGNsYXNzTmFtZT1cInNjcm9sbGFibGUtZHJvcGRvd25cIj5cbiAgICAgICAgICB7Y2FuQ3JlYXRlICYmIChcbiAgICAgICAgICAgIDxNZW51SXRlbSBrZXk9XCJuZXdCb29rbWFya1wiIGlkPVwibmV3Qm9va21hcmtcIiBvbkNsaWNrPXtzZXRNb2RhbE9wZW59PlxuICAgICAgICAgICAgICA8UGx1c0ljb24gLz4ge19fKCdCb29rbWFyayB0aGlzIHNlYXJjaCcpfVxuICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxNZW51SXRlbSBkaXZpZGVyIC8+XG4gICAgICAgICAgPE1lbnVJdGVtIGhlYWRlcj57X18oJ1NhdmVkIEJvb2ttYXJrcycpfTwvTWVudUl0ZW0+XG4gICAgICAgICAge3N0YXR1cyA9PT0gU1RBVFVTLlBFTkRJTkcgJiYgKFxuICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cImxvYWRlci1yb290XCI+XG4gICAgICAgICAgICAgIDxTcGlubmVyIHNpemU9XCJ4c1wiIGxvYWRpbmcgLz5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c3RhdHVzID09PSBTVEFUVVMuUkVTT0xWRUQgJiZcbiAgICAgICAgICAgICgoYm9va21hcmtzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgYm9va21hcmtzLm1hcCgoeyBuYW1lLCBxdWVyeSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgPEJvb2ttYXJrXG4gICAgICAgICAgICAgICAgICBrZXk9e25hbWV9XG4gICAgICAgICAgICAgICAgICB0ZXh0PXtuYW1lfVxuICAgICAgICAgICAgICAgICAgcXVlcnk9e3F1ZXJ5fVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17b25Cb29rbWFya0NsaWNrfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpKSB8fCA8TWVudUl0ZW0gZGlzYWJsZWQ+IHtfXygnTm9uZSBmb3VuZCcpfTwvTWVudUl0ZW0+KX1cbiAgICAgICAgICB7c3RhdHVzID09PSBTVEFUVVMuRVJST1IgJiYgKFxuICAgICAgICAgICAgPE1lbnVJdGVtIGtleT1cImJvb2ttYXJrcy1lcnJvcnNcIj5cbiAgICAgICAgICAgICAgPEVsbGlwaXNXaXRoVG9vbHRpcD5cbiAgICAgICAgICAgICAgICB7c3ByaW50ZignRmFpbGVkIHRvIGxvYWQgYm9va21hcmtzOiAlcycsIGVycm9ycyl9XG4gICAgICAgICAgICAgIDwvRWxsaXBpc1dpdGhUb29sdGlwPlxuICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxNZW51SXRlbSBkaXZpZGVyIC8+XG4gICAgICAgICAge2NhbkNyZWF0ZSAmJiAoXG4gICAgICAgICAgICA8TWVudUl0ZW1cbiAgICAgICAgICAgICAga2V5PVwibWFuYWdlQm9va21hcmtzXCJcbiAgICAgICAgICAgICAgaWQ9XCJtYW5hZ2VCb29rbWFya3NcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBtYW5hZ2VCb29rbWFya3MoY29udHJvbGxlcil9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtfXygnTWFuYWdlIEJvb2ttYXJrcycpfVxuICAgICAgICAgICAgPC9NZW51SXRlbT5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxEb2N1bWVudGF0aW9uVXJsIGhyZWY9e2RvY3VtZW50YXRpb25Vcmx9IC8+XG4gICAgICAgIDwvRHJvcGRvd24uTWVudT5cbiAgICAgIDwvRHJvcGRvd24+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cbkJvb2ttYXJrcy5wcm9wVHlwZXMgPSB7XG4gIGNvbnRyb2xsZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgb25Cb29rbWFya0NsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1cmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2FuQ3JlYXRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgYm9va21hcmtzOiBQcm9wVHlwZXMuYXJyYXksXG4gIGVycm9yczogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkb2N1bWVudGF0aW9uVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBnZXRCb29rbWFya3M6IFByb3BUeXBlcy5mdW5jLFxuICBzZXRNb2RhbE9wZW46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHNldE1vZGFsQ2xvc2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuQm9va21hcmtzLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2FuQ3JlYXRlOiBmYWxzZSxcbiAgYm9va21hcmtzOiBbXSxcbiAgZXJyb3JzOiAnJyxcbiAgc3RhdHVzOiBudWxsLFxuICBkb2N1bWVudGF0aW9uVXJsOiAnJyxcbiAgZ2V0Qm9va21hcmtzOiBub29wLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va21hcmtzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQm9va21hcmtzL0Jvb2ttYXJrcy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBFbGxpcGlzV2l0aFRvb2x0aXAgZnJvbSAncmVhY3QtZWxsaXBzaXMtd2l0aC10b29sdGlwJztcblxuY29uc3QgQm9va21hcmsgPSAoeyB0ZXh0LCBxdWVyeSwgb25DbGljayB9KSA9PiAoXG4gIDxNZW51SXRlbSBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrKHF1ZXJ5KX0+XG4gICAgPEVsbGlwaXNXaXRoVG9vbHRpcD57dGV4dH08L0VsbGlwaXNXaXRoVG9vbHRpcD5cbiAgPC9NZW51SXRlbT5cbik7XG5cbkJvb2ttYXJrLnByb3BUeXBlcyA9IHtcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgdGV4dDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBxdWVyeTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQm9va21hcms7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Cb29rbWFya3MvY29tcG9uZW50cy9Cb29rbWFyay5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgTWVudUl0ZW0sIEljb24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IG5ld1dpbmRvd09uQ2xpY2sgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi9yZWFjdF9hcHAvY29tbW9uL0kxOG4nO1xuXG5jb25zdCBEb2N1bWVudGF0aW9uTGluayA9ICh7IGhyZWYsIGNoaWxkcmVuIH0pID0+IChcbiAgPE1lbnVJdGVtIGtleT1cImRvY3VtZW50YXRpb25VcmxcIiBvbkNsaWNrPXtuZXdXaW5kb3dPbkNsaWNrKGhyZWYpfT5cbiAgICA8SWNvbiB0eXBlPVwiZmFcIiBuYW1lPVwicXVlc3Rpb24tY2lyY2xlXCIgLz4ge2NoaWxkcmVufVxuICA8L01lbnVJdGVtPlxuKTtcblxuRG9jdW1lbnRhdGlvbkxpbmsucHJvcFR5cGVzID0ge1xuICBocmVmOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbn07XG5cbkRvY3VtZW50YXRpb25MaW5rLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IF9fKCdEb2N1bWVudGF0aW9uJyksXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEb2N1bWVudGF0aW9uTGluaztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9Eb2N1bWVudGF0aW9uTGluay9pbmRleC5qcyIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcbmltcG9ydCB7XG4gIEJPT0tNQVJLU19SRVFVRVNULFxuICBCT09LTUFSS1NfU1VDQ0VTUyxcbiAgQk9PS01BUktTX0ZBSUxVUkUsXG4gIEJPT0tNQVJLU19GT1JNX1NVQk1JVFRFRCxcbn0gZnJvbSAnLi9Cb29rbWFya3NDb25zdGFudHMnO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZSA9IEltbXV0YWJsZSh7fSk7XG5cbmNvbnN0IHNvcnRCeU5hbWUgPSAoYSwgYikgPT4ge1xuICBpZiAoYS5uYW1lIDwgYi5uYW1lKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIGlmIChhLm5hbWUgPiBiLm5hbWUpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICAvLyBuYW1lcyBtdXN0IGJlIGVxdWFsXG4gIHJldHVybiAwO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKHN0YXRlID0gaW5pdGlhbFN0YXRlLCB7IHR5cGUsIHBheWxvYWQsIHJlc3BvbnNlIH0pID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBCT09LTUFSS1NfUkVRVUVTVDpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQocGF5bG9hZC5jb250cm9sbGVyLCB7XG4gICAgICAgIHJlc3VsdHM6IFtdLFxuICAgICAgICBlcnJvcnM6IG51bGwsXG4gICAgICAgIHN0YXR1czogU1RBVFVTLlBFTkRJTkcsXG4gICAgICB9KTtcbiAgICBjYXNlIEJPT0tNQVJLU19TVUNDRVNTOlxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIC5zZXRJbihbcGF5bG9hZC5jb250cm9sbGVyLCAncmVzdWx0cyddLCByZXNwb25zZS5yZXN1bHRzKVxuICAgICAgICAuc2V0SW4oW3BheWxvYWQuY29udHJvbGxlciwgJ3N0YXR1cyddLCBTVEFUVVMuUkVTT0xWRUQpO1xuICAgIGNhc2UgQk9PS01BUktTX0ZPUk1fU1VCTUlUVEVEOlxuICAgICAgaWYgKHN0YXRlW3BheWxvYWQuZGF0YS5jb250cm9sbGVyXT8ucmVzdWx0cykge1xuICAgICAgICByZXR1cm4gc3RhdGUuc2V0SW4oXG4gICAgICAgICAgW3BheWxvYWQuZGF0YS5jb250cm9sbGVyLCAncmVzdWx0cyddLFxuICAgICAgICAgIFsuLi5zdGF0ZVtwYXlsb2FkLmRhdGEuY29udHJvbGxlcl0ucmVzdWx0cywgcGF5bG9hZC5kYXRhXS5zb3J0KFxuICAgICAgICAgICAgc29ydEJ5TmFtZVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICBjYXNlIEJPT0tNQVJLU19GQUlMVVJFOlxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIC5zZXRJbihbcGF5bG9hZC5jb250cm9sbGVyLCAnZXJyb3JzJ10sIHJlc3BvbnNlKVxuICAgICAgICAuc2V0SW4oW3BheWxvYWQuY29udHJvbGxlciwgJ3N0YXR1cyddLCBTVEFUVVMuRVJST1IpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Cb29rbWFya3MvQm9va21hcmtzUmVkdWNlci5qcyIsImNvbnN0IHNlbGVjdEJvb2ttYXJrU3RhdGUgPSBzdGF0ZSA9PiBzdGF0ZS5ib29rbWFya3M7XG5cbmNvbnN0IHNlbGVjdEJvb2ttYXJrc1N1YlN0YXRlID0gKHN0YXRlLCBjb250cm9sbGVyKSA9PlxuICBzZWxlY3RCb29rbWFya1N0YXRlKHN0YXRlKVtjb250cm9sbGVyXTtcblxuY29uc3Qgc2VsZWN0Qm9va21hcmtzU3RhdGVCeUNvbnRyb2xsZXIgPSAoXG4gIHN0YXRlLFxuICBjb250cm9sbGVyLFxuICBhdHRyLFxuICBkZWZhdWx0VmFsdWVcbikgPT4ge1xuICBjb25zdCBib29rbWFya3NTdGF0ZSA9IHNlbGVjdEJvb2ttYXJrc1N1YlN0YXRlKHN0YXRlLCBjb250cm9sbGVyKTtcbiAgcmV0dXJuIGJvb2ttYXJrc1N0YXRlID8gYm9va21hcmtzU3RhdGVbYXR0cl0gOiBkZWZhdWx0VmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Qm9va21hcmtzU3RhdHVzID0gKHN0YXRlLCBjb250cm9sbGVyKSA9PlxuICBzZWxlY3RCb29rbWFya3NTdGF0ZUJ5Q29udHJvbGxlcihzdGF0ZSwgY29udHJvbGxlciwgJ3N0YXR1cycsICdSRVNPTFZFRCcpO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Qm9va21hcmtzUmVzdWx0cyA9IChzdGF0ZSwgY29udHJvbGxlcikgPT5cbiAgc2VsZWN0Qm9va21hcmtzU3RhdGVCeUNvbnRyb2xsZXIoc3RhdGUsIGNvbnRyb2xsZXIsICdyZXN1bHRzJywgW10pO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Qm9va21hcmtzRXJyb3JzID0gKHN0YXRlLCBjb250cm9sbGVyKSA9PlxuICBzZWxlY3RCb29rbWFya3NTdGF0ZUJ5Q29udHJvbGxlcihzdGF0ZSwgY29udHJvbGxlciwgJ2Vycm9ycycsIG51bGwpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvQm9va21hcmtzL0Jvb2ttYXJrc1NlbGVjdG9ycy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCBQYWdlTGF5b3V0IGZyb20gJy4uLy4uL2NvbW1vbi9QYWdlTGF5b3V0L1BhZ2VMYXlvdXQnO1xuaW1wb3J0IE1vZGVsc1BhZ2VDb250ZW50IGZyb20gJy4vY29tcG9uZW50cy9Nb2RlbHNQYWdlQ29udGVudCc7XG5pbXBvcnQgeyBNT0RFTFNfU0VBUkNIX1BST1BTIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuY29uc3QgTW9kZWxzUGFnZSA9ICh7XG4gIGZldGNoQW5kUHVzaCxcbiAgc2VhcmNoLFxuICBpc0xvYWRpbmcsXG4gIGhhc0RhdGEsXG4gIG1vZGVscyxcbiAgcGFnZSxcbiAgcGVyUGFnZSxcbiAgc29ydCxcbiAgaGFzRXJyb3IsXG4gIGl0ZW1Db3VudCxcbiAgbWVzc2FnZSxcbiAgY2FuQ3JlYXRlLFxufSkgPT4ge1xuICBjb25zdCBoYW5kbGVTZWFyY2ggPSBxdWVyeSA9PiBmZXRjaEFuZFB1c2goeyBzZWFyY2hRdWVyeTogcXVlcnksIHBhZ2U6IDEgfSk7XG5cbiAgY29uc3QgY3JlYXRlQnRuID0gKFxuICAgIDxMaW5rIHRvPVwiL21vZGVscy9uZXdcIj5cbiAgICAgIDxCdXR0b24+e19fKCdDcmVhdGUgbW9kZWwnKX08L0J1dHRvbj5cbiAgICA8L0xpbms+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8UGFnZUxheW91dFxuICAgICAgaGVhZGVyPXtfXygnSGFyZHdhcmUgbW9kZWxzJyl9XG4gICAgICBzZWFyY2hhYmxlPXshaXNMb2FkaW5nfVxuICAgICAgc2VhcmNoUHJvcHM9e01PREVMU19TRUFSQ0hfUFJPUFN9XG4gICAgICBzZWFyY2hRdWVyeT17c2VhcmNofVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmcgJiYgaGFzRGF0YX1cbiAgICAgIG9uU2VhcmNoPXtoYW5kbGVTZWFyY2h9XG4gICAgICBvbkJvb2ttYXJrQ2xpY2s9e2hhbmRsZVNlYXJjaH1cbiAgICAgIHRvb2xiYXJCdXR0b25zPXtjYW5DcmVhdGUgJiYgY3JlYXRlQnRufVxuICAgID5cbiAgICAgIDxNb2RlbHNQYWdlQ29udGVudFxuICAgICAgICBtb2RlbHM9e21vZGVsc31cbiAgICAgICAgcGFnZT17cGFnZX1cbiAgICAgICAgcGVyUGFnZT17cGVyUGFnZX1cbiAgICAgICAgc2VhcmNoPXtzZWFyY2h9XG4gICAgICAgIHNvcnQ9e3NvcnR9XG4gICAgICAgIGhhc0RhdGE9e2hhc0RhdGF9XG4gICAgICAgIGhhc0Vycm9yPXtoYXNFcnJvcn1cbiAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgIGl0ZW1Db3VudD17aXRlbUNvdW50fVxuICAgICAgICBmZXRjaEFuZFB1c2g9e2ZldGNoQW5kUHVzaH1cbiAgICAgICAgbWVzc2FnZT17bWVzc2FnZX1cbiAgICAgIC8+XG4gICAgPC9QYWdlTGF5b3V0PlxuICApO1xufTtcblxuTW9kZWxzUGFnZS5wcm9wVHlwZXMgPSB7XG4gIGZldGNoQW5kUHVzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc2VhcmNoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGhhc0RhdGE6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG1vZGVsczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIHBhZ2U6IFByb3BUeXBlcy5udW1iZXIsXG4gIHBlclBhZ2U6IFByb3BUeXBlcy5udW1iZXIsXG4gIHNvcnQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgaGFzRXJyb3I6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGl0ZW1Db3VudDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBtZXNzYWdlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBjYW5DcmVhdGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG59O1xuXG5Nb2RlbHNQYWdlLmRlZmF1bHRQcm9wcyA9IHtcbiAgcGFnZTogbnVsbCxcbiAgcGVyUGFnZTogbnVsbCxcbiAgc2VhcmNoOiAnJyxcbiAgbWVzc2FnZToge30sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBNb2RlbHNQYWdlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Nb2RlbHMvTW9kZWxzUGFnZS9Nb2RlbHNQYWdlLmpzIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IE1vZGVsc1RhYmxlIGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvTW9kZWxzVGFibGUnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9QYWdpbmF0aW9uL1BhZ2luYXRpb25XcmFwcGVyJztcblxuaW1wb3J0IE1vZGVsRGVsZXRlTW9kYWwgZnJvbSAnLi9Nb2RlbERlbGV0ZU1vZGFsJztcbmltcG9ydCBMb2FkaW5nUGFnZSBmcm9tICcuLi8uLi8uLi9jb21tb24vTG9hZGluZ1BhZ2UnO1xuaW1wb3J0IHsgd2l0aFJlbmRlckhhbmRsZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vSE9DJztcblxuY29uc3QgTW9kZWxzUGFnZUNvbnRlbnQgPSAoe1xuICBtb2RlbHMsXG4gIHNlYXJjaCxcbiAgc29ydCxcbiAgZmV0Y2hBbmRQdXNoLFxuICBpdGVtQ291bnQsXG4gIHBhZ2UsXG4gIHBlclBhZ2UsXG59KSA9PiB7XG4gIGNvbnN0IFt0b0RlbGV0ZSwgc2V0VG9EZWxldGVdID0gdXNlU3RhdGUoe30pO1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPE1vZGVsRGVsZXRlTW9kYWwgdG9EZWxldGU9e3RvRGVsZXRlfSBmZXRjaEFuZFB1c2g9e2ZldGNoQW5kUHVzaH0gLz5cbiAgICAgIDxNb2RlbHNUYWJsZVxuICAgICAgICByZXN1bHRzPXttb2RlbHN9XG4gICAgICAgIHNlYXJjaD17c2VhcmNofVxuICAgICAgICBzb3J0Qnk9e3NvcnQuYnl9XG4gICAgICAgIHNvcnRPcmRlcj17c29ydC5vcmRlcn1cbiAgICAgICAgZ2V0VGFibGVJdGVtcz17ZmV0Y2hBbmRQdXNofVxuICAgICAgICBzZXRUb0RlbGV0ZT17c2V0VG9EZWxldGV9XG4gICAgICAgIGlkPVwibW9kZWxzLXRhYmxlXCJcbiAgICAgIC8+XG4gICAgICA8UGFnaW5hdGlvblxuICAgICAgICB2aWV3VHlwZT1cImxpc3RcIlxuICAgICAgICBpdGVtQ291bnQ9e2l0ZW1Db3VudH1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlLCBwZXJQYWdlIH19XG4gICAgICAgIG9uQ2hhbmdlPXtmZXRjaEFuZFB1c2h9XG4gICAgICAgIGRyb3Bkb3duQnV0dG9uSWQ9XCJtb2RlbHMtcGFnZS1wYWdpbmF0aW9uLWRyb3Bkb3duXCJcbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cbk1vZGVsc1BhZ2VDb250ZW50LnByb3BUeXBlcyA9IHtcbiAgbW9kZWxzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgc2VhcmNoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzb3J0OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGZldGNoQW5kUHVzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaXRlbUNvdW50OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIHBhZ2U6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgcGVyUGFnZTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxufTtcblxuTW9kZWxzUGFnZUNvbnRlbnQuZGVmYXVsdFByb3BzID0ge1xuICBzZWFyY2g6ICcnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFJlbmRlckhhbmRsZXIoe1xuICBDb21wb25lbnQ6IE1vZGVsc1BhZ2VDb250ZW50LFxuICBMb2FkaW5nQ29tcG9uZW50OiBMb2FkaW5nUGFnZSxcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Nb2RlbHMvTW9kZWxzUGFnZS9jb21wb25lbnRzL01vZGVsc1BhZ2VDb250ZW50LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4uL2NvbW1vbi90YWJsZSc7XG5pbXBvcnQgY3JlYXRlTW9kZWxzVGFibGVTY2hlbWEgZnJvbSAnLi9Nb2RlbHNUYWJsZVNjaGVtYSc7XG5cbmNvbnN0IE1vZGVsc1RhYmxlID0gKHtcbiAgZ2V0VGFibGVJdGVtcyxcbiAgc29ydEJ5LFxuICBzb3J0T3JkZXIsXG4gIHJlc3VsdHMsXG4gIG9uRGVsZXRlQ2xpY2ssXG4gIGlkLFxufSkgPT4gKFxuICA8VGFibGVcbiAgICBrZXk9XCJtb2RlbHMtdGFibGVcIlxuICAgIGNvbHVtbnM9e2NyZWF0ZU1vZGVsc1RhYmxlU2NoZW1hKFxuICAgICAgZ2V0VGFibGVJdGVtcyxcbiAgICAgIHNvcnRCeSxcbiAgICAgIHNvcnRPcmRlcixcbiAgICAgIG9uRGVsZXRlQ2xpY2tcbiAgICApfVxuICAgIHJvd3M9e3Jlc3VsdHN9XG4gICAgaWQ9e2lkfVxuICAvPlxuKTtcblxuTW9kZWxzVGFibGUucHJvcFR5cGVzID0ge1xuICByZXN1bHRzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgZ2V0VGFibGVJdGVtczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25EZWxldGVDbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc29ydEJ5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzb3J0T3JkZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuTW9kZWxzVGFibGUuZGVmYXVsdFByb3BzID0ge1xuICBzb3J0Qnk6ICcnLFxuICBzb3J0T3JkZXI6ICcnLFxuICBpZDogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTW9kZWxzVGFibGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Nb2RlbHNUYWJsZS9Nb2RlbHNUYWJsZS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUYWJsZSBhcyBQZlRhYmxlIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5cbmV4cG9ydCBjb25zdCB3aXRoUHJvcHMgPSBmaWVsZFR5cGUgPT4gQ29tcG9uZW50ID0+IChcbiAgdmFsdWUsXG4gIHtcbiAgICBjb2x1bW46IHtcbiAgICAgIFtmaWVsZFR5cGVdOiB7IHByb3BzIH0sXG4gICAgfSxcbiAgfVxuKSA9PiA8Q29tcG9uZW50IHsuLi5wcm9wc30+e3ZhbHVlfTwvQ29tcG9uZW50PjtcblxuZXhwb3J0IGNvbnN0IHdpdGhIZWFkZXJQcm9wcyA9IHdpdGhQcm9wcygnaGVhZGVyJyk7XG5leHBvcnQgY29uc3Qgd2l0aENlbGxQcm9wcyA9IHdpdGhQcm9wcygnY2VsbCcpO1xuXG5leHBvcnQgY29uc3QgaGVhZGVyRm9ybWF0dGVyV2l0aFByb3BzID0gd2l0aEhlYWRlclByb3BzKFBmVGFibGUuSGVhZGluZyk7XG5leHBvcnQgY29uc3QgY2VsbEZvcm1hdHRlcldpdGhQcm9wcyA9IHdpdGhDZWxsUHJvcHMoUGZUYWJsZS5DZWxsKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL2Zvcm1hdHRlcldpdGhQcm9wcy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgRWxsaXBzaXNXaXRoVG9vbHRpcCBmcm9tICdyZWFjdC1lbGxpcHNpcy13aXRoLXRvb2x0aXAnO1xuaW1wb3J0IGNlbGxGb3JtYXR0ZXIgZnJvbSAnLi9jZWxsRm9ybWF0dGVyJztcblxuZXhwb3J0IGRlZmF1bHQgdmFsdWUgPT5cbiAgY2VsbEZvcm1hdHRlcig8RWxsaXBzaXNXaXRoVG9vbHRpcD57dmFsdWUgfHwgJyd9PC9FbGxpcHNpc1dpdGhUb29sdGlwPik7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvZm9ybWF0dGVycy9lbGxpcHNpc0NlbGxGb3JtYXR0ZXIuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IE5hbWVDZWxsIGZyb20gJy4uL2NvbXBvbmVudHMvTmFtZUNlbGwnO1xuXG5jb25zdCBuYW1lQ2VsbEZvcm1hdHRlciA9IGNvbnRyb2xsZXJQbHVyYWxpemUgPT4gKFxuICB2YWx1ZSxcbiAgeyByb3dEYXRhOiB7IGNhbkVkaXQsIGlkLCBuYW1lIH0gfVxuKSA9PiAoXG4gIDxOYW1lQ2VsbFxuICAgIGFjdGl2ZT17Y2FuRWRpdH1cbiAgICBpZD17aWR9XG4gICAgbmFtZT17ZW5jb2RlVVJJKG5hbWUpfVxuICAgIGNvbnRyb2xsZXI9e2NvbnRyb2xsZXJQbHVyYWxpemV9XG4gID5cbiAgICB7dmFsdWV9XG4gIDwvTmFtZUNlbGw+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBuYW1lQ2VsbEZvcm1hdHRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL25hbWVDZWxsRm9ybWF0dGVyLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBMaW5rIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmNvbnN0IE5hbWVDZWxsID0gKHsgYWN0aXZlLCBpZCwgbmFtZSwgY29udHJvbGxlciwgY2hpbGRyZW4gfSkgPT5cbiAgYWN0aXZlID8gKFxuICAgIDxMaW5rIHRvPXtgLyR7Y29udHJvbGxlcn0vJHtpZH0tJHtuYW1lfS9lZGl0YH0+e2NoaWxkcmVufTwvTGluaz5cbiAgKSA6IChcbiAgICA8YSBocmVmPVwiI1wiIGNsYXNzTmFtZT1cImRpc2FibGVkXCIgZGlzYWJsZWQ9XCJkaXNhYmxlZFwiIG9uQ2xpY2s9eygpID0+IHt9fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2E+XG4gICk7XG5cbk5hbWVDZWxsLnByb3BUeXBlcyA9IHtcbiAgYWN0aXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjb250cm9sbGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbn07XG5cbk5hbWVDZWxsLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWN0aXZlOiBmYWxzZSxcbiAgY2hpbGRyZW46IG51bGwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBOYW1lQ2VsbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL05hbWVDZWxsLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBIb3N0c0NvdW50Q2VsbCBmcm9tICcuLi9jb21wb25lbnRzL0hvc3RzQ291bnRDZWxsJztcblxuY29uc3QgaG9zdHNDb3VudENlbGxGb3JtYXR0ZXIgPSBjb250cm9sbGVyU2luZ3VsYXIgPT4gKFxuICB2YWx1ZSxcbiAgeyByb3dEYXRhOiB7IG5hbWUgfSB9XG4pID0+IChcbiAgPEhvc3RzQ291bnRDZWxsIGNvbnRyb2xsZXI9e2NvbnRyb2xsZXJTaW5ndWxhcn0gbmFtZT17bmFtZX0+XG4gICAge3ZhbHVlfVxuICA8L0hvc3RzQ291bnRDZWxsPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgaG9zdHNDb3VudENlbGxGb3JtYXR0ZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvZm9ybWF0dGVycy9ob3N0c0NvdW50Q2VsbEZvcm1hdHRlci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBIb3N0c0NvdW50Q2VsbCA9ICh7IG5hbWUsIGNvbnRyb2xsZXIsIGNoaWxkcmVuIH0pID0+IChcbiAgPGEgaHJlZj17YGhvc3RzP3NlYXJjaD0ke2NvbnRyb2xsZXJ9KyUzRCtcIiR7ZW5jb2RlVVJJKG5hbWUpfVwiYH0+e2NoaWxkcmVufTwvYT5cbik7XG5cbkhvc3RzQ291bnRDZWxsLnByb3BUeXBlcyA9IHtcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjb250cm9sbGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxufTtcblxuSG9zdHNDb3VudENlbGwuZGVmYXVsdFByb3BzID0ge307XG5cbmV4cG9ydCBkZWZhdWx0IEhvc3RzQ291bnRDZWxsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL2NvbXBvbmVudHMvSG9zdHNDb3VudENlbGwuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFNvcnRhYmxlSGVhZGVyIGZyb20gJy4uL2NvbXBvbmVudHMvU29ydGFibGVIZWFkZXInO1xuXG5jb25zdCBzb3J0YWJsZUhlYWRlckZvcm1hdHRlciA9IHNvcnRDb250cm9sbGVyID0+IChsYWJlbCwgeyBwcm9wZXJ0eSB9KSA9PiB7XG4gIGNvbnN0IGlzU29ydGVyID0gcHJvcGVydHkgPT09IHNvcnRDb250cm9sbGVyLnByb3BlcnR5O1xuICBjb25zdCBjdXJyZW50T3JkZXIgPSBpc1NvcnRlciA/IHNvcnRDb250cm9sbGVyLm9yZGVyIDogJyc7XG4gIGNvbnN0IG5leHRPcmRlciA9IGN1cnJlbnRPcmRlciA9PT0gJ0FTQycgPyAnREVTQycgOiAnQVNDJztcblxuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUhlYWRlclxuICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICBzb3J0Q29udHJvbGxlci5hcHBseShwcm9wZXJ0eSwgbmV4dE9yZGVyKTtcbiAgICAgIH19XG4gICAgICBzb3J0T3JkZXI9e2lzU29ydGVyID8gc29ydENvbnRyb2xsZXIub3JkZXIudG9Mb3dlckNhc2UoKSA6IG51bGx9XG4gICAgPntgICR7bGFiZWx9YH08L1NvcnRhYmxlSGVhZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgc29ydGFibGVIZWFkZXJGb3JtYXR0ZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvZm9ybWF0dGVycy9zb3J0YWJsZUhlYWRlckZvcm1hdHRlci5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5jb25zdCBTb3J0YWJsZUhlYWRlciA9ICh7IG9uQ2xpY2ssIGNoaWxkcmVuLCBzb3J0T3JkZXIgfSkgPT4gKFxuICA8YSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICB7c29ydE9yZGVyICYmIDxpIGNsYXNzTmFtZT17YGZhIGZhLXNvcnQtJHtzb3J0T3JkZXJ9YH0gLz59XG4gICAge2NoaWxkcmVufVxuICA8L2E+XG4pO1xuXG5Tb3J0YWJsZUhlYWRlci5wcm9wVHlwZXMgPSB7XG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICBzb3J0T3JkZXI6IFByb3BUeXBlcy5vbmVPZihbJ2FzYycsICdkZXNjJywgbnVsbF0pLFxufTtcblxuU29ydGFibGVIZWFkZXIuZGVmYXVsdFByb3BzID0ge1xuICBzb3J0T3JkZXI6IG51bGwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTb3J0YWJsZUhlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9jb21wb25lbnRzL1NvcnRhYmxlSGVhZGVyLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBEZWxldGVCdXR0b24gZnJvbSAnLi4vY29tcG9uZW50cy9EZWxldGVCdXR0b24nO1xuXG5leHBvcnQgY29uc3QgZGVsZXRlQWN0aW9uQ2VsbEZvcm1hdHRlciA9IG9uQ2xpY2sgPT4gKF8sIHsgcm93RGF0YSB9KSA9PiB7XG4gIGNvbnN0IHsgY2FuRGVsZXRlIH0gPSByb3dEYXRhO1xuXG4gIHJldHVybiA8RGVsZXRlQnV0dG9uIGFjdGl2ZT17Y2FuRGVsZXRlfSBvbkNsaWNrPXsoKSA9PiBvbkNsaWNrKHJvd0RhdGEpfSAvPjtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvZm9ybWF0dGVycy9kZWxldGVBY3Rpb25DZWxsRm9ybWF0dGVyLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgRGVsZXRlQnV0dG9uID0gKHsgYWN0aXZlLCBvbkNsaWNrIH0pID0+XG4gIGFjdGl2ZSA/IChcbiAgICA8QnV0dG9uIGJzU3R5bGU9XCJkZWZhdWx0XCIgb25DbGljaz17b25DbGlja30+XG4gICAgICB7X18oJ0RlbGV0ZScpfVxuICAgIDwvQnV0dG9uPlxuICApIDogbnVsbDtcblxuRGVsZXRlQnV0dG9uLnByb3BUeXBlcyA9IHtcbiAgYWN0aXZlOiBQcm9wVHlwZXMuYm9vbCxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbkRlbGV0ZUJ1dHRvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGFjdGl2ZTogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEZWxldGVCdXR0b247XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvY29tcG9uZW50cy9EZWxldGVCdXR0b24uanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRhYmxlU2VsZWN0aW9uQ2VsbCBmcm9tICcuLi9jb21wb25lbnRzL1RhYmxlU2VsZWN0aW9uQ2VsbCc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rpb25DZWxsRm9ybWF0dGVyID0gKHNlbGVjdGlvbkNvbnRyb2xsZXIsIGFkZGl0aW9uYWxEYXRhKSA9PiAoXG4gIDxUYWJsZVNlbGVjdGlvbkNlbGxcbiAgICBpZD17YHNlbGVjdCR7YWRkaXRpb25hbERhdGEucm93SW5kZXh9YH1cbiAgICBjaGVja2VkPXtzZWxlY3Rpb25Db250cm9sbGVyLmlzU2VsZWN0ZWQoYWRkaXRpb25hbERhdGEpfVxuICAgIG9uQ2hhbmdlPXsoKSA9PiBzZWxlY3Rpb25Db250cm9sbGVyLnNlbGVjdFJvdyhhZGRpdGlvbmFsRGF0YSl9XG4gIC8+XG4pO1xuZXhwb3J0IGRlZmF1bHQgc2VsZWN0aW9uQ2VsbEZvcm1hdHRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL3NlbGVjdGlvbkNlbGxGb3JtYXR0ZXIuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBUYWJsZVNlbGVjdGlvbkNlbGwgPSAoeyBpZCwgbGFiZWwsIGNoZWNrZWQsIG9uQ2hhbmdlLCAuLi5wcm9wcyB9KSA9PiAoXG4gIDxUYWJsZS5TZWxlY3Rpb25DZWxsPlxuICAgIDxUYWJsZS5DaGVja2JveFxuICAgICAgaWQ9e2lkfVxuICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICA8L1RhYmxlLlNlbGVjdGlvbkNlbGw+XG4pO1xuXG5UYWJsZVNlbGVjdGlvbkNlbGwucHJvcFR5cGVzID0ge1xuICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2hlY2tlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cblRhYmxlU2VsZWN0aW9uQ2VsbC5kZWZhdWx0UHJvcHMgPSB7XG4gIGxhYmVsOiBfXygnU2VsZWN0IHJvdycpLFxuICBjaGVja2VkOiBmYWxzZSxcbiAgb25DaGFuZ2U6IG5vb3AsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZVNlbGVjdGlvbkNlbGw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvY29tcG9uZW50cy9UYWJsZVNlbGVjdGlvbkNlbGwuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRhYmxlU2VsZWN0aW9uSGVhZGVyQ2VsbCBmcm9tICcuLi9jb21wb25lbnRzL1RhYmxlU2VsZWN0aW9uSGVhZGVyQ2VsbCc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rpb25IZWFkZXJDZWxsRm9ybWF0dGVyID0gKHNlbGVjdGlvbkNvbnRyb2xsZXIsIGxhYmVsKSA9PiAoXG4gIDxUYWJsZVNlbGVjdGlvbkhlYWRlckNlbGxcbiAgICBsYWJlbD17bGFiZWx9XG4gICAgY2hlY2tlZD17c2VsZWN0aW9uQ29udHJvbGxlci5hbGxQYWdlU2VsZWN0ZWQoKX1cbiAgICBvbkNoYW5nZT17c2VsZWN0aW9uQ29udHJvbGxlci5zZWxlY3RQYWdlfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgc2VsZWN0aW9uSGVhZGVyQ2VsbEZvcm1hdHRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9mb3JtYXR0ZXJzL3NlbGVjdGlvbkhlYWRlckNlbGxGb3JtYXR0ZXIuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBUYWJsZVNlbGVjdGlvbkhlYWRlckNlbGwgPSAoe1xuICBpZCxcbiAgbGFiZWwsXG4gIGNoZWNrZWQsXG4gIG9uQ2hhbmdlLFxuICAuLi5wcm9wc1xufSkgPT4gKFxuICA8VGFibGUuU2VsZWN0aW9uSGVhZGluZyBhcmlhLWxhYmVsPXtsYWJlbH0+XG4gICAgPFRhYmxlLkNoZWNrYm94XG4gICAgICBpZD17aWR9XG4gICAgICB0aXRsZT17bGFiZWx9XG4gICAgICBjaGVja2VkPXtjaGVja2VkfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gIDwvVGFibGUuU2VsZWN0aW9uSGVhZGluZz5cbik7XG5cblRhYmxlU2VsZWN0aW9uSGVhZGVyQ2VsbC5wcm9wVHlwZXMgPSB7XG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2hlY2tlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cblRhYmxlU2VsZWN0aW9uSGVhZGVyQ2VsbC5kZWZhdWx0UHJvcHMgPSB7XG4gIGlkOiAnc2VsZWN0QWxsJyxcbiAgbGFiZWw6ICcnLFxuICBjaGVja2VkOiBmYWxzZSxcbiAgb25DaGFuZ2U6IG5vb3AsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZVNlbGVjdGlvbkhlYWRlckNlbGw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvY29tcG9uZW50cy9UYWJsZVNlbGVjdGlvbkhlYWRlckNlbGwuanMiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFRhYmxlIH0gZnJvbSAnLi9UYWJsZSc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYmxlQm9keSB9IGZyb20gJy4vVGFibGVCb2R5JztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFibGVCb2R5TWVzc2FnZSB9IGZyb20gJy4vVGFibGVCb2R5TWVzc2FnZSc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvY29tcG9uZW50cy9pbmRleC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgVGFibGUgYXMgUGZUYWJsZSB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IFRhYmxlQm9keSBmcm9tICcuL1RhYmxlQm9keSc7XG5cbmNvbnN0IFRhYmxlID0gKHsgY29sdW1ucywgcm93cywgYm9keU1lc3NhZ2UsIGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IGJvZHkgPSBjaGlsZHJlbiB8fCBbXG4gICAgPFBmVGFibGUuSGVhZGVyIGtleT1cImhlYWRlclwiIC8+LFxuICAgIDxUYWJsZUJvZHlcbiAgICAgIGtleT1cImJvZHlcIlxuICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICBtZXNzYWdlPXtib2R5TWVzc2FnZX1cbiAgICAgIHJvd0tleT1cImlkXCJcbiAgICAvPixcbiAgXTtcblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8UGZUYWJsZS5QZlByb3ZpZGVyXG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGNsYXNzTmFtZT1cInRhYmxlLWZpeGVkXCJcbiAgICAgICAgc3RyaXBlZFxuICAgICAgICBib3JkZXJlZFxuICAgICAgICBob3ZlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtib2R5fVxuICAgICAgPC9QZlRhYmxlLlBmUHJvdmlkZXI+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5UYWJsZS5wcm9wVHlwZXMgPSB7XG4gIGNvbHVtbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5vYmplY3QpLmlzUmVxdWlyZWQsXG4gIHJvd3M6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5vYmplY3QpLmlzUmVxdWlyZWQsXG4gIGJvZHlNZXNzYWdlOiBQcm9wVHlwZXMubm9kZSxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxufTtcblxuVGFibGUuZGVmYXVsdFByb3BzID0ge1xuICBib2R5TWVzc2FnZTogdW5kZWZpbmVkLFxuICBjaGlsZHJlbjogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgVGFibGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvY29tcG9uZW50cy9UYWJsZS5qcyIsImV4cG9ydCB7IHNvcnRDb250cm9sbGVyRmFjdG9yeSwgc29ydGFibGVDb2x1bW4gfSBmcm9tICcuL3NvcnRhYmxlQ29sdW1uJztcbmV4cG9ydCB7IGNvbHVtbiB9IGZyb20gJy4vY29sdW1uJztcbmV4cG9ydCB7IGdldFNlbGVjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL3NlbGVjdGlvbic7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvc2NoZW1hSGVscGVycy9pbmRleC5qcyIsImltcG9ydCBVUkkgZnJvbSAndXJpanMnO1xuaW1wb3J0IHtcbiAgZWxsaXBzaXNDZWxsRm9ybWF0dGVyLFxuICBoZWFkZXJGb3JtYXR0ZXJXaXRoUHJvcHMsXG4gIHNvcnRhYmxlSGVhZGVyRm9ybWF0dGVyLFxufSBmcm9tICcuLi9mb3JtYXR0ZXJzJztcbmltcG9ydCB7IGNvbHVtbiB9IGZyb20gJy4vY29sdW1uJztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHNvcnRhYmxlIGNvbHVtbiBmb3IgYSBwYXR0ZXJuZmx5LTMgdGFibGUuXG4gKiBTZWUgbW9yZSBpbiBodHRwOi8vcGF0dGVybmZseS1yZWFjdC5zdXJnZS5zaC9wYXR0ZXJuZmx5LTMvXG4gKiBTZWUgYW4gZXhhbXBsZTogTW9kZWxzVGFibGVTY2hlbWFcbiAqIEBwYXJhbSAge1N0cmluZ30gcHJvcGVydHkgICAgICAgICAgICAgICAgIHRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSB0YWJsZS5cbiAqIEBwYXJhbSAge1N0cmluZ30gbGFiZWwgICAgICAgICAgICAgICAgICAgIHRoZSBjb2x1bW4gbGFiZWwuXG4gKiBAcGFyYW0gIHtOdW1iZXJ9IG1kV2lkdGggICAgICAgICAgICAgICAgICBjb2x1bW4gc2l6ZSBvbiBtZWRpdW0gZGV2aWNlcy4gTm90ZTogdXNpbmcgYm9vdHN0cmFwXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkIGNvbnZlbnRpb24uXG4gKiBAcGFyYW0gIHtPYmplY3R9IHNvcnRDb250cm9sbGVyICAgICAgICAgICBzb3J0Q29udHJvbGxlciBvYmplY3QuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWUgbW9yZSBpbiBzb3J0Q29udHJvbGxlckZhY3RvcnkuXG4gKiBAcGFyYW0gIHtBcnJheX0gYWRkaXRpb25hbENlbGxGb3JtYXR0ZXJzICBhcnJheSBvZiBmdW5jdGlvbnMgdGhhdCBmb3JtYXQgY29sdW1uIGNlbGxzXG4gKiBAcmV0dXJuIHtPYmplY3R9IHRoZSB0YWJsZSBjb2x1bW4uXG4gKi9cbmV4cG9ydCBjb25zdCBzb3J0YWJsZUNvbHVtbiA9IChcbiAgcHJvcGVydHksXG4gIGxhYmVsLFxuICBtZFdpZHRoLFxuICBzb3J0Q29udHJvbGxlcixcbiAgYWRkaXRpb25hbENlbGxGb3JtYXR0ZXJzID0gW11cbikgPT5cbiAgY29sdW1uKFxuICAgIHByb3BlcnR5LFxuICAgIGxhYmVsLFxuICAgIFtzb3J0YWJsZUhlYWRlckZvcm1hdHRlcihzb3J0Q29udHJvbGxlciksIGhlYWRlckZvcm1hdHRlcldpdGhQcm9wc10sXG4gICAgWy4uLmFkZGl0aW9uYWxDZWxsRm9ybWF0dGVycywgZWxsaXBzaXNDZWxsRm9ybWF0dGVyXSxcbiAgICB7IHNvcnQ6IHRydWUsIHNvcnREaXJlY3Rpb246ICcnLCBjbGFzc05hbWU6IGBjb2wtbWQtJHttZFdpZHRofWAgfVxuICApO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzb3J0IGNvbnRyb2xsZXIgZm9yIFBhdHRlcm5mbHktMyB0YWJsZS5cbiAqIEBwYXJhbSAge0Z1bmN0aW9ufSBhcGlDYWxsICAgYSBmdW5jdGlvbiB0aGF0IGZldGNoZXMgYW5kIHN0b3JlcyBkYXRhIGludG8gUmVkdXguXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICAgc29ydEJ5ICAgIHRoZSBwcm9wZXJ0eSB0aGF0IHRoZSB0YWJsZSBpcyBzb3J0ZWQgYnkuXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICAgc29ydE9yZGVyIHRoZSBvcmRlciB3aGljaCB0aGUgdGFibGUgaXMgc29ydGVkIGJ5LlxuICogQHJldHVybiB7T2JqZWN0fSAgIGEgc29ydCBjb250cm9sbGVyIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNvcnRDb250cm9sbGVyRmFjdG9yeSA9IChhcGlDYWxsLCBzb3J0QnksIHNvcnRPcmRlcikgPT4gKHtcbiAgYXBwbHk6IChieSwgb3JkZXIpID0+IHtcbiAgICBjb25zdCB1cmkgPSBuZXcgVVJJKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgICB1cmkuc2V0U2VhcmNoKCdvcmRlcicsIGAke2J5fSAke29yZGVyfWApO1xuICAgIC8vIEZJWE1FKGJzaHVzdGVyKTogR29pbmcgYmFjayBpbiB0aGUgYnJvd3NlciB3b24ndCByZW5kZXIgdGhlIHN0YXRlLlxuICAgIC8vICAgICAgICAgICAgICAgICAgVXNpbmcgcmVhY3Qtcm91dGVyIHdpbGwgZml4IHRoaXMgY29tcGxldGVseS5cbiAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoeyBwYXRoOiB1cmkudG9TdHJpbmcoKSB9LCAnJywgdXJpLnRvU3RyaW5nKCkpO1xuICAgIGFwaUNhbGwodXJpLnF1ZXJ5KHRydWUpKTtcbiAgfSxcbiAgcHJvcGVydHk6IHNvcnRCeSxcbiAgb3JkZXI6IHNvcnRPcmRlcixcbn0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL3NjaGVtYUhlbHBlcnMvc29ydGFibGVDb2x1bW4uanMiLCJpbXBvcnQge1xuICBzZWxlY3RSb3csXG4gIHNlbGVjdFBhZ2UsXG4gIHVuc2VsZWN0QWxsUm93cyxcbiAgdW5zZWxlY3RSb3csXG59IGZyb20gJy4uL2FjdGlvbnMvc2VsZWN0aW9uQWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3Rpb25Db250cm9sbGVyID0gKHtcbiAgdGFibGVJRCxcbiAgYWxsUm93c1NlbGVjdGVkLFxuICByb3dzLFxuICBzZWxlY3RlZFJvd3MsXG4gIGRpc3BhdGNoLFxufSkgPT4ge1xuICBjb25zdCBjaGVja0FsbFBhZ2VTZWxlY3RlZCA9ICgpID0+XG4gICAgYWxsUm93c1NlbGVjdGVkIHx8IHJvd3MubGVuZ3RoID09PSBzZWxlY3RlZFJvd3MubGVuZ3RoO1xuXG4gIHJldHVybiB7XG4gICAgYWxsUm93c1NlbGVjdGVkLFxuICAgIGFsbFBhZ2VTZWxlY3RlZDogKCkgPT4gY2hlY2tBbGxQYWdlU2VsZWN0ZWQodGFibGVJRCksXG4gICAgc2VsZWN0UGFnZTogKCkgPT4ge1xuICAgICAgaWYgKGNoZWNrQWxsUGFnZVNlbGVjdGVkKCkpIGRpc3BhdGNoKHVuc2VsZWN0QWxsUm93cyh0YWJsZUlEKSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgZGlzcGF0Y2goc2VsZWN0UGFnZSh0YWJsZUlELCByb3dzKSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBzZWxlY3RSb3c6ICh7IHJvd0RhdGE6IHsgaWQgfSB9KSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRSb3dzLmluY2x1ZGVzKGlkKSB8fCBhbGxSb3dzU2VsZWN0ZWQpXG4gICAgICAgIGRpc3BhdGNoKHVuc2VsZWN0Um93KHRhYmxlSUQsIGlkLCBhbGxSb3dzU2VsZWN0ZWQgJiYgcm93cykpO1xuICAgICAgZWxzZSBkaXNwYXRjaChzZWxlY3RSb3codGFibGVJRCwgaWQpKTtcbiAgICB9LFxuICAgIGlzU2VsZWN0ZWQ6ICh7IHJvd0RhdGEgfSkgPT5cbiAgICAgIGFsbFJvd3NTZWxlY3RlZCB8fCBzZWxlY3RlZFJvd3MuaW5jbHVkZXMocm93RGF0YS5pZCksXG4gIH07XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL3NjaGVtYUhlbHBlcnMvc2VsZWN0aW9uLmpzIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBnZXRUYWJsZUl0ZW1zQWN0aW9uIH0gZnJvbSAnLi9nZXRUYWJsZUl0ZW1zQWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0aW9uQWN0aW9ucyc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvYWN0aW9ucy9pbmRleC5qcyIsImltcG9ydCBVUkkgZnJvbSAndXJpanMnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9yZWR1eC9BUEknO1xuLyoqXG4gKiBBbiBhc3luYyBSZWR1eCBhY3Rpb24gdGhhdCBmZXRjaGVzIGFuZCBzdG9yZXMgdGFibGUgZGF0YSBpbiBSZWR1eC5cbiAqIEBwYXJhbSAge1N0cmluZ30gdGFibGVJRCAgICB0aGUgdGFibGUgSUQgZm9yIFJlZHV4XG4gKiBAcGFyYW0gIHtPYmplY3R9IHF1ZXJ5ICAgICAgdGhlIEFQSSByZXF1ZXN0IHF1ZXJ5XG4gKiBAcGFyYW0gIHtTdHJpbmd9IHVybCAgICAgICAgdGhlIHVybCBmb3IgdGhlIGRhdGFcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSAgICAgICAgICBSZWR1eCBUaHVuayBmdW5jdGlvblxuICovXG5jb25zdCBnZXRUYWJsZUl0ZW1zQWN0aW9uID0gKHRhYmxlSUQsIHF1ZXJ5LCBmZXRjaFVybCkgPT4ge1xuICBjb25zdCB1cmwgPSBuZXcgVVJJKGZldGNoVXJsKTtcbiAgdXJsLmFkZFNlYXJjaCh7IC4uLnF1ZXJ5LCBpbmNsdWRlX3Blcm1pc3Npb25zOiB0cnVlIH0pO1xuXG4gIHJldHVybiBnZXQoe1xuICAgIGtleTogdGFibGVJRC50b1VwcGVyQ2FzZSgpLFxuICAgIHVybDogdXJsLnRvU3RyaW5nKCksXG4gICAgcGF5bG9hZDogeyB0YWJsZUlELCB1cmw6IHVybC50b1N0cmluZygpIH0sXG4gIH0pO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0VGFibGVJdGVtc0FjdGlvbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9hY3Rpb25zL2dldFRhYmxlSXRlbXNBY3Rpb24uanMiLCJleHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZVRhYmxlUmVkdWNlciB9IGZyb20gJy4vY3JlYXRlVGFibGVSZWR1Y2VyJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgc2VsZWN0aW9uUmVkdWNlciB9IGZyb20gJy4vc2VsZWN0aW9uUmVkdWNlcic7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vdGFibGUvcmVkdWNlcnMvaW5kZXguanMiLCJpbXBvcnQgSW1tdXRhYmxlIGZyb20gJ3NlYW1sZXNzLWltbXV0YWJsZSc7XG5pbXBvcnQgeyBTVEFUVVMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IGNyZWF0ZVRhYmxlQWN0aW9uVHlwZXMgZnJvbSAnLi4vYWN0aW9uc0hlbHBlcnMvYWN0aW9uVHlwZUNyZWF0b3InO1xuXG5jb25zdCBpbml0U3RhdGUgPSBJbW11dGFibGUoe1xuICBlcnJvcjogbnVsbCxcbiAgc29ydEJ5OiAnJyxcbiAgc29ydE9yZGVyOiAnJyxcbiAgcmVzdWx0czogW10sXG4gIHN0YXR1czogU1RBVFVTLlBFTkRJTkcsXG4gIHBhZ2luYXRpb246IHsgcGFnZTogMSwgcGVyUGFnZTogMjAgfSxcbiAgdG90YWw6IDAsXG59KTtcblxuY29uc3QgY3JlYXRlVGFibGVSZWR1Y2VyID0gdGFibGVJRCA9PiAoXG4gIHN0YXRlID0gaW5pdFN0YXRlLFxuICB7IHR5cGUsIHBheWxvYWQsIHJlc3BvbnNlIH1cbikgPT4ge1xuICBjb25zdCB7IFJFUVVFU1QsIEZBSUxVUkUsIFNVQ0NFU1MgfSA9IGNyZWF0ZVRhYmxlQWN0aW9uVHlwZXModGFibGVJRCk7XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRVFVRVNUOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnc3RhdHVzJywgU1RBVFVTLlBFTkRJTkcpO1xuICAgIGNhc2UgU1VDQ0VTUzpcbiAgICAgIHJldHVybiBJbW11dGFibGUubWVyZ2Uoc3RhdGUsIHtcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgIHN0YXR1czogU1RBVFVTLlJFU09MVkVELFxuICAgICAgICByZXN1bHRzOiByZXNwb25zZS5yZXN1bHRzLFxuICAgICAgICBzb3J0Qnk6IHJlc3BvbnNlLnNvcnQuYnksXG4gICAgICAgIHNvcnRPcmRlcjogcmVzcG9uc2Uuc29ydC5vcmRlcixcbiAgICAgICAgcGFnaW5hdGlvbjogeyBwYWdlOiByZXNwb25zZS5wYWdlLCBwZXJQYWdlOiByZXNwb25zZS5wZXJfcGFnZSB9LFxuICAgICAgICB0b3RhbDogcmVzcG9uc2UudG90YWwsXG4gICAgICB9KTtcbiAgICBjYXNlIEZBSUxVUkU6XG4gICAgICByZXR1cm4gSW1tdXRhYmxlLm1lcmdlKHN0YXRlLCB7XG4gICAgICAgIGVycm9yOiByZXNwb25zZSxcbiAgICAgICAgc3RhdHVzOiBTVEFUVVMuRVJST1IsXG4gICAgICAgIHJlc3VsdHM6IFtdLFxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlVGFibGVSZWR1Y2VyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL3JlZHVjZXJzL2NyZWF0ZVRhYmxlUmVkdWNlci5qcyIsImNvbnN0IGNyZWF0ZVRhYmxlQWN0aW9uVHlwZXMgPSB0YWJsZUlEID0+ICh7XG4gIFJFUVVFU1Q6IGAke3RhYmxlSUQudG9VcHBlckNhc2UoKX1fUkVRVUVTVGAsXG4gIFNVQ0NFU1M6IGAke3RhYmxlSUQudG9VcHBlckNhc2UoKX1fU1VDQ0VTU2AsXG4gIEZBSUxVUkU6IGAke3RhYmxlSUQudG9VcHBlckNhc2UoKX1fRkFJTFVSRWAsXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlVGFibGVBY3Rpb25UeXBlcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi90YWJsZS9hY3Rpb25zSGVscGVycy9hY3Rpb25UeXBlQ3JlYXRvci5qcyIsImltcG9ydCBJbW11dGFibGUgZnJvbSAnc2VhbWxlc3MtaW1tdXRhYmxlJztcbmltcG9ydCB7IHVuaW9uIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIFNFTEVDVF9ST1dTLFxuICBVTlNFTEVDVF9ST1dTLFxuICBVTlNFTEVDVF9BTExfUk9XUyxcbiAgU0VMRUNUX0FMTF9ST1dTLFxuICBPUEVOX1NFTEVDVF9BTEwsXG59IGZyb20gJy4uL2NvbnN0YW50cy9TZWxlY3Rpb25Db25zdGFudHMnO1xuXG5jb25zdCBpbml0aWFsU3RhdGUgPSBJbW11dGFibGUoe1xuICBzZWxlY3RlZFJvd3M6IFtdLFxuICBhbGxSb3dzU2VsZWN0ZWQ6IGZhbHNlLFxuICBzaG93U2VsZWN0QWxsOiBmYWxzZSxcbn0pO1xuXG5jb25zdCBnZXRTZWxlY3RlZFJvd3MgPSBzdGF0ZSA9PiAoc3RhdGUgPyBzdGF0ZS5zZWxlY3RlZFJvd3MgOiBbXSk7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rpb25SZWR1Y2VyID0gY3VycmVudFRhYmxlSUQgPT4gKFxuICBzdGF0ZSA9IGluaXRpYWxTdGF0ZSxcbiAgeyB0YWJsZUlELCB0eXBlLCBwYXlsb2FkIH1cbikgPT4ge1xuICBpZiAodGFibGVJRCA9PT0gdW5kZWZpbmVkIHx8IHRhYmxlSUQgIT09IGN1cnJlbnRUYWJsZUlEKSByZXR1cm4gc3RhdGU7XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBTRUxFQ1RfQUxMX1JPV1M6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2UoeyBhbGxSb3dzU2VsZWN0ZWQ6IHRydWUgfSk7XG4gICAgY2FzZSBTRUxFQ1RfUk9XUzpcbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZSh7XG4gICAgICAgIHNlbGVjdGVkUm93czogdW5pb24ocGF5bG9hZCwgZ2V0U2VsZWN0ZWRSb3dzKHN0YXRlKSksXG4gICAgICB9KTtcbiAgICBjYXNlIE9QRU5fU0VMRUNUX0FMTDpcbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZSh7IHNob3dTZWxlY3RBbGw6IHRydWUgfSk7XG4gICAgY2FzZSBVTlNFTEVDVF9ST1dTOlxuICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLmFsbFJvd3NTZWxlY3RlZCkge1xuICAgICAgICAvLyBVc2VyIGNhbiB1bnNlbGVjdCByb3dzIGlmIG9ubHkgdGhlIHBhZ2Ugcm93cyBhcmUgc2VsZWN0ZWRcbiAgICAgICAgcmV0dXJuIHN0YXRlLm1lcmdlKHtcbiAgICAgICAgICBzZWxlY3RlZFJvd3M6IHBheWxvYWQucmVzdWx0c1xuICAgICAgICAgICAgLm1hcChyb3cgPT4gcm93LmlkKVxuICAgICAgICAgICAgLmZpbHRlcihyb3cgPT4gcm93ICE9PSBwYXlsb2FkLmlkKSxcbiAgICAgICAgICBhbGxSb3dzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICAgIHNob3dTZWxlY3RBbGw6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0ZS5tZXJnZSh7XG4gICAgICAgIHNlbGVjdGVkUm93czogc3RhdGUuc2VsZWN0ZWRSb3dzLmZpbHRlcihyb3cgPT4gcm93ICE9PSBwYXlsb2FkLmlkKSxcbiAgICAgIH0pO1xuICAgIGNhc2UgVU5TRUxFQ1RfQUxMX1JPV1M6XG4gICAgICByZXR1cm4gc3RhdGUubWVyZ2Uoe1xuICAgICAgICBzZWxlY3RlZFJvd3M6IFtdLFxuICAgICAgICBhbGxSb3dzU2VsZWN0ZWQ6IGZhbHNlLFxuICAgICAgICBzaG93U2VsZWN0QWxsOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCBzZWxlY3Rpb25SZWR1Y2VyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL3JlZHVjZXJzL3NlbGVjdGlvblJlZHVjZXIuanMiLCJleHBvcnQgY29uc3Qgc2VsZWN0U2VsZWN0aW9uID0gc3RhdGUgPT4gc3RhdGUuQVBJO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0U2VsZWN0aW9uQnlJRCA9IChzdGF0ZSwgdGFibGVJRCkgPT5cbiAgc2VsZWN0U2VsZWN0aW9uKHN0YXRlKVt0YWJsZUlEXSB8fCB7fTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFsbFJvd3NTZWxlY3RlZCA9IChzdGF0ZSwgdGFibGVJRCkgPT5cbiAgc2VsZWN0U2VsZWN0aW9uQnlJRChzdGF0ZSwgdGFibGVJRCkuYWxsUm93c1NlbGVjdGVkIHx8IGZhbHNlO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0U2VsZWN0ZWRSb3dzID0gKHN0YXRlLCB0YWJsZUlEKSA9PlxuICBzZWxlY3RTZWxlY3Rpb25CeUlEKHN0YXRlLCB0YWJsZUlEKS5zZWxlY3RlZFJvd3MgfHwgW107XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RTaG93U2VsZWN0QWxsID0gKHN0YXRlLCB0YWJsZUlEKSA9PlxuICBzZWxlY3RTZWxlY3Rpb25CeUlEKHN0YXRlLCB0YWJsZUlEKS5zaG93U2VsZWN0QWxsIHx8IGZhbHNlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL3RhYmxlL3NlbGVjdG9ycy9zZWxlY3Rpb25TZWxlY3RvcnMuanMiLCJpbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQge1xuICBjb2x1bW4sXG4gIHNvcnRhYmxlQ29sdW1uLFxuICBoZWFkZXJGb3JtYXR0ZXJXaXRoUHJvcHMsXG4gIGNlbGxGb3JtYXR0ZXJXaXRoUHJvcHMsXG4gIG5hbWVDZWxsRm9ybWF0dGVyLFxuICBob3N0c0NvdW50Q2VsbEZvcm1hdHRlcixcbiAgZGVsZXRlQWN0aW9uQ2VsbEZvcm1hdHRlcixcbiAgY2VsbEZvcm1hdHRlcixcbn0gZnJvbSAnLi4vY29tbW9uL3RhYmxlJztcblxuY29uc3Qgc29ydENvbnRyb2xsZXJGYWN0b3J5ID0gKGFwaUNhbGwsIHNvcnRCeSwgc29ydE9yZGVyKSA9PiAoe1xuICBhcHBseTogKGJ5LCBvcmRlcikgPT4ge1xuICAgIGFwaUNhbGwoeyBzb3J0OiB7IGJ5LCBvcmRlciB9IH0pO1xuICB9LFxuICBwcm9wZXJ0eTogc29ydEJ5LFxuICBvcmRlcjogc29ydE9yZGVyLFxufSk7XG5cbi8qKlxuICogR2VuZXJhdGUgYSB0YWJsZSBzY2hlbWEgdG8gdGhlIEhhcmR3YXJlIE1vZGVscyBwYWdlLlxuICogQHBhcmFtICB7RnVuY3Rpb259IGFwaUNhbGwgYSBSZWR1eCBhc3luYyBhY3Rpb24gdGhhdCBmZXRjaGVzIGFuZCBzdG9yZXMgdGFibGUgZGF0YSBpbiBSZWR1eC5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlZSBNb2RlbHNUYWJsZUFjdGlvbnMuXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICAgYnkgICAgICBieSB3aGljaCBjb2x1bW4gdGhlIHRhYmxlIGlzIHNvcnRlZC5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIG5vbmUgdGhlbiBzZXQgaXQgdG8gdW5kZWZpbmVkL251bGwuXG4gKiBAcGFyYW0gIHtTdHJpbmd9ICAgb3JkZXIgICBpbiB3aGF0IG9yZGVyIHRvIHNvcnQgYSBjb2x1bW4uIElmIG5vbmUgdGhlbiBzZXQgaXQgdG8gdW5kZWZpbmVkL251bGwuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdGhlcndpc2UsICdBU0MnIGZvciBhc2NlbmRpbmcgYW5kICdERVNDJyBmb3IgZGVzY2VuZGluZ1xuICogQHJldHVybiB7QXJyYXl9XG4gKi9cbmNvbnN0IGNyZWF0ZU1vZGVsc1RhYmxlU2NoZW1hID0gKGFwaUNhbGwsIGJ5LCBvcmRlciwgb25EZWxldGVDbGljaykgPT4ge1xuICBjb25zdCBzb3J0Q29udHJvbGxlciA9IHNvcnRDb250cm9sbGVyRmFjdG9yeShhcGlDYWxsLCBieSwgb3JkZXIpO1xuXG4gIHJldHVybiBbXG4gICAgc29ydGFibGVDb2x1bW4oJ25hbWUnLCBfXygnTmFtZScpLCA0LCBzb3J0Q29udHJvbGxlciwgW1xuICAgICAgbmFtZUNlbGxGb3JtYXR0ZXIoJ21vZGVscycpLFxuICAgIF0pLFxuICAgIHNvcnRhYmxlQ29sdW1uKCd2ZW5kb3JDbGFzcycsIF9fKCdWZW5kb3IgY2xhc3MnKSwgMywgc29ydENvbnRyb2xsZXIpLFxuICAgIHNvcnRhYmxlQ29sdW1uKCdoYXJkd2FyZU1vZGVsJywgX18oJ0hhcmR3YXJlIG1vZGVsJyksIDMsIHNvcnRDb250cm9sbGVyKSxcbiAgICBjb2x1bW4oXG4gICAgICAnaG9zdHNDb3VudCcsXG4gICAgICBfXygnSG9zdHMnKSxcbiAgICAgIFtoZWFkZXJGb3JtYXR0ZXJXaXRoUHJvcHNdLFxuICAgICAgW2hvc3RzQ291bnRDZWxsRm9ybWF0dGVyKCdtb2RlbCcpLCBjZWxsRm9ybWF0dGVyV2l0aFByb3BzXSxcbiAgICAgIHsgY2xhc3NOYW1lOiAnY29sLW1kLTEnIH0sXG4gICAgICB7IGFsaWduOiAncmlnaHQnIH1cbiAgICApLFxuICAgIGNvbHVtbihcbiAgICAgICdhY3Rpb25zJyxcbiAgICAgIF9fKCdBY3Rpb25zJyksXG4gICAgICBbaGVhZGVyRm9ybWF0dGVyV2l0aFByb3BzXSxcbiAgICAgIFtkZWxldGVBY3Rpb25DZWxsRm9ybWF0dGVyKG9uRGVsZXRlQ2xpY2spLCBjZWxsRm9ybWF0dGVyXVxuICAgICksXG4gIF07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVNb2RlbHNUYWJsZVNjaGVtYTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL01vZGVsc1RhYmxlL01vZGVsc1RhYmxlU2NoZW1hLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IHNwcmludGYsIHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCBGb3JlbWFuTW9kYWwgZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9Gb3JlbWFuTW9kYWwnO1xuaW1wb3J0IHsgTU9ERUxfREVMRVRFX01PREFMX0lEIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuY29uc3QgTW9kZWxEZWxldGVNb2RhbCA9IHByb3BzID0+IHtcbiAgY29uc3QgeyBpZCwgbmFtZSB9ID0gcHJvcHMudG9EZWxldGU7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9yZW1hbk1vZGFsXG4gICAgICBpZD17TU9ERUxfREVMRVRFX01PREFMX0lEfVxuICAgICAgdGl0bGU9e19fKCdDb25maXJtIEhhcmR3YXJlIE1vZGVsIERlbGV0aW9uJyl9XG4gICAgICBlbmZvcmNlRm9jdXNcbiAgICAgIHN1Ym1pdFByb3BzPXt7XG4gICAgICAgIHVybDogYC9hcGkvdjIvbW9kZWxzLyR7aWR9YCxcbiAgICAgICAgbWVzc2FnZTogc3ByaW50ZihcbiAgICAgICAgICBfXygnSGFyZHdhcmUgTW9kZWwgJXMgd2FzIHN1Y2Nlc3NmdWxseSBkZWxldGVkJyksXG4gICAgICAgICAgbmFtZVxuICAgICAgICApLFxuICAgICAgICBvblN1Y2Nlc3M6IHByb3BzLmZldGNoQW5kUHVzaCxcbiAgICAgICAgc3VibWl0QnRuUHJvcHM6IHtcbiAgICAgICAgICBic1N0eWxlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBidG5UZXh0OiBfXygnRGVsZXRlJyksXG4gICAgICAgIH0sXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtzcHJpbnRmKF9fKCdZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZSAlcy4gQXJlIHlvdSBzdXJlPycpLCBuYW1lKX1cbiAgICAgIDxGb3JlbWFuTW9kYWwuRm9vdGVyIC8+XG4gICAgPC9Gb3JlbWFuTW9kYWw+XG4gICk7XG59O1xuXG5Nb2RlbERlbGV0ZU1vZGFsLnByb3BUeXBlcyA9IHtcbiAgdG9EZWxldGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIGZldGNoQW5kUHVzaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG5cbk1vZGVsRGVsZXRlTW9kYWwuZGVmYXVsdFByb3BzID0ge1xuICB0b0RlbGV0ZToge30sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBNb2RlbERlbGV0ZU1vZGFsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Nb2RlbHMvTW9kZWxzUGFnZS9jb21wb25lbnRzL01vZGVsRGVsZXRlTW9kYWwuanMiLCJpbXBvcnQgVVJJIGZyb20gJ3VyaWpzJztcbmltcG9ydCBoaXN0b3J5IGZyb20gJy4uLy4uLy4uL2hpc3RvcnknO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcbmltcG9ydCB7IGJ1aWxkUXVlcnkgfSBmcm9tICcuL01vZGVsc1BhZ2VIZWxwZXJzJztcblxuaW1wb3J0IHsgTU9ERUxTX0FQSV9QQVRILCBNT0RFTFNfUEFUSCwgQVBJX1JFUVVFU1RfS0VZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuaW1wb3J0IHsgc3RyaW5naWZ5UGFyYW1zLCBnZXRQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXJsSGVscGVycyc7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsaXplTW9kZWxzID0gKCkgPT4gZGlzcGF0Y2ggPT4ge1xuICBjb25zdCBwYXJhbXMgPSBnZXRQYXJhbXMoKTtcbiAgZGlzcGF0Y2goZmV0Y2hNb2RlbHMocGFyYW1zKSk7XG4gIGlmICghaGlzdG9yeS5hY3Rpb24gPT09ICdQT1AnKSB7XG4gICAgaGlzdG9yeS5yZXBsYWNlKHtcbiAgICAgIHBhdGhuYW1lOiBNT0RFTFNfUEFUSCxcbiAgICAgIHNlYXJjaDogc3RyaW5naWZ5UGFyYW1zKHBhcmFtcyksXG4gICAgfSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaE1vZGVscyA9IChcbiAgeyBwYWdlLCBwZXJQYWdlLCBzZWFyY2hRdWVyeSwgc29ydCB9LFxuICB1cmwgPSBNT0RFTFNfQVBJX1BBVEhcbikgPT4ge1xuICBjb25zdCBzb3J0U3RyaW5nID1cbiAgICBzb3J0ICYmIE9iamVjdC5rZXlzKHNvcnQpLmxlbmd0aCA+IDAgPyBgJHtzb3J0LmJ5fSAke3NvcnQub3JkZXJ9YCA6ICcnO1xuXG4gIGNvbnN0IHVyaVdpdGhQcmFtcyA9IG5ldyBVUkkodXJsKTtcbiAgdXJpV2l0aFByYW1zLnNldFNlYXJjaCh7XG4gICAgcGFnZSxcbiAgICBwZXJfcGFnZTogcGVyUGFnZSxcbiAgICBzZWFyY2g6IHNlYXJjaFF1ZXJ5LFxuICAgIG9yZGVyOiBzb3J0U3RyaW5nLFxuICB9KTtcbiAgcmV0dXJuIGdldCh7IGtleTogQVBJX1JFUVVFU1RfS0VZLCB1cmw6IHVyaVdpdGhQcmFtcyB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmZXRjaEFuZFB1c2ggPSAocGFyYW1zID0ge30pID0+IChkaXNwYXRjaCwgZ2V0U3RhdGUpID0+IHtcbiAgY29uc3QgcXVlcnkgPSBidWlsZFF1ZXJ5KHBhcmFtcywgZ2V0U3RhdGUoKSk7XG4gIGRpc3BhdGNoKGZldGNoTW9kZWxzKHF1ZXJ5KSk7XG4gIGhpc3RvcnkucHVzaCh7XG4gICAgcGF0aG5hbWU6IE1PREVMU19QQVRILFxuICAgIHNlYXJjaDogc3RyaW5naWZ5UGFyYW1zKHF1ZXJ5KSxcbiAgfSk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Nb2RlbHMvTW9kZWxzUGFnZS9Nb2RlbHNQYWdlQWN0aW9ucy5qcyIsImltcG9ydCB7IHNuYWtlQ2FzZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHtcbiAgc2VsZWN0U29ydCxcbiAgc2VsZWN0UGFnZSxcbiAgc2VsZWN0UGVyUGFnZSxcbiAgc2VsZWN0U2VhcmNoLFxufSBmcm9tICcuL01vZGVsc1BhZ2VTZWxlY3RvcnMnO1xuXG5leHBvcnQgY29uc3QgYnVpbGRRdWVyeSA9IChxdWVyeSwgc3RhdGUpID0+IHtcbiAgY29uc3QgcXVlcnlTb3J0ID0gcGlja1NvcnQocXVlcnksIHN0YXRlKTtcblxuICByZXR1cm4ge1xuICAgIHBhZ2U6IHF1ZXJ5LnBhZ2UgfHwgc2VsZWN0UGFnZShzdGF0ZSksXG4gICAgcGVyUGFnZTogcXVlcnkucGVyUGFnZSB8fCBzZWxlY3RQZXJQYWdlKHN0YXRlKSxcbiAgICBzZWFyY2hRdWVyeTpcbiAgICAgIHF1ZXJ5LnNlYXJjaFF1ZXJ5ID09PSB1bmRlZmluZWQgPyBzZWxlY3RTZWFyY2goc3RhdGUpIDogcXVlcnkuc2VhcmNoUXVlcnksXG4gICAgLi4uKHF1ZXJ5U29ydCAmJiB7IHNvcnQ6IHF1ZXJ5U29ydCB9KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwaWNrU29ydCA9IChxdWVyeSwgc3RhdGUpID0+XG4gIGNoZWNrU29ydChxdWVyeS5zb3J0KVxuICAgID8gdHJhbnNmb3JtU29ydChxdWVyeS5zb3J0KVxuICAgIDogY2hlY2tTb3J0KGNvbXBvc2UodHJhbnNmb3JtU29ydCwgc2VsZWN0U29ydCkoc3RhdGUpKTtcblxuY29uc3QgY2hlY2tTb3J0ID0gc29ydCA9PiAoc29ydCAmJiBzb3J0LmJ5ICYmIHNvcnQub3JkZXIgPyBzb3J0IDogdW5kZWZpbmVkKTtcblxuY29uc3QgdHJhbnNmb3JtU29ydCA9IHNvcnQgPT4gKHsgLi4uc29ydCwgYnk6IHNuYWtlQ2FzZShzb3J0LmJ5KSB9KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvTW9kZWxzL01vZGVsc1BhZ2UvTW9kZWxzUGFnZUhlbHBlcnMuanMiLCJpbXBvcnQgSW1tdXRhYmxlIGZyb20gJ3NlYW1sZXNzLWltbXV0YWJsZSc7XG5cbmltcG9ydCB7XG4gIExPQURfU0VUVElOR19SRUNPUkRTLFxuICBTRVRfRURJVElOR19TRVRUSU5HLFxuICBTRVRUSU5HU19GT1JNX1NVQk1JVFRFRF9TVUNDRVNTLFxufSBmcm9tICcuL1NldHRpbmdSZWNvcmRzQ29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZSA9IEltbXV0YWJsZSh7XG4gIHNldHRpbmdzOiB7fSxcbiAgZWRpdGluZzogbnVsbCxcbn0pO1xuXG5jb25zdCByZWR1Y2VyID0gKHN0YXRlID0gaW5pdGlhbFN0YXRlLCB7IHR5cGUsIHBheWxvYWQsIHJlc3BvbnNlIH0pID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBMT0FEX1NFVFRJTkdfUkVDT1JEUzpcbiAgICAgIHJldHVybiBzdGF0ZS5zZXQoJ3NldHRpbmdzJywgcGF5bG9hZCk7XG4gICAgY2FzZSBTRVRUSU5HU19GT1JNX1NVQk1JVFRFRF9TVUNDRVNTOiB7XG4gICAgICBjb25zdCBjYXRlZ29yaXplZCA9IHN0YXRlLnNldHRpbmdzW3Jlc3BvbnNlLmNhdGVnb3J5XTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRDYXRlZ29yeSA9IGNhdGVnb3JpemVkLm1hcChpdGVtID0+XG4gICAgICAgIGl0ZW0ubmFtZSA9PT0gcmVzcG9uc2UuaWQgPyB7IC4uLml0ZW0sIHZhbHVlOiByZXNwb25zZS52YWx1ZSB9IDogaXRlbVxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdGF0ZS5zZXRJbihbJ3NldHRpbmdzJywgcmVzcG9uc2UuY2F0ZWdvcnldLCB1cGRhdGVkQ2F0ZWdvcnkpO1xuICAgIH1cbiAgICBjYXNlIFNFVF9FRElUSU5HX1NFVFRJTkc6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCdlZGl0aW5nJywgcGF5bG9hZC5zZXR0aW5nKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCByZWR1Y2VyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ1JlY29yZHMvU2V0dGluZ1JlY29yZHNSZWR1Y2VyLmpzIiwiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50LCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtcbiAgY2xlYXJOZXdQZXJzb25hbEFjY2Vzc1Rva2VuLFxuICBnZXRQZXJzb25hbEFjY2Vzc1Rva2VucyxcbiAgcmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbiBhcyByZXZva2VQZXJzb25hbEFjY2Vzc1Rva2VuQWN0aW9uLFxufSBmcm9tICcuL1BlcnNvbmFsQWNjZXNzVG9rZW5zQWN0aW9ucyc7XG5pbXBvcnQge1xuICBzZWxlY3ROZXdQZXJzb25hbEFjY2Vzc1Rva2VuLFxuICBzZWxlY3RUb2tlbnMsXG59IGZyb20gJy4vUGVyc29uYWxBY2Nlc3NUb2tlbnNTZWxlY3RvcnMnO1xuaW1wb3J0IE5ld1BlcnNvbmFsQWNjZXNzVG9rZW4gZnJvbSAnLi9OZXdQZXJzb25hbEFjY2Vzc1Rva2VuJztcbmltcG9ydCBQZXJzb25hbEFjY2Vzc1Rva2VuRm9ybSBmcm9tICcuL1BlcnNvbmFsQWNjZXNzVG9rZW5Gb3JtJztcbmltcG9ydCBQZXJzb25hbEFjY2Vzc1Rva2Vuc0xpc3QgZnJvbSAnLi9QZXJzb25hbEFjY2Vzc1Rva2Vuc0xpc3QnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7IG9wZW5Db25maXJtTW9kYWwgfSBmcm9tICcuLi8uLi9Db25maXJtTW9kYWwnO1xuXG5jb25zdCBQZXJzb25hbEFjY2Vzc1Rva2VucyA9ICh7IHVybCwgY2FuQ3JlYXRlIH0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGdldFBlcnNvbmFsQWNjZXNzVG9rZW5zKHsgdXJsIH0pKTtcbiAgfSwgW3VybCwgZGlzcGF0Y2hdKTtcblxuICBjb25zdCBuZXdQZXJzb25hbEFjY2Vzc1Rva2VuID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT5cbiAgICBzZWxlY3ROZXdQZXJzb25hbEFjY2Vzc1Rva2VuKHN0YXRlKVxuICApO1xuICBjb25zdCB0b2tlbnMgPSB1c2VTZWxlY3RvcihzdGF0ZSA9PiBzZWxlY3RUb2tlbnMoc3RhdGUpKTtcblxuICBjb25zdCBib3VuZENsZWFyTmV3UGVyc29uYWxBY2Nlc3NUb2tlbiA9ICgpID0+XG4gICAgZGlzcGF0Y2goY2xlYXJOZXdQZXJzb25hbEFjY2Vzc1Rva2VuKCkpO1xuXG4gIGNvbnN0IGJvdW5kUmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbiA9IGlkID0+IHtcbiAgICBkaXNwYXRjaChcbiAgICAgIG9wZW5Db25maXJtTW9kYWwoe1xuICAgICAgICB0aXRsZTogX18oJ1Jldm9rZSBwZXJzb25hbCBhY2Nlc3MgdG9rZW4nKSxcbiAgICAgICAgbWVzc2FnZTogX18oJ0RvIHlvdSByZWFsbHkgd2FudCB0byByZXZva2UgQWNjZXNzIFRva2VuPycpLFxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogX18oJ1Jldm9rZScpLFxuICAgICAgICBpc1dhcm5pbmc6IHRydWUsXG4gICAgICAgIG9uQ29uZmlybTogKCkgPT4gZGlzcGF0Y2gocmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbkFjdGlvbih7IHVybCwgaWQgfSkpLFxuICAgICAgfSlcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAgPE5ld1BlcnNvbmFsQWNjZXNzVG9rZW5cbiAgICAgICAgbmV3UGVyc29uYWxBY2Nlc3NUb2tlbj17bmV3UGVyc29uYWxBY2Nlc3NUb2tlbn1cbiAgICAgICAgb25EaXNtaXNzPXtib3VuZENsZWFyTmV3UGVyc29uYWxBY2Nlc3NUb2tlbn1cbiAgICAgIC8+XG4gICAgICB7dG9rZW5zLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICB7Y2FuQ3JlYXRlICYmIDxQZXJzb25hbEFjY2Vzc1Rva2VuRm9ybSB1cmw9e3VybH0gLz59XG4gICAgICAgICAgPFBlcnNvbmFsQWNjZXNzVG9rZW5zTGlzdFxuICAgICAgICAgICAgdGl0bGU9e19fKCdBY3RpdmUgUGVyc29uYWwgQWNjZXNzIFRva2VucycpfVxuICAgICAgICAgICAgdG9rZW5zPXt0b2tlbnMuZmlsdGVyKHRva2VuID0+IHRva2VuWydhY3RpdmU/J10pfVxuICAgICAgICAgICAgcmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbj17Ym91bmRSZXZva2VQZXJzb25hbEFjY2Vzc1Rva2VufVxuICAgICAgICAgICAgcmV2b2NhYmxlXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8UGVyc29uYWxBY2Nlc3NUb2tlbnNMaXN0XG4gICAgICAgICAgICB0aXRsZT17X18oJ0luYWN0aXZlIFBlcnNvbmFsIEFjY2VzcyBUb2tlbnMnKX1cbiAgICAgICAgICAgIHRva2Vucz17dG9rZW5zLmZpbHRlcih0b2tlbiA9PiAhdG9rZW5bJ2FjdGl2ZT8nXSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICkgOiAoXG4gICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1zdHJpcGVkIHRhYmxlLWhvdmVyIHRhYmxlLWZpeGVkXCI+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwiYmxhbmstc2xhdGUtcGZcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJsYW5rLXNsYXRlLXBmLWljb25cIj5cbiAgICAgICAgICAgICAgICAgIDxJY29uIHR5cGU9XCJmYVwiIG5hbWU9XCJrZXlcIiBjb2xvcj1cIiM5YzljOWNcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxoMT57X18oJ1BlcnNvbmFsIEFjY2VzcyBUb2tlbnMnKX08L2gxPlxuICAgICAgICAgICAgICAgIHtfXyhcbiAgICAgICAgICAgICAgICAgICdQZXJzb25hbCBBY2Nlc3MgVG9rZW5zIGFsbG93IHlvdSB0byBhdXRoZW50aWNhdGUgQVBJIHJlcXVlc3RzIHdpdGhvdXQgdXNpbmcgeW91ciBwYXNzd29yZCwgZS5nLiAnXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgIDxjb2RlPntgY3VybCAtdSBhZG1pbjp0b2tlbiAke2ZvcmVtYW5VcmwoXG4gICAgICAgICAgICAgICAgICAgICcvYXBpL3YyL2hvc3RzJ1xuICAgICAgICAgICAgICAgICAgKX1gfTwvY29kZT5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAge2NhbkNyZWF0ZSAmJiA8UGVyc29uYWxBY2Nlc3NUb2tlbkZvcm0gdXJsPXt1cmx9IC8+fVxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgKX1cbiAgICA8L0ZyYWdtZW50PlxuICApO1xufTtcblxuUGVyc29uYWxBY2Nlc3NUb2tlbnMucHJvcFR5cGVzID0ge1xuICB1cmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgY2FuQ3JlYXRlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgUGVyc29uYWxBY2Nlc3NUb2tlbnM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy91c2Vycy9QZXJzb25hbEFjY2Vzc1Rva2Vucy9QZXJzb25hbEFjY2Vzc1Rva2Vucy5qcyIsImltcG9ydCBVUkkgZnJvbSAndXJpanMnO1xuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcbmltcG9ydCB7IGFkZFRvYXN0IH0gZnJvbSAnLi4vLi4vVG9hc3RzTGlzdCc7XG5pbXBvcnQgeyBhamF4UmVxdWVzdEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L2FjdGlvbnMvY29tbW9uJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7XG4gIFBFUlNPTkFMX0FDQ0VTU19UT0tFTl9DTEVBUixcbiAgUEVSU09OQUxfQUNDRVNTX1RPS0VOU19SRVFVRVNULFxuICBQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX1NVQ0NFU1MsXG4gIFBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfRkFJTFVSRSxcbn0gZnJvbSAnLi9QZXJzb25hbEFjY2Vzc1Rva2Vuc0NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBnZXRQZXJzb25hbEFjY2Vzc1Rva2VucyA9ICh7IHVybCB9KSA9PiBkaXNwYXRjaCA9PiB7XG4gIGNvbnN0IHVyaSA9IG5ldyBVUkkodXJsKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuICB1cmkuc2V0U2VhcmNoKHsgcGVyX3BhZ2U6IDk5OTkgfSk7XG5cbiAgYWpheFJlcXVlc3RBY3Rpb24oe1xuICAgIGRpc3BhdGNoLFxuICAgIHVybDogdXJpLFxuICAgIHJlcXVlc3RBY3Rpb246IFBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfUkVRVUVTVCxcbiAgICBzdWNjZXNzQWN0aW9uOiBQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX1NVQ0NFU1MsXG4gICAgZmFpbGVkQWN0aW9uOiBQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX0ZBSUxVUkUsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJldm9rZVBlcnNvbmFsQWNjZXNzVG9rZW4gPSAoeyB1cmwsIGlkIH0pID0+IGFzeW5jIGRpc3BhdGNoID0+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBBUEkuZGVsZXRlKGAke3VybH0vJHtpZH1gKTtcbiAgICBkaXNwYXRjaChnZXRQZXJzb25hbEFjY2Vzc1Rva2Vucyh7IHVybCB9KSk7XG4gICAgZGlzcGF0Y2goXG4gICAgICBhZGRUb2FzdCh7XG4gICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgbWVzc2FnZTogX18oJ1Rva2VuIHdhcyBzdWNjZXNzZnVsbHkgcmV2b2tlZC4nKSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG4gICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgIGRpc3BhdGNoKFxuICAgICAgYWRkVG9hc3Qoe1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiBfXygnQ291bGQgbm90IHJldm9rZSBUb2tlbjogJykgKyBlcnJvcixcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyTmV3UGVyc29uYWxBY2Nlc3NUb2tlbiA9ICgpID0+IGRpc3BhdGNoID0+XG4gIGRpc3BhdGNoKHtcbiAgICB0eXBlOiBQRVJTT05BTF9BQ0NFU1NfVE9LRU5fQ0xFQVIsXG4gICAgcGF5bG9hZDoge30sXG4gIH0pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvdXNlcnMvUGVyc29uYWxBY2Nlc3NUb2tlbnMvUGVyc29uYWxBY2Nlc3NUb2tlbnNBY3Rpb25zLmpzIiwiaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcblxuZXhwb3J0IGNvbnN0IGFqYXhSZXF1ZXN0QWN0aW9uID0gYXN5bmMgKHtcbiAgZGlzcGF0Y2gsXG4gIHJlcXVlc3RBY3Rpb24sXG4gIHN1Y2Nlc3NBY3Rpb24sXG4gIGZhaWxlZEFjdGlvbixcbiAgdXJsLFxuICBpdGVtID0ge30sXG59KSA9PiB7XG4gIGRpc3BhdGNoKHsgdHlwZTogcmVxdWVzdEFjdGlvbiwgcGF5bG9hZDogaXRlbSB9KTtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IEFQSS5nZXQodXJsLCBpdGVtLmhlYWRlcnMgfHwge30sIGl0ZW0ucGFyYW1zIHx8IHt9KTtcbiAgICByZXR1cm4gZGlzcGF0Y2goeyB0eXBlOiBzdWNjZXNzQWN0aW9uLCBwYXlsb2FkOiB7IC4uLml0ZW0sIC4uLmRhdGEgfSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gZGlzcGF0Y2goeyB0eXBlOiBmYWlsZWRBY3Rpb24sIHBheWxvYWQ6IHsgZXJyb3IsIGl0ZW0gfSB9KTtcbiAgfVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9hY3Rpb25zL2NvbW1vbi9pbmRleC5qcyIsImV4cG9ydCBjb25zdCBzZWxlY3ROZXdQZXJzb25hbEFjY2Vzc1Rva2VuID0gc3RhdGUgPT5cbiAgc3RhdGUucGVyc29uYWxBY2Nlc3NUb2tlbnMubmV3UGVyc29uYWxBY2Nlc3NUb2tlbjtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRva2VucyA9IHN0YXRlID0+IHN0YXRlLnBlcnNvbmFsQWNjZXNzVG9rZW5zLnRva2VucztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zL1BlcnNvbmFsQWNjZXNzVG9rZW5zU2VsZWN0b3JzLmpzIiwiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEFsZXJ0IH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgQ2xpcGJvYXJkQ29weSBmcm9tICcuLi8uLi9jb21tb24vQ2xpcGJvYXJkQ29weSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbmNvbnN0IE5ld1Rva2VuSW5mbyA9ICh7IG5ld1BlcnNvbmFsQWNjZXNzVG9rZW4sIG9uRGlzbWlzcyB9KSA9PiAoXG4gIDxGcmFnbWVudD5cbiAgICB7bmV3UGVyc29uYWxBY2Nlc3NUb2tlbiAmJiAoXG4gICAgICA8QWxlcnQgdHlwZT1cInN1Y2Nlc3NcIiBvbkRpc21pc3M9e29uRGlzbWlzc30+XG4gICAgICAgIDxzdHJvbmc+e19fKCdZb3VyIE5ldyBQZXJzb25hbCBBY2Nlc3MgVG9rZW4nKX08L3N0cm9uZz5cbiAgICAgICAgPENsaXBib2FyZENvcHlcbiAgICAgICAgICB0ZXh0PXtuZXdQZXJzb25hbEFjY2Vzc1Rva2VufVxuICAgICAgICAgIHRleHRhcmVhUHJvcHM9e3sgcmVhZE9ubHk6IHRydWUsIGNsYXNzTmFtZTogJ2NvbC1tZC02Jywgcm93czogJzEnIH19XG4gICAgICAgIC8+XG4gICAgICAgIHtfXyhcbiAgICAgICAgICAnTWFrZSBzdXJlIHRvIGNvcHkgeW91ciBuZXcgcGVyc29uYWwgYWNjZXNzIHRva2VuIG5vdy4gWW91IHdvbuKAmXQgYmUgYWJsZSB0byBzZWUgaXQgYWdhaW4hJ1xuICAgICAgICApfVxuICAgICAgPC9BbGVydD5cbiAgICApfVxuICA8L0ZyYWdtZW50PlxuKTtcblxuTmV3VG9rZW5JbmZvLnByb3BUeXBlcyA9IHtcbiAgb25EaXNtaXNzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBuZXdQZXJzb25hbEFjY2Vzc1Rva2VuOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuTmV3VG9rZW5JbmZvLmRlZmF1bHRQcm9wcyA9IHtcbiAgbmV3UGVyc29uYWxBY2Nlc3NUb2tlbjogbnVsbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld1Rva2VuSW5mbztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zL05ld1BlcnNvbmFsQWNjZXNzVG9rZW4uanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0NsaXBib2FyZENvcHkvY2xpcGJvYXJkLWNvcHkuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNDE5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0ICogYXMgWXVwIGZyb20gJ3l1cCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBVVUlEIGZyb20gJ3V1aWQvdjEnO1xuaW1wb3J0IEZvcmVtYW5Gb3JtIGZyb20gJy4uLy4uL2NvbW1vbi9mb3Jtcy9Gb3JlbWFuRm9ybSc7XG5pbXBvcnQgVGV4dEZpZWxkIGZyb20gJy4uLy4uL2NvbW1vbi9mb3Jtcy9UZXh0RmllbGQnO1xuaW1wb3J0IEZvcmVtYW5Nb2RhbCBmcm9tICcuLi8uLi9Gb3JlbWFuTW9kYWwnO1xuaW1wb3J0IHsgdXNlRm9yZW1hbk1vZGFsIH0gZnJvbSAnLi4vLi4vRm9yZW1hbk1vZGFsL0ZvcmVtYW5Nb2RhbEhvb2tzJztcbmltcG9ydCB7IG1heExlbmd0aE1zZywgcmVxdWlyZWRNc2cgfSBmcm9tICcuLi8uLi9jb21tb24vZm9ybXMvdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBzdWJtaXRGb3JtIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvYWN0aW9ucy9jb21tb24vZm9ybXMnO1xuaW1wb3J0IERhdGVUaW1lIGZyb20gJy4uLy4uL2NvbW1vbi9mb3Jtcy9EYXRlVGltZS9EYXRlVGltZSc7XG5pbXBvcnQgeyBNT0RBTF9JRCB9IGZyb20gJy4vUGVyc29uYWxBY2Nlc3NUb2tlbnNDb25zdGFudHMnO1xuXG5jb25zdCB0b2tlbkZvcm1TY2hlbWEgPSBZdXAub2JqZWN0KCkuc2hhcGUoe1xuICBuYW1lOiBZdXAuc3RyaW5nKClcbiAgICAubWF4KC4uLm1heExlbmd0aE1zZygyNTQpKVxuICAgIC5yZXF1aXJlZChyZXF1aXJlZE1zZygpKSxcbiAgZXhwaXJlc19hdDogWXVwLmRhdGUoKS5taW4obmV3IERhdGUoKSwgX18oJ0Nhbm5vdCBiZSBpbiB0aGUgcGFzdCcpKSxcbn0pO1xuXG5jb25zdCBQZXJzb25hbEFjY2Vzc1Rva2VuRm9ybSA9ICh7IGNvbnRyb2xsZXIsIHVybCwgaW5pdGlhbFZhbHVlcyB9KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgeyBzZXRNb2RhbE9wZW4sIHNldE1vZGFsQ2xvc2VkIH0gPSB1c2VGb3JlbWFuTW9kYWwoe1xuICAgIGlkOiBNT0RBTF9JRCxcbiAgfSk7XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKHZhbHVlcywgYWN0aW9ucykgPT4ge1xuICAgIGRpc3BhdGNoKFxuICAgICAgc3VibWl0Rm9ybSh7XG4gICAgICAgIHVybCxcbiAgICAgICAgdmFsdWVzOiB7IC4uLnZhbHVlcywgY29udHJvbGxlciB9LFxuICAgICAgICBpdGVtOiAncGVyc29uYWxfYWNjZXNzX3Rva2VuJyxcbiAgICAgICAgbWVzc2FnZTogX18oJ1BlcnNvbmFsIEFjY2VzcyBUb2tlbiB3YXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQuJyksXG4gICAgICAgIGFjdGlvbnMsXG4gICAgICAgIHN1Y2Nlc3NDYWxsYmFjazogc2V0TW9kYWxDbG9zZWQsXG4gICAgICB9KVxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8cD5cbiAgICAgIDxCdXR0b24gYnNTdHlsZT1cInN1Y2Nlc3NcIiBjbGFzc05hbWU9XCJidG4tbGdcIiBvbkNsaWNrPXtzZXRNb2RhbE9wZW59PlxuICAgICAgICB7X18oJ0FkZCBQZXJzb25hbCBBY2Nlc3MgVG9rZW4nKX1cbiAgICAgIDwvQnV0dG9uPlxuXG4gICAgICA8Rm9yZW1hbk1vZGFsIGlkPXtNT0RBTF9JRH0gdGl0bGU9e19fKCdDcmVhdGUgUGVyc29uYWwgQWNjZXNzIFRva2VuJyl9PlxuICAgICAgICA8Rm9yZW1hbk1vZGFsLkhlYWRlciAvPlxuICAgICAgICA8Rm9yZW1hbkZvcm1cbiAgICAgICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e2luaXRpYWxWYWx1ZXN9XG4gICAgICAgICAgdmFsaWRhdGlvblNjaGVtYT17dG9rZW5Gb3JtU2NoZW1hfVxuICAgICAgICAgIG9uQ2FuY2VsPXtzZXRNb2RhbENsb3NlZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxUZXh0RmllbGRcbiAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGxhYmVsPXtfXygnTmFtZScpfVxuICAgICAgICAgICAgaW5wdXRDbGFzc05hbWU9XCJjb2wtbWQtNlwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIC8+XG4gICAgICAgICAgPERhdGVUaW1lXG4gICAgICAgICAgICBpZD17VVVJRCgpfVxuICAgICAgICAgICAgbGFiZWw9e19fKCdFeHBpcmVzJyl9XG4gICAgICAgICAgICBpc1JlcXVpcmVkPXtmYWxzZX1cbiAgICAgICAgICAgIGlucHV0Q2xhc3NOYW1lPVwiY29sLW1kLTZcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgIGlucHV0UHJvcHM9e3sgbmFtZTogJ2V4cGlyZXNfYXQnIH19XG4gICAgICAgICAgICB2YWx1ZT17bnVsbH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0ZvcmVtYW5Gb3JtPlxuICAgICAgPC9Gb3JlbWFuTW9kYWw+XG4gICAgPC9wPlxuICApO1xufTtcblxuUGVyc29uYWxBY2Nlc3NUb2tlbkZvcm0ucHJvcFR5cGVzID0ge1xuICB1cmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaW5pdGlhbFZhbHVlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgY29udHJvbGxlcjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5QZXJzb25hbEFjY2Vzc1Rva2VuRm9ybS5kZWZhdWx0UHJvcHMgPSB7XG4gIGluaXRpYWxWYWx1ZXM6IHt9LFxuICBjb250cm9sbGVyOiAncGVyc29uYWxfYWNjZXNzX3Rva2VucycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBQZXJzb25hbEFjY2Vzc1Rva2VuRm9ybTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zL1BlcnNvbmFsQWNjZXNzVG9rZW5Gb3JtLmpzIiwiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IEZpZWxkTGV2ZWxIZWxwIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJ2Zvcm1payc7XG5pbXBvcnQgRGF0ZVRpbWVQaWNrZXIgZnJvbSAnLi4vLi4vRGF0ZVRpbWVQaWNrZXIvRGF0ZVRpbWVQaWNrZXInO1xuXG5pbXBvcnQgQ29tbW9uRm9ybSBmcm9tICcuLi9Db21tb25Gb3JtJztcbmltcG9ydCB7IGRvY3VtZW50TG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0ICcuL0RhdGVUaW1lT3ZlcnJpZGVzLnNjc3MnO1xuXG5jb25zdCBEYXRlVGltZSA9ICh7XG4gIGxhYmVsLFxuICBpZCxcbiAgaW5mbyxcbiAgaXNSZXF1aXJlZCxcbiAgbG9jYWxlLFxuICBpbnB1dFByb3BzOiB7IG5hbWUgfSxcbiAgaW5wdXRQcm9wcyxcbiAgdmFsdWUsXG4gIGluaXRpYWxFcnJvcixcbn0pID0+IHtcbiAgY29uc3QgY3VycmVudExvY2FsZSA9IGxvY2FsZSB8fCBkb2N1bWVudExvY2FsZSgpO1xuXG4gIHJldHVybiAoXG4gICAgPEZpZWxkXG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgcmVuZGVyPXsoeyBmb3JtOiB7IHNldEZpZWxkVmFsdWUsIGVycm9ycyA9IHt9IH0gfSkgPT4gKFxuICAgICAgICA8Q29tbW9uRm9ybVxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICB0b3VjaGVkXG4gICAgICAgICAgZXJyb3I9e2Vycm9yc1tuYW1lXSB8fCBpbml0aWFsRXJyb3J9XG4gICAgICAgICAgcmVxdWlyZWQ9e2lzUmVxdWlyZWR9XG4gICAgICAgICAgaW5wdXRDbGFzc05hbWU9XCJjb2wtbWQtNlwiXG4gICAgICAgICAgdG9vbHRpcEhlbHA9e1xuICAgICAgICAgICAgaW5mbyAmJiAoXG4gICAgICAgICAgICAgIDxGaWVsZExldmVsSGVscFxuICAgICAgICAgICAgICAgIGJ1dHRvbkNsYXNzPVwiZmllbGQtaGVscFwiXG4gICAgICAgICAgICAgICAgY29udGVudD17PEZyYWdtZW50PntpbmZvfTwvRnJhZ21lbnQ+fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIDxEYXRlVGltZVBpY2tlclxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgaWQ9e2B0ZW1wbGF0ZS1kYXRlLWlucHV0LSR7aWR9YH1cbiAgICAgICAgICAgIGlucHV0UHJvcHM9e3tcbiAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlOiAnb2ZmJyxcbiAgICAgICAgICAgICAgLi4uaW5wdXRQcm9wcyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBsb2NhbGU9e2N1cnJlbnRMb2NhbGV9XG4gICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcbiAgICAgICAgICAgIHJlcXVpcmVkPXtpc1JlcXVpcmVkfVxuICAgICAgICAgICAgb25DaGFuZ2U9e25ld1ZhbHVlID0+IHNldEZpZWxkVmFsdWUobmFtZSwgbmV3VmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvQ29tbW9uRm9ybT5cbiAgICAgICl9XG4gICAgLz5cbiAgKTtcbn07XG5cbkRhdGVUaW1lLnByb3BUeXBlcyA9IHtcbiAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgaW5mbzogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNSZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGlkOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgbG9jYWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbnB1dFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgaW5pdGlhbEVycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuRGF0ZVRpbWUuZGVmYXVsdFByb3BzID0ge1xuICBpbmZvOiB1bmRlZmluZWQsXG4gIGlzUmVxdWlyZWQ6IGZhbHNlLFxuICBsb2NhbGU6IG51bGwsXG4gIHZhbHVlOiBuZXcgRGF0ZSgpLFxuICBpbml0aWFsRXJyb3I6IHVuZGVmaW5lZCxcbiAgaW5wdXRQcm9wczoge30sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9EYXRlVGltZS9EYXRlVGltZS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgY2h1bmssIHRpbWVzIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IERheSBmcm9tICcuL0RheSc7XG5pbXBvcnQge1xuICBhZGREYXlzLFxuICBhZGRNb250aHMsXG4gIGdldE1vbnRoU3RhcnQsXG4gIGlzRXF1YWxEYXRlLFxuICBpc1dlZWtlbmQsXG59IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vSGVhZGVyJztcblxuY2xhc3MgTW9udGhWaWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgc2VsZWN0ZWREYXRlOiBuZXcgRGF0ZSh0aGlzLnByb3BzLmRhdGUpLFxuICAgIGRhdGU6IG5ldyBEYXRlKHRoaXMucHJvcHMuZGF0ZSksXG4gIH07XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUocHJvcHMuZGF0ZSk7XG4gICAgaWYgKG5ld0RhdGUgIT09IG5ldyBEYXRlKHN0YXRlLmRhdGUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzZWxlY3RlZERhdGU6IG5ld0RhdGUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNhbGVuZGFyQXJyYXkgPSBkYXRlID0+IHtcbiAgICBjb25zdCB7IHdlZWtTdGFydHNPbiB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBtb250aFN0YXJ0ID0gZ2V0TW9udGhTdGFydChuZXcgRGF0ZShkYXRlKSk7XG4gICAgY29uc3Qgb2Zmc2V0ID0gbW9udGhTdGFydC5nZXREYXkoKSAtIHdlZWtTdGFydHNPbjtcbiAgICByZXR1cm4gY2h1bmsoXG4gICAgICB0aW1lcygzNSwgaSA9PiBhZGREYXlzKG1vbnRoU3RhcnQsIGkgLSBvZmZzZXQpKSxcbiAgICAgIDdcbiAgICApO1xuICB9O1xuXG4gIGdldFByZXZNb250aCA9ICgpID0+IHtcbiAgICBjb25zdCB7IGRhdGUgfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGU6IGFkZE1vbnRocyhkYXRlLCAtMSkgfSk7XG4gIH07XG4gIGdldE5leHRNb250aCA9ICgpID0+IHtcbiAgICBjb25zdCB7IGRhdGUgfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGU6IGFkZE1vbnRocyhkYXRlLCAxKSB9KTtcbiAgfTtcbiAgc2V0U2VsZWN0ZWQgPSBkYXkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2VsZWN0ZWREYXRlOiBkYXksXG4gICAgICBkYXRlOiBkYXksXG4gICAgfSk7XG4gICAgdGhpcy5wcm9wcy5zZXRTZWxlY3RlZChkYXkpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGxvY2FsZSwgd2Vla1N0YXJ0c09uLCB0b2dnbGVEYXRlVmlldyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IGRhdGUsIHNlbGVjdGVkRGF0ZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBjYWxlbmRhciA9IHRoaXMuY2FsZW5kYXJBcnJheShkYXRlKTtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLWRheXNcIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cInRhYmxlLWNvbmRlbnNlZFwiPlxuICAgICAgICAgIDxIZWFkZXJcbiAgICAgICAgICAgIGdldFByZXZNb250aD17dGhpcy5nZXRQcmV2TW9udGh9XG4gICAgICAgICAgICBnZXROZXh0TW9udGg9e3RoaXMuZ2V0TmV4dE1vbnRofVxuICAgICAgICAgICAgZGF0ZT17ZGF0ZX1cbiAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgd2Vla1N0YXJ0c09uPXt3ZWVrU3RhcnRzT259XG4gICAgICAgICAgICB0b2dnbGVEYXRlVmlldz17dG9nZ2xlRGF0ZVZpZXd9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICB7Y2FsZW5kYXIubWFwKChlbCwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgIDx0ciBrZXk9e2lkeH0+XG4gICAgICAgICAgICAgICAge2VsLm1hcChkYXkgPT4gKFxuICAgICAgICAgICAgICAgICAgPERheVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2RheX1cbiAgICAgICAgICAgICAgICAgICAgZGF5PXtkYXl9XG4gICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkPXt0aGlzLnNldFNlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWVzQXJyYXk9e3tcbiAgICAgICAgICAgICAgICAgICAgICB3ZWVrZW5kOiBpc1dlZWtlbmQoZGF5KSxcbiAgICAgICAgICAgICAgICAgICAgICBvbGQ6IGRheS5nZXRNb250aCgpICE9PSBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBpc0VxdWFsRGF0ZShkYXksIHNlbGVjdGVkRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgdG9kYXk6IGlzRXF1YWxEYXRlKGRheSwgbmV3IERhdGUoKSksXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuTW9udGhWaWV3LnByb3BUeXBlcyA9IHtcbiAgZGF0ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgc2V0U2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLFxuICB0b2dnbGVEYXRlVmlldzogUHJvcFR5cGVzLmZ1bmMsXG4gIGxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2Vla1N0YXJ0c09uOiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuTW9udGhWaWV3LmRlZmF1bHRQcm9wcyA9IHtcbiAgc2V0U2VsZWN0ZWQ6IG51bGwsXG4gIHRvZ2dsZURhdGVWaWV3OiBudWxsLFxuICBkYXRlOiBuZXcgRGF0ZSgpLFxuICBsb2NhbGU6ICdlbi1VUycsXG4gIHdlZWtTdGFydHNPbjogMSxcbn07XG5leHBvcnQgZGVmYXVsdCBNb250aFZpZXc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZUNvbXBvbmVudHMvTW9udGhWaWV3LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuY29uc3QgRGF5ID0gKHsgZGF5LCBzZXRTZWxlY3RlZCwgY2xhc3NOYW1lc0FycmF5IH0pID0+IHtcbiAgY29uc3QgZGF0ZSA9IGRheS5nZXREYXRlKCk7XG4gIHJldHVybiAoXG4gICAgPHRkXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ2RheScsIGNsYXNzTmFtZXNBcnJheSl9XG4gICAgICBkYXRhLWRheT17ZGF0ZX1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgc2V0U2VsZWN0ZWQoZGF5KTtcbiAgICAgIH19XG4gICAgPlxuICAgICAge2RhdGV9XG4gICAgPC90ZD5cbiAgKTtcbn07XG5cbkRheS5wcm9wVHlwZXMgPSB7XG4gIGRheTogUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSkuaXNSZXF1aXJlZCxcbiAgY2xhc3NOYW1lc0FycmF5OiBQcm9wVHlwZXMub2JqZWN0LFxuICBzZXRTZWxlY3RlZDogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5EYXkuZGVmYXVsdFByb3BzID0ge1xuICBzZXRTZWxlY3RlZDogbnVsbCxcbiAgY2xhc3NOYW1lc0FycmF5OiBbXSxcbn07XG5leHBvcnQgZGVmYXVsdCBEYXk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZUNvbXBvbmVudHMvRGF5LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyBZRUFSIH0gZnJvbSAnLi9EYXRlQ29uc3RhbnRzJztcbmltcG9ydCB7IGdldFdlZWtBcnJheSB9IGZyb20gJy4vSGVhZGVySGVscGVycyc7XG5cbmNvbnN0IEhlYWRlciA9ICh7XG4gIGdldE5leHRNb250aCxcbiAgZ2V0UHJldk1vbnRoLFxuICB0b2dnbGVEYXRlVmlldyxcbiAgd2Vla1N0YXJ0c09uLFxuICBkYXRlLFxuICBsb2NhbGUsXG59KSA9PiB7XG4gIGRhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgY29uc3QgbW9udGggPSBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwge1xuICAgIG1vbnRoOiAnbG9uZycsXG4gIH0pLmZvcm1hdChkYXRlKTtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgZGF5c09mVGhlV2VlayA9IGdldFdlZWtBcnJheSh3ZWVrU3RhcnRzT24pO1xuICByZXR1cm4gKFxuICAgIDx0aGVhZD5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIGNsYXNzTmFtZT1cInByZXZcIiBvbkNsaWNrPXtnZXRQcmV2TW9udGh9PlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJmYVwiIG5hbWU9XCJhbmdsZS1sZWZ0XCIgLz5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoXG4gICAgICAgICAgY2xhc3NOYW1lPVwicGlja2VyLXN3aXRjaFwiXG4gICAgICAgICAgY29sU3Bhbj1cIjVcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZURhdGVWaWV3KFlFQVIpfVxuICAgICAgICA+XG4gICAgICAgICAge21vbnRofSB7eWVhcn1cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoIGNsYXNzTmFtZT1cIm5leHRcIiBvbkNsaWNrPXtnZXROZXh0TW9udGh9PlxuICAgICAgICAgIDxJY29uIHR5cGU9XCJmYVwiIG5hbWU9XCJhbmdsZS1yaWdodFwiIC8+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICB7ZGF5c09mVGhlV2Vlay5tYXAoKGRheSwgaWR4KSA9PiAoXG4gICAgICAgICAgPHRoIGtleT17aWR4fSBjbGFzc05hbWU9XCJkb3dcIj5cbiAgICAgICAgICAgIHtkYXl9XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgKSl9XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICk7XG59O1xuXG5IZWFkZXIucHJvcFR5cGVzID0ge1xuICBkYXRlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuaW5zdGFuY2VPZihEYXRlKSwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICBnZXRQcmV2TW9udGg6IFByb3BUeXBlcy5mdW5jLFxuICBnZXROZXh0TW9udGg6IFByb3BUeXBlcy5mdW5jLFxuICB0b2dnbGVEYXRlVmlldzogUHJvcFR5cGVzLmZ1bmMsXG4gIGxvY2FsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgd2Vla1N0YXJ0c09uOiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuSGVhZGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgZGF0ZTogbmV3IERhdGUoKSxcbiAgZ2V0UHJldk1vbnRoOiBudWxsLFxuICBnZXROZXh0TW9udGg6IG51bGwsXG4gIHRvZ2dsZURhdGVWaWV3OiBudWxsLFxuICBsb2NhbGU6ICdlbi1VUycsXG4gIHdlZWtTdGFydHNPbjogMSxcbn07XG5leHBvcnQgZGVmYXVsdCBIZWFkZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZUNvbXBvbmVudHMvSGVhZGVyLmpzIiwiaW1wb3J0IHsgdGltZXMgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgYWRkRGF5cywgZ2V0V2Vla1N0YXJ0IH0gZnJvbSAnLi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IGdldFdlZWtBcnJheSA9ICh3ZWVrU3RhcnRzT24sIGxvY2FsZSkgPT4ge1xuICBjb25zdCB3ZWVrU3RhcnQgPSBnZXRXZWVrU3RhcnQobmV3IERhdGUoKSk7XG4gIGNvbnN0IGRheUZvcm1hdCA9XG4gICAgSW50bC5EYXRlVGltZUZvcm1hdChsb2NhbGUsIHsgd2Vla2RheTogJ3Nob3J0JyB9KS5mb3JtYXQod2Vla1N0YXJ0KS5sZW5ndGggPlxuICAgIDNcbiAgICAgID8gJ25hcnJvdydcbiAgICAgIDogJ3Nob3J0JztcbiAgcmV0dXJuIHRpbWVzKDcsIGkgPT5cbiAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KGxvY2FsZSwgeyB3ZWVrZGF5OiBkYXlGb3JtYXQgfSlcbiAgICAgIC5mb3JtYXQoYWRkRGF5cyh3ZWVrU3RhcnQsIChpICsgd2Vla1N0YXJ0c09uKSAlIDcpKVxuICAgICAgLnNsaWNlKDAsIDIpXG4gICk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL0hlYWRlckhlbHBlcnMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHRpbWVzIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgYWRkTW9udGhzLCBhZGRZZWFycyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgTU9OVEgsIERBWSB9IGZyb20gJy4vRGF0ZUNvbnN0YW50cyc7XG5cbmNsYXNzIFllYXJWaWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgZGF0ZTogbmV3IERhdGUodGhpcy5wcm9wcy5kYXRlKSxcbiAgICBzZWxlY3RlZERhdGU6IG5ldyBEYXRlKHRoaXMucHJvcHMuZGF0ZSksXG4gIH07XG4gIGdldE1vbnRoQXJyYXkgPSAoKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCcxLzEvMScpO1xuICAgIHJldHVybiB0aW1lcygxMiwgaSA9PlxuICAgICAgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLnByb3BzLmxvY2FsZSwgeyBtb250aDogJ3Nob3J0JyB9KS5mb3JtYXQoXG4gICAgICAgIGFkZE1vbnRocyhkYXRlLCBpKVxuICAgICAgKVxuICAgICk7XG4gIH07XG4gIGdldFByZXZZZWFyID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgZGF0ZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLnNldFN0YXRlKHsgZGF0ZTogYWRkWWVhcnMoZGF0ZSwgLTEpIH0pO1xuICB9O1xuICBnZXROZXh0WWVhciA9ICgpID0+IHtcbiAgICBjb25zdCB7IGRhdGUgfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGU6IGFkZFllYXJzKGRhdGUsIDEpIH0pO1xuICB9O1xuICBzZXRTZWxlY3RlZE1vbnRoID0gbW9udGggPT4ge1xuICAgIGNvbnN0IHsgZGF0ZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICBkYXRlLnNldE1vbnRoKG1vbnRoKTtcbiAgICB0aGlzLnByb3BzLnNldFNlbGVjdGVkKGRhdGUpO1xuICAgIHRoaXMucHJvcHMudG9nZ2xlRGF0ZVZpZXcoTU9OVEgpO1xuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGRhdGUsIHNlbGVjdGVkRGF0ZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBbY3Vyck1vbnRoLCBjdXJyWWVhcl0gPSBbZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldEZ1bGxZZWFyKCldO1xuICAgIGNvbnN0IHNlbGVjdGVkWWVhciA9IHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoQXJyYXkgPSB0aGlzLmdldE1vbnRoQXJyYXkoKTtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXRlcGlja2VyLW1vbnRoc1wiPlxuICAgICAgICA8dGFibGUgY2xhc3NOYW1lPVwidGFibGUtY29uZGVuc2VkXCI+XG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwicHJldlwiIG9uQ2xpY2s9e3RoaXMuZ2V0UHJldlllYXJ9PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi1sZWZ0XCIgLz5cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicGlja2VyLXN3aXRjaFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5wcm9wcy50b2dnbGVEYXRlVmlldyhEQVkpfVxuICAgICAgICAgICAgICAgIGNvbFNwYW49XCI1XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjdXJyWWVhcn1cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cIm5leHRcIiBvbkNsaWNrPXt0aGlzLmdldE5leHRZZWFyfT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnbHlwaGljb24gZ2x5cGhpY29uLWNoZXZyb24tcmlnaHRcIiAvPlxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRkIGNvbFNwYW49XCI3XCI+XG4gICAgICAgICAgICAgICAge21vbnRoQXJyYXkubWFwKChtb250aCwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0aGlzLnNldFNlbGVjdGVkTW9udGgoaWR4KX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKCdtb250aCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGlkeCA9PT0gY3Vyck1vbnRoICYmIHNlbGVjdGVkWWVhciA9PT0gY3VyclllYXIsXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2lkeH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge21vbnRofVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5ZZWFyVmlldy5wcm9wVHlwZXMgPSB7XG4gIGRhdGU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5pbnN0YW5jZU9mKERhdGUpLCBQcm9wVHlwZXMuc3RyaW5nXSksXG4gIHNldFNlbGVjdGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgdG9nZ2xlRGF0ZVZpZXc6IFByb3BUeXBlcy5mdW5jLFxuICBsb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5ZZWFyVmlldy5kZWZhdWx0UHJvcHMgPSB7XG4gIHNldFNlbGVjdGVkOiBub29wLFxuICB0b2dnbGVEYXRlVmlldzogbm9vcCxcbiAgZGF0ZTogbmV3IERhdGUoKSxcbiAgbG9jYWxlOiAnZW4tVVMnLFxufTtcbmV4cG9ydCBkZWZhdWx0IFllYXJWaWV3O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL1llYXJWaWV3LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB0aW1lcyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBhZGRZZWFycyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgRGVjYWRlVmlld0hlYWRlciB9IGZyb20gJy4vRGVjYWRlVmlld0hlYWRlcic7XG5pbXBvcnQgeyBEZWNhZGVWaWV3VGFibGUgfSBmcm9tICcuL0RlY2FkZVZpZXdUYWJsZSc7XG5pbXBvcnQgeyBZRUFSIH0gZnJvbSAnLi9EYXRlQ29uc3RhbnRzJztcblxuY2xhc3MgRGVjYWRlVmlldyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIGRhdGU6IG5ldyBEYXRlKHRoaXMucHJvcHMuZGF0ZSksXG4gICAgc2VsZWN0ZWREYXRlOiBuZXcgRGF0ZSh0aGlzLnByb3BzLmRhdGUpLFxuICB9O1xuICBnZXRZZWFyQXJyYXkgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBkYXRlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGRhdGUuc2V0RnVsbFllYXIoTWF0aC5mbG9vcihkYXRlLmdldEZ1bGxZZWFyKCkgLyAxMCkgKiAxMCk7XG4gICAgcmV0dXJuIHRpbWVzKDEyLCBpID0+IGFkZFllYXJzKGRhdGUsIGkpLmdldEZ1bGxZZWFyKCkpO1xuICB9O1xuICBnZXRQcmV2RGVjYWRlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgZGF0ZSB9ID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLnNldFN0YXRlKHsgZGF0ZTogYWRkWWVhcnMoZGF0ZSwgLTEwKSB9KTtcbiAgfTtcbiAgZ2V0TmV4dERlY2FkZSA9ICgpID0+IHtcbiAgICBjb25zdCB7IGRhdGUgfSA9IHRoaXMuc3RhdGU7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGU6IGFkZFllYXJzKGRhdGUsIDEwKSB9KTtcbiAgfTtcbiAgc2V0U2VsZWN0ZWRZZWFyID0geWVhciA9PiB7XG4gICAgY29uc3QgeyBzZXRTZWxlY3RlZCwgdG9nZ2xlRGF0ZVZpZXcgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBkYXRlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGRhdGUuc2V0RnVsbFllYXIoeWVhcik7XG4gICAgc2V0U2VsZWN0ZWQoZGF0ZSk7XG4gICAgdG9nZ2xlRGF0ZVZpZXcoWUVBUik7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZGF0ZSwgc2VsZWN0ZWREYXRlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IGN1cnJEZWNhZGUgPSBNYXRoLmZsb29yKGRhdGUuZ2V0RnVsbFllYXIoKSAvIDEwKSAqIDEwO1xuICAgIGNvbnN0IHNlbGVjdGVkWWVhciA9IHNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IHllYXJBcnJheSA9IHRoaXMuZ2V0WWVhckFycmF5KCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGF0ZXBpY2tlci15ZWFyc1wiPlxuICAgICAgICA8dGFibGUgY2xhc3NOYW1lPVwidGFibGUtY29uZGVuc2VkXCI+XG4gICAgICAgICAgPERlY2FkZVZpZXdIZWFkZXJcbiAgICAgICAgICAgIGN1cnJEZWNhZGU9e2N1cnJEZWNhZGV9XG4gICAgICAgICAgICBnZXROZXh0RGVjYWRlPXt0aGlzLmdldE5leHREZWNhZGV9XG4gICAgICAgICAgICBnZXRQcmV2RGVjYWRlPXt0aGlzLmdldFByZXZEZWNhZGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8RGVjYWRlVmlld1RhYmxlXG4gICAgICAgICAgICBzZWxlY3RlZFllYXI9e3NlbGVjdGVkWWVhcn1cbiAgICAgICAgICAgIHllYXJBcnJheT17eWVhckFycmF5fVxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRZZWFyPXt0aGlzLnNldFNlbGVjdGVkWWVhcn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5EZWNhZGVWaWV3LnByb3BUeXBlcyA9IHtcbiAgZGF0ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgc2V0U2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLFxuICB0b2dnbGVEYXRlVmlldzogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5EZWNhZGVWaWV3LmRlZmF1bHRQcm9wcyA9IHtcbiAgc2V0U2VsZWN0ZWQ6IG5vb3AsXG4gIHRvZ2dsZURhdGVWaWV3OiBub29wLFxuICBkYXRlOiBuZXcgRGF0ZSgpLFxufTtcbmV4cG9ydCBkZWZhdWx0IERlY2FkZVZpZXc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvRGF0ZUNvbXBvbmVudHMvRGVjYWRlVmlldy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IERlY2FkZVZpZXdIZWFkZXIgPSAoe1xuICBjdXJyRGVjYWRlLFxuICBnZXRQcmV2RGVjYWRlLFxuICBnZXROZXh0RGVjYWRlLFxufSkgPT4gKFxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoIGNsYXNzTmFtZT1cInByZXZcIiBvbkNsaWNrPXtnZXRQcmV2RGVjYWRlfT5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLWxlZnRcIiAvPlxuICAgICAgPC90aD5cbiAgICAgIDx0aCBjbGFzc05hbWU9XCJwaWNrZXItc3dpdGNoXCIgZGF0YS1hY3Rpb249XCJwaWNrZXJTd2l0Y2hcIiBjb2xTcGFuPVwiNVwiPlxuICAgICAgICB7YCR7Y3VyckRlY2FkZX0tJHtjdXJyRGVjYWRlICsgMTF9YH1cbiAgICAgIDwvdGg+XG4gICAgICA8dGggY2xhc3NOYW1lPVwibmV4dFwiIG9uQ2xpY2s9e2dldE5leHREZWNhZGV9PlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnbHlwaGljb24gZ2x5cGhpY29uLWNoZXZyb24tcmlnaHRcIiAvPlxuICAgICAgPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuKTtcblxuRGVjYWRlVmlld0hlYWRlci5wcm9wVHlwZXMgPSB7XG4gIGN1cnJEZWNhZGU6IFByb3BUeXBlcy5udW1iZXIsXG4gIGdldFByZXZEZWNhZGU6IFByb3BUeXBlcy5mdW5jLFxuICBnZXROZXh0RGVjYWRlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5EZWNhZGVWaWV3SGVhZGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY3VyckRlY2FkZTogMjAsXG4gIGdldFByZXZEZWNhZGU6IG5vb3AsXG4gIGdldE5leHREZWNhZGU6IG5vb3AsXG59O1xuZXhwb3J0IGRlZmF1bHQgRGVjYWRlVmlld0hlYWRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9EYXRlQ29tcG9uZW50cy9EZWNhZGVWaWV3SGVhZGVyLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgRGVjYWRlVmlld1RhYmxlID0gKHtcbiAgeWVhckFycmF5LFxuICBzZWxlY3RlZFllYXIsXG4gIHNldFNlbGVjdGVkWWVhcixcbn0pID0+IChcbiAgPHRib2R5PlxuICAgIDx0cj5cbiAgICAgIDx0ZCBjb2xTcGFuPVwiN1wiPlxuICAgICAgICB7eWVhckFycmF5Lm1hcCh5ZWFyID0+IChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWRZZWFyKHllYXIpfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgeWVhciAke3llYXIgPT09IHNlbGVjdGVkWWVhciA/ICdhY3RpdmUnIDogJyd9YH1cbiAgICAgICAgICAgIGtleT17eWVhcn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eWVhcn1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICkpfVxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuKTtcblxuRGVjYWRlVmlld1RhYmxlLnByb3BUeXBlcyA9IHtcbiAgeWVhckFycmF5OiBQcm9wVHlwZXMuYXJyYXksXG4gIHNlbGVjdGVkWWVhcjogUHJvcFR5cGVzLm51bWJlcixcbiAgc2V0U2VsZWN0ZWRZZWFyOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5EZWNhZGVWaWV3VGFibGUuZGVmYXVsdFByb3BzID0ge1xuICB5ZWFyQXJyYXk6IFtdLFxuICBzZWxlY3RlZFllYXI6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSxcbiAgc2V0U2VsZWN0ZWRZZWFyOiBub29wLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGVjYWRlVmlld1RhYmxlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL0RhdGVUaW1lUGlja2VyL0RhdGVDb21wb25lbnRzL0RlY2FkZVZpZXdUYWJsZS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7IEhPVVIgfSBmcm9tICcuL1RpbWVDb25zdGFudHMnO1xuXG5jbGFzcyBQaWNrVGltZVRhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc2V0VGltZSA9IChuZXdUaW1lLCB0eXBlKSA9PiB7XG4gICAgY29uc3QgeyB0aW1lLCBzZXRTZWxlY3RlZCwgdG9nZ2xlVGltZVRhYmxlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGhvdXJzID0gdGltZS5nZXRIb3VycygpO1xuICAgIG5ld1RpbWUgPSBwYXJzZUludChuZXdUaW1lLCAxMCk7XG4gICAgaWYgKHR5cGUgPT09ICdtaW51dGUnKSB0aW1lLnNldE1pbnV0ZXMobmV3VGltZSk7XG4gICAgZWxzZSBpZiAodHlwZSA9PT0gJ2hvdXInKSB7XG4gICAgICB0aW1lLnNldEhvdXJzKGhvdXJzIDwgMTIgPyBuZXdUaW1lICUgMTIgOiAobmV3VGltZSAlIDEyKSArIDEyKTtcbiAgICB9XG4gICAgc2V0U2VsZWN0ZWQodGltZSk7XG4gICAgdG9nZ2xlVGltZVRhYmxlKCk7XG4gIH07XG4gIGdldFRpbWVUYWJsZSA9IChhcnJheSwgdHlwZSkgPT4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgdGltZXBpY2tlci0ke3R5cGV9c2B9PlxuICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cInRhYmxlLWNvbmRlbnNlZFwiPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAge2FycmF5Lm1hcCgocm93LCBpZHgpID0+IChcbiAgICAgICAgICAgIDx0ciBrZXk9e2lkeH0+XG4gICAgICAgICAgICAgIHtyb3cubWFwKGhvdXIgPT4gKFxuICAgICAgICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgICAgICAga2V5PXtob3VyfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXt0eXBlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5zZXRUaW1lKGhvdXIsIHR5cGUpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtob3VyfVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG4gICk7XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBob3Vyc0FycmF5ID0gW1xuICAgICAgWycxMicsICcwMScsICcwMicsICcwMyddLFxuICAgICAgWycwNCcsICcwNScsICcwNicsICcwNyddLFxuICAgICAgWycwOCcsICcwOScsICcxMCcsICcxMSddLFxuICAgIF07XG4gICAgY29uc3QgbWludXRlc0FycmF5ID0gW1xuICAgICAgWycwMCcsICcwNScsICcxMCcsICcxNSddLFxuICAgICAgWycyMCcsICcyNScsICczMCcsICczNSddLFxuICAgICAgWyc0MCcsICc0NScsICc1MCcsICc1NSddLFxuICAgIF07XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudHlwZSA9PT0gSE9VUlxuICAgICAgPyB0aGlzLmdldFRpbWVUYWJsZShob3Vyc0FycmF5LCAnaG91cicpXG4gICAgICA6IHRoaXMuZ2V0VGltZVRhYmxlKG1pbnV0ZXNBcnJheSwgJ21pbnV0ZScpO1xuICB9XG59XG5QaWNrVGltZVRhYmxlLnByb3BUeXBlcyA9IHtcbiAgdGltZTogUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSkuaXNSZXF1aXJlZCxcbiAgc2V0U2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLFxuICB0b2dnbGVUaW1lVGFibGU6IFByb3BUeXBlcy5mdW5jLFxuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59O1xuUGlja1RpbWVUYWJsZS5kZWZhdWx0UHJvcHMgPSB7XG4gIHNldFNlbGVjdGVkOiBub29wLFxuICB0b2dnbGVUaW1lVGFibGU6IG5vb3AsXG59O1xuZXhwb3J0IGRlZmF1bHQgUGlja1RpbWVUYWJsZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9EYXRlVGltZVBpY2tlci9UaW1lQ29tcG9uZW50cy9QaWNrVGltZVRhYmxlLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgSE9VUiwgTUlOVVRFIH0gZnJvbSAnLi9UaW1lQ29uc3RhbnRzJztcblxuY2xhc3MgUGlja1RpbWVDbG9jayBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRlID0ge1xuICAgIGFtcG06IHRoaXMucHJvcHMudGltZS5nZXRIb3VycygpID49IDEyID8gJ1BNJyA6ICdBTScsXG4gIH07XG4gIGNvbXBvbmVudERpZFVwZGF0ZSA9IHByZXZQcm9wcyA9PiB7XG4gICAgY29uc3QgbmV3VGltZSA9IHRoaXMucHJvcHMudGltZTtcbiAgICBpZiAocHJldlByb3BzLnRpbWUgIT09IG5ld1RpbWUpIHtcbiAgICAgIHRoaXMuc2V0QU1QTShuZXdUaW1lKTtcbiAgICB9XG4gIH07XG4gIHNldEFNUE0gPSB0aW1lID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHsgYW1wbTogdGltZS5nZXRIb3VycygpID49IDEyID8gJ1BNJyA6ICdBTScgfSk7XG4gIH07XG4gIHNldFRpbWUgPSAodHlwZSwgYW1vdW50KSA9PiB7XG4gICAgY29uc3QgeyB0aW1lIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICh0eXBlID09PSBIT1VSKSB7XG4gICAgICB0aW1lLnNldEhvdXJzKHRpbWUuZ2V0SG91cnMoKSArIGFtb3VudCk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBNSU5VVEUpIHtcbiAgICAgIHRpbWUuc2V0TWludXRlcyh0aW1lLmdldE1pbnV0ZXMoKSArIGFtb3VudCk7XG4gICAgfVxuICAgIHRoaXMucHJvcHMuc2V0U2VsZWN0ZWQodGltZSk7XG4gIH07XG4gIHRvZ2dsZUFNUE0gPSAoKSA9PiB7XG4gICAgY29uc3QgeyB0aW1lIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICh0aGlzLnN0YXRlLmFtcG0gPT09ICdBTScpIHtcbiAgICAgIHRpbWUuc2V0SG91cnModGltZS5nZXRIb3VycygpICsgMTIpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFtcG06ICdQTScgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRpbWUuc2V0SG91cnModGltZS5nZXRIb3VycygpIC0gMTIpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFtcG06ICdBTScgfSk7XG4gICAgfVxuICAgIHRoaXMucHJvcHMuc2V0U2VsZWN0ZWQodGltZSk7XG4gIH07XG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHRpbWUsIHRvZ2dsZVRpbWVUYWJsZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBtaW51dGVzID0gdGltZS5nZXRNaW51dGVzKCk7XG4gICAgY29uc3QgaG91cnMgPSB0aW1lLmdldEhvdXJzKCkgJSAxMiB8fCAxMjtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpbWVwaWNrZXItcGlja2VyXCI+XG4gICAgICAgIDx0YWJsZT5cbiAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0ZCBvbkNsaWNrPXsoKSA9PiB0aGlzLnNldFRpbWUoSE9VUiwgMSl9PlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT1cImJ0biBjbG9jay1idG4gaW5jcmVtZW50LWhvdXJcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi11cFwiIC8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwic2VwYXJhdG9yXCIgLz5cbiAgICAgICAgICAgICAgPHRkIG9uQ2xpY2s9eygpID0+IHRoaXMuc2V0VGltZShNSU5VVEUsIDEpfT5cbiAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9XCJidG4gY2xvY2stYnRuIGluY3JlbWVudC1taW5cIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi11cFwiIC8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwic2VwYXJhdG9yXCIgLz5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0ZCBvbkNsaWNrPXsoKSA9PiB0b2dnbGVUaW1lVGFibGUoSE9VUil9PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRpbWVwaWNrZXItaG91clwiPlxuICAgICAgICAgICAgICAgICAge2Ake2hvdXJzfWAucGFkU3RhcnQoMiwgJzAnKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJzZXBhcmF0b3JcIj46PC90ZD5cbiAgICAgICAgICAgICAgPHRkIG9uQ2xpY2s9eygpID0+IHRvZ2dsZVRpbWVUYWJsZShNSU5VVEUpfT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0aW1lcGlja2VyLW1pbnV0ZVwiPlxuICAgICAgICAgICAgICAgICAge2Ake21pbnV0ZXN9YC5wYWRTdGFydCgyLCAnMCcpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5IGFtcG0tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMudG9nZ2xlQU1QTSgpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmFtcG19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBjbG9jay1idG4gZGVjcmVtZW50LWhvdXJcIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5zZXRUaW1lKEhPVVIsIC0xKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJnbHlwaGljb24gZ2x5cGhpY29uLWNoZXZyb24tZG93blwiIC8+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwic2VwYXJhdG9yXCIgLz5cbiAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidG4gY2xvY2stYnRuIGRlY3JlbWVudC1taW5cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdGhpcy5zZXRUaW1lKE1JTlVURSwgLTEpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImdseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi1kb3duXCIgLz5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJzZXBhcmF0b3JcIiAvPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5QaWNrVGltZUNsb2NrLnByb3BUeXBlcyA9IHtcbiAgdGltZTogUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSkuaXNSZXF1aXJlZCxcbiAgc2V0U2VsZWN0ZWQ6IFByb3BUeXBlcy5mdW5jLFxuICB0b2dnbGVUaW1lVGFibGU6IFByb3BUeXBlcy5mdW5jLFxufTtcblBpY2tUaW1lQ2xvY2suZGVmYXVsdFByb3BzID0ge1xuICBzZXRTZWxlY3RlZDogbm9vcCxcbiAgdG9nZ2xlVGltZVRhYmxlOiBub29wLFxufTtcbmV4cG9ydCBkZWZhdWx0IFBpY2tUaW1lQ2xvY2s7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvVGltZUNvbXBvbmVudHMvUGlja1RpbWVDbG9jay5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvRGF0ZVRpbWUvRGF0ZVRpbWVPdmVycmlkZXMuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNDMyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QsIHsgRnJhZ21lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFBlcnNvbmFsQWNjZXNzVG9rZW4gZnJvbSAnLi9QZXJzb25hbEFjY2Vzc1Rva2VuJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5cbmNvbnN0IFBlcnNvbmFsQWNjZXNzVG9rZW5zTGlzdCA9ICh7XG4gIHRpdGxlLFxuICB0b2tlbnMsXG4gIHJldm9jYWJsZSxcbiAgcmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbixcbn0pID0+IChcbiAgPEZyYWdtZW50PlxuICAgIDxoMz57YCR7dGl0bGV9ICgke3Rva2Vucy5sZW5ndGh9KWB9PC9oMz5cbiAgICB7dG9rZW5zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgPHRhYmxlIGNsYXNzTmFtZT1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLXN0cmlwZWQgdGFibGUtaG92ZXIgdGFibGUtZml4ZWRcIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aD57X18oJ05hbWUnKX08L3RoPlxuICAgICAgICAgICAgPHRoPntfXygnQ3JlYXRlZCcpfTwvdGg+XG4gICAgICAgICAgICA8dGg+e3Jldm9jYWJsZSA/IF9fKCdFeHBpcmVzJykgOiBfXygnRXhwaXJlZCcpfTwvdGg+XG4gICAgICAgICAgICA8dGg+e19fKCdMYXN0IFVzZWQnKX08L3RoPlxuICAgICAgICAgICAgPHRoPntfXygnQWN0aW9ucycpfTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIHt0b2tlbnMubWFwKHRva2VuID0+IChcbiAgICAgICAgICAgIDxQZXJzb25hbEFjY2Vzc1Rva2VuXG4gICAgICAgICAgICAgIGtleT17dG9rZW4uaWR9XG4gICAgICAgICAgICAgIHsuLi50b2tlbn1cbiAgICAgICAgICAgICAgcmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbj17cmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgICl9XG4gIDwvRnJhZ21lbnQ+XG4pO1xuXG5QZXJzb25hbEFjY2Vzc1Rva2Vuc0xpc3QucHJvcFR5cGVzID0ge1xuICB0b2tlbnM6IFByb3BUeXBlcy5hcnJheS5pc1JlcXVpcmVkLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgcmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbjogUHJvcFR5cGVzLmZ1bmMsXG4gIHJldm9jYWJsZTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5QZXJzb25hbEFjY2Vzc1Rva2Vuc0xpc3QuZGVmYXVsdFByb3BzID0ge1xuICByZXZva2VQZXJzb25hbEFjY2Vzc1Rva2VuOiBub29wLFxuICB0aXRsZTogX18oJ1BlcnNvbmFsIEFjY2VzcyBUb2tlbnMnKSxcbiAgcmV2b2NhYmxlOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBlcnNvbmFsQWNjZXNzVG9rZW5zTGlzdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3VzZXJzL1BlcnNvbmFsQWNjZXNzVG9rZW5zL1BlcnNvbmFsQWNjZXNzVG9rZW5zTGlzdC9pbmRleC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgUmVsYXRpdmVEYXRlVGltZSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0ZXMvUmVsYXRpdmVEYXRlVGltZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBQZXJzb25hbEFjY2Vzc1Rva2VuID0gKHtcbiAgcmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbixcbiAgaWQsXG4gIG5hbWUsXG4gIGNyZWF0ZWRfYXQ6IGNyZWF0ZWRBdCxcbiAgZXhwaXJlc19hdDogZXhwaXJlc0F0LFxuICBsYXN0X3VzZWRfYXQ6IGxhc3RVc2VkQXQsXG4gIHVzZXJfaWQ6IHVzZXJJZCxcbiAgJ2FjdGl2ZT8nOiBpc0FjdGl2ZSxcbiAgJ3Jldm9rZWQ/JzogaXNSZXZva2VkLFxufSkgPT4gKFxuICA8dHI+XG4gICAgPHRkPntuYW1lfTwvdGQ+XG4gICAgPHRkPlxuICAgICAgPFJlbGF0aXZlRGF0ZVRpbWUgZGF0ZT17Y3JlYXRlZEF0fSAvPlxuICAgIDwvdGQ+XG4gICAgPHRkPlxuICAgICAgeyhpc1Jldm9rZWQgJiYgX18oJ1Jldm9rZWQnKSkgfHwgKCFleHBpcmVzQXQgJiYgX18oJ05ldmVyJykpIHx8IChcbiAgICAgICAgPFJlbGF0aXZlRGF0ZVRpbWUgZGF0ZT17ZXhwaXJlc0F0fSAvPlxuICAgICAgKX1cbiAgICA8L3RkPlxuICAgIDx0ZD57bGFzdFVzZWRBdCA/IDxSZWxhdGl2ZURhdGVUaW1lIGRhdGU9e2xhc3RVc2VkQXR9IC8+IDogX18oJ05ldmVyJyl9PC90ZD5cbiAgICA8dGQ+XG4gICAgICB7aXNBY3RpdmUgJiYgKFxuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gcmV2b2tlUGVyc29uYWxBY2Nlc3NUb2tlbihpZCl9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLXNtIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgPlxuICAgICAgICAgIHtfXygnUmV2b2tlJyl9XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgKX1cbiAgICA8L3RkPlxuICA8L3RyPlxuKTtcblxuUGVyc29uYWxBY2Nlc3NUb2tlbi5wcm9wVHlwZXMgPSB7XG4gIGlkOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIHVzZXJfaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBjcmVhdGVkX2F0OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHJldm9rZVBlcnNvbmFsQWNjZXNzVG9rZW46IFByb3BUeXBlcy5mdW5jLFxuICBleHBpcmVzX2F0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYXN0X3VzZWRfYXQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICdhY3RpdmU/JzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgJ3Jldm9rZWQ/JzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbn07XG5cblBlcnNvbmFsQWNjZXNzVG9rZW4uZGVmYXVsdFByb3BzID0ge1xuICByZXZva2VQZXJzb25hbEFjY2Vzc1Rva2VuOiBub29wLFxuICBleHBpcmVzX2F0OiBudWxsLFxuICBsYXN0X3VzZWRfYXQ6IG51bGwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBQZXJzb25hbEFjY2Vzc1Rva2VuO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvdXNlcnMvUGVyc29uYWxBY2Nlc3NUb2tlbnMvUGVyc29uYWxBY2Nlc3NUb2tlbnNMaXN0L1BlcnNvbmFsQWNjZXNzVG9rZW4uanMiLCJpbXBvcnQgeyBjcmVhdGVTbGljZSB9IGZyb20gJ0ByZWR1eGpzL3Rvb2xraXQnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuY29uc3QgaW5pdGlhbFN0YXRlID0geyBpc09wZW46IGZhbHNlIH07XG5cbmNvbnN0IGNvbmZpcm1Nb2RhbFNsaWNlID0gY3JlYXRlU2xpY2Uoe1xuICBuYW1lOiAnY29uZmlybU1vZGFsJyxcbiAgaW5pdGlhbFN0YXRlLFxuICByZWR1Y2Vyczoge1xuICAgIG9wZW5Db25maXJtTW9kYWwoc3RhdGUsIGFjdGlvbikge1xuICAgICAgY29uc3Qge1xuICAgICAgICB0aXRsZSA9ICcnLFxuICAgICAgICBtZXNzYWdlID0gJycsXG4gICAgICAgIG9uQ29uZmlybSA9IG5vb3AsXG4gICAgICAgIG9uQ2FuY2VsID0gbm9vcCxcbiAgICAgICAgaXNXYXJuaW5nID0gZmFsc2UsXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0ID0gbnVsbCxcbiAgICAgICAgbW9kYWxQcm9wcyA9IHt9LFxuICAgICAgfSA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICB0aXRsZSxcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgb25Db25maXJtLFxuICAgICAgICBvbkNhbmNlbCxcbiAgICAgICAgbW9kYWxQcm9wcyxcbiAgICAgICAgaXNXYXJuaW5nLFxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dCxcbiAgICAgIH07XG4gICAgfSxcbiAgICBjbG9zZUNvbmZpcm1Nb2RhbChzdGF0ZSkge1xuICAgICAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcbiAgICB9LFxuICB9LFxufSk7XG5cbmNvbnN0IHsgbmFtZSwgcmVkdWNlciwgYWN0aW9ucyB9ID0gY29uZmlybU1vZGFsU2xpY2U7XG5cbmV4cG9ydCBjb25zdCB7IG9wZW5Db25maXJtTW9kYWwsIGNsb3NlQ29uZmlybU1vZGFsIH0gPSBhY3Rpb25zO1xuXG5leHBvcnQgY29uc3QgcmVkdWNlcnMgPSB7IFtuYW1lXTogcmVkdWNlciB9O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Q29uZmlybU1vZGFsID0gc3RhdGUgPT4gc3RhdGVbbmFtZV07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Db25maXJtTW9kYWwvc2xpY2UuanMiLCJpbXBvcnQgSW1tdXRhYmxlIGZyb20gJ3NlYW1sZXNzLWltbXV0YWJsZSc7XG5pbXBvcnQge1xuICBQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX1JFUVVFU1QsXG4gIFBFUlNPTkFMX0FDQ0VTU19UT0tFTlNfU1VDQ0VTUyxcbiAgUEVSU09OQUxfQUNDRVNTX1RPS0VOU19GQUlMVVJFLFxuICBQRVJTT05BTF9BQ0NFU1NfVE9LRU5fRk9STV9TVUJNSVRURUQsXG4gIFBFUlNPTkFMX0FDQ0VTU19UT0tFTl9DTEVBUixcbn0gZnJvbSAnLi9QZXJzb25hbEFjY2Vzc1Rva2Vuc0NvbnN0YW50cyc7XG5cbmNvbnN0IGluaXRpYWxTdGF0ZSA9IEltbXV0YWJsZSh7IHRva2VuczogW10gfSk7XG5cbmV4cG9ydCBkZWZhdWx0IChzdGF0ZSA9IGluaXRpYWxTdGF0ZSwgeyB0eXBlLCBwYXlsb2FkIH0pID0+IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX1JFUVVFU1Q6XG4gICAgY2FzZSBQRVJTT05BTF9BQ0NFU1NfVE9LRU5TX1NVQ0NFU1M6XG4gICAgICByZXR1cm4gc3RhdGUuc2V0KCd0b2tlbnMnLCBwYXlsb2FkLnJlc3VsdHMgfHwgW10pO1xuICAgIGNhc2UgUEVSU09OQUxfQUNDRVNTX1RPS0VOU19GQUlMVVJFOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldChwYXlsb2FkLmlkLCB7IGVycm9yOiBwYXlsb2FkLmVycm9yIH0pO1xuICAgIGNhc2UgUEVSU09OQUxfQUNDRVNTX1RPS0VOX0ZPUk1fU1VCTUlUVEVEOiB7XG4gICAgICBjb25zdCB7IHRva2VuX3ZhbHVlOiBuZXdQZXJzb25hbEFjY2Vzc1Rva2VuLCAuLi50b2tlbiB9ID0gcGF5bG9hZC5kYXRhO1xuXG4gICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgLnNldCgnbmV3UGVyc29uYWxBY2Nlc3NUb2tlbicsIG5ld1BlcnNvbmFsQWNjZXNzVG9rZW4pXG4gICAgICAgIC5zZXQoJ3Rva2VucycsIFsuLi5zdGF0ZS50b2tlbnMsIHRva2VuXSk7XG4gICAgfVxuICAgIGNhc2UgUEVSU09OQUxfQUNDRVNTX1RPS0VOX0NMRUFSOlxuICAgICAgcmV0dXJuIHN0YXRlLnNldCgnbmV3UGVyc29uYWxBY2Nlc3NUb2tlbicsIG51bGwpO1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gIH1cbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy91c2Vycy9QZXJzb25hbEFjY2Vzc1Rva2Vucy9QZXJzb25hbEFjY2Vzc1Rva2Vuc1JlZHVjZXIuanMiLCJpbXBvcnQgY3JlYXRlTG9nZ2VyIGZyb20gJ3JlZHV4LWxvZ2dlcic7XG5pbXBvcnQgdGh1bmsgZnJvbSAncmVkdXgtdGh1bmsnO1xuaW1wb3J0IHsgcm91dGVyTWlkZGxld2FyZSB9IGZyb20gJ2Nvbm5lY3RlZC1yZWFjdC1yb3V0ZXInO1xuaW1wb3J0IHsgQVBJTWlkZGxld2FyZSB9IGZyb20gJy4uL0FQSSc7XG5pbXBvcnQgeyBJbnRlcnZhbE1pZGRsZXdhcmUgfSBmcm9tICcuL0ludGVydmFsTWlkZGxld2FyZSc7XG5pbXBvcnQgaGlzdG9yeSBmcm9tICcuLi8uLi9oaXN0b3J5JztcblxuY29uc3QgbG9nUmVkdXhUb0NvbnNvbGUgPSAoKSA9PiB7XG4gIGNvbnN0IGlzUHJvZHVjdGlvbiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbic7XG4gIGNvbnN0IGlzTG9nZ2VyID0gcHJvY2Vzcy5lbnYuUkVEVVhfTE9HR0VSO1xuXG4gIGlmICghaXNQcm9kdWN0aW9uICYmICFnbG9iYWwuX190ZXN0aW5nX18pIHtcbiAgICBpZiAoaXNMb2dnZXIgPT09IHVuZGVmaW5lZCB8fCBpc0xvZ2dlciA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGlzUHJvZHVjdGlvbiAmJiBpc0xvZ2dlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBtaWRkbGV3YXJlcyA9IFtcbiAgdGh1bmssXG4gIEludGVydmFsTWlkZGxld2FyZSxcbiAgQVBJTWlkZGxld2FyZSxcbiAgcm91dGVyTWlkZGxld2FyZShoaXN0b3J5KSxcbiAgLi4uKGxvZ1JlZHV4VG9Db25zb2xlKCkgPyBbY3JlYXRlTG9nZ2VyKCldIDogW10pLFxuXTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yZWR1eC9taWRkbGV3YXJlcy9pbmRleC5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUkVEVVhfTE9HR0VSX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwgXCJfX0ZPUkVNQU5fVkVORE9SX19SRURVWF9MT0dHRVJfX1wiXG4vLyBtb2R1bGUgaWQgPSA0Mzhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIm1vZHVsZS5leHBvcnRzID0gX19GT1JFTUFOX1ZFTkRPUl9fUkVEVVhfVEhVTktfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFRFVYX1RIVU5LX19cIlxuLy8gbW9kdWxlIGlkID0gNDM5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9yZWFjdF9hcHAvY29tbW9uL0kxOG4nO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdENvbnRyb2xsZXJBdHRyaWJ1dGVzID0ge1xuICB0eXBlOiAnUGFyYVZpcnR1YWxTQ1NJQ29udHJvbGxlcicsXG59O1xuXG5jb25zdCBfZGVmYXVsdERpc2tBdHRyaWJ1dGVzID0ge1xuICBzaXplR2I6IDEwLFxuICBkYXRhc3RvcmU6ICcnLFxuICBzdG9yYWdlUG9kOiAnJyxcbiAgdGhpbjogZmFsc2UsXG4gIGVhZ2VyWmVybzogZmFsc2UsXG4gIG5hbWU6IF9fKCdIYXJkIGRpc2snKSxcbiAgbW9kZTogJ3BlcnNpc3RlbnQnLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHREaXNrQXR0cmlidXRlcyA9IF9kZWZhdWx0RGlza0F0dHJpYnV0ZXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcmVkdXgvYWN0aW9ucy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS5jb25zdHMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IENvbm5lY3RlZFJvdXRlciB9IGZyb20gJ2Nvbm5lY3RlZC1yZWFjdC1yb3V0ZXInO1xuaW1wb3J0IHsgQXBvbGxvUHJvdmlkZXIgfSBmcm9tICdAYXBvbGxvL2NsaWVudCc7XG5pbXBvcnQgaGlzdG9yeSBmcm9tICcuLi9oaXN0b3J5JztcbmltcG9ydCB7IGdldEZvcmVtYW5Db250ZXh0IH0gZnJvbSAnLi4vUm9vdC9Db250ZXh0L0ZvcmVtYW5Db250ZXh0JztcbmltcG9ydCBMYXlvdXQsIHsgcHJvcFR5cGVzIGFzIExheW91dFByb3BUeXBlcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvTGF5b3V0JztcbmltcG9ydCBBcHBTd2l0Y2hlciBmcm9tICcuLi9yb3V0ZXMnO1xuXG5pbXBvcnQgYXBvbGxvQ2xpZW50IGZyb20gJy4vYXBvbGxvJztcbmltcG9ydCBUb2FzdHNMaXN0IGZyb20gJy4uL2NvbXBvbmVudHMvVG9hc3RzTGlzdCc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICcuLi9jb21wb25lbnRzL2NvbW1vbi9FcnJvckJvdW5kYXJ5JztcbmltcG9ydCBDb25maXJtTW9kYWwgZnJvbSAnLi4vY29tcG9uZW50cy9Db25maXJtTW9kYWwnO1xuXG5jb25zdCBSZWFjdEFwcCA9ICh7IGxheW91dCwgbWV0YWRhdGEsIHRvYXN0cyB9KSA9PiB7XG4gIGNvbnN0IGNvbnRleHREYXRhID0geyBtZXRhZGF0YSB9O1xuICBjb25zdCBGb3JlbWFuQ29udGV4dCA9IGdldEZvcmVtYW5Db250ZXh0KGNvbnRleHREYXRhKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgaWQ9XCJyZWFjdC1hcHAtcm9vdFwiPlxuICAgICAgPEZvcmVtYW5Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0RGF0YX0+XG4gICAgICAgIDxBcG9sbG9Qcm92aWRlciBjbGllbnQ9e2Fwb2xsb0NsaWVudH0+XG4gICAgICAgICAgPENvbm5lY3RlZFJvdXRlciBoaXN0b3J5PXtoaXN0b3J5fT5cbiAgICAgICAgICAgIDxMYXlvdXQgZGF0YT17bGF5b3V0fT5cbiAgICAgICAgICAgICAgPEVycm9yQm91bmRhcnkgaGlzdG9yeT17aGlzdG9yeX0+XG4gICAgICAgICAgICAgICAgPFRvYXN0c0xpc3QgcmFpbHNNZXNzYWdlcz17dG9hc3RzfSAvPlxuICAgICAgICAgICAgICAgIDxBcHBTd2l0Y2hlciAvPlxuICAgICAgICAgICAgICAgIDxDb25maXJtTW9kYWwgLz5cbiAgICAgICAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgICAgICAgPC9MYXlvdXQ+XG4gICAgICAgICAgPC9Db25uZWN0ZWRSb3V0ZXI+XG4gICAgICAgIDwvQXBvbGxvUHJvdmlkZXI+XG4gICAgICA8L0ZvcmVtYW5Db250ZXh0LlByb3ZpZGVyPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuUmVhY3RBcHAucHJvcFR5cGVzID0ge1xuICBsYXlvdXQ6IExheW91dFByb3BUeXBlcy5kYXRhLmlzUmVxdWlyZWQsXG4gIG1ldGFkYXRhOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHRvYXN0czogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBSZWFjdEFwcDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9Sb290L1JlYWN0QXBwLmpzIiwiaW1wb3J0IEF1ZGl0cyBmcm9tICcuL0F1ZGl0cyc7XG5pbXBvcnQgTW9kZWxzIGZyb20gJy4vTW9kZWxzJztcbmltcG9ydCBIb3N0RGV0YWlscyBmcm9tICcuL0hvc3REZXRhaWxzJztcbmltcG9ydCBSZWdpc3RyYXRpb25Db21tYW5kcyBmcm9tICcuL1JlZ2lzdHJhdGlvbkNvbW1hbmRzJztcbmltcG9ydCBIb3N0U3RhdHVzZXMgZnJvbSAnLi9Ib3N0U3RhdHVzZXMnO1xuXG5leHBvcnQgY29uc3Qgcm91dGVzID0gW1xuICBBdWRpdHMsXG4gIE1vZGVscyxcbiAgSG9zdERldGFpbHMsXG4gIFJlZ2lzdHJhdGlvbkNvbW1hbmRzLFxuICBIb3N0U3RhdHVzZXMsXG5dO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9yb3V0ZXMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEF1ZGl0c1BhZ2UgZnJvbSAnLi9BdWRpdHNQYWdlJztcbmltcG9ydCB7IEFVRElUU19QQVRIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHBhdGg6IEFVRElUU19QQVRILFxuICByZW5kZXI6IHByb3BzID0+IDxBdWRpdHNQYWdlIHsuLi5wcm9wc30gLz4sXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9BdWRpdHMvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgTW9kZWxzUGFnZSBmcm9tICcuL01vZGVsc1BhZ2UnO1xuaW1wb3J0IHsgTU9ERUxTX1BBVEggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcGF0aDogTU9ERUxTX1BBVEgsXG4gIHJlbmRlcjogcHJvcHMgPT4gPE1vZGVsc1BhZ2Ugey4uLnByb3BzfSAvPixcbiAgZXhhY3Q6IHRydWUsXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Nb2RlbHMvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEhvc3REZXRhaWxzIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvSG9zdERldGFpbHMnO1xuaW1wb3J0IHsgSE9TVF9ERVRBSUxTX1BBVEggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcGF0aDogSE9TVF9ERVRBSUxTX1BBVEgsXG4gIHJlbmRlcjogcHJvcHMgPT4gPEhvc3REZXRhaWxzIHsuLi5wcm9wc30gLz4sXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Ib3N0RGV0YWlscy9pbmRleC5qcyIsIi8qIGVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqL1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTZWxlY3Rvciwgc2hhbGxvd0VxdWFsIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtcbiAgRmxleCxcbiAgRmxleEl0ZW0sXG4gIEdyaWQsXG4gIFRhYixcbiAgVGFicyxcbiAgR3JpZEl0ZW0sXG4gIEJhZGdlLFxuICBUaXRsZSxcbiAgQnJlYWRjcnVtYixcbiAgQnJlYWRjcnVtYkl0ZW0sXG4gIFRleHQsXG4gIFRleHRWYXJpYW50cyxcbiAgUGFnZVNlY3Rpb24sXG4gIFNwbGl0LFxuICBTcGxpdEl0ZW0sXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuXG5pbXBvcnQgU2tlbGV0b24gZnJvbSAncmVhY3QtbG9hZGluZy1za2VsZXRvbic7XG5pbXBvcnQgUmVsYXRpdmVEYXRlVGltZSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2NvbW1vbi9kYXRlcy9SZWxhdGl2ZURhdGVUaW1lJztcbmltcG9ydCB7XG4gIHNlbGVjdEZpbGxzSURzLFxuICBzZWxlY3RTbG90TWV0YWRhdGEsXG59IGZyb20gJy4uL2NvbW1vbi9TbG90L1Nsb3RTZWxlY3RvcnMnO1xuXG5pbXBvcnQgeyBzZWxlY3RJc0NvbGxhcHNlZCB9IGZyb20gJy4uL0xheW91dC9MYXlvdXRTZWxlY3RvcnMnO1xuaW1wb3J0IEFjdGlvbnNCYXIgZnJvbSAnLi9BY3Rpb25zQmFyJztcbmltcG9ydCB7IHJlZ2lzdGVyQ29yZVRhYnMgfSBmcm9tICcuL1RhYnMnO1xuaW1wb3J0IHsgSE9TVF9ERVRBSUxTX0FQSV9PUFRJT05TLCBUQUJTX1NMT1RfSUQgfSBmcm9tICcuL2NvbnN0cyc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXywgc3ByaW50ZiB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCBIb3N0R2xvYmFsU3RhdHVzIGZyb20gJy4vU3RhdHVzL0dsb2JhbFN0YXR1cyc7XG5pbXBvcnQgU2tlbGV0b25Mb2FkZXIgZnJvbSAnLi4vY29tbW9uL1NrZWxldG9uTG9hZGVyJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vSG9zdERldGFpbHMuc2Nzcyc7XG5pbXBvcnQgeyB1c2VBUEkgfSBmcm9tICcuLi8uLi9jb21tb24vaG9va3MvQVBJL0FQSUhvb2tzJztcbmltcG9ydCBUYWJSb3V0ZXIgZnJvbSAnLi9UYWJzL1RhYlJvdXRlcic7XG5pbXBvcnQgRXhwZXJpbWVudGFsQWxlcnQgZnJvbSAnLi9FeHBlcmltZW50YWxBbGVydCc7XG5cbmNvbnN0IEhvc3REZXRhaWxzID0gKHtcbiAgbWF0Y2g6IHtcbiAgICBwYXJhbXM6IHsgaWQgfSxcbiAgfSxcbiAgbG9jYXRpb246IHsgaGFzaCB9LFxuICBoaXN0b3J5LFxufSkgPT4ge1xuICBjb25zdCB7IHJlc3BvbnNlLCBzdGF0dXMgfSA9IHVzZUFQSShcbiAgICAnZ2V0JyxcbiAgICBgL2FwaS9ob3N0cy8ke2lkfWAsXG4gICAgSE9TVF9ERVRBSUxTX0FQSV9PUFRJT05TXG4gICk7XG4gIGNvbnN0IGlzTmF2Q29sbGFwc2VkID0gdXNlU2VsZWN0b3Ioc2VsZWN0SXNDb2xsYXBzZWQpO1xuICBjb25zdCB0YWJzID0gdXNlU2VsZWN0b3IoXG4gICAgc3RhdGUgPT4gc2VsZWN0RmlsbHNJRHMoc3RhdGUsIFRBQlNfU0xPVF9JRCksXG4gICAgc2hhbGxvd0VxdWFsXG4gICk7XG5cbiAgY29uc3Qgc2xvdE1ldGFkYXRhID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT5cbiAgICBzZWxlY3RTbG90TWV0YWRhdGEoc3RhdGUsIFRBQlNfU0xPVF9JRClcbiAgKTtcblxuICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBkdWUgdG8gdGhlIHRhYnMgb3ZlcmZsb3cgbWVjaGFuaXNtIGluIFBGNFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0YWJzPy5sZW5ndGgpIGRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemUnKSk7XG4gIH0sIFt0YWJzXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZWdpc3RlckNvcmVUYWJzKCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBhY3RpdmVUYWIgPSBkZWNvZGVVUkkoXG4gICAgaGFzaFxuICAgICAgLnNsaWNlKDIpXG4gICAgICAuc3BsaXQoJy8nKVswXVxuICAgICAgLnNwbGl0KCc/JylbMF0gLy8gUmVtb3ZlIHF1ZXJ5IHBhcmFtc1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxQYWdlU2VjdGlvblxuICAgICAgICBjbGFzc05hbWU9XCJob3N0LWRldGFpbHMtaGVhZGVyLXNlY3Rpb25cIlxuICAgICAgICBpc0ZpbGxlZFxuICAgICAgICB2YXJpYW50PVwibGlnaHRcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci10b3BcIj5cbiAgICAgICAgICA8QnJlYWRjcnVtYiBjbGFzc05hbWU9XCJob3N0LWRldGFpbHMtYnJlYWRjcnVtYlwiPlxuICAgICAgICAgICAgPEJyZWFkY3J1bWJJdGVtIHRvPVwiL2hvc3RzXCI+e19fKCdIb3N0cycpfTwvQnJlYWRjcnVtYkl0ZW0+XG4gICAgICAgICAgICA8QnJlYWRjcnVtYkl0ZW0gaXNBY3RpdmU+XG4gICAgICAgICAgICAgIHtyZXNwb25zZS5uYW1lIHx8IDxTa2VsZXRvbiAvPn1cbiAgICAgICAgICAgIDwvQnJlYWRjcnVtYkl0ZW0+XG4gICAgICAgICAgPC9CcmVhZGNydW1iPlxuICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT1cImhvc3RuYW1lLXNrZWxldG9uLXJhcHBlclwiPlxuICAgICAgICAgICAgPEdyaWRJdGVtIHNwYW49ezl9PlxuICAgICAgICAgICAgICA8U2tlbGV0b25Mb2FkZXIgc3RhdHVzPXtzdGF0dXMgfHwgU1RBVFVTLlBFTkRJTkd9PlxuICAgICAgICAgICAgICAgIHtyZXNwb25zZSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhvc3RuYW1lLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8U2tlbGV0b25Mb2FkZXIgc3RhdHVzPXtzdGF0dXMgfHwgU1RBVFVTLlBFTkRJTkd9PlxuICAgICAgICAgICAgICAgICAgICAgICAge3Jlc3BvbnNlICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG9zdG5hbWUtdHJ1bmNhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRpbmdMZXZlbD1cImg1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwiMnhsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZXNwb25zZS5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L1NrZWxldG9uTG9hZGVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPFNwbGl0IHN0eWxlPXt7IGRpc3BsYXk6ICdpbmxpbmUtZmxleCcgfX0gaGFzR3V0dGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxTcGxpdEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SG9zdEdsb2JhbFN0YXR1cyBob3N0TmFtZT17aWR9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9TcGxpdEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgPFNwbGl0SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZT4ge3Jlc3BvbnNlPy5vcGVyYXRpbmdzeXN0ZW1fbmFtZX08L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU3BsaXRJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgIDxTcGxpdEl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QmFkZ2U+e3Jlc3BvbnNlPy5hcmNoaXRlY3R1cmVfbmFtZX08L0JhZGdlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvU3BsaXRJdGVtPlxuICAgICAgICAgICAgICAgICAgICA8L1NwbGl0PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9Ta2VsZXRvbkxvYWRlcj5cbiAgICAgICAgICAgIDwvR3JpZEl0ZW0+XG4gICAgICAgICAgICA8R3JpZEl0ZW0gb2Zmc2V0PXsxMH0gc3Bhbj17Mn0+XG4gICAgICAgICAgICAgIDxGbGV4PlxuICAgICAgICAgICAgICAgIDxGbGV4SXRlbSBhbGlnbj17eyBkZWZhdWx0OiAnYWxpZ25SaWdodCcgfX0+XG4gICAgICAgICAgICAgICAgICA8QWN0aW9uc0JhclxuICAgICAgICAgICAgICAgICAgICBjb21wdXRlSWQ9e3Jlc3BvbnNlLmNvbXB1dGVfcmVzb3VyY2VfaWR9XG4gICAgICAgICAgICAgICAgICAgIGhvc3RJZD17aWR9XG4gICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zPXtyZXNwb25zZS5wZXJtaXNzaW9uc31cbiAgICAgICAgICAgICAgICAgICAgaGFzUmVwb3J0cz17ISFyZXNwb25zZS5sYXN0X3JlcG9ydH1cbiAgICAgICAgICAgICAgICAgICAgaXNCdWlsZD17cmVzcG9uc2UuYnVpbGR9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRmxleEl0ZW0+XG4gICAgICAgICAgICAgIDwvRmxleD5cbiAgICAgICAgICAgIDwvR3JpZEl0ZW0+XG4gICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgIDxTa2VsZXRvbkxvYWRlclxuICAgICAgICAgICAgc2tlbGV0b25Qcm9wcz17eyB3aWR0aDogNDAwIH19XG4gICAgICAgICAgICBzdGF0dXM9e3N0YXR1cyB8fCBTVEFUVVMuUEVORElOR31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7cmVzcG9uc2UgJiYgKFxuICAgICAgICAgICAgICA8VGV4dCBjb21wb25lbnQ9e1RleHRWYXJpYW50cy5zcGFufT5cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEYXRlVGltZSBkYXRlPXtyZXNwb25zZS5jcmVhdGVkX2F0fSBkZWZhdWx0VmFsdWU9XCJOL0FcIj5cbiAgICAgICAgICAgICAgICAgIHtkYXRlID0+XG4gICAgICAgICAgICAgICAgICAgIHNwcmludGYoX18oJ0NyZWF0ZWQgJXMgYnkgJXMnKSwgZGF0ZSwgcmVzcG9uc2Uub3duZXJfbmFtZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGF0ZVRpbWU+eycgJ31cbiAgICAgICAgICAgICAgICA8UmVsYXRpdmVEYXRlVGltZSBkYXRlPXtyZXNwb25zZS51cGRhdGVkX2F0fSBkZWZhdWx0VmFsdWU9XCJOL0FcIj5cbiAgICAgICAgICAgICAgICAgIHtkYXRlID0+IHNwcmludGYoX18oJyh1cGRhdGVkICVzKScpLCBkYXRlKX1cbiAgICAgICAgICAgICAgICA8L1JlbGF0aXZlRGF0ZVRpbWU+XG4gICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Ta2VsZXRvbkxvYWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxFeHBlcmltZW50YWxBbGVydCBob3N0SWQ9e2lkfSAvPlxuICAgICAgICB7dGFicyAmJiAoXG4gICAgICAgICAgPFRhYlJvdXRlclxuICAgICAgICAgICAgcmVzcG9uc2U9e3Jlc3BvbnNlfVxuICAgICAgICAgICAgaG9zdE5hbWU9e2lkfVxuICAgICAgICAgICAgc3RhdHVzPXtzdGF0dXN9XG4gICAgICAgICAgICB0YWJzPXt0YWJzfVxuICAgICAgICAgICAgcm91dGVyPXtoaXN0b3J5fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxUYWJzXG4gICAgICAgICAgICAgIGFjdGl2ZUtleT17YWN0aXZlVGFifVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Bob3N0LWRldGFpbHMtdGFicyB0YWItd2lkdGgtJHtcbiAgICAgICAgICAgICAgICBpc05hdkNvbGxhcHNlZCA/ICcxMzgnIDogJzI2MydcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt0YWJzLm1hcCh0YWIgPT4gKFxuICAgICAgICAgICAgICAgIDxUYWJcbiAgICAgICAgICAgICAgICAgIGtleT17dGFifVxuICAgICAgICAgICAgICAgICAgZXZlbnRLZXk9e3RhYn1cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtzbG90TWV0YWRhdGE/Llt0YWJdPy50aXRsZSB8fCB0YWJ9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1RhYnM+XG4gICAgICAgICAgPC9UYWJSb3V0ZXI+XG4gICAgICAgICl9XG4gICAgICA8L1BhZ2VTZWN0aW9uPlxuICAgIDwvPlxuICApO1xufTtcblxuSG9zdERldGFpbHMucHJvcFR5cGVzID0ge1xuICBtYXRjaDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBwYXJhbXM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9KSxcbiAgfSkuaXNSZXF1aXJlZCxcbiAgbG9jYXRpb246IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgaGFzaDogUHJvcFR5cGVzLnN0cmluZyxcbiAgfSkuaXNSZXF1aXJlZCxcbiAgaGlzdG9yeTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgSG9zdERldGFpbHM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9pbmRleC5qcyIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VTZWxlY3Rvciwgc2hhbGxvd0VxdWFsLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIEJ1dHRvbixcbiAgRHJvcGRvd25JdGVtLFxuICBEcm9wZG93bixcbiAgRHJvcGRvd25TZXBhcmF0b3IsXG4gIEtlYmFiVG9nZ2xlLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCB7XG4gIERhdGFiYXNlSWNvbixcbiAgVHJhc2hJY29uLFxuICBDbG9uZUljb24sXG4gIENvbW1lbnRJY29uLFxuICBVbmRvSWNvbixcbiAgRmlsZUludm9pY2VJY29uLFxuICBCdWlsZEljb24sXG4gIFRlcm1pbmFsSWNvbixcbn0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHsgdmlzaXQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3JlbWFuX25hdmlnYXRpb24nO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IHsgc2VsZWN0S2ViYWJJdGVtcyB9IGZyb20gJy4vU2VsZWN0b3JzJztcbmltcG9ydCB7IGZvcmVtYW5VcmwgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgeyBjYW5jZWxCdWlsZCwgZGVsZXRlSG9zdCwgaXNIb3N0VHVybk9uIH0gZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCB7IHVzZUZvcmVtYW5TZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL1Jvb3QvQ29udGV4dC9Gb3JlbWFuQ29udGV4dCc7XG5pbXBvcnQgQnVpbGRNb2RhbCBmcm9tICcuL0J1aWxkTW9kYWwnO1xuXG5jb25zdCBBY3Rpb25zQmFyID0gKHtcbiAgaG9zdElkLFxuICBjb21wdXRlSWQsXG4gIGlzQnVpbGQsXG4gIGhhc1JlcG9ydHMsXG4gIHBlcm1pc3Npb25zOiB7XG4gICAgZGVzdHJveV9ob3N0czogY2FuRGVzdHJveSxcbiAgICBjcmVhdGVfaG9zdHM6IGNhbkNyZWF0ZSxcbiAgICBlZGl0X2hvc3RzOiBjYW5FZGl0LFxuICAgIGJ1aWxkX2hvc3RzOiBjYW5CdWlsZCxcbiAgfSxcbn0pID0+IHtcbiAgY29uc3QgW2tlYmFiSXNPcGVuLCBzZXRLZWJhYl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpc0J1aWxkTW9kYWxPcGVuLCBzZXRCdWlsZE1vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3Qgb25LZWJhYlRvZ2dsZSA9IGlzT3BlbiA9PiBzZXRLZWJhYihpc09wZW4pO1xuICBjb25zdCB7IGRlc3Ryb3lWbU9uSG9zdERlbGV0ZSB9ID0gdXNlRm9yZW1hblNldHRpbmdzKCk7XG4gIGNvbnN0IHJlZ2lzdGVyZWRJdGVtcyA9IHVzZVNlbGVjdG9yKHNlbGVjdEtlYmFiSXRlbXMsIHNoYWxsb3dFcXVhbCk7XG4gIGNvbnN0IGlzSG9zdEFjdGl2ZSA9IHVzZVNlbGVjdG9yKGlzSG9zdFR1cm5Pbik7XG5cbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBkZWxldGVIb3N0SGFuZGxlciA9ICgpID0+XG4gICAgZGlzcGF0Y2goZGVsZXRlSG9zdChob3N0SWQsIGNvbXB1dGVJZCwgZGVzdHJveVZtT25Ib3N0RGVsZXRlKSk7XG5cbiAgY29uc3QgYnVpbGRIYW5kbGVyID0gKCkgPT4ge1xuICAgIGlmIChpc0J1aWxkKSB7XG4gICAgICBkaXNwYXRjaChjYW5jZWxCdWlsZChob3N0SWQpKTtcbiAgICAgIHNldEtlYmFiKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0QnVpbGRNb2RhbCh0cnVlKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IGRyb3Bkb3duSXRlbXMgPSBbXG4gICAgPERyb3Bkb3duSXRlbVxuICAgICAgb25DbGljaz17YnVpbGRIYW5kbGVyfVxuICAgICAga2V5PVwiYnVpbGRcIlxuICAgICAgY29tcG9uZW50PVwiYnV0dG9uXCJcbiAgICAgIGlzRGlzYWJsZWQ9eyFjYW5CdWlsZH1cbiAgICAgIGljb249ezxCdWlsZEljb24gLz59XG4gICAgPlxuICAgICAge2lzQnVpbGQgPyBfXygnQ2FuY2VsIGJ1aWxkJykgOiBfXygnQnVpbGQnKX1cbiAgICA8L0Ryb3Bkb3duSXRlbT4sXG4gICAgPERyb3Bkb3duSXRlbVxuICAgICAgaXNEaXNhYmxlZD17IWNhbkNyZWF0ZX1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHZpc2l0KGZvcmVtYW5VcmwoYC9ob3N0cy8ke2hvc3RJZH0vY2xvbmVgKSl9XG4gICAgICBrZXk9XCJjbG9uZVwiXG4gICAgICBjb21wb25lbnQ9XCJidXR0b25cIlxuICAgICAgaWNvbj17PENsb25lSWNvbiAvPn1cbiAgICA+XG4gICAgICB7X18oJ0Nsb25lJyl9XG4gICAgPC9Ecm9wZG93bkl0ZW0+LFxuICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgIGlzRGlzYWJsZWQ9eyFjYW5EZXN0cm95fVxuICAgICAgb25DbGljaz17ZGVsZXRlSG9zdEhhbmRsZXJ9XG4gICAgICBrZXk9XCJkZWxldGVcIlxuICAgICAgY29tcG9uZW50PVwiYnV0dG9uXCJcbiAgICAgIGljb249ezxUcmFzaEljb24gLz59XG4gICAgPlxuICAgICAge19fKCdEZWxldGUnKX1cbiAgICA8L0Ryb3Bkb3duSXRlbT4sXG4gICAgPERyb3Bkb3duU2VwYXJhdG9yIGtleT1cInNwLTFcIiAvPixcbiAgICA8RHJvcGRvd25JdGVtXG4gICAgICBvbkNsaWNrPXsoKSA9PiB2aXNpdChmb3JlbWFuVXJsKGAvaG9zdHMvJHtob3N0SWR9L2NvbnNvbGVgKSl9XG4gICAgICBrZXk9XCJjb25zb2xlXCJcbiAgICAgIGlzRGlzYWJsZWQ9eyFpc0hvc3RBY3RpdmV9XG4gICAgICBjb21wb25lbnQ9XCJidXR0b25cIlxuICAgICAgaWNvbj17PFRlcm1pbmFsSWNvbiAvPn1cbiAgICA+XG4gICAgICB7X18oJ0NvbnNvbGUnKX1cbiAgICA8L0Ryb3Bkb3duSXRlbT4sXG4gICAgPERyb3Bkb3duSXRlbVxuICAgICAgb25DbGljaz17KCkgPT4gdmlzaXQoZm9yZW1hblVybChgL2hvc3RzLyR7aG9zdElkfS9mYWN0c2ApKX1cbiAgICAgIGtleT1cImZhY3RcIlxuICAgICAgY29tcG9uZW50PVwiYnV0dG9uXCJcbiAgICAgIGljb249ezxEYXRhYmFzZUljb24gLz59XG4gICAgPlxuICAgICAge19fKCdGYWN0cycpfVxuICAgIDwvRHJvcGRvd25JdGVtPixcbiAgICA8RHJvcGRvd25JdGVtXG4gICAgICBpc0Rpc2FibGVkPXshaGFzUmVwb3J0c31cbiAgICAgIG9uQ2xpY2s9eygpID0+IHZpc2l0KGZvcmVtYW5VcmwoYC9ob3N0cy8ke2hvc3RJZH0vY29uZmlnX3JlcG9ydHNgKSl9XG4gICAgICBrZXk9XCJyZXBvcnRcIlxuICAgICAgY29tcG9uZW50PVwiYnV0dG9uXCJcbiAgICAgIGljb249ezxGaWxlSW52b2ljZUljb24gLz59XG4gICAgPlxuICAgICAge19fKCdSZXBvcnRzJyl9XG4gICAgPC9Ecm9wZG93bkl0ZW0+LFxuICAgIDxEcm9wZG93blNlcGFyYXRvciBrZXk9XCJzcC0yXCIgLz4sXG4gICAgPERyb3Bkb3duSXRlbVxuICAgICAgaWNvbj17PFVuZG9JY29uIC8+fVxuICAgICAgaHJlZj17YC9ob3N0cy8ke2hvc3RJZH1gfVxuICAgICAga2V5PVwicHJldi12ZXJzaW9uXCJcbiAgICA+XG4gICAgICB7X18oJ0xlZ2FjeSBVSScpfVxuICAgIDwvRHJvcGRvd25JdGVtPixcbiAgICA8RHJvcGRvd25JdGVtXG4gICAgICBpY29uPXs8Q29tbWVudEljb24gLz59XG4gICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICB3aW5kb3cub3BlbihcbiAgICAgICAgICAnaHR0cHM6Ly9jb21tdW5pdHkudGhlZm9yZW1hbi5vcmcvdC9mb3JlbWFuLTMtMC1uZXctaG9zdC1kZXRhaWwtcGFnZS1mZWVkYmFjay8yNTI4MScsXG4gICAgICAgICAgJ19ibGFuaydcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAga2V5PVwiZmVlZGJhY2tcIlxuICAgICAgY29tcG9uZW50PVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICB7X18oJ1NoYXJlIGZlZWRiYWNrJyl9XG4gICAgPC9Ecm9wZG93bkl0ZW0+LFxuICBdO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCdXR0b25cbiAgICAgICAgb25DbGljaz17KCkgPT4gdmlzaXQoZm9yZW1hblVybChgL2hvc3RzLyR7aG9zdElkfS9lZGl0YCkpfVxuICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgaXNEaXNhYmxlZD17IWNhbkVkaXR9XG4gICAgICA+XG4gICAgICAgIHtfXygnRWRpdCcpfVxuICAgICAgPC9CdXR0b24+XG4gICAgICA8RHJvcGRvd25cbiAgICAgICAgYWxpZ25tZW50cz17eyBkZWZhdWx0OiAncmlnaHQnIH19XG4gICAgICAgIHRvZ2dsZT17PEtlYmFiVG9nZ2xlIGlkPVwiaG9zdGRldGFpbHMta2ViYWJcIiBvblRvZ2dsZT17b25LZWJhYlRvZ2dsZX0gLz59XG4gICAgICAgIGlzT3Blbj17a2ViYWJJc09wZW59XG4gICAgICAgIGlzUGxhaW5cbiAgICAgICAgZHJvcGRvd25JdGVtcz17ZHJvcGRvd25JdGVtcy5jb25jYXQocmVnaXN0ZXJlZEl0ZW1zKX1cbiAgICAgIC8+XG4gICAgICB7aXNCdWlsZE1vZGFsT3BlbiAmJiAoXG4gICAgICAgIDxCdWlsZE1vZGFsXG4gICAgICAgICAgaXNNb2RhbE9wZW49e2lzQnVpbGRNb2RhbE9wZW59XG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0QnVpbGRNb2RhbChmYWxzZSl9XG4gICAgICAgICAgaG9zdElkPXtob3N0SWR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufTtcblxuQWN0aW9uc0Jhci5wcm9wVHlwZXMgPSB7XG4gIGhvc3RJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgY29tcHV0ZUlkOiBQcm9wVHlwZXMubnVtYmVyLFxuICBwZXJtaXNzaW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgaGFzUmVwb3J0czogUHJvcFR5cGVzLmJvb2wsXG4gIGlzQnVpbGQ6IFByb3BUeXBlcy5ib29sLFxufTtcbkFjdGlvbnNCYXIuZGVmYXVsdFByb3BzID0ge1xuICBob3N0SWQ6IHVuZGVmaW5lZCxcbiAgY29tcHV0ZUlkOiB1bmRlZmluZWQsXG4gIHBlcm1pc3Npb25zOiB7XG4gICAgZGVzdHJveV9ob3N0czogZmFsc2UsXG4gICAgY3JlYXRlX2hvc3RzOiBmYWxzZSxcbiAgICBlZGl0X2hvc3RzOiBmYWxzZSxcbiAgICBidWlsZF9ob3N0czogZmFsc2UsXG4gIH0sXG4gIGhhc1JlcG9ydHM6IGZhbHNlLFxuICBpc0J1aWxkOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFjdGlvbnNCYXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9BY3Rpb25zQmFyL2luZGV4LmpzIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIE1vZGFsLFxuICBNb2RhbFZhcmlhbnQsXG4gIEJ1dHRvbixcbiAgQWxlcnQsXG4gIFRyZWVWaWV3LFxuICBTdGFjayxcbiAgU3RhY2tJdGVtLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IHVzZUFQSSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9ob29rcy9BUEkvQVBJSG9va3MnO1xuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCBTa2VsZXRvbkxvYWRlciBmcm9tICcuLi8uLi9jb21tb24vU2tlbGV0b25Mb2FkZXInO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEFQSV9PUFRJT05TLCBTVVBQT1JURURfRVJST1JTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc2VsZWN0QnVpbGRFcnJvcnNUcmVlLCBzZWxlY3ROb0Vycm9yU3RhdGUgfSBmcm9tICcuL1NlbGVjdG9ycyc7XG5pbXBvcnQgeyBidWlsZEhvc3QgfSBmcm9tICcuL2FjdGlvbnMnO1xuaW1wb3J0IFN0YXR1c0ljb24gZnJvbSAnLi4vU3RhdHVzL1N0YXR1c0ljb24nO1xuaW1wb3J0IHsgRVJST1JfU1RBVFVTX1NUQVRFLCBPS19TVEFUVVNfU1RBVEUgfSBmcm9tICcuLi9TdGF0dXMvQ29uc3RhbnRzJztcblxuY29uc3QgQnVpbGRNb2RhbCA9ICh7IGlzTW9kYWxPcGVuLCBvbkNsb3NlLCBob3N0SWQgfSkgPT4ge1xuICBjb25zdCBbYWN0aXZlRXJyb3JzLCBzZXRBY3RpdmVFcnJvcnNdID0gdXNlU3RhdGUoKTtcbiAgY29uc3QgZXJyb3JzVHJlZSA9IHVzZVNlbGVjdG9yKHNlbGVjdEJ1aWxkRXJyb3JzVHJlZSk7XG4gIGNvbnN0IG5vRXJyb3JzID0gdXNlU2VsZWN0b3Ioc2VsZWN0Tm9FcnJvclN0YXRlKTtcbiAgY29uc3QgZGlzcGFjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHsgc3RhdHVzIH0gPSB1c2VBUEkoXG4gICAgJ2dldCcsXG4gICAgZm9yZW1hblVybChgL2hvc3RzLyR7aG9zdElkfS9yZXZpZXdfYmVmb3JlX2J1aWxkYCksXG4gICAgQVBJX09QVElPTlNcbiAgKTtcbiAgY29uc3Qgb25TZWxlY3RFcnJvciA9IChldnQsIHRyZWVWaWV3SXRlbSkgPT4ge1xuICAgIHNldEFjdGl2ZUVycm9ycyhbdHJlZVZpZXdJdGVtXSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8TW9kYWxcbiAgICAgIHZhcmlhbnQ9e01vZGFsVmFyaWFudC5tZWRpdW19XG4gICAgICB0aXRsZT17X18oJ1JldmlldyBiZWZvcmUgYnVpbGQnKX1cbiAgICAgIGlzT3Blbj17aXNNb2RhbE9wZW59XG4gICAgICBvbkNsb3NlPXtvbkNsb3NlfVxuICAgICAgYWN0aW9ucz17W1xuICAgICAgICA8QnV0dG9uXG4gICAgICAgICAga2V5PVwiY29uZmlybVwiXG4gICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGRpc3BhY2goYnVpbGRIb3N0KGhvc3RJZCkpO1xuICAgICAgICAgICAgb25DbG9zZSgpO1xuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7X18oJ0J1aWxkJyl9XG4gICAgICAgIDwvQnV0dG9uPixcbiAgICAgICAgPEJ1dHRvbiBrZXk9XCJjYW5jZWxcIiB2YXJpYW50PVwibGlua1wiIG9uQ2xpY2s9e29uQ2xvc2V9PlxuICAgICAgICAgIHtfXygnQ2FuY2VsJyl9XG4gICAgICAgIDwvQnV0dG9uPixcbiAgICAgIF19XG4gICAgPlxuICAgICAgPFN0YWNrIGhhc0d1dHRlcj5cbiAgICAgICAgPFN0YWNrSXRlbT5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgaWQ9XCJidWlsZFwiXG4gICAgICAgICAgICB2YWx1ZXM9e3tcbiAgICAgICAgICAgICAgaG9zdE5hbWU6IDxiPntob3N0SWR9PC9iPixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBkZWZhdWx0TWVzc2FnZT17X18oXG4gICAgICAgICAgICAgICdCdWlsZCBlbmFibGVzIGhvc3Qge2hvc3ROYW1lfSB0byByZWJ1aWxkIG9uIG5leHQgYm9vdCdcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TdGFja0l0ZW0+XG5cbiAgICAgICAgPFN0YWNrSXRlbT5cbiAgICAgICAgICA8QWxlcnRcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ3YXJuaW5nXCJcbiAgICAgICAgICAgIGlzSW5saW5lXG4gICAgICAgICAgICB0aXRsZT17X18oXG4gICAgICAgICAgICAgICdUaGlzIGFjdGlvbiB3aWxsIGRlbGV0ZSB0aGlzIGhvc3QgYW5kIGFsbCBpdHMgZGF0YSAoaS5lIGZhY3RzLCByZXBvcnQpJ1xuICAgICAgICAgICAgKX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0YWNrSXRlbT5cbiAgICAgICAgPFN0YWNrSXRlbT5cbiAgICAgICAgICA8U2tlbGV0b25Mb2FkZXJcbiAgICAgICAgICAgIHNrZWxldG9uUHJvcHM9e3sgY291bnQ6IE9iamVjdC5rZXlzKFNVUFBPUlRFRF9FUlJPUlMpLmxlbmd0aCB9fVxuICAgICAgICAgICAgc3RhdHVzPXtzdGF0dXMgfHwgU1RBVFVTLlBFTkRJTkd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge25vRXJyb3JzID8gKFxuICAgICAgICAgICAgICA8U3RhdHVzSWNvblxuICAgICAgICAgICAgICAgIGxhYmVsPXtfXygnTm8gZXJyb3JzIGRldGVjdGVkJyl9XG4gICAgICAgICAgICAgICAgc3RhdHVzTnVtYmVyPXtPS19TVEFUVVNfU1RBVEV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxTdGF0dXNJY29uXG4gICAgICAgICAgICAgICAgICBsYWJlbD17X18oXG4gICAgICAgICAgICAgICAgICAgICdUaGUgZm9sbG93aW5nIGVycm9ycyBtYXkgcHJldmVudCBhIHN1Y2Nlc3NmdWwgYnVpbGQ6J1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIHN0YXR1c051bWJlcj17RVJST1JfU1RBVFVTX1NUQVRFfVxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8VHJlZVZpZXdcbiAgICAgICAgICAgICAgICAgIGRhdGE9e2Vycm9yc1RyZWV9XG4gICAgICAgICAgICAgICAgICBhY3RpdmVJdGVtcz17YWN0aXZlRXJyb3JzfVxuICAgICAgICAgICAgICAgICAgb25TZWxlY3Q9e29uU2VsZWN0RXJyb3J9XG4gICAgICAgICAgICAgICAgICBoYXNCYWRnZXNcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Ta2VsZXRvbkxvYWRlcj5cbiAgICAgICAgPC9TdGFja0l0ZW0+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvTW9kYWw+XG4gICk7XG59O1xuXG5CdWlsZE1vZGFsLnByb3BUeXBlcyA9IHtcbiAgaG9zdElkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGlzTW9kYWxPcGVuOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvbkNsb3NlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQnVpbGRNb2RhbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0FjdGlvbnNCYXIvQnVpbGRNb2RhbC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBhZGRHbG9iYWxGaWxsIH0gZnJvbSAnLi4vLi4vY29tbW9uL0ZpbGwvR2xvYmFsRmlsbCc7XG5pbXBvcnQgeyBERUZBVUxUX1RBQiwgVEFCU19TTE9UX0lEIH0gZnJvbSAnLi4vY29uc3RzJztcbmltcG9ydCBPdmVydmlld1RhYiBmcm9tICcuL092ZXJ2aWV3JztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyQ29yZVRhYnMgPSAoKSA9PiB7XG4gIGFkZEdsb2JhbEZpbGwoXG4gICAgVEFCU19TTE9UX0lELFxuICAgIERFRkFVTFRfVEFCLFxuICAgIDxPdmVydmlld1RhYiBrZXk9XCJob3N0LWRldGFpbHMtb3ZlcnZpZXctdGFiXCIgLz4sXG4gICAgMTAwMCxcbiAgICB7IHRpdGxlOiBfXygnT3ZlcnZpZXcnKSB9XG4gICk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvVGFicy9pbmRleC5qcyIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgR3JpZCB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IHsgcmVnaXN0ZXJDb3JlQ2FyZHMgfSBmcm9tICcuL0NhcmRzUmVnaXN0cnknO1xuaW1wb3J0IFNsb3QgZnJvbSAnLi4vLi4vLi4vY29tbW9uL1Nsb3QnO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9EZXRhaWxzLmNzcyc7XG5cbmNvbnN0IERldGFpbHNUYWIgPSAoeyByZXNwb25zZSwgc3RhdHVzLCBob3N0TmFtZSB9KSA9PiB7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhZGRpbmcgZ3JheSBiYWNrZ3JvdW5kIGluc3BpcmluZyBwZjQgZGVzZ2luXG4gICAgLy8gIFRPRE86IGRlbGV0ZSBpdCB3aGVuIHBmNCBsYXlvdXQgKFBhZ2UgY29wbXBvbmVudCkgaXMgaW1wbGVtZW50ZWQgaW4gZm9yZW1hblxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgncGYtZ3JheS1iYWNrZ3JvdW5kJyk7XG4gICAgcmVnaXN0ZXJDb3JlQ2FyZHMoKTtcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdwZi1ncmF5LWJhY2tncm91bmQnKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJob3N0LWRldGFpbHMtdGFiLWl0ZW0gZGV0YWlscy10YWJcIj5cbiAgICAgIDxHcmlkIGhhc0d1dHRlcj5cbiAgICAgICAgPFNsb3RcbiAgICAgICAgICBob3N0RGV0YWlscz17cmVzcG9uc2V9XG4gICAgICAgICAgc3RhdHVzPXtzdGF0dXN9XG4gICAgICAgICAgaG9zdE5hbWU9e2hvc3ROYW1lfVxuICAgICAgICAgIGlkPVwiZGV0YWlscy1jYXJkc1wiXG4gICAgICAgICAgbXVsdGlcbiAgICAgICAgLz5cbiAgICAgIDwvR3JpZD5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbkRldGFpbHNUYWIucHJvcFR5cGVzID0ge1xuICByZXNwb25zZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgc3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBob3N0TmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkRldGFpbHNUYWIuZGVmYXVsdFByb3BzID0ge1xuICByZXNwb25zZToge30sXG4gIHN0YXR1czogU1RBVFVTLlBFTkRJTkcsXG4gIGhvc3ROYW1lOiB1bmRlZmluZWQsXG59O1xuZXhwb3J0IGRlZmF1bHQgRGV0YWlsc1RhYjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1RhYnMvT3ZlcnZpZXcvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgYWRkR2xvYmFsRmlsbCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9GaWxsL0dsb2JhbEZpbGwnO1xuaW1wb3J0IEF1ZGl0Q2FyZCBmcm9tICcuLi8uLi9BdWRpdHMnO1xuaW1wb3J0IERldGFpbHNDYXJkIGZyb20gJy4uLy4uL0RldGFpbHNDYXJkJztcbmltcG9ydCBBZ2dyZWdhdGVTdGF0dXMgZnJvbSAnLi4vLi4vU3RhdHVzL0FnZ3JlZ2F0ZVN0YXR1c0NhcmQnO1xuXG5jb25zdCBjYXJkcyA9IFtcbiAgeyBrZXk6ICdbY29yZV0tZGV0YWlsLWNhcmQnLCBDb21wb25lbnQ6IERldGFpbHNDYXJkLCB3ZWlnaHQ6IDQwMDAgfSxcbiAgeyBrZXk6ICdbY29yZV0tc3RhdHVzLWNhcmQnLCBDb21wb25lbnQ6IEFnZ3JlZ2F0ZVN0YXR1cywgd2VpZ2h0OiAzNTAwIH0sXG4gIHsga2V5OiAnW2NvcmVdLWF1ZGl0LWNhcmQnLCBDb21wb25lbnQ6IEF1ZGl0Q2FyZCwgd2VpZ2h0OiAzMDAwIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJDb3JlQ2FyZHMgPSAoKSA9PiB7XG4gIGNhcmRzLmZvckVhY2goKHsga2V5LCBDb21wb25lbnQsIHdlaWdodCB9KSA9PiB7XG4gICAgYWRkR2xvYmFsRmlsbCgnZGV0YWlscy1jYXJkcycsIGtleSwgPENvbXBvbmVudCBrZXk9e2tleX0gLz4sIHdlaWdodCk7XG4gIH0pO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1RhYnMvT3ZlcnZpZXcvQ2FyZHNSZWdpc3RyeS5qcyIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge1xuICBCdWxsc2V5ZSxcbiAgRGF0YUxpc3QsXG4gIENhcmQsXG4gIENhcmRBY3Rpb25zLFxuICBDYXJkSGVhZGVyLFxuICBDYXJkVGl0bGUsXG4gIENhcmRCb2R5LFxuICBEYXRhTGlzdEl0ZW0sXG4gIERhdGFMaXN0SXRlbVJvdyxcbiAgRGF0YUxpc3RJdGVtQ2VsbHMsXG4gIERhdGFMaXN0VGV4dCxcbiAgRGF0YUxpc3RDZWxsLFxuICBHcmlkSXRlbSxcbiAgVGl0bGUsXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IFVSSSBmcm9tICd1cmlqcyc7XG5pbXBvcnQgeyBwdXNoIH0gZnJvbSAnY29ubmVjdGVkLXJlYWN0LXJvdXRlcic7XG5cbmltcG9ydCB7IGZvcmVtYW5VcmwgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyB1c2VBUEkgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaG9va3MvQVBJL0FQSUhvb2tzJztcbmltcG9ydCBSZWxhdGl2ZURhdGVUaW1lIGZyb20gJy4uLy4uL2NvbW1vbi9kYXRlcy9SZWxhdGl2ZURhdGVUaW1lJztcbmltcG9ydCBTa2VsZXRvbkxvYWRlciBmcm9tICcuLi8uLi9jb21tb24vU2tlbGV0b25Mb2FkZXInO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcblxuY29uc3QgTlVNQkVSX09GX1JFQ09SRFMgPSAzO1xuXG5jb25zdCBBdWRpdENhcmQgPSAoeyBob3N0TmFtZSB9KSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgaG9zdFNlYXJjaCA9IGBob3N0PSR7aG9zdE5hbWV9YDtcbiAgY29uc3QgYXBpVXJsID0gbmV3IFVSSSh7XG4gICAgcGF0aDogZm9yZW1hblVybCgnL2FwaS9hdWRpdHMnKSxcbiAgICBxdWVyeTogeyBzZWFyY2g6IGhvc3RTZWFyY2gsIHBlcl9wYWdlOiBOVU1CRVJfT0ZfUkVDT1JEUyB9LFxuICB9KS50b1N0cmluZygpO1xuICBjb25zdCB1aVVybCA9IG5ldyBVUkkoe1xuICAgIHBhdGg6IGZvcmVtYW5VcmwoJy9hdWRpdHMnKSxcbiAgICBxdWVyeTogeyBzZWFyY2g6IGhvc3RTZWFyY2ggfSxcbiAgfSkudG9TdHJpbmcoKTtcbiAgY29uc3Qge1xuICAgIHJlc3BvbnNlOiB7IHJlc3VsdHM6IGF1ZGl0cyB9LFxuICAgIHN0YXR1cyA9IFNUQVRVUy5QRU5ESU5HLFxuICB9ID0gdXNlQVBJKCdnZXQnLCBhcGlVcmwpO1xuICByZXR1cm4gKFxuICAgIDxHcmlkSXRlbSB4bDI9ezN9IHhsPXs0fSBtZD17Nn0gbGc9ezR9PlxuICAgICAgPENhcmQgaXNIb3ZlcmFibGU+XG4gICAgICAgIDxDYXJkSGVhZGVyPlxuICAgICAgICAgIDxDYXJkVGl0bGU+e19fKCdSZWNlbnQgQXVkaXRzJyl9PC9DYXJkVGl0bGU+XG4gICAgICAgICAgPENhcmRBY3Rpb25zPlxuICAgICAgICAgICAgPGEgb25DbGljaz17KCkgPT4gZGlzcGF0Y2gocHVzaCh1aVVybCkpfT4ge19fKCdBbGwgYXVkaXRzJyl9PC9hPlxuICAgICAgICAgIDwvQ2FyZEFjdGlvbnM+XG4gICAgICAgIDwvQ2FyZEhlYWRlcj5cbiAgICAgICAgPENhcmRCb2R5PlxuICAgICAgICAgIDxTa2VsZXRvbkxvYWRlclxuICAgICAgICAgICAgc2tlbGV0b25Qcm9wcz17eyBjb3VudDogTlVNQkVSX09GX1JFQ09SRFMgfX1cbiAgICAgICAgICAgIHN0YXR1cz17c3RhdHVzfVxuICAgICAgICAgICAgZW1wdHlTdGF0ZT17XG4gICAgICAgICAgICAgIDxCdWxsc2V5ZT5cbiAgICAgICAgICAgICAgICA8VGl0bGUgaGVhZGluZ0xldmVsPVwiaDRcIj4ge19fKCdObyBSZXN1bHRzIGZvdW5kJyl9IDwvVGl0bGU+XG4gICAgICAgICAgICAgIDwvQnVsbHNleWU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2F1ZGl0cyAmJiAoXG4gICAgICAgICAgICAgIDxEYXRhTGlzdCBpc0NvbXBhY3Q+XG4gICAgICAgICAgICAgICAge2F1ZGl0cy5tYXAoXG4gICAgICAgICAgICAgICAgICAoeyB1c2VyX25hbWU6IHVzZXIsIGNyZWF0ZWRfYXQ6IHRpbWVzdGFtcCwgYWN0aW9uLCBpZCB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxEYXRhTGlzdEl0ZW0ga2V5PXtpZH0+XG4gICAgICAgICAgICAgICAgICAgICAgPERhdGFMaXN0SXRlbVJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxEYXRhTGlzdEl0ZW1DZWxsc1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTGlzdENlbGxzPXtbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERhdGFMaXN0Q2VsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcE1vZGlmaWVyPVwidHJ1bmNhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgYWN0aW9uLSR7aWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGF0YUxpc3RUZXh0IHRvb2x0aXA9e2FjdGlvbn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3Rpb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RhdGFMaXN0VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0RhdGFMaXN0Q2VsbD4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERhdGFMaXN0Q2VsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcE1vZGlmaWVyPVwidHJ1bmNhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtgZGF0ZS0ke2lkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJlbGF0aXZlRGF0ZVRpbWUgZGF0ZT17dGltZXN0YW1wfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGF0YUxpc3RDZWxsPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGF0YUxpc3RDZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwTW9kaWZpZXI9XCJ0cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2B1c2VyLSR7aWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGF0YUxpc3RUZXh0IHRvb2x0aXA9e3VzZXJ9Pnt1c2VyfTwvRGF0YUxpc3RUZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGF0YUxpc3RDZWxsPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9EYXRhTGlzdEl0ZW1Sb3c+XG4gICAgICAgICAgICAgICAgICAgIDwvRGF0YUxpc3RJdGVtPlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRGF0YUxpc3Q+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU2tlbGV0b25Mb2FkZXI+XG4gICAgICAgIDwvQ2FyZEJvZHk+XG4gICAgICA8L0NhcmQ+XG4gICAgPC9HcmlkSXRlbT5cbiAgKTtcbn07XG5cbkF1ZGl0Q2FyZC5wcm9wVHlwZXMgPSB7XG4gIGhvc3ROYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQXVkaXRDYXJkLmRlZmF1bHRQcm9wcyA9IHtcbiAgaG9zdE5hbWU6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEF1ZGl0Q2FyZDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0F1ZGl0cy9pbmRleC5qcyIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgRGVzY3JpcHRpb25MaXN0LFxuICBEZXNjcmlwdGlvbkxpc3RUZXJtLFxuICBEZXNjcmlwdGlvbkxpc3RHcm91cCxcbiAgRGVzY3JpcHRpb25MaXN0RGVzY3JpcHRpb24sXG4gIENhcmQsXG4gIENhcmRBY3Rpb25zLFxuICBDYXJkSGVhZGVyLFxuICBDYXJkVGl0bGUsXG4gIENhcmRCb2R5LFxuICBDbGlwYm9hcmRDb3B5LFxuICBEaXZpZGVyLFxuICBHcmlkSXRlbSxcbn0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5pbXBvcnQgeyBVc2VySWNvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25zJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCBTa2VsZXRvbkxvYWRlciBmcm9tICcuLi8uLi9jb21tb24vU2tlbGV0b25Mb2FkZXInO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCBEZWZhdWx0TG9hZGVyRW1wdHlTdGF0ZSBmcm9tICcuL0RlZmF1bHRMb2FkZXJFbXB0eVN0YXRlJztcbmltcG9ydCBQb3dlclN0YXR1c0Ryb3BEb3duIGZyb20gJy4vUG93ZXJTdGF0dXMvUG93ZXJTdGF0dXNEcm9wRG93bic7XG5cbmltcG9ydCAnLi9zdHlsZXMuc2Nzcyc7XG5cbmNvbnN0IERldGFpbHNDYXJkID0gKHtcbiAgc3RhdHVzLFxuICBob3N0TmFtZSxcbiAgaG9zdERldGFpbHM6IHtcbiAgICBpcCxcbiAgICBpcDYsXG4gICAgbWFjLFxuICAgIGNvbW1lbnQsXG4gICAgb3duZXJfaWQ6IG93bmVySUQsXG4gICAgb3duZXJfbmFtZTogb3duZXJOYW1lLFxuICAgIGhvc3Rncm91cF9uYW1lOiBob3N0Z3JvdXBOYW1lLFxuICAgIHBlcm1pc3Npb25zOiB7IHBvd2VyX2hvc3RzOiBoYXNQb3dlclBlcm1pc3Npb24gfSA9IHt9LFxuICB9LFxufSkgPT4gKFxuICA8R3JpZEl0ZW0geGwyPXszfSB4bD17NH0gbWQ9ezZ9IGxnPXs0fSByb3dTcGFuPXsyfT5cbiAgICA8Q2FyZCBpc0hvdmVyYWJsZT5cbiAgICAgIDxDYXJkSGVhZGVyPlxuICAgICAgICA8Q2FyZFRpdGxlPntfXygnRGV0YWlscycpfTwvQ2FyZFRpdGxlPlxuICAgICAgICA8Q2FyZEFjdGlvbnM+XG4gICAgICAgICAgPFBvd2VyU3RhdHVzRHJvcERvd25cbiAgICAgICAgICAgIGhvc3RJRD17aG9zdE5hbWV9XG4gICAgICAgICAgICBoYXNQb3dlclBlcm1pc3Npb249e2hhc1Bvd2VyUGVybWlzc2lvbn1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0NhcmRBY3Rpb25zPlxuICAgICAgPC9DYXJkSGVhZGVyPlxuICAgICAgPENhcmRCb2R5PlxuICAgICAgICA8RGVzY3JpcHRpb25MaXN0XG4gICAgICAgICAgaXNBdXRvQ29sdW1uV2lkdGhzXG4gICAgICAgICAgY29sdW1uTW9kaWZpZXI9e3tcbiAgICAgICAgICAgIGRlZmF1bHQ6ICcyQ29sJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPERlc2NyaXB0aW9uTGlzdEdyb3VwPlxuICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdFRlcm0+e19fKCdJUHY2IGFkZHJlc3MnKX08L0Rlc2NyaXB0aW9uTGlzdFRlcm0+XG4gICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIDxTa2VsZXRvbkxvYWRlclxuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGU9ezxEZWZhdWx0TG9hZGVyRW1wdHlTdGF0ZSAvPn1cbiAgICAgICAgICAgICAgICBzdGF0dXM9e3N0YXR1c31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpcDYgJiYgKFxuICAgICAgICAgICAgICAgICAgPENsaXBib2FyZENvcHkgaXNCbG9jayB2YXJpYW50PVwiaW5saW5lLWNvbXBhY3RcIj5cbiAgICAgICAgICAgICAgICAgICAge2lwNn1cbiAgICAgICAgICAgICAgICAgIDwvQ2xpcGJvYXJkQ29weT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1NrZWxldG9uTG9hZGVyPlxuICAgICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj5cbiAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdEdyb3VwPlxuICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RHcm91cD5cbiAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RUZXJtPntfXygnSVB2NCBhZGRyZXNzJyl9PC9EZXNjcmlwdGlvbkxpc3RUZXJtPlxuICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICA8U2tlbGV0b25Mb2FkZXJcbiAgICAgICAgICAgICAgICBlbXB0eVN0YXRlPXs8RGVmYXVsdExvYWRlckVtcHR5U3RhdGUgLz59XG4gICAgICAgICAgICAgICAgc3RhdHVzPXtzdGF0dXN9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aXAgJiYgKFxuICAgICAgICAgICAgICAgICAgPENsaXBib2FyZENvcHkgaXNCbG9jayB2YXJpYW50PVwiaW5saW5lLWNvbXBhY3RcIj5cbiAgICAgICAgICAgICAgICAgICAge2lwfVxuICAgICAgICAgICAgICAgICAgPC9DbGlwYm9hcmRDb3B5PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2tlbGV0b25Mb2FkZXI+XG4gICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPlxuICAgICAgICAgIDwvRGVzY3JpcHRpb25MaXN0R3JvdXA+XG4gICAgICAgICAgPERlc2NyaXB0aW9uTGlzdEdyb3VwPlxuICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdFRlcm0+e19fKCdNQUMgYWRkcmVzcycpfTwvRGVzY3JpcHRpb25MaXN0VGVybT5cbiAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPFNrZWxldG9uTG9hZGVyXG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZT17PERlZmF1bHRMb2FkZXJFbXB0eVN0YXRlIC8+fVxuICAgICAgICAgICAgICAgIHN0YXR1cz17c3RhdHVzfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge21hYyAmJiAoXG4gICAgICAgICAgICAgICAgICA8Q2xpcGJvYXJkQ29weSBpc0Jsb2NrIHZhcmlhbnQ9XCJpbmxpbmUtY29tcGFjdFwiPlxuICAgICAgICAgICAgICAgICAgICB7bWFjfVxuICAgICAgICAgICAgICAgICAgPC9DbGlwYm9hcmRDb3B5PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2tlbGV0b25Mb2FkZXI+XG4gICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPlxuICAgICAgICAgIDwvRGVzY3JpcHRpb25MaXN0R3JvdXA+XG4gICAgICAgIDwvRGVzY3JpcHRpb25MaXN0PlxuXG4gICAgICAgIDxEaXZpZGVyIGNsYXNzTmFtZT1cInBhZGRlZC1kaXZpZGVyXCIgLz5cbiAgICAgICAgPERlc2NyaXB0aW9uTGlzdD5cbiAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0R3JvdXA+XG4gICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0VGVybT57X18oJ0hvc3QgZ3JvdXAnKX08L0Rlc2NyaXB0aW9uTGlzdFRlcm0+XG4gICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0RGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIDxTa2VsZXRvbkxvYWRlclxuICAgICAgICAgICAgICAgIGVtcHR5U3RhdGU9ezxEZWZhdWx0TG9hZGVyRW1wdHlTdGF0ZSAvPn1cbiAgICAgICAgICAgICAgICBzdGF0dXM9e3N0YXR1c31cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtob3N0Z3JvdXBOYW1lfVxuICAgICAgICAgICAgICA8L1NrZWxldG9uTG9hZGVyPlxuICAgICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj5cbiAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdEdyb3VwPlxuICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RHcm91cD5cbiAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RUZXJtPntfXygnSG9zdCBvd25lcicpfTwvRGVzY3JpcHRpb25MaXN0VGVybT5cbiAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgPFNrZWxldG9uTG9hZGVyXG4gICAgICAgICAgICAgICAgZW1wdHlTdGF0ZT17PERlZmF1bHRMb2FkZXJFbXB0eVN0YXRlIC8+fVxuICAgICAgICAgICAgICAgIHN0YXR1cz17c3RhdHVzfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge293bmVySUQgJiYgKFxuICAgICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxVc2VySWNvbiAvPiB7b3duZXJOYW1lfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU2tlbGV0b25Mb2FkZXI+XG4gICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPlxuICAgICAgICAgIDwvRGVzY3JpcHRpb25MaXN0R3JvdXA+XG4gICAgICAgICAgPERlc2NyaXB0aW9uTGlzdEdyb3VwPlxuICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdFRlcm0+e19fKCdDb21tZW50Jyl9PC9EZXNjcmlwdGlvbkxpc3RUZXJtPlxuICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICA8U2tlbGV0b25Mb2FkZXJcbiAgICAgICAgICAgICAgICBlbXB0eVN0YXRlPXs8RGVmYXVsdExvYWRlckVtcHR5U3RhdGUgLz59XG4gICAgICAgICAgICAgICAgc3RhdHVzPXtzdGF0dXN9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y29tbWVudH1cbiAgICAgICAgICAgICAgPC9Ta2VsZXRvbkxvYWRlcj5cbiAgICAgICAgICAgIDwvRGVzY3JpcHRpb25MaXN0RGVzY3JpcHRpb24+XG4gICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3RHcm91cD5cbiAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3Q+XG4gICAgICA8L0NhcmRCb2R5PlxuICAgIDwvQ2FyZD5cbiAgPC9HcmlkSXRlbT5cbik7XG5cbkRldGFpbHNDYXJkLnByb3BUeXBlcyA9IHtcbiAgaG9zdE5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgaG9zdERldGFpbHM6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgY29tbWVudDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBob3N0Z3JvdXBfbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpcDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBpcDY6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbWFjOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG93bmVyX2lkOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIG93bmVyX25hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgcGVybWlzc2lvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gIH0pLFxufTtcblxuRGV0YWlsc0NhcmQuZGVmYXVsdFByb3BzID0ge1xuICBob3N0TmFtZTogdW5kZWZpbmVkLFxuICBzdGF0dXM6IFNUQVRVUy5QRU5ESU5HLFxuICBob3N0RGV0YWlsczoge1xuICAgIGNvbW1lbnQ6IHVuZGVmaW5lZCxcbiAgICBob3N0Z3JvdXBfbmFtZTogdW5kZWZpbmVkLFxuICAgIGlwOiB1bmRlZmluZWQsXG4gICAgaXA2OiB1bmRlZmluZWQsXG4gICAgbWFjOiB1bmRlZmluZWQsXG4gICAgb3duZXJfaWQ6IHVuZGVmaW5lZCxcbiAgICBvd25lcl9uYW1lOiB1bmRlZmluZWQsXG4gICAgcGVybWlzc2lvbnM6IHsgcG93ZXJfaG9zdHM6IGZhbHNlIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEZXRhaWxzQ2FyZDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0RldGFpbHNDYXJkL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCAnLi9zdHlsZXMuc2Nzcyc7XG5cbmNvbnN0IERlZmF1bHRMb2FkZXJFbXB0eVN0YXRlID0gKCkgPT4gKFxuICA8c3BhbiBjbGFzc05hbWU9XCJkaXNhYmxlZC10ZXh0XCI+e19fKCdOb3QgQXZhaWxhYmxlJyl9PC9zcGFuPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgRGVmYXVsdExvYWRlckVtcHR5U3RhdGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9EZXRhaWxzQ2FyZC9EZWZhdWx0TG9hZGVyRW1wdHlTdGF0ZS5qcyIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7XG4gIERyb3Bkb3duLFxuICBEcm9wZG93blRvZ2dsZSxcbiAgRHJvcGRvd25JdGVtLFxuICBUb29sdGlwLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcblxuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCB7IHVzZUFQSSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9ob29rcy9BUEkvQVBJSG9va3MnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IFBvd2VyU3RhdHVzSWNvbiBmcm9tICcuL1Bvd2VyU3RhdHVzSWNvbic7XG5pbXBvcnQge1xuICBQT1dFUl9SRVFVRVNUX09QVElPTlMsXG4gIEJBU0VfUE9XRVJfU1RBVEVTLFxuICBTVVBQT1JURURfUE9XRVJfU1RBVEVTLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjaGFuZ2VIb3N0UG93ZXIgfSBmcm9tICcuL2FjdGlvbnMnO1xuaW1wb3J0IHsgb3BlbkNvbmZpcm1Nb2RhbCB9IGZyb20gJy4uLy4uLy4uL0NvbmZpcm1Nb2RhbCc7XG5cbmltcG9ydCAnLi4vc3R5bGVzLnNjc3MnO1xuXG5jb25zdCBQb3dlclN0YXR1c0Ryb3BEb3duID0gKHsgaG9zdElELCBoYXNQb3dlclBlcm1pc3Npb24sIGlzQm1jIH0pID0+IHtcbiAgY29uc3QgcG93ZXJVUkwgPSBmb3JlbWFuVXJsKGAvYXBpL2hvc3RzLyR7aG9zdElEfS9wb3dlcmApO1xuICBjb25zdCB7XG4gICAgcmVzcG9uc2U6IHsgc3RhdGU6IGN1cnJlbnRTdGF0ZSwgdGl0bGUsIHN0YXR1c1RleHQgfSxcbiAgICBzdGF0dXM6IHJlc3BvbnNlU3RhdHVzLFxuICB9ID0gdXNlQVBJKCdnZXQnLCBwb3dlclVSTCwgUE9XRVJfUkVRVUVTVF9PUFRJT05TKTtcblxuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFtpc09wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBjaGFuZ2VQb3dlckhhbmRsZXIgPSB0YXJnZXRTdGF0ZSA9PiB7XG4gICAgZGlzcGF0Y2goXG4gICAgICBvcGVuQ29uZmlybU1vZGFsKHtcbiAgICAgICAgdGl0bGU6IF9fKCdQb3dlciBTdGF0dXMnKSxcbiAgICAgICAgbWVzc2FnZTogX18oJ1RoaXMgd2lsbCBjaGFuZ2UgdGhlIGhvc3QgcG93ZXIgc3RhdHVzLCBhcmUgeW91IHN1cmU/JyksXG4gICAgICAgIGlzV2FybmluZzogdHJ1ZSxcbiAgICAgICAgb25Db25maXJtOiAoKSA9PiBkaXNwYXRjaChjaGFuZ2VIb3N0UG93ZXIodGFyZ2V0U3RhdGUsIGhvc3RJRCkpLFxuICAgICAgfSlcbiAgICApO1xuICB9O1xuICBjb25zdCBkcm9wZG93bkl0ZW1zID0gKCkgPT4ge1xuICAgIGNvbnN0IHN1cHBvcnRlZFBvd2VyU3RhdGVzID0gaXNCbWNcbiAgICAgID8gU1VQUE9SVEVEX1BPV0VSX1NUQVRFU1xuICAgICAgOiBCQVNFX1BPV0VSX1NUQVRFUztcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhzdXBwb3J0ZWRQb3dlclN0YXRlcykubWFwKHN0YXRlID0+IChcbiAgICAgIDxEcm9wZG93bkl0ZW1cbiAgICAgICAgb25DbGljaz17KCkgPT4gY2hhbmdlUG93ZXJIYW5kbGVyKHN0YXRlKX1cbiAgICAgICAgaXNEaXNhYmxlZD17c3RhdGUgPT09IGN1cnJlbnRTdGF0ZX1cbiAgICAgICAga2V5PXtzdGF0ZX1cbiAgICAgID5cbiAgICAgICAge3N1cHBvcnRlZFBvd2VyU3RhdGVzW3N0YXRlXX1cbiAgICAgIDwvRHJvcGRvd25JdGVtPlxuICAgICkpO1xuICB9O1xuXG4gIGNvbnN0IG9uRHJvcGRvd25TZWxlY3QgPSBldmVudCA9PiBzZXRPcGVuKGZhbHNlKTtcbiAgY29uc3Qgb25Ub2dnbGUgPSBvcGVuID0+IHNldE9wZW4ob3Blbik7XG4gIHJldHVybiAoXG4gICAgPFRvb2x0aXAgY29udGVudD17c3RhdHVzVGV4dCB8fCB0aXRsZX0+XG4gICAgICA8RHJvcGRvd25cbiAgICAgICAgaXNPcGVuPXtpc09wZW59XG4gICAgICAgIG9uU2VsZWN0PXtvbkRyb3Bkb3duU2VsZWN0fVxuICAgICAgICBpc1BsYWluXG4gICAgICAgIGRyb3Bkb3duSXRlbXM9e2Ryb3Bkb3duSXRlbXMoKX1cbiAgICAgICAgdG9nZ2xlPXtcbiAgICAgICAgICA8RHJvcGRvd25Ub2dnbGVcbiAgICAgICAgICAgIGlzRGlzYWJsZWQ9eyFoYXNQb3dlclBlcm1pc3Npb24gfHwgY3VycmVudFN0YXRlID09PSAnbmEnfVxuICAgICAgICAgICAgb25Ub2dnbGU9e29uVG9nZ2xlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxQb3dlclN0YXR1c0ljb25cbiAgICAgICAgICAgICAgc3RhdGU9e2N1cnJlbnRTdGF0ZX1cbiAgICAgICAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICAgICAgICByZXNwb25zZVN0YXR1cz17cmVzcG9uc2VTdGF0dXN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRHJvcGRvd25Ub2dnbGU+XG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgPC9Ub29sdGlwPlxuICApO1xufTtcblxuUG93ZXJTdGF0dXNEcm9wRG93bi5wcm9wVHlwZXMgPSB7XG4gIGhhc1Bvd2VyUGVybWlzc2lvbjogUHJvcFR5cGVzLmJvb2wsXG4gIGhvc3RJRDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc0JtYzogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5Qb3dlclN0YXR1c0Ryb3BEb3duLmRlZmF1bHRQcm9wcyA9IHtcbiAgaGFzUG93ZXJQZXJtaXNzaW9uOiBmYWxzZSxcbiAgaXNCbWM6IGZhbHNlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgUG93ZXJTdGF0dXNEcm9wRG93bjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL0RldGFpbHNDYXJkL1Bvd2VyU3RhdHVzL1Bvd2VyU3RhdHVzRHJvcERvd24uanMiLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFBvd2VyT2ZmSWNvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IFBvd2VyU3RhdHVzSWNvbiA9ICh7IHN0YXRlLCByZXNwb25zZVN0YXR1cyB9KSA9PiB7XG4gIGlmIChyZXNwb25zZVN0YXR1cyA9PT0gU1RBVFVTLlBFTkRJTkcpIHJldHVybiA8U3Bpbm5lciBzaXplPVwibWRcIiAvPjtcbiAgcmV0dXJuIChcbiAgICA8c3BhbiBjbGFzc05hbWU9e2Bwb3dlci0ke3N0YXRlfWB9PlxuICAgICAgPFBvd2VyT2ZmSWNvbiBpZD1cInBvd2VyLXN0YXR1cy1pY29uXCIgY2xhc3NOYW1lPXtgcG93ZXItJHtzdGF0ZX1gfSAvPlxuICAgIDwvc3Bhbj5cbiAgKTtcbn07XG5cblBvd2VyU3RhdHVzSWNvbi5wcm9wVHlwZXMgPSB7XG4gIHJlc3BvbnNlU3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdGF0ZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cblBvd2VyU3RhdHVzSWNvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHN0YXRlOiAnbmEnLFxuICByZXNwb25zZVN0YXR1czogU1RBVFVTLlBFTkRJTkcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBQb3dlclN0YXR1c0ljb247XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9EZXRhaWxzQ2FyZC9Qb3dlclN0YXR1cy9Qb3dlclN0YXR1c0ljb24uanMiLCJpbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18sIHNwcmludGYgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9yZWR1eC9BUEknO1xuaW1wb3J0IHsgUE9XRVJfUkVRVVJTVF9LRVksIFNVUFBPUlRFRF9QT1dFUl9TVEFURVMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBjaGFuZ2VIb3N0UG93ZXIgPSAoc3RhdGUsIGhvc3RJRCkgPT5cbiAgcHV0KHtcbiAgICBrZXk6IFBPV0VSX1JFUVVSU1RfS0VZLFxuICAgIHBhcmFtczogeyBwb3dlcl9hY3Rpb246IHN0YXRlIH0sXG4gICAgdXJsOiBgL2FwaS9ob3N0cy8ke2hvc3RJRH0vcG93ZXJgLFxuICAgIGVycm9yVG9hc3Q6IGVyciA9PiBzcHJpbnRmKF9fKCdhbiBlcnJvciBvY2N1cnJlZDogJXMnKSwgZXJyKSxcbiAgICBzdWNjZXNzVG9hc3Q6ICgpID0+XG4gICAgICBzcHJpbnRmKFxuICAgICAgICBfXygnUG93ZXIgaGFzIGJlZW4gc2V0IHRvIFwiJXNcIiBzdWNjZXNzZnVsbHknKSxcbiAgICAgICAgU1VQUE9SVEVEX1BPV0VSX1NUQVRFU1tzdGF0ZV1cbiAgICAgICksXG4gICAgdXBkYXRlRGF0YTogKHByZXZTdGF0ZSwgeyBwb3dlciB9KSA9PiB7XG4gICAgICBpZiAocG93ZXIpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIHRpdGxlOiBTVVBQT1JURURfUE9XRVJfU1RBVEVTW3N0YXRlXSxcbiAgICAgICAgfTtcbiAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgfSxcbiAgfSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9EZXRhaWxzQ2FyZC9Qb3dlclN0YXR1cy9hY3Rpb25zLmpzIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHtcbiAgQ2FyZCxcbiAgQ2FyZFRpdGxlLFxuICBDYXJkQm9keSxcbiAgQ2FyZEZvb3RlcixcbiAgQnVsbHNleWUsXG4gIEdyaWRJdGVtLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcblxuaW1wb3J0IFN0YXR1c2VzTW9kYWwgZnJvbSAnLi9TdGF0dXNlc01vZGFsJztcbmltcG9ydCB7IGZvcmVtYW5VcmwgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgeyB1c2VBUEkgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaG9va3MvQVBJL0FQSUhvb2tzJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBzZWxlY3RFcnJvclN0YXR1c2VzLFxuICBzZWxlY3RXYXJuaW5nU3RhdHVzZXMsXG4gIHNlbGVjdE9LU3RhdHVzZXMsXG4gIHNlbGVjdE5BU3RhdHVzZXMsXG4gIHNlbGVjdEFsbFNvcnRlZFN0YXR1c2VzLFxufSBmcm9tICcuL0hvc3RTdGF0dXNTZWxlY3Rvcic7XG5pbXBvcnQgR2xvYmFsU3RhdGUgZnJvbSAnLi9HbG9iYWxTdGF0ZSc7XG5pbXBvcnQgQWdncmVnYXRlU3RhdHVzSXRlbSBmcm9tICcuL0FnZ3JlZ2F0ZVN0YXR1c0l0ZW0nO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IFN0YXR1c0ljb24gZnJvbSAnLi9TdGF0dXNJY29uJztcbmltcG9ydCB7XG4gIEhPU1RfU1RBVFVTRVNfT1BUSU9OUyxcbiAgT0tfU1RBVFVTX1NUQVRFLFxuICBXQVJOSU5HX1NUQVRVU19TVEFURSxcbiAgRVJST1JfU1RBVFVTX1NUQVRFLFxuICBOQV9TVEFUVVNfU1RBVEUsXG4gIFNVUFBPUlRFRF9TVEFUVVNFUyxcbn0gZnJvbSAnLi9Db25zdGFudHMnO1xuaW1wb3J0ICcuL3N0eWxlcy5zY3NzJztcblxuY29uc3QgQWdncmVnYXRlU3RhdHVzQ2FyZCA9ICh7XG4gIGhvc3ROYW1lLFxuICBob3N0RGV0YWlsczoge1xuICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICB2aWV3X2hvc3RzOiBjYW5WaWV3U3RhdHVzZXMsXG4gICAgICBmb3JnZXRfc3RhdHVzX2hvc3RzOiBjYW5Gb3JnZXRTdGF0dXNlcyxcbiAgICB9ID0ge30sXG4gIH0sXG59KSA9PiB7XG4gIGNvbnN0IFtvcGVuTW9kYWwsIHNldE9wZW5Nb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtjaG9zZW5UeXBlLCBzZXRDaG9zZW5UeXBlXSA9IHVzZVN0YXRlKCk7XG5cbiAgY29uc3QgdXJsID0gZm9yZW1hblVybChgL2hvc3RzLyR7aG9zdE5hbWV9L3N0YXR1c2VzYCk7XG4gIGNvbnN0IHtcbiAgICByZXNwb25zZTogeyBnbG9iYWwgfSxcbiAgICBzdGF0dXM6IHJlc3BvbnNlU3RhdHVzLFxuICB9ID0gdXNlQVBJKCdnZXQnLCB1cmwsIEhPU1RfU1RBVFVTRVNfT1BUSU9OUyk7XG5cbiAgY29uc3Qgb2tTdGF0dXNlcyA9IHVzZVNlbGVjdG9yKHNlbGVjdE9LU3RhdHVzZXMpO1xuICBjb25zdCB3YXJuU3RhdHVzID0gdXNlU2VsZWN0b3Ioc2VsZWN0V2FybmluZ1N0YXR1c2VzKTtcbiAgY29uc3QgZXJyb3JTdGF0dXMgPSB1c2VTZWxlY3RvcihzZWxlY3RFcnJvclN0YXR1c2VzKTtcbiAgY29uc3QgbmFTdGF0dXNlcyA9IHVzZVNlbGVjdG9yKHNlbGVjdE5BU3RhdHVzZXMpO1xuICBjb25zdCBhbGxTb3J0ZWRTdGF0dXNlcyA9IHVzZVNlbGVjdG9yKHNlbGVjdEFsbFNvcnRlZFN0YXR1c2VzKTtcblxuICBjb25zdCBzdGF0dXNlc01hcHBlciA9IHR5cGUgPT4ge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBPS19TVEFUVVNfU1RBVEU6XG4gICAgICAgIHJldHVybiBva1N0YXR1c2VzO1xuICAgICAgY2FzZSBXQVJOSU5HX1NUQVRVU19TVEFURTpcbiAgICAgICAgcmV0dXJuIHdhcm5TdGF0dXM7XG4gICAgICBjYXNlIEVSUk9SX1NUQVRVU19TVEFURTpcbiAgICAgICAgcmV0dXJuIGVycm9yU3RhdHVzO1xuICAgICAgY2FzZSBOQV9TVEFUVVNfU1RBVEU6XG4gICAgICAgIHJldHVybiBuYVN0YXR1c2VzO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGFsbFNvcnRlZFN0YXR1c2VzO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpc09LU3RhdGUgPVxuICAgIHJlc3BvbnNlU3RhdHVzID09PSBTVEFUVVMuUkVTT0xWRUQgJiZcbiAgICB3YXJuU3RhdHVzLmxlbmd0aCA9PT0gMCAmJlxuICAgIGVycm9yU3RhdHVzLmxlbmd0aCA9PT0gMDtcblxuICBjb25zdCBoYWRsZUljb25DbGljayA9IHR5cGUgPT4ge1xuICAgIHNldENob3NlblR5cGUodHlwZSk7XG4gICAgc2V0T3Blbk1vZGFsKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEdyaWRJdGVtIHhsMj17M30geGw9ezR9IG1kPXs2fSBsZz17NH0+XG4gICAgICA8Q2FyZCBjbGFzc05hbWU9XCJjYXJkLXBmLWFnZ3JlZ2F0ZS1zdGF0dXNcIiBpc0hvdmVyYWJsZT5cbiAgICAgICAgPENhcmRUaXRsZT5cbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHtfXygnSG9zdCBTdGF0dXMnKX1cbiAgICAgICAgICAgIHshaXNPS1N0YXRlICYmIDxTdGF0dXNJY29uIHN0YXR1c051bWJlcj17Z2xvYmFsfSAvPn1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ2FyZFRpdGxlPlxuICAgICAgICA8Q2FyZEJvZHkgc3R5bGU9e3sgaGVpZ2h0OiAnMTI5cHgnIH19PlxuICAgICAgICAgIDxHbG9iYWxTdGF0ZVxuICAgICAgICAgICAgY2Fubm90Vmlld1N0YXR1c2VzPXshY2FuVmlld1N0YXR1c2VzfVxuICAgICAgICAgICAgaXNPS1N0YXRlPXtpc09LU3RhdGV9XG4gICAgICAgICAgICByZXNwb25zZVN0YXR1cz17cmVzcG9uc2VTdGF0dXN9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEJ1bGxzZXllPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJjYXJkLXBmLWFnZ3JlZ2F0ZS1zdGF0dXMtbm90aWZpY2F0aW9uc1wiPlxuICAgICAgICAgICAgICAgIHtTVVBQT1JURURfU1RBVFVTRVMubWFwKCh7IGxhYmVsLCBzdGF0dXMgfSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPEFnZ3JlZ2F0ZVN0YXR1c0l0ZW1cbiAgICAgICAgICAgICAgICAgICAga2V5PXtgc3RhdHVzLSR7bGFiZWx9YH1cbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVN0YXR1cz17cmVzcG9uc2VTdGF0dXN9XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1cz17c3RhdHVzfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYWRsZUljb25DbGljayhzdGF0dXMpfVxuICAgICAgICAgICAgICAgICAgICBhbW91bnQ9e3N0YXR1c2VzTWFwcGVyKHN0YXR1cykubGVuZ3RofVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9CdWxsc2V5ZT5cbiAgICAgICAgICA8L0dsb2JhbFN0YXRlPlxuICAgICAgICA8L0NhcmRCb2R5PlxuICAgICAgICA8Q2FyZEZvb3Rlcj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBzZXRDaG9zZW5UeXBlKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgIHNldE9wZW5Nb2RhbCh0cnVlKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge19fKCdNYW5hZ2UgYWxsIHN0YXR1c2VzJyl9XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L0NhcmRGb290ZXI+XG4gICAgICA8L0NhcmQ+XG4gICAgICA8U3RhdHVzZXNNb2RhbFxuICAgICAgICBjYW5Gb3JnZXRTdGF0dXNlcz17Y2FuRm9yZ2V0U3RhdHVzZXN9XG4gICAgICAgIHR5cGU9e2Nob3NlblR5cGV9XG4gICAgICAgIHN0YXR1c2VzPXtzdGF0dXNlc01hcHBlcihjaG9zZW5UeXBlKX1cbiAgICAgICAgaG9zdE5hbWU9e2hvc3ROYW1lfVxuICAgICAgICBpc09wZW49e29wZW5Nb2RhbH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgIHNldE9wZW5Nb2RhbChmYWxzZSk7XG4gICAgICAgIH19XG4gICAgICAvPlxuICAgIDwvR3JpZEl0ZW0+XG4gICk7XG59O1xuXG5BZ2dyZWdhdGVTdGF0dXNDYXJkLnByb3BUeXBlcyA9IHtcbiAgaG9zdE5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhvc3REZXRhaWxzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHBlcm1pc3Npb25zOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgdmlld19ob3N0czogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBmb3JnZXRfc3RhdHVzX2hvc3RzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB9KSxcbiAgfSksXG59O1xuXG5BZ2dyZWdhdGVTdGF0dXNDYXJkLmRlZmF1bHRQcm9wcyA9IHtcbiAgaG9zdE5hbWU6IHVuZGVmaW5lZCxcbiAgaG9zdERldGFpbHM6IHtcbiAgICBwZXJtaXNzaW9uczogeyBzdGF0dXNlc19ob3N0czogZmFsc2UsIGZvcmdldF9zdGF0dXNfaG9zdHM6IGZhbHNlIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBZ2dyZWdhdGVTdGF0dXNDYXJkO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvU3RhdHVzL0FnZ3JlZ2F0ZVN0YXR1c0NhcmQuanMiLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgVGFibGUsIFRhYmxlSGVhZGVyLCBUYWJsZUJvZHkgfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC10YWJsZSc7XG5pbXBvcnQgUmVsYXRpdmVEYXRlVGltZSBmcm9tICcuLi8uLi9jb21tb24vZGF0ZXMvUmVsYXRpdmVEYXRlVGltZSc7XG5pbXBvcnQgU3RhdHVzSWNvbiBmcm9tICcuL1N0YXR1c0ljb24nO1xuaW1wb3J0IHsgZm9yZ2V0U3RhdHVzIH0gZnJvbSAnLi9TdGF0dXNBY3Rpb25zJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXywgc3ByaW50ZiB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCAnLi9zdHlsZXMuc2Nzcyc7XG5pbXBvcnQgeyBvcGVuQ29uZmlybU1vZGFsIH0gZnJvbSAnLi4vLi4vQ29uZmlybU1vZGFsJztcblxuY29uc3QgU3RhdHVzVGFibGUgPSAoeyBob3N0TmFtZSwgc3RhdHVzZXMsIGNhbkZvcmdldFN0YXR1c2VzIH0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBoYW5kbGVDbGVhclN0YXR1cyA9IChldmVudCwgcm93SWQsIHJvd0RhdGEpID0+IHtcbiAgICBjb25zdCBzdGF0dXNOYW1lID0gcm93RGF0YVswXT8udGl0bGU/LnByb3BzPy5jaGlsZHJlbiB8fCByb3dEYXRhWzBdO1xuICAgIGRpc3BhdGNoKFxuICAgICAgb3BlbkNvbmZpcm1Nb2RhbCh7XG4gICAgICAgIHRpdGxlOiBfXyhcIkNsZWFyIEhvc3QncyBTdGF0dXNcIiksXG4gICAgICAgIG1lc3NhZ2U6IHNwcmludGYoXG4gICAgICAgICAgX18oJ1lvdSBhcmUgYWJvdXQgdG8gY2xlYXIgJXMgc3RhdHVzLiBBcmUgeW91IHN1cmU/JyksXG4gICAgICAgICAgc3RhdHVzTmFtZVxuICAgICAgICApLFxuICAgICAgICBpc1dhcm5pbmc6IHRydWUsXG4gICAgICAgIG9uQ29uZmlybTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtjaG9zZW5TdGF0dXNdID0gc3RhdHVzZXMuZmlsdGVyKFxuICAgICAgICAgICAgc3RhdHVzID0+IHN0YXR1cy5uYW1lID09PSBzdGF0dXNOYW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkaXNwYXRjaChmb3JnZXRTdGF0dXMoaG9zdE5hbWUsIGNob3NlblN0YXR1cykpO1xuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9O1xuICBjb25zdCBjb2x1bW5zID0gW19fKCdOYW1lJyksIF9fKCdTdGF0dXMnKSwgX18oJ1JlcG9ydGVkIEF0JyldO1xuICBjb25zdCByb3dzID0gc3RhdHVzZXM/Lm1hcChcbiAgICAoeyBuYW1lLCBsYWJlbCwgbGluaywgZ2xvYmFsLCByZXBvcnRlZF9hdDogcmVwb3J0ZWRBdCB9KSA9PiBbXG4gICAgICBsaW5rID8geyB0aXRsZTogPGEgaHJlZj17bGlua30+e25hbWV9PC9hPiB9IDogbmFtZSxcbiAgICAgIHsgdGl0bGU6IDxTdGF0dXNJY29uIHN0YXR1c051bWJlcj17Z2xvYmFsfSBsYWJlbD17bGFiZWx9IC8+IH0sXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiAoXG4gICAgICAgICAgPFJlbGF0aXZlRGF0ZVRpbWVcbiAgICAgICAgICAgIGRhdGU9e3JlcG9ydGVkQXR9XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU9ezxzcGFuIGNsYXNzTmFtZT1cImRpc2FibGVkXCI+e19fKCdOL0EnKX08L3NwYW4+fVxuICAgICAgICAgIC8+XG4gICAgICAgICksXG4gICAgICB9LFxuICAgIF1cbiAgKTtcblxuICBjb25zdCBhY3Rpb25SZXNvbHZlciA9ICgpID0+IFtcbiAgICB7XG4gICAgICB0aXRsZTogX18oJ0NsZWFyJyksXG4gICAgICBvbkNsaWNrOiBoYW5kbGVDbGVhclN0YXR1cyxcbiAgICAgIGlzRGlzYWJsZWQ6ICFjYW5Gb3JnZXRTdGF0dXNlcyxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGFyZUFjdGlvbnNEaXNhYmxlZCA9IChyb3dEYXRhLCB7IHJvd0luZGV4IH0pID0+XG4gICAgIXN0YXR1c2VzW3Jvd0luZGV4XS5yZXBvcnRlZF9hdDtcblxuICByZXR1cm4gKFxuICAgIDxUYWJsZVxuICAgICAgc3R5bGU9e3sgaGVpZ2h0OiAnYXV0bycgfX1cbiAgICAgIGFyaWEtbGFiZWw9XCJzdGF0dXNlcy10YWJsZVwiXG4gICAgICB2YXJpYW50PVwiY29tcGFjdFwiXG4gICAgICBib3JkZXJzPVwiY29tcGFjdEJvcmRlcmxlc3NcIlxuICAgICAgY2VsbHM9e2NvbHVtbnN9XG4gICAgICByb3dzPXtyb3dzfVxuICAgICAgZHJvcGRvd25EaXJlY3Rpb249XCJ1cFwiXG4gICAgICBhY3Rpb25SZXNvbHZlcj17YWN0aW9uUmVzb2x2ZXJ9XG4gICAgICBhcmVBY3Rpb25zRGlzYWJsZWQ9e2FyZUFjdGlvbnNEaXNhYmxlZH1cbiAgICA+XG4gICAgICA8VGFibGVIZWFkZXIgLz5cbiAgICAgIDxUYWJsZUJvZHkgLz5cbiAgICA8L1RhYmxlPlxuICApO1xufTtcblxuU3RhdHVzVGFibGUucHJvcFR5cGVzID0ge1xuICBob3N0TmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzdGF0dXNlczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm9iamVjdCksXG4gIGNhbkZvcmdldFN0YXR1c2VzOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cblN0YXR1c1RhYmxlLmRlZmF1bHRQcm9wcyA9IHtcbiAgc3RhdHVzZXM6IFtdLFxuICBjYW5Gb3JnZXRTdGF0dXNlczogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU3RhdHVzVGFibGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvU3RhdHVzVGFibGUuanMiLCJpbXBvcnQgeyBBUElBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcbmltcG9ydCB7IEhPU1RfU1RBVFVTRVNfS0VZLCBDTEVBUl9TVEFUVVNfS0VZIH0gZnJvbSAnLi9Db25zdGFudHMnO1xuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuY29uc3QgZ2V0U3RhdHVzZXMgPSBob3N0TmFtZSA9PiBkaXNwYXRjaCA9PiB7XG4gIGNvbnN0IHVybCA9IGZvcmVtYW5VcmwoYC9ob3N0cy8ke2hvc3ROYW1lfS9zdGF0dXNlc2ApO1xuICBkaXNwYXRjaChcbiAgICBBUElBY3Rpb25zLmdldCh7XG4gICAgICB1cmwsXG4gICAgICBrZXk6IEhPU1RfU1RBVFVTRVNfS0VZLFxuICAgIH0pXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZm9yZ2V0U3RhdHVzID0gKGhvc3ROYW1lLCB7IGxhYmVsLCBpZCB9KSA9PiBkaXNwYXRjaCA9PiB7XG4gIGNvbnN0IHN1Y2Nlc3NUb2FzdCA9ICgpID0+IGBTdGF0dXMgJHtsYWJlbH0gaGFzIGJlZW4gcmVtb3ZlZGA7XG4gIGNvbnN0IGVycm9yVG9hc3QgPSAoeyBtZXNzYWdlIH0pID0+IG1lc3NhZ2U7XG4gIGNvbnN0IHVybCA9IGZvcmVtYW5VcmwoYC9ob3N0cy8ke2hvc3ROYW1lfS9mb3JnZXRfc3RhdHVzP3N0YXR1cz0ke2lkfWApO1xuICBkaXNwYXRjaChcbiAgICBBUElBY3Rpb25zLnBvc3Qoe1xuICAgICAgdXJsOiBmb3JlbWFuVXJsKHVybCksXG4gICAgICBrZXk6IENMRUFSX1NUQVRVU19LRVksXG4gICAgICBzdWNjZXNzVG9hc3QsXG4gICAgICBlcnJvclRvYXN0LFxuICAgICAgaGFuZGxlU3VjY2VzczogKCkgPT4gZGlzcGF0Y2goZ2V0U3RhdHVzZXMoaG9zdE5hbWUpKSxcbiAgICB9KVxuICApO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1N0YXR1cy9TdGF0dXNBY3Rpb25zLmpzIiwiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBUaXRsZSwgRW1wdHlTdGF0ZSwgRW1wdHlTdGF0ZUljb24gfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCB7IE9rSWNvbiwgQmFuSWNvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25zJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IEdsb2JhbFN0YXRlID0gKHtcbiAgcmVzcG9uc2VTdGF0dXMsXG4gIGlzT0tTdGF0ZSxcbiAgY2Fubm90Vmlld1N0YXR1c2VzLFxuICBjaGlsZHJlbixcbn0pID0+IHtcbiAgaWYgKHJlc3BvbnNlU3RhdHVzID09PSBTVEFUVVMuUkVTT0xWRUQgJiYgKGlzT0tTdGF0ZSB8fCBjYW5ub3RWaWV3U3RhdHVzZXMpKVxuICAgIHJldHVybiAoXG4gICAgICA8RW1wdHlTdGF0ZSBzdHlsZT17eyBtYXJnaW5Ub3A6ICctMXB4JyB9fSBpc0Z1bGxIZWlnaHQ+XG4gICAgICAgIDxFbXB0eVN0YXRlSWNvbiBpY29uPXtjYW5ub3RWaWV3U3RhdHVzZXMgPyBCYW5JY29uIDogT2tJY29ufSAvPlxuICAgICAgICA8VGl0bGUgc2l6ZT1cImxnXCIgaGVhZGluZ0xldmVsPVwiaDRcIj5cbiAgICAgICAgICB7Y2Fubm90Vmlld1N0YXR1c2VzXG4gICAgICAgICAgICA/IF9fKCdObyBzdGF0dXNlcyB0byBzaG93JylcbiAgICAgICAgICAgIDogX18oJ0FsbCBTdGF0dXNlcyBhcmUgT0snKX1cbiAgICAgICAgPC9UaXRsZT5cbiAgICAgIDwvRW1wdHlTdGF0ZT5cbiAgICApO1xuXG4gIHJldHVybiBjaGlsZHJlbjtcbn07XG5cbkdsb2JhbFN0YXRlLnByb3BUeXBlcyA9IHtcbiAgY2Fubm90Vmlld1N0YXR1c2VzOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgaXNPS1N0YXRlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICByZXNwb25zZVN0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbkdsb2JhbFN0YXRlLmRlZmF1bHRQcm9wcyA9IHtcbiAgcmVzcG9uc2VTdGF0dXM6IFNUQVRVUy5QRU5ESU5HLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgR2xvYmFsU3RhdGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9TdGF0dXMvR2xvYmFsU3RhdGUuanMiLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCBTdGF0dXNJY29uIGZyb20gJy4vU3RhdHVzSWNvbic7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IFNrZWxldG9uTG9hZGVyIGZyb20gJy4uLy4uL2NvbW1vbi9Ta2VsZXRvbkxvYWRlcic7XG5pbXBvcnQgeyBTVEFUVVMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuXG5jb25zdCBTdGF0dXNJdGVtID0gKHsgc3RhdHVzLCBhbW91bnQsIHJlc3BvbnNlU3RhdHVzLCBsYWJlbCwgb25DbGljayB9KSA9PiAoXG4gIDxzcGFuIGNsYXNzTmFtZT1cImNhcmQtcGYtYWdncmVnYXRlLXN0YXR1cy1ub3RpZmljYXRpb25cIj5cbiAgICA8VG9vbHRpcCBjb250ZW50PXtgJHthbW91bnR9LSR7bGFiZWx9YH0gZW50cnlEZWxheT17MH0gZXhpdERlbGF5PXswfT5cbiAgICAgIDxhXG4gICAgICAgIHN0eWxlPXt7IGZvbnRTaXplOiAneC1sYXJnZScgfX1cbiAgICAgICAgY2xhc3NOYW1lPVwiYWdncmVnYXRlLXRleHRcIlxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgPlxuICAgICAgICA8U2tlbGV0b25Mb2FkZXIgc2tlbGV0b25Qcm9wcz17eyB3aWR0aDogMzAgfX0gc3RhdHVzPXtyZXNwb25zZVN0YXR1c30+XG4gICAgICAgICAge3N0YXR1cyAhPT0gdW5kZWZpbmVkICYmIChcbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8U3RhdHVzSWNvbiBzdGF0dXNOdW1iZXI9e3N0YXR1c30gLz4ge2Ftb3VudH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NrZWxldG9uTG9hZGVyPlxuICAgICAgPC9hPlxuICAgIDwvVG9vbHRpcD5cbiAgPC9zcGFuPlxuKTtcblxuU3RhdHVzSXRlbS5wcm9wVHlwZXMgPSB7XG4gIGFtb3VudDogUHJvcFR5cGVzLm51bWJlcixcbiAgcmVzcG9uc2VTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdGF0dXM6IFByb3BUeXBlcy5udW1iZXIsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuU3RhdHVzSXRlbS5kZWZhdWx0UHJvcHMgPSB7XG4gIGFtb3VudDogMCxcbiAgbGFiZWw6ICcnLFxuICBzdGF0dXM6IHVuZGVmaW5lZCxcbiAgb25DbGljazogbm9vcCxcbiAgcmVzcG9uc2VTdGF0dXM6IFNUQVRVUy5QRU5ESU5HLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU3RhdHVzSXRlbTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1N0YXR1cy9BZ2dyZWdhdGVTdGF0dXNJdGVtLmpzIiwiaW1wb3J0IHsgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmNvbnN0IFNsb3QgPSAoeyBmaWxscywgaWQsIG11bHRpLCBjaGlsZHJlbiA9IG51bGwsIC4uLnByb3BzIH0pID0+IHtcbiAgY29uc3QgYWRkUHJvcHMgPSBvYmplY3QgPT4ge1xuICAgIGlmIChtdWx0aSAmJiAhb2JqZWN0LmtleSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFBsZWFzZSBhZGQgYSBrZXkgYXR0cmlidXRlIHRvIG11bHRpcGxlIGZpbGxzIFtjb21wb25lbnQgLSAke29iamVjdC50eXBlLm5hbWV9XWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGlzVmFsaWRFbGVtZW50KG9iamVjdCkpIHtcbiAgICAgIHJldHVybiBjbG9uZUVsZW1lbnQob2JqZWN0LCB7IC4uLnByb3BzIH0pO1xuICAgIH1cblxuICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2xvdCB3aXRoIG92ZXJyaWRlIHByb3BzIG11c3QgaGF2ZSBhIGNoaWxkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lRWxlbWVudChjaGlsZHJlbiwgeyAuLi5wcm9wcywgLi4ub2JqZWN0IH0pO1xuICB9O1xuXG4gIGlmIChmaWxscy5sZW5ndGgpIHJldHVybiBmaWxscy5tYXAoY29tcG9uZW50ID0+IGFkZFByb3BzKGNvbXBvbmVudCkpO1xuICByZXR1cm4gY2hpbGRyZW47XG59O1xuXG5TbG90LnByb3BUeXBlcyA9IHtcbiAgZmlsbHM6IFByb3BUeXBlcy5hcnJheSxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbXVsdGk6IFByb3BUeXBlcy5ib29sLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5TbG90LmRlZmF1bHRQcm9wcyA9IHtcbiAgZmlsbHM6IFtdLFxuICBtdWx0aTogZmFsc2UsXG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTbG90O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1Nsb3QvU2xvdC5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9UYWJzL092ZXJ2aWV3L0RldGFpbHMuY3NzXG4vLyBtb2R1bGUgaWQgPSA0NjRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBzZWxlY3RBbGxTb3J0ZWRTdGF0dXNlcyB9IGZyb20gJy4vSG9zdFN0YXR1c1NlbGVjdG9yJztcbmltcG9ydCB7IGZvcmVtYW5VcmwgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgU3RhdHVzZXNNb2RhbCBmcm9tICcuL1N0YXR1c2VzTW9kYWwnO1xuaW1wb3J0IFN0YXR1c0ljb24gZnJvbSAnLi9TdGF0dXNJY29uJztcbmltcG9ydCB7IEhPU1RfU1RBVFVTRVNfS0VZIH0gZnJvbSAnLi9Db25zdGFudHMnO1xuaW1wb3J0IHsgQVBJQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L0FQSSc7XG5pbXBvcnQgeyBzZWxlY3RBUElSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L0FQSS9BUElTZWxlY3RvcnMnO1xuXG5jb25zdCBHbG9iYWxTdGF0dXMgPSAoeyBob3N0TmFtZSB9KSA9PiB7XG4gIGNvbnN0IFttb2RhbFN0YXR1cywgc2V0TW9kYWxTdGF0dXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgY29uc3QgeyBnbG9iYWwgfSA9IHVzZVNlbGVjdG9yKHN0YXRlID0+XG4gICAgc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIEhPU1RfU1RBVFVTRVNfS0VZKVxuICApO1xuICBjb25zdCB1cmwgPSBmb3JlbWFuVXJsKGAvaG9zdHMvJHtob3N0TmFtZX0vc3RhdHVzZXNgKTtcbiAgY29uc3Qgc3RhdHVzZXMgPSB1c2VTZWxlY3RvcihzZWxlY3RBbGxTb3J0ZWRTdGF0dXNlcyk7XG5cbiAgY29uc3QgaGFuZGxlR2xvYmFsU3RhdHVzQ2xpY2sgPSAoKSA9PiB7XG4gICAgZGlzcGF0Y2goXG4gICAgICBBUElBY3Rpb25zLmdldCh7XG4gICAgICAgIHVybCxcbiAgICAgICAga2V5OiBIT1NUX1NUQVRVU0VTX0tFWSxcbiAgICAgIH0pXG4gICAgKTtcbiAgICBzZXRNb2RhbFN0YXR1cyh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8YSBzdHlsZT17eyBmb250U2l6ZTogJzE4cHgnIH19IG9uQ2xpY2s9e2hhbmRsZUdsb2JhbFN0YXR1c0NsaWNrfT5cbiAgICAgICAgPFN0YXR1c0ljb24gc3RhdHVzTnVtYmVyPXtnbG9iYWx9IC8+XG4gICAgICA8L2E+XG4gICAgICA8U3RhdHVzZXNNb2RhbFxuICAgICAgICBzdGF0dXNlcz17c3RhdHVzZXN9XG4gICAgICAgIGlzT3Blbj17bW9kYWxTdGF0dXN9XG4gICAgICAgIGhvc3ROYW1lPXtob3N0TmFtZX1cbiAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgIHNldE1vZGFsU3RhdHVzKGZhbHNlKTtcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgPC8+XG4gICk7XG59O1xuXG5HbG9iYWxTdGF0dXMucHJvcFR5cGVzID0ge1xuICBob3N0TmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgR2xvYmFsU3RhdHVzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdERldGFpbHMvU3RhdHVzL0dsb2JhbFN0YXR1cy5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9Ib3N0RGV0YWlscy5zY3NzXG4vLyBtb2R1bGUgaWQgPSA0NjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSGFzaFJvdXRlciwgUm91dGUsIFJlZGlyZWN0LCBTd2l0Y2ggfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgU2xvdCBmcm9tICcuLi8uLi8uLi9jb21tb24vU2xvdCc7XG5pbXBvcnQgeyBERUZBVUxUX1RBQiB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgVGFic1dpdGhIYXNoSGlzdG9yeSBmcm9tICcuL1RhYnMnO1xuXG5jb25zdCBUYWJSb3V0ZXIgPSAoeyBjaGlsZHJlbiwgdGFicywgaG9zdE5hbWUsIHJlc3BvbnNlLCBzdGF0dXMsIHJvdXRlciB9KSA9PiAoXG4gIDxIYXNoUm91dGVyPlxuICAgIDw+XG4gICAgICA8VGFic1dpdGhIYXNoSGlzdG9yeSB0YWJzPXtjaGlsZHJlbn0gLz5cbiAgICAgIDxTd2l0Y2g+XG4gICAgICAgIDxSb3V0ZSBwYXRoPVwiL1wiIGV4YWN0PlxuICAgICAgICAgIDxSZWRpcmVjdCB0bz17YC8ke0RFRkFVTFRfVEFCfWB9IC8+XG4gICAgICAgIDwvUm91dGU+XG4gICAgICAgIHt0YWJzLm1hcCh0YWIgPT4gKFxuICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAga2V5PXt0YWJ9XG4gICAgICAgICAgICBwYXRoPXtgLyR7dGFifWB9XG4gICAgICAgICAgICByZW5kZXI9e3Byb3BzID0+IChcbiAgICAgICAgICAgICAgPFNsb3RcbiAgICAgICAgICAgICAgICBob3N0TmFtZT17aG9zdE5hbWV9XG4gICAgICAgICAgICAgICAgcmVzcG9uc2U9e3Jlc3BvbnNlfVxuICAgICAgICAgICAgICAgIHN0YXR1cz17c3RhdHVzfVxuICAgICAgICAgICAgICAgIGlkPVwiaG9zdC1kZXRhaWxzLXBhZ2UtdGFic1wiXG4gICAgICAgICAgICAgICAgZmlsbElEPXt0YWJ9XG4gICAgICAgICAgICAgICAgcm91dGVyPXtyb3V0ZXJ9XG4gICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgIDwvU3dpdGNoPlxuICAgIDwvPlxuICA8L0hhc2hSb3V0ZXI+XG4pO1xuXG5UYWJSb3V0ZXIucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUuaXNSZXF1aXJlZCxcbiAgaG9zdE5hbWU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgc3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICByZXNwb25zZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgdGFiczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIHJvdXRlcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxufTtcblxuVGFiUm91dGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgc3RhdHVzOiBTVEFUVVMuUEVORElORyxcbiAgcmVzcG9uc2U6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYlJvdXRlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1RhYnMvVGFiUm91dGVyL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUhpc3RvcnkgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmNvbnN0IFRhYnNXaXRoSGFzaEhpc3RvcnkgPSAoeyB0YWJzIH0pID0+IHtcbiAgY29uc3QgaGFzaEhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IG9uU2VsZWN0ID0gKGV2dCwgdGFiKSA9PiB7XG4gICAgaGFzaEhpc3RvcnkucHVzaChgLyR7dGFifWApO1xuICB9O1xuXG4gIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQodGFicywgeyBvblNlbGVjdCB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYnNXaXRoSGFzaEhpc3Rvcnk7XG5cblRhYnNXaXRoSGFzaEhpc3RvcnkucHJvcFR5cGVzID0ge1xuICB0YWJzOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3REZXRhaWxzL1RhYnMvVGFiUm91dGVyL1RhYnMuanMiLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgQWxlcnQsXG4gIEFsZXJ0QWN0aW9uQ2xvc2VCdXR0b24sXG4gIEFsZXJ0QWN0aW9uTGluayxcbn0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyB2aXNpdCB9IGZyb20gJy4uLy4uLy4uL2ZvcmVtYW5fbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBmb3JlbWFuVXJsIH0gZnJvbSAnLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBFeHBlcmltZW50YWxBbGVydCA9ICh7IGhvc3RJZCB9KSA9PiB7XG4gIGNvbnN0IFthbGVydFZpc2liaWxpdHksIHNldEFsZXJ0VmlzaWJpbGl0eV0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgaWYgKCFhbGVydFZpc2liaWxpdHkpIHJldHVybiBudWxsO1xuICByZXR1cm4gKFxuICAgIDxBbGVydFxuICAgICAgaXNJbmxpbmVcbiAgICAgIHZhcmlhbnQ9XCJpbmZvXCJcbiAgICAgIHRpdGxlPXtfXyhcbiAgICAgICAgJ1RoaXMgcGFnZSByZWRlc2lnbiBpcyBleHBlcmltZW50YWwgYW5kIHVuZGVyIGFjdGl2ZSBkZXZlbG9wbWVudC4nXG4gICAgICApfVxuICAgICAgYWN0aW9uQ2xvc2U9e1xuICAgICAgICA8QWxlcnRBY3Rpb25DbG9zZUJ1dHRvbiBvbkNsb3NlPXsoKSA9PiBzZXRBbGVydFZpc2liaWxpdHkoZmFsc2UpfSAvPlxuICAgICAgfVxuICAgICAgYWN0aW9uTGlua3M9e1xuICAgICAgICA8PlxuICAgICAgICAgIDxBbGVydEFjdGlvbkxpbmtcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgICAgICAgICdodHRwczovL2NvbW11bml0eS50aGVmb3JlbWFuLm9yZy90L2ZvcmVtYW4tMy0wLW5ldy1ob3N0LWRldGFpbC1wYWdlLWZlZWRiYWNrLzI1MjgxJyxcbiAgICAgICAgICAgICAgICAnX2JsYW5rJ1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge19fKCdTaGFyZSB5b3VyIGZlZWRiYWNrJyl9XG4gICAgICAgICAgPC9BbGVydEFjdGlvbkxpbms+XG4gICAgICAgICAgPEFsZXJ0QWN0aW9uTGlua1xuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdmlzaXQoZm9yZW1hblVybChgL2hvc3RzLyR7aG9zdElkfWApKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7X18oJ1N3aXRjaCB0byBwcmV2aW91cyB2ZXJzaW9uJyl9XG4gICAgICAgICAgPC9BbGVydEFjdGlvbkxpbms+XG4gICAgICAgIDwvPlxuICAgICAgfVxuICAgIC8+XG4gICk7XG59O1xuXG5FeHBlcmltZW50YWxBbGVydC5wcm9wVHlwZXMgPSB7XG4gIGhvc3RJZDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5FeHBlcmltZW50YWxBbGVydC5kZWZhdWx0UHJvcHMgPSB7XG4gIGhvc3RJZDogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXhwZXJpbWVudGFsQWxlcnQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0RGV0YWlscy9FeHBlcmltZW50YWxBbGVydC5qcyIsImV4cG9ydCBjb25zdCBIT1NUX0RFVEFJTFNfUEFUSCA9ICcvbmV3L2hvc3RzLzppZCc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0hvc3REZXRhaWxzL2NvbnN0YW50cy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlIGZyb20gJy4vUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlJztcbmltcG9ydCB7IFJFR0lTVFJBVElPTl9QQVRIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHBhdGg6IFJFR0lTVFJBVElPTl9QQVRILFxuICByZW5kZXI6IHByb3BzID0+IDxSZWdpc3RyYXRpb25Db21tYW5kc1BhZ2Ugey4uLnByb3BzfSAvPixcbiAgZXhhY3Q6IHRydWUsXG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9pbmRleC5qcyIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IHtcbiAgQWxlcnQsXG4gIEZvcm0sXG4gIEdyaWQsXG4gIEdyaWRJdGVtLFxuICBUYWIsXG4gIFRhYnMsXG4gIFRhYkNvbnRlbnQsXG4gIFRhYlRpdGxlVGV4dCxcbiAgVGl0bGUsXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IHsgSGVscEljb24gfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1pY29ucyc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7XG4gIHVzZUZvcmVtYW5Pcmdhbml6YXRpb24sXG4gIHVzZUZvcmVtYW5Mb2NhdGlvbixcbiAgdXNlRm9yZW1hblZlcnNpb24sXG59IGZyb20gJy4uLy4uLy4uL1Jvb3QvQ29udGV4dC9Gb3JlbWFuQ29udGV4dCc7XG5pbXBvcnQgeyBTVEFUVVMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IEhlYWQgZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9IZWFkJztcbmltcG9ydCBTbG90IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbW9uL1Nsb3QnO1xuXG5pbXBvcnQge1xuICBzZWxlY3RBUElTdGF0dXNEYXRhLFxuICBzZWxlY3RBUElTdGF0dXNDb21tYW5kLFxuICBzZWxlY3RPcmdhbml6YXRpb25zLFxuICBzZWxlY3RMb2NhdGlvbnMsXG4gIHNlbGVjdEhvc3RHcm91cHMsXG4gIHNlbGVjdENvbW1hbmQsXG4gIHNlbGVjdENvbmZpZ1BhcmFtcyxcbiAgc2VsZWN0T3BlcmF0aW5nU3lzdGVtcyxcbiAgc2VsZWN0T3BlcmF0aW5nU3lzdGVtVGVtcGxhdGUsXG4gIHNlbGVjdFNtYXJ0UHJveGllcyxcbiAgc2VsZWN0UGx1Z2luRGF0YSxcbn0gZnJvbSAnLi9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2VTZWxlY3RvcnMnO1xuaW1wb3J0IHsgZGF0YUFjdGlvbiwgY29tbWFuZEFjdGlvbiB9IGZyb20gJy4vUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlQWN0aW9ucyc7XG5pbXBvcnQgeyBkb2NVcmwgfSBmcm9tICcuL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZUNvbnN0YW50cyc7XG5cbmltcG9ydCBHZW5lcmFsIGZyb20gJy4vY29tcG9uZW50cy9HZW5lcmFsJztcbmltcG9ydCBBZHZhbmNlZCBmcm9tICcuL2NvbXBvbmVudHMvQWR2YW5jZWQnO1xuaW1wb3J0IEFjdGlvbnMgZnJvbSAnLi9jb21wb25lbnRzL0FjdGlvbnMnO1xuaW1wb3J0IENvbW1hbmQgZnJvbSAnLi9jb21wb25lbnRzL0NvbW1hbmQnO1xuaW1wb3J0ICcuL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS5zY3NzJztcblxuY29uc3QgUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgLy8gQ29udGV4dFxuICBjb25zdCBjdXJyZW50T3JnYW5pemF0aW9uID0gdXNlRm9yZW1hbk9yZ2FuaXphdGlvbigpO1xuICBjb25zdCBjdXJyZW50TG9jYXRpb24gPSB1c2VGb3JlbWFuTG9jYXRpb24oKTtcbiAgY29uc3QgZm9yZW1hblZlcnNpb24gPSB1c2VGb3JlbWFuVmVyc2lvbigpO1xuXG4gIC8vIEZvcm0gdGFic1xuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IGdlbmVyYWxUYWJSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcbiAgY29uc3QgYWR2YW5jZWRUYWJSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcblxuICAvLyBBUEkgc3RhdHVzZXNcbiAgY29uc3QgYXBpU3RhdHVzQ29tbWFuZCA9IHVzZVNlbGVjdG9yKHNlbGVjdEFQSVN0YXR1c0NvbW1hbmQpO1xuICBjb25zdCBhcGlTdGF0dXNEYXRhID0gdXNlU2VsZWN0b3Ioc2VsZWN0QVBJU3RhdHVzRGF0YSk7XG4gIGNvbnN0IGlzTG9hZGluZyA9IGFwaVN0YXR1c0RhdGEgPT09IFNUQVRVUy5QRU5ESU5HO1xuICBjb25zdCBpc0dlbmVyYXRpbmcgPSBhcGlTdGF0dXNDb21tYW5kID09PSBTVEFUVVMuUEVORElORztcblxuICAvLyBGb3JtIGRhdGFcbiAgY29uc3Qgb3JnYW5pemF0aW9ucyA9IHVzZVNlbGVjdG9yKHNlbGVjdE9yZ2FuaXphdGlvbnMpO1xuICBjb25zdCBsb2NhdGlvbnMgPSB1c2VTZWxlY3RvcihzZWxlY3RMb2NhdGlvbnMpO1xuICBjb25zdCBob3N0R3JvdXBzID0gdXNlU2VsZWN0b3Ioc2VsZWN0SG9zdEdyb3Vwcyk7XG4gIGNvbnN0IG9wZXJhdGluZ1N5c3RlbXMgPSB1c2VTZWxlY3RvcihzZWxlY3RPcGVyYXRpbmdTeXN0ZW1zKTtcbiAgY29uc3Qgb3BlcmF0aW5nU3lzdGVtVGVtcGxhdGUgPSB1c2VTZWxlY3RvcihzZWxlY3RPcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZSk7XG4gIGNvbnN0IHNtYXJ0UHJveGllcyA9IHVzZVNlbGVjdG9yKHNlbGVjdFNtYXJ0UHJveGllcyk7XG4gIGNvbnN0IGNvbmZpZ1BhcmFtcyA9IHVzZVNlbGVjdG9yKHNlbGVjdENvbmZpZ1BhcmFtcyk7XG4gIGNvbnN0IHBsdWdpbkRhdGEgPSB1c2VTZWxlY3RvcihzZWxlY3RQbHVnaW5EYXRhKTtcblxuICAvLyBGb3JtIHZhbHVlc1xuICBjb25zdCBbb3JnYW5pemF0aW9uSWQsIHNldE9yZ2FuaXphdGlvbklkXSA9IHVzZVN0YXRlKGN1cnJlbnRPcmdhbml6YXRpb24/LmlkKTtcbiAgY29uc3QgW2xvY2F0aW9uSWQsIHNldExvY2F0aW9uSWRdID0gdXNlU3RhdGUoY3VycmVudExvY2F0aW9uPy5pZCk7XG4gIGNvbnN0IFtob3N0R3JvdXBJZCwgc2V0SG9zdEdyb3VwSWRdID0gdXNlU3RhdGUoKTtcbiAgY29uc3QgW29wZXJhdGluZ1N5c3RlbUlkLCBzZXRPcGVyYXRpbmdTeXN0ZW1JZF0gPSB1c2VTdGF0ZSgpO1xuICBjb25zdCBbc21hcnRQcm94eUlkLCBzZXRTbWFydFByb3h5SWRdID0gdXNlU3RhdGUoKTtcbiAgY29uc3QgW2luc2VjdXJlLCBzZXRJbnNlY3VyZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzZXR1cFJlbW90ZUV4ZWN1dGlvbiwgc2V0U2V0dXBSZW1vdGVFeGVjdXRpb25dID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbc2V0dXBJbnNpZ2h0cywgc2V0U2V0dXBJbnNpZ2h0c10gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtqd3RFeHBpcmF0aW9uLCBzZXRKd3RFeHBpcmF0aW9uXSA9IHVzZVN0YXRlKDQpO1xuICBjb25zdCBbcGFja2FnZXMsIHNldFBhY2thZ2VzXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3VwZGF0ZVBhY2thZ2VzLCBzZXRVcGRhdGVQYWNrYWdlc10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtyZXBvLCBzZXRSZXBvXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3JlcG9HcGdLZXlVcmwsIHNldFJlcG9HcGdLZXlVcmxdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbaW52YWxpZEZpZWxkcywgc2V0SW52YWxpZEZpZWxkc10gPSB1c2VTdGF0ZShbXSk7XG5cbiAgLy8gQ29tbWFuZFxuICBjb25zdCBjb21tYW5kID0gdXNlU2VsZWN0b3Ioc2VsZWN0Q29tbWFuZCk7XG5cbiAgLy8gUGx1Z2luc1xuICBjb25zdCBbcGx1Z2luVmFsdWVzLCBzZXRQbHVnaW5WYWx1ZXNdID0gdXNlU3RhdGUoe30pO1xuXG4gIGNvbnN0IGhhbmRsZVBsdWdpblZhbHVlID0gdXNlQ2FsbGJhY2soZGF0YSA9PiB7XG4gICAgc2V0UGx1Z2luVmFsdWVzKHByZXZWYWx1ZXMgPT4gKHsgLi4ucHJldlZhbHVlcywgLi4uZGF0YSB9KSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVJbnZhbGlkRmllbGQgPSB1c2VDYWxsYmFjaygoZmllbGQsIGlzVmFsaWQpID0+IHtcbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgc2V0SW52YWxpZEZpZWxkcyhwcmV2RmllbGRzID0+IHByZXZGaWVsZHMuZmlsdGVyKGYgPT4gZiAhPT0gZmllbGQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SW52YWxpZEZpZWxkcyhwcmV2RmllbGRzID0+IHtcbiAgICAgICAgaWYgKCFwcmV2RmllbGRzLmZpbmQoZiA9PiBmID09PSBmaWVsZCkpIHtcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXZGaWVsZHMsIGZpZWxkXS5zb3J0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByZXZGaWVsZHM7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBlID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBvcmdhbml6YXRpb25JZCxcbiAgICAgIGxvY2F0aW9uSWQsXG4gICAgICBob3N0Z3JvdXBJZDogaG9zdEdyb3VwSWQsXG4gICAgICBvcGVyYXRpbmdzeXN0ZW1JZDogb3BlcmF0aW5nU3lzdGVtSWQsXG4gICAgICBzbWFydFByb3h5SWQsXG4gICAgICBpbnNlY3VyZSxcbiAgICAgIHNldHVwUmVtb3RlRXhlY3V0aW9uLFxuICAgICAgc2V0dXBJbnNpZ2h0cyxcbiAgICAgIGp3dEV4cGlyYXRpb24sXG4gICAgICBwYWNrYWdlcyxcbiAgICAgIHJlcG8sXG4gICAgICByZXBvR3BnS2V5VXJsLFxuICAgICAgdXBkYXRlUGFja2FnZXMsXG4gICAgICAuLi5wbHVnaW5WYWx1ZXMsXG4gICAgfTtcblxuICAgIGRpc3BhdGNoKGNvbW1hbmRBY3Rpb24ocGFyYW1zKSk7XG4gIH07XG5cbiAgY29uc3QgY2hhbmdlVGFiID0gKGUsIHRhYikgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBzZXRBY3RpdmVUYWIodGFiKTtcbiAgfTtcblxuICAvLyBSZXNldCBmb3JtIHZhbHVlcyB3aGVuIE9yZ2FuaXphdGlvbiAvIExvY2F0aW9uIGlzIHNlbGVjdGVkXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0SG9zdEdyb3VwSWQoKTtcbiAgICBzZXRPcGVyYXRpbmdTeXN0ZW1JZCgpO1xuICAgIHNldFNtYXJ0UHJveHlJZCgpO1xuXG4gICAgZGlzcGF0Y2goXG4gICAgICBkYXRhQWN0aW9uKHsgb3JnYW5pemF0aW9uX2lkOiBvcmdhbml6YXRpb25JZCwgbG9jYXRpb25faWQ6IGxvY2F0aW9uSWQgfSlcbiAgICApO1xuICB9LCBbZGlzcGF0Y2gsIG9yZ2FuaXphdGlvbklkLCBsb2NhdGlvbklkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaG9zdEdyb3VwSWQgPT09IHVuZGVmaW5lZCAmJiBvcGVyYXRpbmdTeXN0ZW1JZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgb3JnYW5pemF0aW9uX2lkOiBvcmdhbml6YXRpb25JZCxcbiAgICAgIGxvY2F0aW9uX2lkOiBsb2NhdGlvbklkLFxuICAgICAgaG9zdGdyb3VwX2lkOiBob3N0R3JvdXBJZCxcbiAgICAgIG9wZXJhdGluZ3N5c3RlbV9pZDogb3BlcmF0aW5nU3lzdGVtSWQsXG4gICAgfTtcblxuICAgIGRpc3BhdGNoKGRhdGFBY3Rpb24ocGFyYW1zKSk7XG5cbiAgICAvLyBEaXNhYmxlZCBsaW50IHdhcm5pbmcsIG5lZWQgdG8gY2hlY2sgb25seSBob3N0Z3JvdXBfaWQgJiBvcGVyYXRpbmdzeXN0ZW1faWRcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gIH0sIFtkaXNwYXRjaCwgaG9zdEdyb3VwSWQsIG9wZXJhdGluZ1N5c3RlbUlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEhlYWQ+XG4gICAgICAgIDx0aXRsZT57X18oJ1JlZ2lzdGVyIEhvc3QnKX08L3RpdGxlPlxuICAgICAgPC9IZWFkPlxuICAgICAgPEZvcm1cbiAgICAgICAgb25TdWJtaXQ9e2UgPT4gaGFuZGxlU3VibWl0KGUpfVxuICAgICAgICBjbGFzc05hbWU9XCJyZWdpc3RyYXRpb25fY29tbWFuZHNfZm9ybVwiXG4gICAgICAgIGlzSG9yaXpvbnRhbFxuICAgICAgPlxuICAgICAgICA8R3JpZCBoYXNHdXR0ZXI+XG4gICAgICAgICAgPEdyaWRJdGVtIHNwYW49ezEyfSAvPlxuICAgICAgICAgIDxHcmlkSXRlbSBzcGFuPXs2fT5cbiAgICAgICAgICAgIDxUaXRsZSBoZWFkaW5nTGV2ZWw9XCJoMVwiPntfXygnUmVnaXN0ZXIgSG9zdCcpfTwvVGl0bGU+XG4gICAgICAgICAgPC9HcmlkSXRlbT5cbiAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17Nn0+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPXtkb2NVcmwoZm9yZW1hblZlcnNpb24pfVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicGYtYy1idXR0b24gcGYtbS1zZWNvbmRhcnkgcGYtbS1zbWFsbCBwdWxsLXJpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEhlbHBJY29uIC8+IHtfXygnRG9jdW1lbnRhdGlvbicpfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvR3JpZEl0ZW0+XG5cbiAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPFRhYnNcbiAgICAgICAgICAgICAgYWN0aXZlS2V5PXthY3RpdmVUYWJ9XG4gICAgICAgICAgICAgIG9uU2VsZWN0PXsoZSwgdGFiKSA9PiBjaGFuZ2VUYWIoZSwgdGFiKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFRhYlxuICAgICAgICAgICAgICAgIGV2ZW50S2V5PXswfVxuICAgICAgICAgICAgICAgIHRpdGxlPXs8VGFiVGl0bGVUZXh0PntfXygnR2VuZXJhbCcpfTwvVGFiVGl0bGVUZXh0Pn1cbiAgICAgICAgICAgICAgICB0YWJDb250ZW50SWQ9XCJnZW5lcmFsVGFiXCJcbiAgICAgICAgICAgICAgICB0YWJDb250ZW50UmVmPXtnZW5lcmFsVGFiUmVmfVxuICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgIDxUYWJcbiAgICAgICAgICAgICAgICBldmVudEtleT17MX1cbiAgICAgICAgICAgICAgICB0aXRsZT17PFRhYlRpdGxlVGV4dD57X18oJ0FkdmFuY2VkJyl9PC9UYWJUaXRsZVRleHQ+fVxuICAgICAgICAgICAgICAgIHRhYkNvbnRlbnRJZD1cImFkdmFuY2VkVGFiXCJcbiAgICAgICAgICAgICAgICB0YWJDb250ZW50UmVmPXthZHZhbmNlZFRhYlJlZn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvVGFicz5cbiAgICAgICAgICA8L0dyaWRJdGVtPlxuXG4gICAgICAgICAge2FwaVN0YXR1c0RhdGEgPT09IFNUQVRVUy5FUlJPUiAmJiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17NH0+XG4gICAgICAgICAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtfXyhcbiAgICAgICAgICAgICAgICAgICAgJ1RoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBsb2FkaW5nIHRoZSBkYXRhLCBzZWUgdGhlIGxvZ3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0dyaWRJdGVtPlxuICAgICAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17MTJ9IC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxHcmlkSXRlbSBzcGFuPXs0fT5cbiAgICAgICAgICAgIDxUYWJDb250ZW50IGV2ZW50S2V5PXswfSBpZD1cImdlbmVyYWxTZWN0aW9uXCIgcmVmPXtnZW5lcmFsVGFiUmVmfT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwZi1jLWZvcm1cIj5cbiAgICAgICAgICAgICAgICA8R2VuZXJhbFxuICAgICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uSWQ9e29yZ2FuaXphdGlvbklkfVxuICAgICAgICAgICAgICAgICAgb3JnYW5pemF0aW9ucz17b3JnYW5pemF0aW9uc31cbiAgICAgICAgICAgICAgICAgIGhhbmRsZU9yZ2FuaXphdGlvbj17c2V0T3JnYW5pemF0aW9uSWR9XG4gICAgICAgICAgICAgICAgICBsb2NhdGlvbklkPXtsb2NhdGlvbklkfVxuICAgICAgICAgICAgICAgICAgbG9jYXRpb25zPXtsb2NhdGlvbnN9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVMb2NhdGlvbj17c2V0TG9jYXRpb25JZH1cbiAgICAgICAgICAgICAgICAgIGhvc3RHcm91cElkPXtob3N0R3JvdXBJZH1cbiAgICAgICAgICAgICAgICAgIGhvc3RHcm91cHM9e2hvc3RHcm91cHN9XG4gICAgICAgICAgICAgICAgICBoYW5kbGVIb3N0R3JvdXA9e3NldEhvc3RHcm91cElkfVxuICAgICAgICAgICAgICAgICAgb3BlcmF0aW5nU3lzdGVtSWQ9e29wZXJhdGluZ1N5c3RlbUlkfVxuICAgICAgICAgICAgICAgICAgb3BlcmF0aW5nU3lzdGVtcz17b3BlcmF0aW5nU3lzdGVtc31cbiAgICAgICAgICAgICAgICAgIG9wZXJhdGluZ1N5c3RlbVRlbXBsYXRlPXtvcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZX1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZU9wZXJhdGluZ1N5c3RlbT17c2V0T3BlcmF0aW5nU3lzdGVtSWR9XG4gICAgICAgICAgICAgICAgICBzbWFydFByb3h5SWQ9e3NtYXJ0UHJveHlJZH1cbiAgICAgICAgICAgICAgICAgIHNtYXJ0UHJveGllcz17c21hcnRQcm94aWVzfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlU21hcnRQcm94eT17c2V0U21hcnRQcm94eUlkfVxuICAgICAgICAgICAgICAgICAgaW5zZWN1cmU9e2luc2VjdXJlfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlSW5zZWN1cmU9e3NldEluc2VjdXJlfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlSW52YWxpZEZpZWxkPXtoYW5kbGVJbnZhbGlkRmllbGR9XG4gICAgICAgICAgICAgICAgICBpbnZhbGlkRmllbGRzPXtpbnZhbGlkRmllbGRzfVxuICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgIDxTbG90XG4gICAgICAgICAgICAgICAgICBpZD1cInJlZ2lzdHJhdGlvbkdlbmVyYWxcIlxuICAgICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uSWQ9e29yZ2FuaXphdGlvbklkfVxuICAgICAgICAgICAgICAgICAgbG9jYXRpb25JZD17bG9jYXRpb25JZH1cbiAgICAgICAgICAgICAgICAgIGhvc3RHcm91cElkPXtob3N0R3JvdXBJZH1cbiAgICAgICAgICAgICAgICAgIHBsdWdpblZhbHVlcz17cGx1Z2luVmFsdWVzfVxuICAgICAgICAgICAgICAgICAgcGx1Z2luRGF0YT17cGx1Z2luRGF0YX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVQbHVnaW5WYWx1ZX1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUludmFsaWRGaWVsZD17aGFuZGxlSW52YWxpZEZpZWxkfVxuICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICBtdWx0aVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9UYWJDb250ZW50PlxuXG4gICAgICAgICAgICA8VGFiQ29udGVudFxuICAgICAgICAgICAgICBldmVudEtleT17MX1cbiAgICAgICAgICAgICAgaWQ9XCJhZHZhbmNlZFNlY3Rpb25cIlxuICAgICAgICAgICAgICByZWY9e2FkdmFuY2VkVGFiUmVmfVxuICAgICAgICAgICAgICBoaWRkZW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwZi1jLWZvcm1cIj5cbiAgICAgICAgICAgICAgICA8QWR2YW5jZWRcbiAgICAgICAgICAgICAgICAgIGNvbmZpZ1BhcmFtcz17Y29uZmlnUGFyYW1zfVxuICAgICAgICAgICAgICAgICAgc2V0dXBSZW1vdGVFeGVjdXRpb249e3NldHVwUmVtb3RlRXhlY3V0aW9ufVxuICAgICAgICAgICAgICAgICAgc2V0dXBJbnNpZ2h0cz17c2V0dXBJbnNpZ2h0c31cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUluc2lnaHRzPXtzZXRTZXR1cEluc2lnaHRzfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlUmVtb3RlRXhlY3V0aW9uPXtzZXRTZXR1cFJlbW90ZUV4ZWN1dGlvbn1cbiAgICAgICAgICAgICAgICAgIGp3dEV4cGlyYXRpb249e2p3dEV4cGlyYXRpb259XG4gICAgICAgICAgICAgICAgICBoYW5kbGVKd3RFeHBpcmF0aW9uPXtzZXRKd3RFeHBpcmF0aW9ufVxuICAgICAgICAgICAgICAgICAgaGFuZGxlSW52YWxpZEZpZWxkPXtoYW5kbGVJbnZhbGlkRmllbGR9XG4gICAgICAgICAgICAgICAgICBwbHVnaW5WYWx1ZXM9e3BsdWdpblZhbHVlc31cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVBsdWdpblZhbHVlPXtoYW5kbGVQbHVnaW5WYWx1ZX1cbiAgICAgICAgICAgICAgICAgIGludmFsaWRGaWVsZHM9e2ludmFsaWRGaWVsZHN9XG4gICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb25JZD17b3JnYW5pemF0aW9uSWR9XG4gICAgICAgICAgICAgICAgICBsb2NhdGlvbklkPXtsb2NhdGlvbklkfVxuICAgICAgICAgICAgICAgICAgaG9zdEdyb3VwSWQ9e2hvc3RHcm91cElkfVxuICAgICAgICAgICAgICAgICAgcGFja2FnZXM9e3BhY2thZ2VzfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlUGFja2FnZXM9e3NldFBhY2thZ2VzfVxuICAgICAgICAgICAgICAgICAgcmVwbz17cmVwb31cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVJlcG89e3NldFJlcG99XG4gICAgICAgICAgICAgICAgICByZXBvR3BnS2V5VXJsPXtyZXBvR3BnS2V5VXJsfVxuICAgICAgICAgICAgICAgICAgaGFuZGxlUmVwb0dwZ0tleVVybD17c2V0UmVwb0dwZ0tleVVybH1cbiAgICAgICAgICAgICAgICAgIHVwZGF0ZVBhY2thZ2VzPXt1cGRhdGVQYWNrYWdlc31cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVVwZGF0ZVBhY2thZ2VzPXtzZXRVcGRhdGVQYWNrYWdlc31cbiAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPFNsb3RcbiAgICAgICAgICAgICAgICAgIGlkPVwicmVnaXN0cmF0aW9uQWR2YW5jZWRcIlxuICAgICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uSWQ9e29yZ2FuaXphdGlvbklkfVxuICAgICAgICAgICAgICAgICAgbG9jYXRpb25JZD17bG9jYXRpb25JZH1cbiAgICAgICAgICAgICAgICAgIGhvc3RHcm91cElkPXtob3N0R3JvdXBJZH1cbiAgICAgICAgICAgICAgICAgIHBsdWdpblZhbHVlcz17cGx1Z2luVmFsdWVzfVxuICAgICAgICAgICAgICAgICAgcGx1Z2luRGF0YT17cGx1Z2luRGF0YX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVQbHVnaW5WYWx1ZX1cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUludmFsaWRGaWVsZD17aGFuZGxlSW52YWxpZEZpZWxkfVxuICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICBtdWx0aVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9UYWJDb250ZW50PlxuICAgICAgICAgICAgPEFjdGlvbnNcbiAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgIGlzR2VuZXJhdGluZz17aXNHZW5lcmF0aW5nfVxuICAgICAgICAgICAgICBoYW5kbGVTdWJtaXQ9e2hhbmRsZVN1Ym1pdH1cbiAgICAgICAgICAgICAgaW52YWxpZEZpZWxkcz17aW52YWxpZEZpZWxkc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9HcmlkSXRlbT5cbiAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17MTB9PlxuICAgICAgICAgICAgPENvbW1hbmQgYXBpU3RhdHVzPXthcGlTdGF0dXNDb21tYW5kfSBjb21tYW5kPXtjb21tYW5kfSAvPlxuICAgICAgICAgIDwvR3JpZEl0ZW0+XG4gICAgICAgIDwvR3JpZD5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2luZGV4LmpzIiwiaW1wb3J0IHtcbiAgUkVHSVNUUkFUSU9OX0NPTU1BTkRTX0RBVEEsXG4gIFJFR0lTVFJBVElPTl9DT01NQU5EU19PU19URU1QTEFURSxcbiAgUkVHSVNUUkFUSU9OX0NPTU1BTkRTLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5pbXBvcnQge1xuICBzZWxlY3RBUElTdGF0dXMsXG4gIHNlbGVjdEFQSVJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi8uLi9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzJztcblxuLy8gRm9ybSBBUEkgRGF0YVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0QVBJU3RhdHVzRGF0YSA9IHN0YXRlID0+XG4gIHNlbGVjdEFQSVN0YXR1cyhzdGF0ZSwgUkVHSVNUUkFUSU9OX0NPTU1BTkRTX0RBVEEpO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0T3JnYW5pemF0aW9ucyA9IHN0YXRlID0+XG4gIHNlbGVjdEFQSVJlc3BvbnNlKHN0YXRlLCBSRUdJU1RSQVRJT05fQ09NTUFORFNfREFUQSkub3JnYW5pemF0aW9ucyB8fCBbXTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdExvY2F0aW9ucyA9IHN0YXRlID0+XG4gIHNlbGVjdEFQSVJlc3BvbnNlKHN0YXRlLCBSRUdJU1RSQVRJT05fQ09NTUFORFNfREFUQSkubG9jYXRpb25zIHx8IFtdO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0SG9zdEdyb3VwcyA9IHN0YXRlID0+XG4gIHNlbGVjdEFQSVJlc3BvbnNlKHN0YXRlLCBSRUdJU1RSQVRJT05fQ09NTUFORFNfREFUQSkuaG9zdEdyb3VwcyB8fCBbXTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdE9wZXJhdGluZ1N5c3RlbXMgPSBzdGF0ZSA9PlxuICBzZWxlY3RBUElSZXNwb25zZShzdGF0ZSwgUkVHSVNUUkFUSU9OX0NPTU1BTkRTX0RBVEEpLm9wZXJhdGluZ1N5c3RlbXMgfHwgW107XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RPcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZSA9IHN0YXRlID0+XG4gIHNlbGVjdEFQSVJlc3BvbnNlKHN0YXRlLCBSRUdJU1RSQVRJT05fQ09NTUFORFNfT1NfVEVNUExBVEUpLnRlbXBsYXRlO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0U21hcnRQcm94aWVzID0gc3RhdGUgPT5cbiAgc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIFJFR0lTVFJBVElPTl9DT01NQU5EU19EQVRBKS5zbWFydFByb3hpZXMgfHwgW107XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RDb25maWdQYXJhbXMgPSBzdGF0ZSA9PlxuICBzZWxlY3RBUElSZXNwb25zZShzdGF0ZSwgUkVHSVNUUkFUSU9OX0NPTU1BTkRTX0RBVEEpLmNvbmZpZ1BhcmFtcyB8fCB7fTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFBsdWdpbkRhdGEgPSBzdGF0ZSA9PlxuICBzZWxlY3RBUElSZXNwb25zZShzdGF0ZSwgUkVHSVNUUkFUSU9OX0NPTU1BTkRTX0RBVEEpLnBsdWdpbkRhdGEgfHwge307XG5cbi8vIEdlbmVyYXRlIENvbW1hbmRcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEFQSVN0YXR1c0NvbW1hbmQgPSBzdGF0ZSA9PlxuICBzZWxlY3RBUElTdGF0dXMoc3RhdGUsIFJFR0lTVFJBVElPTl9DT01NQU5EUyk7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RDb21tYW5kID0gc3RhdGUgPT5cbiAgc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIFJFR0lTVFJBVElPTl9DT01NQU5EUykuY29tbWFuZCB8fCAnJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZVNlbGVjdG9ycy5qcyIsImltcG9ydCBVUkkgZnJvbSAndXJpanMnO1xuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uLy4uL2ZvcmVtYW5fdG9vbHMnO1xuXG5leHBvcnQgY29uc3QgZG9jVXJsID0gKGZvcmVtYW5WZXJzaW9uKSA9PiB7XG4gIGNvbnN0IHJvb3RVcmwgPSBgaHR0cHM6Ly9kb2NzLnRoZWZvcmVtYW4ub3JnLyR7Zm9yZW1hblZlcnNpb259L2BcbiAgY29uc3Qgc2VjdGlvbiA9ICdNYW5hZ2luZ19Ib3N0cy9pbmRleC1mb3JlbWFuLWVsLmh0bWwjcmVnaXN0ZXJpbmctYS1ob3N0X21hbmFnaW5nLWhvc3RzJ1xuXG4gIGNvbnN0IHVybCA9IG5ldyBVUkkoe3BhdGg6ICcvbGlua3MvbWFudWFsJywgcXVlcnk6IHsgcm9vdF91cmw6IHJvb3RVcmwsIHNlY3Rpb246IHNlY3Rpb24gfX0pO1xuICByZXR1cm4gZm9yZW1hblVybCh1cmwuaHJlZigpKTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZUNvbnN0YW50cy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgVGF4b25vbWllcyBmcm9tICcuL2ZpZWxkcy9UYXhvbm9taWVzJztcbmltcG9ydCBIb3N0R3JvdXAgZnJvbSAnLi9maWVsZHMvSG9zdEdyb3VwJztcbmltcG9ydCBPcGVyYXRpbmdTeXN0ZW0gZnJvbSAnLi9maWVsZHMvT3BlcmF0aW5nU3lzdGVtJztcbmltcG9ydCBTbWFydFByb3h5IGZyb20gJy4vZmllbGRzL1NtYXJ0UHJveHknO1xuaW1wb3J0IEluc2VjdXJlIGZyb20gJy4vZmllbGRzL0luc2VjdXJlJztcblxuY29uc3QgR2VuZXJhbCA9ICh7XG4gIG9yZ2FuaXphdGlvbklkLFxuICBvcmdhbml6YXRpb25zLFxuICBoYW5kbGVPcmdhbml6YXRpb24sXG4gIGxvY2F0aW9uSWQsXG4gIGxvY2F0aW9ucyxcbiAgaGFuZGxlTG9jYXRpb24sXG4gIGhvc3RHcm91cElkLFxuICBob3N0R3JvdXBzLFxuICBoYW5kbGVIb3N0R3JvdXAsXG4gIG9wZXJhdGluZ1N5c3RlbUlkLFxuICBvcGVyYXRpbmdTeXN0ZW1zLFxuICBvcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZSxcbiAgaGFuZGxlT3BlcmF0aW5nU3lzdGVtLFxuICBzbWFydFByb3h5SWQsXG4gIHNtYXJ0UHJveGllcyxcbiAgaGFuZGxlU21hcnRQcm94eSxcbiAgaW5zZWN1cmUsXG4gIGhhbmRsZUluc2VjdXJlLFxuICBoYW5kbGVJbnZhbGlkRmllbGQsXG4gIGlzTG9hZGluZyxcbn0pID0+IChcbiAgPD5cbiAgICA8VGF4b25vbWllc1xuICAgICAgb3JnYW5pemF0aW9uSWQ9e29yZ2FuaXphdGlvbklkfVxuICAgICAgb3JnYW5pemF0aW9ucz17b3JnYW5pemF0aW9uc31cbiAgICAgIGhhbmRsZU9yZ2FuaXphdGlvbj17aGFuZGxlT3JnYW5pemF0aW9ufVxuICAgICAgbG9jYXRpb25JZD17bG9jYXRpb25JZH1cbiAgICAgIGxvY2F0aW9ucz17bG9jYXRpb25zfVxuICAgICAgaGFuZGxlTG9jYXRpb249e2hhbmRsZUxvY2F0aW9ufVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgLz5cblxuICAgIDxIb3N0R3JvdXBcbiAgICAgIGhvc3RHcm91cElkPXtob3N0R3JvdXBJZH1cbiAgICAgIGhvc3RHcm91cHM9e2hvc3RHcm91cHN9XG4gICAgICBoYW5kbGVIb3N0R3JvdXA9e2hhbmRsZUhvc3RHcm91cH1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgIC8+XG5cbiAgICA8T3BlcmF0aW5nU3lzdGVtXG4gICAgICBvcGVyYXRpbmdTeXN0ZW1JZD17b3BlcmF0aW5nU3lzdGVtSWR9XG4gICAgICBob3N0R3JvdXBJZD17aG9zdEdyb3VwSWR9XG4gICAgICBob3N0R3JvdXBzPXtob3N0R3JvdXBzfVxuICAgICAgaGFuZGxlT3BlcmF0aW5nU3lzdGVtPXtoYW5kbGVPcGVyYXRpbmdTeXN0ZW19XG4gICAgICBoYW5kbGVJbnZhbGlkRmllbGQ9e2hhbmRsZUludmFsaWRGaWVsZH1cbiAgICAgIG9wZXJhdGluZ1N5c3RlbXM9e29wZXJhdGluZ1N5c3RlbXN9XG4gICAgICBvcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZT17b3BlcmF0aW5nU3lzdGVtVGVtcGxhdGV9XG4gICAgICBpc0xvYWRpbmc9e2lzTG9hZGluZ31cbiAgICAvPlxuXG4gICAgPFNtYXJ0UHJveHlcbiAgICAgIHNtYXJ0UHJveHlJZD17c21hcnRQcm94eUlkfVxuICAgICAgc21hcnRQcm94aWVzPXtzbWFydFByb3hpZXN9XG4gICAgICBoYW5kbGVTbWFydFByb3h5PXtoYW5kbGVTbWFydFByb3h5fVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgLz5cblxuICAgIDxJbnNlY3VyZVxuICAgICAgaW5zZWN1cmU9e2luc2VjdXJlfVxuICAgICAgaGFuZGxlSW5zZWN1cmU9e2hhbmRsZUluc2VjdXJlfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgLz5cbiAgPC8+XG4pO1xuXG5HZW5lcmFsLnByb3BUeXBlcyA9IHtcbiAgb3JnYW5pemF0aW9uSWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgb3JnYW5pemF0aW9uczogUHJvcFR5cGVzLmFycmF5LFxuICBvcGVyYXRpbmdTeXN0ZW1zOiBQcm9wVHlwZXMuYXJyYXksXG4gIHNtYXJ0UHJveGllczogUHJvcFR5cGVzLmFycmF5LFxuICBsb2NhdGlvbnM6IFByb3BUeXBlcy5hcnJheSxcbiAgaGFuZGxlT3JnYW5pemF0aW9uOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBsb2NhdGlvbklkOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gIGhhbmRsZUxvY2F0aW9uOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBob3N0R3JvdXBJZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICBob3N0R3JvdXBzOiBQcm9wVHlwZXMuYXJyYXksXG4gIGhhbmRsZUhvc3RHcm91cDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb3BlcmF0aW5nU3lzdGVtSWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgb3BlcmF0aW5nU3lzdGVtVGVtcGxhdGU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgIFByb3BUeXBlcy5vYmplY3QsXG4gICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgXSksXG4gIGhhbmRsZU9wZXJhdGluZ1N5c3RlbTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgc21hcnRQcm94eUlkOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gIGhhbmRsZVNtYXJ0UHJveHk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGluc2VjdXJlOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBoYW5kbGVJbnNlY3VyZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlSW52YWxpZEZpZWxkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG59O1xuXG5HZW5lcmFsLmRlZmF1bHRQcm9wcyA9IHtcbiAgb3JnYW5pemF0aW9uSWQ6IHVuZGVmaW5lZCxcbiAgbG9jYXRpb25JZDogdW5kZWZpbmVkLFxuICBob3N0R3JvdXBJZDogdW5kZWZpbmVkLFxuICBob3N0R3JvdXBzOiBbXSxcbiAgb3JnYW5pemF0aW9uczogW10sXG4gIGxvY2F0aW9uczogW10sXG4gIG9wZXJhdGluZ1N5c3RlbXM6IFtdLFxuICBzbWFydFByb3hpZXM6IFtdLFxuICBvcGVyYXRpbmdTeXN0ZW1JZDogdW5kZWZpbmVkLFxuICBvcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZTogdW5kZWZpbmVkLFxuICBzbWFydFByb3h5SWQ6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEdlbmVyYWw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL0dlbmVyYWwuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHtcbiAgRm9ybUdyb3VwLFxuICBGb3JtU2VsZWN0T3B0aW9uLFxuICBGb3JtU2VsZWN0LFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcblxuaW1wb3J0IExhYmVsSWNvbiBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbW1vbi9MYWJlbEljb24nO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5jb25zdCBUYXhvbm9taWVzID0gKHtcbiAgb3JnYW5pemF0aW9uSWQsXG4gIG9yZ2FuaXphdGlvbnMsXG4gIGhhbmRsZU9yZ2FuaXphdGlvbixcbiAgbG9jYXRpb25JZCxcbiAgbG9jYXRpb25zLFxuICBoYW5kbGVMb2NhdGlvbixcbiAgaXNMb2FkaW5nLFxufSkgPT4gKFxuICA8PlxuICAgIDxGb3JtR3JvdXBcbiAgICAgIGxhYmVsPVwiT3JnYW5pemF0aW9uXCJcbiAgICAgIGlzUmVxdWlyZWRcbiAgICAgIGZpZWxkSWQ9XCJyZWdfb3JnYW5pemF0aW9uXCJcbiAgICAgIGxhYmVsSWNvbj17XG4gICAgICAgIDxMYWJlbEljb25cbiAgICAgICAgICB0ZXh0PXtfXyhcbiAgICAgICAgICAgICdJZiBubyBvcmdhbml6YXRpb24gaXMgc2V0LCB0aGUgZGVmYXVsdCBvcmdhbml6YXRpb24gb2YgdGhlIHVzZXIgaXMgYXNzdW1lZC4nXG4gICAgICAgICAgKX1cbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA+XG4gICAgICA8Rm9ybVNlbGVjdFxuICAgICAgICB2YWx1ZT17b3JnYW5pemF0aW9uSWR9XG4gICAgICAgIG9uQ2hhbmdlPXt2ID0+IGhhbmRsZU9yZ2FuaXphdGlvbih2KX1cbiAgICAgICAgY2xhc3NOYW1lPVwid2l0aG91dF9zZWxlY3QyXCJcbiAgICAgICAgaWQ9XCJyZWdfb3JnYW5pemF0aW9uXCJcbiAgICAgICAgaXNEaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgICBpc1JlcXVpcmVkXG4gICAgICA+XG4gICAgICAgIDxGb3JtU2VsZWN0T3B0aW9uIHZhbHVlPVwiXCIgbGFiZWw9e19fKCdOb3Qgc3BlY2lmaWVkJyl9IC8+XG4gICAgICAgIHtvcmdhbml6YXRpb25zLm1hcCgobywgaSkgPT4gKFxuICAgICAgICAgIDxGb3JtU2VsZWN0T3B0aW9uIGtleT17aX0gdmFsdWU9e28uaWR9IGxhYmVsPXtvLm5hbWV9IC8+XG4gICAgICAgICkpfVxuICAgICAgPC9Gb3JtU2VsZWN0PlxuICAgIDwvRm9ybUdyb3VwPlxuXG4gICAgPEZvcm1Hcm91cFxuICAgICAgbGFiZWw9XCJMb2NhdGlvblwiXG4gICAgICBpc1JlcXVpcmVkXG4gICAgICBmaWVsZElkPVwicmVnX2xvY2F0aW9uXCJcbiAgICAgIGxhYmVsSWNvbj17XG4gICAgICAgIDxMYWJlbEljb25cbiAgICAgICAgICB0ZXh0PXtfXyhcbiAgICAgICAgICAgICdJZiBubyBsb2NhdGlvbiBpcyBzZXQsIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSB1c2VyIGlzIGFzc3VtZWQuJ1xuICAgICAgICAgICl9XG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgPlxuICAgICAgPEZvcm1TZWxlY3RcbiAgICAgICAgdmFsdWU9e2xvY2F0aW9uSWR9XG4gICAgICAgIG9uQ2hhbmdlPXt2ID0+IGhhbmRsZUxvY2F0aW9uKHYpfVxuICAgICAgICBjbGFzc05hbWU9XCJ3aXRob3V0X3NlbGVjdDJcIlxuICAgICAgICBpZD1cInJlZ19sb2NhdGlvblwiXG4gICAgICAgIGlzRGlzYWJsZWQ9e2lzTG9hZGluZ31cbiAgICAgICAgaXNSZXF1aXJlZFxuICAgICAgPlxuICAgICAgICA8Rm9ybVNlbGVjdE9wdGlvbiB2YWx1ZT1cIlwiIGxhYmVsPXtfXygnTm90IHNwZWNpZmllZCcpfSAvPlxuICAgICAgICB7bG9jYXRpb25zLm1hcCgobCwgaSkgPT4gKFxuICAgICAgICAgIDxGb3JtU2VsZWN0T3B0aW9uIGtleT17aX0gdmFsdWU9e2wuaWR9IGxhYmVsPXtsLm5hbWV9IC8+XG4gICAgICAgICkpfVxuICAgICAgPC9Gb3JtU2VsZWN0PlxuICAgIDwvRm9ybUdyb3VwPlxuICA8Lz5cbik7XG5cblRheG9ub21pZXMucHJvcFR5cGVzID0ge1xuICBvcmdhbml6YXRpb25JZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICBsb2NhdGlvbnM6IFByb3BUeXBlcy5hcnJheSxcbiAgb3JnYW5pemF0aW9uczogUHJvcFR5cGVzLmFycmF5LFxuICBoYW5kbGVPcmdhbml6YXRpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGxvY2F0aW9uSWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbiAgaGFuZGxlTG9jYXRpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGlzTG9hZGluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbn07XG5cblRheG9ub21pZXMuZGVmYXVsdFByb3BzID0ge1xuICBvcmdhbml6YXRpb25JZDogJycsXG4gIGxvY2F0aW9uSWQ6ICcnLFxuICBvcmdhbml6YXRpb25zOiBbXSxcbiAgbG9jYXRpb25zOiBbXSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRheG9ub21pZXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL2ZpZWxkcy9UYXhvbm9taWVzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7XG4gIEZvcm1Hcm91cCxcbiAgRm9ybVNlbGVjdCxcbiAgRm9ybVNlbGVjdE9wdGlvbixcbn0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IGVtcHR5T3B0aW9uIH0gZnJvbSAnLi4vLi4vUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlSGVscGVycyc7XG5cbmNvbnN0IEhvc3RHcm91cCA9ICh7IGhvc3RHcm91cElkLCBob3N0R3JvdXBzLCBoYW5kbGVIb3N0R3JvdXAsIGlzTG9hZGluZyB9KSA9PiAoXG4gIDxGb3JtR3JvdXAgbGFiZWw9e19fKCdIb3N0IGdyb3VwJyl9IGZpZWxkSWQ9XCJyZWdfaG9zdF9ncm91cFwiPlxuICAgIDxGb3JtU2VsZWN0XG4gICAgICB2YWx1ZT17aG9zdEdyb3VwSWR9XG4gICAgICBvbkNoYW5nZT17diA9PiBoYW5kbGVIb3N0R3JvdXAodil9XG4gICAgICBjbGFzc05hbWU9XCJ3aXRob3V0X3NlbGVjdDJcIlxuICAgICAgaWQ9XCJyZWdfaG9zdF9ncm91cFwiXG4gICAgICBpc0Rpc2FibGVkPXtpc0xvYWRpbmcgfHwgaG9zdEdyb3Vwcy5sZW5ndGggPT09IDB9XG4gICAgPlxuICAgICAge2VtcHR5T3B0aW9uKGhvc3RHcm91cHMubGVuZ3RoKX1cbiAgICAgIHtob3N0R3JvdXBzLm1hcCgoaGcsIGkpID0+IChcbiAgICAgICAgPEZvcm1TZWxlY3RPcHRpb24ga2V5PXtpfSB2YWx1ZT17aGcuaWR9IGxhYmVsPXtoZy50aXRsZX0gLz5cbiAgICAgICkpfVxuICAgIDwvRm9ybVNlbGVjdD5cbiAgPC9Gb3JtR3JvdXA+XG4pO1xuXG5Ib3N0R3JvdXAucHJvcFR5cGVzID0ge1xuICBob3N0R3JvdXBJZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICBoYW5kbGVIb3N0R3JvdXA6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGlzTG9hZGluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaG9zdEdyb3VwczogUHJvcFR5cGVzLmFycmF5LFxufTtcblxuSG9zdEdyb3VwLmRlZmF1bHRQcm9wcyA9IHtcbiAgaG9zdEdyb3VwSWQ6ICcnLFxuICBob3N0R3JvdXBzOiBbXSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEhvc3RHcm91cDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvZmllbGRzL0hvc3RHcm91cC5qcyIsIi8qIGVzbGludC1kaXNhYmxlIGNhbWVsY2FzZSAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzICovXG5cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5cbmltcG9ydCB7XG4gIEZvcm1Hcm91cCxcbiAgRm9ybVNlbGVjdCxcbiAgRm9ybVNlbGVjdE9wdGlvbixcbn0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5cbmltcG9ydCBMYWJlbEljb24gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jb21tb24vTGFiZWxJY29uJztcblxuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5pbXBvcnQgeyBvcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZUFjdGlvbiB9IGZyb20gJy4uLy4uL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZUFjdGlvbnMnO1xuaW1wb3J0IHtcbiAgb3NIZWxwZXJUZXh0LFxuICB2YWxpZGF0ZWRPUyxcbiAgZW1wdHlPcHRpb24sXG59IGZyb20gJy4uLy4uL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZUhlbHBlcnMnO1xuXG5jb25zdCBPcGVyYXRpbmdTeXN0ZW0gPSAoe1xuICBvcGVyYXRpbmdTeXN0ZW1JZCxcbiAgb3BlcmF0aW5nU3lzdGVtcyxcbiAgb3BlcmF0aW5nU3lzdGVtVGVtcGxhdGUsXG4gIGhhbmRsZU9wZXJhdGluZ1N5c3RlbSxcbiAgaGFuZGxlSW52YWxpZEZpZWxkLFxuICBob3N0R3JvdXBJZCxcbiAgaG9zdEdyb3VwcyxcbiAgaXNMb2FkaW5nLFxufSkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgLy8gR2V0IGluZm8gYWJvdXQgaG9zdC1pbml0LWNvbmZpZyB0ZW1wbGF0ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChvcGVyYXRpbmdTeXN0ZW1JZCkge1xuICAgICAgZGlzcGF0Y2gob3BlcmF0aW5nU3lzdGVtVGVtcGxhdGVBY3Rpb24ob3BlcmF0aW5nU3lzdGVtSWQpKTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgb3BlcmF0aW5nU3lzdGVtSWRdKTtcblxuICAvLyBIYW5kbGUgaG9zdEdyb3VwSWQgY2hhbmdlOiByZXNldCBzZWxlY3RlZCBPUyAmIGdldCBpbmZvIGFib3V0IGhvc3QtaW5pdC1jb25maWctdGVtcGxhdGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaG9zdEdyb3VwSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaG9zdEdyb3VwT3NJZCA9IGhvc3RHcm91cHMuZmluZChcbiAgICAgICAgaGcgPT4gYCR7aGcuaWR9YCA9PT0gYCR7aG9zdEdyb3VwSWR9YFxuICAgICAgKT8uaW5oZXJpdGVkX29wZXJhdGluZ3N5c3RlbV9pZDtcblxuICAgICAgaGFuZGxlT3BlcmF0aW5nU3lzdGVtKCcnKTtcbiAgICAgIGRpc3BhdGNoKG9wZXJhdGluZ1N5c3RlbVRlbXBsYXRlQWN0aW9uKGhvc3RHcm91cE9zSWQpKTtcbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaG9zdEdyb3VwSWRdKTtcblxuICAvLyBWYWxpZGF0ZSBmaWVsZFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChvcGVyYXRpbmdTeXN0ZW1JZCA9PT0gJycpIHtcbiAgICAgIGhhbmRsZUludmFsaWRGaWVsZCgnT3BlcmF0aW5nIHN5c3RlbScsIHRydWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LmVudHJpZXMob3BlcmF0aW5nU3lzdGVtVGVtcGxhdGUpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgaGFuZGxlSW52YWxpZEZpZWxkKCdPcGVyYXRpbmcgc3lzdGVtJywgISFvcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZT8ubmFtZSk7XG4gICAgfVxuICB9LCBbb3BlcmF0aW5nU3lzdGVtSWQsIG9wZXJhdGluZ1N5c3RlbVRlbXBsYXRlXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybUdyb3VwXG4gICAgICBsYWJlbD17X18oJ09wZXJhdGluZyBzeXN0ZW0nKX1cbiAgICAgIGhlbHBlclRleHQ9e29zSGVscGVyVGV4dChcbiAgICAgICAgb3BlcmF0aW5nU3lzdGVtSWQsXG4gICAgICAgIG9wZXJhdGluZ1N5c3RlbXMsXG4gICAgICAgIGhvc3RHcm91cElkLFxuICAgICAgICBob3N0R3JvdXBzLFxuICAgICAgICBvcGVyYXRpbmdTeXN0ZW1UZW1wbGF0ZVxuICAgICAgKX1cbiAgICAgIGxhYmVsSWNvbj17XG4gICAgICAgIDxMYWJlbEljb25cbiAgICAgICAgICB0ZXh0PXtfXyhcbiAgICAgICAgICAgICdSZXF1aXJlZCBmb3IgcmVnaXN0cmF0aW9uIHdpdGhvdXQgc3Vic2NyaXB0aW9uIG1hbmFnZXIuIENhbiBiZSBzcGVjaWZpZWQgYnkgaG9zdCBncm91cC4nXG4gICAgICAgICAgKX1cbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICAgIGZpZWxkSWQ9XCJyZWdfb3NcIlxuICAgID5cbiAgICAgIDxGb3JtU2VsZWN0XG4gICAgICAgIHZhbHVlPXtvcGVyYXRpbmdTeXN0ZW1JZH1cbiAgICAgICAgb25DaGFuZ2U9e3YgPT4gaGFuZGxlT3BlcmF0aW5nU3lzdGVtKHYpfVxuICAgICAgICBjbGFzc05hbWU9XCJ3aXRob3V0X3NlbGVjdDJcIlxuICAgICAgICBpZD1cInJlZ19vc1wiXG4gICAgICAgIHZhbGlkYXRlZD17dmFsaWRhdGVkT1Mob3BlcmF0aW5nU3lzdGVtSWQsIG9wZXJhdGluZ1N5c3RlbVRlbXBsYXRlKX1cbiAgICAgICAgaXNEaXNhYmxlZD17aXNMb2FkaW5nIHx8IG9wZXJhdGluZ1N5c3RlbXMubGVuZ3RoID09PSAwfVxuICAgICAgPlxuICAgICAgICB7ZW1wdHlPcHRpb24ob3BlcmF0aW5nU3lzdGVtcy5sZW5ndGgpfVxuICAgICAgICB7b3BlcmF0aW5nU3lzdGVtcy5tYXAoKG9zLCBpKSA9PiAoXG4gICAgICAgICAgPEZvcm1TZWxlY3RPcHRpb24ga2V5PXtpfSB2YWx1ZT17b3MuaWR9IGxhYmVsPXtvcy50aXRsZX0gLz5cbiAgICAgICAgKSl9XG4gICAgICA8L0Zvcm1TZWxlY3Q+XG4gICAgPC9Gb3JtR3JvdXA+XG4gICk7XG59O1xuXG5PcGVyYXRpbmdTeXN0ZW0ucHJvcFR5cGVzID0ge1xuICBvcGVyYXRpbmdTeXN0ZW1JZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICBob3N0R3JvdXBJZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICBoYW5kbGVPcGVyYXRpbmdTeXN0ZW06IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGhhbmRsZUludmFsaWRGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBvcGVyYXRpbmdTeXN0ZW1zOiBQcm9wVHlwZXMuYXJyYXksXG4gIGhvc3RHcm91cHM6IFByb3BUeXBlcy5hcnJheSxcbiAgb3BlcmF0aW5nU3lzdGVtVGVtcGxhdGU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1xuICAgIFByb3BUeXBlcy5vYmplY3QsXG4gICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgXSksXG59O1xuXG5PcGVyYXRpbmdTeXN0ZW0uZGVmYXVsdFByb3BzID0ge1xuICBvcGVyYXRpbmdTeXN0ZW1JZDogdW5kZWZpbmVkLFxuICBob3N0R3JvdXBJZDogdW5kZWZpbmVkLFxuICBvcGVyYXRpbmdTeXN0ZW1zOiBbXSxcbiAgaG9zdEdyb3VwczogW10sXG4gIG9wZXJhdGluZ1N5c3RlbVRlbXBsYXRlOiB7fSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9wZXJhdGluZ1N5c3RlbTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvZmllbGRzL09wZXJhdGluZ1N5c3RlbS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIEZvcm1TZWxlY3QsXG4gIEZvcm1TZWxlY3RPcHRpb24sXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuXG5pbXBvcnQgTGFiZWxJY29uIGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbW9uL0xhYmVsSWNvbic7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IGVtcHR5T3B0aW9uIH0gZnJvbSAnLi4vLi4vUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlSGVscGVycyc7XG5cbmNvbnN0IFNtYXJ0UHJveHkgPSAoe1xuICBzbWFydFByb3h5SWQsXG4gIHNtYXJ0UHJveGllcyxcbiAgaGFuZGxlU21hcnRQcm94eSxcbiAgaXNMb2FkaW5nLFxufSkgPT4gKFxuICA8Rm9ybUdyb3VwXG4gICAgbGFiZWw9e19fKCdTbWFydCBwcm94eScpfVxuICAgIGZpZWxkSWQ9XCJyZWdfc21hcnRfcHJveHlcIlxuICAgIGxhYmVsSWNvbj17XG4gICAgICA8TGFiZWxJY29uXG4gICAgICAgIHRleHQ9e19fKFxuICAgICAgICAgICdPbmx5IHNtYXJ0IHByb3hpZXMgd2l0aCBlbmFibGVkIGBUZW1wbGF0ZXNgIGFuZCBgUmVnaXN0cmF0aW9uYCBmZWF0dXJlcyBhcmUgZGlzcGxheWVkLidcbiAgICAgICAgKX1cbiAgICAgIC8+XG4gICAgfVxuICA+XG4gICAgPEZvcm1TZWxlY3RcbiAgICAgIHZhbHVlPXtzbWFydFByb3h5SWR9XG4gICAgICBvbkNoYW5nZT17diA9PiBoYW5kbGVTbWFydFByb3h5KHYpfVxuICAgICAgY2xhc3NOYW1lPVwid2l0aG91dF9zZWxlY3QyXCJcbiAgICAgIGlkPVwicmVnX3NtYXJ0X3Byb3h5XCJcbiAgICAgIGlzRGlzYWJsZWQ9e2lzTG9hZGluZyB8fCBzbWFydFByb3hpZXMubGVuZ3RoID09PSAwfVxuICAgID5cbiAgICAgIHtlbXB0eU9wdGlvbihzbWFydFByb3hpZXMubGVuZ3RoKX1cbiAgICAgIHtzbWFydFByb3hpZXMubWFwKChzcCwgaSkgPT4gKFxuICAgICAgICA8Rm9ybVNlbGVjdE9wdGlvbiBrZXk9e2l9IHZhbHVlPXtzcC5pZH0gbGFiZWw9e3NwLm5hbWV9IC8+XG4gICAgICApKX1cbiAgICA8L0Zvcm1TZWxlY3Q+XG4gIDwvRm9ybUdyb3VwPlxuKTtcblxuU21hcnRQcm94eS5wcm9wVHlwZXMgPSB7XG4gIHNtYXJ0UHJveHlJZDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICBoYW5kbGVTbWFydFByb3h5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIHNtYXJ0UHJveGllczogUHJvcFR5cGVzLmFycmF5LFxufTtcblxuU21hcnRQcm94eS5kZWZhdWx0UHJvcHMgPSB7XG4gIHNtYXJ0UHJveHlJZDogJycsXG4gIHNtYXJ0UHJveGllczogW10sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTbWFydFByb3h5O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvY29tcG9uZW50cy9maWVsZHMvU21hcnRQcm94eS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyBGb3JtR3JvdXAsIENoZWNrYm94IH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5pbXBvcnQgTGFiZWxJY29uIGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbW9uL0xhYmVsSWNvbic7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgSW5zZWN1cmUgPSAoeyBpbnNlY3VyZSwgaGFuZGxlSW5zZWN1cmUsIGlzTG9hZGluZyB9KSA9PiAoXG4gIDxGb3JtR3JvdXAgZmllbGRJZD1cInJlZ19pbnNlY3VyZVwiPlxuICAgIDxDaGVja2JveFxuICAgICAgbGFiZWw9e1xuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7X18oJ0luc2VjdXJlJyl9eycgJ31cbiAgICAgICAgICA8TGFiZWxJY29uXG4gICAgICAgICAgICB0ZXh0PXtfXyhcbiAgICAgICAgICAgICAgJ0lmIHRoZSB0YXJnZXQgbWFjaGluZSBkb2VzIG5vdCB0cnVzdCB0aGUgaG9zdCBTU0wgY2VydGlmaWNhdGUsIHRoZSBpbml0aWFsIGNvbm5lY3Rpb24gY291bGQgYmUgc3ViamVjdCB0byBhIG1hbi1pbi10aGUtbWlkZGxlIGF0dGFjay4gSWYgeW91IGFjY2VwdCB0aGUgcmlzayBhbmQgZG8gbm90IHJlcXVpcmUgdGhlIHNlcnZlciBhdXRoZW50aWNpdHkgdG8gYmUgdmVyaWZpZWQsIHlvdSBjYW4gZW5hYmxlIGluc2VjdXJlIGFyZ3VtZW50IGZvciB0aGUgaW5pdGlhbCBjdXJsLiBOb3RlIHRoYXQgYWxsIHN1YnNlcXVlbnQgY29tbXVuaWNhdGlvbiBpcyB0aGVuIHByb3Blcmx5IHNlY3VyZWQsIGJlY2F1c2UgdGhlIGluaXRpYWwgcmVxdWVzdCBkZXBsb3lzIHRoZSBTU0wgY2VydGlmaWNhdGUgZm9yIHRoZSByZXN0IG9mIHRoZSByZWdpc3RyYXRpb24gcHJvY2Vzcy4nXG4gICAgICAgICAgICApfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIGlkPVwicmVnX2luc2VjdXJlXCJcbiAgICAgIG9uQ2hhbmdlPXsoKSA9PiBoYW5kbGVJbnNlY3VyZSghaW5zZWN1cmUpfVxuICAgICAgaXNEaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgaXNDaGVja2VkPXtpbnNlY3VyZX1cbiAgICAvPlxuICA8L0Zvcm1Hcm91cD5cbik7XG5cbkluc2VjdXJlLnByb3BUeXBlcyA9IHtcbiAgaW5zZWN1cmU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGhhbmRsZUluc2VjdXJlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbnNlY3VyZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvZmllbGRzL0luc2VjdXJlLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCBDb25maWdQYXJhbXMgZnJvbSAnLi9maWVsZHMvQ29uZmlnUGFyYW1zJztcbmltcG9ydCBQYWNrYWdlcyBmcm9tICcuL2ZpZWxkcy9QYWNrYWdlcyc7XG5pbXBvcnQgUmVwb3NpdG9yeSBmcm9tICcuL2ZpZWxkcy9SZXBvc2l0b3J5JztcbmltcG9ydCBUb2tlbkxpZmVUaW1lIGZyb20gJy4vZmllbGRzL1Rva2VuTGlmZVRpbWUnO1xuaW1wb3J0IFVwZGF0ZVBhY2thZ2VzIGZyb20gJy4vZmllbGRzL1VwZGF0ZVBhY2thZ2VzJztcblxuY29uc3QgQWR2YW5jZWQgPSAoe1xuICBjb25maWdQYXJhbXMsXG4gIHNldHVwUmVtb3RlRXhlY3V0aW9uLFxuICBzZXR1cEluc2lnaHRzLFxuICBoYW5kbGVJbnNpZ2h0cyxcbiAgaGFuZGxlUmVtb3RlRXhlY3V0aW9uLFxuICBqd3RFeHBpcmF0aW9uLFxuICBoYW5kbGVKd3RFeHBpcmF0aW9uLFxuICBoYW5kbGVJbnZhbGlkRmllbGQsXG4gIHBhY2thZ2VzLFxuICBoYW5kbGVQYWNrYWdlcyxcbiAgcmVwbyxcbiAgaGFuZGxlUmVwbyxcbiAgcmVwb0dwZ0tleVVybCxcbiAgaGFuZGxlUmVwb0dwZ0tleVVybCxcbiAgdXBkYXRlUGFja2FnZXMsXG4gIGhhbmRsZVVwZGF0ZVBhY2thZ2VzLFxuICBpc0xvYWRpbmcsXG59KSA9PiAoXG4gIDw+XG4gICAgPENvbmZpZ1BhcmFtc1xuICAgICAgY29uZmlnUGFyYW1zPXtjb25maWdQYXJhbXN9XG4gICAgICBzZXR1cFJlbW90ZUV4ZWN1dGlvbj17c2V0dXBSZW1vdGVFeGVjdXRpb259XG4gICAgICBzZXR1cEluc2lnaHRzPXtzZXR1cEluc2lnaHRzfVxuICAgICAgaGFuZGxlSW5zaWdodHM9e2hhbmRsZUluc2lnaHRzfVxuICAgICAgaGFuZGxlUmVtb3RlRXhlY3V0aW9uPXtoYW5kbGVSZW1vdGVFeGVjdXRpb259XG4gICAgICBpc0xvYWRpbmc9e2lzTG9hZGluZ31cbiAgICAvPlxuICAgIDxQYWNrYWdlc1xuICAgICAgcGFja2FnZXM9e3BhY2thZ2VzfVxuICAgICAgaGFuZGxlUGFja2FnZXM9e2hhbmRsZVBhY2thZ2VzfVxuICAgICAgY29uZmlnUGFyYW1zPXtjb25maWdQYXJhbXN9XG4gICAgICBpc0xvYWRpbmc9e2lzTG9hZGluZ31cbiAgICAvPlxuICAgIDxVcGRhdGVQYWNrYWdlc1xuICAgICAgdXBkYXRlUGFja2FnZXM9e3VwZGF0ZVBhY2thZ2VzfVxuICAgICAgaGFuZGxlVXBkYXRlUGFja2FnZXM9e2hhbmRsZVVwZGF0ZVBhY2thZ2VzfVxuICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgLz5cbiAgICA8UmVwb3NpdG9yeVxuICAgICAgcmVwbz17cmVwb31cbiAgICAgIGhhbmRsZVJlcG89e2hhbmRsZVJlcG99XG4gICAgICByZXBvR3BnS2V5VXJsPXtyZXBvR3BnS2V5VXJsfVxuICAgICAgaGFuZGxlUmVwb0dwZ0tleVVybD17aGFuZGxlUmVwb0dwZ0tleVVybH1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgIC8+XG4gICAgPFRva2VuTGlmZVRpbWVcbiAgICAgIHZhbHVlPXtqd3RFeHBpcmF0aW9ufVxuICAgICAgb25DaGFuZ2U9e2hhbmRsZUp3dEV4cGlyYXRpb259XG4gICAgICBoYW5kbGVJbnZhbGlkRmllbGQ9e2hhbmRsZUludmFsaWRGaWVsZH1cbiAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgIC8+XG4gIDwvPlxuKTtcblxuQWR2YW5jZWQucHJvcFR5cGVzID0ge1xuICBjb25maWdQYXJhbXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIHNldHVwUmVtb3RlRXhlY3V0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzZXR1cEluc2lnaHRzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBoYW5kbGVJbnNpZ2h0czogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlUmVtb3RlRXhlY3V0aW9uOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBqd3RFeHBpcmF0aW9uOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gIGhhbmRsZUp3dEV4cGlyYXRpb246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGhhbmRsZUludmFsaWRGaWVsZDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgcGFja2FnZXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHJlcG86IFByb3BUeXBlcy5zdHJpbmcsXG4gIHJlcG9HcGdLZXlVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhhbmRsZVBhY2thZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVSZXBvOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVSZXBvR3BnS2V5VXJsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB1cGRhdGVQYWNrYWdlczogUHJvcFR5cGVzLmJvb2wsXG4gIGhhbmRsZVVwZGF0ZVBhY2thZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG59O1xuXG5BZHZhbmNlZC5kZWZhdWx0UHJvcHMgPSB7XG4gIGNvbmZpZ1BhcmFtczoge30sXG4gIHNldHVwUmVtb3RlRXhlY3V0aW9uOiAnJyxcbiAgc2V0dXBJbnNpZ2h0czogJycsXG4gIGp3dEV4cGlyYXRpb246IDQsXG4gIHBhY2thZ2VzOiAnJyxcbiAgcmVwbzogJycsXG4gIHJlcG9HcGdLZXlVcmw6ICcnLFxuICB1cGRhdGVQYWNrYWdlczogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBZHZhbmNlZDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvQWR2YW5jZWQuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHtcbiAgRm9ybUdyb3VwLFxuICBGb3JtU2VsZWN0T3B0aW9uLFxuICBGb3JtU2VsZWN0LFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCBMYWJlbEljb24gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jb21tb24vTGFiZWxJY29uJztcblxuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5jb25zdCBDb25maWdQYXJhbXMgPSAoe1xuICBjb25maWdQYXJhbXMsXG4gIHNldHVwUmVtb3RlRXhlY3V0aW9uLFxuICBzZXR1cEluc2lnaHRzLFxuICBoYW5kbGVSZW1vdGVFeGVjdXRpb24sXG4gIGhhbmRsZUluc2lnaHRzLFxuICBpc0xvYWRpbmcsXG59KSA9PiB7XG4gIGNvbnN0IG9wdGlvbnMgPSAodmFsdWUgPSAnJykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHZhbHVlID8gX18oJ3llcycpIDogX18oJ25vJyk7XG4gICAgY29uc3QgZGVmYXVsdExhYmVsID0gYCR7X18oXG4gICAgICAnSW5oZXJpdCBmcm9tIGhvc3QgcGFyYW1ldGVyJ1xuICAgICl9ICgke2RlZmF1bHRWYWx1ZX0pYDtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Rm9ybVNlbGVjdE9wdGlvbiBrZXk9ezB9IHZhbHVlPVwiXCIgbGFiZWw9e2RlZmF1bHRMYWJlbH0gLz5cbiAgICAgICAgPEZvcm1TZWxlY3RPcHRpb24ga2V5PXsxfSB2YWx1ZSBsYWJlbD17X18oJ1llcyAob3ZlcnJpZGUpJyl9IC8+XG4gICAgICAgIDxGb3JtU2VsZWN0T3B0aW9uIGtleT17Mn0gdmFsdWU9e2ZhbHNlfSBsYWJlbD17X18oJ05vIChvdmVycmlkZSknKX0gLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEZvcm1Hcm91cFxuICAgICAgICBsYWJlbD17X18oJ1NldHVwIFJFWCcpfVxuICAgICAgICBpc1JlcXVpcmVkXG4gICAgICAgIGxhYmVsSWNvbj17XG4gICAgICAgICAgPExhYmVsSWNvblxuICAgICAgICAgICAgdGV4dD17X18oXG4gICAgICAgICAgICAgICdTZXR1cCByZW1vdGUgZXhlY3V0aW9uLiBJZiBzZXQgdG8gYFllc2AsIFNTSCBrZXlzIHdpbGwgYmUgaW5zdGFsbGVkIG9uIHRoZSByZWdpc3RlcmVkIGhvc3QuIFRoZSBpbmhlcml0ZWQgdmFsdWUgaXMgYmFzZWQgb24gdGhlIGBob3N0X3JlZ2lzdHJhdGlvbl9yZW1vdGVfZXhlY3V0aW9uYCBwYXJhbWV0ZXIuIEl0IGNhbiBiZSBpbmhlcml0ZWQgZS5nLiBmcm9tIGhvc3QgZ3JvdXAsIG9wZXJhdGluZyBzeXN0ZW0sIG9yZ2FuaXphdGlvbi4gV2hlbiBvdmVycmlkZGVuLCB0aGUgc2VsZWN0ZWQgdmFsdWUgd2lsbCBiZSBzdG9yZWQgb24gaG9zdCBwYXJhbWV0ZXIgbGV2ZWwuJ1xuICAgICAgICAgICAgKX1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIGZpZWxkSWQ9XCJyZWdpc3RyYXRpb25fc2V0dXBfcmVtb3RlX2V4ZWN1dGlvblwiXG4gICAgICA+XG4gICAgICAgIDxGb3JtU2VsZWN0XG4gICAgICAgICAgdmFsdWU9e3NldHVwUmVtb3RlRXhlY3V0aW9ufVxuICAgICAgICAgIG9uQ2hhbmdlPXt2ID0+IGhhbmRsZVJlbW90ZUV4ZWN1dGlvbih2KX1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3aXRob3V0X3NlbGVjdDJcIlxuICAgICAgICAgIGlkPVwicmVnaXN0cmF0aW9uX3NldHVwX3JlbW90ZV9leGVjdXRpb25cIlxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzTG9hZGluZ31cbiAgICAgICAgICBpc1JlcXVpcmVkXG4gICAgICAgID5cbiAgICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZSAqL1xuICAgICAgICAgIG9wdGlvbnMoY29uZmlnUGFyYW1zPy5ob3N0X3JlZ2lzdHJhdGlvbl9yZW1vdGVfZXhlY3V0aW9uKX1cbiAgICAgICAgPC9Gb3JtU2VsZWN0PlxuICAgICAgPC9Gb3JtR3JvdXA+XG4gICAgICA8Rm9ybUdyb3VwXG4gICAgICAgIGxhYmVsPXtfXygnU2V0dXAgSW5zaWdodHMnKX1cbiAgICAgICAgaXNSZXF1aXJlZFxuICAgICAgICBmaWVsZElkPVwicmVnaXN0cmF0aW9uX3NldHVwX2luc2lnaHRzXCJcbiAgICAgICAgbGFiZWxJY29uPXtcbiAgICAgICAgICA8TGFiZWxJY29uXG4gICAgICAgICAgICB0ZXh0PXtfXyhcbiAgICAgICAgICAgICAgJ0lmIHNldCB0byBgWWVzYCwgSW5zaWdodHMgY2xpZW50IHdpbGwgYmUgaW5zdGFsbGVkIGFuZCByZWdpc3RlcmVkIG9uIFJlZCBIYXQgZmFtaWx5IG9wZXJhdGluZyBzeXN0ZW1zLiBJdCBoYXMgbm8gZWZmZWN0IG9uIG90aGVyIE9TIGZhbWlsaWVzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQuIFRoZSBpbmhlcml0ZWQgdmFsdWUgaXMgYmFzZWQgb24gdGhlIGBob3N0X3JlZ2lzdHJhdGlvbl9pbnNpZ2h0c2AgcGFyYW1ldGVyLiBJdCBjYW4gYmUgaW5oZXJpdGVkIGUuZy4gZnJvbSBob3N0IGdyb3VwLCBvcGVyYXRpbmcgc3lzdGVtLCBvcmdhbml6YXRpb24uIFdoZW4gb3ZlcnJpZGRlbiwgdGhlIHNlbGVjdGVkIHZhbHVlIHdpbGwgYmUgc3RvcmVkIG9uIGhvc3QgcGFyYW1ldGVyIGxldmVsLidcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICA8Rm9ybVNlbGVjdFxuICAgICAgICAgIHZhbHVlPXtzZXR1cEluc2lnaHRzfVxuICAgICAgICAgIG9uQ2hhbmdlPXt2ID0+IGhhbmRsZUluc2lnaHRzKHYpfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIndpdGhvdXRfc2VsZWN0MlwiXG4gICAgICAgICAgaWQ9XCJyZWdpc3RyYXRpb25fc2V0dXBfaW5zaWdodHNcIlxuICAgICAgICAgIGlzRGlzYWJsZWQ9e2lzTG9hZGluZ31cbiAgICAgICAgICBpc1JlcXVpcmVkXG4gICAgICAgID5cbiAgICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZSAqL1xuICAgICAgICAgIG9wdGlvbnMoY29uZmlnUGFyYW1zPy5ob3N0X3JlZ2lzdHJhdGlvbl9pbnNpZ2h0cyl9XG4gICAgICAgIDwvRm9ybVNlbGVjdD5cbiAgICAgIDwvRm9ybUdyb3VwPlxuICAgIDwvPlxuICApO1xufTtcblxuQ29uZmlnUGFyYW1zLnByb3BUeXBlcyA9IHtcbiAgY29uZmlnUGFyYW1zOiBQcm9wVHlwZXMub2JqZWN0LFxuICBzZXR1cFJlbW90ZUV4ZWN1dGlvbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzZXR1cEluc2lnaHRzOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGhhbmRsZVJlbW90ZUV4ZWN1dGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlSW5zaWdodHM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGlzTG9hZGluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbn07XG5cbkNvbmZpZ1BhcmFtcy5kZWZhdWx0UHJvcHMgPSB7XG4gIGNvbmZpZ1BhcmFtczoge30sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb25maWdQYXJhbXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL2ZpZWxkcy9Db25maWdQYXJhbXMuanMiLCIvKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFRleHRJbnB1dCB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IExhYmVsSWNvbiBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbW1vbi9MYWJlbEljb24nO1xuXG5pbXBvcnQgeyBzcHJpbnRmLCB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbmNvbnN0IFBhY2thZ2VzID0gKHsgcGFja2FnZXMsIGhhbmRsZVBhY2thZ2VzLCBjb25maWdQYXJhbXMsIGlzTG9hZGluZyB9KSA9PiAoXG4gIDxGb3JtR3JvdXBcbiAgICBsYWJlbD17X18oJ0luc3RhbGwgcGFja2FnZXMnKX1cbiAgICBoZWxwZXJUZXh0PXtcbiAgICAgIGNvbmZpZ1BhcmFtcz8uaG9zdF9wYWNrYWdlcyAmJlxuICAgICAgc3ByaW50ZignRGVmYXVsdCB2YWx1ZTogXCIlc1wiJywgY29uZmlnUGFyYW1zPy5ob3N0X3BhY2thZ2VzKVxuICAgIH1cbiAgICBsYWJlbEljb249e1xuICAgICAgPExhYmVsSWNvblxuICAgICAgICB0ZXh0PXtfXyhcbiAgICAgICAgICAnUGFja2FnZXMgdG8gaW5zdGFsbCBvbiB0aGUgaG9zdCB3aGVuIHJlZ2lzdGVyZWQuIENhbiBiZSBzZXQgYnkgYGhvc3RfcGFja2FnZXNgIHBhcmFtZXRlciwgZXhhbXBsZTogYHBrZzEgcGtnMmAuJ1xuICAgICAgICApfVxuICAgICAgLz5cbiAgICB9XG4gICAgZmllbGRJZD1cInJlZ19wYWNrYWdlc1wiXG4gID5cbiAgICA8VGV4dElucHV0XG4gICAgICBpZD1cInJlZ19wYWNrYWdlc1wiXG4gICAgICB2YWx1ZT17cGFja2FnZXN9XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBvbkNoYW5nZT17aGFuZGxlUGFja2FnZXN9XG4gICAgICBpc0Rpc2FibGVkPXtpc0xvYWRpbmd9XG4gICAgLz5cbiAgPC9Gb3JtR3JvdXA+XG4pO1xuXG5QYWNrYWdlcy5wcm9wVHlwZXMgPSB7XG4gIGNvbmZpZ1BhcmFtczogUHJvcFR5cGVzLm9iamVjdCxcbiAgcGFja2FnZXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhhbmRsZVBhY2thZ2VzOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG59O1xuXG5QYWNrYWdlcy5kZWZhdWx0UHJvcHMgPSB7XG4gIHBhY2thZ2VzOiAnJyxcbiAgY29uZmlnUGFyYW1zOiB7fSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFBhY2thZ2VzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvY29tcG9uZW50cy9maWVsZHMvUGFja2FnZXMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHsgRm9ybUdyb3VwLCBUZXh0SW5wdXQgfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcblxuaW1wb3J0IExhYmVsSWNvbiBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbW1vbi9MYWJlbEljb24nO1xuXG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbmNvbnN0IFJlcG9zaXRvcnkgPSAoe1xuICByZXBvLFxuICBoYW5kbGVSZXBvLFxuICByZXBvR3BnS2V5VXJsLFxuICBoYW5kbGVSZXBvR3BnS2V5VXJsLFxuICBpc0xvYWRpbmcsXG59KSA9PiAoXG4gIDw+XG4gICAgPEZvcm1Hcm91cFxuICAgICAgbGFiZWw9e19fKCdSZXBvc2l0b3J5Jyl9XG4gICAgICBmaWVsZElkPVwicmVnX3JlcG9cIlxuICAgICAgbGFiZWxJY29uPXtcbiAgICAgICAgPExhYmVsSWNvblxuICAgICAgICAgIHRleHQ9e19fKFxuICAgICAgICAgICAgXCJBIHJlcG9zaXRvcnkgdG8gYmUgYWRkZWQgYmVmb3JlIHRoZSByZWdpc3RyYXRpb24gaXMgcGVyZm9ybWVkLiBJdCBjYW4gYmUgdXNlZnVsIHRvIGUuZy4gbWFrZSB0aGUgc3Vic2NyaXB0aW9uLW1hbmFnZXIgcGFja2FnZXMgYXZhaWxhYmxlIGZvciB0aGUgcHVycG9zZSBvZiB0aGUgcmVnaXN0cmF0aW9uLiBGb3IgUmVkIEhhdCBmYW1pbHkgZGlzdHJpYnV0aW9ucywgdGhpcyBzaG91bGQgYmUgdGhlIFVSTCBvZiB0aGUgcmVwb3NpdG9yeSwgZS5nLiAnaHR0cDovL3JwbS5leGFtcGxlLmNvbS8nLiBGb3IgRGViaWFuIE9TIGZhbWlsaWVzLCBpdCdzIHRoZSB3aG9sZSBsaXN0IGZpbGUgY29udGVudCwgZS5nLiAnZGViIGh0dHA6Ly9kZWIuZXhhbXBsZS5jb20vIGJ1c3RlciAxLjAnLlwiXG4gICAgICAgICAgKX1cbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA+XG4gICAgICA8VGV4dElucHV0XG4gICAgICAgIGlkPVwicmVnX3JlcG9cIlxuICAgICAgICB2YWx1ZT17cmVwb31cbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlUmVwb31cbiAgICAgICAgaXNEaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgLz5cbiAgICA8L0Zvcm1Hcm91cD5cbiAgICA8Rm9ybUdyb3VwXG4gICAgICBsYWJlbD17X18oJ1JlcG9zaXRvcnkgR1BHIGtleSBVUkwnKX1cbiAgICAgIGZpZWxkSWQ9XCJyZWdfZ3BnX2tleV91cmxcIlxuICAgICAgbGFiZWxJY29uPXtcbiAgICAgICAgPExhYmVsSWNvblxuICAgICAgICAgIHRleHQ9e19fKFxuICAgICAgICAgICAgJ0lmIHBhY2thZ2VzIGFyZSBHUEcgc2lnbmVkLCB0aGUgcHVibGljIGtleSBjYW4gYmUgc3BlY2lmaWVkIGhlcmUgdG8gdmVyaWZ5IHRoZSBwYWNrYWdlcyBzaWduYXR1cmVzLiBJdCBuZWVkcyB0byBiZSBzcGVjaWZpZWQgaW4gdGhlIGFzY2lpIGZvcm0gd2l0aCB0aGUgR1BHIHB1YmxpYyBrZXkgaGVhZGVyLidcbiAgICAgICAgICApfVxuICAgICAgICAvPlxuICAgICAgfVxuICAgID5cbiAgICAgIDxUZXh0SW5wdXRcbiAgICAgICAgaWQ9XCJyZWdfZ3BnX2tleV91cmxcIlxuICAgICAgICB2YWx1ZT17cmVwb0dwZ0tleVVybH1cbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlUmVwb0dwZ0tleVVybH1cbiAgICAgICAgaXNEaXNhYmxlZD17aXNMb2FkaW5nfVxuICAgICAgLz5cbiAgICA8L0Zvcm1Hcm91cD5cbiAgPC8+XG4pO1xuXG5SZXBvc2l0b3J5LnByb3BUeXBlcyA9IHtcbiAgcmVwbzogUHJvcFR5cGVzLnN0cmluZyxcbiAgcmVwb0dwZ0tleVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaGFuZGxlUmVwbzogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaGFuZGxlUmVwb0dwZ0tleVVybDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxufTtcblxuUmVwb3NpdG9yeS5kZWZhdWx0UHJvcHMgPSB7XG4gIHJlcG86ICcnLFxuICByZXBvR3BnS2V5VXJsOiAnJyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJlcG9zaXRvcnk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL2ZpZWxkcy9SZXBvc2l0b3J5LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7XG4gIEZvcm1Hcm91cCxcbiAgVGV4dElucHV0LFxuICBJbnB1dEdyb3VwLFxuICBJbnB1dEdyb3VwVGV4dCxcbiAgQ2hlY2tib3gsXG59IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuXG5pbXBvcnQgTGFiZWxJY29uIGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudHMvY29tbW9uL0xhYmVsSWNvbic7XG5cbmltcG9ydCB7IHNwcmludGYsIHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgVG9rZW5MaWZlVGltZSA9ICh7IHZhbHVlLCBvbkNoYW5nZSwgaGFuZGxlSW52YWxpZEZpZWxkLCBpc0xvYWRpbmcgfSkgPT4ge1xuICBjb25zdCBtaW5WYWx1ZSA9IDE7XG4gIGNvbnN0IG1heFZhbHVlID0gOTk5OTk5O1xuXG4gIGNvbnN0IGlzVmFsaWQgPSB2ID0+IHtcbiAgICBpZiAodiA9PT0gJ3VubGltaXRlZCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB2ID49IG1pblZhbHVlICYmIHYgPD0gbWF4VmFsdWU7XG4gIH07XG5cbiAgY29uc3Qgc2V0VmFsdWUgPSB2ID0+IHtcbiAgICBoYW5kbGVJbnZhbGlkRmllbGQoJ1Rva2VuIGxpZmUgdGltZScsIGlzVmFsaWQodikpO1xuICAgIG9uQ2hhbmdlKHYpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Hcm91cFxuICAgICAgbGFiZWw9e19fKCdUb2tlbiBsaWZlIHRpbWUnKX1cbiAgICAgIHZhbGlkYXRlZD17aXNWYWxpZCh2YWx1ZSkgPyAnZGVmYXVsdCcgOiAnZXJyb3InfVxuICAgICAgaGVscGVyVGV4dEludmFsaWQ9e3NwcmludGYoXG4gICAgICAgICdUb2tlbiBsaWZlIHRpbWUgdmFsdWUgbXVzdCBiZSBiZXR3ZWVuICVzIGFuZCAlcyBob3Vycy4nLFxuICAgICAgICBtaW5WYWx1ZSxcbiAgICAgICAgbWF4VmFsdWVcbiAgICAgICl9XG4gICAgICBpc1JlcXVpcmVkXG4gICAgICBmaWVsZElkPVwicmVnX3Rva2VuX2xpZmVfdGltZV9pbnB1dFwiXG4gICAgICBsYWJlbEljb249e1xuICAgICAgICA8TGFiZWxJY29uIHRleHQ9e19fKCdFeHBpcmF0aW9uIG9mIHRoZSBhdXRob3JpemF0aW9uIHRva2VuLicpfSAvPlxuICAgICAgfVxuICAgID5cbiAgICAgIDxJbnB1dEdyb3VwPlxuICAgICAgICA8VGV4dElucHV0XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIG1pbj17bWluVmFsdWV9XG4gICAgICAgICAgbWF4PXttYXhWYWx1ZX1cbiAgICAgICAgICB2YWxpZGF0ZWQ9e2lzVmFsaWQodmFsdWUpID8gJ2RlZmF1bHQnIDogJ2Vycm9yJ31cbiAgICAgICAgICBpc0Rpc2FibGVkPXtpc0xvYWRpbmcgfHwgdmFsdWUgPT09ICd1bmxpbWl0ZWQnfVxuICAgICAgICAgIGlkPVwicmVnX3Rva2VuX2xpZmVfdGltZV9pbnB1dFwiXG4gICAgICAgICAgb25DaGFuZ2U9e3YgPT4gc2V0VmFsdWUodil9XG4gICAgICAgIC8+XG4gICAgICAgIDxJbnB1dEdyb3VwVGV4dD57X18oJ2hvdXJzJyl9PC9JbnB1dEdyb3VwVGV4dD5cbiAgICAgICAgPElucHV0R3JvdXBUZXh0PlxuICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgbGFiZWw9e19fKCd1bmxpbWl0ZWQnKX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiBzZXRWYWx1ZSh2YWx1ZSA9PT0gJ3VubGltaXRlZCcgPyA0IDogJ3VubGltaXRlZCcpfVxuICAgICAgICAgICAgaWQ9XCJyZWdfdW5saW1pdGVkX3Rva2VuX2xpZmVfdGltZVwiXG4gICAgICAgICAgICBpc0Rpc2FibGVkPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICBpc0NoZWNrZWQ9e3ZhbHVlID09PSAndW5saW1pdGVkJ31cbiAgICAgICAgICAvPlxuICAgICAgICA8L0lucHV0R3JvdXBUZXh0PlxuICAgICAgPC9JbnB1dEdyb3VwPlxuICAgIDwvRm9ybUdyb3VwPlxuICApO1xufTtcblxuVG9rZW5MaWZlVGltZS5wcm9wVHlwZXMgPSB7XG4gIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBoYW5kbGVJbnZhbGlkRmllbGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGlzTG9hZGluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbn07XG5cblRva2VuTGlmZVRpbWUuZGVmYXVsdFByb3BzID0ge1xuICB2YWx1ZTogNCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRva2VuTGlmZVRpbWU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL2ZpZWxkcy9Ub2tlbkxpZmVUaW1lLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IEZvcm1Hcm91cCwgQ2hlY2tib3ggfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCBMYWJlbEljb24gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jb21tb24vTGFiZWxJY29uJztcblxuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5jb25zdCBVcGRhdGVQYWNrYWdlcyA9ICh7XG4gIHVwZGF0ZVBhY2thZ2VzLFxuICBoYW5kbGVVcGRhdGVQYWNrYWdlcyxcbiAgaXNMb2FkaW5nLFxufSkgPT4gKFxuICA8Rm9ybUdyb3VwIGZpZWxkSWQ9XCJyZWdfdXBkYXRlX3BhY2thZ2VzXCI+XG4gICAgPENoZWNrYm94XG4gICAgICBsYWJlbD17XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHtfXygnVXBkYXRlIHBhY2thZ2VzJyl9eycgJ31cbiAgICAgICAgICA8TGFiZWxJY29uIHRleHQ9e19fKCdVcGRhdGUgYWxsIHBhY2thZ2VzIG9uIHRoZSBob3N0Jyl9IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIGlkPVwicmVnX3VwZGF0ZV9wYWNrYWdlc1wiXG4gICAgICBvbkNoYW5nZT17KCkgPT4gaGFuZGxlVXBkYXRlUGFja2FnZXMoIXVwZGF0ZVBhY2thZ2VzKX1cbiAgICAgIGlzRGlzYWJsZWQ9e2lzTG9hZGluZ31cbiAgICAgIGlzQ2hlY2tlZD17dXBkYXRlUGFja2FnZXN9XG4gICAgLz5cbiAgPC9Gb3JtR3JvdXA+XG4pO1xuXG5VcGRhdGVQYWNrYWdlcy5wcm9wVHlwZXMgPSB7XG4gIHVwZGF0ZVBhY2thZ2VzOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBoYW5kbGVVcGRhdGVQYWNrYWdlczogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgVXBkYXRlUGFja2FnZXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9jb21wb25lbnRzL2ZpZWxkcy9VcGRhdGVQYWNrYWdlcy5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuXG5pbXBvcnQgeyBBbGVydCwgQWN0aW9uR3JvdXAsIEJ1dHRvbiwgRm9ybUdyb3VwIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtY29yZSc7XG5cbmltcG9ydCB7IHNwcmludGYsIHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IGZvcmVtYW5VcmwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9mb3JlbWFuX3Rvb2xzJztcblxuY29uc3QgQWN0aW9ucyA9ICh7IGlzTG9hZGluZywgaXNHZW5lcmF0aW5nLCBoYW5kbGVTdWJtaXQsIGludmFsaWRGaWVsZHMgfSkgPT4gKFxuICA8PlxuICAgIDxGb3JtR3JvdXAgZmllbGRJZD1cImFjdGlvbnNfaGVscFwiIGNsYXNzTmFtZT1cInBmLXUtcHQteGxcIj5cbiAgICAgIHtpbnZhbGlkRmllbGRzLmxlbmd0aCA9PT0gMSAmJiAoXG4gICAgICAgIDxBbGVydFxuICAgICAgICAgIHZhcmlhbnQ9XCJ3YXJuaW5nXCJcbiAgICAgICAgICB0aXRsZT17c3ByaW50ZignSW52YWxpZCBmaWVsZDogJXMnLCBpbnZhbGlkRmllbGRzWzBdKX1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7aW52YWxpZEZpZWxkcy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgdmFyaWFudD1cIndhcm5pbmdcIlxuICAgICAgICAgIHRpdGxlPXtzcHJpbnRmKCdJbnZhbGlkIGZpZWxkczogJXMnLCBpbnZhbGlkRmllbGRzLmpvaW4oJywgJykpfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L0Zvcm1Hcm91cD5cbiAgICA8QWN0aW9uR3JvdXA+XG4gICAgICA8QnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgaWQ9XCJnZW5lcmF0ZV9idG5cIlxuICAgICAgICBvbkNsaWNrPXtlID0+IGhhbmRsZVN1Ym1pdChlKX1cbiAgICAgICAgaXNEaXNhYmxlZD17aXNMb2FkaW5nIHx8IGludmFsaWRGaWVsZHMubGVuZ3RoID4gMH1cbiAgICAgICAgaXNMb2FkaW5nPXtpc0dlbmVyYXRpbmd9XG4gICAgICA+XG4gICAgICAgIHtpc0dlbmVyYXRpbmcgPyBfXygnR2VuZXJhdGluZyAuLi4nKSA6IF9fKCdHZW5lcmF0ZScpfVxuICAgICAgPC9CdXR0b24+XG5cbiAgICAgIHsvKiBDYW4ndCB1c2UgPFJlZGlyZWN0Q2FuY2VsQnV0dG9uPiBkdWUgdG8gaW5maW5pdGl2ZSBsb29wICovfVxuICAgICAgPExpbmsgdG89e2ZvcmVtYW5VcmwoJy9ob3N0cycpfT5cbiAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwibGlua1wiPntfXygnQ2FuY2VsJyl9PC9CdXR0b24+XG4gICAgICA8L0xpbms+XG4gICAgPC9BY3Rpb25Hcm91cD5cbiAgPC8+XG4pO1xuXG5BY3Rpb25zLnByb3BUeXBlcyA9IHtcbiAgaGFuZGxlU3VibWl0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBpc0xvYWRpbmc6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIGlzR2VuZXJhdGluZzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgaW52YWxpZEZpZWxkczogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5LCBQcm9wVHlwZXMub2JqZWN0XSksXG59O1xuXG5BY3Rpb25zLmRlZmF1bHRQcm9wcyA9IHtcbiAgaW52YWxpZEZpZWxkczogW10sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBY3Rpb25zO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9SZWdpc3RyYXRpb25Db21tYW5kcy9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2UvY29tcG9uZW50cy9BY3Rpb25zLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7XG4gIEFsZXJ0LFxuICBGb3JtR3JvdXAsXG4gIENsaXBib2FyZENvcHksXG4gIENsaXBib2FyZENvcHlWYXJpYW50LFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IENvbW1hbmQgPSAoeyBhcGlTdGF0dXMsIGNvbW1hbmQgfSkgPT4ge1xuICBzd2l0Y2ggKGFwaVN0YXR1cykge1xuICAgIGNhc2UgU1RBVFVTLkVSUk9SOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgdmFyaWFudD1cImRhbmdlclwiXG4gICAgICAgICAgdGl0bGU9e19fKFxuICAgICAgICAgICAgJ1RoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBnZW5lcmF0aW5nIHRoZSBjb21tYW5kLCBzZWUgdGhlIGxvZ3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uJ1xuICAgICAgICAgICl9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIGNhc2UgU1RBVFVTLlJFU09MVkVEOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZvcm1Hcm91cCBsYWJlbD17X18oJ1JlZ2lzdHJhdGlvbiBjb21tYW5kJyl9PlxuICAgICAgICAgIDxDbGlwYm9hcmRDb3B5XG4gICAgICAgICAgICB2YXJpYW50PXtDbGlwYm9hcmRDb3B5VmFyaWFudC5leHBhbnNpb259XG4gICAgICAgICAgICBpc1JlYWRPbmx5XG4gICAgICAgICAgICBpc0NvZGVcbiAgICAgICAgICAgIGlzRXhwYW5kZWRcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y29tbWFuZH1cbiAgICAgICAgICA8L0NsaXBib2FyZENvcHk+XG4gICAgICAgIDwvRm9ybUdyb3VwPlxuICAgICAgKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIDxGb3JtR3JvdXAgLz47XG4gIH1cbn07XG5cbkNvbW1hbmQucHJvcFR5cGVzID0ge1xuICBhcGlTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNvbW1hbmQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5Db21tYW5kLmRlZmF1bHRQcm9wcyA9IHtcbiAgYXBpU3RhdHVzOiB1bmRlZmluZWQsXG4gIGNvbW1hbmQ6ICcnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29tbWFuZDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvUmVnaXN0cmF0aW9uQ29tbWFuZHMvUmVnaXN0cmF0aW9uQ29tbWFuZHNQYWdlL2NvbXBvbmVudHMvQ29tbWFuZC5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzL1JlZ2lzdHJhdGlvbkNvbW1hbmRzUGFnZS9SZWdpc3RyYXRpb25Db21tYW5kc1BhZ2Uuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNDg5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEhvc3RTdGF0dXNlcyBmcm9tICcuLi8uLi9jb21wb25lbnRzL0hvc3RTdGF0dXNlcyc7XG5pbXBvcnQgeyBIT1NUX1NUQVRVU0VTX1BBVEggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcGF0aDogSE9TVF9TVEFUVVNFU19QQVRILFxuICByZW5kZXI6IHByb3BzID0+IDxIb3N0U3RhdHVzZXMgey4uLnByb3BzfSAvPixcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0hvc3RTdGF0dXNlcy9pbmRleC5qcyIsImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUGFnZVNlY3Rpb24sIEdyaWQsIEdyaWRJdGVtLCBUaXRsZSB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uLy4uL2ZvcmVtYW5fdG9vbHMnO1xuaW1wb3J0IHsgdXNlQVBJIH0gZnJvbSAnLi4vLi4vY29tbW9uL2hvb2tzL0FQSS9BUElIb29rcyc7XG5pbXBvcnQgU3RhdHVzIGZyb20gJy4vU3RhdHVzJztcbmltcG9ydCBTdGF0dXNTa2VsZXRvbiBmcm9tICcuL1N0YXR1cy9TdGF0dXNTa2VsZXRvbic7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgU2tlbGV0b25Mb2FkZXIgZnJvbSAnLi4vY29tbW9uL1NrZWxldG9uTG9hZGVyJztcbmltcG9ydCB7IFNUQVRVUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBUElfT1BUSU9OUyB9IGZyb20gJy4vSG9zdFN0YXR1c2VzQ29uc3RhbnRzJztcbmltcG9ydCB7IHNlbGVjdEhvc3RTdGF0dXNlc05hbWVzIH0gZnJvbSAnLi9Ib3N0U3RhdHVzZXNTZWxlY3RvcnMnO1xuXG5pbXBvcnQgJy4vSG9zdFN0YXR1c2VzLnNjc3MnO1xuXG5jb25zdCBIb3N0U3RhdHVzZXMgPSAoKSA9PiB7XG4gIGNvbnN0IHVybCA9IGZvcmVtYW5VcmwoJy9hcGkvdjIvaG9zdF9zdGF0dXNlcz9wZXJfcGFnZT05OScpO1xuICBjb25zdCB7IHN0YXR1cyA9IFNUQVRVUy5QRU5ESU5HIH0gPSB1c2VBUEkoJ2dldCcsIHVybCwgQVBJX09QVElPTlMpO1xuXG4gIGNvbnN0IFNrZWxldG9uID0gKCkgPT4gKFxuICAgIDxGcmFnbWVudD5cbiAgICAgIDxTdGF0dXNTa2VsZXRvbiAvPlxuICAgICAgPFN0YXR1c1NrZWxldG9uIC8+XG4gICAgPC9GcmFnbWVudD5cbiAgKTtcblxuICBjb25zdCBzdGF0dXNlcyA9IHVzZVNlbGVjdG9yKHN0YXRlID0+IHNlbGVjdEhvc3RTdGF0dXNlc05hbWVzKHN0YXRlKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8UGFnZVNlY3Rpb24gcGFkZGluZyBjbGFzc05hbWU9XCJob3N0LXN0YXR1c2VzLXBhZ2VcIj5cbiAgICAgIDxHcmlkIGhhc0d1dHRlcj5cbiAgICAgICAgPEdyaWRJdGVtIHNwYW49ezEyfT5cbiAgICAgICAgICA8VGl0bGUgaGVhZGluZ0xldmVsPVwiaDVcIiBzaXplPVwieGxcIj5cbiAgICAgICAgICAgIHtfXygnSG9zdCBTdGF0dXMgT3ZlcnZpZXcnKX1cbiAgICAgICAgICA8L1RpdGxlPlxuICAgICAgICA8L0dyaWRJdGVtPlxuICAgICAgICA8U2tlbGV0b25Mb2FkZXIgY3VzdG9tU2tlbGV0b249ezxTa2VsZXRvbiAvPn0gc3RhdHVzPXtzdGF0dXN9PlxuICAgICAgICAgIHtzdGF0dXNlcy5tYXAoKG5hbWUsIGkpID0+IChcbiAgICAgICAgICAgIDxTdGF0dXMga2V5PXtpfSBuYW1lPXtuYW1lfSAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NrZWxldG9uTG9hZGVyPlxuICAgICAgPC9HcmlkPlxuICAgIDwvUGFnZVNlY3Rpb24+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBIb3N0U3RhdHVzZXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBhc011dGFibGUgfSBmcm9tICdzZWFtbGVzcy1pbW11dGFibGUnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge1xuICBDYXJkLFxuICBDYXJkSGVhZGVyLFxuICBDYXJkRXhwYW5kYWJsZUNvbnRlbnQsXG4gIEdyaWQsXG4gIEdyaWRJdGVtLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcbmltcG9ydCBHbG9iYWxTdGF0dXNJY29uIGZyb20gJy4vR2xvYmFsU3RhdHVzSWNvbic7XG5pbXBvcnQgeyBzcHJpbnRmLCB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgRGV0YWlscyBmcm9tICcuL0RldGFpbHMnO1xuaW1wb3J0IExpbmtPckxhYmVsIGZyb20gJy4vTGlua09yTGFiZWwnO1xuaW1wb3J0IHtcbiAgc2VsZWN0R2xvYmFsU3RhdHVzLFxuICBzZWxlY3RIb3N0U3RhdHVzRGV0YWlscyxcbiAgc2VsZWN0SG9zdFN0YXR1c0Rlc2NyaXB0aW9uLFxuICBzZWxlY3RIb3N0U3RhdHVzQ291bnRlcixcbiAgc2VsZWN0SG9zdFN0YXR1c1RvdGFsUGF0aHMsXG4gIHNlbGVjdEhvc3RTdGF0dXNPd25lZFBhdGhzLFxufSBmcm9tICcuLi9Ib3N0U3RhdHVzZXNTZWxlY3RvcnMnO1xuXG5pbXBvcnQgJy4vU3RhdHVzLnNjc3MnO1xuXG5jb25zdCBTdGF0dXMgPSAoeyBuYW1lIH0pID0+IHtcbiAgY29uc3QgW2V4cGFuZGVkLCBzZXRFeHBhbmRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgZ2xvYmFsU3RhdHVzID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0R2xvYmFsU3RhdHVzKHN0YXRlLCBuYW1lKSk7XG4gIGNvbnN0IGRldGFpbHMgPSB1c2VTZWxlY3RvcihzdGF0ZSA9PiBzZWxlY3RIb3N0U3RhdHVzRGV0YWlscyhzdGF0ZSwgbmFtZSkpO1xuICBjb25zdCBkZXNjcmlwdGlvbiA9IHVzZVNlbGVjdG9yKHN0YXRlID0+XG4gICAgc2VsZWN0SG9zdFN0YXR1c0Rlc2NyaXB0aW9uKHN0YXRlLCBuYW1lKVxuICApO1xuICBjb25zdCB7IG9rVG90YWxQYXRoLCB3YXJuVG90YWxQYXRoLCBlcnJvclRvdGFsUGF0aCB9ID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT5cbiAgICBzZWxlY3RIb3N0U3RhdHVzVG90YWxQYXRocyhzdGF0ZSwgbmFtZSlcbiAgKTtcbiAgY29uc3QgeyBva093bmVkUGF0aCwgd2Fybk93bmVkUGF0aCwgZXJyb3JPd25lZFBhdGggfSA9IHVzZVNlbGVjdG9yKHN0YXRlID0+XG4gICAgc2VsZWN0SG9zdFN0YXR1c093bmVkUGF0aHMoc3RhdGUsIG5hbWUpXG4gICk7XG5cbiAgY29uc3Qge1xuICAgIHVua25vd246IHsgdG90YWw6IHVua25vd25Ub3RhbENvdW50LCBvd25lZDogdW5rbm93bk93bmVkQ291bnQgfSxcbiAgICBvazogeyB0b3RhbDogb2tUb3RhbENvdW50LCBvd25lZDogb2tPd25lZENvdW50IH0sXG4gICAgd2FybjogeyB0b3RhbDogd2FyblRvdGFsQ291bnQsIG93bmVkOiB3YXJuT3duZWRDb3VudCB9LFxuICAgIGVycm9yOiB7IHRvdGFsOiBlcnJvclRvdGFsQ291bnQsIG93bmVkOiBlcnJvck93bmVkQ291bnQgfSxcbiAgfSA9IHVzZVNlbGVjdG9yKHN0YXRlID0+IHNlbGVjdEhvc3RTdGF0dXNDb3VudGVyKHN0YXRlLCBuYW1lKSk7XG5cbiAgY29uc3QgY2FyZENsYXNzID0gY2xhc3NOYW1lcygncGYtYy1hbGVydCcsIHtcbiAgICAncGYtbS1kYW5nZXInOiBlcnJvclRvdGFsQ291bnQsXG4gICAgJ3BmLW0td2FybmluZyc6ICFlcnJvclRvdGFsQ291bnQgJiYgd2FyblRvdGFsQ291bnQsXG4gICAgJ3BmLW0tc3VjY2Vzcyc6ICFlcnJvclRvdGFsQ291bnQgJiYgIXdhcm5Ub3RhbENvdW50LFxuICB9KTtcblxuICBjb25zdCB1bmtub3duU3RhdHVzZXNQcmVzZW50ID0gISF1bmtub3duVG90YWxDb3VudCB8fCAhIXVua25vd25Pd25lZENvdW50O1xuXG4gIHJldHVybiAoXG4gICAgPEdyaWRJdGVtIHNtPXsxMn0geGwyPXs2fT5cbiAgICAgIDxDYXJkIGNsYXNzTmFtZT17Y2FyZENsYXNzfSBpc0V4cGFuZGVkPXtleHBhbmRlZH0gaXNIb3ZlcmFibGU+XG4gICAgICAgIDxDYXJkSGVhZGVyXG4gICAgICAgICAgb25FeHBhbmQ9eyhfZXZlbnQsIF9pZCkgPT4gc2V0RXhwYW5kZWQoIWV4cGFuZGVkKX1cbiAgICAgICAgICB0b2dnbGVCdXR0b25Qcm9wcz17e1xuICAgICAgICAgICAgaWQ6ICd0b2dnbGUtYnV0dG9uJyxcbiAgICAgICAgICAgICdhcmlhLWxhYmVsJzogJ0RldGFpbHMnLFxuICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6ICd0aXRsZUlkIHRvZ2dsZS1idXR0b24nLFxuICAgICAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBleHBhbmRlZCxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPVwidy0xMDBcIiBoYXNHdXR0ZXI+XG4gICAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17MX0gcm93U3Bhbj17Mn0gc3R5bGU9e3sgZm9udFNpemU6ICcyLjJlbScgfX0+XG4gICAgICAgICAgICAgIDxHbG9iYWxTdGF0dXNJY29uIHN0YXR1cz17Z2xvYmFsU3RhdHVzfSAvPlxuICAgICAgICAgICAgPC9HcmlkSXRlbT5cbiAgICAgICAgICAgIDxHcmlkSXRlbVxuICAgICAgICAgICAgICBzcGFuPXt1bmtub3duU3RhdHVzZXNQcmVzZW50ID8gMyA6IDV9XG4gICAgICAgICAgICAgIHN0eWxlPXt7IGZvbnRTaXplOiAnMS41ZW0nIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtuYW1lfVxuICAgICAgICAgICAgPC9HcmlkSXRlbT5cbiAgICAgICAgICAgIHt1bmtub3duU3RhdHVzZXNQcmVzZW50ICYmIChcbiAgICAgICAgICAgICAgPEdyaWRJdGVtXG4gICAgICAgICAgICAgICAgc3Bhbj17Mn1cbiAgICAgICAgICAgICAgICByb3dTcGFuPXsyfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN0YXR1cy1jb3VudCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiAnMS41ZW0nIH19PlxuICAgICAgICAgICAgICAgICAgPEdsb2JhbFN0YXR1c0ljb24gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8TGlua09yTGFiZWxcbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtzcHJpbnRmKF9fKCdUb3RhbDogJXMnKSwgdW5rbm93blRvdGFsQ291bnQpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPExpbmtPckxhYmVsXG4gICAgICAgICAgICAgICAgICBsYWJlbD17c3ByaW50ZihfXygnT3duZWQ6ICVzJyksIHVua25vd25Pd25lZENvdW50KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0dyaWRJdGVtPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxHcmlkSXRlbSBzcGFuPXsyfSByb3dTcGFuPXsyfSBjbGFzc05hbWU9XCJzdGF0dXMtY291bnQgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogJzEuNWVtJyB9fT5cbiAgICAgICAgICAgICAgICA8R2xvYmFsU3RhdHVzSWNvbiBzdGF0dXM9ezB9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8TGlua09yTGFiZWxcbiAgICAgICAgICAgICAgICBwYXRoPXtva1RvdGFsUGF0aH1cbiAgICAgICAgICAgICAgICBsYWJlbD17c3ByaW50ZihfXygnVG90YWw6ICVzJyksIG9rVG90YWxDb3VudCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxMaW5rT3JMYWJlbFxuICAgICAgICAgICAgICAgIHBhdGg9e29rT3duZWRQYXRofVxuICAgICAgICAgICAgICAgIGxhYmVsPXtzcHJpbnRmKF9fKCdPd25lZDogJXMnKSwgb2tPd25lZENvdW50KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvR3JpZEl0ZW0+XG4gICAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17Mn0gcm93U3Bhbj17Mn0gY2xhc3NOYW1lPVwic3RhdHVzLWNvdW50IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6ICcxLjVlbScgfX0+XG4gICAgICAgICAgICAgICAgPEdsb2JhbFN0YXR1c0ljb24gc3RhdHVzPXsxfSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPExpbmtPckxhYmVsXG4gICAgICAgICAgICAgICAgcGF0aD17d2FyblRvdGFsUGF0aH1cbiAgICAgICAgICAgICAgICBsYWJlbD17c3ByaW50ZihfXygnVG90YWw6ICVzJyksIHdhcm5Ub3RhbENvdW50KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPExpbmtPckxhYmVsXG4gICAgICAgICAgICAgICAgcGF0aD17d2Fybk93bmVkUGF0aH1cbiAgICAgICAgICAgICAgICBsYWJlbD17c3ByaW50ZihfXygnT3duZWQ6ICVzJyksIHdhcm5Pd25lZENvdW50KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvR3JpZEl0ZW0+XG4gICAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17Mn0gcm93U3Bhbj17Mn0gY2xhc3NOYW1lPVwic3RhdHVzLWNvdW50IHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6ICcxLjVlbScgfX0+XG4gICAgICAgICAgICAgICAgPEdsb2JhbFN0YXR1c0ljb24gc3RhdHVzPXsyfSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPExpbmtPckxhYmVsXG4gICAgICAgICAgICAgICAgcGF0aD17ZXJyb3JUb3RhbFBhdGh9XG4gICAgICAgICAgICAgICAgbGFiZWw9e3NwcmludGYoX18oJ1RvdGFsOiAlcycpLCBlcnJvclRvdGFsQ291bnQpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8TGlua09yTGFiZWxcbiAgICAgICAgICAgICAgICBwYXRoPXtlcnJvck93bmVkUGF0aH1cbiAgICAgICAgICAgICAgICBsYWJlbD17c3ByaW50ZihfXygnT3duZWQ6ICVzJyksIGVycm9yT3duZWRDb3VudCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0dyaWRJdGVtPlxuICAgICAgICAgICAgPEdyaWRJdGVtIHNwYW49ezV9PntkZXNjcmlwdGlvbn08L0dyaWRJdGVtPlxuICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgPC9DYXJkSGVhZGVyPlxuICAgICAgICA8Q2FyZEV4cGFuZGFibGVDb250ZW50PlxuICAgICAgICAgIHtkZXRhaWxzLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICA8RGV0YWlscyBkYXRhPXthc011dGFibGUoZGV0YWlscyl9IC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIF9fKCdOb3RoaW5nIHRvIHNob3cnKVxuICAgICAgICAgICl9XG4gICAgICAgIDwvQ2FyZEV4cGFuZGFibGVDb250ZW50PlxuICAgICAgPC9DYXJkPlxuICAgIDwvR3JpZEl0ZW0+XG4gICk7XG59O1xuXG5TdGF0dXMucHJvcFR5cGVzID0ge1xuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTdGF0dXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvU3RhdHVzL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IFRhYmxlLCBUYWJsZUhlYWRlciwgVGFibGVCb2R5IH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtdGFibGUnO1xuaW1wb3J0IEdsb2JhbFN0YXR1c0ljb24gZnJvbSAnLi9HbG9iYWxTdGF0dXNJY29uJztcbmltcG9ydCBMaW5rT3JMYWJlbCBmcm9tICcuL0xpbmtPckxhYmVsJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgRGV0YWlscyA9ICh7IGRhdGEgfSkgPT4ge1xuICBjb25zdCBjb2x1bW5zID0gWycnLCBfXygnVG90YWwnKSwgX18oJ093bmVkJyldO1xuICBjb25zdCByb3dzID0gZGF0YS5tYXAoXG4gICAgKHtcbiAgICAgIGxhYmVsLFxuICAgICAgdG90YWwsXG4gICAgICBvd25lZCxcbiAgICAgIGdsb2JhbF9zdGF0dXM6IGdsb2JhbFN0YXR1cyxcbiAgICAgIHRvdGFsX3BhdGg6IHRvdGFsUGF0aCxcbiAgICAgIG93bmVkX3BhdGg6IG93bmVkUGF0aCxcbiAgICB9KSA9PiBbXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiAoXG4gICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgPEdsb2JhbFN0YXR1c0ljb24gc3RhdHVzPXtnbG9iYWxTdGF0dXN9IC8+IHtsYWJlbH1cbiAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHsgdGl0bGU6IDxMaW5rT3JMYWJlbCBwYXRoPXt0b3RhbFBhdGh9IGxhYmVsPXt0b3RhbC50b1N0cmluZygpfSAvPiB9LFxuICAgICAgeyB0aXRsZTogPExpbmtPckxhYmVsIHBhdGg9e293bmVkUGF0aH0gbGFiZWw9e293bmVkLnRvU3RyaW5nKCl9IC8+IH0sXG4gICAgXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFRhYmxlXG4gICAgICBhcmlhLWxhYmVsPVwiSG9zdCBTdGF0dXNlc1wiXG4gICAgICB2YXJpYW50PVwiY29tcGFjdFwiXG4gICAgICBjZWxscz17Y29sdW1uc31cbiAgICAgIHJvd3M9e3Jvd3N9XG4gICAgPlxuICAgICAgPFRhYmxlSGVhZGVyIC8+XG4gICAgICA8VGFibGVCb2R5IC8+XG4gICAgPC9UYWJsZT5cbiAgKTtcbn07XG5cbkRldGFpbHMucHJvcFR5cGVzID0ge1xuICBkYXRhOiBQcm9wVHlwZXMuYXJyYXlPZihcbiAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHRvdGFsOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gICAgICBvd25lZDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAgICAgZ2xvYmFsX3N0YXR1czogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIHRvdGFsX3BhdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBvd25lZF9wYXRoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIH0pXG4gICksXG59O1xuXG5EZXRhaWxzLnByb3BUeXBlcyA9IHtcbiAgZGF0YTogUHJvcFR5cGVzLmFycmF5LFxufTtcblxuRGV0YWlscy5kZWZhdWx0UHJvcHMgPSB7XG4gIGRhdGE6IFtdLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGV0YWlscztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0hvc3RTdGF0dXNlcy9TdGF0dXMvRGV0YWlscy5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvU3RhdHVzL1N0YXR1cy5zY3NzXG4vLyBtb2R1bGUgaWQgPSA0OTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgU2tlbGV0b24gZnJvbSAncmVhY3QtbG9hZGluZy1za2VsZXRvbic7XG5pbXBvcnQgeyBDYXJkLCBDYXJkSGVhZGVyLCBHcmlkLCBHcmlkSXRlbSB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnO1xuaW1wb3J0IEdsb2JhbFN0YXR1c0ljb24gZnJvbSAnLi9HbG9iYWxTdGF0dXNJY29uJztcblxuY29uc3QgU3RhdHVzU2tlbGV0b24gPSAoKSA9PiAoXG4gIDxHcmlkSXRlbSBzbT17MTJ9IHhsMj17Nn0+XG4gICAgPENhcmQgY2xhc3NOYW1lPVwicGYtYy1hbGVydCBwZi1tLXN1Y2Nlc3NcIj5cbiAgICAgIDxDYXJkSGVhZGVyXG4gICAgICAgIG9uRXhwYW5kPXsoKSA9PiB7fX1cbiAgICAgICAgdG9nZ2xlQnV0dG9uUHJvcHM9e3tcbiAgICAgICAgICBpZDogJ3RvZ2dsZS1idXR0b24nLFxuICAgICAgICAgICdhcmlhLWxhYmVsJzogJ0RldGFpbHMnLFxuICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiAndGl0bGVJZCB0b2dnbGUtYnV0dG9uJyxcbiAgICAgICAgICAnYXJpYS1leHBhbmRlZCc6IGZhbHNlLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8R3JpZCBjbGFzc05hbWU9XCJ3LTEwMFwiIGhhc0d1dHRlcj5cbiAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17MX0gcm93U3Bhbj17Mn0gY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxHbG9iYWxTdGF0dXNJY29uIHN0YXR1cz17MH0gLz5cbiAgICAgICAgICA8L0dyaWRJdGVtPlxuICAgICAgICAgIDxHcmlkSXRlbSBzcGFuPXs1fSBzdHlsZT17eyBmb250U2l6ZTogJzEuNWVtJyB9fT5cbiAgICAgICAgICAgIDxTa2VsZXRvbiAvPlxuICAgICAgICAgIDwvR3JpZEl0ZW0+XG4gICAgICAgICAgPEdyaWRJdGVtIHNwYW49ezJ9IHJvd1NwYW49ezJ9IGNsYXNzTmFtZT1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiAnMS41ZW0nIH19PlxuICAgICAgICAgICAgICA8R2xvYmFsU3RhdHVzSWNvbiBzdGF0dXM9ezB9IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxTa2VsZXRvbiAvPlxuICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICA8U2tlbGV0b24gLz5cbiAgICAgICAgICA8L0dyaWRJdGVtPlxuICAgICAgICAgIDxHcmlkSXRlbSBzcGFuPXsyfSByb3dTcGFuPXsyfSBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogJzEuNWVtJyB9fT5cbiAgICAgICAgICAgICAgPEdsb2JhbFN0YXR1c0ljb24gc3RhdHVzPXsxfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8U2tlbGV0b24gLz5cbiAgICAgICAgICAgIDxiciAvPlxuICAgICAgICAgICAgPFNrZWxldG9uIC8+XG4gICAgICAgICAgPC9HcmlkSXRlbT5cbiAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17Mn0gcm93U3Bhbj17Mn0gY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6ICcxLjVlbScgfX0+XG4gICAgICAgICAgICAgIDxHbG9iYWxTdGF0dXNJY29uIHN0YXR1cz17Mn0gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFNrZWxldG9uIC8+XG4gICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgIDxTa2VsZXRvbiAvPlxuICAgICAgICAgIDwvR3JpZEl0ZW0+XG4gICAgICAgICAgPEdyaWRJdGVtIHNwYW49ezV9PlxuICAgICAgICAgICAgPFNrZWxldG9uIC8+XG4gICAgICAgICAgPC9HcmlkSXRlbT5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgPC9DYXJkSGVhZGVyPlxuICAgIDwvQ2FyZD5cbiAgPC9HcmlkSXRlbT5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFN0YXR1c1NrZWxldG9uO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvSG9zdFN0YXR1c2VzL1N0YXR1cy9TdGF0dXNTa2VsZXRvbi5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Ib3N0U3RhdHVzZXMvSG9zdFN0YXR1c2VzLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDQ5NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiZXhwb3J0IGNvbnN0IEhPU1RfU1RBVFVTRVNfUEFUSCA9ICcvaG9zdF9zdGF0dXNlcyc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvcm91dGVzL0hvc3RTdGF0dXNlcy9jb25zdGFudHMuanMiLCJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yLCBzaGFsbG93RXF1YWwgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBTd2l0Y2gsIFJvdXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmltcG9ydCB7IGZhbGxiYWNrUm91dGUgfSBmcm9tICcuLi9Sb3V0aW5nU2VydmljZSc7XG5pbXBvcnQgeyBzZWxlY3RSb3V0ZXMgfSBmcm9tICcuLi9Sb3V0ZXJTZWxlY3Rvcic7XG5cbmNvbnN0IEZvcmVtYW5Td2l0Y2hlciA9ICh7IGNoaWxkcmVuOiBjb3JlUm91dGVzIH0pID0+IHtcbiAgY29uc3Qgcm91dGVzID0gdXNlU2VsZWN0b3IoKCkgPT4gc2VsZWN0Um91dGVzKGNvcmVSb3V0ZXMpLCBzaGFsbG93RXF1YWwpO1xuXG4gIHJldHVybiAoXG4gICAgPFN3aXRjaD5cbiAgICAgIHtyb3V0ZXN9XG4gICAgICA8Um91dGUgcmVuZGVyPXtmYWxsYmFja1JvdXRlfSBrZXk9XCJkZWZhdWx0LXJvdXRlXCIgLz5cbiAgICA8L1N3aXRjaD5cbiAgKTtcbn07XG5cbkZvcmVtYW5Td2l0Y2hlci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubm9kZSkuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZvcmVtYW5Td2l0Y2hlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9yb3V0ZXMvRm9yZW1hblN3aXRjaGVyL2luZGV4LmpzIiwiaW1wb3J0IHsgc2VsZWN0Q29tcG9uZW50QnlXZWlnaHQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbW1vbi9TbG90L1Nsb3RTZWxlY3RvcnMnO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0Um91dGVyID0gc3RhdGUgPT4gc3RhdGUucm91dGVyO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJvdXRlckxvY2F0aW9uID0gc3RhdGUgPT4gc2VsZWN0Um91dGVyKHN0YXRlKS5sb2NhdGlvbjtcbmV4cG9ydCBjb25zdCBzZWxlY3RSb3V0ZXJQYXRoID0gc3RhdGUgPT4gc2VsZWN0Um91dGVyTG9jYXRpb24oc3RhdGUpLnBhdGhuYW1lO1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJvdXRlclNlYXJjaCA9IHN0YXRlID0+IHNlbGVjdFJvdXRlckxvY2F0aW9uKHN0YXRlKS5zZWFyY2g7XG5leHBvcnQgY29uc3Qgc2VsZWN0Um91dGVySGFzaCA9IHN0YXRlID0+IHNlbGVjdFJvdXRlckxvY2F0aW9uKHN0YXRlKS5oYXNoO1xuZXhwb3J0IGNvbnN0IHNlbGVjdExhc3RIaXN0b3J5QWN0aW9uID0gc3RhdGUgPT4gc2VsZWN0Um91dGVyKHN0YXRlKS5hY3Rpb247XG5leHBvcnQgY29uc3Qgc2VsZWN0Um91dGVzID0gY29yZVJvdXRlcyA9PlxuICBjb3JlUm91dGVzLmNvbmNhdChzZWxlY3RDb21wb25lbnRCeVdlaWdodCgncm91dGVzJykpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JvdXRlcy9Sb3V0ZXJTZWxlY3Rvci5qcyIsImltcG9ydCB7IEFwb2xsb0NsaWVudCwgQXBvbGxvTGluaywgSW5NZW1vcnlDYWNoZSwgZnJvbSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50JztcbmltcG9ydCB7IEJhdGNoSHR0cExpbmsgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL2JhdGNoLWh0dHAnO1xuXG5pbXBvcnQgeyBmb3JlbWFuVXJsIH0gZnJvbSAnLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBiYXRjaExpbmsgPSBuZXcgQmF0Y2hIdHRwTGluayh7IHVyaTogZm9yZW1hblVybCgnL2FwaS9ncmFwaHFsJykgfSk7XG5cbmNvbnN0IGF1dGhMaW5rID0gbmV3IEFwb2xsb0xpbmsoKG9wZXJhdGlvbiwgZm9yd2FyZCkgPT4ge1xuICBvcGVyYXRpb24uc2V0Q29udGV4dCh7XG4gICAgaGVhZGVyczoge1xuICAgICAgJ1gtQ1NSRi1Ub2tlbic6IGRvY3VtZW50XG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9Y3NyZi10b2tlbl0nKVxuICAgICAgICAuZ2V0QXR0cmlidXRlKCdjb250ZW50JyksXG4gICAgfSxcbiAgfSk7XG4gIHJldHVybiBmb3J3YXJkKG9wZXJhdGlvbik7XG59KTtcblxuY29uc3QgY2xpZW50ID0gbmV3IEFwb2xsb0NsaWVudCh7XG4gIGxpbms6IGZyb20oW2F1dGhMaW5rLCBiYXRjaExpbmtdKSxcbiAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKCksXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgY2xpZW50O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL1Jvb3QvYXBvbGxvLmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19BUE9MTE9fQ0xJRU5UX0xJTktfQkFUQ0hfSFRUUF9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fQVBPTExPX0NMSUVOVF9MSU5LX0JBVENIX0hUVFBfX1wiXG4vLyBtb2R1bGUgaWQgPSA1MDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgRXhjbGFtYXRpb25DaXJjbGVJY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IHtcbiAgQ2xpcGJvYXJkQ29weSxcbiAgQ2xpcGJvYXJkQ29weVZhcmlhbnQsXG4gIEdyaWQsXG4gIEdyaWRJdGVtLFxufSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1jb3JlJztcblxuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IEVtcHR5U3RhdGUgZnJvbSAnLi4vRW1wdHlTdGF0ZSc7XG5pbXBvcnQgeyBmb3JlbWFuVXJsIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnO1xuXG5jbGFzcyBFcnJvckJvdW5kYXJ5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHsgaGFzRXJyb3I6IGZhbHNlIH07XG4gICAgcHJvcHMuaGlzdG9yeS5saXN0ZW4oKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuaGFzRXJyb3IpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgaGFzRXJyb3I6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZENhdGNoKGVycm9yLCBpbmZvKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGhhc0Vycm9yOiB0cnVlLCBlcnJvciwgaW5mbyB9KTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGhpc3RvcnksIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgaGFzRXJyb3IsIGVycm9yLCBpbmZvIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgaWYgKCFoYXNFcnJvcikgcmV0dXJuIGNoaWxkcmVuO1xuXG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSAoXG4gICAgICA8PlxuICAgICAgICA8cD5cbiAgICAgICAgICB7X18oJ1RoZXJlIHdhcyBhIHByb2JsZW0gcHJvY2Vzc2luZyB0aGUgcmVxdWVzdC4gUGxlYXNlIHRyeSBhZ2Fpbi4nKX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8cFxuICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICBfX2h0bWw6IF9fKFxuICAgICAgICAgICAgICBgVG8gcmVwb3J0IGFuIGlzc3VlIDxhIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiBocmVmPSR7Zm9yZW1hblVybChcbiAgICAgICAgICAgICAgICAnL2xpbmtzL2lzc3VlcydcbiAgICAgICAgICAgICAgKX0+Y2xpY2sgaGVyZTwvYT5gXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgY29uc3QgYWN0aW9uID0ge1xuICAgICAgdGl0bGU6IF9fKCdSZXR1cm4gdG8gbGFzdCBwYWdlJyksXG4gICAgICBvbkNsaWNrOiBoaXN0b3J5LmdvQmFjayxcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxHcmlkIGNsYXNzTmFtZT1cImVycm9yLWJvdW5kYXJ5LWZvcmVtYW4tYXBwXCI+XG4gICAgICAgIDxHcmlkSXRlbSBzbT17MTJ9PlxuICAgICAgICAgIDxFbXB0eVN0YXRlXG4gICAgICAgICAgICBpY29uPXs8RXhjbGFtYXRpb25DaXJjbGVJY29uIC8+fVxuICAgICAgICAgICAgaGVhZGVyPXtfXygnU29tZXRoaW5nIHdlbnQgd3JvbmcnKX1cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtkZXNjcmlwdGlvbn1cbiAgICAgICAgICAgIGFjdGlvbj17YWN0aW9ufVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvR3JpZEl0ZW0+XG4gICAgICAgIDxHcmlkSXRlbSBzbT17OH0gc21PZmZzZXQ9ezJ9PlxuICAgICAgICAgIDxDbGlwYm9hcmRDb3B5IGlzUmVhZE9ubHkgdmFyaWFudD17Q2xpcGJvYXJkQ29weVZhcmlhbnQuZXhwYW5zaW9ufT5cbiAgICAgICAgICAgIHtlcnJvci50b1N0cmluZygpfVxuICAgICAgICAgICAge2luZm8uY29tcG9uZW50U3RhY2t9XG4gICAgICAgICAgPC9DbGlwYm9hcmRDb3B5PlxuICAgICAgICA8L0dyaWRJdGVtPlxuICAgICAgPC9HcmlkPlxuICAgICk7XG4gIH1cbn1cblxuRXJyb3JCb3VuZGFyeS5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMubm9kZSksXG4gICAgUHJvcFR5cGVzLm5vZGUsXG4gIF0pLmlzUmVxdWlyZWQsXG4gIGhpc3Rvcnk6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEVycm9yQm91bmRhcnk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRXJyb3JCb3VuZGFyeS9pbmRleC5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRXJyb3JCb3VuZGFyeS9pbmRleC5zY3NzXG4vLyBtb2R1bGUgaWQgPSA1MDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQXJlYUNoYXJ0IGFzIFBmQXJlYUNoYXJ0IH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyBnZXRBcmVhQ2hhcnRDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jaGFydHMvQXJlYUNoYXJ0U2VydmljZSc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IE1lc3NhZ2VCb3ggZnJvbSAnLi4vLi4vTWVzc2FnZUJveCc7XG5cbmNvbnN0IEFyZWFDaGFydCA9ICh7XG4gIGRhdGEsXG4gIG9uY2xpY2ssXG4gIG5vRGF0YU1zZyxcbiAgY29uZmlnLFxuICB1bmxvYWREYXRhLFxuICB4QXhpc0RhdGFMYWJlbCxcbiAgeUF4aXNMYWJlbCxcbiAgc2l6ZSxcbn0pID0+IHtcbiAgY29uc3QgY2hhcnRDb25maWcgPSBnZXRBcmVhQ2hhcnRDb25maWcoe1xuICAgIGRhdGEsXG4gICAgY29uZmlnLFxuICAgIG9uY2xpY2ssXG4gICAgeUF4aXNMYWJlbCxcbiAgICB4QXhpc0RhdGFMYWJlbCxcbiAgICBzaXplLFxuICB9KTtcblxuICBpZiAoY2hhcnRDb25maWcuZGF0YS5jb2x1bW5zLmxlbmd0aCkge1xuICAgIHJldHVybiA8UGZBcmVhQ2hhcnQgey4uLmNoYXJ0Q29uZmlnfSB1bmxvYWRCZWZvcmVMb2FkPXt1bmxvYWREYXRhfSAvPjtcbiAgfVxuICByZXR1cm4gPE1lc3NhZ2VCb3ggbXNnPXtub0RhdGFNc2d9IGljb250eXBlPVwiaW5mb1wiIC8+O1xufTtcblxuQXJlYUNoYXJ0LnByb3BUeXBlcyA9IHtcbiAgZGF0YTogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFycmF5KSxcbiAgb25jbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIG5vRGF0YU1zZzogUHJvcFR5cGVzLnN0cmluZyxcbiAgY29uZmlnOiBQcm9wVHlwZXMub25lT2YoWyd0aW1lc2VyaWVzJ10pLFxuICB1bmxvYWREYXRhOiBQcm9wVHlwZXMuYm9vbCxcbiAgeEF4aXNEYXRhTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHlBeGlzTGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHNpemU6IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG5BcmVhQ2hhcnQuZGVmYXVsdFByb3BzID0ge1xuICBkYXRhOiBudWxsLFxuICBvbmNsaWNrOiBub29wLFxuICBub0RhdGFNc2c6IF9fKCdObyBkYXRhIGF2YWlsYWJsZScpLFxuICBjb25maWc6ICd0aW1lc2VyaWVzJyxcbiAgdW5sb2FkRGF0YTogZmFsc2UsXG4gIHhBeGlzRGF0YUxhYmVsOiAndGltZScsXG4gIHlBeGlzTGFiZWw6ICcnLFxuICBzaXplOiB1bmRlZmluZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcmVhQ2hhcnQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vY2hhcnRzL0FyZWFDaGFydC9pbmRleC5qcyIsImltcG9ydCB1dWlkVjEgZnJvbSAndXVpZC92MSc7XG5pbXBvcnQgeyBnZXRDaGFydENvbmZpZyB9IGZyb20gJy4vQ2hhcnRTZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGdldEFyZWFDaGFydENvbmZpZyA9ICh7XG4gIGRhdGEsXG4gIGNvbmZpZyA9ICd0aW1lc2VyaWVzJyxcbiAgb25jbGljayxcbiAgeUF4aXNMYWJlbCxcbiAgeEF4aXNEYXRhTGFiZWwgPSAndGltZScsXG4gIHN0YWNrZWQgPSB0cnVlLFxuICBpZCA9IHV1aWRWMSgpLFxuICBzaXplID0gdW5kZWZpbmVkLFxufSkgPT4ge1xuICBjb25zdCBjaGFydENvbmZpZyA9IGdldENoYXJ0Q29uZmlnKHtcbiAgICB0eXBlOiAnYXJlYScsXG4gICAgY29uZmlnLFxuICAgIGRhdGEsXG4gICAgb25jbGljayxcbiAgICBpZCxcbiAgfSk7XG5cbiAgaWYgKGNvbmZpZyA9PT0gJ3RpbWVzZXJpZXMnICYmIHhBeGlzRGF0YUxhYmVsKSB7XG4gICAgY2hhcnRDb25maWcuZGF0YS54ID0geEF4aXNEYXRhTGFiZWw7XG4gIH0gZWxzZSBpZiAoY29uZmlnID09PSAndGltZXNlcmllcycgJiYgIXhBeGlzRGF0YUxhYmVsKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLndhcm4oJ3hBeGlzRGF0YUxhYmVsIGlzIG1pc3NpbmcgZm9yIHRpbWVzZXJpZXMgYXJlYSBncmFwaCcpO1xuICB9XG5cbiAgaWYgKGRhdGEpIHtcbiAgICBjb25zdCB0aW1lc3RhbXBzID0gZGF0YVswXS5zbGljZSgxKTtcbiAgICBjb25zdCBmb3JtYXRlZERhdGVzID0gdGltZXN0YW1wcy5tYXAoXG4gICAgICBlcG9jaFNlY3MgPT4gbmV3IERhdGUoZXBvY2hTZWNzICogMTAwMClcbiAgICApO1xuICAgIGNoYXJ0Q29uZmlnLmRhdGEuY29sb3JzID0ge307XG4gICAgY2hhcnRDb25maWcuZGF0YS5jb2x1bW5zWzBdID0gW3hBeGlzRGF0YUxhYmVsXS5jb25jYXQoZm9ybWF0ZWREYXRlcyk7XG4gICAgaWYgKHNpemUpIHtcbiAgICAgIGNoYXJ0Q29uZmlnLnNpemUgPSBzaXplO1xuICAgIH1cblxuICAgIGlmIChzdGFja2VkKSB7XG4gICAgICBjaGFydENvbmZpZy5kYXRhLmdyb3VwcyA9IFtcbiAgICAgICAgY2hhcnRDb25maWcuZGF0YS5jb2x1bW5zLnNsaWNlKDEpLm1hcChkYXRhSXRlbSA9PiBkYXRhSXRlbVswXSksXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uY2hhcnRDb25maWcsXG4gICAgYXhpczoge1xuICAgICAgLi4uY2hhcnRDb25maWcuYXhpcyxcbiAgICAgIHk6IHtcbiAgICAgICAgbGFiZWw6IHtcbiAgICAgICAgICB0ZXh0OiB5QXhpc0xhYmVsIHx8IG51bGwsXG4gICAgICAgICAgcG9zaXRpb246ICdvdXRlci1taWRkbGUnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3NlcnZpY2VzL2NoYXJ0cy9BcmVhQ2hhcnRTZXJ2aWNlLmpzIiwiaW1wb3J0IHsgaW50bCB9IGZyb20gJy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5cbmNvbnN0IGVudW1zID0ge1xuICBTSVpFOiB7XG4gICAgTEFSR0U6IHsgaGVpZ2h0OiA1MDAgfSxcbiAgICBSRUdVTEFSOiB7IHdpZHRoOiAyNDAsIGhlaWdodDogMjQwIH0sXG4gICAgTUVESVVNOiB7IHdpZHRoOiAzMjAsIGhlaWdodDogMzIwIH0sXG4gIH0sXG4gIFdJRFRIOiB7XG4gICAgU01BTEw6IDE1LFxuICAgIE1FRElVTTogMjAsXG4gICAgTEFSR0U6IDI1LFxuICB9LFxufTtcblxuY29uc3QgYmFyQ2hhcnRFbnVtcyA9IHtcbiAgU0laRToge1xuICAgIExBUkdFOiB7IGhlaWdodDogNTAwIH0sXG4gICAgUkVHVUxBUjogeyB3aWR0aDogMzUwLCBoZWlnaHQ6IDM1MCB9LFxuICAgIE1FRElVTTogeyB3aWR0aDogNDUwLCBoZWlnaHQ6IDMyMCB9LFxuICAgIFNNQUxMOiB7IGhlaWdodDogMjkwIH0sXG4gIH0sXG4gIFdJRFRIOiB7IC4uLmVudW1zLndpZHRoIH0sXG59O1xuXG5jb25zdCBsaW5lQ2hhcnRFbnVtcyA9IHtcbiAgU0laRToge1xuICAgIFJFR1VMQVI6IHsgd2lkdGg6IDEwMDAsIGhlaWdodDogMzUwIH0sXG4gIH0sXG4gIFdJRFRIOiB7IC4uLmVudW1zLndpZHRoIH0sXG59O1xuXG5leHBvcnQgY29uc3QgY2hhcnRDb25maWcgPSB7XG4gIGRhdGE6IHtcbiAgICBjb2x1bW5zOiBbXSxcbiAgfSxcbiAgY29sb3I6IHtcbiAgICBwYXR0ZXJuOiBbJyMwMDg4Y2UnLCAnI2VjN2EwOCcsICcjM2Y5YzM1JywgJyMwMDVjNjYnLCAnI2Y5ZDY3YScsICcjNzAzZmVjJ10sXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICBzaG93OiB0cnVlLFxuICB9LFxuICBsZWdlbmQ6IHsgc2hvdzogZmFsc2UgfSxcbiAgcGFkZGluZzoge1xuICAgIHRvcDogMCxcbiAgICBsZWZ0OiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgfSxcbiAgc2l6ZTogZW51bXMuU0laRS5SRUdVTEFSLFxufTtcblxuZXhwb3J0IGNvbnN0IGRvbnV0Q2hhcnRDb25maWcgPSB7XG4gIC4uLmNoYXJ0Q29uZmlnLFxuICBkb251dDoge1xuICAgIHdpZHRoOiBlbnVtcy5XSURUSC5TTUFMTCxcbiAgICBsYWJlbDogeyBzaG93OiBmYWxzZSB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGRvbnV0TWVkaXVtQ2hhcnRDb25maWcgPSB7XG4gIC4uLmRvbnV0Q2hhcnRDb25maWcsXG4gIHNpemU6IGVudW1zLlNJWkUuTUVESVVNLFxuICBsZWdlbmQ6IHsgc2hvdzogZmFsc2UgfSxcbiAgZG9udXQ6IHtcbiAgICAuLi5kb251dENoYXJ0Q29uZmlnLmRvbnV0LFxuICAgIHdpZHRoOiBlbnVtcy5XSURUSC5NRURJVU0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgZG9udXRMYXJnZUNoYXJ0Q29uZmlnID0ge1xuICAuLi5kb251dENoYXJ0Q29uZmlnLFxuICBzaXplOiBlbnVtcy5TSVpFLkxBUkdFLFxuICBsZWdlbmQ6IHsgc2hvdzogdHJ1ZSwgcG9zaXRpb246ICdib3R0b20nIH0sXG4gIGRvbnV0OiB7XG4gICAgLi4uZG9udXRDaGFydENvbmZpZy5kb251dCxcbiAgICB3aWR0aDogZW51bXMuV0lEVEguTEFSR0UsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgYmFyQ2hhcnRDb25maWcgPSB7XG4gIC4uLmNoYXJ0Q29uZmlnLFxuICBzaXplOiBiYXJDaGFydEVudW1zLlNJWkUuUkVHVUxBUixcbiAgcGFkZGluZzogbnVsbCxcbn07XG5cbmV4cG9ydCBjb25zdCBtZWRpdW1CYXJDaGFydENvbmZpZyA9IHtcbiAgLi4uYmFyQ2hhcnRDb25maWcsXG4gIHNpemU6IGJhckNoYXJ0RW51bXMuU0laRS5NRURJVU0sXG59O1xuXG5leHBvcnQgY29uc3Qgc21hbGxCYXJDaGFydENvbmZpZyA9IHtcbiAgLi4uYmFyQ2hhcnRDb25maWcsXG4gIHNpemU6IGJhckNoYXJ0RW51bXMuU0laRS5TTUFMTCxcbn07XG5cbmV4cG9ydCBjb25zdCBsaW5lQ2hhcnRDb25maWcgPSB7XG4gIC4uLmNoYXJ0Q29uZmlnLFxuICBsZWdlbmQ6IHsgc2hvdzogdHJ1ZSB9LFxuICBzaXplOiBsaW5lQ2hhcnRFbnVtcy5TSVpFLlJFR1VMQVIsXG4gIHBhZGRpbmc6IG51bGwsXG59O1xuXG5leHBvcnQgY29uc3QgdGltZXNlcmllc0xpbmVDaGFydENvbmZpZyA9IHtcbiAgLi4ubGluZUNoYXJ0Q29uZmlnLFxuICBheGlzOiB7XG4gICAgeDoge1xuICAgICAgdHlwZTogJ3RpbWVzZXJpZXMnLFxuICAgICAgdGljazoge1xuICAgICAgICBmb3JtYXQ6IGRhdGUgPT4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoaW50bC5sb2NhbGUpLmZvcm1hdChkYXRlKSxcbiAgICAgICAgcm90YXRlOiAtNDAsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHBhZGRpbmc6IHtcbiAgICB0b3A6IDEwLFxuICAgIGJvdHRvbTogNzAsXG4gICAgbGVmdDogMzAsXG4gICAgcmlnaHQ6IDIwLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGFyZWFDaGFydENvbmZpZyA9IHtcbiAgLi4uY2hhcnRDb25maWcsXG4gIGxlZ2VuZDogeyBzaG93OiB0cnVlIH0sXG59O1xuXG5leHBvcnQgY29uc3QgdGltZXNlcmllc0FyZWFDaGFydENvbmZpZyA9IHtcbiAgLi4uYXJlYUNoYXJ0Q29uZmlnLFxuICBheGlzOiB7XG4gICAgeDoge1xuICAgICAgdHlwZTogJ3RpbWVzZXJpZXMnLFxuICAgICAgdGljazoge1xuICAgICAgICBmb3JtYXQ6IGRhdGUgPT5cbiAgICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChpbnRsLmxvY2FsZSwge1xuICAgICAgICAgICAgbW9udGg6ICdudW1lcmljJyxcbiAgICAgICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICAgICAgbWludXRlOiAnbnVtZXJpYycsXG4gICAgICAgICAgfSkuZm9ybWF0KGRhdGUpLFxuICAgICAgICByb3RhdGU6IC00MCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgc2l6ZTogdW5kZWZpbmVkLFxuICBwYWRkaW5nOiB7XG4gICAgdG9wOiAxMCxcbiAgICBib3R0b206IDYwLFxuICAgIGxlZnQ6IDYwLFxuICAgIHJpZ2h0OiAyMCxcbiAgfSxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvQ2hhcnRTZXJ2aWNlLmNvbnN0cy5qcyIsImltcG9ydCB1dWlkVjEgZnJvbSAndXVpZC92MSc7XG5pbXBvcnQgeyBnZXRDaGFydENvbmZpZyB9IGZyb20gJy4vQ2hhcnRTZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGdldEJhckNoYXJ0Q29uZmlnID0gKHtcbiAgZGF0YSxcbiAgY29uZmlnLFxuICBvbmNsaWNrLFxuICB4QXhpc0xhYmVsLFxuICB5QXhpc0xhYmVsLFxuICBpZCA9IHV1aWRWMSgpLFxufSkgPT4ge1xuICBjb25zdCBjaGFydENvbmZpZyA9IGdldENoYXJ0Q29uZmlnKHtcbiAgICB0eXBlOiAnYmFyJyxcbiAgICBkYXRhLFxuICAgIGNvbmZpZyxcbiAgICBvbmNsaWNrLFxuICAgIGlkLFxuICB9KTtcblxuICBsZXQgY2F0ZWdvcmllcyA9IG51bGw7XG4gIGxldCBjb2x1bW5zID0gbnVsbDtcblxuICBpZiAoZGF0YSkge1xuICAgIGNhdGVnb3JpZXMgPSBkYXRhLm1hcChkYXRhSXRlbSA9PiBkYXRhSXRlbVswXSk7XG5cbiAgICBjb2x1bW5zID0gZGF0YS5tYXAoeCA9PiB4WzFdKTtcblxuICAgIGNvbHVtbnMudW5zaGlmdCh4QXhpc0xhYmVsKTtcblxuICAgIGNoYXJ0Q29uZmlnLmRhdGEuY29sdW1ucyA9IFtjb2x1bW5zXTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uY2hhcnRDb25maWcsXG5cbiAgICBheGlzOiB7XG4gICAgICB4OiB7XG4gICAgICAgIGNhdGVnb3JpZXMsXG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeScsXG4gICAgICAgIGxhYmVsOiB4QXhpc0xhYmVsIHx8IG51bGwsXG4gICAgICB9LFxuICAgICAgeToge1xuICAgICAgICBsYWJlbDogeUF4aXNMYWJlbCB8fCBudWxsLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3NlcnZpY2VzL2NoYXJ0cy9CYXJDaGFydFNlcnZpY2UuanMiLCJpbXBvcnQgdXVpZFYxIGZyb20gJ3V1aWQvdjEnO1xuaW1wb3J0IHsgZ2V0Q2hhcnRDb25maWcsIG5hdmlnYXRlVG9TZWFyY2ggfSBmcm9tICcuL0NoYXJ0U2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBnZXREb251dENoYXJ0Q29uZmlnID0gKHtcbiAgZGF0YSxcbiAgY29uZmlnLFxuICBvbmNsaWNrLFxuICBzZWFyY2hVcmwsXG4gIHNlYXJjaEZpbHRlcnMsXG4gIGlkID0gdXVpZFYxKCksXG59KSA9PlxuICBnZXRDaGFydENvbmZpZyh7XG4gICAgdHlwZTogJ2RvbnV0JyxcbiAgICBkYXRhLFxuICAgIGNvbmZpZyxcbiAgICBpZCxcbiAgICBvbmNsaWNrOiAoZCwgZWxlbWVudCkgPT4ge1xuICAgICAgaWYgKG9uY2xpY2spIG9uY2xpY2soZCwgZWxlbWVudCk7XG4gICAgICBpZiAoc2VhcmNoVXJsKSBuYXZpZ2F0ZVRvU2VhcmNoKHNlYXJjaFVybCwgc2VhcmNoRmlsdGVycyB8fCB7fSwgZCk7XG4gICAgfSxcbiAgfSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvRG9udXRDaGFydFNlcnZpY2UuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IExpbmVDaGFydCBhcyBQZkxpbmVDaGFydCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuXG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9yZWFjdF9hcHAvY29tbW9uL0kxOG4nO1xuaW1wb3J0IHsgZ2V0TGluZUNoYXJ0Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvY2hhcnRzL0xpbmVDaGFydFNlcnZpY2UnO1xuXG5pbXBvcnQgTWVzc2FnZUJveCBmcm9tICcuLi8uLi9NZXNzYWdlQm94JztcblxuY29uc3QgTGluZUNoYXJ0ID0gKHtcbiAgZGF0YSxcbiAgdGl0bGUsXG4gIGNvbmZpZyxcbiAgbm9EYXRhTXNnLFxuICB1bmxvYWREYXRhLFxuICB4QXhpc0RhdGFMYWJlbCxcbiAgYXhpc09wdHMsXG4gIG9uY2xpY2ssXG4gIGlkLFxufSkgPT4ge1xuICBjb25zdCBjaGFydENvbmZpZyA9IGdldExpbmVDaGFydENvbmZpZyh7XG4gICAgZGF0YSxcbiAgICBjb25maWcsXG4gICAgeEF4aXNEYXRhTGFiZWwsXG4gICAgYXhpc09wdHMsXG4gICAgb25jbGljayxcbiAgICBpZCxcbiAgfSk7XG5cbiAgaWYgKGNoYXJ0Q29uZmlnLmRhdGEuY29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQZkxpbmVDaGFydFxuICAgICAgICB7Li4uY2hhcnRDb25maWd9XG4gICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgdW5sb2FkQmVmb3JlTG9hZD17dW5sb2FkRGF0YX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gPE1lc3NhZ2VCb3ggbXNnPXtub0RhdGFNc2d9IGljb250eXBlPVwiaW5mb1wiIC8+O1xufTtcblxuTGluZUNoYXJ0LnByb3BUeXBlcyA9IHtcbiAgZGF0YTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm9iamVjdCwgUHJvcFR5cGVzLmFycmF5XSksXG4gIGNvbmZpZzogUHJvcFR5cGVzLm9uZU9mKFsncmVndWxhcicsICd0aW1lc2VyaWVzJ10pLFxuICBub0RhdGFNc2c6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRpdGxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICB1bmxvYWREYXRhOiBQcm9wVHlwZXMuYm9vbCxcbiAgYXhpc09wdHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIHhBeGlzRGF0YUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbmNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5MaW5lQ2hhcnQuZGVmYXVsdFByb3BzID0ge1xuICBkYXRhOiB1bmRlZmluZWQsXG4gIGNvbmZpZzogJ3JlZ3VsYXInLFxuICBub0RhdGFNc2c6IF9fKCdObyBkYXRhIGF2YWlsYWJsZScpLFxuICB0aXRsZTogeyB0eXBlOiAncGVyY2VudCcgfSxcbiAgdW5sb2FkRGF0YTogZmFsc2UsXG4gIGF4aXNPcHRzOiB7fSxcbiAgeEF4aXNEYXRhTGFiZWw6ICcnLFxuICBvbmNsaWNrOiAoKSA9PiB7fSxcbiAgaWQ6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExpbmVDaGFydDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9jaGFydHMvTGluZUNoYXJ0L2luZGV4LmpzIiwiaW1wb3J0IHV1aWRWMSBmcm9tICd1dWlkL3YxJztcbmltcG9ydCB7IGdldENoYXJ0Q29uZmlnIH0gZnJvbSAnLi9DaGFydFNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgZ2V0TGluZUNoYXJ0Q29uZmlnID0gKHtcbiAgZGF0YSxcbiAgY29uZmlnLFxuICBvbmNsaWNrLFxuICBpZCA9IHV1aWRWMSgpLFxuICB4QXhpc0RhdGFMYWJlbCxcbiAgYXhpc09wdHMsXG59KSA9PiB7XG4gIGNvbnN0IGNoYXJ0Q29uZmlnID0gZ2V0Q2hhcnRDb25maWcoe1xuICAgIHR5cGU6ICdsaW5lJyxcbiAgICBkYXRhLFxuICAgIGNvbmZpZyxcbiAgICBpZCxcbiAgICBvbmNsaWNrLFxuICB9KTtcblxuICBpZiAoY2hhcnRDb25maWcuZGF0YSAmJiBjaGFydENvbmZpZy5kYXRhLmNvbHVtbnMpIHtcbiAgICBjaGFydENvbmZpZy5kYXRhLmNvbHVtbnMgPSBjaGFydENvbmZpZy5kYXRhLmNvbHVtbnMubWFwKGNvbCA9PiB7XG4gICAgICBjb25zdCBbbGFiZWwsIHZhbHVlc10gPSBjb2w7XG4gICAgICAvLyBkZXN0cnVjdCBkYXRhIGludG8gZm9ybWF0IGxpbmUgY2hhcnQgYWNjZXB0cyxcbiAgICAgIC8vIHJlbW92ZSBsYXN0IGl0ZW0gaW4gY29sdW1uIGFzIGl0IHNwZWNpZmllcyB0aGUgY29sb3JcbiAgICAgIHJldHVybiBbbGFiZWwsIC4uLnZhbHVlc107XG4gICAgfSk7XG4gIH1cblxuICBpZiAoY29uZmlnID09PSAndGltZXNlcmllcycgJiYgeEF4aXNEYXRhTGFiZWwpIHtcbiAgICBjaGFydENvbmZpZy5kYXRhLnggPSB4QXhpc0RhdGFMYWJlbDtcbiAgfSBlbHNlIGlmIChjb25maWcgPT09ICd0aW1lc2VyaWVzJyAmJiAheEF4aXNEYXRhTGFiZWwpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUud2FybigneEF4aXNEYXRhTGFiZWwgaXMgbWlzc2luZyBmb3IgdGltZXNlcmllcyBsaW5lIGdyYXBoJyk7XG4gIH1cblxuICBjaGFydENvbmZpZy5heGlzID0geyAuLi5jaGFydENvbmZpZy5heGlzLCAuLi5heGlzT3B0cyB9O1xuXG4gIGRlbGV0ZSBjaGFydENvbmZpZy50b29sdGlwO1xuXG4gIHJldHVybiBjaGFydENvbmZpZztcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9zZXJ2aWNlcy9jaGFydHMvTGluZUNoYXJ0U2VydmljZS5qcyIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IFBvd2VyU3RhdHVzIGZyb20gJy4vUG93ZXJTdGF0dXMnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvQVBJJztcbmltcG9ydCB7IEhPU1RfUE9XRVJfU1RBVFVTIH0gZnJvbSAnLi9Qb3dlclN0YXR1c0NvbnN0YW50cyc7XG5pbXBvcnQgeyBzZWxlY3RTdGF0ZSwgc2VsZWN0VGl0bGUgfSBmcm9tICcuL1Bvd2VyU3RhdHVzU2VsZWN0b3JzJztcblxuY29uc3QgQ29ubmVjdGVkUG93ZXJTdGF0dXMgPSAoeyBpZCwgdXJsIH0pID0+IHtcbiAgY29uc3Qga2V5ID0gYCR7SE9TVF9QT1dFUl9TVEFUVVN9XyR7aWR9YDtcbiAgY29uc3Qgc3RhdGUgPSB1c2VTZWxlY3RvcihzdG9yZSA9PiBzZWxlY3RTdGF0ZShzdG9yZSwga2V5KSk7XG4gIGNvbnN0IHRpdGxlID0gdXNlU2VsZWN0b3Ioc3RvcmUgPT4gc2VsZWN0VGl0bGUoc3RvcmUsIGtleSkpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChnZXQoeyBrZXksIHVybCB9KSk7XG4gIH0sIFt1cmwsIGtleSwgZGlzcGF0Y2hdKTtcblxuICByZXR1cm4gPFBvd2VyU3RhdHVzIHN0YXRlPXtzdGF0ZX0gdGl0bGU9e3RpdGxlfSAvPjtcbn07XG5cbkNvbm5lY3RlZFBvd2VyU3RhdHVzLnByb3BUeXBlcyA9IHtcbiAgaWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKS5pc1JlcXVpcmVkLFxuICB1cmw6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbm5lY3RlZFBvd2VyU3RhdHVzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvaG9zdHMvcG93ZXJTdGF0dXMvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHNpbXBsZUxvYWRlciB9IGZyb20gJy4uLy4uL2NvbW1vbi9Mb2FkZXInO1xuaW1wb3J0ICcuL1Bvd2VyU3RhdHVzLnNjc3MnO1xuXG5jb25zdCBQb3dlclN0YXR1cyA9ICh7IHN0YXRlLCB0aXRsZSB9KSA9PlxuICBzdGF0ZSA/IChcbiAgICA8c3BhblxuICAgICAgY2xhc3NOYW1lPXtgZmEgZmEtcG93ZXItb2ZmIGhvc3QtcG93ZXItc3RhdHVzICR7c3RhdGV9YH1cbiAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAvPlxuICApIDogKFxuICAgIHNpbXBsZUxvYWRlcigneHMnKVxuICApO1xuXG5Qb3dlclN0YXR1cy5wcm9wVHlwZXMgPSB7XG4gIHN0YXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cblBvd2VyU3RhdHVzLmRlZmF1bHRQcm9wcyA9IHtcbiAgc3RhdGU6ICcnLFxuICB0aXRsZTogJycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBQb3dlclN0YXR1cztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2hvc3RzL3Bvd2VyU3RhdHVzL1Bvd2VyU3RhdHVzLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2hvc3RzL3Bvd2VyU3RhdHVzL1Bvd2VyU3RhdHVzLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDUxM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiZXhwb3J0IGNvbnN0IEhPU1RfUE9XRVJfU1RBVFVTID0gJ0hPU1RfUE9XRVJfU1RBVFVTJztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2hvc3RzL3Bvd2VyU3RhdHVzL1Bvd2VyU3RhdHVzQ29uc3RhbnRzLmpzIiwiaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge1xuICBzZWxlY3RBUElFcnJvck1lc3NhZ2UsXG4gIHNlbGVjdEFQSVJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi8uLi9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzJztcblxuY29uc3Qgc2VsZWN0RXJyb3JNZXNzYWdlID0gKHN0YXRlLCBrZXkpID0+IHNlbGVjdEFQSUVycm9yTWVzc2FnZShzdGF0ZSwga2V5KTtcblxuY29uc3Qgc2VsZWN0U3RhdGVGcm9tQVBJID0gKHN0YXRlLCBrZXkpID0+IHNlbGVjdEFQSVJlc3BvbnNlKHN0YXRlLCBrZXkpLnN0YXRlO1xuXG5jb25zdCBzZWxlY3RUaXRsZUZyb21BUEkgPSAoc3RhdGUsIGtleSkgPT4gc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIGtleSkudGl0bGU7XG5cbmNvbnN0IHNlbGVjdFN0YXR1c1RleHQgPSAoc3RhdGUsIGtleSkgPT5cbiAgc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIGtleSkuc3RhdHVzVGV4dDtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFN0YXRlID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdFN0YXRlRnJvbUFQSSxcbiAgc2VsZWN0RXJyb3JNZXNzYWdlLFxuICAoc3RhdGUsIGVycm9yKSA9PiAoZXJyb3IgPyAnbmEnIDogc3RhdGUpXG4pO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0VGl0bGUgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0VGl0bGVGcm9tQVBJLFxuICBzZWxlY3RFcnJvck1lc3NhZ2UsXG4gIHNlbGVjdFN0YXR1c1RleHQsXG4gICh0aXRsZSwgZXJyb3IsIHN0YXR1c1RleHQpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGxldCBlcnJvclRpdGxlID0gZXJyb3I7XG4gICAgICBpZiAodGl0bGUgfHwgc3RhdHVzVGV4dCkge1xuICAgICAgICBlcnJvclRpdGxlID0gYCR7dGl0bGV9ICR7c3RhdHVzVGV4dH1gLnRyaW0oKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlcnJvclRpdGxlO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdHVzVGV4dCB8fCB0aXRsZTtcbiAgfVxuKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2hvc3RzL3Bvd2VyU3RhdHVzL1Bvd2VyU3RhdHVzU2VsZWN0b3JzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBGb3JtYXR0ZWREYXRlLCBpbnRsU2hhcGUgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7IGlzb0NvbXBhdGlibGVEYXRlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBMb25nRGF0ZVRpbWUgPSAocHJvcHMsIGNvbnRleHQpID0+IHtcbiAgY29uc3QgeyBkYXRlLCBkZWZhdWx0VmFsdWUgfSA9IHByb3BzO1xuICBpZiAoZGF0ZSkge1xuICAgIGNvbnN0IGlzb0RhdGUgPSBpc29Db21wYXRpYmxlRGF0ZShkYXRlKTtcbiAgICBjb25zdCB0aXRsZSA9IHByb3BzLnNob3dSZWxhdGl2ZVRpbWVUb29sdGlwXG4gICAgICA/IGNvbnRleHQuaW50bC5mb3JtYXRSZWxhdGl2ZShpc29EYXRlKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2Vjb25kcyA9IHByb3BzLnNlY29uZHMgPyAnMi1kaWdpdCcgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gdGl0bGU9e3RpdGxlfT5cbiAgICAgICAgPEZvcm1hdHRlZERhdGVcbiAgICAgICAgICB2YWx1ZT17aXNvRGF0ZX1cbiAgICAgICAgICBkYXk9XCIyLWRpZ2l0XCJcbiAgICAgICAgICBtb250aD1cImxvbmdcIlxuICAgICAgICAgIGhvdXI9XCIyLWRpZ2l0XCJcbiAgICAgICAgICBtaW51dGU9XCIyLWRpZ2l0XCJcbiAgICAgICAgICBzZWNvbmQ9e3NlY29uZHN9XG4gICAgICAgICAgeWVhcj1cIm51bWVyaWNcIlxuICAgICAgICAvPlxuICAgICAgPC9zcGFuPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIDxzcGFuPntkZWZhdWx0VmFsdWV9PC9zcGFuPjtcbn07XG5cbkxvbmdEYXRlVGltZS5jb250ZXh0VHlwZXMgPSB7XG4gIGludGw6IGludGxTaGFwZSxcbn07XG5cbkxvbmdEYXRlVGltZS5wcm9wVHlwZXMgPSB7XG4gIGRhdGU6IFByb3BUeXBlcy5hbnksXG4gIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2Vjb25kczogUHJvcFR5cGVzLmJvb2wsXG4gIHNob3dSZWxhdGl2ZVRpbWVUb29sdGlwOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbkxvbmdEYXRlVGltZS5kZWZhdWx0UHJvcHMgPSB7XG4gIGRhdGU6IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogJycsXG4gIHNlY29uZHM6IGZhbHNlLFxuICBzaG93UmVsYXRpdmVUaW1lVG9vbHRpcDogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBMb25nRGF0ZVRpbWU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZGF0ZXMvTG9uZ0RhdGVUaW1lLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBGb3JtYXR0ZWREYXRlLCBpbnRsU2hhcGUgfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7IGlzb0NvbXBhdGlibGVEYXRlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBJc29EYXRlID0gKHByb3BzLCBjb250ZXh0KSA9PiB7XG4gIGNvbnN0IHsgZGF0ZSwgZGVmYXVsdFZhbHVlIH0gPSBwcm9wcztcbiAgaWYgKGRhdGUpIHtcbiAgICBjb25zdCBpc29EYXRlID0gaXNvQ29tcGF0aWJsZURhdGUoZGF0ZSk7XG4gICAgY29uc3QgdGl0bGUgPSBjb250ZXh0LmludGwuZm9ybWF0UmVsYXRpdmUoaXNvRGF0ZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW4gdGl0bGU9e3RpdGxlfT5cbiAgICAgICAgPEZvcm1hdHRlZERhdGVcbiAgICAgICAgICB2YWx1ZT17aXNvRGF0ZX1cbiAgICAgICAgICBkYXk9XCIyLWRpZ2l0XCJcbiAgICAgICAgICBtb250aD1cIjItZGlnaXRcIlxuICAgICAgICAgIHllYXI9XCJudW1lcmljXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICApO1xuICB9XG4gIHJldHVybiA8c3Bhbj57ZGVmYXVsdFZhbHVlfTwvc3Bhbj47XG59O1xuXG5Jc29EYXRlLmNvbnRleHRUeXBlcyA9IHtcbiAgaW50bDogaW50bFNoYXBlLFxufTtcblxuSXNvRGF0ZS5wcm9wVHlwZXMgPSB7XG4gIGRhdGU6IFByb3BUeXBlcy5hbnksXG4gIGRlZmF1bHRWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbklzb0RhdGUuZGVmYXVsdFByb3BzID0ge1xuICBkYXRlOiBudWxsLFxuICBkZWZhdWx0VmFsdWU6ICcnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgSXNvRGF0ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9kYXRlcy9Jc29EYXRlLmpzIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtcbiAgQ29sLFxuICBGb3JtR3JvdXAsXG4gIENvbnRyb2xMYWJlbCxcbiAgSGVscEJsb2NrLFxuICBGaWVsZExldmVsSGVscCxcbn0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyBXYXJuaW5nVHJpYW5nbGVJY29uLCBFcnJvckNpcmNsZU9JY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnO1xuaW1wb3J0IElucHV0RmFjdG9yeSBmcm9tICcuL0lucHV0RmFjdG9yeSc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5jb25zdCBJbmxpbmVNZXNzYWdlID0gKHsgZXJyb3IsIHdhcm5pbmcsIGhlbHBJbmxpbmUgfSkgPT4ge1xuICBpZiAoIWVycm9yICYmICF3YXJuaW5nICYmICFoZWxwSW5saW5lKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8SGVscEJsb2NrXG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ2hlbHAtaW5saW5lJywge1xuICAgICAgICAnZXJyb3ItbWVzc2FnZSc6ICEhZXJyb3IsXG4gICAgICAgICd3YXJuaW5nLW1lc3NhZ2UnOiAhIXdhcm5pbmcsXG4gICAgICB9KX1cbiAgICA+XG4gICAgICB7ZXJyb3IgJiYgPEVycm9yQ2lyY2xlT0ljb24gY2xhc3NOYW1lPVwiZXJyb3ItaWNvblwiIC8+fVxuICAgICAgeyFlcnJvciAmJiB3YXJuaW5nICYmIDxXYXJuaW5nVHJpYW5nbGVJY29uIGNsYXNzTmFtZT1cIndhcm5pbmctaWNvblwiIC8+fVxuICAgICAge2Vycm9yIHx8IHdhcm5pbmcgfHwgaGVscElubGluZX1cbiAgICA8L0hlbHBCbG9jaz5cbiAgKTtcbn07XG5JbmxpbmVNZXNzYWdlLnByb3BUeXBlcyA9IHtcbiAgZXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHdhcm5pbmc6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlbHBJbmxpbmU6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuSW5saW5lTWVzc2FnZS5kZWZhdWx0UHJvcHMgPSB7XG4gIGVycm9yOiBudWxsLFxuICB3YXJuaW5nOiBudWxsLFxuICBoZWxwSW5saW5lOiBudWxsLFxufTtcblxuY29uc3QgRm9ybUZpZWxkID0gKHtcbiAgdHlwZSxcbiAgaWQsXG4gIG5hbWUsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIHJlcXVpcmVkLFxuICBlcnJvcixcbiAgdmFsdWUsXG4gIGxhYmVsLFxuICBsYWJlbEhlbHAsXG4gIGhlbHBJbmxpbmUsXG4gIGxhYmVsU2l6ZUNsYXNzLFxuICBpbnB1dFNpemVDbGFzcyxcbiAgb25DaGFuZ2UsXG4gIGNoaWxkcmVuLFxuICBpbnB1dFByb3BzLFxuICAuLi5vdGhlclByb3BzXG59KSA9PiB7XG4gIGNvbnN0IFtpbm5lckVycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZShlcnJvcik7XG4gIGNvbnN0IFtpbm5lcldhcm5pbmcsIHNldFdhcm5pbmddID0gdXNlU3RhdGUobnVsbCk7XG5cbiAgY29uc3QgY29udHJvbFByb3BzID0ge1xuICAgIHZhbHVlLFxuICAgIG5hbWUsXG4gICAgZGlzYWJsZWQsXG4gICAgcmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lLFxuICAgIG9uQ2hhbmdlLFxuICAgIHNldEVycm9yLFxuICAgIHNldFdhcm5pbmcsXG4gICAgLi4ub3RoZXJQcm9wcyxcbiAgICAuLi5pbnB1dFByb3BzLFxuICB9O1xuXG4gIGxldCB2YWxpZGF0aW9uU3RhdGUgPSBudWxsO1xuICBpZiAoaW5uZXJXYXJuaW5nKSB2YWxpZGF0aW9uU3RhdGUgPSAnd2FybmluZyc7XG4gIGlmIChpbm5lckVycm9yKSB2YWxpZGF0aW9uU3RhdGUgPSAnZXJyb3InO1xuXG4gIHJldHVybiAoXG4gICAgPEZvcm1Hcm91cFxuICAgICAgY29udHJvbElkPXtpZH1cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIHZhbGlkYXRpb25TdGF0ZT17dmFsaWRhdGlvblN0YXRlfVxuICAgID5cbiAgICAgIDxDb250cm9sTGFiZWwgY2xhc3NOYW1lPXtsYWJlbFNpemVDbGFzc30+XG4gICAgICAgIHtsYWJlbH1cbiAgICAgICAge3JlcXVpcmVkID8gJyonIDogbnVsbH1cbiAgICAgICAge2xhYmVsSGVscCAmJiAoXG4gICAgICAgICAgPEZpZWxkTGV2ZWxIZWxwXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICBidXR0b25DbGFzcz1cImZpZWxkLWhlbHBcIlxuICAgICAgICAgICAgY29udGVudD17PFJlYWN0LkZyYWdtZW50PntsYWJlbEhlbHB9PC9SZWFjdC5GcmFnbWVudD59XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvQ29udHJvbExhYmVsPlxuICAgICAgPENvbCBjbGFzc05hbWU9e2lucHV0U2l6ZUNsYXNzfT5cbiAgICAgICAge2NoaWxkcmVuIHx8IDxJbnB1dEZhY3RvcnkgdHlwZT17dHlwZX0gey4uLmNvbnRyb2xQcm9wc30gLz59XG4gICAgICA8L0NvbD5cbiAgICAgIDxJbmxpbmVNZXNzYWdlXG4gICAgICAgIGVycm9yPXtpbm5lckVycm9yfVxuICAgICAgICB3YXJuaW5nPXtpbm5lcldhcm5pbmd9XG4gICAgICAgIGhlbHBJbmxpbmU9e2hlbHBJbmxpbmV9XG4gICAgICAvPlxuICAgIDwvRm9ybUdyb3VwPlxuICApO1xufTtcblxuRm9ybUZpZWxkLnByb3BUeXBlcyA9IHtcbiAgdHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIFByb3BUeXBlcy5udW1iZXIsXG4gICAgUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSksXG4gICAgUHJvcFR5cGVzLmFycmF5LFxuICAgIFByb3BUeXBlcy5ib29sLFxuICBdKSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgbGFiZWxIZWxwOiBQcm9wVHlwZXMuc3RyaW5nLFxuICByZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgZXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlbHBJbmxpbmU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlucHV0U2l6ZUNsYXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsYWJlbFNpemVDbGFzczogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLmVsZW1lbnQsXG4gIGlucHV0UHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG5Gb3JtRmllbGQuZGVmYXVsdFByb3BzID0ge1xuICB0eXBlOiAndGV4dCcsXG4gIGlkOiBudWxsLFxuICBuYW1lOiB1bmRlZmluZWQsXG4gIHZhbHVlOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZTogJycsXG4gIGxhYmVsOiAnJyxcbiAgbGFiZWxIZWxwOiBudWxsLFxuICByZXF1aXJlZDogZmFsc2UsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgZXJyb3I6IG51bGwsXG4gIGhlbHBJbmxpbmU6IG51bGwsXG4gIGlucHV0U2l6ZUNsYXNzOiAnY29sLW1kLTQnLFxuICBsYWJlbFNpemVDbGFzczogJ2NvbC1tZC0yJyxcbiAgb25DaGFuZ2U6IG5vb3AsXG4gIGNoaWxkcmVuOiBudWxsLFxuICBpbnB1dFByb3BzOiBudWxsLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRm9ybUZpZWxkO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0Zvcm1GaWVsZC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEbmRQcm92aWRlciB9IGZyb20gJ3JlYWN0LWRuZCc7XG5pbXBvcnQgSFRNTDVCYWNrZW5kIGZyb20gJ3JlYWN0LWRuZC1odG1sNS1iYWNrZW5kJztcblxuaW1wb3J0IE9yZGVyYWJsZVNlbGVjdCBmcm9tICcuL09yZGVyYWJsZVNlbGVjdCc7XG5cbmV4cG9ydCBkZWZhdWx0IHByb3BzID0+IChcbiAgPERuZFByb3ZpZGVyIGJhY2tlbmQ9e0hUTUw1QmFja2VuZH0+XG4gICAgPE9yZGVyYWJsZVNlbGVjdCB7Li4ucHJvcHN9IC8+XG4gIDwvRG5kUHJvdmlkZXI+XG4pO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL09yZGVyYWJsZVNlbGVjdC9pbmRleC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFR5cGVBaGVhZFNlbGVjdCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IHsgb3JkZXJEcmFnZ2VkIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHVzZUludGVybmFsVmFsdWUgfSBmcm9tICcuL09yZGVyYWJsZVNlbGVjdEhvb2tzJztcbmltcG9ydCBPcmRlcmFibGVUb2tlbiBmcm9tICcuL2NvbXBvbmVudHMvT3JkZXJhYmxlVG9rZW4nO1xuXG4vKipcbiAqIFdyYXBzIFR5cGVBaGVhZFNlbGVjdCB3aXRoIGFuIE9yZGVyYWJsZSBIT0MuXG4gKiBQcmVzdW1lcyB0byBiZSB3cmFwcGVkIGluIGEgRG5kUHJvdmlkZXIgY29udGV4dC5cbiAqIFRoZSB2YWx1ZSBjYW4gbm90IGJlIGNoYW5nZWQgdGhyb3VnaCBwcm9wcyBvbmNlIHRoZSBjb21wb25lbnQgaXMgcmVuZGVyZWQuXG4gKi9cbmNvbnN0IE9yZGVyYWJsZVNlbGVjdCA9ICh7XG4gIGNsYXNzTmFtZSxcbiAgb25DaGFuZ2UsXG4gIGRlZmF1bHRWYWx1ZSxcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4gIG5hbWUsXG4gIC4uLnByb3BzXG59KSA9PiB7XG4gIGNvbnN0IFtpbnRlcm5hbFZhbHVlLCBzZXRJbnRlcm5hbFZhbHVlXSA9IHVzZUludGVybmFsVmFsdWUoXG4gICAgdmFsdWUgfHwgZGVmYXVsdFZhbHVlLFxuICAgIG9wdGlvbnNcbiAgKTtcbiAgY29uc3QgbW92ZURyYWdnZWRPcHRpb24gPSAoZHJhZ0luZGV4LCBob3ZlckluZGV4KSA9PiB7XG4gICAgc2V0SW50ZXJuYWxWYWx1ZShvcmRlckRyYWdnZWQoaW50ZXJuYWxWYWx1ZSwgZHJhZ0luZGV4LCBob3ZlckluZGV4KSk7XG4gIH07XG5cbiAgLy8gaGFjayB0aGUgZm9ybS1jb250cm9sLCB3aGljaCBpcyBhbHJlYWR5IGluIFR5cGVBaGVhZCBzbyBpdCB3b3VsZCBiZSBkdXBsaWNhdGVkXG4gIGNvbnN0IGNsYXNzZXNXaXRob3V0Rm9ybUNvbnRyb2wgPVxuICAgIGNsYXNzTmFtZSAmJlxuICAgIGNsYXNzTmFtZVxuICAgICAgLnNwbGl0KC9cXHMrLylcbiAgICAgIC5maWx0ZXIoZWwgPT4gZWwgIT09ICdmb3JtLWNvbnRyb2wnKVxuICAgICAgLmpvaW4oJyAnKTtcblxuICByZXR1cm4gKFxuICAgIDxUeXBlQWhlYWRTZWxlY3RcbiAgICAgIG11bHRpcGxlXG4gICAgICByZW5kZXJUb2tlbj17KG9wdGlvbiwgdG9rZW5Qcm9wcywgaWR4KSA9PiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBpZD17YCR7cHJvcHMuaWQgfHwgJ3NlbGVjdFZhbHVlJ30tJHtvcHRpb24udmFsdWV9YH1cbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9fVxuICAgICAgICAgIGtleT17b3B0aW9uLnZhbHVlfVxuICAgICAgICA+XG4gICAgICAgICAgPE9yZGVyYWJsZVRva2VuXG4gICAgICAgICAgICBkYXRhPXtzZXQob3B0aW9uLCAnaW5kZXgnLCBpZHgpfVxuICAgICAgICAgICAgbW92ZURyYWdnZWRPcHRpb249e21vdmVEcmFnZ2VkT3B0aW9ufVxuICAgICAgICAgICAgey4uLnRva2VuUHJvcHN9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7bmFtZSAmJiA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9e25hbWV9IHZhbHVlPXtvcHRpb24udmFsdWV9IC8+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzZXNXaXRob3V0Rm9ybUNvbnRyb2x9XG4gICAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgICAgc2VsZWN0ZWQ9e2ludGVybmFsVmFsdWV9XG4gICAgICBvbkNoYW5nZT17bmV3VmFsdWUgPT4ge1xuICAgICAgICBzZXRJbnRlcm5hbFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UobmV3VmFsdWUpO1xuICAgICAgfX1cbiAgICAvPlxuICApO1xufTtcblxuT3JkZXJhYmxlU2VsZWN0LnByb3BUeXBlcyA9IHtcbiAgb3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm9iamVjdCkuaXNSZXF1aXJlZCxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBkZWZhdWx0VmFsdWU6IFByb3BUeXBlcy5hcnJheSxcbiAgdmFsdWU6IFByb3BUeXBlcy5hcnJheSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuT3JkZXJhYmxlU2VsZWN0LmRlZmF1bHRQcm9wcyA9IHtcbiAgb25DaGFuZ2U6IG5vb3AsXG4gIGRlZmF1bHRWYWx1ZTogW10sXG4gIHZhbHVlOiBudWxsLFxuICBuYW1lOiBudWxsLFxuICBjbGFzc05hbWU6ICcnLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgT3JkZXJhYmxlU2VsZWN0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL09yZGVyYWJsZVNlbGVjdC9PcmRlcmFibGVTZWxlY3QuanMiLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IHVzZUludGVybmFsVmFsdWUgPSAodmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgY29uc3QgZGVmYXVsdFZhbCA9IHZhbHVlXG4gICAgLm1hcCh2ID0+IG9wdGlvbnMuZmluZChvcHQgPT4gb3B0LnZhbHVlID09PSB2KSlcbiAgICAuZmlsdGVyKHYgPT4gISF2KTtcbiAgcmV0dXJuIHVzZVN0YXRlKGRlZmF1bHRWYWwpO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9PcmRlcmFibGVTZWxlY3QvT3JkZXJhYmxlU2VsZWN0SG9va3MuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IFR5cGVBaGVhZFNlbGVjdCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuXG5pbXBvcnQgeyBvcmRlcmFibGUgfSBmcm9tICcuLi9oZWxwZXJzJztcblxuY29uc3Qgb3JkZXJDb25maWcgPSB7XG4gIHR5cGU6ICdtdWx0aVZhbHVlJyxcbiAgZ2V0SXRlbTogcHJvcHMgPT4gKHsgdmFsdWU6IHByb3BzLmRhdGEudmFsdWUgfSksXG4gIGdldEluZGV4OiBwcm9wcyA9PiBwcm9wcy5kYXRhLmluZGV4LFxuICBnZXRNb3ZlRm5jOiBwcm9wcyA9PiBwcm9wcy5tb3ZlRHJhZ2dlZE9wdGlvbixcbn07XG5cbmNvbnN0IE9yZGVyYWJsZVRva2VuID0gKHtcbiAgaXNEcmFnZ2luZyxcbiAgbW92ZURyYWdnZWRPcHRpb24sXG4gIGRhdGEsXG4gIGRpc2FibGVkLFxuICBvblJlbW92ZSxcbiAgdGFiSW5kZXgsXG4gIGxhYmVsS2V5LFxufSkgPT4gKFxuICA8VHlwZUFoZWFkU2VsZWN0LlRva2VuXG4gICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgIG9uUmVtb3ZlPXtvblJlbW92ZX1cbiAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gID5cbiAgICB7ZGF0YVtsYWJlbEtleV19XG4gIDwvVHlwZUFoZWFkU2VsZWN0LlRva2VuPlxuKTtcblxuT3JkZXJhYmxlVG9rZW4ucHJvcFR5cGVzID0ge1xuICBpc0RyYWdnaW5nOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICBtb3ZlRHJhZ2dlZE9wdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZGF0YTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBsYWJlbEtleTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIHRhYkluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICBvblJlbW92ZTogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5PcmRlcmFibGVUb2tlbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgdGFiSW5kZXg6IC0xLFxuICBvblJlbW92ZTogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgb3JkZXJhYmxlKE9yZGVyYWJsZVRva2VuLCBvcmRlckNvbmZpZyk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vZm9ybXMvT3JkZXJhYmxlU2VsZWN0L2NvbXBvbmVudHMvT3JkZXJhYmxlVG9rZW4uanMiLCJpbXBvcnQgTWVtb3J5QWxsb2NhdGlvbklucHV0IGZyb20gJy4vTWVtb3J5QWxsb2NhdGlvbklucHV0JztcblxuZXhwb3J0IGRlZmF1bHQgTWVtb3J5QWxsb2NhdGlvbklucHV0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTWVtb3J5QWxsb2NhdGlvbklucHV0L2luZGV4LmpzIiwiaW1wb3J0IFJDSW5wdXROdW1iZXIgZnJvbSAncmMtaW5wdXQtbnVtYmVyJztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHNwcmludGYsIHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IE1CX0ZPUk1BVCwgTUVHQUJZVEVTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0ICcuLi9jb21tb24vZm9ybXMvTnVtZXJpY0lucHV0LnNjc3MnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuY29uc3QgTWVtb3J5QWxsb2NhdGlvbklucHV0ID0gKHtcbiAgdmFsdWUsXG4gIG9uQ2hhbmdlLFxuICBtYXhWYWx1ZSxcbiAgbWluVmFsdWUsXG4gIHJlY29tbWVuZGVkTWF4VmFsdWUsXG4gIG5hbWUsXG4gIGlkLFxuICBkaXNhYmxlZCxcbiAgc2V0RXJyb3IsXG4gIHNldFdhcm5pbmcsXG59KSA9PiB7XG4gIGNvbnN0IFt2YWx1ZU1CLCBzZXRWYWx1ZU1CXSA9IHVzZVN0YXRlKHZhbHVlIC8gTUVHQUJZVEVTKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlQnl0ZXMgPSB2YWx1ZU1CICogTUVHQUJZVEVTO1xuICAgIGlmIChtYXhWYWx1ZSAmJiB2YWx1ZUJ5dGVzID4gbWF4VmFsdWUpIHtcbiAgICAgIHNldFdhcm5pbmcobnVsbCk7XG4gICAgICBzZXRFcnJvcihcbiAgICAgICAgc3ByaW50ZihcbiAgICAgICAgICBfXygnU3BlY2lmaWVkIHZhbHVlIGlzIGhpZ2hlciB0aGFuIG1heGltdW0gdmFsdWUgJXMnKSxcbiAgICAgICAgICBgJHttYXhWYWx1ZSAvIE1FR0FCWVRFU30gJHtNQl9GT1JNQVR9YFxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAocmVjb21tZW5kZWRNYXhWYWx1ZSAmJiB2YWx1ZUJ5dGVzID4gcmVjb21tZW5kZWRNYXhWYWx1ZSkge1xuICAgICAgc2V0RXJyb3IobnVsbCk7XG4gICAgICBzZXRXYXJuaW5nKFxuICAgICAgICBzcHJpbnRmKFxuICAgICAgICAgIF9fKCdTcGVjaWZpZWQgdmFsdWUgaXMgaGlnaGVyIHRoYW4gcmVjb21tZW5kZWQgbWF4aW11bSAlcycpLFxuICAgICAgICAgIGAke3JlY29tbWVuZGVkTWF4VmFsdWUgLyBNRUdBQllURVN9ICR7TUJfRk9STUFUfWBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0V2FybmluZyhudWxsKTtcbiAgICB9XG4gIH0sIFt2YWx1ZU1CLCByZWNvbW1lbmRlZE1heFZhbHVlLCBtYXhWYWx1ZSwgc2V0RXJyb3IsIHNldFdhcm5pbmddKTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB2ID0+IHtcbiAgICBpZiAodiA9PT0gdmFsdWVNQiArIDEpIHtcbiAgICAgIHYgPSB2YWx1ZU1CICogMjtcbiAgICB9IGVsc2UgaWYgKHYgPT09IHZhbHVlTUIgLSAxKSB7XG4gICAgICB2ID0gTWF0aC5mbG9vcih2YWx1ZU1CIC8gMik7XG4gICAgfVxuICAgIHNldFZhbHVlTUIodik7XG4gICAgb25DaGFuZ2UodiAqIE1FR0FCWVRFUyk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFJDSW5wdXROdW1iZXJcbiAgICAgICAgdmFsdWU9e3ZhbHVlTUJ9XG4gICAgICAgIGlkPXtpZH1cbiAgICAgICAgZm9ybWF0dGVyPXt2ID0+IGAke3Z9ICR7TUJfRk9STUFUfWB9XG4gICAgICAgIHBhcnNlcj17c3RyID0+IHN0ci5yZXBsYWNlKC9cXEQvZywgJycpfVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIG1pbj17bWluVmFsdWUgJiYgbWluVmFsdWUgLyBNRUdBQllURVN9XG4gICAgICAgIHN0ZXA9ezF9XG4gICAgICAgIHByZWNpc2lvbj17MH1cbiAgICAgICAgbmFtZT1cIlwiXG4gICAgICAgIHByZWZpeENscz1cImZvcmVtYW4tbnVtZXJpYy1pbnB1dFwiXG4gICAgICAvPlxuICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPXtuYW1lfSB2YWx1ZT17dmFsdWVNQiAqIE1FR0FCWVRFU30gLz5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbk1lbW9yeUFsbG9jYXRpb25JbnB1dC5wcm9wVHlwZXMgPSB7XG4gIC8qKiBTZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIGlucHV0ICovXG4gIHZhbHVlOiBQcm9wVHlwZXMubnVtYmVyLFxuICAvKiogU2V0IHRoZSByZWNvbW1lbmRlZCBtYXggdmFsdWUgb2YgdGhlIG51bWVyaWMgaW5wdXQgKi9cbiAgcmVjb21tZW5kZWRNYXhWYWx1ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqIFNldCB0aGUgbWF4IHZhbHVlIG9mIHRoZSBudW1lcmljIGlucHV0ICovXG4gIG1heFZhbHVlOiBQcm9wVHlwZXMubnVtYmVyLFxuICAvKiogU2V0IHRoZSBtaW4gdmFsdWUgb2YgdGhlIG51bWVyaWMgaW5wdXQgKi9cbiAgbWluVmFsdWU6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKiBTZXQgdGhlIG9uQ2hhbmdlIGZ1bmN0aW9uIG9mIHRoZSBudW1lcmljIGlucHV0ICovXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIFNldCB0aGUgbmFtZSBvZiB0aGUgaW5wdXQgaG9sZGluZyB0aGUgdmFsdWUgaW4gYnl0ZXMgKi9cbiAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIFNldCB0aGUgaWQgb2YgdGhlIG51bWVyaWMgaW5wdXQgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBTZXQgd2hldGhlciB0aGUgbnVtZXJpYyBpbnB1dCB3aWxsIGJlIGRpc2FibGVkIG9yIG5vdCAqL1xuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKiBDb21wb25lbnQgcGFzc2VzIHRoZSB2YWxpZGF0aW9uIGVycm9yIHRvIHRoaXMgZnVuY3Rpb24gKi9cbiAgc2V0RXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogQ29tcG9uZW50IHBhc3NlcyB0aGUgdmFsaWRhdGlvbiB3YXJuaW5nIHRvIHRoaXMgZnVuY3Rpb24gKi9cbiAgc2V0V2FybmluZzogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5NZW1vcnlBbGxvY2F0aW9uSW5wdXQuZGVmYXVsdFByb3BzID0ge1xuICB2YWx1ZTogMjA0OCAqIE1FR0FCWVRFUyxcbiAgb25DaGFuZ2U6IG5vb3AsXG4gIHJlY29tbWVuZGVkTWF4VmFsdWU6IG51bGwsXG4gIG1heFZhbHVlOiBudWxsLFxuICBtaW5WYWx1ZTogMSxcbiAgbmFtZTogJycsXG4gIGlkOiAnJyxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBzZXRFcnJvcjogbm9vcCxcbiAgc2V0V2FybmluZzogbm9vcCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lbW9yeUFsbG9jYXRpb25JbnB1dDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL01lbW9yeUFsbG9jYXRpb25JbnB1dC9NZW1vcnlBbGxvY2F0aW9uSW5wdXQuanMiLCJleHBvcnQgY29uc3QgTUJfRk9STUFUID0gJ01CJztcblxuZXhwb3J0IGNvbnN0IE1FR0FCWVRFUyA9IDEwNDg1NzY7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9NZW1vcnlBbGxvY2F0aW9uSW5wdXQvY29uc3RhbnRzLmpzIiwiaW1wb3J0IENvdW50ZXJJbnB1dCBmcm9tICcuL0NvdW50ZXJJbnB1dCc7XG5cbmV4cG9ydCBkZWZhdWx0IENvdW50ZXJJbnB1dDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9Db3VudGVySW5wdXQvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSQ0lucHV0TnVtYmVyIGZyb20gJ3JjLWlucHV0LW51bWJlcic7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuY29uc3QgQ291bnRlcklucHV0ID0gKHtcbiAgaWQsXG4gIG5hbWUsXG4gIHZhbHVlLFxuICBkaXNhYmxlZCxcbiAgc3RlcCxcbiAgbWluLFxuICBtYXgsXG4gIHJlY29tbWVuZGVkTWF4VmFsdWUsXG4gIG9uQ2hhbmdlLFxuICBzZXRFcnJvcixcbiAgc2V0V2FybmluZyxcbn0pID0+IHtcbiAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlU3RhdGUodmFsdWUpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYXggJiYgaW5uZXJWYWx1ZSA+IG1heCkge1xuICAgICAgc2V0V2FybmluZyhudWxsKTtcbiAgICAgIHNldEVycm9yKF9fKCdTcGVjaWZpZWQgdmFsdWUgaXMgaGlnaGVyIHRoYW4gbWF4aW11bSB2YWx1ZScpKTtcbiAgICB9IGVsc2UgaWYgKHJlY29tbWVuZGVkTWF4VmFsdWUgJiYgaW5uZXJWYWx1ZSA+IHJlY29tbWVuZGVkTWF4VmFsdWUpIHtcbiAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgc2V0V2FybmluZyhfXygnU3BlY2lmaWVkIHZhbHVlIGlzIGhpZ2hlciB0aGFuIHJlY29tbWVuZGVkIG1heGltdW0nKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgc2V0V2FybmluZyhudWxsKTtcbiAgICB9XG4gIH0sIFtyZWNvbW1lbmRlZE1heFZhbHVlLCBtYXgsIGlubmVyVmFsdWVdKTtcblxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB2ID0+IHtcbiAgICBzZXRJbm5lclZhbHVlKHYpO1xuICAgIG9uQ2hhbmdlKHYpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFJDSW5wdXROdW1iZXJcbiAgICAgIHZhbHVlPXtpbm5lclZhbHVlfVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGlkPXtpZH1cbiAgICAgIG1pbj17bWlufVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgIHN0ZXA9e3N0ZXB9XG4gICAgICBwcmVmaXhDbHM9XCJmb3JlbWFuLW51bWVyaWMtaW5wdXRcIlxuICAgIC8+XG4gICk7XG59O1xuXG5Db3VudGVySW5wdXQucHJvcFR5cGVzID0ge1xuICAvKiogU2V0IHRoZSBuYW1lIG9mIHRoZSBudW1lcmljIGlucHV0ICovXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBTZXQgdGhlIGlkIG9mIHRoZSBudW1lcmljIGlucHV0ICovXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogU2V0IHRoZSByZWNvbW1lbmRlZCBtYXggdmFsdWUgb2YgdGhlIG51bWVyaWMgaW5wdXQgKi9cbiAgcmVjb21tZW5kZWRNYXhWYWx1ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqIFNldCB0aGUgbWF4IHZhbHVlIG9mIHRoZSBudW1lcmljIGlucHV0ICovXG4gIG1heDogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqIFNldCB0aGUgbWluIHZhbHVlIG9mIHRoZSBudW1lcmljIGlucHV0ICovXG4gIG1pbjogUHJvcFR5cGVzLm51bWJlcixcbiAgLyoqIFNldCB3aGV0aGVyIHRoZSBudW1lcmljIGlucHV0IHdpbGwgYmUgZGlzYWJsZWQgb3Igbm90ICovXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIFNldCB0aGUgb25DaGFuZ2UgZnVuY3Rpb24gb2YgdGhlIG51bWVyaWMgaW5wdXQgKi9cbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogU2V0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBudW1lcmljIGlucHV0ICovXG4gIHZhbHVlOiBQcm9wVHlwZXMubnVtYmVyLFxuICAvKiogU2V0IHRoZSBzdGVwLCB0aGUgY291bnRlciB3aWxsIGluY3JlYXNlIGFuZCBkZWNyZWFzZSBieSAqL1xuICBzdGVwOiBQcm9wVHlwZXMubnVtYmVyLFxuICAvKiogQ29tcG9uZW50IHBhc3NlcyB0aGUgdmFsaWRhdGlvbiBlcnJvciB0byB0aGlzIGZ1bmN0aW9uICovXG4gIHNldEVycm9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIENvbXBvbmVudCBwYXNzZXMgdGhlIHZhbGlkYXRpb24gd2FybmluZyB0byB0aGlzIGZ1bmN0aW9uICovXG4gIHNldFdhcm5pbmc6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuQ291bnRlcklucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgbmFtZTogJycsXG4gIGlkOiAnJyxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICB2YWx1ZTogMSxcbiAgc3RlcDogMSxcbiAgbWluOiAxLFxuICBtYXg6IG51bGwsXG4gIHJlY29tbWVuZGVkTWF4VmFsdWU6IG51bGwsXG4gIG9uQ2hhbmdlOiBub29wLFxuICBzZXRFcnJvcjogbm9vcCxcbiAgc2V0V2FybmluZzogbm9vcCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvdW50ZXJJbnB1dDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9mb3Jtcy9Db3VudGVySW5wdXQvQ291bnRlcklucHV0LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge1xuICBGb3JtQ29udHJvbCxcbiAgSW5wdXRHcm91cCxcbiAgSWNvbixcbiAgT3ZlcmxheVRyaWdnZXIsXG4gIFBvcG92ZXIsXG59IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IFRpbWVJbnB1dCBmcm9tICcuL1RpbWVDb21wb25lbnRzL1RpbWVJbnB1dCc7XG5cbmNsYXNzIFRpbWVQaWNrZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBnZXREYXRlRnJvbVRpbWUgPSB0aW1lID0+IHtcbiAgICBpZiAoRGF0ZS5wYXJzZSh0aW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKHRpbWUpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUoYDEvMS8xICR7dGltZX1gKTtcbiAgfTtcbiAgc3RhdGUgPSB7XG4gICAgdmFsdWU6IHRoaXMuZ2V0RGF0ZUZyb21UaW1lKHRoaXMucHJvcHMudmFsdWUpLFxuICB9O1xuICBmb3JtYXREYXRlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgbG9jYWxlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJyB9O1xuICAgIHJldHVybiB2YWx1ZS50b0xvY2FsZVN0cmluZyhsb2NhbGUsIG9wdGlvbnMpO1xuICB9O1xuICBzZXRTZWxlY3RlZCA9IGRhdGUgPT4ge1xuICAgIGlmIChEYXRlLnBhcnNlKGRhdGUpKSB7XG4gICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWU6IG5ld0RhdGUgfSk7XG4gICAgfSBlbHNlIGlmIChEYXRlLnBhcnNlKGAxLzEvMSAke2RhdGV9YCkpIHtcbiAgICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZShgMS8xLzEgJHtkYXRlfWApO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiBuZXdEYXRlIH0pO1xuICAgIH1cbiAgfTtcbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgbG9jYWxlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHBvcG92ZXIgPSAoXG4gICAgICA8UG9wb3ZlclxuICAgICAgICBpZD1cInBvcG92ZXItZGF0ZS1waWNrZXJcIlxuICAgICAgICBjbGFzc05hbWU9XCJib290c3RyYXAtZGF0ZXRpbWVwaWNrZXItd2lkZ2V0IGRyb3Bkb3duLW1lbnVcIlxuICAgICAgPlxuICAgICAgICA8dWwgY2xhc3NOYW1lPVwibGlzdC11bnN0eWxlZFwiPlxuICAgICAgICAgIDxsaSBjbGFzc05hbWU9XCJwaWNrZXItc3dpdGNoIGFjY29yZGlvbi10b2dnbGVcIj5cbiAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJ0YWJsZS1jb25kZW5zZWRcIj5cbiAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIDx0ciAvPlxuICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxUaW1lSW5wdXRcbiAgICAgICAgICAgICAgdGltZT17dGhpcy5zdGF0ZS52YWx1ZX1cbiAgICAgICAgICAgICAgc2V0U2VsZWN0ZWQ9e3RoaXMuc2V0U2VsZWN0ZWR9XG4gICAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9Qb3BvdmVyPlxuICAgICk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxPdmVybGF5VHJpZ2dlclxuICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXG4gICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICBvdmVybGF5PXtwb3BvdmVyfVxuICAgICAgICAgIHJvb3RDbG9zZVxuICAgICAgICA+XG4gICAgICAgICAgPElucHV0R3JvdXAgY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAgZGF0ZS10aW1lLXBpY2tlci1wZlwiPlxuICAgICAgICAgICAgPEZvcm1Db250cm9sXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJkYXRlLXRpbWUtcGlja2VyLWlucHV0XCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5mb3JtYXREYXRlKCl9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHRoaXMuc2V0U2VsZWN0ZWQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxJbnB1dEdyb3VwLkFkZG9uIGNsYXNzTmFtZT1cImRhdGUtcGlja2VyLXBmXCI+XG4gICAgICAgICAgICAgIDxJY29uIHR5cGU9XCJmYVwiIG5hbWU9XCJjbG9jay1vXCIgLz5cbiAgICAgICAgICAgIDwvSW5wdXRHcm91cC5BZGRvbj5cbiAgICAgICAgICA8L0lucHV0R3JvdXA+XG4gICAgICAgIDwvT3ZlcmxheVRyaWdnZXI+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cblRpbWVQaWNrZXIucHJvcFR5cGVzID0ge1xuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmluc3RhbmNlT2YoRGF0ZSksIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgbG9jYWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblRpbWVQaWNrZXIuZGVmYXVsdFByb3BzID0ge1xuICB2YWx1ZTogbmV3IERhdGUoKSxcbiAgbG9jYWxlOiAnZW4tVVMnLFxufTtcbmV4cG9ydCBkZWZhdWx0IFRpbWVQaWNrZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vRGF0ZVRpbWVQaWNrZXIvVGltZVBpY2tlci5qcyIsImltcG9ydCB7IHBpY2sgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEFsZXJ0LCBCdXR0b24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgQ29udHJvbGxlciBmcm9tICcuL2NvbnRyb2xsZXIvJztcbmltcG9ydCAqIGFzIFZtV2FyZUFjdGlvbnMgZnJvbSAnLi4vLi4vLi4vLi4vcmVkdXgvYWN0aW9ucy9ob3N0cy9zdG9yYWdlL3Ztd2FyZSc7XG5pbXBvcnQgeyBNYXhEaXNrc1BlckNvbnRyb2xsZXIgfSBmcm9tICcuL1N0b3JhZ2VDb250YWluZXIuY29uc3RzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0IEFsZXJ0Qm9keSBmcm9tICcuLi8uLi8uLi9jb21tb24vQWxlcnQvQWxlcnRCb2R5JztcbmltcG9ydCAnLi9TdG9yYWdlQ29udGFpbmVyLnNjc3MnO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3RhbnRzJztcblxuY29uc3QgZmlsdGVyS2V5RnJvbVZvbHVtZSA9IHZvbHVtZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBjb25zdCB7IGtleSwgLi4udm9sdW1lV2l0aG91dEtleSB9ID0gdm9sdW1lO1xuICByZXR1cm4gdm9sdW1lV2l0aG91dEtleTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb250cm9sbGVyc1RvSnNvblN0cmluZyA9IChjb250cm9sbGVycywgdm9sdW1lcykgPT5cbiAgSlNPTi5zdHJpbmdpZnkoe1xuICAgIHNjc2lDb250cm9sbGVyczogY29udHJvbGxlcnMsXG4gICAgdm9sdW1lczogdm9sdW1lcy5tYXAodiA9PiBmaWx0ZXJLZXlGcm9tVm9sdW1lKHYpKSxcbiAgfSk7XG5cbmNsYXNzIFN0b3JhZ2VDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCB7XG4gICAgICBkYXRhOiB7IGNvbmZpZywgY29udHJvbGxlcnMsIHZvbHVtZXMsIGNsdXN0ZXIgfSxcbiAgICAgIGluaXRDb250cm9sbGVyLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaW5pdENvbnRyb2xsZXIoY29uZmlnLCBjbHVzdGVyLCBjb250cm9sbGVycywgdm9sdW1lcyk7XG4gIH1cblxuICBnZXREYXRhc3RvcmVzU3RhdHVzKCkge1xuICAgIGNvbnN0IHsgZGF0YXN0b3Jlc0xvYWRpbmcsIGRhdGFzdG9yZXNFcnJvciB9ID0gdGhpcy5wcm9wcztcbiAgICBpZiAoZGF0YXN0b3Jlc0Vycm9yKSB7XG4gICAgICByZXR1cm4gU1RBVFVTLkVSUk9SO1xuICAgIH1cbiAgICBpZiAoZGF0YXN0b3Jlc0xvYWRpbmcpIHtcbiAgICAgIHJldHVybiBTVEFUVVMuUEVORElORztcbiAgICB9XG4gICAgcmV0dXJuIFNUQVRVUy5SRVNPTFZFRDtcbiAgfVxuXG4gIGdldFN0b3JhZ2VQb2RzU3RhdHVzKCkge1xuICAgIGNvbnN0IHsgc3RvcmFnZVBvZHNMb2FkaW5nLCBzdG9yYWdlUG9kc0Vycm9yIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmIChzdG9yYWdlUG9kc0Vycm9yKSB7XG4gICAgICByZXR1cm4gU1RBVFVTLkVSUk9SO1xuICAgIH1cbiAgICBpZiAoc3RvcmFnZVBvZHNMb2FkaW5nKSB7XG4gICAgICByZXR1cm4gU1RBVFVTLlBFTkRJTkc7XG4gICAgfVxuICAgIHJldHVybiBTVEFUVVMuUkVTT0xWRUQ7XG4gIH1cblxuICByZW5kZXJDb250cm9sbGVycyhjb250cm9sbGVycykge1xuICAgIGNvbnN0IHtcbiAgICAgIGFkZERpc2ssXG4gICAgICB1cGRhdGVDb250cm9sbGVyLFxuICAgICAgcmVtb3ZlRGlzayxcbiAgICAgIHVwZGF0ZURpc2ssXG4gICAgICByZW1vdmVDb250cm9sbGVyLFxuICAgICAgY29uZmlnLFxuICAgICAgdm9sdW1lcyxcbiAgICAgIGRhdGFzdG9yZXMsXG4gICAgICBkYXRhc3RvcmVzRXJyb3IsXG4gICAgICBzdG9yYWdlUG9kcyxcbiAgICAgIHN0b3JhZ2VQb2RzRXJyb3IsXG4gICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gY29udHJvbGxlcnMubWFwKChjb250cm9sbGVyLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXJWb2x1bWVzID0gdm9sdW1lcy5maWx0ZXIoXG4gICAgICAgIHYgPT4gdi5jb250cm9sbGVyS2V5ID09PSBjb250cm9sbGVyLmtleVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENvbnRyb2xsZXJcbiAgICAgICAgICBrZXk9e2NvbnRyb2xsZXIua2V5fVxuICAgICAgICAgIHJlbW92ZUNvbnRyb2xsZXI9eygpID0+IHJlbW92ZUNvbnRyb2xsZXIoY29udHJvbGxlci5rZXkpfVxuICAgICAgICAgIGNvbnRyb2xsZXI9e2NvbnRyb2xsZXJ9XG4gICAgICAgICAgY29udHJvbGxlclZvbHVtZXM9e2NvbnRyb2xsZXJWb2x1bWVzfVxuICAgICAgICAgIGFkZERpc2tFbmFibGVkPXtjb250cm9sbGVyVm9sdW1lcy5sZW5ndGggPCBNYXhEaXNrc1BlckNvbnRyb2xsZXJ9XG4gICAgICAgICAgYWRkRGlzaz17KCkgPT4gYWRkRGlzayhjb250cm9sbGVyLmtleSl9XG4gICAgICAgICAgdXBkYXRlRGlzaz17dXBkYXRlRGlza31cbiAgICAgICAgICByZW1vdmVEaXNrPXtyZW1vdmVEaXNrfVxuICAgICAgICAgIHVwZGF0ZUNvbnRyb2xsZXI9e25ld1ZhbHVlcyA9PiB1cGRhdGVDb250cm9sbGVyKGlkeCwgbmV3VmFsdWVzKX1cbiAgICAgICAgICBjb25maWc9e2NvbmZpZ31cbiAgICAgICAgICBkYXRhc3RvcmVzPXtkYXRhc3RvcmVzfVxuICAgICAgICAgIGRhdGFzdG9yZXNFcnJvcj17ZGF0YXN0b3Jlc0Vycm9yfVxuICAgICAgICAgIGRhdGFzdG9yZXNTdGF0dXM9e3RoaXMuZ2V0RGF0YXN0b3Jlc1N0YXR1cygpfVxuICAgICAgICAgIHN0b3JhZ2VQb2RzPXtzdG9yYWdlUG9kc31cbiAgICAgICAgICBzdG9yYWdlUG9kc0Vycm9yPXtzdG9yYWdlUG9kc0Vycm9yfVxuICAgICAgICAgIHN0b3JhZ2VQb2RzU3RhdHVzPXt0aGlzLmdldFN0b3JhZ2VQb2RzU3RhdHVzKCl9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgYWRkQ29udHJvbGxlciwgY29udHJvbGxlcnMsIHZvbHVtZXMsIGNsdXN0ZXIsIGNvbmZpZyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBwYXJhbXNTY29wZSA9IGNvbmZpZyAmJiBjb25maWcucGFyYW1zU2NvcGU7XG4gICAgY29uc3QgZW5hYmxlQWRkQ29udHJvbGxlckJ0biA9XG4gICAgICBjb25maWcgJiYgY29uZmlnLmFkZENvbnRyb2xsZXJFbmFibGVkICYmICFjb25maWcudm1FeGlzdHM7XG5cbiAgICBpZiAoIWNsdXN0ZXIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxBbGVydCB0eXBlPVwiaW5mb1wiPlxuICAgICAgICAgIDxBbGVydEJvZHkgbWVzc2FnZT17X18oJ1BsZWFzZSBzZWxlY3QgYSBjbHVzdGVyJyl9IC8+XG4gICAgICAgIDwvQWxlcnQ+XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdyB2bXdhcmUtc3RvcmFnZS1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdG9yYWdlLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTIgc3RvcmFnZS10aXRsZVwiPntfXygnU3RvcmFnZScpfTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEwIHN0b3JhZ2UtY29udHJvbGxlci1idXR0b25zXCI+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1hZGQtY29udHJvbGxlclwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGFkZENvbnRyb2xsZXIoKX1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFlbmFibGVBZGRDb250cm9sbGVyQnRufVxuICAgICAgICAgICAgICBic1N0eWxlPVwicHJpbWFyeVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtfXygnQWRkIENvbnRyb2xsZXInKX1cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdG9yYWdlLWJvZHlcIj5cbiAgICAgICAgICB7dGhpcy5yZW5kZXJDb250cm9sbGVycyhjb250cm9sbGVycyl9XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB2YWx1ZT17Y29udHJvbGxlcnNUb0pzb25TdHJpbmcoY29udHJvbGxlcnMsIHZvbHVtZXMpfVxuICAgICAgICAgICAgaWQ9XCJzY3NpX2NvbnRyb2xsZXJfaGlkZGVuXCJcbiAgICAgICAgICAgIG5hbWU9e3BhcmFtc1Njb3BlfVxuICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cblN0b3JhZ2VDb250YWluZXIucHJvcFR5cGVzID0ge1xuICBkYXRhOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGNvbmZpZzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIGNvbnRyb2xsZXJzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICB2b2x1bWVzOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCxcbiAgICBjbHVzdGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KS5pc1JlcXVpcmVkLFxuICBjb250cm9sbGVyczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIGNvbmZpZzogUHJvcFR5cGVzLm9iamVjdCxcbiAgdm9sdW1lczogUHJvcFR5cGVzLmFycmF5LFxuICBjbHVzdGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkYXRhc3RvcmVzTG9hZGluZzogUHJvcFR5cGVzLmJvb2wsXG4gIGRhdGFzdG9yZXM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBjYXBhY2l0eTogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIGZyZWVzcGFjZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIHVuY29tbWl0dGVkOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIH0pXG4gICksXG4gIGRhdGFzdG9yZXNFcnJvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3RvcmFnZVBvZHNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgc3RvcmFnZVBvZHM6IFByb3BUeXBlcy5hcnJheU9mKFxuICAgIFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBjYXBhY2l0eTogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIGZyZWVzcGFjZTogUHJvcFR5cGVzLm51bWJlcixcbiAgICB9KVxuICApLFxuICBzdG9yYWdlUG9kc0Vycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhZGRDb250cm9sbGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgYWRkRGlzazogUHJvcFR5cGVzLmZ1bmMsXG4gIHVwZGF0ZUNvbnRyb2xsZXI6IFByb3BUeXBlcy5mdW5jLFxuICByZW1vdmVEaXNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgdXBkYXRlRGlzazogUHJvcFR5cGVzLmZ1bmMsXG4gIHJlbW92ZUNvbnRyb2xsZXI6IFByb3BUeXBlcy5mdW5jLFxuICBpbml0Q29udHJvbGxlcjogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5TdG9yYWdlQ29udGFpbmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY29uZmlnOiB7fSxcbiAgY2x1c3RlcjogJycsXG4gIHZvbHVtZXM6IFtdLFxuICBkYXRhc3RvcmVzTG9hZGluZzogZmFsc2UsXG4gIHN0b3JhZ2VQb2RzTG9hZGluZzogZmFsc2UsXG4gIGRhdGFzdG9yZXM6IFtdLFxuICBzdG9yYWdlUG9kczogW10sXG4gIGRhdGFzdG9yZXNFcnJvcjogdW5kZWZpbmVkLFxuICBzdG9yYWdlUG9kc0Vycm9yOiB1bmRlZmluZWQsXG4gIGFkZENvbnRyb2xsZXI6IG5vb3AsXG4gIGFkZERpc2s6IG5vb3AsXG4gIHVwZGF0ZUNvbnRyb2xsZXI6IG5vb3AsXG4gIHJlbW92ZURpc2s6IG5vb3AsXG4gIHVwZGF0ZURpc2s6IG5vb3AsXG4gIHJlbW92ZUNvbnRyb2xsZXI6IG5vb3AsXG4gIGluaXRDb250cm9sbGVyOiBub29wLFxufTtcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gc3RhdGUgPT5cbiAgcGljayhzdGF0ZS5ob3N0cy5zdG9yYWdlLnZtd2FyZSwgW1xuICAgICdjb250cm9sbGVycycsXG4gICAgJ2NvbmZpZycsXG4gICAgJ2NsdXN0ZXInLFxuICAgICd2b2x1bWVzJyxcbiAgICAnZGF0YXN0b3JlcycsXG4gICAgJ2RhdGFzdG9yZXNMb2FkaW5nJyxcbiAgICAnZGF0YXN0b3Jlc0Vycm9yJyxcbiAgICAnc3RvcmFnZVBvZHMnLFxuICAgICdzdG9yYWdlUG9kc0xvYWRpbmcnLFxuICAgICdzdG9yYWdlUG9kc0Vycm9yJyxcbiAgXSk7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBWbVdhcmVBY3Rpb25zKShTdG9yYWdlQ29udGFpbmVyKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2hvc3RzL3N0b3JhZ2Uvdm13YXJlL2luZGV4LmpzIiwiLyogZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlLCBuby1taXhlZC1vcGVyYXRvcnMsIG5vLXBhcmFtLXJlYXNzaWduICovXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgbnVtYmVyX3RvX2h1bWFuX3NpemUgfSBmcm9tICdudW1iZXJfaGVscGVycyc7XG5cbmltcG9ydCBTZWxlY3QgZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2Zvcm1zL1NlbGVjdCc7XG5cbmltcG9ydCBEaXNrIGZyb20gJy4vZGlzayc7XG5pbXBvcnQge1xuICBzcHJpbnRmLFxuICB0cmFuc2xhdGUgYXMgX18sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3JlYWN0X2FwcC9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuaW1wb3J0ICcuL2NvbnRyb2xsZXIuc2Nzcyc7XG5cbmNvbnN0IENvbnRyb2xsZXIgPSAoe1xuICBhZGREaXNrRW5hYmxlZCxcbiAgYWRkRGlzayxcbiAgcmVtb3ZlRGlzayxcbiAgdXBkYXRlQ29udHJvbGxlcixcbiAgdXBkYXRlRGlzayxcbiAgY29udHJvbGxlcixcbiAgY29udHJvbGxlclZvbHVtZXMsXG4gIHJlbW92ZUNvbnRyb2xsZXIsXG4gIGNvbmZpZyxcbiAgZGF0YXN0b3JlcyxcbiAgZGF0YXN0b3Jlc1N0YXR1cyxcbiAgZGF0YXN0b3Jlc0Vycm9yLFxuICBzdG9yYWdlUG9kcyxcbiAgc3RvcmFnZVBvZHNTdGF0dXMsXG4gIHN0b3JhZ2VQb2RzRXJyb3IsXG59KSA9PiB7XG4gIGNvbnN0IGdldEV2ZW50VmFsdWUgPSBlID0+IHtcbiAgICBpZiAoIWUgfHwgIWUudGFyZ2V0KSB7XG4gICAgICByZXR1cm4gZTtcbiAgICB9XG4gICAgcmV0dXJuIGUudGFyZ2V0LnR5cGUgPT09ICdjaGVja2JveCcgPyBlLnRhcmdldC5jaGVja2VkIDogZS50YXJnZXQudmFsdWU7XG4gIH07XG5cbiAgY29uc3QgX3VwZGF0ZUNvbnRyb2xsZXIgPSAoYXR0cmlidXRlLCBlKSA9PiB7XG4gICAgdXBkYXRlQ29udHJvbGxlcih7IFthdHRyaWJ1dGVdOiBnZXRFdmVudFZhbHVlKGUpIH0pO1xuICB9O1xuXG4gIGNvbnN0IF91cGRhdGVEaXNrID0gKHV1aWQsIGF0dHJpYnV0ZSwgZSkgPT4ge1xuICAgIHVwZGF0ZURpc2sodXVpZCwgeyBbYXR0cmlidXRlXTogZ2V0RXZlbnRWYWx1ZShlKSB9KTtcbiAgfTtcblxuICBjb25zdCBodW1hblNpemUgPSBudW1iZXIgPT4gbnVtYmVyX3RvX2h1bWFuX3NpemUobnVtYmVyLCB7IHByZWNpc2lvbjogMiB9KTtcblxuICBjb25zdCBkYXRhc3RvcmVzU3RhdHMgPSAoKSA9PiB7XG4gICAgaWYgKCFkYXRhc3RvcmVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICByZXR1cm4gZGF0YXN0b3Jlcy5yZWR1Y2UoKG9iaiwgZCkgPT4ge1xuICAgICAgb2JqW2QubmFtZV0gPSBzcHJpbnRmKFxuICAgICAgICBfXygnJShuYW1lKXMgKGZyZWU6ICUoZnJlZSlzLCBwcm92OiAlKHByb3YpcywgdG90YWw6ICUodG90YWwpcyknKSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGQubmFtZSxcbiAgICAgICAgICBmcmVlOiBodW1hblNpemUoZC5mcmVlc3BhY2UpLFxuICAgICAgICAgIHByb3Y6IGh1bWFuU2l6ZShkLmNhcGFjaXR5ICsgKGQudW5jb21taXR0ZWQgfHwgMCkgLSBkLmZyZWVzcGFjZSksXG4gICAgICAgICAgdG90YWw6IGh1bWFuU2l6ZShkLmNhcGFjaXR5KSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSwge30pO1xuICB9O1xuXG4gIGNvbnN0IHN0b3JhZ2VQb2RzU3RhdHMgPSAoKSA9PiB7XG4gICAgaWYgKCFzdG9yYWdlUG9kcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgcmV0dXJuIHN0b3JhZ2VQb2RzLnJlZHVjZSgob2JqLCBzKSA9PiB7XG4gICAgICBvYmpbcy5uYW1lXSA9IHNwcmludGYoXG4gICAgICAgIF9fKCclKG5hbWUpcyAoZnJlZTogJShmcmVlKXMsIHByb3Y6ICUocHJvdilzLCB0b3RhbDogJSh0b3RhbClzKScpLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogcy5uYW1lLFxuICAgICAgICAgIGZyZWU6IGh1bWFuU2l6ZShzLmZyZWVzcGFjZSksXG4gICAgICAgICAgcHJvdjogaHVtYW5TaXplKHMuY2FwYWNpdHkgLSBzLmZyZWVzcGFjZSksXG4gICAgICAgICAgdG90YWw6IGh1bWFuU2l6ZShzLmNhcGFjaXR5KSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSwge30pO1xuICB9O1xuXG4gIGNvbnN0IGRpc2tzID0gKCkgPT5cbiAgICBjb250cm9sbGVyVm9sdW1lcy5tYXAoZGlzayA9PiAoXG4gICAgICA8RGlza1xuICAgICAgICBrZXk9e2Rpc2sua2V5fVxuICAgICAgICBpZD17ZGlzay5rZXl9XG4gICAgICAgIHVwZGF0ZURpc2s9eyhhdHRyaWJ1dGUsIGUpID0+IF91cGRhdGVEaXNrKGRpc2sua2V5LCBhdHRyaWJ1dGUsIGUpfVxuICAgICAgICByZW1vdmVEaXNrPXsoKSA9PiByZW1vdmVEaXNrKGRpc2sua2V5KX1cbiAgICAgICAgY29uZmlnPXtjb25maWd9XG4gICAgICAgIGRhdGFzdG9yZXM9e2RhdGFzdG9yZXNTdGF0cygpfVxuICAgICAgICBkYXRhc3RvcmVzU3RhdHVzPXtkYXRhc3RvcmVzU3RhdHVzfVxuICAgICAgICBkYXRhc3RvcmVzRXJyb3I9e2RhdGFzdG9yZXNFcnJvcn1cbiAgICAgICAgc3RvcmFnZVBvZHM9e3N0b3JhZ2VQb2RzU3RhdHMoKX1cbiAgICAgICAgc3RvcmFnZVBvZHNTdGF0dXM9e3N0b3JhZ2VQb2RzU3RhdHVzfVxuICAgICAgICBzdG9yYWdlUG9kc0Vycm9yPXtzdG9yYWdlUG9kc0Vycm9yfVxuICAgICAgICB7Li4uZGlza31cbiAgICAgIC8+XG4gICAgKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRyb2xsZXItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRyb2xsZXItaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udHJvbC1sYWJlbCBjb2wtbWQtMiBjb250cm9sbGVyLXNlbGVjdGVkLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxsYWJlbD57X18oJ0NyZWF0ZSBTQ1NJIGNvbnRyb2xsZXInKX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250cm9sbGVyLXR5cGUtY29udGFpbmVyIGNvbC1tZC00XCI+XG4gICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgdmFsdWU9e2NvbnRyb2xsZXIudHlwZX1cbiAgICAgICAgICAgIGRpc2FibGVkPXtjb25maWcudm1FeGlzdHN9XG4gICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBfdXBkYXRlQ29udHJvbGxlcigndHlwZScsIGUpfVxuICAgICAgICAgICAgb3B0aW9ucz17Y29uZmlnLmNvbnRyb2xsZXJUeXBlc31cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1hZGQtZGlza1wiXG4gICAgICAgICAgICBkaXNhYmxlZD17IWFkZERpc2tFbmFibGVkIHx8IGNvbmZpZy52bUV4aXN0c31cbiAgICAgICAgICAgIG9uQ2xpY2s9e2FkZERpc2t9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge19fKCdBZGQgdm9sdW1lJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlbGV0ZS1jb250cm9sbGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0bi1yZW1vdmUtY29udHJvbGxlclwiXG4gICAgICAgICAgICBvbkNsaWNrPXtyZW1vdmVDb250cm9sbGVyfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2NvbmZpZy52bUV4aXN0c31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7X18oJ0RlbGV0ZSBDb250cm9sbGVyJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRpc2tzLWNvbnRhaW5lclwiPntkaXNrcygpfTwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuQ29udHJvbGxlci5wcm9wVHlwZXMgPSB7XG4gIGNvbmZpZzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjb250cm9sbGVyOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGFkZERpc2tFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgY29udHJvbGxlclZvbHVtZXM6IFByb3BUeXBlcy5hcnJheSxcbiAgZGF0YXN0b3JlczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLmV4YWN0KHtcbiAgICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGNhcGFjaXR5OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgZnJlZXNwYWNlOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgdW5jb21taXR0ZWQ6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgfSlcbiAgKSxcbiAgZGF0YXN0b3Jlc1N0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGF0YXN0b3Jlc0Vycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdG9yYWdlUG9kczogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgUHJvcFR5cGVzLmV4YWN0KHtcbiAgICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgbmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIGNhcGFjaXR5OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgZnJlZXNwYWNlOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIH0pXG4gICksXG4gIHN0b3JhZ2VQb2RzU3RhdHVzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdG9yYWdlUG9kc0Vycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBhZGREaXNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgcmVtb3ZlRGlzazogUHJvcFR5cGVzLmZ1bmMsXG4gIHVwZGF0ZUNvbnRyb2xsZXI6IFByb3BUeXBlcy5mdW5jLFxuICB1cGRhdGVEaXNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgcmVtb3ZlQ29udHJvbGxlcjogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5Db250cm9sbGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWRkRGlza0VuYWJsZWQ6IGZhbHNlLFxuICBjb250cm9sbGVyVm9sdW1lczogW10sXG4gIGRhdGFzdG9yZXM6IFtdLFxuICBkYXRhc3RvcmVzU3RhdHVzOiB1bmRlZmluZWQsXG4gIGRhdGFzdG9yZXNFcnJvcjogdW5kZWZpbmVkLFxuICBzdG9yYWdlUG9kczogW10sXG4gIHN0b3JhZ2VQb2RzU3RhdHVzOiB1bmRlZmluZWQsXG4gIHN0b3JhZ2VQb2RzRXJyb3I6IHVuZGVmaW5lZCxcbiAgYWRkRGlzazogbm9vcCxcbiAgcmVtb3ZlRGlzazogbm9vcCxcbiAgdXBkYXRlQ29udHJvbGxlcjogbm9vcCxcbiAgdXBkYXRlRGlzazogbm9vcCxcbiAgcmVtb3ZlQ29udHJvbGxlcjogbm9vcCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbnRyb2xsZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9jb250cm9sbGVyL2luZGV4LmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19OVU1CRVJfSEVMUEVSU19fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIFwiX19GT1JFTUFOX1ZFTkRPUl9fTlVNQkVSX0hFTFBFUlNfX1wiXG4vLyBtb2R1bGUgaWQgPSA1MzFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgU2VsZWN0IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9TZWxlY3QnO1xuaW1wb3J0IENoZWNrYm94IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9DaGVja2JveCc7XG5pbXBvcnQgTnVtZXJpY0lucHV0IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9OdW1lcmljSW5wdXQnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vcmVhY3RfYXBwL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgJy4vZGlzay5zY3NzJztcblxuY29uc3QgRGlzayA9ICh7XG4gIHJlbW92ZURpc2ssXG4gIHVwZGF0ZURpc2ssXG4gIG5hbWUsXG4gIGNvbmZpZzogeyBkaXNrTW9kZVR5cGVzLCB2bUV4aXN0cyB9LFxuICBzdG9yYWdlUG9kLFxuICBkYXRhc3RvcmUsXG4gIHNpemVHYixcbiAgdGhpbixcbiAgZWFnZXJaZXJvLFxuICBtb2RlLFxuICBkYXRhc3RvcmVzLFxuICBkYXRhc3RvcmVzU3RhdHVzLFxuICBkYXRhc3RvcmVzRXJyb3IsXG4gIHN0b3JhZ2VQb2RzLFxuICBzdG9yYWdlUG9kc1N0YXR1cyxcbiAgc3RvcmFnZVBvZHNFcnJvcixcbn0pID0+IHtcbiAgY29uc3QgdXBkYXRlU3RvcmFnZVBvZCA9IG5ld1ZhbHVlcyA9PiB7XG4gICAgdXBkYXRlRGlzaygnc3RvcmFnZVBvZCcsIG5ld1ZhbHVlcyk7XG4gICAgdXBkYXRlRGlzaygnZGF0YXN0b3JlJywgeyB0YXJnZXQ6IHsgdmFsdWU6IG51bGwgfSB9KTtcbiAgfTtcbiAgY29uc3QgdXBkYXRlRGF0YXN0b3JlID0gbmV3VmFsdWVzID0+IHtcbiAgICB1cGRhdGVEaXNrKCdkYXRhc3RvcmUnLCBuZXdWYWx1ZXMpO1xuICAgIHVwZGF0ZURpc2soJ3N0b3JhZ2VQb2QnLCB7IHRhcmdldDogeyB2YWx1ZTogbnVsbCB9IH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJkaXNrLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJjb2wtbWQtMiBjb250cm9sLWxhYmVsXCI+e19fKCdEaXNrIG5hbWUnKX08L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbC1tZC00XCI+e25hbWV9PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTJcIj5cbiAgICAgICAgICB7IXZtRXhpc3RzICYmIChcbiAgICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPVwiY2xvc2VcIiBvbkNsaWNrPXtyZW1vdmVEaXNrfT5cbiAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7IShkYXRhc3RvcmUgJiYgZGF0YXN0b3JlLmxlbmd0aCkgJiYgKFxuICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgbGFiZWw9e19fKCdTdG9yYWdlIFBvZCcpfVxuICAgICAgICAgIHZhbHVlPXtzdG9yYWdlUG9kfVxuICAgICAgICAgIGRpc2FibGVkPXt2bUV4aXN0c31cbiAgICAgICAgICBvbkNoYW5nZT17bmV3VmFsdWVzID0+IHVwZGF0ZVN0b3JhZ2VQb2QobmV3VmFsdWVzKX1cbiAgICAgICAgICBvcHRpb25zPXtzdG9yYWdlUG9kc31cbiAgICAgICAgICBhbGxvd0NsZWFyXG4gICAgICAgICAga2V5PVwic3RvcmFnZVBvZHNTZWxlY3RcIlxuICAgICAgICAgIHN0YXR1cz17c3RvcmFnZVBvZHNTdGF0dXN9XG4gICAgICAgICAgZXJyb3JNZXNzYWdlPXtzdG9yYWdlUG9kc0Vycm9yfVxuICAgICAgICAgIGNsYXNzTmFtZT1cInN0b3JhZ2UtcG9kXCJcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7IShzdG9yYWdlUG9kICYmIHN0b3JhZ2VQb2QubGVuZ3RoKSAmJiAoXG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICBkaXNhYmxlZD17dm1FeGlzdHN9XG4gICAgICAgICAgbGFiZWw9e19fKCdEYXRhIHN0b3JlJyl9XG4gICAgICAgICAgdmFsdWU9e2RhdGFzdG9yZX1cbiAgICAgICAgICBvbkNoYW5nZT17bmV3VmFsdWVzID0+IHVwZGF0ZURhdGFzdG9yZShuZXdWYWx1ZXMpfVxuICAgICAgICAgIG9wdGlvbnM9e2RhdGFzdG9yZXN9XG4gICAgICAgICAgYWxsb3dDbGVhclxuICAgICAgICAgIGtleT1cImRhdGFzdG9yZXNTZWxlY3RcIlxuICAgICAgICAgIHN0YXR1cz17ZGF0YXN0b3Jlc1N0YXR1c31cbiAgICAgICAgICBlcnJvck1lc3NhZ2U9e2RhdGFzdG9yZXNFcnJvcn1cbiAgICAgICAgICBjbGFzc05hbWU9XCJkYXRhc3RvcmVcIlxuICAgICAgICAvPlxuICAgICAgKX1cblxuICAgICAgPFNlbGVjdFxuICAgICAgICBsYWJlbD17X18oJ0Rpc2sgTW9kZScpfVxuICAgICAgICB2YWx1ZT17bW9kZX1cbiAgICAgICAgZGlzYWJsZWQ9e3ZtRXhpc3RzfVxuICAgICAgICBvbkNoYW5nZT17bmV3VmFsdWVzID0+IHVwZGF0ZURpc2soJ21vZGUnLCBuZXdWYWx1ZXMpfVxuICAgICAgICBvcHRpb25zPXtkaXNrTW9kZVR5cGVzfVxuICAgICAgLz5cblxuICAgICAgPE51bWVyaWNJbnB1dFxuICAgICAgICB2YWx1ZT17c2l6ZUdifVxuICAgICAgICBtaW5WYWx1ZT17MX1cbiAgICAgICAgZm9ybWF0PXt2ID0+IGAke3Z9IEdCYH1cbiAgICAgICAgcGFyc2VyPXtzdHIgPT4gc3RyLnJlcGxhY2UoL1xcRC9nLCAnJyl9XG4gICAgICAgIGNsYXNzTmFtZT1cInRleHQtdm13YXJlLXNpemVcIlxuICAgICAgICBvbkNoYW5nZT17bmV3VmFsdWVzID0+IHVwZGF0ZURpc2soJ3NpemVHYicsIG5ld1ZhbHVlcyl9XG4gICAgICAgIGxhYmVsPXtfXygnU2l6ZSAoR0IpJyl9XG4gICAgICAvPlxuXG4gICAgICA8Q2hlY2tib3hcbiAgICAgICAgbGFiZWw9e19fKCdUaGluIHByb3Zpc2lvbicpfVxuICAgICAgICBjaGVja2VkPXt0aGlufVxuICAgICAgICBkaXNhYmxlZD17dm1FeGlzdHMgfHwgZWFnZXJaZXJvfVxuICAgICAgICBvbkNoYW5nZT17bmV3VmFsdWVzID0+IHtcbiAgICAgICAgICB1cGRhdGVEaXNrKCd0aGluJywgbmV3VmFsdWVzKTtcbiAgICAgICAgICBuZXdWYWx1ZXMgJiYgdXBkYXRlRGlzaygnZWFnZXJaZXJvJywgZmFsc2UpO1xuICAgICAgICB9fVxuICAgICAgLz5cblxuICAgICAgPENoZWNrYm94XG4gICAgICAgIGxhYmVsPXtfXygnRWFnZXIgemVybycpfVxuICAgICAgICBjaGVja2VkPXtlYWdlclplcm99XG4gICAgICAgIGRpc2FibGVkPXt2bUV4aXN0cyB8fCB0aGlufVxuICAgICAgICBvbkNoYW5nZT17bmV3VmFsdWVzID0+IHtcbiAgICAgICAgICB1cGRhdGVEaXNrKCdlYWdlclplcm8nLCBuZXdWYWx1ZXMpO1xuICAgICAgICAgIG5ld1ZhbHVlcyAmJiB1cGRhdGVEaXNrKCd0aGluJywgZmFsc2UpO1xuICAgICAgICB9fVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbkRpc2sucHJvcFR5cGVzID0ge1xuICBjb25maWc6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgZGlza01vZGVUeXBlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB2bUV4aXN0czogUHJvcFR5cGVzLmJvb2wsXG4gIH0pLmlzUmVxdWlyZWQsXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0b3JhZ2VQb2Q6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGRhdGFzdG9yZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2l6ZUdiOiBQcm9wVHlwZXMubnVtYmVyLFxuICB0aGluOiBQcm9wVHlwZXMuYm9vbCxcbiAgZWFnZXJaZXJvOiBQcm9wVHlwZXMuYm9vbCxcbiAgbW9kZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGF0YXN0b3JlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgZGF0YXN0b3Jlc1N0YXR1czogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGF0YXN0b3Jlc0Vycm9yOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdG9yYWdlUG9kczogUHJvcFR5cGVzLm9iamVjdCxcbiAgc3RvcmFnZVBvZHNTdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0b3JhZ2VQb2RzRXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHJlbW92ZURpc2s6IFByb3BUeXBlcy5mdW5jLFxuICB1cGRhdGVEaXNrOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbkRpc2suZGVmYXVsdFByb3BzID0ge1xuICBuYW1lOiAnJyxcbiAgc3RvcmFnZVBvZDogJycsXG4gIGRhdGFzdG9yZTogJycsXG4gIHNpemVHYjogbnVsbCxcbiAgdGhpbjogZmFsc2UsXG4gIGVhZ2VyWmVybzogZmFsc2UsXG4gIG1vZGU6ICcnLFxuICBkYXRhc3RvcmVzOiB7fSxcbiAgZGF0YXN0b3Jlc1N0YXR1czogdW5kZWZpbmVkLFxuICBkYXRhc3RvcmVzRXJyb3I6IHVuZGVmaW5lZCxcbiAgc3RvcmFnZVBvZHM6IHt9LFxuICBzdG9yYWdlUG9kc1N0YXR1czogdW5kZWZpbmVkLFxuICBzdG9yYWdlUG9kc0Vycm9yOiB1bmRlZmluZWQsXG4gIHJlbW92ZURpc2s6IG5vb3AsXG4gIHVwZGF0ZURpc2s6IG5vb3AsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBEaXNrO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvaG9zdHMvc3RvcmFnZS92bXdhcmUvY29udHJvbGxlci9kaXNrL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vaGVscGVycyc7XG5pbXBvcnQgQ29tbW9uRm9ybSBmcm9tICcuL0NvbW1vbkZvcm0nO1xuXG5jb25zdCBDaGVja2JveCA9ICh7IGNsYXNzTmFtZSwgY2hlY2tlZCwgb25DaGFuZ2UsIGxhYmVsLCBkaXNhYmxlZCB9KSA9PiAoXG4gIDxDb21tb25Gb3JtIGxhYmVsPXtsYWJlbH0gY2xhc3NOYW1lPXtgY29tbW9uLWNoZWNrYm94ICR7Y2xhc3NOYW1lfWB9PlxuICAgIDxpbnB1dFxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIGNoZWNrZWQ9e2NoZWNrZWR9XG4gICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgLz5cbiAgPC9Db21tb25Gb3JtPlxuKTtcblxuQ2hlY2tib3gucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNoZWNrZWQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5ib29sXSksXG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbn07XG5cbkNoZWNrYm94LmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiAnJyxcbiAgY2hlY2tlZDogZmFsc2UsXG4gIGxhYmVsOiAnJyxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBvbkNoYW5nZTogbm9vcCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL0NoZWNrYm94LmpzIiwiaW1wb3J0IFJDSW5wdXROdW1iZXIgZnJvbSAncmMtaW5wdXQtbnVtYmVyJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0ICcuL051bWVyaWNJbnB1dC5zY3NzJztcblxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCBDb21tb25Gb3JtIGZyb20gJy4vQ29tbW9uRm9ybSc7XG5cbmNvbnN0IE51bWVyaWNJbnB1dCA9ICh7XG4gIGxhYmVsLFxuICBjbGFzc05hbWUsXG4gIHZhbHVlLFxuICBvbkNoYW5nZSxcbiAgZm9ybWF0LFxuICBwYXJzZXIsXG4gIHN0ZXAsXG4gIHByZWNpc2lvbixcbiAgbWluVmFsdWUsXG4gIGRpc2FibGVkLFxuICByZWFkT25seSxcbiAgbmFtZSxcbiAgaWQsXG59KSA9PiAoXG4gIDxDb21tb25Gb3JtIGxhYmVsPXtsYWJlbH0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgIDxSQ0lucHV0TnVtYmVyXG4gICAgICBmb3JtYXR0ZXI9e2Zvcm1hdH1cbiAgICAgIHBhcnNlcj17cGFyc2VyfVxuICAgICAgc3RlcD17c3RlcH1cbiAgICAgIG1pbj17bWluVmFsdWV9XG4gICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICBwcmVjaXNpb249e3ByZWNpc2lvbn1cbiAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgIHByZWZpeENscz1cImZvcmVtYW4tbnVtZXJpYy1pbnB1dFwiXG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgaWQ9e2lkfVxuICAgIC8+XG4gIDwvQ29tbW9uRm9ybT5cbik7XG5cbk51bWVyaWNJbnB1dC5wcm9wVHlwZXMgPSB7XG4gIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICBmb3JtYXQ6IFByb3BUeXBlcy5mdW5jLFxuICBwYXJzZXI6IFByb3BUeXBlcy5mdW5jLFxuICBzdGVwOiBQcm9wVHlwZXMubnVtYmVyLFxuICBwcmVjaXNpb246IFByb3BUeXBlcy5udW1iZXIsXG4gIG1pblZhbHVlOiBQcm9wVHlwZXMubnVtYmVyLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgcmVhZE9ubHk6IFByb3BUeXBlcy5ib29sLFxufTtcblxuTnVtZXJpY0lucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgbGFiZWw6ICcnLFxuICBjbGFzc05hbWU6ICcnLFxuICBuYW1lOiAnJyxcbiAgaWQ6ICcnLFxuICB2YWx1ZTogMCxcbiAgZm9ybWF0OiBudWxsLFxuICBwYXJzZXI6IHVuZGVmaW5lZCxcbiAgc3RlcDogMSxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBwcmVjaXNpb246IDAsXG4gIG1pblZhbHVlOiAwLFxuICBvbkNoYW5nZTogbm9vcCxcbiAgcmVhZE9ubHk6IGZhbHNlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTnVtZXJpY0lucHV0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL2Zvcm1zL051bWVyaWNJbnB1dC5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9jb250cm9sbGVyL2Rpc2svZGlzay5zY3NzXG4vLyBtb2R1bGUgaWQgPSA1MzVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9jb250cm9sbGVyL2NvbnRyb2xsZXIuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNTM2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJleHBvcnQgY29uc3QgTWF4RGlza3NQZXJDb250cm9sbGVyID0gMTU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9TdG9yYWdlQ29udGFpbmVyLmNvbnN0cy5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9ob3N0cy9zdG9yYWdlL3Ztd2FyZS9TdG9yYWdlQ29udGFpbmVyLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDUzOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICcuLi8uLi9yZWR1eC9BUEknO1xuXG5pbXBvcnQgRmFjdENoYXJ0IGZyb20gJy4vRmFjdENoYXJ0JztcbmltcG9ydCB7IG9wZW5Nb2RhbCwgY2xvc2VNb2RhbCB9IGZyb20gJy4vc2xpY2UnO1xuXG5pbXBvcnQge1xuICBzZWxlY3RIb3N0Q291bnQsXG4gIHNlbGVjdERpc3BsYXlNb2RhbCxcbiAgc2VsZWN0RmFjdENoYXJ0U3RhdHVzLFxuICBzZWxlY3RGYWN0Q2hhcnREYXRhLFxufSBmcm9tICcuL3NlbGVjdG9ycyc7XG5cbmNvbnN0IENvbm5lY3RlZEZhY3RDaGFydCA9ICh7IGlkLCBwYXRoLCB0aXRsZSwgc2VhcmNoIH0pID0+IHtcbiAgY29uc3Qga2V5ID0gYEZBQ1RfQ0hBUlRfJHtpZH1gO1xuICBjb25zdCBob3N0c0NvdW50ID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0SG9zdENvdW50KHN0YXRlLCBrZXkpKTtcbiAgY29uc3Qgc3RhdHVzID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0RmFjdENoYXJ0U3RhdHVzKHN0YXRlLCBrZXkpKTtcbiAgY29uc3QgY2hhcnREYXRhID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0RmFjdENoYXJ0RGF0YShzdGF0ZSwga2V5KSk7XG4gIGNvbnN0IG1vZGFsVG9EaXNwbGF5ID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0RGlzcGxheU1vZGFsKHN0YXRlLCBpZCkpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IGRpc3BhdGNoQ2xvc2VNb2RhbCA9ICgpID0+IGRpc3BhdGNoKGNsb3NlTW9kYWwoKSk7XG4gIGNvbnN0IGRpc3BhdGNoT3Blbk1vZGFsID0gKCkgPT4ge1xuICAgIGRpc3BhdGNoKGdldCh7IGtleSwgdXJsOiBwYXRoIH0pKTtcbiAgICBkaXNwYXRjaChvcGVuTW9kYWwoeyBpZCwgdGl0bGUgfSkpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZhY3RDaGFydFxuICAgICAgaWQ9e2lkfVxuICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgc2VhcmNoPXtzZWFyY2h9XG4gICAgICBzdGF0dXM9e3N0YXR1c31cbiAgICAgIGhvc3RzQ291bnQ9e2hvc3RzQ291bnR9XG4gICAgICBjaGFydERhdGE9e2NoYXJ0RGF0YX1cbiAgICAgIG1vZGFsVG9EaXNwbGF5PXttb2RhbFRvRGlzcGxheX1cbiAgICAgIG9wZW5Nb2RhbD17ZGlzcGF0Y2hPcGVuTW9kYWx9XG4gICAgICBjbG9zZU1vZGFsPXtkaXNwYXRjaENsb3NlTW9kYWx9XG4gICAgLz5cbiAgKTtcbn07XG5cbkNvbm5lY3RlZEZhY3RDaGFydC5wcm9wVHlwZXMgPSB7XG4gIGlkOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSkuaXNSZXF1aXJlZCxcbiAgcGF0aDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzZWFyY2g6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5Db25uZWN0ZWRGYWN0Q2hhcnQuZGVmYXVsdFByb3BzID0ge1xuICBzZWFyY2g6IG51bGwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb25uZWN0ZWRGYWN0Q2hhcnQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9GYWN0Q2hhcnRzL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1vZGFsLCBCdXR0b24sIE92ZXJsYXlUcmlnZ2VyLCBUb29sdGlwIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcbmltcG9ydCBEb251dENoYXJ0IGZyb20gJy4uL2NvbW1vbi9jaGFydHMvRG9udXRDaGFydCc7XG5pbXBvcnQgTG9hZGVyIGZyb20gJy4uL2NvbW1vbi9Mb2FkZXInO1xuaW1wb3J0IE1lc3NhZ2VCb3ggZnJvbSAnLi4vY29tbW9uL01lc3NhZ2VCb3gnO1xuaW1wb3J0IHsgU1RBVFVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIHNwcmludGYsXG4gIG5nZXR0ZXh0IGFzIG5fXyxcbiAgdHJhbnNsYXRlIGFzIF9fLFxufSBmcm9tICcuLi8uLi8uLi9yZWFjdF9hcHAvY29tbW9uL0kxOG4nO1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuXG5jb25zdCBGYWN0Q2hhcnQgPSAoe1xuICBob3N0c0NvdW50LFxuICBtb2RhbFRvRGlzcGxheSxcbiAgc3RhdHVzLFxuICBjaGFydERhdGEsXG4gIGNsb3NlTW9kYWwsXG4gIG9wZW5Nb2RhbCxcbiAgc2VhcmNoLFxuICBpZCxcbiAgdGl0bGUsXG59KSA9PiB7XG4gIGNvbnN0IGNoYXJ0UHJvcHMgPSB7XG4gICAgZGF0YTogY2hhcnREYXRhLFxuICAgIGtleTogYGNoYXJ0LSR7aWR9YCxcbiAgICBzZWFyY2hVcmw6IHNlYXJjaCAmJiAhc2VhcmNoLm1hdGNoKC89JC8pID8gc2VhcmNoIDogbnVsbCxcbiAgfTtcblxuICBjb25zdCBjaGFydCA9IDxEb251dENoYXJ0IHsuLi5jaGFydFByb3BzfSBjb25maWc9XCJsYXJnZVwiIC8+O1xuXG4gIGNvbnN0IHJlcXVlc3RFcnJvck1zZyA9XG4gICAgc3RhdHVzID09PSBTVEFUVVMuRVJST1IgPyBfXygnUmVxdWVzdCBGYWlsZWQnKSA6IF9fKCdObyBkYXRhIGF2YWlsYWJsZScpO1xuXG4gIGNvbnN0IGVycm9yID0gbW9kYWxUb0Rpc3BsYXkgPyAoXG4gICAgPE1lc3NhZ2VCb3hcbiAgICAgIG1zZz17cmVxdWVzdEVycm9yTXNnfVxuICAgICAgaWNvbnR5cGU9XCJlcnJvci1jaXJjbGUtb1wiXG4gICAgICBrZXk9e2BtZXNzYWdlLSR7aWR9YH1cbiAgICAvPlxuICApIDogKFxuICAgIGZhbHNlXG4gICk7XG5cbiAgY29uc3QgdG9vbHRpcCA9IChcbiAgICA8VG9vbHRpcCBpZD17YHZpZXdDaGFydFRvb2x0aXAtJHtpZH1gfT5cbiAgICAgIHtfXygnU2hvdyBkaXN0cmlidXRpb24gY2hhcnQnKX1cbiAgICA8L1Rvb2x0aXA+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZhY3QtY2hhcnRcIj5cbiAgICAgIDxPdmVybGF5VHJpZ2dlciBwbGFjZW1lbnQ9XCJ0b3BcIiBvdmVybGF5PXt0b29sdGlwfT5cbiAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtvcGVuTW9kYWx9PntfXygnVmlldyBDaGFydCcpfTwvQnV0dG9uPlxuICAgICAgPC9PdmVybGF5VHJpZ2dlcj5cbiAgICAgIHttb2RhbFRvRGlzcGxheSAmJiAoXG4gICAgICAgIDxNb2RhbCBzaG93IG9uSGlkZT17Y2xvc2VNb2RhbH0+XG4gICAgICAgICAgPE1vZGFsLkhlYWRlciBjbG9zZUJ1dHRvbj5cbiAgICAgICAgICAgIDxNb2RhbC5UaXRsZT5cbiAgICAgICAgICAgICAgPGI+e3NwcmludGYoX18oJ0ZhY3QgZGlzdHJpYnV0aW9uIGNoYXJ0IC0gJXMgJyksIHRpdGxlKX08L2I+XG4gICAgICAgICAgICAgIHtob3N0c0NvdW50ICYmIChcbiAgICAgICAgICAgICAgICA8c21hbGw+XG4gICAgICAgICAgICAgICAgICB7c3ByaW50ZihcbiAgICAgICAgICAgICAgICAgICAgbl9fKCcoJXMgaG9zdCknLCAnKCVzIGhvc3RzKScsIGhvc3RzQ291bnQpLFxuICAgICAgICAgICAgICAgICAgICBob3N0c0NvdW50XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L01vZGFsLlRpdGxlPlxuICAgICAgICAgIDwvTW9kYWwuSGVhZGVyPlxuICAgICAgICAgIDxNb2RhbC5Cb2R5PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1ib2R5XCI+XG4gICAgICAgICAgICAgIDxMb2FkZXIgc3RhdHVzPXtzdGF0dXN9PntbY2hhcnQsIGVycm9yXX08L0xvYWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvTW9kYWwuQm9keT5cbiAgICAgICAgPC9Nb2RhbD5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5GYWN0Q2hhcnQucHJvcFR5cGVzID0ge1xuICBtb2RhbFRvRGlzcGxheTogUHJvcFR5cGVzLmJvb2wsXG4gIGhvc3RzQ291bnQ6IFByb3BUeXBlcy5udW1iZXIsXG4gIG9wZW5Nb2RhbDogUHJvcFR5cGVzLmZ1bmMsXG4gIGNsb3NlTW9kYWw6IFByb3BUeXBlcy5mdW5jLFxuICBzdGF0dXM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNoYXJ0RGF0YTogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFycmF5KSxcbiAgc2VhcmNoOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaWQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbn07XG5cbkZhY3RDaGFydC5kZWZhdWx0UHJvcHMgPSB7XG4gIG1vZGFsVG9EaXNwbGF5OiBmYWxzZSxcbiAgaG9zdHNDb3VudDogMCxcbiAgb3Blbk1vZGFsOiBub29wLFxuICBjbG9zZU1vZGFsOiBub29wLFxuICBzdGF0dXM6IG51bGwsXG4gIGNoYXJ0RGF0YTogbnVsbCxcbiAgc2VhcmNoOiBudWxsLFxuICB0aXRsZTogJycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGYWN0Q2hhcnQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9GYWN0Q2hhcnRzL0ZhY3RDaGFydC5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9GYWN0Q2hhcnRzL3N0eWxlLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDU0MVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge1xuICBzZWxlY3RBUElTdGF0dXMsXG4gIHNlbGVjdEFQSVJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9yZWR1eC9BUEkvQVBJU2VsZWN0b3JzJztcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZhY3RDaGFydERhdGEgPSAoc3RhdGUsIGtleSkgPT5cbiAgc2VsZWN0QVBJUmVzcG9uc2Uoc3RhdGUsIGtleSkudmFsdWVzIHx8IFtdO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0RmFjdENoYXJ0U3RhdHVzID0gKHN0YXRlLCBrZXkpID0+XG4gIHNlbGVjdEFQSVN0YXR1cyhzdGF0ZSwga2V5KTtcblxuY29uc3QgaG9zdENvdW50ZXIgPSAoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkgPT4gYWNjdW11bGF0b3IgKyBjdXJyZW50VmFsdWU7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RIb3N0Q291bnQgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RGYWN0Q2hhcnREYXRhLCBjaGFydERhdGEgPT5cbiAgY2hhcnREYXRhLmxlbmd0aCA/IGNoYXJ0RGF0YS5tYXAoaXRlbSA9PiBpdGVtWzFdKS5yZWR1Y2UoaG9zdENvdW50ZXIpIDogMFxuKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZhY3RDaGFydCA9IHN0YXRlID0+IHN0YXRlLmZhY3RDaGFydDtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdERpc3BsYXlNb2RhbCA9IChzdGF0ZSwgaWQpID0+XG4gIHNlbGVjdEZhY3RDaGFydChzdGF0ZSkubW9kYWxUb0Rpc3BsYXlbaWRdIHx8IGZhbHNlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvRmFjdENoYXJ0cy9zZWxlY3RvcnMuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjb21wb25lbnRSZWdpc3RyeSBmcm9tICcuLi8uLi9jb21wb25lbnRSZWdpc3RyeSc7XG5cbmNvbnN0IENvbXBvbmVudFdyYXBwZXIgPSBwcm9wcyA9PiB7XG4gIGNvbnN0IHsgY29tcG9uZW50LCBjb21wb25lbnRQcm9wcyB9ID0gcHJvcHMuZGF0YTtcblxuICBpZiAoY29tcG9uZW50ID09PSAnQ29tcG9uZW50V3JhcHBlcicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB3cmFwIGNvbXBvbmVudCB3cmFwcGVyJyk7XG4gIH1cblxuICBjb25zdCByZWdpc3RlcmVkQ29tcG9uZW50ID0gY29tcG9uZW50UmVnaXN0cnkuZ2V0Q29tcG9uZW50KGNvbXBvbmVudCk7XG5cbiAgaWYgKCFyZWdpc3RlcmVkQ29tcG9uZW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb21wb25lbnQgbmFtZSBpcyBtaXNzaW5nIScpO1xuICB9XG5cbiAgY29uc3QgQ29tcG9uZW50ID0gcmVnaXN0ZXJlZENvbXBvbmVudC50eXBlO1xuXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5jb21wb25lbnRQcm9wc30gLz47XG59O1xuXG5Db21wb25lbnRXcmFwcGVyLnByb3BUeXBlcyA9IHtcbiAgZGF0YTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBjb21wb25lbnRQcm9wczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjb21wb25lbnQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSkuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudFdyYXBwZXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9jb21tb24vQ29tcG9uZW50V3JhcHBlci9Db21wb25lbnRXcmFwcGVyLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NoYXJ0Qm94L0NoYXJ0Qm94LmNzc1xuLy8gbW9kdWxlIGlkID0gNTQ0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IFJvdywgQ29sIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBDaGFydEJveCBmcm9tICcuLi9DaGFydEJveC9DaGFydEJveCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgeyBTVEFUVVMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgJy4vQ29uZmlnUmVwb3J0cy5zY3NzJztcblxuY29uc3QgQ29uZmlnUmVwb3J0cyA9IHByb3BzID0+IHtcbiAgY29uc3Qge1xuICAgIG1ldHJpY3NDaGFydERhdGEsXG4gICAgc3RhdHVzQ2hhcnREYXRhLFxuICAgIG1ldHJpY3NEYXRhOiB7IHRhYmxlRGF0YSwgdGFibGVDbGFzc2VzLCB0b3RhbCB9LFxuICB9ID0gcHJvcHMuZGF0YTtcblxuICBjb25zdCBjcmVhdGVSb3cgPSAoW25hbWUsIHZhbHVlXSwgaSkgPT4gKFxuICAgIDx0ciBrZXk9e2l9PlxuICAgICAgPHRkIGNsYXNzTmFtZT1cImJyZWFrLW1lXCI+e25hbWV9PC90ZD5cbiAgICAgIDx0ZD57dmFsdWV9PC90ZD5cbiAgICA8L3RyPlxuICApO1xuXG4gIGNvbnN0IGNoYXJ0Qm94UHJvcHMgPSB7XG4gICAgY2xhc3NOYW1lOiAncmVwb3J0LWNoYXJ0JyxcbiAgICBub0RhdGFNc2c6IF9fKCdObyBkYXRhIGF2YWlsYWJsZScpLFxuICAgIHN0YXR1czogU1RBVFVTLlJFU09MVkVELFxuICAgIGNvbmZpZzogJ21lZGl1bScsXG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8Um93PlxuICAgICAgPENvbCBtZD17NX0+XG4gICAgICAgIDxDaGFydEJveFxuICAgICAgICAgIHsuLi5jaGFydEJveFByb3BzfVxuICAgICAgICAgIHR5cGU9XCJkb251dFwiXG4gICAgICAgICAgY2hhcnQ9e3sgZGF0YTogbWV0cmljc0NoYXJ0RGF0YSwgaWQ6ICdyZXBvcnQtbWV0cmljcycgfX1cbiAgICAgICAgICB0aXRsZT17X18oJ1JlcG9ydCBNZXRyaWNzJyl9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbD5cblxuICAgICAgPENvbCBtZD17NX0gY2xhc3NOYW1lPVwiYmFyLWNoYXJ0LW1lZGl1bS13aWR0aFwiPlxuICAgICAgICA8Q2hhcnRCb3hcbiAgICAgICAgICB7Li4uY2hhcnRCb3hQcm9wc31cbiAgICAgICAgICB0eXBlPVwiYmFyXCJcbiAgICAgICAgICBjaGFydD17eyBkYXRhOiBzdGF0dXNDaGFydERhdGEsIGlkOiAncmVwb3J0LXN0YXR1cycgfX1cbiAgICAgICAgICB0aXRsZT17X18oJ1JlcG9ydCBTdGF0dXMnKX1cbiAgICAgICAgLz5cbiAgICAgIDwvQ29sPlxuICAgICAgPENvbCBtZD17Mn0+XG4gICAgICAgIDx0YWJsZSBjbGFzc05hbWU9e2NsYXNzTmFtZXModGFibGVDbGFzc2VzLCAncmVwb3J0LWNoYXJ0Jyl9PlxuICAgICAgICAgIDx0Ym9keT57dGFibGVEYXRhLm1hcCgobWV0cmljLCBpKSA9PiBjcmVhdGVSb3cobWV0cmljLCBpKSl9PC90Ym9keT5cbiAgICAgICAgICA8dGZvb3Q+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aD57X18oJ1RvdGFsJyl9PC90aD5cbiAgICAgICAgICAgICAgPHRoPnt0b3RhbH08L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rmb290PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9Db2w+XG4gICAgPC9Sb3c+XG4gICk7XG59O1xuXG5Db25maWdSZXBvcnRzLnByb3BUeXBlcyA9IHtcbiAgZGF0YTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBtZXRyaWNzQ2hhcnREYXRhOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgc3RhdHVzQ2hhcnREYXRhOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgbWV0cmljc0RhdGE6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICB0YWJsZURhdGE6IFByb3BUeXBlcy5hcnJheSxcbiAgICAgIHRvdGFsOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgdGFibGVDbGFzc2VzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIH0pLFxuICB9KS5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQ29uZmlnUmVwb3J0cztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpZ1JlcG9ydHMvQ29uZmlnUmVwb3J0cy5qcyIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Db25maWdSZXBvcnRzL0NvbmZpZ1JlcG9ydHMuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNTQ2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBpMThuUHJvdmlkZXJXcmFwcGVyRmFjdG9yeSB9IGZyb20gJy4uL2NvbW1vbi9pMThuUHJvdmlkZXJXcmFwcGVyRmFjdG9yeSc7XG5pbXBvcnQgeyBnZXREaXNwbGF5TmFtZSB9IGZyb20gJy4uL2NvbW1vbi9oZWxwZXJzJztcblxuY29uc3Qgc3RvcmVQcm92aWRlcldyYXBwZXJGYWN0b3J5ID0gc3RvcmUgPT4gV3JhcHBlZENvbXBvbmVudCA9PiB7XG4gIGNvbnN0IFN0b3JlUHJvdmlkZXIgPSBwcm9wcyA9PiAoXG4gICAgPFByb3ZpZGVyIHN0b3JlPXtzdG9yZX0+XG4gICAgICA8V3JhcHBlZENvbXBvbmVudCB7Li4ucHJvcHN9IC8+XG4gICAgPC9Qcm92aWRlcj5cbiAgKTtcbiAgU3RvcmVQcm92aWRlci5kaXNwbGF5TmFtZSA9IGBTdG9yZVByb3ZpZGVyKCR7Z2V0RGlzcGxheU5hbWUoXG4gICAgV3JhcHBlZENvbXBvbmVudFxuICApfSlgO1xuXG4gIHJldHVybiBTdG9yZVByb3ZpZGVyO1xufTtcblxuY29uc3QgZGF0YVByb3ZpZGVyV3JhcHBlckZhY3RvcnkgPSAoXG4gIGRhdGEsXG4gIGZsYXR0ZW5EYXRhID0gZmFsc2VcbikgPT4gV3JhcHBlZENvbXBvbmVudCA9PiB7XG4gIGNvbnN0IERhdGFQcm92aWRlciA9IHByb3BzID0+IHtcbiAgICBpZiAoZmxhdHRlbkRhdGEpIHtcbiAgICAgIHJldHVybiA8V3JhcHBlZENvbXBvbmVudCB7Li4uZGF0YX0gey4uLnByb3BzfSAvPjtcbiAgICB9XG4gICAgcmV0dXJuIDxXcmFwcGVkQ29tcG9uZW50IGRhdGE9e2RhdGF9IHsuLi5wcm9wc30gLz47XG4gIH07XG4gIERhdGFQcm92aWRlci5kaXNwbGF5TmFtZSA9IGBEYXRhUHJvdmlkZXIoJHtnZXREaXNwbGF5TmFtZShcbiAgICBXcmFwcGVkQ29tcG9uZW50XG4gICl9KWA7XG5cbiAgcmV0dXJuIERhdGFQcm92aWRlcjtcbn07XG5cbmNvbnN0IHByb3BEYXRhTWFwcGVyV3JhcHBlckZhY3RvcnkgPSAoKSA9PiBXcmFwcGVkQ29tcG9uZW50ID0+IHtcbiAgY29uc3QgUHJvcERhdGFNYXBwZXIgPSBwcm9wcyA9PiA8V3JhcHBlZENvbXBvbmVudCBkYXRhPXtwcm9wc30gLz47XG4gIFByb3BEYXRhTWFwcGVyLmRpc3BsYXlOYW1lID0gYFByb3BEYXRhTWFwcGVyKCR7Z2V0RGlzcGxheU5hbWUoXG4gICAgV3JhcHBlZENvbXBvbmVudFxuICApfSlgO1xuXG4gIHJldHVybiBQcm9wRGF0YU1hcHBlcjtcbn07XG5cbmV4cG9ydCBjb25zdCB3cmFwcGVyUmVnaXN0cnkgPSB7XG4gIHdyYXBwZXJzOiB7XG4gICAgZGF0YTogZGF0YVByb3ZpZGVyV3JhcHBlckZhY3RvcnksXG4gICAgZGF0YU1hcHBlcjogcHJvcERhdGFNYXBwZXJXcmFwcGVyRmFjdG9yeSxcbiAgICBzdG9yZTogc3RvcmVQcm92aWRlcldyYXBwZXJGYWN0b3J5LFxuICAgIGkxOG46IGkxOG5Qcm92aWRlcldyYXBwZXJGYWN0b3J5LFxuICB9LFxuICByZWdpc3RlcihuYW1lLCB3cmFwcGVyKSB7XG4gICAgaWYgKHRoaXMud3JhcHBlcnNbbmFtZV0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgV3JhcHBlciBuYW1lIGFscmVhZHkgdGFrZW46ICR7bmFtZX1gKTtcbiAgICB9XG5cbiAgICB0aGlzLndyYXBwZXJzW25hbWVdID0gd3JhcHBlcjtcbiAgfSxcbiAgZ2V0V3JhcHBlcihuYW1lKSB7XG4gICAgaWYgKCF0aGlzLndyYXBwZXJzW25hbWVdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdyYXBwZXIgbm90IGZvdW5kOiAke25hbWV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMud3JhcHBlcnNbbmFtZV07XG4gIH0sXG59O1xuXG5leHBvcnQgY2xhc3MgV3JhcHBlckZhY3Rvcnkge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLndyYXBwZXIgPSBjb21wb25lbnQgPT4gY29tcG9uZW50O1xuICB9XG5cbiAgd2l0aChuYW1lLCAuLi5wYXJhbXMpIHtcbiAgICBjb25zdCBjdXJyZW50V3JhcHBlciA9IHRoaXMud3JhcHBlcjtcbiAgICBjb25zdCBhZGRpdGlvbmFsV3JhcHBlckZhY3RvcnkgPSB3cmFwcGVyUmVnaXN0cnkuZ2V0V3JhcHBlcihuYW1lKTtcbiAgICBjb25zdCBhZGRpdGlvbmFsV3JhcHBlciA9IGFkZGl0aW9uYWxXcmFwcGVyRmFjdG9yeSguLi5wYXJhbXMpO1xuXG4gICAgdGhpcy53cmFwcGVyID0gY29tcG9uZW50ID0+IGFkZGl0aW9uYWxXcmFwcGVyKGN1cnJlbnRXcmFwcGVyKGNvbXBvbmVudCkpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL3dyYXBwZXJGYWN0b3J5LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEludGxQcm92aWRlciB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgaW50bCB9IGZyb20gJy4vSTE4bic7XG5pbXBvcnQgeyBnZXREaXNwbGF5TmFtZSB9IGZyb20gJy4vaGVscGVycyc7XG5cbmNvbnN0IGkxOG5Qcm92aWRlcldyYXBwZXJGYWN0b3J5ID0gKFxuICBpbml0aWFsTm93LFxuICB0aW1lem9uZVxuKSA9PiBXcmFwcGVkQ29tcG9uZW50ID0+IHtcbiAgY29uc3Qgd3JhcHBlZE5hbWUgPSBnZXREaXNwbGF5TmFtZShXcmFwcGVkQ29tcG9uZW50KTtcblxuICBjbGFzcyBJMThuUHJvdmlkZXJXcmFwcGVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgc3VwZXIocHJvcHMpO1xuICAgICAgdGhpcy5zdGF0ZSA9IHsgaTE4bkxvYWRlZDogZmFsc2UgfTtcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLXRoZW5cbiAgICAgIGludGwucmVhZHkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpMThuTG9hZGVkOiB0cnVlIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgaWYgKCF0aGlzLnN0YXRlLmkxOG5Mb2FkZWQpIHtcbiAgICAgICAgcmV0dXJuIDxzcGFuIC8+O1xuICAgICAgfVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEludGxQcm92aWRlclxuICAgICAgICAgIGxvY2FsZT17aW50bC5sb2NhbGV9XG4gICAgICAgICAgaW5pdGlhbE5vdz17aW5pdGlhbE5vd31cbiAgICAgICAgICB0aW1lWm9uZT17dGltZXpvbmUgfHwgaW50bC50aW1lem9uZX1cbiAgICAgICAgPlxuICAgICAgICAgIDxXcmFwcGVkQ29tcG9uZW50IHsuLi50aGlzLnByb3BzfSAvPlxuICAgICAgICA8L0ludGxQcm92aWRlcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIEkxOG5Qcm92aWRlcldyYXBwZXIuZGlzcGxheU5hbWUgPSBgSTE4blByb3ZpZGVyV3JhcHBlcigke3dyYXBwZWROYW1lfSlgO1xuXG4gIHJldHVybiBJMThuUHJvdmlkZXJXcmFwcGVyO1xufTtcblxuZXhwb3J0IHsgaTE4blByb3ZpZGVyV3JhcHBlckZhY3RvcnkgfTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vaTE4blByb3ZpZGVyV3JhcHBlckZhY3RvcnkuanMiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9Mb2dpblBhZ2UnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvTG9naW5QYWdlL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBMb2dpblBhZ2UgYXMgUEZMb2dpblBhZ2UgfSBmcm9tICdwYXR0ZXJuZmx5LXJlYWN0JztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IGFkanVzdEFsZXJ0cywgZGVmYXVsdEZvcm1Qcm9wcyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgJy4vTG9naW5QYWdlLnNjc3MnO1xuXG5jb25zdCBMb2dpblBhZ2UgPSAoe1xuICBhbGVydHMsXG4gIGJhY2tncm91bmRVcmwsXG4gIGNhcHRpb24sXG4gIGxvZ29TcmMsXG4gIHRva2VuLFxuICB2ZXJzaW9uLFxufSkgPT4ge1xuICBjb25zdCB7IG1vZGlmaWVkQWxlcnRzLCBzdWJtaXRFcnJvcnMgfSA9IGFkanVzdEFsZXJ0cyhhbGVydHMpO1xuICBjb25zdCBmb290ZXJMaW5rcyA9IGNhcHRpb25cbiAgICA/IFt7IGNoaWxkcmVuOiBjYXB0aW9uLCBocmVmOiAnZm9yZW1hbi1sb2dpbi1mb290ZXItdGV4dCcgfV0gLy8gVGhlIGhyZWYgdGV4dCBpcyBkZXRlY3RlZCBpbiBvdXIgY3NzIHRvIGRpc2FibGUgaXQgZnJvbSBiZWluZyBhbiBhY3R1YWwgbGluay5cbiAgICA6IFtdO1xuICByZXR1cm4gKFxuICAgIDxkaXYgaWQ9XCJsb2dpbi1wYWdlXCI+XG4gICAgICA8UEZMb2dpblBhZ2VcbiAgICAgICAgY29udGFpbmVyPXt7XG4gICAgICAgICAgYmFja2dyb3VuZFVybCxcbiAgICAgICAgICBhbGVydDogbW9kaWZpZWRBbGVydHMsXG4gICAgICAgIH19XG4gICAgICAgIGhlYWRlcj17e1xuICAgICAgICAgIGxvZ29TcmMsXG4gICAgICAgICAgY2FwdGlvbjogKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPGgxIGlkPVwidGl0bGVcIj57X18oJ1dlbGNvbWUnKX08L2gxPlxuICAgICAgICAgICAgICB7dmVyc2lvbiAmJiA8cCBpZD1cInZlcnNpb25cIj57YCR7X18oJ1ZlcnNpb24nKX0gJHt2ZXJzaW9ufWB9PC9wPn1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICksXG4gICAgICAgIH19XG4gICAgICAgIGNhcmQ9e3tcbiAgICAgICAgICB0aXRsZTogX18oJ0xvZyBpbiB0byB5b3VyIGFjY291bnQnKSxcbiAgICAgICAgICBmb3JtOiB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0Rm9ybVByb3BzLFxuICAgICAgICAgICAgc3VibWl0RXJyb3I6IHN1Ym1pdEVycm9ycyxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxGaWVsZHM6IChcbiAgICAgICAgICAgICAgPGlucHV0IG5hbWU9XCJhdXRoZW50aWNpdHlfdG9rZW5cIiB0eXBlPVwiaGlkZGVuXCIgdmFsdWU9e3Rva2VufSAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9fVxuICAgICAgICBmb290ZXJMaW5rcz17Zm9vdGVyTGlua3N9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuTG9naW5QYWdlLnByb3BUeXBlcyA9IHtcbiAgYWxlcnRzOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIHN1Y2Nlc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgd2FybmluZzogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBlcnJvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgfSksXG4gIGJhY2tncm91bmRVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNhcHRpb246IFByb3BUeXBlcy5zdHJpbmcsXG4gIGxvZ29TcmM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRva2VuOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHZlcnNpb246IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5Mb2dpblBhZ2UuZGVmYXVsdFByb3BzID0ge1xuICBhbGVydHM6IG51bGwsXG4gIGJhY2tncm91bmRVcmw6IG51bGwsXG4gIGNhcHRpb246IG51bGwsXG4gIGxvZ29TcmM6IG51bGwsXG4gIHZlcnNpb246IG51bGwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBMb2dpblBhZ2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9Mb2dpblBhZ2UvTG9naW5QYWdlLmpzIiwiaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5leHBvcnQgY29uc3QgYWRqdXN0QWxlcnRzID0gYWxlcnRzID0+IHtcbiAgY29uc3Qgc3VibWl0RXJyb3JzID0gW107XG4gIGNvbnN0IG1vZGlmaWVkQWxlcnRzID0gW107XG5cbiAgYWxlcnRzICYmXG4gICAgT2JqZWN0LmtleXMoYWxlcnRzKS5mb3JFYWNoKGFsZXJ0VHlwZSA9PiB7XG4gICAgICBjb25zdCBhbGVydE1lc3NhZ2UgPSBhbGVydHNbYWxlcnRUeXBlXTtcbiAgICAgIGlmIChhbGVydFR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgICAgc3VibWl0RXJyb3JzLnB1c2goYWxlcnRNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSBpZiAoYWxlcnRNZXNzYWdlKSB7XG4gICAgICAgIG1vZGlmaWVkQWxlcnRzLnB1c2goe1xuICAgICAgICAgIHR5cGU6IGFsZXJ0VHlwZSxcbiAgICAgICAgICBtZXNzYWdlOiBhbGVydE1lc3NhZ2UsXG4gICAgICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtb2RpZmllZEFsZXJ0cyxcbiAgICBzdWJtaXRFcnJvcnMsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEZvcm1Qcm9wcyA9IHtcbiAgYXR0cmlidXRlczoge1xuICAgIGFjdGlvbjogJy91c2Vycy9sb2dpbicsXG4gICAgbWV0aG9kOiAncG9zdCcsXG4gIH0sXG4gIHZhbGlkYXRlOiB0cnVlLFxuICB0b3BFcnJvck9ubHk6IHRydWUsXG4gIHVzZXJuYW1lRmllbGQ6IHtcbiAgICBpZDogJ2xvZ2luX2xvZ2luJyxcbiAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICBuYW1lOiAnbG9naW5bbG9naW5dJyxcbiAgICAgIGF1dG9Gb2N1czogdHJ1ZSxcbiAgICB9LFxuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBwbGFjZWhvbGRlcjogX18oJ1VzZXJuYW1lJyksXG4gIH0sXG4gIHBhc3N3b3JkRmllbGQ6IHtcbiAgICBpZDogJ2xvZ2luX3Bhc3N3b3JkJyxcbiAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICBuYW1lOiAnbG9naW5bcGFzc3dvcmRdJyxcbiAgICB9LFxuICAgIHR5cGU6ICdwYXNzd29yZCcsXG4gICAgcGxhY2Vob2xkZXI6IF9fKCdQYXNzd29yZCcpLFxuICB9LFxuICBzdWJtaXRUZXh0OiBfXygnTG9nIEluJyksXG4gIHN1Ym1pdEJ1dHRvbkF0dHJpYnV0ZXM6IHtcbiAgICBpZDogJ2xvZ2luX3N1Ym1pdF9idG4nLFxuICAgIG5hbWU6ICdjb21taXQnLFxuICB9LFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xvZ2luUGFnZS9oZWxwZXJzLmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0xvZ2luUGFnZS9Mb2dpblBhZ2Uuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNTUyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIiLCJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9FeHRlcm5hbExvZ291dCc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9FeHRlcm5hbExvZ291dC9pbmRleC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uLCBHcmlkIH0gZnJvbSAncGF0dGVybmZseS1yZWFjdCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5pbXBvcnQgJy4vZXh0ZXJuYWxMb2dvdXQuc2Nzcyc7XG5cbmNvbnN0IEV4dGVybmFsTG9nb3V0ID0gKHtcbiAgbG9nb1NyYyxcbiAgdmVyc2lvbixcbiAgY2FwdGlvbixcbiAgc3VibWl0TGluayxcbiAgYmFja2dyb3VuZFVybCxcbn0pID0+IHtcbiAgY29uc3Qgc3R5bGUgPSBiYWNrZ3JvdW5kVXJsXG4gICAgPyB7IGJhY2tncm91bmRJbWFnZTogYHVybCgke2JhY2tncm91bmRVcmx9KWAgfVxuICAgIDoge307XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJleHRlcm5hbC1sb2dvdXRcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgPEdyaWQ+XG4gICAgICAgIDxHcmlkLlJvdz5cbiAgICAgICAgICA8R3JpZC5Db2wgc209ezh9IHNtT2Zmc2V0PXsyfSBtZD17Nn0gbWRPZmZzZXQ9ezN9PlxuICAgICAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJsb2dpbi1wZi1wYWdlLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8aW1nIGNsYXNzTmFtZT1cImJyYW5kXCIgc3JjPXtsb2dvU3JjfSBhbHQ9XCJsb2dvXCIgLz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2dpbi1wZi1jYXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGgxIGlkPVwidGl0bGVcIj57X18oJ1dlbGNvbWUnKX08L2gxPlxuICAgICAgICAgICAgICAgIHt2ZXJzaW9uICYmIDxwIGlkPVwidmVyc2lvblwiPntgJHtfXygnVmVyc2lvbicpfSAke3ZlcnNpb259YH08L3A+fVxuICAgICAgICAgICAgICAgIHtjYXB0aW9uICYmIDxwIGlkPVwibG9naW5fdGV4dFwiPntjYXB0aW9ufTwvcD59XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICBic1N0eWxlPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGJzU2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgYmxvY2tcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibG9naW4tcGYtc3VibWl0LWJ1dHRvblwiXG4gICAgICAgICAgICAgIGhyZWY9e3N1Ym1pdExpbmt9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtfXygnQ2xpY2sgdG8gbG9nIGluIGFnYWluJyl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0dyaWQuQ29sPlxuICAgICAgICA8L0dyaWQuUm93PlxuICAgICAgPC9HcmlkPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuRXh0ZXJuYWxMb2dvdXQucHJvcFR5cGVzID0ge1xuICBiYWNrZ3JvdW5kVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjYXB0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBsb2dvU3JjOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2ZXJzaW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzdWJtaXRMaW5rOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59O1xuXG5FeHRlcm5hbExvZ291dC5kZWZhdWx0UHJvcHMgPSB7XG4gIGJhY2tncm91bmRVcmw6IG51bGwsXG4gIGNhcHRpb246IG51bGwsXG4gIGxvZ29TcmM6IG51bGwsXG4gIHZlcnNpb246IG51bGwsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFeHRlcm5hbExvZ291dDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0V4dGVybmFsTG9nb3V0L0V4dGVybmFsTG9nb3V0LmpzIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0V4dGVybmFsTG9nb3V0L2V4dGVybmFsTG9nb3V0LnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDU1NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gJy4vUmVkaXJlY3RDYW5jZWxCdXR0b24nO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvY29tbW9uL1JlZGlyZWN0Q2FuY2VsQnV0dG9uL2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHdpdGhSZWFjdFJvdXRlcyBmcm9tICcuLi8uLi8uLi9jb21tb24vd2l0aFJlYWN0Um91dGVzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgUmVkaXJlY3RDYW5jZWxCdXR0b24gPSBwcm9wcyA9PiAoXG4gIDxMaW5rIHRvPXtwcm9wcy5jYW5jZWxQYXRofT5cbiAgICA8QnV0dG9uPntfXygnQ2FuY2VsJyl9PC9CdXR0b24+XG4gIDwvTGluaz5cbik7XG5cblJlZGlyZWN0Q2FuY2VsQnV0dG9uLnByb3BUeXBlcyA9IHtcbiAgY2FuY2VsUGF0aDogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cblJlZGlyZWN0Q2FuY2VsQnV0dG9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2FuY2VsUGF0aDogdW5kZWZpbmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFJlYWN0Um91dGVzKFJlZGlyZWN0Q2FuY2VsQnV0dG9uKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL2NvbW1vbi9SZWRpcmVjdENhbmNlbEJ1dHRvbi9SZWRpcmVjdENhbmNlbEJ1dHRvbi5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IGhpc3RvcnkgZnJvbSAnLi4vaGlzdG9yeSc7XG5pbXBvcnQgQXBwU3dpdGNoZXIgZnJvbSAnLi4vcm91dGVzJztcblxuY29uc3Qgd2l0aFJlYWN0Um91dGVzID0gQ29tcG9uZW50ID0+IHByb3BzID0+IChcbiAgPFJvdXRlciBoaXN0b3J5PXtoaXN0b3J5fT5cbiAgICA8QXBwU3dpdGNoZXI+XG4gICAgICA8Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbiAgICA8L0FwcFN3aXRjaGVyPlxuICA8L1JvdXRlcj5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhSZWFjdFJvdXRlcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vd2l0aFJlYWN0Um91dGVzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHsgc2VsZWN0U2V0dGluZ3NCeUNhdGVnb3J5IH0gZnJvbSAnLi4vU2V0dGluZ1JlY29yZHMvU2V0dGluZ1JlY29yZHNTZWxlY3RvcnMnO1xuXG5pbXBvcnQgU2V0dGluZ3NUYWJsZSBmcm9tICcuL1NldHRpbmdzVGFibGUnO1xuXG5jb25zdCBXcmFwcGVkU2V0dGluZ3NUYWJsZSA9IHByb3BzID0+IHtcbiAgY29uc3Qgc2V0dGluZ3MgPSB1c2VTZWxlY3RvcihzdGF0ZSA9PlxuICAgIHNlbGVjdFNldHRpbmdzQnlDYXRlZ29yeShwcm9wcy5jYXRlZ29yeSkoc3RhdGUpXG4gICk7XG5cbiAgcmV0dXJuIDxTZXR0aW5nc1RhYmxlIHNldHRpbmdzPXtzZXR0aW5nc30gLz47XG59O1xuXG5XcmFwcGVkU2V0dGluZ3NUYWJsZS5wcm9wVHlwZXMgPSB7XG4gIGNhdGVnb3J5OiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBXcmFwcGVkU2V0dGluZ3NUYWJsZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdzVGFibGUvaW5kZXguanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi9jb21tb24vdGFibGUnO1xuXG5pbXBvcnQgY3JlYXRlU2V0dGluZ3NUYWJsZVNjaGVtYSBmcm9tICcuL1NldHRpbmdzVGFibGVTY2hlbWEnO1xuXG5jb25zdCBTZXR0aW5nc1RhYmxlID0gKHsgc2V0dGluZ3MgfSkgPT4gKFxuICA8VGFibGVcbiAgICBrZXk9XCJzZXR0aW5ncy10YWJsZVwiXG4gICAgY29sdW1ucz17Y3JlYXRlU2V0dGluZ3NUYWJsZVNjaGVtYX1cbiAgICByb3dzPXtzZXR0aW5nc31cbiAgLz5cbik7XG5cblNldHRpbmdzVGFibGUucHJvcFR5cGVzID0ge1xuICBzZXR0aW5nczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZXR0aW5nc1RhYmxlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ3NUYWJsZS9TZXR0aW5nc1RhYmxlLmpzIiwiaW1wb3J0IHtcbiAgY29sdW1uLFxuICBoZWFkZXJGb3JtYXR0ZXJXaXRoUHJvcHMsXG4gIGNlbGxGb3JtYXR0ZXIsXG4gIGNlbGxGb3JtYXR0ZXJXaXRoUHJvcHMsXG59IGZyb20gJy4uL2NvbW1vbi90YWJsZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5cbmltcG9ydCB7XG4gIHNldHRpbmdOYW1lQ2VsbEZvcm1hdHRlcixcbiAgc2V0dGluZ1ZhbHVlQ2VsbEZvcm1hdHRlcixcbn0gZnJvbSAnLi9TZXR0aW5nc1RhYmxlRm9ybWF0dGVycyc7XG5cbmNvbnN0IGNyZWF0ZVNldHRpbmdzVGFibGVTY2hlbWEgPSBbXG4gIGNvbHVtbihcbiAgICAnZnVsbE5hbWUnLFxuICAgIF9fKCdOYW1lJyksXG4gICAgW2hlYWRlckZvcm1hdHRlcldpdGhQcm9wc10sXG4gICAgW3NldHRpbmdOYW1lQ2VsbEZvcm1hdHRlciwgY2VsbEZvcm1hdHRlcldpdGhQcm9wc10sXG4gICAgeyBjbGFzc05hbWU6ICdjb2wtbWQtMicgfVxuICApLFxuICBjb2x1bW4oXG4gICAgJ3ZhbHVlJyxcbiAgICBfXygnVmFsdWUnKSxcbiAgICBbaGVhZGVyRm9ybWF0dGVyV2l0aFByb3BzXSxcbiAgICBbc2V0dGluZ1ZhbHVlQ2VsbEZvcm1hdHRlciwgY2VsbEZvcm1hdHRlcldpdGhQcm9wc10sXG4gICAgeyBjbGFzc05hbWU6ICdjb2wtbWQtMycgfVxuICApLFxuICBjb2x1bW4oXG4gICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICBfXygnRGVzY3JpcHRpb24nKSxcbiAgICBbaGVhZGVyRm9ybWF0dGVyV2l0aFByb3BzXSxcbiAgICBbY2VsbEZvcm1hdHRlcl1cbiAgKSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVNldHRpbmdzVGFibGVTY2hlbWE7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nc1RhYmxlL1NldHRpbmdzVGFibGVTY2hlbWEuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCB7IHdpdGhUb29sdGlwIH0gZnJvbSAnLi9TZXR0aW5nc1RhYmxlSGVscGVycyc7XG5cbmltcG9ydCBTZXR0aW5nTmFtZSBmcm9tICcuL2NvbXBvbmVudHMvU2V0dGluZ05hbWUnO1xuaW1wb3J0IFNldHRpbmdDZWxsIGZyb20gJy4vY29tcG9uZW50cy9TZXR0aW5nQ2VsbCc7XG5cbmV4cG9ydCBjb25zdCBzZXR0aW5nTmFtZUNlbGxGb3JtYXR0ZXIgPSAodmFsdWUsIHsgcm93RGF0YSB9KSA9PiB7XG4gIGNvbnN0IFNldHRpbmdOYW1lV2l0aFRvb2x0aXAgPSB3aXRoVG9vbHRpcChTZXR0aW5nTmFtZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U2V0dGluZ05hbWVXaXRoVG9vbHRpcFxuICAgICAgc2V0dGluZz17cm93RGF0YX1cbiAgICAgIHRvb2x0aXBJZD17cm93RGF0YS5uYW1lfVxuICAgICAgdG9vbHRpcFRleHQ9e3Jvd0RhdGEubmFtZX1cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldHRpbmdWYWx1ZUNlbGxGb3JtYXR0ZXIgPSAodmFsdWUsIHsgcm93RGF0YTogc2V0dGluZyB9KSA9PiB7XG4gIGNvbnN0IGNzc0NsYXNzZXMgPSBjbGFzc05hbWVzKCdlbGxpcHNpcycsIHtcbiAgICAnZWRpdGFibGUtZW1wdHknOiAhc2V0dGluZy52YWx1ZSAmJiBzZXR0aW5nLnNldHRpbmdzVHlwZSAhPT0gJ2Jvb2xlYW4nLFxuICAgICdtYXNrZWQtaW5wdXQnOiBzZXR0aW5nLmVuY3J5cHRlZCxcbiAgICBlZGl0YWJsZTogIXNldHRpbmcucmVhZG9ubHksXG4gIH0pO1xuICByZXR1cm4gPFNldHRpbmdDZWxsIHZhbHVlPXt2YWx1ZX0gc2V0dGluZz17c2V0dGluZ30gY2xhc3NOYW1lPXtjc3NDbGFzc2VzfSAvPjtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nc1RhYmxlL1NldHRpbmdzVGFibGVGb3JtYXR0ZXJzLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi8uLi9jb21tb24vSTE4bic7XG5cbmNvbnN0IFNldHRpbmdOYW1lID0gKHsgc2V0dGluZyB9KSA9PiAoXG4gIDw+e3NldHRpbmcuZnVsbE5hbWUgPyBfXyhzZXR0aW5nLmZ1bGxOYW1lKSA6IHNldHRpbmcubmFtZX08Lz5cbik7XG5cblNldHRpbmdOYW1lLnByb3BUeXBlcyA9IHtcbiAgc2V0dGluZzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2V0dGluZ05hbWU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nc1RhYmxlL2NvbXBvbmVudHMvU2V0dGluZ05hbWUuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHsgc3ByaW50ZiwgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL0kxOG4nO1xuXG5pbXBvcnQgeyB3aXRoVG9vbHRpcCwgZGVmYXVsdFRvU3RyaW5nIH0gZnJvbSAnLi4vU2V0dGluZ3NUYWJsZUhlbHBlcnMnO1xuXG5pbXBvcnQgU2V0dGluZ0NlbGxJbm5lciBmcm9tICcuL1NldHRpbmdDZWxsSW5uZXInO1xuXG5pbXBvcnQgJy4vU2V0dGluZ0NlbGwuc2Nzcyc7XG5cbmNvbnN0IFNldHRpbmdDZWxsID0gKHsgc2V0dGluZywgY2xhc3NOYW1lIH0pID0+IHtcbiAgY29uc3QgZmllbGRQcm9wcyA9IHtcbiAgICBzZXR0aW5nLFxuICAgIHRvb2x0aXBJZDogc2V0dGluZy5uYW1lLFxuICAgIGNsYXNzTmFtZSxcbiAgfTtcblxuICBpZiAoc2V0dGluZy5yZWFkb25seSkge1xuICAgIGZpZWxkUHJvcHMudG9vbHRpcFRleHQgPSBzcHJpbnRmKFxuICAgICAgX18oXG4gICAgICAgICdUaGlzIHNldHRpbmcgaXMgZGVmaW5lZCBpbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlICVzIGFuZCBpcyByZWFkLW9ubHkuJ1xuICAgICAgKSxcbiAgICAgIHNldHRpbmcuY29uZmlnRmlsZVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZGVmYXVsdFN0ciA9IGRlZmF1bHRUb1N0cmluZyhzZXR0aW5nKTtcbiAgICBmaWVsZFByb3BzLnRvb2x0aXBUZXh0ID0gc3ByaW50ZihfXygnRGVmYXVsdDogJXMnKSwgZGVmYXVsdFN0cik7XG4gIH1cblxuICBjb25zdCBDb21wb25lbnQgPSB3aXRoVG9vbHRpcChTZXR0aW5nQ2VsbElubmVyKTtcbiAgcmV0dXJuIDxDb21wb25lbnQgey4uLmZpZWxkUHJvcHN9IC8+O1xufTtcblxuU2V0dGluZ0NlbGwucHJvcFR5cGVzID0ge1xuICBzZXR0aW5nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cblNldHRpbmdDZWxsLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2xhc3NOYW1lOiAnJyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNldHRpbmdDZWxsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ3NUYWJsZS9jb21wb25lbnRzL1NldHRpbmdDZWxsLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IHsgc2V0U2V0dGluZ0VkaXRpbmcgfSBmcm9tICcuLi8uLi9TZXR0aW5nUmVjb3Jkcy9TZXR0aW5nUmVjb3Jkc0FjdGlvbnMnO1xuaW1wb3J0IHVzZVNldHRpbmdNb2RhbCBmcm9tICcuLi8uLi9TZXR0aW5nVXBkYXRlTW9kYWwvdXNlU2V0dGluZ01vZGFsJztcblxuaW1wb3J0IHsgdmFsdWVUb1N0cmluZywgaGFzRGVmYXVsdCB9IGZyb20gJy4uL1NldHRpbmdzVGFibGVIZWxwZXJzJztcblxuY29uc3QgU2V0dGluZ0NlbGxJbm5lciA9IHByb3BzID0+IHtcbiAgY29uc3QgeyBzZXR0aW5nLCAuLi5yZXN0IH0gPSBwcm9wcztcblxuICBjb25zdCB7IHNldE1vZGFsT3BlbiB9ID0gdXNlU2V0dGluZ01vZGFsKCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcblxuICBjb25zdCBlZGl0YWJsZSA9ICFzZXR0aW5nLnJlYWRvbmx5O1xuICBjb25zdCBvcGVuTW9kYWwgPSAoKSA9PiB7XG4gICAgZGlzcGF0Y2goc2V0U2V0dGluZ0VkaXRpbmcoc2V0dGluZykpO1xuICAgIHNldE1vZGFsT3BlbigpO1xuICB9O1xuXG4gIGxldCBmaWVsZCA9IChcbiAgICA8ZGl2IG9uQ2xpY2s9e2VkaXRhYmxlID8gb3Blbk1vZGFsIDogdW5kZWZpbmVkfSB7Li4ucmVzdH0+XG4gICAgICB7dmFsdWVUb1N0cmluZyhzZXR0aW5nKX1cbiAgICA8L2Rpdj5cbiAgKTtcblxuICBpZiAoc2V0dGluZy52YWx1ZSAhPT0gc2V0dGluZy5kZWZhdWx0ICYmIGhhc0RlZmF1bHQoc2V0dGluZykpXG4gICAgZmllbGQgPSA8c3Ryb25nPntmaWVsZH08L3N0cm9uZz47XG4gIHJldHVybiBmaWVsZDtcbn07XG5cblNldHRpbmdDZWxsSW5uZXIucHJvcFR5cGVzID0ge1xuICBzZXR0aW5nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZXR0aW5nQ2VsbElubmVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ3NUYWJsZS9jb21wb25lbnRzL1NldHRpbmdDZWxsSW5uZXIuanMiLCIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ3NUYWJsZS9jb21wb25lbnRzL1NldHRpbmdDZWxsLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDU2NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgdXNlU2V0dGluZ01vZGFsIGZyb20gJy4vdXNlU2V0dGluZ01vZGFsJztcblxuaW1wb3J0IFNldHRpbmdVcGRhdGVNb2RhbCBmcm9tICcuL1NldHRpbmdVcGRhdGVNb2RhbCc7XG5cbmltcG9ydCB7IHNlbGVjdFNldHRpbmdFZGl0aW5nIH0gZnJvbSAnLi4vU2V0dGluZ1JlY29yZHMvU2V0dGluZ1JlY29yZHNTZWxlY3RvcnMnO1xuXG5jb25zdCBXcmFwcGVkU2V0dGluZ1VwZGF0ZU1vZGFsID0gcHJvcHMgPT4ge1xuICBjb25zdCBzZXR0aW5nID0gdXNlU2VsZWN0b3Ioc3RhdGUgPT4gc2VsZWN0U2V0dGluZ0VkaXRpbmcoc3RhdGUpKSB8fCB7fTtcblxuICBjb25zdCB7IHNldE1vZGFsQ2xvc2VkIH0gPSB1c2VTZXR0aW5nTW9kYWwoKTtcblxuICByZXR1cm4gKFxuICAgIDxTZXR0aW5nVXBkYXRlTW9kYWwgc2V0dGluZz17c2V0dGluZ30gc2V0TW9kYWxDbG9zZWQ9e3NldE1vZGFsQ2xvc2VkfSAvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgV3JhcHBlZFNldHRpbmdVcGRhdGVNb2RhbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdVcGRhdGVNb2RhbC9pbmRleC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgRm9yZW1hbk1vZGFsIGZyb20gJy4uL0ZvcmVtYW5Nb2RhbCc7XG5pbXBvcnQgeyBzcHJpbnRmLCB0cmFuc2xhdGUgYXMgX18gfSBmcm9tICcuLi8uLi9jb21tb24vSTE4bic7XG5cbmltcG9ydCBTZXR0aW5nRm9ybSBmcm9tICcuL2NvbXBvbmVudHMvU2V0dGluZ0Zvcm0nO1xuXG5pbXBvcnQgeyBTRVRUSU5HX1VQREFURV9NT0RBTCB9IGZyb20gJy4vU2V0dGluZ1VwZGF0ZU1vZGFsQ29uc3RhbnRzJztcblxuY29uc3QgU2V0dGluZ1VwZGF0ZU1vZGFsID0gKHsgc2V0dGluZywgc2V0TW9kYWxDbG9zZWQgfSkgPT4gKFxuICA8Rm9yZW1hbk1vZGFsXG4gICAgaWQ9e1NFVFRJTkdfVVBEQVRFX01PREFMfVxuICAgIHRpdGxlPXtzcHJpbnRmKF9fKCdVcGRhdGUgdmFsdWUgZm9yICVzIHNldHRpbmcnKSwgc2V0dGluZy5mdWxsTmFtZSl9XG4gICAgZW5mb3JjZUZvY3VzXG4gID5cbiAgICA8ZGl2PlxuICAgICAgPFNldHRpbmdGb3JtIHNldHRpbmc9e3NldHRpbmd9IHNldE1vZGFsQ2xvc2VkPXtzZXRNb2RhbENsb3NlZH0gLz5cbiAgICA8L2Rpdj5cbiAgPC9Gb3JlbWFuTW9kYWw+XG4pO1xuXG5TZXR0aW5nVXBkYXRlTW9kYWwucHJvcFR5cGVzID0ge1xuICBzZXR0aW5nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHNldE1vZGFsQ2xvc2VkOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2V0dGluZ1VwZGF0ZU1vZGFsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ1VwZGF0ZU1vZGFsL1NldHRpbmdVcGRhdGVNb2RhbC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgeyB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHN1Ym1pdEZvcm0gfSBmcm9tICcuLi8uLi8uLi8uLi9yZWR1eC9hY3Rpb25zL2NvbW1vbi9mb3Jtcyc7XG5pbXBvcnQgU2V0dGluZ0Zvcm0gZnJvbSAnLi9TZXR0aW5nRm9ybSc7XG5cbmNvbnN0IGluaXRpYWxWYWx1ZSA9IHNldHRpbmcgPT4ge1xuICBpZiAoc2V0dGluZy5lbmNyeXB0ZWQpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gc2V0dGluZy52YWx1ZSA9PT0gbnVsbCA/ICcnIDogc2V0dGluZy52YWx1ZTtcbn07XG5cbmNvbnN0IFdyYXBwZWRTZXR0aW5nRm9ybSA9IHByb3BzID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIHJldHVybiAoXG4gICAgPFNldHRpbmdGb3JtXG4gICAgICBzdWJtaXRGb3JtPXsoLi4uYXJncykgPT4gZGlzcGF0Y2goc3VibWl0Rm9ybSguLi5hcmdzKSl9XG4gICAgICBpbml0aWFsVmFsdWVzPXt7XG4gICAgICAgIHZhbHVlOiBpbml0aWFsVmFsdWUocHJvcHMuc2V0dGluZyksXG4gICAgICB9fVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59O1xuXG5XcmFwcGVkU2V0dGluZ0Zvcm0ucHJvcFR5cGVzID0ge1xuICBzZXR0aW5nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBXcmFwcGVkU2V0dGluZ0Zvcm07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9TZXR0aW5nVXBkYXRlTW9kYWwvY29tcG9uZW50cy9TZXR0aW5nRm9ybS9pbmRleC5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgRmllbGQgYXMgRm9ybWlrRmllbGQgfSBmcm9tICdmb3JtaWsnO1xuaW1wb3J0IEZvcmVtYW5Gb3JtIGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9Gb3JlbWFuRm9ybSc7XG5pbXBvcnQgU2V0dGluZ1ZhbHVlRmllbGQgZnJvbSAnLi4vU2V0dGluZ1ZhbHVlRmllbGQnO1xuaW1wb3J0IHsgU0VUVElOR19VUERBVEVfUEFUSCB9IGZyb20gJy4uLy4uL1NldHRpbmdVcGRhdGVNb2RhbENvbnN0YW50cyc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9JMThuJztcblxuY29uc3QgU2V0dGluZ0Zvcm0gPSAoe1xuICBzZXR0aW5nLFxuICBpbml0aWFsVmFsdWVzLFxuICBzZXRNb2RhbENsb3NlZCxcbiAgc3VibWl0Rm9ybSxcbn0pID0+IHtcbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKHZhbHVlcywgYWN0aW9ucykgPT4ge1xuICAgIGxldCBzdWJtaXRWYWx1ZXMgPSB7IHNldHRpbmc6IHZhbHVlcyB9O1xuXG4gICAgaWYgKHNldHRpbmcgJiYgc2V0dGluZy5zZXR0aW5nc1R5cGUgPT09ICdhcnJheScpIHtcbiAgICAgIGNvbnN0IHNwbGl0VmFsdWUgPSB2YWx1ZXMudmFsdWUgPT09ICcnID8gW10gOiB2YWx1ZXMudmFsdWUuc3BsaXQoJywnKTtcbiAgICAgIHN1Ym1pdFZhbHVlcyA9IHsgc2V0dGluZzogeyB2YWx1ZTogc3BsaXRWYWx1ZSB9IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1Ym1pdEZvcm0oe1xuICAgICAgdXJsOiBTRVRUSU5HX1VQREFURV9QQVRILnJlcGxhY2UoJzppZCcsIHNldHRpbmcuaWQpLFxuICAgICAgdmFsdWVzOiBzdWJtaXRWYWx1ZXMsXG4gICAgICBpdGVtOiAnU2V0dGluZ3MnLFxuICAgICAgbWVzc2FnZTogX18oJ1NldHRpbmcgd2FzIHN1Y2Nlc3NmdWxseSB1cGRhdGVkLicpLFxuICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogc2V0TW9kYWxDbG9zZWQsXG4gICAgICBhY3Rpb25zLFxuICAgIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZvcmVtYW5Gb3JtXG4gICAgICBvblN1Ym1pdD17aGFuZGxlU3VibWl0fVxuICAgICAgaW5pdGlhbFZhbHVlcz17aW5pdGlhbFZhbHVlc31cbiAgICAgIG9uQ2FuY2VsPXtzZXRNb2RhbENsb3NlZH1cbiAgICA+XG4gICAgICA8Rm9ybWlrRmllbGRcbiAgICAgICAgbmFtZT1cInZhbHVlXCJcbiAgICAgICAgbGFiZWw9e19fKCdWYWx1ZScpfVxuICAgICAgICBjb21wb25lbnQ9e1NldHRpbmdWYWx1ZUZpZWxkfVxuICAgICAgICBzZXR0aW5nPXtzZXR0aW5nfVxuICAgICAgLz5cbiAgICA8L0ZvcmVtYW5Gb3JtPlxuICApO1xufTtcblxuU2V0dGluZ0Zvcm0ucHJvcFR5cGVzID0ge1xuICBzZXR0aW5nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGluaXRpYWxWYWx1ZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgc2V0TW9kYWxDbG9zZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHN1Ym1pdEZvcm06IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBTZXR0aW5nRm9ybTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL1NldHRpbmdVcGRhdGVNb2RhbC9jb21wb25lbnRzL1NldHRpbmdGb3JtL1NldHRpbmdGb3JtLmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBDb2wsIEhlbHBCbG9jaywgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCB9IGZyb20gJ3BhdHRlcm5mbHktcmVhY3QnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCB7IGFycmF5U2VsZWN0aW9uIH0gZnJvbSAnLi4vLi4vU2V0dGluZ3NUYWJsZS9TZXR0aW5nc1RhYmxlSGVscGVycyc7XG5pbXBvcnQgeyByZW5kZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Zvcm1zL1NlbGVjdEhlbHBlcnMnO1xuXG5jb25zdCBTZXR0aW5nVmFsdWVGaWVsZCA9ICh7IHNldHRpbmcsIGZvcm0sIGZpZWxkIH0pID0+IHtcbiAgY29uc3QgeyBzZWxlY3RWYWx1ZXMgfSA9IHNldHRpbmc7XG4gIGNvbnN0IGNzc0NsYXNzZXMgPSBjbGFzc05hbWVzKHsgJ21hc2tlZC1pbnB1dCc6IHNldHRpbmcuZW5jcnlwdGVkIH0pO1xuXG4gIGxldCBpbnB1dEZpZWxkID0gPEZvcm1Db250cm9sIHsuLi5maWVsZH0gY2xhc3NOYW1lPXtjc3NDbGFzc2VzfSAvPjtcblxuICBjb25zdCBlcnJvciA9IGZvcm0uZXJyb3JzICYmIGZvcm0uZXJyb3JzLnZhbHVlO1xuXG4gIGlmIChzZWxlY3RWYWx1ZXMpIHtcbiAgICBpbnB1dEZpZWxkID0gKFxuICAgICAgPEZvcm1Db250cm9sIHsuLi5maWVsZH0gY29tcG9uZW50Q2xhc3M9XCJzZWxlY3RcIiBjbGFzc05hbWU9e2Nzc0NsYXNzZXN9PlxuICAgICAgICB7cmVuZGVyT3B0aW9ucyhhcnJheVNlbGVjdGlvbihzZXR0aW5nKSB8fCBzZWxlY3RWYWx1ZXMpfVxuICAgICAgPC9Gb3JtQ29udHJvbD5cbiAgICApO1xuICB9XG5cbiAgaWYgKHNldHRpbmcuc2V0dGluZ3NUeXBlID09PSAnYm9vbGVhbicpIHtcbiAgICBpbnB1dEZpZWxkID0gKFxuICAgICAgPEZvcm1Db250cm9sIHsuLi5maWVsZH0gY29tcG9uZW50Q2xhc3M9XCJzZWxlY3RcIiBjbGFzc05hbWU9e2Nzc0NsYXNzZXN9PlxuICAgICAgICA8b3B0aW9uIHZhbHVlPntfXygnWWVzJyl9PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9e2ZhbHNlfT57X18oJ05vJyl9PC9vcHRpb24+XG4gICAgICA8L0Zvcm1Db250cm9sPlxuICAgICk7XG4gIH1cblxuICBpZiAoc2V0dGluZy5zZXR0aW5nc1R5cGUgPT09ICdhcnJheScpIHtcbiAgICBpbnB1dEZpZWxkID0gKFxuICAgICAgPEZvcm1Db250cm9sXG4gICAgICAgIHsuLi5maWVsZH1cbiAgICAgICAgY29tcG9uZW50Q2xhc3M9XCJ0ZXh0YXJlYVwiXG4gICAgICAgIGNsYXNzTmFtZT17Y3NzQ2xhc3Nlc31cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGhlbHBCbG9jayA9IChcbiAgICA8SGVscEJsb2NrPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZXJyb3ItbXNnXCI+e2Vycm9yfTwvc3Bhbj5cbiAgICA8L0hlbHBCbG9jaz5cbiAgKTtcblxuICBjb25zdCBlbmNyeXB0ZWRIZWxwID0gKFxuICAgIDxIZWxwQmxvY2s+XG4gICAgICB7X18oXG4gICAgICAgICdUaGlzIHNldHRpbmcgaXMgZW5jcnlwdGVkLiBFbXB0eSBpbnB1dCBmaWVsZCBpcyBkaXNwbGF5ZWQgaW5zdGVhZCBvZiB0aGUgc2V0dGluZyB2YWx1ZS4nXG4gICAgICApfVxuICAgIDwvSGVscEJsb2NrPlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPEZvcm1Hcm91cCBjbGFzc05hbWU9e2Vycm9yID8gJ2hhcy1lcnJvcicgOiAnJ30+XG4gICAgICAgIDxDb2wgbWQ9ezEwfT5cbiAgICAgICAgICB7aW5wdXRGaWVsZH1cbiAgICAgICAgICB7c2V0dGluZy5lbmNyeXB0ZWQgJiYgZW5jcnlwdGVkSGVscH1cbiAgICAgICAgPC9Db2w+XG4gICAgICAgIHtlcnJvciAmJiBoZWxwQmxvY2t9XG4gICAgICA8L0Zvcm1Hcm91cD5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufTtcblxuU2V0dGluZ1ZhbHVlRmllbGQucHJvcFR5cGVzID0ge1xuICBzZXR0aW5nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGZvcm06IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZmllbGQ6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNldHRpbmdWYWx1ZUZpZWxkO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL2NvbXBvbmVudHMvU2V0dGluZ1VwZGF0ZU1vZGFsL2NvbXBvbmVudHMvU2V0dGluZ1ZhbHVlRmllbGQuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSBhcyBfXyB9IGZyb20gJy4uLy4uL2NvbW1vbi9JMThuJztcbmltcG9ydCBFbXB0eVN0YXRlIGZyb20gJy4uL2NvbW1vbi9FbXB0eVN0YXRlJztcbmltcG9ydCB7IGZvcmVtYW5VcmwsIGdldE1hbnVhbFVSTCB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IFdlbGNvbWVBdXRoU291cmNlID0gKHsgY2FuQ3JlYXRlIH0pID0+IHtcbiAgY29uc3QgY29udGVudCA9IF9fKFxuICAgIGBUaGUgYXV0aGVudGljYXRpb24gcHJvY2VzcyBjdXJyZW50bHkgcmVxdWlyZXMgYW4gTERBUCBwcm92aWRlciwgc3VjaCBhcyA8ZW0+RnJlZUlQQTwvZW0+LCA8ZW0+T3BlbkxEQVA8L2VtPiBvciA8ZW0+TWljcm9zb2Z0J3MgQWN0aXZlIERpcmVjdG9yeTwvZW0+LmBcbiAgKTtcbiAgY29uc3QgZGVzY3JpcHRpb24gPSAoXG4gICAgPD5cbiAgICAgIHtfXyhcbiAgICAgICAgJ0ZvcmVtYW4gY2FuIHVzZSBMREFQIGJhc2VkIHNlcnZpY2UgZm9yIHVzZXIgaW5mb3JtYXRpb24gYW5kIGF1dGhlbnRpY2F0aW9uLidcbiAgICAgICl9XG4gICAgICA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogY29udGVudCB9fSAvPlxuICAgICAgPGEgaHJlZj17Z2V0TWFudWFsVVJMKCc0LjEuMUxEQVBBdXRoZW50aWNhdGlvbicpfT5cbiAgICAgICAge19fKCdMZWFybiBtb3JlIGFib3V0IExEQVAgYXV0aGVudGljYXRpb24gaW4gdGhlIGRvY3VtZW50YXRpb24uJyl9XG4gICAgICA8L2E+XG4gICAgICA8YnIgLz5cbiAgICAgIHtfXyhcbiAgICAgICAgJ0ZvcmVtYW4gY2FuIHVzZSBFeHRlcm5hbCBzZXJ2aWNlIGZvciB1c2VyIGluZm9ybWF0aW9uIGFuZCBhdXRoZW50aWNhdGlvbi4nXG4gICAgICApfVxuICAgICAgPGJyIC8+XG4gICAgICA8YSBocmVmPXtnZXRNYW51YWxVUkwoJzUuN0V4dGVybmFsQXV0aGVudGljYXRpb24nKX0+XG4gICAgICAgIHtfXygnTGVhcm4gbW9yZSBhYm91dCBFeHRlcm5hbCBhdXRoZW50aWNhdGlvbiBpbiB0aGUgZG9jdW1lbnRhdGlvbi4nKX1cbiAgICAgIDwvYT5cbiAgICA8Lz5cbiAgKTtcbiAgY29uc3QgYWN0aW9uID0gY2FuQ3JlYXRlICYmIHtcbiAgICB0aXRsZTogX18oJ0NyZWF0ZSBMREFQIEF1dGhlbnRpY2F0aW9uIFNvdXJjZScpLFxuICAgIHVybDogZm9yZW1hblVybCgnYXV0aF9zb3VyY2VfbGRhcHMvbmV3JyksXG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8RW1wdHlTdGF0ZVxuICAgICAgaWNvbj1cInVzZXJzXCJcbiAgICAgIGljb25UeXBlPVwiZmFcIlxuICAgICAgaGVhZGVyPXtfXygnQXV0aGVudGljYXRpb24gU291cmNlcycpfVxuICAgICAgZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufVxuICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgLz5cbiAgKTtcbn07XG5cbldlbGNvbWVBdXRoU291cmNlLnByb3BUeXBlcyA9IHtcbiAgY2FuQ3JlYXRlOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbldlbGNvbWVBdXRoU291cmNlLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2FuQ3JlYXRlOiBmYWxzZSxcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi93ZWJwYWNrL2Fzc2V0cy9qYXZhc2NyaXB0cy9yZWFjdF9hcHAvY29tcG9uZW50cy9BdXRoU291cmNlL1dlbGNvbWUuanMiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IEVtcHR5U3RhdGUgZnJvbSAnLi4vY29tbW9uL0VtcHR5U3RhdGUnO1xuaW1wb3J0IHsgZ2V0TWFudWFsVVJMLCBnZXRXaWtpVVJMIH0gZnJvbSAnLi4vLi4vY29tbW9uL2hlbHBlcnMnO1xuXG5leHBvcnQgY29uc3QgV2VsY29tZUNvbmZpZ1JlcG9ydHMgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRlbnQgPSBfXyhgSWYgeW91IHdpc2ggdG8gY29uZmlndXJlIFB1cHBldCB0byBmb3J3YXJkIGl0cyByZXBvcnRzIHRvIEZvcmVtYW4sIFxuICBwbGVhc2UgZm9sbG93IDxhIGhyZWY9JHtnZXRNYW51YWxVUkwoXG4gICAgJzMuNS40UHVwcGV0UmVwb3J0cydcbiAgKX0+c2V0dGluZyB1cCByZXBvcnRpbmc8L2E+IGFuZFxuICA8YSBocmVmPSR7Z2V0V2lraVVSTCgnTWFpbF9Ob3RpZmljYXRpb25zJyl9PmUtbWFpbCByZXBvcnRpbmc8L2E+YCk7XG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gKFxuICAgIDw+XG4gICAgICB7X18oXCJZb3UgZG9uJ3Qgc2VlbSB0byBoYXZlIGFueSByZXBvcnRzLlwiKX1cbiAgICAgIDxkaXYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBjb250ZW50IH19IC8+XG4gICAgPC8+XG4gICk7XG4gIHJldHVybiAoXG4gICAgPEVtcHR5U3RhdGVcbiAgICAgIGljb249XCJib29rXCJcbiAgICAgIGljb25UeXBlPVwiZmFcIlxuICAgICAgaGVhZGVyPXtfXygnUmVwb3J0cycpfVxuICAgICAgZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufVxuICAgICAgZG9jdW1lbnRhdGlvbj17eyB1cmw6IGdldE1hbnVhbFVSTCgnMy41LjRQdXBwZXRSZXBvcnRzJykgfX1cbiAgICAvPlxuICApO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0NvbmZpZ1JlcG9ydHMvV2VsY29tZS5qcyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIGFzIF9fIH0gZnJvbSAnLi4vLi4vY29tbW9uL0kxOG4nO1xuaW1wb3J0IEVtcHR5U3RhdGUgZnJvbSAnLi4vY29tbW9uL0VtcHR5U3RhdGUnO1xuaW1wb3J0IHsgZm9yZW1hblVybCB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzJztcblxuZXhwb3J0IGNvbnN0IFdlbGNvbWVBcmNoaXRlY3R1cmUgPSAoeyBjYW5DcmVhdGUgfSkgPT4ge1xuICBjb25zdCBhY3Rpb24gPSBjYW5DcmVhdGUgJiYge1xuICAgIHRpdGxlOiBfXygnQ3JlYXRlIEFyY2hpdGVjdHVyZScpLFxuICAgIHVybDogZm9yZW1hblVybCgnL2FyY2hpdGVjdHVyZXMvbmV3JyksXG4gIH07XG4gIGNvbnN0IGNvbnRlbnQgPSBfXyhgRWFjaCBlbnRyeSByZXByZXNlbnRzIGEgcGFydGljdWxhciBoYXJkd2FyZSBhcmNoaXRlY3R1cmUsIG1vc3QgY29tbW9ubHkgPGI+eDg2XzY0PC9iPiBvciA8Yj5pMzg2PC9iPi5cbiAgRm9yZW1hbiBhbHNvIHN1cHBvcnRzIHRoZSBTb2xhcmlzIG9wZXJhdGluZyBzeXN0ZW0gZmFtaWx5LCB3aGljaCBpbmNsdWRlcyA8Yj5zcGFyYzwvYj4gYmFzZWQgc3lzdGVtcy5gKTtcbiAgY29uc3QgZGVzY3JpcHRpb24gPSAoXG4gICAgPD5cbiAgICAgIHtfXyhcbiAgICAgICAgJ0JlZm9yZSB5b3UgcHJvY2VlZCB0byB1c2luZyBGb3JlbWFuIHlvdSBzaG91bGQgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCBvbmUgb3IgbW9yZSBhcmNoaXRlY3R1cmVzLidcbiAgICAgICl9XG4gICAgICA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogY29udGVudCB9fSAvPlxuICAgICAge19fKFxuICAgICAgICAnRWFjaCBhcmNoaXRlY3R1cmUgY2FuIGFsc28gYmUgYXNzb2NpYXRlZCB3aXRoIG1vcmUgdGhhbiBvbmUgb3BlcmF0aW5nIHN5c3RlbSBhbmQgYSBzZWxlY3RvciBibG9jayBpcyBwcm92aWRlZCB0byBhbGxvdyB5b3UgdG8gc2VsZWN0IHZhbGlkIGNvbWJpbmF0aW9ucy4nXG4gICAgICApfVxuICAgIDwvPlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEVtcHR5U3RhdGVcbiAgICAgIGljb249XCJidWlsZGluZ1wiXG4gICAgICBpY29uVHlwZT1cImZhXCJcbiAgICAgIGhlYWRlcj17X18oJ0FyY2hpdGVjdHVyZXMnKX1cbiAgICAgIGRlc2NyaXB0aW9uPXtkZXNjcmlwdGlvbn1cbiAgICAgIGFjdGlvbj17YWN0aW9ufVxuICAgIC8+XG4gICk7XG59O1xuXG5XZWxjb21lQXJjaGl0ZWN0dXJlLnByb3BUeXBlcyA9IHtcbiAgY2FuQ3JlYXRlOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbldlbGNvbWVBcmNoaXRlY3R1cmUuZGVmYXVsdFByb3BzID0ge1xuICBjYW5DcmVhdGU6IGZhbHNlLFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21wb25lbnRzL0FyY2hpdGVjdHVyZXMvV2VsY29tZS5qcyIsImltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHN0b3JlIGZyb20gJy4uL3JlZHV4JztcbmltcG9ydCBjb21wb25lbnRSZWdpc3RyeSBmcm9tICcuLi9jb21wb25lbnRzL2NvbXBvbmVudFJlZ2lzdHJ5JztcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyByZWdpc3RlclJlZHVjZXIgfSBmcm9tICcuLi9yZWR1eC9yZWR1Y2Vycy9yZWdpc3RlclJlZHVjZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gbW91bnQoY29tcG9uZW50LCBzZWxlY3RvciwgZGF0YSwgZmxhdHRlbkRhdGEgPSBmYWxzZSkge1xuICBjb25zdCByZWFjdE5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcbiAgaWYgKHJlYWN0Tm9kZSkge1xuICAgIFJlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUocmVhY3ROb2RlKTtcblxuICAgIG1vdW50Tm9kZShjb21wb25lbnQsIHJlYWN0Tm9kZSwgZGF0YSwgZmxhdHRlbkRhdGEpO1xuICB9IGVsc2Uge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgQ2Fubm90IGZpbmQgJyR7c2VsZWN0b3J9JyBlbGVtZW50IGZvciBtb3VudGluZyB0aGUgJyR7Y29tcG9uZW50fSdgXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VudE5vZGUoY29tcG9uZW50LCByZWFjdE5vZGUsIGRhdGEsIGZsYXR0ZW5EYXRhKSB7XG4gIFJlYWN0RE9NLnJlbmRlcihcbiAgICBjb21wb25lbnRSZWdpc3RyeS5tYXJrdXAoY29tcG9uZW50LCB7XG4gICAgICBkYXRhLFxuICAgICAgc3RvcmUsXG4gICAgICBmbGF0dGVuRGF0YSxcbiAgICB9KSxcbiAgICByZWFjdE5vZGVcbiAgKTtcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGEgaHRtbCB0YWcgKFdlYiBjb21wb25lbnQpIHRoYXQgY2FuIGJlIHVzZWQgZm9yIG1vdW50aW5nIHJlYWN0IGNvbXBvbmVudCBmcm9tIENvbXBvbmVudFJlZ2lzdHJ5LlxuICovXG5jbGFzcyBSZWFjdENvbXBvbmVudEVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCkge1xuICAgIHJldHVybiBbJ2RhdGEtcHJvcHMnXTtcbiAgfVxuXG4gIGdldCBjb21wb25lbnROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnbmFtZScpO1xuICB9XG4gIGdldCByZWFjdFByb3BzKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGFzZXQucHJvcHMgIT09ICcnID8gSlNPTi5wYXJzZSh0aGlzLmRhdGFzZXQucHJvcHMpIDoge307XG4gIH1cbiAgc2V0IHJlYWN0UHJvcHMobmV3UHJvcHMpIHtcbiAgICB0aGlzLmRhdGFzZXQucHJvcHMgPSBKU09OLnN0cmluZ2lmeShuZXdQcm9wcyk7XG4gIH1cbiAgZ2V0IG1vdW50UG9pbnQoKSB7XG4gICAgaWYgKCF0aGlzLl9tb3VudFBvaW50KSB7XG4gICAgICB0aGlzLl9tb3VudFBvaW50ID0gdGhpcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbW91bnRQb2ludDtcbiAgfVxuXG4gIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUpIHtcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgJ2RhdGEtcHJvcHMnOlxuICAgICAgICAvLyBpZiB0aGlzIGlzIG5vdCB0aGUgaW5pdGlhbCBwcm9wIHNldFxuICAgICAgICBpZiAob2xkVmFsdWUgIT09IG51bGwpIHRoaXMuX3JlbmRlcigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAvLyBXZSBkb24ndCBrbm93IGhvdyB0byByZWFjdCB0byBkZWZhdWx0IGF0dHJpYnV0ZSBjaGFuZ2VcbiAgICB9XG4gIH1cblxuICBjb25uZWN0ZWRDYWxsYmFjaygpIHtcbiAgICB0aGlzLl9yZW5kZXIoKTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkge1xuICAgIHRyeSB7XG4gICAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKHRoaXMubW91bnRQb2ludCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIHVubW91bnQgZm9yZW1hbi1yZWFjdC1jb21wb25lbnQ6ICR7dGhpcy5jb21wb25lbnROYW1lfWAsXG4gICAgICAgIGVycm9yXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIF9yZW5kZXIoKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1vdW50Tm9kZSh0aGlzLmNvbXBvbmVudE5hbWUsIHRoaXMsIHRoaXMucmVhY3RQcm9wcywgdHJ1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgVW5hYmxlIHRvIG1vdW50IGZvcmVtYW4tcmVhY3QtY29tcG9uZW50OiAke3RoaXMuY29tcG9uZW50TmFtZX1gLFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuaWYgKCF3aW5kb3cuY3VzdG9tRWxlbWVudHMuZ2V0KCdmb3JlbWFuLXJlYWN0LWNvbXBvbmVudCcpKSB7XG4gIHdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoXG4gICAgJ2ZvcmVtYW4tcmVhY3QtY29tcG9uZW50JyxcbiAgICBSZWFjdENvbXBvbmVudEVsZW1lbnRcbiAgKTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3dlYnBhY2svYXNzZXRzL2phdmFzY3JpcHRzL3JlYWN0X2FwcC9jb21tb24vTW91bnRpbmdTZXJ2aWNlLmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX0ZPUkVNQU5fVkVORE9SX19SRUFDVF9ET01fXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCBcIl9fRk9SRU1BTl9WRU5ET1JfX1JFQUNUX0RPTV9fXCJcbi8vIG1vZHVsZSBpZCA9IDU3OFxuLy8gbW9kdWxlIGNodW5rcyA9IDEgMiIsImltcG9ydCBmb3JjZVNpbmdsZXRvbiBmcm9tICcuLi8uLi9jb21tb24vZm9yY2VTaW5nbGV0b24nO1xuaW1wb3J0IHN0b3JlIGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7IGNvbWJpbmVSZWR1Y2Vyc0FzeW5jIH0gZnJvbSAnLi9pbmRleCc7XG5cbmNvbnN0IGFzeW5jUmVkdWNlcnMgPSBmb3JjZVNpbmdsZXRvbignYXN5bmNfcmVkdWNlcnMnLCAoKSA9PiAoe30pKTtcblxuZXhwb3J0IGRlZmF1bHQgKG5hbWUsIGFzeW5jUmVkdWNlcikgPT4ge1xuICBhc3luY1JlZHVjZXJzW25hbWVdID0gYXN5bmNSZWR1Y2VyO1xuICBzdG9yZS5yZXBsYWNlUmVkdWNlcihjb21iaW5lUmVkdWNlcnNBc3luYyhhc3luY1JlZHVjZXJzKSk7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vd2VicGFjay9hc3NldHMvamF2YXNjcmlwdHMvcmVhY3RfYXBwL3JlZHV4L3JlZHVjZXJzL3JlZ2lzdGVyUmVkdWNlci5qcyIsImltcG9ydCB7IHJlZ2lzdGVyUmVkdWNlciB9IGZyb20gJ2ZvcmVtYW5SZWFjdC9jb21tb24vTW91bnRpbmdTZXJ2aWNlJztcbmltcG9ydCB7IGFkZEdsb2JhbEZpbGwgfSBmcm9tICdmb3JlbWFuUmVhY3QvY29tcG9uZW50cy9jb21tb24vRmlsbC9HbG9iYWxGaWxsJztcbmltcG9ydCB7IHJlZ2lzdGVyUm91dGVzIH0gZnJvbSAnZm9yZW1hblJlYWN0L3JvdXRlcy9Sb3V0aW5nU2VydmljZSc7XG5pbXBvcnQgUm91dGVzIGZyb20gJy4vc3JjL1JvdXRlci9yb3V0ZXMnO1xuaW1wb3J0IHJlZHVjZXJzIGZyb20gJy4vc3JjL3JlZHVjZXJzJztcblxuLy8gcmVnaXN0ZXIgcmVkdWNlcnNcbk9iamVjdC5lbnRyaWVzKHJlZHVjZXJzKS5mb3JFYWNoKChba2V5LCByZWR1Y2VyXSkgPT5cbiAgICByZWdpc3RlclJlZHVjZXIoa2V5LCByZWR1Y2VyKVxuKTtcblxuLy8gcmVnaXN0ZXIgY2xpZW50IHJvdXRlc1xucmVnaXN0ZXJSb3V0ZXMoJ0ZvcmVtYW5QYXRjaCcsIFJvdXRlcyk7XG5cbi8vIHJlZ2lzdGVyIGZpbGxzIGZvciBleHRlbmRpbmcgZm9yZW1hbiBjb3JlXG4vL2FkZEdsb2JhbEZpbGwoJ2hvc3Qtb3ZlcnZpZXctY2FyZHMnLCAnUGF0Y2hpbmcgRGV0YWlscycsICk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC9wcm9qZWN0cy9mb3JlbWFuX3BhdGNoL3dlYnBhY2svZ2xvYmFsX2luZGV4LmpzIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3Qgcm91dGVzID0gW107XG5cbmV4cG9ydCBkZWZhdWx0IHJvdXRlcztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gL3Byb2plY3RzL2ZvcmVtYW5fcGF0Y2gvd2VicGFjay9zcmMvUm91dGVyL3JvdXRlcy5qcyIsImltcG9ydCB7IGNvbWJpbmVSZWR1Y2VycyB9IGZyb20gJ3JlZHV4JztcblxuY29uc3QgcmVkdWNlcnMgPSB7XG4gIGZvcmVtYW5QYXRjaDogY29tYmluZVJlZHVjZXJzKHt9KSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHJlZHVjZXJzO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAvcHJvamVjdHMvZm9yZW1hbl9wYXRjaC93ZWJwYWNrL3NyYy9yZWR1Y2Vycy5qcyJdLCJzb3VyY2VSb290IjoiIn0=