(self["webpackChunk"] = self["webpackChunk"] || []).push([["adminlte-common"],{ /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/app.common.js": /*!************************************************************************************!*\ !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/app.common.js ***! \************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/src/jquery.js"); /* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var adminlte_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! adminlte-js */ "./node_modules/admin-lte/dist/js/adminlte.min.js"); /* harmony import */ var adminlte_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(adminlte_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var adminlte_plugin_bootstrap_js_bootstrap_min_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! adminlte-plugin/bootstrap/js/bootstrap.min.js */ "./node_modules/admin-lte/plugins/bootstrap/js/bootstrap.min.js"); /* harmony import */ var adminlte_plugin_bootstrap_js_bootstrap_min_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(adminlte_plugin_bootstrap_js_bootstrap_min_js__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var adminlte_plugin_select2_js_select2_min_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! adminlte-plugin/select2/js/select2.min.js */ "./node_modules/admin-lte/plugins/select2/js/select2.min.js"); /* harmony import */ var adminlte_plugin_select2_js_select2_min_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(adminlte_plugin_select2_js_select2_min_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var adminlte_plugin_select2_js_i18n_fr_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! adminlte-plugin/select2/js/i18n/fr.js */ "./node_modules/admin-lte/plugins/select2/js/i18n/fr.js"); /* harmony import */ var adminlte_plugin_select2_js_i18n_fr_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(adminlte_plugin_select2_js_i18n_fr_js__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var adminlte_plugin_select2_css_select2_min_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! adminlte-plugin/select2/css/select2.min.css */ "./node_modules/admin-lte/plugins/select2/css/select2.min.css"); /* harmony import */ var adminlte_plugin_select2_bootstrap4_theme_select2_bootstrap4_min_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! adminlte-plugin/select2-bootstrap4-theme/select2-bootstrap4.min.css */ "./node_modules/admin-lte/plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css"); /* harmony import */ var toastr_toastr_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! toastr/toastr.js */ "./node_modules/toastr/toastr.js"); /* harmony import */ var toastr_toastr_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(toastr_toastr_js__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var toastr_toastr_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! toastr/toastr.scss */ "./node_modules/toastr/toastr.scss"); /* harmony import */ var _tools_tools_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../tools/tools.js */ "../LaClicBundle/SovBundle/Resources/assets/tools/tools.js"); /* harmony import */ var _js_notification_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./js/notification.js */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/js/notification.js"); /* harmony import */ var _common_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./common.scss */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/common.scss"); /* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./common.js */ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/common.js"); /* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_common_js__WEBPACK_IMPORTED_MODULE_12__); // JQuery __webpack_require__.g.$ = __webpack_require__.g.jQuery = $; // Adminlte // Bootstrap // Select2 // Toastr __webpack_require__.g.toastr = (toastr_toastr_js__WEBPACK_IMPORTED_MODULE_7___default()); // Tools __webpack_require__.g.Tools = _tools_tools_js__WEBPACK_IMPORTED_MODULE_9__.Tools; __webpack_require__.g.Notification = _js_notification_js__WEBPACK_IMPORTED_MODULE_10__.Notification; _js_notification_js__WEBPACK_IMPORTED_MODULE_10__.Notification.init(); // Common /***/ }), /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/common.js": /*!********************************************************************************!*\ !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/common.js ***! \********************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); /* Notifications */ //Notification.init() ; /* Tooltip */ $('[data-toggle="tooltip"]').tooltip(); /* Select2 */ if ($('.select2, select.form-control').length) { $('form .form-widget>select.form-control, .select2').each(function (i, elm) { if (!$(this).hasClass('disable-select2')) { setSelect2($(elm)); } }); $('form select.form-control').each(function (i, elm) { if (!$(this).hasClass('disable-select2')) { setSelect2($(elm)); } }); } function setSelect2($select) { if (typeof $select.data('select2-id') === 'undefined') { $select.data('init', 'set'); var options = { width: "100%", theme: "bootstrap4", dropdownAutoWidth: false, allowClear: true, minimumResultsForSearch: 8 }; if ($select.data('allow-clear') == 'false') { options.allowClear = false; } if ($select.data('width')) { options.width = 'auto'; } if ($select.find('option[value=""]')) { options.placeholder = $select.find('option[value=""]').html(); } /*if($select.is(':required') == false) { options.allowclear = true }*/ var myselect = $select.select2(options); myselect.on('select2:select', function (e) { var event = new Event('change'); e.target.dispatchEvent(event); }); myselect.on('select2:unselect', function (e) { var event = new Event('change'); e.target.dispatchEvent(event); }); return myselect; } } $('.action-delete').on('click', function (e) { e.preventDefault(); var formAction = $(this).attr('formaction'); $('#modal-delete').modal({ backdrop: true, keyboard: true }).off('click', '#modal-delete-button').on('click', '#modal-delete-button', function () { var deleteForm = $('#delete-form'); deleteForm.attr('action', formAction); deleteForm.submit(); }); }); /***/ }), /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/js/notification.js": /*!*****************************************************************************************!*\ !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/js/notification.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Notification": () => (/* binding */ Notification) /* harmony export */ }); /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js"); /* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js"); /* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.find.js */ "./node_modules/core-js/modules/es.array.find.js"); /* harmony import */ var core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_js__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var core_js_modules_es_object_define_property_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); /* harmony import */ var core_js_modules_es_object_define_property_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_define_property_js__WEBPACK_IMPORTED_MODULE_3__); 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, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var Notification = /*#__PURE__*/function () { function Notification() { _classCallCheck(this, Notification); } _createClass(Notification, null, [{ key: "init", value: function init() { toastr.options.timeOut = 3000; toastr.options.positionClass = 'toast-bottom-right'; toastr.options.onHidden = function () { if ($('#toast-container .toast').length == 1) { $('#toast-close-all').remove(); } }; } }, { key: "set", value: function set(notifications) { var currentNotifications = new Array(); for (var type in notifications) { for (var key in notifications[type]) { if (!currentNotifications.includes(notifications[type][key])) { currentNotifications.push(notifications[type][key]); self.add(type, notifications[type][key]); } } } } }, { key: "add", value: function add(type, text) { toastr[type](text); var $container = $('#toast-container'); var selectorButtonCloseAll = '#toast-close-all'; var countMessages = $container.find('.toast').length; if ($(selectorButtonCloseAll).length == 0 && countMessages > 2) { $container.prepend(''); } $(selectorButtonCloseAll).off('click').on('click', function () { toastr.remove(); if (countMessages == 0) { $('#toast-close-all').remove(); } }); } }]); return Notification; }(); /***/ }), /***/ "../LaClicBundle/SovBundle/Resources/assets/tools/tools.js": /*!*****************************************************************!*\ !*** ../LaClicBundle/SovBundle/Resources/assets/tools/tools.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Tools": () => (/* binding */ Tools) /* harmony export */ }); /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js"); /* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.date.to-string.js */ "./node_modules/core-js/modules/es.date.to-string.js"); /* harmony import */ var core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_date_to_string_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ "./node_modules/core-js/modules/es.regexp.exec.js"); /* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var core_js_modules_es_string_search_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.search.js */ "./node_modules/core-js/modules/es.string.search.js"); /* harmony import */ var core_js_modules_es_string_search_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_search_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ "./node_modules/core-js/modules/es.string.split.js"); /* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var core_js_modules_es_object_define_property_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.object.define-property.js */ "./node_modules/core-js/modules/es.object.define-property.js"); /* harmony import */ var core_js_modules_es_object_define_property_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_define_property_js__WEBPACK_IMPORTED_MODULE_5__); 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, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var Tools = /*#__PURE__*/function () { function Tools() { _classCallCheck(this, Tools); } _createClass(Tools, null, [{ key: "log", value: function log(value) { try { console.log(value); } catch (_unused) {} } }, { key: "arrayRemove", value: function arrayRemove(arr, value) { return arr.filter(function (ele) { return ele != value; }); } }, { key: "toPlainText", value: function toPlainText(html) { var scratchDiv = document.createElement('div'); scratchDiv.innerHTML = html; return scratchDiv.textContent; } }, { key: "getDateFormatted", value: function getDateFormatted(date, separator) { if (date) { var date = new Date(date); var _d = date.getDate(), d = _d > 9 ? _d : '0' + _d, _m = date.getMonth() + 1, m = _m > 9 ? _m : '0' + _m, formatted = d + separator + m + separator + date.getFullYear(); return formatted; } else { return ''; } } }, { key: "getUrlParameter", value: function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]); } } } }, { key: "indexOfFirstDigit", value: function indexOfFirstDigit(input) { var i = 0; for (; input[i] < '0' || input[i] > '9'; i++) { ; } return i == input.length ? -1 : i; } }, { key: "indexOfLastDigit", value: function indexOfLastDigit(input) { var i = input.length - 1; for (; input[i] < '0' || input[i] > '9'; i--) { ; } return i == input.length ? -1 : i; } }]); return Tools; }(); /***/ }), /***/ "../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/common.scss": /*!**********************************************************************************!*\ !*** ../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/common.scss ***! \**********************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); // extracted by mini-css-extract-plugin /***/ }) }, /******/ __webpack_require__ => { // webpackRuntimeModules /******/ "use strict"; /******/ /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ __webpack_require__.O(0, ["vendors-node_modules_core-js_internals_a-function_js-node_modules_core-js_internals_export_js","vendors-node_modules_core-js_modules_es_array_find_js","vendors-node_modules_core-js_internals_advance-string-index_js-node_modules_core-js_internals-bed4a0","vendors-node_modules_jquery_src_jquery_js","vendors-node_modules_admin-lte_dist_js_adminlte_min_js-node_modules_admin-lte_plugins_bootstr-9c1f64"], () => (__webpack_exec__("../LaClicBundle/SovBundle/Resources/assets/app/adminlte/common/app.common.js"))); /******/ var __webpack_exports__ = __webpack_require__.O(); /******/ } ]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9jb21tb24vYXBwLmNvbW1vbi5qcyIsIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9jb21tb24vY29tbW9uLmpzIiwid2VicGFjazovLy8uLi9MYUNsaWNCdW5kbGUvU292QnVuZGxlL1Jlc291cmNlcy9hc3NldHMvYXBwL2FkbWlubHRlL2NvbW1vbi9qcy9ub3RpZmljYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4uL0xhQ2xpY0J1bmRsZS9Tb3ZCdW5kbGUvUmVzb3VyY2VzL2Fzc2V0cy90b29scy90b29scy5qcyIsIndlYnBhY2s6Ly8vLi4vTGFDbGljQnVuZGxlL1NvdkJ1bmRsZS9SZXNvdXJjZXMvYXNzZXRzL2FwcC9hZG1pbmx0ZS9jb21tb24vY29tbW9uLnNjc3MiXSwibmFtZXMiOlsiZ2xvYmFsIiwiJCIsImpRdWVyeSIsInRvYXN0ciIsIlRvb2xzIiwiTm90aWZpY2F0aW9uIiwidG9vbHRpcCIsImxlbmd0aCIsImVhY2giLCJpIiwiZWxtIiwiaGFzQ2xhc3MiLCJzZXRTZWxlY3QyIiwiJHNlbGVjdCIsImRhdGEiLCJvcHRpb25zIiwid2lkdGgiLCJ0aGVtZSIsImRyb3Bkb3duQXV0b1dpZHRoIiwiYWxsb3dDbGVhciIsIm1pbmltdW1SZXN1bHRzRm9yU2VhcmNoIiwiZmluZCIsInBsYWNlaG9sZGVyIiwiaHRtbCIsIm15c2VsZWN0Iiwic2VsZWN0MiIsIm9uIiwiZSIsImV2ZW50IiwiRXZlbnQiLCJ0YXJnZXQiLCJkaXNwYXRjaEV2ZW50IiwicHJldmVudERlZmF1bHQiLCJmb3JtQWN0aW9uIiwiYXR0ciIsIm1vZGFsIiwiYmFja2Ryb3AiLCJrZXlib2FyZCIsIm9mZiIsImRlbGV0ZUZvcm0iLCJzdWJtaXQiLCJ0aW1lT3V0IiwicG9zaXRpb25DbGFzcyIsIm9uSGlkZGVuIiwicmVtb3ZlIiwibm90aWZpY2F0aW9ucyIsImN1cnJlbnROb3RpZmljYXRpb25zIiwiQXJyYXkiLCJ0eXBlIiwia2V5IiwiaW5jbHVkZXMiLCJwdXNoIiwic2VsZiIsImFkZCIsInRleHQiLCIkY29udGFpbmVyIiwic2VsZWN0b3JCdXR0b25DbG9zZUFsbCIsImNvdW50TWVzc2FnZXMiLCJwcmVwZW5kIiwidmFsdWUiLCJjb25zb2xlIiwibG9nIiwiYXJyIiwiZmlsdGVyIiwiZWxlIiwic2NyYXRjaERpdiIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImlubmVySFRNTCIsInRleHRDb250ZW50IiwiZGF0ZSIsInNlcGFyYXRvciIsIkRhdGUiLCJfZCIsImdldERhdGUiLCJkIiwiX20iLCJnZXRNb250aCIsIm0iLCJmb3JtYXR0ZWQiLCJnZXRGdWxsWWVhciIsInNQYXJhbSIsInNQYWdlVVJMIiwid2luZG93IiwibG9jYXRpb24iLCJzZWFyY2giLCJzdWJzdHJpbmciLCJzVVJMVmFyaWFibGVzIiwic3BsaXQiLCJzUGFyYW1ldGVyTmFtZSIsInVuZGVmaW5lZCIsImRlY29kZVVSSUNvbXBvbmVudCIsImlucHV0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTtBQUNBO0FBQ0FBLHFCQUFNLENBQUNDLENBQVAsR0FBV0QscUJBQU0sQ0FBQ0UsTUFBUCxHQUFnQkQsQ0FBM0IsQyxDQUVBOztDQUdBOztDQUdBOztBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBO0FBQ0E7QUFDQUQscUJBQU0sQ0FBQ0csTUFBUCxHQUFnQkEseURBQWhCLEMsQ0FFQTs7QUFDQTtBQUNBSCxxQkFBTSxDQUFDSSxLQUFQLEdBQWVBLGtEQUFmO0FBRUE7QUFDQUoscUJBQU0sQ0FBQ0ssWUFBUCxHQUFzQkEsOERBQXRCO0FBQ0FBLG1FQUFBLEcsQ0FFQTs7QUFDQTs7Ozs7Ozs7Ozs7OztBQzlCQTtBQUNBOztBQUVBO0FBQ0FKLENBQUMsQ0FBQyx5QkFBRCxDQUFELENBQTZCSyxPQUE3QjtBQUVBOztBQUNBLElBQUlMLENBQUMsQ0FBQywrQkFBRCxDQUFELENBQW1DTSxNQUF2QyxFQUErQztBQUUzQ04sR0FBQyxDQUFDLGlEQUFELENBQUQsQ0FBcURPLElBQXJELENBQTBELFVBQVVDLENBQVYsRUFBYUMsR0FBYixFQUFrQjtBQUN4RSxRQUFJLENBQUNULENBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUVUsUUFBUixDQUFpQixpQkFBakIsQ0FBTCxFQUEwQztBQUN0Q0MsZ0JBQVUsQ0FBQ1gsQ0FBQyxDQUFDUyxHQUFELENBQUYsQ0FBVjtBQUNIO0FBQ0osR0FKRDtBQU1BVCxHQUFDLENBQUMsMEJBQUQsQ0FBRCxDQUE4Qk8sSUFBOUIsQ0FBbUMsVUFBVUMsQ0FBVixFQUFhQyxHQUFiLEVBQWtCO0FBQ2pELFFBQUksQ0FBQ1QsQ0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRVSxRQUFSLENBQWlCLGlCQUFqQixDQUFMLEVBQTBDO0FBQ3RDQyxnQkFBVSxDQUFDWCxDQUFDLENBQUNTLEdBQUQsQ0FBRixDQUFWO0FBQ0g7QUFDSixHQUpEO0FBS0g7O0FBRUQsU0FBU0UsVUFBVCxDQUFvQkMsT0FBcEIsRUFBNkI7QUFDekIsTUFBSSxPQUFPQSxPQUFPLENBQUNDLElBQVIsQ0FBYSxZQUFiLENBQVAsS0FBc0MsV0FBMUMsRUFBdUQ7QUFFbkRELFdBQU8sQ0FBQ0MsSUFBUixDQUFhLE1BQWIsRUFBcUIsS0FBckI7QUFDQSxRQUFJQyxPQUFPLEdBQUc7QUFDVkMsV0FBSyxFQUFFLE1BREc7QUFFVkMsV0FBSyxFQUFFLFlBRkc7QUFHVkMsdUJBQWlCLEVBQUUsS0FIVDtBQUlWQyxnQkFBVSxFQUFFLElBSkY7QUFLVkMsNkJBQXVCLEVBQUU7QUFMZixLQUFkOztBQVFBLFFBQUlQLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLGFBQWIsS0FBK0IsT0FBbkMsRUFBNEM7QUFDeENDLGFBQU8sQ0FBQ0ksVUFBUixHQUFxQixLQUFyQjtBQUNIOztBQUNELFFBQUlOLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLE9BQWIsQ0FBSixFQUEyQjtBQUN2QkMsYUFBTyxDQUFDQyxLQUFSLEdBQWdCLE1BQWhCO0FBQ0g7O0FBQ0QsUUFBSUgsT0FBTyxDQUFDUSxJQUFSLENBQWEsa0JBQWIsQ0FBSixFQUFzQztBQUNsQ04sYUFBTyxDQUFDTyxXQUFSLEdBQXNCVCxPQUFPLENBQUNRLElBQVIsQ0FBYSxrQkFBYixFQUFpQ0UsSUFBakMsRUFBdEI7QUFDSDtBQUNEO0FBQ1I7QUFDQTs7O0FBQ1EsUUFBSUMsUUFBUSxHQUFHWCxPQUFPLENBQUNZLE9BQVIsQ0FBZ0JWLE9BQWhCLENBQWY7QUFFQVMsWUFBUSxDQUFDRSxFQUFULENBQVksZ0JBQVosRUFBOEIsVUFBVUMsQ0FBVixFQUFhO0FBQ3ZDLFVBQUlDLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVUsUUFBVixDQUFaO0FBQ0FGLE9BQUMsQ0FBQ0csTUFBRixDQUFTQyxhQUFULENBQXVCSCxLQUF2QjtBQUNILEtBSEQ7QUFJQUosWUFBUSxDQUFDRSxFQUFULENBQVksa0JBQVosRUFBZ0MsVUFBVUMsQ0FBVixFQUFhO0FBQ3pDLFVBQUlDLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVUsUUFBVixDQUFaO0FBQ0FGLE9BQUMsQ0FBQ0csTUFBRixDQUFTQyxhQUFULENBQXVCSCxLQUF2QjtBQUNILEtBSEQ7QUFLQSxXQUFPSixRQUFQO0FBQ0g7QUFDSjs7QUFHRHZCLENBQUMsQ0FBQyxnQkFBRCxDQUFELENBQW9CeUIsRUFBcEIsQ0FBdUIsT0FBdkIsRUFBZ0MsVUFBVUMsQ0FBVixFQUFhO0FBQ3pDQSxHQUFDLENBQUNLLGNBQUY7QUFDQSxNQUFNQyxVQUFVLEdBQUdoQyxDQUFDLENBQUMsSUFBRCxDQUFELENBQVFpQyxJQUFSLENBQWEsWUFBYixDQUFuQjtBQUVBakMsR0FBQyxDQUFDLGVBQUQsQ0FBRCxDQUFtQmtDLEtBQW5CLENBQXlCO0FBQUNDLFlBQVEsRUFBRSxJQUFYO0FBQWlCQyxZQUFRLEVBQUU7QUFBM0IsR0FBekIsRUFDS0MsR0FETCxDQUNTLE9BRFQsRUFDa0Isc0JBRGxCLEVBRUtaLEVBRkwsQ0FFUSxPQUZSLEVBRWlCLHNCQUZqQixFQUV5QyxZQUFZO0FBQzdDLFFBQUlhLFVBQVUsR0FBR3RDLENBQUMsQ0FBQyxjQUFELENBQWxCO0FBQ0FzQyxjQUFVLENBQUNMLElBQVgsQ0FBZ0IsUUFBaEIsRUFBMEJELFVBQTFCO0FBQ0FNLGNBQVUsQ0FBQ0MsTUFBWDtBQUNILEdBTkw7QUFPSCxDQVhELEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM5RE8sSUFBTW5DLFlBQWI7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBLFdBRUksZ0JBQWM7QUFDVkYsWUFBTSxDQUFDWSxPQUFQLENBQWUwQixPQUFmLEdBQXlCLElBQXpCO0FBQ0F0QyxZQUFNLENBQUNZLE9BQVAsQ0FBZTJCLGFBQWYsR0FBK0Isb0JBQS9COztBQUNBdkMsWUFBTSxDQUFDWSxPQUFQLENBQWU0QixRQUFmLEdBQTBCLFlBQVk7QUFDbEMsWUFBSTFDLENBQUMsQ0FBQyx5QkFBRCxDQUFELENBQTZCTSxNQUE3QixJQUF1QyxDQUEzQyxFQUE4QztBQUMxQ04sV0FBQyxDQUFDLGtCQUFELENBQUQsQ0FBc0IyQyxNQUF0QjtBQUNIO0FBQ0osT0FKRDtBQUtIO0FBVkw7QUFBQTtBQUFBLFdBWUksYUFBV0MsYUFBWCxFQUEwQjtBQUN0QixVQUFJQyxvQkFBb0IsR0FBRyxJQUFJQyxLQUFKLEVBQTNCOztBQUNBLFdBQUssSUFBSUMsSUFBVCxJQUFpQkgsYUFBakIsRUFBZ0M7QUFDNUIsYUFBSyxJQUFJSSxHQUFULElBQWdCSixhQUFhLENBQUNHLElBQUQsQ0FBN0IsRUFBcUM7QUFDakMsY0FBSSxDQUFDRixvQkFBb0IsQ0FBQ0ksUUFBckIsQ0FBOEJMLGFBQWEsQ0FBQ0csSUFBRCxDQUFiLENBQW9CQyxHQUFwQixDQUE5QixDQUFMLEVBQThEO0FBQzFESCxnQ0FBb0IsQ0FBQ0ssSUFBckIsQ0FBMEJOLGFBQWEsQ0FBQ0csSUFBRCxDQUFiLENBQW9CQyxHQUFwQixDQUExQjtBQUNBRyxnQkFBSSxDQUFDQyxHQUFMLENBQVNMLElBQVQsRUFBZUgsYUFBYSxDQUFDRyxJQUFELENBQWIsQ0FBb0JDLEdBQXBCLENBQWY7QUFDSDtBQUNKO0FBQ0o7QUFDSjtBQXRCTDtBQUFBO0FBQUEsV0F3QkksYUFBV0QsSUFBWCxFQUFpQk0sSUFBakIsRUFBdUI7QUFFbkJuRCxZQUFNLENBQUM2QyxJQUFELENBQU4sQ0FBYU0sSUFBYjtBQUVBLFVBQUlDLFVBQVUsR0FBR3RELENBQUMsQ0FBQyxrQkFBRCxDQUFsQjtBQUNBLFVBQUl1RCxzQkFBc0IsR0FBRyxrQkFBN0I7QUFDQSxVQUFJQyxhQUFhLEdBQUdGLFVBQVUsQ0FBQ2xDLElBQVgsQ0FBZ0IsUUFBaEIsRUFBMEJkLE1BQTlDOztBQUVBLFVBQUlOLENBQUMsQ0FBQ3VELHNCQUFELENBQUQsQ0FBMEJqRCxNQUExQixJQUFvQyxDQUFwQyxJQUF5Q2tELGFBQWEsR0FBRyxDQUE3RCxFQUFnRTtBQUM1REYsa0JBQVUsQ0FBQ0csT0FBWCxDQUFtQixtRUFBbkI7QUFDSDs7QUFFRHpELE9BQUMsQ0FBQ3VELHNCQUFELENBQUQsQ0FBMEJsQixHQUExQixDQUE4QixPQUE5QixFQUF1Q1osRUFBdkMsQ0FBMEMsT0FBMUMsRUFBbUQsWUFBWTtBQUMzRHZCLGNBQU0sQ0FBQ3lDLE1BQVA7O0FBQ0EsWUFBSWEsYUFBYSxJQUFJLENBQXJCLEVBQXdCO0FBQ3BCeEQsV0FBQyxDQUFDLGtCQUFELENBQUQsQ0FBc0IyQyxNQUF0QjtBQUNIO0FBQ0osT0FMRDtBQU1IO0FBMUNMOztBQUFBO0FBQUEsSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0FPLElBQU14QyxLQUFiO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQSxXQUVRLGFBQVd1RCxLQUFYLEVBQWtCO0FBQ1YsVUFBSTtBQUNJQyxlQUFPLENBQUNDLEdBQVIsQ0FBWUYsS0FBWjtBQUNQLE9BRkQsQ0FHQSxnQkFBTSxDQUFFO0FBQ2Y7QUFQVDtBQUFBO0FBQUEsV0FTUSxxQkFBbUJHLEdBQW5CLEVBQXdCSCxLQUF4QixFQUErQjtBQUN2QixhQUFPRyxHQUFHLENBQUNDLE1BQUosQ0FBVyxVQUFTQyxHQUFULEVBQWE7QUFBRSxlQUFPQSxHQUFHLElBQUlMLEtBQWQ7QUFBc0IsT0FBaEQsQ0FBUDtBQUNQO0FBWFQ7QUFBQTtBQUFBLFdBYVEscUJBQW1CcEMsSUFBbkIsRUFBeUI7QUFDakIsVUFBSTBDLFVBQVUsR0FBR0MsUUFBUSxDQUFDQyxhQUFULENBQXVCLEtBQXZCLENBQWpCO0FBQ0FGLGdCQUFVLENBQUNHLFNBQVgsR0FBdUI3QyxJQUF2QjtBQUNBLGFBQU8wQyxVQUFVLENBQUNJLFdBQWxCO0FBQ1A7QUFqQlQ7QUFBQTtBQUFBLFdBbUJRLDBCQUF3QkMsSUFBeEIsRUFBOEJDLFNBQTlCLEVBQXlDO0FBQ2pDLFVBQUdELElBQUgsRUFBUztBQUNELFlBQUlBLElBQUksR0FBRyxJQUFJRSxJQUFKLENBQVNGLElBQVQsQ0FBWDs7QUFDQSxZQUFJRyxFQUFFLEdBQUdILElBQUksQ0FBQ0ksT0FBTCxFQUFUO0FBQUEsWUFDSUMsQ0FBQyxHQUFHRixFQUFFLEdBQUcsQ0FBTCxHQUFTQSxFQUFULEdBQWMsTUFBTUEsRUFENUI7QUFBQSxZQUVJRyxFQUFFLEdBQUdOLElBQUksQ0FBQ08sUUFBTCxLQUFrQixDQUYzQjtBQUFBLFlBR0lDLENBQUMsR0FBR0YsRUFBRSxHQUFHLENBQUwsR0FBU0EsRUFBVCxHQUFjLE1BQU1BLEVBSDVCO0FBQUEsWUFJSUcsU0FBUyxHQUFHSixDQUFDLEdBQUdKLFNBQUosR0FBZ0JPLENBQWhCLEdBQW9CUCxTQUFwQixHQUFnQ0QsSUFBSSxDQUFDVSxXQUFMLEVBSmhEOztBQUtBLGVBQU9ELFNBQVA7QUFDUCxPQVJELE1BU0s7QUFDRyxlQUFPLEVBQVA7QUFDUDtBQUNSO0FBaENUO0FBQUE7QUFBQSxXQWtDUSx5QkFBdUJFLE1BQXZCLEVBQStCO0FBQ3ZCLFVBQUlDLFFBQVEsR0FBR0MsTUFBTSxDQUFDQyxRQUFQLENBQWdCQyxNQUFoQixDQUF1QkMsU0FBdkIsQ0FBaUMsQ0FBakMsQ0FBZjtBQUFBLFVBQ0lDLGFBQWEsR0FBR0wsUUFBUSxDQUFDTSxLQUFULENBQWUsR0FBZixDQURwQjtBQUFBLFVBRUlDLGNBRko7QUFBQSxVQUdJaEYsQ0FISjs7QUFLQSxXQUFLQSxDQUFDLEdBQUcsQ0FBVCxFQUFZQSxDQUFDLEdBQUc4RSxhQUFhLENBQUNoRixNQUE5QixFQUFzQ0UsQ0FBQyxFQUF2QyxFQUEyQztBQUNuQ2dGLHNCQUFjLEdBQUdGLGFBQWEsQ0FBQzlFLENBQUQsQ0FBYixDQUFpQitFLEtBQWpCLENBQXVCLEdBQXZCLENBQWpCOztBQUVBLFlBQUlDLGNBQWMsQ0FBQyxDQUFELENBQWQsS0FBc0JSLE1BQTFCLEVBQWtDO0FBQzFCLGlCQUFPUSxjQUFjLENBQUMsQ0FBRCxDQUFkLEtBQXNCQyxTQUF0QixHQUFrQyxJQUFsQyxHQUF5Q0Msa0JBQWtCLENBQUNGLGNBQWMsQ0FBQyxDQUFELENBQWYsQ0FBbEU7QUFDUDtBQUNSO0FBQ1I7QUEvQ1Q7QUFBQTtBQUFBLFdBaURRLDJCQUF5QkcsS0FBekIsRUFBZ0M7QUFDeEIsVUFBSW5GLENBQUMsR0FBRyxDQUFSOztBQUNBLGFBQU9tRixLQUFLLENBQUNuRixDQUFELENBQUwsR0FBVyxHQUFYLElBQWtCbUYsS0FBSyxDQUFDbkYsQ0FBRCxDQUFMLEdBQVcsR0FBcEMsRUFBeUNBLENBQUMsRUFBMUM7QUFBOEM7QUFBOUM7O0FBQ0EsYUFBT0EsQ0FBQyxJQUFJbUYsS0FBSyxDQUFDckYsTUFBWCxHQUFvQixDQUFDLENBQXJCLEdBQXlCRSxDQUFoQztBQUNQO0FBckRUO0FBQUE7QUFBQSxXQXVEUSwwQkFBd0JtRixLQUF4QixFQUErQjtBQUN2QixVQUFJbkYsQ0FBQyxHQUFHbUYsS0FBSyxDQUFDckYsTUFBTixHQUFlLENBQXZCOztBQUNBLGFBQU9xRixLQUFLLENBQUNuRixDQUFELENBQUwsR0FBVyxHQUFYLElBQWtCbUYsS0FBSyxDQUFDbkYsQ0FBRCxDQUFMLEdBQVcsR0FBcEMsRUFBeUNBLENBQUMsRUFBMUM7QUFBOEM7QUFBOUM7O0FBQ0EsYUFBT0EsQ0FBQyxJQUFJbUYsS0FBSyxDQUFDckYsTUFBWCxHQUFvQixDQUFDLENBQXJCLEdBQXlCRSxDQUFoQztBQUNQO0FBM0RUOztBQUFBO0FBQUEsSTs7Ozs7Ozs7Ozs7O0FDREEiLCJmaWxlIjoiYWRtaW5sdGUtY29tbW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG4vLyBKUXVlcnlcbmltcG9ydCAnanF1ZXJ5Jztcbmdsb2JhbC4kID0gZ2xvYmFsLmpRdWVyeSA9ICQ7XG5cbi8vIEFkbWlubHRlXG5pbXBvcnQgJ2FkbWlubHRlLWpzJyA7XG5cbi8vIEJvb3RzdHJhcFxuaW1wb3J0ICdhZG1pbmx0ZS1wbHVnaW4vYm9vdHN0cmFwL2pzL2Jvb3RzdHJhcC5taW4uanMnO1xuXG4vLyBTZWxlY3QyXG5pbXBvcnQgJ2FkbWlubHRlLXBsdWdpbi9zZWxlY3QyL2pzL3NlbGVjdDIubWluLmpzJztcbmltcG9ydCAnYWRtaW5sdGUtcGx1Z2luL3NlbGVjdDIvanMvaTE4bi9mci5qcyc7XG5pbXBvcnQgJ2FkbWlubHRlLXBsdWdpbi9zZWxlY3QyL2Nzcy9zZWxlY3QyLm1pbi5jc3MnO1xuaW1wb3J0ICdhZG1pbmx0ZS1wbHVnaW4vc2VsZWN0Mi1ib290c3RyYXA0LXRoZW1lL3NlbGVjdDItYm9vdHN0cmFwNC5taW4uY3NzJztcblxuLy8gVG9hc3RyXG5pbXBvcnQgdG9hc3RyIGZyb20gJ3RvYXN0ci90b2FzdHIuanMnIDtcbmltcG9ydCAndG9hc3RyL3RvYXN0ci5zY3NzJyA7XG5nbG9iYWwudG9hc3RyID0gdG9hc3RyIDtcblxuLy8gVG9vbHNcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvdG9vbHMuanMnO1xuZ2xvYmFsLlRvb2xzID0gVG9vbHM7XG5cbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vanMvbm90aWZpY2F0aW9uLmpzJztcbmdsb2JhbC5Ob3RpZmljYXRpb24gPSBOb3RpZmljYXRpb247XG5Ob3RpZmljYXRpb24uaW5pdCgpIDtcblxuLy8gQ29tbW9uXG5pbXBvcnQgJy4vY29tbW9uLnNjc3MnO1xuaW1wb3J0ICcuL2NvbW1vbi5qcycgO1xuXG5cblxuXG4iLCJcbi8qIE5vdGlmaWNhdGlvbnMgKi9cbi8vTm90aWZpY2F0aW9uLmluaXQoKSA7XG5cbi8qIFRvb2x0aXAgKi9cbiQoJ1tkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIl0nKS50b29sdGlwKCk7XG5cbi8qIFNlbGVjdDIgKi9cbmlmICgkKCcuc2VsZWN0Miwgc2VsZWN0LmZvcm0tY29udHJvbCcpLmxlbmd0aCkge1xuXG4gICAgJCgnZm9ybSAuZm9ybS13aWRnZXQ+c2VsZWN0LmZvcm0tY29udHJvbCwgLnNlbGVjdDInKS5lYWNoKGZ1bmN0aW9uIChpLCBlbG0pIHtcbiAgICAgICAgaWYgKCEkKHRoaXMpLmhhc0NsYXNzKCdkaXNhYmxlLXNlbGVjdDInKSkge1xuICAgICAgICAgICAgc2V0U2VsZWN0MigkKGVsbSkpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAkKCdmb3JtIHNlbGVjdC5mb3JtLWNvbnRyb2wnKS5lYWNoKGZ1bmN0aW9uIChpLCBlbG0pIHtcbiAgICAgICAgaWYgKCEkKHRoaXMpLmhhc0NsYXNzKCdkaXNhYmxlLXNlbGVjdDInKSkge1xuICAgICAgICAgICAgc2V0U2VsZWN0MigkKGVsbSkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldFNlbGVjdDIoJHNlbGVjdCkge1xuICAgIGlmICh0eXBlb2YgJHNlbGVjdC5kYXRhKCdzZWxlY3QyLWlkJykgPT09ICd1bmRlZmluZWQnKSB7XG5cbiAgICAgICAgJHNlbGVjdC5kYXRhKCdpbml0JywgJ3NldCcpXG4gICAgICAgIHZhciBvcHRpb25zID0ge1xuICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgdGhlbWU6IFwiYm9vdHN0cmFwNFwiLFxuICAgICAgICAgICAgZHJvcGRvd25BdXRvV2lkdGg6IGZhbHNlLFxuICAgICAgICAgICAgYWxsb3dDbGVhcjogdHJ1ZSxcbiAgICAgICAgICAgIG1pbmltdW1SZXN1bHRzRm9yU2VhcmNoOiA4XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCRzZWxlY3QuZGF0YSgnYWxsb3ctY2xlYXInKSA9PSAnZmFsc2UnKSB7XG4gICAgICAgICAgICBvcHRpb25zLmFsbG93Q2xlYXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJHNlbGVjdC5kYXRhKCd3aWR0aCcpKSB7XG4gICAgICAgICAgICBvcHRpb25zLndpZHRoID0gJ2F1dG8nXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCRzZWxlY3QuZmluZCgnb3B0aW9uW3ZhbHVlPVwiXCJdJykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMucGxhY2Vob2xkZXIgPSAkc2VsZWN0LmZpbmQoJ29wdGlvblt2YWx1ZT1cIlwiXScpLmh0bWwoKVxuICAgICAgICB9XG4gICAgICAgIC8qaWYoJHNlbGVjdC5pcygnOnJlcXVpcmVkJykgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuYWxsb3djbGVhciA9IHRydWVcbiAgICAgICAgfSovXG4gICAgICAgIHZhciBteXNlbGVjdCA9ICRzZWxlY3Quc2VsZWN0MihvcHRpb25zKTtcblxuICAgICAgICBteXNlbGVjdC5vbignc2VsZWN0MjpzZWxlY3QnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IEV2ZW50KCdjaGFuZ2UnKTtcbiAgICAgICAgICAgIGUudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgbXlzZWxlY3Qub24oJ3NlbGVjdDI6dW5zZWxlY3QnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IEV2ZW50KCdjaGFuZ2UnKTtcbiAgICAgICAgICAgIGUudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbXlzZWxlY3Q7XG4gICAgfVxufVxuXG5cbiQoJy5hY3Rpb24tZGVsZXRlJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZm9ybUFjdGlvbiA9ICQodGhpcykuYXR0cignZm9ybWFjdGlvbicpO1xuXG4gICAgJCgnI21vZGFsLWRlbGV0ZScpLm1vZGFsKHtiYWNrZHJvcDogdHJ1ZSwga2V5Ym9hcmQ6IHRydWV9KVxuICAgICAgICAub2ZmKCdjbGljaycsICcjbW9kYWwtZGVsZXRlLWJ1dHRvbicpXG4gICAgICAgIC5vbignY2xpY2snLCAnI21vZGFsLWRlbGV0ZS1idXR0b24nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBsZXQgZGVsZXRlRm9ybSA9ICQoJyNkZWxldGUtZm9ybScpO1xuICAgICAgICAgICAgZGVsZXRlRm9ybS5hdHRyKCdhY3Rpb24nLCBmb3JtQWN0aW9uKTtcbiAgICAgICAgICAgIGRlbGV0ZUZvcm0uc3VibWl0KCk7XG4gICAgICAgIH0pO1xufSk7XG5cbiIsIlxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbiB7XG5cbiAgICBzdGF0aWMgaW5pdCgpIHtcbiAgICAgICAgdG9hc3RyLm9wdGlvbnMudGltZU91dCA9IDMwMDA7XG4gICAgICAgIHRvYXN0ci5vcHRpb25zLnBvc2l0aW9uQ2xhc3MgPSAndG9hc3QtYm90dG9tLXJpZ2h0JztcbiAgICAgICAgdG9hc3RyLm9wdGlvbnMub25IaWRkZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoJCgnI3RvYXN0LWNvbnRhaW5lciAudG9hc3QnKS5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICQoJyN0b2FzdC1jbG9zZS1hbGwnKS5yZW1vdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc2V0KG5vdGlmaWNhdGlvbnMpIHtcbiAgICAgICAgdmFyIGN1cnJlbnROb3RpZmljYXRpb25zID0gbmV3IEFycmF5KCk7XG4gICAgICAgIGZvciAodmFyIHR5cGUgaW4gbm90aWZpY2F0aW9ucykge1xuICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIG5vdGlmaWNhdGlvbnNbdHlwZV0pIHtcbiAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnROb3RpZmljYXRpb25zLmluY2x1ZGVzKG5vdGlmaWNhdGlvbnNbdHlwZV1ba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE5vdGlmaWNhdGlvbnMucHVzaChub3RpZmljYXRpb25zW3R5cGVdW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZCh0eXBlLCBub3RpZmljYXRpb25zW3R5cGVdW2tleV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBhZGQodHlwZSwgdGV4dCkge1xuXG4gICAgICAgIHRvYXN0clt0eXBlXSh0ZXh0KTtcblxuICAgICAgICBsZXQgJGNvbnRhaW5lciA9ICQoJyN0b2FzdC1jb250YWluZXInKSA7XG4gICAgICAgIGxldCBzZWxlY3RvckJ1dHRvbkNsb3NlQWxsID0gJyN0b2FzdC1jbG9zZS1hbGwnIDtcbiAgICAgICAgbGV0IGNvdW50TWVzc2FnZXMgPSAkY29udGFpbmVyLmZpbmQoJy50b2FzdCcpLmxlbmd0aCA7XG5cbiAgICAgICAgaWYgKCQoc2VsZWN0b3JCdXR0b25DbG9zZUFsbCkubGVuZ3RoID09IDAgJiYgY291bnRNZXNzYWdlcyA+IDIpIHtcbiAgICAgICAgICAgICRjb250YWluZXIucHJlcGVuZCgnPGJ1dHRvbiBpZD1cInRvYXN0LWNsb3NlLWFsbFwiPjxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIj48L2k+PC9idXR0b24+Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAkKHNlbGVjdG9yQnV0dG9uQ2xvc2VBbGwpLm9mZignY2xpY2snKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0b2FzdHIucmVtb3ZlKCk7XG4gICAgICAgICAgICBpZiAoY291bnRNZXNzYWdlcyA9PSAwKSB7XG4gICAgICAgICAgICAgICAgJCgnI3RvYXN0LWNsb3NlLWFsbCcpLnJlbW92ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbn0iLCJcbmV4cG9ydCBjbGFzcyBUb29scyB7XG5cbiAgICAgICAgc3RhdGljIGxvZyh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh2YWx1ZSkgO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7fVxuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGljIGFycmF5UmVtb3ZlKGFyciwgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyLmZpbHRlcihmdW5jdGlvbihlbGUpeyByZXR1cm4gZWxlICE9IHZhbHVlOyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRpYyB0b1BsYWluVGV4dChodG1sKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNjcmF0Y2hEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICBzY3JhdGNoRGl2LmlubmVySFRNTCA9IGh0bWw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjcmF0Y2hEaXYudGV4dENvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0aWMgZ2V0RGF0ZUZvcm1hdHRlZChkYXRlLCBzZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICBpZihkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9kID0gZGF0ZS5nZXREYXRlKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IF9kID4gOSA/IF9kIDogJzAnICsgX2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX20gPSBkYXRlLmdldE1vbnRoKCkgKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gPSBfbSA+IDkgPyBfbSA6ICcwJyArIF9tLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZCA9IGQgKyBzZXBhcmF0b3IgKyBtICsgc2VwYXJhdG9yICsgZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGljIGdldFVybFBhcmFtZXRlcihzUGFyYW0pIHtcbiAgICAgICAgICAgICAgICB2YXIgc1BhZ2VVUkwgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSxcbiAgICAgICAgICAgICAgICAgICAgc1VSTFZhcmlhYmxlcyA9IHNQYWdlVVJMLnNwbGl0KCcmJyksXG4gICAgICAgICAgICAgICAgICAgIHNQYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgICAgICAgICAgICBpO1xuXG4gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNVUkxWYXJpYWJsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNQYXJhbWV0ZXJOYW1lID0gc1VSTFZhcmlhYmxlc1tpXS5zcGxpdCgnPScpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc1BhcmFtZXRlck5hbWVbMF0gPT09IHNQYXJhbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc1BhcmFtZXRlck5hbWVbMV0gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBkZWNvZGVVUklDb21wb25lbnQoc1BhcmFtZXRlck5hbWVbMV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRpYyBpbmRleE9mRmlyc3REaWdpdChpbnB1dCkge1xuICAgICAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKDsgaW5wdXRbaV0gPCAnMCcgfHwgaW5wdXRbaV0gPiAnOSc7IGkrKykgO1xuICAgICAgICAgICAgICAgIHJldHVybiBpID09IGlucHV0Lmxlbmd0aCA/IC0xIDogaTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRpYyBpbmRleE9mTGFzdERpZ2l0KGlucHV0KSB7XG4gICAgICAgICAgICAgICAgbGV0IGkgPSBpbnB1dC5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIGZvciAoOyBpbnB1dFtpXSA8ICcwJyB8fCBpbnB1dFtpXSA+ICc5JzsgaS0tKSA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGkgPT0gaW5wdXQubGVuZ3RoID8gLTEgOiBpO1xuICAgICAgICB9XG59XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCB7fTsiXSwic291cmNlUm9vdCI6IiJ9